Lumen – Elixir and Erlang in the Browser
The Lumen Project is an alternative implementation of the Erlang VM, more known as the BEAM. It is designed to work in WebAssembly with the specific goal of bringing Elixir and Erlang to the browser.
The Lumen Project is an alternative implementation of the Erlang VM, more known as the BEAM. It is designed to work in WebAssembly with the specific goal of bringing Elixir and Erlang to the browser.
Some time ago, I wrote a blog post about how there’s more to a pointer than meets the eye. One key point I was trying to make is that just because two pointers point to the same address...
Haskell programmers spend a lot of time talking about type safety . The Haskell school of program construction advocates “capturing invariants in the type system” and “making illegal states unrepresentable,” both of which sound like compelling goals, but are rather vague on the techniques used to achieve them. Almost…
Context It’s not often I get excited about programming languages since meeting Ruby in 2015. Way before that, drowning in misery of writing university course works in Java, has pushed me away from development. Ruby’s freedom and expressiveness was what pulled me back, and its style has kept me in. I was on the lookout…
I want to do $THING. Normally I do my hacking in Python, which is okay but has lots of frustrations. My friends tell me $LANGUAGE is better for doing $THING. After going through the online tutorial, I can see why. Maybe I’ll try $LANGUAGE for this project! Just a few things I need to figure out first: How do I install…
You can choose your friends but you sho’ can’t choose your family, an’ they’re still kin to you no matter whether you acknowledge ’em or not, and it makes you look right silly when you don’t.
I would like to preface this article by saying that Haskell is great. I have been using it as my go-to for native applications for several years now. Everything that follows is a product of my love and affection for the language, and a desire to see it succeed. And none of this is intended to disparage the efforts of…
UPDATE 2020-08-03 : I no longer stand by the content in this post. I think the overall sentiment is marginally accurate; however, the details in the post are incorrect (as many have pointed out over the years).
I’ve gotten really into writing parsers lately, and Rust has turned out to be the perfect language for that. In the course of my adventures, I came up with the following:
What's the midpoint between 0 and infinity in Ruby? It's 1.5 for some reason. What's the reason you might ask? Read on to find out.
You can’t really know where you are going until you know where you have been. – Maya Angelou CIDER started its life as an effort to replace a hacked version of SLIME1 with a proper environment for Clojure development on Emacs. Many of you probably don’t remember those days, but initially almost everyone was using a…
Why ask this question? It's no secret that I want a Python implementation for WebAssembly [https://webassembly.org/]. It would not only get Python into the browser, but with the fact that both iOS [https://developer.apple.com/documentation/javascriptcore] and Android [https://developer.android.com/guide/webapps]…
Ruby's native I/O methods traditionally blocked the calling fiber, leaving event-loop libraries to provide replacement wrappers. This Ruby Concurrency Progress Report presents a lightweight per-thread Fiber Scheduler which lets those native operations cooperate with an event loop. It explains the implementation and…
Personal website of Jan-Erik Rediger
<p> <i>Python</i> haters always say, that one of reasons they don't want to use it, is that it's <i>slow</i>. Well, whether specific program - regardle...
Short answer: because we said so.
Isn’t it weird that we treat source code as text? That is, we have this extremely well-structured and strongly-typed object — the abstract syntax tree — that exists conceptually in our minds, and in actuality inside of our compiler, but for some reason we pretend it’s just a pile of bytes and edit it byte-by-byte…
Go has a problem. Go modules place a strange naming requirement on modules version 2 or greater. Module names on modules v2+ must end in the major version ala …/v2 , and communication of this rule has been weak. It's non-obvious, and the community at large does not understand it.
A few days ago on Christmas day 2020, Matz released Ruby 3.0. Like every year, a host of interesting new features was included with the new version. Most articles I have read so far focus more on the new ways to introduce type hints and the Ractor system but for me the most interesting addition was the introduction of…
I was introduced to Rust in 2018 and has been enamored since. Rust is a system programming language, much like C++. Unlike C++ though, being relatively new, its language design is more modern and sophisticated. Writing with can feel more like writing TypeScript or Haskell. Not surprising since, despite being a…
Learn Rust the Dangerous Way, Part 6
Welcome Redditors and HackerNews folks! This post is getting attention outside the QEMU community, so I'd like to highlight two things that...
Writing two flash drivers starting from an abstraction.