Happy Christmas!
miniblog.
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!
A remarkable post introducing a GHC plugin that proves your programs obey laws: https://www.joachim-breitner.de/blog/717-Why_prove_programs_equivalent_when_your_compiler_can_do_that_for_you_
Great post on how to use union types effectively: https://robots.thoughtbot.com/modeling-with-union-types (has a lovely example of modelling a deck of cards: how do you handle suits and jokers?)
Rewriting loops in JS to prevent users crashing their browser tab: https://repl.it/site/blog/infinite-loops
It's a neat use of Babel, but it shows the value of sandboxes that expose this feature.
Fascinating post on future developments of Internet protocols and preventing implementations from making assumptions that prevent future changes: https://blog.apnic.net/2017/12/12/internet-protocols-changing/
Why is the git staging area called a cache? https://stackoverflow.com/questions/6716355/why-staging-directory-is-also-called-index-git-index/6718135#6718135
Interesting git archaeology, but I'm not sure that makes it a good name.
Showing 21-40 of 885 posts