HNHacker News
TopNewBestAskShowJobs

hakunin

2,508 karma · joined March 4, 2010

https://max.engineer, mastodon:ruby.social/@maxim, x.com/hakunin, bsky.app/profile/max.engineer

meet.hn/city/43.1009031,-75.2326641/City-of-Utica

---

submissionscomments
hakunin··on Tesla reports 14% decline in deliveries, marking second year-over-year drop
To be fair to the people on HN, it wasn't them who made Elon partisan. It was Elon himself.
hakunin··on Ruby on Rails: The Open-Source Blueprint
Wasn't Rails the first major OSS to move to Github when Github first appeared? IIRC it's the other way around: everyone started using MIT because Rails did.

Edit: Here's the initial commit in 2004, with MIT License already in there, way before Github launched in 2008 — https://github.com/rails/rails/commit/db045dbbf60b53dbe013ef...

hakunin··on US Supreme Court limits federal judges' power to block Trump orders
I am aware of this ruling, and disagree with it. My comment was making a broader point: There's a mistaken notion that a lawyer can advise you to do something that they think courts might find illegal later, "and that's how we'll find out whether we can do it." That's illegal both, for a lawyer to advise, and for anyone to follow. A president is supposed to collaborate with the other branches to find constitutional solutions to problems, not deliberately attempt to overwhelm them with edge cases. But yeah, the ruling on criminal immunity feels horrific to me.
hakunin··on US Supreme Court limits federal judges' power to block Trump orders
I think this often gets confused. Voting a president in doesn't give them a blank mandate to do whatever they want, such as break the law. And knowingly doing things that might not get approved by courts, but veiling it in a "novel legal theory" disguise is still breaking the law. Just because slow and thorough processes need to take place to adjudicate these actions doesn't mean that these actions aren't worth adjudicating. So while voting is important, keeping the voted-in president accountable is important too.
hakunin··on I'm starting a social club to solve the male loneliness epidemic
I'm not far from you, and also trying to find a solution to a similar problem, albeit long time from college. Started a local meetup here, but it hasn't quite taken off. My area has very few people doing what I do, and I work remotely. School friends are all over the country at this point, and connections have been fading. Maybe it's something about upstate NY. Either way, added you on LinkedIn.
hakunin··on My Cute Homelab
In 2010 I built a small HTPC[1] in an Antec ISK300-150[2]. Started out with 500GB HDD + 8GB RAM, then replaced with 2TB SSD, then added another 4TB SSD and another 8GB of RAM recently. Started out TV-connected, but for years now it's been running Ubuntu headlessly in my basement, hosting containers, automations, TimeMachines, etc. Not sure if you'd call it a homelab. Wonder what do people do with their multi-PC racks that can't be done with one small machine like this? (besides running LLMs of course)

[1]: https://notes.max.engineer/htpc-hardware-specs

[2]: https://www.antec.com/product/case/isk300-150

hakunin··on How to title your blog post or whatever
Agree with that too. I like watching people debate, and oftentimes it feels like magic when someone can thoughtfully counter a hard hit. It stings being on the receiving end of it, but the confidence grows when you counter a few of those. It also teaches you to debate yourself, which makes future work easier to defend. I guess I'm just saying that after a while this can become a calm/enjoyable hobby. Like giving talks in front of an audience for some people (something I haven't been able to push myself into.)
hakunin··on How to title your blog post or whatever
> If I try to actually educate someone or do my research fully, either someone will know more than me, and an expert will weigh in to invalidate some section of my posting- or people will pretend to be an expert- and you’ll spend a day trying to discuss why what they’re saying is incorrect. Both will cause the discussion for other people to die.

Personally, I love the debates that stress-test my posts, they're the most interesting part for me. If I put effort into writing something, might as well defend it, and wouldn't want any punches pulled. Oftentimes people's attempts at debunking my message end up doing quite the opposite to what I'd expect — further validating what I wrote. Other times I need to clarify something in the post.

hakunin··on My stackoverflow question was closed so here's a blog post about CoreWCF
Makes sense, I recognize the LLM output now. In fact as I was posting the story here, it kinda dawned on me. Problem is, this happened before ChatGPT went mainstream, so I wasn't 100%. Definitely sympathetic to the hard decision made here, in light of this.
hakunin··on My stackoverflow question was closed so here's a blog post about CoreWCF
Yeah, looking at it today I do smell the AI. Nearly 2.5 years ago I had no experience to suspect it. I'm less annoyed with it getting deleted now, but it was still a useful and relevant explanation at the time.
hakunin··on My stackoverflow question was closed so here's a blog post about CoreWCF
My most recent (nearly 3 years ago) StackOverflow story:

