Tuesday, November 1, 2011

Windows 8 Developer Preview: Driver Installation for XE700T1A

Continuing Saga
In my last blog post, I detailed my initial setup of the Windows 8 Developer preview on my Samsung XE700T1A-A04.  As of the end of that post, I showed how to install the base OS, but several capabilities were not there.  The motion sensor did not appear to work as expected, and I had not yet been able to demonstrate pressure sensitivity with the pen.

In this post, I will dive deeper into those two issues.

Motion
This is a required feature in my mind on a tablet.  It is one of the little things that becomes huge about the 3rd time you do it.  It worked great on the device while it was running Windows 7, but it was not working after the Windows 8 install.  The slate always is in a landscape orientation.  When you turn the tablet to a portrait orientation, the user interface should detect that and rotate, but it did not. 

Looking in Device Manager, I saw two issues.  One is identified named "SM Bus", but the other was just an unrecognized device.  Samsung has provided a XE700T1A-A03 Driver Page.  I downloaded the driver for the motion sensor.  Upon trying to install it, I got an error that I was using an unsupported OS - it was written for Windows 7.  But, wait, didn't Microsoft tell us that anything for Windows 7 would work on Windows 8?  So, I got brave, selected the file in Windows Explorer, and clicked on Application -> Troubleshoot Compatibility in the ribbon bar.


I went through the menus to configure the "setup" application to run in Windows 7 compatibility mode.  This Got the driver installed, but the orientation still did not rotate with the tablet.  There was one setting left to set:

  • Search Charm -> Settings -> "Orientation" -> Change screen orientation
  • Check "Allow the screen to auto-rotate"
  • Click OK
Eureka.  I had rebooted after the driver installation, but don't know if this is required.  The system did not tell me to, it was just a step I took to try to get the driver to work before I discovered the checkbox above.  Note that there is an approximate 1-2 second delay between rotating the screen and the orientation changing.




SMBus
Earlier I noted that there was a "SMBus" entry with an error in Device Manager.  This was easily resolved by downloading the chipset driver from the XE700T1A-A03 Driver Page and installing.  This went off without any issues, just note that after it decompresses there is a long pause, maybe as long as two minutes, but eventually the installer did start.  After installation of this package, the SMBus no longer had an issue.  A reboot was required.

Pen
There is a pen driver on that driver page, but the installer does not appear to do anything.  I have tried Windows 7 and Windows XP compatibility mode both with and without running as Administrator.  In all instances, I get a wait cursor for a very short time and then nothing.  No evidence at all that anything happened.  This one is still on the to-do list.

Thursday, October 27, 2011

Installing Windows 8 Developer Preview on Samsung XE700T1A

Warning:  It has been reported that removing the backup partition on the SSD of this device has rendered the device useless.  Do this at your own risk.

Destruction of a Beauty
I recently purchased a Samsung XE700T1A-A04 from the Microsoft Store in Seattle (thank you brother Mike for helping me with this, and thank you Microsoft for the free phone).  It is a wonderful tablet.  I've been using it at work for the last 2 days and love it.  Battery lasts good, touchscreen works like a charm, pen does too (although why do you ship a Wacom-enabled tablet with no pressure-sensitive drawing program...)

But the reason I bought it is as a development target for Metro applications.  So I need to get the Windows 8 developer preview up and running.  This post chronicles that experience, be it for success or failure.

Basic Process
The basic process seems to be the following:
  1. Format / Copy the installation media to a 8 GB USB key using the Windows 7 USB DVD Tool
  2. Boot with the USB key
  3. Install Windows 8
  4. Start making money
Setting up the Key
I am using a 8 GB Sandisk key I picked up at Wal-Mart for about $18.  I was shocked I did not already have a big enough key sitting around, but I didn't.  The install media is over 4 GB, and most of my keys seem to be 4 GB.  

The first task was to install the Windows 7 USB DVD Tool.  This was painless and needs no explanation.  Luckily I already had the ISO for the developer preview downloaded, so no waiting there.  I started up the tool and it seemed pretty simple:  select the ISO, select the type of media [USB], select the device, hit go.  But it reported a failure.

