- 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.
- 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.
- 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
- 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.
- 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.
- 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
- 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
- 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
- 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.
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
- 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.
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.
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
- 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
- Also, excited to see how all the cool projects will come together in the
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.
- 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,
- The trouble was essentially getting Airplay to discover my service. I tried
a bunch of things with
avahi, but wasn't able to get it
- 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!
- 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.
libshairport to see what I was doing wrong,
- May be write up the whole thing, and make the code available.
- Learn a little bit about Parsers from rntz.
- 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
- 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
- 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