Category Archives: Software

Rosetta Stone Launches iPad App

Yesterday Rosetta Stone launched their TOTALe HD app for the iPad device, another platform which Rosetta Stone included in trying to create a total immersion process for learning a new language.  I was excited to try and get my hands on the app as soon as I managed to get an opportunity.

The app was a welcome addition because now I finally have another reason to use my iPad instead of sit in the corner as a photo frame, which is where the device spends most of the time now.  Rosetta Stone released their app as a free download from the Apple App Store.  In order to use the application, you need to have an active TOTALe subscription to take advantage of the app.  This is included with any purchase of any Rosetta Stone language product as well as if you purchase an online subscription through Rosetta Stone’s website which can even be purchased at three month increments for as little as $199 which would give you access to all levels of the language.

The app itself is great.  While it does not include many of the additional you would get on a PC such as the Studio sessions with instructors or the online games and stories, but the course does include all of the courseware as well as the previous scores that you might have had from taking a lesson.  The courses themselves don’t appear to be stored on the iPad device but downloaded as a stream.  This can lead to the application dragging from time to time if you have a weak internet connection, but in general the app is far less drag on a connection than streaming video and doesn’t have to be as responsive as VoIP or online gaming.

Some of the positive things that I did enjoy with the iPad app for Rosetta Stone is the freedom and portability of the iPad with the functionality of the application.  I can take learning on the iPad outside to my porch where I can enjoy the spring weather and learn a new language. Many times the PC version would almost seem better on a touch screen where the iPad app makes that fully available for you and actually allows some portions of the lessons to proceed a split second faster.  The app takes up little room on the iPad and so even the lowest end 16GB model shouldn’t have any problem with storage capacity.  The installation of the application is only 12.6 MB and has to be done through the iTunes App store.

The downsides to the app are that the courses aren’t stored on the iPad which is unfortunate because I really would like to use the device without having to be connected to a WiFi or 3G connection.  On the positive side, 3G coverage is enough for you to use the courses although I don’t know what the data plan usage would be.   Other problems with the app include the fact that some minor data points are missing yet from the Rosetta App including one of the features that I use to study which would be the date the last time a lesson was completed.  One other feature that I find frustrating is when you have languages in a different character set such as Chinese or Arabic, the app resets the character set after every lesson.  This was very annoying for me because I try and make my learning process just a bit more difficult by learning the advanced characters.  Generally on the PC side, the character set is somewhat static unless you completely close out of Rosetta Stone.

The application is clearly a first release and has a number of issues.  Performance appears to be there, while occasionally response just does not seem to be there.  However, this also can be experienced with a weak internet connection on the PC variant of Rosetta Stone.  One of the clear bugs happened to be how some of the courses would have completion of over 100% for the score.  Clearly this is a bug that will probably be fixed in an update.  I don’t feel the that any of the bugs are detrimental to the learning process.  However I did have the application crash during a lesson.   I was able to pick up right where I left off when the application failed though and within a few seconds.  While working on the application I spent two hours studying Japanese while working through three core lessons.

Overall, I would recommend this application to any iPad owner as well as I would say that Rosetta Stone is definitely a great opportunity to learn another language and worth the expense, especially compared to taking college level courses.  I think that the only way to learn a language faster would be to move to a country where the language to be learned is native to the area.  My hopes are that Rosetta Stone will allow the application to download lessons similarly as downloading movies from iTunes because I would really like to be able to use this in areas where 3G just is not available.

UPDATE: June 7th, 2011.  After further investigation I have discovered that portions of the course where are missing from the iPad version.  Ths would include any lesson that would require typing such as the grammar, and the writing portions of the application.   Hopefully Rosetta Stone will realize that the iPad is also capable of text input with the onscreen keyboard at some point in time.

TFS 2010 Web Access “Access Denied” error – solved

A few days ago, one of the members of our QA team reported that they couldn’t access any projects in TFS 2010’s Web Access other than one. They were getting an “access denied” error with no troubleshooting information attached. The one project they could get to was the one that they had been working with the whole time. Upon further investigation, the entire QA staff had this problem! I checked every log I could find… IIS and Windows security logs on the SSRS, TFS, and SharePoint machines… no indication of a problem. Then I looked at the configuration, and everything was perfect. I certainly didn’t see any errors. Eventually, I made a dummy user, added it to the appropriate group for permissions, and fired up a clean VM to test. Here’s what I found.

