Go 1.10 is released
Go 1.10 adds automatic caching of build & test results, and more.
The latest blog posts to take off on Hacker News. 5,636 posts.
Go 1.10 adds automatic caching of build & test results, and more.
I’ve been looking for a decent TSDB for years now. Took a shot at writing one in Lush using HDF5 (as others have done), but the experiments I did raised more questions than I got answers. I&#…
Recently, I’ve seen popular articles on macros and metaprogramming in Nimrod and Elixir . Both of these are wonderful metaprogramming systems, to be sure, but I couldn’t help but imagine some in the audience smirking inwardly – and occasionally less inwardly. What odd syntax! How out-of-place they are! If only there…
Just as all mainstream languages now have lambda functions, I predict sum types are the next construct to spread outward from the typed functional programming community to the mainstream. Sum types are very useful, and after living with them in Haskell for a while, I miss them deeply when using languages without them…
For me, this month marks the end of an era in my life: as of February 2018, I am no longer employed writing Haskell. It’s been a fascinating two years, and while I am excitedly looking forward to what I’ll be doing next, it’s likely I will continue to write Haskell in my spare time. I’ll probably even write it again…
Here is an argument I used to make, but now disagree with: Just to add another perspective, I find many “performance” problems in the real world can often be attributed to factors other…
In this post I will describe the differences between functions and coroutines and provide a bit of theory about the operations they support. The aim of this post is introduce some foundational concepts that will help frame the way you think about C++ Coroutines.
LLVM is a godsend of a research tool. Here are some detailed notes on what LLVM is, why you would want to use it for research, and how to get started as a compiler hacker.
‘Monadic Parsing in Haskell’ is a short paper that laid the groundwork for libraries like Parsec and Attoparsec. Although it was published in 1998 (almost 20 years ago!) it has aged gracefully and the code samples will run with almost no changes. However, the state of the art has advanced since then and I think the…
In this brief post I want to discuss a fairly unusual feature of Haskell - functions that can be parameterized by their return type.
Today we're proud to announce the release of TypeScript 2.7! If you're not familiar with TypeScript, it's a language that brings optional static types to
The paradigms of programming Floyd, CACM 1979 (Also available in ) A couple of weeks ago we looked at Dan Bernstein’s very topical “thoughts on security after ten years of qmail 1.0.” From the gene…
Here’s a bit of code from Kernighan’s and Ritchie’s seminal text, The C Programming Language . I’m not sure I’d actually recommend coding this way (as written in the book, the entire program has only one comment), but it’s so darn clever and concise, I can’t help but post it. This snippet is part of a larger program…
Last week I jokingly said that POPL papers must pass an ‘intellectual intimidation’ threshold in order to be accepted. That’s not true of course, but it is the case that programming languages paper…
Date: 2018-01-25 Git: https://gitlab.com/mort96/blog/blob/published/content/00000-home/00010-obscure-c-features.md
After noticing a worrying pattern in Gitaly's performance, we uncovered an issue with fork locking affecting virtual memory size. Here's how we figured out the problem and how to fix it.
This pattern is pretty common if you are interacting with Operating System APIs . Another example .
Andrew Shitov made my day with his It’s time for optimism blog post, in which he talks about some random things related to Perl 6 and its future. Well, not entirely random: the impetus for th…
Rust is considered difficult to learn by many people. Indeed, when I learned it, I considered it to be the hardest programming language up to that time I’ve met. And that says something, since I have a habit of learning whatever language I find interesting. Looking back, I’m not sure I was correct, C++ is probably…
Here's a Forth program debugged in KDevelop – a graphical debugger without Forth support:
Extend the switch statement so that it can be used as either a statement or an expression, and that both forms can use either a "traditional" or "simplified" scoping and control flow behavior. These changes will simplify everyday coding, and also prepare the way for the use of pattern matching (JEP 305) in switch …
Elixir v1.6 includes a code formatter, defguard, dynamic supervision and new module attributes that improves code quality and the developer experience.
wingolog: article: instruction explosion in guile
Rust in 2018: it's way easier to use!
Learning modern JavaScript is tough if you haven’t been there since the beginning. The ecosystem is growing and changing so rapidly that…