HNHacker News
TopNewBestAskShowJobs

karlding

976 karma · joined October 20, 2015

nvidia drive os (currently nvstreams, ex-auto rm); formerly hv fw (bms/hvp) at tesla for model 3. also worked on calling/core product at textnow, and reporting at sandvine. uwaterloo grad.

[ my public key: https://keybase.io/karlding; my proof: https://keybase.io/karlding/sigs/6RYb_SBJ3cAPDcj228kqB9ivjISZddnsSETccp_mJz4 ]

    justkding.me
    github.com/karlding
    linkedin.com/in/karlding
submissionscomments
karlding··on Run More Stuff in Docker
The blog post links to Jessie Frazelle's GitHub repo [0].

Jessie also has a blog post about this [1] from back in 2015. If you prefer video format, Jessie also has a talk at DockerCon SF 2015 [2].

[0] https://github.com/jessfraz/dockerfiles

[1] https://blog.jessfraz.com/post/docker-containers-on-the-desk...

[2] https://www.youtube.com/watch?v=cYsVvV1aVss

karlding··on YouTube’s Copyright Filter Is Crushing Video Critique–and It’s Getting Worse
> There are stories of creators making videos to suit the algorithm, [...] and of certain works or even whole types of art simply left uncriticized because getting through the copyright filter is just too difficult.

I don't think people realize just how much Content ID affects the presentation of media that content creators upload on YouTube. Tony Zhou and Taylor Ramos (of "Every Frame a Painting" fame) detailed this in their blog post from 2017 about the end of their channel [0], explaining that through their attempts at evading Content ID, the filters designed to restrict them ended up becoming their distinctive editing style. Unfortunately, they inadvertently edited themselves into a corner if they wanted their channel to have a consistent visual style/branding. They later discovered that this choice also had the side effect of preventing them from exploring various film aspects that they wanted while evading detection via Content ID filters.

[0] https://medium.com/@tonyszhou/postmortem-1b338537fabc

karlding··on Binary Search Reconsidered (2018)
The Competitive Programmer's Handbook by Antti Laaksonen (pllk) [0] presents an alternative formulation which seems fairly intuitive to derive. The idea is to take a "normal" for-loop iterating through the entire array (a constant step size of 1), and instead use a large initial step size (n/2) which halves at each iteration.

[0] https://cses.fi/book/index.php

karlding··on TerarkDB, ByteDance's RocksDB replacement
CockroachDB also has Pebble [0], which is mentioned in their blog post [1] as a RocksDB replacement for their use-case.

[0] https://github.com/cockroachdb/pebble

[1] https://www.cockroachlabs.com/blog/pebble-rocksdb-kv-store/

karlding··on Defensive Programming
> make sure you know what your assert does, and when it does that, if you have a debug and release build

Absolutely. Probably the most common difference I've seen in "Debug" and "Release" builds relying on the standard library headers is when NDEBUG is defined as a macro when <assert.h> is included, which causes assert to become a no-op [0].

This has interesting implications when developers accidentally rely on the side effects of functions and assert on the return value of that helper. On "Release" builds that side effect would be compiled out. For that case, clang-tidy has the bugprone-assert-side-effect [1] checker if you want to enforce this in your CI.

[0] https://en.cppreference.com/w/c/error/assert

[1] https://clang.llvm.org/extra/clang-tidy/checks/bugprone-asse...

karlding··on Double Blind Passwords a.k.a. Horcruxing
I believe you're thinking of Yao's Millionaires' problem [0].

[0] https://en.wikipedia.org/wiki/Yao%27s_Millionaires%27_proble...

karlding··on AWS Fault Injection Simulator
It's AWS re:Invent [0], where they typically announce new product offerings.

[0] https://reinvent.awsevents.com/

karlding··on How we built scalable spatial indexing in CockroachDB
You might be interested in BikeshedDB [0].

[0] https://github.com/tbg/bikesheddb

karlding··on Scaling Datastores at Slack with Vitess
> Slack has ~12-13 mil DAUs, right?

As of September 2019, Slack reported 12 million DAUs [0]. Of course, that is pre-pandemic, and the only figures that Slack has provided regarding demand in 2020 are these tweets [1] from Slack CEO Stewart Butterfield back in March. In those tweets, it mentions that Slack was serving 12.5M simultaneously connected users.

[0] https://slack.com/blog/news/work-is-fueled-by-true-engagemen...

[1] https://twitter.com/stewart/status/1243000487365861376

karlding··on Kaitai: Describe the structure of data, not how you read or write it
Protocol Buffers and Kaitai structs solve different problems, although they both deal with serialized data. With a protobuf, you don't really care about how the data that you're serializing into the binary buffer is represented in the binary format. All you care about is that your data can be serialized and deserialized. Conversely, Kaitai allows you to control and specify the representation of the serialized data. This allows you to specify arbitrary formats (like image formats, for example).

Essentially you start with the serialization format instead of starting with the deserialized data (or like how the title of this submission says, "describe the structure of data"). As such, you can somewhat describe protobufs [0] using Kaitai structs, but the converse is not necessarily true.

There's actually a section under their FAQ [1] with a more in-depth response to this.

[0] https://formats.kaitai.io/google_protobuf/index.html

[1] https://doc.kaitai.io/faq.html#vs-protobuf

karlding··on I Made a Self-Quoting Tweet
The Data Center ID has been in Snowflake IDs for a while. It's present in the original version of Snowflake that Twitter open sourced back in 2010 [0]. Looks like it was added in this commit [1] from August 2010.

[0] https://github.com/twitter-archive/snowflake/blob/snowflake-...

[1] https://github.com/twitter-archive/snowflake/commit/ba2e67ea...

karlding··on Simple Password Management with GPG
Well, this exact use case is mentioned on the pass website [0].

> One approach is to use the multi-line functionality of pass (--multiline or -m in insert), and store the password itself on the first line of the file, and the additional information on subsequent lines.

The Android Password Store app [1] also handles this format, interpreting the first line as the password and displaying the subsequent lines as additional information.

[0] https://www.passwordstore.org/

[1] https://github.com/android-password-store/Android-Password-S...

karlding··on An ex-Googler’s guide to dev tools
> I was not aware of the blaze clones plz and pants.

At BazelCon 2020, Borja Lorente from Twitter gave a talk [0] about how they were migrating away from Pants to Bazel. Seeing as Twitter was heavily involved in the development of Pants, not sure what that means with respect to adoption and evangalism once they complete their migration.

Lately it seems that Bazel has basically won in the space of open source projects using Bazel clones as more and more companies switch over.

[0] https://youtube.com/watch?v=0l9u-FIaGrQ

karlding··on Anu: A sound, distributed version control systema
It's mentioned in the book Programmer's Guide to MPW: Exploring the Macintosh Programmer's Workshop by Mark Andrews [0].

[0] https://vintageapple.org/macprogramming/pdf/Programmers_Guid...

karlding··on Malicious NPM package opens backdoors on programmers' computers
There are projects like crev [0] which attempt to get around this by using a web of trust to audit dependencies. Rust has cargo-crev [1] as an implementation.

Here's the previous HN discussion [2].

[0] https://github.com/crev-dev/crev/

[1] https://github.com/crev-dev/cargo-crev

[2] https://news.ycombinator.com/item?id=18824923

karlding··on The cheap pen that changed writing forever
For what it's worth, the consensus on /r/fountainpens and other fountain pen enthusiast sites is that you risk receiving counterfeit Lamy Safari pens when purchasing from Amazon. These fakes often have poor quality nibs and ruin people's first experience with fountain pens. The recommendation is to purchase a pen through a reputable dealer so you know that you are getting the real thing.

There's a post here on Imgur [0] regarding an individual's experience after receiving a fake on Amazon if you want to compare the fake and original.

[0] https://imgur.com/gallery/RC0hU

karlding··on Robinhood Accounts Looted, No Customer Support
According to Fidelity's website [0] they still do so ("You'll be asked to enter your username and password using the keypad on your phone.").

I basically assume any financial institution that provides support for the old "telephone banking" methods via DTMF tones either stores your password in plaintext or a hashed version that reduces entropy. I'm honestly surprised hackers haven't gotten sophisticated enough to bruteforce these reduced entropy login passwords using a Twilio account.

[0] https://www.fidelity.com/customer-service/phone-numbers/over...

karlding··on Stripe Will Pay Workers $20k to Leave New York and San Francisco
What about stock refreshers? I believe stock grants make up a pretty big portion of one's total compensation at large tech companies. According to data shared by Google and Facebook employees [0], it seems like stock makes up ~40% of your compensation for a Senior L5 role.

Would those also be CoL adjusted?

[0] https://www.levels.fyi/SE/Google/Facebook#

karlding··on Makani source code released
There's websites for disposition of company assets when they go under. The Makani auction was advertised on the Silicon Valley Disposition website [0] for a while.

[0] https://svdisposition.com/

karlding··on Apple (Pro) Mouse (2014)
He's been working at Apple [0] ever since December 2018.

[0] https://www.theverge.com/2018/12/17/18144421/apple-designer-...

karlding··on Realtime California Air Quality
Someone posted a Medium article [0] on the /r/bayarea subreddit where they did some digging into this. Apparently the sensors used by Purple Air rely on a constant that represents the average density of the particles it detects. Because wood smoke particles are less dense than typical PM 2.5 particles, the resulting AQI values are too high.

The Lane Regional Air Protection Agency has developed a conversion formula that is built into Purple Air (if you apply the LRAPA conversion factor in the UI), so you can have a better comparison.

[0] https://medium.com/@16fcali/understanding-purpleair-vs-airno...

karlding··on Semgrep: Lightweight static analysis for many languages
This isn't specifically for syntax errors, but Jacob Jackson released TabNine [0] last year, which is an autocompleter trained on files from GitHub [1].

TabNine was acquired by Codota earlier this year [2].

[0] https://www.tabnine.com/

[1] https://www.tabnine.com/blog/deep/

[2] https://techcrunch.com/2020/04/27/codota-picks-up-12m-for-an...

karlding··on Elo sucks – better multiplayer rating systems for smaller games (2019)
The parent is talking about TrueSkill 2 [0], while the trueskill Python library you linked currently only supports the original TrueSkill algorithm [1][2]. TrueSkill 2 takes into account individual scores of players in order to weigh the contribution of each player to each team. The idea is that this allows TrueSkill 2 to converge faster for new players.

[0] https://www.microsoft.com/en-us/research/publication/trueski...

[1] https://github.com/sublee/trueskill/issues/27

[2] https://www.microsoft.com/en-us/research/project/trueskill-r...

karlding··on Hackers take over prominent Twitter accounts in simultaneous attack
Why do employees even have access to tools that allow them to take over accounts? What use case does having this functionality provide?

Unless they're saying that there's certain people who have raw DB access...

karlding··on “LibreOffice is at serious risk”
I agree. GUIs are hard!

On the other hand, it seems like Open Source has a lack of designers that are willing to contribute. For example, in Tantacrul's critique of MuseScore [0], there's issues highlighted that seem obvious in retrospect, but in Open Source projects, unless there's someone who drives the user experience, it's easy to miss all these small things that add up to signal (whether rightly or wrongly is besides the point) a lack of polish.

[0] https://youtube.com/watch?v=4hZxo96x48A

karlding··on Dolphin Progress May and June 2020
I submitted a blog post a few weeks ago about the way they handled game state synchronization in replays [0]. The netplay release is still relatively new, so if there is a blog post in the works, it'll probably be at a later date.

[0] https://news.ycombinator.com/item?id=23643784

karlding··on Dolphin Progress May and June 2020
The developer (to be pedantic, there's only one full-time developer, Fizzi, the others are volunteers) quit their day job last year to work on Slippi full-time [0], with funding from Patreon. More details are available on the project site about the other contributors [1].

[0] https://twitter.com/fizzi36/status/1199734629252653057

[1] https://slippi.gg/about

karlding··on Jepsen: Redis-Raft 1b3fbf6
I'm curious if there's research into "better" primitives in Programming Languages in order to simplify writing distributed systems, analogous to how concurrency primitives beyond Mutexes, Semaphores, and Condition Variables (like Futures, Monitors, etc. or approaches such as Actors) can greatly simplify logic and enhance one's ability to reason about code. Or things like the Rust borrow checker.

The closest thing I'm aware of is TLA+.

karlding··on MuseScore 4: Moving from notation software to composition software
The original "4 Photographers Shoot the Same Model" [0] series by Jessica Kobeissi that Andrew Huang's series was inspired by was nominated for a Shorty Award [1] in 2019.

[0] https://youtube.com/playlist?list=PLMHISHSRJwdYhG0YFufX84Efv...

[1] https://shortyawards.com/11th/photographer

karlding··on Show HN: Bear – Minimal blogging platform
It's also a tool that helps generate a JSON compilation database [0] for Clang Tooling.

[0] https://github.com/rizsotto/Bear

← PreviousPage 3 of 6Next →