The error came up as soon as you chose “” from the project drop down. It looks like a standard Windows dialog box and simply says “Access denied” with a single “OK” button. However… if you click “OK” on this window, and pay REALLY close attention, you’ll see that your Web browser (we are using IE here… thanks to MS CRM) is blocking a popup from the site. Allow popups from the site and try again, problem solved! The “access denied” is actually from the Web browser or JavaScript running in the Web browser being denied permission to bring up the window to select a project.


So a SQL Server Transaction Log ate Your Free Space.

This weekend I came across an unusual circumstance that I thought I would share with many of those part-time SQL Server admins. I currently maintain more than a couple of SQL servers. Because SQL Server has a good maintenance program I don’t spend the money on a third party software for backup. Instead I setup the maintenance plan to create a backup every 6 hours and then push the file to a network share. For some reason or another, the network share came detached and the backups filled up the local data volume. This effectively shutdown the server. I cleared up the space, restored the mapping, and didn’t think much more about the problem. I noticed that I was getting a backup file from each database but failed to pay attention to the transaction log.
This is where my new problem that consumed my weekend started. Friday night at 7pm I got another phone call about the SQL server being out of disk space again. Again I had no space on the volume, but the space wasn’t consumed by the backups. Instead, the transaction log which is normally a couple of gigs in size had ballooned to 100GB in size. I had attached an external USB drive to push a backup of the transaction log to and tried to shrink the transaction log from the SQL Server Manager. This only give me about 3 GB of storage back, but they were quickly consumed as soon as the end users started using in their application again. I then kicked off a backup of the database and then transaction log. I now had 99% of the space free in the transaction log file, but still could not shrink the database. I had fought and fought with the database trying to get that free space back.

Finally at about 2am, running out of ideas, I deleted the transaction log file and started up the database again which effectively locked the database for a lot of people. Having migrated the database before, and knowing that a simple restore of the database could easily fix the problem, I took the most recent backup which was actually taken after end users were cut off from the server and restored the database. After the restore, I again had the same problem of a database with a 100 GB transaction log file. This time however, I for some reason threw caution to the wind and performed yet another shrink to the transaction log file. Finally, I freed up 75% of the space on the volume which allowed everything to return to normal.
Why I had to backup and restore the database before I could perform an effective shrink of the database, I do not know. If this has happened to other people, I would like to know the reason behind this.
My corrective actions include scripting a compression command on the backups to reduce their size.  I also plan on creating a trigger to notify me by email when the disk space is low, 20% is one of my favorite guide lines as far as that is concerned. I am considering running a network mapping script to reattach the volume of the server before the files are moved over so that the network volume that I monitor won’t be so easily missed with the other backup files that I file on the backup storage volume.  I don’t like using compression because of how having to decompress a file to restore it effectively adds to the lengthy process of getting the database back to working order.  Then again, having a few extra copies of the database around is also handy.

I am open to other input. I thought I would just share my wonderful late night experience with others in hope to get some improvements or perhaps help out other admins who might run into the same problem.

My experiments with Chrome, Opera

I recently gave Firefox about a week of my life to see how I liked it. While I did not think it was perfect, it showed me that it is definitely worth exploring other browsers. So I decided to give Chrome a try, and then Opera. Chrome survived about a day as my default browser. To be honest, I really, really liked it… except for one huge problem: the tabs on the title bar. I work on two monitors, and the Web browser is almost always maximized on my main browser. About 20 years of computer use have trained me to click on title bars to switch applications, since they are larger than taskbar icons, and the application will not munge data or perform any actions when you do it. I also like to double click title bars to un-maximize. With Chrome, my behavior kept switching tabs and sometimes even closing them. Despite the fact that I really liked Chrome overall, this was a 100% deal breaker for me. So I gave Opera a download, and I saw that it took replicated this idiotic UI decision. I could force the tabs to be in their proper place, but only by also adding a useless toolbar above them, which was also unacceptable. As a result, Opera made it less than 10 minutes on my system.

Right now, I am back to using IE 8. I might give Firefox another week to see if I can deal with it, but it’s poor tab handling was driving me so nutty that all of the other things I liked about it were being overwhelmed.


My Firefox experiment

At the advice of others, I’ve decided to give Firefox a one week trial (I’ve been an IE user since version 3 or 4 took me off of Netscape). I was willing to make the switch simply because IE is really, really slow. To be honest, the “usual suspect” list of reasons didn’t factor into the discussion for me:

  • Security – I think that once you turn off ActiveX for public sites (the IE default for a long time now), IE gets a lot more secure. Firefox has its share of security issues, and I think a switch for security gets you little advantage in the long run.
  • Stability – IE 8 has been rock solid for me. Even when Flash acts up, IE just closes the tab and if it keeps happening, IE stops it from loading on that page. Meanwhile, my Firefox using friends have been complaining about stability issues and memory leaks since version 1. In fact, it was a friend telling me that Firefox 3.6 really handles the crashing a leakages that encouraged me to try it out.
  • Add ons – From what I can tell, much of the problems that plague Firefox are actually problems with add ons. So for someone to tell me that I should move to Firefox for the add ons is really not a ringing endorsement.

