Skip to main content

Posts about raspberry-pi

Recurse Center, 2014-08-07

C stuff

  • In the morning I cleaned up the code to open torrent files, and parse them.
  • I worked on a function to do encode text properly, and Sophia helped me find out that I had to use unsigned chars in it.
  • I looked at Sophia's threaded ftp server in C, and gave some suggestions on how the code could be refactored.

Baking Pi

  • We still didn't get to the video stuff, yesterday. We finished the first 5 chapters, though, and have a SOS pattern display.
  • I'm really looking forward to doing the cool video stuff.


Recurse Center, 2014-08-06

  • Finished working through the first 5 chapters of the baking pi course, and am excited to start working on the video stuff, today!
  • Spent some time pairing with Sindhu on her url checker, and later in the night helped her out with a small bug in her GitHub activity leaderboard script.
  • I spent some time adding dict parsing support to the bencode parser.
  • And also cleaned up the tests.
  • The electronics hobbyists were doing some cool stuff, and I joined them for a bit. We tried some cheap motion sensors, but they didn't work very well, and probably need to be calibrated.

Recurse Center, 2014-08-05

  • Spent a couple of hours in the morning, trying to revive a html template for blaggregator, that I missed out on committing previously, and wiped out due to negligence in using `git clean`.
  • Spent time post lunch working through the first two chapters of the baking pi course, by myself, reading up different references, and finally getting how I/O is mapped to the memory in ARM.
  • Actually, almost. A variant of the example that I thought should work, doesn't. So, I need to think/talk about it today.
  • I sent a patch to Nikola for the lastdeploy timestamp being UTC. I was hoping to work around an issue with Blaggregator, by somehow fixing it on the client side, but that's probably not the right way to go about it.

Recurse Center, 2014-08-04

  • A bunch of worked on getting LEDs to blink, by writing some assembly code.
  • I goofed off post-lunch, and cleaned up the code for the Google Translate based TTS client.
  • I tried to continue working on the bencode parser, to add support for dictionaries, but I couldn't get much work done before it was time for the Monday talk.

Recurse Center, 2014-08-03


  • On Friday, I didn't do the exercises that everyone else doing job prep were doing. I wanted to continue writing C code, and continued to work on the bencode parser in C. I barely was able to finish adding support for lists.
  • I got comfortable using Valgrind, in the process of debugging a stupidity of not using realloc correctly.
  • What I was able to write with Python in an hour or so, I have been writing for about a day, in C, and haven't yet finished it! It definitely doesn't help that my C is very rusty…

Saturday & Sunday

  • I didn't work much, and went around New York with Madhu. We went to quite a few places around here, the highlight being, the view of Manhattan's skyline from the Staten Island Ferry.
  • NYC's library also had an interesting exhibhition on the history of America, just before and during WW-I.
  • On Sunday, I tried out Mary TTS on the raspberry pi, and it is simply unusable.
  • I then, started writing a simple wrapper around Google's tts that is used by Google translate.
  • The TTS part is more or less working right now, the next step would be to deploy it on the RaspberryPi and start using it as a radio, to see what my needs are like. Hooking it up to Jasper client seems like a good idea, right now… though I'm not sure if it would work very well, with the pi's audio output drowning out the voice commands.

Recurse Center, 2014-07-29

Hacking: learning by breaking stuff

  • Post lunch, I started pairing with Stephanie on the exercises in the Hacking book, and that turned out to be super fun!
  • We got through the chapter on exploitation, which focussed on stack overflows, heap overflows, overflows in function pointers, and string formatting exploits. It acted as more than a gentle refresher for C, and was super fun!
  • Running the examples on a 64bit system, added an additional amount of thinking required, and was good, IMO.
  • I hadn't worked along with Stephanie on the material in the first two chapters. So, I went back home and tried to catch up, but couldn't get all of it done.


  • I spent part of the morning wrapping up the install script for the raspberry project, and cleaning up the repository. It looks reasonable now, and I think I'm done with it until the end of HackerSchool.
  • I also tried to look for "easy" python issues that would involve me writing some C code, but didn't really find anything other than documentation… I guess, I should pick a module and look for bugs in it, instead.
  • Also, while chatting with a friend, I had to explain that I don't mention the last names of people or link to them, for privacy reasons. Hacker School is particularly careful about not divulging information about who are at Hacker School each batch, and I want to keep that tradition.

Recurse Center, 2014-07-24

