@cpbotha@emacs.ch avatar

cpbotha

@cpbotha@emacs.ch

Data {visualization, engineering, science}, programming, computers, science, nerdery, Emacs. Also humans ❤️.

This profile is from a federated server and may be incomplete. Browse more on the original instance.

gvrooyen, to keyboard
@gvrooyen@c.im avatar

After about 6 months of research and fretting, I finally got myself a decent entry-level mechanical keyboard!

Oh man, I can't believe how much satisfying it makes everything from coding to writing documents and emails. I'm actively looking for excuses to spend more time on projects 😁

I would definitely rather drop $110 for a device on which I spend most of my day, than pay a huge premium for a fancier car in which I'd spend the occasional commute or weekend travel.

I opted for the Keychron V6 modular keyboard with red (linear) switches. Thanks to @cpbotha for helping to narrow it down. This seemed like a great base design for future experiments ⌨️

Now to wait and see how long before I want to start modding...

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen now you've made me fantasy shop for keyboards again... ;)

Your board sounds amazing, I expect it will only keep on giving!

cpbotha, to emacs
@cpbotha@emacs.ch avatar

I can't believe I've been using org-roam and consult for so long without installing jgru's consult-org-roam.

Finally I have live previews for org-roam-node-find and org-roam-node-find-similar!

https://github.com/jgru/consult-org-roam/tree/main

#orgroam #consult #emacs

cpbotha, (edited )
@cpbotha@emacs.ch avatar

Hi there @louis !

The theme is of course modus-operandi by Prot.

I use variable-pitch-mode, with currently Noto-Sans and JetBrains Mono.

The rest of the appearance is due to the great https://github.com/minad/org-modern (org-modern-table disabled) combined with https://github.com/jdtsmith/org-modern-indent as I am an org-indent-mode person.

cpbotha, to random
@cpbotha@emacs.ch avatar

Charl's log, Earth date Monday 2023-12-18:

Please see https://cpbotha.net/2023/12/18/daily-head-voices-on-monday-2023-12-18/

#lifelog

gvrooyen, to random
@gvrooyen@c.im avatar

20 years ago today, A & I tied the knot in a beautiful ceremony in #Franschhoek. It was a wonderful "kuier" with friends and family, and we've often looked back to the best celebration we've ever experienced.

Today, we met with family for a new celebration at the old #Vergenoegd estate. We enjoyed a slow lunch over a long table in the shade below centuries-old oak trees with amazing food and wine. We were blessed to have so many of our loved ones present (and dearly missed my dad-in-law who passed away several years ago).

And it was such a wonder to have the new guests – our two young teenagers; their wonderful cousin – that had not yet graced our lives in 2003. What a privilege to live this life ❤️

#lifelog

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen Fantastic, congratulations!

cpbotha, to apple
@cpbotha@emacs.ch avatar

Charl's log, Earth date Thursday 2023-12-14:

  • Trying to live the single-(usbc)-cable-dream at work as well by going through my old thinkpad dock: mac to dock via usbc, dock to Delly U2713HM DisplayPort. However, DP to DP connection from dock to old Dell U2713HM display only sometimes flickers on and often not. usbc to DP from dock is solid. DP-DP cable is extremely sus. Work has ordered new DP-DP cable and I'm crossing my fingers. Singel cable life is fun.
  • Again discovered how unbelievably badly macOS renders fonts on resolutions that Apple believes to be too low, in this case my Dell Ultrasharp 27" at 2560x1440 aka QHD at work. Microsoft and Windows do an absolutely great job on exactly the same hardware, and fonts look great.
  • BTW, although macOS does marginally better on my 32" 4K Dell IPS display at home, here Windows even further increases its font rendering dominance with fractional scaling and cleartype.
  • As is often the case with Apple, there is a (paid) third-party software tool that works around their attempts to improve matters, namely BetterDisplay: https://github.com/waydabber/BetterDisplay
  • As I wrote in my notes some years ago when this became apparent, this is just the company's philosophy. They want to control all the hardware. They will begrudgingly let you use some third party displays, but they pick their battles to look good. In this case, it does feel quite user-hostile.
  • Ran into a M1-specific bug in the ruff vscode extension, where the arm64 extension build bundles the x86_64 ruff binary. Worked-around, and then reported at https://github.com/astral-sh/ruff-vscode/issues/364
  • Finally got around to write the quickstart for org-roam-similarity. Enthusiasts will hopefully be able to get it going! https://github.com/cpbotha/org-roam-similarity
  • I've been looking at Apple's MLX machine learning / array framework for Apple Silicon https://github.com/ml-explore/mlx as well as at CoreML because I'm curious whether this will give me faster Jina AI embeddings inference on the M1 than I'm currently getting with the PyTorch MPS backend, which is muuuuuch slower on this M1 Pro 10C / 16C GPU / 16C neural than PyTorch CUDA on my oooold GeForce RTX2070 with 8GB.

