HNHacker News
TopNewBestAskShowJobs

ilitirit

2,562 karma · joined March 3, 2008

submissionscomments
ilitirit··on What's Going on with ‘Nonplussed’? (2017)
> One does things like this because one is afraid of being assailed by pedants and made to feel inferior.

Do you pronounce "tortoise" like "bourgeoise" because you don't want to sound inferior?

I jest, but it's like your argument is making my case for me. Replace "snob" with "pedant" to see what I mean.

ilitirit··on What's Going on with ‘Nonplussed’? (2017)
I not sure what you're talking about. I'm referring to things where pronunciation is generally based on the etymology. I don't think the word "adjective" falls into this category. One could perhaps make a case for aluminum vs aluminium (cf: platinum), but those are pretty much different words that refer to the same thing.

"Process-eez" is the same word as "processes" with a pronunciation based on a misunderstanding (presumably) of the etymological "rules".

ilitirit··on What's Going on with ‘Nonplussed’? (2017)
On a tangential note, one of my pet peeves is the way that many people (mostly Americans?) pronounce words like "processes" as "process-eez".

Words with Greek roots that end in -is or -es generally use the -eez suffix. e.g. analysis -> analyses; thesis -> theses

In the case of Latin, it's -ix or -ex. e.g. index - indices, appendix - appendices.

There are of course exceptions and outliers (suffix -> suffixes; octopus -> octopodes!?), but words like "process" and "bias" do not fall into the categories mentioned, so there's no reason to use the non-standard "processeez" and "biaseez". Unless - IMO - you want to sound like a snob... Think about it - how does one pronounce words like "successes" or "princesses"?

One could argue that language evolves - this is true, but in general language evolves to have simpler rules with fewer exceptions rather than the other way around.

Stop, let's all try to stop the madnesseez.

ilitirit··on The Format Dialog in Windows NT
I was watching one of his vids recently about C++ tricks and he talked about one time he submitted about 1m changed lines of Windows source code in a single commit, to a repo that didn't even support branching. It's crazy how devs used to work back in the day.

Here's his YT channel for anyone interested: https://www.youtube.com/@DavesGarage

ilitirit··on Bruno: Fast and Git-friendly open-source API client (Postman alternative)
Why does Bruno require ffmpeg?
ilitirit··on Comments Are Code (2018)
Is it really that hard to write sensible comments?

Well, after a few decades writing software, I've come to the conclusion that yes, yes it is. But just because it can be hard to write a good comment it doesn't mean you need to agonise over it.

