Monday, March 12, 2007

I dislike quoting actors and directors and the like because I generally consider them too out of touch with reality to have much to say that bears on my life or the life of anyone who doesn't live in a meticulously constructed fantasy world.  This NPR interview with Frank Miller (wrote the graphic novel the recent film "300" is based on) shows surprising clarity for "one of those hollywood people".  I'll post the same extract here as I read on The Atlasphere.  I am specifically talking about the notion of cultural equality:

From the interview:

NPR: […] Frank, what’s the state of the union?

FM: Well, I don’t really find myself worrying about the state of the union as I do the state of the home-front. It seems to me quite obvious that our country and the entire Western World is up against an existential foe that knows exactly what it wants … and we’re behaving like a collapsing empire. Mighty cultures are almost never conquered, they crumble from within. And frankly, I think that a lot of Americans are acting like spoiled brats because of everything that isn’t working out perfectly every time.

NPR: Um, and when you say we don’t know what we want, what’s the cause of that do you think?

FM: Well, I think part of that is how we’re educated. We’re constantly told all cultures are equal, and every belief system is as good as the next. And generally that America was to be known for its flaws rather than its virtues. When you think about what Americans accomplished, building these amazing cities, and all the good its done in the world, it’s kind of disheartening to hear so much hatred of America, not just from abroad, but internally.

NPR: A lot of people would say what America has done abroad has led to the doubts and even the hatred of its own citizens.

FM: Well, okay, then let’s finally talk about the enemy. For some reason, nobody seems to be talking about who we’re up against, and the sixth century barbarism that they actually represent. These people saw people’s heads off. They enslave women, they genitally mutilate their daughters, they do not behave by any cultural norms that are sensible to us. I’m speaking into a microphone that never could have been a product of their culture, and I’m living in a city where three thousand of my neighbors were killed by thieves of airplanes they never could have built.

NPR: As you look at people around you, though, why do you think they’re so, as you would put it, self-absorbed, even whiny?

FM: Well, I’d say it’s for the same reason the Athenians and Romans were. We’ve got it a little good right now. Where I would fault President Bush the most, was that in the wake of 9/11, he motivated our military, but he didn’t call the nation into a state of war. He didn’t explain that this would take a communal effort against a common foe. So we’ve been kind of fighting a war on the side, and sitting off like a bunch of Romans complaining about it. Also, I think that George Bush has an uncanny knack of being someone people hate. I thought Clinton inspired more hatred than any President I had ever seen, but I’ve never seen anything like Bush-hatred. It’s completely mad.

NPR: And as you talk to people in the streets, the people you meet at work, socially, how do you explain this to them?

FM: Mainly in historical terms, mainly saying that the country that fought Okinawa and Iwo Jima is now spilling precious blood, but so little by comparison, it’s almost ridiculous. And the stakes are as high as they were then. Mostly I hear people say, ‘Why did we attack Iraq?’ for instance. Well, we’re taking on an idea. Nobody questions why after Pearl Harbor we attacked Nazi Germany. It was because we were taking on a form of global fascism, we’re doing the same thing now.

NPR: Well, they did declare war on us, but…

FM: Well, so did Iraq.

I'm not a big GWB supporter these days but I agree with what Frank Miller is saying about culture.  The notion that we can't condemn people for holding onto barbaric practices like enslaving women and mutilating little girls because "that's their culture and no one's ideas are any better than anyone else's ideas" quite frankly has gotten old and will be the downfall of western civilization if not checked.  What's funny is that a nation like Iran or the various African nations engaging in what most of the civilized world regards as insane human rights violations can take the stage at the UN and condemn the United States for our various questionable practices.  Iran can blast the US for not sending enough troops to Darfur or something, meanwhile the world should turn a blind eye to its Barbarism.  This is why the UN is a joke in my opinion.  The international community has done a poor job of working out Standards for Participation.  You want to be in our club? (where our club is trade, assistance, etc)  You have to follow our rules, and our rules must include some fundamental standards for human rights within member nations.  The US is absolutely not without its flaws, but Murderers and dictators should not be able to take the stage at the UN to crticize civilized nations.

I'm sure I'll get blasted for this, flame on.

Monday, March 12, 2007 11:20:46 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Sunday, March 11, 2007

I am running VS2005 on Vista with the Beta of the patch that allows it to run on Vista or with some Vista specific enhancements.  I set the ide .exe to always run as administrator and cannot get over the fact that it still asks me if I'm sure every time I run it.  This is ridiculous.  Of course I could turn off UAC but part of the reason for doing this was to learn the ins and outs of what my clients will experience with Vista.

