Udo's Techblog

Mac Neophyte Tips: XCode crashes on startup

If this looks familiar to you, here are some suggestions:

Have you installed Safari 4 (Beta) recently?
If so, that's probably what blew XCode's tiny little mind. Go to the Apple Dev website and download the latest XCode release (if in doubt, use the link I provided, because the "normal" way of getting to the package through the developer portal is almost always broken).

Have you sync'ed your hard drive from another Mac?
If so, this might be a permissions problem. Go to Disk Utility and run "Repair Permissions" or open a Terminal session and enter
diskutil repairPermissions /
to restore normal file permissions. That also works when other programs are not starting up.

Have you tried turning it off and on again?
Kinda silly, try re-installing the package. Clear out your user's Library/Application Support/Xcode/ directory and any other places where faulty configuration data may be stored. I know it sucks, but if the previous options didn't work out for you, it means your install is somehow hosed. In that case, let me close with some solid instructions from the Google Maps team:
> Turn left on Comstock.

> When you feel the blood chill in your veins, stop the van and get out. Stand very still. Exits are north, south, and east, but are blocked by a Spectral Wolf.

> The Spectral Wolf fears only fire. The Google Maps team can no longer help you, but if you master the Wolf, he will guide you. Godspeed.
Posted on 2009-04-17 15:04:54 | Comments

The Caprica Pilot



Time to beef up my geek street cred: I've finally watched the Caprica pilot! It's out on DVD first, before it will be aired leading the rest of the series in 2010. By the way, don't watch the "Exclusive Clip" on Amazon, somehow they managed to find the most boring 3 minutes of the film and put it out there as promo material.

The Good
Despite its slow, deliberate pacing the movie was compelling. The actors, cinematography, dialogue - everything was done very nicely and competently. Caprica takes place about 60 years before the extinction of humankind, and we finally get a peek into the larger history that lead up to the holocaust. Apart from the fact that we get another set of tales from the BSG universe, Caprica interestingly also depicts a society very much like our own and offers a glimpse at some of the problems we may face in the next few decades. Wrapped inside a SciFi opera we witness the birth of the first true AI, which is always cool.

The Not-So-Good
I loved the fact that Caprican society is technologically pretty much like ours (maybe 10 years ahead at most and except for the space travel thing) and as such we get to see many familiar gadgets in a slightly different format. However, at times the producers and set designers took the easy way out. I know, it's so geeky of me, but: was it really necessary to have them use actual USB ports and other gadgets that are so specific to Earth? That was just not believable.

Another point: Some of the special effects were really bad, for example the robot fight at the end looked like it was screen-captured off an outdated FPS with very unconvincing graphics.

Downright Ugly
It annoys me that people in the movies never back up their hard drives. It's a dramatic plot device, but it's also really unrealistic that computer systems of the future can somehow just move and not copy data. In Caprica, it doesn't occur to Greystone to make a frakking backup of the hard drive where his dead daughter's brain is stored! It's like he's doing it to squeeze some drama out of the very predictable event when the only copy gets destroyed during an experiment ;-) Yawn. Not good.

Next: The religious angle has already been annoying me to no end in BSG, and the finale made it worse because it first verified the Cylons' absurd belief system, and then hammered it into the viewers' brains with a blunt instrument, just to make sure. Somehow they took it to a whole new level of badness in Caprica, because pretty much everything the characters do is somehow connected to religion. From the traditional hell-like V-Club at the opening (very American: sex, drugs and violence are apparently all the same thing), to the extremist suicide bombing at the center of the story, down to the very end when Adama and Greystone have their tired discussion about the divinity of the human soul. Like BSG, Caprica fails to acknowledge the existence of any kind of morality independent of a very literal concept of God(s). Double Yawn.

Now, buy it
Despite all that, I enjoyed Caprica. It's captivating and nicely paced, with at times stunning imagery. With the imminent cancellation of Dollhouse and Terminator SCC, I look forward to a new series about artificial intelligence and trans-humanism.

Related posts:
Battlestar Galactica goes out with a whimper AND a bang
Posted on 2009-04-17 12:48:36 | Comments

Awesome: 3D comes to the browser (Canvas3D)

Go ahead and grab the latest Firefox Beta (at least 3.5b3) and install the Canvas3D add-on which is hopefully going to be part of Firefox /trunk very soon.

