she swears <i>geek</i> is a term of endearment

VMWare is corrupt and their support sucks

January 6th, 2009 Rusty

Recently, I reiterated a problem I have been having with file corruption from TortoiseSVN while running on Windows Server 2003 under VMWare Fusion.   I am writing now because I have nothing better to do other than wait for chkdsk to finish on my Windows VM.  Yep, happened again.  I updated VMWare to the most recent version, as requested by the support person.  He then had the audacity to mark my issue resolved!  He closed the ticket.I use tortoiseSVN regularly on bare hardware Windows Server 2003 with no issues, ever.  I also have absolutely no issues with this computer running any other programs.  If there truly was a hard disk issue, I would see it elsewhere.  If this was a tortoise problem (entirely), I would see if on other servers.  It seems as though it occurs when I copy files from my mac to the vm.  When I do that, I have to change permissions on the copied files.  Today I copied an entire directory.  I usually copy one file at a time.Assuming I can recover once again, I may try a controlled experiment.  If I can reproduce this, perhaps I can get some resolution… Or maybe it really is time to consider Citrix.Â

Atlanta Police Department Impresses

December 31st, 2008 Rusty

I live on a very busy road in midtown Atlanta.  Its a pleasure to enjoy walking with my family and dogs to no less than 5 parks (including Piedmont Park), the Virginia Highlands shops and restaurants, Trader Joes and Ansley Park shopping.  I can ride my bike to everything from coffee shops to the gym.  When Georgia weather is beautiful, nearly every day, I don’t even have to touch my car keys in order to access everything I need to work and play. Atlanta is not a town where you can survive without a car (not if you intend to get ahead in life), but living where I do allows a lifestyle that allows moderate freedom from commuting in a metal box. 

Unfortunately, this lifestyle comes at a cost.  One, its expensive.  Two, with denser population and pedestrian friendliness comes increased crimeYou aren’t immune to crime when you live in the burbs but the frequency of common theft is reduced.  I know people whose houses have been broken into in the Highlands and I know people who’ve had armed burglars enter their Norcross or Sandy Springs homes.  However, you are more likely to have your car window smashed in when parked on an urban street than parked a suburban residential driveway.  Along the same vein, my front porch is a moonlighter’s shopping mall.  When the UPS truck leaves a package (which they’ve been instructed never to do), there is likely someone nearby who marks that location for a late night visit.  Should the package not be noticed by a resident, it won’t be there in the morning.  If profanity offends you, please stop reading now, sometimes you just gotta let loose…

Bicycle Bandit

11:30 pm, December 30, 2008.  I was working late in the back of the house. My dog suddenly barked as if someone was inside the houseI ran to the front, expecting to see someone in my living room.  I had just checked the lock on the front door and saw it was still undisturbed.  I calmed the dog and looked out the front window.  There was a man mounting a bicycle, wearing a winter hat and jacket, about to go on his way.  At first I thought he had fallen from his bike and perhaps he was drunkMy dog is not a barker and you have to get inside the safe zone to set him off.  This man must have made a loud noise or shouted and disturbed the dog. Under one arm was a sort of messenger bag and under the other…  a giant package wrapped in brown paper.   It was about two and one half feet by one foot by one foot.  He could hardly hang on to it while riding his bike.  I thought, "that’s strange, what in the hell is he doing?" 

Then it dawned on me.  He was already a block awayThat package was mine.  The pile of pig shit had stolen it from my porch.  My dog woke to find someone on our threshold and went bananas.  Good dogI called 911 and explained what had just happened.  The 911 operator asked all sorts of stupid questions: was he black or white?  black.  What color was his jacket?  I don’t know, its dark outside.  What color was is hat?  I couldn’t tell.  Light colored maybe grey or white.  What color was his bikeI don’t know, its dark outside.  I can’t see color at night.  If I can’t tell what color his jacket is, I can’t tell what color his bike is.  For pete sakes, go look on this empty fucking road at nearly midnight for a black man, heading south, wearing a winter hat, riding a bike, carrying a big fuck-off package under his right arm.  If you see someone like that, shoot the mother-fucker with a tazer right in his nuts!

