Tuesday, October 12, 2010

Aramark, What’s Your Game?

About four to five years ago, Sodexho was the food service provider at Johns Hopkins University. Sodexho predated my time at JHU, but those that were here at the time reported the food being of poor quality. One even described a "freshman negative 15." In addition, unrelated to Hopkins, Sodexho also managed a number of prisons, which drew the ire of many students who objected to paying a company that also ran prisons. Given the circumstances, the University was pressured into changing foodservice providers. They selected Aramark. Students that were here at the time reported a noticeable increase in the quality of food.

Although Aramark may have improved the food, there have been questions regarding Aramark’s treatment of its employees recently. There are rumors (and by which I mean that I did not hear this firsthand) the staff were treated much better by Sodexho and that Aramark had been paying below minimum wage, but that no one dared to complain for fear of being fired. After all, a job that pays less is still better than no job at all. It would appear, in part, that these conditions existed due to a conflict that resulted in Aramark employees at Hopkins being without a union to represent them for about a year or two (see JHU Newsletter: Workers vote, now have representative union). Other “rumors” aside, the same reference from the Newsletter cites that Aramark had been scheduling employees one to two hours below the minimum necessary to qualify as a full-time employee in order to avoid providing benefits such as health insurance and paid leave. How does Aramark get away with this sort of thing? In another article by the Newsletter back in April of this year (A Buffet of Choices), Hopkins was described as being in a contract with Aramark that prevents them from intervening in employee issues. In addition, because the term of the contract is multi-year, Aramark is really only motivated to perform well when it is time to renew.

Most students may not notice or care about how employees are treated as long as the food is good, but even students are affected by Aramark's practices, year after year. I acknowledge that some of these decisions may have been made by JHU Housing and Dining, some by Aramark, and some collaborative, but the issue remains regardless of who points a finger at who. One thing that has been noticed consistently is the annually increasing cost of a meal plan to those required to hold one. Not only that, dining dollars are never worth getting since there is a roughly 30% premium when converting cash to dining dollars in the initial plan. Some cite the lack of tax when using dining dollars, but let’s do the math: tax is about 5%, and 5% is much less than 30%, isn’t it? Plus if you use a rewards credit card, like what I use, then you can actually get a percentage of what you spend on food back. Dining dollars: 130%, credit card: 95%. And herein lies the problem: that meal plans are mandatory. If dining dollars and cash had a one-to-one conversion, then I wouldn’t have as much of a complaint. But that students are required to pay a 30% premium...what’s up with that? Officially it is to cover the staff and facility costs of running the dining hall. Why does that not apply to people paying with non-mandatory means (i.e. cash, credit, JCash), then? And maybe if dining services were increased year-to-year the complaint would also be less significant. But it just ain't so. Examples of what I mean (as of this semester, Fall 2010):
  • Cheese-stuffed ravioli and tortellini used to be available at the made-to-order pasta station at Nolan’s in previous semesters. Multiple staff have reported that, this semester, management prohibits staff from taking the pasta out of the freezers to make them for students. If anyone has an explanation, I’d love to hear it.

  • Levering Leaves, the made-to-order salad station, used to charge a fixed price for any number of toppings. As of this semester, the old price applies only up to 5 toppings, with an additional charge for any toppings over 5.

  • The omelet station at Nolan’s has been relegated to the 9pm-12am time block only. In the past, omelets could be ordered from 5pm-9pm, if not also during 9pm-12am. This was done to increase the amount of people that could be simultaneously served by the pasta station. However, an equivalent effect could be achieved by improving the workflow at a smaller pasta station rather than reducing options.

The second Newsletter article mentioned above proposes a possible solution: to allow competition between foodservice companies on campus. I can see why this type of situation could be difficult though, since it is less attractive to foodservice companies between lack of economy of scale and having profits reduced due to competition. The University may also be worried about higher costs. However, given what we’ve seen between Sodexho and Aramark, maybe it’s time to give the proposal a try, in some form or other. Something should be done; the status quo is not acceptable. Even if employees have a union, that a company would be willing to act in the way Aramark did in the absence of one is extremely unethical, and the way that money is effectively extorted from students when tuition is already $30,000 a year just adds insult to injury. As a bonus, while food quality is usually adequate, it could definitely be much better and would more than likely improve under a competitive system.

UPDATE 10/12/2010 9:19 PM:
It appears that Aramark has brought back stuffed pastas at Nolan's as of today or yesterday! Hooray!

UPDATE 10/19/2010 9:16 PM:
Hold your horses...last week there was tortellini on Tuesday, and there was definitely tortellini this Monday, but there wasn't any last Wednesday through Friday. I'm not sure if there was tortellini any other day this week so far, but it's not quite the same as it used to be. For one, each plate is only allowed to have 16 pieces of tortellini, instead of a big scoop like it used to be (this was a LOT of tortellini). The tortellini also seems smaller than it used to be.

