Friday, December 31, 2010

Version Updates and Annoying Messages

I'm going to keep this short and sweet, because it's New Year's Eve and I'm really tired at this point. I'm uploading the new server software to our production server as we speak; the magic flip to put it into effect will be switched at 1am, EST.

At that time, you'll need to update your Chrome extension and Android app. Failure to do so will get you an annoying error message whenever you try to send a link from Android, and will prevent the application from working.

A more detailed blog post and some exciting announcements will be coming tomorrow. They were meant to be made tonight, but I'm pretty worn out and pretty sure that most our users are drunk right now anyways. So I'll do it when I'm actually awake, and people actually absorb what I'm writing. :)

Until then, enjoy. And happy new year. Thank you for your support in 2010, and we're looking forward to an exciting 2011.

Saturday, December 4, 2010

More Information On Testing Tomorrow

As I announced, we'll be conducting a load-balancing test tomorrow, to analyse how the new server software impacts our server quotas (and to try and ferret our any bugs the new software may have!) We appreciate everyone that is volunteering their time tomorrow to help us.

In case you have no clue what I'm talking about, we have new server software, and we're trying to conduct a massive test tomorrow at 12pm PST (3pm EST/8pm GMT) for about a half hour to an hour. We'll be dividing the participants into groups, and asking them to run the software in combinations of those groups, to simulate usage.

The software will be put online right before the beginning of the event. If you don't have it downloaded before we start testing, that's perfectly ok; we'll have instructions and help in getting it set up right before we start testing. To take part in the testing, all you need to do is be in the #android2cloud channel on Freenode at 12pm PST tomorrow. We'll not be waiting long, so try to be punctual.

Thanks again to everyone who is helping us with this.

Thursday, December 2, 2010

Hello, Channel API

I need a little help. I've mentioned the beta group in the past, but I'm going to give a last-ditch plea for it now. Basically, what happened is that the Channel API launched without much warning being given, so I was caught totally unaware. To remedy this failure on my part, I'm going to be doing a massive test session starting at 8pm GMT (3pm EST, 12pm PST) on Sunday the 5th of everyone I can scrape together to be in attendance. I'm going to need people to help out in load-testing the new software, and in reporting any bugs or problems they run into, before I upgrade all 10,000 of our (awesome!) users to the new system. I'll be posting details of the test to the beta group on Saturday night to give a final run-down on what's happening.

You can find more information in the announcement in the beta group: http://groups.google.com/group/android2cloud-beta/browse_thread/thread/a13caf3450c704c6

Please, if you have an hour or even half an hour of free time on Sunday at 8pm GMT, join the beta group and help us figure out what this software means for our server. I appreciate every single person who can donate that time on Sunday to helping everyone else have a better experience with this hasty transition.

As always, please feel free to contact me with questions and concerns.

Monday, November 15, 2010

Another Sponsor

