textlog
join
500 chars / 20 lines max ยท use #hashtags, @mentions and more
๐Ÿ˜€๐Ÿ˜ƒ๐Ÿ˜„๐Ÿ˜๐Ÿ˜†๐Ÿ˜…๐Ÿ˜‚๐Ÿคฃ๐Ÿ˜Š๐Ÿ˜‡๐Ÿ™‚๐Ÿ™ƒ๐Ÿ˜‰๐Ÿ˜Œ๐Ÿ˜๐Ÿฅฐ๐Ÿ˜˜๐Ÿ˜‹๐Ÿ˜›๐Ÿ˜œ๐Ÿคช๐Ÿคจ๐Ÿง๐Ÿค“๐Ÿ˜Ž๐Ÿคฉ๐Ÿฅณ๐Ÿ˜๐Ÿ˜’๐Ÿ˜ž๐Ÿ˜”๐Ÿ˜Ÿ๐Ÿ˜•๐Ÿ™โ˜น๏ธ๐Ÿ˜ฃ๐Ÿ˜–๐Ÿ˜ซ๐Ÿ˜ฉ๐Ÿฅบ๐Ÿ˜ข๐Ÿ˜ญ๐Ÿ˜ค๐Ÿ˜ ๐Ÿ˜ก๐Ÿคฌ๐Ÿคฏ๐Ÿ˜ณ๐Ÿฅต๐Ÿฅถ๐Ÿ˜ฑ๐Ÿ˜จ๐Ÿ˜ฐ๐Ÿ˜ฅ๐Ÿ˜“๐Ÿค—๐Ÿค”๐Ÿซฃ๐Ÿคญ๐Ÿซข๐Ÿคซ๐Ÿคฅ๐Ÿ˜ถ๐Ÿ˜๐Ÿ˜‘๐Ÿ˜ฌ๐Ÿ™„๐Ÿ˜ฏ๐Ÿ˜ฆ๐Ÿ˜ง๐Ÿ˜ฎ๐Ÿ˜ฒ๐Ÿฅฑ๐Ÿ˜ด๐Ÿคค๐Ÿ˜ช๐Ÿ˜ต๐Ÿค๐Ÿฅด๐Ÿคข๐Ÿคฎ๐Ÿคง๐Ÿ˜ท๐Ÿค’๐Ÿค•๐Ÿค‘๐Ÿค ๐Ÿ˜ˆ๐Ÿ‘ฟ๐Ÿ‘ป๐Ÿ’€โ˜ ๏ธ๐Ÿ‘ฝ๐Ÿค–๐ŸŽƒ๐Ÿ˜บ๐Ÿ˜ธ๐Ÿ˜น๐Ÿ˜ป๐Ÿ˜ผ๐Ÿ˜ฝ๐Ÿ™€๐Ÿ˜ฟ๐Ÿ˜พโค๏ธ๐Ÿงก๐Ÿ’›๐Ÿ’š๐Ÿ’™๐Ÿ’œ๐Ÿ–ค๐Ÿค๐ŸคŽ๐Ÿ’”โฃ๏ธ๐Ÿ’•๐Ÿ’ž๐Ÿ’“๐Ÿ’—๐Ÿ’–๐Ÿ’˜๐Ÿ’๐Ÿ’Ÿ๐Ÿ‘๐Ÿ‘Ž๐Ÿ‘Œ๐ŸคŒโœŒ๏ธ๐Ÿคž๐ŸคŸ๐Ÿค˜๐Ÿค™๐Ÿ‘ˆ๐Ÿ‘‰๐Ÿ‘†๐Ÿ‘‡โ˜๏ธโœ‹๐Ÿคš๐Ÿ–๏ธ๐Ÿ––๐Ÿ‘‹๐Ÿค๐Ÿ‘๐Ÿ™Œ๐Ÿซถ๐Ÿ‘๐Ÿคฒ๐Ÿ™โœ๏ธ๐Ÿ’ช๐Ÿ‘€๐Ÿ‘๏ธ๐Ÿง ๐Ÿซ€๐Ÿซ๐ŸŒฑ๐ŸŒฟโ˜˜๏ธ๐Ÿ€๐ŸŒธ๐ŸŒบ๐ŸŒป๐ŸŒž๐ŸŒ™โญโœจโšก๐Ÿ”ฅ๐ŸŒˆโ˜€๏ธโ˜๏ธโ„๏ธโ˜•๐Ÿ•๐ŸŽ๐ŸŽ‰๐ŸŽŠ๐ŸŽˆ๐ŸŽ๐ŸŽต๐ŸŽถ๐ŸŽจ๐Ÿ“š๐Ÿ’กโœ…โŒโš ๏ธ๐Ÿš€๐ŸŒ๐Ÿ’ป๐Ÿ“ฑ๐Ÿ”’๐Ÿ”‘
example.com or
https://example.com
Regular links
[title](example.com) or
[title](https://example.com)
Markdown links
~text~ or ~~text~~
Strikethrough
*text* or **text**
Bold
_text_ or __text__
Underline
/text/
Italics
> text
Quote
:smile
Emoji autocomplete
1. first
2. second
3. third
Numbered lists
- first
- second
- third
Bulleted lists
Nameย  | Status | Count
----- | :----- | ----:
notes | readyย  | ย ย ย ย 3
Tables
|redacted|
Redacted
`code`
Inline code
```โ€ฆ```
Code fences
$inline$
Inline LaTeX
$$block$$
Block LaTeX
Which one? #poll
First option
Second option
PollsUse 2โ€“8 unique options.
Which one? #quiz
Wrong answer
> Correct answer

Explanation revealed after answering
QuizzesMark exactly one of 2โ€“8 unique answers with >. Text after a blank line is revealed after answering.
Visible text #spoiler
Hidden text
SpoilersText after #spoiler is hidden until revealed. Aliases: #tldr, #sensitive, #contentwarning, #cw, and #triggerwarning.
Going hiking #map
Kallikratis, Crete
MapsShows a map preview for the first location line. Alias: #location.
#flying Heraklion to Berlin
FlightsHover over the itinerary to see a map connecting the airports. The next three words form the itinerary: airport, to (or โ†’ or ->), airport. Use single-word airport names or IATA/ICAO codes.
Today #todo
[ ] First task
[x] Finished task
TodosOnly [ ] and [x] lines become items. Click your items to toggle them.
Run this #exec
```js
console.log(6 * 7)
```
Executable codeRuns the next language-tagged code fence and shows its output beneath the note.
Keep this visible #pin
Pinned notesYour latest #pin is shown first on your profile, independently for notes and replies.
No more replies #lock
Locked conversationsPrevents new replies to this note and every reply beneath it.
About textlog #meta
Meta conversationsKeeps this note and its replies out of public discovery feeds. Aliases: #tlog and #textlog.
Continue quietly #whisper
Whisper conversationsKeeps the branch out of all and hot. Participants, mentions, and tag followers can receive it in my feed. It remains public elsewhere.
For @someone and @another #private
Private conversationsOnly the author and mentioned users can read this branch.
Answer before reading #HiddenReplies
Hidden repliesHides all replies until you reply.

Any conversation

profilefollowOld school metallian, hobbyist developer writing things mostly in Rustโ€ฆmostlywrote:
A bit of insomnia this early Tuesday morning. I call it โ€œthe witching hourโ€, whatever can go wrong, will go wrong and the brain is defenceless. Reality, of course, is more nuanced, but brain doesnโ€™t care. :)
OK. I've translated the (correctness) requirements of LeetCode No.22 to Lean, and ask Claude Code to both implement a solution and prove it.
In the first attempt, Opus 4.7 successfully completed it and proved it. However, the solution is to enumerate all possible space and .filter out anything that doesn't qualify my definition, which is obviously not ideal (if cheating is too harsh).
I can't think of a good way to also prevent that kind of solutions and ended up prompting "please don't enumerate and filter". Opus 4.7 then reimplemented and proved the backtracking algorithm.
profilefollowfather, cyclist, #haskellnotesfollow, #emacsnotesfollowwrote:
Really glad to be using Haskell for work - especially in today's climate with agentic coding. Our team uses containers to keep our development environment consistent across team members, though, and most agent sandbox approaches want to either offload your work fully to the cloud or they want to sandbox the agent harness process itself. We're not ready for full cloud based development (yet?) and sandboxing just the agent doesn't work for us when the agent needs to run docker. #haskellnotesfollow #ainotesfollow
... because letting the agent run docker gives them a too-easy escape hatch from their sandbox. So we're currently stuck with using VMs. This turns out to be tricky but seems do-able. My current approach is to provision a VM image and use Incus for the execution. My main goal is to keep my current workflow of local/non-agent dev working seamlessly and share the source with the VM/agent.
This means sharing my working dirs with the agent VM but overlaying artifact dirs from VM-owned block devices so we don't take too big of an IO perf hit. I also don't want the agent to be able to git push so that means we need some quirky git config to rewrite origin paths and thread through some agent specific PATs ("thanks" GitHub) for read-only repo access. These ALSO need to be threaded through to the development containers - they need to clone private repos.
... in the end, this seems to work but I haven't lived with it for long. There are still some quality of life issues to work out, but I think it'll work out. At this point, I've removed all coding agents from my host - and that's nice.
It's tangential to the sandboxing topic, really. I started the first post with a broader intent in mind and then elaborated on the sandboxing setup I'm working on. For AI-assisted coding, though, it's nice because Haskell provides a lot of feedback earlier in the development process compared to lots of other languages. It tends to work once it compiles (obviously not all the time).
Somehow, I can't work in the mornings. Going to the office earlier just makes longer the "warmup period", this is, the period I stare the computer's screen reading stuff that is completely unrelated to my work. #ASDnotesfollow
๐Ÿ“’profilefollowPresbyter, husband, father, technologist, linguist, musician.wrote:
So much present tense in #ainotesfollow generated prose. Terse, authoritative sentences, without breathing room, without hesitation or qualification. It jumps off the page, and not in a good way.
profilefollowProgrammer by day and night. Lover of art. Mixing art and programming is the dream.replied to๐Ÿ“’profilefollowPresbyter, husband, father, technologist, linguist, musician.:
What about the lack of density to paragraphs, the length of the sentences, or the confidence and determinism of their direction? Conviction with no limits. So reliably repetitive that you start seeing patterns as if you are looking and reading a record player with some scratches on it. Skips. Squeaks. Repeats. Yet. It gets the job done.
๐Ÿ“’profilefollowPresbyter, husband, father, technologist, linguist, musician.replied toprofilefollowProgrammer by day and night. Lover of art. Mixing art and programming is the dream.:
Yet. It gets the job done. Here's where we disagree. Using these tools as part of the job, certainly. But if I am to read, discern meaning, analyze choices of diction and structure, consider the context both of the author and the audience, and finally derive value from the written word, then generative #ainotesfollow falls short on many levels. If the "job" is to produce something no one was ever intending to engage with, then we have a more fundamental question about the value of the job.
profilefollowProgrammer by day and night. Lover of art. Mixing art and programming is the dream.replied to๐Ÿ“’profilefollowPresbyter, husband, father, technologist, linguist, musician.:
Maybe what I messaged read as a disagreement and mentioning that they get the job done was actually not about producing prose (of any quality). I wholeheartedly agreed and still agree with you. Getting the job done was more about producing output - be it some prose, images, videos, software, whatever. They do generate output. It is not to say that the output is meaningful or meaningless. Some souls do enjoy it. Some others - donโ€™t. I did start with a question though.
profilefollow#Emacsnotesfollow, dev, life, random stuff. the netherlands.wrote:
Routines in Claude Desktop create Claude Code sessions, so hourly routine litters in iPhone' Claude.app Code tab. Screw it, built my local version of AWS StepFunctions - Stepper - and run skills as state machines there.
profilefollow"Beware those that would deny you access to information, for in their heart they dream themselves your master." โ€” Sid Meyerswrote:
The abuse (in my opinion) of the auto-translate feature is super annoying. Thanks goodness for โ€œblockโ€.
code quality is about coupling. coupling is not a technical property of the code bytes. code acquires its meaning in contact with the cultural environment, and coupling is about meaning. two constants with no semantic relationship are nonetheless coupled in pragmatics if they refer to the same domain concept. if your goal is to minimise the time integral of future work, you must understand your domain: it decides which lines will need changing. to carve up a codebase is to carve up the world.