Last weekend I was in Bucharest for 2 hackdays: the first one was at UberVU, a social analytics company where they were developing an open-source Javascript framework, and the second one was at ROSEdu, an organisation in University Politehnica of Bucharest that helps students develop real-world coding skills.

uberVU

Their primary company focus is social analytics: marketers from big companies use their tools for monitoring the impact of their brand on social networks. In addition, they have a nice feature called signals: if people in Russia start a "riot" online about a brand, the marketers get an alert about it and they can start "calming" people down.

I heard about the previous uberVU hackday from the internet, but I could't participate at it because I was at the Acadnet contest. This hackday was for developing their internal Javascript framework called Mozaic, because they started moving their website from a classical REST one to a more responsive one (Single Page App), using TastyPie for the backend and a mix of CoffeeScript, jQuery and Backbone (the Mozaic thing), for the front-end.

I knew from the beggining that the stuff the guys were coding was hardcore... hence I have very little experience in using Javascript (just a toy I spaghetti-coded in jQuery). But after an email where I asked them if I could join in, without getting into their feet, Bogdan's response was affirmative, and he added that it is an asset that I come from Valcea.

Coding time

Well he was right in more ways then one. Valcea is very close from the capital Bucharest: only 3 hours by bus. Furthermore, I later learned that him and one of the co-founder, Vladimir Oane, were from Valcea, and they finished my ex high-school.

I arrived half an hour late, but the boys didn't started the party untill they waited for 2 other coders. After an initial briefing about the company's product and technologies, we got to choose on what tasks we wanted to work on. There was another task added for those who weren't familiar with the framework, which was to create a demo for it. The team for this task was formed by me, Vladimir, Ovidiu Chereches and Liviu Luca.
Ovidiu and me
First we had to decide what demo app to code... using our full imagination, we settled on a simple todo list, starting from a skeleton that Andrei Ismail gave us as a refference. Vladimir imediately started to use Bootstrap for the wireframe, and he finished it in no time. Afterwards, Liviu started to work on the HTML front-end, and me with Ovidiu decided to code the app with the framework.

The manner was simillar to pair-programming: he was the coder, I was the observer, because he had experience with the framework (he was a partner of UberVU or smth), and he was too darn fast at debugging. What I expected to be easy, turned out to be a little difficult, because we stumbled upon some nasty bugs:

  • in the core framework, the function for deleting an object wasn't implemented
  • we decided to sort the todolist by priority and then by checked/unchecked items... but after implementing this, the add todo field didn't work. It took us an hour to see that the unique ID of the new object added was taken from the last item (which in many cases wasn't the highest), and to replace it with the length of the collection

final version of the app
The end result is pretty cool: in 227 lines, we have a working todo app, where we only have to connect our app to the server in the datasource.js file. Another cool feature that Andrei said that could be easily implemented in a few lines is that we could have the app sync with the database every second, and when we check or star an item on a computer, immediately the action could appear on another one with the same website opened. Just clone the repo to see for yourself the results.

Finally, we presented our project in front of the other teams. Another cool project I saw was an app that generates a graph based on the dependencies of Require.JS. Combined with the bundler for modules, it can help deciding how to bind modules for a smaller and more efficient load of assets. UberVU has some really good hardcore programmers ;)

In the end, we retreated in the gaming room to play Mortal Kombat on the XBox. Here, Tibi proved a guru in playing with Sonia, and he kicked our buts really hard for about 2 hours. For me, the day ended at the cinema, where I saw American Pie Reunion and where the comments of the public were funnier than the actual movie.

ROSEdu

ROSEdu is an organisation in University Politehnica of Bucharest which promotes real world coding and has some great projects like the hackdays, a summer school, an SoC or other stuff. Also, Razvan Deaconescu, one of the presidents, had a workshop on open-source development at the Acadnet contest, which was really cool.

After searching the room for about 30 minutes and a phone call, I arrived at the place of the hackathon. There, the teams were already split up:


  • Dan Serban (who was also at the UberVU hackathon) teamed up with another guy to code a sniffer that catches Flash packets and rebuilds the original video/song.
  • 2 guys from Ceata, an open-source NGO, were coding on Harta Politicii, a project which tries to organise the politicians from Romania, using statistics from the parliament and relevant news, originally hacked by Vivi, a well-known ex-Googler
  • Alex Morega & Alex Eftimie, 2 open source contributors, were coding on World of USO, a Django project that students at the university use for their operating systems course. It's an RPG game, kind like Zelda, where students answer questions about operating systems (Linux in general), can challenge other students or can start quests.


My experience with Django was also very low: I coded just the Django tutorial. But I've lately used Rails, so I knew about the various parts of an MVC web app. The first part consisted on installing the project on my local machine, which proved a pain in the ass... but in the end, we documented the process. After that we saw that the form for adding users wasn't working, so I added this function, together with a nice integration test. I'm really proud of my first pull request for an open source project.

Although I came for coding, a fair amount time I spent talking with Laura Vasilescu, an undergrad CS student, president at ROSEdu, who is also from Valcea. We talked about the current state of thehigh-schools in our town, universities, her BSc thesis and a lot of other interesting stuff. She will also teach me how to build network apps at the IP Workshop camp next month.

The End ?!

It's really cool to be young between so many good programmers. Nobody expects much from you and coding near them means any question gets answered instantly.