Spin-down your USB HD and make it last longer

I have built for myself a simple Media Center, based on Zotac ZBOX ID41 Plus, XBMC-Live, Transmission, Flirc and other useful stuff. The idea is having a low-energy consumption machine that I control with a remote. And it has to be always on. One thing I was concerned about is how to deal with my external HD connected to it: I’m of course expecting those to eventually fail if they are always spinning. ...

February 10, 2013 · 2 min · 393 words

Finally, GhostDriver 1.0.0

After ~10 months of work, I finally managed to push the ball forward enough to reach GhostDriver 1.0.0. I won’t lie: it does feel great. It always is to see so much effort mutate into an achievement, even it is such only for me. Before I go any further though, I owe a massive THANK-YOU to the people that through contribution and / or issue reporting have helped me to build a releasable 1.0.0. In particular to Jim Evans, an awesome guy and a bit of a mentor for me: you ROCK Jim, and I think that is true, literally! ...

December 3, 2012 · 8 min · 1530 words

GhostDriver, 90% and priorities

Last few weeks have been HECTIC to say the least. Work on GhostDriver and related PhantomJS improvements has been very intense. We just shipped PhantomJS 1.7, and work for 1.8 is already started (check out the ghostdriver-dev branch I linked above). GhostDriver has reached almost 90% completion for 1.0, and the code is being hardened, thanks also to the amazing work that Jim Evans is doing at spotting issues and, a lot of times, providing fixes. GhostDriver is getting better and better thanks to you Jim. ...

October 4, 2012 · 2 min · 388 words

Look mummy, I'm 80% done!

Let me give you a quick update about GhostDriver, the PhantomJS WebDriver implementation. Yes, it’s 80% ready for prime time (bugs aside)!!! How did I get from 40% to 80% so quickly? Because I decided that, for version 1.0, the commands that relate to the mobile web driver are out of scope. 1.1 or 1.2 will have them. For details, I suggest you check out the spreadsheet I’m using to track progress closely. ...

August 8, 2012 · 1 min · 82 words

BST traversal without stack or recursion (?)

SPOILER: this article assumes quite a lot of things about your knowledge of binary trees and data structure. I won’t spend much time introducing concepts. Deal with it. Some time ago I had the pleasure to meet with Chris Lord, who introduced me to the concept of Binary Tree Traversal without using neither a stack/queue or recursion. The list of requirements that such algorithm has to fulfil: Constant Space: no extra data structure to do the traversal Non-destructive: once finished, the tree needs to be exactly how it was before the visit Sounded crazy initially, but than I looked into it more deeply and discovered, thanks to some pointers from Luca Colantonio, that there is an algorithm in literature that does just that: Morris In-Order Traversal. ...

August 6, 2012 · 5 min · 964 words

The Stupid Olympics

I’m baffled on how stupid the British officials and politicians are. The entire show, is as bad in practice as it looks good on TV. Business starving for customers in Central London No one has tickets: either because are too expensive or because buying tickets was a Olympic sport on it’s own Empty stations and entire city areas because of TfL end-of-the-world-is-night emails Trains, somehow, still managed to get fucked up and cancelled Was all this on purpose?

August 1, 2012 · 1 min · 78 words

GhostDriver: a quick update

For whom might concern. Development of GhostDriver has been “slowed down” in the past 2/3 weeks for unforeseen heavy work schedule. The project is not dead AT ALL. Actually, important work has been done: I have implemented support for window.open() handling into the current PhantomJS master. This new feature in PhantomJS is KEY to unlock a whole set of functionalities that before we couldn’t implement in GhostDriver. So, while WebDriver Wire Protocol Commands were not added, a key blocker has been removed. ...

July 19, 2012 · 1 min · 112 words

GhostDriver: almost 50%

This post is long overdue. It’s weeks that I HAVE TO write it and yet couldn’t find the time to put it together. Oh well, better late than… Since my talk about GhostDriver at the Selenium Conference 2012 I have received lots of interest from the community about GhostDriver: finally a WebDriver for PhantomJS. If you haven’t followed me so far, a quick catch up: I’m working to implement the WebDriver WireProtocol on the top of PhantomJS, so to leverage our favorite headless browser. The project is proceeding, even though not as fast as I would have liked: you can find details about the current status in the “official” README.md and/or checking out the “Implemented Commands” spreadsheet. ...

June 26, 2012 · 3 min · 540 words

Git rebase: be a mother, not a plastic surgeon

Today I’m going to share a little tip about the use of Git. In contributing to open source projects, it happens sometimes that I have a long running branch; something on which I need to work for more than just few hours. The kind of work that goes on for weeks, sometimes months. **UPDATE: ** Matt suggested a great doc about rebasing. There is lol-cat-picture for every need Working on a branch is great: it let’s you work on a feature, a fix, an extension in total isolation, being sure you don’t disrupt anyone (and don’t embarrass yourself). ...

June 16, 2012 · 4 min · 852 words

Me @ the Selenium Conference 2012

It’s widely spread opinion that at some point of our career we, software people, should start giving speeches and talks. I’m firmly convinced that THAT is not for me, and I want to carve my ears out of my head every time I hear my heavily-accented-english, mixed with my ability to cut words and make the message come across barely understandable. But, this presentation was really important to me: I presented my-work-so-far on building a PhantomJS WebDriver. I call it GhostDriver (provisional name). ...

May 1, 2012 · 2 min · 221 words