Linux shell: Cambiare estensione ricorsivamente

30 gennaio 2010 marco Nessun commento

Spesso le foto scaricate dalla fotocamera digitale, hanno estensione .JPG, anziche .jpg, per ovviare al “problema”, basterà eseguire il comando seguente dalla shell:

find /percorso/delle/immagini -name *.JPG -exec rename “s/.JPG/.jpg/g” {} ;

Gamma:Linux, shell Giorno: ,

Il software per la grafica vettoriale Inkscape arriva alla versione 0.47

17 gennaio 2010 marco Nessun commento

Il software open source per la grafica vettoriale si aggiorna dopo un anno di intenso sviluppo.
E disponibile la versione 0.47 di Inkscape, programma open source di disegno basato sul formato standard Svg (Scalable Vector Graphics), per Windows, Linux e Mac OS X.

Questa versione esce a un anno di distanza da quella precedente e introduce nuove funzioni, come il salvataggio automatico a tempo, il controllo ortografico, l’esportazione in PostScript e Encapsulated PostScript e un nuovo tipo di curva, Spiro. Inoltre sono stai corretti centinaia di bug e sono state migliorate le prestazioni generali del software.

Per conoscere meglio questo programma leggete la voce di wikipedia: http://it.wikipedia.org/wiki/Inkscape

Cosa ne pensi?

Linux shell: Zippare e spostare

14 gennaio 2010 marco Nessun commento

Continuiamo ad esplorare il fantastico mondo di GNU / Linux.

Il comando di oggi, non fa altro che comprimere la directory di lavoro al volo, evidenziando i progressi, e spostandola nella posizione voluta.

