NVIDIA kernel engineer

November 5th, 2007

In what I consider a major step forward, I am now working as a Senior linux kernel engineer at NVIDIA.  I’m also helping out with some Windows XP/Vista kernel module work too, having brashly decided that I now have the capacity to keep both Linux and Windows kernel development and debugging information in my head.  This, as of September 10th.

NVIDIA is just about the best company in the world to work for, if you’re a systems programmer with an obsession for the latest, hottest new hardware.  (Not to mention that the campus cafeteria actually generates hot, edible meals–always a bit of a surprise, considering some of the cafeterias I’ve lived with in the past.) I’m knee-deep in exotic hardware, along with tens of millions of lines of code that runs it all.  The people who invented this stuff are all right here and are fairly open to answering questions as well.

The company is actually a lot cooler than I am, what with the souped-up computer game hardware and the super-sexy marketing and all (did you see that demo with the live actress/model??), but it’s also loaded with engineers who are certainly just as geeky as I am, so I feel right at home.

(Apprion, Inc., is still in business, but they’re largely a Java shop these days, and have little need for much systems programming.)

Book reviews and reading lists

June 12th, 2007

I’ve updated the professional reading list (for System Programmers and Software Designers, now) in a rather sweeping way. It is much more offensive now, and fact sounds just like me at times. Not for script kiddies or nine-to-fivers, nor Microsoft Borgs.

Enjoy.

A failure to organize

June 12th, 2007

Well, web bookmarks, by themselves, are just not good enough. Sitebar (www.sitebar.org) created a nice product, but even when it was fully working with the latest browsers, it was already obsolete.

The problem is that there are only a few sites that you start from, and even most of those had better be reachable via Google, or you’re toast, seeing as how you’ve somehow not got your very latest synch-ed up version of bookmarks that you created last night; this is pretty much true at any given time.

EverNote is one answer (www.evernote.com). There are many competitors, which shows how important this is becoming. I’ve actually sent them money for their commercial version, which synches to a USB ram drive, or perhaps your PDA (when treated, rather rudely, as a mere network drive), without any user intervention required.

The reasons EverNote and similar offerings are the way to go are:

  • They are being very actively maintained, and therefore track user trends and fashions. Browsing and bookmarking using an antiquated system is tedious.
  • They allow you to capture context, which makes all the difference in remembering why you even care about the site.
  • They are searchable in many ways.

The latest answers for bookmarking the web

August 13th, 2006

As always, researchers and casual web users alike need persistent, searchable, well-organized and well-protected bookmarks. You can’t count on search engines alone to find important items on the web, especially if they are behind firewalls and not indexed by your search engine. And so I’m constantly on the lookout for bookmarking systems that are better than the previous ones. My latest preference is Sitebar+Firefox.

Sitebar provides both the software (which is open source and freely available) and the services to synchronize your bookmarks between all your scattered computers and a central site. The services are optional, but if you’re as lazy as I am, you can pay them about $1.30/month to store and synchronize unlimited numbers of bookmarks. They integrate seamlessly and nearly invisibly into the Firefox browser’s bookmarking system, which in turn store bookmarks locally as an html file, making backup a simple matter.

If you don’t want to store your bookmarks on a server that you don’t completely control, you can even run the Sitebar server yourself; it’s open source.

This is the best system I’ve found, to date. The import and export works very well; the browser can be configured to keep you loosely synchronized (download from the server upon startup, upload upon exit, and upload or download on demand); and it is unobtrusive.

The thing is, though, that Sitebar has a very poor website, and it requires some real study to figure out exactly what you need in order to get up and running. Here’s the shortcuts:

  1. Get the Firefox browser, as it can be extended in ways that Sitebar takes advantage of. In my fairly objective view (until last month, I had been an Internet Explorer user forever), it seems to be easier to use and arguably more secure than IE, as well.
  2. Sign up for sitebar service, OR set up your own server.
  3. Import your bookmarks
  4. Follow Sitebar’s instructions on downloading and integrating their software into Firefox.
  5. Now here is the surprising part: some of the software you need is actually called “server software” on Sitebar’s site. On the “server software page is an icon that links you to the bookmark synchronizer that you need. You won’t easily find this synchronizer anywhere else. Here is the link, for convenience: http://sitebar.org/xpi/BookmarksSynchronizer.xpi

Enjoy!

<< to the main Hubbard Software site

New desk and computer center

June 11th, 2006

Well, the time has finally come to take the home computer center to the next level. But this time, it is all about physical comfort, rather than raw processing power or network capacity. I have found Apprion to be invigorating, but (surprise, surprise!) time-intensive: it does require a lot of time-in-the-chair. I thought about this yesterday, and realized that this situation will be a lot more sustainable if I actually enjoy working from home.

