Appleseed Ex Machina Review

This month Appleseed Ex Machina (Appleseed 2), another masterpiece by Masamune Shirow, was released so I had to pick me up a copy. As the sequal to the great movie Appleseed the bar is set pretty high already, and it definately lived up to my expectations. The plot.
Deunan Knute, a young female warrior, and Briareos, a veteran cyborg-soldier, are both partners and lovers. As members of E.S.W.A.T., the elite special forces serving Olympus, they are deployed whenever trouble strikes. During a mission involving several high-ranking E.U. officials held hostage by a group of unknown and heavily-armed cyborgs, Briareos is injured protecting Deunan from an ensuing blast. As a last ditch effort by an injured cyborg, E.S.W.A.T. assigns Deunan a new partner, a bioroid named Tereus. Largely based on Briareos' DNA, Tereus was designed as a prototype for a new kind of fighter bioroid. His appearance is very similar to the way Briareos looked before he became a cyborg. Deunan is not agreeable to the idea of having a new partner, but eventually befriends him. (from Wikipedia)
Sounds like a mushy love story doesn't it? :) Good thing this plot gets dressed up with all the cybernetical action goodness you can expect from Masamune: Cyborgs, Bioroids, even humans (I always said cellphones were evil!) go out of control; taken over by a nutty scientist who is trying to make the world a better place. Movie Execution The movie itself is a captivating blend of visual goodness and clever action scenes. Rendering and effects are fantastic, and I get a good chuckle out of the action scene choreography which reminds me of the fresh new style that was introduced by The Matrix trilogy. BUT... East meets west? Where is the liquid red stuff? This is an anime, right? One of the reasons I enjoy watching anime is seeing the raw exaggerated fiction of the harshness of life... IT'S NOT THERE!!! (Okay, its there twice, without any of the exaggeration). It was there in the first movie. If it had not been I would not have cared, but this movie is so clean my 3 year old would ask to see it again! From the occasional abrupt cuts I would speculate it has been sanitized to introduce it to the American mainstream. - Is this another case of censorship, like what happened to Urotsukidōji? That American version was cut up so bad you lost about half the movie. - BAD Warner Video? BAD John Woo? (East meets East?!?) However, I have not been able to find any indications the original Japanese version would live up to this expectation. Please leave me a note if you know more about this. Conclusion Despite the lack of red splattering this movie is definately a must see, worth your time and money! The movie comes in single DVD format (HD-DVD/DVD combo - nice an cheap!, Blu-ray) and Two disk special edition (DVD format). If you have not seen the original Appleseed movie yet make sure you watch it first! Enjoy! - Doc.

Vista SP1 upgrade with Realtek High Definition sound driver v6.0.1.5502 successful!

This weekend I was pleasantly surprised with an available download for Vista SP1 through windows update (why did it take so long?!?). I was fearful of losing my sound with the upgrade due to "SP1 not available cause #5", my driver version is v6.0.1.5502, but the upgrade went well (turns out I have a High Definition Audio Codec, not AC'97, ooops). The custom settings for the sound card were reset (I like to split all input/output jacks into different channels, the default ties them all together), but that was it. Sound is totally functional from the get-go!

Hurrah!

I haven't seen any difference in performance yet. Feels like same old Vista so far.


Related posts:

Vista Easter-Egg

Happy Easter! Here's the "full picture"...
But Vista! You were the chosen one!

Environment.TickCount: Int32 (aka SIGNED integer)

Did you know that Environtment.TickCount returns a signed 32 bit integer? Did you know the sign on this property flips every 24.9 days? From the MSDN documentation: The value of this property is derived from the system timer and is stored as a 32-bit signed integer. Consequently, if the system runs continuously, TickCount will increment from zero to Int32.MaxValue for approximately 24.9 days, then jump to Int32.MinValue, which is a negative number, then increment back to zero during the next 24.9 days. Ouch! Good thing windows updates get pushed once a month (and generally kindly coerce you to reboot); you might not notice the couple of days at the end when you're pulling negative numbers. But alas, today the negative tickcount decided to hit me. I was running unittests and noticed I was sending out negative request numbers?!? WTF! ROTFL! :) A little investigation turned up the culprit; trusty old TickCount wasn't that trusty after all. (That will teach me for stopping the windows update service to stop the reboot nagging, right?)
What happened to the days when you could boast about your system uptime? My linux box easily ran into hundreds of days (the resets were caused by power outtages)! What happened to my linux box?!?
What is a developer to do? Eureka! You can cast it to a Uint32! Twice the positive size, twice the fun, right?

UInt32 tickCount = (UInt32)Environment.TickCount;

Nah, you'll still wrap around after 59.8 days, which means you cannot use it to calculate the system uptime or measure time intervals... Here's how to calculate system uptime:

PerformanceCounter uptimeCounter = new PerformanceCounter("System", "System Up Time", true); uptimeCounter.NextValue();// init counter float uptime = uptimeCounter.NextValue(); // get uptime in secs TimeSpan uptimespan = TimeSpan.FromSeconds(uptime); Trace.WriteLine("Uptime: " + uptimespan.ToString());

And this is how you measure a time interval:

Stopwatch sw = new Stopwatch(); sw.Start(); // do lengthy stuff sw.Stop(); Trace.WriteLine("Elapsed: " + sw.Elapsed.ToString());

Enjoy! - Doc. How do YOU determine your system uptime programmatically?

ClientCertificates and WebException: The request was aborted: Could not create SSL/TLS secure channel.

If you are using X509 ClientCertificates with a webservice client called from IIS and the service endpoint uses the HTTPS protocol (SSL) the following exception can occur: WebException: The request was aborted: Could not create SSL/TLS secure channel.
System.Net.WebException: The request was aborted: Could not create SSL/TLS secure channel. at System.Web.Services.Protocols. WebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols. HttpWebClientProtocol.GetWebResponse(WebRequest request) at System.Web.Services.Protocols. SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
The curious part is that everything works great while running unittests on the service directly; it's IIS that throws a wrench in it. To add some more grief to the equation this particular scenario played out in a test environment with self-signed certificates. So my initial investigation concentrated on making sure the root certificate was in the right place (LocalMachine\My and Root). All seemed well, but the exception persisted. I resorted to disabling certificate verification, still the exception persisted. Finally Microsoft KB article 901183 'How to call a Web service by using a client certificate for authentication in an ASP.NET Web application' put me on the right track:
Step 2: Configure access to the client certificate In this step, you must grant permission for the ASP.NET account to access the client certificate that is stored in the local machine store. The Network Service account is the default account for running Web applications on Windows Server 2003. Therefore, you must grant access to the certificate for the Network Service account. If you have configured a custom account to run ASP.NET, you must grant access for the custom account. Note In Microsoft Internet Information Server (IIS) 5.0, ASP.NET runs under the ASPNET account and not under the Network Service account. Therefore, you must to grant permissions for the ASPNET account on a computer that is running IIS 5.0. To grant access for a specific user account, run the following command at a command prompt: WinHttpCertCfg.exe -g -c LOCAL_MACHINE\MY -s "IssuedToName" -a "AccountName"
And voila! My service client happily zoomed along again. Why did it work while unittesting and not in IIS? The certificate was installed under the developer account, which grants the necessary permissions to the private key for that account immediately, but the NetworkService account was lacking them which caused the underlying connection to be closed... Microsoft has included the tool FindPrivateKey in the Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) and Windows CardSpace Samples which can help you locate the private key file and check (and change) its permissions. I hope it helps some of you out there struggling with the same issue!

My Latest Track