Another thing I forgot to point out originally is that take-out boxes are now smaller, or at least the compartments in it for sides are. This really only affects the home station, but is still annoying. Also, the pans used to cook pasta at the pasta station are also smaller, as if trying to imply that portion sizes should shrink accordingly.

Friday, October 8, 2010

Articles on Medicine (Oct 2010)

Well it's been awhile since I posted anything here, but I'll try to get back into writing some stuff. For now, I'll catch up sharing some interesting articles I read over the summer.

Friday, August 13, 2010

The Future of OpenSolaris

The clouds of uncertainty over OpenSolaris under Oracle have parted, but while what we see behind them was perhaps expected, it is certainly still disappointing. I've included the original sources below, but here are the key sentences (emphasis added) from the internal Oracle memo regarding OpenSolaris:

  • We will distribute updates to approved CDDL or other open source-licensed code following full releases of our enterprise Solaris operating system. In this manner, new technology innovations will show up in our releases before anywhere else. We will no longer distribute source code for the entirety of the Solaris operating system in real-time while it is developed, on a nightly basis.

  • We will have a Solaris 11 binary distribution, called Solaris 11 Express, that will have a free developer RTU license, and an optional support plan. Solaris 11 Express will debut by the end of this calendar year, and we will issue updates to it, leading to the full release of Solaris 11 in 2011.

  • All of Oracle's efforts on binary distributions of Solaris technology will be focused on Solaris 11. We will not release any other binary distributions, such as nightly or bi-weekly builds of Solaris binaries, or an OpenSolaris 2010.05 or later distribution. We will determine a simple, cost-effective means of getting enterprise users of prior OpenSolaris binary releases to migrate to S11 Express.

It remains unclear how OpenSolaris as a community will transform, but it certainly doesn't look that good.

References (from the osol-discuss mailing list):
Leaked internal memo
Confirmation from Oracle employee

Thursday, August 12, 2010

Where Am I on the Subway?

On Shanghai's very new Metro Line 10, there's a nifty little information panel located above all the railcar doors. Since pictures are worth a thousand words, I figured I'd make this post a couple thousand words shorter and post a video (watch in 720p/HD for best clarity; I apologize for the shakiness). While watching, you should be able to answer the following questions:

  • Which station did I just leave?

  • Which station am I approaching?

  • Approximately how far am I between the last and next stations?

  • Which direction is the train moving?

  • Which branch of the line is this train traveling on? (although at the time of recording, only one branch had been built)

Sunday, July 4, 2010

FreeRange Reader

RIP mDigger...sort of. Just a year after I adopted mDigger Reader as a replacement for AvantGo to keep up with news and RSS on my Windows Mobile PDA, mDigger decided to drop support for Windows Mobile, shifting their focus solely to Apple's iPhone and iPad platforms.

Once again, forced to hunt for alternatives, I first investigated Viigo. However, that was recently purchased by RIM, the company behind Blackberry, so they've killed all non-Blackberry platform support for the app.

Many other programs out there either required purchasing and/or did not download more than an RSS feed itself, which often doesn't include a full article in the case of news. However, I happened upon FreeRange Reader. This program gives the option to configure a feed to download the full story page for each headline when updated. It effectively downloads the normal verison of the wepage but reformats it for better reading on a mobile device.

