ExtraGeek

La Tecnologia vista da me

Risorse per Bootstrap

Cari amici, questa sera voglio segnalarvi un'interessante raccolta di strumenti ed utility per la creazione e personalizzazione di layout e componenti per il framework bootstrap. Framework che al momento risulta essere uno dei più utilizzati per la creazione di pagine web responsive, che cioè si adattano al supporto che le sta visualizzando.

Fatene buon uso e ... buona programmazione !!

Bootsnipp Resources

 

[VB.NET] Funzione per ridimensionare immagine

In un mio ultimo lavoro ho dovuto affrontare il problema di dover ridimensionare a run-time alcune immagini. Devo dire che è stato il primo progetto in cui ho affrontato certi argomenti e quindi ho dovuto fare un po' di ricerca e studio.

Il ridimensionamento di un'immagine è un lavoro che dovrà essere svolto dalla libreria System.Drawing che dovrà quindi essere referenziata nella giusta maniera.

' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
' Questa funzione restituisce una versione ridimensionata di un'immagine fornita
' Input:
'   immagine (Image)
'   dimensioni (Size)
'   mantieniAspectRatio (Boolean default True)
' Output:
'    ResizeImmagine (Image)
' by ExtraGeek.Com
' ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
Public Shared Function ResizeImmagine(ByVal immagine As Image, ByVal dimensioni As Size,
                                           Optional ByVal mantieniAspectRatio As Boolean = True) As Image
 
            Dim nuovaWidth As Integer
            Dim nuovaHeight As Integer

            ' Verifico se necessario mantenere il rapporto fra le dimensioni
            If mantieniAspectRatio Then
                Dim originaleWidth As Integer = immagine.Width
                Dim originaleHeight As Integer = immagine.Height
                Dim rapportoWidth As Single = CSng(dimensioni.Width) / CSng(originaleWidth)
                Dim rapportoHeight As Single = CSng(dimensioni.Height) / CSng(originaleHeight)

                'Calcolo il rapporto
                Dim rapporto As Single = If(rapportoHeight < rapportoWidth,
                rapportoHeight, rapportoWidth)
                
                'Assegno le nuove dimensioni calcolate sul rapporto fra di esse
                nuovaWidth = CInt(rapportoWidth * rapporto)
                nuovaHeight = CInt(rapportoHeight * rapporto)
            Else
                nuovaWidth = dimensioni.Width
                nuovaHeight = dimensioni.Height
            End If
            Dim nuovaImmagine As Image = New Bitmap(nuovaWidth, nuovaHeight)
            Using graphicsHandle As Graphics = Graphics.FromImage(nuovaImage)
                graphicsHandle.InterpolationMode = InterpolationMode.HighQualityBicubic
                graphicsHandle.DrawImage(image, 0, 0, nuovaWidth, nuovaHeight)
            End Using

            'Ritorno l'immagine ottenuta dal ridimensionamento
            Return nuovaImage
 
        End Function

Buona programmazione a tutti !

[SQLCE] Operazioni con le date

Due note per rammentarsi alcune semplici operazioni da effettuare sulle date utilizzando SqlCe.

Sommare/Sottrarre giorni ad una data:

SELECT dateadd(day,-14,getdate());

Nell'esempio vengono sottratti 14 gg dalla data di sistema (si recupera con la funzione GETDATE()). Se avessi voluto sommare bastava indicare un numero positivo di giorni. Se avessi voluto sommare mesi avrei indicato "month" al posto di "day", lo stesso per gli anni "year" al posto di "day".

La stessa funzionalità ovviamente può essere usare per confrontare date in clausole WHERE, ad esempio:

SELECT * FROM Customer WHERE CustDate < dateadd(month, -1getdate());

Per ottenere tutti i clienti che non hanno eseguito acquisti nell'ultimo mese a partire da oggi.

 

[ASP.NET] Ciclo di vita degli eventi HTTP

Il post di oggi si rivolge a tutti i programmatori .NET in quanto l'articolo che suggerisco contiene nozioni fondamentali sul ciclo di vita degli eventi generati da richieste HTTP che ogni sviluppatore .NET dovrebbe tenere ben presente.

HTTP Request Lifecycle Events in IIS Pipeline that every ASP.NET Developer Should Know

 

Buona lettura.

[VB.NET] Semplici funzioni matematiche

Premetto che ho preso spunto da un vecchio post trovato su altro blog ...
Ma vediamo nel dettaglio questi piccoli ma sempre utili suggerimenti.

Arrotondare un numero reale all’intero più vicino. Es.:

 1,4 --> 1 1,7 --> 2 3,9 --> 4

Si utilizza il metodo

 System.Math.Round(numero)