Glowing LEDs and me

  • It turned out that the SPI driver exposed a faster way to write bits, writing to all the LEDs at once, instead of one at a time, and this was sufficient to get things working!
  • Kyle and I started to have enough, of the glowing LEDs and decided to wrap up the project, but, Nick had different ideas for us! We had talked about having the music stream via airplay, but Nick got his DJing tools, and it would be too bad to not use it for the party, but doing that meant Airplay's delay wouldn't help the DJ. So, we connected a line-in, and thought we'd be done if we just read the input and used that data. But, it turns out that's not so simple because sending data over the wire, added noise to it, and in a whole range of frequencies! I tried removing all the fourier coefficients which were lower than a threshold, but I felt like it didn't work very well, until Nick reduced the gain of this output on the amp to the very minimum. Finally, Kyle and I decided that this was good enough for the party!
  • I also hacked up a quick script to read a font file, and use the grey values to get ascii characters to show up on the LED strip.


  • While trying to find the RPi on the network, I learnt that sudo nmap -sP 10.0.1.* gives us the hostname as well, instead of just IPs. sudo being the key, here.
  • Kyle and I went and grabbed dinner in a restaurant in west village. It was good to sit down and talk about various things, and eat. The glowing LEDs were totally out of my mind for that period, and the break was good!
  • There were a bunch of HSers doing mock-interviews and it was fun to watch, so I stayed on until quite late, when all of us headed out together.


  • I'm excited about trying to build a small version control system from scratch today!
  • Though I have had quite a bit of glowing LEDs in my face for the past week, I may suck up to it, and figure out how to do scrolling text on the display.
  • Also, excited to see how all the cool projects will come together in the party tonight!

Recurse Center, 2014-07-23

Shairplay and WS2801

  • Kyle mounted the LEDs onto a cardboard, and packaged it to look cool.
  • We thought we were done with the project, until we found out we weren't! The LEDs all lighted up correctly, when we played the audio from a file on disk, but streaming messed something up! Only the first few columns lighted up, when we were listening on the stream.
  • We spent the whole evening trying to debug the issue, and eliminated quite a few hypothesis, but weren't able to fix it, yet.


  • rntz live coded a parser for us yesterday, and I learnt a few things about parsers. I'm glad I went to the discussion/talk.
  • I started working through the videos of Anatomy of Matplotlib, and hope to get new insights into how it works.


  • Today will be spent mostly trying to get streaming audio working.
  • I feel like debugging this, will take my understanding of the hardware-software interface to a new level.

Recurse Center, 2014-07-22

Mel's talks

  • Mel's talk in the morning was brilliant! I wonder why it's not a part of recommended reading for Hacker Schoolers, or referred to, in the manual.
  • Logically, it makes sense that Mel came now, so that she didn't have to come twice to talk to the firsts and seconds, but it would have been great to have had this talk in the first week of Hacker School!
  • Mel gave us a lot of new information and insights into education and learning styles. I also like the fact that she gave us all a good vocabulary to think about and discuss stuff related to learning. I will try to think, and apply as much of this as I can, for the rest of my time here.
  • She talked about test driven learning which seemed very interesting. Instead of just saying, "wow that would be an interesting thing to do", stop for a moment, think about what you are trying to learn, and how you will assess if you have learnt what you wanted to, and then dive into the project.
  • The learning styles workshop was pretty good too, though I feel like I don't know myself well enough, and I unable to properly "bucket" myself. Later, I took a quiz, and ended up fairly close to the middle, in all the dimensions.
  • Mel introduced us to the idea of cognitive apprenticeship, and encouraged us to try out the different modes when pairing. I really liked the idea of Zone of proximal development and I will try to take the advice of spending most of the rest of my time here in this zone.
  • Do I (really) care? Motivation and mindset, …
  • Be courageous!

Airplay and Raspberry Pi

  • I was trying to wrap libshairport and use it on the RPi to be able to listen to songs being streamed on Airplay, and use that data to drive the LEDs.
  • Shairport, a tool written in C seemed to work. My attempts to wrap libshairport, which is a fork of shairport converting it into a library, failed miserably.
  • The trouble was essentially getting Airplay to discover my service. I tried a bunch of things with pybonjour and avahi, but wasn't able to get it right.
  • Finally, I tried just announcing the service with shairport, and actually running a python script that wraps libshairport to listen to the data. But, this didn't work and iTunes complained that this Airplay device is not compatible. Before going much further with this, I found shairplay which is a tool similar to shairport, but came with a library, and also Python bindings! I happily used this to get stuff working!
  • I'm interested to see today, what exactly I was missing yesterday!

Emacs club

  • I demoed org-mode to a bunch of people for about half an hour, and it was good to see people being blown away by what it can do, exactly the way I was, when I first came across it.


  • Work on RPi to clean up a few things for the party.
  • Compare libshairplay and libshairport to see what I was doing wrong, yesterday.
  • May be write up the whole thing, and make the code available.
  • Learn a little bit about Parsers from rntz.

Recurse Center, 2014-07-21


  • It was exciting to have so many new Hacker Schoolers in the space. But, the excitement was kinda distracting too.
  • I spent most of the day looking at shairport, and libshairport and trying to wrap it, so I can use it to get data for the spectrum analyzer via the Air-play protocol. I was able to call it using ctypes, but it doesn't seem discoverable.
  • I also briefly looked at Julia and dwm, to try and port dwm to Julia. It doesn't seem like too much work, but is going to take me a while given how comfortable I'm with both Julia and C.
  • Yaron Minsky's talk on distributed systems was a great introduction to Distributed systems.
  • After the talk, I spent a little time updating my notes from an old org-mode workshop to present it at the emacs user group meet up today.


  • I hope to get the spectrum analyzer to use libshairport and be able to play music sent through Air play.
  • Spend some time talking to the emacs user group about org-mode.
  • If I have any time, after getting this to work, I may play around with the dwm port.