Shims (implementations of built-in functionality missing from your current interpreter) are a mature concept in JS. I love that there are even standards now, setting expectations for how to plug them in: https://github.com/es-shims/es-shim-api
(An incomplete, best-effort shim is a "sham"!)
miniblog.
Creating a new PL is so different from changing an existing one.
You need to worry about syntax, locals, scope, error checking, conditionals, interpreter loop, stdlib etc. You can work on these in isolation once you have a working implementation.
(My toy PL now does fizzbuzz!)
Creating a new PL is so different from changing an existing one.
You need to worry about syntax, locals, scope, error checking, conditionals, interpreter loop, stdlib etc. You can work on these in isolation once you have a working implementation.
(My toy PL now does fizzbuzz!)
Typescript's union types are really nice for writing interpreters.
type Value = NumberValue | StringValue;
function add(array<Value> args): NumberValue { ... }
I often find that primitive functions get little checking (e.g. just returning a Value) in the host language.
The line between 'group chat' tool and 'web forum' seems increasingly blurry. What are the essential differences?
The ability to edit? "$USER is typing" information? Threading? Simply the culture around the tool?
GitHub is backing up public repositories in a long-term archive format in the arctic! https://github.blog/2020-07-16-github-archive-program-the-journey-of-the-worlds-open-source-code-to-the-arctic/
Overall this is a great idea, but I have a few old scrappy public repos that *really* don't need to last hundreds of years.
On effective user invitation design: https://blog.sentry.io/2020/02/12/how-we-grew-sentrys-monthly-active-users-by-rethinking-invitations
I never know whether to write bool or boolean. I try to avoid excessive abbreviations, but bool is so snappy and very common.
Why 'holy wars' in technology arise, and where to expect them: https://www.gwern.net/Holy-wars
An optimistic take on neural networks for programming: https://medium.com/@karpathy/software-2-0-a64152b37c35
It makes some good points about predictable runtime performance, ability to trade CPU for accuracy, and the ease of hardware acceleration.
Using machine learning to decide what structure to use for your neural net: https://arxiv.org/pdf/1703.01041.pdf
It's pretty meta, but ML is often good at trading computation for results.
I've always written dumb lisp parsers in the past: a list is just "(" EXPR* ")". Checking came later.
I'm trying something different in my current project, pushing special forms into the parsing logic.
This means that e.g. (if) is a parse error. It has a different vibe.
I'm developing a theory that IRC bots are a petri dish of chat tool ideas. Most bots have poor discoverability and limited value, but it's so easy to try new ideas that some real innovation crops up.
Emacs package of the day: amx.
https://github.com/DarwinAwardWinner/amx
This makes your M-x better, by prioritising recently used commands, hiding irrelevant commands, and showing shortcuts!
(Shown with the excellent counsel package here.)
One cute property of the typescript/javascript relationship is that you can toggle whether (and when) you want static types.
At ~500 LOC I realised I had an error handler I'd refactored but missed an argument at a call site. Time to try some typescript!
Discussion of how to add features written in Rust to the Linux kernel! https://lkml.org/lkml/2020/7/10/1261
How much content belongs in a website header menu?
I'm playing with blog layouts, and wondering if all the navigation would be better suited to a footer. I'm hoping it prioritises content.
Libreoffice and trying to build sustainable OSS business models: https://lwn.net/SubscriberLink/825598/21fb7c2a3f9358e7/
Several security vulnerability types are due to misusing strings: command injection, SQL injection, cross-site scripting.
How far could you go with a language that didn't have strings? You might need a Prose type that's a list of Unicode chars, but only use it for printing.
I keep thinking about the parallels between type checkers and abstract interpretation.
E.g. abstract interpretation saying "this is one of two values, but I don't know which" feels very much like type checking a boolean.
Have any tools taken advantage of this?
Showing 181-200 of 378 posts