HNHacker News
TopNewBestAskShowJobs

chousuke

2,027 karma · joined January 26, 2010

submissionscomments
chousuke··on Infrastructure as Code Should Feel
fancy UIs usually don't even attempt to solve the primary problem that IaC does, which is change management. Systems where changes (rather than operations) are made through interactive UIs are a horror to manage; it works for extremely simple systems, but most systems don't qualify for that.
chousuke··on What Does It Mean to Have a ‘Weird’ Brain in the Age of Neurodiversity?
Have you ever considered that to an autistic person, a neurotypicsl person might be the impolite one?

People who are actually antisocial will be impolite on purpose, and it's usually pretty obvious. Meanwhile, actually autistic people will get labelled as jerks or whatever because everyone assumes that the "rudeness" is intentional even if they just miss some cue or happen to be too distracted to respond in an "appropriate" manner.

chousuke··on What Does It Mean to Have a ‘Weird’ Brain in the Age of Neurodiversity?
In my case, that comparison doesn't really make sense. Whatever "image" I have in my head has no resolution, detail, or colour; it's just a feeling, and not at all like seeing.

I literally can't imagine what it's like to have a vivid imagination because to me my perception of reality and whatever I can "imagine" are as obviously different as black is from white. I could never confuse one for the other, and I don't know how they can even be compared.

chousuke··on Abstraction: Not what you think it is
I think of things in terms of abstractions and models. Abstractions generalize commonalities into a vocabulary that can be used on any entity that is covered by the abstraction. A sequence is an abstraction, but data structures themselves aren't as far as software is concerned. Data structures can be sequences, but you can't create a sequence.

A (logical) model is a simplified representation of the real thing that is still complete enough that it can be used to successfully reason about and accomplish goals with a system. A linked list datastructure is a real thing with a number of possible implementation details, but it still has a straightforward, concrete model of what it is. It's not an abstraction.

A model does not have to be abstract at all; it can be very concrete, even if it in practice hides some underlying details.

It seems common in software to either get lost in abstraction so that you forget the model, or consider the model so rigid that you miss useful, simplifying abstractions.

chousuke··on Collaborate with kindness: Etiquette tips in Slack
I wish we could just get rid of that particular form of "courtesy".

I can't help but be annoyed or distracted by naked hellos, regardless of the intent behind them, so to me, they are rude. I understand that they might be some sort of social ritual, but I can't for the life of me understand how it's in any way courteous to ask for someone's attention with an expectation of a synchronous reply before revealing anything about why they want your attention.

But I suppose the majority feels the opposite for some unfathomable reason.

chousuke··on Ask HN: If you used to be socially awkward and shy, how did you improve?
How do you stop caring? I would give nearly anything for this superpower. Even obviously completely insignificant moments that matter to no-one can stick with me for days, and some stay with me for years, bubbling up and causing anxiety or low mood out of nowhere. No amount of rational analysis or forced positive thinking seems to help.
chousuke··on Ask HN: If you used to be socially awkward and shy, how did you improve?
Everything I can get my brain interested in is a solo activity. I feel like whenever I try to even think about doing something that requires me to initiate contact with people, some unconscious part of me "resets" my thoughts and they just get stuck in a useless loop. On the rare occasion that I manage to override that and go somewhere, I am unable to engage with people even though I want to.

I don't hate interacting with people; quite the opposite in fact. I just for some unknown reason am seemingly completely incapable of initiating interaction with unfamiliar people (and even initiating anything with people I know is rare for me to do).

chousuke··on Ask HN: If you used to be socially awkward and shy, how did you improve?
That "and" of the "Just go out and meet people" is the part that my brain struggles with.

I can walk out of the door just fine, but my brain stops functioning when I try to think of things to do from there. I can likewise handle meeting new people if I somehow end up in a situation where that happens. It's just doing that intentionally that I have so far been unable to accomplish.

chousuke··on Disabling automatic refresh for Snap from store
Gnome is the default and there's a KDE "spin", but I use Sway myself so I can't really comment on how well KDE works.
chousuke··on Disabling automatic refresh for Snap from store
I recommend Fedora to everyone wanting a desktop alternative to Ubuntu. It's a well-balanced distribution that is opinionated enough to work fine as-is but doesn't try to force things on you the way Ubuntu does with snaps.
chousuke··on `COPY –chmod` reduced the size of my container image by 35%
What's the point of pm2? Every time I've seen it it's just been part of a messy misconfigured system and whatever it's actually doing could've been accomplished entirely with a tiny systemd unit running node directly.
chousuke··on Start Self Hosting
I like RHEL and derivatives more for servers myself. It's probably just preference, but I find that RHEL-like distros step on my toes less often. In particular, I don't like debconf at all, and Ubuntu pushing snaps everywhere also leaves a bad taste in my mouth.
chousuke··on Happiness and the Art of Being (2012)
> Think of a time you really wanted something

