HNHacker News
TopNewBestAskShowJobs

Carpetsmoker

2,224 karma · joined October 28, 2016

Martin Tournoij, also known as arp242.

https://www.arp242.net

martin@arp242.net

submissionscomments
Carpetsmoker··on GitHub isn't fun anymore
A lot of people (who may not even be professional programmers) are using GitHub for their hobby, i.e. "for fun". I don't think this is an invalid use case.
Carpetsmoker··on GitHub isn't fun anymore
Instead it's owned by an abrasive difficult to deal with developer who will argue "you're just doing it wrong" with paying customers. Clearly things aren't exactly roses and sunshine here either.
Carpetsmoker··on JavaScript Growing Pains: From 0 to 13,000 Dependencies
Are those checks actually needed?

"2.2 % 2 === 1" works just as well, so why is the isInteger check needed? Why is the isSafeInteger check needed? And "a % 2" is already NaN (and thus false), although an explicit error is arguably better than silently eating it.

Carpetsmoker··on An understanding of AI’s limitations is starting to sink in
A while ago I watched a 4-part documentary about the every-day lives of ancient Egyptians. Pretty interesting.[1]

For weeks after that my recommendations were filled with bullshit such as "PROOF ALIENS BUILT THE PYRAMIDS!" and such.

So yeah, maybe those "very complex recommendation algorithm based on deep learning/statistics" is perhaps not always such a great idea. In this particular case, it's just a mere annoyance for me, but imagine a 13-year old watching a few genuine documentary videos on Egypt and then seeing this bullshit; they don't have the capacity I have to see it's bullshit.

And imagine if it was on a more serious topic than who built the pyramids...

If I were to ask a YouTube engineer "why did I get this recommendation specifically?" then the answer would probably be "dunno".

An additional issue is that the YouTube of yesteryear was much better in browsing random videos. Now everything is based on what I've watched before, instead of just "give me a list of science videos" or whatnot. This is also an issue I have with Netflix (or rather, had, since I no longer have an account).

It seems to me that inscrutable mindless AI learning has a part in the spread of misinformation and bullshit. I'm not sure how large that part is, but I suspect it's significant. I'm hesitant of the total value in these cases, regardless of what it may do for the bottom line in terms of revenue.

[1]: I'll just drop the link to it here in case anyone's interested: https://www.youtube.com/watch?v=hnsNwwwHm2I

Carpetsmoker··on An understanding of AI’s limitations is starting to sink in
I think the problem is that in a long list of edge cases, it's neither fake clever nor real clever but just "dumb". This is, of course, always an issue with computers, but what makes ML so vexing is that it's inscrutable.

For your fridge that's an annoyance, but when used for more serious applications the ramifications can be large. Example: https://www.technologyreview.com/2019/01/21/137783/algorithm... – there's much more where that came from.

ML works by taking a huge amount of data and finding patterns and is pretty much incapable of judging individual cases. We have ugly words for humans who judge people based on generalisations instead of judging the individual...

Computers and algorithms are devoid of empathy and humanity, I am extremely apprehensive in using them to make any sort of judgement call, especially if the calculation is inscrutable. Humans may not be perfect, but at least they're ... human.

ML is an interesting tool which can be used for many things, but right now it's also being misapplied for many things. I think a lot of opposition comes from that, rather than your fridge or whatnot.

Carpetsmoker··on “Huh” exists in all human languages, according to research (2019)
It certainly has more than a whiff of "HN commenter solves question experts have been discussing for some time" to it.
Carpetsmoker··on HSBC moves from 65 relational databases into one global MongoDB database
I think you're conflating MongoDB with NoSQL; they're not the same thing.
Carpetsmoker··on HSBC moves from 65 relational databases into one global MongoDB database
This seems like a hiring failure to me, not a tech failure. I've been hired on several occasions to work with a language I had zero prior exposure to, and while there is of course some ramp-up time I managed just fine and eventually became skilled and knowledgable in those languages.

I don't see why COBOL, mainframes, or whatnot would be any different. Perhaps the ramp-up time would be a bit higher, but most skilled programmers will manage. I actually wouldn't really mind working with any of that – I just never had the opportunity.

Carpetsmoker··on Jepsen: PostgreSQL 12.3
> PG is not a silver bulet

No one claims it to be, hence the "unless there's a good reason not to" part. However, it is a good default that works well for a wide range of – though hardly all – use cases.

Replication in general is not PostgreSQL's strongest point and if you require advanced replication then PostgreSQL may indeed not be the choice for you, but most projects don't need this. That being said, "no HA support" is just not true.