For me, the user experience (UX) is everything, and IE 8 has been a good user experience. Firefox’s crashing and memory leakages have been showstoppers for me, the bad UX from those issues offset any positives. But with these issues solved, Firefox became a legitimate option for me. I am now at the end of a week of usage, and I’ve found a lot to like, and a lot to dislike. I am not sure if it is enough to convince me to make the switch permanent.


  • Speed – Firefox is noticeably faster than IE. I like that the most.
  • Form field handling – Some sites (Facebook, WordPress’ editor that I am using right now) do not handle vertical scrolling in IE properly, and they work fine in Firefox.
  • Spell checking – I love it.


  • Tab handling – Firefox may have invented tabs, but IE handles them much, much more nicely in terms of grouping them with colors and where newly opened tabs appear. I found an add on that seems to make the tabs better, but it does not work with the most recent versions of Firefox.
  • OneNote integration – IE’s “Send to OneNote” is much more useful than just printing to OneNote from Firefox.
  • Facebook – I hate to say it, but I use Facebook a lot. And it seems to work much better in IE than Firefox, other than the large textbox issue that I have in IE.
  • UI – The Firefox UI really reminds me of an X11 app, and that is not a compliment.
  • Accelerators – I got very used to the “accelerators” (especially “Map with Bing”) in IE, and I miss them in Firefox. Yes, there are similar items in Firefox via add ons, but they invariably use Google services when I prefer Bing (especially maps, where Google Maps have burned me too many times).

If I could give IE 8 the spell check and speed of Firefox, or if Firefox had the better tab handling and OneNote integration, I would be happy. For me, both browsers meet my needs on the really big UX stuff now (security, crashing, resource leaks), so the details are what are important. And right now, I don’t think either browser is so superior to the other than I won’t miss something from the other.

I think what I will do is give Chrome a similar one week trial, and perhaps Opera as well. While I am not convinced that switching browsers will revolutionize my life, I do spend enough time in one for it to make my life easier or more difficult.


Fix for 0x80072f0c error (502.3 – Bad Gateway) for reverse proxy to SSL with IIS

I’ve spent most of a week struggling with this error. I set up IIS to reverse proxy to a backend server using the URL Rewrite module and the Application Request Routing (ARR) module. The first problem I encountered was that when using the “Reverse Proxy” wizard/template under URL Rewrite, it kept blowing up, giving me an error 500. The solution for this was to first go to “Server Variables” and add “HTTP_ACCEPT_ENCODING” as an allowed server variable. Next, I had to go into the configuration and set HTTP_ACCEPT_ENCODING to be passed to the destination server with an EMTPY value. You can’t do this direction from the configuration screen, because that demands a value. You can do it in web.config (or anywhere in the configuration chain). I did it by going to the “configuration editor” in IIS Manager to edit the value raw with no validation.

The next problem was much trickier. The reverse proxy template was able to handle carrying over SSL just fine to the backend server, but when I tried to access those links, it would blow up, giving me an error 502.3. Turning on detailed error reporting showed me an error code of 0x80072f0c and the text “HTTP Error 502.3 – Bad Gateway”. Full details showed more confusion under “possible causes”:

The CGI application did not return a valid set of HTTP errors.
A server acting as a proxy or gateway was unable to process the request due to an error in a parent gateway.

This made no sense to me at all. After hours of work on this issue, I finally found the problem. The virtual directory on the destination server (the one BEHIND the proxy) had been set to “Accept” client SSL certificates; this needs to be set to “Ignore”. While the site itself was set to “Ignore”, the virtual directory had been created with “Accept”, causing the problems.


“Open Source Strategy” is a red herring

One of the biggest objections I have to the typical VC or IT analyst view of the world is this concept of “open source strategy”. If you talk to an analyst or a VC, there is this conviction that open source is some special magic that gets folks working on your project for free, and makes things “disruptive”. The reality does not bear that out. First and foremost, the typical customer (as in, “probably 99% of customers”) could not care less if something is “open source” or merely “free”, except in rare cases (like some Web apps). Why? Because having access to the source isn’t useful:

    It takes a large degree of sophistication to modify an application in a way that keeps it from breaking when you try to upgrade it.

  • A developer trying to tweak an existing codebase which is unfamiliar operates at a very low efficiency rate.
  • Only the best run OSS projects have things like code standards in place (the same can be said of closed source, of course); the majority of the open source code that I’ve personally looked at was an absolute nightmare.
  • Most IT shops barely have the resources to keep the lights on, let alone spend time inspecting source code to ensure that it doesn’t have bugs, security holes, etc.

