HNHacker News
TopNewBestAskShowJobs

meritt

6,947 karma · joined February 24, 2011

submissionscomments
meritt··on DHH: The HEY stack Vanilla Ruby on Rails, MySQL, redis, stimulus, elastic search
I'm not sure where I suggested "Hey, long time Postgres users, you should switch to MySQL!". The point is it's a solid modern database and a completely fine option in 2020.

MySQL8 supports functional indexes and concurrent indexing fyi. It still does not have transactional DDL nor partial indexes.

meritt··on DHH: The HEY stack Vanilla Ruby on Rails, MySQL, redis, stimulus, elastic search
MySQL 8 is very solid and has resolved the vast majority of the gripes of the past. Postgres is, as always, amazing software, but MySQL is no longer the choice to be shunned.
meritt··on What Comes After Zoom?
> We're not allowed to use Github in my organization (bigcorp, IP etc.)

Is your organization aware that Microsoft owns Github and your Azure stuff is most likely hosted inside Microsoft data centers exactly like Github? Seems like a weird line in the sand to draw.

> Microsoft under Satya Nadella is a very different company from what it once was.

Yeah, Microsoft is doing great things in other areas. VS Code, Windows 10, WSL, DirectX on WSL, the massive focus on open source and giving back to the community. I just found MS Teams in particular is unusable garbage, but I'm very happy with Microsoft otherwise.

I don't know if you're old enough but MS Comic Chat was significantly superior to Microsoft Teams.

meritt··on What Comes After Zoom?
My company tried MS Teams for about two days before canning it and switching back to Slack + Zoom. I've never encountered such a poorly designed product [1] other than the one it was supposed to replace, Skype for Business.

