In “episode 2” of my kernel development series, I’m going to talk about how I put Python into an uninterruptible sleep. This spooky story involves a rogue kernel module, segmentation faults, and reference counting (a topic already well established to be spooky). And only a few days late for Halloween!
Read moreFor the past few weeks I’ve been dipping my toes into Linux kernel development, as part of the work I’m doing for my master’s thesis. Like most things that stir up my nerdy interests, it’s leaked onto Twitter quite a bit…
Read moreAn exciting announcement! Starting a few days ago, when you visit my website, you should see a green padlock next to the URL bar.
Read moreImagine that you’re taking a long train ride on the BART. Maybe from Millbrae to North Concord. Chances are, at the very same moment, somebody else is going the other direction. For example, maybe from Pittsburgh/Bay Point to San Bruno. In case you haven’t memorized BART’s stops, here’s a useful map illustrating these rides:
Read moreOne of my silliest long-running projects is a chatbot called cbot. All it does is connect to an IRC (Internet Relay Chat) server, and respond to people’s messages. For instance, if you greet it, it will greet you back. If you insult it, it will send you a poorly-constructed comeback. Obviously there’s nothing groundbreaking about it - there are other chatbots that are much better. I made cbot because I wanted to learn some new concepts (specifically the IRC protocol and dynamic loading), and it was really helpful for that purpose. Plus, it’s another project in C, and I like projects in C!
Read moreLast night I had a sobering experience. A faculty member from another university sent me a message letting me know that some of their students had turned in modified versions of my shell, lsh, for a homework assignment. Maybe I shouldn’t be too surprised. Writing a shell is a very common assignment for computer science students. My tutorial based on lsh has somehow managed to climb the ladder to the first page of search results for many queries related to writing shells. So at the end of the day, I guess this was bound to happen. And even though I can’t really be held responsible for what other people do with my tutorial and code, I feel pretty bad about this. Although there’s not much I can do to prevent students from presenting my shell as their own, I feel like I should point out why it’s such a terrible idea.
Read moreDuring spring break I had an odd experience. I found all four of my high school student ID cards, complete with my school picture from each year. When I showed them to a few friends, they all remarked on how little my face has changed since then. For reference, the picture I use on the front page of this website is a high school senior picture, nearly four years old. Not only do I look pretty much the same now as I do in that picture, even my freshman year picture looks about the same. So over the course of seven or so years, it seems that my appearance—or at least my face—hasn’t changed that much. Oh well.
Read moreOne of my favorite types of quick side projects are ones that involve web scraping with Python. Obviously, the Internet houses a ton of useful data, and you may want to fetch lots of that data to use within your own programs. Python has a few excellent tools which can be combined to create a powerful, easy to use system for quickly harvesting this data from webpages. I’ve used Python’s web scraping tools for fun projects like downloading music lyrics, and then using that to make a Twitter bot that replies to you with Taylor Swift lyrics. But these tools could also be useful for serious projects, like aggregating course enrollment or evaluation data from your college. So how would you go about simple web scraping in Python? Let’s dive in!
Read moreRegular visitors to my site (if there are any!) may have noticed that, starting
today, stephen-brennan.com is redirecting to a new domain name, brennan.io.
This change was motivated by a few reasons:
HackCWRU 2016 has finally come and gone. I’m up late, since staying up for 30+ hours kind of messed with my sleep schedule. This year, we had over 500 people sign up, and around 180 people in attendance (but citations are really needed here - I don’t have the official counts). I had a ton of fun, and there’s a lot to say about the good times had at HackCWRU 2016. But, I think those have already been written very well by Andrew Mason in his wrap-up blog post. So, go read that instead of reading a blog post by me!
Read more