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

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

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

My current stake in PhantomJS

I have been spending a lot of time on PhantomJS in the last couple of months. But feels like I could have done much more: there are so many interesting issues to work on in the official tracker. ** Hey, why don’t you give us a hand? :) ** Some English expressions still puzzle me… Here is where my stake is. REPL I just finished putting down a new wiki page that explains a bit about the REPL and how it works. Give it a read and let me know if you want more clarification. ...

March 28, 2012 Â· 2 min Â· 395 words

PhantomJS REPL: it's ready for a taste

After 2 months of on-off working on this, I finally managed to make something I’m happy with: a REPL for PhantomJS. The last post I wrote about this was in November 2011 (!!!). But I started putting code together only in Jan 2012. So, overall, from the first commit until today is almost 2 months. First thing first: how do you get to try it? Well, you can get my fork, switch to the dev-repl branch and try it out: ...

February 27, 2012 Â· 2 min Â· 311 words

Scope 'this', and scope 'that'

As a guy that tries to live his professional life in the middle of the dichotomy “C/C++ - JavaScript”, I often find myself discussing the discrepancies, differences and implementation details of the latter (an half-assed prototypal language) using the former. The other day I was chatting with Luca (@lucabox) about scope in JS, and we were describing the different situations you can end up with… and how we work our way out of those culprits. ...

February 12, 2012 Â· 8 min Â· 1541 words

Crossing the pond

I borrowed the title from a guy who kickstarted all of this. Thanks Ariya ;) I’m leaving Betfair. I owe a lot to this company: for a bit longer than a year I have had the pleasure to work with smart, enlightened, knowledgeable people from which I learned loads. Leaving was definitely not an easy choice. The only thing didn’t happen, is that I didn’t become a proper punter: I just learned that even something sounding “boring” as betting on sports, can actually be a very big challenge in terms of the technologies involved. Even more, if you try to do it in the Betfair way: with million of customers, all constantly hammering the servers to make the most out of their money. ...

December 13, 2011 Â· 2 min Â· 370 words

REPL and HTTP Mapping: ideas to contribute to PhantomJS

Recently, I’m donating my spare time to the amazing Stanford Online AI Class, and writing down notes takes time. But I’m still working, in the spare time of the spare time, on PhantomJS. Yes, very slowly, but I’m not stall. Recently two ideas have come to mind, and it’s stuff I’d love to see supported by PhantomJS. REPL From the Wikipedia article: A read–eval–print loop (REPL), also known as an interactive toplevel, is a simple, interactive computer programming environment. […] In a REPL, the user may enter expressions, which are then evaluated, and the results displayed. ...

November 1, 2011 Â· 4 min Â· 663 words

Maven, PhantomJS and Jasmine to write your JS Unit Testing

In Betfair we are building all sort of new things, and one of the aspects on which we are trying to focus more is doing Automated Tests for JavaScript. Currently, all non-js code in Betfair passes through different kind of Automated (and Human) Testing (from Unit Testing, to Security, to Performance, to Human and Scripted QA), but the JavaScript language, by its very nature, makes it tricky to test in an automated fashion. It’s not impossible, just a bit harder than it should. ...

July 8, 2011 Â· 7 min Â· 1330 words