HN user

aib

337 karma
Posts1
Comments92
View on HN

That work like this often predicts a good portion of the technological advancements, but usually completely misses the mark on the execution and the enshittified commodification is why I like reading cyberpunk and other dystopian sci-fi.

My default pull is ff-only. I don't like merging or rebasing by default.

When working in a short-lived branch, I like to rebase. I usually get no or simply easy-to-solve conflicts. I like my small and numerous commits stacked on top of the current develop. Regardless or whether we squash or not.

For long-lived branches (and technically for hard merges, though I've been using rerere more and more) merge is a better option.

What kills bisect, IMO, is large commits or commits with multiple subjects/goals. That's the reason I don't like squashed PRs.

Why is Zig so cool? 9 months ago

You're absolutely correct! </s>

The "how to modify an environment variable" bit and the bin-dec-hex table made me feel the same way. Then I saw the part explaining how to check for duplicates in a row... I'm struggling to understand the point of the article. Testing a text generator?

Most input is text, most output is text, commands are text. Vast majority of programming languages can process and produce text out-of-the-box. There are countless utilities for processing text. You can store, load, split and join text easily. Send and receive it through most channels.

When everything is text, text files become libraries. Text editors become macro processors.

I ended up writing a similar plugin[1] after searching in vain for a way to add temporary DNS entries.

The ability to add host entries via an environment variable turned out to be more useful than I'd expected, though mostly for MITM(proxy) and troubleshooting.

1: https://github.com/aib/nss-userhosts

Just tried it on our codebase. Getting over a thousand errors, a good portion of which seem to be:

    ../../../tmp/typescript-go/built/local/lib.dom.d.ts:27982:6 - error TS2300: Duplicate identifier 'KeyType'.
    27982 type KeyType = "private" | "public" | "secret";
               ~~~~~~~

      ../../../tmp/typescript-go/built/local/lib.webworker.d.ts:9370:6 - 'KeyType' was also declared here.
        9370 type KeyType = "private" | "public" | "secret";
                  ~~~~~~~
Probably an easy fix.

Running it in another portion results in SIGSEGV with a bad/nil pointer defererence, which puts me in the camp of people questioning the choice of Go.

(Not directed at the parent comment but the thread in general)

I don't know why people are more interested in labeling it than explaining it. (Although admittedly, they go side by side.)

Every grammatical aspect of "past time with -miş" (which is how I learned it) is the same as the other one, "past time with -di". As in, I cannot think of a sentence where replacing one suffix with the other would result in a syntax error, or any semantic difference other than certainty.

A point of confusion might be verbs made into adjectives using -miş, although I'm having a hard time coming up with many examples where there's an ambiguity between the adjective and the "tense". Doesn't help that the assertive(?) case is without suffix, so "pişmiş" might mean "[it is] [a] cooked [one]" or "[Apparently it was] cooked".

Another point of parallelism between the two past "tenses" is that it's perfectly valid to answer a question in one with the other. (Or is this a general language or tense thing? Hmm.)

A pain point, for me, is having to explicitly type private functions.

I like refactoring independent blocks out into functions, to separate the scopes and have readable summaries a la self-documenting code. Having to fish out and then explicitly enter some library's useful but complex type makes it unpleasant.

I'm starting to see a pattern here... Hmm, maybe private functions should be treated differently?

I tried using a PostgreSQL SKIP LOCKED queue once, turned out to be a mistake.

It was a queue for a distributed worker pool. The simpler alternatives I was used to at the time (RabbitMQ) did not support joining (i.e. run task Y when all of X1~X20 are complete) and therefore every task was stored in the database, anyway. I don't remember the exact numbers, but it was a light/moderate load--thousands, maybe tens of thousands of rows per day. It ran smoothly with an external message queue. I'd vacuum maybe every 4 months.

For one iteration, I decided to try using PostgreSQL as the queue system as well, to decrease the number of moving parts. It performed fine for a bit, then slowed to a crawl. I was sure I was doing something wrong--except every guide told me this was how to use a table as a queue. If I missed anything, it must've been PG-as-a-queue-specific.

"[C] is simple but expressive, practical but admitting of elegance (think of some of the pointer arithmetic in K&R); it is small, fast, and portable; it is the lingua franca of programming and the language of languages[...]"

How anyone can think pointer arithmetic is elegant is beyond me. Especially when the title mentions a language with algebraic data types and higher order functions. Or even just RAII.

I'm also not sure C is the lingua franca of programming anymore. From my personal experience (and language is strongly tied to geography and culture) people tend to talk about strings and booleans, JSON and other custom types, stacks and heaps. ints and longs have fixed sizes and representations in their minds. (In fact, many C concepts are used erroneously from a strictly-C-language point of view.)

This is not to insult C, however, which is elegant in its simplicity (and perhaps The Mother of Modern Programming Languages, if you fancy a majestic title), nor the project, which has a noble goal.

At least you get English videos. A couple of times I've gotten videos in... Hindu, I think, by searching in English and clicking on a video with an English title. And it was a technical video, not much language-independent content.

I think that line has been blurry (blurred?) for a long time. Is it ill-intentioned when Apple slows down charging with non-authenticated cables because "they might be shitty and high currents can cause a fire"? If companies can hide behind good intentions, they will. And I'm not even sure such intentions originate from human beings, anymore. Not from individuals, at any rate.

Indeed, this is how I did it. 2^28 is around 270 million. With little more than a handful options, it should be possible. Although I have to say, it turned out to be more difficult than I'd initially thought. Maybe it's better to think of it as 28 different boolean choices.

  echo -n "Indeed. This is how I managed to do it. 2^28 is around 300 million. With only a handful options, it's possible. Although, I must say that it turned out to be more difficult than I'd initially thought. Perhaps it's better to think of it as 28 different alternatives." | sha256sum
  I think it is a text book example of the main difference in DNA between Google and Apple:
      Google is all about crowdsourcing.
      Apple is all about curation.
What's in their DNA is being corporate entities answerable to shareholders. Anything else is their culture, which, unfortunately, is too amenable to change. Oh, and in this analogy, their blood is money.

"Google Maps" is a misnomer. Call it "Google Business Search" or something similar, and the perceived problems disappear.

Google Maps provides a small fraction of the functions of a real map. And this fraction does not even cover the fundamentals: Street names, landmarks/points of interest, being able to draw or create marks on the map, and perhaps making basic measurements. Its main view has marginally more information than the "share location" screen of a messenger app.

It's a car-driving always-online consumer's guide to spending money. Extremely useful, but not a map.

I think the reason is simpler: Unchecked exceptions.

Investing in (checked) exception safety is not as valuable when anything can throw an NPE.

I would really like to try PowerShell, especially since it has a different paradigm than the "text" shells that I'm used to---but Microsoft's name behind it gives me pause. I can't rationalize it except for that every MS technology I've tried turned out to be tailored for a different class of user---lower-skilled and MS-paying. There's a high chance this itself is irrational, but if it blocks it blocks.

What worries me are the low-grade programmers. By delegating their work to tools like ChatGPT (and doing so always a level or two beyond the current abilities of the tools) they will manage to take us to newer lows.

Being the go-to git guy for a whole project when everyone was new to it.

Are you using it from the command line? I feel that helps a lot. Get a good log alias[1] and get hacking. I almost exclusively use the official CLI, with the exception of git-gui for committing and rolling back patches (lines / hunks). (I find it's easier than `add -p` and that CTRL+J is a good time saver.)

1: As an example, https://github.com/aib/dotfiles/blob/master/.gitconfig#L29