Archive for April, 2008
Want free access to Britannica Online? Then get blogging…
Last week, Laurence Barry pointed me to Britannica Webshare. So what’s the big deal? Well Britannica Webshare is a new initiative from Encyclopædia Britannica; an initiative that rewards bloggers with free access to the whole of the online version of that encyclopaedia.
If you regularly post to your own blog, then head to their sign up form, fill it in, wait about a week (it’s proved somewhat popular, so give them time) and they should email you back with an access code to give you a year’s free subscription to the online encyclopaedia. What happens after that year is yet to be discovered…
1 commentVista UAC isn’t just annoying and stupid; it’s insecure too!
One of the more annoying features of Vista is User Access/ Account Control (UAC). In theory, it’s a great idea: make the user aware of changes to the system to prevent malware taking hold. In practice it’s hideous. Even if your user account has local machine administrator rights, you still get the prompts and must select “Run as Administrator” (despite being so already) when you want want to do things like change the desktop font size (I kid you not!)
As a consequence of being so annoying and difficult to work with, I – like many Vista users – just turn it off in frustration. This leaves us open to the charge of being irresponsible, due to making our machines insecure. A little utility – iReboot – looks set to rebuff that charge by showing that bypassing UAC is a very easy and so any protection it claims to offer is likely just smoke and mirrors. The makers of iReboot state that
…Windows Vista’s newly-implemented security limitations are artificial at best, easy to code around, and only there to give the impression of security. Any program that UAC blocks from starting up “for good security reasons” can be coded to work around these limitations with (relative) ease. The “architectural redesign” of Vista’s security framework isn’t so much a rebuilt system as much as it is a makeover, intended to give the false impression of a more secure OS…
They split their application in half. One half runs as a service (with full admin privileges), the other as a GUI with normal user privileges. The GUI talks to the service – bypassing UAC – and does what it wants with full, unrestricted access to the machine. And the whole lot installs and runs at start-up without a single UAC prompt (just the same request for an admin password as XP had). Nice one Microsoft!
Read the full details of how NeoSmart bypassed UCA to get their iRebbot product working with Vista.
Let’s all Flash on the Beach again
- It’ll be an excellent three days, full of clever people doing absolutely amazing stuff with what is after all just a glorified internet eye-candy and annoying advert-pushing package.
- It’ll sell out out before the day, so don’t dally in getting your tickets.

I have a love-hate with Flash. I hate and despise Flash-only websites and the really annoying Flash-based adverts that the likes of Sky and Channel 4 force upon us. I consider the flashblock add-on for Firefox to be one of the best add-ons ever therefore. Yet at the same time, I’ve spent the last year of my life writing ActionScript code for what will hopefully develop into a brilliant product from Eurotherm, and I’m moving on in a couple of weeks to write Flex code (amongst other things) for Enigma Data Solutions.
Given my position on Flash, I approached last year’s Flash on the Beach with no small degree of trepidation. But I had a great time and learned a hell of a lot from some scarily clever and a little unhinged people doing some of the presentations (I learned humility mainly).
Sadly it looks as if we’ll be denied an Aral Balkan talk this year (I guess he’s a bit wrapped up in planning Singularity). Aral is worth catching doing a speech BTW. Anyone who can spend half of a one hour talk telling us about himself, then spend 10 minutes of it rebooting his MacBook (due to a cock-up with the network, rather than his laptop) and yet still have his audience feel we’d learned some useful stuff is worth listening to. However, despite Aral’s probable absence, the speaker list is still shaping up to be a good one.
If you are interested in keeping track of developments, the RSS feed of the blog can be accessed here.
UPDATE
Both John Davies (the FOTB organiser) and Aral himself with his comments below – thanks Aral – have confirmed that the latter will be speaking at this year’s FOTB after all. Here’s hoping it’s a good one…
Google Acknowledges St George’s Day

