Sony tramples on other peoples rights to protect its own

Personal, Uncategorized 1 Comment

SonyThe Sony saga just keeps getting better. Firstly, Sony finally owned up to distributing harmful software on their music CDs in pursuance of their rampantly paranoid corporate aim to prevent music piracy. Perhaps they have finally realised that all they are really succeeding at is alienating their paying customers by limiting what they can do with the product they actually paid for, whilst having zero affect on dedicated music pirates. I doubt it though, based on their track record the Sony upper management appear to see nothing beyond their own navel. But, at least they’ve realised they have to recall all the XCP protected CDs in order to save some face for a gargantuan cock-up.

But, even better is that even whilst justifying such draconian measures in copy protection with bizarrely inflated claims of rampant music copyright infringement (hmm, then why are music profits still increasing year on year then Sony?), Sony were in fact infringing copyright themselves, by including open source (LGPL) software in the very DRM software designed to prevent copying and failing to respect the terms of the license. Not only that, but parts of that software were written by “DVD Jon” Johansen, the man the MPAA tried (and failed) to get convicted for bypassing DRM software on DVDs just so he could watch films he legitimately owned on his Linux machine. It’s rare to find such pure forms of both irony and hypocrisy combined.

So, lets recap. Sony wants to protect its copyright - so much so, that it’s willing to blatantly infringe the copyright of others, and to expose customers devices to malicious attack, all in the name of protecting its own interests. Does this sound like a company you want to be a customer of? One that justifies making their customers lives harder by saying it’s to keep unlawful behaviour under control, whilst all the while they are committing the exact same crime they say they’re trying to prevent. And at what a scale - upwards of 4 million counts of copyright infringement have allegedly been committed by Sony since this is the number of CDs they distributed with the license-breaking code on it.

I hope they throw the book at Sony and the muppets at First4Internet who wrote XCP (and I use ‘wrote’ in the broadest sense since they appear to have stolen at least some of it) - between them they’ve made a staggering number of incredibly poor decisions, and shown a brazen disregard for everyone elses rights, consumer and software developers alike. They deserve to be hauled over the coals for this one, even just to make the point that this kind of behaviour is absolutely not acceptable.

Windows Live, Ajax

Personal, Uncategorized 1 Comment

Is it me, or does ‘Windows Live’ cry out for an exclamation mark at the end? This is Microsoft’s new initiative of online, dynamic services in their attempt to take on the Googles and Yahoos of this world in the online space. You can see a small demo site here.

Now, let’s be clear about terms. When I say ‘new’, I mean ‘new to Microsoft’ - since the concept of a user-customisable portal system, pulling in content such as RSS feeds, shared documents and webmail, and paying for it through either subscription or advertising is very very old indeed. Been there, done that. I happen to dislike using online portal systems run by third parties, which have the nefarious ability to do things like scan the content of my email for potential marketing information (please don’t tell me you didn’t know GMail / Hotmail / Yahoo could do that) - if I want a persistent online repository, I do it using my own servers that I control. But even so, this concept is almost as old as the World Wide Web, and certainly nothing to get excited about. I was extremely underwhelmed by the beta site above, it doesn’t even come close to alternatives that have been around for some time already. And MS expect you to use this, with it’s inherent bias towards other MS solutions (echewing open source in particular) in preference to other more functional systems already available? Someone is having a laugh.

The other fad of late is AJAX, which stands for Asynchronous Javascript And XML. It’s all about making websites more responsive by using client-side scripting to dynamically alter the page, and to communicate asynchronously with the web server using XML in the background. It’s technically nothing new - we’ve been able to do this for years, but the techniques have previously been quite ad-hoc, and AJAX brings some standard, accepted techniques to the table. Anyone using Google’s ancilliary services such as GMail, Google Maps and even Google Groups (if you’re registered) use this and it works well. I do have one reservation about it though - I’ve always avoided modifying content significantly (rather than just simple things like hiding / showing sections) through Javascript due to accessibility issues. People with impaired sight are likely to be using a screen reader, and modiying the content on the fly confuses screen readers no end. So really, making use of AJAX to the extent that really justifies it inherently means that you’d be breaking accessiblity (which you can actually be sued for under anti-distrimination laws in the UK), and as such you’d have to provide a non-AJAX version of the site for those people you’d otherwise be excluding (which incidentally would also give you a version for those who had Javascript disabled). Some people already do this sort of thing for flash / non-flash versions of their sites, so I guess it’s nothing new, but it’s something to consider whilst surfing the current propaganda wave that AJAX is riding right now.