Here are a few "simple" examples:

    // Once we receive the cancellation ack, we should automatically send the updated flow
    if (releasedFlow.Status == ReleasedFlowStatus.IndicativeCancelled)
    {
        await _mediator.Send(new SendFlowCommand ...
It should be pretty clear from the context that that's what is happening and it doesn't explain why. This is because it would take multiple paragraphs to explain. Could I just post a link to the documentation about this business rule? Yes, but the location of the said documentation changes so often it can render the comment useless. Could I change it to say something like "Please refer to the documentation"? Sure, but then why don't I put that comment behind every piece of business logic? No, the simple purpose of this comment is just that - a comment on what the business rule was at the time of writing, especially with respect to the other possibilities. You can spend ages overthinking this but there's no point. Just read, understand and move on.

What about this:

    if (foo)
    {
        DoFoo();
    }
    else if (bar)
    {
        DoBar();
    }
    else
    {
        // Intentionally empty
    }
Dead code with a comment that explains nothing. Is this code better with or without the dead code and comment? I'd argue that the code is better with it. In fact, this is a well-known technique: https://en.wikipedia.org/wiki/Intentionally_blank_page

Yes, you can argue that the coder should explain why it's blank. But this depends on the context, and who the intended audience is. Again, no need to overthink it. Read it, modify it if you really think it's necessary (keeping in mind that the alternative is often no comment or empty else statement), and move on with your life.

ilitirit··on You've just inherited a legacy C++ codebase, now what?
I've had to do this several times in the past. Honestly, my best advice would probably be make several backups, then to do as little as possible. If you need to make a small change, fine. Bigger changes? Consider if you can't do the bulk of the work in a technology or stack you understand and only make a small change to the legacy code base.

Most of the time I spend with C++ code revolves around figuring out compile/link errors. Heaven forbid you need to deal with non-portable `make` files that for some reason work on the old box, but not yours... Oh, and I hope you have a ton of spare space because of some reason building a 500k exe takes 4GB.

Keep in mind, this advice only applies to inherited C++ code bases. If you've written your own or are working on an actively maintained project these are non-issues. Sort-of.

ilitirit··on Bard is now Gemini, and we’re rolling out a mobile app and Gemini Advanced
When I ask ChatGPT4 what the length of its context window is, it tells me (4096 tokens).

When I ask Gemini, it basically tells me "it depends" with a few paragraphs of things I generally don't care about and then suggests I ask for a ballpark estimate (1k - 3k tokens).

ilitirit··on Patients say keto helps with mental illness. Science is racing to understand why
> You must realize the world and humanity is bigger than you.

That's exactly why I said "many people could", not "everyone will".

ilitirit··on Patients say keto helps with mental illness. Science is racing to understand why
I don't think you really need keto, but I think many people could benefit from just training themselves to eat fewer times a day, and developing an aversion to sugar and unhealthy food in general. I don't eat breakfast - haven't done so for more than 20 years. It doesn't affect my enerygy levels or mood. It always made me wonder why we even had it in the first place. All I have is a cup of black coffee, no sugar. Sometimes tea with no milk. And that's only when I start work, which is around 2 hours after I wake up.

These days I only eat after 5pm. My body is so used to it that I don't really get hungry during the day. Even if I go to gym in the morning. Do I notice a difference if I change my eating schedule or diet? Absolutely. If I eat during the day, I tend to want to eat more during the day. If I eat a lot of carbs and junk food, I tend to want to eat more. Also I feel like shit and my skin looks horrible. I think somewhere in all this mess there are mental health concerns as well, but I can't really quantify them in a meaningful way.

ilitirit··on Tidy First?
Often when I read articles/books with this sort of advice I get halfway and think to myself "Hmmm... I really should write my own book about programming stuff".

I'm sure many other senior programmers have similar thoughts.

ilitirit··on How to Build the CMoy Pocket Amplifier (2016)
My comment stands for over-ear headphones as well - it's just not going to matter for 90% of users. An Apple dongle is usually more than enough.

I have several different amps, a tube pre-amp, several DACs and a Qudelix 5k DAC. I regularly switch between an HD600, HD650, HD560s, HE4xx and Audeze Maxwells. I can maybe count on one hand when I thought one combination sounded "better" than another, although I'm sure I could bump up this number if I tried. The problem is 90% of the time it just doesn't matter.

There's loads of resources on the net that talk about this, e.g.

https://www.youtube.com/watch?v=K8zAko5G6eg

Most of the time the differences are not that important, unless, as the adage goes, you're using the music to listen to your equipment rather than using the equipment to listen to your music. Which... 90% of users don't do.

ilitirit··on How to Build the CMoy Pocket Amplifier (2016)
Audio is a very interesting and strange hobby. For example, this amp is probably fantastic, but 90% of people probably don't even need one, and those who do can probably get away an Apple dongle or something similar.

Some people will swear XYZ amp makes their audio sound better, but that's more a function of taste, the DAC, and/or distortion handling mechanisms inside the amp, and that's itself is an incredibly topic which again 90% of users can ignore.

ilitirit··on The pro-Israel information war
> West Bank is more complicated, but the same concept applies.

"OK don't worry about oval ones. Just consider the round ones."

All this aside, I don't think you understand what is meant by Apartheid. This is coming from a South African who grew up during that era.

ilitirit··on The pro-Israel information war
Many of these comments talking about how many pro-this or anti-that news exist are quite baffling. I don't really think that's the point. I think the point is more about the existence of groups with links to private companies and even government(s?) who actively seek to punish people who post views and opinions they don't like. And this is supposedly is in a democracy, not dictatorship, or religious state.
ilitirit··on The pro-Israel information war
> In contrast, Israel has a ~20% Arab minority (excluding Gaza and West Bank).

I'm reminded of an anecdote (probably false) of when someone was asked in an interview why all manhole covers are round. He replied that not all manhole covers are round. They countered "Well, just consider the round ones".

ilitirit··on The pro-Israel information war
Just to be clear, are you saying this article is false propaganda? Which parts, and do you have sources? I'd like to know full picture before I send this link to people.
ilitirit··on The pro-Israel information war
> This article that singles out Israel for trying to provide its (true) version of reality

Is this a serious comment, or satire? I honestly can't tell. I mean... we're talking about a country whose official social media accounts tries to pass off pics of the Lebanese war as the current situation in Gaza; who posts doctored images to try to disguise executions; who posts edited footage of their military commanders pointing at calendars saying they are a roster of terrorist names. I could go on and on, but that last bit is still too surreal.

What (true) version of reality are you talking about here? And besides that, you do realise that one of the things this article is pointing out is how certain groups work together to punish people who post things they don't like - even if it's just an opinion?

Nevermind, your post simply has to be satire...

ilitirit··on Goodbye, clean code (2020)
But surely this should be already inherently known? I have never met anyone that stuck dogmatically to "rules" from things like Code Complete, Clean Code etc etc no matter how much they espouse them. Very simple examples:

- 1 assertion per test

- Exceptions instead of return codes

- CQRS

etc

All of these are good guidelines in some contexts. I cannot fathom why anyone would think they apply to every situation...

ilitirit··on Goodbye, clean code (2020)
I will never understand the general thought process behind these articles.

"I'm giving up on X/Y/Z because I've found a case where it didn't work well for me".

Isn't that how pretty much everything in the world works? There's no reason to be dogmatic about things like this.

ilitirit··on Push ifs up and fors down
I'm glad many people have identified why "pushing ifs up" is often bad advice. This article should give examples of when and why you should use either approach. Furthermore, I would argue that there's far too little information and context presented here to even make a decision like that.What do `frobnicate` and `transmogrify` do? How many callers would need to perform these conditional checks? Do these if statements convey domain logic that should actually belong in the walrus class? If these checks need to be made often, would it make better sense to capture the call as a lambda and then only perform the check once instead of having a conditional for loop? Etc etc.
ilitirit··on Crafting Self-Evident Code with D
> Try not to create functions that both ask a question and modify state. Over time, I’ve been gradually splitting such functions into two.

AKA Command-query Separation (CQS)

https://en.wikipedia.org/wiki/Command%E2%80%93query_separati...

I use this often, but there is one typical scenario where I break this rule - creation commands. Often someone calling a command that creates an entity needs the ID of whatever was created. Yes, you can use UUIDs and pass this to the creation function (or use more complex methods), but I haven't really come across scenarios where this adds anything meaningful, not to mention that it's not always possible. So I generally break CQS for creation commands, i.e. they change state and return a value.

EDIT: I just noticed the Wikipedia article cites other examples, e.g. The `pop()` method on a Stack.

ilitirit··on Ferromagnetic half levitation of LK-99-like synthetic samples
Out of interest - has this new paper been peer reviewed already?
ilitirit··on How I installed TrueNAS on my new ASUSTOR NAS
I like TrueNAS because of its plugin support. My installation runs Jellyfin, AdGuard, *arr (Sonarr etc) and a couple of other things. I don't really care about data redundancy for the data that's stored on the NAS, so I just use JBOD. Sure I can build my own linux server to do all this, or maybe run VMs in ProxMox or whatever, but I don't really gain anything from that.

TrueNAS works fine for my use cases, and I suspect it's the same for most users.

ilitirit··on Google warns its own employees: Do not use code generated by Bard
I asked Bard to suggest improvements to a SQL query I wrote. It suggested that I change my filter to improvement performance. The filter I had was:

   WHERE Column1 <> Column2

The suggested improvement:

   WHERE Column1 <> Column2

When I pointed out that it just gave me exactly the same code, it apologised and suggested this improvement instead:

   WHERE Column1 > Column2

I'm trying to understand how this helps me become more productive...
ilitirit··on AI does not help programmers
> The title of this article is rather assertive. Take it as a proposition to be debated [...] The main immediate goal is [...] to spur a fruitful discussion to advance our understanding beyond the "Wow!" effect.

OK, I already know where this is going so I'll just skim the rest.

Hmmm... as I suspected, I can't see how this article is any different to:

"AI Does Not Help [xyz]" with cherry-picked examples to prove a point.

In fact, I'm pretty sure I've been reading similar articles several times a month since ChatGPT was released.

Here is my "proposition to be debated":

"Articles about how AI does not help [xyz] do not in fact help anyone"

ilitirit··on PaLM 2 Technical Report [pdf]
There's a massive difference in response quality in my experience.

For example, I asked 3.5 to find a bug in a lengthy piece of Javascript. It said it's hard to give a correct answer because it doesn't know what the HTML or CSS looks like.

GPT4 spotted the bug almost immediately (it didn't manage to fix it though).

ilitirit··on A Beginner's Guide to eBPF
Her implementation of a rudimentary load balancer (in C) demonstrates eBPF in practice:

https://www.youtube.com/watch?v=L3_AOFSNKK8

ilitirit··on Sparks of Artificial General Intelligence: Early Experiments with GPT-4
GPT AI systems remind me of Chinese Room thought experiment:

https://en.wikipedia.org/wiki/Chinese_room

This is also similar to the Duck Test:

https://en.wikipedia.org/wiki/Duck_test

Depending on the context, there are generally two takes: "It is (or is not) a duck", and "It doesn't (or does) matter whether or not it's a duck". These aren't mutually exclusive.

ilitirit··on ChatGPT generated a puzzle game
I don't understand why people don't think this is noteworthy.

Would it be noteworthy if it this game (whether or not it existed before) were designed and implemented by someone who has very limited experience with software development in a few hours? Well, the fact that ChatGPT did this means the former is now a very real possibility.

That you can go from conceptual inception of a framework to a fairly complete product in a few hours with very little experience is a big deal.

← PreviousPage 3 of 20Next →