Getting more structured with my DVCS tests

Development, Open Source 16 Comments

Ok, so I’ve posted my initial feelings about tinkering with Mercurial and Git, and that seems to have generated some interest. It’s time to get a bit more formal about how I’m going to evaluate them against each other, to decide which one I like to use most in real, practical scenarios. So, I decided to come up with a list of use cases for the things that I typically have to deal with when managing the repositories for a software project (open source and otherwise), so that I can methodically test them out and see how I feel about each system. I’ve tried to deliberately include use cases for things that you can’treally do on a centralised system, but that I’d want to make use of, as well as the usual nonsense that happens day-to-day on a typical project ;)

I’ve presented my work-in-progress list below, feel free to suggest more use cases I can test. I really want to see what these things are like in practice in the kinds of situations I encounter in real projects, without actually risking a real project in the process! Like a backup / restore strategy, it’s no good doing it for the first time when the sh*t has already hit the fan.

Oh, and for fun, allegedly Git is MacGyver and Mercurial is James Bond . :D


This list will be periodically updated as I think of new things, and as other things are suggested by commenters.

Due to the nature of a DVCS, all these use cases must be tested both in isolation, and  after pushing those changes to another potentially ’superset’ repository.

  1. General
    1. Commit a few changes to local repository ‘A’ but don’t push to central yet. Push a number of different changes to the central repository from a different repository ‘B’. Then, pull ‘B’s changes from the central repos to local repository ‘A’  to bring it up to date, again without pushing A’s outstanding changes yet. This is equivalent to doing an ’svn update’ while you have local uncommitted changes in Subversion, but while using the local commit features of the DVCS. How does this work in practice? [Suggested by Arseny Kapoulkine]
  2. Branching
    1. Create a new public, official branch (stable branch)
    2. Create a new long-term feature branch which is intended for public consumption / collaboration
    3. Create lots of short-term development branches (or equivalent structures) intended for local consumption only
      1. What are the size overheads? (Git claims superiority here)
      2. Does this excessively clutter the public repository when pushed?
      3. Is there a better way of handling multiple local changesets which you may or may not decide to push individually, such as testing many patches (Mercurial queues seem very interesting, Git equivalent?)
      4. . Rename a branch? (optional)
  3. Merging
    1. Merge changes unidirectionally from one branch to another, without having to manually pick revisions. Make more changes in the source branch and repeat.
    2. Bidirectional merge – a feature branch which is not yet ready to be merged into the trunk wants to resynchronise from the trunk and continue branched development. Merge of this branch into the trunk must be tested later after further changes
  4. Tagging
    1. Create a tag against a specific branch; probably at the HEAD but look for the option to specify a revision
    2. Correct / modify / move a tag following a mistake or last-minute revision (pre-release) without having to make duplicate commits or other such spurious activity
  5. Firefighting
    1. Screw-up: developer commits change to trunk instead of stable branch. Merge / move it to the stable instead – change can be left in the trunk or can be removed for re-merging, so long as the procedure is clear.
    2. Screw-up: developer commits change to stable branch that is interface-breaking, must be removed and moved to the trunk. Must be removed from the stable branch and moved.
    3. Screw-up: Revert a single change from the repository, that is not at the HEAD
  6. External patch submission tests:
    1. Patch file from same branch, no conflicts
    2. Patch file from same branch, with conflicts
    3. Patch file generated on a different branch to the one we want to apply it to (include conflicts)
    4. Pull from third-party repository, entire branch
    5. Pull from third-party respository, specific changes
    6. Patch file generated from non-repository source copy
  7. Backup multiple work-in-progress changes on a local machine that are not ready for public consumption; approaches:
    1. Store a patch per local branch (this is how it’s done with SVN, but too much hassle if you use lightweight local branching, DVCSs can do better)
    2. Push to a backup repository on another machine across existing protocols – ssh, https, Samba share (Git can’t do the latter?)
    3. Push to a backup respository on a USB stick (Git can’t do this?)
  8. Binary files
    1. Revise a binary file over a few versions, test storage efficiency
    2. Binary file conflict resolution
  9. Conversion from Subversion
    1. Import retaining history
    2. Import multiple branches
    3. Import tags
  10. Integration
    1. Mailing list / RSS notifications of commits on official repository
    2. Bugtrackers
    3. CIA.vc et al?
    4. Good free & open source GUI clients for all platforms
    5. Line ending conversions between platforms
Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