MMOGs

Personal, Uncategorized 6 Comments

I have a confession to make. Sometimes - just occasionally, mind - I fancy trying a massively multiplayer online game. I know, I know - I shouldn’t, but occasionally I can’t help myself.

Back when I was in my late teens / early twenties, access to that nebulous cloud called the ‘Internet’ started to become available to the general public. It was all text-based in those days - I remember the first time my fantastically overpriced non-local internet provider, which I used for only telnet, ftp, and occasionally archie and gopher services (remember those? ;)) started offering access to the ‘World Wide Web’, and wondering what the hell the fuss was about, given how all it did was fill my text console with seemingly meaningless markup. But, on it I played the odd text-based MUD / MOO and had quite a bit of fun - each MUD server was it’s own little microcosm, and it it didn’t take long for you to learn your way around, nor did it take much time investment to play.

Fast forward to the 21st century and the MUD-on-steriods, MMOGs, are de rigeur in every genre. I would have killed to be able to play the kind of games there are available now back then, but now, I just don’t have the time. My primary problem with MMOGs at this stage of life is that due to their gargantuan, open and persistent nature, they are inevitably biased towards rewarding those with virtually no other life outside the game. You have to put in the hours, you see - otherwise your clan / guild / party is gonna throw you out for being a part-timer, and you’ll remain in the shadowed background whilst everyone else lords it over you with their +15 Robes of Poncing About. I don’t have that sort of time, and even if I did, I’d feel rather shallow to spend it all on a game. However, I’d still love to try it sometime, just a little bit - only the fear of getting hooked keeps me away. I’ve also found that playing online matches of games like Unreal Tournament soon wears thin, mainly because I don’t play the game 24×7 - so after the first couple of weeks, your chaces of getting continually smoked by some cocky 13-year old with nothing else to do but practice all week increase seemingly exponentially. Either that or I’m just very crap.

So why do the majority of MMOGs target the obsessive players? Well, I guess because they’re a stable source of revenue. But it’s a shame that so far there are no casual MMOGs; the sort you can get together on with a few friends every now and then, have fun, and not feel pressured by the ethos of the online world to treat it like a vocation rather than a bit of occasional fun. That means if I ever did find time to play a MMOG, I’d be looking for these things:

  • Smaller, tighter communities A relatively small world (compared to, say, WoW) with only a modest number of players on each server, not thousands upon thousands. A community only builds and binds when you can realistically start to get to know others. Simulating an entire planet of constantly changing people might be technically impressive, but it’s actually pretty dull from a social perspective - MUDs had a better community spirit.
  • Only consensual PVP. Beating up other players is fun when you actually want to test your strengths, it’s no fun at all if you’re the one getting mugged all the time by hardcore players.
  • Planned for short, occasional time slots. If I have an hour to play, I want that to be rewarding in itself. That means no trekking across half the world and back to fulfil a quest, it means no arseing around fighting endless random creatures, it means no repetetive and formulaic actions designed to make me feel like I’m on a chain gang. I want to see something new and interesting in that hour, and it better deliver otherwise it will also be the last hour I play. And for Gods sake, make it easy to pick up again a couple of weeks later, and plan for parties where not everyone can make it every time.
  • Forget the damn levelling already. Some people like just running around bashing things until a light goes ‘ping’ to say they’ve somehow passed an invisible marker labelled ‘next level’,after which they do exactly the same again, bashing slightly tougher enemies until the next ‘ping’. Well, they’re idiots. Little mice scampering around a maze, being rewarded with a piece of cheese popping out a dispenser when they press the right button when the light tells them to. Yes, you need a measure of progression, but levelling is the most unoriginal, basic and downright lazy ass way in the world to do it. Games which have 50-100 or more levels are acknowledging that they don’t have enough ideas to fill the rest of the game, so they hope to distract with regular ‘level hits’ instead. It’s the game experience that’s important, not a set of damn numbers. In a roleplaying game, it’s exploration, interacting in a storyline, cooperating to solve problems and such things that are important, not how many hundreds of the same kobolds you can brain (perhaps while chanting ‘Chug! Chug! Chug!’ if the mood takes you)

They probably won’t make such a game, because people like me probably wouldn’t be economical to attract since I’m just not obsessive enough. Perhaps I’d better stick to the DS online play when it comes out. ;)

Apparantly I’m a communist - who knew?

OGRE, Personal, Uncategorized 1 Comment

