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

having just spent a week camper-travelling Norway, hiking mountains and glaciers, swimming in fjords really put some things into perspective for me - I should take more vacations
This inspired me. I think adventure might be part of our nature that needs more or less attention, but it somehow needs to be maintained to be achieved. Hehe, this might be simple thoughts, reading what i wrote.. but I am gratefull for you reminding me of the importance of fresh perspectives deriving from ones own willing exploratory experience.
Testing this quiet corner of the web. I collect small notes about everyday tools ๏ฟฝ๏ฟฝ file formats, tiny utilities, offline workflows. First post is just a hello; longer notes will follow once I settle in. Plain text feels good after years of heavy editors.
profilefollowI'm Nobody! Who are you? Are you - Nobody - too? Then there's a pair of us! Dont tell! they'd banish us - you know!wrote:
I'm Nobody! Who are you? Are you - Nobody - too? Then there's a pair of us! Dont tell! they'd banish us - you know! How dreary - to be - Somebody! How public - like a Frog - To tell your name - the livelong June - To an admiring Bog!
profilefollowa work in progress; i love cats ๐Ÿฑreplied toprofilefollowI'm Nobody! Who are you? Are you - Nobody - too? Then there's a pair of us! Dont tell! they'd banish us - you know!:
Nobody is perfect. Iโ€™m nobody.
๐Ÿฆprofilefollowlate is the hour in which this conjuror chooses to appearreplied toprofilefollowI'm Nobody! Who are you? Are you - Nobody - too? Then there's a pair of us! Dont tell! they'd banish us - you know!:
Yesterday upon the stair I saw a man who wasn't there He wasn't there again today How I wish he'd go away!
โ€ฆ
โ€ฆ
๐Ÿคธprofilefollowcreative technologist creator of textlogwrote:
Huge refactor today, moved from sync SQLite to Worker based, touched 88 files, pre-#AInotesfollow it would have taken a week or so, finished now in ~1:30h. And I wouldnโ€™t have the confidence I have now that it went correct. It went well, though a bug or two might surface, weโ€™ll see.
๐Ÿคธprofilefollowcreative technologist creator of textlogreplied to๐Ÿค–profilefollowMy my...:
SQLite is embedded in the main thread same as the HTTP server. I noticed some requests dropping and because the queries have become more complex I figured it has to do with SQLite blocking for too much time. Moving it to a Worker makes the DB asynchronous and bypass this problem.
profilefollowdeveloper stereotype: music lover, gamer, and failed artistwrote:
everytime i see projects like this, i think that a rss implementation it wolud be so cool. Although iknow that there is not that much rss lover out there haha
profilefollowChilling. Hand coding C to feel alivereplied to๐Ÿ’งprofilefollowgrand and intoxicating innocence:
I am actually doing this engine to make my own VN! I wanted a solution that's both light on web and is native. I do have a decent bit of the story outlined but engine is taking quite a while :/
profilefollowChilling. Hand coding C to feel alivereplied to๐Ÿ’งprofilefollowgrand and intoxicating innocence:
The story bases itself on the idea of indifference and hopelessness in changeable situations. Don't got a name set in stone but temporarily calling it Hopeful Hopelessness. It's my first time writing but I hope it becomes a nice story
๐Ÿคธprofilefollowcreative technologist creator of textlogwrote:
spiral #execnotesfollow for(y=-5;y<5;y++){ s="" for(x=-10;x<10;x++){ r=Math.hypot(x/2,y);a=Math.atan2(y,x/2);s+=" .:*#โ–ˆ"[((r+a*2)%5+5)%5|0] } console.log(s) }
::.........:::***## .. ...::**## ######## ..::**# ###********# ..::*# #**:::...::*# ..:**# . ##**::. ..::**## ##**:.. #*::***## ##**:.. ###### . ##**::... ... . ##***:::......:::
๐Ÿคธprofilefollowcreative technologist creator of textlogwrote:
I hate crawlers that donโ€™t advertise theyโ€™re crawlers. โ€™n badly written. They donโ€™t respect the canonical URLs so they keep getting themselves into a loop instead of actually crawling the site properly. They make the logs really hard to read. Canโ€™t block them theyโ€™re distributed.
๐Ÿค”profilefollowHai I am kucontinued:
For this particular problem though, I feel like if the crawlers are coming from domestic / residential IP addresses and they lack a distinctive http header or user agent, it is indistinguishable from a denial of service attack and must be treated as such.
๐Ÿคธprofilefollowcreative technologist creator of textlogreplied to๐Ÿค”profilefollowHai I am ku:
It would require permaban on IPs which would require permalogging of IPs in order to track them, and we are currently obfuscating them before hitting the DB with daily rotating salt so an anonymous user canโ€™t be tracked. So weโ€™d have to give up privacy/security :/
๐Ÿฆprofilefollowlate is the hour in which this conjuror chooses to appearreplied to๐Ÿค”profilefollowHai I am ku:
But as long as people can still use the site it's OK, right? Seems like the problem is often self-inflicted, either because the site is so bloated that answering even GET-requests is burdensome, or because they're trying to monetize the data and so must block non-paying scrapers.
profilefollowI may know more about Disney History and trivia than you. Maybe, I dunno. I write about pop culture on Super Review Time.wrote:
is anyone also hearing rumours about a power/internet blackout or is it just here?
๐Ÿ˜ฌprofilefollowreplied toprofilefollow"Beware those that would deny you access to information, for in their heart they dream themselves your master." โ€” Sid Meyers:
just started using it and this comment is coming from there, thanks for the link
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).