Visualizzazione post con etichetta delirio. Mostra tutti i post
Visualizzazione post con etichetta delirio. Mostra tutti i post

venerdì 28 agosto 2009

Comportamento anomalo nella Bash di Debian Testing

Oggi sono rimasto molto perplesso da un problema nella bash. Per fortuna mi ha fatto perdere poco tempo..
Ho la tendenza ad usare diversi shell script per le operazioni ripetitive, quindi stamattina lancio uno script per rigenerare le classi java di Apache Torque attraverso ant, farne un .jar e spostarlo dove mi serve.

E va in errore.

Pensando in un errore di configurazione inizio a dare un'occhiata ai log.. poi mi viene un dubbio e decido di fare girare l'applicazione java, per vedere quali modifiche sono state apportate ultimamente.
Lancio lo script che prepara l'ambiente per l'applicazione java:

shatsar@erakis:~/develop$ sh prepare-deploy.sh
prepare-deploy.sh: 2: pushd: not found
[.. altri errori]
shatsar@erakis:~/develop$ cat prepare-deploy.sh
#!/bin/bash
pushd /tmp
[.. altre operazioni]
shatsar@erakis:~/develop$ pushd /tmp
/tmp ~/develop
shatsar@erakis:/tmp$ cd
shatsar@erakis:~$ cd develop/
shatsar@erakis:~/develop$ chmod +x prepare-deploy.sh
shatsar@erakis:~/develop$ ./prepare-deploy.sh
/tmp ~/develop
[.. funziona tutto]


In definitiva credo sia un problema di inizializzazione della console figlia (creata lanciando sh ), tanto più che anche senza settare il flag x, basta fare


shatsar@erakis:~/develop$ source prepare-deploy.sh


Che esegue il file sh in questione nella shell corrente..
mah


UPDATE:
Il problema (verificatosi su debian testing) era dovuto ad un aggiornamento di settimana scorsa che aveva fatto puntare /bin/sh a /bin/dash invece che a /bin/bash. L'aggiornamento di oggi ripristina il tutto. Problema analizzato grazie all'intervento di Federico (nei commenti)

giovedì 23 aprile 2009

ffmpeg+ "Seems stream 0 codec frame rate differs from container frame rate"

Incredibile, dopo mezz'ora di tentativi ho scoperto che il problema era che il file di input era in audio 5.1 .. dico "incredibile" per il fatto che l'errore di ffmpeg di certo non aiutava, per cui non ho ben capito come ho fatto a risolverlo.. cmq il comando che uso ora per fare l'encoding di filmati per lo smartphone (che spiegavo qui) è diventato:

ffmpeg -i $input -s qvga -vcodec wmv2 -r 25k -acodec wmav2 -ar 22050 -ab 64k -ac 2 $output.wmv


con l'aggiunta di ac 2 per forzare la modalità stereo..

mercoledì 22 aprile 2009

Il suicidio continuo di Tilda

Come detto, sul portatile vecchio semidistrutto ho messo in autostart firefox e tilda, per avere il web ed una console sempre a portata di mano.

Ultimamente tilda rappresenta unicamente una rottura di palle. Per qualche motivo assurdo ogni tot si auto-sputtana il file di configurazione (~/.tilda/config_0) per cui sono costretto a cancellare la cartella e a riconfigurarlo..

Non ho ancora avuto tempo di indagare, ma per ora questo suo suicidio continuo in segmentation fault è abbastanza fastidioso.

Ho trovato che il problema era il file di configurazione lanciando tilda con strace, da cui ho visto che l'ultima syscall, prima di lanciare SIGSEGV, era una open sul file di configurazione..

che roba

sabato 18 aprile 2009

Giocando con la wireless

Mi sono preso un sabato di pausa.. abbastanza svacco ed un po' di smanettamenti vari..
Il dubbio da risolvere era questo: sul portatile nuovo, airodump vede le reti, riceve i beacon ma non sniffa neanche un po' il traffico dati. Volevo capire se era un caso o ha problemi il driver.

Quindi ho pensato di crearmi l'ambiente ideale a casa da bucare. Sul mio pc vecchio (quello che ora è una postazione internet) ho quindi deciso di riattivare la wireless.

Vado a cercare i driver che usavo per l'interruttore della wireless, l'fsam7400. Scopro che ormai sono obsoleti, ed è tutto molto ma molto più comodo:

