HNHacker News
TopNewBestAskShowJobs

miggol

239 karma · joined October 13, 2017

submissionscomments
miggol··on Biases in Apple's Image Playground
All this marketability tuning may some day result in models which are extremely finely attuned to our current societal norms and taboos.

At which point the models will stop reinforcing (racial/gender) biases and start reinforcing said taboos instead. I don't think anyone wants that either

miggol··on Why Liquidity Matters
For this kind of qualitative research I stand by the subjectivity of the questions asked as more informative. Retention is in itself a subjective construct.

Sure, you want "number go up" on average, but staying at a company for two years means something completely different to a restless jobhopper compared to a stability-minded employee with a family. Likert scales are perfect for this because they let respondents be their own judge of how well this job is retaining them.

Same goes for the perception of the value of their stock, but I admit it would be really nice to have the absolute value here in addition to the subjective scale to detect an interaction effect.

I do agree that the "actively looking elsewhere" label on the graph for the retention question is laughable.

miggol··on A common urban intersection in the Netherlands (2018)
This is a part of the national design language of the roads in The Netherlands.

Almost universally the following two rules hold: pedestrians walk on a raised pavement next to the road, and through roads have priority.

To compliment those existing rules, exits from side streets where pedestrians on the through road have priority include a raised hump that brings motorists up to pavement level. That emphasizes that it is the motorist who is crossing into a pedestrian area, where pedestrians have priority. The pedestrian footpath is continuous, while the car road is interrupted.

Here's a typical example of the "exit construction" with continuous footway: https://rijbewijshulp.nl/wp-content/uploads/2022/11/Uitrit-7...

And an obvious added benefit is that motorists will slow down for the speed bump.

The author phrases this a bit awkwardly without really making a point. But what I think they are saying is that because the footpath isn't continuous despite the raised bump this is not a typical exit construction, and pedestrians on the through road don't have priority. Even though most motorists would yield to them anyway because of the shark's teeth on the cycle path.

I think it's debatable if the pavement is continuous or not, I would say "kinda". But either way the intersection in the article is not a "typical" example of the exit construction.

miggol··on Wait Until 8th
You're interpreting this as nannyism with respect to the internet as a whole, while I think the pledge is really just about smartphones. If kids want to go and watch gore and porn on their laptops they should be free to do so.

The smartphone that is always on, always fighting for your attention, and always in your pocket has proven to be harmful to the development of most children.

> What's more harmful is preventing discovering adaptation and self-balancing on their own in the face of endless entertainment wish diminishing value.

I really wish kids would still learn self-balancing on their own. But the odds are stacked against them in the current age. TikTok and Instagram have gotten too good at this, backed by teams of scientists and ML models working with passion to fight their self-control.

miggol··on Htmx, Raku and Pico CSS
At the end of the day, neather approach really has features over the other. HTMX doesn't forbid other JS components.

I think HTMX appeals to fullstack devs like me who often find themselves needing bespoke API calls for their frontend views anyway.

When writing tightly coupled backend code for a frontend view, I'm quick to think "well why am I not doing this entire feature in the backend, anyway?" And HTMX makes that super easy without giving much up.

But the opposite reaction would be equally valid.

miggol··on Rent control effects: An almost complete review of the literature
I think outlawing rental property is a fun and radical idea but it does of course ignore the practical reasons people seek to rent housing rather than own it. They might want temporary or shared housing, or prefer to outsource the responsibility and liability of homeownership.

All renting of housing should be well regulated and good housing policy must be comprehensive, covering both the supply and demand side of the equation.

miggol··on eBPF Offensive Capabilities – Get Ready for Next-Gen Malware (2023)
The sudoers example to me was the most illustrative.

Though it's still not exactly clear to me what the verifier intends to prevent. I can understand that it limits how far you can look up into the stack and what memory your eBPF program can read. But can we otherwise just run any random code in eBPF? The register value tracking and DAG stuff kind of goes over my head.

In short, could I write a Scheme in eBPF and pass it a program at runtime, through a map?

miggol··on Amber: Programming language compiled to Bash
I have no idea how I would tackle the problem with Go or Rust. But Python with pyinfra comes to mind as a sane enough solution. Since we decided to move from Puppet to pyinfra at work, I don't see myself writing any sysadmin scripts in bash again anytime soon.

Although Bash is still king for small utilities, I have found myself writing such scripts in Janet[1] recreationally. Bringing the functional paradigm to shell scripts really is a lot of fun, if you belong to that conviction. Although the lack of portability and the fact that you need to "know Bash" to even use the Janet `sh` library kind of guarantees that it will always just be for fun.

1. https://janet.guide/scripting/

