Zig lets us:
* Easily cross compile to multiple platforms
* Direct bugs (including undefined behavior) to a central panic handler
* Use modern and innovative features like slices, tagged unions, error sets, and comptime
without needing a runtime, garbage collector, or libc implementation, making it suitable for freestanding.
Brackets tell you it's capable of storing multiple items. To know how many items there are, look inside the brackets:
[N] - an array, there are N items (comptime known, the number of items is a part of the type)
[_] - an array, the compiler will infer the number of items from an array literal
[] - a slice, there are a run-time known number of items (stored as a pointer and a length)
[*] - there are an unknown number of items
[*c] - there are an unknown number of items or maybe this isn't even a multi-item pointer, it's impossible to tell because this is used for Zig that's auto-generated from c code
And then you can add * before any of these to represent a pointer to them of course, and don't get me started on sentinel termination.
The Green brothers have turned a successful internet phenomenon into a community directed and committed to certain causes, and I wish(ed?)
Monroe would do the same with XKCD. It's weird to make the comparison, because the format of a to-camera youtube video is better for a call-to-action. But Monroe isn't afraid of making comments about political or other causes*, and he has a call-to-action to pre-order his new book. But he's never done a call-to-action for anything else.
*There's a lot of nuance here that I don't want to unpack right now.
I mean I know it's a meme to talk about converting checkout percentage but I'm trying to buy something, I've put in my payment information,
and instead of charging me they require that I put in my email and their form is glitching out. Like they lost a sale. I'm sorry. Your page is broken.
I gave you my credit card but I don't want to give you my email, how does this make sense.
> From a bit to a few hundred megabytes, from a microsecond to a half an hour of computing confronts us with completely baffling ratio of
> 1,000,000,000! The programmer is in the unique position that his is the only discipline and profession in which such a gigantic ratio, which totally baffles our imagination, has to be bridged by a single technology. He has to be able to think in terms of conceptual hierarchies that are much deeper than a single mind ever needed to face before.
People say Rails doesn't scale, but I don't think the issue is with Rails. I think relational databases don't scale. They scale in the
number of records, but they don't scale in the number of datapoints being tracked, and both increase linearly with the size of a business. So you either end up with 1000 columns in one table or 1000 tables (or both). And you're like "man I should have used a wide column store or a data warehouse."
A lot of people with social anxiety assume that other people are acting in bad faith. But I don't. I always assume that everyone is acting
in good faith. So when someone on Cohost says that the raspberry pi founders are sexist for not including a power button on the raspberry pi I assume that this is a honest good-faith take that represents the genuine beliefs of this commenter. I assume that other people are being reasonable and fair and then I assume that "reasonable" looks like calling someone sexist for not including a power button, or racist for not knowing the name and general location of every country.
And I can't bring myself to claim that this was a bad-faith take. I don't think it was, because it was posted four comments deep in a thread on Cohost, why would you be trolling there. And I'm misrepresenting it, and I feel bad about that.
But if this is what a reasonable take is then I don't know why I should be talking to you. I don't know. I don't know. I don't know. I love you. I hate this. I'm going insane. I need to
It’s wild to me how proponents of open market places, in particular with regards to criticisms of Apple, never admit that any of Apple’s
success is due to being a closed a market place. People say things like ‘oh what a shame that the most closed marketplace by complete dumb luck is the most popular.’
Like, you don’t think there’s a correlation there?
Like, Android is right there. It’s about as close to a scientific control group as you’re going to get. It has the ability to install apks from the internet and it doesn’t matter and it doesn’t improve user experience.
Linux on the desktop exists. And it existed ten years before the iPhone. But people don’t want Linux, they want iPhones. And now the people that want Linux are trying to turn the iPhone into Linux.
I’m not defending Tim Cook here. He wants money. He bet the company on services revenue and now he needs that services revenue.
But from a user experience perspective, I would rather have no App Store than a bad App Store. I would replace the sign up button with a “contact developer relations” button and negotiate all deals with developers behind closed doors.
I would still use an iPhone if it didn’t have any third party apps, is my point.
There's a John Green quote at the beginning of Crash Course.
And he has the incredibly challenging prospect of convincing people, but
particularly highschoolers, that world history is worth studying.
=> https://www.goodreads.com/quotes/495430
I've said before that the amount of focus that our culture places on the president of the US is unhealthy. But I want to avoid advocating for the type of anti-intellectualism that leads to you saying that learning world history is not relevant. And so I have to be careful to avoid arguments like, 'it doesn't effect my day to day life' or 'other people will care about it' (because other people will care about it until they don't, and it won't effect my day-to-day life until it does).
And I don't think it's about nuance. There's a bit in Fahrenheit 451 where they discuss political candidates based purely off of appearance and the conversation is not nuanced but the conversation doesn't need to be more nuanced.
I think a lot of it is being able to judge things based off of a larger context, and not just what's happening right now.
It's crazy to think that Europe didn't have potatoes and America didn't have horses until after Columbus.
It's also crazy to think that Columbus and the first Trans-Atlantic trade was 200 years before 1700s colonialism.
You could argue, and some have, that the introduction of potatoes from South America to Europe is what enabled the industrial revolution.
I feel like this is a little dubious, but better to have dubious numbers than no number, am I right.
=> https://www.nber.org/papers/w15157 Source
`comptime` was a mistake. The keyword could be removed from the language.
It doesn't have a use-case. It has things it does, but it doesn't have a use. Keep the semantics the same, but the compiler should be in charge of deciding what's comptime and what's not, because I have never seen a human Zig programmer do a better job than the compiler. Remove explicit `comptime` blocks, remove `@Type`, remove `comptime` function arguments, remove `comptime var`. Add semantics for the ability for the compiler to eagerly call functions at compile time.
Honestly I'm kind of sad that I learned Ruby too late. I will always look at this Ruby code and shake my head because it's just not how I'm
used to coding and I'm too old to learn a different way to do things.
This thought brought to you by `a.eql?(b.presence)`. I would have written `a == b`. At some point it's just a different way of thinking.
I'm hitting a very weird and very annoying bug with https://matthiasportzel.com. I'm starting to have an idea of what's going on
though. I'm getting "Secure Connection Failed" sometimes, but only sometimes. And it's not an invalid certificate, it's some other sort of TLS error.
=> https://support.mozilla.org/en-US/kb/secure-connection-failed-firefox-did-not-connect
It doesn't reproduce in Curl or with cache disabled in Firefox.
I just hit it in Safari, maybe, it said "Server Unexpectedly dropped the connection."
Okay, I just hit it with curl by passing the If-None-Match and E tag. So yeah, it has a cache hit, returns 304, but then incorrectly, I suppose, closes the HTTP/2 connection before the client expects.
It used to work? So it's not like Apache is just totally broken, but I might switch off Apache at this point anyways. A combination of bad defaults and a lack of HTTP/3 support.
I just, we're done. Nobody's actually ever made a programming language. It's over. Zig's over.
"we are not accepting new proposals to change the language at this time" so I'm not going to submit a proposal and the only people who are going to submit proposals are people who don't care which seems like a bit of a negative selection bias.
“Back in the day, the barn over here was the largest freestanding metal thing west of the Mississippi”
People from California really are like that. When I was a kid in California I distinctly remember my dad pointing out the largest stain-glass window west of the Mississippi.
Github's design team deserves a raise. Better than any TUI or GUI or other website. Even just down to the level of displaying code.
This is the type of thing that its easy for engineers to forget about, but it matters. When we reminisce about the popularity of Github in the 2010s and 2020s, are we going to remember that it just looked better?
Sublime Merge and `git show` and Gitlab look good. I'm not dissing them. But they don't look as good as Github.com.
Github designed their syntax highlighting to look good with red/green diff backgrounds, and Gitlab is red(strings)-on-light-red and Sublime Merge is purple(keywords)-on-light-red and `git show` doesn't syntax highlight the underlying code at all.
I've been trying to figure out what the "my time is not valuable" duel is for social anxiety. The last post was getting at maybe it being
"imperfect relationships are okay" but I may have missed the much more obvious parallel, "social interactions are not important/valuable."
Reasons I don't talk to the person in the grocery store:
- previous social experiences have been stressful, negative feedback loop
- Normal nerves from talking to a new person
- I don't see a possible positive outcome (only neutral and negative outcomes, this is something I can work on)
- But on a meta-level, my issue is that I view this conversation as important when I shouldn't
First I want to say that John's Green's skill with the English language is unfair :)
His vlogbrothers today is heavy.
In reply to him, as I work through my own mental health dents, I wanted to say that my core belief about humanity is that people are good, but also that people working with good intentions hurt other people, and that that is unacceptable. Without addressing the validity of this from a factual or logical standpoint, it sucks as a core belief because it leads to avoiding people, even when I or the other people have good intentions. And it's even harder to work through because it's not obviously false.
-- 2 min prayer break --
So it's obviously false that avoiding other people is a moral necessity. I think "acceptable" is not a good way of looking at it. This is where my perfectionism clashes with my pragmatism.
Except I'm not pursuing perfection any more, I'm pursuing excellence.
I have a childlike zeal for eradicating things that are bad or broken; but I shouldn't be trying to do that, I should be trying to fix things that are bad or broken and fix imperfections. I refuse to \*accept\* imperfection. And I don't want to change that about myself. But pursuing excellence isn't accepting imperfection or rejecting people.
So I guess that's the resolution. Always better relationships. Always learning more about other people in order to do them less harm. Never perfect, until heaven.
(Doing your homework for you, cross links:
https://youtu.be/0Co-8ZcN7CYhttps://thoughts.learnerpages.com/?show=f433c9c1-cff5-4d13-90a2-300d4489bca2https://thoughts.learnerpages.com/?show=d6a00c78-e1e9-4b50-aaaa-992227276463https://thoughts.learnerpages.com/?show=75ef9f48-ee9b-4ed6-8a27-6cd954b55bc0)
Unicycling is one of those things that I do enjoy, but I feel like it's not worth doing unless you do it 1000%.
Juggling and rock climbing are similar.
If you talk to someone who doesn't do it, they're like 'that sounds dangerous' and if you talk to someone who does do it they're like 'can you do a Jamaican headstand yet' and I have to be like 'I don't know what that is and I don't care to learn.'
Baking isn't like that. I can talk to someone who doesn't bake and they're like, 'cool, baking' and I can talk to someone who does bake and I have my recipe that I like and there's no comparison or expectation that I've made whatever they enjoy baking.
I read an HN comment a while back, probably years ago, about how human productivity could continue increasing exponentially infinitely if we
allowed for digital / virtual productivity gains. And at the time I wrote this off as a sci-fi hypothetical, if interesting philosophically. But I've recently realized that video games are exactly that. There's a non-zero amount of serious engineering work that goes into optimizing flying machines in Minecraft to get diamonds. And unlike other forms of entertainment, (including all historical forms of entertainment), diamonds in Minecraft are a completely artificially scarce resource. So even if we run out of diamonds to mine in the real world, we could continue to mine diamonds in Minecraft at an exponentially increasing rate.
Just did an Apple Vision Pro demo. Three quick take aways:
It didn’t fit well. It kept feeling like it was going to move around on my face
Pass through was insanely good. I could forget that I was looking at a screen
Some things felt really natural, others were really awkward. A couple of times I had to look away from something and then look back for it to pick up that I was looking at it. Most of the UI elements were intuitive enough.
It’s just not super comfortable. Taking it off shouldn’t feel like you’ve been wearing a motorcycle helmet for an hour.
I just can’t do it. I can’t talk to people now and I can’t talk to people for the rest of my life and I don’t even know.
It’s just everything. Like physically I’m high strung and stressed right now and absolutely nothing is happening. This is like clinical anxiety, right? Absolutely nothing is going on, I need to put stuff away in the refrigerator, let me do that.
Okay that’s done. I got a drink too. I’m so stressed though. I can’t take it. My life is just over. There’s nothing going on. I feel like I’m going to throw up or start crying. Maybe this is normal. People have bad days and sad nights. I’m just so lonely and so isolated.
My parents and other people trying to encourage me including the voices in my own head say how easy it is. How I can do it. But that just depresses me more. Because it’s not easy.
On the other hand, Brennan Lee Mulligan talks about how when he first moved to a new city, he knew no one, he felt like a ghost and it was the worst year of his life. And this probably isn’t the worst year of my life but if it is it’s not that bad.
You can buy a fricking island in the fricking middle of the fricking San Fransisco Bay for 25 million.
You can hardly buy an empty lot in San Fransisco for 25 million! It's undeveloped which I guess is an L, but like. Put a billboard on it, you can see it from the Richmond bridge, and charge YC companies for advertising.
I guess the price is reasonable. But it's still shocking to me that an island in the middle of the bay is privately owned much less for sale.
This is SMASH next to iTerm; SMASH has `antialiased`, not default, and iTerm has "use thin strokes for anti aliased text"
And these are close enough to the same for me. Of course, we can font-weight with SF Mono to get even better rendering in SMASH. (Love SF Mono. If your font isn't at least 100s, like, I don't know what to tell you. Obviously variable is the sexiest, but...)
When you’re a kid You don’t have any power and so it’s difficult to feel powerless one of the things that I did feel powerless over as a
kidyou don’t have any power and so it’s difficult to feel powerless one of the things that I did feel powerless over as a kid was time I manifested itself as time sickness was
I need to get out a microscope or something later. On my retina screen, it shouldn't be doing subpixel anti-aliasing, it shouldn't matter or
care. And it doesn't appear to be. But it appears to be doing pixel-anti-aliasing differently depending on if `-webkit-font-smoothing` is `auto` / `subpixel-antialiased` versus `antialiased`.
The text rendering in SMASH is wrong somehow.
This is why I never get anything done. I can't ignore these things so it kills my motivation
to work on the project. It's not even wrong necessarily it's just bad. It's not sharp enough, not punchy enough. I might just need a light theme.
Text on Thoughts on the other hand looks great.
Edit (3:59): being a perfectionist will drive you insane, I do not recommend it. Look at how bad SMASH looks compared to iTerm:
Going to write a satirical Zig proposal suggesting that all functions be marked as `inline` because systems programmers don't know how to
write complex functions or reusable code. So most functions are small with a limited number of call sites, meaning that the prelude is unnecessary instructions.
There’s like a 2012 Gruber article I found on HN where Gruber is rebutting someone that’s claiming that Apple’s stock price will surely
decline now that Jobs is dead because Apple isn’t an “open” company.
I feel like Apple fans deserve to act a little smug, because in 2012 Gruber and Snell were defending Apple when Apple was not the most valuable company in the world and a lot of people expected it to start floundering any minute. And a lot of the arguments are the same. Gruber has a comment about Linux on the desktop not being successful. But a lot of the tone is different today because Apple has been so successful. (They may be complaining about the lack of third party App stores, but they’re insisting that Apple will lose to Android because of it—not calling for regulation like today.)
=> https://news.ycombinator.com/item?id=5303418
In 100 years Apple v Windows v Linux will be like Greece v Rome v Egypt; it’s going to be wild to watch the power shift, not over decades, but over the course of a couple of paragraphs in a textbook.
It’s wild to realize Jobs died just 4 years after announcing the iPhone.
The iPhone is the most successful consumer product of all time. It’s more of a legacy than most people could ever dream of. The legacy of the iPhone lives on over a decade after his death. And it’s sad Jobs didn’t get to see everything that Apple is now. But it’s also touching and inspiring how in just a few years he was able to show us all the iPhone so vividly that even without him it continues to evolve. Leading the iPhone to 15+ years of success would be impressive, but leading the iPhone with so much passion for 4 years that it continues to grow a decade after that is unheard of.
After Jobs died people seriously questioned Apple’s prospects without a visionary at the helm, but I think we failed to anticipate that Job’s vision was so pronounced that it continues to extend to Apple’s enterprises today.
I have nothing but respect for Tim Cook. His ability to execute on Job’s vision is not to be downplayed here.
I think dead internet theory is a useful reminder that what makes us human is not on the internet, and that it's easy to forget that the
people on the internet are human. Some people take Dead-Internet-Theory as permission to dismiss anyone who has a controversial opinion or a lot of time online or a weird writing style as a bot. My take-aware from DIT is that we should be looking for the humanity, the humans online, not that we should be looking for the bots.
Also, DIT predates generative AI by quite a bit.
Monday mornings are hard because I feel bad for not talking to people over the weekend.
I feel like I can’t do more without falling apart. Like I’m not falling apart now, I’m doing fine, but if I tried to go bowling next weekend my life would fall apart which is silly.
I just hang out in the Zig Discord server and laugh at people trying to use a systems programming language to do things that I would not do
with a systems programming language.
This person wants to know why the standard library has functions for dealing with OS file descriptors and not a Path datatype. They're trying to write a build system for a legacy project. I'm like, if we assume that your project really needs a custom build system (make, just, earth, and the zig build system are all not applicable, which I find difficult to believe), why does your build system have such stringent memory or performance or interface requirements that you've decided a low-level systems programming language is the best option?
This person wants to write a command line tool "without heap allocation". They haven't even started yet. 'Okay guys how do I not do a heap allocation.'
This person wants to, quote, "link two static libraries." That is not how linking or libraries work.
This person is trying to write a binary search and "avoid branches." They link to a compiler explorer and give no further context. Have you done a benchmark and established that branches in your binary search implementation are actually causing a performance problem or did you write a Hello World program in Zig and copy-paste it into compiler explorer and then go on the Zig Discord to complain about how there are branches in the generated code? I don't know. They have run some benchmarks; I don't know. They probably know more about computer engineering than I do.
Oh yeah, "I come from Rust" how do I use traits in Zig. Bro this is C with meta-programming we do not have traits here. Read the language ref and redesign your program.
> My anxiety is so high right now and this really help me
> breathe my love. everything will be okay ❤
> 😭 thank you for that. Do we know eachother?
> we don't i just wanted to tell you it'll be okay i know what it's like to have really bad anxiety
People talk about feedback loops as a way to avoid accumulating error, but I don't. I see a feedback loop as removing the need for precision
If you have a feedback loop, you don't need precision. Think of learning to bowl. If you want to hit the pins, you could add more precision to your throw. Or, you could put the rails up. The rails act as a feedback loop, redirecting the ball if it goes too far from the center, and allowing you to hit the pins even without precision.
Hank talks about "brain crack" (and he attributes it to someone)—your own ideas can be a kind of drug that you get addicted to, and I relate
to some of that.
SMASH is probably the most recent example where I got so high, if you will, thinking about the idea, but the execution wasn't there. And there have been other examples.
I avoid using "I" or "you" in code review and professional contexts to avoid placing blame or creating division or "sides" ("my option" or
"your solution") but by switching between passive voice ("needs to be updated") and 1st person plural ("we need to update") I can create similar effects.
It's interesting to hear Hank talk about the beginning of YouTube—he said that he thought there would be museums about it in the future. And
I've felt a similar way before. Not about Youtube but about the stuff that I'm working on. And obviously Hank was correct and obviously I haven't been correct so far. I had a similar thought about Technoblade—his mom talked about how he was committed 100% to Hypixel in 2014, and he was obviously correct. But I was committed to Khan Academy in 2014 and I was not correct. Just interesting.
There’s an emotion,
roughly equal parts loneliness, shame, and injustice.
It’s very similar to a tomato party issue, but it occurs when you’re in a group that is actively excluded. (But not when you’re individually excluded.)
It makes me feel very small and very sad. And I’m perhaps irrationally afraid of it.
A good way to describe my social anxiety is that it feels like punching someone else in the face.
Even if I could, and even if I wanted to, there’s a mental block that stops me from acting unreasonably (punching someone in the face) (initiating a conversation).
“it feels horrible to create from a place of defense. For example: you will find it exceedingly difficult to write if your motive is trying
to convince people that you are not dumb, or not boring, or if you’re hoping that you will not offend anybody.”
“talent doesn’t feel like you’re amazing. It feels like the difficulties that trouble others are mysteriously absent in your case. Don’t ask yourself where your true gifts lie. Ask what other people seem weirdly bad at.”
This one hits too close to home. I often get very frustrated because it doesn’t feel like I’m good at programming, it just feels like everyone else is weirdly bad at it.
“let’s say you’re listening to a piece of music. Are you sinking into it, awash in emotions? You’re in the appreciative mode…A lot of capable, intelligent people suffer because they do not have the ability to switch out of the evaluative mode, or even notice that they’re in it.”
https://sashachapin.substack.com/p/50-things-i-know
I've had an insight into how to build LFSA—divide the page into "workflows" or "flows" (e.g. a form that the user is filling out, or an
interactive widget). These flows would hold all of the state for a given flow—no child components could hold state. This lets you leverage functional state-flows-down React-like rendering. This state could be stored in the browser's LocalStorage or just memory and signed like a JWT. You could then define mutators for this state, and execute them on the client, then the server. The server, critically, doesn't need to store a copy of this state. And it doesn't need to re-implement the rendering. That is, normally I've thought about the server in LFSA as authoritative of rendering state, but it doesn't need to be, it just needs to be authoritative over mutations to state.
This does have some drawbacks, but it's probably fine.
One of the senses or feelings I have about code that I pay attention to the most is whether something should be complicated. And if it
should be complicated than I'm okay if the code is complicated, but if something should be simple then I want the code to be simple. And it seems like a lot of people don't have the same sense.
I talk about how Stop Worrying saved me as if I came up with the idea and then implemented it, but I didn't. I was pushed off the cliff and
thought about what I was feeling as I fell and now I can fly by remembering that feeling and jumping off myself. But I don't actually know, if you had handed me Stop Worrying three years ago, if I would have jumped.
The ANSI terminal spec describes a bright color variant, and it's a little vague what "bright" means exactly, is it just lighter? Well, it
means "turn up the power on the cathode ray tube when drawing this character. You guys still have cathode ray tubes, right?" Literally brighter than the rest of the screen. Anyway, have fun with that.
Parent child relationships are going to evolve in the next couple of decades in ways that will be interesting. They already have changed in
a lot of ways.
Why is life so big.
“From the stories, I expected the world to be sad. And it was. And I expected it to be wonderful. It was. I just didn’t expect it to be so big.”
I think about Eve online sometimes.
“We need to breed a new generation of drivers who find driving in a more relaxed manner can be just as rewarding.”
(On technology coming to the EU that limits cars to driving the speed limit, and is impossible to disable.)
This is way way too authoritarian for me.
The government has no obligation change public opinion, and there’s no justification to using hostile technology in an attempt to corral people.
I’m not even staunchly opposed to the regulation after thinking about it, but I hate that this article and quote is justifying it as a natural thing for the government to do when in fact it is an example of a government becoming increasingly authoritarian. The difference between a highly regulated state and an authoritarian one is that the authoritarian states expects you to thank it for ‘making you a better person.’ The dream of authoritarianism is to change people.
Before stop worrying I was very hard on myself, and it felt like something was wrong with me because I was trying to do the work in a
small amount of time and then blaming myself it wasn’t getting done. It was useful for me to realize that the work was non-trivial for me.
When it comes to my social anxiety I feel similarly, like it’s entirely something wrong with me.
More notes from the Sam-Brennan interview (editing continuously while watching)
'Ideas are dispensable' -both
'The ideas need to be simple so that your execution can be interesting' -Sam
'execution is everything' -both
'there's nothing i believe in more as a universal force than luck' -Brennan
'and what rare vision do you as a notable-success-person-have' -Brennan (this is what I'm doing right now)
'I hang out in very progressive spaces online...work is not capitalism, work ethic is not bad. Capitalism is the exploitation of work...I wrote twice as many questions for um actually then I actually submitted, and is it healthy or unhealthy. You need to work so hard that instead of jumping when opportunity flies over your head, you are hovering in the air through force of will waiting for it' -Brennan
'we stole CollegeHumor's influence. If we had tried to do this from scratch, very different story' -Sam
'you can't say to your younger self, take it easy until [this time that it matters]' -Brennan
'coffee's good for you, you should have two pots a day' -Brennan
'I do not engage in proportionality, so you've opened the floodgates to a world that you do not and cannot understand' -Brennan
'I take this role of "this is outrageous" because I know I'm going to lose' -Brennan
"Sometimes, magic is just someone spending more time on something than anyone else might reasonably expect."
Teller
"If you're efficient, you're doing it the wrong way. The right way is the hard way"
Seinfeld
"It's like more work than is commercially responsible"
Sam Reich
I think what’s weird to me about canceling content creators is that me being a fan of them isn’t an endorsement of their character.
Like if I say “I like this band” I’m saying I like the music, not that I assume that the lead singer has a good relationship with his wife.
So then if it comes out that the lead singer has a bad relationship with his wife, it’s annoying that that effects the perception of previous statements.
And I’m not saying it shouldn’t, at this time. I’m just saying it’s weird.
Because there absolutely is a difference between not knowing and knowing it’s bad, and that should effect how you perceive the media. But I don’t think that should invalidate the parts that you like.
Maybe what I’m getting at is just that it’s not black and white. See also my other thoughts on death of the author.
But part of my point here is that I e.g. listen to music by people whose character I assume is bad. And so if a story came out that they were bad in their personal lives, I’d be like, yeah.
And I’m not talking about criminal offenses, that’s a different category, but a lot of the things that people get cancelled for aren’t criminal.
I wish I kept a journal like Thoughts or similar when I was younger, because I remember a lot of moments, a surprising number of moments,
and some feelings associated with those moments, like the feeling of flying through the air after running and jumping off a bench at recess. But there’s a lot that I don’t remember.
As I do every couple of months, I've found a new widely underrated minecraft youtuber.
=> https://youtu.be/xDXz2kM8iwY
What a prank.
It's obviously not HermitCraft production quality in terms of like, people's mic setup. But it's more enjoyable than some HermitCraft videos I've watched, and the video as less than 100 views.
In a Safari-only-supports-15-percent-of-the-web moment, HN commenter argues that 60% of the Great Barrier Reef has been wiped out.
30% coral coverage is actual very good (bar limitations with coral coverage as a metric—the liberals insist that you shouldn’t draw any conclusions from the current coral coverage because climate change is going to kill all the coral).
This is a hot take, but I think that Zig's `try` is a bad idea. I at least jump to it when I mean "this is out of scope for this function
to handle"—but if it's out of scope, you should panic, either with `std.debug.panic` or `unreachable` (if `unreachable` is applicable to your application).
If your application needs to handle it, I think at every level you should catch and throw a new error. Zig will unwind throw-stacks (I forget what it's called), so it only gives you more information. The idea of a function that uses `try` but only propagates errors created lower down in the call stack, e.g. returns `void!`, I think is a naive simplification, and in most real applications (especially those with Zig's design goals of correctness) you should be forced to catch and re-throw.
In Lisp, it's considered bad form to make something a macro if it could be a regular function. In Zig, it's considered bad form to do
something at runtime if you could do it at compile time because the compiler isn't smart enough to perform any optimizations itself so you better just run the whole program at comptime. Make every function inline. Unroll every for loop at comptime. Store your data inside of types just to make sure that they don't take up space at runtime. Include some inline volatile asm that does nothing to prevent the compiler optimizing away your important program logic.
Unlike C, Zig has good semantics for stuff like "runtime size" and "compile-time-known constant" but the Zig programmers are so used to the C compiler doing whatever the hell it wants that they don't trust the compiler. So they abuse their newfound power to try to coerce the compiler into generating what they want, but Zig isn't the C compiler. Zig doesn't hate you. I think the best example is this hang function from microzig:
https://github.com/ZigEmbeddedGroup/microzig/blob/0c3293fe36167ea9ea1a9d5a0554a6da38d3aac1/core/src/microzig.zig#L65
Zig has semantics that the C compiler doesn't. One of them is the concept of `noreturn`, which lets you tell the compiler that the function will never return. Another one is `asm volatile` which lets you run inline assembly which has side-effects the compiler doesn't know about. The microzig author uses `noreturn` to denote that this function will never return. And then, just for good measure, also includes some volatile assembly to make sure that the loop isn't optimized away because he doesn't trust that the compiler will honor the `noreturn` promise.
Edit: 11:33: To clarify the "runtime size" point—variables have a well-defined runtime size, but I think that can be deceptive because as I've alluded to, you can replace a constant variable with a custom type that has zero runtime size.
```zig
const a: usize = 8;
@compileLog(@sizeOf(@TypeOf(a))) // 8 bytes
x += a;
// becomes
const a = struct {
pub val: usize = 8;
};
@compileLog(@sizeOf(a)) // a is now a type so its runtime size is 0 bytes
x += a.val;
```
TADA!
It should be obvious that both of these compile to the same code (especially with optimizations, the constant 8 will be inlined) and you haven't actually saved any memory, but sometimes I'm not so sure that Zig programmers realize this through their excitement about being able to control the runtime size of their variables. (e.g. Microzig having "zero sized" pins)
Zig programmers are going to drive me fricking insane because comptime requires similar amounts of abstract thinking to Lisp macros, they're
very similar features, and Zig programmers are like computer engineers who are very smart but don't think as abstractly. So they're like 'if I make a different type for every constant variable and store the value in the variable metadata (because Zig lets you do that) then the variables have zero runtime size.' And I'm like. The net size of your program has not changed.
Maybe I should let some words out of my brain instead of into my brain. Fuzz. Fourth good morning not addressed to the character from umbrella show. Yellow ladders. Walls and movement and flight. Light blue grayish wings soaring upon seas between the high and fair places.
I’m so sad and I shouldn’t be. Like I’m doing okay but I feel like it’s going to get worse and I want it to get better.
I’m worried I’m going to forget my childhood and lose my loved ones and it’s not rational but it’s 4am and I’m scared and I’m not equipped to handle being scared.
The SD card specification website warns that excessive downloads,
"more than what would normally be used by one individual"
will be detected by their system, which is funny to me because I'm pretty sure the number of downloads of the SD card specification normally used by one individual is zero.
It's important to recognize that, as is almost always the case, AirBnB didn't undercut the price of hotels, they provide a better experience
Or they don't provide a better experience, in which case they die. Similarly for Uber—yes they undercut the Taxi industry's union and regulation, but they also made it possible to order a ride from an app on your phone. And I feel like when they first launched Uber had nicer cars than taxis, but that could be just my experience.
I realized that part of why Stop Worrying helped was because I shifted my definition of success. And I realized I don't have a
hard definition for success in a social setting. Stop Worrying let me stop worrying without causing me to stop trying to be successful. I just changed from definition of success from something that was difficult to achieve because of factors outside of my control, to something that was within my control.
God did not put me on this Earth so that I could find joy in mediocrity or imperfection or broken things. Some people have that gift, and
that's beautiful. But that's not what I'm doing. I have a passion for fixing problems and I'm not going to try to extinguish that passion.
The world needs Truth.
> Once you're locked in, if you're paying Oracle a million dollars a year and you did a three-year subscription, what do you think is going
> to happen for that renewal? It's not going to be a million dollars, it's going to be as much as Oracle can generate, and if you are locked in and can't move away from Oracle at that point within 30 or 60 days, your renewal is going way up.
I think it's going to be funny if atheists re-invent church but without the tithing part.
Christianity is radical in a lot of ways, and some of those things have direct parallels in secular tradition, or I predict that they will in the future.
Like traditionally many holidays in the US have been religious, but atheists don't (generally) dislike holidays. And so I think that if our culture continues becoming more secular, we will end up with more secular holidays. (Pride and Juneteeth come to mind as relatively new widely recognized secular holidays.)
I hope and I suspect that in the future, in the same way, atheists will "re-invent church." Not in the sense of "pastor" and a "sermon" (although it is done; if you google atheist church). But in the sense of a regular meeting of community members; there are any number of organizations or clubs or groups could expand the fill that role. (Although I think it would be important to have it be a larger group of people than just a group of friends.)
But I anticipate that it would be easy to miss the aspect of church where, at least some part of, the congregation tithes. 10% is really an unintuitively large amount of money.
When they said they were delaying the Game Changer finale to give time for production I assumed that a ton of stuff happened and they needed
to take more time in the edit to squeeze it all in. In reality, very little happened and they needed to spend a bunch of time in the edit to create graphics of every thing that every player said to display on screen so that they didn't have 2 episodes of us staring at players sitting on couches and not moving.
The weird thing about indie music is that it's not real
Edit 12:50: what I mean is that underscores (who I think of as indie) is signed to the same label as Alicia Keys, who I think of as a mainstream pop musician.
Planet 9 is so funny to me because it's like a real-life Russel's teapot. Russel's teapot is a thought experiment so you can reject it with
"there's obviously not a teapot" but Planet 9 is a real theory and scientists just haven't been able to prove or disprove it. And I keep expecting someone to know. Like surely even if there's not a consensus there's a "likely" or a "probable" explanation and not this 'well science just can't answer this question, sorry, check back in 10 years.'
Most days I would rather wear the shoes that I want to wear, rather than care about what other people think of me.
But I hate that that’s a choice I have to make, first of all. And second of all, I hate that there are days like today where I would rather stay inside than go outside wearing shoes that other people don’t like.
I cannot optimize my computer programs for efficiency because if you're trying to be efficient there is only one correct solution and it is
a custom integrated circuit. Every thing else is inefficient. As soon as you introduce a CPU it's inefficient. If you can't afford a custom IC you can try to get away with an FPGA but it's not as good. It's just fricking not.
This is why systems programmers drive me insane. If you're worrying about efficiency at the level of individual assembly instructions you just use an FPGA. Leave me the hell alone and let me write my bad slow Zig code.
This is a hot take: one airline should round their prices up to the nearest $100. When I’m paying $374 dollars I feel like I’m
buying a commodity good. It makes me feel like I should be min-maxing price and trying to find a $372 ticket. If all tickets were $399 or $349 or $299 I’d feel like I was buying a comprehensive travel package. And obviously for some people cost is their #1 factor, but I’m willing to disregard cost to get a flight that leaves at the best time.
Also, we should bring back travel agents.
In this code we need a function that returns its value unchanged. Lodash has a helper that does this, called _.identity. So we can just do:
`(v) => _.identity(v);`
This is so funny to me. To explain the joke, the point of the helper is that you don't have to create an arrow function (point-free programming), you can just use `_.identity`. Instead, the person writing this code created an arrow function that calls `_.identity`. If you're going to create an arrow function, just return `v`.
I am smart enough, and if that's actually what is required, I will write the encoder interface in assembly. I just can't tell if it's
actually required or if this is computer engineers writing things in assembly for the fun of it or to make themselves feel superior.
I really don't want to but I also hate feeling like I'm cutting corners and creating garbage code because I'm lazy.
Someone made a really interesting comment about Microsoft: that they've been dying slowly for years.
As we're 50 years into the computer industry, we have these behemoths like Microsoft and IBM and even Google that could be dead-shells of companies but would take another 40 years to go out of business, just on inertia.
We see a lot of tech startups die, and it's tempting to imagine Google will die in the same way: bad product decisions, loss of customer faith, decline in revenue, go out of business. Or get acquired. But at a certain scale that doesn't happen. If you're falling from high enough you almost always have time to get your feet under you before landing.
A short (mostly incorrect) history of web development:
Source-of-truth is HTML, nothing's interactive
<div>Content</div>
Problem: Nothing's interactive
Source-of-truth is HTML, augmented with in-line JS
<div onclick="myFunction()">Content</div>
Problem: JavaScript lives in an HTML attribute string. It doesn't know where it's being called from. You need to remember to escape any quotes in your JS. All JS functions are in the global scope
Source of truth is HTML, JS is separate
document.getElementById("myDiv").addEventListener("onclick", myFunction);
...
<div id="myDiv">Content</div>
Problem: Verbose, annoying to work with. Also JS is now far from the HTML
Source of truth is HTML, jQuery baby!
$("#myDiv").click(myFunction);
...
<div id="myDiv">Content</div>
Problem: Doesn't solve any other problems but look at how few characters there are.
Source of truth is JS, React class components, OOP!
class MyComponent extends React.Component {
constructor(props) {
super(props);
this.myFunction = this.myFunction.bind(this);
}
myFunction () {}
render () {
<div onClick={myFunction}>Content</div>
};
}
Problems: No one except me likes .bind. OOP hasn't been cool for like a year. Verbose.
Source of truth is JS, functional React
function MyComponent (props) => {
const myFunction = useCallback(() => {}, []);
return <div onClick={myFunction}>Content</div>;
}
Problems: mumble mumble memoization, mumble mumble rule of hooks. No one (not even me) likes `useCallback`.
Source of truth is on the server side. React 19 with Next.js. Compiler magic solves everything
???
Problems: doesn't exist
You can do this for a bunch of other technologies as well. Elm, Rails. They all have very simple examples that also demonstrate the issue that they have.
I'm going to have my nerd-card revoked but mathematics is so clearly made up BS.
Mathematicians explaining how there aren't enough numbers so they made up more numbers:
=> https://en.wikipedia.org/wiki/Ordinal_number
Like RIP to you but I would just expand the natural numbers.
I love Apple product reviews because Apple is so clearly the best that the only reasonable comparison you can make is to imaginary,
perfect products or other Apple products. And suddenly, Apple products look bad.
I'm not even complaining about the reviews; because that's all you can do. You can't compare the $1,500 Apple Studio Display to a $150 Dell display. So the Verge review compares it to the $5,000 Apple Pro Display XDR and concludes that it's bad. I'm not even disagreeing; I understand how you come to the conclusion that it's not worth $1,500. But it's iconic that reviewers say things like "The only decent 5K display available on the market" and then conclude it's "a confounding miss." (The same review!)
I just love capitalism because of things like Poolsuite. It’s like an art project that uses the world as its canvas. I am 100% serious.
You could create the Vacation website with an art grant from a communist government and it would be a beautiful website but it would be fake. It’s less pure because it’s marketing for a sunscreen company, but it’s more real. And I don’t care if it’s more expensive for the same stuff in the bottle.
Once again it is summer, which means scrolling the Poolsuite and Vaction webpages and feeling the summer.
Like honestly if you don't have the budget to hire a model to look sexy using your product what are you even doing.
I don't know how we ended up here. It's like. I kind of understand established companies not innovating (inventing good-smelling foaming sun-screen) or not using quality material (plastic bottles in easy-to-injection-mold colors and shapes) to cut costs. But I cannot believe that Vacation's marketing budget is bigger than Banana Boat's or Neutrogena's. So I don't understand why Vacation's marketing is so much better. The Banana Boat homepage image looks like it was shot at someone's backyard pool. Maybe because they're big, they have to try to look genuine. Like if they did a real photoshoot like Vacation did, it would come off as inauthentic. But the Vacation photoshoot comes off as inauthentic but I don't care because it looks good. I'm sitting here just looking at it. The Banana Boat and Neutrogena models are both holding the bottle super awkwardly so you can read the label which is so funny. I am on Neutrogena's website. I know it's Neutrogena sunscreen. It's also possible that, again as big companies, it would look bad for them to do an 80s-style sex-appeal ad. But like. You're a sunscreen company. You can get away with putting a model in a bikini, surely! You can have the woman put on nail polish. It's not like their resulting picture looks authentic. It just looks lazy.
Edit (:44): It is of-course possible to over-rely on sex appeal (e.g. the infamous Carl's Jr ads). And I respect that Banana Boat is trying to avoid that. However, it is marketing and so I expect it to look better than real-life in some way. And when it looks indistinguishable from a picture I could take of a woman at a pool putting on sunscreen I'm confused. Rent a hotel with a pool or take the picture at a beach in Malibu or have some kids playing in the background or crop out the box of pool supplies or give the woman some Ray-Bans or something.
Edit (:54): And while I am tearing apart Banana Boat in particular it is indicative of a larger trend where big companies don't have the attention to detail to get any part of their marketing looking actually good. Again, I don't think it's just about size-of-budget, I think it's about whether you do a small amount of good marketing or waste it on a bunch of bad marketing.
Watching the Jojo MCC P24 vod and it's insane that she's drunk and not trying and just winning.
I don't get it. Because it's not even just Jojo. They're like in between rounds 'remember we don't care about winning. You can do anything you want' and then they take 1, 2, 3, 4 in the game individual leaderboard. Effortless.
1,400 game point diff.
Edit (:33): aimsey just following Jojo and spamming splash potions when Jojo screams "HEAL ME HEAL ME" is more effective teamwork than 95% of MCC teams.
I literally just realized Andrea and Eugénie are step-siblings.
Eugénie just feels like she belongs in a different book.
There are like multiple entire chapters of them flirting and then getting engaged and not once did Dumas point out and not once did I notice that they share a mother. (I think.)
Even if I personally never run a modern minimalist project, and even if modern minimalist ends up being more of a statement of values than
a step-by-step project management framework, I believe it will be useful as an alternative to the common state of affairs, where "minimalist" things end up being user-hostile.
I don’t know if we’re ready for modern minimalist.
The thought of trying to make a Gemini client is really scary. The protocol side is simple and nice and easy. The UX side is very scary. This is where I brainstormed actually flowers—what if good UI was the default. But actually flowers is a technical solution. You still need modern minimalist.
If I thought “modern minimalist” was too cheesy I could call it “eternally modern” software. Although that looses the “minimalist.”
It's called Phoenix Framework not LiveView. LiveView is the component/paradigm that the framework provides.
Erlang's magical process model lets them handle millions of websocket connections. This lets them get to 10k current, but I still question the memory usage. 10k * 100kb is a meg, I guess that's not awful. But 100kb is almost a lower bound.
Oh my word so many words. Mix, Hex, Erlang, Elixr
The difference, I think, between LFSA and LiveView is that LiveView focuses on streaming UI updates constantly, but fundamentally is just server side rendering.
Continued 5:40pm: Rails and Phoenix are competing to generate as many files as possible.
One of the problems with LFSA is that it asks the server to store rendering state for the client, which could destroy performance.
Rails and Django do this to some extent, and they’re not great in terms of memory usage. But they discard the client state after rendering a template, and LFSA would ask them to store it in order to sync updates. I need to play around with LiveView, which does this, I believe.
At some point you have to have some accountability to your users if you want to make software that has a good user experience.
And Linux on the desktop doesn't. There aren't incentives in place to deliver the best user experience. The Debian maintainer can disable your password manager because he's decided that password managers with hardware key support are "crappy," and there's no repercussions. (Sorry, I'm still not over that.)
This is the status quo with a lot or most volunteer-developed software. Stuff gets done because it's easy, or because it's fun, or because it aligns with the developer's conception of what the software should be. This is true for my projects as well of course.
LadyBird is going to fall into the same trap—the websites that are easy or fun to get working are going to work, and the websites that are annoying and painful to get working aren't going to work.
This might be the first time I've conceptualized a problem with volunteer development. (I guess the second, after the time one [1].)
=> https://thoughts.learnerpages.com/?show=4ad43e90-eb22-4560-95ba-d473cda068bd [1]
Some of this is mitigated by the developer being a user. But not all of it. Modern Minimalist is going to have to include some incentive to listen to your users.
for Kling to drop the Serenity target is like, you've already failed. You've already had to cut back scope. You can't brag about how you're tackling this project with a huge scope and then cut the scope.
Maybe it makes sense. I don't know.
LadyBird is certainly unique, and it remains unique, and Kling remains a talented developer.
One of the things that used to make it unique was the build-everything-yourself approach. If that's gone because you need to pull in third-party libraries, that makes it less unique. (One of the stated reasons for not targeting Serenity is that you can't pull in third party code with Serenity.) I think it could work (well I think it could fail in the way that it is currently failing), if you pulled in stuff like glibc or standard compression libraries. That's stuff you can't do in Serenity.
I've talked about this before, but Kling saying 'we support svg' when they support a very small subset of SVG leaves a bad taste in my mouth. That 'good enough' attitude works when you're doing your own thing. I am a fan of Kling in general and of SerenityOS. But I think Kling's attitude works for SerenityOS because Serenity isn't compatible with existing OSes. It's something different. Gemini proved to me that "something different" could work for the web too, to some degree. (Obviously Gemini doesn't work in some ways.)
In my mind, compatibility is always the number one criteria for a web engine. Which is why I've said building a new one is an impossible task.
Like my last LadyBird post, this is super rambly.
It’s like a trope in movies today that the scoundrel character hits 10 bullseyes in a row, well,
> Instead of targets, playing cards had been fixed to the board.
…
> said the count “I was making a pack of cards…those are aces and twos that you see; my bullets made them into threes, fives, sevens, eights, nines, and tens.”
…
> indeed, the bullets had replaced the absent symbols with perfectly precise holes at perfectly equal distances