Understanding the Unix philosophy and what makes a Unix system Unixy. Let the good discussion flow, let all arguments and ideas be put down on the table.
Understanding the Unix philosophy and what makes a Unix system Unixy. Let the good discussion flow, let all arguments and ideas be put down on the table.
The book concerns the frustrations of users of the Unix operating system. Many users had come from systems that they felt were far more sophisticated in...
A compendium of DNB, WM, IQ information up to 2015.
The US government’s latest recommendations acknowledge that password composition and reset rules are not just annoying, but counterproductive. The story of why password rules were recommended and enforced without scientific evidence since their invention in 1979 is a story of brilliant people, at the very top of their field, whose well-intentioned recommendations led to decades of ignorance. These mistakes are worth studying, in part, because the people making them were so damn brilliant and the consequences were so long lasting.
Bash isn't the only Linux shell. We'll show you how to test-drive the other options, and make your favorite your system's new default.
Follow Stephen Wolfram's evolution of research on the 2nd Law from early interest as a 12-year-old to his current findings in the Wolfram Physics Project. View a large collection of images of early and published works.
McIlroy's 1964 memo. Thompson's overnight implementation. One character. The most elegant composition model in computing, fifty-three years unchanged.
Learning Linux is fun! Beginning Linux is hard. There’s a lot of free courses and content to help you. But what about a quick start guide to Linux? Getting started with Linux made easy? No fluff, just a quick and dirty setup to get you started with Linux basics! Well, here it is, the Linux Quick Start Guide. To follow along, install Ubuntu Linux and let’s learn how to get started with Linux.
Applying scientific method in software engineering.
This article contains a list of my favorite books with a major impact on my Software Engineering career. The books are categorized in: Software Engineering Programming Brian Kernighan’s Books Modern Classics Learning Management and Leadership Unix Books From Stevens Software Engineering A Philosophy of Software Design by John Ousterhout Link to book A fabulous book to level up your software design skills as an experienced engineer. The book is full of great advice.
Go is one of the most popular server side programming languages created by Google. Go is a compiled language and it has a simple and concise syntax.
Software engineering is a battle against complexity. Without any planning or care, it's easy to build programs where everything interacts with everything else (the "big ball of yarn" model). With a ball of yarn, if you double the number of components, you quadruple the number of interactions: One of the best ways to fight against this ramp-up of complexity is to simply reduce N, i.e. to write fewer lines of code. Using a higher level programming language or depending on well-tested third-party libraries are common ways to do this. But one of the easiest ways is to find code you don't need any more and delete it.
Elastic tabstops - a better way to indent and align code
In this article we learn how to implement a simple and efficient regular expression engine following the Thompson's construction algorithm.
A 29 year timeline of KDE events
I take a dive into the world of software and look at the problem of managing dependencies. From the Unix design, we've inherited many problems. Can we nix them with 'Nix'?
The Bash shell is in its 30s and is still the default shell on most Linux distributions.
This time I’ll violate my principle to write only about purely technical topics on my blog. In the next a couple of paragraphs, I’ll talk about open source software development from a personal perspective. Here are some of the ideas that you can find below: Explanation what open source software is. The bright sides and dark corners of contributing to open source software projects. Some of the great opportunities that the development of open source software can provide to us, as individuals and professionals.
Roben Kleene’s blog
I recently posted an article about setting up a Valheim server. After everything was set up, I was faced with a problem that comes from the game being under active Development: Very frequent updates. My friends (and I) soon grew weary of constant reminders to update the server so I set up a way to do it automatically. First, the organisational problem. When can I restart the server safely, and when does it disturb the least amount of users?
On code, early neural networks, and once discredited AI pioneers
Elastic tabstops - a better way to indent and align code
The final day of SCaLE 20x was bittersweet, as I was eager to see more presentations but not ready for it to be over.\nThe opening keynote was given by Dr. Kitty Yeung. Dr. Yeung is one of those amazing people who makes me feel completely inadequate. A graduate of Cambridge and Harvard, she has worked in fields as varied as fashion and quantum computing. She is also an artist, and most of her slides were ones she created herself.\n
Having written a lot of articles about Python and Rust, I thought it was about time I took a look at another popular modern language, Go. In this article I’m kicking off by looking at the basic syntax and semantics as a foundation for looking at the more advanced features in future articles.
In this series looking at features introduced by every version of Python 3, we take a look at some of the new features added in Python 3.13. In this article we look at the first half of the changes in the standard library, comprising a new exception, as well as changes to regular expression support, data types, mathematical modules, data persistence, the configparser module, file & directory access, and operating system services.
If you’re like me, you’ve probably asked “where does my compiler come from?”
A retelling of my experience learning Vim, and why it is worth trying for yourself.
One of the oldest and most incredible tools in the terminal is . It was written overnight by the GOAT, Ken Thompson, back in the early 1970s. It allows you to search through a file (or stdin) for a regular expression pattern. Useful then, useful now. Incredible.
Most of the tools you’ll be using in the terminal, including those presented in the previous chapter, were designed by the people who created UNIX back in the late sixties and early seventies. They did an amazing job. People like Ken Thompson and Dennis Ritchie are heroes in the computing world: the system they created is at the heart of most servers running the internet, and at the core of all macOS and Linux computers. Dennis also invented the C programming language, with which most of the rest has been written.
The personal website and blog of Daniel Long Sockwell, a lawyer-turned-programmer with an interest in web development, open source, and making things as simple as possible.
Roben Kleene’s blog
I, for one, am glad that one of the greatest paintings of all time wasn't an 8-bit image drawn by this guy.
Windows turns programmers into mouse operators. macOS, built on Unix, keeps the command line alive—where everything is a file, tools connect through pipelines, and real programmers stay in control.
Last year I spent a lot of time gathering pieces, and in 2014 I'd like to put them together.
Advent of Code has been a December tradition for me for the last 5 years — I’ve posted before about why I like it so much — and I’m looking forward to 2025’s event starting soon. This year’s format has a few changes, to make it a bit less stressful for the organiser Eric Wastl, […]