I got the Smartphone 2005 SDK and am working on a smartphone video game which will be the subject of a few posts: nothing innovative at this point but if I can leave MotorStorm alone for long enough I'll get into some interesting code.

.NET | Gaming
Sunday, March 11, 2007 5:00:51 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Friday, March 09, 2007

Oddly enough compiling a console program with VS2005 that uses only the most basic Win32 functionality (release mode) does not gaurantee it will run on other computers.  That's swell since not having to distribute the .NET framework or bootstrapping a .NET framework install are common reasons for creating native programs.  At any rate, if you distribute an uber-simple C++ .exe built with Visual Studio 2005 (I hear Visual C++ Express Edition has the same issue) you may get an "The application configuration is incorrect" error in Windows when attempting to run.  In my case, the answer was in the Event Log showing an error that the Partial Assembly VC80.CRT could not be resolved.  Sounds like some bizarre dependency on Visual Studio libraries are built in by default.  The solution I Googled around and found is to statically link parts of the C runtime used by ATL, even though my app happens to not be using ATL according to the Linker.  Here is the setting in my console application property pages:

 

Statically linking to the C runtime is probably a terrible idea for significant projects but for my .NET bootstrapper it'll be fine.  If you are building a significant app or don't want to statically link in this fashion, google the error in the Event Log to find instructions on building the .exe manifest and such.

Friday, March 09, 2007 1:14:07 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Friday, February 16, 2007

Check this post on Joystiq:

http://feeds.joystiq.com/~r/weblogsinc/joystiq/~3/91677544/

Check this quote:

" In short, the single- and multi-player elements of the game are merged, so those heretofore mindless enemies -- yup, they're your fellow carbon-based mammals."

Now, that's kid of an interesting idea.  I picutre either playing as the Hero with actual smart enemies but otherwise being mostly like any other game, or putting yourself in the "bad guy peon" queue.  In this queue you would play different bad guys with their own moves/powers/weapons/whatever but ultimately far weaker than the Hero since in all games the hero must kill 343,999,777 weaker peons before he can get teh powar up win teh game!  You would play for a short deathmatch-ish time then wait in line until the system needs to spawn another bad guy, possibly jumping from game to game depending on a centralized server sending bad guys to whatever system they are needed.  A cool idea, and one more to add to my list if they bring out an Xbox360 with HDMI.

Friday, February 16, 2007 11:23:54 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback
 Thursday, February 15, 2007

News about UAC in Vista is all over the web.  As a developer of shrink-wrap desktop software I thought I’d continue my string of “comments” (ok, bitching) about Vista now that I’m in a better place.

The most obvious places where UAC “helps you be more secure” are:

·         Writing to the registry requires elevation

·         Assumes any setup program needs to be run with Admin privileges

·         Writing to the \windows folder requires elevation

·         Writing to the \program files\ folder (and all folders below it) requires elevation

Another interesting tidbit is that Vista ships with .NET 2.0 installed.  That’s good news.  However MSI files built in VS 2003 will demand that .NET 1.1.4322 is installed despite the fact that .NET 2 should run those apps just fine.  Oddly enough, navigating to \windows\Microsoft.Net\Framework\ on a Vista install will show the following directories:

1)      V1.0

2)      V1.1

3)      V2.0

4)      V3.0

However the v1 directories do not have the full install, just some GAC tools presumably for sort of tool compatibility, so tests detecting a specific  1.x version will fail.

One interesting thing I tried but ultimately did not go with was marking my application so Vista knows it needs to run with Admin permissions by embedding a manifest in the .exe.  I found instructions for what the manifest should look like and a made a post-build event that would embed the resource in the assembly.  This worked well and Vista displayed my .exe with a nice “shield” overlay letting the users know they’d be prompted to elevate.  Sticking this .exe inside an MSI seems to clobber the manifest however, using dumpbin.exe confirms this.  Rather than dig for the answer to this I made some code changes as indicated below.

For this software developer, here are the changes I had to make to get a product running on Vista as painless for the user as possible:

1)      Created a .NET v2 version of our product.  Granted, I’d rather use 2.0 across the board but some of our customers won’t upgrade and we sometimes distribute via http so a bootstrap including the 2.0 install is a little bigger than where I’d like to be.  I did this by sharing the individual files across two VSS projects and just creating separate project/solution files for 2.0 in a different location.  Thanks to Matt Terski for the tip.  This feels evil for some reason but it works.

