Compile-to-web PLs come in three flavours (increasing difficulty of adoption):
JS-like: different syntax/semantics, existing JS tooling: Typescript, CS
Separate world: builds own toolchain: Elm, Purescript
Separate platform: includes own runtime/needs FFI: ScalaJS, Pyjamas
miniblog.
Overheated chips in the Apple III could end up dislodged. Apple's recommendation? Drop it two inches!
https://www.tekrevue.com/apple-iii-drop/
Racket has a remarkable number of aliases. '() and empty are equivalent, as are #t, #true and true.
YAML is similar, but it's unusual for a programming language.
Capacitor Plague: a remarkable period of very high capacitor failure rates during the '00s. It's believed to be a result of manufacturers trying to steal electrolyte formula but missing important parts.
https://en.m.wikipedia.org/wiki/Capacitor_plague
I'm increasingly persuaded that languages implementations should not expose an AST and probably shouldn't have it in the stdlib either.
Static analysis tools need a richer data structure, and want to parse different language versions. It's better as a standalone library.
Happy Christmas!
Formal Verification: The Gap Between Perfect Code and Reality https://raywang.tech/2017/12/20/Formal-Verification:-The-Gap-between-Perfect-Code-and-Reality/
Good critique of how formal verification techniques can be extremely heavyweight. Also discusses (rather pessimistically) how it's important to know which parts are not verified
'S-expressions are a bad idea' by notable lisper Dave Moon:
https://cl.cddddr.org/index.cgi?Essay:S-expressions are a bad idea&l=
Argues in favour of richer data types for syntax rather than lists and symbols. It's true: propagating positions when your macro is incorrectly used is difficult!
Great excerpt from the Realm of Racket (currently available in the Humble Bundle!) on how OO PLs lead to Scheme.
This quote is from page 27.
Not all feasible technology will be built. It takes a strong advocate and big engineering push to bring it to reality. Thoughts from Bill Joy in
Emacs is huge. Today I realised that I had reimplemented a built-in command, and even given in the same name! https://github.com/Wilfred/helpful/commit/ed23fa740151cd15c27ad56d8cef5fc84b63d003
Today I learnt that Emacs defines a ring structure using just a fixed size array, to give you the convenience of circular structures and dynamically sized arrays! https://www.gnu.org/software/emacs/manual/html_node/elisp/Rings.html
Opaque types in JavaScript: https://codemix.com/opaque-types-in-javascript/
Shows a nice compromise between wrapper types (stronger type guarantees) and primitive types (lots of functions already defined on the type).
A hierarchy of data cleanliness/readiness for training ML systems on: https://towardsdatascience.com/ready-set-ai-preparing-nhs-medical-imaging-data-for-the-future-8e85ed5a2824
Includes an interesting argument for centralising data sharing/cleaning at the NHS level.
Superb blog post contrasting the goals of VCS with git gotchas, comparing with hg, and making interesting suggestions: https://gregoryszorc.com/blog/2017/12/11/high-level-problems-with-git-and-how-to-fix-them/
Distinguishing hard forks from collaborative forks is a really nice idea.
IDE/editor polish makes a huge difference, and having great individual tools is not the same as everything working together nicely. A great comment from
Interesting approach to emulating sum types in Go: define an interface with a placeholder function on all of the relevant types! https://www.jerf.org/iri/post/2917
Includes an example with an AST type. You can even stop people extending your interface by making your placeholder private.
Shower thought: I can't remember the last time I had to wait for something whilst surfing.
On a 56k connection this was common, but pipes today are much fatter and buffered streaming with adaptive rates is the norm.
Big downloads still happen, but casual surfing is different.
Windows Defender learns new malware definitions without a human involved at all! Really impressive analysis of the arrival of a new piece of ransomware: https://blogs.technet.microsoft.com/mmpc/2017/12/11/detonating-a-bad-rabbit-windows-defender-antivirus-and-layered-machine-learning-defenses/
Syntactic aware transformations of JS source code: https://www.graspjs.com/blog/2014/01/07/refactoring-javascript-with-grasp
Really impressive and very general!
Showing 3,001-3,020 of 7,508 posts