All posts by ephestione

Mamme tempestose

Giorno in ufficio fuori programma, faccio “presenza” per supplire alle ferie di una collega il cui ruolo non sono in grado di ricoprire; ma tanto vale esserci per avvisare di persona chi dovesse presentarsi.

Cominciano ad affacciarsi all’ingresso i clienti che si aspettavano di trovare qualcun altro, spiego brevemente la situazione, alcuni li conosco anch’io, quasi tutti rispondono con un “ah, va bene, grazie lo stesso…”, seguito da un sorriso di cortesia, e se ne vanno salutando cordialmente.

Ma c’è una categoria in particolare che proprio non ci sta: le signore ultraquarantenni, diciamo tra i 40 ed i 50; ho avuto le prime avvisaglie con una di loro che ha storto il naso e se n’è andata visibilmente contrariata pronunciando solo un “vabbè”, ma il culmine è stato una decina di minuti fa: forse 45 anni, “in tiro” come si suol dire, giubbino sbarazzino sopra la vita, pantaloni attillati e stivaletti in velluto nero col tacco  da 10cm, capelli pel di carota artificiale e labbra rossissime, tanta volontà di apparire più giovane di una trentina d’anni (ormai sono le quindicenni che girano vestite in quel modo), tanto restaurata quanto acida, con alla mano una bambinetta in uniforme scolastica e zainetto alle spalle. Mi affaccio perché sento un vociare movimentato nell’ingresso, era lei che incitava alla ribellione le altre persone entrate poco prima. Non le sta proprio bene che la collega che stava cercando se ne fosse andata in ferie, quando lei ha bisogno di qualcosa evidentemente è abituata a trovare tutti incatenati al loro posto; non bastava neppure il cartello affisso alla porta ormai da tempo, che avvisava del prossimo periodo di ferie, “eh, ma da quanto c’è quel cartello?!? non è che l’ha messo stamattina?!?”… “e se uno ha una urgenza come fa?? lei oggi ci doveva essere!”

A nulla è valso ripetergli due o tre volte che la collega ha preso accordi con una sostituta che, a parte oggi, segue i suoi stessi orari per la settimana in corso. Naturalmente se ne va senza neppure salutare, poco manca che mi mandi a quel paese. Ed anzi una volta rientrato sento sbattere la porta esterna come per ripicca. Qualche secondo dopo la porta viene riaperta e subito sbattura ancora una volta, conto che almeno si sia sfogata per oggi, altrimenti povero marito! Se ce l’ha ancora, un marito…

  This article has been Digiproved

Attivare il force feedback del Logitech Driving Force Wheel in windows

Qualche tempo fa ho ottenuto in regalo da Freecycle il Logitech Driving Force (ancora grazie Claudia), un volante per la Playstation 2 che avevo letto essere compatibile anche col PC, infatti usa una normale porta USB; appena collegato è stato riconosciuto da Windows 7 che lo ha configurato come un normale controller per giochi, anche se non ne supportava tutte le funzioni; in Need For Speed: Hot Pursuit la mancanza del force feedback, e la presenza della zona morta al centro rendevano quasi noioso il gioco; finalmente mi è venuta l’idea, dopo averne letto su un altro sito web, di scaricare il “Logitech Profiler”, una utility di configurazione per i controller ludici logitech; purtroppo sul sito ufficiale la pagina del Driving Force non è presente, ce ne sono solo per le versioni aggiornate (Driving Force qualchecosa), ma ho comunque prelevato la versione per Windows 7 64bit (ci sono versioni anche per Windows XP e Vista) dalla pagina di un altro volante, il G27, trattandosi da quanto ho capito sempre dello stesso file per tutti i controller. Ebbene, quando dopo l’installazione ho lanciato il programma, si è finalmente acceso il led del force feedback sul volante dopo che sono stati installati dei driver aggiornati, ed ho potuto usare il Driving Force a pieno, e hot pursuit si è trasformato in un gioco divertentissimo!

Enable force feedback of Logitech Driving Force Wheel under windows