Playing with Mercurial

Development, Open Source 31 Comments

I’ve been interested in DVCS for a while; having done my fair share of branch management, something which makes that process easier and more transparent is definitely very attractive. I particularly like the way a DVCS makes it easier for people to collaborate in pockets of their own, away from the centralised environment, and track other repositories and keep their local mods up to date more easily – public-branch-on-demand if you will. However, I’m yet to be convinced by Git for everyday use. As noted, I love the idea, but Git comes across as – and this is an ironic thing for me to say – excessively geeky. At one time I might have believed there was no such thing as a plethora of geekery, but I like to think I’m a more rounded individual now ;)

Don’t get me wrong, I’m sure Git is technically excellent. But a number of things about it remind me of the somewhat stubborn purisms of  ‘old Linux’, such as:

  • The documentation is hugely daunting. Whenever anyone tried to convince me why Git is amazing, they point me at documentation that just makes me not want to touch it for anything important. The impression I get is akin to some Linux forums: – this thing is powerful, but it gives you plenty of rope to if not hang yourself, then to tie yourself in knots if you don’t know what you’re doing.
  • It requires a Unix back end, to the extent that you have to run it under Cygwin on Windows, and its rigid filesystem requirements mean it won’t work on FAT or Windows network drives. I get the impression there’s something rather aloof about the fact that the core team don’t consider it an issue that Git won’t run on native Windows environments. There are external projects working on that, but the fact that it’s not core is a concern, since I prefer all my 3 platforms to be supported equally.
  • The UIs still don’t seem very user-friendly, and most responses I see to the question of why that is boil down to “Git is too powerful to be captured in a GUI”. Sorry, but I don’t buy that – no system is too complex to be captured in a user-friendly tool, it just takes the will to do it, and like ‘old Linux’, there seems to be little will to make Git more approachable.

So, I’ve never had great vibes from Git, despite it’s doubtless technical merits. So, I decided to check out Mercurial instead – from what I read, Git is the fashionable DVCS that all the cool kids want to be seen using, but when it comes down to it Mercurial does exactly the same thing – except that it has native support for all platforms out of the box and TortoiseHg is looking pretty mature. I also read that it handles binary files better than Git too, since it does binary diffs everywhere. The documentation seemed much more approachable too, so I figured I’d have a play.

My first impressions are incredibly positive. The most impressive thing of all is that I imported a (relatively small- about 100 revisions) Subversion repository, with all the history intact, about 5 minutes after installing it, and was bouncing that across Linux and Windows immediately afterwards (haven’t tried OS X yet). TortoiseHg is instantly familiar, and despite the fact that the concepts are the same as Git, the presence of some familiarity, together with some distinctly less intimidating documentation, has me feeling far happier than the times I’ve dipped into the Git docs. Mercurial’s approachability is a positive contrast to Git’s Unix-purist, RTFM style I think. I know which I prefer so far.

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

S3 encrypted upload script, v2 (Python)

Internet, Linux, Tech 9 Comments

pythonOk, so I discovered a number of shortcomings in my recent attempt to sync a folder in one direction to Amazon S3 using encryption, the most important of which was that it wouldn’t resume a failed transfer efficiently, which in the case of large transfers wasn’t at all ideal (as I learned to be own cost – damn my 256k upload speed).

So, this is attempt number 2. I decided to completely rewrite the script in Python instead to give me some more flexibility, coupled with the availability of Boto, a nice Python library for accessing all the Amazon Web Services. Rather than rely on just local information, or even date/time stamps, I decided to use hashes to track whether files were different. Amazon already stores the MD5 of the file you upload to them and makes that available without downloading the file, but that’s no use when you encrypt your files before uploading them, because the MD5 is of the encrypted contents rather then the original; so unless you keep the encrypted copies around too, or encrypt the local files again every time just to check the match (expensive if you’re dealing with large files) you won’t be able to compare them – I think this is the reason why ’s3cmd sync’ currently doesn’t support encryption.

So, I decided to use S3’s ability to store custom metadata in keys, and stored the MD5 hash of the original file against the encrypted contents that I uploaded. That way, I can check the hashes against each other pretty quickly without having to re-encrypt the local files. If the hashes are different, I encrypt and upload. This approach trades a bit of preprocessing against avoiding uploads, so it’s likely to be more efficient on small groups of very large files rather than lots of small files – that’s how I use S3 for my backups of course. It also means I don’t have to worry about timestamp variations, it’s the content of the file that is the driver of whether it’s uploaded or not.

