Alexis Rondeau

Archive

June 2026 · 31 dispatches

1 like · 211 views

Lol. This is wild.

Wanted to dip my toes in t.co/ZSDGMufAkd, CC with Opus 4.6 built the editor of my dreams instead: "The beefy love-child of emacs and iA Writer. "

My favorite emacsen bindings + iA Writer's clean typography. I LOVE IT SO MUCH!

Stress-tested with a 100M text file:

  • Opens the file in half a second
  • Scrolling is instant and lag-free
  • Search and scroll-to-first occurrence is instant
  • Select, cut and paste of all text takes ~1s

In short: Bonkers.

Oh, yeah, and of course, it's 100% portable C. Zero Swift: microui, SDL2, OpenGL and stb_truetype.

And finally, for anyone interested, the bindings and chords for writing, in the order of my personal muscle-memory-ness:

  • C-a (beginning of line)
  • C-e (end of line)
  • C-f (forward one character)
  • C-b (backward one character)
  • C-n (next line)
  • C-p (previous line)
  • M-f (forward one word)
  • M-b (backward one word)
  • M-> (end of buffer sets mark)
  • M-< (beginning of buffer sets mark)
  • C-k (kill to end of line, consecutive kills append)
  • C-y (yank, paste from kill buffer)
  • C-/ (undo)
  • C-Space (set mark)
  • C-w (kill region, cut)
  • C-g, ESC (cancel mark)
  • C-s (start/next forward search)
  • C-r (start/next backward search)
  • C-f / C-b (next/prev match while searching)
  • C-g (cancel search)
  • C-x C-s (save file)
  • C-x C-c (quit)
  • Enter/Escape (exit search, keep position)
  • Backspace, Delete, Enter work as expected
GitHubGitHub - rxi/microui: A tiny immediate-mode UI libraryA tiny immediate-mode UI library. Contribute to rxi/microui development by creating an account on GitHub.↗ github.com GitHubGitHub - rxi/microui: A tiny immediate-mode UI libraryA tiny immediate-mode UI library. Contribute to rxi/microui development by creating an account on GitHub.↗ github.com

kern

The text editor I've always wanted: The beefy love-child of Emacs, iA Writer, and Obsidian

2 stars · C

A minimalist text editor — a cross between Emacs and iA Writer. Emacs-style keybindings and editing model, with a clean, distraction-free iA Writer look: the iA Writer Quattro/Mono typefaces, live markdown styling, and a full-window writing surface.

A macOS app: a thin SwiftUI shell launches the editor, which is written in C with SDL2 + OpenGL for rendering and stb_truetype for font rasterization. There’s no UI toolkit — the editor draws everything immediately through a small 12-function renderer interface (renderer.h) over a ~30-line geometry/color header (gfx.h). SDL2 is statically linked from a vendored library, so the .app is self-contained (no Homebrew dependency) and runs with Hardened Runtime + App Sandbox.

Building

open application/Kern/Kern.xcodeproj

Then Build & Run (⌘R). Produces a self-contained Kern.app with the fonts bundled as resources. Apple Silicon only.

Usage

On launch it opens today’s daily note (YYYY-MM-DD.md, seeded with a date heading). The buffer auto-saves every few seconds while modified. Files live in the app’s sandbox container:

~/Library/Containers/com.rondeau.Kern/Data/Documents/

Open/save paths resolve relative to that folder (reach it in Finder via Go → Go to Folder).

Keybindings (Emacs-style)

Meta (M-) is either Alt or the Esc prefix — e.g. M-d = Alt-D, or Esc then D.

Files

KeysAction
C-x C-fFind/open file (inline completion — Tab to accept)
C-x C-sSave
C-x C-wWrite file (save as)
C-x bSwitch buffer (recent files — Tab to list/cycle)
C-x C-cQuit

Movement

KeysAction
C-f / C-bForward / backward char
C-n / C-pNext / previous line (by visual row)
C-a / C-eStart / end of line
M-f / M-bForward / backward word
C-v / M-vPage down / up
M-< / M->Beginning / end of buffer
C-lRecenter (center → top → bottom)
C-x tTypewriter mode (pin active line at golden ratio)
C-x ySyntax highlight (parts of speech, by brightness)
C-x sStyle check (strike cuttable fillers/redundancies)
C-x lSymbols on/off (draw -> -- != (c) quotes lambda forall as → — ≠ © “ ” λ ∀; on by default)
C-x pPage borders on/off (hide/show the page rails, gutters & note margins)
C-x gGraph view (interactive map of wikilinks, same-day & opened-after relations; click a node to open it, drag the background to pan)
M-gGo to line