There are already some pretty awesome demos out there, and there is no doubt in mind mind that we're going to see a lot of cool browser-based gaming content in the very near future. Between Canvas3D and other advances in JavaScript graphics, I hope Flash and Silverlight die the painful deaths they so richly deserve - rather sooner than later.
Posted on 2009-04-14 13:58:46 | Comments

A tale of unfulfilled potential (Ada Lovelace day)

Today is, as you may know by now, Ada Lovelace day - commemorating the lifetime achievement of the world's first modern information technology theorist. Like many of today's geeks, Lovelace's biography shows a life that was heavily influenced by bodily limitations, which in turn may have contributed to an emphasis on mental accomplishments for compensation: the countess had been suffering from extreme migraine attacks and repeated, severe childhood illnesses that forced her to stay indoors and develop her mathematical skills. Also, a profound desire to overcome the insanity and irrationality that she saw in her father, the poet Lord Byron, may have helped Lovelace's fondness of analytical skills along.

Mary Somerville, one of the countess' many acquaintances on the international stage of early science, introduced her to the English inventor Charles Babbage in the year 1833. Babbage had been working on mechanical computing equipment such as difference engines and something called the Analytical Engine, which would have been the first Turing-complete device on the planet.

If Babbage was the first computer hardware designer, Ada Lovelace was the first software developer. The Analytical Engine's design did support machine language constructs such as loops and conditional branching. Though much of the exchanges between Lovelace and Babbage will forever remain a matter of speculation, it is fair to say that Lovelace was one of the very few people on earth who fully internalized the nature of this project - and she certainly was the only one who, by using its language, could breathe life into this concept that later changed the world beyond recognition.

Only 36 years old, Ada Lovelace died of cancer in the year 1852. She left behind numerous notes and algorithms on paper but ultimately her potential, her destiny, remained tragically unfullfilled. Decades later, time was running out for Babbage as well, who was still solving mechanical problems preventing the complete assembly of the Analytical Engine. In the end he died before it could be finished, the machine was never completed, Lovelace's program never ran on its mechanical registers.

It is difficult to say how the world would look like today if she had had, say, 30 more productive years left to fully execute her theoretical work. Certainly, there would have been no necessity for Turing to re-discover and formalize the groundwork of information processing as the building blocks of it were already being used by Lovelace a hundred years before that. Our civilization could have had electro-mechanical computing devices a lot sooner, which in turn would have accelerated science across the board just like it did in the mid-nineteenhundreds.

Maybe, our culture would have been different as well. Today, we are still fighting against the cultural bias that keeps the percentage of women in science at very low numbers. We've come this long way, and we still have not managed to overcome the man's image as a "creator of things" and the woman's role of a passive consumer, especially when it comes to computer science. Luckily, this is changing, but the pacing can only be described as glacial. If you don't believe that, head over to the next university and do a quick headcount of the student body in the CS department.

As we seem to gradually slip into a more conservative age (again), old gender roles are not abolished like we hoped but are receiving a new lease on life. I wish I could say something more optimistic, but the prevailing emotion here is frustration with our culture across the board. What a waste. Imagine what could have been had Ada Lovelace been given just 30 more years to make her contribution. But over 150 years later, we are still wasting so many lifetimes, so many opportunities, so unmentionable amounts of intelligence, creativity and brilliance over a reflexive adherence to a doctrine of what people should and should not contribute purely based on their gender.

Thus, the view into an average Computer Science classroom becomes symptomatic for our entire culture. People are often thinking about concrete steps to get more girls into informatics and that's laudable. But there is a larger problem to see here, and we can't just fix this small leak while we ignore the gaping hole right next to it. You cannot promote faith-based initiatives and expect advances in women's equality. You cannot teach "family values" and expect girls to show up for anything but traditional healthcare jobs. You cannot make "abstinence only" the cornerstone of your ideals and expect a new generation to become well-informed critical thinkers.

It's annoying that it actually had to be said again, but we still are in desperate need of equality. We are not there yet. We live in a society where a woman can become whatever she dreams of, but that is just the basic prerequisite on the way to a truly free society. Now we need to work just as hard to remove the centuries of corruption that still pollute our dreams.
Posted on 2009-03-24 15:49:28 | Comments

Battlestar Galactica goes out with a whimper AND a bang

I'm probably the last person on the planet to post about this, but BSG ended its run as scheduled last week. Throughout the series we have seen some very cool special effects, dialogue and drama - but there has also been a fair share of nonsense, boredom and inconsistency.

