Friday, October 26, 2012

5.1 and 5.1... finally a match

As you may have known, View 5.1 was not fully supported on vSphere 5.1 at launch. That is no longer the case with the release of an ESXi 5.1 patch. So go ahead and run that View 5.1 on vSphere 5.1... you'll now get full VMware support. ;-)

Tuesday, October 23, 2012

Virtualized 3D Gaming on VMware View Realized!!

Virtual Shared Hardware Accelerated 3D Gaming

This year at VMworld 2012 we ran a 3D gaming lab in the Green Room for the Hands-On Labs. It was to show off VMware's new vSGA (Virtual Shared Graphics Acceleration) technology in a fun way. vSGA has been introduced in vSphere 5.1 and will be available through View with our next major release due out in the first half of 2013.

VMworld in San Francisco was our first attempt at 3D gaming before vSphere 5.1 became generally available and we were using an Alpha build of View. We (myself, Todd Dayton and Tommy Walker) put the whole environment together in the week leading up to VMworld using loaner hardware donated by SuperMicro, along with internals for those hosts donated by Randy Keener and Nick Geisler, endpoints donated by Dell/Wyse, and Nvidia Quadro 6000 GPUs donated by Aaron Blasius. Aaron Blasius' and Warren Ponder's teams were invaluable in getting us the bits and new fixes along the way to improve performance.

Possibly the hardest part of setting up the "gaming" lab was finding games that would actually *run* on ESXi. Many games would simply dump us back to the desktop with no error (this was particularly true for any racing games we tried). We assume this is because those games are either looking for a supported GPU directly or are trying to use a specific feature on a specific GPU. vSGA supports DirectX 9 and OpenGL 2.1 (?), so it is also possible that some games are trying to use features that we don't support at this time.

For VMworld 2012 San Francisco we settled on two games that had decent performance in the short time we had to try and get things running. Those two games were Minecraft and Borderlands. We ran 6 sessions of each game for a total of 12 desktops across two hosts with a single Nvidia Quadro 6000 in each host. We found, at that time, that we couldn't get adequate performance at resolutions over 800x600, but a late VMtools build got our frame rate up to an average of ~25 fps at 800x600 resolution. We were happy at this point because it was a vast improvement over previous performance.

Here is a very short clip showing the VMworld 2012 San Francisco stations.

After the show was over and we started shutting down stations we found that the Minecraft sessions were crushing the Nvidia Quadro 6000 GPU. We found one session alone could use as much as 76% of the GPU at times. This meant that we were most likely bumping into GPU performance limitations that impacted frames-per-second (FPS) on the Minecraft sessions. The Borderlands sessions used far less GPU resources with a single session generally not pulling more than 35% of a GPU as a max. Still, this shows that the application being used has a wide varying impact on GPU utilization and needs to be tested in any given use case.

Fast Forward to VMworld 2012: Barcelona

Fast forward a month and we were in Barcelona trying to setup the same environment with different host hardware. In the meantime the engineers had been given our feedback and had been looking into what else might be causing performance bottlenecks.

Simon Long was able to get Counter-Strike:Source running in a VM on ESXi and brought this along on an external drive that we added to the environment. At first we seemed to be bumping into some of the same limitations and were only successful at running this game at 800x600 at a fairly consistent 30FPS… but we were noticing a consistent drop in FPS every few seconds that would only last about 1 second. Warren Ponder happened to drop by and got this information to Lawrence Spracklen who was able to turn around and provide us with a change to an advanced setting that removed this bottleneck. That was when we decided to start trying higher resolutions and is the result of what you see in the video at the top of this post. Counter-Strike:Source running at 1920x1080 at an average of 30FPS using View and PCoIP being delivered to Dell/Wyse P25s.

Leaps and Bounds From Where We Started

Here is a clip of our initial test after enabling the setting that cured our performance issues.

Finally, here is a short clip of the process starting with connecting to View through the P25 to actually playing Counter-Strike:Source.

