Extending SQLite with Rust
SQLite has a powerful extension mechanism: loadable extensions. Being an in-process database, SQLite has other extensions mechanisms like application-defined functions (UDF for short). But UDFs have …
Topics /
The most popular blog posts about software engineering on Hacker News. 21,842 posts.
SQLite has a powerful extension mechanism: loadable extensions. Being an in-process database, SQLite has other extensions mechanisms like application-defined functions (UDF for short). But UDFs have …
I was bouncing around the Rails API documentation yesterday, and I noticed a few rails console tricks I haven’t seen before. There’s been plenty of posts about irb and Rails before, but I’m hoping you’ll learn something new here. The following console samples were taken with…
When I started my career, XML was ubiquitous. The meta-information in a Java JAR file - the manifest - follows a proprietary format. But Java EE designers built it from the ground up on XML: meta-information of all artifacts is in XML format e.g. web.xml, ejb-jar.xml, application.xml, etc. Java EE is one example I…
Discover the new features in C# 9: top-level statements and target-typed new and conditional expressions. These features make C# less verbose and can be used in everyday programs.
Yesterday I was on a train. I clicked on a link and my browser loaded a long article for me to read. Halfway through reading it, the train went into a tunnel and I lost signal. That meant I couldn't see the images on the other half of the page for the rest of the journey. I had a sea of broken images. Even though the…
I am a software engineer, Manager, and architect in Seattle, WA. Read my articles.
*…in all the ways that don’t matter.
MySQL is the last major SQL database that has evolved beyond SQL-92 by introducing window functions (OVER) and common table expressions (WITH [RECURSIVE])
Git has a reputation for being confusing. Users stumble over terminology and phrasing that misguides their expectations. This is most apparent in commands that “rewrite history” such as git cherry-pick or git rebase. In my experience,…
Whenever discussing problems with programming today and potential solutions, invariably someone will pop up and declare that the problem is ...
An edge case in integer safety.
CoffeeScript is an open source project that provides a new syntax for JavaScript. I have to say that I have a lot of respect for CoffeeScript and it got a lot of things right. The “golden rule” of CoffeeScript is “It’s just JavaScript” . That means there is a straightforward equivalent to every line of CoffeeScript…
Frameworks are one of the hugest anti-patterns in software development. They're hard to learn. They limit your creativity. They increase your project's complexity and dependencies. They go out of business and get abandoned. You have to maintain and upgrade your code to match the latest framework versions for no good...
I've always been told that caching is a tool to make software faster. That, given some careful considerations to consistency, caching makes it so that when...
Revealing the Darker Side of Productive Coding A few weeks ago we finished the Early Access Program for the upcoming release of IntelliJ IDEA 12. We would like to thank all of you who evaluated the p
A little more than a year ago we started talking about where add-ons were headed, and what the future would look like. It’s been busy, and we wanted to give ...
This post takes a short break from ASDL to expand on one of my Hacker News comments.
m4 is a macro processor, in the sense that it copies its input to the output, expanding macros as it goes
The Windows API — a.k.a. Win32 — is notorious for being clunky, ugly, and lacking good taste. Microsoft has done a pretty commendable job with backwards compatibility, but the trade-off is that the API is filled to the brim with historical cruft. Every hasty, poor design over the decades is carried forward forever…
At a recent Clojure Berlin Meetup , Veit Heller gave an interesting talk on Macros in Clojure. The meetup was very enjoyable, and the talk...
How do you solve a memory heisenbug?
The array reduce method is really powerful. But people often run into trouble as soon as they step beyond the basic examples. Simple things like addition and multiplication are fine. But as soon as you try it with something more complicated, it breaks. Using it with anything other than numbers starts to get really…