Archive for the ‘technology’ Category

Build your own fully functional powered armed exoskeleton in one day, in a cave

Thursday, April 24th, 2008

I don’t mind suspending my disbelief for a good movie, and I’m sure Iron Man won’t disappoint. But come on – are the filmmakers seriously asking me to believe that a single man designed and built a fully functional, armed, armoured, self-supporting, powered exoskeletal suit – starting with nothing but some molten iron and a few wires – while locked in a cave – in under 24 hours?

I bet it took the props department a month, or more, to build even a non-functional wearer-supported unit out of plastic. I’m all for suspending disbelief in films, and I love exoskeletons, but come on.

So, who’s gonna lend me $60m

Friday, March 14th, 2008

The Gulfstream G650 has been announced.

Check out their fast-loading flash presentation or the still-incomplete wikipedia page – almost 13,000km range. Sweet.

So, who’s gonna be the lucky donor? First come first serve!

Farewell, XServe RAID, I never bought thee

Wednesday, February 20th, 2008

Damn! Apple’s canned the XServe RAID. I’d always wanted one of them, but could never quite afford it. It’s been looking a little long in the tooth lately, but I’d hoped they would ship an updated one with iSCSI and ZFS support to replace it .. Guess not.

Sayonara, XServe RAID :’(

XServe RAID

StrokeDB

Tuesday, February 12th, 2008

Another competitor to the exciting CouchDB project has emerged – and this time it’s in pure Ruby, not god damn Erlang, so it’s very interesting to me. Check it out here.

By the way, another project I’ve talked about before, ThingFish, has been through countless revisions and code growth – there’s not a day that goes by when I’m not treated to 50 or so changed files in response to my svn up. But the focus of the project seems to have changed from being a document-centric database to being some kind of network file store. None of it works, as far as I can tell, and I have no idea what they are doing.. Thingfish developers: what on earth is your project for?

Anyway, exciting times for this class of database, which I strongly believe is the future of large-scale web apps.

Switching to PostgreSQL

Thursday, February 7th, 2008

I have decided to move my development efforts from MySQL to PostgreSQL. Why? There’s a number of reasons, but there’s one main reason:

Schemas.

The concept of the schema is pretty unknown in the MySQL world. I admit I’d pretty much forgotten they existed even though I’ve learnt about them in the past setting up other databases (MS SQL Server – actually a pretty good product). Anyway, in MySQL a schema is nothing but the structure of your database. In PostgreSQL, a schema is a powerful feature for creating multiple “views” into the same database, but with ability to share between them.

Here’s an example. Say you have two applications, which you want to share a Users table but still have their own tables for “local” settings. Here are your options on MySQL:

  1. Put both applications into the same database, mixing the tables in with each other, perhaps with different prefixes for the tables, and overriding in the case of Users. Make Users a giant catch-all table with preferences for both apps, with a namespace for those fields inside the table. Pros: easy, can join into the shared table. Cons: Security is poor (I want to grant on a per-database level, not per-table), ugly as hell.
  2. Put each application inside its own database and make a third database for shared tables. Set your app to normally look inside its own database, and connect to the shared database when it needs to access the Users table. Pros: Better security compartmentalisation. Better looking, more intuitively named tables. Possibility of easier scaling since you can host the DBs on different machines. Cons: Loss of ability to join into the shared tables without nasty hacks. Constrains the kind of lookups you can do without severe performance penalties. More complex, loss of a single authorative logfile.
  3. Like number 2 but replicating the shared tables into and out of both apps by any of a number of means. Pros: solves the problem nicely. Cons: Complex, nasty solution which seems to be asking for trouble.

For the record, I’ve tried all three. I’d settled on number 2 as the better of three evils.

Here’s what you would do on PostgreSQL:

Create a single database with 3 users and three schemas. Name the Users App1, App2 and Shared, and the Schemas likewise, granting access to the matching users. Create the shared tables in the Shared schema, and the App1 and App2 tables in their schemas. Note that as far as the Schemas are concerned, they are in their own little world – no namespace conflicts.

Now set App1 and App2’s search paths to read App1/App2,Shared. There you go – as far as App1 and App2 is concerned, the table is right there – no complexity required. Set your app to use the appropriate schema and you’re done. It’s like editing your path in unix.

This might seem like overkill for such a small issue – but actually I’ve got a number of shared tables and more apps than that. The ability to use Schemas to solve all my problems here is a godsend, one that I wish I’d thought of earlier.

PostgreSQL has some other nice features as well, such as TableSpaces, which allows easy distribution of its storage by table onto different disks: you might want to put your ultra-high-activity Users table on the fast but expensive and small SCSI disk, for example, and the much larger but lover volume CatPictures table on a big, cheap SATA drive. There’s support for millisecond timestamps – MySQL, unbelievably, doesn’t go beyond 1 second accuracy. I’ve mentioned the much more strict SQL syntax requirements below – it’s taken me hours to clean up a lot of the junk MySQL happily allowed me to store (although I’m not going to claim it wasn’t my own fault; it was). And the new native data type of UUID makes me very happy, since I’ve come to believe that basically everything in a database of any important should have a UUID (synchronising two databases on different continents primary keyed on an integer = nightmare, keyed on a UUID = doable). And the backup facilities are far improved – it can easily write out full transaction logs while live, allowing full recoverability – something I’d been pretty worried about with MySQL. And its user rights system seems much more intuitive than MySQL’s.

I’d resisted PgSQL for quite some time, but one by one those reasons have disappeared. For one, it always had a reputation for being slow – now pretty thoroughly disproved. It seemed quite alien and unfamiliar, and I had trouble even getting it running the last time I tried it. Well, either I’ve become more knowledgeable or it’s easier to install, because I had no problems at all this time. And I worried that I didn’t know how to configure it properly – I discarded this reason upon realising I don’t really know jack shit about configuring MySQL properly either, and MySQL has hundreds of opaque options I know next to nothing about. In fact, I’ve had more trouble with MySQL! Even now, I can’t seem to force the MySQL on my local machine here to reliably use UTF8 as its default language in all situations.

I definitely won’t be deleting MySQL or anything like that. MySQL works fine for this blog and a few others. My MediaWiki is installed on it, plus a number of other apps use it. I’m of the “if it ain’t broke, don’t fix it” school when it comes to things like this so I’m just going to run them concurrently for the time being. I have nothing against MySQL, it’s served me extremely well for years – but the Schemas feature was the straw that broke the camel’s back.

I still don’t know for sure if I’ll stick with it – a horrible problem may well emerge, but one thing is for sure: I’ll keep all my data in a portable format from now on. MySQL is extremely permissive (or, dare I say, “lax”) with its enforcement of SQL syntax requirements and 90% of the time it’s taken to migrate has been in ad hoc repairs to tables and data to get them to conform. Now that’s done, I’m going to keep it done, and it’s easy to move back to MySQL at any time should the need arise. A bit of subtle vendor lock-in by MySQL, or simply making it “easier” for developers? Well, my thoughts on violating the standards to make it “easier” are pretty well known (see: any previous rant about Internet Explorer) so I’ll stick with the standards every time.

In conclusion: if you have the time, need and inclination I’d recommend giving PgSQL 8.3 a try.

TrueCrypt 5 for OSX

Thursday, February 7th, 2008

Hot on the heels of the port OSXCrypt, TrueCrypt finally comes out with their 5.0 release – complete with Mac GUI. After a long, long time with nothing, suddenly the mac has an embarrassment of riches when it comes to encryption.

Anyone concerned with security and privacy should never let their data leave their house unencrypted, and suddenly we have two great options native on the mac. Check out TC5’s screenshots, and download here. Note that if you do download it, you’ll need to rename the resulting file from .dmg.bz2 to just .dmg due to a misconfigured web server on their end – a common problem, unfortunately, but forgivable since this is their first mac release.

My hope now is that the OSXCrypt team don’t give up with their project – their goal of creating a free general “platform” for encryption on OSX is very interesting and I’d hate to see it cut off just like that. Furthermore, their approach (native kernel module) promises more flexibility and performance than a MacFUSE implementation like TC’s can deliver. For example, it seems that an EFI plugin – allowing full-disk encryption – would be easier with a proper kernel module.

Anyway, the last month has seen a great leap in privacy and security on the mac. Let’s hope it continues!

UPDATE: In case there’s anyone who doesn’t understand why anyone would want to maintain a plausible-deniability encryption regime for their sensitive date, just read this current Slashdot Thread: U.S. Confiscating Data at the Border.

I wonder how the advent of coilguns will affect firearms bans

Wednesday, January 30th, 2008

After looking at a video of a homemade coilgun powered by 8 AA batteries shooting through 2 layers of cardboard, it made me wonder if and when countries like Australia and Japan, which enforce extremely strict firearms bans, will try to ban them, and how they could possibly hope to enforce that ban in the face of easy home construction of such weapons.

As anyone who’s thought about it will know, building an actual working firearm is a pretty difficult thing to do. Like building a clockwork watch, all pieces need to fit together with a high degree of precision – a job requiring advanced machine shop skills and tools. The barrel of a gun is impossible to construct in a DIY assemble-the-pieces fashion and must be forged or extruded from molten steel. And the requirement for ammunition is another set of problems – precisely machined packages with explosive components, all the ingredients for which are tightly controlled. Yup, not too many people going to be building their own guns, not without anyone noticing.

But none of these constraints exist with coilguns. There’s no requirement for a barrel to withstand the high physical forces produced by an explosive propellant – the barrel on this one is made of fricking nylon. There’s less requirement for mechanical precision, or for a machined frame to hold it all exactly so. Sure, everything needs to be laid out fairly precisely and held in place tightly. But it’s more akin to building an electronic watch than a mechanical one.

I can’t deny that right now, anyway, a homemade coilgun is far less dangerous than a proper handgun. Battery, capacitor, and efficiency limitations provide an upper limit on the amount of energy one can realistically expect to put into a projectile. For comparison, the muzzle energy of a normal gun is usually around 350J – ie, the bullet leaves the gun with 350J of kinetic energy. The muzzle energy of the gun in the video looks more like 5-10J to me, comparable to an airgun, although the specs state it has 219J of source energy – less than 5% efficiency. But efficiency goes nowhere but up, and it already looks fairly dangerous to me. Airguns, by the way, are also completely banned in Australia – this homemade coilgun would already be an illegal weapon here.

But how can you possibly stop people building them? Unlike conventional arms, with all the requirements for machining, explosive propellants, and custom-molded metal, everything needed for the coilgun in the video is a common electronics component. You can’t ban capacitors and solenoids, it would be ridiculous to even try.

I hope you weren’t waiting for a conclusion, because I don’t have one! But it promises to be an interesting development to watch.

Here’s a Youtube video of the EM-15. Note the construction from sheet metal and ultra-common electronics. There’s nothing I see in this gun that you could come remotely close to banning, or even restricting.

Sup updated to 0.4.0

Friday, January 25th, 2008

Sup, the really cool ruby pine/elm/mutt replacement, has been updated to 0.4.0 and looking sweet as. Mailing list is friendly and active. Clone from git for the latest and greatest.

MacWorld roundup

Thursday, January 17th, 2008

Some thoughts on the new shit that’s gone down at MWSF2008.

MacBook Air

Obviously star of the show. The best mac for portability yet, edging tantalisingly close to a full computer one would simply take with you where e’er you might go. At 1.36KG, it’s getting light enough that one might simply throw it in the messenger bag as a default thing to do, like wearing a watch. Hell, I’ve carried books heavier than that to Starbucks in Shinjuku to read.

The MBA, and its implied usage scenario, does raise some questions, however:

  • Will we see better account synchronisation between an MBA and one’s “main” computer, that doesn’t involve .Mac? Is there a “home server” coming?
  • Is there a dock coming? I don’t want to mess around with wires. I want to just put the thing in a dock, iPod-style, and know that it will be charged when I go to get it later

Some commentators have voiced concerns about various aspects of the MBA:

  • Lack of replaceable battery: a complete non-issue for me. The life of a modern li-ion battery is generally within the relevant lifespan of a product anyway – and even if it’s not, there’s a replacement service. A reasonable tradeoff IMO
  • Still larger than 12″ PowerBook: This is a valid point, but to me a 12″ screen is almost unusable in this day and age anyway. Again, a good tradeoff
  • Lack of discrete graphics card: The MBA includes the GMA X3100, which is a whole lot better than the GMA950 on the original MB. You won’t be using Maya or playing Crysis but considering the form factor, this is fine.
  • Lack of ports: Again, if you’re complaining about this, you’re not in the target market. Bluetooth keyboards, mice and headsets are readily available, wireless access to disks is easy and fast (with modern hardware) and USB hubs are cheap and reliable. I don’t see the problem. The only surprising and possibly negative omission, to me, is a firewire port.
  • 2GB main memory cap: This is a bit of an issue, I agree, but probably a sensible decision at launch. I’d expect to see this bumped up quickly or a BTO option for 4GB to be made available in the short term. Still, 2GB is still enough for most.

Anyway, a very compelling product and I want one despite the 2GB memory limit and 80G hard drive.

Time Capsule

Mostly overshadowed by the hype surrounding the MBA, this looks like a great product. A wireless 1TB shared disk, with Apple ease of use and quality, would solve a great number of Home Networking problem scenarios I’ve encountered. It’s 802.11n, so nice and fast – paired with an MBA you’ve basically got yourself a 1TB local disk within network range. Won’t suit the advanced users who want to route their home network over the public internet but for a great many home network scenarios, this is the bomb.

Microsoft Office 2008

Ridiculously late to the party but Office finally goes UB. Leave it to Microsoft to try to sabotage opposing platforms by use of the most predictable, lame trick in the book – but whatever, it’s here now. Apart from the much better speed (obviously), the new version is finally unicode-aware and recognises MacOSX spelling dictionary preferences. In other words, it’s nothing exciting at all – just Office working like it should have all along, nothing more.

I rarely use Office for anything other than data manipulation in Excel (damn you CSVs) but it’s nice to have around. And Word now launches faster, and is more responsive, than Pages …

VMWare Fusion

VMWare apparently showed a demo of Leopard Server running in a VM instance – 2 of them, in fact. This implies some kind of deal with Apple, since running an unhacked version of MacOSX on a machine, virtual or not, lacking Apple ROM is impossible – and I somehow doubt VMWare were running a hacked version of OSX, in public, at MacWorld.

Could VMWare have reached an agreement with Apple to license OSX for VM use? Big news if they have.

Crypto AG’s products – backdoored by the NSA for decades?

Friday, January 11th, 2008

Woah. Apparently, world famous – possible world number one – cryptography software provider Crypto AG has been secretly backdooring their products on behalf of the NSA and others for decades. Their software had customers in 130 countries – maybe not all governments, but certainly a lot of them. As the article speculates, that may be the greatest sting operation ever, at least in terms of pure quantity.

There is no such thing as cryptographically secure closed source software, it’s as simple as that. This incident drives that point home with about the greatest force imaginable.

Via Bruce Schneier, who perhaps wisely points out that the facts in this case are yet to be proved. Unfortunately, if history is any guide, it’s highly unlikely that they ever will be – or, indeed, that they even can be. With operations like this plausible deniability is the name of the game and I’ll eat my hat if the NSA ever allowed anything to be put on paper, reducing the incident forevermore to a conspiracy theory of hearsay, 30-year-old eyewitness accounts and mysterious coincidences.

Region locking makes me regret buying movies

Tuesday, January 8th, 2008

fuck this shit

Pissing around with DVD region locking makes me regret not just downloading the fucking movie. Or telling someone to pick me up a bootleg in HK. Seems I’ve got 3 more times to choose between my Japanese DVDs, my Australian DVDs, or my US DVDs.

Thanks, fuckers! Next time I’m thinking about buying a DVD, I’ll remember how I probably won’t be able to play it on my laptop anyway, and put it back on the shelf. I can play pretty much anything I’ve ever downloaded though – funny, that.

By the way, this is the Lord of the Rings Collector’s Edition, which was close to $60 (each) if I remember correctly? Or more? Unfortunately it’s the UK version, all three of them, and I don’t want to risk running out of region changes. So the $200 of worthless plastic goes back on the shelf, and I fire up BitTorrent, and let me tell you, my conscience is pretty fucking clear.

24C3 videos online

Monday, January 7th, 2008

More videos, this time from the 24th Chaos Communication Congress, or 24C3, conference in Berlin, Germany. Mirrors are going up and down but this one seems to be pretty reliable and fast.

There’s a single presentation about Ruby on Rails security but it’s an anomaly; most talks are about generalised hacking, security, privacy, the politics of all the above, and “hacker politics” in general. By “hacker politics” I simply mean the generalised politics of the techno-elite crowd – privacy, freedom of speech, computer and data rights, and survivalism.

There’s some good stuff there. Though I haven’t made my way through much of it yet, some initial recommendation are What is Terrorism and What Can We Do to Counter The Spies – both harrowing tales of government going badly wrong, guaranteed to inspire you to encrypt everything on, in and out of your computer, use only anonymous prepaid cell phones, burn your garbage, never ever use your real name online or over any radio transmission, and never post anything important to an untrusted web server using an ISP account in your name.

I’ll post further recommendations as I work my way through.

Beginning of the end of ageing?

Saturday, December 1st, 2007

This WIRED article describes the initial success, on mice, of a treatment for skin cells which genetically reprograms the cells to, at least partially, “act younger”.

The article is couched in unconclusive weasel words – that this “may” lead to human remedies, that it “could” lend support to Aubrey De Grey’s theories on combating aging which I thought I’d talked about here before but now can’t find it. Anyway, that’s all bullshit – when the article pointlessly asks “Are Humans Next?” – of course they are. Humans are willing to go to almost any length and pay any price to look younger, and the anti-senescence market will be enormous. Hell, I bet that they’d have no difficulty at all signing up 500 desperate test subjects just based upon the mouse success.

Aubrey de Grey’s theories are compelling and this new experiment’s success indeed lends them credibility. Hopefully this spurs increased urgency of investment and research into the area.

View de Grey’s lectures on the subject here – I recommend the speech from TED Global here.

UPDATE: Check out this chart of a “Network Model of Biochemical and Physiological Interactions in Human Senescence” to crush any momentary optimism you may have experienced upon hearing the above news.

Causes of Aging Flowchart

Then again .. is it really all that much more complicated that what IIS does every time it serves a web request?

IIS Syscall Graph

Sup

Friday, October 12th, 2007

As discovered by Wincent the ruby mail console Sup is looking great. Ah, the memories .. it’s just like running elm (or pine) back in 1993! Except, way better, and it can do mbox over remote. I can see myself coming to love this.

Just a couple of small problems – the lack of unicode, and the fact that it stores your ssh passwords in plaintext in ~/.sup/sources.yaml.

Still, glorious days and as of now the most 1337 way to check your mail, bar none.

I may as well use this entry to also announce that I’m retiring my gmail accounts – and the advent of cool tools like this to access mbox-based mail only speeds my wish to migrate. I no longer trust gmail, and prefer to host my own mail servers.

My old gmail address will still work indefinitely, but replies may come from a different domain. I might also change my DNS over in the next few days so I can add SPF records, there might be some disruption but only temporarily.

couchdb: switching to experimental branch

Friday, October 12th, 2007

Current CouchDB development is progressing in an experimental branch named “interface-changes”, and it’s not in trunk yet. As the name implies, the interface is changing and it’s very useful.

To switch your svn checkout to this branch, do this:

svn sw http://couchdb.googlecode.com/svn/branches/interfacechanges/
./bootstrap && ./configure --prefix=/opt/local && make clean && make && sudo make install

You can then have a look at the “documentation” to see some of the new changes.

While still alpha, it’s still a very interesting project. The prospect of getting something like Map/Reduce capability natively in a database is almost too exciting for words, if you’re a data nerd like me. Well, figuratively speaking, Map’s there, but Reduce isn’t yet – still, it’s great to get your hands on what seems sure to become a Big Thing so early. Oh, and in case you were wondering, COUCH stands for “Cluster of Unreliable Commodity Hardware”.

Imagine GFS and Map/Reduce, baked into a single databse, with JSON in/out, pluggable query language, and native REST .. what’s not to love?

Laika’s ThingFish is a Ruby-based competitor. You might think I’d be more interested in that, since it’s in my favourite language! Not so. The very thought of a Database programmed in Ruby actually gives me an instant waking nightmare along the lines of running through treacle, gulliver in lilliputia, 80286SXs with 12MB of RAM, etc. And using mongrel server for a database!

UPDATE: it’s been merged to trunk, so just forget that interface-changes stuff.

ZFS Read/Write Developer Preview 1.1 for Leopard

Friday, October 5th, 2007

Apple has apparently released a developer preview of Read/Write ZFS for Leopard. Excellent news.

But I’m still disappointed we won’t see R/W capability in the 1.5.0 release. Typically, it’s the first release DVD that one uses for installations – having ZFS unavailable in the DVD will preclude formatting the boot volume as ZFS without resorting to prior disk-swapping tricks from a working install. Assuming that booting from ZFS is supported in a future point release, which seems reasonable, we’ll have to wait for an updated boot DVD before we can cast HFS+ out for good.

81 Windows Updates

Wednesday, September 26th, 2007

A mere 81 Updates

Decided to check out VMWare Fusion today, in the lame hope it supports half-life. Went for a new install of XP “Free Edition” and did a double-take at the 81 updates it wanted to install! And that was after it had already rebooted once after some earlier, unknown number of updates. Ridiculous, but at least it can do them all together.

In other update news, our beloved WordPress has moved to 2.3, so I’ve dutifully updated that, too. The tagging system is very welcome indeed – but it seems we now have tags AND categories. Which one should I use? Regardless, I relish the opportunity to henceforth pollute the internet with gratuitous slashdot-style joke tags on everything I write.

There was some controversy about the new WP update system, sending identifying information to wordpress.org, but having examined the data sent it seems reasonable to me. If you don’t trust WP.org, after all, maybe you shouldn’t be running WP. Oh, wait …

i hat fasbok

Wednesday, August 15th, 2007

i hat fasbok!

$100,000 genome

Monday, August 6th, 2007

Did you know that Solexa will sequence your entire genome for $100k? Just 1x coverage for now, but 30x for the same price is “soon” (think oversampling, like with CDs – the more passes, exponentially the less errors).

Just a few years ago sequencing the human genome was a 10-year worldwide effort; the cost incalculable. Now you can get it done for $100k – how long before it’s $100?

Useless for now, of course – our main problem is no longer extracting the data, but understanding it. But’s it’s shocking how fast things move.

$100k! I can’t fucking believe it.

Categories out, Tags in

Wednesday, June 13th, 2007

Probably the single best concept to arise from the Web 2.0 “movement” is the notion of tagging, an additive, ad hoc method of associating metadata with any kind of object. It’s a really important new paradigm for how we think about data – probably the most important in 5 years, I’d say. To me tagging *is* web 2.0, not this stupid AJAX shit.

Anyway. Having reached some sort of realisation that I’m not going to have the time or energy to set up any other blogs anytime soon, I decided that the least I could do is start tagging my posts here properly. You’ll notice a greatly expanded list of tags after each post, and a correspondingly larger “categories” list down the side. I actually dislike WP’s choice of the word “categories” in this case – to me, categories are a much more limited concept. But whatever. The important thing is to have a much larger variety of more specific tags, labels, categories, whatever you want to call them, to more accurate reflect the content of a post.

It’s not like I have thousands of posts here or anything. But it almost seems criminal to me, these days, to publish badly labelled data on the net. For ease of use, for search engine friendliness, for a higher quality global information canon – tags!

Next step is the tag cloud in the sidebar! Just kidding, I’m not that Web 2.0…