Why the does chat need to take up so much space on the screen and why is everything presented in basically an old school SMS layout (I'm looking at you too, Signal). I tried a handful of their integrations nothing worked correctly. Trying to simply enable github commits/PRs/etc was a confusing nightmare of authenticating multiple parties and ultimately all it did was have a chatbot privately spam me, but couldn't have it reside in a channel.

Screen sharing is a disaster for everything business oriented too (ms teams, zoom, slack, whatever google's thing is called this week). They're slow, laggy, frequently crash, and resolution is unreadable most of the time. If you need to have screen sharing where your voice chat happens at the same time as your video actions, Discord is the only thing that works flawlessly. It's superior on simple voice chat too, persistent voice chat rooms, etc. It's lovely software.

[1] https://images.techhive.com/images/article/2017/02/teams-bet...

meritt··on Private Equity Investing Now Allowed in 401(k) Retirement Funds
> You don't want your retirement account to be a casino.

You should take a look at Fed actions regarding public markets over the past few months.

meritt··on 20yo Robinhood Customer Commits Suicide After Seeing $730K Negative Balance
You don't need margin, you only need enough cash to cover the maximum loss, which is can be very small. e.g. right now if I wanted 3 put spreads on AMZN at 2640/2635 expiring this Friday, it would give me a net credit of about $2 per contract, or $600 credited to my account. My maximum loss would be 3 * 100 * (2640-2635) = $1500 minus the credit ($600) received, or $900. As long as I had a mere $900 in my account, this trade would be allowed.

If I held through expiration and the short leg (AMZN $2640) was assigned, I would be contractually obligated to buy 300 shares of Amazon at $2640 a piece. This would briefly reduce my buying power by -$792,000. But as I also hold a contract to sell 300 shares of Amazon at $2635 ($790,500), it would have a net cost of only $1,500. And since I already received $600 up front, it would be just $900 additional out of pocket. But for a period of time, my account balance would have displayed -$792k.

meritt··on 20yo Robinhood Customer Commits Suicide After Seeing $730K Negative Balance
He had a spread. The short leg was assigned, the long leg cancels it out but it doesn't happen instantaneously. So he temporarily was on the hook for -300 $AMZN shares or whatever, which made his buying power massively negative. Then the long leg gets executed and it all evens out in the end for a relatively small profit or loss (the delta of the strikes), but that can be a nerve-wracking weekend if you don't understand the process.

Robinhood's UI is not particularly informative in this process either.

meritt··on A shared file system for lambda functions
Cron is a scheduler that executes shell commands. Lambda represents the shell command itself right? What are you using to specify when something should run?
meritt··on How Rust Lets Us Monitor 30k API calls/min
Sorry, I must be missing something in this blog post because the requirements here sound incredibly minimal. You just needed an HTTP service (sitting behind an Envoy proxy) to process a mere 500 requests/second (up to 1MB payload) and pipe them to Kinesis? How much data preparation is happening in Rust? It sounds like all the permission/rate-limiting/etc happens between Envoy/Redis before it ever reaches Rust?

I know this comes across as snarky but it really worries me that contemporary engineers think this is a feat worthy of a blog post. For example, take this book from 2003 [1] talking about Apache + mod_perl. Page 325 [2] shows a benchmark: "As you can see, the server was able to respond on average to 856 requests per second... and 10 milliseconds to process each request".

And just to show this isn't a NodeJS vs Rust thing, check out these webframework benchmarks using various JS frameworks [3]. The worst performer on there still does >500 rps while the best does 500,000.

It's 2020, the bar needs to be much higher.

[1] https://www.amazon.com/Practical-mod_perl-Stas-Bekman/dp/059...

[2] https://books.google.com/books?id=i3Ww_7a2Ff4C&pg=PT356&lpg=...

[3] https://www.techempower.com/benchmarks/#section=data-r19&hw=...

meritt··on Robinhood 20yo trader with no income loses 700k on options, takes life
You're right, but due to Robinhood's terrible UI/UX, when you hold a spread and the short leg gets assigned, it shows your account as owing an astronomical amount. In reality, you have an opposite leg that gets exercised and you're only out the difference in the spread (which that risk is based on your account balance/margin/etc).

This kid didn't lose $700k, his account just shows -$700k until Monday morning when it will update with the other leg being exercised and he probably lost a few grand instead. Here's a similar situation where someone thought they lost $172k, when in reality they lost $2k. [1]. It's a combination of a shitty UI and people not understanding option spreads.

[1] https://old.reddit.com/r/wallstreetbets/comments/aohvow/hi_t...

meritt··on How we scrape 300k prices per day from Google Flights
> now you have a valid offense to sue for.

Yes. That's also what I said above when I said "Google can sue them". It's not illegal is my entire point. You can sue anyone, for any reason, at any time, and even win. That doesn't make something illegal.

If Google sends them a C&D, and expressly forbids them from doing this activity, and implements technical measures to prevent them from doing so, and they continue doing so then they may start approaching the area of illegal (Craigslist v. 3Taps would agree, hiQ v. LinkedIn would disagree).

meritt··on How we scrape 300k prices per day from Google Flights
> what they are doing is illegal

It's not illegal. Google can sue them and bury them in court fees and potentially win a civil suit, but it sure as hell isn't illegal.

meritt··on How we scrape 300k prices per day from Google Flights
Google doesn't need to block them on a technical level, they just need to send a simple C&D. If Brisk keeps scraping without permission after that, they can look forward to financially a ruinous legal battle [1]. Or they could just not blog about what they're doing and fly under the radar for years and years without any concern.

[1] https://www.eff.org/deeplinks/2019/09/victory-ruling-hiq-v-l...

meritt··on Async Python is not faster
Yep, but that's simply how the linux kernel works [1]. As a programmer you need to essentially load up all your modules/libraries/data/etc that you will need into memory before the fork, and treat the forked() processes as read-only as much as possible from a resource perspective. If you modify anything from the parent, you get your own page as soon as that happens. [2][3]

[1] https://www.informit.com/articles/article.aspx?p=368650

[2] https://en.wikipedia.org/wiki/Copy-on-write

[3] https://en.wikipedia.org/wiki/Fork_(system_call)

meritt··on Async Python is not faster
> forking 16 instances is going to be a lot heavier on memory

It really depends on how the application is designed. Fork operates through mmap and copy-on-write. It's extremely lightweight by default.

A well-designed fork-based application will already have everything necessary to run a given process into memory, not munge any of the existing shared memory, and only allocate and free memory associated with new events/connections/etc.

When programmed that way, individual forks are incredibly light on resources. All the workers are sharing the exact same core application code and logic in memory.

meritt··on A Facebook crawler was making 7M requests per day to my stupid website
No. The owner needs send Facebook a cease and desist and block their IPs in order to revoke authorization under the CFAA, and then Facebook would need to continue accessing his website despite explicitly being told not to. That's the precedent set by Craigslist v. 3Taps.

Whether or not the above even holds today (hiQ Labs v. LinkedIn argues it does not) remains to be decided in a current appeal to the Supreme Court.

meritt··on 25 Years of PHP
Okay. Good luck.
meritt··on 25 Years of PHP
> I don't want to use PHP at all. I don't like dynamic languages.

Okay, so don't? I think individual languages are better when they don't add every feature under the sun that happens to be popular in the moment. PHP doesn't need threads and it sure as hell doesn't need async. PHP multiprocessing works the old way just fine (fork).

> Today's "best practices" for PHP are to use typehints everywhere.

Yeah, and it's a result of people constantly bitching about PHP lacking features. It's really annoying because it gives credence to complaints like this, I really wish they would have just replied to the strict-types demands with "No, fuck off, this is a dynamic language."

If you must use PHP, I would strongly suggest you use it the way it was intended and stop trying to shoehorn other language features and paradigms into it, you will be much happier. If we simply treat PHP as a dynamically typed C, everything is so much easier.

meritt··on 25 Years of PHP
People who demand a dynamic language needs to add strict typing and once it does, demand that it now add generics need to stay the fuck away from dynamic languages.
meritt··on Ask HN: What is the current state of Google Stadia?
Not sure how ubiquitous the service is across the city but you can get 1000/1000 fiber from CenturyLink in parts of Portland.
meritt··on How Google Meet's noise cancellation works
Krisp is embedded into Discord (enable beta settings) and the voice chat quality far exceeds any of the "business" focused software I've ever used.

Not to mention the screensharing is infinitely better as well. It's pretty pathetic of the busines sapps, we went through a day where I was trying to screenshare something and my remote coworkers kept complaining of lag, blurriness, or the app would just crash (slack). We went through ms teams, zoom, slack, and google meet. All had issues. Convinced everyone to install Discord and suddenly I was able to shared my desktop perfectly at 1080p without noticeable lag and crystal clear audio.

meritt··on DuckDuckGo, Google, and Android choice screens
metasearch.com was my bread and butter to mitigate that hellscape, though altavista was probably the best in the mid 90s. Ask Jeeves if I was feeling particularly sophisticated.
meritt··on America is giving up on the pandemic?
> Don't tell us there is no risk from these protests, but there is a risk from stay-at-home protests.

The difference is the stay-at-home protesters overwhelmingly didn't wear masks [1] and the BLM protesters are overwhelmingly wearing masks [2]. Hong Kong has proven it's possible to have massive protests while wearing masks and not being vectors of infection. [3]

[1] https://www.npr.org/sections/coronavirus-live-updates/2020/0...

[2] https://www.foxnews.com/politics/protesters-aim-to-bring-one...

[3] https://www.nytimes.com/2020/04/21/world/asia/coronavirus-ho...

meritt··on Google2Csv is a simple Google scraper that saves the results on a CSV file
parquet has a very narrow use case. it's great for internal operations but interoperability is limited unless both sides use one of the same handful of tools. csv is supported by literally every tool ever designed to work with data.
meritt··on A Git Repo to Document Police Brutality During the 2020 George Floyd Protests
Police and their constant overreacting is the entire point of protests fyi.
meritt··on A Git Repo to Document Police Brutality During the 2020 George Floyd Protests
https://twitter.com/gunduzbaba1905/status/126693750060761498...

Clip for context. The guy on the ground hits an officer in the helmet, once, at 0:30. If you think their response was measured and appropriate and followed ROE/EOF, then I feel sorry for the worldview you hold.

meritt··on Show HN: Unity MMORPG Boilerplate – Multiplayer in Unity Made Easy
https://github.com/MFatihMAR/Game-Networking-Resources is solid compilation of resources on this topic.
meritt··on How does the Gmail unsubscribe button work?
I just mark as spam. Too many unsubscribe links want me to type in my email address, ain't nobody got time for that.

If it's a newsletter I actually signed up for, I respect that and will unsubscribe, but the majority is unsolicited spam where a company feels is OK because I happened to have bought a product they can now email me 8 times a day.

meritt··on HashiCorp forbids its software being used in China
Whoa, wait, the founder's last name is Hashimoto? That's awesome. I always just assumed it was a portmanteau related to hash functions.
meritt··on Most-streamed track of the day by country
The data is entirely available from https://spotifycharts.com/regional including daily CSV download links since 2017-01-01.

The OP submission just renders it on a map.

← PreviousPage 2 of 34Next →