Sign in

There’s two kinds of programming: functional and dysfunctional.


Despite the joke in my Medium bio, I’m merely enthusiastic about functional programming — definitely not a fanatic at all. Though monads might be elegant, they probably aren’t the most practical way to express side effects most of the time. What I am somewhat fanatic about is ridding the world of the bad design and pretense of misunderstood OOP (mis)implemented in Java, C++, and other widely used and misused languages.

FP is beautiful, but it’s not universal. And here I mean “not universal” in a down to earth, practical engineering sense. Of course it’s mathematically “universal” — lambda calculus is…

Often, having new tools — programming languages, editors, templating systems, etc. — is beneficial. The world of computing has advanced in great leaps over the last 50 years, and what was useful in 1970, or even in 2000, might be looking a bit long in the tooth today… With Go and Rust around, I would think twice about starting a greenfield project in C++…

That said, sometimes an old tool is just good enough, and widespread enough. Carpenters’ hammers have looked the same for hundreds of years, and are still perfect for the job they have been “evolved” to do…

Let me ask you something. When was the last time you wanted to access another computer on your ISP’s metropolitan network you’re connected to? Let’s go one step further. When was the last time you accessed an intranet server by an intranet domain name? For most of you, I bet the answer is never, and a long time ago (in a galaxy far, far away). If you work at a multinational giant or a university, and so are still using intranet services, let me expand that question — when was the last time you did that from your own portable…

For those new to the party, Tezos is a liquid Proof-of-Stake blockchain with a smart contract VM developed with security and formal verifiability in mind. While Ethereum famously took the direction of choosing implementation simplicity above eveything else, the guiding direction of Tezos has been, and is, one of security. If we gave chains descriptive nicknames like Pokemon, Tezos would be “the formal verification blockchain”.

My purpose with this article, and hopefully those following it, is to document some of the challenges we face with our team at tzConnect GmbH building real-world distributed applications on the Tezos platform, and the…

What’s the opposite of “retrocomputing”? I don’t mean “bleeding edge”. Honestly, I’m unsure what I mean, but there seems to be something there. This is a loose follow-up to my musings on retrocomputing, Rebuilding the ‘80s.

You’ll see why 2024 won’t be like “1984”.

I don’t think there’s anyone involved with computers, advertising or marketing who isn’t familiar with the iconic 1984 Apple Superbowl commercial. The slogan »You’ll see why 1984 won’t be like “1984”« along with the dystopian imagery was half a jab at IBM, and half pure zeitgeist. It’s hard to recall years after Mahatma Gandhi wearing $200…

I’ve been looking around for a nice anonymity and security-focused live-bootable Linux distro. Things I’d expect from one include…

  • a hardened kernel and a strict packet filter setup
  • MAC address randomization on all interfaces
  • a randomized, but natural-sounding hostname generated on each bootup
  • absolutely no outbound network traffic “by default” (ie. no AVAHI, no SAMBA, no cloud anything, no remote error reporting)
  • no ports open on the outside
  • DNSCrypt & DNSSec enabled by default
  • a reliable, DNSCrypt & DNSSec supporting global DNS service used for name resolution, never the local, DHCP-provided servers
  • a somewhere-between-sane-and-paranoid Privoxy setup
  • a hardened, privacy-focused Firefox…

I’ve fallen back a lot on my Vyper series. There are actually more than one reasons, including mental health, life management, relationships, work, schoolwork… But really, the part that will be interesting to you, the readers who have been waiting for the type system article for a quarter of a year, is the part about Vyper itself, and about Ethereum.

The great gas crisis of Ethereum

So you might have heard of Gastoken. It has sent the Ethereum community into an uproar. While “tokenizing gas” sounds quite harmless at first, when you examine what it actually does, it will definitely start looking a lot more diabolical.

It’s not about Ready Player One. In fact I haven’t seen it, and probably won’t until it comes to streaming. I’m at cold war with the movie industry. :P I’m talking about an actual project of actually designing and building a new 80s style computer.

[This is the third revision of this writeup, dated 24/04/18.]

This post was inspired by, and is a reply to, this blog post by tech showman, chiptune musician and retro developer David Murray. …

I got involved with cutting-edge technology as a kid. Growing up in Eastern Europe, “cutting edge” was about a decade back from the developed world, but my Commodore Plus/4 (a vastly unsuccessful business/home hybrid, and intended successor of the Commodore 64, that had its superfluous stock dumped east of the Iron Curtain after discontinuation) was at that time a gateway into the cutting edge then: personal computing.

Jeff Minter’s Attack of the Mutant Camels

I was there at the golden age of the European Demoscene. Beside competing in coding ingenuity, we were chasing after new frontiers in communication — dial-in BBSes, CD-ROM diskmag copyculture, and finally the…

Solidity became such a hit phenomenon specifically because it makes people believe they can code Ethereum. After all, a smart contract isn’t that complex (it cannot be too complex, given the platform limitations)… but then, this is coupled with a language structure that is far from obvious (did you even know Solidity had pointers, and even worse, pointer arithmetic?), and a million plus one ways to mess up.

Solidity is overly complicated, full of traps that lead to insecure code, or can be exploited to write intentionally insecure, backdoored code. It doesn’t present idiomatic guidelines for code, it provides dozens…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store