In some ways, the finale was what I expected: the biggest mystery of all, the death of Starbuck, was not explained. Instead we were fed some lame-ass story of her being some kind of revenant entity sent back by God to complete her mission. Even taking this plot abomination into account, it still doesn't begin to explain how her remains got from the gas giant to Old Earth, or how the frack she got the FTL coordinates for New Earth into her head just in the nick of time. Oh well.

The battle scenes were short but wonderful, as usual. It was all pretty dramatic, underscored with an epic soundtrack, but overall too few characters actually died during the final showdown:

Tory
Though Tory really had it coming, it was absolutely unconvincing that the Chief couldn't wait five seconds until the download was complete before he strangled her, when the fate of two civilizations depended on it. And in order to buy into this insane character motivation you have to discard the fact that he didn't love or even like Cally, so why does he have to kill off two entire species in retaliation for her death again?

Cavil
Aside from his eventual and completely out-of-character suicide, I loved every scene with Cavil. As usual, he had some of the best lines ("...I don't wanna rush you or anything BUT YOU'RE KEEPING TWO CIVILIZATIONS WAITING!") and he really kicked some ass in a very cool way when he invaded Galactica with that platoon of centurions.

President Roslin
She's been dying for four years now, this really wasn't a surprise. And it was one of the nicer moments, too. The goodbye scene with Adama was one of the few truly moving moments.

Boomer
Finally, someone just shot her and got it over with. This character has been going nowhere for too many episodes, but they still kept her around whenever they needed someone to do something really stupid and twisted. Sadly, her death wasn't as satisfying as it should have been, as she got shot for performing the frist and only selfless act of her entire life. The utterly needless flashback cut-scene (they all were totally useless filler material by the way) didn't help to conceal the fact that it absolutely made no sense for Athena to shoot her for actually returning Hera.

Anders
I never understood why they couldn't just let him die earlier. After that bullet to the head he was braindead for fuck sakes! Well, at least he was good enough for piloting the entire fleet into the sun, an act that actually had me screaming at the screen for its abysmal stupidity.

However, even more impressive were the plot holes the finale failed to stuff. In the end, nothing mattered. Nothing at all. The final stand of Galactica at the black hole was dramatic but it didn't have any impact on the plot. Starbuck already new the right coordinates, and Hera wasn't really that special after all. The ending is beyond bleak, but they sugar-coated it so much it's hard to notice: the Cylons as a species are all condemned to die within hundred years, because they are seemingly too stupid to rebuild the resurrection technology after their only copy of it blew up. And the humans? They dumped all their knowledge, destroyed all their technology, and eventually all died off on New Earth, completely failing to make any kind of impact or leave any kind of legacy behind from which the new civilization could have learned anything to avoid the mistakes their ancestors made.

It may have been a Hollywood ending with its classical moralistic overtones, but it only mildly disguises the fact that the writers didn't have any clue how to tie it all together. And, keeping this in mind, they actually didn't do such a bad job with the final episode...

The Cylons - they did not have a plan.
Posted on 2009-03-24 12:56:10 | Comments

Ryanair doesn't want nor deserve your business

I've known this since the time when they left me stranded at some god-forsaken airport in rural Italy with no further explanation or even so much as a kind word. I paid over 500 € extra that day just to get home at all, in addition to what I already gave Ryanair for my worthless ticket ("hey, come back in a few days, we might have a flight for you"). Anyway, you get what you pay for, and that includes friendliness and a basic level of customer care. So, no, the recent insight into the true Ryanair spirit didn't really surprise me.

The simple solution is to not buy tickets for Ryanair flights. They're not worth it anyway: if you're really lucky you get a ticket for less than the standard airfare of a real carrier, but don't forget to take into account that you have to spend extra time and money just to get to and from the provincial cattle-transport runways where Ryanair typically does its business. Also, they might cancel your flight without substitution and they won't tell you until you already spent a few hours crammed into one of those crowded, dirty hangars they outrageously label a "flight terminal". For just 99 you can get a decent Lufthansa flight to and from any major destination within Europe, and you'll travel actual airports, not some broken-down old army bases in the middle of nowhere.
Posted on 2009-02-25 23:31:44 | Comments

Schizophrenic or just corrupt? You decide.

