lunes, 25 de noviembre de 2019

Git from the ground up

There's this recent amazing video about org-mode, that happens to use git internals as the topic of the org mode document. And I just remembered the Aha moments I got when I started grasping git internals.  Here's what made stuff click to me.

- https://www.youtube.com/watch?v=ig5E8CcdM9g
- https://www.youtube.com/watch?v=MYP56QJpDr4
- https://www.youtube.com/watch?v=1ffBJ4sVUb4
- http://ftp.newartisans.com/pub/git.from.bottom.up.pdf


Also, https://initialcommit.io/#baby-git seems like a very nice deep dive into git internals from its core ideas.  I haven't had the time to dig into those articles yet, but worth mentioning them.
And last but not least: A very plain but smart way to investigate git: https://www.reddit.com/r/git/comments/eel2cf/how_does_gitstash_work_under_the_hood/fbubxvz/ . Kinda emacs' "c-h k", but for git.

sábado, 23 de noviembre de 2019

On the expressiveness of programming languages (and other stuff)

Here's this interesting talk about which features add expressivity to given languages, and which don't.  It's an interesting way of looking at this problem.

The pdf (and ps which is extended). It goes in the same fashion of operational semantics I love so much on the lisp culture. The same as in Baker's MetaCircular article that mentions many CL special operators that can be written already with the rest of CL and macros.

martes, 12 de noviembre de 2019

very proud of my history

So now that I'm transforming this blog in a twitter account (for my ~15 followers), I just wanted to mention that when I type 'pdf' in my firefox, the suggestions I get are the following:


And I'm extremely proud of that :)

lunes, 11 de noviembre de 2019

Some Forth Implementations

To finish up one of the geekiest weekends in the last months, I just wanted to point to a few Forth implementations, from where I learned some nice tricks (from both forth and the implementation languages)

- Bashforth/Perlforth
- Rubyforth
- Miniforth
- ItsyForth

I spent a lot of time grasping Bashforth, with its usage of some smart tricks that you don't usually see in bash scripts. Also, the fact that array indices are used as a sort of pointers makes total sense, but it wasn't obvious to me at first (I had to research a bit about "delcare"). Perlforth is done by the same guy, so it uses a similar approach.

Miniforth is Lua, and uses a different kind of implementation, and gets to bootstrap something forthish in 40 lines of lua.  Not bad :)

Rubyforth is the one I touched less, but looks like a variation of miniforth with more Forth compliance.

Now a quick bash quiz: What does it echo? AnswerHere

#!/bin/bash
fun() {
        local var="local value of var"
        echo "$ref";
}
var="global var"
declare -n ref=var
fun 

Well, there are two more canonical forth implementations that is worth mentioning them here, because if you're gonna just look at one implementation, you should take these ones as more "de facto" implementations.
- pforth
- jonesforth

sábado, 9 de noviembre de 2019

J's awesome

So here are a couple of nice reads that, although they're not new, they somehow teached me something new today about J.


First one is this 9 minute video on the "i." integers monadic verb.  It's super simple. So simple I almost dismissed it as trivial. "Monadic verb that returns an array from 0 to the parameter you pass it", right? Well... There's more than meets they eye.  The trick is that for non-array programmers it's not obvious that the parameter can have many dimensions. And what zeroes mean? and negative numbers?

Next is this super nice interactive J demo.

And a classical: Loopless programming.

miércoles, 6 de noviembre de 2019

SICP and Hal Abelson

So I got recently hooked up to SICP again, and binge watching the 80's classes in HP.

Also, rereading parts of the book and feeling that magic again.


Starting from there, I've researched a bit more from the authors, and I've focused in Hal Abelson.

Usual links:



Emacsconf 2019!

Emacsconf last Saturday was a blast! I planned to attend for a couple of talks and ended up staying the whole day!

Quite interesting talks, made by passionate contributors, cutting BS to 0, and somehow the talks were broad enough to take something from each one of them.

Even digressions in the irc channels were also interesting. Of course, the tribe that joins a saturday on an irc channel and a video streaming of emacs stuff for 9 hours, we're more than ok to discuss about window managers, programming languages, and all sorts of emacsy geekyness not entirely related with the talks. There was a very good vibe there.

A couple of talks focused more on the meaning of emacs as an FSF flagship, and the political meaning of the project. Very important to note that in a gathering of emacsers. I sometimes forget that emacs is as much of a software artifact than a political statement.

Jitsi behaved ok for 70% of the time, but the first 30% was a bit worrisome.  Connection dropping and audio cutting was a bit frustrating. The organizers did a great job solving those (I can imagine the stress), and they had the "recorded lightning talks" card up their sleeve.  Kudos to them, and to JohnW who got most of the jitsi difficulties in his turn :/.  Luckily he was calm and patient enough to flyby those hiccups and the message went through ok.

Annnnd the closing keynote.  That one gave some food for thought...  Better html support, different implementation language (learning from Remacs?) different extension language, looking at vscode in depth, attracting contributors, bug reporting....

Thank you everyone involved in one way or another. Organizers, speakers and attendees.  I had a great Saturday :)