E morto Dennis Ritchie.
Ritchie e stato uno di quegli uomini che certamente avrebbe meritato l' appellativo di genio, uno di quegli uomini che i media, tutti, avrebbero dovuto ricordare come tale se non altro per il contributo vero che ha dato all 'informatica, d' altronte Ritchie non vendeva aggeggi alla moda, non e stato un buon markettaro di oggetti cool quindi non vale la pena di riservargli qualche riga come avrebbe meritato.
Tantomeno non avrebbe voluto lacrime ipocrite di gente falsa e opportunista ma un ricordo sincero si.
Addio Dennis Ritchie, il Mondo dei computers ti deve molto, addio genio vero.
13 ottobre 2011
21 settembre 2011
Personalizzare il prompt della bash
Ecco alcuni casi di personalizzazione del vostro prompt senza incasinarlo troppo. Per vedere come è formato il vostro prompt della shell, basta eseguire echo $PS1(esistono anche una PS2, PS3, e una PS4, ma non le prenderemo in considerazione). Il quale stampa la variabile d' ambiente settata in un file nascosto quale .bash_profile o .bashrc, a secondo di quello che viene trovato nella vostra /home/user.
Prendiamo come esempio la bash nella mia linux box,
archie@fobia:~$ echo $PS1
ritorna come output PS1="\u@\h:\w\$ " che corrisponde ai valori impostati nel seguente modo:
\u@ = archie ovvero l' utente del sistema.
\h: = l' host ovvero il nome della nostra macchina preceduta dai due punti.
\w = la directory corrente ovvero la tilde.
\$ = il segno del dollaro ci segnala il tipo di user al lavoro. Mentre il cancelletto #, equivale all' utente root.
Ecco altri semplici esempi di prompt:
PS1="[\u]$ " corrisponde al seguente esempio [archie]$
PS1="\w:$ " corrisponde al seguente esempio ~:$
PS1="\t " corrisponde all' orario del sistema 12:21:05
PS1="\h\w\t " corrisponde al seguente esempio fobia~12:21:05
questi sono i caratteri speciali usati con più frequenza :
\d SIGNIFICATO data
\h SIGNIFICATO nome host
\s SIGNIFICATO nome della shell
\t SIGNIFICATO ora corrente
\u SIGNIFICATO nome utente
\w SIGNIFICATO directory corrente
\[ SIGNIFICATO inizio caratteri non stampabili
\] SIGNIFICATO fine caratteri non stampabili
per la lista completa dei caratteri speciali, vi rimando alla Bash Prompt HOWTO dove potrai approfondire, tra l' altro come rendere colorato, e in alcuni casi di cattivo gusto il tuo prompt della shell. Il mio consiglio e di avere un prompt quanto più pulito e il meno appariscente possibile, ne trarranno beneficio i vostri occhi.
Ecco alcuni esempi di come colorare il tuo prompt della bash:
PS1=”\033[1;31m\u@\h\w\$\033[0m “
la prima parte "\033[1;31m\u@\\h\w\$\033 indica che è di colore rosso, poi tutto quello che viene dopo [0m " diventa di colore grigio.
I colori per personalizzare il testo sono:
0 dark
1 brillante
4 sottolineato
5 lampeggiante
7 inverso
mentre la m serve per la chiusura delle sequenze dei caratteri non stampabili.
PS1=”\033[0;37m\033[1;41m\u@\h:\w$ “
in quest' altro esempio il testo è di colore grigio ”\033[0;37m, su sfondo rosso \033[1;41m
Questi sono i codici dei colori:
E mia premura, PRIMO ricordarti di lasciare uno spazio tra l' ultimo carattere di escape(es: \t ") e le virgolette di chiusura in modo da evitare che il testo da digitare sia attaccato al prompt(es: archie@fobia:~$echo).
E SECONDO che per rendere permanenti le modifiche che apportate al prompt, ce bisogno che le scriviate all' interno di uno dei file sopra citati (.bash_profile o .bashrc).
Prendiamo come esempio la bash nella mia linux box,
archie@fobia:~$ echo $PS1
ritorna come output PS1="\u@\h:\w\$ " che corrisponde ai valori impostati nel seguente modo:
\u@ = archie ovvero l' utente del sistema.
\h: = l' host ovvero il nome della nostra macchina preceduta dai due punti.
\w = la directory corrente ovvero la tilde.
\$ = il segno del dollaro ci segnala il tipo di user al lavoro. Mentre il cancelletto #, equivale all' utente root.
Ecco altri semplici esempi di prompt:
PS1="[\u]$ " corrisponde al seguente esempio [archie]$
PS1="\w:$ " corrisponde al seguente esempio ~:$
PS1="\t " corrisponde all' orario del sistema 12:21:05
PS1="\h\w\t " corrisponde al seguente esempio fobia~12:21:05
questi sono i caratteri speciali usati con più frequenza :
\d SIGNIFICATO data
\h SIGNIFICATO nome host
\s SIGNIFICATO nome della shell
\t SIGNIFICATO ora corrente
\u SIGNIFICATO nome utente
\w SIGNIFICATO directory corrente
\[ SIGNIFICATO inizio caratteri non stampabili
\] SIGNIFICATO fine caratteri non stampabili
per la lista completa dei caratteri speciali, vi rimando alla Bash Prompt HOWTO dove potrai approfondire, tra l' altro come rendere colorato, e in alcuni casi di cattivo gusto il tuo prompt della shell. Il mio consiglio e di avere un prompt quanto più pulito e il meno appariscente possibile, ne trarranno beneficio i vostri occhi.
Ecco alcuni esempi di come colorare il tuo prompt della bash:
PS1=”\033[1;31m\u@\h\w\$\033[0m “
la prima parte "\033[1;31m\u@\\h\w\$\033 indica che è di colore rosso, poi tutto quello che viene dopo [0m " diventa di colore grigio.
I colori per personalizzare il testo sono:
0 dark
1 brillante
4 sottolineato
5 lampeggiante
7 inverso
mentre la m serve per la chiusura delle sequenze dei caratteri non stampabili.
PS1=”\033[0;37m\033[1;41m\u@\h:\w$ “
in quest' altro esempio il testo è di colore grigio ”\033[0;37m, su sfondo rosso \033[1;41m
Questi sono i codici dei colori:
Nero 0;30
Rosso 0;31
Verde 0;32
Marrone 0;33
Blu 0;34
Viola 0;35
Ciano 0;36
Grigio Chiaro 0;37
Grigio Scuro 1;30
Rosso Chiaro 1;31
Verde Chiaro 1;32
Giallo 1;33
Blu Chiaro 1;34
Verde Chiaro 1;35
Ciano Chiaro 1;36
Bianco 1;37
Rosso 0;31
Verde 0;32
Marrone 0;33
Blu 0;34
Viola 0;35
Ciano 0;36
Grigio Chiaro 0;37
Grigio Scuro 1;30
Rosso Chiaro 1;31
Verde Chiaro 1;32
Giallo 1;33
Blu Chiaro 1;34
Verde Chiaro 1;35
Ciano Chiaro 1;36
Bianco 1;37
E mia premura, PRIMO ricordarti di lasciare uno spazio tra l' ultimo carattere di escape(es: \t ") e le virgolette di chiusura in modo da evitare che il testo da digitare sia attaccato al prompt(es: archie@fobia:~$echo).
E SECONDO che per rendere permanenti le modifiche che apportate al prompt, ce bisogno che le scriviate all' interno di uno dei file sopra citati (.bash_profile o .bashrc).
10 maggio 2011
04 gennaio 2011
Compilazione Base di un Sorgente C
Compilare un Sorgente CUsando Gnu/Linux prima o poi ci si ritrova inevitabilmente(almeno per chi smanetta) ad avere a che fare con il linguaggio C. Tra l'altro era mia intenzione con l' arrivo del nuovo anno di imparare il linguaggio C quindi eccomi qua a scriverne.
Vediamo come compilare un sorgente minimale in C che ci fornisce in output il famosissimo Hello World, con cui hanno avuto a che fare(almeno agli inizi) anche i guru del C.
Apriamo il nostro editor preferito e scriviamo il nostro sorgente che salveremo nel file dal nome hello.c
#include
main ()
{
printf("Hello World\n");
}
poi proseguiamo con la semplice compilazione con gcc hello.c, che crea il file di nome a.out
[archie@fobia ~]$ gcc hello.c
[archie@fobia ~]$ ls
a.out hello.c Modelli Pubblici Scrivania
Documenti Immagini Musica Scaricati Video
che possiamo eseguire con il comando di esecuzione ./a.out, che produce il nostro Hello World a video
[archie@fobia ~]$ ./a.out
Hello World!
mentre usiamo l'opzione -c di gcc per una compilazione intermedia che crea il file oggetto hello.o
[archie@fobia ~]$ gcc -c hello.c
[archie@fobia ~]$ ls
a.out hello.c Immagini Musica Scaricati Video
Documenti hello.o Modelli Pubblici Scrivania
e ne visualizziamo il suo contenuto tramite il comando file
[archie@fobia ~]$ file hello.o
hello.o: ELF 32-bit LSB relocatable, Intel 80386, version 1 (SYSV), not stripped
invece se vogliamo creare del codice assembler dal nostro sorgente c, l'opzione -S crea il nostro hello.s che e per l' appunto un file assembler
[archie@fobia ~]$ gcc -S hello.c
[archie@fobia ~]$ ls
a.out hello.c hello.s Modelli Pubblici Scrivania
Documenti hello.o Immagini Musica Scaricati Video
[archie@fobia ~]$ cat hello.s
.file "hello.c"
.section .rodata
.LC0:
.string "Hello World!"
.text
.globl main
.type main, @function
main:
pushl %ebp
movl %esp, %ebp
andl $-16, %esp
subl $16, %esp
movl $.LC0, (%esp)
call puts
leave
ret
.size main, .-main
.ident "GCC: (GNU) 4.4.4 20100630 (Red Hat 4.4.4-10)"
.section .note.GNU-stack,"",@progbits
per visualizzare i tempi della compilazione usiamo il comando -time
[archie@fobia ~]$ gcc -time hello.c -o hello.c
# cc1 0.02 0.01
# as 0.00 0.01
# collect2 0.04 0.01
[archie@fobia ~]$
per un resocondo completo di gcc supporto al debug -g, linking ldd, ottimizzazione del codice ON, e molto altro, consiglio di scaricarvi la relativa manualistica in uno dei suoi molteplici formati.
Etichette:
Assembly,
C,
GCC,
Gnu/Linux,
Programmazione
03 gennaio 2011
Verifica dell' OS con sys.platform
Identificare il Sistema Operativo su cui gira l' interprete python, tramite il metodo platform del modulo sys .
Ci sono diversi modi di identificare su quale versione di OS gira l'interprete python:
la versione "classica" sys.platform == "win32" or sys.platform == "dos", oppure sys.platform[:3] == "win", o anche sys.platform.startswith('win')
oppure il nuovo metodo aggiunto nella versione python2.6, dove vediamo un esempio reale.
dove stampa una tupla di major e minor built, la piattaforma 2 (nel mio pc xp) con service pack 3.
I codici completi di equivalenza sono:
0 win32 o windows3.1
1 Windows95-Windows98-WindowsME
2 WindowsNT-Windows2000-WindowsXP-x64
3 Windows CE
E il metodo "classico" o il più usato dai programmatori python ovvero sys.platform
il metodo platform contiene altri identificatori di piattaforma quali:
cygwin, sunos5, palmOS3, os2, riscos, atheos.
Per approfondire l'argomento non resta che spulciare la meravigliosa Library Reference e il relativo modulo sys con platform.
Ci sono diversi modi di identificare su quale versione di OS gira l'interprete python:
la versione "classica" sys.platform == "win32" or sys.platform == "dos", oppure sys.platform[:3] == "win", o anche sys.platform.startswith('win')
oppure il nuovo metodo aggiunto nella versione python2.6, dove vediamo un esempio reale.
>>> import sys
>>> sys.getwindowsversion()
(5, 1, 2600, 2, 'Service Pack 3')
>>>
dove stampa una tupla di major e minor built, la piattaforma 2 (nel mio pc xp) con service pack 3.
I codici completi di equivalenza sono:
0 win32 o windows3.1
1 Windows95-Windows98-WindowsME
2 WindowsNT-Windows2000-WindowsXP-x64
3 Windows CE
E il metodo "classico" o il più usato dai programmatori python ovvero sys.platform
import sys
if sys.platform == "win32" or sys.platform == "dos":
print "sistema di casa Microsoft"
print sys.api_version
elif sys.platform == "linux1386" or sys.platform == "linux2":
print "sistema di tipo Gnu/Linux"
print sys.api_version
elif sys.platform == "bsd" or sys.platform == "darwin":
print "sistema di tipo bsd"
print sys.api_version
else:
print " |sistema non riconosciuto!| "
[output]
sistema di casa Microsoft
1013
il metodo platform contiene altri identificatori di piattaforma quali:
cygwin, sunos5, palmOS3, os2, riscos, atheos.
Per approfondire l'argomento non resta che spulciare la meravigliosa Library Reference e il relativo modulo sys con platform.
02 novembre 2010
Installare le GTK+ su Windows
Perché dovremmo installare le gtk+ come librerie grafiche per le nostre applicazioni Windows?
Provo a spiegare in due risposte quelle che sono le mie motivazioni! Particolare a parte che amo Gnome(DE)che e completamente scritto con il toolkit GTK+ ed è multi piattaforma. Una grande spinta(a mio parere) la dà la licenza LGPL che permette allo sviluppatore di poter rilasciare le sue applicazioni, oltre che con licenza free, anche con licenza commerciale il che non e poco.
Il toolkit GTK+ oltre al linguaggio C con cui e completamente scritto ha binding per molti linguaggi quali il C++ con GTKmm, Python, Vala, Perl, Ruby e molti altri.
Io vi consiglio quello per Python, dovrete scaricare tre .exe Pygtk, PyGobject, e Pycairo, se volete anche un costruttore d' interfacce grafico scaricate anche Glade3 vi semplifica il lavoro di parecchio.
Installare le GTK+ su Windows e di una facilità disarmante, ma dovrete fare il login da amministratore.
Ecco come fare: puntiamo il nostro browser su http://www.gtk.org/ e consigliato scaricare il pacchetto tar.gz(in assenza di un comodo pacchetto .exe) ufficiale che reca la dicitura All-in-one bundles versione 2.22 salviamolo sul nostro desktop. Poi tramite risorse del compiuter andiamo in C:\ dove creeremo le cartelle opt\gtk per contenere tutto il pacchetto che andremo a scompattare con un programma come 7zip in \gtk.
Poi settiamo la variabile d'ambiente da Pannello di controllo-> Prestazioni e manutenzione-> Sistema-> premiamo la tab Avanzate-> Variabili d'ambiente e dalla maschera che appare premiamo modifica e aggiungiamo il percorso alle gtk ;C:\opt\gtk\bin come da immagine e salvate come richiesto dalle varie maschere. Tutto qui!

Credo che come me, la maggior parte di voi voglia il tema nativo di windows, quindi create un nuovo file vuoto con nome gtkrc e salvatelo nella cartella \etc\gtk-2.0 dove al suo interno aggiungiamo il seguente testo:gtk-theme-name = "MS-Windows" e salviamo.
Per la prova del 9 ovvero se tutto e andato a posto aprite il Prompt dei comandi e scrivete gtk-demo.exe vi dovrebbe apparire la demo dimostrativa come da immagine altrimenti
verificate bene i passaggi e riprovate.

nb. se avete problemi potete contattarmi, nel mio piccolo cerchero di aiutarvi.
Provo a spiegare in due risposte quelle che sono le mie motivazioni! Particolare a parte che amo Gnome(DE)che e completamente scritto con il toolkit GTK+ ed è multi piattaforma. Una grande spinta(a mio parere) la dà la licenza LGPL che permette allo sviluppatore di poter rilasciare le sue applicazioni, oltre che con licenza free, anche con licenza commerciale il che non e poco.
Il toolkit GTK+ oltre al linguaggio C con cui e completamente scritto ha binding per molti linguaggi quali il C++ con GTKmm, Python, Vala, Perl, Ruby e molti altri.
Io vi consiglio quello per Python, dovrete scaricare tre .exe Pygtk, PyGobject, e Pycairo, se volete anche un costruttore d' interfacce grafico scaricate anche Glade3 vi semplifica il lavoro di parecchio.
Installare le GTK+ su Windows e di una facilità disarmante, ma dovrete fare il login da amministratore.
Ecco come fare: puntiamo il nostro browser su http://www.gtk.org/ e consigliato scaricare il pacchetto tar.gz(in assenza di un comodo pacchetto .exe) ufficiale che reca la dicitura All-in-one bundles versione 2.22 salviamolo sul nostro desktop. Poi tramite risorse del compiuter andiamo in C:\ dove creeremo le cartelle opt\gtk per contenere tutto il pacchetto che andremo a scompattare con un programma come 7zip in \gtk.
Poi settiamo la variabile d'ambiente da Pannello di controllo-> Prestazioni e manutenzione-> Sistema-> premiamo la tab Avanzate-> Variabili d'ambiente e dalla maschera che appare premiamo modifica e aggiungiamo il percorso alle gtk ;C:\opt\gtk\bin come da immagine e salvate come richiesto dalle varie maschere. Tutto qui!

Credo che come me, la maggior parte di voi voglia il tema nativo di windows, quindi create un nuovo file vuoto con nome gtkrc e salvatelo nella cartella \etc\gtk-2.0 dove al suo interno aggiungiamo il seguente testo:gtk-theme-name = "MS-Windows" e salviamo.
Per la prova del 9 ovvero se tutto e andato a posto aprite il Prompt dei comandi e scrivete gtk-demo.exe vi dovrebbe apparire la demo dimostrativa come da immagine altrimenti
verificate bene i passaggi e riprovate.

nb. se avete problemi potete contattarmi, nel mio piccolo cerchero di aiutarvi.
Etichette:
C,
Glade,
GTK+,
Pygtk,
Windows-OS,
Windows-XP
29 ottobre 2010
La Privacy su Facebook? Al Momento Non Esiste!
Dopo l' ennesimo cambio di Policy sulla privacy, gli utenti di Facebook che in teoria dovrebbero "sentirsi" almeno un pochino più tranquilli hanno invece un bel pò di preoccupazioni in più.L' ultimo "giochino" per spioni, e quanti hanno interessi nel rovistare nella vostra vita virtuale(che poi tanto virtuale non è) su facebook si chiama Firesheep. Firesheep e una delle tante estensioni che rendono grande il browser Firefox.
Un ficcanaso con l' uso di firesheep, dopo avere installato Winpcap per dirottare la connessione http(via rete WI-FI) riesce a impadronirsi del vostro account facebook con pochi semplici clic.
Voglio ricordare a quanti credono di essere in una botte di ferro usando applicazioni web che il web stesso è intrisecamente insicuro.
Iscriviti a:
Post (Atom)





