Il bug del 29 febbraio

Penso di aver trovato uno dei bug più rari della storia dell’informatica questa mattina. Un bug che negli ultimi 7 anni si è verificato una sola volta. Oggi.
Un cliente ha un po’ di macchine disponibili al pubblico; queste sono configurate come kiosk per la navigazione in internet e l’utilizzo di svariati software selezionati. Il software che gestisce questi kiosk oggi non ne voleva sapere di funzionare perché è (tuttora) affetto da un simpatico bug: il genio del programmatore di questa meraviglia della tecnologia fa compiere al software un qualche controllo basato sulla data di inizio e di fine mese, ma non ha tenuto conto degli anni bisesti: sostanzialmente per questo programma febbraio ha 28 giorni. Sempre.

Technorati Tags: , , ,

Aggiornare Garmin Nüvi 760 con GNU/Linux

Dando un’occhiata alla pagina degli aggiornamenti software dei prodotti Garmin ho notato che lo scorso 29 gennaio è stato rilasciato un nuovo firmware per il mio navigatore. Il file scaricato è uno zip eseguibile (per Windows) che contiene il software (per Windows) per eseguire l’upgrade, ma è possibile aggiornare il navigatore GPS anche da Linux.

Per prima cosa scarichiamo il file contenente il nuovo firmware e decomprimiamolo:

mkdir /tmp/garmin
cd /tmp/garmin
wget http://www8.garmin.com/software/nuvi760_260.exe
unzip nuvi760_260.exe

Colleghiamo il navigatore al pc tramite il cavo USB e aspettiamo che il dispositivo venga automagicamente montato dal sistema operativo (/media/GARMIN nel mio caso).
Ora copiamo i file necessari all’aggiornamento sul navigatore:

