A Quote
I'm not normally a big fan of quotes, but I stumbled across this one, and do not want to forget it.
“The day the soldiers stop bringing you their problems is the day you stopped leading them. They have either lost confidence that you can help them or concluded that you do not care. Either case is a failure of leadership.” ― Colin Powell
WordPress client for iPad
I finally picked up an iPad this weekend and am testing the WordPress client. This works fairly well, but as expected the iPad works better for content consumption vs. content creation. This will do in a pinch and next time I travel I may consider leaving the MacBook at home.
Getting files onto a vSphere VM by building an ISO from a Mac disk image
I had to install a piece of software on a Windows VM running on our vSphere environment at work today. It should have been about a 10 minute operation, but this particular VM is on a special network that is isolated from most other things. As a result the firewall is locked down pretty tight on that subnet, and I couldn't get to any of the usual file servers to grab a copy of the software to install.
A co-worker suggested using the feature of Microsoft's Remote Desktop client that allows you to map a drive on your local PC as a drive on the remote server, but no dice there either as I was blocked from RDPing into the VM by the firewall as well.
Then an idea hit me -- put the software I needed on an ISO on my hard drive and mount it using the vSphere console.
On my Mac I created a 100 meg blank disk image formatted as "FAT" with a partition type of "CD/DVD."
Once I had the DMG file in hand, I had to convert it to an ISO. With some Googling I came up with the following command:
hdiutil makehybrid -iso -joliet -o diskimage.iso diskimage.dmg
I then mounted the iso file as a CD-ROM drive on the VM and was able to install the application I needed.
Quick hack fixes will always get you later
A few years ago a co-worker was given the task of installing a replacement PC in a university lab. This was a relatively routine task that he had done many times before, and basically involved swapping the new machine out for the old one. He ran into a bit of trouble when he couldn't get the new machine on the network, and after some back and forth troubleshooting realized port security had likely been enabled on the switch port to which the machine was connected. Thinking creatively, he got on Google and figured out how to change the MAC address in Windows to another to the MAC address from the old PC, and got the new machine on the network, told the user his PC was ready, and closed out the ticket.
Was this a case of great customer service getting a PC into the hands of the user right away, or a horrible idea? I can see people arguing both sides, but I'm going to go with the latter.
The tech in question probably did not want to deal with the bureaucracy of getting port security disabled, or the MAC address changed on the switch. It's also possible he didn't know who to contact, or what process to go through, and didn't want to admit it. Or, he had recently learned of the particular registry key that was changed and thought it'd be neat to try it.
The problem with a quick hack fix is that it almost always bites you later.
If someone was to plug the old PC back in to the network at another location (which often happens when old machines get sent to surplus and then get reclaimed), there will be two machines with the same MAC address on the network. This is bad.
If someone were to reload the operating system on this PC, the hack that was put in place would be lost, and they'd have no idea what changed or why networking started to fail. This could lead to hours of troubleshooting, especially since port security wasn't something that was commonly used in this building.
Worse, no one else in the IT support group knew this was done since it wasn't documented anywhere.
Lastly, this was a complicated solution to a relatively simple problem. As a rule, I try to avoid touching any knobs, buttons, dials or other configuration settings unless there is a good reason to change them. Fixing this particular problem at the source would have meant fewer configuration settings overall (a configuration option on the switch port, and then another configuration option attempting to override it locally on the PC versus having it set up correctly).
What ended up happening? About a year later, the PC in question got compromised with malware and had to be taken off the network and re-imaged. I just happened to overhear a co-worker mention how he couldn't get it back on the network and wondered if the NIC was broken. Because I have a disturbingly good memory I mentioned what I had been told about the machine when it was installed, and he got the networking group to fix the switch port.
College students built their own “facebook” before Facebook
I graduated from college about a year before Facebook really took off among college students. It was around, but was limited to students of about 15-20 universities. Then fast forward to today and social networking is a big deal and nearly everyone in the world has an account on the service.
College students actually built their own system very similar to Facebook using AOL Instant Messenger as a platform starting in the late 90s. The away message took the place of the status update, and the user profile was where people posted their schedule, inspirational quotes, and the emo kids would post song lyrics that meant something to them.
This of course required leaving a computer powered on and connected to the Internet 24/7, and the only demographic that could really do that consistently were college students living in dorm rooms.
This was not really even that long ago. Most universities actually advised their students against buying laptops in the late 90s/early 00s. The quote was always something along the lines of "Desktop computers are more powerful and a better value for your money, and are less likely to be stolen." The idea was that a laptop was somewhat of an impractical luxury at the time. Laptops had limited utility anyway since only a select number of universities had wireless Internet access, and even the schools that did have it had relatively spotty coverage. Even if you had a laptop, it may or may not have had a wireless card in it. So computers stayed parked on desks.
All across the country, hundreds of thousands of desktop computers were sitting on desks in dorm rooms, fully powered on, running AOL Instant Messenger 24 hours a day 7 days a week so that everyone could see what their friends were up to.
Facebook essentially moved this "service" people hosted on their desktop computers to the cloud.
I'd bet money that the college students of today don't even realize this is how we did it a decade ago.
Back to blogging in 2012
I'm hoping to get some more blogging done in 2012. I have a few ideas waiting, but just need to take the time to write them up.
ESXi 4.1 on a Mac Pro
I retired my Mac Pro (the Mac Pro 1,1, or the model from 2006. More info available at http://www.everymac.com/systems/apple/mac_pro/stats/mac-pro-quad-2.66-specs.html), and decided to see how it would run ESXi.
A default install of ESXi 4.1 worked beautifully on the machine with no customization. It recognized both NICs, and saw the storage. A Mac Pro could make a decent server for someone for home or non-production use since it is fairly quiet and has 4 drive bays. I imagine the newer Mac Pros probably won't have the necessary driver support to run ESXi, but then again it'd be a strange choice of machine to run it.
There were a couple of annoyances, namely that you can't open and close the optical drive once the machine has booted into ESXi since it requires that you run Mac OS X (or Windows with the appropriate BootCamp drivers).
ESXi 4.1 + Optiplex 980 = FAIL
I tried installing ESXi on a stock SFF Optiplex 980 just to play, and the installer crashes halfway through. The error looks like it doesn't support the storage controller.
I'll have to play with it more later. I just wanted to see what would happen without doing any heavy thinking.
Sending HTML email from a bash script
I had a situation where I needed to set up a cron job to send email reports based on the contents of a dynamically generated web page. I tried piping the output of wget and curl to the mail command, but each time the recipient would receive raw HTML instead of an HTML formatted email.
This was far more challenging than one would initially guess.
After a lot of googling and trial and error I came up with the following:
(cat <<EOCAT
Subject: ##Subject##
From: from@address.edu
MIME-Version: 1.0
Content-Type: text/html
Content-Disposition: inline
EOCAT
curl https://www.edu/url/?view=123) | /usr/sbin/sendmail email@address
Posting it here may help someone else, or help me later.
Thoughts on VMware ThinApp in Higher Ed
I've had enough people ask about ThinApp that I'm throwing together this blog entry. Here is a semi organized opinion piece/rant on ThinApp.
We started looking at application virtualization for our instructional labs. The idea was to get the applications off our image. We also had a number of older applications which required admin access to run. We looked at ThinApp and Microsoft's App-V (or Softgrid, or whatever they called it at the time), and ThinApp seemed simpler to manage, and could handle poorly behaved apps which needed admin access (and App-V could not).
We ran ThinApp through a bunch of testing and threw about half of our apps at it, and decided to make the purchase.
Our plan was to stream applications off a CIFS share. Unfortunately, the project has not gone as well as we would have liked.
When ThinApp works, it works really well. We used it to package a number of old, weird applications for specific markets used in our courses. I'd list the names, but it's nothing anyone reading this has ever heard of. Once the app is packaged, we drop it on a file share. The Start menus on our PCs are mapped to a network drive, so we can instantly make an app available on hundreds of machines without doing much work. It's great.
Streaming applications off file shares works as long as the app is relatively small. Large apps don't stream well. I got a lot of unpredictable behavior once the size got over about a gig. You don't get any feedback that an app is loading when it is large, so it is confusing for users and looks like nothing is happening.
What doesn't work? Most of the major applications. I can't get the Adobe CS5 suite to work. The CS4 suite worked, but performed poorly. This goes against what you would expect since the small poorly designed apps work fine, and big well known stuff fails.
What major apps do not work?
- Adobe CS5 Suite (licensing manager doesn't work, so it fails)
- ArcGIS - 9.3 appeared to work initially, but many functions perform poorly such as a 30 second task taking 15 minutes
- AcrGIS 10 - fails to launch
- SAS - I can't get SAS to work, period. VMware tech support tells me apps with chained installers don't work well
Since these apps are our biggest, our hope to keep them off our image to speed up the imaging process failed.
When apps don't work, we have to deploy them the old fashioned way.
VMware tech support was initially very unhelpful but they ramped up support considerably in the last year or so. Support still isn't adequate because it is so slow. Usually by the time there is an answer, my deadline has passed and I have had no choice but to deploy the app the old fashioned way. At this point it would be a poor use of my time to pull the app and push out a ThinApp version, so we just give up.
We had this problem with the following:
- Stata - support found a bug that still hasn't been fixed (reported in August)
- Mathematica - they discovered weeks later that it doesn't build properly due to long paths and think they found a solution. Since I had already pushed out the app I never tested it (no time)
VMware does not test applications (even common ones like Photoshop). These problems shouldn't be handled by support, but should be handled by the developers. At minimum, the Adobe products should work. I believe each release of ThinApp needs to be tested against a large number of common applications, but they do not do this. They also do not keep track of problems people have, so if many call in with Adobe CS5 problems, this isn't shared. They also don't test against scientific or statistical applications.
I can't imagine imagining instructional labs without ThinApp, but I spend an awful lot of time mad at the product. I may have unrealistic expectations for App virtualization. It isn't an easy thing to do, but I'd love it if ThinApp worked better.