Amidst the Pirate Bay show trial nonsense, you'd never expect this
Since I know that we the authors are affected by file-sharing, I think this is an excellent chance to take a stand. [...] I'll try to write something and would like to encourage members to do the same. [...] Furthermore, Monique would love to see us coming to the court in person. As things look now, the whole situation is dominated by the pirates.
...to come from the same person who also wrote this:
Because I want to watch movies that can neither be rented anymore nor bought on the Internet. I want to read books that are out of print and will cost you 750 British pounds on eBay. For that reason, I want The Pirate Bay to stay. At the moment, I'm trying to download John Schlesinger's 'The Day of the Locust'; it takes time and it's not even certain I'll get a copy that is watchable - but at the same time I have no idea how to get the damn flick any another way....
and this
The Pirate Bay is an invaluable source for content that publishers, record labels and movie studios for some reason can't or won't offer. If someone on The Pirate Bay chose to download the book I wrote in 1989 I would have no objection to that. That novel is practically impossible to get hold of and as an author I want to be read.
...so does that make Swedish novelist Carina Rydberg actually corrupt or just mentally incompetent? Personally I'll go for opportunistic and hypocritic. Ah... comedy gold. Kudos for digging this up, Techdirt.
Posted on 2009-02-24 10:01:51 | Comments

The case for Web apps

Neil McAllister caused quite a stir with his quick remark about the deficiencies of web apps. While web apps justifiably are a good target for criticism, I feel that his points are badly chosen.

Client-server

Web applications encourage a thin-client approach: the client handles UI rendering and user input, while the real processing happens on servers. What sense does that make when any modern laptop packs enough CPU and GPU power to put yesterday's Cray supercomputer to shame?
The browser is not a thin-client, at least not in the traditional sense. The amount of processing power that goes into displaying your web app is higher than most people think. A browser is not a trivial application. People tend to forget that, because creating HTML is so damn trivial they are somehow fooled into believing that they might just as well create more powerful display code on their own. They're mistaken.

In fact, the distribution of processing, storage and rendering power has proven to be quite robust. Data centers are very well optimized for delivery and reliability, while client machines have gotten quite powerful UI advances. Offline functionality remains a problem, though. Google Gears is not going to fix that any time soon, because it just introduces one more complication and abstraction into the code. Look at the time it has taken them to integrate Gmail, arguably their number-one web application. I happen to believe that running fully functional local servers is an often-underestimated choice. At least that way developers have to code the majority of their app just once (instead of twice: server-side code for the real functionality and then again in obscure Javascript calls for a limited offline mode, and probably once again for synchronization).

Now, this part cracks me up:
Furthermore, security vulnerabilities abound in networked applications, and the complexity of the browser itself seemingly makes bugs inevitable. Why saddle your apps with that much baggage?
Sure, browsers have vulnerabilities (some more than others). But how on earth do you arrive at the conclusion that if individual developers all implement their own clients, we'd somehow arrive at more secure and stable applications? Have you ever written widely deployed client UI code yourself? Probably not, otherwise you would recognize how utterly mistaken that approach is.

On the messieness of web UIs

The Web's stateless, mainly forms-based UI approach is reliable, but it's not necessarily the right model for every application.
That's actually true. It was a big mistake not to make some sort of IRC-like protocol part of the standard web technology stack. In fact, IRC would be perfect. It would enable developers to run servers with a realtime communications channel, with very little overhead and high efficiency. I hope we'll get there. There is no reason this couldn't be part of the standard browser somehow.

This is where it gets hilarious again:
And while systems programmers are accustomed to building apps with consistent UI toolkits such as the Windows APIs, Apple's Cocoa, or Nokia's Qt, building a Web UI is too often an exercise in reinventing the wheel. Buttons, controls, and widgets vary from app to app. Sometimes the menus are along the top, other times they're off to the side. Sometimes they pop down when you roll over them, and sometimes you have to click.
Really? Because Win32 and Cocoa applications all have a consistent UI? Someone give me a pipe of whatever that guy is smoking. I'll take standard web-based buttons over, say, a "real" Windows UI anytime. At least the web does have a standard way to call components. Have a look at the Win APIs' specs and tell me the same is true for Microsoft's desktop with a straight face. And tell me that Flash UI isn't a total trainwreck. Please.

The limits of browser technologies