miggol··on Guess my RGB
The score is defined as follows:

      function score (r, g, b, rr, gg, bb) {
        const maxRErr = Math.max(r, 15 - r)
        const maxGErr = Math.max(g, 15 - g)
        const maxBErr = Math.max(b, 15 - b)
        const maxDist = Math.sqrt(maxRErr * maxRErr +
                                  maxGErr * maxGErr +
                                  maxBErr * maxBErr)
        const rErr = Math.abs(rr - r)
        const gErr = Math.abs(gg - g)
        const bErr = Math.abs(bb - b)
        const dist = Math.sqrt(rErr * rErr +
                               gErr * gErr +
                               bErr * bErr)
        return Math.floor(100 * (1 - dist / maxDist))
      }
Before even starting to count the error, it calculates the maximum error possible for the target colour. That makes sense! We want the percentages to feel more or less the same every round. Otherwise a medium grey would score relatively higher with every guess.

But to answer your question, I don't think the local optimum situation you are describing is possible. I'm no math wizard but looking at this function there must (surely?) always be a direction to move one slider to get a higher score, unless you're bang on. So I think you just missed out on that one move, which does get ever more likely as your guesses get closer.

miggol··on Apple announces ability to download apps directly from websites in EU
What is your opinion on S-mode in Windows?

I don't agree with the hyperbole of the person you're replying to. But I also don't think the possibility of fair competition is mutually excusive with the security of the vulnerable few.

That's assuming that something like an opt-in lockdown mode is compatible with the DMA.

miggol··on New 13- and 15‑inch MacBook Air with M3 chip
Hello, laptop buddy!! Paid more than $700 in euros for it two years ago though. Can totally relate to the sharpness, but otherwise still very happy with it. Had to patch my ACPI to nuke S0 and get decent S3 suspend though. Did they ever patch that with firmware?
miggol··on TOTP Codes in the Terminal
Thanks for pointing this out! This functionality has been right under my nose for ages without me noticing.
miggol··on TOTP Codes in the Terminal
Thing is, I often create or update passwords from my phone. I have yet to find a good UX for committing and pushing those changes from Android. Though I would be interested in that, because I have little protection against accidental deletion now.

With syncthing it's just instantly everywhere whenever I add an account, no action required. That's particularly useful when I create an account on my computer, then have to scan an OTP QR code with my phone. By the time my phone's out of my pocket the fresh account is already in the store to save the OTP code into.

miggol··on TOTP Codes in the Terminal
Arguably storing TOTP tokens in your password manager does provide a level of protection against phishing.

You might fool me with that phishing page, but you won't fool my password manager's autofill. It would have to be full on MITM or DNS poisoning for that to work, which is already more of a movie plot.

miggol··on TOTP Codes in the Terminal
Neat! I should try this. Been using pass since forever. Does it support autofill on Android?

GNU Pass is a great example of Unix-y interoperability for me. I sync the .password-store folder over to my phone with Syncthing, where the Password Store android app reads it. Password Store in turn talks to OpenKeychain for my encryption key with biometrics support. Changes are also synced back to my other devices. Each piece of the puzzle can focus on doing one thing and doing it well, even on Android!

Password store for android: https://f-droid.org/packages/dev.msfjarvis.aps/ Openkeychain: https://f-droid.org/packages/org.sufficientlysecure.keychain...

miggol··on How Programming Languages Got Their Names
For those of us who like the braces:

Lisp comes from List Processor.

Scheme was first called Schemer, which itself evolved out of the Planner language developed by Carl Hewitt at MIT. Schemer was shortened to Scheme to fit the ITS filesystem's six character filename limit (!) on the PDP-10.

Racket is a kind of Scheme. (I like this one)

Guile comes from Guy L. Steele, one of the initial Scheme developers. The other being Gerald Jay Sussman.

miggol··on Show HN: Name That Nation
Absolutely!! Some more suggestions of mine:

* Show the incorrect guess you just made on the map, even if not close

* Repeat countries that you got wrong within the next 10 turns, to learn by repetition

miggol··on Harmonics Explorer
Wow, what a lucky find. This is incredibly useful to me for equalizing speakers to match a room. I was using Websynths Microtonal before but this almost seems designed for the purpose.

All it might need is the ability to manually enter the base frequency yourself or do an automatic sweep. But I could probably bodge that into the source myself.

Lovely!

miggol··on The lazy technologist's guide to weight loss
That's interesting. I've been exercising my current amount for so long that I didn't factor in the side effect of additional hunger. Good point.

Though I will say that when it comes to my 50 minute strength sessions, I don't really feel that hungry after. I tend to do them after work, before dinner, and then eat the same amount as any off day. I'm no athlete, just doing the minimum, at which point additional hunger is not that noticable.

50 Minutes of strength is far from your continuous 277W output (nice!), for multiple hours. I think the target audience would literally die far before feeling anything like your levels of hunger, should they ever go on a bike ride with you.

