HNHacker News
TopNewBestAskShowJobs

kall

953 karma · joined January 22, 2013

submissionscomments
kall··on Why I don't miss React: a story about using the platform
Wait isn't state the whole point of react? What level of interactivity are you talking about? State and props, that's it's thing: you can always update them.

I've only need the "change key to flush components" trick very few times, and most of those where rush fixes for bugs that had a better "doing it right" fix at a different level.

kall··on Ultorg: A user interface for relational databases [video]
I've been using Hasura and TablePlus a lot lately, and actually wished for something that combines them.

Hasura is great at understanding relations and making joins feel effortless and TablePlus is so good at making table editing feel as fast as excel.

This looks like it's the thing, with some extra power thrown on top (formulas and nested layouts are nice!).

The UI looks drab, but maybe that's ok? It means the functionality needs to be so strong it doesn't matter. It also looks super snappy which matters most.

Something that Airtable has over relational database GUIs is lightweight enums and arrays of them. Sure you can model all that in SQL, but it's super useful to have it right inline. I hope this tool can pick up on a pattern like enum tables (like hasura) and provide UI that makes them look like tag list/select fields.

kall··on Using QGIS to apply a 1777 style to today's OpenStreetMap data
You might enjoy the Mobile Atlas tiles from Thunderforest [0].

I think the low contrast on Google Maps is uniquely ridiculous. You don't have to go all the way to OSM / road atlas. I think Mapbox Streets, Apple Maps (somewhat) and Gaia Topo Lite (my go to) are all perfectly fine maps with roughly the same "feel".

Google Maps contrast is so ridiculous that I have a private app called "Kontrast Maps" that is just the Maps SDK with a high contrast style applied. Me and a friend with a visually impairment get a ton of use out of that. I would love to publish it if it weren't for the insane pricing on Maps iOS SDK.

I'm also disappointed enabling "High Contrast" in Apple operating systems doesn't apply a high contrast maps style. Seems like a super obvious accessibility feature.

[0] https://www.thunderforest.com/maps/mobile-atlas/

kall··on Launch HN: Meticulous (YC S21) – Catch JavaScript errors before they hit prod
For pricing that is both "small fish" friendly and not too cheap, I like what Vercel is doing, where the smallest paid plan is basically a discount package on the pay-as-you-go pricing beyond that, especially if you use just one seat.
kall··on Launch HN: Meticulous (YC S21) – Catch JavaScript errors before they hit prod
Looks like an impressive tool that makes a previously hard but useful process an order of magnitude more approachable.

With waldo.io and Checkly It joins the list of QA force multipliers that would make my life, as the sole developer in a bootstrapped startup trying to punch above it's weight, much easier. First, they give me a taste with a free plan, then hit me with production pricing we still can't justify.

If I have this right, 20 sessions is just a trial and 1000 sessions is very careful use.

If these scenarios are so easy to create, I would imagine you would make something like 50 (?), run them against every deploy (10 a day?). That's 15.000 replays, right?

So the 100$ plan is something like 10 scenarios at 3 deploys a day. That sounds too scaled back to get good use out of it. Or do I have the wrong idea about the intended use case?

I get it though: they all have reasonable pricing for a unique service that provides real, obvious value AND may actually be expensive to run. I'm just a little sad about not getting to use them.

kall··on Stop Using a Loading Spinner (2017)
I have no love for skeletons. They feel clever at first, but as a user, I associate nothing but bad experiences with them. I feel the same way about PWA app shells.

With no theories to back this up whatsoever, here's my completely unsubstantiated gold-standard strategy for loading states:

1. Make it fast. Most of the examples are loading content. Is there any reason you need more than 100ms to do that? Buy a bigger database server and use a CDN/Edge. Prefetch some content. Unlike fancy skeleton designs, this is worth obsessing over and spending money on. Why "trick" users when you can just perform so well you don't have to.

2. Instantly give inline feedback that an action was started. Could be a spinner on the button, text below the button, a toast / non-modal overlay, a loading indicator in the top right... If you get your response in 100ms, you don't really need this, but the network could always be slow etc.

3. Wait some time (something like 1 second imho) to see if you can transition to new finished state

4. If the full transition can't happen in the timeout, transition to a full loading state. I don't think it even matters that much what kind. Could be a spinner screen, a skeleton screen. No modal overlays though unless a destructive/uninterruptible action like a booking or payment is taking place.

5. Show an indicator/overlay if network quality is bad. The user will not blame it on you and have no expectations for your app to behave particularly well.

Of course if you can just make a fast loading website, let the browser handle the transitions. It's already a fine loading experience.

kall··on Fig (YC S20) – Adds IDE-style autocomplete to your existing terminal
I believe they "hack" accessibility hooks in the OS to position the floating window as if it was part of the app. That part is actually quite impressive and works well.

I imagine it's quite a bit of engineering effort to make that not janky. I wonder how hard it is to make cross platform. Maybe other OSes have easier hooks? Easier permissions for sure.

kall··on Fig (YC S20) – Adds IDE-style autocomplete to your existing terminal
That page is way more beautiful and unique with it's use of vibrant color and gradients in dark mode. Also it doesn't share the most obvious thing between the others (Built for speed... section).

I think almost straight copying landing page designs and layouts is basically fine and common practice. Using the same or very similar copy... not quite.

kall··on Fig (YC S20) – Adds IDE-style autocomplete to your existing terminal
It's basically a small UI change, but I think I would actually benefit from having a real window instead of the in-terminal completions. However, I want ONLY that UI change.

If someone could pull the autocomplete list out of fish and style it as a floating window that moves with the courser, that would be wonderful. Sounds more like a tool developed by one person than a venture funded startup though.

kall··on Americans are drowning in spam
I've never seen them before, but during the last couple of months have gotten multiple, from international numbers.
kall··on Heroku Security Notification
I guess maybe, but this is incredibly badly communicated. Just now they showed up as a member of travis GitHub orgs, but the only member? https://github.com/orgs/travis-ci/people

It's very possible (likely) this is all fine, but done in a way that feels strange/fishy. I haven't even gotten an email from travis. They must be in fire-extinguishing mode.

kall··on Heroku Security Notification
"Github System" removed the Heroku Dashboard key and a personal user account of someone that seems to work at neither GitHub nor Travis removed my Travis CI key (????)
kall··on Attack campaign involving stolen OAuth tokens issued to third-party integrators
Aren't OAuth tokens scoped to org? Wouldn't it be easier to create an org per repo? I guess it might get expensive depending on your usage/collaborators.

Edit: nevermind OAuth tokens are not org-scoped, only apps are

kall··on iViewed your API keys
And yet it's incredibly common. I would guess 95% of users of services like Firebase, Supabase, Algolia, Sentry, Segment, Cloudinary, Auth0... do this, because it's the point and officially endorsed. They are intended to be "frontend safe" to an extent. Not against service abuse/scraping maybe, but against actual RCE, unauthorized actions or unauthorized data access.

I guess you can proxy all that, but then what do you that the third party couldn't be doing for you? Can the user not accomplish the same thing through your proxy that they could through the key? It'll be easier to drop some requests than it is to revoke an API key I guess. You could use client-certificates, stuff along the lines of Cloudflare's API Shield etc but I would guess that only the top 5% of applications do this.

I've certainly done it/am doing it right now, which is likely why I'm writing such a defensive comment.

Honestly if an enterprising user/developer wants to do something like dump all data that is already accessible to them, more power to them.

kall··on The 0.5 MB of nothing in all Apple Music files (2020)
I use it, but not very often. I do appreciate that it's still possible. Spotify probably wouldn't even understand the feature request.
kall··on The 0.5 MB of nothing in all Apple Music files (2020)
I believe they just fixed this (after how many years?) by moving Music.app away from webviews to native views in macOS 12.2. I wouldn't be surprised to still see a JavaScript error in there though, or maybe a Java error because it probably still runs on WebObjects.
kall··on pnpm: Fast, disk space efficient package manager for JavaScript
That's great news! pnpm might be my answer after all.
kall··on pnpm: Fast, disk space efficient package manager for JavaScript
I'm pretty immune to most JS ecosystem churn, but on package managers I'm feeling it.

All I want is a package manager that is correct, causes very few day to day issues and is going to work the same way for many years. Yet everyone seems to be optimizing disk usage and speed without even getting the basics (make it work, make it right) fully covered.

I don't understand why people are optimizing for disk space at all tbh. Like, have you ever edited a video project, used docker, installed Xcode? I cannot imagine what you must be doing for all node_modules combined to take up more than maybe 100 GB on disk.

pnpm seems to be the lightest of the bunch, which is nice but why even mess with symlinks and confuse other tools? Just put all the files in there, nest them and duplicate them and everything. I'll happily live with my 10 GB node_modules folder that never breaks and sometimes gives me a nice coffee break.

Possibly I'm actually just salty that Metro doesn't support symlinks and would otherwise be on the pnpm love-train.

kall··on Hetzner partnering with Ampere to bring ARM systems to their cloud
I feel like Hetzner is great at what it does: reliable, reputable, affordable server hosting. I imagine it to be a company full of top notch, old school sysadmins. Not sure they have the developer focus (?) to build an appealing AWS/Scaleway style service.
kall··on Hetzner partnering with Ampere to bring ARM systems to their cloud
Yeah I guess k8s would be the best start, if you want to achieve aws-style features without a ton of development resources. I know barely enough to use k8s as an application developer though, so maybe not. Adding MiniO and a simplified, pre-configured Knative experience would be my next step, because everyone (including me) seems to love Google Cloud Run.