Prendere solamente la parte intera, scartando completamente la parte decimale. Es.:

 1,4 --> 1 1,7 --> 1 3,9 --> 3

Si ottiene questo risultato con

 System.Math.Truncate(numero)

Individuare il numero intero immediatamente superiore o immediatamente inferiore. Es.:

 Superiore di 1,3 --> 2 Inferiore di 1,3 --> 1

Questi ultimi due si ottengono rispettivamente con:

System.Math.Ceiling(d) ' ceiling = soffitto, tetto
System.Math.Floor(d) ' floor = pavimento, piano
 

Non me ne vorrà il blogger se non lo cito, ma al momento non riesco a recuperare il post. Se lo troverò in seguito non mancherò di aggiornare con il doveroso link.

[Bookmark] Tabella comparazione tipo dati SQL Server con .NET CLR Framework

Eccoci qua dopo diverso tempo, il troppo lavoro mi toglie molto del tempo a disposizione per curare questo blog.

In ogni modo oggi vorrei condividere con voi il link verso un'utile risorsa: la tabella che mette a confronto i tipi di dato di SQL Server con quelli del CLR .NET

Spero di aver fatto cosa gradita (a me stesso di sicuro ... ;)

Mapping CLR Parameter Data

[Android Dev] Icona su barra del titolo applicazione

Per aggiungere una icona sulla barra del titolo dell’applicazione è necessario scrivere (con le dovute modifiche):

requestWindowFeature(Window.FEATURE_LEFT_ICON);
setContentView(R.layout.main);
setFeatureDrawableResource(Window.FEATURE_LEFT_ICON,R.drawable.header);       

[Android-Dev] Application Lifecycle

L’età avanza e certi concetti faticano a trovare una collocazione permanente nella mia “zucca”, quindi ecco alcuni appunti di programmazione per sistemi Android.

Quando l’utente seleziona l’icona della nostra applicazione nella schermata Home, il sistema chiama il metodo onCreate() per l’Activity della nostra applicazione che abbiamo dichiarato essere la “launcher” (o “main”) activity. Questa rappresenta il punto di ingresso principale per l’interfaccia utente della nostra applicazione.

Possiamo definire quale sia l’Activity da usare come principale nel file di manifesto AndroidManifest.xml che si trova nella cartella root del nostro progetto Android.

L’Activity principale (“manin”) deve essere dichiarata nel file di manifesto con un <intent-filter> che includa l’azione MAIN e la categoria LAUNCHER.

Sviluppare giochi per Android

Ho scoperto un interessante tutorial sul sito Appunti Digitali dove viene spiegato , con dovizia di particolari, tutto quello che è necessario per iniziare a sviluppare giochi per il sistema operativo Android che tanto successo ormai sta riscuotendo.

Per adesso sono state pubblicate le prime due parti del tutorial, quando saranno disponibili aggiungerò i link anche verso le altre "puntate".

Buon lavoro e buon divertimento !!

[Tutorial - Sviluppare un gioco per Android: SDK e NDK - Parte 1]
[Tutorial - Sviluppare un gioco per Android: Demo example]

[ASP.NET] Utilizzo di Repeater ItemCommand

Questo sistema è molto simile a quello usato con "DataGrid RowCommand" ma con alcune lievi modifiche.

Innanzitutto è necessario creare un controllo Repeater a cui si legano alcuni dati (bind). All'interno dell'elemento ItemTemplate (o qualsiasi altro associato al controllo ripetitore) creare un controllo Link Button (ma va bene anche un Button oppure un ImageButton). Impostare la proprietà CommandName con un nome descrittivo. Impostare la propretà CommandArgument con il vostro identificatore univoco (chiave).

Per intenderci una cosa tipo questa: 

<asp:LinkButton ID="btnCancella" runat="server" Text="Cancella" CommandName="Cancella" CommandArgument=<%#Eval("ID") %>></asp:LinkButton>

Sto impostando il CommandArgument all'ID che è bindato al mio repeater. Ora, nella vista di progettazione, fare doppio clic sul controllo del repeater e Visual Studio creerà un metodo per la gestione dell'evento ItemCommand. Qui è necessario verificare se il CommandName è quello che stiamo cercando per poi eseguire l'azione richiesta passando il CommandArgument. (Nel mio caso cancellare un commento). Questo è ciò che mi aspetto: 

Protected Sub rptCommenti_ItemCommand(source As Object, e As RepeaterCommandEventArgs)

    If e.CommandName.ToLower().Equals("cancella") Then

      Dim commenti As New clsCommenti("mediadb")
      commenti.CommentID = Integer.Parse(DirectCast(e.CommandSource, LinkButton).CommandArgument)
      commenti.DeleteRecord()
      rptCommenti.DataBind()

    End If

End Sub