2)      Re-wrote the installers.  The .NET 1.1 installers accomplish some of the installation tasks with Custom Actions written in .NET.  Some of these actions do things like registering a device with a WIA event using the WIA automation layer and therefore require admin permissions.   While I would think the MSI would spawn my .net EXE with the same security tokens  (already elevated and using the admin token) as the parent process this did not seem to be the case as the custom actions reliably crashed the install every time.  I set up the MSI to write the same registry keys that the WIA code would have done and worked around the other custom actions so that everything is part of the MSI.  Since the installer writes to the registry, it must still install with elevated permissions.

3)      Non-Admin Logging Mode.  Previously the application did innocuous things like Write a log file in the same directory as the .exe using log4net.  I had to do some digging to find how to change a DOM configurated FileAppender location at runtime (http://insario.com/blog/jfk/archive/2004/11/30/164.aspx) and change this from \Program Files\MyProgram\ to a user-specific location if the code runs on Vista. (OS version = NT 6.0blahblah)

4)      Non-Admin App settings.  Written in .NET 1.1 initially the app used some dynamic windows forms properties: GUI features bound to an App.config setting.  Since App.config lives in \Program Files\MyProgram updating these properties also wasn’t going to be non-admin friendly.  Somewhat loathingly, I added a “Settings” file to the .NET 2 project.  And set the code to use settings vs. writing to app.config with some conditional compilation.  Hooray for #if NET2.  The Settings feature wasn’t trumpeted like MASTER PAGES AND GENERICS when .NET 2 was rolling out but it’s worth looking into if you are not familiar with it.  Settings can be marked with a UserScopedSettingAttribute()  or regular old Application Scope.  User scope settings are stored in a User specific location (although I’m damned if I could find the file itself but it works) and therefore no elevation needed.  Nice of .NET 2 to handle that for me.  This is probably a better design choice anyway but again it’s mainly a 1.1 app.

Now my code installs as Admin and then happily does all its Camera/WIA/Exif/Internet hooha without requiring elevation.  Digging through the UAC documentation to see where I was going wrong was frustrating at first, and if anyone knows how I can keep an MSI created in VS2005 from clobbering my manifest (at install time or packaging time, I’m not sure which) that will probably come in handy at some point.

Thursday, February 15, 2007 10:46:02 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback
 Wednesday, February 14, 2007

I love this article on Ars today

http://arstechnica.com/news.ars/post/20070214-8849.html

A quote:

... "

First and foremost, ratings based on partial game footage would become a thing of the past. Currently, the ESRB hands out ratings after viewing a reel with representative content prepared by the developers. Sen. Brownback thinks that's not enough: "Video game reviewers should be required to review the entire content of a game to ensure the accuracy of the rating," he said. "The current video game ratings system is not as accurate as it could be because reviewers do not see the full content of games and do not even play the games they rate."

"...

Good call, Mr. Out of Touch With Reality.  Does that mean all 80 hours of Final Fantasy XII should be "watched" before the game can be reviewed?  Maybe just a slide show of every model, texture, and environment and a dump of all sound used in the game?

Wednesday, February 14, 2007 3:27:49 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

http://www.bloody-disgusting.com/news/8211

Yes, they are looking to make movies or a TV Series about the Dark Tower books.  I'm pretty sure there's no way this can turn out well, and so I'm sad.  I'd rather stick with my book and audio book versions of this 7 novel story.  I have a signed Michael Whelan print of Roland outside the Tower in my office and have read these more than anything except The Hobbit.   Why don't I think it can turn out well?

-Who would play Roland?  Roland IS Clint Eastwood, but Clint is past his time with parts like this I think.  My 2nd pick for middle-aged Roland: Christian Bale.  Think about it.  Jada Pinket Smith as Susannah?  Sean Penn as Eddie?  Tobin Bell as Walter?  James Earl Jones narrating?

-A TV Series?  The material in the books absolutely require an R rating meaning meaning the only way they can not suck is to air on Showtime (Like the Masters or Horror series) or HBO (like Sopranos, Weeds, Deadwood)

-I can't think of any King adaptations that have turned out well on film.  The Green Mile and Shawshank Redeption were not bad, but both dealt with much simpler subject matter.

Sigh.  Between shit like this and the horrible flood of re-makes-of-films-that-aren't-even-that-old and sequels to films involving none of the origial cast, crew, directors, or authors, it appears that I am doomed to see every single movie and literary icon of my life ruined.

