Paul Graham on how the current education system is broken. Being an university student at the moment I do somewhat feel this on my own skin and it does indeed chafe, though it seems that the problem is much more acute in the US whence Graham is (presumably) writing.
I love the aesthetic this kind of loading spinner oozes. :)
Controversial: PHP is basically just an odd Perl. Or at least it was until around mid-version 5 or so.
I've probably already posted about machine-generated death metal, but I just re-stumbled upon it and it's still pretty good.
I witnessed some of this. It was fun.
To fight the nascent negativity on my feed, here's some comedic relief.
(Via The Interface)
On framework configuration patterns. Just in case I ever need to implement my own framework and can't choose.
I hate to be a downer, but alas.
I've heard of Away through their podcast ads, and a recent Verge piece provides insight into the churnhouse that's at work making it all happen.
Reality distortion is a powerful thing.
Pondering Advent of Code after having done three-and-a-half1 days' worth of exercises:
I really miss Erlang. F# is nice and all, but feels like Erlang set a bar for functional thinking.
Erlang, by many measures, is not a perfectly functional language, but I nonetheless tend to write my F# code as I would do in Erlang and it doesn't feel idiomatic.
Perhaps it's just impostor syndrome.
1 I haven't gotten day 3 right yet. It's in progress and requires a full night's worth of sleep, which I haven't gotten the past few days. :)
I can present no comment, except to mention that this is what earns the web its reputation.
On nexuses. I like the term.
Brent Simmons sometimes seems like the wisest person around within the internet circles I tend to frequent.
His post on why he listens to podcasts at 1x speed (which I don't, by the way) somewhat unexpectedly goes into quite deep life advice that I'll probably be consider until the end of the night.
It wouldn't even have occurred to me to look at everything that way, but it's so true.
As always, Microsoft excels at providing intuitive, cruft-free software experiences.
If you can't give users the option to delete their account without contacting support, I suspect much more is wrong than just the technical side of things.
Especially if you require users to contact you by phone. Why?
Some fairly good advice on technology choices from DHH.
I don't keep up with him in particular or Basecamp in general, but often times their (and his) philosophy rings true. This is definitely one of those times.
My own personal projects focus on nano-scalability, and that's the reason I choose PHP: it scales down to zero when there are no users and can scale up for some time before you run into limits. The former part is really important to me who doesn't have an audience to speak of which would use anything I make. Hence it's important that stuff doesn't take up resources when it doesn't need to.
It's quite hard to find good recordings of particular pieces when you have an opinion on how they should be played.
Today I discovered that one of my favourite cello pieces is composed by Bach, and a near-perfect recording already exists.
I've heard mentioned numerous times (probably by Merlin, also in Jon Ronson's "So You've Been Publicly Shamed") that Twitter is the epitome of internet mobs.
This pair of tweets reflects it best. (Edit: cont.)
Note that I'm not taking a stance in either direction. It's a personal matter to agree or disagree with this approach, though I can see the downsides.
But the whole fact that two diametrically opposite opinions can be located within a subtweet's distance is somewhat boggling my mind. This means that there are no barriers between both sides and hence it's easier for the anger of either side to turn onto the other.
I guess Jon Ronson has spoiled Twitter for me. Suppose I'll remain here, in my quiet corner of the internet whence nobody cares.
Perhaps it's better that way.
Writeup from Twitch engineers on the technique of memory ballast to help regulating GC invocations within heavily-loaded applications.
Lobste.rs just seems overrun with GC posts today. Wonder why. :)
Kaboom is a really interesting take on the classic Minesweeper. It really forces you to be attentive and not just make random guesses.
Minesweeper Kaboom pro, but perhaps that's exactly why clearing a 10x10<-10 board feels so good and at the same time the process so intense.
Oh gosh, there are apparently tons of advent calendars ongoing.
Edit: Had forgotten about the Bekk Christmas calendar constellation.
I don't directly buy SOLID either. But perhaps indeed it's just enough practice that opens your eyes.
Fun thing: programming opinions people believe are controversial.
This rings surprisingly true, as partially does this and this. Though, of course, it's hard to deal in absolutes, as even the aforementioned necessarily have exceptions.
Just today Twitter gave me a recommendation to follow Joe Armstrong.
I know that they don't know that he's deceased, but simultaneously their impeding policy on clearing out old accounts will hit the same problem, and I'm not entirely sure that they'll be up for it and whether they'll do a good enough job. Sure, the one-tweet-years-ago accounts can go, yet Twitter is in a peculiar position if they want to free up username real-estate.
YouTube deals with this by removing channels whose account hasn't been logged into for four years, I believe. (That's how we (I?) lost ReverseMan. [The channel, not some weird video.])
The Advent of Code is officially on!
I intend to publish my solutions as well to anyone curious. No particular promises on languages or anything just yet though.
For fluent interfaces.
Against fluent interfaces.
Sure, they might be nice to use (with some exceptions and constraints), but they wreak havoc on the internals you're calling into.
I've tried implementing a fluent interface for a SQL query builder back in the day. It was fun to use but tedious-at-best to write.
Use more idiomatic OOP approaches instead. Or just don't use OOP at all.
Still related to the Ubuntu 19.10 post, the post on how Gnome Shell's performance was improved so drastically (by some accounts) is actually a really interesting read.
Particularly thought-provoking is the point on needing to use other environments to compare against your own. It makes sense, after all—if you only use X then you'll get used to its problems and stop noticing them, until you switch to Y which doesn't have them and have a sudden moment of realization—but I don't think enough people keep this in their minds when rolling through life. Sometimes a little perspective is needed, and the best way to get that is to step outside of your comfort zone in all the possible senses.
While pondering setting up ZFS on my next Linux reinstall (long story), I came upon this very detailed treatise on exactly why CDDL and GPLv2 are considered incompatible, which on a theoretical level prevents from anyone legally shipping a Linux kernel with Sun's ZFS code within it.
Note that Canonical didn't abide by this ruling and insists otherwise. I'll hold off on this because this seems like a topic where only lawyers would be qualified to judge, yet I would love for ZFS to gain wider adoption.
Edit: Interestingly, this has some parallels with Minecraft server modding, in particular, the approach used by Spigot ever since 1.8. The history of why this came to be is long and complicated and I can't say I recall it in its entirety either, but the essence is that Mojang holds the copyright over the server code, and while Spigot might sort-of patch parts of Mojang's server code, such a modified server executable would still fall under Mojang's copyright and so it can't be legally redistributed. The way they circumvent this roadblock is by never distributing the complete executable but instead providing the tools for anyone to build it on their own machine.
ZFS on Linux (usually) works the same way—the baked kernel executable or, indeed, any sort of module is not provided (at least officially by any vendors apart from Canonical) by the Linux vendor, instead providing for the option to build a bespoke version on a machine for "personal" use, but not distribute such a build any further. This is fine-and-dandy according to most interpretations and not-detectably-illegal by the most pessimistic ones.
Edit Ⅱ: Although it seemingly got nowhere, there was even an attempt to clean-room implement ZFS in Python without reading the original source code, which would entirely bypass the license troubles. Unfortunately ZFS is so large and complex (just like any other substantial piece of software) than such an effort couldn't probably yield a complete piece of software, not even considering how reliable it would be, as opposed to what the mainline ZFS implementation offers, what with its battle-tested code.
Of course, for Linuxes there's always btrfs which, though having its own set of troubles while it's not mature enough, seems promising. But I've been burned by it before and I don't think I'd trust it before its disk-nearly-full and logs-grow-unboundedly-by-default behaviours become more sane.
Ubuntu 19.10 is out.
Yay, another chapter of my favourite ongoing project is online!
This report of the first GitHub Open Source Advisory Board meeting, written up by the author of Fossil, is thought-provoking on the issue of Github's role in open source these days.
I'm personally not a fan of Github and the monoculture it seems to tend towards (with Github being the de facto default destination of open source projects) so I host quite a bit of my code on my own server instead,1 so I tend to agree with many of the points Richard makes in his analysis. Though at the same time Github has its advantages, especially considering that it provides all of its resources for free without any real limits due to being subsidized by its enterprise offerings.
1 Right now I'm using Gitea for this but I feel like it's quite bloated and resource-intensive, especially for a small VPS. The perfect alternative would be to write a solution of my own but that will be quite resource-intensive and something I don't think I could extract a lot of value out of.
Until recently I was a fan of Wire as the primary choice for a security-oriented messaging app.
Recently they've begun a push towards B2B and expunged any mention of their free version from their website so I guess the days are counted for non-business Wire.
Back to XMPP we go?
Sometimes I'm just stupified by how creative some people can be. Even though this seems silly, I wouldn't be surprised if somebody built an emulator of this within some sort of 3D environment.
Ruby is a damn beautiful language that I really enjoy working in, but boy, the builtin HTTP client is really clunky. As is WEBrick.
This is a serious downer for otherwise such a great language.
Though I wouldn't call myself a new developer, I occasionally read Letters to a New Developer because it keeps my mindset from going too egotistical.
Learn Two Languages seems like a really apt piece of advice, not the least because it encourages to expand one's horizons of thought. It's something that many of us forget to do (I myself can attest that I do quite often) and it's nice to have such a reminder.
An interesting and underused (underimplemented?) idea in debugging: time travel. I personally first heard it back when trying Redux, but just now discovered rr which applies a similar idea to any C/C++ program, which seems quite powerful indeed.
Stumbled upon this within a discussion of Firefox's new Web Replay feature that's coming soon and bringing the same thing to webapps.
I really wish all languages and environments had something of this calibre to offer. It would make programming so much easier as compared to the state-of-the-art we have now with most languages where it's not much better than just sprinkling print statements all over the place. Manipulating the flow of time seems so much more innovative and offers better insight about how the state had changed up until a certain point, not just seeing the state at that point in time.
Doesn't seem like it got a lot of coverage, but the new "Listen like you used to" Spotify ad campaign seems quite fresh.
Šeit ir raksts latviski par to pašu.
Merlin Mann, back in 2009 or so, on Marco Arment. The piece itself is showing its age, but this part caught my eye:
I’m still mulling over the longer term consequences of a post-RSS, post-API culture that destroys any reasonable barrier to putting all the data that matters to you any place you want any time it suits you.
Alas, the opposite of that happened instead.
Also, gosh, 2009 was 10 years ago. Merlin was cranking out quite a bit of writing back in those days.
I love Maciej's occasional technology shitpost tweet.
On finding characters within a string in an optimized way.
Due to the fact how current CPUs work, sometimes the best optimization appears counterintuitive. I still haven't internalized the fact that either manual vectorization or using SIMD intrinsics is better for performance than naive loops, especially on languages that have some interface with low-level stuff. (Unfortunately, more often than not I get to spend the time thinking about this while working within PHP which has plenty of barriers preventing such optimizations from being of any use.)
Figma's detailed description on how they implemented what they call "multiplayer" (which is actually a bloody great term!) for their web application is a quite nice read. Realtime collaboration is something I want to eventually research, and this seems useful.
The short note on fractional indexing as opposed to OTs for establishing an absolute ordering for sequences is worthwhile as well.
Tonight I read a two-part saga on the lives of Facebook content moderators.
It's a sobering read.
I can only hope that Newton will report once again after the measures are instituted. Even though there will always be vile content that will have to be moderated by someone (even in the case AI takes over, in which case the AI's decisions will have to be checked at least sporadically) as inherently there will be some humans who take perverse pleasure in hurting others, be they human or not, and enjoy sharing such acts, I cannot put into words the state the current moderators are subjected to.
Not even talking about the vile content itself. I feel like I have slightly too vivid of an imagination to even pay attention to the paragraphs where they talk about what kind of content is even being seen by the moderators. I can't even begin to imagine what being one must be like.
I like Speagle's idea of needing to shut down Facebook (admittedly I agree for the wrong reasons) yet that wouldn't fix the problem, just move it elsewhere. Perhaps the policies were slightly incorrectly skewed which made this entire system even possible in the first place, but the kinds of people that wish to share this content at all will not go away just because you take away their place of expression; they'll just move elsewhere, and that "elsewhere" will have to deal with much the same problems.
I guess the grim conclusion of this supposedly short-form post is that this is how I lose evermore hope in humanity.
👏 Delfi 👏 "podkāsti" 👏 nav 👏 īstas 👏 aplādes 👏
👏 tā 👏 nav 👏 aplāde (podraide) 👏 iekams 👏 tai 👏 nav 👏 RSS 👏 barotnes 👏
Fossil's new smartwatch seems like it was made just for me.
I've been having an affair with an Android Wear smartwatch (incidentally, from Misfit, who seem to be a subsidiary of Fossil now and were probably involved in making the Hybrid HR) and thus far I am a bit torn. I was a fan of Pebble and the customizability it afforded but these days I'm an old curmudgeon who just wants the bare minimum, no apps, just notifications and a simple analog watchface is perfectly enough.
The fact that Hybrid HR is limited in what it can do and at that can provide excellent battery life is a giant plus for me. The limitations are what makes it great, as opposed to the ones who need all the flashiness of Galaxy Gear/Apple Watch.
Even though I abhor Twitter threads as a medium of long-form communication (sorry, Foone) this one on Sunray and, interestingly, Google Stadia makes a fair point.
The 88x31 GIF archive is a fascinating nostalgia trip to go on. Too bad that nobody seems to have done a similar thing for 80x15 badges though.
On why your money might not be yours. I agree as a technology cynic yet fail to follow the advice outlined as a lover of convenience, unfortunately.
The Cybertruck seems like a joke yet I love it.
I might be a bit late, but this piece on Google's quantum supremacy is quite a good read.
Related to a recent post, this consideration of the role of OOP in modern programming is just too good to not be mentioned here.
Also never forget one of the excellent Eevee's treatises along a similar theme.
After fighting with my PC motherboard's buggy implementation of UEFI, I want to say this:
I'm not sure I want to ever own a non-Apple PC again.
Unless the UEFI implementation is at least passable. (Most of them are not. Apple's is outstanding.)
It's been just over a year since this fun read on the Oracle Database was posted.
I have a bit of an odd tradition wherein I sometimes read and re-read articles on bad code hoping that something sticks and hence strive to write code that is not bad, so this HN comment falls within the aegis of that "tradition." Not sure whether it has any effect though :)
The other two top comments are also somewhat fun. Perhaps there's not a lot of truth to them, or perhaps they highlight how hopeless the field of software engineering is, but I won't pass judgement on that.
On thinking in a (programming) language. This rings true often enough for me as a mostly-OOP programmer with a light functional background, for some languages put obstacles in the way of effecting your solutions in the way you want, as opposed to what the language is made for (looking at you, Java.)
Šī grāmata izskatās esam interesanta. Man allaž ir paticis dzelzceļš, un tā šķietamā neveiksme Latvijā noteikti piedāvā interesantu stāstu, ko šī grāmata arī sola.
While culling my long-overdue reading-list-stored-as-open-tabs, I found the Four Cool URLs article that I really loved.
Tangentially related: it's a shame Reddit went closed source.
Joe Armstrong, the creator of Erlang and one of, in my opinion, forefront minds of modern computing, on what should be considered the Minimum Viable Program. This is a concept I feel like is seldom considered these days.
CV Dazzle. Delightful.
GerdaOS looks really promising. I've always felt some disdain towards KaiOS for taking B2G and continuing its development and promotion as a closed-source fork with a heavily walled-off ecosystem, but GerdaOS seems to be the liberating force to help overcome the tyranny of the limits artificially imposed upon an open OS by the hand of capitalism. (Also, I love the name and the mythos behind it.)
Though apparently ADB access can be enabled within vanilla KaiOS as well, by entering
*#*#debug#*#*), via which it's also possible to gain root access or at least some privilege escalation. At least Kai didn't take everything out.
Now this site has a JSON Feed for those of you who want to subscribe, as well as permalinks to individual posts, accessible via clicking upon their timestamps.
Superliminal has finally come out after (apparently) 6 years of development. I've been following Pillow Castle ever since 2016 or so when I saw their demo of what would become this game.
The game is not particularly long—I beat it within two hours—but still packs quite a bit within that time. The pace is mainly dictated by your ability to solve puzzles, most of which aren't particularly tough once you grasp the basic concept.
A really strong suit of this game is the atmosphere. The art and visuals are amazing, the music is spot on, and the plot fits in perfectly. Most of this is achieved via setting constraints and then working within them, but nevertheless it turned out really well.
Even though most of the puzzles seemed quite easy after grasping the initial concept of forced perspective, some of them are quite obtuse (looking at you, Whitespace.) In general it's not puzzle-heavy like Portal, even though in places they share the same vibe.
Also unfortunately it doesn't seem that it has a lot of replay value, considering it's mostly aesthetic, but perhaps that's what games are moving towards these days.
I can't say this is a game for everyone, but if the mechanics intrigue you, or you want to experience the visuals first-hand, do check it out, especially while it's still on sale.
I'm particularly interested in numbers stations, and this 2006 segment on BBC R4 is fascinating to listen to. The part about the gongs is particularly fun.
I recently read Gretchen McCulloch's Because Internet and even though it wasn't anything particularly eye-opening, it was a good read and gave me a couple of things to think about with regards to how the internet has changed over the years before I came to be a user of it.
In a similar vibe, Kate Wagner's essay 404 Page Not Found ponders upon the web of the days bygone, the web that I missed and the one that seems like it would be better.
Many things ring true within 404, and the non-apparent message it contains actually aligns quite well with my own beliefs.
Here's an indirect Brexit joke:
Today is Aaron Swartz day.
I am a Postgres advocate (as opposed to MySQL/MariaDB for contemporary use), but this article about using Postgres as a job queue (with near-realtime job claiming, no less!) really highlights why I hold this philosophy. MySQL and its derivatives might work well as a raw data store if you're willing to put in the effort to guard against accidental data corruption or tweak the compatibility settings just right, but Postgres, even though sometimes a bit feature-creeped at times,1 provides for any data storage use case, and most are accounted for out of the box.
1 Indeed I don't think that pub/sub would be an integral part of an RDBMS and it's a bit inexplicable that Postgres has it, but it nonetheless can be convenient in use cases such as presented within that article.
Today is just that kind of Splatoon meme kind of day.
Andy Baio on how machine learning now enables quite good separation of vocals and music.
On the lost key of QWERTY.
Russ Cox's three-parter on Implementing Regular Expressions is worth a read if you've got a thing for deep theory and implementation details on finite-state automata.
On learning piano and instead learning about life.
Grace Hopper's segment on 60 Minutes is fascinating in multiple regards. Her seminal lecture is interesting as well, even though the remaining recordings are a bit low quality.
"Programming Languages," mostly about Zig.
Zig is yet another of the languages I'm keeping an eye out for. C is good and all, but Zig is one of the few languages that seem like the fairest compromise and which could take on being a C replacement, and this article alludes to that idea as well.
Unrelated tangent: LLVM seems to be the best thing to happen to compiled language creators since transpilation to C.
Tedium recently posted an interesting reflection upon historic digital places.
Presented without comment: Try Coding Dear Boy.
Inspect This Snake.
In a similar vein: untitledgame.xyz.
Drew DeVault has hacked together a line printer to a Linux TTY interface. The link is worth for the video alone, but the technical discussion is quite interesting as well.
Now this site implements a dark mode, if that's what your system preferences prefer and if your browser supports it.
As an occasional user of both languages, and one who likes them at that, Go is the new Ruby reflects my own opinions as well.
Related to the last post, JONESFORTH is a literate assembly implementation of Forth.
Fennel is a Lisp that compiles down to Lua with nearly zero overhead. It's pretty neat and something that I want to play around with someday.
80x25: a story about a default that many terminal users must have wondered about.
Writing a sort-of ray tracer for a class assignment. Right now it's extremely unoptimized (and also written in Java) and actually doesn't work, but it's a lot of fun trying to figure out all the maths behind it.
While checking my server logs, noticed that seemingly someone sat down on their F5 key.
My server gets scanner traffic often, but usually not with the rate of exactly 100 requests within one second, and then never again.
Saw Parasite. While I'm no expert in film, my immediate thought after leaving the theatre was that it's “bloody good.” So it's probably worth a watch.
I've made a new post on my longer-form blog. It was partially inspired by the creation of this particular system and the thoughts it put me through afterwards.
I hope it is an enjoyable read at least in the slightest.
I suppose it might be better for me to move my link sharing to a medium such as this so I can at least hopefully provide some commentary on the content, à la Plurrrr or Trivium, but somewhat more.
This platform itself has room for growth, such as implementing fancy quotes and proper archiving, neither of which is present now. But it's a start, and perhaps the start is all that's needed.
The design is basically borrowed piecemeal from Standard Definition Notes. It's a tasteful minimalism I find quite appealing.
Apparently I can't stop building places where I can potentially express myself, then keep abandoning those places because I apparently don't have anything to express.
Well never mind that, this is a new place for my, shall we say, short-form expression.