The previous desk was all steel and glass. It looked nice, but was suprisingly uncomfortable for more than a few minutes at a time. I decided to replace the glass top with Red Oak. I left the wood unfinished, with only lemon oil to preserve it; this makes for a soothing, comfortable surface on which to rest your forearms while typing.

New computer center

I built the whole thing in 6 or 8 hours; the point is to use it now, not to fool around chasing woodworking perfection.  I don’t even own a table saw yet (it would have cost considerably more than this entire project). The whole thing was done with a skill saw, a drill, and a sander. For rudimentary jobs such as this one, you can avoid the need jointers and planers if you buy pre-milled hardwood and handle the stuff very carefully.

I also sprung for a good LCD monitor to replace the Sony Trinitron, even though the latter had at least 5 or 10 good years left in it. This is because the huge 21″ CRT so dominated the desk that it actually had the subtle effect of making the computer seem more important than the person at the desk.

Another important change was to put in a super comfortable keyboard and wireless mouse. These have finally become worth the trouble. You will note that the keyboard follows a natural, but very muted curve; this is the best way to go. (The so-called “ergonomic” keyboards that they still sell are actually very bad for you: they force you into an exact position that you can’t change. This one actually is ergonomic.) The lack of wires, combined with the extra space, makes the desktop clean and calm.

<< to the main Hubbard Software site

The end of an era

June 10th, 2006

A few months ago, the 30-year-old C/C++ Users Journal printed its last issue, and notified me that my remaining balance would be transferred to Dr. Dobb’s Journal (DDJ). At the time, I assumed that this was due perhaps to not enough programmers wanting to read only about C++.  And after all, other publications have always done a better job covering rather important programming topics, and with a better sense of perspective than the language-myopic CUJ could ever achieve.  However, a recent turn of events has made me wonder if something else is going on.

DDJ, now flush with all of those ex-C/C++ Users Journal readers, has suddenly morphed into a tabloidal, noisy, content-free assembly of thinly veiled advertisements. Their new “column” was written by the president of Perforce software, and of course it was all about how to use his company’s products in new ways so that you can bring him new customers. All of the technical articles are gone, and the new, hyper-glossy pages gleam with brightly colored pictures of silver-bullet products and the faces of those who are hawking them.

There is much more to observe about this ugly shift, but it’s all bad news, and that’s about enough said.

Fortunately ACM has been going the other direction just as dramatically, and they have recently started to provide remarkably pertinent information and publications. I have here the April 2006 issue, in hardcopy, of the “Operating Systems Review” (published by the SIGOPS group), as well as the latest volume of “Computer Architecture News” (published by the SIGARCH group). And rather than the usual pile of unreadable, marginally-fraudulent doctoral papers (what else can you call it, when people crank out unreadable, probably wrong and certainly irrelevant dead-end “research” papers?  See the SIGCOMM archives for as many examples as you care to read), these appear to have actually been read, understood, and edited. 

ACM’s email newsletters are also a remarkable achievement: someone has actually taken the time to sift through various news reports and write up one-paragraph summaries, with hyperlinks to the original articles. This is an astute move, and one that shows a very up-to-the-minute understanding of what software practitioners need, in terms of news and cross-disciplinary information.

As for IEEE, they’re muddling along somewhere at the low end lately: they seem to understand which topics are hot, but they can’t seem to muster the writing and editorial talent to actually make many of the articles themselves worth reading. Let’s hope this improves. When Bob Colwell wrote his last column, a few months ago, there was suddenly not much to read. 

So, considering that a big part of this site’s mission is to provide recommendations to the working software designers out there, here you go:

  1. (”Sell”) Drop DDJ like a hot rock. It is not even suitable for toilet paper these days.
  2. (”Buy”) Sign up for ACM, and be sure to subscribe to their email newsletters.
  3. (”Hold”) IEEE is hard to recommend right now, but it could improve.

<< Go to the main Hubbard Software site

Site-wide updates

April 30th, 2006

I have updated the entire Hubbard Software site. The most important part is part is probably the professional reading list, which is really starting to get useful.

<< to the main Hubbard Software site

Software Architect at Apprion, Inc.

April 30th, 2006

In late February of this year, Apprion, Inc. hired me on as a software architect. This is a step up from my previous roles as a senior software engineer, but because Apprion is a tiny, fast-moving startup company, I still get to be a hands-on architect. Accordingly, I have divided my time more or less equally among the various tasks of research; design; prototyping; and coding. It just doesn’t get any better than that. I believe that this role will suffice for a decade or two, if not the rest of my computer engineering career.  That’s a tremendously useful thing, because in the absence of any concerns about promotion, I can focus on injecting ideas and designs into the organization, without being overly concerned with attribution.

