SerenityOS: A Graphical Unix-like Operating System

If you're even slightly interested in systems programming, a Unix afficionado, or simply appreciative of highly motivated, intelligent, and genuinely good people, and aren't already aware of Andreas Kling, you'll most definitely enjoy subscribing to his YouTube channel. Andreas regularly shares screencasts of his impressively productive hacking sessions where you'll find him hacking on Serenity—a Unix-like operatng system that he's built from the ground up, entirely from scratch—or catch his candid and enlightening commute talks where he answers questions submitted by followers while sharing personal insights and experiences from his life as a programmer who has worked at places like …

more ...

Sourcehut: Open Source Software Development Platform

With the ubiquity of Git, there's always the question of where do I host my code? Github is obviously the dominant domain for developers but I can understand the reluctance of many free and open source software proponents to use an entirely closed source system. And with the new owners, it's an even less appealing prospect—particularly for those who have been around a little longer than Gen Z. Sure, there's a surfeit of options but the majority are, for the most part, Github clones.

This is where sourcehut—heretofore known by its abridged moniker sr.ht —shines.

It provides all of …

more ...

netcalc update: it's 2019 after all

After receiving a request from Martin on the misc@ mailing list to make IPv6 the default version for netcalc, I decided to implement my original idea of dynamically detecting which version IP address the user supplies so that no switch is necessary to discern the two. It was a trivial change but definitely an improvement; and, like Martin remarked, "it's 2019 after all." Despite the fact that IPv4 still traffics most of the Internet with approximately 75% coverage, any encouragement to implement its successor should be the default position.

I am a little surprised that IPv6 wasn't the default being taught at …

more ...

IPv4 and IPv6 CIDR Subnet Calculator

tl;dr: download netcalc—an IPv4 and IPv6 subnet calculator—to make subnetting easier.

In one of my Computer Science units last year we studied subnetting. It was really interesting but also highly programmatic. So like any good CS student, when faced with a repetitive problem to solve—such as calculating subnets—you automate the process; which I did! I first wrote a program in Python but then decided to create one in C. It only provided IPv4 functionality, though, as that's all we worked on at university. More recently, however, I thought I'd expand it to include IPv6; C makes this …

more ...

Unit testing with pytest—not easily ignored

Days 10–12 of the 100 Days of Code TalkPython course is dedicated to unit testing with pytest, and is a foison of information. Prior to this, I had very little experience with pytest but found it less intuitive than the language itself, and somewhat obscure—at least at first. I think, however, this was because of trying to concinnate the actual tests—much like I would any program—rather than simply hardcoding the input and expected output of a function's given test with the parametrize decorator. Instead, I would essentially try to rewrite the function logic differently to reproduce the desired …

more ...

100 Days of Code

Python's yield from keyword

I'm two weeks into a protracted break from school—a 6-week long holiday before term 2 commences—so I picked up a free online MIT IAP 4-week course in C and C++, and finally started a couple Python courses I bought about a year ago from TalkPython; both taught by Mike Kennedy. They're admittedly a little elementary for anyone not new to Python, but I'm still discovering some Pythonic fundamentals I missed as well as reinforcing good habits so it's been a sound investment of free time while on term break. I completed the first course in a …

more ...