196 karma · joined October 22, 2012
Then again, it's not like the hosting is costing that much. Actually I currently run it on a machine with lost of resources that is used for other things as well...so technically I could keep running it forever. That is to say the cost isn't the main driver for shutting it down. It's more a psychological burden at this point where I'm thinking "ok I tried, it didn't work time to move on".
Honestly I can keep it running forever since it's running on a dedicated machine that has lots of resources and that I use for other projects as well. So it's not like it's costing me to keep it up. The burden is purely mentally (I just don't want to keep thinking about it anymore...I tried...I failed...right?)
I experimented with pricing a lot. The one you see now is the latest iteration. The idea was you pay 1$ per EC2 instance per month. So kind of like insurance right? The trick is that if you have say 60 instances you're paying 100$ still because the tier allows 100 instances to be monitored. I wanted the expense to be fixed every month because I've gotten feedback from folks that companies don't like variable cost per month for infrastructure...and it's already an issue that AWS is costing them a different amount each month....so it would be a hard sell to get to them to pay me a variable amount as well (small fish and all that).
Initially I didn't have a free tier at all. I only added it later as a desperate attempt to attract users. That's why historically I never gotten around to setting up a register flow without an invite link. :/ I don't know if 50 is the right number for the free tier but it definitely needs to be a larger number since companies/individuals that I target have a larger amount of servers. The ones that only have a handful don't really need this tool at all since they already mostly know all of their servers by name (so to speak). It's the whole "cattle vs pets" discussion. Anyway, that's where the limit to 50 comes from.
Thanks for the link btw. I read a bunch of patio11's posts but I don't think I've read this one.
[1]: https://ledger.initeq.net/
[2]: https://twitter.com/denibertovic/status/1466408868276314114
There's a bunch of plugins for it but I haven't used any of them yet.
[1]: http://todotxt.org/ [2]: https://play.google.com/store/apps/details?id=nl.mpcjanssen....
Also interesting thing to note is how everybody came down on keybase FS because the sync is on-demand. Most people citing dropbox and things like "if it was a viable option dropbox would do it and not have full sync". Well now... :D
Type classes are the definition of polymorphism. And you can write very generic, abstract, polymorphic code using these constructs. It's not any languages fault if you write your code expecting only concrete types. By this standard it's Javas fault if the developer isn't using generics. No it's not it's the developers fault. The mechanisms are there. Use them.
"Wow, overkill much? Polling is bad, and is exactly the kind of bad solution that a lot of these libraries are in place to prevent developers from needing to do." - Polling is not bad if you have a good use case. You just cannot do non-blocking stuff with Django for instance, or it's very very hard and tricky. Websockets also limit you with the number of connections you can have open at once.
Distributed just means that you can have your task processing spread out across multiple machines.
A specific example would be, let's say, after your user registers on your website for the first time you wan't to get a list of all his facebook/twitter friends. This action will take a long time and is not vital to the whole registration/login process so you set a task to do that later, and let the user proceed to the site and not make him look at the spinner the whole time, and when the friend list becomes available it will show up on the website (on his profile or whatever). Makes sense?
It always depends on your use-case but generally you want your application to behave correctly, which means it has to have correct/fresh data...you can't sacrifice correctness because of an inability to scale your database.