So, here’s the new version. It’s a bit more powerful than the last one – I’m calling gpg myself now so you have the choice between encrypting using public keys (more secure, and the default), or using symmetric encryption with a passphrase. You need to install Boto before you can run it, and it depends on Python 2.5 with hashlib installed. I’ve run it on both Linux and the Mac, it should work on Windows too provided you take the trouble to set up Python and GnuPG, but I haven’t tried; my Linux (apt) and OS X (macports) setups make these things quicker so being short of time I just went with that. Here’s the usage from –help:

Usage: s3putsecurefolder.py [options] source_folder target_bucket gpg_recipient_or_phrase

Options:
  -h, --help            show this help message and exit
  -n, --dry-run         Do not upload any files, just list actions
  -a ACCESS_KEY, --accesskey=ACCESS_KEY
                        AWS access key to use instead of relying on
                        environment variable AWS_ACCESS_KEY
  -s SECRET_KEY, --secretkey=SECRET_KEY
                        AWS secret key to use instead of relying on
                        environment variable AWS_ACCESS_KEY
  -c, --create          Create bucket if it does not already exist
  -v, --verbose         Verbose output
  -S, --symmetric       Instead of encrypting with a public key, encrypts
                        files using a symmetric cypher and the passphrase
                        given on the command-line.

Once again, no warranty is given, MIT license. If you see that I’ve done anything dumb, let me know :)

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

In space, everyone can hear you scream

Games, Personal 2 Comments

lolcat_scaredDead Space teaches you many things.

Firstly, that large abandoned space ships are not the place to be if you have frayed nerves. They creak and make random clanks. Lights don’t work properly. Automated systems kick in and scare the bejesus out of you. When things are quiet, think Alien. I’ve heard that it gets less creepy and more combative later on, but I’m 4 hours in and it’s still very much in suspense mode, barring one ‘boss fight’ with a ‘Brute’.

Secondly, that System Shock 2 and Bioshock, great though they were, were only the first two rungs on the audio design ladder. Dead Space has, hands down, the best game audio my lugholes have ever been blessed to experience. Hell, it’s better than most films. Engine rooms are deafening, broken machinery squeals, noises echo down the metal hallways, being periodically cut off by a broken door as it opens and closes. Creatures utter disturbingly inhuman shrieks. Music is contextual and seamless, building vast amounts of tension (damn those off-key violins!) and then scaring the crap out of you as it highlights an event like a creature running past a doorway with a staccato burst. And perhaps worse is when you first realise that Dead Space respects the physics of a vaccuum, i.e. you can’t hear anything barring a dull concussive thump when things hit your own suit or you fire a gun. When you’ve been relying on sound to alert you to enemies – regardless of the effect on your nerves it’s still a warning – it’s a shock when one sneaks up on you completely silently with the only sound being your labouring respirator.

The downside of such great audio is that I discovered it creeps out everyone else in the house too. My wife doesn’t generally like being in the room when I play it, but even when elsewhere she finds it unnerving if she can hear all the sounds. One of our cats also seems to be totally freaked out by it, even when upstairs (and with it turned down lower than usual) – my wife said he kept sitting bolt upright every time one of the ’scare’ noises happened (there was one particularly sudden blood-curdling scream while playing that put the willies up me too), and when I finished playing last night he kept running from one window in the house to the other looking into the darkness like he was sure there were monsters out there. If I’m not careful the RSPCA will have me on their books for feline mental trauma. Maybe I need to use headphones from now on!

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

s3putsecurefolder

Linux, Open Source, Tech, Web 4 Comments

Edit: this script is deprecated in favour of a rewritten version 2.

I use Amazon S3 to host large media files which I want cheap scalable bandwidth on, and for expandable offsite storage of important backups. I used to have some simple incremental tar scripts to do my offsite backups, but since I moved to Bacula, I’ve just established an alternative schedule and file set definition for my offsite backups, the critical subset of data I couldn’t possibly stand to lose (like company documents). Since I was refreshing all my procedures and tarring the Bacula volumes no longer made any sense, I rewrote my script for putting the resulting backup data on S3.

