Installing Windows Phone Developer Tools 7.1… no love from LightSwitch

By James at June 01, 2011 22:46
Filed Under: Beta Software, Technology in General

I love installing beta bits. Usually I will spin up a new VM and install the stuff there, but apparently I didn’t do this with Microsoft Visual Studio LightSwitch Beta Edition. While LightSwitch is a cool idea, it’s not for me and I’m sure I uninstalled it right away. A month or so go by and the Windows Phone Developer Tools 7.1 Beta bits are out, so I go to install them on my development machine, only to be greeted by this error dialog.

Incompatible products Setup has detected that following incompatible version of products or components are installed on your machine… "*Microsoft Visual Studio LightSwitch Beta Edition – ENU”

lightswitch error

I checked Add/Remove programs and LightSwitch was not in the list. Hmm, I think, perhaps there are some leftover files. So I opened up Search Everything (one of my favorite tools) and did a search for “Microsoft Visual Studio LightSwitch Beta Edition”. I found tons of file folders all over the place, and deleted them all.

Running the install again, I got the same error, so this time decided to check the registry with RegEdit. Searching for the same string, I found almost 30 registry entries that had not been cleaned up by the uninstall process. I backed up my registry, then went and deleted all of those keys.

Starting the install again, gave me lots of love and I now have the Mango Dev Tools installed on my machine.

Hope this helps you out if you run into the same problem.

James

Watch out! Visual Studio SP1 Pack for VS and VWD with WPI

By James at April 14, 2011 20:18
Filed Under: ASP.NET, Beta Software, Entity Framework, Miscellaneous, Technology in General

I like to have all my tools updated and current and wanted to install the RTM version of IIS 7.5 Express, SQL Server Compact 4.0 with the tools, and Web Deploy 2.0. I found a link to install these, along with Visual Studio 2010 SP1 via the Web Platform Installer. http://www.microsoft.com/web/gallery/install.aspx?appid=VWDorVS2010SP1Pack

Ok, methinks, I already installed VS 2010 SP1, so this should be smart enough to see this and not muck things up. Boy was I mistaken. After 90 minutes of installing, I figured something was wrong and cancelled the installation. Man, was that ever a bonehead move! My entire development environment got hosed; currently working solutions wouldn’t open, MVC 2/3 templates were gone, lots of frustration. Running SP1 again, I was given the opportunity to repair the installation, and that failed…twice.

I finally uninstalled VS 2010 SP1, uninstalled VS 2010, then reinstalled both. However, now this time, the Entity Framework templates were missing, and opening an EDMX file just showed the XML. Yikes.

I did another round of uninstall/reinstall, only to find out that both versions of MVC 2 and 3 didn’t have the tooling and my current MVC2 project doesn’t recognize any MVC related code.

I keep my VS 2010 .iso files on my server and use a virtual CD drive to run them. Doing a repair this way, caused a ton of problems too, as the VS 2010 installer wants to install .NET 4.0, which wants to reboot the system. Naturally when the system reboots, the installer wants to find the setup files, but since it takes time to find all the drives after a reboot, the install keeps failing.

What a waste of a day and a half.

Lessons learned

1. Don’t use the VS SP1 Pack for VS and VWD from the Web Platform Installer. Get the individual downloads for the apps you want to install (IIS 7.5, SSCE and Web Deploy 2.0) and run them by themselves.

2. Copy the files from the VS 2010 .iso to a local folder and run the setup from there. This way after a reboot, the installation will know where to look to continue on.

3. If it ain’t broke, don’t fix it.

Sigh….

INETA gets a new Board Member

By James at April 11, 2011 19:03
Filed Under: Life in General, community, evangelism, user groups, Technology in General

I’ve got news!

 

I’m honored and humbled to have been elected to the Board of Directors for the International .NET Association (INETA), where I will be in charge of handling the Marketing and Sponsorships for the group. We had our first semi-annual Board Meeting this past weekend (April 8th through 10th), with six new members, and there was a ton of passion and excitement for bringing INETA up to speed on visibility, supporting our user groups, bringing new user groups into the family, and keeping INETA viable and relevant. Plus I got to meet a bunch of really groovy people; the rest of the Directors and Officers:

 