miggol··on The lazy technologist's guide to weight loss
I think the author's take on the role of exercise is kind of harsh compared to my own experiences and of those around me.

> An hour of intense exercise might burn 500 calories, and it’s very hard to keep up that level of effort for even one full hour — especially if you’ve been sitting in a chair all day for years on end.

This is probably true, though it doesn't factor in the effect of muscle mass and "afterburn" on resting metabolism. Muscle is expensive, that's why your body gets rid of it quickly when you don't use it. And you spend a lot of calories replenishing energy stores and repairing your muscles in the days after your exercise, because that's far from a 100% efficient process.

If you're male and an absolute beginner (as sitting in a chair all day implies), you can gain significant muscle mass with just 90 minutes a week of strength training.

The direct calorie expenditure of exercising that much may be minor. But you will soon be burning an extra 150kcal/day in afterburn and muscle maintenance just sitting on your ass on your off-days. That adds up to a nice beer budget.

Intensive strength training isn't for everyone though, I can see why a guide for the lazy person might leave it out. But if you're even slightly more of a minmaxer than just lazy you should consider it, given all the other additional benefits of exercise.

Finally the protein paragraphs are very spot on. Especially now quality protein shakes are cheap and easily available. One of those (125kcal) fills me up like lunch, and two like dinner. They're an incredible weight loss hack.

miggol··on Helio: Libre Music Composition Software
In this video he speaks about piano rolls at large: https://www.youtube.com/watch?v=Eq3bUFgEcb4

The tl;dw is that piano rolls are intuitive to some degree but are inefficient at presenting information that musicians are interested in.

miggol··on Studies suggest that relying on will power to break habits is hopeless (2019)
I enjoyed the article. Even though I've heard most of it before, I'm the kind of person that really needs reminding of the core message. Somehow it's so easy to fall back into the "willpower is the trick" mindset. Perhaps because it's reinforced so heavily in popular culture, as the article mentions.

The article does however, in my opinion, commit a crime in bringing up the often misrepresented marshmellow experiment as some kind of fundament of psychology. The one where a child is promised a second marshmellow if they can resist eating the first one placed in front of them for a 15 minutes.

Children make do with the mental faculties and model of the world available to them. They live in a world shrouded in mystery in which adults regularly break promises to them for reasons they can't comprehend. Once the adult telling them what to do has left the room, I don't blame the kids for feeling an urge to take a bird in the hand over two in the bush. That's a perfectly good default instinct to have before you've acquired absolute trust towards friendly strangers in university buildings.

Imagine a real-world analogy to this kind of experiment. Adults choosing to go for the double reward would likely be labeled naive, bad with money, or gamblers. Extrapolating to the general population is ridiculous. Mischel's research wasn't about that at all.

From the article: In Mischel’s marshmallow experiment, only a quarter of the subjects were able to resist eating the marshmallow for fifteen minutes. This implies that a large majority of us lack the self-control required to succeed in life.

(disgruntled noises)

miggol··on Berkeley Mono Typeface
On the serif side of things there's Go mono, which I like a lot and also doesn't feel monospaced. To me it makes code look friendly, like the pages of a book.
miggol··on Odorant diffuser improves memory and neural functioning in older adults
Unfortunately, reasonable has nothing to do with it.

Though I must admit my first comment is rather sarcastic and not very informative. Let me elaborate on why the high drop out rate is so damning.

Let's use a marble analogy because they are common in statistics. You gather 132 marbles of that vary in size in a way that is representative of the marble population as a whole. You then randomly assign them to either an intervention (n=68) or control (n=64) group. This random assignment is already an intervention in its own right, but with these numbers you could still say the groups are pretty much comparable.

Now, you run your experiment. Your hypothesis is that the marbles in your intervention group will grow in size, and not the control. But you don't know that, and we should assume the null hypothesis until disproven.

It's time to measure your marbles. It would make sense to measure them all, but you don't do that. You take a sample (n=12) for the intervention group and another sample from the control (n=11) and measure those samples. The rest are dropouts.

The reasons that caused these marbles to drop out are irrelevant. I'm not suggesting the researchers are paid shills and consciously selected marbles to suit their narrative. For all we know all the other marbles were stolen, or are invalid for other causes outside the researchers' control.

The problem is that this act of subsampling has wrecked the experimental design either way. The null hypothesis suggests that both groups were not only initially equal, but also remained equal regardless of intervention. So you must ask yourself the following: if I took such a small sample from each group before I had even performed the intervention, what are the odds that one sample would be significantly bigger than the other by pure chance?

I'm not doing the maths, and they would heavily rely on the imaginary distribution of marble sizes in this analogy anyway. But I dare say that one sample would be significantly bigger than the other one often enough. And half of those times it would be the intervention group. So before even considering the effects of your own intervention, you're already fighting a losing battle. Because of subsampling the null hypothesis has grown stronger and can now explain even a very large difference between groups.