The operator told me a car would come.  She couldn’t say when.  I expected a knock at 4am for my report.  I walked outside to see if I could see the two wheeled criminal down the way.  To my surprise, within a could of minutes, two squad cars raced by, search lights shining!  They were on the chase.  That kind of response to a call is very different from what I’d become accustomed to.  Something has changed in the Atlanta Police Dept and it ought to be recognized.  They didn’t catch my burglar but they made a powerful statement.  He knows the police aren’t going to sit by and do nothing about midnight burglaries.  In the past, it was hard to get help with this sort of thing.  I hope this welcome change stays long enough to drive out the evil from our neighborhood.  I didn’t bother to fill out a report.  I would rather let them do their job rather than paperwork.  I appreciate the service I received last night and I am now inclined to respect the officers on duty.  I have had more experiences that left me disappointed with law enforcement than positive ones but the impact of something like this can trump ten times being left hung to dry. After all, I’d rather be on the side of the guy who can legally shoot somebody than in no body’s corner. 

So, coppers, thanks!  Thanks for showing up.  Thanks for trying to get the bastard.  Mostly, thanks for being there in the middle of the night when my thin veil of safety and security was torn down.

The MO

Its been a while since we’ve seen these two wastes of perfectly good oxygen but we used to see two guys: one on a bike, one on foot.  One would always have a medium sized messenger bag.  They’d hang out together at times when the road was completely empty: midnight, 3 am, etc.  My wife would see them as she left for work, earlier than the neighborhood was out of bed.  Next time I see them, I think I’ll get the camera out.  Its time to stop waiting for someone else to do something about it.  If the cops are going to show up and race around the neighborhood trying to bring this sort of thing to an end, we should do what we can to assist.

Don’t Drop Your Guard or Get Caught With Your Pants Down

Its not the first time this has happened.  In fact, we’ve been hit more than half a dozen times in the last couple of years.  At one time it was so bad that we couldn’t have anything delivered to our home, ever.  One Christmas we had box after box of baby clothes and diapers ripped open and rifled through.  Sometimes they’d take what they could hock and throw the rest in the bushes to get wet and ruined.  For a while we even had our cars regularly broken into.  It seemed that every time we happened to forget to lock the car, our cell phone or computer would be stolen.  It turned out the neighbor behind the house could see our car door locks well enough to execute this crime.  He was so friendly, we never suspected him.  We realized, after he moved away, that our jobless, loser neighbor was responsible for some of our thefts.  When he left, the problems quieted down significantly.  These days there is usually someone home to bring a delivery inside and, every now and then, we use our home address.  Nonetheless, I always use my work address for shipments just to be safe.  So, the one time we had something left out, predator.

Obviously, it is common sense not to leave valuables in your car or sitting on your front porch.  It would be nice if UPS / Fed Ex would respect our request to never, ever leave packages without signature but they can’t seem to get that straight.  We’ve made that request in writing with both carriers. 

Getting Bent Out of Shape Over Inversion of Control (IoC)

December 30th, 2008 Rusty

I find I often spend more time trying to choose between alternative frameworks then I do either identifying the need for one, or designing and implementing the solution.  For example, I spent quite a bit of time evaluating competing blog engines.  When I finally chose WordPress, the install took a fraction of the time that I spent researching various alternatives.  Anyone who has used WordPress can attest that there really is no learning curve to using it and it installs ready to blog.  The funny thing is, I knew before I had spent any time researching that WordPress was the most popular blog engine out there.   Why?  who cares?  Move on already.

Most Popular IoC Framework

It wasn’t nearly so cut and dry for IoC in dotnet.  I found quite a few resources evaluating and comparing various frameworks but nothing really conclusive.  Then I realized that most of the tech bloggers I follow tend to use the same tools that I find most valuable.  Much of the time its because they turn me on to them. 

