This is a response to this blog post The GH engineers correctly identify the MySQL dependency as a problem. It’s such an easy one to remove, though! The MySQL database is serving as a simple map of URLs to fileservers. We can do that with cryptography instead. In that Lua call, instead of doing a database query, take an md5sum of the request. Compare the result to a static table you hardcode into…
I wrote photobomb about a year ago to scratch an itch. I wanted to share photos with my friends and family, but was sick of handing Facebook all the control. When Facebook inevitably becomes as painfully uncool as Myspace, I don’t want all my memories to be trapped there. What I needed was something that was really easy to use. That had to be true for both the people uploading images and the…
Coffeescript 1.9.0 contains a backwards incompatible change. Changed strategy for the generation of internal compiler variable names. Note that this means that @example function parameters are no longer available as naked example variables within the function body. I know this, because it broke my production code. I love coffee-script, I think it’s great. I don’t really care one way or the other…
Google is an amazing company. They create incredible technology, often in a very open way. They are not only creating great tools now, but they’re pushing the frontiers of humanity. Self driving cars, for example, are a transormative technology that will completely change our cities and how we think about transportation. They also have the best search engine product on the market. It makes it…
This is a response to the Strongloop post on nodeJS deployment. SLC looks like a really interesting tool. Bear in mind that I haven’t dug through the code yet. strong-build seems well thought out. The kinds of things it deals with are problems that bite you really hard at the times you can least afford to be bitten. When writing Serious Business applications you simply cannot let a third party…
The internet is a dangerous place. We’ve known for years about MITM , XSS , injection , hijacking , etc etc. These are well understood threats. The fact that so many applications are still vulnerable to them despite them being well known is the subject for another post. The security and privacy landscape of the internet has recently bucked pretty dramatically underneath us. I have been concerned…
I’ve been kicking around a new project lately, with valuable input from @sgentle . Under the Radar (UTR) is a chat application designed with user privacy in mind. Like many of us, I’ve been disturbed by the recent developments in global surveillance. In short, I respect the need for law enforcement to be able to surveil humans in order to fight crime. I think, however, that the judiciary is a…
There are a number of neat things that the architecture and implementation enable. It is trivial for a user to host their own ‘backend’ for UTR. All they need do is get a CouchDB instance. There are several free providers and setting up your own is simple. This is the case both for Identities and Conversations. The reference client implementation will aim to make it simple to use third-party…
These are the architectural tenets of UTR: UTR assumes the platform on which it is being executed is trusted. All messages are encrypted on the client. This encryption is maintained at-rest and in transit. Messages can be safely stored by an intermediary in order to enable asynchronous delivery and multi-device synchronisation. It is not obvious to an attacker who is corresponding with whom.…
This article discusses some of the threats considered and the tradeoffs made around them. Conversations do not provide forward secrecy. If a Secret becomes known to an attacker, all contents of that Conversation are visible to them. Identities should be protected against tampering. This can be done by using design documents to render the public key document read-only after it is first written. If…
These are some details about the implementation of Under the Radar. These follow on from the architectural details. UTR utilises CouchDB as its server and PouchDB for its client storage. CouchDB’s replication protocol forms the transport layer. UTR is implemented as a collection of modules strung together with browserify. This aids auditability by keeping each component as small and insular as…
There is some great prior art in this space, but none of them scratch my itch satisfactorily. TextSecure is an example of great cryptography and you should definitely have it installed, but its identity mechanism frustrates me. The primary identifier for users is their mobile phone number. Practically, this is a pain if you need to switch numbers. If you travel overseas frequently this is a common…
“I’ve always kind of hacked my code together and had the attitude like testing was for chumps.” That was posted on Reddit the other day by someone, but it could easily have come out of my mouth a few years ago. This post is written for anyone who identifies with that statement and is wondering why they should bother with TDD. My thesis is that you’re already doing TDD, you just don’t realise it.…
On the server I mostly work in node.js, but I’ve been increasingly interested in Go recently. There’s plenty to recommend both platforms, but the things attracting me to Go are it’s ease of deployment and simplicity of ecosystem, among others. Recently, I needed a utility to interact with the Cloudflare API. A simple dynamic DNS client that would set a CNAME record and keep it update when my ISP…
After battling the broken comment submission on the blog for a while, only to then be told that registrations were down, this is a reply to this post about the NBN Your parents are probably getting those speeds because that’s the plan they’ve chosen. You admit you have no idea what plan they’re on, nor even what technology their product is using. Tip, if it was installed 12 months ago, it’s FTTP.…
In reply to this tweet by @balupton . I’m not a Mongo guy. Some of it’s things seem neat, but I haven’t spent enough time with it to be able to recommend it as a Good Thing. I have spent a lot of time making fun of its ability to lose data. If I want a document store, I reach for CouchDB. That said, I think this is less of a Mongo thing and more of a document store thing. The same criticism could…
I am super excited about the new HUD coming to Unity. http://www.markshuttleworth.com/archives/939 Quicksilver on the Mac is great, and this new HUD looks like a Quicksilver that also works inside application menus . That is flat-out fantastic and it may well pull me away from OSX. While I'm super excited about it, I think the thing that makes it so powerful is going to be both…
It's very early days in the case against Megaupload, and the Americans haven't fully revealed their strategy as yet. There is one part of their rhetoric that really worries me, however. The full text of the indictment is available here . The argument is that Megaupload are not eligible for the safe harbour provisions in the DMCA because they knew about infringing content, yet did not remove it.…
Note from the future - 4th March 2014 This is a super dumb way to do this. Your git repo will eventually get completely out of hand. jgit will barf all over everything. Things will generally be terrible. Probably use tarsnap instead. End note. This will give you backups of all your mysql data, nicely versioned with git, securely stored in S3. There are plenty of guides out there on how git, and S3…
There are a few guides to this floating around, but Amazon must have changed a few things about their default micro instances as all the ones I found are out of date. Even the instructions built into AWS about how to connect to your instance are out of date! I assume you've got your instance set up in AWS, if not, go do that and then come back. There's plenty of info out there. Ssh into your…
I run Kubuntu Jaunty with KDE4 on my netbook. BasKet wasn't doing it for me so I tried to get Tomboy happening. Problem was, it would abort with a SIGSEGV and complain about errors in mono any time I tried to run it. I couldn't find anything out there that suggested a workaround, so I set about building a newer version than was in the repos from source. Couldn't get that happening, but in my…
::EDIT:: As mentioned in some comments below, these devices are now supported out of the box on newer versions of Ubuntu. After much buggering about, I finally got this &#$# Huawei e169 working. This method requires no mucking around in the kernel, just the usb_modeswitch utility and wvdial. For reference, this was a unit supplied from Optus in Australia for their Optus Wireless Broadband…
It's really, really paining me to watch the beating that the openmoko project is currently taking. I've been majorly into this idea for some time now, about half way through '07. FOSS is a brilliant thing, and it's only a matter of time before the telecommunications industry wakes up to that. After all, Linux sprouted from Unix which sprouted from a telco. Sadly, it looks like the openmoko team…
Trent Reznor recently released the latest Nine Inch Nails album in a really, really interesting way. The confluence of marketing-geekery and copyleft-geekery that it represents tickled my fancy. While his decision to release several SKUs at various price-points is the best new-wave digital distribution technique I've seen to date, it's his choice to license the work under a version of the Creative…
When Gutsy came out recently I decided to make the switch from Gnome to KDE. Overall I like it, but there are some things that are driving me nuts. One of them is that there seems to be no way to change the default action of the power button on my laptop. This was easy to change in Gnome, but requires more trickery in KDE. After a while of searching around in control panels and on Google, it…
I've been lax in posting about it, but a few weeks ago I finally bought my first motorbike. I've been moving towards this for years, but it hasn't come together, mainly for reasons of money. I finally pulled the trigger on a Sachs Madass 125. It's a little bike, but it has a few main attributes. It's cheap. $3500 on road. It's light, so it's dead easy to ride and manouver. The build quality is…
My technolust is raging for the Neo1973 from FIC and OpenMoko. It's a Linux based smartphone with a retardedly high resolution screen, coming out in October. The developer version is already out (this isn't vapourware), but it lacks a few features like WiFi. I'm just really, really excited for a completely open phone. I'm currently using a Sony Ericsson k800i, which is a great phone, but it's…
I was in my local newsagent today buying a bus ticket when I spied this little fellow peering out at me from behind the counter. Tux has been popping up in an awful lot of places that are completely unrelated to Linux lately. I wonder if there's an undercover geek hidden away at Woman's Day somewhere?
Clare and I played golf yesterday, which was fancy, but is not the point of this story. The point of the story is that I hit a 200m drive. (There was a bit of an elevation advantage, but it wasn't massive). It went fairly straight, sliced to the right a bit as my shots are wont to do and ended up on the fringe of the fairway about 50 metres from the hole. The fact that I then completely…
I just got Ubuntu installed on Clare's laptop. It only has 256meg RAM that's shared with the video card so it was running like a pig even with XP. Honestly, who manufactures a system with only 256meg of RAM? It was a battle because the Ubuntu and Kubuntu livecds require at least 256 to run, and they were both failing. Xubuntu started up, but ran like a dog. Any of the three versions will run on…
And I'm really loving it. I spend most of my non-work computer time using Linux, I read slashdot and I get the sudo jokes on xkcd. It's good to be part of yet another geek subculture. Anyway, onto the nuts and bolts of it. I started using Vista on my laptop a while ago and, while I liked it for a little while, the performance and the nagging started giving me the shits. A few weeks before Uncle…
This is a very simple dish but damn tasty. Amply serves two in these quantities. Ingredients: Mussels. Dunno how many, depends how hungry you are I suppose. 2x tins of crushed tomatoes 4-6 good sized cloves of garlic 1 medium sized white onion 1 large red chilli, seeds removed 1 handful of parsley 1 handful of basil About half a bottle of white wine 30 grams of butter Chop your garlic, onion and…
Sweet chilli sauce stolen from Zarah Maria . This stuff is tasty. It has a different flavour from the sauce you'd buy in a bottle, but that's not a bad thing. It's a much more complex flavour that also tastes fresher. I can't quite describe the "fresher" thing, it just does. Take: 10 cloves of garlic, peeled 4 large red chilies, stems and seeds removed 3 thumbs of fresh ginger, peeled and roughly…
Thanks to the largesse of a friend dbe.cc is on new (free) hosting, and it beats the crap out of my old hosting, too. It's a good thing. I'm not going to bother moving anything over from the old site since a) it's been nuked and b) there was bugger all there anyway. In terms of news, spent the entirety of last night cooking which was kinda cool. The other day I got a craving for the sweet chilli…
I got this recipe from here , however I've fleshed it out a bit and added a bit of advice. This stuff is absolutely incredible with eggs. It goes with a bunch of other stuff too, but once you've had an omlette with chilli jam on the side you'll be a different person. Ingredients: 1 kg tomatoes, blanched skinned and chopped 500 g sugar 3 tablespoons lemon juice 1/3 cup white wine vinegar 6-10…
When Gutsy came out recently I decided to make the switch from Gnome to KDE. Overall I like it, but there are some things that are driving me nuts. One of them is that there seems to be no way to change the default action of the power button on my laptop. This was easy to change in Gnome, but requires more trickery in KDE. After a while of searching around in control panels and on Google, it…
Despite much retardedry I did finally get my IR LED array up and happening. The fiasco with my pot wiring wasn't the last of it either. I also realised that the power supply I had been planning on using (a Nokia phone charger) wasn't actually 12v, but 9v. I also realised that I couldn't find one. I found a proper 12v source, however and used that.