ExtraGeek

La Tecnologia vista da me

[COMMAND LINE] Owner e grant su file e cartelle

Due buoni comandi per acquisire la owner e i diritti full su cartelle e files senza dover agire su singoli files e cartelle. Sono da eseguire aprendo una prompt dei comandi in modalità amministratore:

icacls "*.*" /grant everyone:F

al posto di "everyone" può essere specificato altro utente particolare.

takeown /F "*.*"

[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 !

[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.

[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.

[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

 

IE6 e Virtual PC

Alcuni giorni fa stavo parlando con un amico circa un lavoretto web, una cosa semplice semplice sul layout, unica modifica apportata ad uno dei fogli di stile CSS. Ma a parte questo, una volta effettuata la modifica, ho chiesto all'amico di guardare se il risultato lo soddisfaceva. Con mio stupore mi rispondeva che su Internet Explorer 6 non riusciva a vederla la modifica.

Se devo essere sincero, questa volta, non mi sono neanche posto il problema della compatibilità con IE6, anzi volutamente mi sono escluso da questo tipo di martirio. Ho cercato allora di convincere l'amico, evidentemente ancora utilizzatore di IE6, che la cosa più saggia da fare è quella di installare una versione più recente di Explorer. Ancora non so se sono riuscito o meno nell'opera di convincimento, spero proprio di si.

La stessa Microsoft scoraggia l'uso di questo mal riuscito browser e a tal proposito è giusto rammentare un sito della stessa MS che si intitola inequivocabilmente "IE6 Countdown". In questo sito si viene inoltre incoraggiati ad inserire sui propri blog e/o siti un banner che appaia solo quando a visualizzare è un utente IE6 invitando ad effettuare il download. Credo che potrei anche accettare di mostrare questo banner, ma come poter fare due test proprio con IE6 ?

Semplice, installando Virtual PC ed una delle immagini gentilmente offerte dalla stessa MS già predisposte con le varie versioni di Explorer.

LINK:
The Internet Explorer Countdown
Virtual PC - XP and Vista Users
Virtual PC - 7 Users
OS Image + IE

Android Tips and Tricks

Direttamente da Google un post sul blog ufficiale di BigG pieno zeppo di tips & tricks sull’ormai diffusissimo sistema mobile.

La lista è molto interessante e alcuni sono già orientati all’imminente nuova versione 2.3 “Gingerbread”.

Buon divertimento !

Some Cool Google Android Tips & Tricks

[Tip & Tricks] BlogEngine.NET Metaweblog API e Live writer

Esisto delle circostanze in cui Windows Live Writer non è in grado di stabilire “un contatto” con il servizio (API) di pubblicazione sul blog attraverso la tecnologia implementata in BlogEngine.NET (Metaweblog).
Quando ciò accade WLW chiede di inserire manualmente i dati necessari fra i quali il “remote posting URL”, nel caso ti utilizzo di BlogEngine.NET questi è “www.tuodominio.com/metaweblog.axd” fatto questo WLW dovrebbe essere in grado di comunicare con il nostro blog.