Joe Guadagno, Dane Morgridge, Woody Woodruff, Robin Edwards, Chris Coneybeer, Mark Rowe, Lori McKinney, Steve Bohlen, Nancy Mesquita and Stacey McKown.

 

It will be lots of work, but I am thrilled to be given a chance to be part of this. Stay tuned for updates and more information. And, don’t forget to checkout the INETA site at www.ineta.org!

 

James

Interview questions – Change for a dollar

By James at March 22, 2010 12:19
Filed Under: Inland Empire .NET UG, Life in General, Technology in General

So, in my quest to become gainfully employed, I am going through the interview process, mainly technical interviews with hands-on developers. Unfortunately, they seem to want people that 1) either *just* graduated from Computer Science school, or 2) can memorize obscure bits of code, and recite the Visual Studio help files verbatim.

At my last interview, I walked in – after a two-hour car ride, and trying to find a parking spot – to a “Hi, let’s write some code on the white board” situation. Ok, I say to myself, “let’s give this a try”. Their first question, “write code to calculate the optimum number of coins to return when giving change after a purchase.”

Hmm, I think. And I stumbled around for a bit, eventually ending up writing some pseudo-code that involved some long division. The Inland Empire .NET User’s Group’s next meeting was the following Tuesday, and I decided to ask them the same question – however they had the luxury of being in a friendly environment with soda and pizza in their fiery little bellies.

Below are the two answers that UG members sent to me, and it got me to thinking. What I would like to do is have you write your code in the comments, so I can see how many different ways there are to write this method.

From member Daniel Lopez, “Just for grins. If you have suggestion on how to make it better, let me know.”

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GiveChange
{
      class Program
      {
            static void Main(string[] args)
            {
                  DoChange(8.92);
            }

            private static void DoChange(double Tendered)
            {
                  double _DecimalPart = Math.Round(1-( Tendered - Math.Floor(Tendered)),2);
                  do
                  {
                        if (_DecimalPart >= .25)
                        {
                              Change.Quarters += 1;
                              _DecimalPart -= .25;
                        }
                        else if (_DecimalPart >= .10)
                        {
                              Change.Dines += 1;
                              _DecimalPart -= .1;
                        }
                        else if (_DecimalPart >= .05)
                        {
                              Change.Nickles += 1;
                              _DecimalPart -= .05;
                        }
                        else 
                        {
                              Change.Pennies += (int)(_DecimalPart * 100);
                              _DecimalPart -= _DecimalPart;
                        }
                  }
                  while (_DecimalPart > 0);

                  StringBuilder sb = new StringBuilder();

                  sb.Append(string.Format( "Quarters: {0}", Change.Quarters));
                  sb.AppendLine();
                  sb.Append(string.Format("Dines: {0}", Change.Dines));
                  sb.AppendLine();
                  sb.Append(string.Format("Nickles: {0}", Change.Nickles));
                  sb.AppendLine();
                  sb.Append(string.Format("Pennies: {0}", Change.Pennies));

                  Console.WriteLine(sb.ToString());
                  Console.ReadLine();            
            }      
      }

      public  static  class Change
      {
            public static int Quarters { get; set; }
            public static int Dines { get; set; }
            public static int Nickles { get; set; }
            public static int Pennies { get; set; }
      }
}

And from member Henry Vander Leest, "Hi James, Was thinking about the comments you made at the meeting about the interview you had the the question about the code to make change. Well, here's my solution... I don't believe I could have written this in 5 minutes under stressful circumstances. Live Long and prosper."

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ChangeMaker1
{
    class Program
    {
        static void Main(string[] args)
        {
            //takes command line arg from 1 to 99 to make change for a dollar
            int quarters;
            int dimes;
            int nickels;
            int pennies;
            int tendered = 100;
            int cost = Convert.ToInt32(args[0]);
 
            int change = tendered - cost;
            quarters = change / 25;
            change -= quarters * 25;
 
            dimes = change / 10;
            change -= 10 * dimes;
 
            nickels = change / 5;
            change -= nickels * 5;
 
            pennies = change;
 
            Console.WriteLine("Quarters {0}, Dimes {1}, Nickels {2},  Pennies {3}, 
This is the change for item costing {4} cents",
quarters, dimes, nickels, pennies, cost ); } } }