So what do you do as a conscientious researcher when faced with the hardships of campus shutdowns and participants that didn't do cognitive tests in person but via zoom? My recommendation would be to run your statistical tests on everything and publish it anyway. Acknowledge that garbage in = garbage out, there were many confounders, so you can't draw any conclusions. Sometimes pandemics get in the way of science.

You could even publish the results for all participants side by side with the restrictive subsample. If they both point to the same result, perhaps you even have grounds for some kind of valid conclusion! Makes you wonder why they didn't just do that, huh.

What you definitely shouldn't do is only publish your statistical tests on the subgroup and draw conclusions based on those alone. And then not acknowledge how the massive group of participants that you _chose_ to leave out could have affected the results, or how the choice to leave them out affects the null hypothesis.

Hope this helps!

(I'm not a researcher but I work in academia and have on occasion assisted in experimental design.)

miggol··on Odorant diffuser improves memory and neural functioning in older adults
This study mananaged to finance 38 participants worth of MRI time and (likely significant) monetary compensation for all 132 participants. Yet it wastes no more than a couple of sentences on how it threw out 109 participants' worth of data on cognitive tests, resulting in a drop out rate of 83% for the cognitive side of things, and still considers its findings in this area valid.

(section 2.5 - Impact of COVID-19 pandemic)

The discussion similarly does not waste the reader's time on possible validity issues or confounders.

I can only speculate that more scientific rigour would have been applied had it been grant money being thrown around.

miggol··on The great American eye-exam scam (2019)
In the Netherlands, you would likely get your first contacts from the same optician's that just gave you your free eye test. They famously don't let you leave with them until they've seen you put them in correctly yourself. A friend of mine had to embarrassingly come back another day and try again, after his eyes had gotten too irritated from the failed attempts.

You can still buy disposables over the counter, though.

miggol··on Web fingerprinting is worse than I thought
To me, the thing is that I can't count on the consent modals to actually do anything. Am I really going to invest time into checking their word? How would I even do that? That's on top of all the time wasted moving sliders or hiting "reject all".

For me, the cookie consent modals are the submarines. Why would I outsource the responsibility not to track me to the people with the incentive to track me? IDCAC, Cookie Autodelete, and strict tracking protection feels like the better alternative for me.

(From today onwards, I'll add resistFingerprinting=true to that list as well.)

miggol··on UML: The Positive Spin (1997)
To continue the over-analysis in good faith: I think the trashcan example points out the inheritance of draggability. Any file object in a directory gets it by default, without having to think too much about it.

Then the trashcan inherits from a directory, making it able to have things dropped on it. But it overwrites the action taken from movement to deletion. That maps "nicely" onto the human mind.

> If anything, you're invoking the environment's "drag" function with two arguments, "document" and "trashcan";

A perfectly valid alternative description. But having a do-it-all environment with every function doesn't sound OOP to me.

miggol··on Functional Reactive Programming
So sad to hear that Elm appears to be dead. It really excited me at first but I guess that like many I never made the time to give Elm a serious attempt.

For me, learning Racket was not too hard. The offical learning materials are excellent, although they are also meant for programmers starting from zero. For me that meant that I occasionally skipped over parts I considered "too easy" only to be confronted by my hubris later.

For me, what makes lisps easier than Haskells is that lisps are multi-paradigm. So you can write a more imperative implementation of whatever you're doing right next to the "proper" functional one to get things to click, and also to identify those elusive merits of functional programming.

I wouldn't describe the Racket community as "vibrantly alive", but it's definitely still moving along. And the knowledge is very transferrable to other lisps and schemes. Next on my list is Carp, for example. And if you (choose to) use Emacs you'll reap even more rewards from the knowledge transfer.

miggol··on Google’s in-house desktop Linux
There probably a lot of brilliant minds at Google who have their very first taste of Linux there. Designers, management types, even developers, who suddenly need a Linux install to run a specific tool or dev build. Having a consistent Distro for them to just turn on and go is very useful.

If something doesn't work, they can communicate back to the (well-bearded) developer who sent them that weird build. The developer surely has some crazy esoteric distro on their bring-your-own device, but they also have desktops running the consistent distro available to them all around the office to reproduce the issue on. It's a bridge between worlds.

I work in academia and we manage our own Ubuntu spin for this reason, despite everyone we ship it to being very conventionally smart.

> if you're smart enough to work at Google, you're smart enough to manage your own OS.

I also like to think of myself as "smart" for self-managing most OS and cloud things. But the role of smarts is probably minor compared to the decade+ of experience I have doing it. When it's something I'm good at, I think it's because of intelligence. When it's something I can't do, I assume the people who can have lots of practice.

← PreviousPage 2 of 3Next →