I decided to narrow my search to my most respected bloggers.  I started out with Scott Hanselman but he’s off wandering about Africa and has just started looking into IoC himself (or hasn’t updated his captive audience on his progres in a while).  His blog, however, did lead me in the right direction.  He was kind enough to post a list of the current dotnet IoC projects that look attractive/viable.  Sometimes a list helps to get the Googling going.  A short while later, I was reading posts by Ayende Rahien.  He’s a somebody I’d like to buy a few rounds of shots for.  He’s helped me more than probably any other Microsoft technologist.  He got straight to the meat and stated that he prefers Windsor Container (because that is what he has used).  Good enough for me!  Ironically, that is what I was going to use when I started my research but didn’t want to "make a regrettable choice".  What lead me astray is that Microsoft has recently promoted their framework called Unity.  If you are the kind of developer or development shop that prefers supported software or you just lean toward Microsoft code, use Unity.  It will get the job done.  From my perspective, Windsor is mature, stable, simple and natively supports AOP. 

Generally Trust in People but Still Lock Your Doors

I trust people in general but I never leave valuables in my car.  With code, that strategy can be applied in this way: use what is most convenient to solve your immediate need but loosely couple.  The whole point of IoC is loose coupling.  I wish I had just committed to keeping my registration code abstracted from any consumer access jumped into Windsor rather than spent all day obsessing about which framework was better.  Blogging about it tonight took about an hour.  I should have my code finished in about fifteen minutes.  At least I feel good about my decision.

Apple Documentation vs. Google Android Documentation

December 16th, 2008 Rusty

This is not intended to be any sort of platform war. I love what Apple has done to mobile and I hope Android can catch up. On a whim, I thought I’d browse some Android documentation to see what’s up on that side of the revolution

Performance Advice

It took me quite some time to get my hands around memory management on the iPhone. I finally got it but spent many long, long days staring at EXC_BAD_ACCESS messages in the debugger before I finally learned how to create zombies and back up in the stack to try to find the object that was deallocated prematurely or the caller who needed it. There’s quite a bit of proprietary convention to learn with cocoa on the iPhone. I read the memory management papers and purchased >$100 worth of programming in Obj C books to get through it.

Google just spells it out, how novel! Check out this Android Performance Tips page. I read it and thought, immediately, “why in the hell didn’t Apple just puplish something like this? Just spell it out. Tell your developers (yes, we are now your developers), “do this, don’t do that.” We’ll swallow the pill and do as we’re told. We want to get on to more important things.

What are the performance optimizations for iPhone?

A while back I read that caching things that you get from storage such as DB and Web is the key. I’m requesting JSON from web services, parsing into object graphs, and caching the data using a singleton pattern. There is one instance of the data graph and I load it when its needed, release it either when the app closes or when memory alerts are sent, and use it for all other queries. At some point I’ll probably need to keep subsets in memory but, for now, it works great. Today I completed setting up a relatively complicated hierarchical structure of data in objects with parent child relationships. I was very careful to only allocate on instance of any entity instance and reference that instance from wherever it was prudent. I was pretty liberal with my structure and references, assuming that pointers aren’t very expensive and there is no difference between looping through a bunch of flat arrays or traversing an object graph. Then I read the Google advice and it made me curious: is the iPhone similar? I tried to find a similar document on Apples developer site but all I found were guides on how to set up Instruments and measure memory. There was lots of self stroking for the awesome tools you were now going to have to learn. There were copious misspellings and grammar mistakes (do they even proof read?). I honestly think they were about to launch the sdk and someone said, “shite! We’re going to need some documentation!” Then another cat said, “nah, if they think they are worthy of being Apple developers, they’re going to have to figure it out on their own.”

Java vs Obj C

I think Apple made a great choice using their proprietary C extension language. Java is far too heavy for what its been purposed for. I think the article makes valid points but necessity will soon require an advancement in speed and power on mobile devices, just to keep up with iPhone.

Ferrari or Chevy

Programming in Obj C is like owning a Ferrari. You can’t fix it yourself, its very difficult/expensive to maintain, performance and capability out prioritize usability, accessibility and utility. On the other hand it butters your bread when you’ve got it firing on all cylinders. Java is like a chevy: parts are readily available, its easy to fix, all the engines are the same and well documented - but it weighs too much, guzzles resources and isn’t something you expect to impress the ladies.

Microsoft on the iPhone

