Personal projects
Filter by showing only:
Biggests;
Mozilla (
firefox extensions,
jetpack/addon-sdk ),
Web,
iPhone,
Ocaml.
remove filter and display all
2010
Web application that use
tellmewhere.com service
to display restaurants recommandation along a route between two locations.
But the key feature is to display these restaurants only around lunch time, ie around noon or 8pm during your trip!
Unfortunately tellmewhere works best with french locations, so this service is only in french.
- Desktop and mobile version,
- Use tellmewhere.com and Google maps v3 API,
- Compute the location at a given time along a route,
- Registered as Chrome Web App,
- Compatible with Open Web App,
- Mobile version use geolocation API,
- Input autocompletion for locations using undocumented google api,
- Consist of only one html page that handle history change with onhashchange and so allow to share links.
2010
Various Jetpack/addon-sdk libraries around jsctypes
Jetintray:
Jetintray is an addon-sdk (formely jetpack) library.
Jetintray offers an API to display a custom icon in the tray, with a label dislayed on mouseover and supports the display of a menu on right click.
JetalienFX:
Another library that control alienware's laptop lights by calling directly
controller device with jsctypes and windows device API.
Gmail notifier:
A jetpack extension that use JetalienFX to notify for new mails or new chat
from you gmails tabs opened in Firefox!
- Proof of concept of jsctypes use in windows platform,
- Jetintray shows that we are able to call almost all Windows API with pure javascript,
- Jetalienfx highlights that we may even control hardware devices by using windows driver kit,
- More info about windows api call with jsctypes here,
- Gmail notifier show how simple it is to use a custom library and hacking the browser!
2010
Apple doesn't offer any API to communicate from the web content of their UIWebView component.
UIWebView is the iphone component to display web pages. So we can't easily call native objective-c code from our javascript.
There is plenty of hacks to provide such communication and the most used one seems to work but in reality it were broking the UIWebView component!
- Open source library released on github here,
- Instead of changing window.location, we create an iframe with a special location containing some data. So it does not break UIWebView,
- Then we use the well known shouldStartLoadWithRequest to catch this request.
2010
One classic graphical example: a Kaleidoscope!
This time, made only with some CSS and SVG, plus some piece of html5 to make it even more awesome.
- Use SVG clippath to cut a triangle from the source image,
- Use the experimental -moz-element css property, available only on Firefox 4,
- And finally add some more CSS transform property to rotate theses triangles,
- HTML5 stuff brings support of video as a source to kaleidoscop-ize, and drag'n drop support to use local images!
- Tutorial available here
- Full demo is here
2010
Unit test editor used for QA of application based on Mozilla platform: Firefox, Thunderbird and all Xulrunner custom softwares.
Very close to
mozmill (and selenium, windmill, etc.) but with the focus set to ease test code creation, and give efficient tools and API to write unit test against GUI.
- Report you in real time test execution directly in your test source code,
- Spot easily any window, any tab and any DOM element with usefull distinctive parameters: XPath, windows attributes, zIndex order, ... etc,
- Offer a way to facilitate node identification by simply clicking on it, and seeing in real time what are selected node parameters,
- Support any xul application: xulrunner, firefox, thunderbird, etc,
- You don't need to restart Freemonkeys on each test execution, nor on your application reboot. Freemonkeys is an independant xulrunner app, which launch yours and then controls it remotly with a network connexion,
- Unit test library with: isTrue, isFalse, isDefined, equals, ... etc,
- Use an empty profile for each test execution, or an existing one,
- On test execution you can: write debug messages, inspect javascript objects with DOM Inspector, take screenshots of any elements,
- Ease you some kind of tests, by providing you a simple HTTP webserver in order to simulate some websites answers,
- fremonkeys API is not limited to synchronous tests but offers an assert library and some usefull API embracing asynchronous execution of your code!
2009
This firefox extension is a fork of the
Jetpack's tool, developed by Atul Varma.
I've searched for all possible information about living Javascript objects in Mozilla applications.
- Show objects of a specific : DOM Document (website, sidebar, xul window), XPCOM javascript server or any Javascript Module.
- Display living objects by js file, then by line of instanciation and finally by their type.
- Classify JS objects by Prototype name or attributes names or native types (Array, String, ...).
2009
Firefox extension which aims to show a real world usage of the new JS-Ctypes Mozilla component :
- Retrieve currently playing song information from Foobar music player into your Firefox,
- Automatically post to your twitter account all listening tracks,
- Search for information on current track in wikipedia, myspace or google.
2009
This one aims to ease the use of .NZB files (newsgroup files) by automatically send them to your download tool, sabnzbd for example.
-
Catch absolutely all NZB files downloads, even those which are sent with Content-Disposable HTTP header.
I've explained this Firefox Hack to catch all request for a specific Mime type Here on my blog.
- Automatically save all these files to a specific directory
- Or Automatically upload to sabnzbd server via its web-API
2008
I've build this tool to watch and analyse all JS code execution in a Firefox instance.
It shows a callgraph with the call count and the elapsed time of each function.
It has one other experimental feature that record reflow events and allow to playback a sort of screencast
that highlight how many and where are done reflows.
This project was mainly the final result of two Proof of concepts:
2008
A set of patches on ocaml compiler to ease native code debugging.
The
first patch has been accepted and allow to show some internal symbols that contains functions names.
The
second patch is still in discussion because it alters all compilation chain to add more info into assembly code generated by the compiler.
This one allows to know where are defined each symbol: file path and line number. So we are able to track anonymous function and improve even more debugging with tools like kCacheGrind or gdb.