Quick Update…

Well, I’ve not been doing great with posting more, especially on the quick short posts front. I guess it’s because I’m either too busy all the time or because I just don’t think anyone wants to read every last thought which pops into my head. Probably a bit of both!

Anyway, here’s a quick run-down of what I’ve been up to over the past couple of weeks:

  • I’ve been working on an Arduino project at home. I’ll post more on this over the weekend (with photos). For now I’ll just say that it’s a clock with some sensors on it – but it does a little more than your average clock. Although I’ve had my Arduino for a couple of years I’ve never really used it in earnest and I’m finding it refreshing to work with. Since I use PICs at work the simpler architecture is nice. Of course I program it in C so I can’t comment on the IDE/language provided by the Arduino tools.
  • The beer which I made recently is now bottled and maturing. It’ll need a couple more weeks to be ready to drink though (actually the longer the better really, but I can never wait!). I’ll report back on what it’s like when I try it.
  • I’ve been thinking about ways to get the ton of data I have spread across my machines in order. Basically I want to get it all onto my mythbox/home server/personal cloud and acessible via ownCloud and NFS. I also have a ton of dead tree (read ‘important’ documents) which need scanning and a ton of CDRs that need backing up. After that I have to overhaul my backup scheme. It’s a big job – hence why I’ve only been thinking about doing it so far.
  • I’ve also been thinking about upgrading my security with the recent hacks which have occured. Since I’m not hugely reliant on external services (i.e. Google, Facebook, Apple and Amazon) I’m doing pretty well already. Also, I already encrypt all my computers anyway (which is way more effective than that stupid ‘remote wipe’ misfeature Apple have). I am considering upgrading to two factor authentication using Google Authenticator anywhere I can and I want to switch to using GPG subkeys and storing my master private key somewhere REALLY secure. I’ll be writing about these as I do them so stay tuned.

Well, hopefully that’s a quick summary of what I’ve been up to (tech-wise) lately as well as what might be to come in these pages. For now, that’s all folks.

Site Update…

Seen as its the start of a new month I thought I’d post a follow up to my post on the site overhaul. It hasn’t actually been a month yet, but the tracking statistics are based on calendar months. The short story is that visitor numbers are up, with 446 visitors recorded since the Piwik instance went live (13th Jan) until the end of the month. This beats all my previous records and is only for part of a month. My old GA figures were putting me at around 300 visits per month, though this had slipped recently. So, either there is a large difference in the way the two systems measure visitors or my push to actually put up some content is working! The fact that roughly half my visits are coming from search engines and are coming to newer posts on the site supports my theory that the push is working.

Having said that I’ve slacked off a bit recently (this is only my second post this week). This is mainly because I’ve been putting a lot of work into SwallowCatcher, managing to get a release out earlier this week. Hopefully, in the coming weeks I’ll be able to balance both projects.

In terms of the other action points I had for the site:

  • Google Ads are still here. This is primarily because AdBard have not approved my account yet. I’ve even queried this via their support address and had no response, so I don’t know what’s going on there.
  • Flattr is here! And its actually making me some money, with a total of three flattrs last month. Please, if you like my stuff consider flattring me, it’ll help pay for the site and encourage me to produce more content and software.
  • I have a new theme! Although its just an off the shelf one for now, I haven’t modified it.
  • More pages: well, I’ve posted the project section and a project page for SwallowCatcher. There’s still more I want to do and I haven’t got around to doing a proper profile page or online CV yet.
  • More content: well that speaks for itself. The last month has been a time of unprecedented blogging activity for me. I’m really quite enjoying it and its made its way into my mental todo list for each week, which is a good sign.

That’s just about all there is to it. For those that are interested in SwallowCatcher, since I released on Tuesday I’ve been working fixing some of the issues identified in the release notes and those that people have reported to me. I’ve also been using it day to day to download my podcasts and fixing any issues I encounter. In fact, tonight was the first time I’ve opened my laptop in the last two days. The laptop’s primary use for the last few months has been downloading podcasts when I’m at uni. Now SwallowCatcher is just about filling that niche! I’ll hopefully post an officially updated version sometime over the weekend, with the announcement again going out here.

