Topics /
Software Engineering
The most popular blog posts about software engineering on Hacker News. 21,834 posts.
Ten years against division of labor in software
"Software libraries suck. Here's why, in a sentence: they promise to be abstractions, but they end up becoming services. An abstraction frees you from thinking about its internals every time you use it. A service allows you to never learn its internals. A service is not an abstraction. It isn't 'abstracting' away the…
Protobuf has LSP support
Buf is proud to announce the first fully-featured, spec-compliant LSP server for Protobuf. The Language Server Protocol is the standard API for integrating language support into your favorite IDE or text editor, such as VSCode, IntelliJ, or Neovim. An LSP server provides the smarts that power go to definition, code…
Etsy’s Journey to TypeScript
Over the past few years, Etsy’s Web Platform team has spent a lot of time bringing our frontend code up to date. It was only...
Write Junior Code
A plea to Haskellers everywhere.
Replacing Python
In the first post, I took a brief look at the programming languages ATS, C#, Go, Haskell, OCaml, Python and Rust to try to decide which would be the …
Error handling in Rust
Like most programming languages, Rust encourages the programmer to handle errors in a particular way. Generally speaking, error handling is divided into two broad categories: exceptions and return values. Rust opts for return values.
Telegram Login for Websites
The Login Widget offers a frictionless way to authorize users on your website and ask for permission to contact them on Telegram.
Alan Kay and OO Programming
Dr. Alan Kay invented the term "OO Programming", but he states that modern OO programming isn't what he meant. What did he mean?
New string formatting in Python
For a language that claims to focus on one right way to handle most situations, string formatting in Python is quite a buffet and it’s getting more diverse by the year. Starting with Python 3.6 we now have three ways to format strings (outside of simple concatinating things or using string.Template ):
Hexadecimal clock counting down to 2038 problem
It is now ??????????.??? ( ????-??-??T??:??:??.???Z ) in Unix time , according to your local system clock.
Time to look beyond Oracle's JDK
From Java 11 its time to think beyond Oracle's JDK. Time to appreciate the depth of the ecosystem built on OpenJDK. Here is a list of some ...
Shenandoah GC in production: experience report
Update: I've made several edits to the post since Aleksey Shipilëv was kind enough to suggest many corrections and improvements.If you closely follow JVM development scene, you've probably noticed ...
How we scaled Slack to support 1000s of developers
Here’s how we built a two-way Slack bridge with full impersonation to deliver white glove support to thousands of Railway developers from our help center.
Retiring a Great Interview Problem
Interviewing software engineers is hard. Jeff Atwood bemoans how difficult it is to find candidates who can write code. The tech press sporadically publishes “best” interview questions …
Python 3.5 type hinting in PyCharm 5
Python 3.5 introduces type hinting to help code-writing during development. Let’s take a look at this feature and show it in action.MotivationSome folks, but not all, like help from their tools
Why BPG will replace GIFs and more
BPG not only is way smaller than JPEG but also delivers a better quality. And that's not all! It also supports animations! Goodbye GIFs!
Literate programming is much more than just commenting code
Most programmers haven’t heard of literate programming , and the few that have tend to think it means writing a lot of comments around your code. However, simply explaining code with prose, does not constitute literate programming. Consider the following quote from it’s inventor:
A new programming language for high-performance computers
Researchers at MIT CSAIL developed a new programming language specifically for high-performance computing. With the prototype, says PhD student Amanda Liu, “speed and correctness do not have to compete ... they can go together, hand-in-hand.”
More Good Programming Quotes (2016)
In my previous post, The Wisdom of Programming Quotes, I called out some quotes that look good on the surface, but turn out to promote the wrong ideas about software development. I have also posted…
Braid Code Cleanup (part 1)
I am still puzzling through the right way to think about some ideas in compression, so let’s take a break from that and talk about generally cleaning up the ...
Magit Is Amazing
I was reading a post about Jujutsu version control system the other day and that just made me realize how awesome is Magit!
What I learned from others' shell scripts
I am big fan of shell scripts and so love to learn interesting stuff from other's shell scripts. Recently I came across the authy-ssh scripts which eases two-factor authentication for ssh servers. When I walk through scripts, I learned lot of cool things that I am going to share it with you.
How Quaternions encode rotations: derivation and sample code
In the post on matrices in Codea I mentionned that an affine transformation (things like rotation, scaling, translation) ℝ 3 → ℝ 3 could be specified by giving four vectors. In this post I want to examine that a little more closely for the special case of a rotation. That is to say: how can I encode a rotation in ℝ 3…