HNHacker News
TopNewBestAskShowJobs

evanmoran

879 karma · joined March 28, 2007

Founder working on podcasting software. Previously at Bungie, Pokemon Go, and Microsoft developing storytelling tech, tools and UI.
submissionscomments
evanmoran··on Do the simplest thing that could possibly work
Here’s the Extreme Programming manifesto from that time. Very similar sentiment from around two decades ago.

http://www.extremeprogramming.org/rules/simple.html

evanmoran··on We put a coding agent in a while loop
Very seriously, try not to read about it. Delete the apps that make you most anxious. Then eat better, exercise three times a week, and together those will help you feel better and sleep better. Finally search for people or activities that give you energy and focus on those. Maybe it’s jamming on a guitar. Maybe it’s reading. Just embrace the moment you’re in for a bit and I think you will be better prepared for anything.
evanmoran··on Unity reintroduces the Runtime Fee through its Industry license
Not a raise, they merged with ironSource in 2022 (adtech). A new business model was likely baked in:

https://kotaku.com/unity-ironsource-merger-ad-tech-layoffs-1... https://mobilegamer.biz/inside-unitys-troubled-4-4bn-ironsou... https://unity.com/news/unity-completes-merger-ironsource

evanmoran··on What's the strongest AI model you can train on a laptop in five minutes?
This literally is fast enough to really whip the llamas.. well, you know.

And for the younger folk, this mp3 player was the precursor to Spotify:

https://youtu.be/HaF-nRS_CWM?si=d7WHzkV7CFHJ2hGg

evanmoran··on Don't give children under age 13 smartphones
Just to add to this. It’s important to monitor group chats a well as avoiding social media. Close friends 1 on 1 are usually somewhat ok, but the bigger groups / discords that happen quickly in middle school have more issues.
evanmoran··on A rare asteroid flyby will happen soon, but NASA may be left on the sidelines
“Fun” is not the word I’d use, but thank you for sharing the implications :)
evanmoran··on The Gentle Singularity
This is intentional and is called a Rhetorical Question: https://en.m.wikipedia.org/wiki/Rhetorical_question
evanmoran··on I taught my 3-year-old to read like a 9-year-old
I think the main takeaway of this shouldn’t be that all kids will be able to read, but more that parents should not be afraid to try to teach letter sounds/blending/simple reading before kindergarten. So many parents I’ve met feel like this is “way too early” and I found many of those same parents end up tutoring their kids in kindergarten to catch up to grade level.

More recently, I’ve been teaching a 3 year old letter sounds and he loves running around finding signs saying “Dad” I found a “duh”. “Duh duh duh!” (For D). Kids really just want to hang out with you so, it’s ok to just throw in some letter sounds or number counting ideas in here and there. You’ll be surprised what they pick up!

evanmoran··on YAGRI: You are gonna read it
Just curious, how do people feel about this general style of soft deletes currently? Do people still use these in production or prefer to just delete fully or alternatively move deleted rows to a separate tables / schema?

I find the complexity to still feel awkward enough that makes me wonder if deleted_at is worth it. Maybe there are better patterns out there to make this cleaner like triggers to prevent deletion, something else?

As for the article, I couldn't agree more on having timestamps / user ids on all actions. I'd even suggest updated_by to add to the list.

evanmoran··on The last RadioShack in Maryland is closing
I recently took my son on a "GameStop run" to sell our super old PS4. He's 7 and never been to a store with video games before. So we jumped in the car and arrived at the store about 30 min north of Seattle just as the sun was setting. In the window were two kids in Taekwondo uniforms. Both were super nice to a younger kid and immediately let him play and gave him pro tips on how to do slide turns. We then sold the console for $50 and he immediately wanted to use the money to buy a giant Eevee squishmallow that was next to the checkout line. What can you do? :) Now he tells me the story as "remember that time we bought my Eevee and those karate kids gave me a quarter".

Having real places is still awesome. I know the finances don't really scale, but shoutout to Lynnwood GameStop for keeping it real out there.

And RIP RadioShack. You always had a hard drive when we needed one to reinstall windows during a lan party. holds up a glass

evanmoran··on Claude's Max Plan
I’m surprised they didn’t just price it as $200/month but include high daily use of Claude Code. That tech is very cool and some sort of upper limit / bulk discount on costs would be quite compelling.
evanmoran··on Preschoolers can reason better than we think, study suggests
I’ve seen this often. My son is 3 and often tells us his reasoning: “we need to run for the bus because it doesn’t wait for us!”

He always says it like he isn't sure we know about buses yet making me think it’s hard to model others as separate minds with differing information until much older. But his modeling of the world logic is very solid. He can easily use multiple tools to reach high up snacks, or build complex block forts, or reason about what will happen “we will grow up and then go to kindergarten!”