Apprion buys the computers, a double-sided laser printer, and the target hardware. I, in turn, buy whatever professional books I feel like reading, and happily spend nights and weekends devouring them as fast as I can. Purchasing these books with my own funds allows me to mix in topics that some people might not recognize as being relevant, nor even in the same field. However, design and especially invention require a mindset—and a reading list—that is not overly confined to the apparent problem at hand.

<< to the main Hubbard Software site

The annual desktop OS problem

February 10th, 2006

OK, so as a kernel programmer and all that, it is getting increasing difficult to avoid running Linux as the one-and-only host operating system. This is because any good programmer instinctively understands the threat of close-source operating systems, and patent litigation, to his livelihood: it is getting harder and harder to write code without getting sued for infringing on someone’s patent for “a system that transmits email to a device without waiting for a query,” or “a way to order goods and services by clicking once on the screen”.  And so, everyone wants to fight the good fight and run Linux or FreeBSD or something like that.  Which I do, extensively–just not on the desktop; I treat Linux as a server, and a development toolkit.

 

But the heat is increasing, and lately I’ve also had more than a few problems with missing drivers for iPods and iPAQs on my newly installed WinXP 64-bit system.  So, late last night after a pretty good fencing session, I launched into my annual routine, which is: toss out Windows, load up the latest Linux (Fedora, these days), and measure the pain/pleasure ratio.

  

Specifically, I installed Fedora Core 4 on my primary home computer, in place of the previously existing WinXP 64-bit system. My reasoning was simple: enough programs are unavailable on WinXP-64 that I had little to lose, and VMWare (or WINE–the Windows Emulator) could always fill in the gaps, for truly irreplaceable Windows programs (these days, irreplaceables include: EverNote, Araxis Merge, Macromedia DreamWeaver, and a few lesser programs. SlickEdit doesn’t count because it runs on both Linux and Windows). Furthermore, as web-based as things are nowadays, the client seems less important; after all, you’re reading this on a blog site, rather than opening up a word processor.

 

However, it just didn’t cut it, for a home system.  Great for a server, and perhaps adequate for a minimalist, zen approach to software development.  Maybe BSD 6.0 is better, especially in the performance area; I noticed they recently emphasized their support for AMD64 dual-core systems.
Good stuff
  • The email client, “Evolution”, worked nicely and was effortless to set up
  • Overall look and feel is certainly better than earlier releases of RedHat or Fedora
  • System fonts are getting better, enough that you can actually read what is displayed in the browser
Bad stuff
  • The whole system ran slowly (!), compared to when I had WinXP-64 on it. Remember, this is on a high-end workstation: 2 dual-core Opteron 275’s; Tyan motherboard; 8GB RAM and a top-notch nVidia graphics chipset; modern SATA drives (compliments of AMD–thanks again, guys!).
  • Program startup time was especially miserable, even the second time, and the screen acted as if there was no graphics accelerator.  On WinXP-64, I never had to wait more than a second or two to start most programs (even Macromedia’s DreamWeaver MX 2004), and the time to start a program the second time was pretty much instantaneous; with that much RAM, a clever, user-oriented, desktop OS (sorry, Linux, you’re my first love, but this is just pathetically embarrassing) will keep the code cached.
  • The graphics flickered, even though it claimed to recognize all the hardware (which is high end stuff), and claimed to be running an 86Hz vertical refresh rate.
  • The printing setup was good, but the printed page that came out of my HP 4 sucked. It looked as if I’d fed tissue paper into a cheap inkjet printer. The HP 4 can generate publication-quality, 600 dpi output, but the page I got looked like about 100 dpi at best. Completely unacceptable.
  • All the screen fonts are still fuzzy, and too large–thus screen space is wasted.
  • The network setup went reasonably well, but not as smoothly as WinXP-64. After installing the OS, I had to go back in and activate the network card, heaven only knows why.

<< to the main Hubbard Software site

The USB, PS/2, and KVM problem, and some solutions

February 6th, 2006

I noticed that recent keyboards and mice seem to be moving towards a native USB interface, with USB-to-PS/2 adaptors included.  However, after trying out some of the latest keyboards and mice, combined with the latest KVM switches from Avocent and Belkin, I also noticed that this combination often fails.   Believe me, I’ve tried pretty many keyboard, mouse and KVM combinations.

 I discussed this with a very helpful technician at KVM Switches Online, and came up with the following solutions, for home (2 computers):
   http://www.kvm-switches-online.com/2svpua10-001.html

and work(3 or 4 computers): http://www.kvm-switches-online.com/4svpua10-001.html

These Avocent products basically allow me to purchase a better keyboard or mouse in the future, yet still have it work.  I use an Avocent SwitchView at work (PS/2 only), and it is the best one yet: smooth and fast, without any glitches. So the brand seems trustworthy, at least, so far.

<< to the main Hubbard Software site