Editing

KeysAction
C-dDelete char forward
C-kKill to end of line
M-d / M-⌫Kill word forward / backward
C-tTranspose characters
C-oOpen line
Tab / Shift-TabIndent / outdent list item
M-u / M-l / M-cUpcase / downcase / capitalize word
C-/Undo

Selection & clipboard (cut/copy/yank sync with the macOS clipboard)

KeysAction
C-SpaceSet mark
Backspace / DeleteDelete the selected region
C-w / M-wCut / copy region
⌘CCopy region
C-y / ⌘VYank (paste)
C-x hSelect whole buffer
C-x C-xExchange point & mark
** * == ++ `With a region marked, wrap it: bold / italic / highlight / underline / code
Cmd-Shift-HToggle <mark>highlight</mark> around the caret’s sentence
Cmd-Shift-UToggle ++underline++ around the caret’s sentence

Search & view

KeysAction
C-s / C-rIncremental search fwd / back
⌘= / ⌘-Increase / decrease font size
EscCancel / clear mark

Markdown headings, bold, italic, highlight (==), and underline (++text++) are styled live as you type. Each document also grows a read-only Context section at the bottom listing backlinks and notes created the same day.

Notes & wikilinks

KeysAction
` Wikilink autocomplete (↑/↓ to pick, Tab/Enter to accept)
Cmd-EnterFollow the [[wikilink</span> under the cursor
Cmd-Shift-← / Cmd-Shift-→Back / forward through note history
Cmd-Shift-NExtract the selected region into a new linked note
Cmd-Shift-MWrite a margin note (footnote) at the caret
Cmd-Shift-TOpen (or create) today’s daily note
C-x nDownload your X home feed into a time-stamped news note
C-x mDownload ALL your X bookmarks into a time-stamped note

Publishing to X (Twitter)

When an X account is connected, a paper-plane button appears in the top-right of the title bar (next to the help and folder buttons). Click it to post the note you’re viewing — or the marked region, if one is active — straight to your X timeline. The result shows up both as a macOS notification (Posted to X ✓ / a failure banner) and in the editor’s status bar. The button is hidden until you link an account.

The connection also works the other way: C-x n downloads your home feed into a time-stamped Twitter-Home-Newsfeed-YYYY-MM-DD-HHMM.md note — one ## author — date at time entry per post, with the text as a > blockquote (rendered in italics), the byline, and the URL below it, so you can mark up a post and Cmd-Shift-N it into a note of its own. Image-only posts (just a media link) and one-liners are filtered out.

C-x m does the same for your bookmarks: every bookmarked post (paginated through the whole list, nothing filtered — you marked them for a reason) lands in a Twitter-Bookmarks-YYYY-MM-DD-HHMM.md note in the same format. Requires the bookmark.read scope — accounts connected before this feature must disconnect and reconnect once in Settings → X. (Reading the timeline uses X’s timelines/reverse_chronological endpoint, which needs an API tier that includes read access.)

One-time setup

  1. Create an X app at console.x.com (pay-per-use; ~$0.015/post). In User authentication settings:

    • App permissions: Read and write
    • Type of App: Native App (public client — PKCE, no secret)
    • Callback URI: <http://127.0.0.1:8123/callback>
  2. Add your Client ID locally. Copy the OAuth 2.0 Client ID from the portal into a gitignored config file:

    cp application/Kern/Config/Secrets.example.xcconfig \
       application/Kern/Config/Secrets.xcconfig
    # then paste your id into X_CLIENT_ID
    

    It’s injected at build time via Info.plist, so it never enters the repo. A clone without this file still builds; the X feature just reports “not configured”.

  3. Connect. Build & run, open Settings (⌘,) → X, click Connect X Account, and approve in your browser. Tokens are stored in the macOS Keychain and auto-refreshed, so you only do this once. (The panel reads state when opened — use Refresh if it looks stale.)

Behavior

  • ≤ 280 characters → a normal post.
  • > 280 characters → sent as one long-form post (requires X Premium). Note that X’s API support for >280 is inconsistent even for Premium; if it’s rejected you’ll see X: Your Tweet text is too long and nothing is posted.

How it works. OAuth 2.0 with PKCE via a short-lived loopback redirect listener (RFC 8252), all on a background thread — editor_main parks the main thread in the SDL event loop, so the Swift networking layer must stay off the main actor and report through the C status bar.

Layout

application/Kern/
  Kern.xcodeproj    the app project (open this)
  Info.plist        app metadata; injects X_CLIENT_ID from the xcconfig
  Config/           Base.xcconfig + Secrets.example.xcconfig (Secrets.xcconfig
                    is local-only / gitignored)
  Kern/
    App/            SwiftUI shell + X publishing, bridging header, asset catalog
    Editor/         the C editor: textview, buffer, editing, navigation,
                    undo, md_render, commands, recent, clipboard, clock,
                    gfx, editor_types
    Platform/       SDL/GL renderer + macOS window chrome
    ThirdParty/     stb_truetype
    Resources/      iA Writer fonts + OFL.txt
  Vendor/SDL2/      vendored SDL2 static lib + headers

License

MIT — see LICENSE. Includes SDL2 (zlib) and stb_truetype (public domain), each under their own licenses. Typeset in the iA Writer Quattro & Mono typefaces (© Information Architects), used under the SIL Open Font License 1.1 — see OFL.txt.

4 likes · 8.3K views · 2 bookmarks

Alright! "Loop Engineering" is the term we're using? Works for me. Here's my latest loop engineering project. Built on @NimaSiboni's recent "The Heuristic Scientist: Open-Ended Algorithm Discovery with LLMs" workshop at @TUBerlin.

I think my take on it came out nice AND I found some nifty new levers that proved to be super useful, especially the auto-pivoting facility.

"Auto-Pivoting on patience"
Give the agent a patience — how many rounds it may go without a new best. Spend it, and it must pivot: drop the current line for a genuinely different groundrule. Our main guard against rabbit-holes.

"Runs that build on runs"
A search isn't one fixed run. Each new run inherits the champion — the best groundrule so far — and climbs from there, while you change the model, the patience, the library around it.

"Hand-curated inspo"
The library is an optional, human-written input — notes, framings, even a personality handed to the agent before it thinks. It doesn't fix the answer; it shapes the frame the search starts from.

"Run it on your own hardware"
The loop talks to any OpenAI-compatible endpoint, so the proposing model can run locally — LM Studio, or anything serving the same API. Point it at your own hardware and the search runs unmetered: no rate limits, no quota walls.

Image from the post
Image from the post
Image from the post
Image from the post
alexisrondeau.meThe problem — Le Petit Renard↗ alexisrondeau.me
3 reposts
Reposting @maxjendrall · Jun 11, 2026

Yesterday I organised Europe’s first community Cafe Compute with @cerebras in Berlin!

We had over 200 signups and ~80 people join us to talk about fast inference and running frontier intelligence at the speed of 1000+ tokens per second.

Special thank you for Cerebras and @communidiyi for entrusting me with the Ambassadorship and @WigetJanette with @aicampusberlin for hosting us and helping me organise this evening.

In the first half we had Zigfrid (Solutions Architect at Cerebras) join us and answer all the questions we had about what they do and how their chips work.

And in the second half we had great demos from the community:

@slobkebap presented a real time GenUI flow to build UI in realtime by talking to it using @OpenAIDevs's realtime v2 api combined with Cerebras GLM-4.7

@SpringStreetNYC presented his autonomous AI research lab experiment in which he tried to teach a small model to ask great questions on the level of frontier models.

Hoang Minh showcased how he finds vulnerabilities in big OSS projects very fast and helps patch them.

And my personal favourite demo that night: @leolurch, who showed us his machine learning pipeline to find lost art pieces on auction platforms. Basically face recognition but for art, to recover potentially stolen or simply lost art from the last centuries.

I had so many cool chats and am glad that so many very talented people showed up.

Thank you everyone for coming!

And thank you so much @0xSero for sharing the event!

Image from the post
4 likes · 368 views

Me, trying to touch the future while giving a quick demo of "'Which city in Paris are you staying in?'–Can an LLM autoresearch loop teach a phone-sized small language model (SLM) to ask frontier-quality questions? Can it? Does it? Let's find out!"

Me, trying to touch the future while giving a quick demo of "'Which city in Paris are you staying in?'–Can an LLM autoresearch loop teach a phone-sized small language model (SLM) to ask frontier-quality questions? Can it? Does it? Let's find out!"
2 replies · 2 likes · 721 views · 1 bookmark

Hey @LumaHQ! You app is absolutely fantastic. In only three weeks, I've been to five top-notch events meeting new, totally cool people.

But now that you've solved meeting new people for (thank you), I have a NEW problem:

As the events start to wrap up, we often want to stay in touch. Cool! Yay!

Now, to "connect-connect", the norm is to use LinkedIn. So, now I've to go back to (shudder) LinkedIn as well. You know, that place. And it's super-duper awkward: their app has a QR-code contact scan thing that gets more embarrassing every passing second while you're both fiddling with your phone ("...oh, doesn't work, there's a glare on your screen. Oh, it's my camera?...")

After yesterday's event (awesome btw.), I seriously consider printing contact cards. But then, what do I put on there? My phone? My email? My Twitter? And then?

What actually HAS worked a few times: I meet them, memorize their first name, then go to Luma, check the participant list (when it's visible) for their first name, when there are multiple "Davids", deduce based on first impressions which one and then try to find them online. Somehow.

So, team Luma, as a huge fan: I would like to ask you to let me find and connect and stay in touch with these new peers via your app. Thank you so much :)

1 reply · 1 like · 59 views
In reply to @onejailbreak_ · Jun 8, 2026

@SpringStreetNYC Hope they will do something great again. Not just tweak icons for iOS 26.

LOL, you mean like ship those beautiful translucent iMacs in 1999 or bring FreeBSD to the masses without anyone even noticing?

I don't know what the analogies for that are today but tweaking icons is not that. 🤪

1 reply · 23 views

@onejailbreak_ Yup! I wrote this earlier. Still feels right albeit spicier than I see myself:

Quoting @SpringStreetNYC · Jun 8, 2026

Dear #wwdc

Right now and somewhere, the next Kane Parsons/Jony Ive/Steve Jobs is graduating from/dropping out of college. Given today's demos, they're CLEARLY NOT anywhere near SV but I'm sure you can find them.

PLEASE do and put them on those same $840k/year salaries. Give them a year or so. Let them define the next two decades IN and ON their own terms.

Thank you.

50 views
In reply to @SpringStreetNYC · Jun 8, 2026

Dear #wwdc

Right now and somewhere, the next Kane Parsons/Jony Ive/Steve Jobs is graduating from/dropping out of college. Given today's demos, they're CLEARLY NOT anywhere near SV but I'm sure you can find them.

PLEASE do and put them on those same $840k/year salaries. Give them a year or so. Let them define the next two decades IN and ON their own terms.

Thank you.

PS: Unintentionally made my list dude-only. Sorry about that. Add the next Jane Jacobs/Kiki Smith/Klári von Neumann to that list.

1 reply · 1 like · 20 views
In reply to @_ralRo · Jun 8, 2026

@SchallerDomenic Die diesjährige #WWDC war auf jeden Fall eine der ungewöhnlichsten der letzten zehn Jahre.
😟
Was haben sich @tim_cook und sein Team dabei gedacht?
🤷‍♂️
Ich bin irgendwie sprachlos.

@_ralRo @SchallerDomenic @tim_cook Jupp. Ich bin auch sprachlos.

Ein kleiner Teil in mir will glauben, dass das alles AI-generierten Figuren waren und es deswegen so ein Uncanny-Valley Gefühl ausgelöst hat.

I don't know. Einfach weird.

1 reply · 20 views
In reply to @LPirro93 · Jun 8, 2026

Not sure if I’m getting old or if today’s Apple #WWDC was super boring

@LPirro93 No, you're not getting old. In my opinion, this was really, really uninspired.

Been an Apple customer for 26 years myself. There was nothing about today that would have resonated with me way back in 1999.

(And I wasn't even a Jobs-fan, tbh.)

1 reply · 190 views

Dear #wwdc

Right now and somewhere, the next Kane Parsons/Jony Ive/Steve Jobs is graduating from/dropping out of college. Given today's demos, they're CLEARLY NOT anywhere near SV but I'm sure you can find them.

PLEASE do and put them on those same $840k/year salaries. Give them a year or so. Let them define the next two decades IN and ON their own terms.

Thank you.

1 reply · 74 views

Aber hallo. Was war denn das?

Bin seit 26 Jahren Apple-Kunde und dachte mir nach Goatee-Daddy #2 und Stressika aus der Buchhaltung einfach nur noch: Wir leben offensichtlich nicht auf dem gleichen Planeten.

Ich wünsche mir auch ganz ehrlich Jobs nicht zurück. Sondern mit dem Kapital muss doch was geiles gehen.

Anstelle diesen völlig banalen Konzern-Nasen, gebt doch ein paar Studenten jeweils die $840K/Jahr Gehälter. Da wird schon was gutes rauskommen, bin ich mir 100% sicher.

So wie damals mit Jony Ive in den späten 90ern.

Aber das? WAHNSINN.

68 views

Okay, thank you! I'm watching this in total disbelief.

Is this real? I had a moment with goatee-dude from accounting staring at his phone exactly as un-charismatically as I do.

Or Stressica from HR painfully pitching me context-awareness in Safari. Like, W. T. F?

Is this a simulation?

Autonomous Research with AI: "We don't write the rules. We just discover them." — how an agent searches for the groundrule, and what makes the loop different

Autoresearch on a job-shop scheduling problem dressed up as a lunch rush: one grill, one shared range, sequencing as the only lever, and an AI agent that proposes candidate rules, runs them across simulated services, and keeps whatever beats the champion — trained on six scenarios, then held out against three more to check it found a principle, not a memory. Built on Nima H. Siboni’s “The Heuristic Scientist: Open-Ended Algorithm Discovery with LLMs” workshop.

Open →

66 views
In reply to @SpringStreetNYC · Jun 1, 2026

Can a phone-sized model learn to ask the right questions? Can they? Do they? Let's find out!

Full report here: t.co/BhyEkws5AZ t.co/SJUmjKNofM

Image from the post
Image from the post
Image from the post
Image from the post

PPS: And here's the full listing for each experiment, including the hypothesis, method, architecture and individual evals like this one: alexisrondeau.me/tada/research/… (Click on a table-row to expand)

Image from the post
alexisrondeau.me"Which city in Paris are you staying in?" - A post-training study on small-model specialization with an autoresearch loopAcross 77 experiments — every lever from prompting and retrieval to fine-tuning and 2025's rubric-grounded RL — an on-device 3B model landed within about one rubric point of a frontier cloud model on every quality dimension: close, but consistently a notch below. None of the post-training playbook closed the last notch, and the controlled tests show why — the gap is a broad capability limit, not a…↗ alexisrondeau.me
88 views
In reply to @SpringStreetNYC · Jun 1, 2026

Can a phone-sized model learn to ask the right questions? Can they? Do they? Let's find out!

Full report here: t.co/BhyEkws5AZ t.co/SJUmjKNofM

Image from the post
Image from the post
Image from the post
Image from the post

PS: For anyone interested, a more detailed project onboarding is here:

Image from the post
Image from the post
Image from the post
alexisrondeau.me"Which city in Paris are you staying in?" - A post-training study on small-model specialization with an autoresearch loopAcross 77 experiments — every lever from prompting and retrieval to fine-tuning and 2025's rubric-grounded RL — an on-device 3B model landed within about one rubric point of a frontier cloud model on every quality dimension: close, but consistently a notch below. None of the post-training playbook closed the last notch, and the controlled tests show why — the gap is a broad capability limit, not a…↗ alexisrondeau.me
2 replies · 1 like · 91 views

Can a phone-sized model learn to ask the right questions? Can they? Do they? Let's find out!

Full report here:

Image from the post
Image from the post
Image from the post
Image from the post
alexisrondeau.me"Which city in Paris are you staying in?" - A post-training study on small-model specialization with an autoresearch loopAcross 77 experiments — every lever from prompting and retrieval to fine-tuning and 2025's rubric-grounded RL — an on-device 3B model landed within about one rubric point of a frontier cloud model on every quality dimension: close, but consistently a notch below. None of the post-training playbook closed the last notch, and the controlled tests show why — the gap is a broad capability limit, not a…↗ alexisrondeau.me