Upon investigating the key, it looked like the first step - formatting the key - was successful.  So my next task was to manually extract the ISO to the key.  I used WinRAR to do this.

Booting to the Key
If you've been paying attention, then you probably didn't really expect that to work - well, neither did I.  We're obviously way too educated, because it didn't.  I did, however, discover a few controls of note on the Samsung Series 7 Slate:

  • Windows Key held during boot:  BIOS
  • Volume Up (up key)
  • Volume Down (down key)
  • Rotation Lock (enter / select key)
  • Windows Key [In BIOS] (escape / return / go to exit page)
You can use those to navigate through, turn on UEFI (hope that was a good idea), and get to the page where you set the boot order.  But you can't seem to actually change the boot order.  This was frustrating, but there seems to be an entry on the exit page to override the boot order and boot directly from a specific device.  I used this to boot to the USB key.

But that failed, it almost immediately booted up the Windows 7 already installed on the device.

"Upgrade" Install
Rather than spend more time remaking the key, which took about 45 minutes, I thought I'd check out what happened when I just put the key in while booted in Windows 7.  It recognized the install media and began the install process.  There were some very entertaining screens.  My favorite was the one that asked you what  you wanted to keep with a single option:  Nothing.  That's the stuff.  

But that failed.  Eventually, the system reboots, there is a boot options screen with a rollback, developer preview, and windows 7 option displayed on startup.  I chose the developer preview choice, which fairly quickly failed with a message stating that windows could not be installed on my hardware.  Disappointing, but not surprising.  I did not expect this to be easy.  I then booted to the "rollback" option and eventually got back to this state:


Not the most readable picture, but it is what it is.  The message states: "We're not sure what happened, but we couldn't finish installing Windows Developer Preview.  We've set your PC back to the way it was right before you started."

And it looks like they did.  Back up and running in Windows 7.  No drive space appears to be missing, at least no massive amount.  So, nothing broken, but still no Windows 8.

Back to Key Setup
Looks like the next step is to see if a clean wipe will run.  I located another utility to create USB flash cards for this purpose: WinToFlash.  I ran it and it ran much quicker, if not as user friendly.  I had to extract the Windows 8 ISO to a folder on my system.  There was a Windows 8 option in the menus for this tool, so that is promising.

I booted the system into the BIOS with this new key attached.  Once booted, I get the SanDisk option on the Boot Override of the Exit screen, but I also got a "UEFI: USB USB Hard Drive" option.  I suspect (but have not verified) this is something that is there as a result of the failed Windows 8 Install.  Looks like the system is not "quite" back exactly like it was before.  Upon booting the SanDisk option, I get a small surprise - the Windows 8 Setup actually started.  -- But I didn't get far.  I got an error stating:

Windows could not collect information for [OSImage] since the specified image file [install.wim] does not exist


This pointed to a problem with the installation media. I checked and the one I used was indeed bad. Once I got that resolved, I discovered a new issue - a required setup file is over the 4.x GB limit, and all of this USB key prep software is using FAT32. None of them were actually copying the main install file (install.wim).