It looks like SAP has thrown it’s hat in with Microsoft by viewing open source as akin to socialism (Gates went even further and suggested it was communism, I’m sure McCarthy would have liked to have him on his side back in the 50s). There argument is that if there is no financial incentive to invent, ie strong IP laws, then nobody will. On a very simplistic level they have a point.

The trouble is that like most sweeping statements, it assumes a homogenous world where one size fits all and there is one solution to everything. The more extreme fringes of the open source movement are just as bad, in projecting the mirror image - that open source is the ‘one true way’ and that all closed source software is inherently evil.

Both extremes of view fail to acknowledge that the world of software requirements is a continuum, not a fixed set of discrete points. Choosing what type of software to use is a complex equation, it can never be summed up in the sound bites that either of these camps use to justify their case. There are pros and cons to all things - closed source can often bring a richer or more specialised experience (e.g. Visual Studio, OSX, ) because of the additional resource that has been invested, open source comes with additional flexibility, lower cost and better future-proofing (since you avoid all the corporate shenanigans such as forced upgrade cycles, product withdrawls, proprietary content formats and such).

Closed source software can only survive when it offers something above and beyond a commodity software experience. It’s true that by and large, rather than radically innovating most open source is mostly involved in recreating the underpinnings for software services that already exist, just in a more flexible and cost-effective fashion. This is not a bad thing - as time goes on, an increasing swathe of core software services can be provided extremely reliably by open source software. This should only bother software companies that are willing to rest on their laurels, raking in disproportionate amounts of cash from aging product lines which no longer feature much that is innovative. So, people like SAP then. :)

I see a bright future for the co-existence of open source and closed source software. Open source can provide an ever increasing, ultra-solid and cheap base for services we all should be able to take for granted by now (that’s things like web/file/database servers, and many other classes of product that have been around for donkeys years). Companies that rely on milking their customers every year whilst doing little new won’t be able to compete with that, and they deserve to lose revenue. Genuinely innovative closed source solutions can sit on top of the increasingly commoditised base, and companies doing that will still be able to charge for these additions, provided they add value the customer can see and touch (and similarly, open source advocates should accept their right to do so). Open source will eventually catch up of course, which is why you have to keep on innovating. Sounds like a good incentive to me. This should be viewed as inevitable and a natural cycle of progression - after all, what’s innovative about charging people for the same product every year? Are people like SAP really talking about their right to innovate, or their right to take a breather without having to worry?

The tags ‘communist’ and ‘capitalist’ are outdated and inaccurate when applied to the modern software world. This isn’t the roaring 80’s anymore, people - time to rethink your world view. A combination of community and investment-led innovation is the way of the future, and companies that see things is such black-and-white contrasts are unlikely to be on the leading edge of that.

Portals, superportals and pencil power

OGRE, Personal, Uncategorized 1 Comment

After 2 weeks of constant distractions ranging from security updates, through a couple of major OGRE issue reports that needed investigation, and learning how VS2005’s release affects us, I finally managed to spend some time on Kadath today. Most of that time was spent with a pencil and paper, chewing the former in between trying to draw something sensible on the latter. Basically I was planning how I take what I have now, and perform yet more automated magic to turn it into something more useful. That means taking some highly deconstructed & fragmented level geometry, required to build the initial analysis of the level, into a reconstituted mass which is both fast to render and fast to query for collisions. Basically, I’m doing to level geometry what Bernard Matthews does to chickens - mash them up into tiny chunks and then reform them in a more efficient fashion. This involves taking lots of little portals, joining them up into superportals, figuring out which ones are any good, and throwing the others away. I’m being guided by a few academic papers, but they’re written by people much smarter than me so I generally have to decipher and translate them into a form I can understand and implement.

Which brings me on to pencils. Pencils are the single greatest design tool in the world. Forget your fancy round-trip CASE tools - they’re both incredibly expensive and invite you to waste far too much time playing about with their many features. No - design is all about exploring the problem, and you can’t get any more natural and immediate (not to mention cheap) than your trusty HB. Sure, their equivalent of CTRL-Z involves brushing lots of eraser fragments onto the dining room table, but even then there’s a certain satisfyingly tactile aspect to that. You don’t have to worry about alignment, formatting - this is about exploration, so who cares if it’s messy; and it’s much faster to scribble madly on a few bits of paper, shuffle them around, and toss the ones you don’t like over your shoulder than it is to do the equivalent in a CASE tool - the implied neatness of such a tool means you inevitably spend time on detail and layout when that’s really not important at this stage.

Sure, final detailed design can benefit greatly from electronic tools, especially when there are many people on a team. But for the conceptual stages, when you need to just think about the problem in hand and not be distracted, you can’t beat a real-life blank sheet of paper. Yes, I’m a design Luddite, and proud.

