- I continued with doing the initial parts of the book, and didn't pair with
- I gave a super-short presentation, introducing people to
- I just started writing a Bencoding parser in C, but I'm having trouble
thinking about all the memory allocations and stuff. It feels so
(Re) Learning C
- Stephanie and I worked through the Networking chapter of the book.
- We faced some issues with writing 0 bytes to memory, since most of the code
was dealing with strings. I still haven't figured out how to do this,
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.
- There seemed to be excitement in the space to have Jessica around. We had
coffee with her, and I chatted with her briefly. She encouraged me to try and
send a patch to CPython, that involved debugging and fixing some C issues.
- I spent some time with Tom, while he tried to get
cinspect working for him,
and it seemed like having the developer next to you, helped. As always. We
didn't make any fixes to the code, but it worked.
- I spent the afternoon, adding tests for a simple issue, to see how patches are sent.
- Later, I paired with Sophia for an hour to refactor the vcs code. It's
beginning to look much better than what it used to, and I like that.
- Jessica's talk on buffer overflows was enlightening and entertaining. It was
very similar to a talk that Max gave on one of the thursdays, but it was
- After the talk, I am inspired to try and work through the Hacking: Art of
exploitation, at some point. I'm beginning to feel like time at HackerSchool
- We worked on writing our own (toy) version control system on Friday, as a
part of job prep. I paired with Sophia, and we got upto the point where we
had diffs working, when we decided to refactor the code with some tests and
- The party was brilliant with a lot of activity. All the project
installations looked so cool, and it was so much fun!
- I spent some time during the weekend watching the "Anatomy of Matplotlib"
- I started some work with poking around Matplotlib's template backend, and
trying to start writing and ascii backend.
- Also, I was trying to help UC setup GrooveBasin on his raspberry pi, and
helped him configure jasper on it.
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
Saturday & Sunday
- During the weekend, I had this idea of building a personalized "radio" for
myself using a Raspberry pi. The idea is to have a service where all my
bookmarks, and feeds are accumulated to, instead of eating up valuable
browser tab real estate. And then, I could use a Raspberry pi to randomly
play content off of it, based on a theme.
- I worked on getting things together for it, during the weekend. The project
is more like a "thing that needs to be done", rather than something that puts
me out of my comfort zone, atleast as far as I can see. So, I'm just going to
work on it as a background thing, between other projects, etc.
- Festival seemed OK initially, while I was trying things out, but when I
actually used it to read me a blog post, it was really terrible! I tried
demos of a few commercial tools, and they seem much better than what festival
had to offer. I wonder what it would take to get Festival, up there. I
tried using Google's translate service's tts (unofficial API) and it seemed
so good! But, it limits each request to 100 bytes, and the audio will have
to be downloaded via the Network.
- Madhu pointed me to MaryTTS, which seemed to be an active project and it
seemed to be much better than Festival, though not as good as Google's tts.
I'm going to try getting it to run on a Pi, next.
- I don't really know what I'm doing to work on, today. I have been playing
around with the Pi, for the past week-ish, and it has been fun! Kyle and I
will probably work more on tweaking it, to get it to work the way we want
it, for the party!
- I also did a little bit of Julia with Sean, and it was fun. I may try
playing around with it, a little bit, but not sure what to work on. May be
continue working through the think-complexity book using Julia?
- Or jump into something I totally don't know about, inspired by listening to
Julia Evans' podcast for Ruby Rogues. I just got this idea of trying to
write a window manager to understand how X works, and what wayland is… I
could try porting dwm or i3wm to Julia.
- There's a whole new bunch of excited Hacker Schoolers in the space, and its