> modprobe wistron_btns

premere il tasto hotkey della wireless.
Fatto.
Bello.
Parto, mi connetto alla rete e comincio a generare traffico: dall'altro portatile: airodump vede zero traffico. Scheda: intel 3945.
Pare ci siano dei problemi con i driver delle schede wireless Intel..

Ho anche un adattatore wireless usb, il dlink g122. Ora vedo quale dei due riesco a far funzionare senza perderci sopra il weekend..

domenica 8 marzo 2009

Va bene scrivere libri, ma bisogna anche saper distribuirli..

Piccola nota polemica verso il libro Producing Open Source.. o meglio, verso chi ha deciso come distribuirlo..
Infatti dopo aver letto i commenti positivi espressi su Coding Horror ho deciso di leggerlo.

Prima una digressione:
Da tempo ormai il poco che riesco a leggere è in forma di file chm decompilato da visualizzare splendidamente sullo smartphone durante i miei allegri spostamenti da pendolare.

Il motivo è che il formato pdf è scomodo. Infatti è vero che esiste il formato tagged pdf, per permettere il reflow (aumentando lo zoom la riga va a capo), ma i visualizzatori che li supportano sono a pagamento oppure non sono compatibili col mio smartphone. Per cui il dover continuare a fare lo scroll orizzontale per leggere la riga, poi tornare indietro per la riga successiva mi avrebbe fatto passare la voglia di leggere qualunque cosa.

La soluzione mi è venuta in mente quando avevo tra le mani un file in formato chm che mi interessava. Dopo aver cercato un viewer, ho pensato di affrontare il problema da un altro punto di vista: decompiliamolo.

Quindi ho apt-get installato arCHMage e ho iniziato a decompilare i chm, mettendo poi le cartelle contenenti i file html direttamente sullo smartphone. Si vedono bene, nel senso che si riesce a fare uno zoom adeguato e la riga va a capo per cui c'è da fare solo lo scroll verticale di tanto in tanto.

Da quando ho iniziato a sfruttare in questo modo il tempo perso sui mezzi pubblici ho sofferto meno l'infelice decisione di prendere questo smartphone..