The final path to solution seems to be this:
  • Download ISO of Developer Preview 
  • Extract ISO to local folder (we'll call it C:\Win8Install) 
  • Insert USB drive (we'll call it D:\) 
  • Format D: as NTFS 
  • Copy contents of C:\Win8Install to D: 
  • Start -> Administrative Tools -> Computer Management -> Disk Management 
  • Make partition assigned to D: active 
  • Run C:\Win8Install\boot\bootsect.exe /nt60 D: 
  • Power Off Tablet 
  • Insert USB Drive 
  • Power On - holding down Windows Key 
  • When BIOS loads - press Windows Key 
  • Use Volume up/down keys to select the USB drive as the boot option 
  • Press the Rotate Lock key 

The tablet should now be booting up with the Windows 8 Developer Preview installer. Run the installer as normal - installation out of scope of this blog entry

Updates:

  • Camera is working
  • Switching orientation by rotating the slate is not working
  • Pen is working
  • Expression Blend 4 will not install unless you use a mouse

Thursday, October 20, 2011

Tesla Mark II

The Next Generation
Like many mid-30-year-old geeks out there, one of the shows I grew up on was Star Trek: The Next Generation.  As I look around our current technology landscape, I am constantly reminded of the picture of technology that was visualized in that setting (and what led to it).

From phones:




To portable data storage:




To readers














To tablets:














Life really does tend to imitate art.

The Declarative Cockpit
Today I was informed of a new product that is soon to enter the market - the Tesla model S.  This is an all-electric vehicle.  It is quite impressive all around.  But what I found most interesting about it was the interior of the cabin:


As we become a touch-screen-centric society, it seems we keep getting closer and closer to user interfaces we all thought were rediculous.  Flying a shuttlecraft with a touch-only interface, how could that be done?  Never, give me my hard buttons.  That's what we all said.  Sure, it looks neat, but it's just not practical.



Or is it?  Our problem is we still think we are driving the car.  We still think we should be driving the car.  But we don't react fast.  We don't really understand what goes on under the hood, and for most of us, that's a good thing.  One thing that you want to do in software development, at least in some methodologies, is to encapsulate the imperative work - how you do a task - and create a consumable package that consumers will interact with using a declarative model - the consumer only says what they want to happen.

We are but a few layers of abstraction away from the runabout user interface.  I welcome the change.  I'm tired of waiting.

Wednesday, October 12, 2011

Surprising Outlet Experience

It is not often that I have a surprising online shopping experience.  Recently, I had the fortune of getting to purchase a laptop for a family friend as a gift.  We were on a fixed budget, so I spent a decent amount of time shopping for the right system, and for the right supplier.  My company uses Dell, so it was where I started the search.  I then branched out, but eventually returned to Dell since it is what I know.

But in pricing, I just couldn't find that sweet spot where the system was up to par and within budget.  Through some networking, I got referred to the Dell Outlet (http://www.dell.com/outlet).  I expected to find yet another storefront peddling the same wares under the guise of a great discount but with really no net benefit.  What I found was something else entirely, and worth sharing.

B-Stock
I use this term to refer to the not-perfect-off-the-shelf item.  These items are usually either refurbished or have minor cosmetic damage.  Whenever I can, I buy electronics as B-Stock.  I mean they're usually only good for 2-3 years anyway, and I personally consider anything that is out of warranty as beyond end-of-life.  As long as a B-Stock purchase comes with a decent warranty, I consider it a no-brainer.

And B-Stock is what the Dell Outlet peddles.

It is not entirely a consumer-friendly site.  But it was fairly easy to narrow down my search to the features I cared about and, with a small amount of hassle, find the system I wanted, a Dell XPS 15z.  This is one of Dell's newest line of systems, and there was a lot of B-Stock to choose from.  You can't customize the order, but if you don't mind checking and re-checking, a model that fits your needs will probably show up soon.

Once I made the purchase, the system shipped early the next business day, and was in my hand the day after that.  The total saving was around 25% over the best other deal I could find.  That is definitely not a trivial discount on high-dollar electronics.

Thursday, September 15, 2011

Windows 8 Developer Preview

The Microsoft community is abuzz - we have new toys.  At Build (http://www.buildwindows.com), a conference that is going on this week, new bits were released for the Microsoft developer community.  We now have the following toys:

Windows 8 Developer Preview
Visual Studio 2011 Express Developer Preview
Visual Studio Team Foundation Server 2011 Developer Preview
(... actually a lot more, but these are the big boys from my perspective)
(http://msdn.microsoft.com/en-us/subscriptions/default.aspx - if you have MSDN)
(http://msdn.microsoft.com/en-us/windows/home/ - if you don't)

The developer preview releases are not for the consumer.  The target audience is Microsoft enthusiast or professional developers.  You should expect these tools to have some neat new features, but also some significant bugs.  To drive the point home further, consider the following text from Microsoft:

The Windows Developer Preview is a pre-beta version of Windows 8 for developers. These downloads include prerelease software that may change without notice. The software is provided as is, and you bear the risk of using it. It may not be stable, operate correctly or work the way the final version of the software will. It should not be used in a production environment. The features and functionality in the prerelease software may not appear in the final version. Some product features and functionality may require advanced or additional hardware, or installation of other software.
Now for the point to this.  Here are the steps I took to get the Windows 8 Developer Preview and Tools installed and running in a VMWare Player (or more accurately, am now taking since I am writing this as I try to get these tools installed for the first time).

VMWare Player Setup
The first step is to get VMWare Player running.  If you go to the VMWare website and look for VMWare player, the most recent version you will find is a 3.x version.  Unfortunately, this will not work with Windows 8.  The good news is that version 4 is out, and does work with Windows 8.  The bad news is that you have to download a lot more software just to get it.  It is bundled with the VMWare Workstation 8 installer.  You can get it here: http://downloads.vmware.com/d/info/desktop_end_user_computing/vmware_workstation/8_0.  If you do not already have one, you will need to create an account with VMWare (it is free).

Once VMWare Workstation 8 is installed, you should find VMWare Player 4 also installed.  Start it up and do the following:

  • Create a New Virtual Machine
  • Choose "I will Install the operating system later", click next
  • Choose Microsoft Windows, and Windows 7 x64 from the drop-down, click next
  • Enter a name, change location to store data if desired, click next
  • Choose desired storage options, click next
  • Click Customize Hardware - set this up as desired, below are my settings
    • Memory: 4 GB
    • Processors: 2
    • CD/DVD: Use Iso Image (chose the windows 8 preview ISO downloaded from links above)
    • Network: Bridged, replicating physical network
    • All others default
  • Click Close
  • Click Finish
You should now be able to select the new virtual machine and start it up in VMWare player.  Upon booting, it should take you through the normal setup procedure.  If it doesn't boot into Windows Setup, you probably did not setup the CD/DVD to boot the Developer Preview ISO.  You should be able to fix that in the settings for the virtual machine in VMWare and reboot it.  If you are still reading this, you probably don't need to be walked through that.  It went fairly well.




Mistakes I made, and the consequences:

  • Tried to use VMWare Player 3.x
    • This failed miserably.  Virtual Machine became trash fairly quickly.
  • Used VMWare Player 4, but set operating system to "Other"
    • This started to work, but there was an error during setup
    • The error rebooted the virtual machine
    • From that point on, the VM was in an endless reboot - error cycle
Both of these errors required deleting the virtual machine and starting over.

Saturday, August 13, 2011

Microsoft Team Foundation Server Error: TF255251

I have done a few Microsoft Team Foundation Server 2010 installs.  Each time I do it, I seem to run into problems.  This latest time was no different.  After searching online for resolution to my problems I did not find much help, so I figured I should share what my problem was, and how I eventually solved it.

First for the quick answer.  The root of my problem was that I needed to add the "NT AUTHORITY\LOCAL SERVICE" account as a farm administrator for Sharepoint Services 3.0, and I had to do it as the user I entered in the TFS configuration.

Now for the history, how I got to the error, and how I debugged and fixed it.

My system is a virtual machine with 4 GB RAM running in VMWare Player.  I installed Windows Server 2008 R2, fully patched it on 8/12/2011, and installed SQL Server 2008 R2 with analysis and reporting services.  I then installed TFS 2010 using Sharepoint 3.0 Services.  My first issue, which the documentation did not seem to address, was a question asked during the SQL Server configuration.  The database setup needed to know whether to install in native mode or in Sharepoint Integration mode.



Not being able to find direction in the TFS installation documentation on this, I figured Sharepoint integration would be the way to go.  However, that is incorrect.  Native mode is needed.  I did not think to take screenshots of this error, but from my recollection this problem showed up when I was configuring TFS as an error with Reporting services.  The advice I found on how to fix this was to rollback or start over and choose the right option.  However, I found a way to get around that problem.  The resolution required the following:

  • Using the SQL Server 2008 R2 Management Studio
    • Detach the "ReportServer" database
  • Remove the files stored at C:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA related to this database
    • ReportServer
    • ReportServer_log
  • Using the Reporting Services Configuration Manager
    • Start the tool and enter the SQL server / instance credentials
    • Click on "Database" to the left
    • Click on "Change Database" to the right - Note this will still look like the ReportServer database is there - but it is not
    • Add a new database in Native mode called ReportServer
    • [Note: I also had to setup the Report Manager URL with this tool by selecting that option to the left and hitting Apply so you may need to do that step as well]
Upon re-running the TFS setup, reporting services was setup correctly, but the last step of TFS configuration is setting up the default collection.  This step failed, and fails consistently.  Below is a screenshot of what the error detail looked like for me:


Now, this should have been fairly easy to fix.  I tried the following:
  • Start Sharepoint 3.0 Central Administration
  • Login using my personal user account (the same one I installed TFS with)
  • Click operations
  • Click Update farm administrator's group
  • Use the New pull down to add a new user named "NT AUTHORITY\LOCAL SERVICE"
    • This step failed, saying I had to be an administrator
This was confusing, because I am an administrator.  I am shown as being a Farm Administrator on that last screen we were on titled "People and Groups: Farm Administrators".  As it turns out, you have to use the account that was setup as part of the TFS configuration.  I named mine TFSREPORTS.  Once I logged on as that account and reran the above bullet list, I was able to add the LOCAL SERVICE user as a Farm Administrator.  Once it was there, creating collections seemed to work fine.  The one caveat is that while creating the collection had failed, it did actually make the databases for TFS_DefaultCollection.  I had to detach these and delete them from disk before the last step of TFS configuration would pass.  

I expect this error was injected because I did not use the right user account or right type of account somewhere along the way.  In my mind though, this is the simple case.  It should just work.  Since Sharepoint was installed by this step, I am not sure why the Sharepoint installation had an error.  But this error is repeatable, and it shouldn't exist.  The TFS installer has access to the account that can fix this problem in Sharepoint since it was created by the TFS installer.  It should automatically make the LOCAL SERVICE account a Sharepoint Farm Administrator, or at least clearly tell you what to do.  But then again, I'm a dreamer...

What would be a lot nicer though, is to not have to do any of this.  The VMWare gallery should have a virtual machine posted that has a working TFS server using trial licenses.  I should be able to download it, start it up, enter license keys, and be up and running without needing to do setup on my end.  This sort of thing may exist somewhere for Hyper-V, but it should be in the VMWare gallery as well.  If it is there, it's certainly not easy to find.

Monday, August 8, 2011

The First Taste is Free

I do a lot of development at home.  I do not find my professional life provides experience on the edge of technology, so I have projects I work on to keep my skills sharp and, more importantly, to develop new ones.  When doing this, I use Microsoft Team Foundation Server.  I have a license to MSDN Premium through work so this is a no-cost operation for me.   It is a nice tool.

But...

Now some friends of mine would like to join me on a project.  TFS is great, but it looks like it will cost around $500 / person in order to use TFS for a closed-source personal project.  This is unacceptable.  I spent a little time (and let me emphasize that "little") looking for another solution.  There are fragmented solutions that are free, but their quality does not impress me.  Where is the amazing end-to-end project management / source control / build automation tool that is free for non-commercial, small projects?

I do not understand the business of this.  Give the tools away for free for the little projects so that we are all hooked on them for the big projects.  As is, those that tend to drive the decisions are pushed into familiarity with the free tools and we end up using eclipse and subversion for C++ professional ventures when the tools are clearly inferior.

The number one rule for creating addicts:  the first taste is free.

And it can't be a trimmed down taste.  It needs to be the real thing.  Don't worry.  We'll come back with cash.


Rant Caveat:  Solutions need to provide something like Team Pulse with TFS integration.  There are free editions of some nice tools, but the free version always falls short.

Tuesday, July 12, 2011

Microsoft Haters vs. Post Sharp

Today at work, I got in a discussion with another developer who "hates Microsoft".  We were talking .NET, and I am a proponent of that technology.  He clearly is not.  For the last few days, I have been working on a project he also works on.  My tasking has included upgrading logging.  Part of that has included going into the code base and putting logging statements at the beginning and, at times, the end of functions.  

Today after work, I went to the monthly meeting of the Huntsville .NET user group (http:.//www.huntug.org).  The presenter was generally talking about Aspect Oriented Programming, and specifically showing the benefits of a single framework:  Post Sharp (http://www.sharpcrafters.com).  The basic pitch is that if you are going to be doing something in a repetitive, predictable way, Post Sharp can automate that for you and clean up your code.    The demo included adding logging capability to an entire .NET assembly by creating a very simple class that overrides two base class methods with one line of code in each override.  The next step was to add a single line of code in an assembly-level file and all functions in the entire assembly now had uniformly-functioning logging on function entry and exit.

Without Post Sharp:

void MyClass::MyMethod()
{
     Trace.WriteLine("Entered MyMethod");
     //Do stuff
     Trace.WriteLine("Exited MyMethod");
}

With Post Sharp:

[Logging()]
void MyClass::MyMethod()
{
     //Do stuff
}

Of course, you also have to write the LoggingAttribute class.  I don't remember the details, and I'm sure this is wrong, but it was something like:

[Serializable]
public class LoggingAttribute : xxxSomePostSharpBaseClass
{
     override SomeEntryFunction()
     {
          Trace.WriteLine("Entered " + args.Functions.Name.ToString());
     }

     override SomeExitFunction()
     {
          Trace.WriteLine("Exited " + args.Functions.Name.ToString());
     }
}

But you only have to write it once, and it can be applied to every function in an assembly, class, or on a function-by-function basis.  Seemed like a nice, useful tool.  

I would have loved it if this developer had come with me, but often we are content to defame something we see as competition rather than spend the time to really consider it an option.  It is our nature - a nature worth fighting.

Sunday, July 10, 2011

Google+ First Impressions

I spent a chunk of the day playing with Google+ while doing a Windows 7 re-install on the kids machine.  My first impression with Google is always tainted with positive bias.  But I love it.  I like the control it gives.  It surely has some rough edges, but it's got some big benefits.  The first one that jumps out at me is farmville.  I like the social interaction Facebook has brought me, but I loathe the forced co-habitation with Facebook viruses like Farmville.  I really hope that Google+ can remain a pure communication hub with the tasteful advertising we get with the other Google apps.

I have not used the video/audio chat features, but I can see them being very useful, especially in a distributed work environment.

Circles.  Well duh.  I love this feature.  But I can also see it getting out of hand.  I have about 50 or so friends on Facebook.  Setting up circles for these friends was trivial.  But I can also see someone having 600 friends with about 40 different circles and the fact that they used circles is foreshadowing - death by Venn diagram.

But the overwhelming positive feature - integration.  Whether I'm looking at my Patrick+ page, my gmail, calendar, or any other Google app - I have integration into the social app.  Hopefully this story gets expanded so that we have more top-bar integration (it would be nice to always see calendar and mail information as well as Google+).  I expect advancement to come with maturing here.  Facebook has no ability to compete here.  Even on the phones Facebook is off playing in its own sandbox.  It's a communication hub with walls.

Sparks are interesting, but I see that being a feature I could easily forget about and end up being wasted real estate.  I have been using them for the last two days though, we'll see if that trend continues.

Saturday, July 9, 2011

Interviews

Recently, I did a few interviews around town, and across the country if you include my Seattle / Amazon interview.  I feel like they went OK.  Not great, but OK.  I'm a great employee based on the satisfaction of my past employers, but don't do great at interviews.  My issue, which leads to my advice, is follow up.  To date, I have heard from one of my interviews (I did about 9).  Some have given me a time table when I can expect to hear back, some have not.  This is very disappointing.  Not that I didn't get offers, but that those loops were not closed.

My advice is this - always close the loop.  Don't leave candidates hanging.  If someone invests their time to come interview, the least you can do as a prospective employer is to close that loop.  There were a couple of places that I was mildly interested in working, but now I have a bad taste in my mouth.  If the answer is no, if the answer is we are considering another candidate, if the answer is we need more time to make up our minds, fine.  Just let the candidates know.

We may not do everything right at Quadrus, but this, we do.  Always close the loop.

First!

I rarely get First! anything on the internet... but I figure I can probably secure the first post in my own blog.  This blog will be a personal journal / software developer journal/commentary.  Feel free to follow me if you want.  I will not be shooting for a target audience with this.  I may eventually separate out a software development blog from my personal one, but for now this one is all I'm doing.