Thoughts
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 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'