tar-cf – . | PV-s $(du-SB . | awk ‘(print $ 1) ') | gzip> out.tgz

Ciò che accade è che indichiamo a tar di creare “-c”, un archivio di tutti i file nella directory corrente “.” (ricorsivamente), stampando l output dei dati verso lo stdout “-f -”, poi andiamo a specificare la dimensione “-s” di tutti i file nella directory corrente, per il comando “pv”, il prossimo passo: la "-SB. | awk? (Print $ 1)?” restituisce il numero di byte della directory corrente, poi zippiamo tutto il contenuto ed inviamo l outpup verso il file “out.tgz”

Articoli correlati:
Linux shell: Scompattare dalla rete

Linux, il meglio degli ultimi 10 anni secondo IBM developerWorks

Gamma:Linux, shell Giorno: ,

Programmare in C# nel frameowrk .NET – parte 01

13 gennaio 2010 marco Nessun commento

Che cosa è il C #?

Questo C # (si pronuncia “c sharp”) è un linguaggio di programmazione object-oriented sviluppato da Microsoft all’interno dell’iniziativa .NET, ed è, in un certo senso, il linguaggio che meglio degli altri descrive le linee guida sulle quali ogni programma .NET gira; questo linguaggio è stato infatti creato da Microsoft specificatamente per la programmazione nel Framework .NET. I suoi tipi di dati “primitivi” hanno una corrispondenza univoca con i tipi .NET e molte delle sue astrazioni, come classi, interfacce, delegati ed eccezioni, sono particolarmente adatte a gestire il .NET framework. Leggi il resto nella voce di wikipedia.

Vediamo un esempio Hello World / ciao mondo:


using System; 

class class HelloWorld
{
    static static void Main()
    {
        Console .WriteLine( "hello world" );
    }
}

Come compilare questo codice! E ‘facile, scrivetelo in Visual Studio ed eseguite.

Utilizzando il compilatore da riga di comando, un tale programma può essere compilato con la riga di comando dalla finestra DOS con il comando:

CSC HelloWorld.cs CCC HelloWorld.cs

Spiego alcune delle righe di codice scritto:

using System; Riferimenti della direttiva uno spazio dei nomi denominato system che viene fornito da Microsoft. NET Framework, per utilizzare le librerie del Framework.

static static void Main() è un membro della classe HelloWorld. Essa ha il modificatore static, e quindi è un metodo della classe HelloWorld ed è il punto di ingresso per l’applicazione.

Console. WriteLine( “ciao a tutti” ); questa riga scrive sullo schermo di output c”ciao a tutti”, Console è una classe all’interno del namespace System, E WriteLine () è un metodo di questa classe per stampare sulla console una frase.

Come scrivere con C #?

C # è un linguaggio, e per utilizzare qualsiasi linguaggio si deve conoscere la sua grammatica.

In primo luogo parliamo dell’avvio dell’applicazione (il punto di accesso):

Avvio dell’applicazione si verifica quando l’ambiente di esecuzione chiama un metodo designato, che viene indicato come il punto di ingresso. Questo metodo del punto di ingresso è sempre chiamato Main, E può avere uno dei seguenti firme:

static static void Main() {…) Void Main () {}

static static void Main( Stringa [] args) {…) Void Main (Stringa [] args) {}

static static int Main() {…) Int main () {}

static static int Main( Stringa [] args) {…) Int main (Stringa [] args) {}

Il punto di ingresso può opzionalmente avere un parametro formale. Il parametro può avere qualsiasi nome, ma il tipo del parametro deve essere string [] un vettore string, per capire cosa è un vettore leggete l’articolo Tutorial Java: copiare un array/vettore in Java. Se il parametro formale è presente, l’ambiente di esecuzione crea e passa un vettore stringa [] argomento contenente la riga di comando gli argomenti che sono stati specificati quando l’applicazione è stata avviata. Il vettore di parametri stringa [] non è mai nullo, ma può avere una lunghezza pari a zero se gli argomenti della riga di comando non sono stati specificati, C# è un linguaggio orientato agli oggetti è supporta l’overloading (cioè una classe o una struttura può contenere più definizioni di un metodo, a condizione che ognuno ha una diversa firma), così che l’applicazione può avere diversi punti di ingresso.

Nota:

La firma di un metodo consiste nel nome del metodo e il tipo e la natura (valore di riferimento, o di uscita) di ciascuno dei suoi parametri formali, considerato in ordine da sinistra a destra. La firma di un metodo in particolare non include il tipo di ritorno, né comprende il modificatore di parametri.

L’ambito di un nome è la regione di testo del programma all’interno del quale è possibile fare riferimento alle entità dichiarate dal nome senza qualifiche del nome. Ambiti possono essere nidificate, e un campo di applicazione interna può ridichiarare il significato di un nome da un ambito esterno. Il nome dal campo esterno è poi detto di essere nascosto nella regione di testo del programma rientrano nell’ambito di applicazione interiore, e l’accesso al nome esterno è possibile solo con il nome di qualificazione.

Esempio A:


class A
{
    int i = 0; 

    void B()
    {
        i = 1;
    } 

    void C()
    {
        i = 2;
    }
}

Lo scope delle variabili è il contesto all’interno del quale esse sono definite.
i ha lo scope nella classe A e nel campo di applicazione ai metodi di B e C.

Esempio B:


class A
{
    int i = 0;

    void B()
    {
        int i = 1;
    } 

    void C()
    {
        i = 2;
    }
}

E’ come l’esempio precedente ma nel metodo B è nascosta nuova dichiarazione di un membro con lo stesso nome i.

Ogni namespace o spazio dei nomi e il tipo ha un nome pienamente qualificato, che identifica univocamente il namespace o il tipo, tra tutti gli altri. Il nome completo di uno spazio dei nomi o di tipo N è determinato come segue:

  • Se n è un membro del namespace globale, il suo nome completo è N
  • In caso contrario, il suo nome completo è SN, dove S è il nome completo dello spazio dei nomi o del tipo in cui N è dichiarata

Esempio:


class A { }                  // A 

namespace X              // X
{ 

           class B           // XB
           {
                        class C { }         // XBC
            }
            namespace Y               // XY
            {
                        class D { }     // XYD
            } 

} 

namespace X.Y                  // X.Y
{
             class E { }          // X.Y.E 

 }

Ecco l’esempio da scaricare:
ciao a tutti – Esempio della lezione Programmare in C# nel frameowrk .NET – parte 01

Non vi perdete la prossima puntata che pubblicherò la prossima settimana in cui parleremo dei tipi.

Articoli correlati

Nuova pagina dei software

6 gennaio 2010 marco Nessun commento

Questa mattina ho creato la pagina dei software in cui metterò tutti i programmi di cui parlerò nei miei post come ad esempio Python: come trasformare la rubrica di thunderbird in un semplice elenco di indirizzi mail.

Se vuoi un consiglio oppure un chiarimento contattami.

Gamma:programmazione Giorno:

Tutorial Java: copiare un array/vettore in Java

5 gennaio 2010 marco Nessun commento

Il vettore o array in informatica o matematica si può immaginare come una sorta di casellario, le cui caselle sono dette celle dell’array stesso, clicca qui per leggere l’intera voce su wikipedia.

Questo tutorial in Java mostrerà come usare il metodo System.arraycopy() per copiare un vettore/array in java. Il metoto System.arraycopy() permette di copiare un intero vettore oppure una parte di esso.

Naturalmente per copiare l’array, l’array di destinazione deve avere la stessa grandezza (lo stesso numero di caselle) dell’array sorgente.

Ecco un esempio con del codice Java:

Stringa[] sorgente = { “gatto”, “cane”, “uccello” }; // Definisco l’array sorgente con 3 caselle di tipo stringa cioè variabili con del testo

Stringa[] destinazione = new String[sorgente.length]; // Definisco l’array di destinazione vuoto e con lunghezza uguale all’array sorgente ricorda devono avere la stessa lunghezza sorgente e destinatario

System.arraycopy(sorgente , 0, destinazione , 0, sorgente.length); // Infine utilizzo il metodo System.arracopy dando come parametri l’array sorgente, la posizione in cui iniziare a copiare, l’array di destinazione, la posizione in cui devo mettere la copia e la lunghezza

Articolo correlato: java: convertire una variabile di tipo String in Date

Abbonati ai miei feed RSS: http://www.marcobruni.info/it/feed

Python: come trasformare la rubrica di thunderbird in un semplice elenco di indirizzi mail

2 gennaio 2010 marco Nessun commento

Python è un linguaggio di programmazione ad alto livello interpretato, orientato agli oggetti, adatto, tra gli altri usi, per sviluppare applicazioni distribuite, scripting e computazione numerica.

Considero python un linguaggio di programmazione molto potente e versatile ed è per questo che l’ho usato per trasformare la rubrica degli indirizzi di posta elettronica di Mozilla Thunderbird in un elenco usabile in una newsletter.

Ecco il mio primo screencast del mio blog così puoi capire meglio di cosa parlo, cliccate sul bottone a forma di quadrato in basso a destra del video a sinistra del volume per vederlo a tutto schermo…Buona Visione e dimmi cosa ne pensi.

Get the Flash Player a vedere questo giocatore.

Linux shell: Scompattare dalla rete

30 dicembre 2009 marco Nessun commento

Da oggi comincio a pubblicare degli articoli che riguardano GNU / Linux che è un sistema operativo libero di tipo Unix ed in particolare la shell che non è l’ascella :-) ma è un programma che permette agli utenti di comunicare con il sistema e di avviare altri programmi.