This effort, while short in time, involved so many different individuals that I haven't even called out (sorry to anyone who's name I missed). It's funny how gaming piques everyone's interest. ;-) Still, it was wonderful to have the help of so many different people and get so much feedback. I truly believe this 3D gaming effort has helped springboard the shared virtual 3D effort within VMware and will ultimately benefit our customers in their critical business use cases. Now that people have seen what is possible they are starting to approach me with real-world use case questions from their customers. That is probably what is the most exciting thing that has come from this.

Thanks to Dino Cicciarelli for taking the lead to fund this "science project"! The outcome far outweighs the means to make it happen.  

**** NEWS FLASH ****  

Here is a new post from Lawrence Spracklen that notes just one setting that will help with View video performance. Because this setting is native to Microsoft Windows I don't believe it is something we will control through View or GPOs.

**** UPDATE****

Forgot to add the juicy techno details that made this happen. I can't release too much around unreleased software unfortunately, but here you go:

  • ESXi Host Information (all loaner gear)
    • San Francisco
      • Two (2) SuperMicro - Dual socket 6-Core Xeon's @ 2.0GHz
      • 128GB of RAM per host (though the VMs didn't need more than 2GB each)
      • A single Nvidia Quadro 6000 GPU w/6GB of VRAM in each host (but the motherboard had four (4) PCIe x16 slots in it... not sure if the PSU could have handled four actively cooled GPUs though)
    • Barcelona
      • Two (2) Dell T620s - Single 6-Core Xeon E5-2640 @ 2.5GHz (motherboard was dual socket, but it only had one CPU installed)
      • 32GB of RAM per host
      • A single Nvidia Quadro 6000 GPU w/6GB of VRAM in each host (the motherboard had four (4) PCIe x16 slots in it, although only 2 slots per CPU socket. The PSU did not have PCIe power cables, so we had to get creative to make things work for the show... like I said, this was a "science project")
  • Endpoint Client Devices
    • Dell/Wyse donated P25 Zero Clients with the new Tera2 chipset as well as Z90 dual-core Windows Embedded Thin Clients.
  • Software
    • vSphere / ESXi 
      • San Francisco was an RTM build (I can't remember the build number)
      • Barcelona was the GA build (5.1.0-834536)
    • View
      • San Francisco and Barcelona were the same build, but this was an alpha build that I am not able to list. However, I can say that this version will be labeled 5.2 and is due to release in the first half of 2013.
  • Network
    • In each case we had a flat 1Gbps local flat network switch. We saw sessions reach as high as 70Mbps once we had them running at 1080p @ 30fps. This is due to the very high number of pixel changes each second at that resolution and framerate. Trying to get this type of performance is not a good use case for the WAN. ;-)
My colleague, Simon Long, has just posted on this topic as well. If you don't already follow Simon's blog, you definitely should start! He has loads of great content.

Wednesday, September 19, 2012

I haven't fallen off the face of the earth...

I have told several people that I would be posting on the virtual shared graphics acceleration (vSGA) that I showed at VMworld US 2012, and I still plan on doing that. However, we are still prepping for VMworld EMEA 2012 in Barcelona, Spain, so my time has been consumed (not to mention helping take care of all the needs of our five kids). For those of you that are not familiar with vSGA, it is shared hardware accelerated GPU across multiple VMs running on an ESXi host. This feature is being introduced with vSphere 5.1, but will not be available in VMware View until a future release.

The unfortunate part about my position at VMware, from a blogging perspective anyway, is that I am most often working on un-released technology. So there is a lot I am not allowed to talk about. In fact, once a product goes GA (generally available) I am supposed to disengage... or at least only deal with how those products form a combined solution. I guess this is my way of saying that is why you don't see many posts from me.

At any rate, please stay tuned for some posts from me after VMworld EMEA 2012!!

Wednesday, August 8, 2012

Help Me to Love Android The Way So Many of You Do

Google Android... take it or leave it?

Let me start off this post saying that I am NOT an Adroid hater. However, spending time on Google+ and being around colleagues that are Android lovers, it would seem that these people are privy to some greatness in Android that I have yet to see. I actually want to love Android as much as I love Apple's iOS, but so far it keeps falling short for me. And trust me, my failure to unlock Android's potential has nothing to do with me liking Apple products. I do not wear blinders, but I certainly may not be looking at things about Android the "right" way. It still has nothing to do with anything else I may like or dislike... I can be impartial, but in the end I still want something to be easy to use. For the record, there are things about iOS and Apple I would gladly change... I didn't drink all of the kool-aid in the glass. ;-)

The Challenge Has Been Set

So I am setting forth a challenge to all you Google Android lovers out there! Help me tune my Android device so it performs the way *I* want it to! After all, the argument I always hear from Android fan-boys is how customizable it is and its "openness". I am not interested in comments bashing Apple or iOS or an opinion on which is better. I am saying that I would like to change certain things about my Android device to make it work the way I want it to... and according to so many Android users out there, it should be a piece of cake. So far I have not found what I am looking for.


I can NOT root my device. This is a work related device that I have to use with a product that will not work if the device is rooted (it checks for this). However, if anyone tells me the only way to fix my issues is to root the device, then I would say Android is no better than iOS since I can jailbreak an iOS device and do pretty much anything I want with it as well.

I also do not want to have to spend a lot of money to fix my issues with the device. I have no problem spending a couple dollars on applications and such that will make using the device better, but I don't want to spend a lot.

My (current) Device

I currently have an LG Spectrum phone that I only use over WiFi (I do *not* have cellular service for this device and do not intend on getting it). I do not intend to make this my phone, but I do still attempt to use this device for many different things which I will discuss later. For mobile connectivity I am able to use my regular phone as a personal hotspot, so I can have it access data whenever I need it to.

The stock LG UI (I believe this is referred to as the "Launcher") is pretty pathetic. There are certain elements I hate and want to get rid of, but they seem to be locked in place by LG and Verizon... this seems to coincide with Verizon specific applications that I don't seem to be able to uninstall... I would call this bloatware.

I have been messing around with GO Launcher EX and other applications to make the experience better. GO Launcher is certainly better than the stock launcher, but I still have some things that annoy me that I don't believe have anything to do with the launcher.

When listing out my "issues" I will avoid any that are hardware related because that is not directly the fault of Google. I say "not directly" because, unlike Microsoft who had very tightly controlled specifications for their latest round of Windows Phones from 3rd party vendors, Google doesn't appear to dictate any specs that directly impact user experience. That is a problem unto itself, but you could easily mitigate that by buying a Google Nexus device which has much tighter control over it. However, I feel I need to say one thing that is fairly common across the latest crop of Android devices: They are too damn big for single-handed use! I think the big displays look great just like the next person, but after I use my Android phone for a while and go back to my iPhone I truly appreciate the dimensions of the iPhone for single-handed use (which I do a lot). With the iPhone I can just about reach the entire front surface of the phone with my thumb, and certainly the entire screen area... not even close with the big Android devices. But I'll just leave it at that, and I realize there are smaller Android offerings.

My Issues

1. Uninstall Those Pesky Apps - I'm okay with apps that I can't get rid of, as long as they don't insist on running in the background using up my precious battery life! I hear from Android users that there are no apps you can't uninstall. Even if I can't uninstall them (without rooting the phone), at least tell me how to stop these things from running all the time in the background. Every time I kill them they show back up. It bugs the crap out of me.

2. Stop Apps and Processes From Running All The Time - I realize there will be certain system processes that must run all the time, but I have other applications and games that are always running in the background... even if I kill them they come back! Some of these revolve around issue #1, but some of them I want to keep installed, just not run all the damn time. I understand the benefit of "true" multitasking in Android compared to other platforms (like iOS), but this one is a detriment if you can't easily stop apps from running in the background.

3. Why Isn't There a Quick Way to Jump to the Top? - This one I am going to pull straight from iOS, because it is SOOO nice to have and use! Let's say I am in Google+, email or a similar app. I may have scrolled very far down a list of things (say Status Updates) and I want to see what has happened since I have been reading through them. On iOS I can simply tap the top of the screen, in any app, and it rockets me up to the top of the window... with Android (at least the phone I have) I have to scroll all the way back up to the top which is agonizingly slow, even with velocity scrolling. I am hoping this can be accomplished with a simple add-on or something.

4. User Interface Consistency - It would seem that app developers don't have to follow any guidelines in UI design, so the end result is that it is not as simple to use from app to app. I know in iOS applications developers have to follow certain UI rules within their application or they get rejected until they fix those. This, in my eyes, is a very good thing... because it means that all of the applications are predictable as it concerns my interaction with them. It makes it easy to install any application and use it as if I have used it forever. I'm not sure there is any fix for this other than Google implementing some form of control on what applications can be released through its *own* store. I understand some people don't see a problem with this and want the "openness" of the device and application market, but I think it would go a LONG way with user retention and adoption if something like this was followed... even if only for the "official" Google Play store.

Those are probably my biggest issues with using Android. I may update this post in the future when something else bugs me, but addressing these four (maybe even just 1-3) would make me much happier.

A discussion on this post has been happening over on Google+. Add your own opinion here

Tuesday, July 3, 2012

OnLive Virtual Gaming

I was skeptical when I first saw announcements about this service, and it took me a while to actually sign up for their free account and try it out… but once I did I was blown away and am a paying member.

Sure the graphics are not as good as a decent physical gaming rig that sits under your desk… but that's NOT what OnLive is trying to be! It allows me to play Windows games on my Apple MacBook Pro, even using an XBOX 360 USB controller that normally doesn't work on a Mac, or my wife's now old and very underpowered Windows laptop that these games wouldn't normally play on at all. They even have a piece of hardware that you hookup to your HDTV that comes with a gaming controller and you can play your games in your living room similar to an XBOX 360 or PlayStation 3!

I am not entirely sure of the delivery protocol they are using, but it must be homegrown and proprietary. It is obviously a real-time protocol like PCoIP from Teradici being used in VMware View, but it is NOT PCoIP. I haven't taken the time to analyze the bandwidth usage yet, but my guess would be upwards of 5Mbps if it is available. However, it does dynamically throttle itself, making the graphics a bit more lossy, in order to maintain good framerate and response times. Only when I was playing over WiFi in a horrible area in my house for signal strength did I see major degradation and stuttering… but the client also paused and recommended I get a better signal before continuing.

I think what I am most impressed with, considering that the actual game session is on a remote machine and all of the display data and I/O has to traverse the internet, is the responsiveness of my input through the controller. For instance, I was playing Dirt 2 and felt like the game was running locally because there was zero lag on any sudden input I made through the controller. If there was any type of delay the experience wouldn't work, so kudos to them for getting this right.

While I wish I had time to be a hardcore gamer, the reality is that I have a wife and five kids that need my attention when I am not working 40+ hours a week. The OnLive service allows me to be a casual gamer without shelling out a ton of money every year to have the latest and greatest gaming rig, and the experience is what I would classify as "good enough" for the minimal cost and the flexibility it provides.

Goooooooaaal! Soccer (football) is a great sport!

I am really surprised how into soccer I became these past months since coaching my 9 year old son's soccer team. I started watching the Fox Soccer Channel on TV and went to The Philadelphia Union MLS (American "Major League Soccer") soccer game at PPL Park on June 23, 2012. It was an awesome game (may have been that they beat their opponent 4-0) with great offense and defense by The Philadelphia Union! I haven't seen the MLS soccer games on TV, and certainly not on the Fox Soccer Channel. It looks like they are broadcast from time to time on various channels, so I might try to start watching more games.

When I got home and started to try and find out more about MLS and The Philadelphia Union I found that they recently changed head coaches and the game I attended was the team's first game under the new coach. Until the June 23rd game they were in dead last. So I guess I'm glad I got to see them when they were on fire! They scored their first goal at just 1 minute 34 seconds into the game! They also won their next game with 5 goals (!) and won the last game of the season, so I would say that this new coach seems to have really turned the team around.

I'm really bummed that the American men's soccer (football) team didn't qualify for the Olympics, but I will pick a team to cheer for (most likely Great Britain since I have friends from there).

I'm glad that I was able to see the technical side of soccer through coaching and that I love to watch the games now.

Friday, June 29, 2012

VMware View Composer, Linked Clones, DHCP & DNS Issues


With the release of View 5.1, floating (stateless) linked-clones now retain their MAC addresses unlike previous versions of View. In effect, this issue should no longer occur if you are running View 5.1 or newer.

The Scenario

You have an automated VMware View Composer floating linked-clone pool in an environment using Windows Active Directory DHCP and DNS, and whenever you remove or recompose linked-clone desktops it leaves the old (outdated) DNS records in place, and looking in DHCP you see more than one lease for the same computer name. These old records are considered "stale". The DHCP record will eventually drop off after the lease expires, but the DNS entry will persist even after the DHCP lease expires. WHY IS THIS HAPPENING?!?

The Why

I want to start this off by saying this problem doesn't seem to be 100% uniform across all VMware View Composer implementations. It seems to have to do with a given organization's/company's security configurations within AD, DHCP and DNS. With that said, below and even above, is what I witnessed while at a customer recently. Now, onto the explanation...

The above scenario is being caused in part because floating linked-clone pools do not retain their MAC addresses when destroyed, so they will get a new IP address when rebuilt. Yet the new VM is created using the same name as the previous VM and would need to be able to modify the existing DNS record that still persists. In some cases the applied security settings on the DNS server will prevent DNS records from being modified by just any account/client.  In the scenario I witnessed, the now stale DNS record that was created by the DHCP server lease of the original VM is still tied to that lease and the new lease does not get an additional DNS record (while it is possible to have multiple records with the same IP address, each record's NAME property must be unique), and in addition the new VM's computer account (SID) does not have any permission to modify the DNS record, so the DHCP Client cannot update the DNS record like using ipconfig /registerdns, which has no effect on the DNS record.
Note: In the described scenario you may see the old VM's computer account represented in the DNS object's security tab listed as something like "Account Unknown U-I-D-xxxxxx-xxxxxx-xxxxxxx-xxxxxx", which was originally listed as "COMPUTERNAME$" before the AD computer object's SID was changed by the newly created and joined VM. 
Here is the kicker: Even though the DHCP server is set to "Discard A and PTR records when lease is deleted" is checked, the DNS records are persisting after the DHCP lease expires when its time limit is reached.

Additional Points

If no DNS record currently exists for the computer name, then a DNS record gets created when the computer gets a DHCP lease. This works for brand new, never existed desktops being added for the first time. This also works if you manually delete both the DHCP lease AND DNS record, and then renew an IP, but that is not a viable solution in an automated desktop pool world... especially if we are talking about recomposing hundreds of desktops at a time.

One other note, as I found out from the referenced blog post below, if both the DHCP and DNS records are up to date and not stale, performing an ipconfig /release will in fact delete both the DHCP reservation and cleanup the DNS A & PTR records. So I bet you can already guess the solution!

The Resolution

While VMware View Composer does not currently handle this situation automatically (as of View 5.1 anyway), there is a simple fix you can implement easily to resolve the issue. I originally found this solution on this blog post, from more than 1 year ago, down in the comment by "Heather" (wish I knew more about her to thank her for this!). Her solution to this problem was to perform an "ipconfig /release" from the View desktop VM as a shutdown script. She also notes that you need to have the desktop wait for a few seconds or the command runs for zero seconds and it doesn't seem to process successfully.

So create a batch file that looks like the following:
@echo off 
ipconfig /release 
timeout /t 5

Once you have this file created you can place it anywhere that the computer would have access to it. I would recommend placing it in the NETLOGON share on a domain controller for both access and replication across all domain controllers.

You then need to setup linked clone desktops to run this shutdown script in one of several ways:

  • Create an AD GPO with the shutdown script and apply it to the OU that contains all of your linked clones (recommended)
  • Edit the local computer GPO (gpedit.msc) of the parent image to add the shutdown script, create a snapshot and use this for all of your linked clone pools (this allows more granularity, but leaves room for error)
  • Edit each linked clone pool's settings and add the shutdown script to the "Power-off script" field of the Guest Customization tab (again, more granular, but you will need to remember to apply this to any future linked clone pools you create leaving room for error)

The Bottom Line

While this solution worked for the scenario I was faced with, it may not solve all issues that are similar to this. You will definitely need to adequately test any solution before you put it into production, and for goodness sake, TAKE NOTES!!! ;-)

Sunday, June 24, 2012

We Are Becoming The Collective

Waze - Free GPS Navigation with Turn-by-Turn

It just occurred to me that we are becoming "The Collective", like the Borg from Star Trek… and I think it's pretty freakin' cool! Thankfully, so far, most people are not trying to assimilate everyone to a single point-of-view or way of thinking.

Just think about social networking (Facebook, Twitter, Foursquare, etc), and more recently anonymous social traffic sourcing... In apps like Waze, and the yet to release Apple Maps application that was announced at WWDC 2012. We benefit from others simply running the application and that application reporting back statistics such as average speed compared to the posted speed limit. Waze allows users to report incidents such as accidents, police staked out, vehicles on the side of the road, etc. As I drive with Waze open, whether I enter in a destination or not, it can alert me to problems along my current route. If I do plug in a destination it will look for the fastest route with the least number of incidents.
Just the other day I was headed to a professional soccer game at PPL Park in Chester, PA. I already knew how to get there, but it took me through an area that is always congested by a traffic light that can back up traffic for nearly 5 miles at times. Waze routed me off that road and dropped me back on it right at the light where it frees up. While it added more distance to the trip, I was never once stuck in traffic and was able to see the long line I would have sat in when I came back to the main road. That's just one instance where it felt like "The Collective" made me more intelligent.

For news and information based situations, I am able to follow people that I know have similar tastes as me and that I trust their opinion and can be directed to articles that they already read through and "liked" or shared or favorite'ed, etc. I do the same if I am reading through articles/sites. Through this you can be directed to topics that would interest you without having to wade through thousands of stories that may not be of much interest to you. It also speeds those items reaching the right people.

I like where things are headed and can't wait to see what's next! Hopefully I can add something to this movement.

Thursday, June 21, 2012

Incredible Earth-at-night time-lapse video from ISS

This video on YouTube is a time-lapse video of Earth at night as shot from the International Space Station (ISS). You can see all of the lights on Earth as well as storms with lightning that are fairly spectacular. The way the atmosphere lights up as well is impressive. Near the end you get to see the Aurora Australis, like the "Northern Lights" for those of us above the equator, illuminated over the Southern Hemisphere.

In addition, and possibly just as important to the feelings inspired from the video, the music score is *very* powerful and moving. I have to find out who did it and try to download it.

Just noticed this line in the video comments (which have great details on this piece):
**Music: 'Freedom Fighters' by Two Steps from Hell**

- Posted using BlogPress from my iPhone

Microsoft finally surfaced the Surface (new tablet)

Well, Monday June 18th, 2012 has come and gone and Microsoft's secret keynote event did happen. It would seem that Microsoft has put some thought into their new tablet "Surface" they announced Monday, but it remains to be seen how well it might compete with the other tablets on the market running iOS and Android.

Here's a really well done video on YouTube of the Microsoft Surface reveal ad:

Tablets 101

Tablets are not new, nor did they start with Apple's iPad. In fact, there have been Microsoft Windows-based tablets for well over a decade! But those old-school tablets were not purpose built for a touch interface or stripped down to the necessities to run better on slower battery sipping CPUs. They used regular notebook hard drives with spinning media that also sucked battery life. They required special (expensive) pens for the input method (that were easily lost if one was careless). Battery life was abysmal as was performance and user experience. They were, after all, using regular old Windows with some tablet features slapped on top of the standard UI to make it even possible to use. I still have a Motion tablet running Windows 7 (it originally came with XP). The battery life on it was maybe an hour if you were doing anything that remotely taxed the CPU and Hard Drive… you were lucky if you could squeeze 2 hours out of it. And I haven't even mentioned how HOT those tablets got!! It made it so it was hard to hold the thing.

The Apple iPad

I was a nay-sayer when Apple introduced the iPad originally, but then I started to think about why tablets sucked up to that point. It was mostly down to horrible UI and VERY slow performance. What I saw from the original iPad was very snappy performance, and holy cr@p on that 10 hours of battery life! It was something that was unheard of.
Once they were released and I got to play with one I changed my tune and purchased one. It is NOT a laptop replacement for anyone that does heavy lifting with computers, although my wife almost never turns on her computer since she got her iPad (she pretty much only uses the web & email, and of course native iOS apps for everything else). Pages and Numbers on the iPad are actually very well done and pretty powerful considering what it is running on. I have even written long'ish documents on the iPad using an external Bluetooth keyboard (simply for the speed of input, though I am pretty darn fast with the onscreen touch keyboard).

This isn't about Apple

I don't want to turn this post into a fanboi gushing over the iPad… seriously. I just am highlighting these things to point out that Apple, making sacrifices on the full-functionality of their tablet OS (instead of using the full-blown OS X of their notebooks and desktops) and gearing it to a touch-based interface (instead of a mouse-based pointer), finally got the tablet formula right!! Google soon followed with Android tablets (through 3rd parties, which I feel is part of their downfall for adoption). Microsoft is entering the game very late considering that Apple is on their 3rd generation of the iPad and Android tablets have been coming out steadily from 3rd parties.

Will the Surface succeed?

From the very little I have seen, it appears that Microsoft is making efforts to gear the interface to be more "touch-friendly", but the usability overall still remains to be seen. It also seems that the "RT" version, which has an ARM based CPU, will not run legacy x86 apps that were not designed for a touch UI. That is a very GOOD thing for a tablet! However, the "Pro" version seems to be x86 based and will therefore run pretty much all legacy apps that are not designed for a touch-based UI. This will let users down on the usability front I imagine. While it is more flexible, the experience will not be very good in this form factor and small screen with (presumably) higher than normal resolution for such a small screen. I equate this to running my VMware View desktop on my 4.5" Android phone that has a resolution of 1280x800. Everything is so TINY! It's pretty much impossible to work on except for those critical moments I don't have another option.


I do hope that the Surface surprises me like the original iPad did. I want Apple to have more competition out there and have everyone continue to push the envelope on capabilities and usability. In that case, everybody wins! Especially us, the users.

ThinApp Factory Officially Released as a FREE Fling!

For those of you who don't already know, ThinApp Factory is a virtual appliance that has the ability to automate the creation of ThinApp Packages!

Obviously there is a little more to it than importing this appliance and feeding it applications, but this is a great step forward in automating ThinApp packages for Enterprises! 

You can access the software here:

Tuesday, June 12, 2012

What language to use?

I have been trying to determine what programming language to use for the graphical user interface (GUI) application that I intend to build to automate applying Windows optimizations for View desktops (see my Projects page). I have almost zero experience with programming, so anything I choose will be nearly net-new for me. My dilemma is that I need to be able to write this application with some level of polish before VMworld 2012 in August 2012.

The logic behind the app is fairly basic and it is more about presenting the information to the user in a friendly, easy to use manner. It will include checkboxes and some radio buttons. These "items" will be directly tied to an associated command line text string that, if selected, will then be placed in a text file to be run as a batch file on a Windows desktop to apply the chosen optimizations.

A gentleman who works for a VMware partner came up to me at PEX 2012 to let me know that he had taken my Windows optimization guide and created a very simple GUI using AutoIt. I started to look at using AutoIt for my purposes, which should work, but it does seem to be fairly limited and may not offer me much room to grow the application in the future. Still, it is something I am considering.

I started to look at Microsoft Visual C# 2010 because of how powerful that language is, but it seems like the learning curve is a little steeper than I have time for. Still, it is something I would like to learn in the not-too-distant future.

Visual Basic:
I am now looking at Microsoft Visual Basic 2010 to create this application. I have some limited experience with VBA (Visual Basic for Applications) from years ago, so I hope this translates into an easier time picking things up. I also found a book that may help me get up to speed fairly quickly and seems to have good ratings from beginners. I realize this will not make me an expert, but it may be just enough to get me started and at least have the correct terms if I go in search of finding help.

For now I think I have settled on Visual Basic and will be heading down that learning path. If it feels too complicated for me to get to where I need to be to reach my deadline, I can always pull out and work with AutoIt or even get someone else to write the thing for me. I hope that I can pull it off myself because it is something I would like to accomplish and have under my belt.

Thursday, June 7, 2012