HNHacker News
TopNewBestAskShowJobs

wanderr

1,390 karma · joined January 16, 2010

[ my public key: https://keybase.io/wanderr; my proof: https://keybase.io/wanderr/sigs/WVZgmAeBhBIn8EP0t-WCO991ylaLcdJi8ckdP_o16ZM ]
submissionscomments
wanderr··on Ask HN: Who operates at scale without containers?
Ah, I think you're right that it wasn't MB because I remember having to match artists by name rather than mbid. Music map doesn't sound familiar but my boss negotiated the access, I think I was just ingesting the data from a csv dump so it could have been anywhere.
wanderr··on Ask HN: Who operates at scale without containers?
Oh man, I should write a blog post about that, as I built that feature myself. It was meant to be a stopgap until we could get some real matchine learning in there, but nothing else we tried did as well. First, for efficiency all recommendations were artist to artist,nl not song to song. That works well for a lot of genres but is pretty bad for others. We started with a free DB of artist similarities, I don't remember where we got that from, maybe musicbrainz? We built a shitty internal interface for adding and removing links between artists and adjusting the weights of those links and then made it available to all employees to mess with. As you might imagine just about everyone there was passionate about music so it didn't take long to crowdsource a huge catalog of quality recommendations and then for really obscure stuff we would fall back to the open db. So the actual algorithm would look at your seeds - artists you put in the queue before turning on radio or artists with songs that you liked while radio was on, pull the top n linked artists for each of your seed artists, and do some weighted shuffling. It would also make sure to space out artists so you don't hear the same one too often etc. Then for genre radio we just secretly selected a bunch of artists we felt were representative of the genre and used those as the seeds. Oh yeah and if you disliked a song we'd prevent that artist from playing for the rest of your session. We also would look at anomalies like popular artists with not many recommendations, or artists that, when used as seeds, lead to shorter listening sessions (implying that the recommendations need to be cleaned up). Most attempts to replace this with something smarter ran into 2 problems: 1. Popular stuff is popular, so it looks like a good recommendation for anything, and 2. ML is hard and takes a lot of time, which we never had enough of
wanderr··on Ask HN: Who operates at scale without containers?
Grooveshark didn't use any of that. We were very careful about avoiding dependencies where possible and keeping our backend code clean and performant. We supported about 45M MAU at our biggest, with only a handful of physical servers. I'm not aware of any blog posts we made detailing any of this, though. And if you're not familiar with the saga, Grooveshark went under for legal, not technical reasons. The backend API was powered by nginx, PHP, MySQL, memcache, with a realtime messaging server built in Go. We used Redis and Mongodb for some niche things, had serious issues with both which is understandable because they were both immature at the time, but Mongodb's data loss problems were bad enough that I would still not use them today.

That said, I'm using Docker for my current side project. Even if it never runs at scale, I just don't want to have to muck around with system administration, not to mention how nice it is to have dev and prod be identical.

wanderr··on LXC vs. Docker
That seems weird for some stacks though, like nginx, php-fpm, php. At least I still haven't wrapped my head around what's the right answer for the number of containers involved there.
wanderr··on Why won’t anyone teach me math?
I believe there is a major misalignment of goals/incentives in undergraduate academia. As students we think the model is, we pay [quite a lot of] money to be taught useful knowledge in a rigorous way that means we will leave with real knowledge. Universities, on the other hand, seem to think the model is to churn out well qualified individuals in their field. There are two ways to accomplish that goal: doing the hard work of providing a real education to everyone; or doing the much easier work of filtering out those who don’t already "get it". This is why Universities don’t care that a class is reviled by all the students.
wanderr··on In MySQL, use “utf8mb4” instead of “utf8” (2016)
Yes. I’ve been burned by this exact issue in the past, not realizing that utf8 was not really utf8 in mysql-land. That is a major, major WTF IMO.

But I’ve also seen people relying on validation at the time of insertion so many times that I wanted to warn against that, too. Not in argument against the need for utf8mb4.

wanderr··on In MySQL, use “utf8mb4” instead of “utf8” (2016)
Any data in your database that can come from external input should be treated as untrusted and validated before it's used. Otherwise validation bugs or bypasses will result in bad data and exploits that persist beyond the fix. Edit: I’m not arguing against the need to use utf8mb4
wanderr··on Ask HN: Why is software quality always decreasing?
This is probably not what he had in mind, but I love make one to throw away, for experiments. Product and VPs often have a damn hard time wrapping their minds around it though. I saw it working with my own eyes! What do you mean we can’t ship it?! My latest product partners have no trouble understanding the value when they see that their experiments get shipped in half the time, it’s well worth it to get twice as many experiments out even if GA takes twice as long, because 2/3rds of experiments should fail anyway.
wanderr··on Ask HN: Why is software quality always decreasing?
I agree that it’s a business problem. Cost, prioritization, rapid hiring, promotion incentives all play a part. Nobody usually funds a project to go through and clean up code. My last two jobs before I went fully down the management track, I deleted 100k-200k lines of code by applying static analysis, deleting obviously dead code, finding obviously broken code and figuring out whether it was being used (thankfully it mostly wasn’t, in the few cases where it was I could replace it with calls to properly working methods that already existed). I consistently deleted more code than I ever wrote, but every time I deleted code it was on a personal whim, not because it was a funded activity, even though it also improved productivity (engineers wasting time maintaining dead code). Once a codebase reaches a certain size, it’s not realistic for someone to get comfortable enough with the entire codebase and how everything interacts to be confident that major changes won’t have unintended consequences, so even if someone wants to go rogue and do a major cleanup effort, they will only get so far.

Now I try to make sure my team has time allocated to paying down technical debt, but most of the time that is enough to keep the situation from getting worse, more than really improving the situation.

wanderr··on I quit caffeine
I have quit caffeine several times. I love the taste of coffee and tea, but I become dependent on caffeine very quickly, and have to keep upping the dose just to feel normal. Eventually I don’t feel human until half way through the day and there is no amount of caffeine that will give me energy. The withdrawal headaches are too excruciating for me to bear so I found a way to effectively wean myself off of caffeine using caffeine pills. Once you figure out how much caffeine you need to feel ok, you know your actual dose and can simply take a little less each day. For me that means a week or two of feeling a little groggy, but avoiding the headaches. I’m not a morning person, so I’ll never feel perky in the morning but I at least feel human.
wanderr··on CT scans of AirPods evolution
I haven't seen a flagship phone with replaceable battery in forever. I absolutely want that and would pay more for it, but I won't compromise on performance and camera quality either. But Airpods I don't care about the battery being replaceable. Maybe because I expect to have to replace the pods before the battery is useless.
wanderr··on Planting trees “doesn't make any sense” in the fight against climate change
Anything that doesn’t put carbon deep underground is a temporary solution at best. Most of that carbon is destined for the atmosphere.
wanderr··on High-accuracy thrust measurements of the EMDrive, elimination of false-positives
Based on a different paper? This was only published last month.
wanderr··on Toyota launches groundbreaking 10-year warranty (in UK)
Sure, but in my experience they then find excuses to not fix problems. I had an Elantra (don't remember which year) in which the passenger air bag would turn off if my passenger shifted their weight just a little bit at any point during the trip, and would not turn back on until I turned the car off and on again. Dealer repeatedly insisted that it was working as intended. I always wondered if the airbag would even work in the case of an accident since my passenger's weight would surely shift.
wanderr··on How We Institutionalized Incompetence
This is not a new phenomenon. This sounds like a rehashing of Systemantics by John Gall (1975), except attributing the causes to things the author sees as problematic rather than recognizing that these are problems inherent in complex systems. "Systems tend to oppose their own proper functions"
wanderr··on Linux under WSL2 can be leaking
Related issue with some workarounds that people are reporting various levels of success with: https://github.com/microsoft/WSL/issues/5068
wanderr··on Moving your SSH port isn’t security by obscurity
This article was written today, in response to an article that made it onto HN 7 years ago?
wanderr··on PHP 8.0.0 beta 2
php-fpm is typically configured to restart those processes after some number of requests, just in case there is such a leak. But I have not seen those leaks happen between process restarts, state is still wiped clean between requests, so leaks should be rare/difficult and probably most likely the result of faulty extensions.
wanderr··on PHP 8.0.0 beta 2
This is true. As far as I understand, the only issue with memory leaks have been around super long running processes that create cyclical references that cause refcounting to not "notice" that something is free. I have never had a memory leak problem with a web service, and I wrote* the PHP backend for Grooveshark (45 million monthly users, averaging 2 hours per visit, running on half a dozen front end web servers. Sadly I don't remember RPS figures at this point)

*not to take sole credit. I created RPC framework and initial API, and oversaw a small team of very talented engineers who added a significant chunk of the functionality powering Grooveshark over the years

wanderr··on Mozilla lays off 250 employees while it refocuses on commercial products
'The coronavirus pandemic “significantly impacted our revenue,”' -

Most of their revenue comes from search engines paying to be the default. Are there any details on why the pandemic would have a significant impact on that?

wanderr··on Unit Testing Is Overrated
I've worked at really small startups (<20 engineers) and pretty large companies (>1k engineers).

At small companies we have absolutely been able to get away with 0 unit tests while maintaining agility - being able to do major reactors quickly even when working in dynamic languages, while maintaining a high level of quality, even when operating at reasonably large scale. The key is clear, well written code and strong ownership from senior engineers who have a deep understanding of the code they own. On the other hand, at large companies, extensive unit testing has been invaluable. Code bases are older, ownership changes hands frequently, new engineers join all the time, old ones move on to other projects, dozens of teams are calling each others code, refactoring is done by people who had no hand in writing the code in the first place, dependencies are higher and harder to track down completely, and it's not realistic to cover all important functionality with integration tests. Engineers often must rely on unit tests to prevent others from breaking their code, and to ensure that they are not breaking someone else's. Yes, unit tests can be highly problematic and costly to maintain, and they do add friction and time to initial development, but in these scenarios the benefits outweigh the costs considerably.

wanderr··on Scrutinizing SpaceX, NASA Overlooked Some Boeing Software Problems
Specifically in the Boeing case, you'd think that the software quality issues on the airplane side would trigger anyone doing business with them to be more skeptical about their software.
wanderr··on Code only says what it does
If no one understands what it does, it's not perfectly good code is it? Of course there are rare cases where code cannot be simplified, made more readable or self explanatory and in those cases comments are vital. But the aim should be for the vast majority of code to be easily readable by humans.
wanderr··on Deconstructing Pinterest’s reverse-image-search SEO growth hack
I think my use cases are pretty varied, anything from looking for pictures of a place I'm considering going hiking, looking for different views of a product I'm considering purchasing, looking for other examples of an artists art, to trying to figure out where some image originated
wanderr··on Deconstructing Pinterest’s reverse-image-search SEO growth hack
I don't think it's that simple. When a user goes back to image search results, is it because they are unsatisfied with the result they clicked on, or are they looking for even more, hoping to compare? And when a user closes out instead of doing back, is it because they got what they wanted or because the results were so garbage they gave up? Based on my own usage of image search results I don't think you would be able to tell when I was happy with the results or when I wasn't. But you can probably tell that my usage of image search went down when it started getting shitty due to this spam.
wanderr··on EFF and heavyweight legal team will defend Internet Archive against publishers
By that definition no lawyer operating in good faith is.

You're not arguing about whether the defendant is on the wrong side of the law.

wanderr··on Santa Cruz, California bans predictive policing in U.S. first
I was under the impression that this is more likely related to the reduction in lead in the air. At first glance that seems plausible. See murders by year[1] and the presence of lead[2], the timelines seem to match.

[1] https://en.wikipedia.org/wiki/Crime_in_New_York_City#Murders...

[2] https://www.forbes.com/sites/alexknapp/2013/01/03/how-lead-c...

wanderr··on ACLU sues Minnesota for police violence against the press
If "good" police are standing by and allowing "bad" police to get away with these things, I'd argue that they are complicit in the bad behavior and not so "good" after all.
wanderr··on A Monday Is a Tuesday Is a Sunday as Covid-19 Disrupts Internal Clocks
I think there are many different reasons why this happens. For me, Delayed Sleep Phase Syndrome is a pretty ideal match to what happens for me naturally, which is to say that my body seems to be on a ~26 hour cycle. The WFH situation has not made a difference for me being able to keep a schedule that works better for me because: meetings.
wanderr··on Americans, it turns out, would rather visit a store than buy food online
> Even more reason to ensure the more expensive items are viewed first.

Not if you want your customers to have a not-miserable enough experience that they will actually buy from you, and continue buying from you in the future.

← PreviousPage 3 of 20Next →