Microsoft launches SeaDragon for the iPhone. Its nifty but not anything that I think I’ll use with regularity. What I did find interesting (relieving even), is the following: in describing the experience of developing for the iPhone, Tim Huckaby, CEO of solution provider InterKnowlogy, describes the programming interface for the iPhone as “nightmarish” compared to .Net,

I know someone will be pissed off about that statement but he’s right. I’m getting better at it but I still retun to Visual Studio with love in my heart. I even pimped my theme just because I enjoy using Visual Studio so damn much

VMWare Fusion with Windows Server 2003 suffers Subversion corruption

December 12th, 2008 Rusty

Recently I posted about a major problem I am having with file corruption using Subversion on Windows Server 2003 under VMWare Fusion.  I found a fix for the symptoms but not the underlying cause.  Unfortunately, this is not a one time occurrence, the issue struck again today.

TortoiseSVN operation results in File Corruption

It appears that both an update and a commit can cause this issue.  After performing an update recently, the next update resulted in failure with the following messages:

  • "Can’t open file"
  • ..blah, blah, blah "lock"
  • "The file or directory is corrupted and unreadable"

The only way to fix it is to run chkdsk on windows.

Chkdsk with I option works

ChkDsk takes a long time to complete in full force.  If you instead use the following command, it will finish much more quickly:

"chkdsk /F /I c:"

You’ll have to restart as C: is in use by Windows.  Do that, things get cleaned up (so far).

VMWare Support Submitted

Fusion is my gateway drug for sure.  Using Fusion is our way of exploring virtualization and evaluating whether it is a viable solution for our business servers.  I feel that it is but I am concerned by things like this and there is no cost effective hosting for VM so we have to do it ourselves.  I tried to post to their forum and submit a support request, running into roadblocks each time.  We just configured a new MacBook Pro with VM last week so we have 30 days complimentary support.  I had to access the support channels on VMWare website from that new computer in order to navigate to the support page.  It was very hard to find.  The site could use some QA, i think.  However, they are not a website company, they are much lower level than than so I won’t hold it against them.  I am optimistic that my next post on this topic will describe and solve the issue once and for all.

Could it be NTFS?

The only think different on this OS from my recent incantations (other than that it doesn’t suck, except for this problem) is that its NTFS rather than FAT.  When I copy files from my Mac finder to my running VM, I have to manually set security propagation from parent in order to use the files in projects.  While completely unrelated, it may be a clue to the puzzle.  I gave more relaxed permissions to my entire svn trunk to see if that helps.  Only time will tell…

Using XCode with Subversion 1.5

December 11th, 2008 Rusty

Short, sweet, to the point

http://www.lemonteam.com/blog/2008/12/setting-up-subversion-15-on-xcode/

Follow the recipe there.  XCode will now work just fine with Svn 1.5

Windows Server 2003 TortoiseSvn / Subversion Lock Corruption

December 4th, 2008 Rusty

Holy CRAP!

I tried to commit my changes to svn and was greeted by a very distressing message: “cannot delete lock, the directory is corrupt or unreadable”.

I tried a few hacks to get around it but apparently my trunk was littered with these unfortunate locks. I have no idea what this means at a low level except that either Windows or Svn(or tortoise) took a big fat dump in my directory

Google to the Rescue

As usual, Google turned up forums where people had the same issue. The only suggestion was to run chkdsk on the drive. One person reported success using a utility called “unlocker” but indicated that the program ran chkdsk. Ok, how do you do that, exactly? in VMWare?

Running Chkdsk under VMWare Fusion

Turns out its really easy. Bring up a command line and type “chkdsk /R C:”. You’ll be told the volume is currently in use and asked if you’d like to run chkdsk the next time Windows is restarted. Answer “Y” and then reboot.

During step 2 of 5, chkdsk reported 15 variations of “Deleting index entry lock in index $130 of file 38956″. That sure sounds like my problem. I hope it is because step 4 of 5 takes forever. It might be wise to use the commandline switch that tells chkdsk to do a less vigorous check of files. I didn’t so I am waiting…

Vista to XP to Server 2003