The Web as an Application Distribution Platform and the Open Cloud

Having managed to produce five blog posts last week, I’ve taken a few days break from blogging A) because I’ve been busy with other stuff and B) because I ran out of stuff to talk about! However, now I’ve thought of something to write about…

Wow, that title is a little overwhelming. Basically this post is about what I’m going to term the Open Cloud, the problems with it and how treating The Web differently might help. I suppose I should start by defining exactly what I mean by the Open Cloud…

The Open Cloud (A.K.A Free as in AGPL)

Like it or not, cloud computing is here to stay despite what Richard Stallman might have to say and for most of us it’s  going to be great. Now, I respect RMS as much as your next Free Software supporter, but I fear he’s way off the mark here. I share his concerns over companies that don’t really care about your data or your privacy. However, Cloud Computing itself isn’t inherently bad – how can it be, its just a technology and technology is only as moral or immoral as those who wield it. So, what do privacy respecting, Freedom loving, FOSS advocates do. We do what we do best – start coding! We start building an Open Cloud.

“But Surely we already have an Open Cloud?”

Yes we do, but shouldn’t confuse this Open Cloud with the Open Web. The modern web, for the most part is built on standards which are completely open, from TCP/IP right up to CSS, HTML, RSS and other glorious acronyms. However, most of the applications that live in the cloud most certainly aren’t Free or Open. They are as closed as your average binary blob, more in fact because you don’t even have access to the running binary code (oh, and APIs don’t count guys). When I say Open Cloud, I’m referring to FOSS applications running in the cloud, preferably under AGPL (other licences are available), which is specifically designed for this.

“Hang on, aren’t there loads of FOSS web-apps out there?”

Well, yes there are, this blog is running on one of them, WordPress. Then there’s Drupal, Joomla, Roundcube, Davical, etc. The problem with most all of these is that they miss out one of the prime benefits of Cloud Computing in that they all need hosting by individual users (OK, so WordPress was a bad example as there is a hosted option). What I’m really talking about is hosted applications, that people can just use, but can also be installed on your own server. These can be really small things and would preferably start with replacements for popular closed web services.

“Hang on, don’t we have a few of those already?”

Right again, but the emphasis should be on A FEW. We don’t have nearly enough of them. So far we have identi.ca/StatusNet, Libre.fm and Libravatar and that’s pretty much it (please let me know of any more), although I guess Diaspora is coming. Ideally, we would have a replacement for every proprietary web app and more, but we just don’t seem to be getting there.

So what’s going wrong…

Basically, web apps are different to desktop apps. Apart from using different technologies, they require hosting to actually run them. If you want to run your shiny new FOSS web app that you’ve just come up with as a hosted service, you yourself have to find this hosting. For small FOSS developers who might otherwise build these services this could initially put them off. However, it you’re just starting out then your hosting costs wouldn’t be huge, but as your service grows this is likely to be an increasing problem. I don’t think it’s any surprise that identi.ca (which is probably the most successful free web service) is backed by a commercial company.

So what do we do about it…

HTML5 (or just HTML as it should now be known) gives the FOSS community an amazing opportunity. The technologies available in the HTML5 specification should allow us to build web apps that are lighter on the server. Specifically, I’m talking about the offline web app functionality and local storage. This basically gives us the ability to build cool web apps that are really light on server side processing and storage. Much as I think JavaScript has its problems, it really has come of age with HTML5. HTML5 gives us the opportunity to build FOSS applications that are not only available to people running FOSS platforms, but available to anyone with a web browser (a whole new demographic of users) and hopefully without killing all our servers.

One of the projects driving this (in the FOSS world) is UNHOSTED. Primarily this is a JavaScript framework in which applications would be composed of static HTML, CSS and JavaScript (i.e. no server side scripts). The system proposes other nodes which are solely for storage, thus providing a separation between the storage of data and its processing by applications. The data would even be client side encrypted (think Firefox Sync or SpiderOak), but only with JavaScript so I’m not sure how secure this is. That’s all cool, but currently it lacks one of the major advantages of cloud computing, which is the ability to do processing on both the client and the sever. Perhaps it will evolve into something which will allow this processing in a distributed, decentralised, privacy respecting way.