evanmoran··on Anime fans stumbled upon a mathematical proof
This is always how it works. Large fan bases are filled with extremely capable people with vastly different specialties so I have no doubt this 4chan user had a very strong math background and just couldn't resist solving it for real.
evanmoran··on Making o1, o3, and Sonnet 3.7 Hallucinate for Everyone
Since Go added slog many of these have been removed in favor of that. Obviously not universal, but compared to npm there really are massive numbers of devs just using the standard library.
evanmoran··on Ask HN: Is Anyone Still Using Dreamweaver?
When Dreamweaver integrates GPT4o it will finally reach mainstream. I can imagine the podcast ad-spots already. Watch out SquareSpace. Disruption comes for us all.

(P.S: I did use Dreamweaver in the early 2000s. It was great. I’m surprised it still is running! RIP Fireworks)

evanmoran··on Who needs a sneaker bot when AI can hallucinate a win for you?
The amazing part is AI telling you things look like spam/phishing would probably work quite well and be a great feature.
evanmoran··on String of recent killings linked to Bay Area 'Zizians'
Have you seen it come up with bott periodicity and the onto ele in twister space?
evanmoran··on Discussion: Reduce error handling boilerplate in Golang using '?'
If I may make a suggestion to @ianlancetaylor, I think using the ? for error checking is a fantastic idea, but I think a couple small changes would make this absolutely a game changer and even more Go-like:

To demonstrate my tweak to your idea, imagine this example code:

r, err := SomeFunction() if err != nil { return fmt.Errorf("something 1 failed: %v", err) }

r2, err := SomeFunction2() if err != nil { return fmt.Errorf("something 2 failed: %v", err) }

r3, err := SomeFunction3() if err != nil { return fmt.Errorf("something 3 failed: %v", err) }

In the current proposal it would turn into this:

r := SomeFunction() ? { return fmt.Errorf("something 1 failed: %v", err) }

r2 := SomeFunction2() ? { return fmt.Errorf("something 2 failed: %v", err) }

r3 := SomeFunction3() ? { return fmt.Errorf("something 3 failed: %v", err) }

My first suggestion is to keep `err` variables visible. It ends up being not much longer, but it is much more readable and Go-like:

r, err := SomeFunction() ? { return fmt.Errorf("something 1 failed: %v", err) }

r2, err := SomeFunction2() ? { return fmt.Errorf("something 2 failed: %v", err) }

r3, err := SomeFunction3() ? { return fmt.Errorf("something 3 failed: %v", err) }

My second suggestion is to require ? to always have a block, and also allow them to "chain" so only the last statement needs a block:

r, err := SomeFunction() ? r2, err := SomeFunction2() ? r3, err := SomeFunction3() ? { return fmt.Errorf("something 1, 2 or 3 failed: %v", err) }

As you can see this is much shorter! Having the block is always required at the end of the "chain" of question mark statements is more consistent with how `if` statements require a block currently. It also makes the `return err` flow also always visible (no return magic). It also also has a huge advantage of it being much harder to miss a question mark syntactically. as a question mark without a block would be a syntax error.

For example, this is an error:

r, err := SomeFunction() ? // <-- compile error: missing block after ?

And also this is an error:

r, err := SomeFunction() ? r2, err := SomeFunction2() // <-- compile error: missing block after ? r3, err := SomeFunction3() ? { return fmt.Errorf("something 1, 2 or 3 failed: %v", err) }

Thanks for listening! Curious what folks think.

evanmoran··on Moving on from React, a year later
Thank you for writing this all up. Just curious if you ever considered switching away from Ruby? I think many people are living in parallel stacks (TS, Go, Python, Rust) and it would be interesting to hear how it’s been going more recently in that ecosystem from your perspective.

As to rendering, I’ll be honest and say that my code has moved more towards client-side (using ConnectRPC and my framework ojjs.org—-shameless plug :), but I love that you have had success with a different path. Super interesting, and thanks again!

evanmoran··on Literate programming: Knuth is doing it wrong (2014)
The best approach I’ve seen in literate programming is when the comments become a webpage of documentation automatically from the source. This can be “// comments” or more like markdown indention, but I think the magic comes from the automatic documentation more than the particular literate programming syntax/approach. I think it encourages people to write just a bit more clearly, more like how people take more care with a blog post than an email, and that makes a significant difference.
evanmoran··on Oracle Will Not Voluntarily Withdraw JavaScript Trademark
It sounds like you’ve come down with the elusive humor monad. To prevent state mutation be sure to bind once a day with OCaml:

https://ocaml.org/docs/monads