I started using Vista on this computer and finally just couldn’t take the slowness anymore. I switched to XP but soon realized that all the locked down features were getting in my way. I am now developing on Windows Server 2003 and until today, was very, very happy. Now I am waiting to Windows to do its funky chicken dance, yet again. At least Server tells me what it is doing while I am unable to get my work done. Vista wasn’t nearly so communicative. Its like having a good friend who always says that really offensive thing at the most inopportune time. 90% of the time, you are having a good time. Every now and then you’d like to kick him in the teeth.

hey, thirty minutes later and its done!

..and the verdict is: (waiting… waiting… waiting… ugh! still waiting… FIXED

Unit Testing Your iPhone SDK App - setting up for debugging

November 22nd, 2008 Rusty

When I read Apple’s article, I found it to be completely invalid. This article is at least accurate. However, assumptions are made that you know what they hell they are talking about. This post helped me quite a bit to understand what that “.gdbinit” file is and how to fix my mistyped “echo ” >> .gdbinit”Moving on, then…If you are a ruby fan, Dr. Nic rocks the down under. I started with this but tried to organize my class directory structure and messed up compatibility. Additionally, I am learning ruby so this was stacking a learning curve on top of a learning curve which created some sort of twisted double helix inverted unto itself. So for the less skilled who want everything in a single esoteric language (Obj c), XCode ships with OCUnit. Unfortunately, setting it up is similar in complexity to cloning hairless cats in the presence of a pitbull so there is a nice helper project from, who else, google.I had a couple of confusing points (more than usual) so I will share for other noob’s benefit.read wiki tutorial: iPhoneUnitTesting Where the HELL is the build log? Project WindowSuccessful… Wonderful. WTF is the build log? Click on the word “Successful” down thar at the bottom of the project window and you’ll get Build Result WindowHmm, still no “build log”…Hey! That bar between the Editor and the Overview has some buttons. Start mashing those maybe? log button There’s our huckleberry!Now you see this: Build LogAnd there’s the line I was looking for: Executed 0 tests, with 0 failures (0 unexpected) in 0.001 (0.001) secondsTwice, no less!Awesome… Two days lost trying to set up testing but that will be earned back ten fold as this app moves from learning experience with relatively exciting product to truly engaging, innovative exploitation of revolutionary technology�

Tags: ,

Apre Diem, a note to my in-town friends

November 20th, 2008 Rusty

For those friends of mine who work like wandering nomads with laptops, here’s a tip…  (if you don’t know me you should move on to other things.  Everyone knows I am full of B.S.)   

Apre Diem

  • The patio is always pleasant and a decent in-town view (lots of trees)
  • WiFi isn’t the fastest but always available
  • Music is never annoying (and sometimes awesome)
  • They have excellent gourmet coffees
  • They have excellent food
  • They have beer
  • They have high Gravity beer
  • SO close to everything
  • Prices are reasonable
  • Did I mention High Gravity Beer?

Now, Power outlets are limited.   And if I find you in my seat, You’ll have to roshambo me for it.  I go first.

The only drawback would be the occasional smoker.  Every now and again you get some bone head who still thinks smoking makes him/her look cool even though it really makes them look like a complete dumb-ass lacking intelligence, self control or self esteem.  Usually it encourages me to listen to their phone calls where I wonder why the person on the other line doesn’t tell them what a waste of energy, not to mention oxygen, they really are.  Its not that smoking makes you bad (ok, it does, but not cool bad), its that smoking is a coffee shop patio is similar to pleasuring yourself in your high school bathroom.   Yeah…  I’ll bet that brought back some harsh memories!  Stop smoking on my patio, you dufuss.

IBM Thinkpad 600e resurrected

November 17th, 2008 Rusty

Lou, of OckhamResearch.com, had an old IBM Thinkpad 600e sitting on a shelf elevating some boxes of archived papers.  My 5yo son was visiting me at work and wanted to "type on the computer" so I tried to fire it up.  It booted to the log in screen but I didn’t have the password.  My son proceeded to draw on the white board.  When he’s 15, I’ll just be a geek with a dorky job but for now daddy’s office is fun.

Stop Taunting Me You Silly Twit!

The thinkpad sat there, requesting a password, for several weeks.  Lou didn’t know the password either so there it sat, taunting me. 

Showing My Age

I grew tired of staring at a Windows NT Workstation…

Memory
All alone in the moonlight
I can smile at the old days
I was beautiful then

…prompt so I tried to wipe it and install Windows XP.  The machine boasts a mind blowing Pentium II 366mhz processor with 280MB RAM and a 12 Gig Hard Drive. 

Crash & Burn

Upon installing XP, I was greeted by the always ever popular Windows BSOD (blue screen of death).  I don’t keep a copy of NT lying around so it was off to Linux world for something that might not crash on this barely used, completely not useful little IBM notebook.

p.s. Wouldn’t it be funny if computers got grey hair and wrinkles like we do? 

Plan B

I burned a cd of Ubuntu from their website using my Mac…

Friday night and I need a fight
My motorcycle and a switchblade knife
Handful of grease in my hair feels right
But what I need to make me tight are those…

…uh, where was I?  I ran the installer, answered several questions about where I am and how I like my stuff displayed, and launched into a fully functional, very useful and pleasing to use Ubuntu desktop.  For the uninitiated, it comes pre-installed with the O/S (duh), Open Office (Word Processing, Spreadsheets, Presentation), Firefox Internet Browser, a bunch of games, a sound recorder, Gimp Image Editor, Photo Manager, Open Office Drawing, Ekiga Soft Phone, Pidgin IM, Transmission BitTorrent Client, Movie Player, Rhythmbox Music Player, the list goes on…  it comes loaded with useful programs.  It does not however have any of the following included with the installation: trials to aol, msn or netzero; dell notifications irritator, Lenovo restore manager; background update managers; heavy device management utilities; alternate network management or power profile sub systems; OEM crapware.  Of course, a fresh install of XP doesn’t have that junk either but then you have to spend several hours assembling all that other stuff and it is not, well, free.

Sweeeeeeeeeeeet, psych!

To see if my new Linux dog could hunt, I launched Firefox.  Aw, snap!  No wireless.  Wireless was a luxury in 1999.  I can hardly remember such a time.  So I looked into the possibilities and found that this old monster used cardbus architecture.  Those were little laptop cards we used to have to buy to enable mobility in mobile computers.  You kids are too young to remember. 

I seem to recognize your face
Haunting, familiar, yet I cant seem to place it
Cannot find the candle of thought to light your name
Lifetimes are catching up with me

Amazon had a 802.11G Wireless Xtreme Cardbus Adapter (D-Link Wireless 108G) for $8 plus shipping.  For $15 I was willing to give it a shot.  In two business days, my new cardbus adapter and "Programming in Objective C" book arrived (I never order just one thing from Amazon).  I opened it up (the card) and hoped to see a Linux install option…

The time is right your perfume fills my head, the stars get red
And oh the night’s so blue
And then I go and spoil it all, by saying something stupid  

My heart sank as I realized I have no experience with Linux and I didn’t know how to get, much less install, drivers for Linux.  Visions of vi filled my head.  In the mean time, I shoved the card in the slot and watched as the green lights began to blink.  Then, as I clicked on the network icon near the top of the screen, I found that it had "installed itself".  The computer discovered and enabled the card and the networks were listed in the available networks box.  I had to provide my password 3 times, resulting in a timeout on the first 2, but since that time it just connects when it boots like a good little computer should.

Wow is all I can say.

So now we have, for the investment of about 30 minutes and $15 for a wireless card, an extra laptop.  It works perfectly for browsing the Internets and will be a perfect machine for my son to type on when he visits me at work.  Should he spill his chocolate milk slammer down into the keyboard, it will go back on the shelf from whence it came.

I can’t speak to whether it would be a good choice for a student as their teacher is going to be using Windows.  I don’t know exactly how interoperable Open Office is with MS Office but I can tell you that its not as sexy or easy to use. MS Office sets the standard there.  However, for an extra computer that is constrained on cpu or memory or both, its a perfect way to get a little extra life out of something that was otherwise beyond its functional lifespan.  You don’t have to worry about viruses and its inherently secure and stable.