Hacker News new | ask | show | jobs
by kgbier 2905 days ago
The commit messages across the entire project are... alarmingly insightful. There's some detailed stream of consciousness stuff in there.
4 comments

If you haven't clicked through to read the above commit message, please do. It is amazing. This is a glimpse into the mind of a mad scientist (and I respect and love mad scientists more than anything and aspire to be one)
> It is a tragedy, but I cannot imagine a language better than Spiral. Not within real world constraints facing me. A language better than it would pretty much have to be magic.

> So, in this respect, my programming skill has reached it's limit and the most I will be able to do is refine it.

> And it is embarrassing to me because I want to do better. I am ashamed, but the one to come will have to follow up on what I could not manage with my meager human abilities.

This reminds me of the fictional inspirational process of dwarves in the Drizzt Do'Urden series of books [0] by R. A. Salvatore [1]. In that setting a dwarf craftsman gets only one moment of exceptional divine inspiration in his life to forge a legendary artifact. It is both a blessing and curse for them, because they realize that they will never be able to surpass that work for the remainder of their long lives.

I wonder if other people here have had that moment in their life as well?

[0] https://en.wikipedia.org/wiki/The_Icewind_Dale_Trilogy

[1] https://en.wikipedia.org/wiki/R._A._Salvatore

The dwarves should be thankful. Many people would have this moment and not realize it has passed them by.
https://github.com/mrakgr/The-Spiral-Language/commit/1dee010...

That one is really in the "mad scientist" mindset. I love it, I wish him and this project good luck.

The funny part is the diff.
I didn't even see that! Yep. When all you have left to polish is some white space in a test script, the thing is pretty much complete.
No, he uses commit messages as log of his thoughts, and commits need to have changes, thus each "log only" commit deletes or adds those same whitespaces in a never ending cycle.

In between you find some actual code changes (with also long commit messages).

It's not that he's finished - I hardly guess so because he complains that he'd need 10 years of time to polish everything out perfectly (in his opinion) and he only has one - it's just his style for a log book...

I can't actually program all the time. Sometimes I need to study machine learning or think about design. During those times I use commits much like journal entries.

I actually keep a separate journal and sometimes paste from it. I've been using LibreOffice Writer for it and decided to drop it recently because it would take so long to save a file - like 5s or more. Around every 3 month I'd fill in about 1000 pages of it and it was forcing me to move to a new file every time that happened. Now I just use VS Code for this sort of thing. Raw text is the best after all, but it is too bad I can't paste images into the journal anymore.

If you do wish to use commits to simply journal your thoughts, and would like to do so without this requiring code or file changes, you may find the --allow-empty option useful when committing.

This allows you to create a new commit, even if no files have changed.

> commits need to have changes

Ah, yes, I remember wanting to be able commit the identity transformation (_i.e._ no change) at some point. I don't remember why. It might have been a matter of principle.

PS: I just learned about the `--allow-empty` flag. [0] I'm happy again.

[0] https://git-scm.com/docs/git-commit#git-commit---allow-empty

Oh; I missed the back and forth.

But he said he was done, because he no more time for language design, and he must study AI now.

what should we call this new form of web log ? c[ommit]log ? v[ersion]log ? g[it]log ?
I’m quite happy to see random projections getting some love, but I hope more people start using Choromanski et al.’s 2016 Structured Orthogonal Random Features, which has provably higher accuracy while reducing runtime to linearithmic and memory to linear (or constant) from quadratic for each. I’ve verified this experimentally in my implementation here [0]. As a shameless plug, it’s quite fast, is written in C++, and comes with Python bindings for both kernel projections and orthogonal JL transforms.

[0]: https://github.com/dnbaker/frp

The reason why I am using random projections in the latest test is because I am testing an algorithm that iteratively calculates the inverse Cholesky factor of the covariance matrix and am testing it on Mnist images. The cov matrices made from raw Mnist images are non-invertible, but projecting them to a much smaller dimension allows me to actually test the algorithm on non-synthetic data.

I do not actually need more than I have, but I'll keep your link in mind if I ever need random projections though.

That makes sense. Thank you for explaining! I hadn’t fully pieced it together from the commit.

For dimensionality reduction, if one were to use my library, the way to go would be the orthogonal JL transform. The key to all these methods is the idea that multiplication by a diagonal matrix and subsequent F[HF]T is equivalent to multiplication by a matrix, which is what allows it to do what random matrix multiplication provides without instantiating or using the full matrix.

As an aside, I admire your work and think it’s both very exciting and highly valuable.

How is this relevant to the upstream comment?
I'm inspired.I'm going to start writing little things about my day in my commit messages.
`git commit -m` as a blogging platform...