Linux Text Manipulation
learning a lot about sed, awk and other commands by making a spotify statusbar widget
Topics /
The most popular blog posts about software engineering on Hacker News. 14,544 posts.
learning a lot about sed, awk and other commands by making a spotify statusbar widget
In other words, the $k$-th element of the output sequence is the sum of the first $k$ elements of the input sequence.
Hi, I'm Peter Bex, a Scheme and free software enthusiast from the Netherlands. See my user page on the CHICKEN wiki or my git server for some of my projects.
A deep dive into Emacs's widget library: what it does well, where it falls apart, and a step-by-step case study of building a table widget with editable cells. Includes working code and hard-won lessons about state management, layout hacks, and cursor position preservation.
I know I promised to put out an article every week on a Sunday. I haven't been too good at sticking to that schedule. It's now Sunday morning at around 8:50...
Wherein Application Audio Is Routed Between Isolated Programs by Virtual Cables, and Streamer-Focused Solutions Are Observed to Have Eased Tedious Setup, While macOS and Windows Tools Such as BlackHole and VB Audio Are Catalogued.
Project Loom's mission is to make it easier to write, debug, profile and maintain concurrent applications meeting today's requirements. Threads, provided by Java from its first day, are a natural and convenient concurrency construct (putting aside the separate question of communication among threads) which is being…
Since this article will probably have more reach than my usual rambling, It'll be written in English (but let's not make a habit of it).
A while ago I was working on a Common Lisp library that makes use of the Metaobject Protocol . I ran into a few edge cases around dependencies between classes and it took a while for me to figure out how to solve them, so I wanted to write down what I learned in case anyone else might find it useful. This post is an…
GraphQL is an API query language. It provides a runtime to describe & query the data for any storage. Here is an Introduction & Quick guide on GraphQL
OK, fine maybe they DID teach you this in class. But, you'd be surprised how ...
ffmpeg is a wonderful library for creating video applications or even general purpose utilities. ffmpeg takes care of all the hard work of video processing by doing all the decoding, encoding, muxing and demuxing for you. This can make media applications much simpler to write. It's simple, written in C, fast, and can…
Skip lists are a fascinating data structure: very simple, and yet have the same asymptotic efficiency as much more complicated AVL trees and red-black trees.
Decision tables are easy, simple, and powerful. You can teach them in five minutes and write one in half that time. You can look at a table and understand what it’s saying, see if it matches your problem, and check for design flaws. So it’s kinda weird that there’s basically nothing about them online. I wrote an…
Path tracing is all the rage in the offline rendering space these days. From Cycles to SuperFly (based on the open source Cycles) to Octane, most new rendering engines seem to be using this technology. Sometimes referred to as “unbiased, physically correct rendering” what is path tracing, how is it different to ray…
A bunch of things currently on my mind regarding web development with Python and future directions.
It's not about technology for its own sake. It's about being able to implement your ideas.
The Pragmatic Programmer recommends that we learn at least one new language every year. To be effective, the languages we learn should differ sufficiently from those we already master and ideally introduce us to a new paradigm too. Learning a different programming language affects the way we view code. A new paradigm…
Earlier this year, tylerni7 showed us a proof of concept for a 32 bit Go exploit using this issue . geohot and I had a wager over who could get the first remote code execution on play.golang.org : he won, but just barely ;-). Props also to ricky for helping to find the underlying cause/writing the patch. Here is a…
Blaise Pascal once famously ended a letter with an apology : I'm sorry that this was such a long letter, but I didn't have time to write you a short one. Computer science has pretty much the same problem. It's a young field, and young fields are, by their nature, messy. As we race to generate new knowledge, we also…
How to get the most of Rust while keeping your code portable
So I was optimizing a domain-specific compressor the other day, as one does. One important problem was chunking the input string and optimally choosing the most compact encoding for each chunk (different encodings compress different characters better, so where to split is not immediately obvious). The previous post…
Xcode is a fantastic development environment for developing Mac, iPhone, and iPad applications. But it has some areas for improvement. In this post, I’ll explore some improvements to how documentation and autocompletion is integrated into the development workflow and how Xcode could provide specialized interfaces for…
As a sort-of reverse birthday present I’ve decided to release one of my largest projects, in recent memory. This is the project that I’ve been alluding to for quite some time now :
The first and only mention of Gumption Theory in modern writing is found towards the end of Robert Pirsig’s Zen and the Art of Motorcycle Maintenance. The author sets out a plain and uncomplicated approach to attaining and maintaining the state of mind required to repair a motorcycle. It takes about 20 pages. And the…
I recently read the article Beautiful Branchless Binary Search by Malte Skarupke. In it they discuss the merits of the following snippet of C++ code implementing a binary search :
Last month has been looking like some slow down in my income and traffic. Fortunately it was only temporary as it is getting better with each day now. Anyway I still made quite nice income and as u…