HN user

jeromegn

671 karma

[ my public key: https://keybase.io/jerome; my proof: https://keybase.io/jerome/sigs/CgiIS9fChNsBLI1zikLWfVgMBfG6TyaP3_QCHpQQq1s ]

Posts22
Comments66
View on HN
authful.com 12y ago

Authful – An open-source API for Two Factor Authentication

jeromegn
1pts1
www.lukew.com 13y ago

Designing for Thumb Flow

jeromegn
1pts0
github.com 13y ago

Front-End Package Manager Comparison

jeromegn
2pts0
anders.janmyr.com 13y ago

A Responsible Programmer

jeromegn
4pts0
jgn.me 13y ago

Write CSS like you're in the future with Stylus

jeromegn
1pts0
www.nczonline.net 13y ago

Being right doesn’t matter

jeromegn
5pts0
viget.com 14y ago

Making, Using, & Bulletproofing Icon Fonts

jeromegn
1pts0
blog.demandforce.com 14y ago

Demandforce acquired by Intuit for $425M

jeromegn
1pts0
westcoastlogic.com 14y ago

Debugging Mobile

jeromegn
2pts0
notgartner.wordpress.com 14y ago

The Day Programmer vs. The Night Programmer (2006)

jeromegn
6pts4
documentup.com 14y ago

DocumentUp is now hosted and still free

jeromegn
12pts0
documentup.com 14y ago

Show HN: Instant documentation site for Github projects

jeromegn
157pts19
pothibo.github.com 14y ago

CSS3 iPhone Perspective and Lighting Effect

jeromegn
8pts0
www.markus-falk.com 14y ago

Thorough Mobile Frameworks Comparison Chart

jeromegn
3pts0
kizu.github.com 14y ago

CSS animated story: Castle of Sinister Sorcerers

jeromegn
1pts0
addyosmani.com 14y ago

The Developer’s Guide To Writing Cross-Browser Polyfills

jeromegn
2pts0
seldo.com 15y ago

ORM is an anti-pattern

jeromegn
286pts191
b.lesseverything.com 15y ago

How We Refine Our Site's Content

jeromegn
30pts0
ostrichapp.com 16y ago

Safari 5 Extension: Ostrich - A Twitter Client

jeromegn
21pts11
jgn.heroku.com 16y ago

Front-end code organization for your complex apps

jeromegn
2pts0
jgn.heroku.com 16y ago

Rapid Prototyping with HAML, SASS and Ruby

jeromegn
28pts11
blog.jeromegn.com 16y ago

Succeeding as an autodidact

jeromegn
1pts0
Fly Kubernetes 3 years ago

We don't use k8s and you don't have to either. This is for current and future users who absolutely want k8s. We are a compute provider after all and making it easy to host a great variety of apps is good for our users.

I'm the one who created this incident on our status page. I've been overly cautious in resolving this incident, but at this point I think it's causing more harm than good to keep it unresolved on there.

I think it might've prevented users from posting on our forums or sending in an email (premium support). I can imagine users looking at the status page and mistakenly thinking their problems were related to the current incident.

I've interpreted "Monitoring" as essentially meaning: "this is fixed, but we're keeping a close eye on the situation". We do not yet have a formal process for incidents such as this one (but we are working on that).

If our users are having issues, that's a problem. Looking at our own metrics, the community forum and our premium support inbox: I don't believe this to be the case.

Perhaps we should've done a better job at explaining the exact symptoms our users might be experiencing from this particular incident.

This looks great. I might be giving this a shot for a use case we have. My main concern is the docs.rs-generated documentation is hard to use. I don't exactly know how things fit together. I'm sure I could figure it out via tests, but more docs and usage examples would help a lot.

As for your search for SWIM in the Rust ecosystem: I found a pretty good (well documented and tested) crate: https://crates.io/crates/foca

To be determined. We're hoping to contribute and use what's going to come out of hyper's h3 efforts (we use Rust for our reverse-proxy). There's not much there yet though: https://github.com/hyperium/h3

We're not in a huge hurry to support QUIC / H3 given its current adoption. However, our users' apps will be able to support it once UDP is fully launched, if they want to.

Hey there, Fly co-founder here!

Fly's proxy uses a mix of tokio, hyper and rustls. We don't need to use a crate that handles ACME because we're processing all the validation and certificate authorizations from a centralized, boring, Rails application.

We've had to submit a PR to the rustls project a few months ago to handle different ALPNs. Instead of resolving a certificate only from a SNI, the crate now provides the full ClientHello which contains negotiable ALPNs. With that information you can respond to the tls-alpn-01 challenge.

(Disclaimer: I am a Fly.io founder)

I don't recall us being at Hack Arizona, certainly not me. I googled it and all it yielded was this HN post.

Your comment couldn't be further from the truth. I can't speak for whoever used these words (if they did), but I think we have pretty great work/life balance.

We all have families of our own and recognize they are far more important than our business. These things happen, such is life. Your kid gets sick, you want to care for them. Time off is always paid and we encourage people to take some. People often find it hard to take time off, but we've been good at it.

Nobody, generally, works more than 40 hours a week. I say "generally" because these past few weeks have been more intense given the end of our YC adventure, demo day, virtually meeting with investors and this Launch HN post. In normal times, I might work a few hours on a weekend but only if that brings me joy.

... and of course we're very flexible on work schedules because we're a remote-only company. Some weeks this might mean working only a few hours here and there because of life activities or the need to take time off. Other weeks, it might be the opposite. We recognize and embrace that.

We attempted C++ about a year ago, but I was never confident in our ability to clean up memory allocations (we had leaks) or avoid undefined behavior (we had segfaults).

I definitely feel more confident about our Rust code. It's no silver bullet, but it prevents a lot of unsoundness with its compile-time guarantees.

I can't really compare to C++, but it's easy to write new code or refactor old code. It took some time to get there, though.

All in all, I would recommend Rust wholeheartedly. The ecosystem is growing and getting more mature every week. The community is very helpful in general, especially the tokio folks.

That's nice to read! Thanks.

We do need to cleanup our old blog posts and links. We created a lot of content at various times. This content is not always relevant anymore.

As for your fly.toml question, you can get the config with `flyctl config save -a your-app`. It'll create a fly.toml with the latest config we know about.

Concurrency limits are still being worked on. They should definitely be visible in more places. The only way to know about them right now is from the fly.toml, that's not ideal.

This is what we do at fly.io: https://github.com/superfly/fly

It's based on node.js right now. It's a bit clunky, but we have many success stories of customers running it locally, on their CI and deploying to infrastructure.

Currently the open source version is not the same as the production version (due to the distributed nature of our platform.) We're working on fixing that very soon and going all-in open source.

Thanks, that's appreciated!

It's not such a huge pivot. The "one hostname" was checking for interest in this area and it worked well. Putting stuff under a single hostname seems to be something people want to do.

At its core, the previous product was a flexible, globally distributed, load balancer. We built all these middleware, features we wanted and people might also want. In the end it was untenable: supporting such a large variety of small building blocks was going to be hard. Building new middleware all the time was also becoming a pain, changes were required in multiple components for each middleware.

This new "edge app" product gives the same flexibility, but puts the power (and burden) into the developer's hands. You could build our entire previous product on this new platform.

Note: https://onehostname.com still exists and runs on our new platform. However, the article it points to is for the old product. The source for it is available here: https://github.com/superfly/onehostname

Sounds like 400 is the right code for cancelling a request in general.

The way you have it setup is fine in my opinion. Maybe add some sugar like: `needsAuth()` which would check for a user and would return `cancel("You're not allowed to do that", 403)` given the user does not exist.

I don't think that's necessary though. I like how it is right now.

Great work.

Perhaps an iframe would work best. With some injected styles and javascript (some that would make the iframe expand automatically à la Disqus), I think this would work nicely.