adam-p

Joined 14 years ago

Karma
187
Submissions
96
Member since
May 28
https://adam-p.ca
View on Hacker News

Recent submissions

Comment · 5 months ago
Psiphon | iOS / Flutter Developer | Toronto (Hybrid) | Full-time

Psiphon is a VPN app used by millions of people to access the open internet in regions where it's restricted. Small team, software that matters.

We're building the next-gen client app in Flutter (iOS, Android, macOS, Windows) and need someone who can work across both iOS native and Flutter. Split is roughly 65% Flutter, 35% iOS native (Swift, StoreKit, entitlements, network extensions). You'll have mentorship from a senior iOS specialist for the deeper networking work.

Day to day: Feature development in Flutter, iOS platform integration (subscriptions, permissions, App Store), and occasionally going deep into network extensions and packet tunnel providers. Small team (~3-4 core devs), high ownership, low ceremony.

Looking for: Strong Swift experience beyond just UIKit/SwiftUI app dev, comfort with the iOS ecosystem (App Store process, provisioning, StoreKit), and willingness to context-switch between Swift and Dart in the same day. Flutter experience is a strong plus but not required if you pick up frameworks quickly.

Contact: [email protected]

Comment · 6 months ago
Psiphon | iOS / Flutter Developer | Toronto (Hybrid) | Full-time

Psiphon is a VPN app used by millions of people to access the open internet in regions where it's restricted. Small team, software that matters.

We're building the next-gen client app in Flutter (iOS, Android, macOS, Windows) and need someone who can work across both iOS native and Flutter. Split is roughly 65% Flutter, 35% iOS native (Swift, StoreKit, entitlements, network extensions). You'll have mentorship from a senior iOS specialist for the deeper networking work.

Day to day: Feature development in Flutter, iOS platform integration (subscriptions, permissions, App Store), and occasionally going deep into network extensions and packet tunnel providers. Small team (~3-4 core devs), high ownership, low ceremony.

Looking for: Strong Swift experience beyond just UIKit/SwiftUI app dev, comfort with the iOS ecosystem (App Store process, provisioning, StoreKit), and willingness to context-switch between Swift and Dart in the same day. Flutter experience is a strong plus but not required if you pick up frameworks quickly.

Contact: [email protected]

Comment · 9 months ago
Comment · 1 year ago
State censorship circumvention is exactly what Psiphon is for! So yes, try it.

(Disclaimer: I work there.)

Comment · 1 year ago
Comment · 1 year ago
> The article is somewhat wrong when it says Unicode may "change character normalization rules"; new combining characters may be added (which affects the class sort above) but new precombined ones cannot.

That's fair. I updated the wording in the post.

Thanks for the display info. It's cool and horrible and out of scope for my post.

Comment · 1 year ago
If you can get away with that, that's great. But I feel like there are still plenty of cases where you want to limit the lengths of particular fields (and communicate to the user which lengths were exceeded).
Comment · 1 year ago
Valid question, and I think you're right in the abstract and most of the time. But I also think you end up with a mismatch.

What's the concrete spec for the limit if you've only got 10x storage per grapheme cluster?

Probably you end providing the limit in bytes. That's fine, but it's no longer the "hybrid counting" thing anymore.

Comment · 1 year ago
Comment · 1 year ago
@dang Can the title be changed? It should be "The best – but not good – way to limit string length". Thanks.
Comment · 1 year ago
Except that TOTP codes are MitM phishable. U2F with its URL-checking (via browser cooperation) is needed.
Comment · 2 years ago
If you want another example of difficulty with the AMO review process: https://github.com/adam-p/markdown-here/issues/21

And that's just one of the examples; another resulted in me having to add a preprocessor that removes code at build-time, which was annoying. I like Firefox, but it wasn't always easy to justify the effort.

Comment · 2 years ago
I also used Google Sheets as a datastore backend: https://github.com/adam-p/danforth-east

It's a community association membership management thing, and I wanted the (non-technical) association board members to be able to easily inspect the data and do something useful with it if I moved away. It has mostly been successful, except that sometimes someone will manually edit the sheet and break something.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton