HNHacker News
TopNewBestAskShowJobs

kyle-rb

1,151 karma · joined June 19, 2016

submissionscomments
kyle-rb··on Utopia Clicker
Hmm, this could be kinda nice, especially if you want to ctrl+f search for a previous passage, without the risk of jumping ahead and spoiling yourself. I wonder if any ebook readers (software or devices) have implemented that specific feature.
kyle-rb··on Open sourcing Rama: clone Twitter in 180 LOC
The "Twitter-scale Mastodon" is separate from this OP article, which seems to be a small beginner tutorial that's more of a Facebook clone tbh (it has friend requests [0]).

In any case, this title is very misleading: Rama itself is not open source [1].

[0] https://redplanetlabs.com/docs/~/tutorial6.html

[1] https://news.ycombinator.com/item?id=37138019

kyle-rb··on Short session expiration does not help security
The article specifically mentions the need for users to re-enter their username and password as a downside of short-lived sessions, so I think the author's definition of "session" extends as long as the refresh token lasts.

I think that most of the non-short-session examples — Google, Microsoft, GitHub, etc — are using an access token + refresh token pattern.

kyle-rb··on We reduced the cost of building Mastodon at Twitter-scale by 100x
Thanks for the response, I'm still curious about the details of the subindexing and how that scales. I'll be keeping an eye out for the release!
kyle-rb··on We reduced the cost of building Mastodon at Twitter-scale by 100x
Kinda disappointed by the simulation, where are all the viral posts?

I've been digging around for a while and haven't found any posts with more than 20 faves. The accounts I've found with ~1 million followers have little to no engagement. I want to see how a post with a million faves holds up to the promises of "fast constant time".

I'm especially curious about these queries — fave-count and has-user-faved — since a couple years ago Twitter stopped checking has-user-faved when rendering posts more than a month or so old, so I imagine it was expensive at scale.

kyle-rb··on X to Close – The origins of the use of [x] in UI design. (2014)
The Switch didn't change the meaning of A and B; the OS and all first-party Nintendo games that I've seen use A=confirm and B=cancel, which has been the case for a long time.

There are some games I've played on the Switch that use B=confirm, I think usually so that button layout is the same across consoles.

kyle-rb··on Darwin: A framework for evolving decentralized web apps
So forks are selected by users, via whoever gets the most stamps. As a user I'd have to:

1. Seek out forks of the app that I use and try them out.

2. Check to make sure there aren't any bugs introduced in the fork.

3. Check to make sure the author didn't introduce a subtle backdoor into the system allowing them to e.g. mint infinite tokens.

4. Check how many tokens the developer minted themselves as the reward for this work, to make sure it's not too many. (Do I actually care?)

Hope the majority of users are paying this much attention!

kyle-rb··on CSS-Only Chat
CSS is needed because this app isn't using HTML forms to send the data. That would be easier, but part of the magic here is that in addition to no JavaScript, the page also never reloads.

The readme explains how the CSS :active selector is used to detect button presses.

kyle-rb··on Show HN: Non.io, a Reddit-like platform Ive been working on for the last 4 years
Pretty cool! I would consider changing your URL patterns though. It's not ideal to change them after launch, but it will be harder to change them a year from now if/when you run into issues.

1. Using '#' in URLs is not great.

  - When requesting a page, the browser doesn't include anything after the hash, which means:
  - Tag pages rely solely on client-side routing — they'll never work with JS disabled. You might not support no-JS right now, but if you ever want to allow for it in the future, it's incompatible with hash-based routing.
  - SEO will probably be impacted; not sure how well crawlers deal with hash-based routing.
  - If someone links to non.io/#dog on social media, I think the opengraph preview will also ignore the hash.
If you want client-side routing, you should use a library or the JS history API[0]. That way you can use normal URLs and potentially support server-side rendering to allow for no-JS clients.

2. Putting user-generated URLs at the root of your site could be bad.

  - Keep that namespace for yourself: what if you want to make a page at non.io/support but someone already named their post 'support'?
  - Some stuff needs to be at the root (currently non.io/robots.txt 404s and seems to be trying to render a post).
  - There are other standards that look for specific URLs, or non-standards: e.g. BlueSky was authenticating domain names in a dumb way [1]
To be fair, Twitter does put usernames at the root (not sure if they regret that), but they have some careful exceptions (/home, /i/, etc). If you don't want to switch your post URLs away from the root, you should at least set aside some of the useful URL real-estate.

If you do decide to make these changes, you should try and set up redirects for any existing URLs, at least for a while.

[0] https://developer.mozilla.org/en-US/docs/Web/API/History

[1] https://news.ycombinator.com/item?id=35820368

kyle-rb··on Times New Bastard
I'm imagining huge Comic Sans lettering: "This place is not a place of honor... no highly esteemed deed is commemorated here... nothing valued is here."
kyle-rb··on Node.js built-ins on Deno Deploy
Ryan Dahl created Node.js, had regrets, and started from scratch with Deno to address those issues [0]

[0] https://www.youtube.com/watch?v=M3BM9TB-8yA

kyle-rb··on MouthPad – In-Mouth Bluetooth Mouse Uses Tongue Sensitive Trackpad
That was only available on the Pixel 4. They got rid of the chip in later phones, due to battery life issues and cost:

https://www.androidpolice.com/google-pixel-4-killed-motion-s...

kyle-rb··on Fictional Brands Archive
Only 116 entries? The fictional companies wiki has over 1000.

