HNHacker News
TopNewBestAskShowJobs

Felz

849 karma · joined March 4, 2017

Working on Purelymail, a cheap no-nonsense web host.
submissionscomments
Felz··on FastMail loses customers, faces calls to move over anti-encryption laws
I really can't imagine shutting down with anything less than 6 months notice. Do people really do that?

The infrastructure I'm running on really is pretty cheap. The biggest expense by far are the databases, which run about $250/month for two. If I had to pay out of pocket to support even just a few users for a year, I'd do it.

Anyway I think the best paranoid option (no matter what mailhost you're using) is to set up automatic forwarding to a backup address. Or you can use imapsync [0] from time to time, which is a bit finnicky but gets the job done pretty well. (I actually might try putting up a quick web interface for imapsync sooner or later to cover import/export use cases.)

[0] https://imapsync.lamiral.info/

Felz··on FastMail loses customers, faces calls to move over anti-encryption laws
Yup, I completely messed up there. I just bought a couple of cute domain names, but apparently completely forgot that the production database is not the development database.

It's fixed now, sorry.

Felz··on FastMail loses customers, faces calls to move over anti-encryption laws
> The service seems far from something I would trust with handling my email.

I think that's entirely fair. This is a pretty new project, and trust is built over time.

> The attempt at monetization strikes me as extremely premature, given the competition.

Free email services leave a bit of a sour taste in my mouth, since you're not the customer. I'd also have to put more work into stuff like adding hard caps to prevent abuse, but my thinking so far is that email really isn't something you should fuss over storage caps on.

It might be ultimately necessary to attract people (although Fastmail doesn't have a free tier), but I'll get there when I get there. I'm content to take it slow for now.

Felz··on FastMail loses customers, faces calls to move over anti-encryption laws
If anyone's considering moving their email addresses over this, please take the time to get your own custom domain to host email on. That way you can switch providers more easily and actually own your email address.

As a shameless plug: Purelymail, the mail service I'm working on, could use some more beta testers. It's (to my knowledge) the cheapest way to get email on a custom domain right now. https://purelymail.com/

Felz··on YouTube Just Demonetized Anti-Vax Channels
Case in point, vaccines can cause narcolepsy.

https://www.cdc.gov/vaccinesafety/concerns/history/narcoleps...

They don't cause autism, but what if we set up mandatory vaccinations with absolutely no opt-out because some parents were offensively wrong, and later a vaccination does start causing serious problems and the government doesn't move fast enough to change its rules?

Felz··on COI – Chat Over IMAP
Neat. Might be worth implementing for Purelymail, but I'd have to roll my own since I don't use Dovecot. Maybe best to wait for the RFC?
Felz··on A Plan for Spam (2002)
I'm not directly working on spam, but it seems like there's a heavy reliance on ipv4 address reputation these days, which is probably one reason mailservers won't use ipv6 any time soon.
Felz··on Why a modern language like Kotlin makes a developer more productive
What this article doesn't mention is that not only can you replace Java with Kotlin, you can replace JavaScript too. I've even gotten rid of ugly bash scripts with judicious application of kscript. And soon, Gradle scripts too. (Good riddance, Groovy.)

But compile-to-JVM is compelling enough on its own. The Java ecosystem that comes for free with Kotlin gives you an incredible amount of power. A massive collection of battle-tested libraries, the excellent performance of the JVM, and tooling. Beautiful, productive tooling.

Felz··on Chrome will Soon Let You Share Links to a Specific Word or Sentence on a Page
There are significant tradeoffs between shared constructs and self contained systems. Self contained systems resist ossification; they can be unilaterally replaced. A shared construct has to evolve in step with all of its users.

But the self contained system will have thousands of incompatible implementations, and the shared system will be easier to interact with and build on top of.

What this means is that a browser should standardize on things meant to be interfaces, and leave out all of the rest. Unfortunately, they didn't and now browser engines are huge and impossible to evolve except by adding more stuff.

Similarly, the value of programming languages is almost entirely in the interfaces they provide which allow you to develop code. Lisp provides almost none of that, and that is why it failed to become mainstream.

Felz··on Amazon in Its Prime: Doubles Profits, Pays $0 in Federal Income Taxes
The implicit argument #5 is that a lot of people would be upset if corporations weren't taxed, because it wouldn't be "fair".

I might be wrong, but I think the system is currently structured such that corporate taxes are mostly a sham anyway; when they pay out dividends, those are taxed at a lower rate to make up for the corporate tax. This is probably anti-progressive because poor people aren't incentivized to invest in businesses, as they'd be effectively taxed closer to rich people rates.

Really, a surprising amount of screwy and circuitous things in our civilization are a direct result of income taxes.

Felz··on “Catastrophic” hack wipes out email provider’s entire infrastructure
Yep, AWS doesn't seem to have any time-lock delete mechanisms as far as I know, which is a shame. I still have to research this, but as far as I can tell the best practice seems to be using MFA delete:

https://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.h...

And then keeping root user credentials on a cold storage laptop.

Vault lock seems to be for Glacier, but it'd still be worth looking into for cold storage backups. More layers of defense are always good.

Felz··on “Catastrophic” hack wipes out email provider’s entire infrastructure
Wow, as someone working on an email service provider startup… this is basically my worst nightmare.

On the upside, the tooling around infrastructure has improved so much since vfemail launched in 2001 that there's a lot more I can do. With AWS, I can do automatic database backups, S3 bucket delete versioning, IAM auditing, whitelist firewalls, etc.

Felz··on Show HN: Purelymail (Beta) – extremely cheap custom domain email
Hi HN! Creator here. I've been working on Purelymail for the past few months because the state of paid email services bothered me. Relative to what they offer, they tend to be pretty expensive. $5 a month adds up.

I think it's important to have mail cheap enough that people won't be tempted to sell their personal lives to Gmail instead.

Purelymail only offers custom domain hosting to start with, which has the benefit of keeping final ownership of email address in users' hands. That said, I'll likely add shared first-party domains eventually, given that the friction of registering a website is probably too much for most nontechnical people.

This is a beta! I'm sure a lot of stuff is hilariously broken. Feel free to poke around, and I'd love to hear your feedback.

Felz··on HTTP/3 explained
I agree. It may only theoretically be a problem that a set of trusted CAs can dictate who can communicate with each other, but theoretical problems have nasty ways of eventually becoming concrete.

It's definitely worth having the encryption that prevents a lot of problems today, but I'm worried that QUIC has no unencrypted variant at all. That's almost certainly safer for the user, but it means that if a government blacklisted you out of a certificate, you're screwed.

Felz··on Lombok makes Java cool again
The problem with checked exceptions is that they constrain implementations by what possible failure states they could have. I.E. the implementations of an interface with a method in it that declares no exceptions will either never call anything that could throw a checked exception, it will internally handle its checked exceptions, or it will wrap them in an unchecked exception. In practice, the first is a straitjacket, the second leads to ignoring errors you can't propagate, and the third is boilerplate that makes it harder to actually catch the exceptions when you need them.

What would've made them good would be a static analysis of some sort that could divine all possible exceptions thrown by a method call and its dependents based on its code, but in Java a class can always override another class and do something entirely different so that's not possible.

Felz··on Gmail Services Global Outage
It's not ready for release yet (in a week or two maybe), but I'm working off the idea of a pay-per-use email service. Instead of a flat per month fee, you're charged for resources used. It looks like it'll end up being about an order of magnitude cheaper than other paid email services so far. Hopefully from there it'll be a good base to try out other improvements to email too.
Felz··on Gmail Services Global Outage
As someone working on a mail service of my own, this is heartening to see. Even Google messes up sometimes.
Felz··on We value your privacy now, but maybe not later
As someone who recently put together a privacy policy myself, I can assure you that an updating clause is standard practice for both privacy policies and terms of service. The documents are really mostly for minimizing liability.

You can object to that, sure, but no sane company is going to open themselves up to lawsuits just because a few users are upset about it.

Felz··on Our Software Dependency Problem
The real dependency problem is that most languages give out way too much trust by default. Any code can have any side effects.

I'd like ways to guarantee my dependencies have no side effects, like they were Haskell with no IO/unsafePerformIo, or to aggressively audit and limit those side effects. Malicious event stream package suddenly wants to use the network? No.

Felz··on EU Cancels 'Final' Negotiations on EU Copyright Directive
There is a fundamental asymmetry where it's much harder to repeal a law that harms a bunch of people a little bit to benefit a few. The few can afford to invest resources in defense and have a much bigger stake than the many, who individually have no real reason to care.

Public outrage works like a line in the sand, where the many get upset far out of proportion to what their stake is, to prevent death by a thousand cuts. But once you cross it, the defense crumbles. There's no model where seesawing back and forth between less and more copyright works: the many just can't organize as well as the few. That's why lobbyists only have to win once.

Felz··on Bitcoin’s Biggest Hack in History: 184.4B Bitcoin from Thin Air
Which raises the question: If strong leadership is needed to define the meta-consensus, what use is it that the technical consensus is decentralized?
Felz··on Intellectual humility: the importance of knowing you might be wrong
Oddly enough, vaccines do seem to occasionally cause narcolepsy. So it's not unthinkable that vaccines could cause autism, but there's no particular reason to believe that. And it's likely that if they did, we'd see a similar story of "nobody ever thought of this until somebody noticed and it became blindingly obvious".

https://www.cdc.gov/vaccinesafety/concerns/history/narcoleps...

Felz··on Ask HN: Go-to web stack today?
What's not there about Kotlin/JS for you, out of curiosity?
Felz··on Ways the world improved in 2018
Or, look at it differently: we've increased our renewable energy capacity percentage by 42% over 12 years, even as world energy demand rose. (0.1/0.07 = 1.42)

This is great news! In about 75 years, we'll use >90% renewable energy. (1.42^(x/12) = 0.9/0.1)

Which of these is the better model? I don't know, I can't eyeball statistical regression on this chart. But my gut says percentage of energy use growth isn't what we should pay attention to if we want to predict the long run future. When/if renewables become far cheaper than coal, that percentage is going to skyrocket fast.

Felz··on Epic Games banked a $3B profit in 2018
Like almost all game mechanics, I'm fairly sure I saw this in a WC3 custom map half a decade ago.
Felz··on Go Modules in 2019
Why not have if/else be an expression in the first place, like Kotlin?

  n = if(expr) trueVal else falseVal
No need to learn a separate ternary operator.
Felz··on Reasons Python Sucks
It's been a while since I touched Python (thankfully), but there's also:

- The hideous __method__ and _private conventions

- A friend of mine was complaining about the implicit string concatenation: ["foo" "bar", "baz"] whoops forgot a comma and now there's a very hard to find bug

- pyc and pyo files littering the filesystem after running (yes, only a minor nuisance)

- import anywhere, the ugly __name__ = "main" hack

- GIL, reference counting GC, abysmal performance in general

- Dynamic typing, which is probably my most major complaint but I realize opinions differ

Felz··on Firefox 64 Released
I added Livemarks. It helps, but it's still missing a critical feature of the old extension- the icon showing which RSS links you've already visited. That'll be added at some point at least:

https://github.com/nt1m/livemarks/issues/17

Still, this update felt particularly user hostile. My user experience was:

- I'm in the middle of browsing and open a tab to do a search, but the new tab shows the "Firefox needs to restart because updates are more important than you!“ page.

- I'm forced to restart. Manually, since the automatic restart is probably broken on my system. Tab state in some SPA tabs are lost.

- Now I have to migrate my live bookmarks. They converted themselves to regular bookmarks- I have to right click and delete those one by one. Then I install Livemarks, import the exported bookmarks data, and then drag those one by one to my bookmarks toolbar.

I'm half considering Chrome. If Firefox is going to be like this, why bother? Might as well start the Chrome dominance and stagnation part of the browser cycle.

Felz··on Firefox 64 Released
It's really weird to apparently be personally part of a 0.01% group. I feel that usage rate must be suspect- in some Firefox version they gave out live bookmarks by default, and surely more than 1 in 10,000 people still have those. Do we know what the telemetry actually measured?
Felz··on The Firefox Dilemma
Thanks! That might be it.

For future notice though, the answer in the first link is wrong; you want "places.history.expiration.current_max_pages", not "places.history.expiration.transient_current_max_pages". Apparently the max "pages" are automatically calculated by default- mine was around 160k, so my history only went back about 2.5 years. I've set it to the maximum value for a 32 bit integer, which I guess should fix the problem for the next 20 or so years.

Kind of annoying that Firefox's default is to delete things when you told it not to delete things.

← PreviousPage 5 of 8Next →