Micro posting in June

June 24, 2021


“Using the REPL” actually means typing your code in your favorite editor. However, one sends the code to evaluate in a REPL, which may not even be visible at all. Once the code is evaluated, the results immediately show up in the editor, so you get the feedback right away. Obviously, this requires some upfront setup, but a proper Clojure REPL setup exists in all major editors. Just google it.
Note that one normally sends the code to evaluate with a single key stroke. Note also, a very important point that people often miss, is that this “sending code to evaluate” is uniquely convenient in Lisp because of the parentheses.
There’s a notion of “form” in Lisp, that is the code enclosed between a pair of parentheses, which can be independently evaluated. So, when next time someone insists that their favorite non-Lisp language also has a REPL, ask them, does it have a notion of “form”?
The benefit of a form, is that one no longer needs to use a mouse or some awkward key combinations to painstakingly select a region of code first, before sending it out for evaluation. Instead, one can use a single key stroke that means “evaluate the form under the cursor”, or “evaluate the form before the cursor”, etc, to precisely define the scope and send the code at the same time. — How much can a Clojure developer do alone?


Ironic as this may sound, my first suggestion for how to write programs that are supposed to be random is to make them deterministic. — Probabilistic Programming Habits

2021-06-05: Unix Shell Programming: The Next 50 Years (PDF, 8 pp.). #unix
Ipomea on the loggia
2021-06-06: The new Firefox UI (v89) is quite nice actually. At least on Ubuntu, with a 16:9 13 inch display. I found it less appealing the first time I saw the new tab on the Developer version on my Macbook last week.
2021-06-06: Turning 47 today. At least a prime number. #self
2021-06-06: Common JSON patterns in Haskell, Rust, and TypeScript.
2021-06-06: Comparison of Common Lisp Testing Frameworks. #lisp
2021-06-06: F*dging up a Racket.
2021-06-07:   The Ghost, War Kids.
2021-06-08:   Marianne Faithfull, Give my Love to London.
2021-06-08: 10 underused features of modern Python. #python

On IRC, features like embedded images, a nice UX for messages longer than a few lines (e.g. pasted code), threaded messages, etc; are absent. Some sort of “graceful degradation” to support mixed channels with clients which support these features and clients which don’t may be possible, but it still degrades the experience for many people. By instead making everyone work within the limitations of IRC, we establish a shared baseline, and expressing yourself within these limitations is not only possible but makes a better experience for everyone. — Absence of certain features in IRC considered a feature

2021-06-09: Modern Statistics for Modern Biology.
2021-06-09: The Book of Statistical Proofs.
2021-06-09: Vim, Unicode, and Digraphs. #vim

So what does it mean to always be quitting? It means “making yourself replaceable”; “deprecating yourself”; “automating yourself out of your job”. — Always be quitting

2021-06-10: Causal Inference for The Brave and True. #python
2021-06-11: So true.> This blog serves as my way to give back to all of the people who taught me something over my career. It all started in 2007 when I needed a way to keep track of all the information I learned during my daily work as a systems administrator. —

I could say that Twitter, Facebook, Youtube, and Google helped ruin the internet, but really it was that everyone started using it. The internet used to be a haven for nerds, geeks, artists, and bohemian misfits until the cool kids crashed it. Now the internet is dull and stale and overly commercialized. — I miss the old internet

2021-06-14: It’s been hot today! Meanwhile, plants keep being happy…

2021-06-14: Some enlightening posts on the Freenode thing, as viewed from my RSS reader: the end of freenode, Goodbye Freenode, Leaving Freenode, Goodbye Freenode, Final Chapter.
2021-06-14: Effective Modern CMake (via Matt Morse).
2021-06-14: Tetris in ClojureScript.

Email is not a hard problem. This is a more than fifty-year-old tool.
Chat is not hard either. This is a more than forty-year-old tool. — Some random sketchy thoughts on Unix, web-apps and workflow


If we think about privacy and the future, I don’t want to be the next KFC Girl[7], so I clean up my drivel. Many of the posts I create on social media have very little thought go into them, so once they’ve served their purpose, they can be deleted. — Why I Delete Old Content

2021-06-15: R packages that make ggplot2 more beautiful: Vol. I and II. #rstats
2021-06-15: R tip of the day (thanks to Pr. Brian Ripley): the equivalent of %paste (or paste) in IPython appears to be source("clipboard") (or equivalently, source(pipe("pbpaste")) for Mac users). #rstats
2021-06-15: Trying out mpv as an alterntive to cmus for isolated playlists. Looks really good!
2021-06-15: Maths in a minute: The positive predictive value.
2021-06-15: Modern Unix.
2021-06-15: Serving WebP & AVIF images with Nginx.

The problem with most of these comments is that they convey very little information. Often it is just a repetition of the method name and parameter names in a few more words. These comments may be useful for API:s exposed externally, but in an application where you have access to all the source code, they are mostly useless. If you wonder what the method does, or what the valid input range for a parameter is, you are better off just reading the code to see what it does. These types of comment take up a lot of space without providing much value. — On Comments in Code

2021-06-16: An Introduction To Tmux.
2021-06-16: Modulinos In Bash. #unix


Lisp is the result of taking syntax away, Perl is the result of taking syntax all the way. — Doug HoyteCited in Lisp’s nested syntax, by Daniel Szmulewicz.And ensure you added to your RSS feeds, if that’s not already the case.

2021-06-17: > Not only in a professional context, but also for private purposes it does make sense to actively read your books/articles. Try to apply some analytical reading, a concept I’ve read about for the first time in How to read a book (book). The idea is to interact with the content you’re reading about: Ask questions, try to link ideas in your mind, make notes, lookup complex definitions. The worst thing you can do is to just passively read something, finish it and then you move on to your next reading. — Note taking in 2021
2021-06-17: Got my nice playlist on the Ubuntu laptop, added a crappy script, and it’s working fine!

2021-06-17: A beginner’s guide to modern art jazz.
2021-06-17: Git for Computer Scientists. #git
2021-06-17: The most copied StackOverflow snippet of all time is flawed! Lovely.
2021-06-18:   Larry Willis, I Fall in Love Too Easily.

The only browser that does not use Google’s web engine (blink) is Firefox. So if you really want some kind of privacy I’d recommend you switching to Firefox or something Firefox based. — Brave, the false sensation of privacy


When you are a kind of old school, modern times means a bit of pain in some way. Your soul is mostly seeking inner peace but on the other hand, as someone that works with technology, you wouldn’t stay freeze.
And sometimes the thing is the other way around, it feels that the old-school-world you’re living with is good but not as great as it should and you need to move a bit forward yourself to - wrongly - have a feeling of progress. — Mattermost and Matterbridge

2021-06-18: Coreutils gotchas. #unix
2021-06-18: DenoDB: MySQL, SQLite, MariaDB, PostgreSQL and MongoDB ORM for Deno.
2021-06-19:   Abisko Lights, Abisko Lights.

Bunch of years ago, when social networks did not exist (wow) the web prettended to be pretty simple. As simple that some content management systems were designed to do a kind of hard work: build a static site from the dynamic one. Easier to be served, maintained and much much faster… win-win!. — Stay static


“I had an obsessive-compulsive streak that drew me to digital, discrete problems. And I loved poring over large collections of information,” Knuth said. — The Computer Scientist Who Can’t Stop Telling Stories



Two things Perl 5 got right was its lexical scoping rules and support for anonymous functions (“lambdas”). Combine those features and you can make closures. And just what are closures good for? Well it turns out they’re pretty damn powerful; powerful enough, in fact to make a better object system than Perl’s built-in offering. — Perl Closures As Objects

2021-06-21: Git is my buddy: Effective Git as a solo developer. #git
2021-06-21: Parallel processing with unix tools. #unix
2021-06-21: Representing SHA-256 Hashes As Avatars.
2021-06-21: The Evolution of the Unix System Architecture. #unix
2021-06-21: Three ways to bulk rename files. #unix
2021-06-21: Wald tests via statsmodels (python). #python
2021-06-23:   Shahin Novrasli, From Baku to New York City.

For simple expressions, parentheses are a form of static typechecking. If you model a Lisp as a stack language that evaluates from right to left, each parenthesized block must push exactly one value onto the stack, and must not consume any values. — Parentheses are Just Typechecking

2021-06-24: Docker for beginners.
2021-06-24: Introduction to Locality-Sensitive Hashing.

See Also

» Micro posting in May » Micro posting in April » Micro posting in March » Micro posting in February » Micro posting in January