Thoughts
Installing MicroZig is easy!
Step 1: Go to downloads.microzig.tech
Step 2: Click on examples
Step 3: Choose your board
Step 4: Download the .tar.gz file
Step 5: Extract the .tar.gz
Step 6: Open the contained build.zig.zon file
Step 7: Copy the "dependencies" struct fields
Step 8: Paste them into your project's build.zig.zon
Step 8: Run `zig build`
Step 9: Copy each of the new hashes into the build.zig.zon
Zig's package manager is going great.
Edit :29 to add steps 8&9
I hate strictly typed languages so badly. So badly. This is about Zig. This is miserable.
MicroZig wants me to export a struct with a .interrupts field to store my interrupts. Right, fine. If I had to I could lay that struct out in memory with a Hex editor. But I can't an anonymous struct. It has to be struct of type Options.
=> https://github.com/ZigEmbeddedGroup/microzig/blob/540a52585f0b4448caa772f49e1664f3ad46f987/core/src/start.zig#L70
Or it doesn't compile. So I'm just screwed. I can't use the language. I can't use the library. There are zero examples, because is zero documentation for MicroZig. Zero auto generated docs. There's one example, which I had to ask the microzig maintainer for in the Discord, and it's wrong. It's just wrong. It doesn't compile.
So I'm going to sit for the next 45 minutes, I'm going to start a timer and sit for 45 minutes and try to guess where how I can import the Options type.
I was like, 'I bet the company that has graphite.io is a modern tech company with a slick website' and I went to the website and sure enough
Maybe I should. Maybe I should explain that I find it disrespectful to what I do as a JS programmer when people assume that all JS is bad.
I just be hate walking into a conversation where the other person’s assumption of me is that I’m a bad or stupid person. I don’t want to
have to fight the uphill battle of convincing someone else that I’m acting in good faith.
It feels disrespectful and humiliating.
This is simultaneously about the fact that I use JavaScript on this website and dating.
And I’m not doing fingerprinting and I’m not a rapist but if you look at me and your default assumption is that I am or I could be, then I have to defend the fact that I’m not an evil person before I can even be myself.
I don’t have to clarify this but I’m going to—this is largely my own problem and I don’t expect people to change to accommodate my sensibilities.
People are just so scared. Most JavaScript programmers are not writing fingerprinting scripts to track you across the internet.
One of the great things about weird things is that there’s always the possibility that it connects to larger things.
I hadn’t noticed this relationship between the weird and the unknown before. If you don’t understand something it’s weird but there are also things that are just weird despite you understanding them as fully as it is possible to. And so weirdness is great because there’s always the tantalizing feeling that maybe it’s only weird because you don’t understand it yet.
I hear all these people saying that I’m not smart enough and that I’m not working hard enough and I don’t think they actually exist. I think
my brain is inventing them.
> The web is for documents.
This hasn’t been true since the 1995 SpaceJam website used tables to lay out buttons in a circle.
=> https://www.spacejam.com/1996/index2.html
It hasn’t been true since JavaScript was invented. It hasn’t been true since Flash games.
It makes me sad because people who believe the “web is for documents” are running around complaining about how bad the web is and how bad web developers are at their jobs and how bad the web standards teams are. And they’ve missed that we’re not trying to make documents anymore.
And so people turn off JavaScript in their browser and then complain that websites don’t work. And I can’t even think of a metaphor because there’s no where else that computer users intentionally disable a subsystem that is present on 99% of devices and then complain that developers assume that it exists.
And I love simplicity. I think it would be cool if a lot of webpages were just documents. I’ve been a proponent of Gemini, which is made for documents.
But I shouldn’t let these people depress me because when someone does make a cool JavaScript game, none of the comments are about how it shouldn’t exist or how it should be a downloadable executable.
Ruby has both `and` and `&&` and `||` and `or`, and I don't have a strong opinion one way or another but why do you have both???
I am constantly inspired by how young the computer industry is. Apple and Microsoft are still battling for the desktop computer market.
6.8% of everyone who has ever lived is alive right now. 1/20th of human history is being written by people alive right now.
It's like the opposite feeling from looking up at the stars and thinking how small you are. We have the ability to change things. We're so big.
The software license of the day is the Boost Software License 1.0, which is based on the MIT license but requires attribution only in the
case of source distributions.
My pet peeve with the MIT license is the requirement to distribute a copy of the license text. (This has led to the MIT license becoming the piece of text with the most copies in existence, period.)
Along a similar line, there's also the MIT-0 license adopted by AWS.
My brain is so backlogged. So many thoughts I need to think before I can think other thoughts. Ahhah.
I think my favorite part of IRC is how it is completely and utterly unusable on mobile.
Makes sure all of those kids with their iPhones stay off it, aye!
Lindsey Stirling on Bandcamp, iconic, we love her.
I’m actually so confused though, because she’s obviously too big to be fully indie, and most record labels don’t use bandcamp. Will research and edit.
Edit (10:00): The album on Apple Music is listed as copyright Lindseystomp music (her label) “Under exclusive license to Concord music.” My guess is at some point she had the negotiating leverage to be able to hold her copyright, which is cool.
So in theory this site was going to be red during the fall but I waited so long to change it to blue for winter that winter is now over and
it's almost summer, so I can't change it to blue now.
I FORGOT ABLUT THE FRAUD!
=> https://opencollective.com/foundation/updates/update-about-fraud-theft-and-recovered-funds
I’m reading the 990 and I have no idea what a 990 is supposed to look like but this feels crazy.
$700,000 documentary.
Open Collective Foundation (OCF) is shutting down. Gosh the actual frick.
This is a huge loss because they were a 501(c)(3). The Open Source Collective (OSC) still operates, but as a 501(c)(6). (I can't find a source for why the OSC is a 501(c)(6), from reading Wikipedia, this designation sounds incorrect.)
(The Open Source Collective and Open Collective Foundation were both fiscal hosts on the Open Collective Inc (OCI) platform.)
There is actually no information about why they're shutting down. In September they announced that they had decided to "pause on accepting new collectives through February 2024" in order to "to accommodate the exponential growth we have experienced" and "continue to provide our services to their highest standard".
=> https://opencollective.com/foundation/updates/ocf-slow-down-pausing-new-applications-through-feb-2024
In July 2020, the OCI waived its 5% platform fee for the OCF. So OCF was taking a 5% host fee and not paying the OCI—their expenses were only administrative. Granted, they were doing a lot of administrative work. For instance, filing taxes for all of the 600 organizations they hosted, not just themselves. But again, at 5% for each of them you would think it would make sense. Maybe they had too many collectives with low-to-no income that still resulted in paperwork overhead. It's still really weird that they shut down instead of increasing their host fee to 10% like other hosts, or kicking out organizations.
Most recent 990, from 2021, so I don’t expect it to be too relevant
=> https://apps.irs.gov/pub/epostcard/cor/814004928_202112_990_2023051121205973.pdf
HN text posts sorted by new:
“Which book your reading and why (Non-fiction Only)”
1 reply: [4 fiction books]
The fact that I have no canker-sores and then I now have 5 that have all popped up at the same time makes me think it’s a diet thing and not
just chance or stress. Like I said though, I’ve been avoiding nuts, which was what I thought it was. Man it just hurts.
All we’re freaking doing here is Christianity.
I might not be doing it well but that’s all I’m trying to do.
One of my biggest personality flaws is that I get insulted by things that weren't insults or weren't directed at me.
The reason for it is simple. As I imagine I've mentioned before, I don't believe in a "true self"—you are only who you are at any given time, and that is subject to change, either because you change yourself or your environment changes you.
This means that it's very easy for me to imagine criticism towards someone else as being towards me.
I guess this is technically high empathy, but it's more selfish than the way "empathy" is normally used—I may defend someone only because my overactive imagination imagines myself in their place.
This is very closely related to another flaw of mine, although with a distinct cause. Namely, I take criticisms of groups that I am in very personally. This is probably the result of a huge ego.
I really need to make a Firefox bug report for
https://ourjseditor.com/program/rFgwNx
Reporting bugs of this nature is just such a nightmare because I don't have the context to understand the browser internals at all, so I can't even imagine what part of the renderer is failing. When you hover over the element in the inspector the little highlighted box is (correctly) 18px tall right next to the label that says it's 19.2px.
Beginnings of 4 canker sores today.
Pretty much all I’ve had to eat today are muffins (3 and a half), a banana, some Pringle’s. Yesterday I had green beans and Mac and cheese, maybe some chocolate.
Maybe I’m allergic to chocolate.
I have been drinking lemonade this week, that’s definitely still on the table. I had seafood and a baked potato two nights ago, and a regular rotation of snacks (cheese it’s), but no nuts for at least a week.
I did have a couple strawberries on Wednesday.
The fact that Jake delivered what is possibly the best acting in Game Changer history in Sam Says 3 and then lost 4 points for it is iconic
I don't know if I'm going to make it.
I need them to turn on the air conditioning in here. I can't handle it.
When the frick is the yield curve going to un-invert.
Okay so there's such a thing as government bonds. Basically, you give the government $100 now, they give you $105 in a year. The percent increase is called the yield (5% in this example). The other variable is time. Is the government going to give you your money back in 1 year or 10 years. And other people can issue bonds, not just the government, but "the yield curve" refers to US treasury bonds. So what is it? Well, it's a graph of the yield versus the holding time. See, normally you want your money back sooner—this gives you more flexibility. (You'd rather have $105 in 1 year (5%) than $150 in 10 years (5%). (I'm assuming no compound interest, so this is wrong, but it means I can do the numbers in my head.)) To compensate for this, you normally get a better yield rate if investing for longer periods of time. So instead of getting $150 in ten years, you might get $155 (5.5%). So the yield curve has time on the X axis, and %-return on the Y axis.
In 2022, the yield curve inverted. This means that instead of getting better rates for longer amounts of time, you get worse rates. As of writing, the best rates are 2-months (5.5%) and if you give your money away for 10 years, a longer period, you get a worse rate (4.39%).
This is like they're playing hot potato with the money. 'yeah I'll take it for 2 years but I don't want to be stuck with your money for 10 years.' Like what; I'll take your money for 10 years and invest it in short term bonds and take the difference I don't know.
I'm not an economist so I don't understand why this is happening. I thought it was a fluke resulting from high interest rates in 2022 and expected it to correct itself but it hasn't. I also have no idea what the implications of this are.
Nothing like doing 50 in a 35.
*pleading* I just want to feel something.
If I ever try to tell you that I’m a good driver, I’m lying.
Slits is such fricking goals
=> https://youtu.be/ivMvrfp1kqU
I don’t know if this is normal but I love him so much. Talk about sexy movement
People will pretty much never admit to your face that they were wrong and you changed their mind. So if you're playing the game of
changing people's minds, you can't hope for that outcome. You have to make your argument as well as you can, and then give the person space. If you've made your arguments well, and if you're right, then the person will eventually change their mind—but they will insist you weren't the reason. They might go do some research themselves to confirm that what you're saying is true, and then the facts will convince them. Maybe the next time they talk to someone else about the issue they won't use a point that you've refuted. Maybe if you talk to them again in a year, they'll deny ever disagreeing with you. But people's minds don't change quickly.
Hacker News is such a bad website. It's talking to talk. And it's great. It's people just saying things.
Edit: "This is only tangentially related...Relatively recently I did ketamine infusion therapy"
I love Joehills so much because everything he does very clearly makes perfect sense to him. It does not make any sense to anyone else.
Another iconic code review from ljharb, "arr.push(item) can be converted to arr[arr.length] = item...it's more methods that could be
modified or deleted in the environment beforehand"
> anti-ti-ti-ti fragile, fragile
> anti-ti-ti-ti fragile
> anti-ti-ti-ti fragile, fragile
> Anti! Fragile!
> Anti! Fragile!
-ANTIFRAGILE, LE SSERAFIM
Huh, React has a `memo` function that lets the child component decide when it re-renders.
Sometimes I feel like all philosophy and religion is a scam and the key to true happiness is food and sleep.
I survived on 7 hours of sleep for most of high school, so I know I can do it, so some nights I try. But man I'm tired the next day.
`foo(:bar)` in Ruby passes the symbol `:bar` to the function `foo`
`foo(bar:)` in Ruby is syntax sugar for `foo({ :bar => bar })`, creating
a hash with the key `:bar` and the value as the value of the method/variable.
`foo(:one, two:)` is valid Ruby but `foo(one:, :two)` is a syntax error (implicit hashes need to be the last argument to a function).
`foo :one, two: :three, four:` is syntax sugar for `foo(:one, { :two => :three, :four => four })`
I listened to Screen, twenty one pilots, the other day and the Christian context really struck me.
“Sing to the sky” has always had a religious ring to it, but I for some reason hadn’t read the “you” in the song as God—despite lyrics like “hide my soul when you’re the only one who knows it.”
“It’s just enough to be strong in the broken places”
-Faith Enough, Jars of Clay
“While you’re doing fine there’s some people and I who have a really tough time getting through this life, so excuse us while we sing to the sky”
-Screen, twenty one pilots
> “I brought my son to your disciples, but they could not heal him.”
> “You unbelieving and perverse generation. Bring the boy here to me.” Jesus rebuked the demon, and it came out of the boy, and he was healed at that moment.
> Then the disciples came to Jesus in private and asked, “Why weren’t we able to drive out the demon?”
> Jesus replied, “Because you have so little faith. Truly, if you have faith as small as a mustard seed, you could say to this mountain, ‘Move from here to there,’ and it would move. Nothing would be impossible for you”
Matthew 17:16-20, paraphrased
Man I miss 2017 me_irl. The self referential meaningless memes. No call to action, not really any punchline. Just people relaxing and
posting and laughing.
That has to still be happening somewhere on the internet, maybe in some corner of TikTok, but I don’t know how to find it.
I just can’t do it. I’m just so hard on myself and I’m convinced that everyone else hates me more than I hate myself.
I can’t fricking handle it. If I workout I’m vain and I’m a jock. If I don’t eat dinner every night I have an eating disorder. If I eat unhealthy meals some nights I’m a glutton. If I don’t work out then I’m out of shape and fat. I just don’t know. I’ve never worried about my image this much before and now I’m fricking going insane. I can’t take it. I’m just so bored and there aren’t any goals in my life. I have no friends. And everyone else hates me more than I hate myself.
If I don’t ask about people’s personal lives than I’m detached and phyociopatic but I do ask about people’s personal lives I’m a creep. And I can’t even be like “oh no one thinks you’re a creep” because 1) I think I’m a creep and 2) people would think I was a creep.
Edit: yeah. I need to go to sleep. I’m just so angry and I have nothing to be angry at because being angry is morally wrong always (fact check: Jesus temple). I wish God would eat me and replace me with a perfect person.
I used to not have code friends and then I had code friends but no personal friends but I judged the code friends for not being personal enough and I judged the personal friends for not being code enough and now I have no friends. I don’t know, I don’t do imperfect people. You must be perfect to be my friend but that’s hypocritical so I must become perfect myself and then I can join with perfect friend club with all the other perfect friends. :D
Another Game Changer episode that I am unable to watch without pausing to laugh and walk around.
I had a dream the other night that VIP turned into a horror show after the first couple of episodes. Vic had god-like powers that allowed
her to telepathically mutilate guest's bodies and trapped them in a city as part of an experiment.
Interesting thought: the fact that I am often disappointed in the reality of relationships or interactions may mean that I’m fantasizing
about the fantasy parts of relationships. I’ve said before that I’m unwilling to lower my standards, but maybe it’s not about lowering my standards, maybe it’s about not wanting or not valuing *the part* of a fantasy relationship that I do. I’m always going to want that perfect relationship, but maybe I can have the most important parts of perfection instead of the most attractive parts.
If I were running Cohost, (aside from moving infra to Cloudflare) I'd require you to pay to make more than 10 posts per month.
So there would be a free tier, but hopefully 70-80% of MAU would be paying. The consequences to that seem pretty obvious to me. The site would be small and would stay small. So your costs would go down. You could afford to pay a couple of devs. You could look at decreasing the cost or increasing the number of free posts according to your actual costs. You could implement gifting subscriptions either to an individual or to the community like Twitch, or some other sort of "gleaning". Anyone can sign up, anyone can still read posts. This would put you in the "small amount of money from a large amount of people" area.
And this has been proven to work because Are.na has been doing it for years (200 free posts, $7/month for unlimited posts, 4 full time employees, 15,000 paying users). (Cohost for contrast is seeing 30,000 monthly active users, <3,000 paying, and they're trying to support 4 full time employees.)
The reason I don't foresee Cohost's current plans working out is this line: "the best way for us to make up for our deficit is to have more active users. the best way to have more active users is to make cohost better." I don't even know where to start with this because it's just wrong. 1. more active users will increase costs (on paper this isn't true, but in practice it is). 2. users don't move to a platform because it's better / users will use even a bad platform if there's a reason to. 3. Cohost's primary audience is gay Luddite furries, which is a limited number of potential users. 5. Cohost's UX is already better than every other social media site 6. Cohost's interface is a Tumblr clone which is extremely confusing if you've never used Tumblr before.
This is kind of evil but I cannot look at Cohost's financials without my brain screaming at me that they're spending 5k a month on CDN
costs out of a moral disagreement with Cloudflare's executive team.
They're losing 14k a month and their goal is to "bring the deficit down below $10k" (quote taken out of context I'm sorry) and they're spending 5k a month on CDN fees after moving off of a free Cloudflare plan. Someone help me budget this.
The kicker is that it was a free Cloudflare plan. Like man you're really sticking it to Cloudflare by not not paying them anymore.
Edit (9:08pm): I don't even know if this is up to date; it might not be true anymore. The H1 2023 report showed $10k in hosting/operations costs and expenses of $46k / month. The most recent report shows $34k in expenses (not broken down). So they've cut expenses somewhere. I don't think this is the real issue it's just funny.
=> https://cohost.org/staff/post/5023717-march-2024-financial March 2024 update
=> https://duckduckgo.com/?t=ffab&q=Cohost+H1+2023+Financial+Update H1 2023 update
You either have to make a large amount of money off of a small percentage of users, or a small amount of money off a large percentage of
users. You can't take a small amount of money from a small percentage of users.
I was randomly browsing someone's mastodon the other day and they mentioned how nonsensical Cohost's financials were, and I felt validated that I wasn't the only one who failed to make sense of them.
Debating tools just doesn’t matter. It just doesn’t. The quality of the brush doesn’t effect the quality of the art. It just doesn’t.
𝕿𝖚𝖓𝖙𝖊𝖒𝖆𝖙𝖔𝖓 removing his other videos because they're "poor quality" is wild. Please tell me someone backed them up. This man has a
mental illness and that's not something I say lightly.
I love the Formatter Sublime package because the developer is like 'it's dumb that Sublime doesn't restore your cursor position when
re-opening a file' and adds that feature.
'it's dumb that Sublime doesn't have a word count.' Well, Formatter now does that too.
Ah, HN moment.
'You have to trust someone. Even linux distribution builds aren't reproducible'
'I created a 100% reproducible linux distro'
Etho hiding a chest full of shulker boxes under Beef's shulker store to exploit his lifetime supply is so funny.
I just love Catppuccin because we can blow every other color scheme out of the water in terms of professionalism by sharing work.
SMASH needs to make the find bar less aggressive: should automatically go away if you start typing in the prompt or switch tabs
I'm going to put links on their own line for the rest of my life because of Gemini. Some ideas are just timeless.
The issue is that these companies do limited runs. The HP Dev One website is at least polite enough to say that the laptop has sold out.
System76 will sell me a Linux laptop, so that's pretty cool.
Framework doesn't ship with Linux. You have to install it yourself.
I've installed Linux ~10 times on various computers, so I'm capable of doing it. (I'm not a pro.) It would be really fricking cool if I didn't have to—it's a chore.
And I expect the option to not have to do it myself.
Dell and Lenovo both talk about how they support Linux officially, and they both have pages that claim to list their Linux laptop offerings,
but there aren't any linux laptops there.
Linux users are so funny because they'll say things like 'I've been using Linux on Lenovo laptops for 10 years without any issues, except
that I never managed to get the fingerprint reader working'
Like what?
> given how important Debian is to their business, companies like Apple, Microsoft, Amazon, and Google, are already chomping at the bit to
> donate hardware and cloud resources to enable use of the monorepo
crying
It's really dumb that `get` and `get_mut` are different. I don't know why it can't figure out whether I need a mutable or immutable
reference. I've spent a little bit of time trying to figure out what types my own variables should be, but I've spent a lot of time trying to figure out what standard library functions will give me the value with the correct type + ownership + mutability + lifetime semantics.
You just end up in these absurd convoluted scenarios where you have an owned mutable `Option`. You want to unwrap it and mutate the value inside it. Well that's obviously `&a.as_mut().unwrap()`. You want to move the ownership of the contained object but not the optional, that's `.take().unwrap()`, you want ownership of the value and the option, that's `.unwrap()`. You want a non-mutable reference to the interior value that's `&a.as_ref().unwrap()`.
And here's the thing—I'm not complaining about explicit move semantics or explicit mutability. I'm talking about poor implementation of those semantics. There should be some convention or language feature where I can go from `get()` to `get_mut` without having to go to the documentation and searching for all hashmap methods that return `&mut`, and having that possibility that there is no `get_mut` and it's impossible to do what I want.
I can't use `.get` if I want to mutate—and it doesn't matter that I know that mutating is perfectly reasonable. And it's not even a compiler
limitation. I have a mutable reference to the HashMap—I can remove the entry, mutate it, and re-insert and I know that. But because the HashMap API designer decided that `.get` returns an immutable reference—nothing else matters. It's Java-level OOP. It's encapsulation. I can't mutate the HashMap except for how the HashMap API designer wanted me to. And that's where I think the promise of the "smart compiler" falls apart—the compiler isn't creating the API, it's not figuring out what's allowed. It's figuring out whether I'm following the rules that were set by the Rust standard library designers. And so all the Rust book examples make sense because they're working with integers. But as soon as you touch the standard library, you have to start rotating through 14 different ways to unwrap an optional.
I guess what I'm saying is that the Rust compiler is a borrow-checker, not a borrow-solver.
It feels like there should be a distinction between someone who has their own way of how they want things to work and someone who has no
idea how they want things to work.
The Rust culture is so annoying I'm sorry. I asked a question in the Rust question: I want to modify a HashMap value, and this guy is like
"you can't be modifying things willy-nilly in safe rust." And then a couple minutes later he points out there's function to get a mutable reference to a HashMap value.
The Rust API is just so huge I just can't wrap my brain around it.
Like I'm not good at writing Zig. I'm not smarter at writing Zig code. But the way that Zig is designed, I as the programmer have control over what's going on, and so I figured out how to allocate on the stack and so all of my Zig code is 100% stack allocations—I don't allocate anything on the heap at any point. (Even the Zig functions that do allocations take an allocator, so I can allocate space on the stack and create a fixed buffer allocator for them to use.) But I can't do that in Rust because `HashMap` allocates on the heap and that makes the API more complicated. So instead of creating my own constrains, I need to satisfy all of the standard library API constrains.
To be clear, this has 0 end-user effect: the only people that care are Catppuccin port developers.
One of the many reasons raid farms are OP is because they operate independently of the server mob cap.
I'm just miserable and it's because I've only eaten 3 eggs and some corn puff things today and yeah.
Just read the SFC v Vizio initial filing. Big fan of when it says "That's the deal."
Like sure. That's what I say in all my legal filings.
It feels disrespectful to point out that these people are wrong because it is so obviously wrong that if they cared at all they would look
at it and notice.
SMASH 1.0 (our third major milestone, the project is currently pre-alpha) would support a plugin API for other types of interactive prompts
to "take over" the SMASH command-input box in order to provide syntax highlighting and auto completion suggestions. Do you know what API already exists for providing syntax highlighting and auto completion? LSP.
I hesitate to commit to supporting LSP because SMASH is not a editor. But if that protocol already exists...
If you use the same font size for mobile and desktop, you end up with a horizontal line length of like 35 characters on mobile.
Fienberg's chat does a bit where if someone makes a typo people will say "MINOR TYPO!" and repeat the misspelling or whatever. But that's
just what programming is like all the time.
I’m a freak. You can’t program for 8 hours during the day and come home and program for 3 hours at night unless something is wrong with you.
Thinking about it, it seems like SMASH should resemble a POSIX compliant shell more than I originally intended. I originally intended to
only support the most basic of commands, and take it as an opportunity to simplify and iron-out the shell interface. And I'll still do that in some ways. But generally, people know how to use POSIX shells, and solutions provided by POSIX are not bad. The question I'm asking myself is not "could it be better," because it can, but "is it possible to deliver the clean and easy to use terminal experience that I want SMASH to deliver, while still supporting these POSIXs features." And I think the answer is yes for a lot of things, like pipes (which I originally didn't intend on supporting). I think there are other places like some of the quoting rules which may get in the way of delivering an intuitive terminal experience, and so I may need to break compatibility in those areas.
Bash is a shell scripting language. It's a whole scripting language. And I don't want the SMASH shell to ever support conditionals or turning complete logic or functions, because it detracts from the status quo of the terminal as a command-entry-screen.
If I was using features that were at all weird, I wouldn't be complaining. But I'm trying to use flexbox to vertically center some text.
Maybe when people say “know” or “understand” someone they mean “trust” them.
You can trust someone without knowing them. If you have to know someone completely in order to trust them, that’s scicopathic like me.
IRB's show_source can somehow find the definition location of methods declared by Rails using string interpolation and eval.
Like I'm a little impressed it can find it. I'm shocked that it can point me to the right line of the multi-line-string. Again, something that is totally obviously possible, but that is non-trival—someone had to decide to make it work.
It would be very easy for SMASH to slip into not offering features because they're "too difficult."
This is one of the things that's weird about software. For any piece of software, there's a whole class of features that are possible but are often omitted because they're not 100% necessary. And people will say they're "too difficult" but nothing in software is that much more difficult than anything else. What they mean is that these features aren't 100% necessary and aren't trivial, or aren't possible to implement 100% perfectly.
And one of the reasons I'm excited about SMASH is because there are a lot of features I can imagine for a terminal that fall into this category today (using the mouse to move the cursor in the prompt or deleting selected text in the prompt or detecting whether to use control+c to copy or kill the program on Linux or automatically quoting paths with spaces or breaking the output for wrapping on spaces or updating aliases/the prompt without closing and restarting the shell or using command for keyboard shortcuts).
But at the same time there are features that are completely possible to implement, like command+f, that I'm very hesitant to implement in SMASH because it doesn't fit with SMASH's UI paradigms, in same way that selecting and deleting text isn't in the paradigm of terminal emulators.
But I think you have to make a distinction between "doesn't naturally fit into the existing UX paradigm" and "would compromise the UX paradigm." And so I think allowing command+f is the right call, even though it breaks the prompt-focused guarantee. (Where, for example, links being clickable in the output would compromise the text-only output paradigm.)
One of my favorite things about the lesbians in The Count is that it's one of the very few things in the book that The Count doesn't have
a hand in. The book is like, 'The Count is making this guy's life miserable and also, by the way, to really drive home that this guy sucks, his daughter elopes with another woman.'
Mlle Eugéngie Danglers, icon. Will continue to post about her.
Rewatching this; I cannot believe it only has 2k views; it is a work of art. So well edited.
Might become an EVE Online player. Thinking about it, I could throw a couple thousand hours of my life into it. Probably shouldn’t.
A bigger part of it is just that I don’t believe anyone will ever understand me. I know a lot of people. A lot of people. Who claim to
understand me and yet react in shock and confusion when I describe how my brain works.
I don’t know if I want someone who understands me or someone who doesn’t try to.
I’m not afraid of someone knowing me. I’m deeply deeply afraid of someone claiming that they know me. It’s humiliating for someone else to say that they understand what goes on in my head. Because they’re saying that there’s no reason to listen to me and there’s no reason for me to exist.
The most radical realization of my life is that my time is not valuable.
You should use your time for the things that you value, not value the time itself.
Victoria tallying the scores in her head and saying them out is so peak. Some people were built to host.
=> https://youtu.be/ybEfflKZ9Oc?t=2400
For context, Victoria hosts Only Connect but is a participant on this episode of Taskmaster.
Okay I can't just send Alex's puzzle because it's 3 times Discord's character limit. It doesn't fit in the living room.
Man.
Okay.
So I can't bring myself to send Alex's puzzle, because it doesn't fit. It's not good. It's like using a Lamborghini as decoration
in your living room. It just doesn't belong.
I was flicking through xkcd earlier today, as I do often, and I was thinking about how Randall has put out a lot of comics very consistently, and obviously thinking about this in the context of the Linoleum Club. A lot of the xkcd's are bad, and I think my realization was that, to use the same words as I was using earlier, a lot of the comics don't fit or didn't fit before they were published. And it's obviously easy to look back at XKCD and view it as a comprehensive work, and see that every comic fits because it's there. But some of them I could imagine myself refusing to publish if I was in Randell's shoes because they were too different from the 2,000 comic mean. There are a lot of repetitive sex jokes. #594 is just a single really bad pun. And there are some really good classic comics in that section of XKCD history but I think that's what makes it more brutal. My point is that I would have skipped a day in there. I would have said, "we can't publish #544" because what is it talking about. But Randall didn't, and I don't criticize him for that because on average XKCD is good.
So I'm going to shove Alex's puzzle into the Club wholesale, and it's going to be fine, because we can't miss more days and big-picture I'm okay with other people writing puzzles that don't match the tone or difficulty that I would use.
Grian "what I actually need is therapy" "it's on the list, right after my sheep farm" is so relatable.
Man I wish Framework had just one or two more designers. Like.
> The magnet-attach bezel is easy to swap and comes in a range of colors
The image is only of 3 of the colors.
I know there are a lot of criticisms of the Magic Mouse, but have you considered that you can flip it over and spin it around like a top?
One of the commenters wanted to sync his music library between his phone and computer without a subscription, and like, that's not a service
anyone offers. Like you're describing iTunes Match which is a paid subscription, or you can do it with Apple Music, or with Spotify premium, but there's no world where the DOJ forces Apple to do it for free.
And then of course the commenter yesterday who wanted to inspect and clean up the "System Storage" section of his phones storage. Like that is not going to happen here buddy.
I get it, you want low-level access to your device. It was super cool for me to SSH into my phone when it was Jailbroken. But I think that's going to stay in the realm of Jailbreaking.
My other thought on the Apple lawsuit was that Apple's policies in many of the areas being considered have improved significantly since the
DOJ started preparing the lawsuit in 2019. Ex. third-party default browsers, 15% fee instead of 30% for small developers, etc.
The HN Apple monopoly lawsuit thread is so funny because everyone is airing their personal grievances with Apple.
> RIP lala.com, my first and favorite music streaming service - bought out by Apple...As if I needed a reason to further resent Apple.
There was a comment that was really interesting about how Apple's issue is that it doesn't have good enough relationships with third-party companies, in particular App developers. And that's a big part of how I see Apple. This isn't about Apple vs. consumers, this is about Apple vs third party developers. The browser engine thing is a good example. You can argue all you want that more choice is inherently better for consumers, but I don't think end-users really care. I'm a web developer and I don't really care. So add on to that that I (as a self-admitted Apple fanboy) think that Apple's web browser is the best. And I don't understand what the angle for end-users is. You can make a similar argument for streaming music services or accessories. Garmin feels wronged because they can't make a watch that replies to texts on an iPhone, but I can reply to texts from my iPhone on my Apple Watch, so I don't feel wronged. And even if a Garmin could reply to texts, I would still buy an Apple Watch.
And so Apple is causing harm, and it's causing harm to its competitors. (Whether it's anti-competitive or just hurting them by making better products will be decided by the court.) But a lot of the HN comments seem naive in thinking that this lawsuit is about allowing indie developers to access the file system API or something.
How's it going VC-backed infinite-growth technology-industry?
Mermaid has raised 7.5 MILLION in VC funding to put charts in markdown.
So right now the prompt in SMASH is locked to the bottom of the screen, but I think I only want it locked to the bottom when you have
scrollback below it. If you have scrollback above and below it, it locks to the bottom.
This is weird because how scrolling works is also weird. I think we allow scroll-past-end, and we do auto-scrolling—the big one is that if you enter a command, that input command won't scroll past the top of the screen.
If you scroll-past-end, like when you first open a traditional terminal, the prompt is at the top of screen, but it doesn't lock there.
If you enter a command with long output, the prompt gets locked to the bottom while you don't scroll down.
If you enter a number of commands with short output, then you're auto-scrolled-down (like a normal terminal), while the prompt is locked to the bottom. The difference is that you can then choose to scroll-past-end, just like in an editor with scroll-past-end.
SMASH: button/mode that hides the scrollback history, and shows only the output of the last command
This is a way to implement/achieve one of the implicit goals of SMASH, which is to be such a good pager that you don't need a dedicated pager.
Terminal + shell + pager replacement.
Like I don't know what Hank Green was doing in 2015, but it wasn't this
=> https://good.store/
And I guess he was doing similar things, and I either didn't know about them or didn't care or dismissed him as looking for attention. It's easy to look at, Mr. Beast, for example, or a youtuber or influencer who's just gotten popular and starts promoting a charity or advertising their charitable donations as them just trying to continue and expand their publicity. Of course these types of people are donating in public because they're people who love attention and they think donating will get them more attention.
But because of where Hank and John are, relative to what else is being done on Youtube and what they've done in the past, it looks more genuine to me today. They're not trying to make themselves look good to people that don't know them; they have an established audience. And they've decided to direct that audience to charitable giving rather than towards "hank and john" NFTs.
I've never been a nerdfighter, in part because I think the label "nerdfighter" is a little cringe, but it's absolutely wild to look at
vlogbrothers in 2024 and just be blown away by the amount of good that they're doing and how positive the community is.
What if SMASH was (eventually) a compatible terminal emulator? If the prompt dropped away when it detected a "full-screen" app like Vim?
I've had the moment of clarity that I've needed to distill what Modern Minimalist actually is.
## Modern Minimalist Software Development Philosophy
1. Release quickly ("rolling release").
2. Favor code maintainability, in service of 1.
3. Add only essential features, in service of 2.
Features lead to complexity, complexity leads to lack of maintainability, lack of maintainability leads to inability to ship fixes, inability to ship fixes allows bugs to thrive.
To elaborate on my Rust thought the other day—because of the way that lifetimes and moving both work, adding a line that reads a variable
or calls a read-only function on that variable can introduce a compiler error, by either moving the value out of the variable, or using the variable in a closure with a greater lifetime.
It's 100% compile time, so it delivers on the Rust promise in that sense, but it's difficult to reason about the code.
When I predicted Etho last Thursday, I was not accounting for the fact that his video was going to be 53 minutes long. I thought it was
going to be a normal-length 30min one because he apologized for giving us 40 minutes last video. These are the factors you have to consider.
The Pizza analogy describes, really, the problems with over-modularization (of the sort that is particularly tempting in OOP, but which is
by no means specific to it. You can imagine the same complexities with composing functions in a functional language). Imagine you've been tasked to build a dynamic menu / billing system / ordering system of some sort for a pizza restaurant. You create a Pizza class, which describes a Pizza that the customer might order. It has a size, a price, a list of toppings, methods to ensure that all of the ingredients are in stock, etc. When listing out the menu of available Pizzas, you notice that a huge portion of the menu entries share configuration code describing common dough and cheese options. You, taking the opportunity to DRY your code, create a subclass of Pizza called CheesePizza. This allows you to share the cheese methods and declarations between a large number of your Pizzas. But you can go a step further. A lot of Pizzas have Pepperoni; surely that's a subclass as well. So you can subclass PepperoniPizza from CheesePizza and subclass BBQPizza from Pizza and MeatLoversPizza from PepperoniPizza and so on for every pizza on the menu.
A customer then comes in and orders a pepperoni pizza without cheese (as they are lactose intolerant). This isn't a hardcoded class, but your ordering system supports modifications; you can create a PepperoniPizza without cheese. But should you? PepperoniPizza subclasses CheesePizza—the defining feature of which is that it has cheese. Do the methods in CheesePizza work if the pizza doesn't have cheese? Or will they crash your system?
What's interesting to me about the problem at this point is that it is totally artificial. It's very clear what the customer wants, and it's not fundamentally difficult to represent in computer memory. If you hadn't done any of your refactoring, it would be very clear how to express this request: a Pizza with pepperoni as its only topping.
The solution is to not try to encode data in your type system or class structure or methods or functions or code. If you keep data about the pizza toppings at runtime (or as close to it as possible—you can still hard-code the menu), then your code becomes easier to maintain, despite the fact that it is less modular and uglier. You have every method in the one Pizza class and no method is able to make any assumptions about the underlying data.
This is semantic programming. Let your code reflect the semantic complexity of the real-world problem that it is trying to solve. Iterate the options explicitly as data instead of encoding them implicitly as code. A pizza can have any toppings in the real world—it should be able to have any toppings in your code.
It's important in modern minimalist software that you avoid this temptation to "simplify the equation" and that you avoid ending up with the most concise, modular, code possible. Many long-lived projects with attentive maintainers fall into this trap. They've been refactored so many times to support the current "menu" that when a customer walks in with a request for a "cheese-free pizza" (or analogous request that the maintainer didn't predict) there's no way to express it and the customer leaves disappointed.
I could read *The Three Musketeers*, for more Dumas, but I watched the Barbie Three Musketeers as a kid (I had a sister), and that version
was good; I think that's sufficient.
I love when someone links a source that includes a huge disclaimer.
I hate that this website is "Matthias complains about people on the
internet"
Count of Monte Cristo adaptation where the count is imprisoned in 1800 but escapes into the modern day.
I'm torn between wanting to watch Firefly for the experience, and wanting my only conception of the characters to be the XKCD versions.
I can't hate Rust because I know that I'm stumbling around like a blind man instead of reading and understanding the code that I'm writing,
but the language is just so complicated that it would take me hours to understand what's going on. You need to understand not just what a move is, but also whether every single data type in your code implements Copy or not. Optional. Result. Mutex. Cell. And all of them have different behaviors. Mutable reference, shared reference. And how do they interact with one another? I don't know.
It's frustrating writing strictly-typed languages like Rust because documentation exists in this state where the compiler is assumed to have
perfect knowledge. I'm reading documentation on multi-threaded access of a variable but I don't need multi-threaded access. However, I cannot prove to the compiler that I won't have multi-threaded access and so I need to write code like I have multi-threaded access, which can make the documentation difficult to follow.
Making a tiny bit of progress on SMASH. It's super annoying because web-tech is the only thing that I know well enough to be confident I can
get the level of detail that I want, but it's not a great choice for extreme level of detail. We'll see how it goes.
My favorite cursed RegEx trick is that `[a-z]` matches letters between a and z but `[-az]` matches `-`, a, and z.
Breaking news: The EU is drafting the "Make HN Happy Act," which requires that all electronic devices be capable of downloading code
from the internet and running it with root permissions and no kernel protections.
There are a lot of good one-liners in The Count obviously, but one of my favorite is Faria explaining, well,
> In Rome, I had nearly five thousand volumes in my library. By
reading and re-reading them, I discovered that one hundred and
fifty books, carefully chosen, give you, if not a complete summary
of human knowledge, at least everything that it is useful for a man
to know. I devoted three years of my life to reading and re-reading
these hundred and fifty volumes, so that when I was arrested I knew
them more or less by heart. In prison, with a slight effort of
memory, I recalled them entirely.
Three comments: 1) what an anthropology and epistemology from the author. What a statement about man and knowledge. 2) Ah, to live 200 years ago when all human knowledge fit in 150 books. No history after Napoleon, no world wars, no cold wars. No atomic or relativistic physics, no electricity, no computer science at all. 3) One of the things that makes this book so fun and effective is that Dumas is willing to write-away stuff like acquiring knowledge, leaving us time to read 100 pages of various characters’ suicidal ideations.
I wish I had time to make all the things I want to make. I'm almost certain Liteworks/TPC could work but I don't have the motivation or time
Venting HN comment here
> Discord is being used as a pretty tangible alternative. Conversations that would happen in the Reddit comments can happen in a Discord channel, and many big Discord communities have channels like `#showoff` where people can post bigger projects. There are downsides like the lack of SEO, Reddit-style comment replies, and the upvote algorithm, but there are also advantages like real-time communication and privacy (in that your comments won’t show up in web results years later).
Game Changer S6E1 spoilers!
Brennan confirms Chicken Parm is his second favorite food! What happened to 'I love all my children equally,' Brennan???
I praise my eye for detail, but it's really largely that when something goes catastrophically wrong I look for the responsible details.
I just don't understand why no one has solved portable package management yet. It's easier to create a Docker container with an overlay
filesystem (I don't think overlay is the right word, you know what I mean), than it is to allow the package manager to install things at a different location.
One of the key realizations of The Modern Minimalist is that some things just shouldn't scale.
Some things should.
> An API client is not venture scale.
This is ballsy because it's a little farther out, but I'm predicting Etho in 5 days. So Thursday.
I don't expect to nail this, I expect it to be +/- a day. We'll see.
Today in HN sorted by new text posts:
> What if you opened a novelty restaurant, like in Vegas, where the main attraction is “the wold’s
> longest breadstick”. And it’s just a long breadstick that is continuously being added to and baked on a conveyer belt. Then you could cut sections and serve it to customers.
The worst thing about programmers (including myself) is that they think you can solve social problems by writing enough code.
No joke HN user explaining how it would be better to download a folder of 13F forms and run a script to generate a CSV rather than having a
sortable table on a website.
Because making it a website will, and I quote, "reduce the pool of people that will use this."
Like I see the vision. This website doesn't need CSS or JS or to be a web app at all. You could go to the page and click a "download Thoughts" button that downloads a native executable that you run that produces a CSV.
So let me talk through this. Wbond is paid by SublimeHQ to host package control. No one else can host a different version of package
control because it wouldn't have the endorsement (in Sublime Text itself) or the financial backing of SublimeHQ covering hosting costs. Wbond doesn't have the time to manage updates to Package Control. Wbond is unwilling to allow anyone else to maintain updates to Package Control while he is hosting it. All reasonable positions on their own, but together they mean that Package Control cannot receive updates.
I want to learn how to print and bind books. There are a lot of documents that I would like to bring into the realm of physical space. A
subset: Why's Poignant Guide to Ruby; RFC 9110.
"I had such high hopes for the minds of our generation, if we had some goals, we could reach out and take them."
Why would use the AWS CLI to ssh into the instance when I can just go to `/__better_errors` and use a shell at the last error.
I haven't written a markdown link in years; since discovering Gemini. It feels so familiar and yet so strange.
Some modern minimalist thoughts:
Release early (before it's been 100% tested)
Release quickly (small turn around time)
Shouldn't be
releasing often (it's minimalist software). Compare to release-early-release-often from Bazaar.
Shouldn't have a lot of whack-a-mole if you design your system to be explicit and at times verbose (semantic; pizza example). Components should be independent. (Only end-to-end tests, to avoid solidification of code.)
Don't semver; rolling release of bug fixes.
Somehow I've never posted the pizza example of semantic/modular design?
My 2 tab management tips:
* Recognize that 99% of the time it's quicker to find something again than it is to find a tab containing it
* Regularly bulk close tabs
I wish I understood words.
I wish I understood why "TWICE AND COUNTING" sounds so good.
I want there to be four things in the universe. Me, my mom, God, and orange slices.
> How many things are in the universe?
> how many do you want
Active Record can "be used independently outside Rails" if you create a global struct called `Rails` and shim methods.
This is a post about how beautiful orange slices are. Possibly God's 4th greatest creation.* Orange, translucent, sweet. So liquid-y and yet
so solid. Dry on the outside. Supple. I don't know what supple means. With beautiful darker veins. Ah.
* Notwithstanding any human selective breeding.
The "regular functions CAN NOT capture outer state" of Grib also applies to Ruby. You need blocks to capture outer state.
The advertising line for the Apple Studio Display is "Immerse yourself in a 5K dream." But I don't want to be immersed in a 5K dream; I want
to be able to tell the difference between light blue and white. After 10 minutes screwing with color profiles I've decided my current Dell monitor doesn't have the color range required to display RGB and I need a Studio Display.
I love Linux's OOM killer. It's so good and fun and useful. :D
jk
My Docker container was killed because of tasks happening in a different docker container and Linux OOM Killer on the host is the prime suspect.
Antonoff talked about when you find success either in music or in relationships you have to take off some of that amour—"I don't care what
you think"
Features that Sublime Text will literally never have for architectural reasons:
Coloring find results a different color.
I'm not stubborn I'm just right. And the computer is wrong. And so there's no universe where I "give in" because it's just not possible. You
could try to convince me that 2 + 2 = 5 for as long as you want and it's not even stubbornness I'm just right.
It doesn't mean I'm not miserable.
I'm so hyped for SMASH because you can do stuff like buffering commands; like create a queue of commands to send once the previous one has
executed.
Read all of standard-in into a string, Ruby: `STDIN.read`.
Honestly Ruby makes every other "scripting" language feel like C.
Python `import sys; sys.stdin.read()`
Node: I honestly don't know.
I DON'T FRICKING MISS
=> https://thoughts.learnerpages.com/?show=7e43e619-7172-4ce2-b656-6cef9a055bff
It's funny getting recommended these "inappropriate hermitcraft" clips compilations because they're like 'haha he said wood' and I'm like :/
I think I caught the first half of the world-record stream, which was fun. Not the WR itself but the attempt before it.
Feinberg AA WR again is crazy. So much fun. Just so much fun.
The progression from putting his head down and crying after the 2:51 to "well that's a bit silly." "Like who cares" "I'm not crying bro" "This run sucks man" "I won't even submit it" "I'm kidding I'm kidding" "Season 3 boys" (with profanity in between the things I quoted obviously).
I wnrvturirhrvhrjebve. Rbjrgr r Brit r my brain hurts so much. It’s easy to convince myself that if I don’t attack people who slightly
disagree with me I’m either being disingenuous or compromising my morals.
I love indie software dev because the time from someone saying "going to try porting SerenityOS for the memes" in the
Catppuccin Discord server to a Catppuccin theme being merged into the Serenity OS theme repo was a little over 4 hours.
Said goodbye to 910 days of uptime on Luther. I think everything came up okay, although I had to rebuild mod_wsgi like I always do.
Edit (:46) we went from
Ubuntu 20.04 LTS (GNU/Linux 5.13.4-x86_64-linode146 x86_64)
to
Ubuntu 20.04.6 LTS (GNU/Linux 6.2.9-x86_64-linode160 x86_64)
Hofstadter's problem with regards to AI is that he thought there would be one jump from unintelligent computers to intelligent computers,
and we've had several small jumps. And we're not 100% at intelligence, but we're not where we were either.
Hofstadter thought that we would invent a method of modeling complex thought and that that computer would be the first computer to solve chess and the first computer to pass the Turing test and the first computer to be conscious. And we've solved chess; we have a computer better at chess than a human, which wasn't the case when GEB the written. And we have a computer (GTP-3 and other LLMs) that can generate text at a human-level (I'm being careful with my wording here, but text generated by GTP-4 is at an adult-human writing-level). And that wasn't the case when GEB was written. (That wasn't the case 3 years ago!)
But Hofstadter thought that those problems and AGI (as we would now call it) were the same problems and it's very clear now that they are not.
People are tearing Apple apart for supporting PWAs. Because they "feel" like Apple's PWA support isn't as good as Firefox. Firefox doesn't
support PWAs.
Edit (Mar 2): I'm also misrepresenting the situation. Firefox requires a third-party extension to support PWAs on desktop.
replaying every mistake ive ever made you know eating air going insane my mental is great listening to eljiuk
ljnawdnaj kndajk wndjaknd kjanw dkjnawdj nawdn ajnd akjdn akjwdn kajnw dknawd
how is this hour still not over?
/ljnjbhypuvuggyv g utyvju vuyvuyv v gv uvuvuytvyutfvv tyv tyv tyv ytv yv gvtytvygtv gv g vgvygvtyvgtuyvguv uj vuvjuvuvuytvfytv vytvvytgvfv v
yt vtvvytvmv ygtvivm mygtvgvutgfviogvmjuytgiyuv bmjutgykfgvmnvtuyuvu ntyuvfvn vtuyfiu vtyfuv ntyfyuv tyfuv nvuytfuvtuyfu nvtyu nvtyfvvytufmuytjvouytguvo8ygo8yg867g8y9pgf9p8gf97g97g97g079g y8gb 97g97g97gu'[9g
79]g8pyvfgpy8vfuytvcutcu cyc utc ucutcvutyvc7yv yuvc86voyn kpv8yf6yv nkpv8yf6n kpvfy8 y8pftkn pvy nyv 8yvp8vf8vy8vfy8v ky8fgv y8p y86fy ny8p6fy knvyfykvkyvfyifgvkiyvgfkykitvghvgjhvuyfg vyggytvguyvgvhghgvjbuoiuygyttt8yuiglh;lkfghcgy kgugyuipucyguuyuyytcg8797y79;y7gyftyfty88gyc ftfty
For a while my Github bio was something about how I didn't like talking about coding, I like actually coding.
The problem is that that I'm better at talking about coding than I am at coding.
I'm over React. It is a disaster and a nightmare to work with.
One of the issues is that React comparison only works with primitive JS object types, which essentially means you have to work entirely with primitive types with React. Or *hard*-commit to something like Immer and never construct objects without it. Maybe Redux is better; I've never used it. It's just a nightmare.
HN user: 'surely opening a man page doesn't allow for arbitrary code execution'
Reply: 'yes it does'