There are some distinct areas where the browser tech stack is severely limited. I already mentioned real-time communications channels and offline functionality. In fact I'd like to expand that with two more: SVG and VRML (or a better 3D environment). It's a shame that SVG isn't better integrated, some browsers don't support it at all. Most of the current 2D UI limitations could be solved with SVG if someone had bothered to think that through instead of assuming SVG to be just another image format for eccentric people. The state 3D UI is even worse. VRML had a lot of promise, but it's not in any way supported by any of the major browsers. It should be. And add some media (especially sound) support to browser scripting. That's it, the whole list of improvements. That's all we need to fix and it's not like there are any real technological difficulties to overcome for these improvements to happen. Like the space program, it's a severe lack of vision and focus that got us to the artificial limitations we have to live with today. And not one of them is caused by a fundamental inability of the browser concept to live up to those tasks.
What's more, HTML and CSS are clearly deficient when it comes to rich interactivity. Witness the proliferation of multimedia plug-ins such as Flash, QuickTime, and Silverlight. Relying on these outside dependencies increases the complexity and support cost of your applications.
Flash and Silverlight are the scourge of the web. They're resource-hogging abominations of eye-gouging inconsistency and prime examples of everything that can go wrong with UI. The reason those applets suck so much is not complexity and support cost. It's their whole concept that makes them that way, and it doesn't matter if they're integrated into the browser itself or just plugins, they are still the worst possible choice for 95% of all things you might want to do on the web. By the way, those every more prevalent Flash games? 95% of them could be done in DHTML and they'd be more enjoyable for it. Flash and Silverlight, give me a break! In fact I'm glad they are plugins, so I can at least block them more successfully from harassing me.

Big vendors calling the shots

Recently, Sun Microsystems CEO Jonathan Schwartz described the browser as "hostile territory" for independent developers. It's a world divided between giants, he said, with Microsoft's Internet Explorer on one side and Google's stake in Chrome and Firefox on the other. Schwartz's statements may be self-serving, but he does have a point.
It's too bad you can't see me right now, because now I'm really laughing my ass off over here. First, when did Sun become the friendly and powerless underdog who has any right to complain about bad technologies sucking up valuable developer resources because of mass market muscle? The sheer audacity, it's mind-boggling! From the creators of Java, for chrissakes, this is comedy gold!

Anyway, Firefox (and, by extension the whole open source community) is not exactly what I would call a big vendor seeking to enslave the mindless masses of powerless users. If there is one big lesson to be learned from the exponential growth and success of the internet, it is how an extremely low barrier of entry combined with no-bullshit, actual freedoms for developers can make radical change possible in the first place. With the way the web works today, I can develop a complete application on frigging Notepad, deploy it on an open source server stack, and anybody with any browser and any operating system in any part of the world can use it instantly. Contrary to what you might have been lead to believe, there is no Java EE necessary in any of these steps, nor do I need Visual Studio for this. How perverse to suggest otherwise.

Should every employee have a browser?

At one point, a computer on an employee's desk was for work. Today, every Web-enabled PC is a gateway to shopping, TV and movies, games, music, online chat, and countless other diversions -- up to and including more illicit activities, including porn and copyright infringement -- to say nothing of making them vulnerable to phishing and malware attacks.
Oh my god, really? You know, people who are bad employees have indeed been slacking off long before the internet came along. You do get that, don't you? Useless people are all everywhere, how is the web responsible for that? And most people are not even really useless, but tend to slack off once in a while.

Employees do occasionally use company time for personal stuff, within limits that's unavoidable and even healthy. Conversely, if it has come to the point where you feel it's appropriate to surf porn at work, you and your employer have bigger problems than the shocking lack of innate censorship options built into contemporary IT systems.

The watchword is responsibility. Censorship and draconian restrictions are in fact not a substitute for commitment and responsibility, contrary to what you might have learned from the way our government is run. To blame the internet for moral degradation is in vogue, but not very smart. There's a touch of evil and totalitarian stupidity to that argument, even.

Neil, your article is ill-conceived and it's hard to see why it got so much undeserved attention, but there you go, that's just a weakness of the web I guess. Instead of invoking straw man reasoning and using ignorance as if it were a virtue, you could have used the popularity of InfoWorld to actually carry a constructive message across by addressing what specifically should be fixed (like I did above). But alas, what a waste.
Posted on 2009-01-29 17:42:56 | Comments

Try the Popsickles of Nerdia RPG

Journey across the mysterious world of Nerdia, where awkward pop culture references meet tired stereotypes in battle and adventure! Popsickles of Nerdia is an RPG-ish adventure game with an extremely weird story and the most terrible graphics you have ever seen!

It's a spam-free, well-behaved Facebook Application! :-)
Posted on 2009-01-21 01:25:32 | Comments