I don't think I've really had any such time (or I don't remember. My memory is terrible), which is one of the things the rational part of me struggles with. I kind of just adapt to whatever situation I end up in. I guess the problem is that I don't predict future happiness so I don't have any driving force to struggle to attain it.

I've been in this situation for long enough that I don't have any way of telling what is and isn't "normal".

chousuke··on Happiness and the Art of Being (2012)
One part of it is figuring out who you are and acting accordingly.

However, a persistent problem I face with any approach to pursuing happiness is how to get my body to perform the things that would make me happy instead of the things some unconscious part of me chooses to direct it to do; those things are rarely the same.

I quite literally and frequently feel like I have no or extremely limited conscious control over my actions, and to make myself do something I want to do that the unconscious executor strongly disagrees with due to anxiety or ADHD or whatever, I have to set things up so that there is literally no other option. That's pretty difficult to do, and quite stressful.

I'm also someone who needs to be constantly doing things because when I'm not distracted, my brain tends to start generating thoughts that lead to severe emotional pain; again, something I don't have much control over.

chousuke··on Start Self Hosting
Sounds like you might've had an unusually bad experience. Might've also been the distro; I don't like Ubuntu much myself. :P

Maintaining inherited environments is also much more painful than ones you get to design from the ground up. I work with varied environments, and one with ~250 RHEL / CentOS machines has approximately the same level of maintenance burden as another with a dozen or so Ubuntus because the first environment has had configuration management from the beginning and the second is a complete mess that I've slowly tried to reverse-engineer and clean up.

When your change management works, maintaining a dozen servers isn't all that different from maintaining a thousand or more; and the need for change management and automation doesn't really go anywhere even when you don't self-host things.

chousuke··on Ask HN: Who operates at scale without containers?
Simple solutions are also easier to refactor into more complex solutions when the complexity becomes necessary. Going the other way is much harder.

In simple systems, you often have the option of simply throwing away entire components and remaking them because the system is simple and the dependencies between components are still clear.

chousuke··on GitHub Incident
Depends on your setup. For a simple git server on AWS I might have it on a single-node ASG so that when something terminates the instance, the ASG notices and launches a new one. The initialization scripts would then attach and mount a pre-existing EBS volume and start services.

Very simple to set up, and as long as your data volume is not lost (which can happen, but is very rare), such a system would recover from a host failure by itself faster than most people could react to it going down. In the unlikely case that you lose the EBS volume, you'd just recover from snapshots manually.

chousuke··on Kubernetes is a cloud operating system
Well, some thoughts in no particular order:

0. YAML everywhere. Augh.

1. Vanilla kubernetes by itself doesn't really do much; everyone basically assumes you'll use a cluster in a cloud somewhere that comes with all kinds of add-ons and functionality on top of the default. If you want to run an on-premises cluster, once you start adding external components to a Kubernetes cluster to make it actually useful, it starts getting complicated.

2. I don't think configuration management of the resources you do put in a cluster is a fully solved problem, especially if you depend on CRDs.

3. kubectl being context-sensitive is rather annoying. You basically can't share a kubeconfig between two terminal sessions without severe danger of footgunning.

4. If you just use Helm packages with defaults, you'll end up running software with very collision-prone UIDs and security contexts, so two separate components that you deploy can end up running as the same user on a host. I don't think that's good security design, but the system doesn't encourage you to do the correct thing.

5. All the "easy" tooling is basically just "run this magic incantation and it will do things for you". The culture around how things are done seem to encourage ignorance about what you're actually deploying. Many operations also modify cluster state and thus should be managed and not done willy-nilly, but that's also ignored by default. See also #2

Kubernetes has its upsides (something like ArgoCD is very nice to use when set up properly) but I guess my main beef with it is that it can make things look easy that actually aren't, and mislead its users.

chousuke··on Tell HN: Gnome on Wayland Is Amazing
I think that's because "non-native" apps run inside an X server running as a Wayland client. So you're basically getting the X experience :/
chousuke··on Kubernetes is a cloud operating system
Yeah, I wanted to emphasize the difference between the kubernetes resource and the actual things that the controllers create based on the existence and attributes of those resources. I suppose "materialization" is a good word for it; you create a resource, and if it's something that actually needs something to execute, it is eventually materialized as a container scheduled to run on a kubelet, or an EBS volume, or some other actual thing that the appropriate controller creates.

I like the core idea of Kubernetes (eventually consistent declarative infrastructure) though I'm not fully sold on the implementation and the tooling around it.

chousuke··on Kubernetes is a cloud operating system
Kubernetes, by itself, does not really know how to "do" anything, but it provides a framework for writing components that do (controllers) in response to new resources being declared (I want to say "created" but nothing "real" exists until a controller does something) and updated.
chousuke··on Find more ways to be an outsider
"Be yourself" is often said, but it's equally often not actionable advice on its own.

Not everyone knows who or what they are, and even someone who knows is not necessarily able to be themselves without outside help.

I struggle with being myself quite often; there are things I want to do, but I can't simply decide to just do those things... My brain does not work that way. For example, it can take a lot of effort to even say what I truly want to say, because consciously deciding to speak does not necessarily result in me actually doing so, no matter how hard I think the thought.

chousuke··on Update Firmware of Samsung SSDs in Linux
Linux has support for multipath devices, so disks disappearing and re-appearing at runtime definitely isn't a new concept. Making it work with a single disk might take some work though.

If the power cycle is controlled, then the kernel can be reasonably sure that the re-appearing device is the same one. File handles wouldn't really be affected as long as the mounted filesystem can resume IO after the device reappears.

Most likely you'd still want to use a RAID scheme and/or data checksumming as an extra layer to ensure data integrity though.

chousuke··on Update Firmware of Samsung SSDs in Linux
#3 is the correct option, I think, except you update the firmware but don't start using it. The OS should handle powercycling the drive at a convenient moment, at which point it'll load the new firmware.

Netapp filers do this; they update disk firmware online by installing it and then just rebooting the drive. The RAID controller/software handles the momentary interruption with zero issues, but even without redundancy an OS can handle a drive disappearing for a few moments.

chousuke··on Ask HN: What's the Deal with HN and Rust?
What's wonderful about rust is that by making ownership explicit and enforced, it enables less experienced people to learn those concepts and confidently use new approaches to write performant software without having to shoot off their own foot learning C or other languages where understanding ownership is necessary but not enforced.

More experienced people will generally be happy to offload ownership tracking to the compiler and save some of their brainpower for other things.

chousuke··on Don't ask to ask, just ask (2019)
To me conversations with substance are full of mood and feeling. I love it when I can talk about something and get actual understanding in response, or when a person talks to me and I can relate to what they're trying to express. I don't know where the "mood and feeling" is in random pleasantries and small talk; they feel empty to me.

As for prompts, it's not like you need to write a novel about what you want to discuss, just include something.

For example, when asking for help:

Bad: "Hi" -- This demands my attention because I don't know what it's about, forcing me to respond and wait for the other person. Distraction and annoyance are practically guaranteed if I ignore it. I consider this kind of opener extremely rude, because to my brain it can be functionally equivalent to screaming "GIVE ME YOUR ATTENTION NOW".

Better: "Hi! I need help with X, can you help?" -- This is a request for attention, but I can at least decide if I'm interested and if I'm too busy I can respond with "No" or "Probably, but not right now.", which is satisfactory for my brain and doesn't distract me.

Best: "Hi! X is doing A when I try to do Y and I need B, can you help?" -- I may be able to solve the problem right away, which is the best outcome.

chousuke··on Don't ask to ask, just ask (2019)
I wonder why people think it's polite, because I consider is the exact opposite of polite to distract someone with something that may not lead anywhere.

It might be just my ADHD talking, but getting interrupted by a "Hi" can be seriously disruptive because my brain wants to respond to it, but I then have to wait for the other person, and they might not respond immediately, and by then I've already lost focus on whatever I was doing which is immensely frustrating.

If instead I'm prompted with a "Hi, can you chat about X?" I can immediately respond in a way that satisfies my brain without losing focus on my ongoing activity.

chousuke··on Don't ask to ask, just ask (2019)
Why would a neurodiverse person want a conversation devoid of mood and feeling? Maybe their feelings just work differently and you can't understand them.

Polling people with non-informative questions is a good way to distract them for no reason if they can't help you. I think that's impolite. As someone with ADHD, that can be disruptive and at times gets extremely frustrating because I can easily lose half an hour to a 1 minute distraction if it demands my attention. Give me some initial information to work with and I will be able to respond without losing my focus.

chousuke··on First look: adding type annotations to JavaScript
no-one is a truly expert programmer 100% of the time.

Types catch a lot of stupid errors that anyone can make, regardless of skill level.

They also localize guarantees. If your data has a type, you don't need to understand the full path it took to arrive in your function to be able to work with it. With dynamic types, you can only hope that a value has the type you need unless you explicitly check every time.

chousuke··on A word used only by Postgres developers
I was actually surprised that you can query across databases in MySQL, but that makes sense once you understand that there's only one database and the "databases" are just schemas.
← PreviousPage 2 of 25Next →