Movies | Rant
Wednesday, February 14, 2007 10:50:13 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [2]  |  Trackback

Congratulations to my lovely Fiancé for passing her NCLEX board exams on the first try.  The NCLEX is like the BAR exam to be allowed to practice as an RN.

http://drl.wi.gov/drl/drllookup/LicenseLookupServlet?page=health_details&crednum=156879&credtype=30

Wednesday, February 14, 2007 9:53:54 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback
 Monday, February 12, 2007

I took a friend and former client TV shopping this weekend at their request: people have gotten the idea that I keep up with audio/video stuff or something.

Anyway, at a certain local TV/Home Theater shop I walked in and confirmed my opinion that the Sony SXRD rear projection TVs have a fantastic picture and are very reasonably priced for a 1080p TV.  Of course as we walked around and discussed different things we were seeing on the unavoidable sales guy encounter happened.  The sales guy tried to give me a lecture on the TV including several horribly incorrect facts including "SXRD is Sony's image processing enhancements" and such.  My response that SXRD stands for Silicon Xtal Reflective Display and that it is Sony's proprietery implementation of the Liquid Crystal on Silicon (LCOS) idea and that it didn't include any "picture processing" that I was aware of was met with momentary disorientation and then more arguments on his part. 

I can understand that most consumers are dumb and the industry hasn't made the adoption of HD related technologies easy and its probably safe to start out with the assumption of an uneducated buyer, but when someone clearly knows what they are talking about the salesperson's role switches from "educating about the product" mode to relationship building or "here's why you should buy this from us instead of somewhere else" mode.  The salesperson saw me getting ready to attack and left us alone before I could ask if this particular model had HDMI 1.3 support. 

Shut up TV man, see if I bring another potential customer to your store any time soon.  I almost never meet a salesperson who knows more than I do or is more up to date (than you RSS) on audio/video than I am.  I don't mean that to be an arrogant challenge, because really its somewhat disappointing.  If I had more time selling home theater stuff would be a fun part time job, or perhaps I should get into contract Crestron programming to get an employee discount at one of these shops to subsidise my frequent upgrading habit.

Monday, February 12, 2007 4:12:49 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [5]  |  Trackback
 Wednesday, February 07, 2007

After the huge user uproar that happened when the Compact Framework 2.0 initially did not support CE 4.2 devices, one would think MSFT would have taken the point, instead, today I get another fun Vista Fact.

ActiveSync 4.2 and before will not run on Vista.  It's blocked, and tells you so when you try to run it;  Nice of them to let me install it first though.  The Vista solution is the Windows Mobile Device Center, which sounds very swell.  However it explicitly does not support CE 4.2.  Old version won't run, new version won't talk to my devices.  Of course I tried anyway and on my hardware any attempt to connect reliably crashes the Service Host over and over again.  So, for now, we can't sell our most expensive product on Vista.  Granted, I mostly blame this on the OEM who has refused to upgrade to CE 5 for over two years now.

 

Wednesday, February 07, 2007 4:04:00 PM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [0]  |  Trackback

So, I have already had one customer complaint about this or that not working on Vista.  That didn't take long.  So far I can see that:

-Vista does not ship with .net 1.1, only 2.0.  This wouldn't bother me as 2.0 is overwhelmingly backward compatible with 1.1 assemblies with very few breaking changes.  However my MSIs created with VS2003 demand 1.1.4blahblah explicitly, so I need to build new installers or include a 1.1 bootstrap.

-With 1.1 installed, my .net custom actions for registering my camera software with wia and doing some custom regsvr32 bombs and aborts the install.  Copying the files and assemblies needed and running the registration manually does not complain, however my 1.1 assembly will not start, giving an evil looking runtime error before a single line of .net is executed.  That's nice.

-My Camera software that uses the WIA automation layer seems to be able to register WIA events properly, at least I've got that going for me.

-Seemingly EVERYTHING requires me to confirm changes to my computer.  Manually Creating a folder under \program files requires two confirmations?  What the hell is that?  If that's security, I'll take my chances, thanks.

So, you can probably tell I didn't follow Vista very closely before launch, maybe some of these are known issues with simple solutions.  I'll be working on getting my company's most successful app installing and running under Vista now...

Wednesday, February 07, 2007 10:55:23 AM (Central Standard Time, UTC-06:00)  #    Disclaimer  |  Comments [1]  |  Trackback