22
Dec
09

EA Games? Just Say No.

THE SHORT VERSION

Do you like shelling out your hard-earned money for products that are broken, only to find the outsourced customer service department isn’t going to help you and just runs you in circles pounding friendly-sand up your butt?  OK, if you LIKE that sort of thing, buy an EA Games product. Otherwise, JUST SAY NO TO EA GAMES.

THE LONG VERSION

We bought The Sims 3 – for a system trunning XP, it has 3GB of RAM, a Radeon 4350 (pixel shading 4.1, 512MB RAM), on a 2.9Ghx Athalon X2 245.  That is more than enough juice to run this game.  All drivers up to date, BIOS up to date, and even with every service possible stopped and every non-critical process stopped, the game won’t run.  I ran the EA game troubleshooter and sent the file to EA view their help system.  It has been a month, and they still won’t answer our original question… 

First, they started by ignoring the question for almost a week

Second, after sitting in a queue for 30 minutes, I gave them the ticket # and they told us to do all the stuff we already had. Then they asked for a DXDiag report.  I sent that.

Third, they opened a SECOND ticket, and in the first ticket they replied “it looks like you have 2 tickets, you need to close one.”  I kid you not. This REALLY happened. THAT was supposed to be their response!

Fourth, I threaten them with a charge back and demanded a response. They replied the next day asking us to do all the things they’ve already asked us to do (and I had already tried before).  I reply, highly frustrated and ask them:

We've done all that (your link is wrong, fyi - the XP and 2000 list of services are reversed).

The game has never played. The farthest it gets is requesting us to select a neighborhood. After clicking the neighborhood, it loads for a few seconds, then hangs for a few seconds, then the GUI disappears without an error.

* Is there a log file we can send you?
* Did you see anything in the files you've asked us to send (direct x report, or ea game report)?
* Are there any known issues with iPhone, or other specific devices conflicting with the game?
* Are there any known issues with our graphics card (ASUS/Radeon EAH-4350 which supports Pixel Shader ver 4.1 and has 512MB RAM)?

Fifth, I tried twice, waiting over 30 minutes each time, to do the chat thing again – but magically, at the “6-8 minutes left” marker, the chat would switch to “this chat has been disconnected.” 

Sixth, they ignore me, so I flame them, tell them I am doing a charge back and announcing to the world how horrible they are.  I am making good on that with this post!

16
Dec
09

Autonomy Through Excellence

“One way to challenge ‘Borg’ centralization is to demonstrate more advanced capability.  This justifies autonomy through excellence.”

07
Dec
09

BLOBs – The AIG of Data Integrity

OK – so there is no one-size-fits-all way to define the use of BLOBs in your database.  But this crazy bandwagon of putting file storage into BLOBs really has me baffled.  I think it is…well…down right stupid.  Why the metaphor with AIG – because people are treating BLOBs like they represent an additional layer of “insurance” against catastrophic failure… they pretend that if they use BLOBs, their solution must fall into the “Too big to fail” category and will qualify for a stimulus package. Hog Dasz.  That’s a technical term created from washing hogs using ice cream.  Using BLOBs, to me, is like storing your household pets in a vacuum cleaner.

When companies like Microsoft (e.g. SharePoint) and Metastorm embrace BLOBs as they have – they send out waves of marketing that indirectly imply that, since their solutions are the bestest everer, BLOBs must be the BEST way to store files; However, when comparing storage of files on a file system (or file share), vs. storing them in a database as Binary Large Objects (BLOBs),  my vote is against BLOBs.  IMHO, filling a database with BLOBs:

  • Causes unnecessary bloat on the database, making it harder to manage
  • Causes unnecessary processing, as the files must be marshaled into and out of the database
  • Introduces risk because once the files are in the database, the only way to get them back out is through the vendor application
    • This marries the organization to the vendor
    • If the database server goes down, so do the files
      • This same argument could be made for file servers – if a file server goes down then the files cannot be accessed.  Read on for my counter to that opinion.
  • Introduces undue complexity
    • If a file server goes down, it can readily be restored from backups without requiring the vendor product be installed and configured, and without the installation and configuration of SQL Server or another database.
    • File systems have the ability to work with RAID and SAN architectures directly for redundancy – adding them to BLOBs buys nothing but the above hassles
    • Providing additional file storage is comparatively easy
    • In a virtualized environment, the files are a a couple layers of abstraction farther from the hardware – that is NOT the best thing; however, it is part of the price of introducing virtualization and cloudness to the world.  But… adding even more layers by marshaling files through a vendor application and then into a BLOB that is accessed through a database just makes your virtualized environment layered…like Ralphy’s winter garb in “A Christmas Story”.  It’s too much I say! Lay off the BLOB-crack!

