Willghatch Blog
Here are some posts. Also, links to RSS and atom feeds. (What is a feed?)
I’ve given several variations on a talk about Rash, but none have ever previously been put online. Recently I sat down and made a decent quality recording of my Rash talk and made it available on Youtube.
While I haven’t made much time for Rash lately, I hope to start spending small but regular amounts of time on Rash and related projects. Hopefully I’ll be able to push it (and its documentation!) forward.
I’ve started and thrown out a few drafts of a post about NixOS over the last of couple years.
At this point I see blog posts about NixOS so frequently that perhaps there is little left to say.
But I want to say something, so here is an overview of some of my favorite features and most irritating issues.
My home network is weird, and it’s taken me, ... uh... way too much work to get it set up how I want it.
I’ve decided to post the bulk of my current router configuration as a help to other people who are similarly weird.
Recently I ran into a bunch of talk on the web about Plan 9.
It reminded me that I had once learned about Plan 9, but had mostly forgotten what the big ideas were.
So of course I decided to explore again, and this time actually take notes.
As I’ve already written notes down, I’ve decided I might as well make a blog post about what I view as the big ideas of Plan 9.
Every so often I see publishers and the ACM complain about open access being expensive and needing difficult planning to create sustainable open access models. And every time I see it, it seems like so much hogwash.
I have not faithfully written in this blog. A large part of that is that I have struggled to set aside time to write. There are many blog posts that I want to write. But it takes so long to write and edit a good blog post. You may notice that so far I have no good blog posts — they are all poorly written. This happens because I start writing, run out of time for the day, and then have a decision: I can either publish a post as it is, poorly planned, hastily written, and generally rough, or I can wait until I edit it. Every post in my blog so far is the result of a decision to post something rough rather than to wait until I eventually edit it. For every blog post that I have published, there is another that I started but left languishing. For every blog post awaiting edition, there is another that I wanted to write but decided not to even start because I knew I wouldn’t edit it. The key takeaway: I never come back to edit. After one bout of writing, I am out of steam.
In my compilers class this semester we’ve been talking about static analysis and optimizations. We’ve written a little LLVM frontend compiler for a toy language with s-expression (lisp) syntax. We’ve also added an option to our compiler to add arithmetic overflow and division error checks to the compiler output. We’re going to look at the output of this compiler with arithmetic checks on a toy program, and see what the optimizer does to it.
In the United States of America, citizens generally get one vote in a race, and whoever gets the most votes wins. It’s straightforward. But it’s one of the reasons we have a two party system with such a huge partisan divide and so much insanity in politics. But there is a better way. Ranked voting means you vote for multiple candidates in order of preference. There are many specific ways to determine the winner of such an election (the most famous of which seems to be Instant Runoff voting, which I don’t like compared to some others), but any of them are better than our simple “first past the post” system.
The other day I was sitting at home when I realized that my network switch was going crazy. The switch in question is a gigabit switch that is connected to my home server (which is my home’s gateway device — the one connected to the modem), to a wireless router, and to a desktop machine that acts as a media box (it’s connected to a TV and stereo system). By “going crazy” I mean that all the lights were flashing as fast as they could. There is a light for each connected device, and when it flashes it means that that device is either sending or receiving data — meaning that in this case packets were going to or from my server, my media box, and my wireless router (which by proxy means my laptop, my phone, my wife’s phone, etc) apparently about as fast as possible. Recently there have been some high profile DDOS attacks by botnets of unprecidented size. “Am I part of a botnet?”, I wondered. “Did I make some serious security mistake, despite generally being much more careful than average about security?”.
Some time ago I was finally in a position where my ISP had IPv6 capabilities and I was in full control of my internet setup (IE it wasn’t controlled by landlords or shared with roommates who had stronger opinions than mine). So naturally I decided to join the internet of the future (that should have been the internet of the 90’s) and get IPv6 set up.