Carpetsmoker··on Jepsen: PostgreSQL 12.3
I have rarely seen people give "just use PostgreSQL" as advice, but rather "just use PostgreSQL unless you have a compelling reason not to". There's a pretty big difference between the two.
Carpetsmoker··on Advice to new managers: don't joke about firing people
I find the responses to this interesting; several mangers have made some jokes like this over the years (it was even something of a running joke with my last one) and I never felt threatened. Perhaps because in my country you have employment protection laws so you can't just terminate someone's employment, which is rather different from many US states.
Carpetsmoker··on Ask HN: Do posts by authors with more karma rank higher?
I've sometimes submitted some of my own content here, usually without much happening. Then have someone else (not always with more karma) submit it again 1 to 24 hours later and it got to the front page. I've also had content do fairly well on e.g. Reddit or Lobsters be pretty much ignored here as well.

I call it the HN roulette. I think HN is just too large and a lot of good content (or at least, I'd like to think my own content is good, heh) gets missed. Quality of the content is definitely a factor, as are things like an enticing headline, but you also just need to be lucky.

Carpetsmoker··on Python Wheels Crosses 90%
It's pretty rare there are parts with "unclear" licensing. Does it happen? Sure. But "often"?

I'm fairly sure that almost all projects are receptive to updates for dependencies with security issues; I don't see why a distro needs to "untangle" anything for them.

> with system wide dependency you just update that and you are done

Unless the system-wide update won't work with your program.

The entire point of the Go tooling is that you can reliably and consistently build your software, and replacing random parts to create a weird unsupported (by the actual developers anyway) version is something the Go tooling was never designed to support: it goes exactly against what it was designed to do. Hence my previous comment: perhaps this isn't the best of ideas.

Carpetsmoker··on Python Wheels Crosses 90%
This is ironic, because Go in much easier to build than C or C++, especially since the introduction of Go modules.

Perhaps this "untangling" isn't the best idea, at least not always?

Carpetsmoker··on Most tech content is bullshit
Yeah, pretty much. At this one particular conference there were actually loads of stands in the hallway and I would hang out and chat with various people there.

The more professionally organised ones don't tend to have that many stands, except for paying sponsors. I understand why they do that, but I think there's good value in "community stands" too.

I mean, the talks themselves are just "shut up and listen", right? Not too much socializing happening there. I think that revolving the entire conference around presentations is probably not always the best format.

Carpetsmoker··on Most tech content is bullshit
In general I find presentations at conferences not all that interesting; I've been to conferences where I've not attended a single presentation. There are some good talks, but they're not common. Giving a good presentation requires a few different skill and some practice – I'm not good at it either.

The value is mostly in hanging out with various people. The best experience has generally been when I went alone and met loads of new people, instead of going with coworkers or friends and then just hang out with them. Not that's not fun either, but I can do that next weekend anyway.

Carpetsmoker··on Most tech content is bullshit
Yeah, I actually maintain such a list on my own site. I should update it more often though.

I think the biggest problem isn't so much find "hey, that's a cool article"-type of content, but typing in [programming concept] in Google. What I want to find is things like in-depth experiences and advice regarding this which complement the manual. What I actually find it loads of "howtos" with "copy this" which just rehash the manual.

Results vary a bit depending on [programming concept], and I don't think simple "getting started with"-articles are completely useless either. But generally speaking, there are too many of them, many of them are not of high quality, and it obscures more in-depth content.

I'm not sure if maintaining a list of links would really solve that. Perhaps community projects like "awesome-foo"-lists have some potential here, but in practice I've found many of them to be dumping grounds rather than carefully curated.

Carpetsmoker··on Most tech content is bullshit
I attended exactly because of those reasons. The problem is mostly that actually explaining a language (even from a high-level overview) well is a bit more involved than just explaining the syntax and the like.

For example I currently mostly work with Go, and if I would give a high-level presentation about Go I'd start with the "tour of Go" tutorial, but I'd also add some context to some things, explain where you need to be careful to avoid problems, and emphasize the usefulness of other things that may not be obvious at a glance. That kind of stuff. I think the presentation format is a great way for doing that.

A beginning JavaScript programmer might explain the "with" keyword, which would be a mistake. I have no idea if the presentation contained any mistakes like that.

I don't work much with JS, and I haven't looked much as TypeScript since, but I didn't really learn all that much more than what I already knew: "TypeScript is JavaScript with optional typing".

Was it useful for others? Maybe; I hope so. But for me personally I consider it a wasted hour in my life.

Carpetsmoker··on Most tech content is bullshit
It depends on what the thing is you've just learned and your background. For example, this week I worked a bit on an article on the working with the Go "analysis" package for running and writing your own static analysis tools (not yet finished). I "just learned" this 2 weeks ago and wrote a few things in it.

I think it's useful to share my experience on this: there isn't a whole lot of content on it and I think people could benefit from it. It's also helpful for myself, because writing it down clearly means I understand it better too now.

My background here is that I've been programming in Go for over 4 years and have worked with the Go ast package before (though not the analysis framework). I'm hardly a renowned expert on it, but I'd like to think that I have enough background/experience to know what I'm doing and communicate that information others.

Carpetsmoker··on Most tech content is bullshit
I don't think all content marketing is bullshit. There are some companies that produce some pretty nice content, for example some of the in-depth Cloudflare stuff, but others as well.

It's useful and interesting, but also content marketing.

Carpetsmoker··on Most tech content is bullshit
About 5 years ago I attended a local code meetup and someone gave a presentation about this new TypeScript thing. He basically just explained the basic syntax, concepts. etc. A bit boring, but not the worst I've seen.

Then in the Q&A someone asked a "In our experience, we've had problems with X, what's your take?" (I've forgotten what X was specifically), and the guy replied with "well, actually, we haven't really used it yet, we're just looking at it".

So ... he basically just read the TypeScript "getting started" tutorial, transformed it to a presentation, and had no real knowledge of TypeScript.

The entire talk seemed pretty useless to me. I don't even know how accurate that presentation was, because there's much more to using a language effectively than the basic syntax learned from a glance at a tutorial page.

Carpetsmoker··on Why I Use Suckless Tools
I rarely use dwm's tiling: I almost always have most things maximized with perhaps one or two floating windows. I use workspaces/tags and alt-tab to switch between stuff.

I'm not sure how representative the screenshots are of actual usage.

Carpetsmoker··on Why I Use Suckless Tools
I benchmarked my 600-line zsh config this morning because I was curious how long it takes to run. It takes about 0.02 seconds to run, and that's on a €250 crappy Celeron laptop.

Reading a simple config file will probably be faster. So yeah, it's pretty much negligible.

I do like the config.h as it's easy to include your own hacks, I added some key mappings and modifications to dwm that would be much harder with a config.ini or whatnot; but that's very different than startup speed.

Carpetsmoker··on Ask HN: How do I reach making $1-1.5k/mo in 13 months?
I've had quite a few job offers from my weblog over the years, most of them actually pretty decent from HN readers and such (rather different from LinkedIn and recruiter spam). Never from open source thus far.
Carpetsmoker··on Analytics Without Google
Sure, and there's definitely value in that. I can't speak for other products, but GoatCounter intentionally doesn't try to solve every possible analytics use case.

Adding advanced features frequently comes with the trade-off that it makes things harder for people who don't use those features, so by limiting the scope it gets easier/better for some, and worse/harder for others. I found this is the case for software in general.

There certainly should be an UI to quickly compare how the current quarter is doing compared to the last quarter (I wrote some code for that last week, but not done yet), but doing stuff like adding extra search parameters like "from mobile" and "from Netherlands" seem awfully specific to me. While certainly useful for some, most people are not hard-core marketers and adding stuff like that is just "noise" for a lot of people which makes stuff harder to use for them.

Matomo can do all of that, and I also found it hard to use.

Or, tl;dr: Matomo is already good at being Matomo, let's do something different :-)

Related comment from a while ago: https://lobste.rs/s/e8zgt0/github_is_now_free_for_teams#c_r4...

Carpetsmoker··on Analytics Without Google
I'm not sure that's even necessary for the parent's requirement? You should be able to get the parent's data out of it since the location and campaign are stored; there just isn't a UI for it.
Carpetsmoker··on Clang-11.0.0 Miscompiled SQLite
On the other hand, you might catch either program or compiler bugs before it's too late and it has shipped to production. I think this would improve the software, and I'm also not so sure a lot of time is spent on this, and it wasn't even something caught by SQLite devs, but rather an external project which SQLite decided to work around for now.
Carpetsmoker··on Analytics Without Google
I worked on a library to do this for my own analytics thing[1]; adding a CLI so you can filter bots from logfiles isn't too hard: just need to parse the log lines to a http.Request{} with the correct fields filled in (mostly User-Agent, but also looks at IP address).

One of the signals is from various JS properties though (navigator.webdriver, window._phantom), so you'll miss out on that. I have some other ideas as well.

Either way, it's better than nothing?

https://github.com/zgoat/isbot

Carpetsmoker··on Analytics Without Google
There are no server logs on GitHub pages, Netlify, etc.

Analysing server logs also makes it harder to filter bots, and won't include some useful metrics like screen size.

Carpetsmoker··on Analytics Without Google
It looks like I have some work to do on clarifying the homepage here, hah.
← PreviousPage 2 of 18Next →