https://fictionalcompanies.fandom.com/

kyle-rb··on Segment Anything Model (SAM) can "cut out" any object in an image
LGPL is more business friendly than GPL; it's literally "lesser" GPL.

You can use LGPL in commercial, closed-source projects as long as you keep the LGPL code in a separate dynamically linked library, e.g. a DLL, and provide a way for users to swap it out for their own patched DLL if they wish. (Plus some other license terms.)

Also, you can always use LGPL code under the terms of the GPL, so there's no way LGPL is more restrictive than GPL.

kyle-rb··on What is really going on at Amazon Fresh?
I was also thinking of Amazon Fresh delivery. It looks like the title of this article is actually "Amazon’s cashierless stores: artificial intelligence or major deception?", so the HN title should probably be updated to that.
kyle-rb··on Microsoft Teams is blocking Firefox Nightly
Most of these patent numbers seem to be incorrect; all the numbers except for the first one seem to point to unrelated patents.

I was curious about the email one, but "7,536,726" points to a different Microsoft patent (also expired), and I couldn't find a patent with the name "System and method for providing remote access to electronic mail".

kyle-rb··on “Clean” code, horrible performance
IMO the main difference is that for ~98% of people writing code, subclasses actually are very cheap. The performance losses (11 cycles per iteration?) aren't enough to dissuade me from organizing my code cleanly.
kyle-rb··on “Clean” code, horrible performance
"Don't make tons of RPCs" is a totally separate issue from "don't make subclasses because virtual methods cost a few extra cycles".
kyle-rb··on Software 2.0 (2017)
I'm skeptical about ML being a "2.0" when we'll never stop using the 1.0 version altogether. But maybe he means it in the Python 2 -> 3 sense, where there's no real expectation that the older version will ever stop being used.
kyle-rb··on Writing JavaScript without a build system
+1 for Lit. It seems like they're mostly recommending that you use TypeScript and a build system, but you can 100% still just pull the library from a CDN with native JS modules [0].

It leans into a lot of the web components spec so the library is pretty small, and the templating system is just ES6 tagged template literals parsed by the browser's DOM parser and any embedded variables are updated dynamically [1].

[0] https://lit.dev/docs/getting-started/#use-bundles

[1] https://lit.dev/docs/templates/overview/

kyle-rb··on Instagram’s co-founders are back with Artifact, a kind of TikTok for text
This could be cool if they source articles and blog posts from random places across the web, like StumbleUpon but with the modern ML that "works scarily well". Could be great for discoverability of smaller sites.

Hopefully at some point they'll let me sign up with an email address though because I refuse to sign in with a phone number on principle.

kyle-rb··on Bill Gates: I'm literally losing sleep over Java (1996)
Because that looks really bad if the email is made public as a result of a court case, like this one was.
kyle-rb··on Promotion of alternative social platforms policy
The policy states "content that contains links of usernames" will be subject to removal.

I think the "cross-posting" that the article is referring to is e.g. downloading a TikTok to reupload it to Twitter, or screenshotting Instagram or whatever. Elon can't risk LibsOfTikTok's entire account falling under violation.

I could be wrong about that interpretation of the policy though, because the wording is probably intentionally vague.

kyle-rb··on Undetectable very-low frequency sound increases dancing at a live concert
Their specific claim is "not consciously detectable" (different from "inaudible"), which they had a side-experiment to verify:

>To confirm that the VLFs were not consciously detectable, 17 new participants completed a two-alternative forced choice task using the same VLF speakers ... Participants performed at chance

kyle-rb··on Elon Musk owns Twitter: The story so far
By implementations I mean the general infrastructure for enforcing country-specific laws locally, but not as a general rule of Twitter.

Non-motivated non-adversaries already defeat these systems by accident, which I assume are mostly based on user-reports. But apparently Germany's regulators are satisfied enough with Twitter's implementation, since I haven't heard about any issues with it.

kyle-rb··on Elon Musk owns Twitter: The story so far
Twitter already has implementations for the Nazi stuff; e.g. images with Nazi flags are allowed in general but if you try to view them from an account with location set to Germany, it will give you a "this content is blocked in your country" error message.

I'd definitely be worried about driving advertisers away though. They forced YouTube's hand at least to some degree with the whole adpocalypse thing.

kyle-rb··on Pokemon Card Animation
People are gushing because it's a 3D animation with holographic effects, which is pretty surprising to be able to achieve for a primarily-2D layout language.

I've never seen something this seamless and realistic built in flash.

kyle-rb··on We became experts on Google Play Store policy violations
It's been a couple years since I did mobile dev, but in my experience you don't get to reason much with Apple's reviewers either, but you can change something minor, re-submit, and hope you get a different, better reviewer.
kyle-rb··on American Airlines is trying to stop a popular app used by flight attendants
I'm a big advocate for PWAs, but this is a backend data issue. American Airlines isn't forcing app stores to take down the app, they're adding anti-scraping measures to prevent the app's backend from being able to request data for flights, shifts, etc.
kyle-rb··on Gmail 2FA causes the homeless to permanently lose access 3 times a year
Disclaimer: I work at Google.

I've never seen this issue. I don't have 2FA enabled for any personal Google account. There are some dark patterns to try and get you to enable 2FA that I don't agree with, e.g. a big "add a phone number to your account" page after you log in, with a small "skip for now" button at the bottom.

← PreviousPage 4 of 12Next →