I guess if even Google – an American company – can acknowledge St. George’s Day, we English people ought to too. Anyone any idea what we are supposed to do in celebration? Do we just repeat the beer drinking frolics of St. Patrick’s Day, but without the Guinness; maybe with Real Ale instead?
Answers on a beer token to the usual address please.
No commentsDon’t blame Vista; blame OEMs for filling machines with bloatware
I discovered today that my new laptop has arrived at my new job, which I start in a couple of weeks. The machines were ordered with XP on them I think, but which operating system is installed is a moot point. Before the machine is put to use, it’ll be wiped and a clean install of Vista will be put on it. Why? Well much of what will be on the machine will be pointless “bloatware” that OEMs seem hell-bent on filling new computers up with these days. That bloatware then slows the machine down and makes Vista seem such an unpleasant experience.
Ed Bott posted an article on this very topic yesterday. He cites a friend who bought a Sony Vaio and found it so unusable, he dumped it in a cupboard and bought a Mac instead. When Ed wiped the machine and freshly installed Vista, it turned from a hideously slow machine into a fast, desirable, joy to use bit of kit. So why do these companies insist on turning powerful laptops into horrible-to-use slow monstrosities? Perhaps they all have shares in Apple?
1 commentSingle Core Systems are History
Recently, I’ve been reading a fair bit recently about parallelism in software. It has become a real hot topic in many quarters. Microsoft have been making lots of noises about their alpha release of the Task Parallel library for example and Ted Neward recently waxed lyrically on a recent .NET Rocks! show about multi-threading in Java. He recommended that every Java developer should read “Java Concurrency in Practice” (ISBN 978-0321349606). So why is concurrency becoming such an important topic? The answer is simple: single code systems are rapidly becoming a thing of the past, and the number of cores is predicted to rise exponentially over the next few years.
I stumbled across an article on the Dr Dobbs site today on this subject. As an aside, I was amazed that Dr Dobbs was still going; it was a must-read magazine twenty years ago, but I’d assumed it had long since vanished. The article does read like a Sun advert, but is interesting none the less. The UltraSPARC T2 Plus processor that Sun is shipping in its servers today has eight cores, each of which is capable of concurrently executing eight threads. And two such processors can exist on a single server. That means that we have servers capable of running 128 concurrent threads available now in 2008.
Anyone who thinks that concurrency is an optional aspect of programming, really needs to wake up and smell the coffee. As I’m changing jobs soon and will be switching to a Java development role, “Java Concurrency in Practice” is already on my essential book list. Perhaps it should be on yours too?
Mono team to Microsoft: build Moonlight desklet support into Silverlight
As you may be aware, the Mono team and Novell are creating a version of Silverlight for Linux called Moonlight. As part of that process, the Mono team added a “hack” that enables Silverlight apps to run on a Linux desktop, calling them Moonlight desklets. Miguel de Icaza, who heads up the Mono project blogged about them last year. It looks likely though that unless Microsoft adds its backing to desklets, they will remain a Linux-only hack, rather than a major Moonlight feature.
A few days ago, Miguel posted an update on the progress of developing desklets, and added a call to Microsoft to support these desklets in Silverlight. Apparently the Moonlight team do not plan on porting desklets across to the Mac and Windows, as it is a non-trivial task. I suspect that Microsoft will respond in time (though their focus at the moment must be on getting Silverlight 2 ready for an August release.) If they do not respond, then Flash obviously maintains one big advantage over Silverlight, namely AIR.
class WindowsVista extends WindowsXP implements Nothing
/*
GNOT General Public License!
(c) 1995-2007 Microsoft Corporation
*/
#include "dos.h"
#include "win95.h"
#include "win98.h"
#include "sco_unix.h"
class WindowsVista extends WindowsXP implements Nothing
{
int totalNewFeatures = 3;
int totalWorkingNewFeatures = 0;
float numberOfBugs = 345889E+08;
bool readyForRelease = FALSE;
void main()
{
while (!CRASHED)
{
if (first_time_install)
{
if (installed RAM < 2GB || processorSpeed < 4GHz)
{
MessageBox("Hardware incompatibity error.");
GetKeyPress ();
BSOD();
}
}
Make10GBswapfile():
SearchAndDestroy(FIREFOX|OPENOFFICEORG|AHYTHING_GOOGLE);
AddRandomDriver();
MessageBox("Driver incompatibily error.");
GetKeyPress();
BSOD();
}
//printf("Welcome to Windows 2000");
//printf("Welcome to Windows XP");
printf("Welcome to Windows Vista");
if (still_not_crashed)
{
CheckUserLicense();
DoubleCheckUserLicense();
TripleCheckUserLicense();
RelayUserDetailsToRedmond();
DisplayFancyGraphics();
FlickerLED(hard_drive);
RunWindowsXP();
return LotsMoreMoney;
}
}
}
I don’t know who wrote the original. If I find out, then I’ll update the post to add an acknowledgement.
No commentsFujitsu are due to launch a new laptop on Wednesday … that is made of wood!
Going by the picture alone, I think it looks crap and is likely to be even less practical than the “Mac Airhead” laptop…
See here for the press release.
No commentsOok# makes a monkey out of Obfuscated C
I was listening to the latest .NET Rocks! podcast this morning. The guest was Ted Neward, and he was discussing modern programming languages. He made the comment that there was even a .NET language written for the Librarian and other orangutans called Ook#. This sent me on a search of Google and a surreal voyage of discovery into languages that make the Obfuscated C Contest seem like a stroll in the park.
The C language is infamous for its support of really nasty unreadable code and the Obfuscated C Contest is a mostly annual competition to see who can come up with the “best” examples. One such is a less than conventional “Hello World” solution:
/*
* HELLO WORLD program
* by Jack Applin and Robert Heckendorn, 1985
* (Note: depends on being able to modify elements of argv[],
* which is not guaranteed by ANSI and often not possible.)
*/
main(v,c)char**c;{for(v[c++]="Hello, world!\n)";
(!!c)[*c]&&(v--||--c&&execlp(*c,*c,c!!c+!!c,!c));
**c=!c)write(!!*c,*c,!!**c);}
Some years back though, the language Brainfuck was created by Urban Müller that put such efforts to shame. The Brainfuck “Hello World” solution is:
>+++++++++[<++++++++>-]<.>+++++++[<++++>-]<+.+++++++..+++.>>>++++++++
[<++++>-]<.>>>++++++++++[<+++++++++>-]<---.<<<<.+++.------.--------.>>+.
The line breaks are just for neatness on this blog BTW. They are entirely optional within the language and have no significance. The entire language has just eight operators and cannot be expanded:
> Increment the pointer < Decrement the pointer + Increment the value at the pointer - Decrement the value at the pointer . Write the value at the pointer to standard output , Read a value from standard input and store it at the pointer [ If the value at the pointer is zero, jump past the matching ] ] Jump to the matching [
These eight commands were then translated into Orangutan to give the following eight commands that make up the Ook! programming language:
Ook. Ook? Increment the pointer Ook? Ook. Decrement the pointer Ook. Ook. Increment the value at the pointer Ook! Ook! Decrement the value at the pointer Ook! Ook. Write the value at the pointer to standard output Ook. Ook! Read a value from standard input and store it at the pointer Ook! Ook? If the value at the pointer is zero, jump past matching Ook? Ook! Ook? Ook! Jump to the matching Ook! Ook?
A “typical” example is a program that prints “Ook!”, and it looks like this:
Ook. Ook? Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook! Ook? Ook? Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook? Ook! Ook! Ook? Ook!
Ook? Ook. Ook! Ook! Ook! Ook. Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook!
Ook? Ook! Ook? Ook. Ook! Ook. Ook! Ook!
Ook! Ook! Ook! Ook! Ook! Ook! Ook! Ook.
Ook! Ook? Ook! Ook! Ook? Ook! Ook. Ook?
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook! Ook? Ook? Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook.
Ook. Ook. Ook. Ook. Ook. Ook? Ook! Ook!
Ook? Ook! Ook? Ook. Ook. Ook. Ook! Ook.
Ook! Ook? Ook! Ook! Ook? Ook!
Both Brainfuck and Ook! have been converted to .NET languages (Brainfuck.NET and Ook# respectively) by Lawrence Pit. You can download the source code for the compilers, along with some examples, from here.
1 comment