evanmoran··on How to draw an outline in a video game
Not quite as much of a coincidence as you might think. Many of these algorithms come from graphics researchers presenting at SIGGRAPH (https://www.siggraph.org, the leading conference).

So if so if Jet Set Radio was released June 2000, you can look for related papers a couple years before to see if new techniques were appearing. And, in fact, they were!

Disney paper (1998) on texture mapping for cell shading (the color of a cartoon):

https://media.disneyanimation.com/uploads/production/publica...

NYU paper (1998) applying outlines to 3d objects (the black outline of a cartoon) :

https://mrl.cs.nyu.edu/publications/npr-course1999/hertzmann...

evanmoran··on Intel's $475M error: the silicon behind the Pentium division bug
The bug is super fun, but I also find the Intel response to be fascinating on its own. They apparently didn’t replace everyone’s processor with a non faulty version who wanted it, resulting in a ton of bad press.

To contrast, I’ve been thinking a lot about the Amazon Colorsoft launch, which had a yellow band graphics issue on some devices (mine included). Amazon waited a bit before acknowledging it (maybe a day or two, presumably to get the facts right). Then they simply quietly replace all of them. No recall. They just send you a new one if you ask for it (mine replacement comes Friday, hopefully it will fix it). My takeaway is that it’s pretty clear that having an incredibly robust return/support apparatus has a lot of benefits when launches don’t go quite right. Certainly more than you’d expect from analysis.

Similarly I haven’t seen too many recent reports about the Apple AirPod Pros crackle issue that happened a couple years ago (my AirPods had to be replaced twice), but Apple also just quietly replaced them and the support competence really seemed something powerful that isn’t always noticed.

Colorsoft: https://www.tomsguide.com/tablets/e-readers/amazon-kindle-co...

AirPods Pro: https://support.apple.com/airpods-pro-service-program-sound-...

evanmoran··on Eliminating Daylight Savings Time would make the average American’s life darker
I’m in Seattle and I wait at a bus stop every morning at 7:25am so I’m deeply aware of how it feels to go to school in the dark vs sunrise vs light (currently it is full dark, even with the shift).

Honestly, I think now it’s just better to go to work/school in the dark to get an hour more after work to play/be in the world. Obviously each city is different, but Seattle is miserable in the winter and it would be way more fun to have sunset at 5:15pm instead of the current 4:15pm. People don’t play catch or go to parks before school, they do it after so the darkness is partially painful for loosing time to hang with kids.

That said, the anecdotes about the 70s are super interesting. I was not alive then, but I wonder if work schedules were quite a bit different from they are now to account for the difference in thinking? I know plenty of people leaving at 7am to beat traffic across the bridge (well before sunset with or without dst). Perhaps in the 70s people just left at 7:30am specifically to make it to work at 8am and the sunset time mattered more then our world of 2 hour rush hour and hybrid remote work?

evanmoran··on Fixing the Loading in Myst IV: Revelation
Myst is a very old game where you walk by tapping a series of pre-rendered 3d images. This is back when each image would take minutes to hours to render (like Pixar did with Toy Story 1), so graphically it looks amazing for its time, but it actually existed at the same time when Super Nintendo was popular (1990s)
evanmoran··on Researchers launch "moonshot" to cure blindness through eye transplants
https://youtu.be/_Im4-7LQQRk
evanmoran··on I'm a developer not a compiler
I believe you meant `strings.Split(s1, s2)`, but I would have also accepted `s1.split(s2).collect::<Vec<&str>>();`

Kidding aside, I agree completely that syntax isn't the important part. For interviews I think of it more as a sign the person is "warmed" up in a language. If they code in Go or Rust all day currently, then I expect a bit more of the syntax to be known for that language, but it's more a tell on what they actually do all day then what they can do in a week or two of learning.

evanmoran··on Maths in Computer Science. What I wish I knew before starting university
I was a math major before switching to cs. I’d say algebra/algebra 2/trig are the ones you need to be most skilled at the start.

Linear Algebra was quite possible to learn while in college as it wasn’t needed in the first few cs classes (useful for ai/ml/graphics)

After that my favorites were game theory and discrete math. They are quite practical in a way that fills out the way you can reason about the world. Again, definitely not needed before you start school.

I’m still waiting for calculus/ to be useful day to day, but then again I’m not doing engineering/physics simulation software where it is essential.

evanmoran··on ChatGPT now on chat.com
I find it funny to think that SnapChat did the opposite and removed Chat to become Snap.

Either way it’s a bold move. It’s clearly easier to type and say. I wonder if they found GPT is just too unpleasant to say so trying to switch the brand is worth it to them.

evanmoran··on Writes and Write-Nots
To add to this, when I think of ordering I’m reminded of the NP complete traveling salesman problem. It’s easy to make a program to visit all locations, but optimal order is so much harder.

I suspect thinking is similar, which brings up questions about LLMs as well. We all can now quickly write hundreds of generic business plans, but knowing what to focus on first is still the hard part.

← PreviousPage 2 of 12Next →