I tested both, and they work like a champ. Now I just need to memorize these for my next round of interviews. So tell me, how would you do this “simple” exercise.

Time to work…

James

Um, where’s my profile? None for you.

By James at June 19, 2009 03:53
Filed Under: Beta Software, Technology in General

I’ve been running Windows 7 RC1 natively on my main system since it came out. No problems at all until yesterday when I did a restart. Logging into my account, I first noticed the resolution was all pixely. Then my desktop had changed, showing the Beta fish, then a notice that my profile could not be loaded and I had been assigned a temporary profile. I rebooted and was greeted with the same thing. Looking through the event viewer I found the following at about the same time this all started.

“The file system structure on the disk is corrupt and unusable. Please run the chkdsk utility on the volume \Device\HarddiskVolumeShadowCopy1.”

So I started IM-ing my IT God, best friend, Rich (www.goatsneakers.com). He can figure out anything and the first thing he said was not to do the chkdsk. Fortunately I had also setup Carmina with an account so he had me do the following steps.

  • 1. Login as Carmina (I had set her up as Administrator)
  • 2. Create a new account
  • 3. Login to the new account and let it build the profile
  • 4. Log back in as Carmina, then go to Computer –> Properties –> Advanced System Properties –> User Profiles

What Rich wanted me to do was copy my old profile to the new one I had just created, but “uh-oh” the “Copy To” button was disabled.

image