For networking not sure if you can/should integrate Hetzner's native networking and load balancers or should do some kind of overlay network like fly.io.

For managed databases and other services it would be great for you if first and third party "in your cloud" solutions like Aiven, Elastic Cloud, Snowflake etc would support hetzner but I've never seen it. Fly.io seems like a nice model of offering semi-managed databases.

With those things in place, and hetzner's few regions, some costumers might need Cloudflare in front of their services, but that might not be a bad thing. Is Hetzner in "Bandwidth Alliance"?

kall··on Hetzner partnering with Ampere to bring ARM systems to their cloud
If a european company offered a reliable and reasonably priced hetzner-based "cloud" with managed k8s, managed databases, object storage, networking and maybe some FaaS system I would use that in a heartbeat.

I'd try to build it if I had the right technical/sysadmin background. Seems like a realistic task for someone with a small, scrappy team who does.

kall··on A database for 2022
At first I was also a little confused by this architecture. I think that was because I was missing a clear picture of what they want to do. I think it is:

- one leader that can write to the db

- a ton of other hosts that can read from the "streamed" db and want to do so often/fast

- hosts send their writes (if they have any?) to the leader via some api call (?)

Is that right? If so, the solution makes a ton of sense. "Just use pg/MySQL" in that case would mean hundreds (thousands?) of read replicas, which doesn't sound fun, or every read over the network.

kall··on My macOS keyboard shortcuts
I think the best macOS clipboard manager is the one that is built into Alfred. The one in Raycast is very similar and also good. I would recommend installing Alfred just for that. You don't even have to use the main Alfred window. It's very lightweight, so not a problem. The same goes for the Music controller, actually.

I also loved Copied because of it's sync and great iOS version but it's unsupported so wouldn't really recommend it.

kall··on I don't like computers (2016)
I don't think programs have to opt in. You can remap it the same as every other menu command. Every AppKit app gets that menu entry by default.

The fact that remapping commands requires an exact, case sensitive match of the localized menu item label you have to type in by hand (and cannot copy to your clipboard) though...

kall··on I don't like computers (2016)
It's hard to please everyone, and data-loss is kind of a trump concern, but actually macOS does because it has this feature. The keyboard shortcut is cmd+option+shift+escape but you can probably remap that.

I force quit apps all the time, sometimes even because I want them to restore their exact state. In a lot of apps, the macOS state restoration works great, possibly better than actually quitting them.

kall··on TikTok is scary good. It's digital crack
I think points 2-4 is one of the most interesting/innovative parts of it. As far as I've read, when someone (or a new account anyway) uploads a new video, they will always run it against a sizable test audience, so content that's engaging is guaranteed to find an audience. On other social media platforms creators need to hustle to get their presence off the ground.

This way, TikTok can sustain a much broader base of content creators and react much quicker to shifting trends without being dependent on any popular creator's opinion.

kall··on Ask HN: Why aren't devs making desktop apps any more?
On macOS, I feel like I install more new desktop apps than I have the time to play with (thanks Setapp). I barely use web apps day-to-day. When I have to, I will create a wrapper app for them and/or interact with them through Raycast. To me the landscape of new/actively developed apps feels alive and well.

A thing I've noticed lately is that a good chunk of the new apps I install on iOS show up with compatible versions in my Purchased list on the Mac App Store. That's probably due to Mac Catalyst and a little bit due to SwiftUI cross-platform. Most catalyst apps are in the same quality category as decent Electron apps. I still prefer those (both electron and catalyst) over a web app.

kall··on German Government Agency warns about using Kaspersky
Did apple really fuck up or are they actually succeeding with iOS being the most "safe" mainstream end-user operating system by far. Arguably they fucked up by bungling the Mac App Store so running executables downloaded from the web and software updating itself is still common.
kall··on OpenHAB – vendor and tech agnostic open source automation software for your home
I remember running this on Raspberry Pi probably 7 or 8 years ago.

It was an interesting project because open source home automation feels very much like a hobby / non-work thing, but it was clearly created by someone with an enterprise java background. I believe there was a custom eclipse based IDE with probably at least one DSL for configuring your automation rules!

kall··on Solito – React Native and Next.js unified
Sure and that's what this library bridges. I see the appeal in remix for building interactive apps the "remix way" with forms, relying on web/http conventions etc. I also like that it brings nested routing back to metaframeworks. None of that will translate well to native. As an api+website framework it doesn't look more appealing then next.js to me, which is a little more unopinionated and thus easier to adapt to cross-platform.
← PreviousPage 2 of 16Next →