cp nuvi7xx/Garmin/* /media/GARMIN/Garmin/
sync

Smontiamo il navigatore e scolleghiamolo fisicamente dalla presa USB:

sudo umount /media/GARMIN

Il navigatore si riavvierà, mostrando per circa un minuto sul display la scritta “Loading”.
L’aggiornamento è così completato e per verificare l’attuale versione del software entrate nel menù strumenti->impostazioni->sistema->info: in alto a sinistra è presente la versione del firmware.

Technorati Tags: , , , ,

È così difficile scegliere?

Prendo spunto da un post di Carlo Perassi per buttar giù due righe sul perché ho scelto PHP.
Quando quasi 10 anni fa “dovetti” (più che altro me lo sono imposto, già allora ero convinto che le web application sarebbero state il futuro) scegliere un linguaggio di programmazione per il web ridussi le scelte a due: PHP o ASP. Devo dire che all’epoca non era così forte in me la passione per il software libero, quindi la scelta non si basò anche su questo punto, ma invece sulla facilità di ottenere informazioni, esempi pratici ed aiuto dalla comunità: Mi è stato impossibile trovare un manuale online decente per ASP, mentre PHP lo offriva in svariati formati e lingue, non ho trovato un tutorial decente per ASP, mentre ce n’erano una infinità su PHP (uno in particolare in italiano, su php.html.it), non ho trovato librerie decenti per ASP, mentre per PHP c’erano già PEAR e PHPClasses.
Nel tempo ho visto crescere PHP, passando di versione in versione, in sicurezza e funzionalità, e ho visto decine di validi prodotti che facilitano lo sviluppo di applicazioni (ultimamente sono diventato un grande fan di Symfony, e ho fatto pure proseliti ;)), ma non ho visto lo stesso movimento sul lato ASP…

Cosa avreste scelto voi al posto mio?

Technorati Tags: , , , ,

Bye bye PHP 4

Finalmente PHP4 è morto! Ieri è stata rilasciata l’ultima release standard, la 4.4.8: da oggi, fino al 08/08/08 ci saranno rilasci solo in caso di estrema necessità (A.K.A. critical bugs).

Però, come passa il tempo quando uno si diverte: io cominciai a programmare in PHP usando le prime versioni di PHP3!

Technorati Tags:

Un Mac Address casuale? Grazie Asus!

Oggi mi sono imbattuto in una cosa assai curiosa: una scheda di rete che ad ogni riavvio cambia mac address! Sarebbe una cosa bellissima se fosse una scheda wifi e “dovessi” attaccarmi a scrocco a qualche rete wireless lasciando tracce confuse (esiste già un programma che fa ciò: macchanger), ma si tratta di un assemblato che dovrà fare da piccolo file server usando Debian Etch (cos’altro sennò?) e questo comportamento non mi piace per niente.
Questo quello che si legge a boot su una Debian Etch fresca di installazione (ed adeguatamente aggiornata):

Linux version 2.6.18-5-686 (Debian 2.6.18.dfsg.1-13etch5) (dannf@debian.org) (gcc version 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)) #1 SMP Sat Dec 1 22:58:58 UTC 2007
.
.
.
forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.56.
ACPI: PCI Interrupt Link [LMAC] enabled at IRQ 11
PCI: setting IRQ 11 as level-triggered
ACPI: PCI Interrupt 0000:00:07.0[A] -> Link [LMAC] -> GSI 11 (level, low) -> IRQ 11
PCI: Setting latency timer of device 0000:00:07.0 to 64
forcedeth: using HIGHDMA
0000:00:07.0: Invalid Mac address detected: e9:27:1e:60:1d:00
Please complain to your hardware vendor. Switching to a random MAC.

Scavando e ravanando in Internet scopro che alcuni produttori di schede madre (Asus prima fra tutte) per risparmiare qualche soldo non impostano il MAC Adddress della scheda di rete in maniera permanente nella EEPROM (dove dovrebbe giustamente stare) ma lasciano che sia il BIOS a settarlo, durante il POST della macchina, nel MAC Register.
Fortunatamente gli sviluppatori del Kernel se ne sono accorti e hanno rilasciato una patch, inclusa dal febbraio 2007 nel Kernel.

La Soluzione? Scaricare, compilare un kernel ≥ 2.6.21 e installarlo sulla macchina. Per comodità mia e vostra di seguito un breve vademecum sulla compilazione del kernel su debian ;)


apt-get install kernel-package libncurses5-dev fakeroot wget bzip2 build-essential
cd /usr/src
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.23.12.tar.bz2
tar jxvf linux-2.6.23.12.tar.bz2
ln -s linux-2.6.23.12 linux
cd /usr/src/linux
make clean && make mrproper
cp /boot/config-`uname -r` ./.config // qui per comodità mi copio la configurazione del kernel 2.6.18 debian
make menuconfig // caricare il file .config con Load an Alternate Configuration File
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-endelwar kernel_image kernel_headers
cd ..
dpkg -i linux-*-2.6.23.12-endelwar_2.6.23.12-endelwar-10.00.Custom_i386.deb

Microsoft ci spiega come salvare Windows usando Linux

No, non è il primo di aprile, e non ho sbagliato l’ordine del soggetto e complemento oggetto nel titolo.
Su Port25, sito dedicato all’opensource e gestito da Microsoft, è stato pubblicato un documento (un pdf di 8 pagine) che spiega passo passo le operazioni da svolgere per creare una immagine uno a uno di un hard disk o di una partizione e recuperare in seguito, utilizzando The Coroner’s Toolkit, i dati presenti sull’immagine appena creata.
Niente di che insomma, how-to come questi se ne trovano a bizzeffe su internet, sempre che uno sappia cosa sia Linux e che strumenti ci siano a disposizione per la forensics analysis, cosa penso non ovvia per un utilizzatore windows.

sfLlooggPlugin – Un nuovo plugin per Symfony

Hello international Symfony readers, an english version of this post is available below.

Ho pubblicato un altro plugin per Symfony, questa volta mi sono buttato su filtro, quel tipo di plugin che processa l’output prima di fornirlo al web server o ad un altro filtro.
Lo scopo di sfLlooggPlugin è quello di aggiungere poco prima del </body> il codice javascript necessario per raccogliere le statistiche di visita del vostro sito (scritto in Symfony ovviamente) in realtime, grazie ad un ottimo prodotto italiano: LLOOGG.
Il servizio è attualmente in beta e per poterlo provare è necessario un invito, se ne volete uno lasciate un commento qui sotto (e non dimenticate di lasciare una mail valida, altrimenti dove lo mando ‘sto invito?)

I’ve published another symfony plugin, this time I’ve written a filter, that kind of plugin that processes output before passing it to the web server or another filter.
sfLlooggPlugin adds just before the </body> tag the javascript needed to collect realtime statistics on you site (obviously written in Symfony), thanks to a very good Italian service: LLOOGG.
This service is actually in private beta and if you want to try it you’ll need an invite; if you want one of it leave a comment below (and remember to write a valid email, or I cannot send you the invite!).

Pubblicato 2eventi.it (finalmente)

Finalmente ieri, tra un’aspirina e un aulin, ho messo online 2eventi: non è un alfa, non è una beta, è una omega! Questo significa che le funzionalità base ci sono tutte e sono state testate e rodate dai ragazzi di SonsOf, ma molti gadget devono ancora essere testati e pubblicati, ma preferisco siano gli stessi utenti del sito a suggerirmi che strumenti vorrebbero nel sito.
È stato aperto anche un blog per 2eventi, luogo di incontro con gli utenti del sito: li verranno annunciate le novità e ricevuto il feedback dagli utilizzatori.

Avanti correte ad iscrivervi e pubblicare i vostri eventi!