I tried every combination I could think of and the only way the Copy To button would enable was if I chose Default Profile. Both Rich and I started searching for answers and came up with the following link, “Cannot Copy Local Profiles in Win7” (http://social.technet.microsoft.com/Forums/en-US/w7itprogeneral/thread/0efeef2f-d059-484c-bea3-6ca21b6cd33e). Apparently it is either a feature or a bug, but being able to copy profiles in Win7 has been disabled. The thread shows a lot of disgruntled IT Pros.

I was starting to get frustrated. I have regular backups with Mozy, but I didn’t want to have to spend time re-paving my system. However now I was into this with a 6 hour investment so far. So I tried one last ditch effort.

  • 1. Login as Carmina
  • 2. Create a new “James” account with Administrator rights
  • 3. Login as the new “James” and let the profile get built
  • 4. Log off then login again as Carmina
  • 5. Take ownership of all the files and folders in the C:\Users folder
  • 6. Copy the entire James folder (the original) to the new James2 folder
  • 7. Rebooted and logged in as James2
  • 8. Bingo! It’s all back, including all my email accounts.

Nice!

Only a few things are a bit flakey. Live Mesh isn’t working so I need to reinstall. But if this happens again, I know I’ll be ready. Ah…the fun of being a renegade.

Time to reorganize.

James

May 35th. Why I do what I do.

By James at June 04, 2009 15:35
Filed Under: Life in General, Technology in General

Not many people know, but I didn’t start out thinking I would be a programmer. When I graduated from High School in 1979, computers were things of Sci Fi movies and such. I spent my young adult life working to become a Veterinarian, and when that didn’t work out quite right, I spent 12 years working in veterinary hospitals.

Tired of being bit, peed, shat upon and minimum wage, I decided to move on, and took a job at Chaffey College working in the Life Sciences Department. This was when “Personal Computers” started to become known, and a 286 processor with 1 megabyte of RAM was the hot machine. The department got a few of these monster machines and I started fooling around with them; teaching myself DOS commands, formatting 5 1/4 floppy disks, thinking to myself “I’ll never run out of room with this 10 MB hard drive!”

One day I received an invitation (think WAY before email) from IBM to come and see their new technology called “Ultimedia”. I made arrangements to go to see what this was all about. The presentation consisted of a computer attached to a laser disc player displaying on a very large monitor. The presenter started in about how he could access different parts of the laser disc in a random fashion to make a presentation and teach. I was interested in what he was demonstrating – the beginnings of technolust – and I started thinking about how this could be used in the classroom, I was working at a college by the way.

The laser disc contained various pieces of information about Tennyson’s epic poem, Ulysses. The entire poem was available, with dissertations and explanations by literature professors and experts. Different Shakespearian actors would recite the poem in various tones and intonations. All the while, I kept thinking how cool this was.

The presenter began to end the presentation by saying, “that’s not all, look what I can do with this information.”

The screen went black, and a “thump, thump, thump” started with images of current affairs displaying on the screen, clips of the actors reciting the poem, key words flying on and off screen, building, Building, BUILDING. Goosebumps grew goosebumps, which got even more goosebumps as the presentation continued.

The theme behind Ulysses is that of a sailor, who has spent more time at sea, than at home. And when he finally returns home for good, he finds the life he thought he knew to have changed – drastically. But all the while, his mantra, his personal creed, how he had chosen to live his life by not to giving up, no matter what the obstacle is, to be true to oneself, to state his case, and not back down… “To strive, to seek, to find, and not to yield.”

My heart was pounding, my jaw slack. As the music was playing, the video and photos are flying in and out, and with the fascination of the technology I had just seen enveloping me, this last image displayed on the screen just as the deep baritone stated “to strive, to seek, to find, and not to yield”.

After that I knew this was what I needed to do. To use technology to bring information to people. To help them learn. To help them reach beyond what they thought was possible. To take a stand and talk about what needs to be changed. To strive, to seek, to find, and not to yield.

I asked the presenter – I wish I remembered his name – how I could do the things I had just seen. He asked for my mailing address. A few days later, waiting for me in my office was a big box from IBM. Inside was a 386 computer, a copy of Arts and Letters, a copy of ToolBook and a note…”See what you can do. Change the world.”

The rest is history.

Time to reflect.

James

Free training from Microsoft

By James at May 21, 2009 03:24
Filed Under: Microsoft, Technology in General, Web Development

Microsoft has released two sites with tons of free training. Yup, I checked it out and it's free.

"Ramp Up", http://msdn.microsoft.com/en-us/rampup/default.aspx, covers topics from moving from ASP or PHP to ASP.NET, ASP.NET, Mobile Developent and Sharepoint.

www.msdev.com has tons of webcasts and training materials, geared towards solution providers, however the content is available for all.

Check it out.

James

 

Windows 7, iTunes and GEARAspiWDM.sys. No black turtlenecks for me.

By James at March 23, 2009 16:24
Filed Under: Technology in General, Beta Software

So after my adventures yesterday with Win7 Beta 1 and no web access, I thought things were all cleared up. Tonight I realized my DVD Drive wasn’t being recognized. Going into Device Manager I saw that Windows had disabled the Drive because the driver being used was unsigned. Digging a bit deeper I find that one of the drivers being used is GEARAspiWDM.sys. This is a pretty common driver for DVD/CD RW drives, so I was intrigued why that was the issue.

Googling for GEARAspiWDM.sys I found the following article on ZDNet by Ed Bott, “An inside look at Apple's sneaky iTunes 8 upgrade”. The article talks about how Apple sneaks in a bunch of crap during their iTunes and QuickTime upgrades and doesn’t indicate what is being installed. I followed the articles suggestions about trying to roll back to a previous version, but, of course, there isn’t one on my system.

A quick trip to www.gearsoftware.com, Support, Drivers and I download Driver_Installer_x86_x64.exe Version 4.008.5, Date Feb 4, 2009. Running the installer is a snap, and I have my DVD Drive back.

Thanks Ed! Thanks Gear Software! Screw you Apple.

Namaste,

James

About the author

James James is a five time and current Microsoft MVP in Client App Development, a Telerik Insider, a past Director on the INETA North America Board, a husband and dad, and has been developing software since the early days of Laser Discs and HyperCard stacks. As the Founder and President of the Inland Empire .NET User's Group, he has fondly watched it grow from a twice-a-month, early Saturday morning group of five in 2003, to a robust and rambunctious gathering of all types and sizes of .NET developers.

James loves to dig deep into the latest cutting edge technologies - sometimes with spectacular disasters - and spread the word about the latest and greatest bits, getting people excited about developing web sites and applications on the .NET platform, and using the best tools for the job. He tries to blog as often as he can, but usually gets distracted by EF, LINQ, MVC, ASP, SQL, XML, and most other types of acronyms. To keep calm James plays a mean Djembe and tries to practice his violin. You can follow him on twitter at @latringo.

And as usual, the comments, suggestions, writings and rants are my own, and really shouldn't reflect the opinions of my employer. That is, unless it really does.

James Twitter Feed

Recent Comments

Comment RSS

Month List