dira ⋅ geek ⋅ girl

About me

I am Irina Dumitrascu, also known as dira. I make web applications with Ruby & Rails. I write semantic HTML5 with Haml, advanced Javascript & CoffeeScript and CSS with Sass. I love structuring my client side code with Backbone.

I am test-infected and I enjoy practicing exotic sports like thinking about algorithms and writing grammar-based parsers.

I am interested in challenging projects and work as a freelancer. I believe in testing, writing clear code and I thrive when my clients are extremely happy with my work.

I enjoy traveling and diving in different civilizations, and for the last 3 years I have been freelancing various cities in Europe and South America.

In my spare time I enjoy literature, trek, and take dancing lessons.

I am dira on github, and my email is .
Follow me on Twitter.

Personal projects

  • Tzigla - a collaborative drawing web application where artists make tiles that connect to each other to create surreal drawings. It is written in Ruby (Rails) on the backend and CoffeeScript (Backbone and Zepto) on the frontend. All the intensive processing is done on the client, thanks to <canvas> and Backbone's MVC.

    The first, fully functional, version was online after 40 hours of intense work in November of 2010. Then Tzigla was one of the first projects to adopt Backbone, having a rich user interface with many models and views. In early 2011, the gorgeous Pixel Editor was born, using HTML5, Backbone and <canvas>.
  • picasa-light - a viewer for Picasa which I developed to be able to view my photos in places with modest Internet connexion. It focuses on the images and strips to the minimum the amounts of not-necessary information that it loads, and also hides it for pictures that are not 'on focus'.

    On the technical side, it is built on top of Sinatra using the Picasa Web Albums Data API. The images are loaded progressively via Javascript, 4 at a time, in order not to choke the viewer's browser. The interface is inspired by a minimalist Flickr viewer, using light CSS and Javascript.
  • gmap-to-static - a Javascript utility for converting a Google Map to a static image. I developed it in order to be able to have a lightweight map embed, instead of the default heavy iframe embed.

    This was a very satisfying, challenging project from a technical point of view. This was because creating a static map is easy if you have the information about markers and paths, but when viewing a map most of the attributes are minified to two-letter identifiers. Discovering that some essential properties are not minified, like infoWindow and latlng for markers, I was able to use backtracking to search the entire map object tree, looking for properties that "quack" like a marker. Using the same technique for paths and shapes, I created a full-featured export to image algorithm.

    In early 2011 this tool stopped working, as more aggressive minification of the map information hid the essential properties used by the algorithm.
  • gmaps-stub - I created this stub in order to satisfy heavy Javascript dependence on the Google Maps API without loading the actual map. Not having to wait 1-2 extra seconds for each page load makes development faster and a lot more pleasant.
  • vimmish is a parser for vim commands. I coded it in 2009, and it was meant to be integrated in a vim learning site in order to automatically explain experts' solutions. The team enthusiasm for the site staled, but I continued adding to vimmish once in a while to play with Treetop some more. It was written as TDD and the most interesting part is its grammar and the generator branch.

Giving back

I am active in the Omniauth community and wrote a useful article about writing custom OmniAuth strategies.

I contributed SVG gradients support to the Compass Sass framework, enabling linear and radial gradients in Opera and IE9.

I took part in the early Rails BugMash events.

At Euruko 2009 I held a lightning talk about vimmish and using grammars to parse grammars in order to generate random, but compliant strings; even if describing the meta-meta process is quite complicated, the talk was well received by the audience.

Also, when in Romania, I am a constant attendee at wurbe, the web developers' meeting in Bucharest, where I also spoke about semantic html and took part in the first hackaton (Facebook app in 3 hours!) back in 2008.