H2CO3's tech rants

HaskLSD, a Drug-Dependently Typed Language

Let’s face it: being a Bionics Engineer has its own advantages. One such advantage is that you can poke needles in people’s brains, hook them up to an oscilloscope and make sense of whatever kind of signal comes out. Examining the human nervous system is an extremely important aspect...

Read more

Protected: Generalized Concrete Nonsense, or Why We Teach Factually Wrong Things

There is no excerpt because this is a protected post.

Read more

Thick Skin, Thick Functions: Unification of Callables in Swift

I was recently thinking about a fairly important problem in the design and implementation of languages with closures. Consider the following piece of (pseudo)code (I am deliberately trying not to use any particular language for now): [crayon-572b1f48e9540479363136/] That is, we have two functions, noContextRand() and contextualRand that take no...

Read more

Infiltrating Political Correctness – Or, the Demise of Technology

I love my profession. I love being a programmer. And you know what the primary reason for that is? It’s that our field is honest and scientific. If done right, there are no bells and whistles. We do technology. We love technology. We do it passionately, we do it...

Read more

Locatable generics – an attempt at creating minimal-impact generic types

(and, as a side effect, a unified, quasi-monolithic compiler and build system) Generics are an essential tool in the workbench of the typical 21-st century programmer. Their purpose is two-fold at the very least. One of their goals is to increase code reuse and eliminate redundancy that would arise...

Read more

Jailbreaking Is Useful Even For an App Store Developer

This summer I’m working as an intern at an infosec and telecommunications company. We are developing an iOS app which needs some advanced capabilities (e.g. access to the microphone of the device) for which it asks the user using iOS’ built-in facilities. Upon program launch, iOS pops up an...

Read more

Your Type is Not a Type

This is the second article in a series discussing some desirable features of a modern, performance-, safety- and convenience-oriented systems programming language. TL; DR This is going to be a long post. If you don’t like to read a lot, you can jump straight to the conclusions I’ve drawn...

Read more

The roots of a (not only) performance-oriented language

Thousands of programming languages are used in the software development industry all over the world. There are many different kinds of problems programmers need to solve daily, and usually, each cluster of problems has its own family of languages which consist of the best-fit (or, at a minimum, the...

Read more

The implementation of Sparkling, vol. 2: the JavaScript API

As you might have noticed,  Sparkling has recently got a new, entirely re-designed and re-engineered JavaScript API. My primary goal with making JS bindings for Sparkling is to make it more accessible to programmers not familiar with C. For the same reason, I’ve set up an in-browser demo on the...

Read more

This is why we can’t have nice things

Question on Stack Overflow: “How do I replace all occurrences of a substring within another string”? And the usual bullshit instantly arises: “just use regular expressions”. Regular expressions! For plaintext replacement! Not only that, but the answer promoting regular expressions is upvoted, whereas the answer that actually uses naive...

Read more

1 2