In other words, actually leveraging the source code itself is not happening for the overwhelming majority of shops.

Secondly, take a look at the actual numbers. The bulk of people who contribute to most major open source projects are being paid by their employers to work on that project during their 9 – 5 hours. Even more telling, those paid workers perform an overwhelming majority of the commits to a typical project. The “just so story” of the army of hackers sweating away in their nights and weekends to produce great code for the love of humanity… it’s a myth for the most part.

Thirdly, this classification of software into “open source” and “closed source” is bogus. The status of the code itself (closed or open) is merely an attribute, an adjective, and hardly the most important one. Do you really think that the typical IT department (based on the information I’ve provided) really cares if it is “open” or “closed” source? Not really. The adjectives they care much, much more about are “TCO”, “ROI”, “ownership headaches”, “does it do what we need?”, “support options” and “upfront cost”. Who cares if it is “open source” if it is a huge pain in the neck? What IT manager is going to turn down the solution that best meets their needs because it isn’t open source?

Here is a good example. My employer is a Microsoft Certified Partner, so we get most of the Microsoft apps for free. We will never make use of the source code to an open source app for the reasons stated above. For us, open source apps are equivalent to the Microsoft apps, because they have the same licensing price point (free) and the only guaranteed advantage of open source (access to the code) is useless to us. Even for companies that pay for software, with the exception of certain “enterprise class” vendors that charge a mint, the cost of a software license is a wash compared to the cost of maintenance, integration, and other TCO items in most cases. Compare MySQL to SQL Server, for example… unless you have a large data center, the few thousand for SQL Server is peanuts, unless your company is broke (in which case, you have bigger fish to fry).

Finally, the concept of “open source” is quickly being demolished by Web apps and SaaS, which do a neat little end run around the GPL. Look at Google. Google has done some absolutely amazing things to the open source that they built their empire on. But they rarely even talk about it in general terms, let alone release the actual source code. While I am not a fan of the GPL for personal reasons (I prefer BSD and MIT style licenses, and I have released a number of items under MIT license myself), I understand the motivations behind it; it is designed to coerce a particular behavior from those who profit from using GPL’ed code. By not actually redistributing the applications (and therefore not triggering the requirement to release the source code), people who are in these *aaS scenarious are just as closed source as any proprietary vendor, but they have the benefit of starting with someone else’s code. It’s basically stealing according to the spirit of GPL, but not the letter.

Here is where open source really makes a difference:

  • Startups with little or no working capital (the person trying to start a business on their nights and weekends)
  • Companies that have the brains and need to make a giant application, and can use open source as the basis for it (Google with their homebrewed stuff is an excellent example)
  • A select few applications (usually written in dynamic languages) which are well architected and allow the end user to customize functionality in a way that upgrades to the base system can still be made

As you can see, there is very little evidence for this concept of an “open source strategy” in the trenches, because whether or not an application is open source is just not relevant to the typical business or user.


A few tips on installing Microsoft Forefront Client Security

We decided to try out Microsoft Forefront Client Security, since we get free licenses, and it’s time to end the hodgepdge of third-party antivirus apps we have. Once again, Microsoft has proven to me “the Linux lesson”: just because the software license is free, does not mean that my time working with a cranky system is cheaper than buying something better. In this case, it took me over a week to get it installed! Here are a few of the pitfalls I ran into along the way:

  • It will not install on Windows 2008 R2.
  • It will not install on 64 bit Windows.
  • It is not compatable with SQL Server 2008; only SQL Server 2005.
  • SSRS (SQL Server Reporting Services) is still a pain in the neck to install and get working right. On Windows 2008, you need to go into the IIS Management Console, select the “ReportServer” application for the installation, click “Handler Mappings” and then “Edit Feature Permissions” and enable “Script” and “Execute”. This is the hidden, undocumented trick.
  • The “Distribution Server” will not install on 64 bit Windows either, but that’s OK if you have an existing WSUS 3.X install, since that can handle the definition updates. You’ll need to manually deploy (or use SCCM) the client yourself in that scenario, though.

Yes, I basically tried every permutation of Windows 2008, 32 and 64 bit, and SQL Server (the requirements documentation is not very clear on most of this, other than the 32 bit requirement which I overlooked) until I finally got this thing installed.