Ordered Visual Studio 2005 Pro

OGRE, Personal, Uncategorized 2 Comments

After some initial double-takes and discomfort over some of the things that were changed in VS 2005, I’ve become convinced enough of the benefits of the new version to cough up for the Professional upgrade. The free Express edition is an extremely good deal, but there are definitely things that I miss from the Pro version of Visual Studio, and given that I spend a very large part of my time indeed in this environment it’s worth spending the money. Specifically, I felt I ‘needed’:

  • Full extension support. I purchased Visual Assist a long time ago and feel rather naked without it. Even though Intellisense seems a whole lot better in 2005 (it was pretty rubbish for C++ in previous versions), I still miss those little extras like instant flipping between corresponding headers and source, better method jumps and code shortcuts / templates that are a little better than the standard macro fare. I also have VTune to consider which can’t plug into Express.
  • Profile based optimisation. This is where VC can make optimisation decisions based on monitoring the runtime behaviour of your application, thus making it able to make better decisions on loop unrolling, inlining and the like. This sounds like a great feature, replicating the sort of manual assembler optimisation we used to do in years gone by for critical sections of software engines.
  • Remote debugging. This is invaluable when you can’t replicate a problem on a fully equipped developer machine, or you need to debug fullscreen issues.
  • Deployment Tools. Whilst I’m pretty happy with WiX now I’m interested to see what you get in the full VS 2005.
  • Full ‘user experience’. In Express, there are things missing from the UI. For example, all warnings and errors remain in the log output like VC6 used to, unlike in VS.Net 2002 where they go into a prioritised task list. When you’re doing a batch build for a lot of projects and want to come back to any issues later, it’s a pain to have to scroll through a huge log to find the issues. This is one of the things they mean when they say that Express has a ‘Streamlined User Experience’. I want my task list back, sod being streamlined ;)

Clearly, none of these are make-or-break features for the average coder - a testament to just how useful Express is - but nevertheless they are very useful to the heavy user; so I think that MS have pitched this one just right. That’s right - despite my rants I’m not in fact a rabid MS-hater, I really do give MS credit when they do something right :) I’ve always said Visual Studio is one of the few things they do rather well.

I feel kind of bad though. Express really is a fantastic deal and will almost certainly attract users away from the free alternatives for C++ coders on Windows; namely Dev-C++ and Code::Blocks. I don’t like the former - it’s the latter which bothers my conscience a little, since I like Code::Blocks a lot, and the developers are fairly regular visitors to our forum. But, if someone now asks me what’s the best free C++ environment to develop on in Windows, my recommendation has to be Visual C++ 2005 Express. Luckily Code::Blocks runs on other platforms too if asked about a cross-platform C++ environment, it still wins. Also, MS have only agreed to make Express free for a year, not permanently - the intention may well be to get people hooked, then charge in a year’s time, although the original price they were going to charge (but waived) was $69, so it’s not bank breaking. But, it may well mean the tide will turn back in a year for the free alternatives on Windows.

WiX XSI v5 Exporter Installer

OGRE, Uncategorized No Comments

Well, I’ve learned enough about WiX and MSI to get an installer ready for the XSI v5 exporter, which will accompany OGRE v1.0.6 in just over a week’s time. Getting it working didn’t actually take very long, although sometimes the declarative syntax can be a little obtuse. The thing that had be pulling hair out for a good while was that I wanted to auto-locate the XSI install folder so the user didn’t have to choose it. But unfortunately, Softimage made the frankly bizarre decision to place the registry key that identifies the XSI install root underneath - wait for it - a key whose name includes the install root! That means there is no fixed registry path you can look in to determine where XSI is installed. For example on my system:

HKEY_LOCAL_MACHINE\SOFTWARE\Softimage\SOFTIMAGE Application\E:|Softimage|XSI_5.0|Application|bin\Root Locations\InstallRoot = E:\Softimage\XSI_5.0

As you can see, the install path is slap bang in the registry key path for getting to the InstallRoot value. Unfortunately, MSI doesn’t support registry key matching by wildcard, so I can only determine what the install root is by already knowing it. Bonkers or what?

If this was Inno or NSIS I could write a small procedural script to perform a match to avoid this. MSI is completely declarative though, and although you can use JScript/VBScript it is considered very dangerous according to the authors. The in-built CustomAction doesn’t cover it, so I’d have to write an action plugin in some other language to do this. I don’t blame MSI, I’m sure it’s just that Softimage made a bad decision here and that normally you would never need to do this. But unfortunately in less than perfect cases like this, MSI does tie your hands more by being declarative even if in principle removing the variability of scripting is a good idea.