Have I mentioned how awesome our users are recently? Another one of our awesome supporters just stepped forward with a corporate sponsorship. This time it was the wonderful Eric Hansen coming forward on behalf of SiteSpect (they're on Twitter, too!) to offer us the funding we need to restore our normal operating quotas for a few more weeks.

SiteSpect is a solution for A/B and multivariate testing for web and mobile sites. Apparently, it's also non-intrusive; no Javascript or page tagging required. Which is all really cool, and I have no idea what most of that means. As always with our sponsors, I'm recommending them based on the premise that the people are awesome; the extent that I can vouch for the product is limited to my belief that awesome people make awesome products.

I hope you guys will help me out in saying thank you to a friend and user of our little service who has stepped up to help us out in our hour (okay, way too many hours) of need. Give them a look, because they're clearly awesome people.

Also, I'd love some feedback on whether these sponsorship messages are getting too spammy or commercial; we only accept sponsors who are users in our community, and we try to be up front and honest about our relationship with them. But we're only human, and we want to give you the best experience we can. So feel free to sound off in the comments!

Saturday, November 6, 2010

More Downtime

Despite the actions of our benevolent sponsor. WonderProxy, we still are in monetary-crisis mode. Because of this, our quotas have been dropped to half their usual levels. Expect downtime on a daily basis, probably after 3pm, EST.

If you would like help setting up your own server, we're more than happy to lend a hand. Just send an email to android2cloud at googlegroups dot com, and we'll get in touch. Alternatively, see server setup instructions on the Project Page: http://code.google.com/p/android2cloud/wiki/HostYourOwnServer

We're working hard to get a permanent solution up in place. We expect to have news on that front to announce in a couple of weeks. We apologise for the inconvenience, and hope you'll bear with us.

As always, suggestions and ideas on how to monetise a service like this (without resorting to ads or other yucky things) are always appreciated. They, too, can be posted to the Google Group.

Friday, November 5, 2010

Downtime Tomorrow

Sorry for the lack of updates lately-- we've had a lot of exciting stuff going on. I'm just taking a minute to let you all know that App Engine will have an hour of read-only mode tomorrow at noon, PST. You won't be able to send links until 1pm, PST. Sorry for the inconvenience, and watch this space for some cool stuff soon!

Monday, October 11, 2010

Sponsorship

I'm sure many of you have felt the pain of our quota cuts since the project ran out of cash. The comments in the Android Market and the Google Group seem to get a new comment or email every day, asking about why the server is unavailable every night.

Well, I have some good news for you. I've been investigating different ways to keep the servers online until Google releases the Channel API to our production server, and I may have an answer. It will take me some time to implement it, but it should fix our downtime problems.

And while you wait for that, the wonderful folks at WonderProxy have stepped up and offered us a sponsorship. They've given us enough cash to keep us online for a little over two weeks, while we get our new implementation up and running. They've also offered to host servers for us, which our new implementation will probably be taking advantage of. I hope you'll all join me in thanking Paul Reinheimer and WonderProxy for all they've done for us.

Thursday, October 7, 2010

Who Has Two Thumbs and the Best Users Ever? This Guy!

Rather than posting about my own stupid mistakes or how desperately the project needs money, I thought I'd take a moment and write a quick post about how awesome all of you are.

Let me backtrack a bit. This entire project started in June, when I saw Chrome to Phone demoed at Google I/O. I thought it would be cool to reverse that, so the next day, in the backseat of a mini-van, I wrote the Chrome extension for it on the way to my brother's undergraduate commencement ceremonies. I had never used an Android device in my life at that point. A week or so later, I bought a Nexus One. When it arrived, I started to work on the Android application for the project. A month later, I released, and spent the night debugging with my first user.

Since then, Lifehacker has covered the app a few times (I actually got to meet the editor that keeps writing about it-- very cool guy) and it has made its circuit on most the large Android blogs. There are videos demoing it, and it has been discussed in podcasts. The default server has served over 50,000 links, and the Android app has seen over 20,000 downloads from the Market. And today, it became one of the top ten applications on AppBrain.

I haven't marketed this app at all. I wrote it for me, because it was fun and I wanted to. I released it as a proof of concept, and open sourced the project because I believe in open source software. This was never supposed to be a product, never supposed to be a project for me. But you, my lovely users, have latched on to it, for whatever reason, and are spreading it across the globe. And I can't thank you enough for that.

Rather than abolishing the paid quota on the default server altogether, as was the plan, I'll be keeping it up as long as I can, as a thank you to all of you. I'm working really hard to try and fix our server issues once and for all. Hopefully, I can achieve that in the next week or two. I thank you all for bearing with me, and for making this app as successful as it has been.

Friday, September 24, 2010

Temporary Insanity

If you downloaded the 0.3.1 .apk from the Google Code project site, you may have noticed that there are two new fields "Secret" and "Token". This is because, stupidly, I uploaded a debug version of the application to the site, instead of the production version. Obviously, this was not right.

The debug version exposed no security holes, and its release poses nothing more than an inconvenience to those who tried to use it, which I apologise for. This was my mistake. I've uploaded the production version to the site now, and hope you'll forgive the oversight.

Downtime Imminent

As was mentioned in the last sad blog post, the server quotas have been cut in half. In a week, they'll be removed entirely. I'm sorry, I just can't afford to keep them up out-of-pocket anymore.

Downtime should be expected as each day nears midnight, PST. I will try to announce the impending downtime, if I see it coming, but I won't have the time to send out an update every single day. If you need uptime, please get in touch, and we'll help you set up a private server of your own that won't go down constantly.

Again, sorry about this. If you'd like, we also maintain a list of public servers that members of the community have stepped forward to host. We can't guarantee anything at all about these servers (that they'll stay up, that they'll follow our privacy policy, or that they'll even work) but you're welcome to try them out. If you have a server you'd like listed, leave a comment on the wiki page, and we'll add you to the list.

Thanks everyone. Hopefully, you'll bear with us until the Channel API launches, and our new software kicks in. Downtime should be less of an issue, then.

Thursday, September 16, 2010

Money Spoils Everything Wholesome

I feel compelled to do a quick post on this here. I just want to level with everyone, so everyone knows exactly what is happening.

Ever since Lifehacker covered this little app, we've experienced steady growth. As I write this, over 8,300 people have sent links using android2cloud-- over 38,000 links! We've gained early access to the Channel API, and everyone has been amazing about taking this little project and making sure it stays something fun, free, and open.

Since July, people have been generously donating money to keep the server online. I don't know if people realise the scale of this: over $300 have been donated since July to keep the server churning away. We're serving 110 CPU hours every day. That's a lot of requests-- about 8 million a day, give or take. Really, you guys rock.

But those requests don't come cheap. The server bills have been averaging about $65 a week-- they can range anywhere from $50 to $80, depending on usage and some factors outside our control (like App Engine latency). And as server costs have grown, donations have dwindled. As any economist will tell you, this leads to us running out of money to keep the server up. I'm kind of supporting it right now, but I can't do this for any length of time. I'm a college student-- keeping this server alive would eat up more than half my weekly income. It's just not feasible for me right now to swallow the costs-- I wish it were. :(

I'm not asking you to donate more. I'm really not. You people are the most wonderful, supportive users a developer could ask for. I'm humbled and mildly embarrassed that over 8,000 people even bothered to download my app-- something that started as a summer project, so I could gain some skills in Java while pursuing my only half-serious pipe dream of working for Google. The fact that people donated money to keep it running-- in chunks as large as $50!-- and that the community has shown me so much support and kindness throughout all of this... it's unreal. I couldn't, and wouldn't, think of asking for you to donate more to help this project out. You all do way too much, as it is.

I just want to level with you. From the beginning, this has been our journey. Together. Your ideas are as good as (if not better than) mine, and this app is as much yours as it is mine. Wherever it ends up, it ends up because you helped me, and I (I hope!) helped you get it there. And so now I'm telling you: here is where the app is, right now. Here is where our server is.

Right now, I'm exploring a few options. A very nice person has offered to help, as a "sponsor", with the proviso that we link back to their company. I'm not sure where the link would need to be. I promise you all, I won't do anything of the sort if I find it distasteful as a user. There is no harm, however, in recognising and honouring the friends that are kind to us-- so long as we do it tastefully.

I'm toying with the option of a VIP server, which has all the same features, but which I would guarantee uptime for. That would probably be a monthly charge sort of thing. That requires me doing a whole lot of programming that makes the app no easier or better to use, however, so I'm putting that on a "last resort" list.

I'd love to hear your opinions and thoughts on this. With a few caveats:

  1. I will not be charging for the app. This is totally against the idea of FOSS, and is something that would make me feel slimy and unable to look myself in the mirror in the morning. This app is where it is because we put it there together. I'm not about to charge you for it.
  2. I will not be displaying advertising for the app. There is no clean, tasteful way to do this that doesn't hurt your experience. And I'm just not okay with that.
Other than those two, however, please let me know if you have any thoughts or suggestions. And really, sincerely, thank you all for taking this roller-coaster ride with me. I'll be keeping the quotas where they are until Thursday, September 23rd. At that point, unless we find some way to fund this, they will be cut in half, and the downtime will begin shortly-thereafter. On Thursday, September 30th, the quotas will be cut entirely, and downtime will be imminent and frequent from then on.

This seems like a very good time to mention that if anyone wants to host their own server or join the beta, I'm more than happy to help in whatever ways I can. Reach out to me on Buzz (foran.paddy at gee mail-- you know the drill), Twitter (@android2cloud or @paddyforan), in the Google Group, or in email (paddy at android2cloud dot org). I'll give you whatever assistance I can.

Monday, September 13, 2010

Downtime!

Hi everyone,

First of all, App Engine is currently under maintenance. They said they'll be done soon.

Second, we're approaching our quota limits for the day. We'll be experiencing downtime-due-to-quotas sometime in the next hour or two, I'd imagine, and it will last until midnight, GMT (about 4 hours from now). I apologise for both these inconveniences.

Thanks,
Paddy Foran

Monday, September 6, 2010

Downtime Notifications & Android app v 0.3.1

Two quick updates:

After some pretty extensive testing by our lovely beta testers, android2cloud's Android app has been updated to version 0.3.1. This fixes some layout issues, and makes the account management process much simpler. The app will now detect which account it thinks you want to use, prompt you if you have no account, and ask you if it doesn't know what you want to be using. It also integrates with pretty much any app that has a share functionality-- before, if you tried sharing from, for example, Twitter for Android, there would be text in with the URL that made the app malfunction unless you manually removed it. From now on, the app will find the URL, and will prompt you if it doesn't know what URL to use.

As always, any bug reports are greatly appreciated.

Also, Google has notified me that there will be some App Engine downtime in the next few months. Please note that links sent during these maintenance periods will be lost.

September 13th, 2010 - 4pm-5pm Pacific Time (Sept. 13th, 23:00 UTC)
November 1st, 2010 - 4pm-5pm Pacific Time (Nov. 1st, 23:00 UTC)
December 6th, 2010 - 4pm-5pm Pacific Time (Dec. 7th, 0:00 UTC)

Sorry for this inconvenience. Rock on!

Wednesday, August 25, 2010

Channel API

We've been having server troubles since Lifehacker covered the application. A rush of over 5,000 users have brought the server costs skyrocketing. Throughout the dilemma, I've been slapping band-aids on the problem, raising server quotas and getting creative with memcache to try and stay afloat, waiting for the Channel API from Google.

Today, that API landed. Sort of.

Moishe Lettvin just emailed me, letting me know that our application had been selected (largely thanks to the recommendation from Michael Davidson) for extremely early access to the API. Unfortunately, Google wants to load-test the API, and wants to roll it out to smaller apps before larger ones.

Fortunately, we already have a separate server for this kind of thing-- the development server, used by our brave beta-testers. I've been given the go-ahead to expand that group up to 50 people to test the CPU usage and get a reliable idea of the effect this will have on our quotas. I'm expecting a dramatic decrease, but could be wrong.

So here's what's going to happen. We have a group of beta-testers right now, but there's still about 40 slots in the beta available for people to use. Send an email to paddy at android 2 cloud dot org, and if there's still a spot left, I'll invite you to the beta group, and you can help test the new server software, and will hopefully take some strain off the main server. As a perk, delivery from this test server will be almost instantaneous. No more 15 second delay because you sent the link at just the wrong time. The new API makes everything lightning fast. To quote Google, "the expected latency of delivering messages is on the order of 100ms". So a tenth of a second after you send a link, it opens on your browser.

Moishe has assured me that as the API gets its legs under it, and as Google is able to handle the load, the main server will get consideration for early access, as well. Which is really exciting; server woes may soon be coming to a close, and features that have been left out as I struggled to downsize the load on the server can be added.

Thursday, August 19, 2010

Servers and Money

As many of you know, we've had trouble since the start keeping servers running. A lot of trouble. The free App Engine quotas served us well when we had a hundred or two hundred users, but ever since Lifehacker covered the application, the free quotas simply haven't been close to enough. As of this blog post, we've passed the 5,000 users mark. That's a lot of users.

The Chrome extension works by asking the server every 15 seconds if there's a new link. If there is, it opens the link. This approach is called "polling" the server. When 5,000 people are polling the same server every 15 seconds, it eats through quite a bit of CPU. Right now, our server can (and often does) handle 110 hours of CPU time a day.

Unfortunately, that can cost up to $11 a day to keep the server running. I just got a bill for roughly $50 from Google, this last week's server expenses. And that's partially before I upgraded the server quotas to their current marks. We're staring down the barrel of $70 a week bills for this service.

I simply don't have the money to support that. I'm a college student who just returned to campus, and is buying books, working three jobs, and arguing with Financial Aid. As much as I would love to, I can't just eat a $70/week expense.

Many of you, kind, generous souls that you are, donated money to the project. I have been keeping careful track of your donations, and want to assure you that they are all being put towards keeping the server running. I will continue to pay for the server, at the very least until those funds run out on me. Maybe I'll keep it up for a few days after that point.

But my question to you is, what should I do after that? What should I do after the money runs out? Should I simply let the server go down every day whenever it surpasses the free quota? Should I gradually reduce the quota we are currently using, to try and extend the length of time we're operating with a raised quota? Should I just shut down the public server? That would definitely lose users. What should I do? This is as much your app as it is mine.

There is a light at the end of the tunnel. Google will be releasing a Channels API for App Engine, and I have a promise from a Google Engineer that I'll be one of the first to get access to it. That will reduce the load on the server considerably, as it changes the polling model to be more of a push model. But something needs to be done while waiting for that.

I'm sorry. I wish I could just pay the bill every week, but I can't afford to. I also apologise for my response time and lack of updates over the last two weeks. I am, as I said, just getting back on campus, and haven't had the time to devote to this project that I'd like. I promise an update is coming soon, one that should solve a lot of problems people are having with not understanding how to set up the app.

Monday, August 16, 2010

Downtime

It looks like we may run into some downtime in the next hour and a half or so. Everything should be fine after 3 a.m., Eastern Standard Time, on Tuesday, August 17. My apologies for this downtime-- we've burnt through over 80 hours of CPU time in under 24 hours!

Sorry about this. I'm working with Google to solve these outages, and will have something to show for it soon, I hope.

--Paddy

Friday, August 6, 2010

Authentication Issues

You know, it feels like 90% of the development and support on this application goes authentication. The OAuth just doesn't want to work for me, does it?

It looks like uninstalling and reinstalling the extension fixes most, if not all, of these issues. I've released version 1.0.1.1 of the extension, which will detect if you're having auth issues and will attempt to reauthenticate you. Meaning it will open a new browser window, and will ask you to log in and grant access again.

I'm sorry for all these issues. Really, I want to make them stop as much as you all want to see them stop. I appreciate everyone who is filing bug reports and is helping to track down the issue. You all are amazing.

In related news, I've decided to create a group of trusted Beta Testers for the application. If you're interested in testing the new features of the application before they roll out to all 2000+ people, and are ok with buggy releases (you must be, if you're still using the application... sorry!) please send an email to paddy at android 2 cloud dot org. I'll invite you to the beta tester Google Group, and you'll get instructions from there.

Thanks everyone for your support. You all rock.