The prerequisite in all cases is s3cmd, which is pretty mature now and available on most distros (“apt-get install s3cmd” and you’re done on Ubuntu). s3cmd actually has a ’sync’ command, but firstly that tries to sync in both directions, which I don’t want (I know in theory it should never overwrite any local version so long as I don’t update the remote copies from somewhere else, but I’m paranoid when it comes to my backups and prefer to be explicit), and secondly it obviously has to connect to S3 to determine the sync status, wheras I always know whether I need to upload new files just from my local environment (and S3 charges per request – not much, but it’s not zero and it’s the principle of the thing). So, I decided not to use the ’sync’ command, and just determine locally what new files I needed to ‘put’ on the server.

Secondly, encryption is a must, since some of the data is sensitive and I don’t want to trust anyone else with it. I used to manually GPG my tarballs before uploading them, but I noticed that s3cmd supports an encryption option too. It just uses GPG anyway, just in symmetric form rather than asymmetric like my version did (translation: you use the same passphrase for encryption and decryption; a little less secure than using generated public/private keys but still ok so long as you pick a good passphrase and look after it). The default symmetric algorithm in gpg is CAST5 which seems pretty good, although you can change it if you want by editing your s3cmd config file. So, I decided to give it a try – after you configure s3cmd to use encryption, it actually automatically decrypts too when you pull the data back (symmetric key, remember) – being distrustful, I pulled the data back from S3 in a different environment and examined it, and it was indeed complete gibberish, but decipherable with the passphrase. Good stuff.

So, here’s my little script which will upload the encrypted contents of a folder to S3 – just the contents that have been added or updated since the last sync of that folder, and will encrypt them by default. I just run this on a cron schedule now and it seems to work fine. License is MIT, use at your own risk, no warranty is given that it won’t destroy every file on your machine or eat your children. Usage is like this:

s3putsecurefolder /my/source/folder my.s3.bucket

Edit: it was brought to my attention that Amazon have made it easier to create pseudo-folder structures in S3 buckets since I last tried to do it (I swear it used to throw out keys with forward slashes in them, I had to mangle my names last time I did this), so I’ve updated the script to allow nested folders too.

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

Apple owns the US premium retail PC market

OS X, Tech, hardware 18 Comments

apple_logoThis was pretty interesting; CNet reports that according to NPD stats, Apple has 91% of the retail PC sales in the US above $1,000.

Now, let’s add the caveats here:

  • That’s retail PCs. Of course, loads of people build their (desktop) PCs from OEM parts rather than buying a prebuilt machine, so it’s safe to say that these sales are almost all going to be laptops, where Apple particularly shines.
  • Also, these are primarily going to be consumer purchases, because businesses tend to buy in bulk and not at retail (excluding the smaller businesses) – again Apple is far more popular in the consumer space than in business (barring the iPhone).
  • The above $1,000 range is a minority of all sales; a majority of people buy cheap rubbish ;)
  • This is only the US, where Apple seems more popular

So, the headline isn’t quite as accurate in its crushing assessment as the wholesome reality, but even so it’s pretty impressive. When it comes to laptops, I always buy quality because I’ve been disappointed many times by machines that looked good on paper but turned out to be poorly constructed, poorly designed, and had all kinds of heat / battery life / general robustness issues, which led me to always buy from the ‘premium’ range in the last 6 years or so. At first that was the likes of the top-end Sonys, but after being convinced to try a MacBook Pro, I’ve been so pleased with the overall construction / design and the ability to use OS X as well as Windows that I’m very unlikely to buy anything else next time (my next hardware revision will be 2010, I generally switch every 3 years, which is reasonable if you buy something decent to begin with).

The talk now is about whether Apple will start making a netbook, to compete at the cheaper end of the market. Personally I don’t care – I quit buying cheap laptops ages ago, I don’t think it really ends up being cheaper in the long run. Powerful and cheap machines tend to be poorly built – I’ve burned through (literally in a couple of cases!) far too many laptops that couldn’t handle their power actually being used regularly, or which developed problems because the build quality was naff. Cheap machines with decent construction but lower spec (e.g. netbooks) just need upgrading faster if you have my sort of needs, or are just a supplement to a ‘real’ machine, either of which costs more in aggregate, and the resale value when you do upgrade is usually not even worth considering. In the round, buying a premium laptop relatively infrequently works far better for me, and as such Apple already provide what I want. YMMV :)

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

MS breaks the sixth seal?

Open Source, Windows 16 Comments

Quick check – ok, the sun is in fact not as black as sackcloth. But today, something earth-shattering happened – Microsoft has contributed code to Linux.

I’m sure I’m not alone in thinking that I’d never live to see the day this happened. It’s 20,000 lines of driver code to make Linux run better under Hyper-V, which is of course in their interest (since you have to buy a copy of Windows Server 2008 as the host) , but that’s par for the course for open source contribution (you scratch your own itch!), and it’s a massive watershed regardless. From what I hear there’s still a lot of concern at Microsoft about how to manage contributions across the company boundary (in both directions), so I’m not sure what extra procedures they would have put in place for the developers involved in this process to keep the corporate legal army satisfied – perhaps pre- and post-project selective mind-wipes ;) – but the fact that they managed to make it happen is a big deal.

Microsoft has wielded by far the most acrid rhetoric about open source in the past – we all hear that it’s changing, and I know particularly of specific people at Microsoft (mostly developers) who take a much more open view, but it’s hard to escape the feeling that while the top brass who set the ‘old’ policies remain in situ, substantive change will be difficult. But this move is one of many lately that make me think that just maybe, people higher up the chain are starting to get it. Or at least, they’re starting to defer to people who know better.

I’d argue that very few people in the open source community are inherently anti-Microsoft, they’re just a little more free-thinking when it comes to technology choices, a little more honest with their opinions, and have come to view MS as ‘the enemy’ primarily because of the old rhethoric the company used to use on a regular basis to attack them (and some parts of the company still don’t seem to be getting the ‘openness’ memo – as TomTom found to their detriment). Microsoft, or rather, Mr Gates and Mr Ballmer specifically, effectively made themselves the enemy of the open source community with their often ill-conceived tirades, and that’s something that will take a long time to heal. But, as we all know, actions speak louder than words – and if the company continues to make these kinds of conciliatory moves, they will start to win people in the open source community back, at least those people that judge on facts rather than old predjudices.

Trust takes a long time to be earned, particularly from where MS started from, so it’ll be a long road – but if this is how things are going to develop in future, then bon voyage, MS.

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

Game Grazing

Games, Personal 10 Comments

It was my birthday last week (and my wife’s), and while I’ve been far too busy to have any time off (cue world’s smallest violin), I have managed to find a little time to play a few new games. I’m still deeply mired in Fallout 3 too, having invested 60 hours in it over the last 4 months with still loads to do – see, this is why I can’t handle more than one ‘big’ game a year anymore – and Gears and Rock Band are still regular staples, but there’s always room for variety.

The Secret of Monkey Island: Special Edition

somiAh, nostalgia – sure it’s a crutch, but it’s fun to indulge it sometimes. In this case, when they release a completely re-mastered (in terms of graphics and sound) version of one of the most classic games of the 90’s, there was really no option but to get my wallet out (or rather, a portion of the MS points ). It’s a great recreation – all the witty dialog is present and correct, translated exactly, and the ability to switch back and forth between the old game and the new one in real-time with a fancy cross-fade is surprisingly entertaining, letting you see how they translated the classic (which is to say, incredibly accurately, while still bringing it up to date). It also made me realise how much more patience these games expected of the player – I expect that players ill-versed in this tradition might be reaching for the cheat websites fairly early. I’ve already been stuck a few times, even though I’ve played this game before, mostly because my memory is terrible. But at least that means I get my money’s worth I guess. And no, I haven’t resorted to hints yet :)

Now, hopefully they have SOMI2:  LeChuck’s Revenge, Day of the Tentacle and Sam and Max Hit the Road on their roadmap.

1 vs 100

1vs100Not strictly a ‘proper’ game, but I’ve had a couple of 30-minute sessions on XBLA’s virtual gameshow now. It does a pretty good job of recreating the gameshow experience, which is to say that while the meat of the questions can occasionally be interesting, like a real gameshow the whole thing contains way too much dull & repetetive padding which just grates on your nerves after a while. Whether it’s panning across the crowd showing everyone clapping and whooping – that got old in about 5 seconds flat – or periodically jumping back to the ‘live host’ so he can either bore you, or even worse you can be stuck looking at a billboard in silence for 3 minutes because the game deems that your bandwidth isn’t high enough to hear the streaming voice (strange, I know 2Mb isn’t that high these days, but it manages just fine with 2-way voice chat, so why can’t it handle voice from a host?).

The questions though are also pretty annoying. You can guarantee that the first 2-3 are incredibly easy, so much so that even if you don’t know the answer, you can figure it out just because the other 2 incorrect answers are bloody stupid (e.g. one is a name you recognise, the other two are clearly made up). Despite that, some people still manage to get these wrong. When you get to the later questions it actually gets more interesting, but that’s undermined by the fact that everything resets as soon as ‘The One’ gets a question wrong, or chooses to ‘take the money’ – a choice which IMO they’re given far too often, because I became very frustrated at being bounced back to the ‘retard questions’ again and again. Every time ‘The One’ leaves for either reason, it takes a minute or so to get started again. So when you add up that time, plus the ‘host interruptions’, plus the time spent on retard questions, and the general padding around each question (which, while not at the same level as Who Wants To Be A Millionnaire?, where the host seems to get paid millions of pounds for just being a procrastinating arse, is still annoying because all the dialog is the same every time), only about 15% of the time was spent having any real fun.

The other problem is that the odds of you getting a chance to win anything, either by being picked to be ‘The One’, or in ‘The Mob’ (the 100) seem infintessimally small. When I was playing there were 53,000 other players, which even if the selection was unweighted, would mean I’d have to play about 500 games before being guaranteed any kind of prize-winning opportunity. But in fact, the selection is weighted towards those that play more it seems, reducing that chance even further for a newcomer. Therefore, the experience mostly boiled down to bouncing around in ‘The Crowd’ where only the top 3 players win anything; and I was slightly suspicious about that, because these top players always had an average response time of around 0.02 – 0.05 seconds, something that sounds impossible to me. So even the draw of winning MS points isn’t really a big enough carrot to warrant putting up with the other annoyances.

I hate game shows in real life, but I thought that perhaps taking out the irritating presenters and retarded contestants, making it all interactive and sprinkling the opportunity for prizes might make it entertaining to play. In practice, not really.

Dead Space

deadspaceI’ve had this on my ‘back burner’ list for ages and a friend got it for me this birthday. All I can say so far is: wow. My first hour in this game was probably the most intense immersive experience I’ve had in a long time, this game channels elements of System Shock, Half Life, Resident Evil and Aliens, and the implementation is absolutely superb. None of it is remotely original of course – a deep-space mining ship with which contact has been lost, things going pear-shaped in an gnarly alien infection way, escape cut off, etc etc – but when the execution is this good, it really doesn’t matter.

Things I love so far:

  • They’ve gone with the Half Life immersive story-telling technique. I love this approach, and it fits this game brilliantly; the lack of cutscenes makes you feel like you’re really there, experiencing the story, not being told it as an observer
  • The lighting – vital in a game like this, it’s really, really nicely done. Shadow textures could use a little filtering, but that’s being picky ;) The overall effect is fantastic.
  • The sound design is sublime. The music is incredible, and context-sensitive. The amount of incidental noises, clanks, creaks, drips etc keep you totally freaked out the whole time. Was that just the sound of that piece of wreckage banging against the walkway, or was it a creature wanting to have my eyes for hors d’oeuvres?
  • The interface; again, the fact that they’ve gone for immersion here makes a huge difference; all the UI is projected from the suit as a hologram in the world and feels very ‘real’ rather than a game UI.

All these things together, plus some clever scripting, make this game incredibly atmospheric, as well as highly efficient at making you fill your pants. When you analyse it, it does boil down to ’scripted monster-closet’ stuff, but damn, it’s done well. It may not have the depth and social commentary issues as Ken Levine’s System Shock games & Bioshock, but it’s easily the most refined sci-fi horror experience I’ve ever encountered. Hell, judging by it so far, it might well be the best horror game I’ve played, so far it smacks down even RE4 pretty convincingly for an initial play. I don’t know if I’ll start getting jaded to the scares later on, but if a game can be judged in the first 90 minutes of play, this game is fantastic.

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

Amazon Win7 upgrade spam – empty your wallets

Tech, Windows 9 Comments

Amazon has started email-bombing people in the UK with Windows 7 pre-order offers, a little while after a similar pre-order offer was available in the US. Windows 7 is the first version of Windows that I’ve found myself being upbeat about since 2001, so I cheerfully clicked the link. The result was an offer of Windows 7 Professional “E” (the European version with IE removed, congrats EU on fighting an originally well-intentioned battle that ceased to be practically relevant almost a decade ago) for a ‘discounted’ price of £180. Wait, what? £180 for basically Vista how it should have been? And that’s a pre-order discount?

