writeups

Goodbye sniffo.org/, welcome sindro.me/

I'll never regret the creation of sniffo.org, and I'll always thank MorrigaN for forcing me to do it, back in 2007. Like the endless days and nights we spent together on IRC in the first years of the new millenium, setting up and managing sniffo.org was fun, until only myself started posting and following it. Much the same that happened to the IRC channel.

Yeah, I know that I'm the founder, and I should keep up the channel, site and feelings. But I ain't no god and neither wanna be, I didn't create the past situations nor was the pulsating heart of the #sniffo community. I simply gave my time and soul to it, and all of you inconsciounsly felt it and did the same. That's why we spent so much good time together. Because of our big big hearts, and the amounts of love that flowed through them Smiling.

Again, I'll never regret, this is not a "fuck you off" post, quite the opposite, in fact. I love you all, and I'll never stop thanking you for all the good time we spent together. So good that it'll never come back, and no one can ever make come it back. We tried, MorrigaN, and we failed, because things are constantly changing, and living in the past is a no-brainer Smiling.

Now, back to the subject, I've decided to split the funny bullshits me and you posted here from humbly serious and technical stuff I work on everyday, so I built up http://sindro.me/, on which I'll continue posting much more often than I post here. So, click on the link, and add it to your bookmarks and RSS reader! Smiling

~Marcello

How to mirror a static copy of the opensource.org website

I currently maintain the italian mirror of the Open Source Initiative web site, and today I realized that the script I wrote some months ago wasn't doing its job well.. because the CSS files weren't downloaded at all, causing a rather unpleasant rendering of the site.

To mirror opensource org I'm currently using the plain'ol GNU Wget -r --mirror and so on. While the good'ol wget downloads each page prerequisite defined in the HTML source, it doesn't support @import CSS rules, and doesn't download images referenced in CSS with url() rules.

BTW, nothing that can't be resolved with some regex-fu: that's why I'm sharing the script I'm currently using to mirror the opensource.org web site, hoping it will generate either a new mirror or some insights on how to do this job better :).

The script: update_opensource_mirror.sh

a permalink_fu improvement: allow modification of permalinks and create redirects on-the-fly

Another spin-off from the www.visitacsa.it website: a permalink_fu improvement that allows dynamic permalinks. I know it is an oximoron, because permalinks should be .. well .. permanent! And because search engines index them, they should never change. But what happens when you publish something, your permalink is generated with permalink_fu using the title of your post, and after a couple of days you want to change the title, and the permalink under which the post is accessible as well?

Following the specification, your app should send out a 301 moved permanently HTTP status when accessing the old permalink and redirect the client to the new Uniform Resource Locator. That's quite the same thing what my modification to permalink_fu does: whenever your post attributes are changed, the former and new permalinks are saved to the database, and you can enable your controller to generate 302 moved temporarily redirects when needed. In other words, it checks whether the requested URL is an old permalink, and automagically redirects the client to the new one.

The jQuery ajax-upload-fu plugin

This jQuery plug-in allows AJAX file uploads without having a fixed file input button. It achieves its goals by installing an OnMouseMove handler over the selected elements, and moving the input button under the mouse cursor.

The quote that inspired this code is: "If Muhammad won't go to the the mountain, the mountain will come to Muhammad",the opposite of the more known proverb :).

It has been spinned off from the http://www.visitacsa.it/ JavaScript codebase, see the gist for more information, and have a look onto the live app code for an example of its usage.

Here is the source code:

The Windows 7 default wallpaper meaning.

When you install the developer beta of Windows 7, after the usual 3 reboot cycle, you are greeted with the following image:

Windows 7 fish

Pushing git commit messages to lighthouse in a batch

If you use github-provided lighthouse integration, from the "Admin" pages of your git repository, you may have stumbled upon on a glitch: every changeset on lighthouse appears as done by the lighthouse user that configured the integration on github.

This happens because lighthouse uses the API token to link changeset authors to LH users, and that's not good when you're not alone committing Smiling.

Il vaso della maionese

"Quando ti sembra di avere troppe cose da gestire nella vita, quando 24 ore in un giorno non sono abbastanza, ricordati del vaso della Maionese e dei due bicchieri di vino..."

Un professore stava davanti alla sua classe di filosofia e aveva davanti alcuni oggetti.

Quando la classe incominciò a zittirsi, prese un grande barattolo di maionese vuoto e lo iniziò a riempire di palline da golf. Chiese poi agli studenti se il barattolo fosse pieno e costoro risposero che lo fosse.

10.5.2 Odissey: a small journey in Mac OS X services and components

Well, I'm really happy with OSX 10.5.2. Even I'm not the one that blamed Apple for the translucent menu bar that everyone dislikes.. well, I like it. I don't care about the TM menu bar tool, because I haven't bought (yet) the nifty Time Capsule, I like the spinner in the Airport menu and, most of all, I really like the updates to the BluetoothSCOAudioDriver.kext that drives my bluetooth headset.

Spotlight also feels faster and faster on every upgrade, and I'm a heavy spotlight user, so this makes me really happy. Thanks Apple engineers!

Back to the topic: why odissey? Because as per my battery hints, I managed to make my MacBook2,1 SHUT DOWN while at 74% of the "Writing files" phase of the combo update... resulting in a completely broken system, as every geek could imagine Smiling. Apple updated some libraries, and upon reboot simply nothing worked, and the darwin console was filled with lots of error messages.

Python2.4's urllib2 broken by default on Solaris Express 5.11

While happily installing prerequisites to build an app on Solaris 10, i enjoyed having Mercurial already installed in the "base system".. except for a BIG issue: digest authentication was broken. I tcpdumped the traffic exchanged between the mercurial client and the CGI server and I saw that no Authorization header was sent, and obivously the server refused to serve the hg repository.

Before reinstalling python, maybe from source and replacing the default installation or having side by side two different versions, with consequent nuisances and dirt around the system, I tried a very very small patch to urllib2.py that... amusingly enough, fixed my problem:

E` l'ora dello sbattezzo

Bello dire parlare incazzarsi sull'ingerenza cattolica nello stato.. ma perche` esiste quest'ingerenza? Perche` oggi il vaticano puo` ancora permettersi di parlare a nome del "97% degli italiani" in quanto tale e` la percentuale di battezzati residente sul territorio, percentuale che da` potere a quest'organizzazione.

============================================================================================================================================