How Elm slays a UI antipattern: https://blog.jenkster.com/2016/06/how-elm-slays-a-ui-antipattern.html
Argues for GADTs in web dev, and points out a common issue with async UIs that I can't unsee now.
miniblog.
It's amazing how important kinaesthetic learning is in programming.
There have been many concepts that I haven't fully grokked until I've actually coded it up myself. It forces you to consider all the details.
It's easy to observe software getting slower over time. It's nice to periodically reflect on software features that have become faster: sound codecs, JS execution, CSS engines.
Python is the only language I've seen where the stdlib docs contain smilies: https://docs.python.org/3.6/library/heapq.html#theory
It makes the docs more approachable, but also shows the diversity of writing styles used!
Shower thought: suppose you have two groups of devs, one more experienced in a PL than the other.
Ask everyone to solve a programming problem. I suspect the more experienced group would have more similar solutions. What things would they do similarly, and how would they differ?
Porting 600KLOC of Closure Compiler JS to typescript: https://www.lucidchart.com/techblog/2017/11/16/converting-600k-lines-to-typescript-in-72-hours/
Although Closure offers a set of static analysis tools, typescript is often stricter! This finds bugs but complicates porting.
Hyper-G is (was?) an interesting hypertext design, where hyperlinks were stored in a separate database to ensure integrity and allow visualisations with trivial backlink calculations: https://www.ickn.org/elements/hyper/cyb20.htm
Racket has a notion of a 'box', which is a single-element vector for when you want a mutable store of something: https://docs.racket-lang.org/reference/boxes.html
Interesting, I've rarely seen this in other language as a first class concept (I can only think of ML).
Microsoft patching a compiled binary to fix a security issue: https://0patch.blogspot.co.uk/2017/11/did-microsoft-just-manually-patch-their.html
Adding an additional parameter without changing the instruction count of functions is no mean feat!
Often when looking at different PL designs, I wonder "what approach did Racket choose?" and it's invariably a good approach.
Today's observation: you have to deliberately export functions, so refactoring private functions is safe (unlike e.g. Python).
Maybe it's just effective marketing / speedy loading bars, but the new Firefox definitely feels faster. Parallel layout makes a big difference!
RISC-V support has landed in the mainline Linux kernel! https://groups.google.com/a/groups.riscv.org/forum/m/#!topic/sw-dev/2-u-c3kyZlc
It is remarkably difficult to learn what a programming language is like work with.
It's easy to conclude '$LANG is rubbish, it doesn't even have a good way of doing $TASK!' due to not knowing the available tools well. 1/n
Intelligently choosing when and where to log by considering possible paths through basic blocks: https://blog.acolyer.org/2017/11/03/log20-fully-automated-optimal-placement-of-log-printing-statements-under-specified-overhead-threshold/
(Improves both runtime performance and debuggability!)
One remarkable feature of Smalltalk is that you can save your current state and restore the app in exactly the same state later.
In normal applications, the user is dependent on the app developer having implemented this feature.
Showing 3,061-3,075 of 7,508 posts