#lifelog #apple #usbc #pytorch #orgroam

gvrooyen, to random
@gvrooyen@c.im avatar

So here's a nice example of why I LOVE expect tests in , using today's puzzle as example (no spoilers).

The test input describes a map of pipe connections, with unconnected pipes all over the place, and a starting point (Fig 1).

I'd like to visualize the input, and check that I've read (or parsed, or manipulated) fairly complex input correctly. I can quickly slap together a pretty printer for the input (Fig 2).

My test code initially "expects" blank output from the pretty printer (Fig 3). It shows what it actually got; I can throw my human eye over it to confirm that, yes, it does indeed look correct. I run dune promote and...

My actual test code is automatically fixed to expect this output (Fig 4). This also nicely documents expected output of tests for future me and other people.

An OCaml function mapping 7-bit ASCII characters to their high-level ASCII equivalents.
The OCaml
Running

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen am I the only one who stuck to the original ASCII and didn't translate to those pretty extended box chars? 🥲

gvrooyen, (edited ) to random
@gvrooyen@c.im avatar
  • Decided to try out a bullet blog on Mastodon like @cpbotha for a few days to see how it gels with me.
  • Entering my 4th week of having a virtual personal assistant; already making a huge difference.
  • Fun conversation with @mobivangelist triggered by a such-a-small-world business thing that required me to contact him.
  • Booked a plane ticket to Istanbul. Client cancelled the meeting 2 hours later. Briefly despaired about non-refundable economy flights. Discovered that Travelstart provides a full refund if you need to cancel on the same day. Much relief.
  • Too few uninterrupted blocks of work time today meant that I could not make much progress with the bigger things on my list that require a few hours of focus. Need to figure out better ways to manage this as my role in Octoco evolves.
  • Wonderful farewell event for someone whom I deeply respect in the local VC space, Andrea Böhmert, who has moved to Germany for a wonderful new opportunity. Good conversation with a wonderful network of founders and investors – a privilege to be in this ecosystem.

#lifelog

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen Awesome, thank you!