I posted a question[1]. Got some answers, but not quite complete. Then someone came along and provided a good detailed answer. A couple of upvotes later, that answer got deleted by Community Bot. I voted to undelete it, but it still needs another vote to undelete. So I ended up copying it into my own notes blog[2].

I'm not sure why the best answer was deleted. It would've been a loss if it wasn't preserved somewhere I think.

[1]: https://stackoverflow.com/q/73954228/155351

[2]: https://notes.max.engineer/creating-common-interfaces-in-gol...

hakunin··on Vibe Coding Is Overrated
It's interesting to me how I didn't know where the "vibe coding" term came from originally, and thought someone has decided to push and hype it up really hard as an alternative approach to writing software in general. And now that I see it, it sounds way more reasonable than the way it's been spreading out of context.

I'm sure it will go down in history as some sort of intentional movement, and then someone will occasionally point out "did you know that originally this idea was never meant to be used for serious work, Andrej literally said it was only okay for throwaway weekend projects." Big not-always-good things[1] started this way — by misinterpreting something.

Of course, it's possible that in the future code written this way will actually be maintainable, performant, and secure enough that you could start trusting it, and this will morph into a legit way of writing software, but right now the hype is way ahead of what Andrej meant when he coined the term.

[1]: Examples come to mind: Agile, Scrum, Javascript (2 week project originally), there're definitely more examples.

hakunin··on Local CI. Sign off on your own work
If you don't run anything different on the CI machine than locally, then how is your post an argument against signoffs? Why is it not continuous integration if the step is run on a different computer?
hakunin··on Engineers who won't commit
I find there's a good way to not commit, slightly different from this article.

There's a non-committal way of designing software that I think we should all strive to follow. It's not things like "let's use an ORM so that we can swap the database later" or "let's write abstractions over everything so we can swap everything later". It's more that you're trying to keep the code as simple and static as possible, naively doing the exact business function, and rarely generalizing. There are a few practices I've picked up over the years for non-committal architecture of this kind (for example: doing more at "build" time, passing the functions what they need instead of what you have, keeping IO in shell layer, and a few more). The goal is not to end up with a codebase that has foretold all the possible futures, but that implements just what it needs to do now in the most straightforward way, such that it's easy to read, understand, and change. I think this kind of non-commitment is the ideal to strive for. The less committed you are in this way, the easier it remains the change the codebase as it evolves, the less shackled it is with over-engineered "solutions".

It's deceptively hard to do this in practice. Everybody wants to implement their over-engineered "system for doing a thing" layered on top of the programming language. Sometimes we forget that the programming language itself is a great tool for expressing business logic.

hakunin··on Design System Options for Rails
Worth noting that the poor performance of erb has been debunked[1] and it'd be helpful to add some caveat or clarification in the rendering solutions table.

[1]: https://news.ycombinator.com/item?id=43550721

hakunin··on Ask HN: Is Hacker News avoiding criticism of Trump?
On the contrary, I don't want political _nonsense_. What loss would it be if we couldn't discuss politics under the same guidelines[1] we use for other HN discussions. Places like Reddit allow chaotic non-thoughtful one-liner slogan/meme discourse. If we manage to discuss politics according to HN guidelines, I don't know where else you'd find this level of thoughtful discourse on the internet. It does stress-test this site, but so far it's been able to handle it.

[1]: https://news.ycombinator.com/newsguidelines.html

hakunin··on America's astonishing act of self-harm
I find that this short <3m video explains it well: https://x.com/Ark_Editing/status/1900522055038058803 (start at about 40s)
hakunin··on How to create value objects in Ruby – the idiomatic way
For slightly more advanced value objects, check out the gem[1] I wrote. It has a bit more depth in how it "enhances" every attribute to behave as you'd expect, to improve the object's clone-ability, freezability, inheritability, declarative style of attribute definition, and a few more perks. All while remaining super small/simple in the way it's implemented.

[1]: https://github.com/maxim/portrayal

hakunin··on Ask HN: Are you afraid to travel to US to tech conferences?
Odds are very strongly in your favor, not in theory, but in practice. If you can't handle "the possibility", I have some bad news about a huge amount of way more likely possibilities of what can happen to someone simply… living.

