Thoughts
Anyways, first Julia program written*. Moving on to other things.
*translated from Matlab. Mostly a copy-paste but with an hour spent reading Julia docs to understand what was going on.
I thought Python was a big language, Julia is fricking huge! Like they just want every feature!
In applying multiple dispatch, the question comes up: to what extent do you try to standardize your function calls? Do you try to ensure that the more specific type comes first? Do you try to only define methods (function implementations) that actually get called? And I after reading more Julia documentation, they don't seem concerned with redundancy or inconsistency. I would guess they would say, "define as many methods as you feel like."
I was totally joking when I said this was a LISP dialect, I didn't know that Julia has real macros. No reference to s-expressions yet…
"More precisely, the set of all finite-length strings S together with the string concatenation operator * forms a free monoid (S, *)"
-The Julia documentation.
This language really was written by mathematicians
I started a list the other called "The Imperfections". It's a list of everything that I want to fix. It's really fricking long. I didn't
realize I was storing ~50 issues/projects in my head, more or less in RAM. Like the data structure that was being stored in my head was a linked-list, where 1 item reminded me of similar problems. I think it's been effecting my productivity (for my entire life). Of course, writing it down helps a little bit. But it's almost worse because now I just want to sit down and start tackling the list. (I wrote a Gemini the 28th because "a perfect Gemini client" was one of The Imperfections. Still working on that one.)
Coming up on 1 year here. Scary.
There are features that I’ve been procrastinating from adding for a year.
Oh yeah code goes open source on September 5, for better or worse.
*Why?* Is Thu? The *only* language to come up with single-instantiated types?
Oh, you know, Java has that syntax sugar for defining callback functions that technically creates a single-instantiated class with an over-ridden method that is called as the callback. That's exactly what I want.
(Hm, maybe OOP was a bad idea altogether and we should switch on the type of all arguments *cough* multiple dispatch *cough*)
Edit (2023): Other languages call this a singleton-type.
6 hours into a project, getting burned by JS's type system. Who would've guessed
All I want is multiple dispatch.
Can we talk for a second about how `npm init -y` just licenses your code as open source? Like, ya this code's free for anyone to use, thanks
"The percentage of normal users that know how to (and are willing to) setup self-hosted instances of something is definitely far below 1%"
Spiders are so fricking cool. Like they just full on sew whole nets and we're like, 'heh.' Imagine if another animal started making nets!
“The alphabet, they say, was invented only once. Bread is invented every time, anew. It’s life itself. And life is not for sale.”
One of my favorite parts of Geminispace is that everyone is linking to code on the web, but like none of it is GitHub. Sourcehut or Gittea
Or NotABug, or TildeGit or etc.
Why don’t more people sit in elevators? When I am too tired to take the stairs I take the opportunity to rest on the floor of the elevator.
I have a set of features that I want in a Gemini server. I am not aware of any servers that support all of those features, although all
features are supported by at least one Gemini server. So of course, I'm tempted to write my own Gemini server. But that Gemini server would then be the most feature complete Gemini server, and I am not ready for that.
=> https://thoughts.learnerpages.com/?show=497d0e7b-c3b9-4226-a768-bab2d30d3a77
I found my receipt, I bought 18 AA batteries.
Is this worse than callback hell?
```js
export async function getStaticProps() {
return {
props: {
posts: await Promise.all((await readDir(blogRelative(""))).map(async fileName => ({
title: await getTitle(await loadFile(blogRelative(fileName))),
slug: removeExt(fileName)
}))),
}
};
}
```
=> https://thoughts.learnerpages.com/javascript/jquery/jquery.js
now gives Not Found instead of Forbidden
Force quitting iTerm2 because it's 2021 and we still don't know how to make applications that don't hang.
I have been in #linux on libera.chat IRC for about 30 seconds and they're already discussing beating Windows users. (Like, with sticks.)
Memory management in C be like
```C
/* The request_rec pointer is passed in here only to ensure that the
* filter chain is modified correctly when doing a TLS upgrade. It
* must *not* be used otherwise. */
```
My roommate and I both writing (possibly cursed) Gemtext parsers at the same time. Get on our level.
Reading the Infra WhatWG spec and lost a few brain cells. I found the MDN article on the topic and now I understand it and I'm fine.
The JavaScript ecosystem (i.e. npm) is so screwed up that it's not even worth commenting on anymore. If it bothers you, don't use JS.
Just learned about the Oroville Dam spillway collapse
I recommend looking up it up on youtube, it’s pretty cool.
Before, during, and after pictures of the spillway, that I screenshot from 3 different Youtube videos and hastily combined.
Hyper (https://hypercore-protocol.org/) is a p2p protocol that's almost web-like. It's really cool, a lot easier to use/setup than most.
(Golem, BitTorrent, Ceramic, etc are all confusing as hell.) Hyper is super simple, there's a browser called Beaker that lets you open `hyper://` webpages and seed your own content just by giving it a directory.
*There's no fricking content*. I'm in the Discord server with these people and they're posting all these Github links to mirrors and browser and tools and I'm like okay, is there any content currently being served on this protocol? If there is, I cannot find it. My own Hyperdrive is: hyper://dd33a1d922616afa2c94b220fa20c097d15b7be1e2f0db5a71f0f1639999cd3e. No one else has linked to theirs.
(Gemini doesn't have a lot of content. There are maybe a few hundred operational Gemini pages. But there are half a dozen pages that list active Gemini capsules or recommend pages. http://geminiquickst.art doesn't even recommend gemlogs, it recommends sites that curate lists of gemlogs.)
I FOUND ONE! I found a single blog hosted on hyper, here you go: hyper://94f0cab7f60fcc2a711df11c85db5e0594d11e8a3efd04a06f46a3c34d03c418
Wait I found a second. Only this page is being seeded right now: hyper://6900790c2dba488ca132a0ca6d7259180e993b285ede6b29b464b62453cd5c39/blog/the-free-speech-dog-whistle.md
This Thought is now the premier curator of Hyper content.
A small part of it is of course that since it's p2p what people are seeding is limited. But a lot of it is that I can't find addresses. There's got to be a list somewhere, right? Or a way of discovering things?
Gemini is a multi-level-marketing scheme.
When I say MLM here, I’m referring more broadly to a growth strategy sometimes called “incentivized sharing.” It covers MLM schemes, but also things as basic as ‘get $5 dollar credit to refer a friend.’ Twitch has used it successfully—streamers are incentivized to get viewers onto Twitch. This term/model doesn’t include normal word of mouth recommendations, like Rust evangelism, for example.
Gemini evangelists are rewarded with an expanded Geminispace, and more content that is readable from the comfort of browsers designed to render text documents.
"The young lady in the back with the 'I heart Jamie Grace' shirt on"
-Lights Shine Bright, TobyMac
Impulse-sending text messages.*
*Interestingly, my definition of "impulse" is just doing something without planning out every step in advance. Some people live their whole lives like that. Both of the text messages I just sent I had thought about sending earlier today.
‘Stocks have decent ROI, but don’t pay significant dividends. Real estate pays, you can write off expenses/depreciation, and you can do a
1031 exchange when you want to cash out.’
It would be easy for me to forget about all the time I spent playing gaga ball in middle school.
I've run multiple `find / -name` commands today, so that's a good indication of how things are going.
Shell scripting is so fricking. The language is so bad and unwieldy but the promise of unmatched automation is irresistible.
Writing a React component that renders its Gemtext content. I can't decide if that's beautiful or cursed.
I stand by the idea that splitting code by type instead of function is a trap that is easy to fall into, but not ultimately helpful.
I'm going to move forward with the current version of Next.js and consider the 67kb wart a cost of the framework.
If I find I'm not using any features of the framework and -all- my pages are static then I'll switch to Gatsby or roll my own solution with Preact's render to string or something.
JS devs splitting their 200kb bundled JS file into four 50kb files in order to make 'large js file' warnings go away.
So I'm working on a website with Next.js, and the beauty of Next.js is that it server-side renders static content. But even with a wholly
static page it includes React and about 63.8kb of JS. And the Next.js people are like, that's not a lot, but it's insane when the page content is a 1kb static html page. Like, I'm going to "switch to Preact" which is insane, because I'm not rendering *anything* on the client side.
RIP e.gg
Honestly, who the frick thought it was a good idea to create an alt social media with "Brought to you by FACEBOOK" in big letters on the front page. Could have been cool other than that
Oh my word I fricking love this keyboard!
I just got my computer back from the Apple Store. It's one of the last ones made with the butterfly switches. The keyboard gets a lot of hate for its close-to-0 travel and its infamous unreliability. But I love it. It's so fricking nice to type on. (I also haven't typed on any full-sized keyboard in close to 2 weeks. So i'd also probably be happy to type on a Microsoft freebie.) It feels even better than I remember, I wonder if it's actually nicer because it's brand new.
Apple's lack of modularization means that since I was having issues with the display on the Touch Bar, they replace the whole top part of bottom half of the computer, giving me a brand-new TouchBar, keyboard, trackpad, and battery.
Battery Cycle Count: 1
This is why I always pay for AppleCare+. Like-new computer for free for 3 years after purchase.
I’m glad that we’re finally figuring out that drinking fountains are not a primary transmitter of COVID and can be turned on.
Matthias’s programming language of the day is APL and its dialects like K, J, and Q.
It aims for very concise syntax, and while it might at first glance be mistaken for a code-golf-language, that is not why it was invented. The creator just wanted to remove all fluff, in order to create a language that more accurately reflected thought. It’s an array-oriented language, which, uh. Let’s move on. It makes use of special symbols to denote operations, so you can use as few characters as possible. It also means you never have to worry about your variable names conflicting with the standard library. It also means you have to configure a special keyboard layout and install a font before you can begin. It has been criticized as being unfriendly to beginners. However, I have been assured that this is only because it is different, and that if we had all learned APL as a first programming language, we would find it perfectly intuitive. Here’s an example program which implements the Chinese Remainder Theorem.
```apl
crt←{m|⍵+.×⍺(⊣×⊢|∘⊃{0=⍵:1 0 ⋄ (⍵∇⍵|⍺)+.×0 1,⍪1,-⌊⍺÷⍵})¨⍨⍺÷⍨m←×/⍺} ⍝ From APL Cart
```
More on APL, whether you want to laugh at it or learn it:
=> https://xpqz.github.io/learnapl/intro.html
It doesn’t matter at what level/scale you’re working at. The system is imperfect at every level and it’s impossible to make something
perfect at any level. All you can do is make the best thing you can at the level you choose (including trying not to make it more difficult for people at other levels).
(If you don’t see it, this is profound.)
It’s wild that we’re still feeling the effects of Turing. He invented and then solved computer science.
Huh. It’s been a couple of days. Possibly the longest I’ve gone without posting. I’m still alive. I’m traveling.
Just learned `ZZ` is the best way to save and close Vim. I was using `:x` before. `:wq` is for n00bs
My router uses clock.via.net as a time server. Look at this website. Look at it.
=> https://via.net
We give dogs a lot of credit for their sense of smell, but we would probably be able to smell more if we put our nose close to the ground.
People on Hacker News are like, ‘why would you buy a Playdate for $180 dollars when you could buy a cheap android phone or an old Gameboy?’
(Because those things aren’t a Playdate? IDK)
Another common take is, ‘people are only buying this because it’s made by a popular brand.’ Like, how much brand loyalty do you think Panic has? They make Mac-only developer tools, last I checked. I guess Untitled Goose Game was big but like, Panic didn’t really get publicity from that.
Of course, I’m not even going to consider getting a Playdate myself until Panic can actually manufacture them, which is apparently a lot to ask.
I think stuff happened in Blaseball but I deleted Twitteriffic, along with like 4 years of other apps.
Nothing makes me happy and everything makes me unhappy. Existence is suffering.
Every piece of criticism I’ve ever received is bouncing around in my brain, 10x louder than the person who said it. I hate myself.
How can I possibly ever be known when so much of who I am revolves around my passion for unknown things.
Just deleted 2 thoughts (with incorrect information, nothing important). I used Python's `pickle` to save them to a file first.
Yeah so Safari doesn't properly* calculate the width of the content of inline-block `pre`s if that content includes other inline elements.
*I haven't read the spec to know what is proper, but Safari doesn't do what I want, and Chrome and Firefox do.
So my solution is to not inline-block code blocks on here and OJSE. Which might look bad on desktop. But I don't know what to do aside from asking you to use Gemini.
Fundamental browser rendering compatibility issues discovered while developing OurJSEditor: 2.
If you never intend on reading all of *Gödel, Escher, Bach*, I highly recommend finding and reading the dialogue “Contracrostipunctus”.
I want a phonograph “capable of producing any and all sounds.” I want perfect software.
“If any record player—say Record Player X—is sufficiently high-fidelity, then when it attempts to play the song” designed to produce vibrations which destroy it, “it will create just those vibrations which cause it to break…So it fails to be Perfect. And yet, the only way to get around that trickery, namely for Record Player X to be of lower fidelity, even more directly ensures that it is not Perfect.”
- G.E.B. 77
It is unethical to hurt other people. It is impossible to interact with other people without sometimes hurting them.
Might learn ASL so that I can cut off my ears. I can't take the noises. The sounds overwhelm me. I wince as the sound of each keyboard
stroke assaults my ears.
It is unethical to create buggy software. It is impossible to create perfect software. I just suffer.
I have social anxiety. That makes being around or talking to people incredibly uncomfortable and stressful for me. But. That doesn’t stop me
from becoming lonely if I spend too long without talking to anyone. I can’t win. I just suffer.
Not things that are possible to use correctly, but things that are impossible to use incorrectly.
Safety.
Nothing does worldbuilding like books. Even the dedicated worldbuilding people don’t communicate what it feels like to be in their world.
“Do you walk in the shadow of men who sold their lives to a dream?”
-Glitter & Gold, Barnes Courtney
My sitting in bed with my laptop, Vim open: You need to get to know your code, get intimate with it.
Somehow I got it in my head that there was this cool new JS framework for dynamically server side rendering React, when like, it was Next.js
I spent like an hour searching for vague terms like "server side rendering javascript framework" before I searched for a specific comment I remember seeing on the Hacker News post I had read about it. I found the comment quickly on a post about Next.js. Funky.
Pretending to be insane because I don't how to interact with people. (This is about a Khan Academy comment I just made.)
"Why is no one cooperating with me?"
"We are cooperating with you. you're just not aware that your goal is learning Haskell"
Not installing `ag` earlier was a mistake. I had a tool that accomplished something similar by running `grep -R` with a long `--exclude-dir`
```sh
g () {
grep -nIr --exclude="*.min.*" --exclude-dir={node_modules,.git,dist,.cache-loader,OurEnv,bower_components,.idea,.wine,.virtualenvs,.local,.gnupg,venv,site-packages} "$@" .
}
```
But The Silver Searcher's approach of just following `.gitignore` works better most of the time. And has a nicer output format.
The problem with the school system is that it is blind to enthusiasm.
In the real world, attitude matters. But we don’t test for it in school.
Maybe this isn’t a problem, but it certainly seems weird now that I’m thinking about it.
All install methods are bad. “People who are really serious about software should make their own hardware.”
I love the idea of sinks. Input and output for water, for a variety of purposes. All in one place.
I am both lonely and afraid of not being alone.
Why would I be afraid of not being alone? Yet I am.
I hate the awkwardness of conversation. I hate the jarring feeling of isolation that comes when I share what I'm thinking and no one understands. I fear being good at conversation because I fear being popular. I fear people looking at me, expecting something from me, and me not having anything to give. I fear being asked to defend myself. I fear making mistakes, but moreover, I fear being seen making mistakes. I hate having to come up with things to say while someone looks and waits for me because I have nowhere to run if I say the wrong thing.
It's killing me. I haven't seen a friend in person for 2 weeks. There is an expanding balloon in my chest.
Considering doing something drastic, like moving this website entirely to Gemini or getting my hair cut.
I created a plant on Astrobotany
=> gemini://astrobotany.mozz.us/public/b0b6c327852d4f4690fea43b59a1eee6
"It's the little things that I can't handle, and we're still in July"
-Life Must Go On, Quinn XCII
Last night/this morning was fricking surreal. Like I was a character in a movie. So much happened while I tried to sleep.
Remind me to come back to this when I have sanity to spare
=> https://docs.google.com/forms/d/e/1FAIpQLSf7Fs5gzrcJDUx_75JkZu6xwyGzJ3N9BfyOm6AzOJtqw4Ae3w/viewform
Cancel culture is not letting your toddler watch Numberblocks because the BBC doesn’t let their journalists attend controversial marches.
I understand being frustrated that the BBC won’t let their news reporters publicly support political issues. https://www.theguardian.com/media/2020/oct/29/bbc-no-bias-rules-prevent-staff-joining-lgbt-pride-protests
But I don’t understand that conclusion that you should boycott a children’s show that is produced by a connected organization. Like, I’m not going to boycott Phineas and Ferb because someone on ABC said something offensive that I politically disagree with.
But I can’t argue with it. What am I supposed to say? ‘BCC is so big you should ignore them being homophobic sometimes’
I mean, at some point, just boycott the BBC because they are the product of an imperialist empire. Just boycott everything that is produced in England and support business in developing countries.
This is what’s weird about “cancel cultural.” It tries to define everything that’s bad but sets the bar so high that’s easier to define what’s good.
Bucket list item: walk into a Barnes and Noble, pick up a book, read it all the way through without paying for it.
Inspired by https://xkcd.com/294/ obviously, but it wouldn't be that hard to do intentionally. It only takes me like 2 hours to read 100 pages. Take a Saturday, save yourself the cost of the book.
I just finished reading a book. The author biography on the back flap describes her as a founder of Archive of Our Own.
I was not ready for that. I nearly choked.
page 98 of *The Mysterious Benedict Society*
Transcript
The missing aren't missing, they're only departed
All minds keep all thoughts, so like gold, closely guarded
Grow the lawn and mow the lawn
Always leave the TV on
Brush your teeth and kill the germs
Poison apples, poison worms
Nothing is more pretentious than making fun of Mensa members for being pretentious.
(I am aware of the irony of this Thought.)
HTTP/HTML/JS’s unnecessary complexity serves primarily to lock control of implementations to a couple of rich corporations.
HTTP is classist. Gemini is the future. This is not satire.
I can’t get over Gemini. I’m sorry. It’s been close to 3 weeks now, and it’s all I can think about.
This is the white knight. This is the Free Market Drill. This is why I miss all my friends and I still don’t call.
'In this video-essay, I will explain how the lack of standardization of hangman allows players to cheat by dynamically changing the rules.'
Someone in #gemini on Libera IRC is informing me that the creator of Gemini's Gemini server isn't in compliance with Gemini.
I'm like, 'I'm having issues'
And they're like, oh yeah, 'that gemini server is noncompliant'
Like, okay. I'm suddenly in way over my head.
I can't do this. I want to switch to a remote branch. I don't know how. I'm dumb and alkwndajkdba nw;dkljadna wb
Way back in November, I came up with 4 things that make the terminal appealing. Gemini satisfies all 4 of them.
If you're writing code that GitHub CoPilot can help you with, you're doing it wrong.
*Writing a Django-Gemini compatibility layer*
I've been browsing the web for years and I've never once seen a website actually use a parameter.
Okay okay I searched my browser history. In 2020 I visited `https://projecteuler.net/archives;page=14` I'm horrified.
Feb. 2020, a bunch of unaffiliated websites using `PAGE;jsessionid=REACTED?PARAMS`. I wonder where that comes from.
Few more random ones including a Google ads redirect. But mostly auth/sign-in redirects it looks like.
Example number 83 of Gemini not actually being simple is that it supports the entire URI RFC, so you have to implement fricking url
paramater parsing.
Like.
I hate the web.
I just learned that there's such a thing as a "URL-parameter" that goes on the end of a URL, proceeded by a semi-colon.
```
scheme://netloc/path;parameters?query#fragment
```
From the Python urllib reference.
What did I do to deserve this.
I'm going to keep all of WhipserMaPhone closed source except for the Gemini inter-op code, which is CC0
/s
Let's fricking go, ladies, it's an excuse to subclass `HttpRequest`!!!!
```py
class GeminiRequest(HttpRequest):
```
Oooof
And this is on an internal page, so you have to have an account in order to see this, it's not people who don't have accounts.
Ya'll don't know how much work I put into this website. No major changes in months, but I keep tweaking things.
Man, I wish AirPower existed. I have like 50 cables on my floor
My phone, watch, second phone, computer, display, and speakers all need power.
Honestly, I don't use the external display or speakers, I should probably get rid of them.
"Why do you need Gemini? Just write simple HTML??"
Because HTML collapses adjacent white-spaces.
I had a paragraph here about how the way browsers did this was dumb, but I tested it and was wrong. However, I think the fact that it is impossible for me to understand these rules is just as effective an argument as criticizing the rules themselves.
(I think browsers collapse U+0020 and then convert U+00A0 into U+0020, without collapsing. But the question then is, is it possible to get U+00A0 into a browser? I don't know, let me know if you do.)
What do I need to post-translate my text?
### Filters
Need to convert line breaks to `<br>` (without CSS, `white-space: pre-wrap` doesn't work and `pre`s look bad)
Linkify (Otherwise, links need to be copy-pasted, bad UX)
Typographer quotes! (I notice straight quotes and they annoy me) (double and single quotes, exclude code blocks)
### Block
Fenced code blocks (Gemini strictness)
### Inline
Italics (for MLA titles, or emphasis) (including the ability to escape asterisks)
Inline code (useful for distinguishing between references to programming-specific uses of English words)
# Notable omissions:
Bold (Doesn't have any semantic meaning, only stylistic.)
Underline (Ditto)
Block quotes (even Gemini has these!) (Styling these well is very hard.)
Unordered list (again, even Gemini) (It's very easy to parse these wrong. See: https://thoughts.learnerpages.com?show=bc51ad8a-07f5-49bb-9a35-8d636dafc6fa)
Ordered list (CommonMark ordered lists are lame because I can't easily start them at dynamic numbers.)
Headers (On this website, posts are supposed to represent a single thought or a train of thought. If this was a blog, I would include them.)
Unicode ellipses, em dash (I have shortcuts to type these, so it's not really necessary. You could I guess.)
Math blocks (I probably should/would include if I talked about math on here.)
I might have forgotten something, but most things that aren't in "Notable omissions" are just too complicated. Tables? Masked inline links? (Nested lists are awful. They're hellish to parse in the way the author intended them to be.)
The problem with unordered lists
There are a couple issues with unordered lists in markdown, Gemini, and Apple notes, surrounding how you indicate them.
CommonMark dictates that a list block can be started with no padding and a single item. I've written this intending to source a quotation. I don't want a bullet here. My solution would be to require at least 2 items for a list, but this obviously adds backtracking complexity.
```md
"Hello, world"
- Matthias
```
This brings me to the second issue: CommonMark allows for unordered list items to begin with either an asterisk or a hyphen-minus. This is annoying because both get translated into a bullet.
This third one is the big one. If I'm formatting a document in ASCII, i.e. without any markdown, I would like to indicate a list by starting items with " - ", that is, space, hyphen-minus, space. This objectively looks the best since the hyphen-minus has padding on the left, and is vertically centered (where a bullet would floats above the mid-line). This doesn't work in Apple Notes, which disallows a leading space. This doesn't work in Gemini, which requires `* `. And, as mentioned, in CommonMark this is converted into a bullet.
```md
This is a test list:
- Cookie
- Bread
- Apple
```
```md
This is a test list:
* Cookie
* Bread
* Apple
```
Looking at this, it's clear that the easy solution here is just for me to stop being different and start my lists with `* `, which works perfectly everywhere except for raw-text. But I have to look at it before post-processing is applied. Sad.
If Luke deleted Gribfile 2, what am I supposed to read at 2am?
I actually didn't get a chance to see it! I'm crying inside.
The thing about GitHub copilot that no one is talking about, is that it's developed by "GitHub," ostensibly, but is available for VS Code
and not Atom.
I feared the GitHub acquisition would spell the death of Atom, as Microsoft pulled the Atom team to work on VS Code and I'm taking this as confirmation that that has happened.
@aspiringrobotfm deleting her Tweets is a modern-day tragedy.
Some of my best Tweets are in reply to deleted Quinn Rose Tweets.
If we're living in a simulation, how do you explain "Jackson Hole Wyoming USA Town Square Live Cam"?
It seems like literally nobody is trying to solve the speed+complexity problems that the web has.
There are dozens of people that recognize that the web has complexity problems, but their minimalist (minimalist is not simple) solutions, don't address the speed problem.
And there are dozens of people that recognize the speed issues, but their solutions are so complicated as too be unintelligible to me.
It is literally impossible for me to keep track of all of these JavaScript frameworks and build tools. It is impossible for me to keep them
all in my brain.
Someone will be like, 'Vite, a fast JS builder' and I'm like, okay, so something that's competing with esbuild. And then, no, Vite and esbuild work together. Thanks a lot.
I am convinced that the only reason that people do not express their hate for me is because they do not see me.
*The Original Motion Picture Soundtrack* is out!
I just realized, it came out the 25th. I’ve been waiting for it.
Can you hear me? Can you hear me? Can you hear me? Can you hear me? Can you hear m e? Can you hear me? Can you hear me? Can you hear me? Can
Your hear me ? Can you hear me? Can you here me? Can you hear me? Can your grade me ? Can you hear me? Can you hear mev? Can you hear me? Can you hear me? Can you hear me?
I hate that driving requires my feet right now.
Just because I’ve been walking all day, normally I am in favor of more foot-based interfaces.
This site uses ES6 JS
I don't know if I made that decision intentionally or not. Because like, I try to support no-JS browsers as best as I can, but I apparently don't try to support older browsers. It's weird.
Hopefully everything moves to server-side rendering soon :tm:
Just cursed while talking to myself. smh
Sometimes I do think interjections like "frick," but other times I will think curse words, even words that I've never said. These words normally get filtered when I say them out loud, without me having to think about it. In the same way that you don't have to think about the pronunciation of a word, I don't have to think about filtering my words.
So it was shocking to me when my personal monologue (I talk to myself frequently), included a word I don't normally say.
Today, in the age of client-side web apps, React, and extreme JavaScript APIs, it's difficult to remember that the web before JS wasn't
static.
Let me back up a little bit. The internet is splitting at the seams into 2 factions—those that want a document-based web and those that are building web apps. The former makes the argument that documents don't need to be Turing complete, and that webpages should serve primarily text. The latter group is supporting WebUSB, because they see the web as a distribution platform for ephemeral applications, ala XKCD 1367: https://xkcd.com/1367. (Personally, I fully support this schism. I like the idea of having two different clients, one that let me run sandboxed applications and one that lets me view text.)
Gemini is a product of the first group. For all of Gemini's "forced simplicity," it doesn't address dynamic server-side generation of pages. Without Javascript buttons, you can implement dynamic functionality by generating the page every time the user visits, having links that log actions, and re-direct you back to an updated version of the page. Gemini doesn't support POST or form elements, but it supports clicking links and taking user input as text. And this where, functionality wise, it's quite possible for me to build a capsule that has user accounts, posts, votes, etc. on Gemini.
What concerns me is that the pro-document group doesn't remember that before JS functionality, the web did look like this. And if Gemini gets any significant traction, these types of pages will appear. And suddenly your lack-of-features only hurts the user experience.
Now, in practice, this isn't going to happen. The web will always exist and people will chose to build dynamic sites on the web instead of on Gemini because the web is the better platform for it. But it's still weird to realize that Gemini's "forced simplicity" is really just accomplished by making dynamic pages a poor user experience, and not precluding them.
I guess if GitHub Copilot is like IntelliSense but it doesn’t just yell at me because of minor syntax errors or misconfigured settings,
that’s an improvement.
I'm very interested to see GitHub Copilot on the top of HackerNews, and surprised at the glowing comments.
There's a quote that goes, “Any fool can write code that a computer can understand. Good programmers write code that humans can understand.” Even supposing that GitHub could auto-generate a perfect solution to the problem for me, it's more difficult (even if it's not more time consuming) for my mind to parse, read, and verify that code works, than for me to come up with the solution myself.
I guess, people are comparing this to an improved, complicated, tab-completion. I use tab completion very rarely. In the last year, I've written more code in Vim (with minimal plugins) than IntelliJ. So a lot of the arguments come back to that, whether any sort of assistance is a good thing. My stance is that if your language or library has so much boilerplate that autocomplete is useful, then your language/library is bad.
I don't know, I'm tempted to download VS code and give it a shot, because I do want to write code quicker. I guess what I'm saying is that my bottleneck is not the speed of my keystrokes, so I don't know if this will speed anything up. On the other hand, GitHub claims that working with this assistant is a good way of learning an unfamiliar language.
Twitter-style drafts are dumb. I just have 4 tabs open with the Post page and text partially composed.
Thinking about markup formats.
I found a case even against italics, the one thing I was going to allow. https://letters.temporarystate.net/entry/4/
Something just occurred to me. Gemini is different from simple HTML because you don't have to design the site yourself.
Conceptually, you can write simple HTML and end up with something that is similar to a page served over Gemini. And it might even be more difficult to set up a Gemini server than writing the HTML and CSS, especially if you're already familiar with those languages.
But at some point, HTML has this conception that you're responsible for laying out your own site, and choosing good colors, and positioning the elements on the page. Gemini frees you from that responsibility! Gemini's beauty is not that it is simple! Rather, the genius of Gemini is that it shifts the burden of complication to the client instead of embedding it into the document or the protocol.
Of course, this idea isn't Gemini's genius alone. We used to know this about the web. I don't know why we forgot. The issue with web browsers today is that I have to write CSS. If I don't, if I just serve an HTML page, it looks bad.
I understand problems better than anyone else, quite frequently. Yet that only leads me to more eagerly conclude there is no solution.
Thor was supposed to be the dumb one, and Loki was supposed to be the clever one. In the Loki series, they couldn’t stop themselves from
turning Loki into a himbo.
About to start using a new open-source code editor, Open Edit, based on the Halogen framework.
It includes a ba&sh shell!
Added a link to the about page. Enjoy!
It's intentionally incomprehensible, but now I feel like I need to write a director's commentary explaining it.
Blaseball is like JavaScript, a convoluted mess of overlapping rules which are impossible to memorize or understand.
I want to push back on social norms, I like to question things that have always been done in the same way. But I don’t like rebelling
against people
I can't do this, I'm so stressed.
I wonder if I have anxiety, or like, acute onset stress* or something.
(*This isn't a real thing, I just made it up, and I don't even know what "acute" means except in regards to angles.)
‘Have to sneak into a party’ is one of my absolute least favorite tropes.
If you think your characters need some space, some down time, give us that. That lets me relax as a reader as well. But the high-stakes party-heist masquerading as a chance for your characters to chat is somehow boring and stressful.
Even when I was a kid, I wondered, why didn't websites just load a big list of all of their content? I really like that this website
questions the convention of having 10 items on the page and then a new page. Obviously, it's partly done out of laziness, but I do love having all the content on one long page, even if it's impractical to scroll through sometimes.
Trying to convince known communists to invest in the stock market, like, this is a pyramid scheme but it’s supported by the US government.
It’s hard for me to lack confidence when I look in the mirror.
Sometimes I wonder if I’m bi just because I find myself so irrationally attractive.
I’m at 1,409 posts here. 24 are over 1000 characters, with the longest being
People sometimes ask me if I think there will be computers in heaven.
They see that I am passionate about programming, and are curious if I’ll miss that after I’m dead.
They misunderstand. I am an artist. I want to create things, to create beautiful things. Perhaps the greatest tragedy of my life is the best medium I have found for the type of art I want to create is computer programming languages.
I hate lithium ion batteries. When you put a lithium battery in a product your admitting that you’re designing it for 2 to 5 years,
the batteries just don’t last longer than that. I guess that’s acceptable a lot of the time, but think about the implication of that when it effects every device. I would buy an iPad if I could use it to take notes and have confidence that it would store those notes for the rest of my life, but I have to use paper. It’s weird that paper is better than digital for permanence, only because of the batteries.
I love how low-stakes YouTube videos are. I don’t want to watch videos about things that matter.
Google just emailed me complaining about this website.
If you find the text on this website too difficult to read on mobile, I officially recommend downloading a mobile Gemini client and connecting to
=> gemini://thoughts.learnerpages.com
Seriously, what the heck. Why is Python so bad? Why does a language with list comprehensions fail so spectacularly in list manipulation?
The challenge:
```py
input = {"a": {"x": 1, "y": 2}, "b": {"x": 3, "y": 4}}
# Becomes
[1, 2, 3, 4]
```
You only need to go 2 levels deep.
Javascript:
```js
Object.values(input).flatMap(a => Object.values(a))
```
Python option 1:
```py
from itertools import chain
chain.from_iterable([a.values() for a in input.values()])
```
Python option 2:
```py
[b for a in input.values() for b in a.values()]
```
I *do not* understand how that second python example parses. I don't know whether b or a is the inner loop variable. I can't use that code. I have to add an import line to flatten a list. I'm sorry Python. The fact that you technically can golf a nested list comprehension to approximate `flatMap` doesn't count. And the worst bit! Is that the "readable" itertools solution is still opaque. Ah yes, my go-to list-flattening function, `itertools.chain.from_iterable`.
There has to be a better way of doing this. Maybe I can flatten the dicts first and then `.values`? I'm going to keep researching because Python is such a huge language.
I love Python when it gives me tools to do what I want. When it doesn't, it's so painful.
Trying to flattening a list that I built with a list comprehension :/
Why are people so afraid?
I wonder if my fear of social scenarios is balancing my lack of fear of physical things.
Maybe I’m just interacting primarily with people online? Maybe this isn’t a thing and I’m reading way too much into a few online comments.
Fear is an interesting thing.
Reposted the Gemini posts to Rigby. Thanks to Luke for recovering them after the downtime.
I didn’t proofread them again so hopefully they’re legible.
Why are there still more programming languages!!!
I understand conceptually that there are a lot of programming languages and that there are programming languages that I don't know about, but I'm still not mentally prepared to open a Github repository and find code written in Crystal.
I don’t think most people realize how uninhabited most places are, once you move away from areas that are inhabited.
A man can you hear me
A man can you hear me inquires of an empty room can you hear me upon receiving no reply can you hear me he concludes can you hear me that he is mute can you hear me
I’m beginning to think that all the people complaining about capitalism in my Twitter feed aren’t actively researching alternatives.
Because gemini doesn't support compression, it actually transmits roughly twice as much data as the normal HTML version of this page.
"I find it important to specify the browser as well...So right now I'm running 'Firefox/TeX/Gnome/GNU/systemd/Linux'"
Interesting post on how far mathematical proof languages have come.
Watched the Veritasium video on Gödel's Incompleteness Theorem. He spent a lot of time on Turning completeness and the halting problem,
which I don't think was really necessary. That question is well discussed without reference to Gödel's theorem. Gödel's theorem is a big deal even without Turning.
*Just watch the video:*
https://youtu.be/HeQX2HjkcNo
For readers who aren't familiar with either, it might not be immediately obvious that I have to compare this to *Gödel, Escher, Bach*. But they both deal with extremely similar topics. Muller (the Veritasium guy), cites quite a few sources, but doesn't mention G.E.B. This surprises me.
I once said that G.E.B. "dares to venture closer to insanity than any other work of reason." The Veritasium video provides a very sane explanation of the ideas involved. In some ways, this doesn't do them justice. There's a certain irony in logically explaining a theorem that bounds logic, and Hofstadter plays with that irony. Muller doesn't.
I figured out that I'm pronouncing Gödel wrong. With the German ö, it's "gurdle," not "go-DELL."
In some ways I'm tempted to dismiss Veritasium in the same way that I would dismiss a high-level explanation of a technical topic in mainstream media, (imagine a news anchor trying to explain a computer issue). Veritasium goes to a similar depth at times, hand-waving concepts. But that's not really fair, because the news anchor really only has a high-level understanding. Veritasium's saving grace is that if you look closer, everything they say is correct. Veritasium will cut to B-role of equations floating on the screen, like a news channel, but Veritasium uses the correct equations for the topic, even if they don't explain them.
Overall, I highly recommend watching the video, especially if you haven't read G.E.B. Unfortunately, watching the video won't grant you access to the exclusive club of arrogant people who have read G.E.B. (I think there definitely is a way to make a video on Gödel's theorem that communicates the same surreal, metaphysical air. It's probably a good thing that Veritasium didn't make that video.) Like, Veritasium takes the "math" that you know, and says, 'hey this isn't perfect.' Hofstadter creates this new system from nothing, which is obviously imperfect, and then proves that it is the same as the mathematics that you know. So they explain some of the same material, but Veritasium doesn't give you the same paradigm shift.
Hofstadter would be ticked off at me right now, because I'm pretending like his book is about Gödel's theorem, when that's only a part of it. He also deals with a *ton* of other issues!
Github changed their "issue" icon to a circle with a dot in the middle, and it looks so natural that I can't remember what it used to be,
and it annoys me. I think it was an "i" with a circle around it.
They told me Gemini was minimalistic. I didn't believe them. But wow.
text/gemini, the native file type, is like Markdown without support for in-line links, bold, italics, or anything else inline, because 'character-by-character parsing is too hard.' No images on the page. No fricking anything. The entire format is: text, link lines, code blocks, headers, lists, and quotes. No nesting of anything.
The content transfer protocol is similarly minimalistic. No support for compression. HTTP status codes are too complicated, we have 2-digit status codes, and so on.
I'm going to try to get this site to support Gemini at some point soon.
I'm shutting down my KA mod action logger ("Programs KA doesn't want you to see"). I'm not maintaining it, and it's breaking.
It gave a couple of interesting take-aways:
0. The hot list doesn't move that fast. Only 2,000 programs in 4 months.
1. KA hides around 2 programs a day, ~14% of programs that spend any time on the hot list.
2. People are confused. Many programs had edits questioning what had happened
3. The most interesting IMO: Of all the programs "caught," none were malicious or explicit. I expected at least a little bit of language, but most programs were hidden just for being low-quality.
I scraped the first page of the hot list every 10 minutes (right after it updated), for 143 days (over 4 months). I logged 1,973 unique programs.
275 programs were hidden from the hot list.
168 programs were completely hidden.
239 programs were marked as definitely not spam.
127 programs were deleted by their owners.
166 programs were hidden from the hot list and completely hidden.
61 programs were hidden from the hot list and marked as definitely not spam.
18 programs were completely hidden and marked as definitely not spam.
I shouldn't need to explicitly disclaim this, but these numbers are amateur—they didn't come from KA. In particular, it's possible that I manually entered programs into the database for testing purposes and then forgot about them. (I don't think I did, but I wrote code at one point to let me.) Also, it's possible there were bugs around users deleting programs.
This should really be a KA Hearth post, but I need to go to sleep.
Guys be like, ‘the terrifying ordeal of being known’ and then base their identity on the success of a Khan Academy game from 5 years ago
that they never tell anyone about.
Okay, the about page for this site is on its 4th iteration. I think it is ready to be shared, but adding links to it is coding
that I don't feel like doing right now. I suppose you can check it out at /about but you're going to have to type that in.
It's roughly 10,700 characters, putting it slightly over Rigby's 10,000 character limit.
"In this day and age logical methods are applicable only to solving problems of secondary interest" (1924)
Bought some Prosus the other day, after they bought Stack Overflow.
SO is far from a well-run company, they've mismanaged their community a couple of times. But that means that it's unlikely that Prosus can screw it up that much. Prosus also owns like 20% of Tencent.
I had a shocking coherent dream that I hired a contractor to build 2 apartment buildings on land that my parents owned.
"Apathy's a tragedy and boredom is a crime"
-Welcome to the Internet, Bo Burnham
(I have a project in my notes with "Welcome to the Internet" as a working title. At the time no one else had used it.)
Wrote a script to automate re-building mod_wsgi from source because its python bindings break every time I update system python.
I understand the theory behind being scared of pre-release versions, but in practice, I have run into many more issues because I'm using
outdated software than because I updated to the latest version too quickly. This is about rolling release operating systems.
I love Hacker News because people post comments with number sources, but the citation numbers are 0-indexed.
‘She was attractive in the way that hot stoves attract curious children’s hands’
What a line!
https://glumshoe.tumblr.com/post/653003912976171008/i-love-when-fantasy-worlds-have-some-nonsensical
Me explaining why I haven’t been brushing my teeth: Well, I never *decide* to go to bed. I just stay up until I’m so tired that my mind
shuts off and there’s nothing to do except fall onto the bed. I can’t exactly decide to brush my teeth at that point.
I started working on OJSE a bit. Wow. That code base is a mess. Multiple authors over the course of 5 years! It works, because I’m in charge
and I won’t let it literally fall apart, but stylistically, it’s all questionable.
Diversity win! I thought about whether I should identify as non binary, and then decided I shouldn’t.
I would like to identify as a masculine immaterial entity.
Since I woke up 4 hours ago, Vivaldi has crashed and IntelliJ has frozen. I want software that works.
Veritasium tries to clickbait me with a giant "INCOMPLETE", and I’m like, oh yeah, Gödel's Incompleteness Theorem, classic.
I realized that Django was serving media for this site, instead of Apache (this is quite bad). Fixed now.
I want to see what an impractical computer looks like. I want to see, with our current hardware limitations, what a computer designed for
the love of it, would be.