Blogging catch-up

:: Hacker School

It’s been a few weeks since I’ve blogged. Bad me. This is a catch-up post.

Hacker School has a tool called Blaggregator created by Sasha Laundy. We can submit feeds for our blogs. Blaggregator provides an aggregate page, and puts new-post messages on Zulip, the chat tool.

Awhile ago I noticed a bug with time zones in the RSS feed generated by Frog. I was concerned that fixing the feed would change date-times, and that might cause Blaggregator to flood Zulip with “new post!” notifications. Which would be embarrassing. So I unsubscribed my feed, fixed the problem, and subscribed again. All went well, but Sasha pinged me on Zulip today to follow up and make sure.

That prompted me to check out Sasha’s profile page and list of projects. That led me to On Rakefiles and Rabbit Holes. This is such a classic Hacker School type of post — where someone takes the time to follow the trail wherever it leads, and learn cool new things.

Sasha’s mention of stty -echo reminded me of a mild annoyance in Emacs’ shell-mode. Sometimes — but not always — it starts echoing my input, as if I had typed stty echo. Sasha’s post this reminded me I could type stty -echo to turn it off. But how and why does it turned on in the first place? I searched and found a Stack Overflow question, Python in Emacs shell-mode turns on stty echo and breaks C-d.

Aha. As it says:

OS X ships with the BSD-licensed editline rather than the GPL-licensed readline, so this would explain why the behaviour is different on OS X from other Unixes. The same thing happens with other interactive interpreters. I find that the Lua, Ruby and Sqlite3 command-line interpreters also turn on terminal echo when run inside Emacs. So it seems to be some kind of “feature” of the editline library.

Yes. A fresh M-x shell is fine, until I run (say) python or racket.

Anyway, Sasha’s Zulip message managed to nudge me into writing a blog post.

So what have I been up to?

My first six weeks here, I mostly spent multiple weeks at a time on things like getting hands-on with Clojure and then Haskell, or pairing a full week on a web service.

Whereas so far in the second half, I’ve been doing a variety of smaller projects — which I haven’t blogged about one by one. Here’s a quick overview:

  • Help some people who were pairing to create a lean web framework in Python. We got to see first-hand how cookies are a way to provide state for a multi-page form application.

  • Work through the Rust Guide hands-on.

  • Pair with someone working on a Python web app that shows you if it’s Shabbat in the location of someone you want to call. They wanted to refactor the code to be less repetitive.

  • Participate in Zach Allaun’s hands-on workshop about configuring and developing using ClojureScript.

  • Fix a bug in racket-mode on Windows.

  • Pair with someone who is vastly more experienced in Haskell than me, to learn how to use Template Haskell for my Haskell port of wffi.

  • Fix some issues with a couple of my Racket packages, aws and http, that are now being used by Racket’s DrDr continuous integration tool.

  • Pair with someone who is getting started with Racket and wanted to use racket-mode on Emacs.

  • Start to learn about microKanren from looking at sokuza-kanren.scm and a couple papers including μKanren: A Minimal Functional Core for Relational Programming.

  • Start to work through the Matasano crypto challenges.1

In most of these cases, I didn’t feel like I had an entire interesting blog post to write. I did take notes and had some fantastic experiences both learning and teaching.

  1. All the friends and family who think I’m learning cracking here at Hacker School? This is the closest I’ve come so far.