Maybe someone will have a rationale in favor of BLOBs, maybe there is a time when even I will leverage a BLOB intentionally.  But I am hard-pressed – my current perception says, if it is a BLOB, treat it like a file and store the pointer in the database.  Yes, the pointers must be maintained.  Yes, the permissions on the file system should stop people from willy-nilly moving files around.  Yes, perhaps there is some loose coupling with the software that manages those files, but in a pinch…you HAVE your files…and NOBODY CAN TAKE THAT AWAY FROM YOU! (sniffle, hug)

Stay Beautiful.  Stay BLOB Free.

06
Dec
09

SQL Server 2008: Adding an Identity to Existing Column

No. You are probably not.  Here is a SHORT ANSWER (just to show the concept) for putting an IDENTITY on an existing column, based on what I’ve seen:

  • Use All Tasks -> Generate Scripts to script the schema of the table(s) you want to alter.  Script it to an SSMS query window.
  • Go through the script and put a “2” on the end of the table name(s), and  add “IDENTITY(1,1)” to the int column you want to make an identity:
    • e.g. CREATE TABLE MyTable2 (
      MyIDColumnName int IDENTITY(1,1)
  • Run the script (I do this one table at a time) – this creates a duplicate table that HAS the identity column you want.
  • For each table you will need to run a script like this:
    • SET IDENTITY_INSERT MyTable2 ON
      INSERT INTO MyTable2 ([you must list out all the columns...sorry, SSMS requires this])
      SELECT [yes you must list all the columns again, in the SAME order] FROM MyTable
      SET IDENTITY_INSERT MyTable2 OFF
    • Note: Notice the select is from your ORIGINAL table – no “2″ on the table name, because you are inserting the data from the table that doesn’t have the identity column to the one that does
  • Now you can drop your original tables, and then rename the new tables by getting rid of the “2″ on the name.

NARRATIVE

Now, I hope someone finds a better way – that would be great.  I think this approach, if it IS the answer, is lame.  We are in the year 2010.  2010!!?? And I can’t get a column to populate automatically with integers unless I do the above steps? C’mon!! But, for serious, when I upgraded from 2005 to 2008…somehow the script I generated didn’t have the “IDENTITY” specs or something… not sure.  Later, I found that adding the identity via SSMS threw an error saying the table would need to be dropped and recreated.  I also found I couldn’t delete the column (I can remove its primary key designation, but it complained if I tried to delete it because “it is in use by other objects”).  So, the fall back is to drop and recreate the table – hence the magical dance outlined above.

Arg.

06
Dec
09

SqlDbType and varchar(max) or nvarchar(max)

The short answer? Use SqlDbType.VarChar or SqlDbType.NVarChar with a size of -1.

For more info, see http://msdn.microsoft.com/en-us/library/bb399384.aspx.  I just put the short answer for those who want… the short answer.

02
Dec
09

Ironic Ionics

You know, I have heard some buzz about “Ionized” water.  It has been around a long time, but there seems to be an increasing wave of marketing behind it.  So, after being impressed with the concept for all of 30 minutes, I found this article (don’t let the WordPress Site Prview fool you, the link DOES work!), which I think represents a decent rebuttal.

I am not a chemist, but enough of my high school chemistry lingers in my brain to say that the information is reasonable.  If nothing else, people can make an informed decision.  My decision (for those who care):  It is all a bunch of bull.  Ionized water, ph balancing your body, antioxidants, molecule structure, use in aquariums, use in foot baths, and the all the other nonsense claims of multi-level marketing companies (esp. Kangen, but anyone selling ionizers, really): ionized water is just another scam of the moment.  Buyer beware!

Even if you do decide to buy one, Kangen is outrageously priced. You can by them direct for $1000-$1500…which, IMHO, is probably better served buying a reverse osmosis purifier or other filtration system.

On the plus side, I completed Chapter 106 of story 2912 today.

Cheers!

23
Nov
09

Windows 7, Soup’s On!

It takes forever to install.  I had to find SOMETHING fun about the eternal wait. . .

Soup is Starting

Sorry, but I was really bored!

23
Nov
09

Bing is a Disease – Literally

Hey, my cohort’s fortune cookie fortune is all I needed as proof…

In Chinese, 'Bing' means 'Disease'

Perhaps confirming the obvious. . .

21
Nov
09

Importing Outlook 2007 PST Files to Thunderbird 2.0

Well, it is not the easiest journey.  Especially if you, like me, no longer have access to your Outlook 2007 Media.  But here is a way to pull it off. No guarantees, but hope it saves you some time:

1.0 YOU NEED OUTLOOK
OK, you can try to do it without Outlook using a plug-in, but I couldn’t get that working.  Other than that Thunderbird can’t recognize PST files without Outlook installed.  If you don’t have access to your media you can download the Trial version from Microsoft: http://www.microsoft.com/outlook

When you install Outlook, it will set up a mail account – be sure to set one up, even if it is bogus.  Because with no email profile, Outlook won’t create a PST file…and with no default PST file, you can’t open a DIFFERENT PST file.  Why? Oh, please don’t get me started…

2.0 OUTLOOK MUST BE ACTIVATED
For me, if Outlook wasn’t activated, I couldn’t point it to my PST file.  It would blubber about it being a “reduced functionality mode.” Activation, luckily, cures this.

3.0 OUTLOOK MUST BE YOUR DEFAULT MAIL PROVIDER
You can change it later, but if you already have Thunderbird as your default, then Thunderbird import will fail.  So, when you install Outlook, make sure it is set to be your default mail program (No, I don’t know how to set it after you install).

4.0 REMOVE PST PLUG-IN (IF YOU INSTALLED IT)
If you installed the PST plug-in from Softpedia, uninstall it and restart Thunderbird.  That thing will block Thunderbird’s default import process.

5.0 OK, YOU ARE READY!!
Once you have set the stage by completing the above steps, you can begin the process of importing your PST files to Thunderbird by doing the following:

  • In Outlook, you should have a default PST.  To get to YOUR PST, you use the FILE -> DATA FILE MANAGEMENT menu option, click ADD and point it to the PST  you want to use.
  • Then you will point to that file, click the SET AS DEFAULT and restart Outlook.
  • If you are paranoid, like me, you will then go back into data file management, remove the default PST file and restart Outlook.  Because Thunderbird creates file-based email folders, I want to make sure it didn’t encounter 2 “Inbox” folders – I don’t know how it would handle that. 
  • WARNING: If you have nested folders in your PST and any folders have the same name, I’ve read you can encounter problems with Thunderbird’s import. In Outlook, you will want to review your folder names and make sure there are no duplicates.
  • Close Outlook, and start Thunderbird
  • Use Thunderbird’s Tools -> Import and select “mail”, then select “Outlook” - it SHOULD, with all the above steps completed, begin the process of importing your data. Mine took about 10 minutes, and was about 480MB of data.
  • Repeat the above only select “Address Books” and that should bring in your contacts.

I am far from an expert, here.  Just a computer geek that found the learning curve a bit obnoxious, and thought I would share what I found out.  If it didn’t work, you can try Aid4Mail (i didn’t). Good Luck!

20
Nov
09

The Dark Side of Cloud Computing

Cloud Computing is the whole new buzzword… but what about Dark Cloud Computing? What is it?  WHAT IS IT, YOU SAY? Let me tell you a tale. 

THE GROUND WORK
As the mad dash goes on to reuse components across the enterprise and indeed across multiple enterprises and even the world-wide web itself, there exists a plethora of sick little “anti-methodologies”  that have cropped up.  They call themselves agile, extreme or by whatever buzzword makes them appear to be decent, but it is all LIES I say. LIES!! Let us examine but just a few of the soulless zombieponents out there. . . wandering and sucking the brains of innocent coders who tread in their path:

Code Name: Evolving Protoype
Real Names: Frankenvolver, Gonkulator
This poor mutant starts its diseased technolife as a spreadsheet, a few static html pages, or maybe a toolkit downloaded to help someone learn a thing or two.  Modules are added on piece by piece.  Like plumbing that was never architected – the pipes are wired-up and welded on the fly.  They are split, merged, rerouted, heated, cooled, cracked and duck-taped together.  Intricate arrays of small kitchen funnels, feeding the leaks into thousands of feet worth of Home Depot plastic tubing.  Frankenware is born!  It wanders the code scape, in a slow, plodding fashion – oozing bits and bytes as it slogs through existence.  Changes and add-ons become so complex that one day, while unchecking a checkbox, a user generates a catastrophic error condition that butterfly-effects through the whole system.  Airplanes crash in mid-air collisions, China invests heavily in the US debt and curing the financial crisis, with the exception that a strange beam emanating from Alaska blankets the earth in a putrid ray that brings every soiled diaper ever created to life and seeking human flesh. Behold, the Gonkulator has achieved its end-game.

Code Name: Application Programming Interface
Real Names:  Glueware, The 7-Layer Burrito
This sedentary leech leads a life of obfuscation through feigned reuse. Multiple vendor systems, sporting an API tout how they can be connected to achieve customer’s goals without them having to “pay ridiculous prices” for custom-developed software.  Purchasing 8 or 10 of their favorite titles, customers then hand them over to software developers to “get them working together. It should be easy. They have an API…”  Some of the APIs return morbidly warped SOAP headers, others use XML so strict that forgetting a slash results in an entire service halt requiring a server reboot, while others provide incompatible formats requiring walkers to translate via XSLT into an EDI through a JSON to save as a compressed semaphore file.  The customer starts complaining how they are spending more on the integration than they had to pay for the actual software, and they blame the in-house software developers for being incompetent.  2 vendors are bought out by larger competitors, the entire staff of the original company is right-sized into tent city, and the product now demands a maintenance fee for support it can no longer provide, because it has fired anyone who had any knowledge of the intellectual property that made the sale worth while to the buyer.  As tension mounts, the software engineers thanklessly make the impossible happen – the system is finally stabilized, and even though clicking a button sometimes yields a 40 second wait time before the calendar will pop-up and allow them to enter a date, the customer claims a bitter victory.  2 weeks later, 4 of the vendors release mandatory automatic updates that unwind the whole system and bring it to a screeching halt.  Again the in-house software developers (left in charge of the integration) are blamed for not predicting the future using their Magic 8-Ball.

There are MANY others…
Code Name: Enterprise Service Bus
Real Names: Codestapation, Bloatificus Maximus

Code Name: Data Transformation Services
Real Names: Mayan Calendar Syndrome

ENTER THE DARK CLOUD
Now you can imagine where this probably goes.  These abominations are proliferated -  bolted together at a whole new level by scalable virtualization.  Hosted on farms of 486 processor-based units sporting terabytes of storage exposed through a sea of 100MB hard-drives with 3-prong SAN adaptors; we are able to deliver The Dark Cloud.  Now, creating a user account can take hours instead of minutes.  Diagnosing the source of a problem can take years.  interpreting the results of a logical error can become less accurate than ever before.  And, we will stand tall and call this PROGRESS.

It is a brave new world indeed when we can present users with portlets that have 60% overlapping functionality, scores of buttons and roll-overs, all smooshed into a technicolor CSS nightmare that delivers functionality in the most convoluted fashion possible and routing even the simplest requests through countless levels of auditing that cannot be deciphered for any usable purpose, generating mismatched results, and yielding such rage at work that road-rage becomes child’s play.

All the while, more and more blame is heaped on those inferior “in-house” developers, who in a strange twist of fate are the dying breed that knows the true craft of software development…strangled at the hands of self-appointed experts who fired their actual engineers long ago.

And as irony on top of irony – the customer who glued these mutants together spent 10 times the actual cost to develop an elegant solution, blamed the knowledgeable, and passed all the additional accountability to THEIR customers…

They call this: Progress
Real Names: Devo, Insanity

THE END!! MUHAHAHAHAHAHAHAHHHHHHHHHHHHHHH!