I got a Playstation 2 wheel controller for free off Freecycle sometime ago (thanks again Claudia), I read it was compatible with the PC, and in fact it sports a USB port, and Windows 7 recognizres it correctly; I wasn’t expecting full support for all the functions, but it did work as a game controller, even if the dead zone in Need For Speed: Hot Pursuit, and the lack of any feedback, made me lose most of the interest in driving games. What’s sad, is that there is no entry on the Logitech website for this kind of wheel, but only for upgraded versions (Driving Force something); I just tried downloading the logitech profiler for Windows 7 64bit (there are profiler versions also for Windows XP and Vista) off the page of another wheel, the G27 (but apparently you’re going to get always the same exe file) and as soon as I launched the tool after installation, the force feedback led of the wheel lightened up, some “updated” drivers were installed under windows, and I could use the wheel at full potential under hot pursuit… another story entirely, and also the dead zone was gone for me!

  This article has been Digiproved

Rumori e vibrazioni di airbag passeggero e cruscotto Rover 75

I rumori di vibrazioni nel cruscotto mentre guido mi fanno impazzire, né più né meno.

Ho iniziato a guidare la mia Rover 75 da meno di un anno, e per i primi tempi la soddisfazione di avere un’auto classica ed elegante mi ha aiutato a soprassedere sui numerosi rumoretti che si sentivano dovunque durante la guida (soprattutto nella zona dell’airbag del passeggero), ad ogni modo sono arrivato ad un punto in cui mi saltavano tanto i nervi che ogni tanto davo forti schiaffi dovunque sul cruscotto tentando disperatamente di far cessare le vibrazioni, ma anche, lo ammetto, per sfogare la rabbia che mi provocava la cosa.

Devo ringraziare MikeM dei forum MG-Rover per le istruzioni scritte che mi hanno aiutato nella procedura di risoluzione del problema, e ispirato a creare questa guida anti-vibrazioni per immagini.

rover 75 glovebox removal screws
Questo portaoggetti è stato già smontato, comunque facciamo finta che non lo sia: bisogna rimuovere le sette viti di tipo torx evidenziate in rosso, le tre inferiori si trovano sotto il tappetino sintetico che deve essere scollato a forza dal fondo. Per rendere più comodo l'accesso alle viti vanno rilasciati i braccetti di plastica evidenziati in verde, in modo da poter aprire completamente lo sportello.
rover 75 glovebox arm hinge
Vista ravvicinata dei "dentini" che vanno spinti da entrambi i lati per far aprire completamente lo sportello.
rover 75 glovebox socket
Questo è il buco vuoto dopo aver rimosso il vano portaoggetti; evidenziato in verde è visibile lo spinotto di alimentazione della luce che va staccato prima di tirare completamente fuori il cassetto; la parte che vi interessa si trova dietro la parete superiore del buco, bisogna accedervi da sotto nella direzione della freccia rossa.
rover 75 bcu near glovebox
Questo è il guastafeste: la BCU (body control unit, anche se sulla scatola è scritto "Control Unit Body"); in verde ho evidenziato il bullone che fissa la scatola al pannello metallico visibile subito sotto; in pratica, la punta del bullone, a circa 2000 giri per minuto del motore vibra sbattendo contro la struttura metallica tubolare nella zona indicata dalla freccia rossa.
packaging plastic sheet
Serve qualcosa da interporre tra le due estremità metalliche, dovrebbe andar bene qualunque cosa, ma io ho usato questo foglio di plastica da imballaggi, che saggiamente avevo tenuto da parte per eventuali usi futuri.
rover 75 bcu rattle isolation
Ho preso circa 10cm di striscia di plastica, l'ho piegata in due, ho tirato verso il basso il pannello metallico liberando un certo spazio tra bullone e tubo metallico, ed ho fatto scorrere tra le due parti il materiale isolante; una volta rilasciata la scatola si è poggiata sullo strato interposto; da quel momento non ho sentito più alcuna vibrazione da sotto l'airbag passeggero.
rover 75 dash under panel
Giacché c'ero, ho deciso di risolvere le vibrazioni anche sotto il cruscotto nella zona del tachimetro; in rosso sono evidenziate le due viti da rimuovere, in verde indico le zone da cui sembravano originare i rumori.
rover 75 isolated under dash panel
Ho usato buona parte del materiale da imballaggio rimanente per formare una specie di cuscino attorno ai tre gancetti di ritenzione indicati dalle frecce verdi; alle due estremità ho fermato il tutto con un po' di nastro isolante; basta rimettere tutto in posizione per non sentire più nulla neppure in quella zona.

