Marco Castelluccio accomplished a first last month when he won both first and second place in the IndexedDB Dev Derby for his entries eLibri and FileSystemDB. But that’s not all Marco has done to help push the Web forward. In just the last few months, Marco has submitted five great demos to the Dev Derby and Demo Stuido, showing the world what’s possible with geolocation, canvas, and more.
Last week, I had the opportunity to learn more about Marco and his work. In our discussion, Marco shared insights from his past, thoughts on the open Web, and hopes for the future.
Tell us about developing eLibri and FileSystemDB. Was anything especially exciting, challenging, or rewarding?
I started creating demos for the Dev Derby contents mainly for educational purposes. They gave me the opportunity to learn the new APIs. In the case of the December Dev Derby, I learned a lot about IndexedDB (and FileSystemDB is probably the best proof). I think IndexedDB is a really powerful API that is, in my opinion, a bit ignored by developers (maybe because there are some differences across browser implementations). I think it is a great API because it gives the developer the opportunity to save any type of data and retrieve it seamlessly, better than a file system can. I was really impressed by its possibilities, especially when I saw eLibri really working! (I didn’t realize you could save and retrieve a PDF file so simply, without any problems!)
How did you become interested in hacking?
Playing games! I just needed to understand how they worked, so I became interested in computer science. At the beginning I was really interested in the low-level aspects of computer science like operating system development, since the operating system is the framework and manager of all other applications. Moving forward, I think the framework will be the browser. The browser will serve the purpose that operating systems have until now, except that the new applications will be usable by everyone, on every device, on every platform.
What makes the Web an exciting platform for you?
The standards. With standards you can create applications that work on every device, desktop and mobile. The situation is a bit chaotic in several areas, but in the near future we will hopefully see a lot of incredible Web applications (for example LibreOffice, or, why not, performance intensive games).
What up-and-coming Web technologies are you most excited about?
The most exciting technology, in my opinion, is WebRTC. I see a lot of possibilities with it, like P2P communication in the browser. I’m also really excited about the new WebAPIs developed by Mozilla (camera, vibration, etc.). I’m starting to develop applications for mobile devices and I want to make them work, without rewriting, on every platform (not only because I’m an idealist, but also for money!).
If you could change one thing about the Web, what would it be?
I would like the newest Web APIs to be supported on every browser without implementation differences and vendor prefixes, so that developers can easily create cross-platform applications. I’d like to see a Web without companies that try to steal your information without your consent.
What advice would you give to aspiring hackers?
I’m not an expert, but my advice is to start contributing to open source projects. Doing so gives you the really great opportunity to learn about serious development, to do real work, and to help people (both users and other developers). And, in the case of Mozilla, you can talk with really expert people that are very glad to help you! And you can do all different kinds of experiments in an area that is still evolving.
You mentioned that you have some “beautiful ideas” for future demos. Care to give us a teaser?
I have some ideas for demos using the Orientation API (sadly I couldn’t develop them before, because Firefox wasn’t usable on ARMv6, though I hope that will get better soon). I think developers can do great things with the Orientation API, like creating games that you can play in real life (I’m developing a Pong game and other games that you can play while running) and using new forms of input (for example, a remote controller like the WiiMote, WebSockets, or WebBluetooth when it becomes available). I also have in mind other demos related to audio.
Is there anything else you would like to share?
I’m really excited about Mozilla’s new project, B2G. It opens a whole new range of possibilities for developers and could help people get their freedom back. I hope I’ll manage to help this project in the near future.