So, because of this I’m having to rely on the user picking the right install directory, which is a shame. I spent the best part of an evening trying to find a way around it, or a report of an existing instance, and found nothing, so I’ll have to move on. The good news is that the installer works fine, I used it to install the 1.0.6 plugin into XSI v5 and it worked straight off.

XSI v5.0 Exporter

OGRE, Uncategorized No Comments

I managed to build a working version of the OGRE XSI exporter for XSI v5.0 using VC.Net 2005 Express today, which is excellent. I had a problem at first because I had all sorts of linker errors with XSI::CString, but it turns out it’s because one of the changes in VC.Net 2005 is that wchar_t is a built-in type, and you can’t link against older libs which aren’t using that option and wide characters (XSI uses wide characters and is built with VC 7.1). You can turn this option off in your VC 2005 project options, under “C/C++ > Language > Treat wchart as built-in type”. After that the XSI exporter built fine. I’ll therefore be able to distribute a new version, although I will need some time to write a new installer in WIX for it.

VC++ 2005 Express - MSI tools

OGRE, Uncategorized 2 Comments

Ok, so I’ve been looking quickly for free tools for creating MSI files, since deploying the dependent Visual C++ runtime libraries as Merge Modules is the only really supported way of deploying applications built with VC8 on all versions of Windows. The 2 main contenders are MakeMSI and WIX. I haven’t had lots of time to investigate them but here’s my initial assessment.

MakeMSI
MakeMSI purports to automate the process to some degree, although you are still manually editing text files. I’m fairly used to this with NSIS and Inno anyway but these scripts seem a lot more esoteric. In addition, the first sample didn’t work, it appears to try using IE to perform some part of the conversion and falls over. So, impression was somewhat lackluster.

WIX
WIX, on the other hand, is pretty much completely manual (including generating GUIDs yourself), but has the advantage of just feeling a whole lot clearer, and the examples work. It also has the honour of being the first project Microsoft placed on Sourceforge, IIRC. It is extremely light on documentation on the main site although others maintain a tutorial and FAQ externally which are both quite detailed. I’m not sure how much of a pain it will become over time to maintain a complete script manually but WIX seems to be the best contender at the moment. There’s also a nice VC++ 2005 Express specific quick starter guide which is worth reviewing.

It’s a shame there’s nothing as good as NSIS or Inno yet in the MSI creation space, but when you see the staggering amount of money you’d have to pay Wise or Macrovision for their install builders, there’s a definite incentive to make one of these options work. There is also a wizard in the full version of Visual Studio .Net 2005 but I can’t review that just yet.

Sony and other hackers

Personal, Uncategorized No Comments

SonyI’m sure you’ve already read about how Sony has effectively turned hacker by installing a rootkit on your PC just because you wanted to listen to some music that you paid them for. That’s customer service for you. Sony’s little tyke of a copyright protection device (developed presumably by a bunch of monkeys at First4Internet who just wanted Sony’s cash and didn’t realise they were doing something really, really dumb) likes to squeeze itself deep into your Windows system calls, intercepting everything you try to do with your CD drive, before sneakily trying to hide itself, cackling manically all the while and rubbing it’s hands with glee. It looks like malware, it smells like malware to rootkit and virus detection software, and it sure as hell behaves like malware, given that it has no uninstall and trying to remove it trashes your PC.

But the difference is that you paid for this piece of malware, and it was foisted on you by a supposedly reputable company who you, as a consumer, used to trust. I’m guessing that trust is waning rapidly. It’s been known for a while that Sony is completely, utterly, rabidly anally retentive about digital rights management (DRM) and stopping people from copying their music; one reason why I steered well clear of their portable MP3 players. But guess what - the very people they’re shafting are the people that actually bothered to pay them - in traditional circles these people would be called ‘customers’. You know, those people that you’re supposed to look after and who are always right. Based on Sony’s digital president’s opinion they are in fact clearly ‘poor saps’ who ‘wouldn’t care if we rootkitted them anyway’. Such arrogance and blatant disregard for the rights of the customer can only end in a foreshortened career for said President, and, we can hope, a public whipping through the streets of Aberdeen. I’m stockpiling soft overripe fruit just in case.

Who knows, perhaps the handful of (failed) XML-RPC hack attempts this site has experienced in the last week are agents of Sony trying to check if I’m daring to horde and possibly even play music I legitimately paid for on a digital device. Now that really wouldn’t do.