BCU rattle on passenger airbag and dash/fascia in Rover 75

Vibrating noises while I am driving drive me nuts. It’s as simple as that.

I got my Rover 75 less than a year ago, and the excitement of driving an elegant classy car somehow made me ignore at first the abundant rattles I heard everywhere while I drove (especially behing the passenger airbag), yet I reached a point where I literally went mad and occasionally violently hammered everywhere on the fascia hoping to make the noise stop, but also, let’s be honest, to ease my nerves against the bad machine.

I must thank MikeM from the MG-Rover forums for the written tutorial that helped me through the procedure of solving this problem, and inspired me to make this visual anti-rattle guide.

rover 75 glovebox removal screws
This glovebox has already been removed, anyway let's assume it isn't: you have to remove the seven torx screws shown in the red circles, the bottom three are under the mat and you have to forcefully unglue it from the floor of the box to make them show. Also, it is advisable to act on the green circled hinges to let the lid slide all the way down.
rover 75 glovebox arm hinge
This is just a closeup of the hinge where you need to press the little plastic thing to let it slide further down; do it for both of the hinges.
rover 75 glovebox socket
This is the empty socket left after you removed the glovebox, circled in green is the power plug for the glovebox lighting, which you need to unplug before completely pulling out the glovebox; what you're looking for is situated beneath the upper front of the fascia, and is accessible by looking from beneath in the direction of the arrow.
rover 75 bcu near glovebox
Here is your peace hinderer: the BCU (body control unit, even if on the box it's called "Control Unit Body"); cicled in green is the bolt that fixes the box to the metal panel beneath it, what happens is that the tip of the bolt is very very close to that tubular metal frame you can notice, and at around 2k RPM it vibrates rattling against it generating the noise, in the area ponted by the red arrow, below that metal panel.
packaging plastic sheet
You need something to interpose between the two metal rattling objects to silence them; anything could be good, really, but my choice fell on this packaging material that I wisely saved months ago.
rover 75 bcu rattle isolation
I took some 10cm of that soft plastic strip, folded it in two, pulled down the metal plate so there was enough space between screw and tubular frame, and slided the insulator between the two, then released the assemply that simply went lying over the plastic; job done, no more vibrations!
rover 75 dash under panel
Sinbce I was on it, I decided to work on some rattling I got from the underpanel of the fascia over the speedometer. Circled in red are the two screws you need to remove in order to detach the plastic panel, and the green arrows point to the areas where the rattling was apparently originated.
rover 75 isolated under dash panel
I used most of the remaining packaging plastic to create some sort of cushion around the three catches that grapple inside the fascia (indicated by the green arrows). I stabilized the two ends with some insulating tape. Put everything back together, and rattles in that area will be gone as well!

Estrarre una stringa tra due chiavi in un testo con uno script shell bash

L’altro giorno, da totale incompetente, stavo scrivendo uno script in bash per processare una pagina HTML, cercare un URL al suo interno, e scaricare il contenuto di quell’URL, in maniera ricorsiva per una serie di pagine; l’avevo già compilato in linguaggio AutoHotKey, tuttavia il mio PC con Windows non è sempre acceso, mentre il mio server domestico linux sì, quindi ho deciso che sarebbe stato opportuno imparare un po’ di linguaggio bash per rendere la procedura più efficiente.

In questo script devo estrarre un segmento di stringa contenuto tra due parole chiavi note, o “token” in inglese, per ottenere l’URL di cui ho bisogno; in AutoHotKey salvavo la posizione di entrambe le parole chiavi, quindi operavo una istruzione di substring tra questi due offset, e stavo cercando di far lo stesso in bash, siccome stavo pedissequamente traducendo lo script, piuttosto semplice, da un linguaggio all’altro.

Con mia sorpresa, questa non è una cosa che si può fare in bash, siccome l’unica operazione di ricerca di una stringa all’interno di un’altra stringa in realtà cerca il primo carattere della parola chiave; quindi, per esempio, se si cerca “mio” all’interno di “La melliflua pelliccia del mio gatto è marrone”, si ottiene 3, e non 27 come ci si aspetterebbe, perché come dicevo expr index "$string" $substring restituisce solo la posizione del primo carattere di substring, quindi la prima posizione di “m” nella stringa.

In realtà, a me non serviva conoscere la posizione delle parole chiavi, purché riuscissi ad estrarre la stringa tra loro due, quindi ogni operazione che servisse a questo scopo andava bene; purtroppo me ne sono reso conto solo dopo aver buttato un’ora di tempo a cercare la soluzione, quindi pubblico i miei risultati per far risparmiare tempo a chi dovesse finire su questa pagina.

Fondamentalmente consiste nel tagliare dalla stringa tutto quello che precede la prima parola chiave (inclusa la prima chiave), e quindi tagliare dalla stringa così ottenuta tutto quello che segue la seconda patola chiave (seconda chiave inclusa):

#dichiarazione delle variabili
testo="lungotestodacontrollare"
primachiave="qualcosa"
secondachiave="qualcosaltro"

#elaborazione vera e propria
stringacentrale=${testo#*$primachiave}
stringacentrale=${stringacentrale%%$secondachiave*}

Questo restituisce $stringacentrale come la stringa contenuta tra la prima occorrenza di $primachiave (simbolo # singolo), e la prima occorrenza di $secondachiave (doppio simbolo %, che indica l’occorrenza più distante dalla fine della stringa).

Extract string between two tokens inside a text in bash shell scripting

The other day, as a total newbye, I was writing a script in bash to process an HTML page, look for a URL inside it, and then download the content at that URL, recursively for a series of pages; I had it already done in AutoHotKey language, but since I don’t keep my Windows workstation always on, while my linux homeserver is, I decided I was better off learning a little of bash language to make the procedure more efficient.

In this script I need to extract a segment of string between two known “tokens”, in order to get the needed URL off the HTML page; in AutoHotKey I saved the string position inside the text for both of the tokens, and then did a precalculated substring operation between those two offsets, and was obviously looking to do the same in bash, as I was translating step-by-step from AutoHotKey.

With my big surprise, this is not possible, as the only operation to search for a string inside another string, actually searches only for the first occurrence of the first caracter of the key string; in other words, you can search for “my” inside “The mellow fur of my cat is brown”, but the result would be 4, and not the expected 18, because as said expr index "$string" $substring only matches the first character of substring, hence the first position of “m” inside the string.

Now, I didn’t really care to find the position of those tokens, I only cared about the string in the middle, so any other operation that did the trick was fine; alas, I realized it only after about a hour of wasting time, but in the end I came up with the solution, and I am publishing it here to save time to other wanderers.

It basically consists in stripping from the string everything that is before the first token (including first token), and then stripping, from the result of this first operation, everything that is after the second token (including the second token):

#variables declaration
text="longtexttoprocess"
firsttoken="something"
secondtoken="somethingelse"

#actual processing
middlestring=${text#*$firsttoken}
middlestring=${middlestring%%$secondtoken*}

This returns $middlestring as the string contained between the first occurrence of $firsttoken (single # symbol), and the first occurrence of $secondtoken (double %% symbol, indicating the farthest occurrence from the end of string).

Questa benedetta crisi c’è o non c’è? O gioca a nascondino?

Me lo son chiesto oggi a pranzo, in un ristorante non proprio dai prezzi popolari, e che di domenica credo facesse tutt’altro che calmierare il listino; ma si sa, uscendo con amici è necessario venire a compromessi con le proprie abitudini… fast forward per un attimo al conto: dividendo la somma finale per 5 persone (il metodo della romana approssimativo, come lo chiamo io, in quanto pagare alla romana significa dividere esattamente in base ai reali “consumi” di ognuno) ed avendo io ordinato una bistecca ed un piatto di cicoria all’agro, oltre all’equivalente di meno di metà di antipasto misto (a tavola c’era solo mezzo litro di anonimo vino rosso, per i -soliti- beoni della combriccola), ho pagato 23 euro; c’è da dire che oltre ai due “antipasti ricchi” da dividere tra tutti, gli altri hanno ordinato solo un primo, ed alcuni hanno preso un dolce, a conti fatti ho anche diluito la mia parte con gli altri. Altrove puoi mangiare primo, secondo e contorno pagando 10 euro, e qualcuno ti offre pure il caffè.

Insomma, cos’è che mi chiedevo oggi a pranzo? Proprio quello che si legge nel titolo.

Appena entrato nella sala del ristorante non ho potuto non sorprendermi di come quasi tutti i tavoli fossero pieni; dapprima questo è stato un ingannevole indizio della politicità dei prezzi (“se c’è così tanta gente, significa che si paga relativamente poco nonostante il posto”), ma sono stato stordito smentito una volta aperto il menu.

Come se non bastasse, piatti di pesce fioccavano dovunque (la carne è improvvisamente diventata “out”? contiene pure più proteine del pesce!), e bambini piccoli lasciavano quasi per intero le loro portate che inesorabilmente tornavano indietro pressoché illese; per intenderci, una scena generalizzata di pingue e pantagruelica abbuffata di pietanze relativamente costose.

Allora mi chiedo, ma ‘sta crisi dove sta? Esiste una folta e imprevedibile classe di benestanti nascosti nel sottobosco della società, che durante il finesettimana si riversa nei locali “in”, oppure (con la dovuta esclusione di chi davvero non ha i mezzi per far durare 30 giorni lo stipendo) c’è solo una massa di persone che spende e spande in ristoranti, sigarette, discoteche, macchine nuove fiammanti, vacanze invernali ai tropici, e sceglie di non potersi invece finanziare servizi di base indiscutibilmente più utili? (ogni riferimento a fatti o persone riguardanti il sottoscritto è puramente intenzionale)

Come direbbe Dervis Fontecedro, disgustorama!

This article has been Digiproved

reCAPTCHA manca lo scopo, che sia un bypass o un crack lo spam passa

Mi piace(va) l’idea dietro reCAPTCHA, bloccare lo spam mentre si aiuta la digitalizzazione dei libri, e diciamocelo, le immagini di reCAPTCHA sono più leggibili all’occhio umano rispetto ai codici alfanumerici deformati prodotti dai normali codici antispam.

Tuttavia, anche se ho il plugin Akismet attivo, siccome i commenti sono dietro captcha immaginavo che non avrei ricevuto alcuno spam, di certo non da bot, ed invece ne è sempre arrivato, soprattutto nell’ultimo periodo in grande quantità e per messaggi tutti uguali tra loro; stava succedendo anche sul forum punbb del mio sito professionale, dove era in azione un plugin recaptcha, e capite come trovarsi a sorpresa un post pieno di link a siti a luci rosse, con tanto di immaginette oscene, sia controproducente per la mia immagine.

Come mai succede tutto questo? Forse un inquinamento del database di reCAPTCHA con tecniche particolari di spamming per cui alcune parole chiave vengono sempre riconosciute come corrette, oppure tecniche di OCR avanzate, o infine il disoccupato della porta accanto pagato qualche millicent per ogni captcha risolto. Non me ne importa poi tanto, quello che conta è che lo spam continua a passare.

Indiragionpercui ho deciso di abbandonare del tutto reCAPTCHA e passare ai cari vecchi captcha generati tramite PHP, vedremo cosa succederà, su questo sito ora è in azione il plugin SI Captcha (immagino derivi da Secure Image, riconosco lo stile).

This article has been Digiproved

reCAPTCHA fails to deliver, bypassed or cracked, spam still comes through

I like(d)  the idea behind reCAPTCHA, blocking spam while helping scanning books is cool, and let’s be honest, reCAPCHA images are more readable to the human eye than the random deformed alphanumeric combinations the usual antispam codes produce.

Anyway, even if I have Akismet plugin installed, being the comments captcha’ed I expected almost no spam at all, not certainly from bots, yet it’s been a constant for me; lately, a huge wave of spam messages, almost identical, hitted the website; this also happened on the punbb forum of my professional website, where reCAPTCHA plugin was in action, and you understand that finding a spam post containing plenty of links with obscene thumbnails attached is not good for my image.

What’s the reason behind all this? Possibly reCAPTCHA pollution by special kind of keyword spamming to make certain known words always check positive, or advanced OCR techniques, or your average next door guy payed some millicent each captcha he decyphers. I don’t really care, what I know is that spam is passing through.

So I decided to drop reCAPTCHA altogether and switch to good old onsite captcha generation, let’s see what happens, there is now SI Captcha plugin installed (suppose SI stands for SecureImage, I recognize the pattern).

  This article has been Digiproved