I have several copies of XP and Vista on my bookshelf. The Vista ones currently grace only test machines (although post-SP1 it was somewhat more tolerable to use, if still blissfully flagrant with resources), but nevertheless I own several copies. In the US, there was talk of a $99 limited pre-order offer for an upgrade of Win7 Pro, which is still expensive alongside Snow Leopard’s $29 upgrade (which offers a similar level of refinement), but would still be doable – that pales in comparison to £180 (or $295).

This is actually for a ‘full’ copy, not an upgrade, because the fact is that there will be no upgrade version for Europe. The official excuse is that the “E” version requires a re-install, but anyone with a handful of brain cells to rub together knows that’s a crock; the nuances of the install procedure have little to do with the price that they can offer for the license itself – after all upgrade software has for years been able to be used as a fresh install too, provided you have an original CD from the previous version (I doubt anyone would buy an upgrade copy of Windows if they were unable to reinstall afresh at some point – a regular ritual for many users). No, the lack of an upgrade version, and the pricing policy in general, is blatantly a “screw you” to Europe because of the whole IE debacle.

The original word was that “European customers will be able to buy a full retail version of Windows 7 E at the same price as the usually cheaper upgrade version, at least for the rest of this year” (link). Ok, shame that that ‘upgrade’ price, that limited time ’special deal’ price, is actually 3 times the price of the limited time upgrade offer that  the US had. So in fact what you’re saying is that while the upgrade pre-order already looks extortionate, the price is going to be even higher in 2010.

I’m going to have to buy a copy or two anyway, but jeez, way to make me feel totally ripped off guys. I’m going to be upgrading OS X to Snow Leopard at pretty much the same time, and the price difference is going to be glaring. Microsoft made their name originally by bringing value to the masses. Where did that principle go?

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit

Rock Band Network announced

Games, Music No Comments

rockband_symbolsWhen Harmonix responded to GHWT’s user-created content feature by saying they wanted to hold off until they could do it properly, they definitely weren’t kidding. Today they announced the Rock Band Network, which will be online later this year (on 360 only for the moment, because it seems they’re piggy-backing on the XNA Creator’s Club to handle the submission and billing).

Rather than provide an in-game sequencer using samples like GHWT does, with RBN bands use their original master tracks, recorded using their usual software but presumably still split into the appropriate tracks, and gives them a set of tools (for PC I assume) to add the MIDI notes which will be translated into the instrument charts. They can also control animation and stage events to sync with their track. All instruments are supported including the vocal track (GHWT didn’t allow custom vocals); there’s no limits because the master track is always used. Once packaged up & ready, artists can then upload their music directly, set a price for it, and have it show up for purchase on the Marketplace where anyone can buy it, and the artist gets a cut of the revenue.

This is a superb idea. Not only do you get ‘proper’ music rather than just sequenced sample notes with no vocals (because the tools every band gets to use are the same as the ones Harmonix use to create their tracks), but there’s also a direct incentive for good independent bands to get their music on there, since it can earn them some money as well as get them publicity. I shudder to think how many tracks might end up on there – we’ll definitely need some reviews pronto to help point us to the best ones; it looks like the RBN website has that functionality built-in as a pre-release step using community reviewers (presumably this is also to filter out IP-violating music and dodgy content before it hits the masses too), but I’m sure the community will run with this as RockBandContent.com did once the tracks are public.

The great thing is that it probably won’t even be just ‘unknown’ bands that use this. Harmonix obviously have to prioritise their DLC pipeline, so they can’t cover everything (even though they seem to try). I can imagine there will be loads of signed bands who are just lower down the priority list who could take the matter into their own hands now, and get their music on there as a promotional thing. For non-US bands in particular (who, let’s face it, tend to end up under-prioritised compared to US bands), I think this could be very, very big.

I think this could be huge for both players and bands. The current 700 track selection could be paltry in comparison once this has been running for a while. Once again, Harmonix leads the way when it comes to tapping into the spirit of this genre!

Share this post: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • N4G
  • StumbleUpon
  • del.icio.us
  • Mixx
  • Google
  • blogmarks
  • Slashdot
  • Reddit