Hackmeeting 2009
Posted: Giugno 16th, 2009 | Author: packz | Filed under: Hack, Life, Politica | Commenti disabilitati su Hackmeeting 2009Anche quest’anno è hackmeeting…
E ricordatevi "home fucking is killing prostitution"…
Anche quest’anno è hackmeeting…
E ricordatevi "home fucking is killing prostitution"…
Dopo una bottiglia di nero d’avola sono riuscito a costruire un castello di carte usando tutto il mazzo; nella mia vita mai ero riuscito a costruire ciò…
Read the rest of this entry »
Domanda per il cittadino attento: perché anche se il 26 aprile era l’anniversario della tragedia di Cernobil nessun telegiornale ne ha parlato?
Tutto è iniziato nel 1972 con la invenzione del floppy disc da parte dell’IBM; esso permetteva di creare per la prima volta reti di scambio di materiale informatico, le cosidette sneakernet, usate ancora oggi nell’ottica di un rapporto latency/throughput invidiabile (c’è gente che spedisce hard disk per posta) ma che ai tempi venivano ostacolati dalle industrie per paura di diffusione illegale di contenuti: don’t copy that floppy è (forse) la prima campagna antipirateria e non può non farci sorridere.
In maniera uguale, forse fra qualche decina di anni, ci farà sorridere la sentenza che ha colpito i baldi giovani di piratebay: condannati ad un anno di reclusione e a pagare un milione di euro a testa in quanto accusati di "assisting in making copyright content available"; i nostri non si sono demoralizzati e hanno risposto con "But as in all good movies, the heroes lose in the beginning but have an
epic victory in the end anyhow. That’s the only thing hollywood ever
taught us".
In seguito al commento della notizia
Si danno fuoco per finire su YouTube:
due adolescenti in ospedale
il mio amico uedra, dominatore dei database, mi ha risposto "rischiare il coma etilico come noi è troppo da sfigati?". Certo che i Darwin Awards devono essere un premio veramente ambito…
Il difficile è capire quando un driver funziona/viene installato correttamente su un sistema linux: piccolo elenco (ancora incompleto) di comandi:
dmesg è il file dei messaggi del kernel che può dare informazioni rilevanti riguardanti nuove periferiche che il nostro amato "nocciolo" può aver trovato dopo ore di scleri; è consigliabile data la lunghezza di questo file di usare dmesg | tail in modo da avere solo le ultime righe (se si sta cercando di installare un driver BROADCAM che dio se lo porti via, e escono le righe
b43-phy0 ERROR: You must go to http://linuxwireless.org/en/users/Drivers/b43#devicefirmware and download the latest firmware (version 4).
allora la soluzione è già scritta!!!).
lspci è il comando che restituisce il codice, la descrizione e quant’altro relativamente ai device fisicamente collegati alla scheda madre. Esiste questo sito che è la svolta: gli dai l’output di lspci -n e lui di risposta ti dà quali driver servono ;-).
ifconfig restituisce le periferiche di rete correttamente impostate dal kernel (eth0 -> wired, eth1| wlan0 -> wireless, irda0 -> infrarossi).
A furia di lavorare al computer ho imparato un paio di cosette veramente cool… prima di tutto però una introduzione su cosa è la shell: l’oggetto che ci permette l’interazione su un sistema *nix, chiamato solitamente terminale, benché abbia un’aria così anni 70 permette un macello di azioni simpatiche e performanti.
Prima di tutto la linea di comando di solito è preceduta da un cosidetto prompt, cioè l’indicatore dello stato del terminale (ne esistono 4 diversi) utile per avere informazioni riguardanti la directory in cui ci troviamo, il computer in cui ci troviamo (il cosidetto host) e che utente siamo (cose non date per scontate in un sistema multiutente). Quando viene eseguito un comando all’interno succede una cosa carina:viene eseguita una chiamata di sistema che sostituisce il processo con quello eseguito (la execv e famiglia) con una piccola accortezza dovuta al fatto che ci sono due tipi di programmi, gli eseguibili e gli script; i secondi hanno la particolarità di necessitare di un interprete per funzionare (può essere la stessa shell, può essere l’interprete python, awk etc…). Proprio a questo scopo esiste il cosidetto numero magico del file: siccome il computer non può fidarsi della estensione del file per riconoscerne la natura, visto che l’estensione non è neanche una specifica di nessun tipo se non per winzoz, legge i primi 3/4 byte di un file per riconoscerlo attraverso una segnatura, chiamata appunto numero magico; provate a eseguire su un file PNG il comando head -c 4 e vedrete che uscirà una stringa contenente proprio il formato. Nel caso di un file di script, la sequenza magica è #!, seguita dal percorso dell’interprete. Se quindi viene chiesto di eseguire un file ‘mioscriptpaura.sh‘ che ha al suo interno come prima riga la sequenza #!/bin/sh, il sistema eseguirà invece /bin/sh mioscriptpaura.sh.
Ogni programma *nix può essere immaginato come una scatola nera, di cui non conosciamo l’implementazione, impegnata in un’azione particolare sul suo input per restituire un output diverso, tenendo conto anche di eventuali messaggi di errore o di log relativi all’azione particolare; ad ognuno di questi flussi di dati (detti stream) è associato un file descriptor, chiamati rispettivamente standard input, standard output e standard error. La cosa carina è che è possibile concatenare comandi per ottenere una cosidetta pipeline e generare tramite sequenza di comandi semplici, azioni complesse; il modo attraverso cui questo è possibile è la pipe, ottenuta attraverso il carattere |. Per fare un esempio, se necessitiamo di controllare se è stata montata la partizione di swap del sistema al boot, dovremmo spulciare le righe di dmesg una ad una, ma usando grep, comando che cerca l’occorrenza di una data stringa in un file, possiamo facilitarci la vita nella seguente maniera
$ dmesg | grep swap
[ 28.276971] Adding 2931852k swap on /dev/sda2. Priority:-1 extents:1 across:2931852k
Ovviamente il carattere | non può essere utilizzato normalmente, ma deve essere trattato con cura (provate a creare una file che lo contenga ;-)). Altre ficate della shell *nix sono la redirezione degli stream descritti sopra: magari noi vogliamo salvare il risultato della elaborazione su un file oppure prendere un file come standard input per un comando e proprio per questo ecco la magia
COMANDO < INPUT_FILE
COMANDO > OUTPUT_FILE
COMANDO >> OUTPUT_FILE
COMANDO < INPUT_FILE > OUTPUT_FILE
COMANDO < INPUT_FILE >> OUTPUT_FILE
Nel primo caso usiamo le righe di INPUT_FILE come se fossero scritte direttamente sul terminale dopo aver avviato COMANDO (equivalente peraltro a cat INPUT_FILE | COMANDO), nel secondo caso in OUTPUT_FILE viene scritto il risultato dell’esecuzione di COMANDO; il terzo caso è l’unione dei due precedenti. Particolare attenzione riveste l’operatore >> che apre il file in questione e aggiunge alla fine il risultato del comando (l’operatore > nel caso esista già il file e non sia vuoto, lo riscrive da zero).
Esiste anche l’operatore << che permette di ottenere i cosiddetti Here document; eseguendo
cat <<EOF > porcatroia.txt
sei solo una troia, pensi solo ai $soldi
EOF
ottieni nel file porcatroia la riga "sei solo una troia, pensi solo ai ", la mancanza di $soldi è dovuto al fatto che la shell cerca di sostituirlo con una variabile, per essere riprodotto testualmente, bisogna quotare EOF, ma quello del quoting nella prossima puntata.
Per finire mostro solo la presenza di ulteriori operatori logici presenti nella shell: un programma può nella sua esecuzione incontrare dei problemi/errori dovuti a situazioni particolari (disco pieno, file inesistente, digos) e quindi può comunicarlo alla shell tramite il suo valore di ritorno: nel caso questo sia diverso da zero allora c’è stato un problema altrimenti è tutto ok. La variabile che contiene il valore di ritorno è $?.
Bene, questo può essere usato per concatenare comandi; nel caso vogliamo eseguire un dato comando dopo il successo di un altro dobbiamo porre l’operatore && tra di essi. Nel caso in cui vogliamo eseguire un comando nel caso il primo fallisca, si usa l’operatore ||. Ovviamente non potrete utilizzare normalmente questi comandi in nomi di file.
Questa settimana ho avuto la discussione della tesi di dottorato (che è abbastanza una farsa, diciamolo) e quindi raggiungendo il titolo di studio più alto conseguibile in italia posso scriverlo sul campanello di casa, causando l’invidia delle mie vicine di casa ottantenni… nel frattempo, con il solo ausilio dei peli della mia barba sono riuscito a bloccare il lavandino del bagno e convinto di avere uno stura-cessi ho passato varie giornate a cercarlo nel mio immenso bilocale, arrivando alla conclusione che in realtà l’oggetto in questione non sia mai esistito… 5.80€ il prezzo del magico utensile dal ferramenta sotto casa… in concomitanza sono riuscito a fulminare in rapida sequenza tutte le lampadine presenti nel lampadario in camera (che erano 3) e quindi adesso mi ritrovo a lavorare con le lampade dell’IKEA, mi serve una scala… tutto sommato non mi posso lamentare…
Per quanto riguarda l’argomento che dà il titolo al post, posso consigliarvi di giocare cinicamente a raid gaza (fonte qwerty) e magari leggere qualche post del buon vecchio maestro del te (quello dei razzi kassam del 2004 è imperdibile) come questo. Intanto vi lascio, anche se il mio desiderio di scrivere è molto forte… andate a fanculo…
Dopo essere tornato dal mercato e aver subito gli effetti delle basse temperature sulle mie dita (in culo al global warming) posso consigliarvi la lettura del buon xiaodong (che finalmente è ricomparso con i suoi magici post) relativa al discorso di fine anno del capo della maf… stato…