There is an enormous difference between a lawyer and a software developer: lawyers charge hourly rates for thier expertise as applied to a specific individual while a software developer charges per product license.
Each legal case is unique, and each individual that requires a lawyer has unique needs and will pay a lawyer _hourly_ to help them in court, prepare those documents, etc.Â I cannot imagine standing in front of a judge and saying, “Well, I didn’t want to pay for a lawyer so I’m just going to reuse these free documents that somebody else paid for your honour;Â not being a lawyer myself I hope they’re relevant.Â I will now rest my case”.Â Lawyers do not charge you to produce documents, they charge you for their time and expertise.Â The documents are a byproduct of that.
Convsely, a software developer can write a single piece of software (like an OS, spreadsheet, etc) that can potentially be used by millions of people.Â It can easily take 1000s of hours to develop a single non-trivial piece of software.Â For example, I’ve been working (more than) full time on my own software for over a year and its only 3/4 done.Â However thousands of different people will be able to use it, and I certainly won’t be charging them all per hour.Â Developers do not charge you for thier time, they charge you for their finished product.Â Our expertise allows us to create that product.
So while a lawyer might spend 100s of hours for a single client (charging by the hour), a developer can spend 1000s of hours for hundreds , thousands or millions of clients.Â Â Thus, the correct analogy between a lawyer and a software develoer would be if a lawyer got paid once for the first case and then volunteered for the 1000s of people that had an even remotely similar case.
I would LOVE to use a distributed version control system. While my main computer was down over the last week I was using my laptop for development, and I couldn’t check-in anything (The server was of course on my main desktop)!
Usually I’m developing one feature on my main computer and a different feature on my laptop; having a distributed version control system would be perfect because I could be checking things in on my laptop (where I do all the easy features) and only merge them into my main computer when I’m done the next major feature on it. Continue reading Pining for a distributed version control system
Okay, I’ve now gotÂ the Windows system drive (C:) back up and running and using my trusty backup I have restored all my data onto the new data drive (A Seagate 1TB 7200RPM 32MB cache – nice and fast).Â However, I now had a security problem:Â all my old file permissions were now incorrect, and in the directory and file properties windows on the security tab I was getting “Account Unknown”:
The problem was that although my user name was the same in the new Windows install, the unique Security ID (SID) used by my old Windows install was different from the unique Security ID created by the new Windows install.Â This makes sense because the ID is a unique identifier (and is probably created based on the current time in milliseconds and lots of other things).
BTW, It’s possible to copy-and-paste that long numeric SIDÂ rather than trying to typeÂ it out.Â From the fileÂ security propertyÂ dialogÂ boxÂ above click on the “Advanced” button, and then double-click on the “Account Unknown” in the “Permission entries” pane.Â Then,Â you can copy the long numeric SID fromÂ the “Name” text box.
My first approach was just to remove all the “Account Unknown” entries completely with the iacls command but I got a VERY frustrating message:
I tried about 50 different variations and got absolutely nowhere, which turned outÂ to be very fortunate because I discovered that it’s possible to simply REPLACE the OLD broken SID with the working new one!Â Phew.Â A little Microsoft tool called subinacl.exe did the trick very nicely.Â It requires installation (?!) and doesn’t put itself onto the pathÂ (which is good I guess)Â and after reading the help and trying a few different things I got it to work like this:
So it took a little while to solve the problemÂ but it worked!Â It’s also the ONLY Microsoft Vista command line tool I’ve ever seen that actually had a “fancy” little GUI:
The red is a little scary (because I assumed something bad had happened), but it was fine andÂ my new HDD with all my data had all the security backed up correctly, and I didn’t have to muck around trying to remember and manually resetÂ folder permissions.Â Very elegant, although it took me about an hour to figure this out!
At first I bought a new WD Caviar Green 1TB SATA (WD10EADS).Â I have NEVER had a brand new hard drive be such a lemon of a hard drive!Â It was slow, but it was “green” so at first I thought that was okay.Â Then I was using Image for WindowsÂ (which is a great product, I really like it) to restore my data drive and it took 24 hours to restore 200GB!!Â It only took me 2.5 hours to create the image, so I started to worry.Â So I let it run overnight.
But the next day when I tried to use it or defragment it things started goingÂ really, really wrong, and by wrong I mean SLOW.
So I started running speed tests on it, and sometimes the speed tests wereÂ abysmal and sometimes they were fine.Â Â But then in Linux (I used the excellent SystemRescueCd) the speed tests were fine, so I kept trying to figure out the problem.Â Then rebooting the computer started taking longer as the BIOS tried to find the drive the boot would pause for about 10 seconds.Â At that point even the Linux speed tests started coming back slow, and so I knew the drive was bad.Â Of course, because everything was highly intermittent and I was moving lots of data around and it was VERY slow (when it was slow) this entire discovery process took ages.
To make a long story short, I eventually decided the drive was a piece of crap, and that I would take it back.Â Unfortunately, I first wanted to clean all my data off it, which is hard considering how slow the drive was.Â I found this very helpful link:Â http://linuxhelp.blogspot.com/2006/06/how-to-securely-erase-hard-disk-before.html.Â This worked very slowly for the first 60GB, then it was VERY fast for the next 200 GB, and after that the drive gave out and never worked again.
I’ve never had a problem with a new Western Digital drive before (although I’ve had problems with older ones) so I was just unlucky andÂ got a lemon.Â So I took it back and got a brand new Seagate 1TB 7200RPM 32MB cacheÂ drive and life is good.Â I restored all 200GB of my data in exactly 2:20 – nice and easy!Â What a waste of 5 days.
Sigh.Â As a small business owner I don’t have time to waste like this; I wish I could bill WD for lost productivity!
What a pain!Â Last Tuesday, 2009-10-13, Microsoft released a whole bunch of patches, my computer apparently needed 19 (?!) security patches.Â One of them failed dramatically, and Iâ€™ve spent the last two weeks trying to get this security patch to install.Â This is â€œMS SQL Server 2005 SP3 Cumulative Hotfix (KB970892)â€, and I can not believe how difficult this has been to install.
Iâ€™m running Vista Ultimate x64, so I downloaded the x64 version.Â However, when I selected my database â€œMSSMLBIX â€“ SQL Server Database Services 2005â€ the details section says that:
Setup cannot update SQL Server Database Services 2005 x86 on this computer. To proceed, run the Hotfix Setup program for the x86 platform instead.
(Which is odd, because later I tried a re-install of SQL Server Express 2005 and I could ONLY run the x64 bit version).Â Â So I dutifully downloaded the x86 version of the KB970892 hotfix.Â Hereâ€™s a video of the results:
Problem Event Name:Â Â APPCRASH
Application Name:Â Â Â Â Â Â Â Â Â Â hotfix.exe
Application Version:Â Â Â Â Â Â 1.4.1572.0
Application Timestamp:Â 4919b4d5
Fault Module Name:Â Â Â Â Â StackHash_e52f
Fault Module Version:Â Â 0.0.0.0
Fault Module Timestamp: 00000000
Exception code:Â Â Â Â Â Â Â Â Â Â Â Â Â Â Â c0000005
Exception Offset:Â Â Â Â Â Â Â Â Â Â Â Â 002d002d
Additional information 1:Â Â Â Â Â Â Â Â Â Â Â Â Â e52f
The knowledge base article had links to a number of suggestions, such as setting ALL SQL Server windows services to start up automatically, however that didnâ€™t work for me.
VERY BAD Microsoft Support
So yesterday, I finally called Microsoft Support at 1-866-PCSAFETY and I spent from 11am until 4:30pm on the phone!Â Fortunately I just put them on speaker phone and worked on my laptop, but it was still an unbelievably frustrating experience!Â First I talked with Lance, but after about 30 minutes the call was cut off and I was left with a dial tone.Â I waited for about 20 minutes but he never called back.
Then I talked with Angie (who seemed to be much more persistent and friendly), and after trying a bunch of stuff (some of it the same as Lance) she transferred me to Ruchi, who seemed to be slightly more knowledgeable.Â RuchiÂ tried to uninstall SQL Server 2008.Â The SQL Server 2005 instance thatâ€™s running on my machine was installed with Microsoft Office Small Business, and Iâ€™ve also installed SQL Server 2008 express as part of my development environment.Â Â Unfortunately most of the SQL Server 2008 stuff failed to uninstall half way through the uninstall; she had also renamed a bunch of directories (c:\windows\SoftwareDistribution and c:\windows\system32\catroot), and run a few batch files that changed directory permissions to â€œEverybodyâ€ so that when the call was disconnected (!) my machine was left in a very indeterminate/messy state!!Â All the calls (obviously to somewhere very far away) had very bad connections, and the line was full of static, crackles and pops and I could barely hear them and they could barely hear me, so Iâ€™m not terribly surprised that these calls kept being disconnected, except that I didnâ€™t have a case number and now I had a computer in a really bad state.Â Â What was (slightly) amusing is that they all kept saying, â€œis your phone okay, it seems to be badâ€ â€“ how strange that if I call anybody in Canada or the USA my phone seems just fine…
Anyway, about an hour after that call was disconnected another gentleman called me and asked me a bunch of questions and had no interest in using Microsoft Easy Assist to connect to my computer (he actually trusted me).Â However he finally gave up and suggested I try the paid SQL Server support teamâ€™s support.Â It doesn’t seem “right” to pay for help fixing the mess their support people created on my computer trying to fix a security fix that they wrote that apparently lots of other people are having problems with!
Trying myself (again)
So I thought about the problem for a while, and decided to uninstall SQL Server 2005 â€“ I havenâ€™t used the small-business side of Office for a while, and I secretly wondered if it might not connect to a (repaired) SQL Server 2008 instance instead.Â UnfortunatelyÂ I couldnâ€™t uninstall SQL Server 2005, because it said there was a registry problem.
I figured after my previous experience with the hot fix installer that I needed the x86 version, but that wouldnâ€™t install so I downloaded the x64 version and that installed just fine.
Then Windows Update said it successfully installed the update!Â Unfortunately, after rebooting and asking Windows Update to â€œCheck for Updatesâ€ it found â€œMS SQL Server 2005 SP3 Cumulative Hotfixâ€ again!!Â Sigh.
So I then installed the KB update that I had downloaded again (the x86 one that crashed in the video above) and it worked!!Â Â Â This time there was two instances of the database present, the SQL Express version which the hot fix installed indicated was already updated, but the MSSMLBIX version was â€œUpgradableâ€.Â The update didnâ€™t crash, and everything seemed to be working.Â I rebooted the computer and did another Windows Update and it immediately said that 1 important update was available â€“ the same one!!Â Wow, this is almost impossible to fix!
Microsoft SQL Server 2005 Express Edition [9.3.4035.00] (I had two copies of this?Â I removed both – in hindsight maybe removing just one would have been best)
Microsoft SQL Server 2005 Tools Express Edition [9.3.4035.00]
Microsoft SQL Server Native Client [9.00.4035.00]
Microsoft SQL Server Setup Support Files (English) [9.00.4035.00]
So I tried running the update from Windows Update (as recommended in the blog post), and that seemed to work.Â Unfortunately after I rebooted and it STILL had 1 important security update!!Â Sigh.
Apparently this also broke Office, because Office now has to â€œinstallâ€ and re-configure itself.Â Itâ€™s now done this twice and it still wonâ€™t start.Â I now get the error message, â€œMicrosoft Office Word has not been installed for the current user.Â Please run setup to install the applicationâ€:
I popped inÂ my MS-Office 2007 DVD and clicked â€œRepairâ€, but unfortunately even that failed!
So I decided to try and re-install SQL Server 2005.Â Unfortunately, now I get the error:
Error 1603 installing Microsoft SQL Server 2005 Setup Support Files.
So after fighting with that bug for a while Iâ€™ve decided to buy a 1TB drive (I was getting low on space anyway) and reinstall Windows.Â This SUCKS!!!
I just received this nice little form e-mail from Microsoft support.
Thank you very much for your reply. Iâ€™m glad to hear that the issue is resolved. It was a pleasure working with you and I hope you will continue to enjoy using our products.
We always strive to provide a high level of support to our customers and hope you are satisfied with the entire process of this service request. If there is anything you are not satisfied with, please don’t hesitate to let us know. Your feedback is very valuable in helping us to improve our service process and quality. Our goal is to provide first class customer service to you. We do our best to keep improving our Service Level.
At the same time, I have some tips for you if Windows Update issues are encountered in the future.
1: Windows Update issues can be temporarily. We can try restarting the computer to test if the is the issue is solved.
2: When Windows Update issues are encountered, itâ€™s best to try suggestions given by the website first, because these suggestions are most often found to resolve the issue.
Based on the current status, I will go ahead and close the case. If you need further assistance from me, please feel free to send emails directly to email@example.com with the Case ID in the subject line. This issue will then be reactivated for me to follow up with immediately. I appreciate the opportunity to be of assistance.
Your satisfaction to my overall service is my first priority.
Again, thank you for using Microsoft Online Support Service.
I’m using Microsoft .NET RIA Services to build a Silverlight application, and today I had a bug.Â At first it looked like the DataGrid’s RowDetailsTemplate wasn’t working, but that wasn’t it.
After debugging it for a little while I realized that the property I had data bound to, “FullName” wasn’t being set by the OnCreated() method,Â which is a partial method called by the class’s constructor.
Apparently .NET RIA Services is using reflection inÂ such a way that it doesn’t call the constructor when it is creating client side objects from a server response.Â This is possible using the serialization method: FormatterServices.GetUninitializedObject().Â So when .NET RIA Services is de-serializing objects from the server it doesn’t call the constructor and the objects are created without their OnCreated() method being called.
In my case, the solution was simply to move the initialization of the derivedÂ FullName property into the property getter rather than in OnCreated() method.Â Then I had to implement the appropriate partial methods for the “FirstName”, “LastName” “SpouseFirstName” and “SpouseLastName”properties so that they would raise the property changed event for the “FullName” property.
Nice and easy, however it’s still a shame there’s no way for an object to know when it has been newly retrieved from the server.
Here’s a quick price comparison matrix/chart that I put together that will probably mean I’ll ditch NCover and buy MSDN premium instead, picking up Expression Studio 3 and the full version of Office 2010 in the process.
While Parallel Tasks and Parallel Stacks are available in Pro and above, it’s not immediately clear about the profiling, but I’d guess it’s only in Premium and above, which differentiates itself from the professional version by another $1120 for a total savings of about $1620 AND its all nicely integrated inside Visual Studio.