I have been hacking together a quick web app this weekend (yay bank holiday) and I wanted to host it somewhere to try it out.

As I am working on a Chromebook (done all the development for the app on the chromebook so far) I didn’t really want to have to go and find a computer to FTP the files on to my server.

Instead I found out through this useful guide that you can actually host static content directly from Google Drive.

Simply:

  1. Upload your content to Drive. This is copy+paste on a Chromebook
  2. Set the entire folder so that the public can view it
  3. Open your HTML file and click “Preview”
  4. This is the URL to your app that anyone can access

A few notes / caveats with this method:

  • So far as I am aware you can’t do any server functionality – but it is possible to do client side JS etc.
  • It is served by HTTPS, if you are loading fonts or JS remotely then make sure it uses HTTPS too or most browsers will not load it.
  • I have yet to find a way to alias some kind of URL or domain name to it, to make it less ugly, short of using the Google Short Links service which is available with Google Apps.

Nonetheless a pretty useful process.

Google Tasks is pretty cool – well integrated with Gmail and a good notepad for things to do.

However, I’ve always had problems with it because I quite like working on the Chromebook when I can, and getting to the tasks can take a while with loads of tabs and windows.

So this afternoon I bashed together TaskApp. The basic idea is it packages your Google Tasks into a Chrome app so it gets its own window.

screenshot

Having looked at the source code for the official Google Tasks Chrome Extension, available on Google Code, and when it renders stuff it basically cheats and dumps an iFrame which contains the iGoogle version of the Tasks app.

So that’s basically what I did with this app. With the exception that it uses the new(-ish) <webview> tag (which, by the way, is AWESOME) so I don’t have to worry about any OAuth stuff. It simply uses redirect listeners to work out whether you are logged in, and if not it launches a new window where you can do so. Then, when you have logged in, it opens the smaller window again.

Simple (only about 30 lines of JS all told) and pretty effective – I’ve quite enjoyed using it already this afternoon.

I went to Google Music earlier to listen to some tracks while coding (because you can do all these things on Chromebooks) and was quite entertained and irritated that all my music was playing about 3x the regular speed.

What? My music taste is "varied"

 

Turns out it’s because I turned on the experimental HTML 5 playback. In the cog menu, go to labs and turn that off (and play with some of the other cool features in there) and everything will be back to normal.

I’m (still) playing around with Chrome apps and extensions – and having fun doing it.

However there appears to be a lot of confusion around doing simple tasks. These are:

  • Getting the app / extension version string
  • Getting the app / extension ID
  • Getting the app / extension manifest file

Various hacks involved using xhr to get the manifest file from the extension’s resources, and all kinds of brutal things.

Here I outline (finally) the definitive, clean, consistently supported way to do these things.

Get the Chrome application or extension manifest

You could have any number of reasons for finding out exactly what your manifest file includes.

The definitive way:


chrome.runtime.getManifest()

Get the Chrome application or extension version

This version is the one you set in the manifest file. Good for lots of reasons – checking you’re up to date, grabbing versioned external resources, the list goes on.

The definitive way:


chrome.runtime.getManifest().version

Get the Chrome application or extension ID

The ID for an extension is automatically generated by Chrome. You could need it for a variety of reasons, for example cross-extension messaging.

The definitive way is a bit trickier but well supported:


chrome.i18n.getMessage("@@extension_id")

There you go.

I had a couple of e-mails to deal with on the way back into London this afternoon. I only have my Chromebook with me, and had synced Offline Gmail so I could deal with them en-route.

I was pleased to remember that Greater Anglia, despite in some ways still being stuck in the mid-60′s, has on-board WiFi. (This is unfortunately emblazoned with obnoxious Office 365 ads, much like the rest of the train).

On board

 

Obviously the WiFi is really a load of people trying to download things over 3G so its performance isn’t by any definition good. However, the Chromebook does a really awesome job of doing its best.

First of all, on a poor connection, it caches things a LOT. In fact at times I found it really hard to persuade it to actually reload the content as I knew it had probably changed.

Additionally, once you have wedged a connection open, SPDY proxying to Google services works like a dream – much easier (although not without issues entirely) to keep those sessions usable than other sites.

Finally, Offline Gmail works like a dream – it is significantly lighter than normal Gmail and much more lightweight than many other sites on the network. This makes it possible to keep working through connection drops and slow conenctions, and the app will keep up with the changes and sync with the server when it can.

Google Currents has been available in the UK for a while now, and as Google is closing down Reader, I thought I’d give what will most likely be its “replacement” a go.

I must confess I’ve quite enjoyed reading with it. It doesn’t have much of the content I’m used to, but it is still pretty interesting. Additionally, the widget is pretty nice to scroll through.

I also picked up a long-dead project where I was creating a Current for my blog. I’ve made some tweaks, improved the content, added Google+ posts and it’s looking good.

If you’d like to subscribe (please give it a go!) you can do so by clicking on this link with any device that has Currents installed. This post should be appearing there soon.

image

Currents on Android

 

Since I got my Chromebook (which I adore, by the way) I have been working on a few little coding projects for Chrome. Thanks to some early tomfoolery with their Packaged Apps examples, I have been able to develop the packaged apps on the Chromebook itself.

Acer Chromebook

 

LinkedIn’s new Recommendations feature is causing some discussion in the office. You can see how there would be upsides to getting recommended for skills on LinkedIn. However, personally, I have decided against publishing ones I have received for now.

The primary reason for this is currently I am seeing a lot of people getting recommended for things that they probably do have good experience in, but the recommendation is devalued by who is recommending it. In a lot of cases, LinkedIn provides auto-filled recommendations for people to send, and the person sending the recommendation doesn’t necessarily know a lot about the subject they are recommending someone for.

Extra special treat for my birthday this year…

New Star Trek movie!

New Star Trek movie!

Oh dear…

It’s frustrating just how many people – who really should know better – advocate dropping out or not even starting further education for entrepreneurs as it doesn’t help start a company. The usual trio of successful people – Gates, Branson, Zuckerberg – are usually hauled out to justify this point of view.

Zuck

Zuck

As someone who has gone from a degree straight into a startup, I strongly disagree with Elon Musk’s and other’s comments on this subject.