Consider tagging with #lifelog maybe we can start a small movement. :D

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen ... I need to add here how good (I'm searching for more accurate adjectives here) it feels to connect with a fellow human's day-to-day. ❤️

cpbotha, to running
@cpbotha@emacs.ch avatar

Charl's log, Earth date Sunday 2023-11-27:

#log #lifelog #running #orgmode #llm #embeddings

cpbotha, to emacs
@cpbotha@emacs.ch avatar

Charl's log, Earth date Saturday 2023-11-26:

  • published goodreads review of Building Analytics Teams by John K Thompson see https://www.goodreads.com/review/show/6000656140 (TLDR; unfortunately not great)
  • looked at the Emacs htmlize bug exporting org-modern agenda
  • something adds a visual space between : and start of tag name. Cursor jumps over that space, and it does not contribute to current point position, however, it looks like that confuses the htmlize code, which starts the HTML appearance change for that tag one position too late (today it was 906 instead of 905)
  • I could dive into this, but not motivated enough
  • did a quick search for data science lifecycles / models when reading those data science strategic plan blog posts
  • MS team data science process: https://learn.microsoft.com/en-us/azure/architecture/data-science-process/overview
  • Berkeley data science life cycle: https://ischoolonline.berkeley.edu/data-science/what-is-data-science/
  • CRISP-DM which seems be de factor also for DS: https://en.wikipedia.org/wiki/Cross-industry_standard_process_for_data_mining
  • funny that OHRA (our insurer back in NL) was one of the 5 companies leading the ESPRIT EU project that birthed CRISP-DM
  • thinking about ways of building 15 minute planning and 15 minute emali grooming into my day
  • planning crucial, but email grooming and general admin feel like they are taking time away from better activities
  • took a quick look at org-roam-buffer code to see how much work it would be to get a similarity list in there
  • as could be expected with org-roam, code is OK, but API not really designed with this sort of re-use in mind
  • [2023-11-25 Sat 16:42] err I was wrong in this case; you can just add a function to org-roam-mode-sections
  • fixed the consult nearest heading work-around to also take care of =consult-outline= (that was just the advice that needed to get an &optional arg.
  • after dinner I am able to get Simon Willison's =llm= working on my 1700+ node export, and then my own umap code which on my setup is 3 to 5 times faster for initial embedding but also queries
  • so close at [2023-11-25 Sat 22:43] I have the server spitting out top 10 closest org-roam IDs, but time for sleep because run tomorrow!

#log #lifelog #emacs #orgroam #llm

cpbotha,
@cpbotha@emacs.ch avatar

@gvrooyen haha thank you! How about joining me? ;)

cpbotha, to emacs
@cpbotha@emacs.ch avatar

AM EXCITE!

Witness my Emacs org-mode + Jina AI embeddings Frankenstein!

https://youtu.be/cHQx4ITQRNU

From the video description:

I've dreamed about this for quite some time now, and now I've finally been able to cobble it together!

What you're seeing, is org-roam node (subtree or file) live Jina AI (fully local) similarity search in the org-roam buffer, along with your backlinks and reflinks. This automatically surfaces other org-roam nodes which are related to the one you're currently reading, or even working on!

This open source setup currently works as follows:

  • export all of your org-roam nodes as text files using supplied emacs-lisp
  • use embed.py to calculate embeddings for all of these txt files and store them in a parq file
  • run serve.py which waits for submission of any text to return the N closest node ids, according to the Jina AI learned embeddings. These are really quite good and fully local, but it would be straight-forward to use a service like OpenAI embeddings for everything
  • There is more emacs lisp that customizes the org-roam buffer setup to call to serve.py's endpoint and renders the list of similar nodes

The source directory for this is still in shambles. I'll try and make some time the coming days to clean up and push to https://github.com/cpbotha/org-roam-similarity

#emacs #orgroam #ai #embeddings

cpbotha, to random
@cpbotha@emacs.ch avatar

Mickey Petersen, he of the book Mastering Emacs, has just released the first post-prototype version of his tree-sitter-based structural editing package for Emacs.

This is huge people!

https://www.masteringemacs.org/article/combobulate-structured-movement-editing-treesitter

  • All
  • Subscribed
  • Moderated
  • Favorites
  • JUstTest
  • kavyap
  • DreamBathrooms
  • thenastyranch
  • magazineikmin
  • tacticalgear
  • khanakhh
  • Youngstown
  • mdbf
  • slotface
  • rosin
  • everett
  • ngwrru68w68
  • Durango
  • megavids
  • InstantRegret
  • cubers
  • GTA5RPClips
  • cisconetworking
  • ethstaker
  • osvaldo12
  • modclub
  • normalnudes
  • provamag3
  • tester
  • anitta
  • Leos
  • lostlight
  • All magazines