2,224 karma · joined October 28, 2016
https://www.arp242.net
martin@arp242.net
"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.
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
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.
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.
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.
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.
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.
Perhaps this "untangling" isn't the best idea, at least not always?
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.
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.
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.
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.
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.
It's useful and interesting, but also content marketing.
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.
I'm not sure how representative the screenshots are of actual usage.
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.
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...
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?
Analysing server logs also makes it harder to filter bots, and won't include some useful metrics like screen size.