Hi, nice to meet you. I'm a software developer and security researcher working in Palermo, Italy.
My interests, randomly sorted, are:
- human & digital rights
- elegant software design
- agile development methods
- politics & history
- writing, songwriting & music
- philosophy (secular humanism, aesthetic, logic...)
- martial arts
- slow food
I've also got some strong opinions about information security, and actually wrote NoScript, a little piece of software which is said to make safer one of the already safest web browsers, Mozilla Firefox. And pages load faster too!
My geek code is
-----BEGIN GEEK CODE BLOCK-----
You can ungeek it here, and/or read on my...
Version: 3.12
GCS/CM/H/MU/SS/TW/O d---(++) s: a+ C++++$ ULS++++$ P--- L++++$ W+++$
K--- w---(++)$ M PS++ PE-- Y++ R-- !tv b++++ DI++ G e* h++ r y++**
------END GEEK CODE BLOCK------
Geek Bio
I was born in 1972 and have been enjoying computer programming since my unforgettable dad - an electronic engineer - gave me a Commodore 64 as my 11th birthday present (yeah, more than 30 years of happy programming).
I started with Basic. After a while need for speed pushed me to 6502 assembly. When I bought an Amiga I became a C adept. Then I've been coding in C++, Rexx, Bash, until I discovered the Web with HTML, JavaScript and Perl.
At least I've fallen in love with Java and started my own company, not before having done my homework with Visual Basic, SQL and even Cobol/CICS.
Today I'm fluent in PHP, but I'm a great fan of Ruby On Rails.
I'm not so bad with C# and .NET/Mono, have a solid grasp on XML processing and someone even believes I'm an SQL guru (PL, Transact, ANSI and MySQL). Other co-workers are less adoring: if I'm out of sight they call me with names like "Regular Expressions Terrorist" or "XHTML/CSS Validation Maniac".
I've been teaching Web Programming at the University of Palermo for some years, until I found myself not patient enough to be a good mentor, so I left to develop full time.
When I'm not developing data crunching enterprise class monsters, or what the marketing guys call "Business Logic", I relax with some network programming. Browsing the IA free software catalog you'll find just two modest, free and quite crudely packaged samples: Pop3Trap - an interactive POP3 filter - and SpediFax, a cross-platform HylaFax client with a built-in print-to-fax Mac OS X facility.
But if you stumbled upon this page you rather know me as an author of Mozilla/Firefox extensions [?].
The first one I've developed is called FlashGot and works as a "bridge" between the Firefox web browser and a bunch of famous download managers (about 30 currently supported). I'm really surprised about how popular it is, but who am I to dispute the taste of the People?
FlashGot was born as a simple answer to a very personal need of mine, but over time has grown into a sort of "proof of concept" extension, involving many techiques.
Logic is centralized into a globally accessible singleton XPCOM service written in JavaScript, while inter-process communication with download managers is handled by a native executable written in C++, and exploits late bound COM APIs or AppleScript interfaces where avalaible.
LeechGet integration case is quite an interesting exception: missing an AddURLList()-like COM API but having in turn a ParseURL() method which refuses to work with file:// local URLs, I achieved the "download all" effect by serving on the fly a HTML document containing the links to be downloaded through HTTP protocol. Yeah, that's right, FlashGot contains a working Web Server (minimalistic and supporting the GET verb only, of course, but functional and multithreading)! How many other multithreaded web servers entirely written in JavaScript do you know? A web server running inside a web browser, I guess I should claim a patent over it!
Another well known Firefox addon I wrote is NoScript, a whitelist-based security tool which basically disables all the executable web content (JavaScript and Java by default, but also Flash and other plugins on demand) and lets the user choose on the fly, with a single click, the "trusted sites" where these potentially dangerous technologies are allowed.
PC World editors have kindly mentioned the usefulness of NoScript many times, and they included it in their "The 100 Best Products of the Year" 2006 list. I guess it's the only Italian item there ;)
That's (almost) all. Thank you very much for being still awake at the end of my pompous exposition.
P.S.: despite appearances, I've got a private life too, I like ju-jitsu, music (composing, playing instruments and singing), reading and mumbling about political issues. Lately I finally gave up and started my own blog, named hackademix: please forgive me if you can...