The only reason you're afraid of some things more than others is because you came across some stories, and not others. We're all wired like this evolutionarily, on purpose. When we see stories, we're supposed to alter our behavior, because all the stories used to be local and relevant. "A bear ate Timmy near the river" is a good warning to be extra careful near there. Now that we have internet, and the entire planet's worth of carefully selected bears eating Timmys is getting fed into everyone's mind, we must learn a new trick: understanding how odds and relevancy works.

hakunin··on Ask HN: Are you afraid to travel to US to tech conferences?
Whenever someone feels that travel is risky due to news stories (especially in a generally known to be safer area of the world), I always suggest to imagine that right now as you're reading a news story, hundreds of thousands-to-millions are boarding and onboarding planes at the same time, thousands of planes are in the air, thousands are landing and taking off, hundreds of conferences and events are happening continuously all throughout the country, millions of people are traveling on the roads. Try to paint that visceral picture in your mind. It helps put things in perspective.
hakunin··on I use Cursor daily - here's how I avoid the garbage parts
Yes. It is reasonable to ask them to turn off these things temporarily as an exercise, if you think it will help junior engineers write better code.

All teaching works this way. Would it be totally reasonable to have junior pilots only practice with autopilot?

hakunin··on Ask HN: Recommend resources that helped your game dev journey?
I'm not a game dev, but I watch Tim Cain's[1] YouTube channel, and I think it's a treasure trove of experience-based stories and advice.

https://www.youtube.com/@CainOnGames

[1]: Tim Cain created the original Fallout (pretty much designed the whole universe), and a number of other successful games after. He's an engineer through and through, but wore a lot of different hats, and has an interesting perspective on all aspects of game dev.

hakunin··on Clean Code vs. A Philosophy Of Software Design
The only point I was making is that short name signals that nothing unusual is going on, and long name signals that you have to pay extra attention. I never suggest to replace a comment with a long name. Here's my 4 reasons to leave a comment: https://max.engineer/reasons-to-leave-comment Comments are crucial for "why", and additional context. Name shouldn't go beyond "what". More on that here: https://max.engineer/maintainable-code (Check the "What" section that focuses on naming).
hakunin··on Clean Code vs. A Philosophy Of Software Design
Short version: when designing new software, you don't have its architectural picture in the beginning. So when starting from scratch, the architecture shouldn't be screaming, but rather, it has to be non-committal/non-speculative to allow wiggle room for the future. (How to achieve non-committal architecture is the biggest topic I'm interested in, and I find 1 good tactic every few years). Specifically, the architecture should ephasize entry points and outputs. That's exactly what frameworks like Rails provide. You go by entry points until some sort of custom architecture starts emerging from the middle, which is when it can slowly begin "screaming" over time.
hakunin··on Clean Code vs. A Philosophy Of Software Design
It happened in the article we’re discussing, and seems to be something Robert advocates for.
hakunin··on Clean Code vs. A Philosophy Of Software Design
For anyone like me who at first skipped over this article because it seems from the title that someone just compared two approaches:

No, it’s an actual debate between the actual John and Bob. Them debating each other. It’s an amazing read.

hakunin··on Clean Code vs. A Philosophy Of Software Design
That’s exactly why you should save that length only for a method that’s indeed doing something weird. If every method is long, the codebase turns into noise. (IOW I agree)
hakunin··on Clean Code vs. A Philosophy Of Software Design
Another example of not quite pragmatic advice is Screaming Architecture. If you take some time to think about it, it’s actually not a good idea. One of the blog posts I’m working on is a counter argument to it.
hakunin··on LeetCode but You Can Force People to Code in Light Mode
Not the author, but I’ve been coding since the 90s and also ended up switching between light and dark depending on the time of day. The trick is to also adjust screen brightness. With light background you can lower overall brightness. With dark background if you’re in a well lit room, you have to increase brightness to the point where bright words on the screen actually shine too strongly in relation to the dark background. So it actually feels gentler when the background is light but screen brightness is dimmer overall.
hakunin··on Things USAID has funded [video]
Wait, are you asking why what USSR did to its own citizens is different than what USA is doing to other countries? Of course we want our views and values to be propagandized to other countries, why is that bad? We want other countries to become more like USA.
← PreviousPage 8 of 17Next →