My Second Phone Is in the Cloud
lucassimpson.com
lucassimpson.com
- nextcloud (https://nextcloud.com/), more like a "dropbox-like" with added applications - sandstorm (https://sandstorm.io/), with a high focus on security - yunohost (https://yunohost.org/#/), a full-on debian distribution with all the scaffolding to one-click install known applications (mail server, file storage, IM server and client, ...). All linux software can be used as an "app". The process to make it into an app is the same as creating a package for a distribution, except specifically for this one. The good thing is that installation is way easier than using a package manager and configuring the database for the user, etc... It seems to be the most in line with the author's vision.
“If you were using federated Kuberenetes with node auto-scaling and the latest cloud-native AI-enabled service discovery OSS tools for geographically aware traffic distribution your static site wouldn’t have gone down.”
Just like the article implies, if it requires any tweaking and configuration, most people won't/can't do it.
It's easy to click a few buttons, install some plugins and themes, and wind up running 100+ sql queries on every page load. The various caching plugins work very well, but it's not necessarily something everyone thinks of turning on in advance of getting a lot of traffic all at once.
Can't say if that's what happened here, but it's super common when personal sites linked here go down.
1. lucassimpson.com/about/
Lambda will scale up in seconds.
Dynamo, however, can be set not to (if you wish to stay within free tier limits). Dynamo DB free tier allows 5 4KB/key reads/second, with a buffer for about 5 minutes worth of "tokens" at this rate.
If poorly designed (e.g. using Dynamo like a relational database) you chew through this with app-side joins very quickly. Even if well designed, looking up related articles, or re-loading records on page transition will eat up DB time
As someone else mentioned, caching is critical for this setup to survive this load, especially if you want to stay in free tier... And CloudFront costs pennies compared to Dynamo and Lambda... Though both can easily be cheaper than $5/month
The website actually is fronted by CloudFront.
It's a static site FFS! Erols and ServInt were serving 3k requests per second on a Pentium in the nineties using Apache and SCSI disks with no acceleration, no http cache, no memcache because that 2KB page fits into OS disk cache!
That is not what this article was about.
Also some services straight up refuse to send SMS to cloud phone providers meaning you can't sign up for certain services that needed a verified phone number (unless they had an option to receive a call with the verification code which worked like 25% of the time).
Dialing was another huge issue, you can somewhat intercept outbound calls on Android but the system is buggy so I had to find other methods. Since I had integrated my SMS/MMS messaging with Slack (one slack channel per phone number) I created a /dial command that would call my phone and then when I answered it would transfer me to the person I wanted to call.
Happy to answer more questions about it but I highly recommend people think about all the consequences before moving their main number over.
I've ran into the same issue with this on Google Voice. Though sometimes I wonder if I could have gotten the best of both worlds by just porting a number from a traditional carrier to Google Voice/Twilio.
Are these kinds of checks only against the number itself? Or is there some kind of dynamic registry?
The number needs to be non-VoIP. Off the top of my head, Uber, Lyft, Craigslist all require non-voip which means no Google Voice.
My main concern is what to do when Google kills it.
In general it is much simpler than that. These companies are sending you these SMS messages not from a "normal" phone number (xxx-yyy-zzzz) but from a shortcode (xxxxx). The "from" is a shortcode and only mobile numbers can receive SMS from shortcodes.
So if your number is not a "mobile" number, you might still receive SMS from other real phone numbers, but you cannot receive SMS from shortcodes.
Twilio, for instance, does not provide mobile numbers. Period. So even if you port a mobile number to twilio, as soon as it is theirs, you cannot receive SMS from shortcodes.
Here is a list of carriers that are properly registered to receive SMS from shortcodes:
https://usshortcodedirectory.com/faq/what-wireless-carriers-...
"... short code carriers have arrangements to exchange messages with mobile phone numbers only ..."[1]
[1] https://support.twilio.com/hc/en-us/articles/223133447-Not-R...
The UI is a little 90's looking, but it's very powerful. For me, I spend less time fighting an API, python, etc, and more time tweaking the flow to get it right: https://www.anveo.com/consumer/features.asp?code=ivrcallflow
https://news.ycombinator.com/item?id=20835428
I'll possibly put a post together if anyone is interested.
https://webcache.googleusercontent.com/search?q=cache:lIMDg7...
Most desktop computers today are a magnitude more powerful then the small VMs we rent on the cloud. While you go on with your day, your desktop computer can be put to work in Your service.
They did acquire it, so it probably was a good exit for the original devs.
And to become ready for public consumption some investment in UX was clearly needed, including a better store and some basic apps.
Sandstorm the company most definitely failed -- we ran out of money, couldn't raise more, and had negligible revenue, hence could no longer pay employees. We looked for an acquisition, but while we received multiple offers to hire the people, we received no offers to acquire the company along with them. (Well, some companies offered to buy Sandstorm for $0 and wind it down for us.)
Most of the team ended up taking offers from Cloudflare, but Cloudflare did not acquire Sandstorm. Sandstorm technically still exists as a company, but with no paid employees -- it's basically just me keeping things operating in my spare time. But the vast majority of my coding energy has gone into Cloudflare Workers.
OTOH in the last couple months a bunch of people in the community have started more actively contributing to Sandstorm as an open source project. So that's cool!
Especially curious, as making something along the lines of sandstorm would actually be what I'd be doing, if it was not for chasing the AI hype. Though I thought of it more as something, that you could "install" into your free tier cloud account with typical mobile apps (like Calendar, Contacts, Mail, Music and Drive) coming by default.
Also, Cap’n Proto is just marvelous!
Agree that it sounds exactly like what OP is imagining, website even has the copy 'installing apps is as easy as on your phone'.
I also think Urbit is similar, but frankly I've always been too confused by the space analogies that project uses to be sure.
The current state is that it's "just" an open source project, not a business. There are a few people working on it in our spare time. The paid hosting service has shut down.
I actually thought my 'open for business' turn of phrase was going to draw comments like 'its open source what are you talking about', when I only meant that it existed.
---
That's a shame it didn't work out, but I think for now the vast majority of people that want 'personal clouds' are so technically minded that they will favour at least running it themselves, if not ensuring that everything is OSS.
Perhaps a critical point can be surpassed after which privacy but not technically minded folks are interested in the by then popular concept, and will pay for the cloud device and then further for apps on its store app.
I think it's a solid idea, but that the money at the moment is in commodity infrastructure or hardware that happens to be used for it, and to a lesser extent software licences .
Did you consider selling Sandstorm licences, as a sort of iOS for a BYO phone, in the analogy?
We tried for a while. But the kinds of "enterprise" customers who would pay for an on-prem/private-cloud version of Sandstorm are also the kind that don't just wander onto your web site and plug in their credit card... you have to do the enterprise sales dance, which we never had any clue how to do. :/
When openssl has a bug, who notices, decides, installs the new package and restarts all the dependent services?
That person or group has the actual control over your personal cloud server. And it's more efficient, and thus cheaper, if they are a large scale organization. Once again it will be more attractive to most people to centralize.
Is there any meaningful difference? I feel like the second idea has been around for a while.
Incidentally, because I've read so many articles recently bemoaning the state of the iPad, I think if Apple really embraced the "thin client" model for the iPad, they would have a much better shot at product market fit. For example, if the iPad could seamlessly view and edit files from, say, any SMB server as easily as it can from iCloud, I think that would get people excited. It would be decoupling the interface from the underlying standard, but also make sure that they work well together. Who knows, it also might lead to having a standard file format where we're missing them today, e.g., for handwritten notes?
Try ‘add server’ in iPad’s “Files” app?
http://osxdaily.com/2019/11/04/how-connect-smb-share-iphone-...
For example, some apps don’t seem to be aware of this possibility and throw errors if you try to open a file on this way. You also can’t add directories as favorites like you can for other sources. It’s just annoying enough in some cases that it feels like Apple doesn’t really want you to do it.
This is actually an advertised feature of iOS 13, and I did get very excited about it when it was released last year. Unfortunately, it’s completely unusable; browsing a directory with more than 100 children or copying more than a few megabytes of data is likely to freeze or crash Files, and I’ve even managed to get the app into a broken state that can’t be fixed with an iOS reboot. The same applies to the USB drive “support.” Don’t trust anyone who tells you the iPad Pro is a viable laptop replacement if you need a working filesystem.
- The "appstore"-like experience already exists in the ecosystem, in a sense. You have package managers with post-install and configuration scripts (Installing slapd for example yields a perfectly functioning instance within 2 minutes), or maybe Ansible playbooks that run the instance with a simple file configuration and one command. For package managers, it all depends on the packaging.
- Again the ecosystem somewhat already exists in a way if you consider Docker for example. All the dependencies are neatly packaged, and if you think kubernetes, then you you have helm as the appstore. It even solves the possible problems with ports and schenanigans that the user mentions. (But again, post-install triggers in debconf for ufw on ubuntu for example already do this. It all depends on the packaging.)
But as the author points out, not everyone is keen on hitting the terminal, but that has been a problem (or rather a business opportunity) for long enough that there are solid, uncomplicated and perhaps way more convenient (and eco-friendly) ways to achieve what the author is thinking of accomplishing.
One thing that comes to mind is the amazing Synology products. In fact, they implement the exact vision of the author: Run your software on your NAS, and have a dynamic DNS graciously provided by synology to access it. E-mail server, file sharing, photos app, even photo recognition, and a plethora of other stuff. You can even run VMs or Docker on it ! And all within the synology appstore (with some magic nat traversal I presume because it does not need any port forwarding)
And that is just one example of something I've seen and witnessed to work very well and reliably too.
I guess what I'm saying is, the author's vision is shared amongst a lot of people and there may even be commercial solutions out there that implement it. But I would for sure love to see an open-source attempt. In fact, I think there's already one that I'm just not aware of.
The idea of owning your personal computer in the cloud with instant, always updating apps completely in your control seems inevitable but making something easy for anyone to use will take time. That's why we're focusing on the developer experience to make it simple and cheap to make apps in this new paradigm while shaping the experience for the end user so it does ultimately feel as simple as using the App Store.
These days, it's fairly inexpensive to get a home server, set up a VPN server, and run stuff like a web browser through RDP. Guacamole (https://guacamole.apache.org/) makes desktop apps through a web browser even simpler.
Again, setting all this up is more than trivial, but I believe it's something that could be a "one-click app" for a VPS. See https://marketplace.digitalocean.com/
Am I right in the inking that even if a big tech company did this it could still be good. Because they are just providing the ‘device’ like Apple do now. I guess they would still have power over what you could / could not install though.
The author is trying to stick to free tier, so if it's set to the max (5 records/sec), and no caching, it probably can only handle 1 visitor every 2 seconds after the bucket of 1500 read tokens is used up.
If it's doing scans at all, the DB will be shot in seconds.
Really need CloudFront in front of something like this to survive and lighten the DB access
Paid apps are also inherently less viral and can’t tap into network effects as well due to the friction resulting from payments. In order to overcome this, PCC apps need to develop a viable revenue model without putting a paywall.
I see the PCC model work for applications where neither the consumer and the business want to store sensitive data because the security overhead is too high.
E.g. trading bot that doesn’t want to store user’s API keys. In fact, running private servers is something that is pretty common in that world.
First this is a great space for open source apps.
Second I think people in general are becoming more aware that free online stuff usually comes with a hidden cost to privacy.
Third there is a whole swath of online services that can't thrive in current situation: services that are too uninteresting (from a data harvesting pov or no tie-in to larger offering) to run for free, and not valuable enough for the user to pay $7/month for, and not worth running as a SaaS at a lower price. Yet if a user had a cloud OS with metered resources, they could run such an app for a few bucks a year (plus a few bucks donation/paid to the app dev). And they'd never have to worry about it shutting down because the dev wants to do something else with their lives.
I agree. I think apps that have both a basic and premium version can really thrive on a platform like this where useful apps are not competing with VC-fueled or ad-driven apps and the utility to the user is very clear. Data mining has really gotten out of hand and caused the value-add to the user to become extremely distorted. User attention has been the only metric that free apps are fighting for which is a zero-sum game and not good for anyone.
I'm most excited by the idea of applications being able to be more closely connected and even create new types of apps that just layer on top or extend existing app data.