I vented before about the movie and gaming industries’ reliance on sequels. It’s a better bet than to risk millions with an unproven formula. Thus we get solid movies and games, but the great ones are few and far between. What’s worse it seems we never get an original product out of the studio that has a winner on their hands, just more-of-the-same.
Or at least we didn’t. In one of the boldest moves I’ve seen in a long time, Ubisoft decided to dramatically change the dynamics of their very successful franchise Splinter Cell. I am positive that yet another incremental improvement to the game would sell great. After all, it’s not like they didn’t improve the game since its inception. Four games total, three sequels, each slightly better than the previous one. Lots of money earned thus extremely high risk changing the formula. Yet, that’s exactly what Ubisoft did.
The new game dismisses the light/dark formula we’re all used to. It’s still about the stealth, but in a totally different way. Most chapters take place during the day, in the open with a lot of people around you. You don’t have any of the gadgets you’re used to and must improvise all the time. Fortunately since there’s little to no scripted events involved this means that even if you make a mistake (a guard notices you or an alarm goes off) you can still wing it and get out of the situation. The change is pretty drastic and if not executed well could alienate a huge fan base.
Personally, I have great fate in Ubisoft’s Montreal studio, they’ve never disappointed before. But I particularly commend them for having the courage to change the winning/proven formula.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
We are progressively getting more and more spoiled by the features of a modern IDE . Each new version brings better intellisense, code generation and sometimes even mind reading (that's what it looks like, anyway) features. It’s hard to imagine how could we have ever worked without an IDE.
The feature I’d like to comment on today is background compilation. Jeff complained how C# should have offered it, just like VB.NET does. Ian chimed in asking if IDE could refrain itself from constantly compiling his VB.NET code and do what C# compiler does – wait for user’s explicit action. These are two opposite approaches – is there a better one that could satisfy both sides?
Maybe. Just like VB.NET, Java code in Eclipse is checked all the time, as you type. But the compilation only happens when you save the file. You do get red squiggly lines while you’re typing obviously incomplete statements, but the IDE goes out of your way and even helps you whenever it can. Post-save automatic compilation actually works great and is quite hard to shake off – I miss it all the time when I switch to C# in Visual Studio 2005.
Ideally, this could be a global IDE setting, or per-language one. If you want background compilation (it suites your coding style) turn it on, otherwise don’t. Ian has a point here: it probably has more to do with the way you code than with anything else, background compilation itself is inherently neither good nor bad.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
Software industry is constantly re-inventing itself. It’s almost like any other fashion – things are in, then out but just a couple of years later they are in again. We’ve had command line user interfaces first, then the graphical ones (all hail mighty mouse) and now command line-like ones again. Look at just two well-known examples: Google home page and Windows Vista start menu. Both rely on a single piece of UI – the edit box. On the other hand, Vista disposes with another (physically) hard-to-navigate concept – hierarchical tree of menus, but let’s leave that for another time.
In a recent blog post Jeff cites several interesting pieces on UI friction. When is it possible to reduce the UI to something simpler, even to a single edit box? If Google can do it, can we too?
A broad question like this results in a typical answer: it depends. If it has to do with searching, you probably can. I find it a bit funny to point out at an example more than 12 years old. To the left you can see a screenshot from an application I used to work on. The app mainly draws nice charts of stock/futures data. It can connect to multitude of data sources and thus a multitude of exchanges. Searching for a particular symbol (for example Microsoft’s stock price) can be quite daunting. But there was a shortcut – just start typing and if what you’ve entered is uniquely identified, it will be used. Click on a screenshot to the left to see how it looks like. In fact, this is just like Google’s I feel lucky button. I remember using this all the time, users loved it.
But if the UI is not just for searching you can’t simply remove pieces of it and expect improvement. This is somewhat like compressing a compressed file – the file won’t get smaller, it might even become bigger. As always, apply common sense. With the apologies to Albert Einstein: make the UI as simple as possible, but no simpler.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
I got a nasty “Delivery Failure” back from GMail the other day. The message was:
Could not deliver message to the following recipient(s):
Failed Recipient: <anyone>@gmail.com
Reason: Remote host said: 550 5.7.1 our Bulk Email Senders Guidelines. 50si6194057ugb
What does this mean? In a nutshell, GMail server thinks I am a spammer. Unfortunately, there are no links leading to more information in the text that follows and there are no hints as to why does it think I am a spammer.
Searching the ‘net will lead you to the mostly useless GMail Bulk Email Senders guidelines. I say “useless” because the text applies to those sending a lot of email to GMail servers, but also because I wrote them a complaint and got back what looks like an automated, generic reply (please make sure you’re not sending a lot of mail blah, blah). I send at most about 5 (five!) emails a day to GMail, so this can’t be the problem.
Then I remembered how email server at work used to reject emails from the account I was given by my ISP. I also remembered how due to the high amount of spam sent from hijacked computers on the network of my ISP, recently that same ISP started blocking port 25 by default for all consumers.
Since I run my own email server I had to explicitly opt out of this, but it made me think – could it be that an over-zealous third party put a large range of IP addresses from my ISP as potentially spammy (due to bad history) and my IP address was accidentally included? In order to fight spam, there are several organizations, some commercial and some not, who maintain a list of bad (and sometimes also a list of good) hosts/IP addresses. If you are on a bad list, you are blacklisted.
You can check if you are blacklisted here (click on the first link called rbls). I was a bit surprised but my IP was listed, fortunately just on two places. I am guessing here but I think GMail is using the services of the one I heard about before called Spamhaus (I was listed there). There is a link leading to each and every blacklist site where you are given a chance to remove yourself. Sometimes (this was the case with Spamhaus) an email confirmation will be sent to your email address as a verification step but sometimes a single click is enough. Note that this does not mean you’ll be whitelisted forever – if you are a spammer and sending a lot of email, you’ll get blacklisted again.
In my case, an hour or so later everything went back to normal (it takes time till the removal of your IP address propagates through the ‘net).
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
This weekend I took the plunge I talked about before here and here. In short, I have a new machine with 4GB of RAM that I want to use completely. Running 32–bit Windows XP does not allow me to do that. At the same time, it took me quite some time to set this machine up and some of the applications I run might not run correctly on 64–bit Vista (intended target). Thus the best way to upgrade yet not to lose any of the settings is to move the machine into a virtual one and just continue running it! Then I can move the software from virtual to the new physical setup at my own pace.
That’s exactly what I did. As soon as VMWare Workstation 6 turned RTM, I installed VMWare Converter 3.0.1 and in less than 15 minutes my complete setup went virtual. Installed 64–bit Vista in what felt like half-an-hour, installed Workstation 6 and a couple of settings later I was back in business. The only important thing to change was to fix the IP address of the VM to the previous physical machine’s IP address so that port forwarding from the router can still work unchanged.
This is the first time in my life that I had a stress-free upgrade involving wiping of the OS drive and full reinstallation. It feels great! The weblog you are reading now is actually running in a VM.
By the way, I had absolutely zero issues with 64–bit Vista. I did make sure that all the drivers I needed are available, but besides from that, no problems. 32–bit applications work like a charm, too. I had to set up a few of the particularly misbehaving apps (trying to write to “Program Files” folder etc) but it was all minor.
Added bonus – wife likes the fact that all the graphics are vector based so all the games she plays can be “enlarged” unlike in Windows XP. This is the first time she accepted the upgrade without complaints.
Finally, new VMWare Workstation 6 rocks, as expected. I am writing a review of it for the Serbian magazine “PC” which is a great way to familiarize myself with the new features. Upgrade price is still a bit high though, about 50% of the full price.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
There is a big problem in the software industry. It doesn’t matter if you’re building desktop apps, Web sites or SaaS; one of the biggest problems you’re facing is estimating how long it will take to develop features X, Y or Z. Software companies are infamously bad estimators. It has always been like this and pessimists think always will be.
Some do not agree though – I’ve recently read the most excellent book from Steve McConnell called Software Estimation: Demystifying the Black Art. Steve found enough data to support the claim that not all is lost and that there is a hope for the software industry after all. The book is highly recommended.
Anyway, today I’d like to draw your attention to a specific manager/developer interaction that is at the core of the estimation problem; it goes like this:
- Manager: “How long is it going to take to develop features X, Y and Z?”
- Developer: “3 months”
- Manager: “But we need it for the trade show due in two months!”
- Developer: “(thinking) God, if you’re out there, kill me, do it now…”
OK, there are business reasons why the company needs features presentable for the trade show. Does this somehow compress the time/space continuum? I don’t think so. Why does the manager’s tone sound like the developer is an equivalent of Hiro Nakamura (check out the TV series Heros if you’re lost on the analogy) and that the developer is somehow unreasonable with his 3 months estimate? Why does the manager usually expect the developer to deliver the same features for less time than is possible? Why is it expected from the developer to explain that if certain trade offs are implemented (less features, less quality/beta code etc) the deadline can be met and nothing is expected from the manager?
The situation reminds me a lot of something I heard from the then 3 year old daughter of a friend of mine. At the time of the event she was the only child and got all of the attention of both of the parents. It went more or less like this:
- Daughter: “Papa, I want this”
- Father: “Well, you can’t have it because… (explanation follows)”
- Daughter: “But I want it!”
Plain and simple – the child cannot recall being denied something. She gets what she wants and she gets it instantly. Therefore, it’s enough that she wants it!
It’s cute when kids pull stunts like this, but they don’t know better.
Shouldn’t the manager know better?
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5
If you are following the .NET related news your best bet is to subscribe to Mike Gunderloy’s Larkware blog. He is a human aggregator – if there’s a download to check out, a blog post detailing some obscure (or not so obscure) programming problem or anything else newsworthy, he’ll catch it and link to it. His blog is an excellent information source for all things .NET related.
Or so it was. A couple of months ago, Mike defected from the camp of Windows developers into the great unknown called Ruby on Rails. Fear not, he’s still doing what he does best - good writing and collecting interesting links from all around the world. His new blog can be found at A Fresh Cup. But it’s completely Rails oriented and Mike’s career seems to be heading exclusively into Rails. What’s “even worse” is that he switched from Windows to (gasp!) Mac OS X 
What happened? Mike has been living off the contracting on Microsoft technologies for years. He invested a lot of time and probably gathered a lot of clients over the years – why would he throw all that away?
Some of his own comments and the comments on the forums of the Softies on Rails echo the same kind of sentiment – developers just can’t keep up any more. Microsoft is constantly (re)inventing itself, putting out newer and newer technologies, never stopping to catch a breath. With the rise of transparency this has become even worse (or better, depending on how you look at things) – now we get to try every alpha, beta or RC of whatever chefs in Microsoft decide to lay upon us.
In a way, I was lucky - at the time the .NET (by my own account, the dominant programming technology on Windows for the foreseeable future) came out, I was too busy working on other things. Thus I practically skipped version 1.0, touched a bit 1.1 and jumped fully in with the 2.0. By the time I needed to do GUI I was already exposed to WPF (.NET 3.0) so I skipped Windows Forms (I did a lot of similar work over the years in MFC and don’t want to do it again, thank you very much). The same happened to ADO.NET: don’t even get me started with all of Microsoft’s technologies for data access – Jet, ADO, RDO, UDA, OleDb, ADO.NET and finally DLinq. I thought DLinq might be the one they’ll stabilize on, but apparently I was wrong since next-next version will brings us entities framework.
The others were not that lucky, they absorbed each and every new thing Microsoft put out. That was their job, you know, the thing that puts food on the table.
It just keeps on going. Year after year, just as we adapt to the new wave another wave comes. Unfortunately, in the last couple of years it was impossible to transfer your knowledge forward. If you were a MFC programmer, not many things worked the same in the .NET. If you’re a Windows Forms programmer, just forget everything you’ve learned when you jump into WPF. If you did some Remoting, it’ll be useful but the model is sufficiently different in WCF. Before we adapt to .NET 3.0 we’ll have 3.5. If we’re lucky, we’ll get a bit of break then, but who knows. Look what’s going on with Silverlight (which is in itself a great technology I’ll talk about in another post).
No wonder people are switching to different platforms. The amount of information to digest is staggering and despite the Rails being moving target, Rails is still easier to follow.
My advice to those sticking to Windows? Try to filter the technology and pick (if you’re in a situation to be able to choose) only the technology that’s obviously:
- fundamentally better than the previous one
- is here to stay (I know, recognizing this is a lot easier said than done)
I’d also recommend against spreading thin over all of the technologies Microsoft offers – if you’re a desktop applications guru, don’t try to be a guru for the Web apps, databases and whatnot. Don’t get me wrong – you almost have to dabble in Web technologies and you must know decent amount of SQL even if you are a SOA architect, but you don’t have to know each and every detail.
To those leaving Windows (some actually are trying to run Rails on Windows, which might become reality pretty soon) and jumping on the Rails bandwagon, I wish you all the best. Rails is a fine piece of technology and Ruby is a great language. I hope you’ll have fun.
Be the first to rate this post
- Currently 0/5 Stars.
- 1
- 2
- 3
- 4
- 5