Comunque il libro in questione (Producing Open Source Software) è disponibile gratuitamente in queste modalità:
* paginona singola online (credo che mi bloccherebbe lo smartphone per 10 minuti circa per caricarlo)
* multi-pagine online (perfetto, quello che voglio, c'è anche un archivio da scaricare con queste pagine?)
* pdf
* formato RocketBook (ho dovuto cercare in rete per capire che era un antenato del kindle)
* oppure tar.gz da 11MB con dentro pdf, sorgenti docbook, file per rocketbook, html singolo e html multi-pagina il tutto in 20 lingue diverse .. e per fortuna che non ho voluto lo zip, che supera 20MB ..

eh cazzo, avrei fatto prima a fare un download automatico con wget ..

Per altro ho dovuto modificare il css, che creava dei margini di 130px a destra e 130px a sinistra.. per uno schermo di 320px di larghezza non era proprio ottimale..

lunedì 16 febbraio 2009

Un'analisi di Conflicker

Da qualche giorno leggo continuamente di questo virus, chiamato conflicker che pare stia facendo una strage di PC, a livello dello storico Sasser del 2004. Per questione di tempo, finora, non ero riuscito a dedicar tempo a questo argomento. Ma oggi due cose mi hanno colpito a riguardo:
* la prima cosa è che Microsoft ha in pratica messo una taglia sugli sviluppatori del virus, 250 mila dollari. Non si vedeva una cosa del genere dai tempi del Sasser.
* la seconda, a cui dedicherò sicuramente un po' di tempo per una lettura approfondita è l'analisi di conflicker che, seppur pubblicata già dal 4 febbraio, è continuamente in lavorazione. E' un documento con un analisi del comportamento delle due varianti principali del worm con dettagli sul codice e sulle differenze. Purtroppo non è il massimo vedere che come Italia siamo nella top-ten dei paesi afflitti dal worm..

E dopo aver letto dettagli su questa "disgrazia" (per gli utenti windows), linko anche questo progetto davvero spettacolare: Python Interfacing a USB Missile Launcher.. è bello essere nerd

martedì 20 gennaio 2009

jQuery e brTip

In un progetto di un annetto fa avevo usato brTip per fare dei mouseover per visualizzare alcune informazioni. L'avevo già modificata per permettere di caricare via ajax il contenuto del tooltip, ma ogni tanto aveva un comportamento anomalo: sporadicamente mi spariva l'attributo "title" dell'elemento a cui avevo associato il brTip e da cui prende il testo da caricare nel tooltip stesso. Ebbene, era una cosa che non avevo mai debuggato seriamente, invece oggi mi sono intestardito, visto che volevo fare un po' di manutenzione ho dato un'occhiata, ed ecco il risultato:

il problema è che nel momento in cui si associa all'evento mouseover
svuota l'attributo title dell'elemento dell'albero dom a cui è associato.


self
.mouseover(function()
{
// Set content.
opts.txt = self.attr('title');
self.attr('title', '');

// Create the box.
_create();
})


Probabilmente serve a non far comparire anche l'attributo title per esempio sulle immagini..
Però in alcuni casi dovevo forzare la scomparsa degli eventuali popup presenti, questo comportava la non esecuzione dell'evento mouseout, che risistema il valore del title.. per ora ho aggiunto un flag per esplicitare di lasciare il title, in modo da essere compatibile con la release ufficiale.. però è una soluzione temporanea e non troppo elegante

Comunque generale questa plugin non mi è piaciuta tanto, ma quando avevo cercato era tra le più flessibili per creare tooltip con jQuery..

venerdì 16 gennaio 2009

Remote Capture?

Oggi ho riletto la pagina un progetto stupendo che mi aveva colpito parecchio già la prima volta che l'ho visto (più di un anno fa, appena mi avvicinavo al mondo del ds hacking): http://natrium42.com/halo/flight2/. Infatti oltre a questo progetto ha fatto cose interessanti anche sull'nds, per questo ero finito sul suo sito..

Veramente impressionante. La cosa che più mi ha interessato, oltre ai vari sensori, è il remote capture. Ovviamente per un progetto del genere c'è la necessità di automatizzare in qualche modo la macchina fotografica.
Visto che ho da diversi anni una kodak cx7525, ho deciso di dare un'occhiata a come funziona:

alrami:~# apt-get install gphoto2

attacco la macchina fotografica e comincio:

alrami:~# gphoto2 --list-ports
Dispositivi trovati: 7
Percorso Descrizione
----------------------------------------------------
disk:/ Media 'Volume (ext3)'
ptpip: PTP/IP Connection
serial:/dev/ttyS0 Porta seriale 0
serial:/dev/ttyS1 Porta seriale 1
serial:/dev/ttyS2 Porta seriale 2
serial:/dev/ttyS3 Porta seriale 3
usb: Universal Serial Bus
alrami:~# gphoto2 --auto-detect
Modello Porta
-----------------------------------------
Kodak CX7525 usb:


E fin qui tutto bene. Ora il momento cruciale (solo la parte di output che mi interessa)

alrami:~# gphoto2 --summary
Sommario della fotocamera:
Modello: CX7525 Zoom Digital Camera
[..]
Capacità dispositivo:
Scaricamento file, Eliminazione file, Caricamento del file
No Image Capture, No Open Capture, No vendor specific capture
[..]


No Image Capture..che palle..

Tra l'altro oggi mi si è definitivamente rotto il cellulare, a breve posto qualche foto visto che ci smanetterò un po'..

mercoledì 29 ottobre 2008

Delirio di fine giornata: upgrade di joomla

Dopo aver aggiornato un'installazione di Joomla dalla versione 1.0.12 (datata dicembre 2006) alla versione stabile corrente del branch 1.0 (1.0.15) mi chiedo: com'è possibile che un progetto open di questo tipo (parlo soprattutto delle dimensioni del progetto) abbia una qualità di codice decisamente alta (per quanto sia possibile in PHP, ma questa è un'altra storia) e non dia alcun tipo di problema durante l'upgrade?
Quanto sono bravi quelli di Joomla?
Non per niente è un progetto pluripremiato il cui upgrade consiste nello scompattare un archivio sostituendo i file sul server.

Nel caso vi sembrasse strano il mio stupore per questa semplice ma efficace procedura, probabilmente non avete mai provato ad aggiornare SugarCRM, oppure vi è andato di culo l'upgrade.. cosa che a me non è _mai e poi mai_ capitata

sabato 19 luglio 2008

Back to Fluxbox

In questi giorni ho voluto smanettare un po' sul mio portatile vecchio. Ho dovuto cambiarlo ad inizio anno perchè praticamente non si chiude più. Una staffa dello schermo si è staccata dalla scocca e va a far forza sulla plastica facendo dei rumori strani e spostando fuori asse lo schermo.

Inoltre diventava sempre più lento. E' una cosa che non mi spiego, ma ha avuto un decadimento delle prestazioni davvero incredibile.
Tempo di accensione fino alla schermata gdm: accettabile. Da lì in poi un disastro..

E così ieri mi sono girate:

> apt-get remove --purge `dpkg --list | awk '{print $2}' | grep gnome`

seguito a più riprese da:

> apt-get autoremove
> apt-get remove --purge `deborphan`

poi ho installato fluxbox e xdm. Ed è stato un po' un ritorno alle origini, quando un sacco di anni fa ho iniziato a farmi le ossa con GNU/Linux su un Pentium II @450 con 96Mb di RAM, ovviamente con Fluxbox e xdm.

Per la cronaca, quel pc è ancora vivo e vegeto, con ben 192MB di ram e XFCE.. e ha, giustamente per diritti d'anzianità, l'IP 192.168.1.2 :)

giovedì 10 aprile 2008

docx, niente paura.. o forse si?

Oggi è salito a quota 3 il numero di persone che mi han chiamato a metà tra disperazione e l'ira funesta per aver ricevuto un documento .docx in cui ci sono informazioni importantissime che non riescono ad aprire.

Questo capita per il fatto che, evidentemente, il formato Office Open XML è diventato il default per le applicazioni Ufficio di Microsoft. E senza troppo preavviso.. nel senso che comunque ai non addetti ai lavori, questa inversione di rotta è passata inosservata. Per cui ci si ritrova con un problema che prima era sconosciuto ai più: l'incompatibilità!
Ed a poco serve cercare di usare i convertitori online (io ne ho provato uno ed è stato un fallimento, ma ora che è standard ISO mi aspetto che migliorino..) o piangere e sospirare..

l'unica soluzione è comprare l'ultima nuova fiammante versione di Ufficio! E via!

mercoledì 19 marzo 2008

I poteri nascosti di FireBug

Sono un grande utilizzatore e fan della plugin di firefox FireBug.
E' davvero avanti..come già ho avuto modo di dirvi. Ma quello che mi ha davvero lasciato di stucco oggi è il fatto che firefox abbia un comportamento decisamente diverso con firebug attivo o no:
purtroppo non sapevo che l'oggetto nativo XMLHttpRequest viene wrappato da FireBug.
E mentre in rete leggo che questo genera dei problemi, a me li genera il fatto che quando non è wrappato, la responseXML non venga riconosciuta... Eppure mi pare un .xml con tutti i crismi, ma con firebug attivato mi ritrovo con l'xmlhttprequest correttamente riempito con la responseXML, mentre con firebug off no..

mah .. va a finire che uso questa libreria per uniformare il comportamento dei vari browser: http://code.google.com/p/xmlhttprequest/ chissà, magari funziona...

lunedì 24 settembre 2007

I polli ed il campo magnetico

Singolare esperimento all'università di Francoforte che, per quanto sia un serissimo esperimento fisico, non ha mancato di farmi sorridere.

Ingredienti:
- un numero vario di pulcini
- una palla rossa
- 4 schermi protettivi
- il necessario per creare un campo magnetico artificiale

Ricetta: prendere alcuni pulcini appena nati e metterli in una grossa scatola. Addestrarli fin da piccoli per far credere loro che la madre sia la palla rossa. Posizionare i quattro pannelli verso i punti cardinali, in modo che la palla possa essere nascosta dietro al pannello orientato a nord rispetto al centro della scatola. Abituare i pulcini a credere che la mamma (cioè la palla) sia sempre dietro il pannello disposto a nord.
Dopo qualche tempo, investire il tutto con un campo magentico in direzione est (od altro, a scelta.. ovviamente diverso da nord ...).

Ora i polli cercheranno la madre verso est.
Lasciare raffreddare e servire freddo

Link

martedì 31 luglio 2007

Pillole di incompetenza Javascript pt1

Rispetto al post precedente, per ora abbiamo deciso di aggirare il tutto ed affrontare il problema nientemeno che con python e interfaccia COM per pilotare Exploder. La ditta è decisamente refrattaria alle mie insistenze di OpenSource, ma vabbè.

Partendo dal fatto che il sito in questione è di una azienda le cui bollette sono note a tutti e che si parla di un sottodominio di pubblicazione dei dati dei consumi aziendali, vi cito delle ottime parti di codice javascript, presenti nella pagina che sto cercando di navigare automaticamente per arrivare a scaricare i dati dei consumi.

In un form compaiono e scompaiono dei campi in base alla selezione di un radio button, il cui valore viene salvato nella variabile n.

// x Netscape non vi e` la gestione campi a scomparsa
if (!document.all)
return;

Prima cazzata, se non sai come fare una cosa almeno cerca su internet e lascia perdere questi assiomi, soprattutto se poi il sito non è assolutamente comprensibile sotto altri browser.
In base al valore di del radio button si vanno a nascondere e visualizzare alcuni campi:

if (n==1)
{
document.download2.gg1.style.display="";
document.download2.mm1.style.display="";
document.download2.aa1.style.display="";
document.download2.aa2.style.display="none";
document.download2.mm2.style.display="none";
document.download2.aa3.style.display="none";
document.download2.mm3.style.display="none";
document.download2.ss3.style.display="none";
return;
}

Ovviamente il codice prosegue con tanti altri if sul valore di n in base al quale si nascondono o visualizzano diversi campi. Il tutto programmato con la regola del copia-incolla. Molto più intuitivo e meno dispendioso in termini di byte sarebbe stato inizializzare il display di tutti a "none" (ma anche visibility hidden, se proprio siamo persone serie e sappiamo come far scomparire le cose in netscape) e poi con l'if si vanno cambiare due o tre property. Sicuramente più leggibile. E poi il colpo di genio: gestione delle date, si vuole avere il giorno precedente ad oggi, quindi controllando se devo scalare di mese, per cui devo sapere quanti giorni ha il mese precedente

gg = 31; <-- giorno corrente, stampato nella pagina da jsp
mm = 6 + 1; <-- mese corrente, stampato 0-based da jsp, incrementato per averlo 1 based
yy = 2007;

// calcolo giorno precedente
gg = gg - 1;
if (gg == 0) <-- Se ero al primo giorno, devo andare all'ultimo del mese precedente
{
if (mm == 1)
{
gg = 31;
mm = 12;
yy = yy - 1;
}
if (mm == 2)
{
gg = 31;
mm = 1;
}
if (mm == 3)
{
if ((yy % 4) > 0)
gg = 28;
else
gg = 29;
mm = 2;
}
if (mm == 4)
{
gg = 31;
mm = 3;
}

[.. e così fino a 12]

Ora, quanto ci vuole a fare dei controlli con un "or" sui mesi da 31 e su quelli da 30? Oppure una cosa più simpatica ma abbastanza fine a se stessa di un array di 12 valori, uno per ogni mese? e non puoi fare un generico mm--; ad inizio di tutta questa puttanata? Ma soprattutto, non hai mai sentito la parola ELSE???

lunedì 30 luglio 2007

Google e i tanti corsi

Stavo cazzeggiando alla grande su internet. Ad un certo punto metto nella parte della barra degli strumenti di iceweasel dedicata a google la frase:
corso di

e guardo i suggerimenti, che suppongo vengano dettati dal frequente utilizzo da parte degli utenti. Ed ecco in ordine:
corso di spagnolo
corso di inglese
corso di italiano
corso di fiori (??)
corso di chitarra
corso di bestemmie
...

Ma la gente non ha proprio un cazzo da fare? :D

venerdì 2 marzo 2007

Gadget Imperdibile

Stamattina, mentre andavo alla deriva nel web, sono arrivato alla pagina di questo imperdibile gadget. Non so quanto tempo fa sia uscito e quasi sicuro l'avevo già visto. Però stamattina, nella mia mente assonnata si è fatto strada un pensiero solo: che figata!!.



Peccato per il supporto, in cui non è contemplato il pinguino. Tra l'altro da qualche mese passo periodicamente sul sito Hack a Day, dove mostrano degli smanettamenti veramente deliranti.. Ed ora mi viene in mente una cosa: immagina di smontare una stupidissima web cam e montare il sensore sopra il lanciarazzi.. poi oltre al radar avresti sul pannello di controllo la visione dell'obiettivo :)



Ma vabbè.. è meglio che mi metta a lavorare prima di sprecare la giornata in queste puttanate