Pubblicherò periodicamente questi consigli per diventare un ottimo amministratore di sistemi GNU/Linux :-)

Perchè non provare a spacchettare un tarball direttamente dalla rete, senza salvare il paccheto localmente?

Proviamoci:

Usando wget digitate ed esguite questo comando: wget-O – http:/ / IndirizzoWeb / a.gz | tar xz
Oppure Curl digitate ed esguite questo comando: curl http:/ / IndirizzoWeb / a.gz | tar xz

Se l’archivio è compresso con bzip2 utilizzare “xj” come opzioni a tar cioè tar xj.

Gamma:Linux, shell Giorno: ,

Vi auguro Buon Anno con Google Wave

24 dicembre 2009 marco Nessun commento
Gamma:google Giorno:

WordPress: è uscita la nuova versione 2.9

20 dicembre 2009 marco Nessun commento

Gli sviluppatori di Wordpress hanno rilasciato la versione 2.9 di WordPress per chi lo usa come me per la gestione del proprio blog prima di effettuare l’aggiornamento automatico dal pannello web consiglio di aspettare qualche giorno per dare il tempo al gruppo di www.wordpress-it.it di completare la traduzione.

Prima di fare l’aggiornamento automatico vi consiglio di fare sempre il backup del database mysql e del blog.

La nuova versione viene fornita con oltre 500 correzioni, modifiche e miglioramenti
e quindi l’installazione è raccomandata. Ecco alcune delle nuove caratteristiche:

  • Trashbin: messaggi che vengono eliminati sono ora spostati nel cestino invece di
    essere eliminati irrimediabilmente. E ‘possibile recuperare i messaggi dal cestino in un secondo momento.
  • Image Editor: Un editor di base di immagini che possono essere utilizzati per modificare, ruotare,
    scalare e ritagliare le immagini.
  • Supporto per i plugin Batch: Update fino a dieci plugin in una sola volta.
  • Video incorporati: incorporare i video sarà un operazione più facile in quanto è ora possibile semplicemente incollare l’URL nel post che sarà trasformato in un visualizzatore appropriato da Wordpress automaticamente.
  • L’ottimizzazione automatica del database che può essere attivata con l’aggiunta di
    define ( ‘WP_ALLOW_REPAIR ', VERO); al file di configurazione in Wordpress.
  • Post opzioni miniature che può essere utilizzato per visualizzare le miniature in ogni
    post se il tema lo supporta.
  • SEO migliore grazie a rel = canonical
  • Gallerie personalizzate con la possibilità di aggiungere immagini da posti diversi.

L’elenco completo delle modifiche può essere visionato nel Wordpress Trac. Buon
aggiornamento!

Gamma:WordPress Giorno:
Chiudi
Invia e-mail