FreeRange Reader seems to be what I will be using for now...I don't know how long this run will last, as it seems development has stopped since the company was purchased by Handmark. The version for Windows Mobile was last updated in 2007, and the version for Blackberry was last updated in 2008. Compared to mDigger, FreeRange doesn't have as extensive of a catalog of feeds, but since you can configure it to download full stories for any feed you find, there is a nice flexibility there (mDigger required the developers to create an mClip for any feed that didn't include a full story; this did yield better formatting than what I get with FreeRange though). The feed configuration is online, which is also handy.

Some gotchas with FreeRange:
  • Each feed that only has headlines instead of full stories needs to be individually told to download the full story. This configuration can only be done from the mobile device and not from the web configuration.

  • It works on VGA devices (like my Dell Axim x51v), mostly. Fonts show up larger than they should and are not as crisp as they could be.

  • Scrollbars don't show up in some parts of the configuration where they should. Of note is the "screen font" configuration page. I use size 6 to get a reasonable font size, but I had to use the directional pad while in the drop-down to select it, as it is hidden by default.

Friday, July 2, 2010

Oracle Virtual Desktop Client 2.0

(The new version of Sun Desktop Access Client 1.0.)

The new version of the software Sun Ray client hasn't yet been released, but some details on its features have been leaking out. Although the original source is no longer available, search engine cached pages have preserved the content.

For those that just want it short and sweet, here is what's notable:
  • Support for Mac OS X

  • Audio recording, in so far as it was already supported on a hardware Sun Ray

  • IPv6 support

  • Smart card support

  • Serial port or USB-to-serial port passthrough (Windows only)

  • Multiple connection profiles

Thursday, June 24, 2010

Clean Up C:\Windows\Installer

If you have a Windows computer that's been around for awhile, you may have noticed that your free disk space has gotten kind of low, lower than you would expect. WinDirStat is a great little utility to figure out where that space is going. If you use that program, you might discover that C:\Windows\Installer is really big. Sometimes that directory is not as clean as it should be because of various failed program installations or unclean uninstalls.

Use the Windows Installer Cleanup Utility to safely get rid of the unneeded cruft. Download the installer here. Once installed, open up a command prompt and type:
cd "\Program Files\Windows Installer Clean Up\"
msizap G!

In one case that I saw, 7 GB was reduced down to about 1.5 GB.

I do not recommend using the other utility included with the installer unless told to do so elsewhere. This is the utility that you will see a new entry for in the Programs menu and is not a command line program. Its purpose is not related to the one this post is written about.

If you see an error message like:

MsiZapInfo: Performing operations for user S-1-5-21-.....
Removing orphaned cached files.
Error opening 9040110900063D11......\InstallProperties subkey of Products key for S-1-5-18 user. Error: 2.
FAILED to clear all data.

don't worry about it. The program has finished cleaning up all it can. If you're bothered by it and know your way around the Windows Registry, you'll find the GUID listed somewhere under HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData. If you're sure it refers to something you've uninstalled already, go ahead and delete the key, run 'msizap G!' again and you shouldn't see the error message anymore.

(Note: I am aware this information is already available online elsewhere in some for or other, but I found it to be somewhat scattered and confusing.)

Friday, May 21, 2010

Microsoft and Thin Clients: Revised

A couple months ago, Microsoft revised their Virtual Enterprise Centralized Desktop (VECD) licensing scheme, which is used for Windows on thin client deployments. I first mentioned VECD in this earlier blog post, but one of the changes has since made VECD more affordable. For starters, there is no longer an additional cost for Software Assurance users. Non-SA users also have a slightly lower cost per device. See this Computerworld article for the full story.

(I did actually see the article in March, I just didn't get a chance to write about it until now.)

UPDATE 3/17/2011:
After a closer look, the new VECD, known as Windows VDA (Virtual Desktop Access) is not as good as I thought it originally was. In fact, it's much worse, or just as bad. The fee for SA users is waived only when the client device accessing the VDI infrastructure is covered by SA, which means a full Windows-installed computer that's also under SA. Other client devices, which would include any specialized thin client device, must have a $100/year/device Windows VDA license to legally access a VDI infrastructure with Windows VMs in it. Ouch.

Tuesday, April 20, 2010

The Oracle Business Model

For those not in the know, "Oracle" here refers not to a divine intermediary but a company that has traditionally focused on providing database products and services for the computer industry. Most people have heard of Sun Microsystems because of Java but comparatively few people know what Oracle is. Recently Oracle acquired Sun Microsystems.

Sun wasn't very profitable for its stockholders, but they were named one of the top places to work in IT by Computerworld. They were also a very open company in comparison to many in the IT industry.

In a recent CNN interview with Scott McNealy, co-founder and chairman of the board of Sun until it was acquired, Scott had this to say about Larry Ellison, Oracle's CEO:
He’s a great capitalist, but not all into that sharing thing and all the rest of it. You have to give the guy credit; he has found a way to extract every dollar he can from customers from every product he offers. He is very impressive, and there are very few who have lasted as long as he has.

OpenOffice, the free productivity suite that competes with Microsoft Office was formerly sponsored by Sun. As a result, it is now also in the hands of Oracle. Naturally, OpenOffice prefers ODF (Open Document Format) for saving files over Microsoft's office formats. In order to allow Microsoft Office users to use ODF files, Sun developed a free plugin that could be easily installed. Although Microsoft Office 2007 has begun to add native support for ODF, it only supports up to ODF 1.0 so far, while the plugin enables up to ODF 1.2. In addition, there are still a significant number of Office 2003 deployments that only have the option of the ODF plugin.

Oracle now charges $90 for this plugin. While the current newest version of the plugin is 3.2, 3.1 is still available for free from Softpedia. I would highly recommend downloading the installer and keeping a copy because it may not be available online forever.

While Computerworld speculates that this may drive some companies that want to use ODF with Microsoft Office to purchase the plugin, I think it is more likely they will just be pushed to switch to the Office native formats as there is no additional cost to open those documents in either Microsoft Office or OpenOffice.

Wednesday, April 14, 2010

Security and Blackboard

...the online course management system Blackboard, not the one that instructors literally write on. Apparently it's insecure enough that a 9-year-old student in my K-12 school district was able to grant himself administrative privileges, according to this article in the Washington Post. I'd be interested in knowing what was actually exploited, but since the software is developed under a closed source model, I doubt the general public will find out the details of the problem, even if it is fixed.

See my previous extended write-up on Blackboard here.

Tuesday, March 30, 2010

Long Term Investment (or Solaris is Dying)

If you know me, you might be surprised to see me write "Solaris is Dying." Well, unfortunately I suspect that may be the case. Oracle seems to be making good on its promises to make its Sun acquisition profitable, but in the long run something is going to give.

Two things have recently happened that have made me think that Solaris may not be around in the next 10-20 years, as the next generation or two of computer engineers enters the workforce:
1. Solaris isn't so free anymore.
2. Changes to the scope of Sun Education programs.

While there may not be any DRM (yet) to enforce the non-free-ness of Solaris, the fact that the license only permits legal use of Solaris for 90 days without a support contract or other paid license and that security patches are no longer available to non-paying customers severely restricts access to all non-enterprise customers. If it doesn’t restrict access, it at least strongly discourages anyone who had an interest in trying out Solaris.

A Bit of History

Back in the old days (before Solaris 10’s 2005 release), Solaris had a separate paid license. Intel/x86 support was a joke and it pretty much only ran on SPARC, but since it shipped preinstalled on Sun systems which were the lion’s share of SPARC systems in the world, it was practically free if you had the hardware. All patches were free. When Solaris 10 came out, Sun changed the scheme. Solaris 10 would be free for anyone to download and use, and only support would cost extra. Work on decent x86 support also began in earnest. Patches, however, were restricted. They were no longer 100% free; only security and hardware patches would remain available to non-paying customers. Solaris update releases (also free), however, would include all the other patches, so if you needed the other bug fix or enhancement patches but did not have a support contract, you could just wait a few months for the next update release.

In addition to the Solaris side of things, Sun hardware was prevalent at many universities in the 1980s and 1990s, exposing students to Sun technology. The dates might be a little skewed as that was way before my time as a college student, but from what I've heard from others that were around then, that was roughly the era of Sun workstations. In any event, during that era people didn't have cell phones and students didn't have personal computers in their rooms, and the PC didn't really even take off in households until the early to mid-90s. Today most educational institutions run primarily Windows and Linux, and if Sun hardware or Solaris is present, it is very often as part of a legacy installation.

What Happened?

Here's my theory: the PC happened. And I don't mean PC as in PC vs. Mac, I mean PC as in Personal Computer.

With the PC came an increased accessibility to computers by the ordinary citizen. Microsoft came in with DOS and then Windows. IBM made an attempt at OSes with OS/2. And there was Linux, the closest thing to UNIX that could run on a PC. UNIX was still king in enterprises, but that would change eventually. The first computer that many people were exposed to was no longer a Sun or other UNIX workstation in college, it was a PC at the local electronics shop or at home. People got comfortable with Windows and Linux before UNIX systems ever came within reach, and before long, all three OSes could boast comparable features, at least comparable enough that the average computer user would not realize any significant difference.

The PC generation then entered the workforce knowing Windows and Linux, but not UNIX. There are two options for this new workforce: learn something new, or push what they are already comfortable with. Guess what happened?

The Old IBM Integrated Systems Strategy

Oracle says it wants to repeat the successful IBM strategy of integrated systems that put IBM in the “no one gets fired for buying IBM” position in the 70s and 80s, but I have to wonder if they considered why the IBM strategy was not sustainable. Sure, UNIX systems became more suitable for many environments than the original mainframe model, while IBM stuck with the mainframe, but I think it also had to do with accessibility. UNIX systems were smaller than the mainframe, and therefore more accessible to smaller companies. The PC, driven by the x86 processor architecture, was affordable by someone as “lowly” as the home user. UNIX replaced the mainframe, and then x86 replaced UNIX architectures. Each successor was cheaper to acquire than the previous as well, but I attribute that more to economy of scale due to the level of accessibility. Of course mainframes and UNIX remain around today, but in a significantly smaller capacity than they once existed. Of the UNIXes still here, Solaris seems to be the biggest in terms of widespread use. At least, besides my level of exposure to it, it seems the fact that when applications have support for Windows, Linux, Mac, Solaris, AIX, HP-UX, with support for AIX and HP-UX having been pulled many years before Solaris support was pulled would suggest Solaris as being more prevalent. (Matlab recently pulled support for Solaris/SPARC. Mathematica still supports Solaris but recently dropped support for other UNIX operating systems.) And I think that's related to Solaris having had a significant presence in educational institutions for quite some time.

Oracle has cut off Solaris from the hobbyist. The hobbyist will no longer even have an opportunity to know Solaris. And when the hobbyist becomes a college or graduate level professional, they will report to work not knowing Solaris. The market will shift away from Solaris as people choose to stick with what they are comfortable with. Just as Oracle seems to be focused on short-term profits, corporations in the future will be similarly focused, and using the existing knowledge base of the pool of potential hires is often much more cost-effective (in the short run) than training them on a new system which the employees have no existing experience with.

The Last Straw

Okay, so no hobbyist. But educational institutions? As far as I can tell, the Sun Academic Excellence Grant and Sun Education Essentials hardware deep discount programs have both been discontinued under Oracle, with mumblings that even the standard education discount may be significantly reduced or even eliminated. Why wouldn't they be? They aren't exactly programs that make an obvious profit. But by killing those two programs, accessibility to and interest in Sun technologies is significantly reduced at the university level. As I mentioned earlier, college and graduate students won't know about Sun or Solaris when entering the workforce. Maybe Sun didn’t know how to market its products or was unable to develop a profitable roadmap, but I think it at least got one thing right, and that was investing in the future by increasing accessibility to Solaris and promoting its technologies at education institutions.

Is Oracle trying to kill Solaris? Maybe it is. If so, it's certainly done a good job without making it blatantly obvious. It will be a slow death. Maybe something will happen in the OpenSolaris realm to keep the goodness of Solaris alive. Or maybe I'm all wrong and everything will turn out fine. But considering that Solaris already has a limited presence in the minds of students today, further restricting access to Solaris will not help that. And it is certainly the students today that will be the technical employees and business leaders of tomorrow.

Food For Thought
  • Sun Microsystems was rated the #13 best place to work in IT by Computerworld in 2009. Oracle did not make the list.

  • If you ask the average (or even above average) college student today, they’ve heard of Sun, if only by way of an introductory programming course in Java, but have never heard of Oracle.

Keywords: oracle, sun, solaris, unix, linux

Sunday, March 28, 2010

Broadband Networks and Google Fiber

An interesting read on Verizon, Comcast, and the new Google Fiber initiative, written from a Baltimore perspective.

Thursday, March 4, 2010

Articles on Medicine (Mar 2010)

Really now?

Simulation-based training, something I'm a little familiar with from my Emergency First Responder training. And yes, it's not just the technical skills that are important. The teamwork and communication skills are often the harder ones to practice abstractly.

End of life, hard decisions

Doctors on Haiti: NYTimes, American Medical News

Saturday, February 20, 2010

The Value of a Job

Ever think about the jobs that are really important to society? Ever consider that they are usually the lowest paying jobs?

Do you want to be a sanitation worker? Bus or cab driver? Security guard? Cashier? Probably not, but what would society do without them? Given, most people probably don't even want to take their own trash from the house to the curb if they don't have to, let alone pick up everyone else's.

The BBC recently published an interesting article where they assessed the value to society of some high-paying jobs and low-paying jobs.

At least in the United States, you could almost extend the thought to illegal immigrants. The common argument made to deport them is that they are here illegally and are taking up jobs that Americans would otherwise have. Well...is that really true? Yes, they are here illegally. But why would an employer hire an illegal resident and risk consequences if they could hire a legal resident? If you were an employer and couldn't find a legal resident, and now your business is suffering financially, are you more likely to want to shut down your business or perhaps be willing to overlook a potential hire's legal residency status? I'm not trying to be political here, just thought-provoking.

Thursday, February 4, 2010

Articles on Medicine (Feb 2010)

A commentary on the influence of Western medicine in understanding mental health in the international community.

The human side of being a doctor: here and here.

There may be some cases of physician malpractice, but sometimes you need to let go. RIP stands for Rest in PEACE. And that doesn't mean cause trouble for those left behind.

Be careful with analysis of cost-effectiveness. You can't easily reduce everything to numbers, in this case relating to end-of-life care.

Monday, February 1, 2010

Updating DST on Windows CE

In a post coming soon I'll talk about Handheld PCs more, but essentially, I recently rediscovered a 10-year old piece of technology that is a Jornada Handheld PC. Unfortunately, it still has the old United States Daylight Savings Time definitions and apparently no simple way to update them automatically. HPC:Factor has an installable update for Windows CE 4.2 and Microsoft has official updates out for newer versions of Windows CE/Windows Mobile, but I could not find anything for Windows CE 3.0 and older. Eventually, by comparing all the hexadecimal values of the registry modifications made by the HPC:Factor update and the current built-in time zone settings, I was able to come up with an appropriate workaround. While it's a little cumbersome to apply and isn't as permanent (if you change your home city, the time zone definition will be reloaded from built-in settings), it certainly works and I think is sufficient for my needs. Note that this fix assumes your location has always and still does observe DST, but springs forward in March instead of April and falls back in November instead of October now.

To update the rules for the new DST rules:
  1. Control Panel -> World Clock -> Home City -> pick one and stick with it!

  2. Open a registry editor (you will need to install one on your own, Microsoft supplies a PowerToy download if you have trouble finding an editor)

  3. Navigate to HKEY_LOCAL_MACHINE/Time

  4. There should be one binary value, "TimeZoneInformation", at that location. Edit the long sequence so where there was a segment reading "0A 00 00 00 05 00 02" it now reads "0B 00 00 00 01 00 02" and where there was a "03 00 00 00 02 00 02" it now reads "04 00 00 00 01 00 02"

  5. If you want to go back to the old DST settings, just go back to the World Clock Control Panel and change your city. Similarly, you'll need to redo these steps if you change your city.

Keywords: DST, Daylight Savings Time, Windows CE, HPC2000, HPC, HPC/Pro, Jornada

Friday, January 22, 2010

Microsoft Licensing for Schools Lock-In

Like many large IT companies, Microsoft offers discounts for educational institutions. But what most people don't realize is that these licensing agreements make it financially undesirable for schools to use anything under than Windows and Office on their computers. Since schools participate in volume licensing, some sort of counting is needed to determine how much that school should be paying. After all, a fixed cost regardless of how many computers or users would be pretty unfair. But it's in this counting itself that results in lock-in. The bundle typically includes Windows upgrade, Office, and Client Access Licenses (CAL) for Windows Server and Exchange. Note that this means any PC purchased must already have some version of Windows on it in order to qualify; a school can't just buy a PC with no OS license and install Windows based on this program alone. Upgrades and extended patch support are included as long as the school maintains the agreement contract.

K-12 schools can use Microsoft School Agreement. This is what Fairfax County Public Schools uses. FCPS spent $2.9 million on Microsoft School Agreement in FY2009 for its roughly 98000 desktops and laptops. That comes out to about $30 for each PC, which, considering the retail cost of Windows Professional and Office Professional, is a really good deal. However, from the School Agreement information booklet:
School Agreement requires an institution-wide commitment for any application, system, and Client Access License (CAL) products selected. To that end, you must include all of the eligible PCs in the participating school(s) or district. Eligible PCs include all of the Pentium III, iMac G3, or equivalent or better machines*. You must also include any additional machines within your institution on which any of the software will be run.
*Includes machines with similar processors, such as Intel Celeron and AMD Athlon.

In other words, if a school has PCs that are Pentium III or iMac G3 or better, they have to count them even if those PCs won't be using some or even any of the products covered under the agreement. Another way to put it is if a school runs Windows on only half of its computers (the other half could be Mac or Linux, etc.), and all of those computers are less than 5 years old, the school wouldn't pay Microsoft any less than if it ran Windows on all its computers. Older computers only have to be counted if they are going to run software from the agreement, otherwise they can be left out.

Higher education can utilize a similar program, the Microsoft Campus Agreement. The lock-in here is potentially worse:
Campus Agreement pricing for any application, system, and CAL products you select is based on a count of your total faculty/staff FTE employees and requires organization- or department-wide coverage. To that end, you must include all FTE employees in the participating institution(s) or departments(s) (including student employees) using the calculation below.

Non-knowledge workers, such as maintenance, grounds keeping, and cafeteria staff may be excluded from the faculty/staff FTE employee count if they do not use institutional computers.

So colleges and universities don't even pay based on how many computers there are, but based on how many people they hire. Part-time faculty and staff are included as fractions.

From a financial perspective, then, it makes the most sense to run Windows on every computer.

So what about thin clients?
I found an interesting article from Computerworld, written about three years ago. The Software Assurance mentioned is included with both School and Campus Agreement options. Microsoft has a Vista Enterprise Centralized Desktop program for thin clients, it seems. However, it's unclear exactly what the interaction between that and a School or Campus Agreement would be. In any event, from the information document:
Thin client license. For thin clients, a single annual subscription purchase is required. With this subscription, companies can install unlimited copies of Windows Vista Enterprise or earlier operating systems, such as Windows XP Professional or Microsoft Windows 2000 Professional, on any number of physical servers, as long as the VMs are accessed only by licensed client devices. Users can access up to four running VM instances on up to four servers per subscription license. In addition, the annual subscription has Software Assurance built-in and provides for earlier versions, and well as upgrades that are made available within the license time frame.
To use desktop applications (for example, Microsoft Office Professional 2007) from the licensed device, each accessing device must be licensed for the application. Windows Vista Enterprise Centralized Desktop does not include application licenses.

It sounds like the OS would be licensed on a concurrent user basis (assuming the thin client disconnects from a VM when it isn't in use), while Office would need to be licensed per-thin client that might potentially use the application. It's also unclear if licensing under VECD would be more or less expensive than licensing under SA/CA. At the least, though, VECD seems to be less restrictive than the traditional licensing agreements, but perhaps only by necessity. However, it's also possible that Microsoft assumes the use of a Microsoft-based thin client, and they would demand a more stringent contract in the presence of, say, a Sun thin client that runs no Microsoft OS on-board.

So yes, maybe a school district or university stands to save by using alternative platforms such as Linux or Solaris, or would like to do graphics work on Macs. But unless they completely dump Microsoft, or opt for a different and probably more expensive (unit cost-wise) licensing agreement, this is at best difficult to do, especially in economically hard times. That said, I'm not saying institutions shouldn't try, and VECD may be a good way to go in and of itself if I've understood it correctly.

UPDATE 1/24/2010: I want to clarify the volume licensing mentioned above is on a subscription and not a perpetual basis. Customers have to recount and repay for each and every eligible system on a regular basis (either annual or three year contract).

Sunday, January 10, 2010

Virtual Memory Allocation

Systems administration is definitely something that involves lifelong learning, and every so often something interesting comes up, especially when it involves comparing multiple operating systems in their default behaviors.

Since analogies can be fun, imagine for a minute that you live in a simplified world that includes your bank, its customers, and merchants. The bank has a limited quantity of cash on hand. The bank also has assets that are less liquid but can be turned into cash as needed. In order for its customers to use the money that the bank has, interest-free deadline-free loans are issued via cashier's checks. When the checks are redeemed, the bank wires the cash directly to the merchant in real time. So naturally, customers would rather that the bank have enough cash on hand for their purchases, since waiting for the bank to convert their non-liquid assets would mean customers may end up waiting a long time at the checkout line for a transaction to clear.

And here is where banks differentiate: how much in cashier's checks they issue and what they do when the cash and other assets backing the checks runs out.

For the purposes of this discussion, let's say there are four banks. Three of the four banks are more profit-driven and will issue as many cashier's checks as it has paper to print on, counting on the high probability that a number of those checks will not be redeemed in full and that they will always have enough assets on hand to cover all the checks redeemed at any given point in time. Of course that cash reserve is replenished when the customer repays the loan.

The fourth bank, however, will never issue more in checks than it has in assets of any type. This bank does not need to worry about what to do if it runs out of cash, because if it does, it knows that there are no further outstanding IOUs.

The other three banks, however, have to decide what to do. Two of these banks know how to contact all of its customers at all times and if it runs low on assets, it will send out an emergency alert asking for anyone that can to repay their loans. 99% of the time this will be sufficient and enough people will repay their loans such that the bank always has enough assets. The third bank does not have a way to contact its customers. In either case, if any bank runs completely out of assets and another customer tries to redeem one of the checks already issued, the bank can't break its promise. So it goes out and kills a customer, reclaiming the value of the loan made to that person.

Okay, let's come back to the real world. Obviously, killing customers is illegal and would never fly. But this was an analogy. Banks are actually operating systems, cash is RAM, non-liquid assets is the page file (sometimes called swap, it's basically when part of your hard drive is used as RAM when all of RAM is used up, but this isn't something you normally want to use because hard drives are much slower), and customers are programs. Issuing more checks than the bank has assets is called "memory overcommit." The emergency alert is the message that pops up telling you that your computer is low on memory, and repaying loans is when you close a program and the memory it was using is freed. A cashier's check is issued when a program requests memory but before it is actually used by it (for instance, if an array is declared but before data is stored in it).

Windows, Mac, and Linux will kill programs when they run out of memory (remember, they "promised" more than is available). Windows and Mac have standard user interfaces and so they have a reliable way to notify you that you should close some programs. Linux has more choice in regards to a user interface, but that also means there isn't a standard way to tell you that you are low on memory. You can monitor it manually, or try to notice when your computer slows down a lot (you are out of RAM but still have page file space), but sometimes you don't notice because the OS is doing a good job at managing memory. In addition, Windows (and maybe Mac) can dynamically expand the page file so far as your hard drive still has free space, and although there is a performance penalty for doing so, sometimes that can be better than killing programs. Linux won't expand your page file for a number of reasons (there are cases when you don't want this to happen automatically, which is why Windows also lets you manually set a static size).

Solaris is the conservative. It will only promise as much memory as it has. As a result, there is a higher chance that Solaris will start saying "no" to requests for more memory before it is actually out of it.

In the case of Windows and Mac, this makes sense since they are primarily personal operating systems, where you want to make sure that programs continue to run as best as possible, and occasionally killing a program is not the end of the world. Plus, most users will close some programs if they are warned to do so. For Windows, Mac, and Linux, this allocation model also generally enables higher utilization of the RAM you have, especially in the face of lazy programming (i.e. asking for more memory than you ever plan to use). An example of lazy programming might be declaring an array that is too big or declaring a double variable when you only ever intend to store an integer.

For Solaris, which has a heritage of being a very stable and reliable server operating system, it's important that your mission critical program stays running and has no chance of being killed off automatically. As a side effect, actual memory utilization will probably be lower, resulting in higher costs (more RAM costs more money, after all).

BUT what this means is that while it is fine to run with very little or even no page file on Windows, Mac, and Linux (since your system isn't really running well if it starts paging; it'll be crawling), on Solaris, the page file should be much larger in order to ensure that you are able to get full use of your memory. Determining the optimum size for the page file is a difficult task and is very dependent on the applications being run, but it means the age-old rule of thumb for anywhere from one to two times RAM doesn't change by much even when you start to get to larger amounts of RAM in modern servers, sometimes even 16 GB and up. Yes, you may be reserving a large part of your hard drive that you never use, but it guarantees the safe behavior.

Essentially the different approaches to memory allocation are attempts to address the same set of problems, with different consequences. Linux certainly has ways to change the behavior of its memory allocator and out-of-memory (OOM) killer, but as I mentioned earlier, what I discussed was its default setting.

Monday, January 4, 2010

ext2/ext3 on Windows

UPDATE 10/8/2011: It appears that ext2fsd 0.51, released 7/9/2011, has fixed the corruption issue according to the changelog on its website: "1. FIXME: Data corruption issue, especially for multiple-thread writing on XP system." The version tested in the original blog post below was 0.48.

ext3 has long been one of the most commonly used filesystems on Linux. While it is sometimes displaced by competitor ReiserFS or newer players such as ext4 and Btrfs, ext3 is still around, at least on my computer, because it can be mounted on Windows, while the others cannot (although I think ReiserFS might also be mountable on Windows). ext3 is the same as ext2, with the addition of journaling, so mounting an ext3 filesystem as ext2 is akin to mounting without journaling.

NTFS has been the filesystem used on Windows for long enough that every Windows computer out there probably has it for the C: drive. Linux has an ntfs-3g driver that allows read/write to NTFS partitions and is generally considered stable. I believe ntfs-3g also does not emulate journaling. I also use NTFS on my external backups hard drive primarily since it has the highest chance of being mountable on any computer (Windows can do it natively and most Linux systems today have ntfs-3g).

On Windows, there are currently two primary methods of mounting an ext2/3 filesystem as a drive letter. There is Ext2 IFS and Ext2Fsd. Both drivers offer the same basic functionality. For the longest time, I used Ext2 IFS and was happy with it. But I recently decided to try out using Unison for backups to my external hard drive, and discovered that symlinks on my Ext3 partition were not handled when read with the IFS driver; any operation would simply return access denied. So I decided to try out Ext2Fsd. As it turns out, although Ext2Fsd has a number of nice features in it, Ext2 IFS is still the stabler product and I have switched back to it. I've decided that backing up directories with symlinks will just have to be done from within Linux, since the ntfs-3g driver is able to store symlinks (they are just represented as binary files when viewed under Windows).

However, I did want to offer my comparison chart of the differences in the two ext2 drivers on Windows, as I attempted to search for one myself but could not find one. Note that this chart applies to Ext2 IFS 1.11a and Ext2Fsd 0.48, and I have not listed all of the differences, just the ones that were the most obvious. My system runs Windows XP SP3 32-bit.

FeatureExt2 IFSExt2Fsd
inode sizeup to 128up to 256 (the default on recent Linux systems)
ext3 journal present (unclean unmount from Linux)refuse to mountroll journal and mount
symlinksreturn access deniedfollow valid symlinks (but they look like regular files or directories on Windows)
Explorer shell featuresstandard folder icon only and no Recycle Bindesktop.ini processed (folders can have non-default icons, etc.) and Recycle Bin used with deleted files
stabilityall files okaysome files (large Outlook psts and some small Office documents) error'ed during Unison backup, so read operations

UPDATE 3:20 PM: It would appear that two of my PST files that I attempted to backup are actually now corrupt. I haven't yet run Outlook's repair utility, but if it fails, at least it was only IMAP downloaded mail data (the mail is still on the server).