I haven’t gotten to use it yet, but given the installation nightmare, I already strongly prefer TrendMicro which I had great success with a few years ago.


How to perform a P2V conversion for FreeBSD to run on Hyper-V

One of my big projects with my personal server setup, was to turn my current physical FreeBSD server into a Hyper-V VM. Why would I do this? Don’t ask, because I don’t want to start a religous war here… let’s just say that as much as I like FreeBSD for a lot of purposes, I do not like living with it as a sys admin without a paycheck attached.

So, here’s how I went from FreeBSD on a physical machine (garbage x64 hardware) to a Hyper-V VM (Windows 2008 R2 on garbage x64 hardware).

  1. Upgrade the FreeBSD machine to version 8.0-RELEASE. This is mandatory.
  2. Get Hyper-V installed and configured, including enabling Intel VT in the BIOS.
  3. Shut down both machines. Transfer the physical hard drive from the FreeBSD machine to the Windows 2008 R2 machine. Turn on the 2008 R2 machine, and verify in Disk Management that the transferred drive is visible.
  4. Create a new Hyper-V VM for the machine, but do not specify a hard disk. Go back into the settings, and remove the NIC that was put into the VM. Do “Add new hardware” and select “Legacy Network Adapter”, and connect the new NIC to the network of choice.
  5. Create a new virtual disk. Select “Fixed” type, and on the next page in the wizard, tell it to copy the contents of a physical disk. Choose the disk you transferred from the FreeBSD machine.
  6. Go eat dinner, walk the dog, read a magazine. You’ll be here a while during the disk copy. To be on the safe side, go download the “Live FS” FreeBSD ISO appropriate for your installed FreeBSD version.
  7. Once the new virtual disk has been created, go back into the VM settings, move the optical drive to postion 1 on the IDE chain, and then add the newly created disk to the VM on position 0 on the IDE chain.
  8. Start the VM. If you receive errors like “Invalid slice”, you need to do the following:
    1. Insert the Live FS ISO into the virtual DVD drive and reboot the VM.
    2. Go to “Configure” and then “Fdisk”. Set the main drive slice (the big one) to be bootable, and then press “W” to write the information to disk. Before it writes, it will ask about a boot loader; choose the standard one, unless you have a good reason not to and know what you are doing.
    3. Exit the Live FS system, eject the ISO, and reboot the VM.

    This should take care of the “bad” boot loader.

  9. If the physical disk in the original server was not device “ad0” (for example, it was a SCSI drive or a RAID 1 member), then the system will spaz when you boot and drop to single user mode. Not to worry! In single user mode, do the following: (note: if you can’t even get into single user mode, boot off of the Live FS CD and use the “Fixit” shell)
    1. Re-mount the root partition as writeable with:mount -u /
      mount -a
      Likewise, mount /usr and /tmp with:
      mount /dev/ad0s1f /usr
      mount /dev/ad0s1e /tmp
    2. Now you can actually use your text editor of choice to edit /etc/fstab and set the references to the old drive to be references to the new drive as ad0. Do that and reboot.
  10. You are in the home stretch now! You should be booted into FreeBSD, albeit a crippled one, because the NIC isn’t configured. Go edit /etc/rc.conf and change the reference to your old NIC to be a reference to de0 (the NIC that Hyper-V provides). Reboot again, and you should be done!

This is what I did… it might not work 100% for you, for better or for worse.


Introducing “CNB ImageGuide”

Should you save your image as PNG or JPG? ImageGuide is a program which helps you choose the best format..

Web images are usually saved in either .JPG or .PNG format, but unfortunately most people have no idea which is best for their picture.

The top image should be saved as JPG. The bottom should be saved as PNG.
Top: Photos should be saved as JPG. Bottom: Simple images should be saved as PNG. Both: Notice the lost detail and corruption when the wrong format is used.

The very simplest rule of thumb is:

  • If it’s a photograph, use .JPG
  • Otherwise use .PNG

Graphs, charts, and screenshots are often (incorrectly) saved as .JPG even though as PNG they would look better and be smaller. An extreme example is this image of every color. Saved as .PNG, it’s only 58KB. As .JPG, it is 1.1MB — 19 times larger and even at that size it looks blocky compared to the PNG version.

Unfortunately, even many surprisingly knowledgeable website authors seem to lack this knowledge.

In order to help people make the most of their pictures and their time, I’ve written ImageGuide — a program which aims to make it absolutely as easy as possible to pick the best image format, or even choose for you. You can download it here

Continue reading Introducing “CNB ImageGuide”