13 ottobre 2011

Morto Dennis Ritchie A Lui Dobbiamo Il Linguaggio C E UNIX

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.

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:

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


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

Google Chrome Hackerato!

Sotto il video messo a disposizione dai ricercatori di Vupen che hanno implementato lo zero-day.


04 gennaio 2011

Compilazione Base di un Sorgente C

Compilare un Sorgente C

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

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.

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

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.