Many students are mystified, at first, by my ignorance of and apathy toward the Microsoft environment. To many of them, Microsoft is the computer. They’re younger than the IBM PC architecture itself, and didn’t experience the great diversity of home computers (Commodore, TI, Atari, Tandy, pre-Macintosh Apple) that my friends and I had in the early-mid ’80s. Nor did they witness the following decade of dueling proprietary Unix workstation vendors (DEC, Sun, SGI, HP).
The simple story is that I started using these Unix workstations in college in 1991, and never even bothered to install the clunky contemporary Windows 3.0 on my own PC. By late 1992, I was installing early distributions of Linux. I stayed in that academic Unix-using bubble until 2002. Sure, I had seen Windows 95 briefly at a summer job. But it wasn’t anything to take seriously. I’m a bit younger than that condescending bearded hacker in the Dilbert strip, but I’m clearly his heir.
I bring up this story because I read a number of interesting comments on Slashdot about resistance to Vista, and the extended end-of-support deadlines for XP. I’ll just pull out some examples here, first about programming languages:
As for J#, C#, VB and WebDev, we’re back to the same “How do I keep giving Microsoft money” question again. Those are not standards. They’re proprietary solutions and stuff you build on them will obsolete every time Microsoft decides it needs more of your money. It’s a trap. Don’t fall into it. If you must program in those soon-to-be dead languages then you’ve created your own predicament and nobody can help you. —symbolset
I guess that articulates why I resist VB and C# in our program, even though there is clearly demand for them in industry, and thus students want to learn. Incidentally, another prof (who is not an anti-MS bigot) teaches those languages on occasion.
Here’s a provocative call for Microsoft to save themselves by turning Linux into Windows version 7:
This is going to sound crazy, but bear me out. So here’s what Microsoft does. They take the [Linux] OS and develop a Windows GUI for it. They pour a billion dollars or so into WINE development and research (while providing WINE’s coders with full access to existing Windows APIs) and they bring WINE’s performance and compatibility to dizzying heights. And then they sell it. Call it Windows, sell it as Windows and do what Apple’s done with Darwin. Keep the proprietary stuff proprietary and the OSS stuff OSS. You’d wind up with a rock-solid OS, and your users could run their old software until their apps received an update to the new system. Eventually WINE would no longer be needed.
This all sounds a lot like Apple, MacOS X and Classic, doesn’t it?
Anyway, there we go. I’m sure there are a thousand valid reasons why this couldn’t/wouldn’t work and naturally it will never happen. I understand that. I can dream though, can’t I? —penginkun
How delusional am I, that this sounds like a perfectly reasonable strategy? Problem is that Microsoft is completely allergic to it.
What Apple has done fantastically well with the OS X transition is to maintain basic compatibility between the GUI frameworks and the underlying command-line tools and system calls. Apple adopts cups as their print server, adds some new GUIs and such, but continues to maintain ‘lpr’ and ‘cupsd.conf’. When some new technology like Spotlight is added, it comes with command-line and file-system support. Meanwhile, on Microsoft, you create a symbolic link on the Desktop, and you can’t use it from the command-line or Perl scripts or normal C code. It’s not part of the file system; it’s just a façade that the (bloated) API provides.
I think this is why Apple has achieved significant market share among CS types and other scientists. I’m not even certain it was an explicit design goal for OS X, but now that we’re a market segment, let’s hope they keep it up. One thing that Linux distributions are doing better is package management. APT is great. You can run APT on Mac of course (and even on the iPhone), but if Apple blessed it and you started seeing most applications and demos installed that way, it would be an improvement.
Anyway, I’m not sure I’d go as far as to say that Vista represents the complete downfall of Microsoft, but the mind-share monopoly is certainly fading.
A short video (1:22) of me venting my frustrations about email formats:
Transcript: In the old days, email was always plain text. And hard-core techies like me liked it that way.
Grudgingly, we came to accept HTML email. With hypertext markup, you can have bold-face, fonts, images.
But this is still okay because you can resize the text if you need to, the text is searchable, and Apple Mail on Leopard even recognizes dates and integrates well with the calendar program.
Where I have to draw the line is emails where the entire message is an image. It’s extremely common in our institution to create a full-page flier and then distribute it via email as an image. It doesn’t resize. It’s not searchable. The dates are not recognized. The MIME standard for multimedia email allows for plain-text alternatives in this case, but they are rarely available.
Here’s an even more egregious example, about the availability of our schedule of classes online. The link is blue. It’s underlined. But it’s not clickable. I can’t even copy and paste. I have to type it in from sight.
Just say no to image-based email. (And nevermind the inconsistency of distributing a 4 MB flash applet to demonstrate this simple point! At least I provided a plain text alternative.)
Here’s my synthesized rendition (recorded using my Yamaha digital piano as a MIDI controller into Apple GarageBand on my MacBook Pro) of the first movement of Vivaldi’s concerto grosso in D minor (opus 3, number 11).
Or download vivaldi-cto-11-1.mp3 (possibly by right-clicking). It’s just under 5 minutes and 5 megabytes.
Unfortunately, the image size is somewhat big for the design of my web site, unless your browser is already maximized. Anyway, ‘jing’ is a tool to record and upload screen-shots and screen-casts in pretty much one shot. Then they can be linked and embedded from screencast.com just like YouTube.
Unfortunately, it seems hard or impossible to edit videos effectively after recording. Same as other one-shot recording tools like iShowU and Snapz Pro. If you want to edit, transition, or separately mix audio and video, then it seems iMovie needs to get involved. Still need to read up on that. But Jing seems to be the most convenient of the one-shot tools.
Hm, why is my laptop running so hot this morning? Hm, what is that new icon in my menu bar? Why, it’s the Cisco Clean Access agent, eating up 100% CPU time! While I’m on a wired connection. Even if they don’t know how to tie into the MacOS network configuration properly, you’d think they might have heard of the sleep() system call…
So here I am installing a VNC client on my Powerbook so I can connect to my desktop Linux at work and control a VMware installation running Windows XP. And on that virtual XP? I’m running a GeekOS kernel on Bochs.
Just thought I’d share. Although I’d never personally choose XP for anything, I must admit that it has been convenient to be able to run it in VMware, just so I can see what kind of environment the majority of my students are using, and what problems they may run into. All the software I require for my courses is cross-platform, because I don’t want to be tied to anything. I even can cross-compile GeekOS on my PPC Mac and run it on Bochs there.
I managed to get a virtual XP running on my Linux desktop at work, but so far it doesn’t work at home… and that Linux machine at home is so underpowered at this point, I’m not sure I’d want it on there anyway. So using VNC to connect to it from elsewhere made sense.
More on GeekOS later, but so far hacking it is definitely fun. Learned more about segmentation registers on Intel this week than I ever needed to know.
Something has become a bit worrisome in my computing life. Since I got my Powerbook last Fall, I’ve allowed myself to become increasingly dependent on closed software applications.
One of the things I treasure about open standards and simple file formats is that I can still easily read and edit my emails and documents going back to September 1991, to the day I typed my first command at a Unix prompt. That’s nearly 15 years ago!
Many people fret about bit rot: put your newborn’s pictures in some seemingly ‘archival’ format like JPEGs on CD-ROMs, and your ability to revisit them when your kid turns 21 is very much not assured. There are two issues here: the physical media, and the file formats. In the net-centric, GNUish world I first entered as an undergrad, neither issue seems to be much of a problem.
With ‘offline’ physical media — cartridges, cards, disks, etc. — you must be extremely vigilant to copy all your stuff from one dominant form to the next during the narrow window in time when both are available. Copy your stack of 5¼″ floppy disks onto 3½″ disks. Copy those onto Zip disks. Copy those onto CD-RWs. Copy those onto DVD-Rs. Copy those onto external USB-2 hard disks. Copy those onto whatever the hell is next. Who has the patience for all that? But if you get lax and skip a step, you end up with valuable stuff on a 5¼″ floppy but a computer that only supports 3½″ and CD. Now what do you do? (Substitute the latest technologies as needed.)
This is one reason why I never recommend any kind of offline storage medium, including today’s popular USB sticks. Many folks in personal computing thought it was a major coup when Apple released the first home computer with no floppy drive — the iMac in 1998 — but the DECstation 3100s we used at Hopkins had no external storage facility at all, and they were produced in 1989. They had internal hard disks and ethernet, and that’s it. It’s still basically all I need; some of my machines can write CDs or DVDs, but I really hardly ever use that functionality.
So, my strategy for keeping data alive through the years is just to copy it over the network from one Unix machine to the next, whenever I change institutions and workstations. Nowadays, I always keep multiple copies alive (home, work, laptop) as a backup strategy as well. This has the added advantage that whenever you buy a new machine or disk, it generally has 10 times or more the capacity of the previous one. So bringing along all the old stuff every time costs very little space.
Now, as for the file formats themselves, this has until now been very easy as well. On Unix-y systems, the plain text file is still king, and the few binary formats tend to be open, stable, and supported by multiple applications (think JPEG, PS, PDF). There have always been exceptions: xfig is one that I used way back. And with the more desktop-oriented applications of Gnome, KDE, and Mac OS, there are even more exceptions: I currently rely on gnumeric and gnucash. But as long as the apps are portable, open-source, and provide a variety of export formats, I’m not too worried.
Incidentally, XML-based formats are often touted as a solution here, but they only get you so far. Sure, a text-based format is going to be easier to decode than an opaque, arbitrary, binary format. But open up the .apxl (XML) file used by Apple Keynote in your text editor and tell me with a straight face that it would help you reconstruct your presentation if you no longer had access to Keynote.
I started out writing this with the intent to think ‘out loud’ about what Mac applications I’ve come to depend on, and how I might reduce that dependence and transition back to mostly open source stuff. (Then I can make use of my GNU/Linux desktops at home and work again, instead of carrying the Mac laptop back and forth always.) But this post has become long already, and I’m ready to head home and seek out dinner, so maybe it’s best just to publish this and restart that brainstorm another day.
Today (Monday, actually) was the start of the 2006 LIU Teaching with Technology Institute. Unlike many professors, I of course have no problem adapting to new technologies, since I basically invent new technologies for a living. But the reason I like participating in this — and other workshops sponsored by our Teaching and Learning Initiative — is that it’s great to get together with other passionate profs to talk about teaching. Or, more accurately, about “creating effective learning environments.” Or, more pretentiously, about ‘pedagogy.’
You see, as long as I think it will be worth my time, I can quickly master any new language, protocol, tool, or environment that comes down the pike. That’s the advantage of a broad education in computer science. But what I don’t always see immediately is how to make effective pedagogic use of the technology. In my own education, many of my most effective and memorable classes were strictly chalk-and-talk. Not that there’s anything wrong with that. But I don’t necessarily know how successful use of technology in learning should look, other than the standard CS fare of downloading handouts from web sites, participating in news groups, and electronic submission of programs. Hardly revolutionary stuff. In class, instructors still mostly wrote programs on the chalkboard in long hand, and explained them using simple diagrams. And perhaps beyond that, you get diminishing returns for the amount of effort expended. Even so, I think it behooves us to continue to research and evaluate new methods; the cost/benefit analyses can change mighty quickly in this field.
Today was mostly about pod-casting. We first heard from Mike Soupios from Columbia University’s Center for New Media Teaching and Learning. He gave a very basic overview of the concepts and limitations, and referred to lots of successful uses in Columbia’s schools of medicine and other health sciences. Unfortunately, our time with Mike got compressed a little and most of the examples he had time to go through were about what doesn’t work well. Taping your entire lecture and putting it online makes for a very dreary pod-cast. Go figure. For one thing, we excuse a certain amount of stalling (uh… um… well…) in a live lecture, but in a media ‘product’ we really (quite reasonably) expect more polish and pizzazz.
We spent the rest of the afternoon with Steve Cervera, our local Apple rep. This was more on the technical side: a look at the pod-casting features in the new GarageBand. This could have been rather boring for me — I’m sure I can figure out for myself which buttons to push in GarageBand — but Steve is a talented presenter, and seemed to be able to hold together an audience of profs with wildly varying interests and technical aptitudes. Maybe he can herd cats, too.
The new GarageBand (with iLife ’06) did seem pretty smooth and simple. Unfortunately, I bought my PowerBook last Fall, before the latest iLife was available. I really didn’t see much need to upgrade it, until now. I had tried GarageBand a bit, even got it to gab MIDI with my Yamaha digital piano, so I was able to lay down multiple tracks, edit individual notes, mix, add effects, etc. It worked reasonably well, but some limitations were clear — this isn’t a ‘pro’ tool for sure — and the interface was a little bizarre, maybe because this wasn’t originally an Apple product, but that of some company that Apple acquired.
Anyway, the newer GarageBand seemed nicer than what I was used to, and the ability to create pod-casts with still images or video was fairly compelling. So I decided to upgrade. Also, since some time during this week-long workshop is set aside for faculty to pursue their own projects, I decided that I’d like to upgrade today. Unfortunately, the Apple retail stores do not offer educational discounts on software, only on hardware. So the only way to get the educational price on iLife ’06 (US$59 vs. $79) is to order online and get it Friday or so. I chose to pay the extra $20 and get it today. (I have yet to hear a reasonable explanation for that rule; we also bought new iPod ear buds today, and got a $4 educational discount on those. What’s different about software?)
I do find it a little regressive that, in this broadband age, I would have to get in my car, drive to a store, bring home a cardboard box with a DVD (which itself is not much different than a digital cardboard box, a container for bits) just to have some new software. I mean, the very reason we call it software seems to imply that we shouldn’t have to box it up and ship it around the country in trucks. But I digress…