I certainly think there are use cases for wholly client side JavaScript apps and that the FOSS community could tackle building some of them, whilst we are searching for solutions to the wider scalability problems of server side code and storage. However, there’s no use writing apps that everyone can use, if nobody knows about them.

An Application Distribution Platform?

The web already is an application distribution platform. It has been for ages, but up until now those applications haven’t been very discoverable. This is starting to change. I guess most people have heard about Google’s Chrome Webstore. This is their attempt to bring the App Store/Package Manager model to the web, basically its just a catalogue of web apps and some scripts that create short-cuts to them. Whether you think this equivalent to installing an application or not (I actually don’t think it matters) the idea is great, at last there will be a place to go to find web apps that you want to use. Mozilla are also jumping in with their Open Web Apps project. This is more of a specification for doing this across multiple sites and is the tech that I’m backing (personally I’d like to see web app stores that automatically discover new apps and add them to their catalogues). If one of these app stores makes its way into a future version of Firefox then that would be the perfect platform to push FOSS web apps to the masses.

Conclusion…

I don’t know whether the ability to make almost entirely serverless web apps will help the state of the Open Cloud. I really hope it does, but JavaScript still has a lot of limitations that native app developers don’t have to put up with. That said, there are a lot of advantages, such as users never having to update an app (they always have the latest version). I also don’t see web apps overtaking native apps any time soon. More likely we’ll see a continued fusion between the two, especially on mobile platforms, so that eventually the boundary between them is indistinguishable. I hope that the app store model will increase the visibility of FOSS web apps and encourage developers to get coding, but we’re only at the very start of the story on this, so only time will tell.

Automating routine tasks…

I’ve been thinking more recently about automating routine computing tasks. Using Free Software this is ridiculously easy, usually a combination of Python and Cron does the trick. More difficult I have found is actually working out what to automate. It’s very easy to get into the habit of doing something and then not realise that you do it every day, or every hour when in front of the computer.

One of my major successes in this area has been in terms of feed reading. A while ago I setup rss2email on my server to check my feeds and email the stories to me. Previous to this I actually found it really hard to ever get around to reading news feeds. I think this was mainly because checking news feeds suffers from the ‘extra inbox problem’, its just more stuff to check. Having news stories emailed to me fixes this and I can also read them easily on my phone. Because I use IMAP email, my read/unread status is also synchronised on all my computers.

Now I’m kind of at a brick wall. I don’t know what else I can set up to reduce the number of routine tasks I do. The purpose of this post is to crowd source that problem. I want everyone reading this to get back to me with the things they’ve set up to help them. You can get in touch either through the comments on this post, or via identi.ca. If I get enough responses I’ll write a follow up post detailing some of the best ideas.

The Long Awaited Kiwi Pycon Round-Up

OK, so this isn’t going to be as large a round up as I envisaged. Principally because its been so long since the actual event and also because only one talk video is currently available – I guess all that video editing is a big job! Also, I haven’t really had the time to investigate much of the stuff I learned about over that weekend as my current Python programming is limited to the odd script here and there (most of my programming is sadly limited to C++ and Java for reasons out of my control).

Anyway, it just so happens that the video that is up is from probably the best talk of the weekend, Anthony Baxter’s ‘Pythonic APIs’. This talk made me laugh from start to finish and taught me some things I didn’t know, watch the video below if you’re interested (brought to you by the magic of HTML5!).

As far as the other videos go, I’ve subscribed to the Kiwi Pycon Blip.tv RSS feed so I’ll be able to share them as they come along.

All that remains is to talk about my overall impressions of the conference, before they completely fade from memory! Basically I really enjoyed myself, everything was very well organised and the venue was excellent. There seemed to be some rumbling that Waitangi was a bit far away from everywhere and that the conference should have been in a city. For me the location was actually a bonus as it meant I had a good excuse to take the following day off and have a bit of a holiday!

So that’s about it, thanks to Danny, Guy, Tim and everyone else who organised. I had a great time and I even won a prize. I’m just sorry this post has taken me so long to get around to writing. Maybe I’ll be quicker off the mark next year!