Coming soon: Google DevFest Portugal
Ladies and gentlemen, if you live in Portugal, love technology and haven’t signed up for Google DevFest, my question for you is: what the hell are you waiting for? Google DevFest will take place in ISCTE-IUL on the 1st and 2nd of March. We will have a 24h hour hackathon, lots of workshops related to Google technologies (Maps, Earth, Android, etc), food to keep you going and prizes for the best hacks.
Keep in mind that the signups end soon and that we are limited to 200 participants. Make sure you put an effort on your personal pitch, because that’s the only way we can pick people out of the crowd. You can learn more at our official blog. Hope to see you there!
read more
2012 in review
The year 2012 was pretty big for me. I felt like I should summarize what I’ve been through for the last months, so here it is.
Starting with the academic part of my life, I spent a lot of time working on my Master thesis. It was, undoubtedly, the most stressful and challenging thing I’ve ever done. I wasn’t expecting the experience to have so many moments of desperation, or being as difficult as it was. I think that most negative feelings during that time came from the fact that I am a perfectionist and I cannot stand being stuck on a problem. For me, challenges are meant to be solved, and scientific research might very likely throw you into a period of stagnation that I just wasn’t used to. It got so bad that it had an impact on my health, although that has been overcome.
Thankfully, I had lots of support. In my research, my supervisors were amazing and helped me far beyond my expectations. My girlfriend was essential and I’m pretty sure I couldn’t have done it without her everyday support, as well as helping me put things into perspective. My family helped me in any way they could, allowing me to focus on my work and not having to worry about other things, and my friends also had a very important role by allowing me to sometimes forget about work and just enjoy the moment.
It ended up well, though. I was really proud of the thesis, the defense went extremely well, and I achieved a perfect score which stunned me (and still does). Now I have 3 more years to finish my PhD, which will be a continuation of theme of my MSc thesis, Evolutionary Robotics.
One of the nice things about research is that you get to travel. This year I went to 2 international conferences: one in Montpellier, France, and one in San Diego, USA. These are awesome ways not only to meet interesting people in your line of research, get to see what the current state of the art is, but also to do some sightseeing if you are into traveling. I also had the opportunity to take my girlfriend along to the USA trip and visit New York, which was amazing
One of last year’s “new year’s resolutions” was that I would start going to the gym, and I kept that promise. Starting in January, I signed up for a local gym and have been working out an average of 1 session per week. I would like to be able to go more often, but there are some weeks where I can’t allocate a full morning to go. I was in a really bad shape before, but this year I’ve already participated in 2 mini-marathons of 5 km and 8 km. Not a bad start for someone who has always been terrible at sports. Maybe next year I’ll be fit enough to try a half-marathon!
I also started reading (much) more. I have never dedicated much time to reading, partly because I didn’t have much free time, but I’ve found that you can turn that awful commute into a pleasant experience by getting some audiobooks. I managed to read/listen a whopping 27 books this year, just by turning useless time into reading time. If you’ve never tried it, you should. Some of the guys that read these books are brilliant at it, and the story comes alive inside your head. I read mostly Sci-Fi, but I also went through a couple of biographies, technology, and even philosophy books.
I also took up geocaching with my girlfriend on our free time, which proved to be an awesome way to know nice places. If you don’t know what it is, it’s basically a global treasure hunt. There are almost 2 million small containers, or “geocaches” hidden in (usually) cool locations worldwide. The owner of the cache lists its GPS coordinates and some information/hints online, and then other people can try to find them. Once you find one, you sign a physical logbook and log it online afterwards. Some bigger caches allow you to trade some small items with fellow geocachers. We’ve already found around 60 caches, hidden 3, and are planning on hiding a couple more.
Moving over to the more geeky side, I messed around with floppy disk drives and took my first steps in emulation. We ended up extending the floppy drive project on this year’s Codebits, which earned us the 4th place on the audience’s choice category! I gave a talk there entitled Evolution and Robots – How to create artificial brains for machines, give it a watch if you want to know WTF is my research about.
For 2013, my new year’s resolution will be to play guitar at least 30 minutes everyday. I’ve had my guitars for some years now, but I never had much time to practice until now. I also want to keep up the good habit of reading, so I’ve set the goal to an average of 2 books a month. Oh, and I can’t forget about the gym… I’ll try to improve my attendance rate.
That’s it, have a great year!
Codebits VI (2012)
Another year, another Codebits! For those that don’t know what Codebits is, it’s basically the gathering of 800 geeks/technologists during 3 days for talks, challenges, free food, networking, general mucking about, hacking (the good kind) and a 48-hour programming competition. It’s one of the biggest tech event in Portugal, and, I would risk saying, the most awesome event… *cue Jeremy Clarkson* in the world.
This year I stepped my game up and decided to present a talk about Evolutionary Robotics. Unfortunately, things went sour and I couldn’t show up in time for my own talk! I was really feeling awful about this, but the Sapo team was amazing and rescheduled for the next day. I am really grateful for their second chance. You can watch the talk online online if you want to:
As usual, I also participated in the 48-hour programming contest. Although this is only my third year attending Codebits, I’m starting to see a pattern in the theme of projects I choose: music. Earlier this year, I messed around with floppy drive music, and that seemed like an awesomely geeky thing to extend into a Codebits project. The idea was to use the floppy drives as a guitar “amplifier”. By using a computer to figure out the note that a real guitar is currently playing, we could then use Moppy to play that note with the floppy drives. Since the whole hardware configuration was a mess (we used 4 floppy drives, a power supply, an arduino, a breadboard, and lots of wires) we decided to make a box for it, which ended up being a Codebits bot (the mascot of the event). Artica helped us out alot by lending us some tools, so thanks a lot guys!
Before we presented our project, we also had a really valuable help from the Codebits sound guys. Not only did they recommended us to isolate the box with foam or Polystyrene (which we did), they also spent a lot of time tweaking our microphone setup for the 90-second project presentation. When the time came, we pitched the idea, showed some “awesome” guitar playing skills, and the audience seemed to really like the project! We were the 4th project with the most votes, out of a total of roughly 90 projects. A big thanks to David Jardim and Pedro Dias for working hard on the it and seeing the potential of the idea! Here’s the 90-second presentation:
I thought the organization couldn’t improve upon last year’s edition, but they really brought the whole event to another level. I can’t pinpoint any flaw. I hope that next year is even more awesome!
read moreChip-8 emulator in JavaScript
A few months ago I read a fascinating article on emulation. Ever since then, I knew that I wanted to learn more about this subject and I set out to build my own emulator. I started with the Chip-8 interpreted language in Java, and then ported it to JavaScript. If you have programming experience, this is a simple and fun project that will take you just a couple of days of reading/learning/coding. I will make a more in-depth post about the basics of emulation when I have the time, but for now I'll just leave the finished project here (try INVADERS):
How to play music with Floppy Disk Drives
I recently stumbled upon a few videos of floppy drive music on Youtube and just knew that I had to try to do something like that. Fortunately, SammyIAm had a wonderful tutorial and even open-sourced his code entirely! This post is a written guide of how to turn those old paperweights into a musical instrument. You will need:
- A Power Supply Unit
- An Arduino
- A Floppy Disk Drive
- Cat 5 cables/electrical wires
- A computer
Power Supply
In order to power the drives, I recommend that you salvage/borrow a power supply unit (PSU) from an old computer. You can use a single PSU to power many drives, if you wish. If you take it out from the computer, you need to short the green cable and any black cable from the main ATX connector in order to power it on. If you don't have many drives, you can use the 5v connector on your Arduino.
Arduino & Floppy Disk Drives
So, you want to make those floppy drives sing? The first step is finding a few that work. One is fine, but most MIDI music files have multiple channels and you'll probably want at least 3 or 4 drives, eventually. The component of the drive that is going to be used to produce musical notes is the stepper motor. This is the thing that moves the drive's head back and forth. By changing the speed at which it rotates, we can produce different notes. The faster it spins, the higher the pitch.
In order to connect the drive to an Arduino, SammyIAm recommends using a stripped out Cat 5 (typical ethernet cable), and they were a good solution for us. You can also use simple breadboard wires if you have some lying around, but any kind of electrical wire should suffice.
Here's the pinout for the drives:
A little explanation is in order. First, you need to find if the drive is in mode A or B. The most simple way is to turn the drive on and shorting pin 12 with any ground pin (the ones on the bottom row). If the light on the front of the drive lights up, then it's in mode B (which it should, by default). However, if it does not light up, try shorting pin 14 with any ground pin. Make sure that the light is turned on, which means that the drive is in mode A. It does not matter what mode it is on, as long as you short the correct pair of pins and, consequently, make the light stay on.
Next you need to connect pins 18 and 20 to the Arduino. This step is exactly the same independently of which mode (A or B) the drive is on. Take 18 and 20 and connect them directly to outputs 2 and 3. These two outputs will be used for Channel 1 of the MIDI sequence. If you want to use more drives for the other channels, you should follow the same procedure but connecting to pin 4 & 5, 6 & 7, etc.
The last thing you should do is connect any ground pin on the drive (the ones on the bottom row) to the Arduino's ground pin. Some floppy drives have every ground pin, but others only have a few. You just need to connect one of them.






Me on the web