Time to increment that number again

December 31, 2011

It is that time again when we increment a number of a mostly arbitrary calendar that most of the world has agreed to use. Oh, hurray. I’m so happy for that number. Other people are so overjoyed that they have taken to exploding things. As I see it, this time marks the end of vacation. I’ll still enjoy it while it lasts, but I’m not particularly joyful about its end. Maybe I just need to find the right thing to explode.

The Windows search dog is high

October 19, 2011

The Windows search dog is high again.

The search dog is high

That stupid dog can’t count and got the path formats confused. The last two results look like the first two with relative paths fit for a UNIX-like machine. I had this happen a few times while purging the computer I use at work of useless files. Several would show up all UNIX-y with slashes, and when I requested all the files be deleted, I was told that the files just found didn’t exist.

That dog is so very high.

Dennis Ritchie is no more, but C lives on

October 14, 2011

Dennis Ritchie recently passed away. He gave us, among other things, the C programming language. It is like a form of poetry enjoyed and practiced by software developer folks. He might not have thought so; he has called C quirky and flawed. The numerous new programming languages that used C syntax as a starting point suggests many people did see it poetically, or at least positively from a pragmatic standpoint. Or a deranged one;  I use the descendants of C so much that I cannot tell if the poetry I see is the result of my being deranged by C. The language’s influence on computing is pervasive and extends to most things running software that are not commonly thought of as computing devices.

In short, Ritchie created the most popular form of poems in the information age, and you are benefiting from his work right now.

Small items in senselessly large packages

August 9, 2011

I’ve been having some computer troubles for months. I ignored it until the whole system would either crash or become partly unusable until a reboot. I run Gentoo Linux and use a stable kernel, so these issues are always hardware troubles. The first problem was some frame buffer corruption, so I had to retire the offending graphics card. The real problem was unrelated and seemed to have something to do with USB.

To solve this problem, I bought a new mainboard. I figured I’d take the opportunity to make this a bit of an upgrade and reduce the risk of more trouble, so I also bought a new processor and memory to match. I wanted a processor that would use no more than 100 Watts to help keep it adequately cool and quiet. My decision was to get another AMD Phenom processor, this time the 95W version of the 1055T model (Phenom II X6, HDT55TWFK6DGR).

It seems like the only vendor selling this item in the US is Provantage. I’ve bought from them before and didn’t have any trouble, so I did again. There was no real trouble this time; just some oddities. For starters, I was told that the processor would be shipped from the manufacturer and might arrive at any time in the next month, but most likely in two weeks. That was on the web page for the product so I knew this before the order. The next day, I’m told that the memory I ordered somehow went out of stock after I ordered so I’d have to wait a couple weeks for it. I guess they don’t have real-time inventory.

Less than a week later, I got the memory shipped from the manufacturer and the processor shipped from Provantage. Go figure. The mainboard had already arrived as if I paid extra for fast shipping. I thought Provantage might have sent me an extra mainboard because of the size of the box. It was packed like a matryoshka doll. The innermost packaging was some dark blue stackable wafers meant to sandwich up to twelve processors. On the underside of the packaging is an AMD logo, although it was made by ITW Camtex. I guess it is how AMD packages large quantities of their processors to send to companies making lots of computers with those processors.

Heatsink of ridiculous size

Heatsink of ridiculous size

I’ve gone for some of the more energy efficient AMD processors before, but I always got a box that could be used in a store. No problem, though. I was planning on reusing the heatsink of ridiculous size, a Cooler Master GeminII that I’ve used with the last two AMD processors. I don’t often cool my place below 27C yet this new processor runs at 33C idle and 47C when very busy. The fans run at only 850 RPM so there is very little noise.

Oh, and it hasn’t crashed yet. I should be good for another three years or more.

Firefox reaches ludicrous speed

July 11, 2011

The speed at which new versions of Firefox come out have reached a ludicrous speed in an appearent bid to keep those version numbers going up as fast as Google has been incrementing the number for Chrome. Only a few weeks ago, I found that Firefox 5 was relased before I even heard that 4 was out of beta testing. Then I read today about how Firefox 8 has some nice speed improvements. 6 and 7? I guess they went plaid.

Before Google was releasing a new version of Chrome a month, Microsoft was the champion. They went from Windows 3.1 straight to 95. The first version of Windows NT was 3, but I guess that might be related to no one paying attention to Windows until version 3. Still, Psygnosis relased Wipeout 2097 as Wipeout XL in the US because someone in marketing thought people would wonder what happend to the 2095 versions inbetween.

Acronyms With Historical Baggage

July 9, 2011

There are some pretty silly acronyms out there. Some even parody themselves. My personal favorite is PCMCIA for People Can’t Memorize Computer Industry Acronyms.

As people build new things based on old things, the new things sometimes get names that tell a bit about their history. This eventually leads to an AWHB, or Acronym With Historical Baggage. Here, baggage refers to how the name manages to oxymoronically mention its history. An obvious example, at least for those familiar with it, is EEPROM, or Electronically Erasable Programmable Read Only Memory. In this case, programmable means data can be written to the supposedly read-only memory. Before EEPROM, there was EPROM which was erasable, but not electronically. Before that, there was PROM that could be written only once, and before that, ROM, which was manufactured with the data instead of being programmable. Thus, EEPROM is clearly an AWHB.

A newer AWHB is GPGPU, or General Purpose Graphics Processing Unit. I imagine that most people who have thought about a GPU, or Graphics Processing Unit, came to the conclusion that it was generally for the purpose of making graphics, so why make a new, longer acronym that explicitly states is it general? That is where the AWHB nature comes in. A GPGPU adds all the complex branching needed for general purpose computing to a processor with a GPU lineage. That makes a GPGPU a CPU that can do math really fast in parallel compared to most other CPUs. Some CPU designs are moving toward the same goal, like IBM’s POWER architecture and Intel’s Larrabee. Just to confuse things more, Larrabee is being called a GPGPU but is extending Intel’s CPU designs to look more like GPUs, just like POWER.

As far as I can tell, GPGPUs are a subset of CPUs and not GPUs. When GPUs came out, they were for a specific purpose. The design took what would be software on a CPU and implemented an equivalent with transistors which resulted in hardware that did predetermined mathematical computations faster than a CPU because implementing conditional branches while maintaining high performance is very difficult and takes a lot of transistors. These GPGPUs remove the limitation that made GPUs different from CPUs in the first place. Their approach to math was different from CPUs before CPUs gained SIMD, or vector, instructions.

Now, GPGPUs differ from CPUs only in what hardware they are paired with, but that isn’t inherent in the GPGPU itself. The notion of something called a GPGPU just bugs me. AWHBs just have that effect on me.

There are plenty of other AWHBs, but I don’t know them all. What AWHBs have you come across?

It’s your birthday, so pay up!

July 2, 2011

The state of Florida is celebrating my upcoming birthday by asking me for money.

It's your birthday!

It's your birthday!

To keep me from feeling too bad, they’ve sent an attractive anime girl to collect the bill and point at a sign. That is rather nice of them, but I’m sure there is a catch I’m not yet seeing. Maybe it has something to do with that talking palm tree.

A Backslash is not a Slash

June 26, 2011

I must be playing the crotchety old man today. Maybe it has something to do with not feeling all that well. I’ll get over that, but I might not get over these young’uns who, when I tell ‘em to use a slash, ask which one. There is only one. It is used for division. It is used in paths for Internet protocols like HTTP and FTP. It is used as the directory separator on UNIX and UNIX-like systems, which is how it came to be used in Internet protocols. That slash. You know the one.

These young’uns seem to get the slash confused with the backslash. I’m not quite sure why. Try putting in your source code somewhere “a = b \ 2″ and I can guarantee that it won’t divide by two unless you have made a conscious effort to do something about that backslash. Try putting backslashes in place of the slashes in the URL bar of your web browser. There is a good chance that the web browser won’t know what you want it to do, and if you get past that, the web server will likely give you a 404.

My best guess is that these young’uns have gotten confused by some Microsoft software allowing both the slash and backslash to be used as directory separators. There was a time when their web browser allowed this and caused some people just learning how to make web sites to make links that were incompatible with anything other than Microsoft software. It seems we have gotten past that bit of confusion from the late 1990′s, yet some software developers get confused when I tell them to use a slash, even though they ought to know them apart to make their division and escape sequences work.

I suppose I might be partly to blame. I regularly use slashes in paths on code that runs on Windows systems because I know that the Windows libraries, like Win32, will interpret the slash as a directory separator. It was a fine decision on Microsoft’s part to assist in porting UNIX software to Windows, and I do use some software at work that started on UNIX and was later ported to Windows. The whole development team does, even if they don’t realize it. So, I use slashes in the paths because they work, and I don’t have to type two characters; using the backslash would start an escape sequence and require another backslash to be interpreted as a single backslash in a string literal.

Still, that doesn’t seem very confusing to me. Software developers need to get this sort of thing straight, so I’m still not clear as to why software developers don’t know what I mean when I say slash. I can understand if they ask about it in the context of a path since not all software on Windows will go both ways, but I get asked outside that context, too. I think when I’m asked which slash to use in the future, I may start answering with use the character for division, or use the character for an escape sequence. If a software developer still doesn’t know what I mean, then they shouldn’t be employed as a software developer. Fortunately, I think it’ll be a while before I find myself working with such an ignorant developer.

Sun386i computer in Tron: Legacy; could Clu live?

June 5, 2011

I took a closer look at the screen of the computer Sam Flynn finds in Tron: Legacy that soon sends him to this grid place. It looks to be identifying itself as a system based on an Intel 386 processor running SunOS 4.0.1. Evidently this is one of Sun’s old Sun386i computers. This is consistent with the 1989 time frame; such systems were available in 1988. It also seems that security was configured to be somewhat lacking. Why would someone make a user account called “backdoor”?

Kevin Flynn appears to be a user of vi, one of the two text editors that have inspired an almost religious devotion. The other is emacs. One of the files previously edited is called last_will_and_testament.txt in Kevin’s home directory. Was he already worried about Clu, or about the health effects of going in and out of the computer?

I think the Sun386i computer was not the one running that grid setup where the Flynn’s existed for a time. The environment depicted is very intricate and detailed with plenty of the program-processes all running at once. (Tron fiction combines programs and processes into a single entity it calls a program.) Some of those program-processes have very complex behavior, and that may require a good sized program with plenty of data. I doubt it could all fit into 16MB of RAM, which is the most a Sun386i can take.

Further, the Sun386i was connected to a network, or the filmmakers made a mistake. Inside a partly obstructed terminal window is what appears to be output from the command top running on a modern Linux or similar system. Solaris, the successor to SunOS, has a different command, prstat, that it seems does the same sort of thing as top, but with a different formatting of the data. SunOS may have had prstat as well, but I don’t recall; I last used a SunOS/Solaris system over ten years ago.

The output of top shows a process called Xorg, which is very similar to X.Org, the name of a common X server. An X server runs the basic parts of a graphical console on most Unix-like systems. X client programs send commands to the server to draw things on the screen, and the server sends the clients user input. SunOS 4.0.1 has an X server, but it wasn’t X.Org. X.Org is a modern X server that was first released in 2004. I doubt anyone has bothered to port it to an old Sun system from 1988 that is mostly forgotten now. There are other processes on the list, like hald, that also suggest modern software.

The old Sun’s hardware includes an Ethernet interface, and SunOS supports IPv4. With a working Sun386i today, it should be possible to connect it to almost any Ethernet LAN, configure it manually with an IP address, subnet mask, default route, and DNS, and then be able to communicate with the modern Internet that uses IPv4, which is still almost all of it, if the LAN includes an Internet connection. Then telnet could be used to log into a remote machine, such as a modern Linux machine, and run top.

They seemed to give a lot of attention to the details of the Sun computer, so I’m not sure this was a mistake. If it isn’t, then the uptime of a little more than eight and a half days shown by top makes more sense. But that would mean that someone, or some process with access to the Sun386i, connected to and ran top on the remote machine sometime within eight and a half days before Sam Flynn began his adventure on a grid. Might Clu have access to the Sun system? Even if the Sun system isn’t running the grid environment, it likely is in contact with that system. But if Clu can contact the Sun386i, then the system running Clu likely has its own Ethernet interface and IPv4 stack. In that case, Clu wouldn’t need to go trough the Sun system to communicate with the remote Linux system, so maybe this is a mistake.

Maybe the Sun system has been modified by ENCOM so that it can run the grid place. Maybe it runs on a special board plugged into the Sun386i. In that case, Clu might have to go through the Sun system to communicate with the outside world. It does seem like the system would need some modification to have managed to run without hardware or power issues or even maintenance for a couple of decades. Even NASA’s deep space probes that have lasted at least that long have had hardware issues and were given software updates to work around the issues, but those probes were designed knowing that maintenance after launch would not be possible. A Sun computer, however, was made to sit in someone’s office or server farm where maintenance could be regularly administered. It still amazes me NASA made three (?) probes that functioned for over thirty years, and two of them still work and are still providing data about our solar system. I doubt any computer made for high-reliability by the likes of Sun, or HP, or IBM, could last that long without maintenance.

So, anyway, Sam Flynn finds an old Sun386i running SunOS 4.0.1 that could have been bought in 1988, using an unconventional display with touch input, although that was seen in the first Tron movie (1982), and that computer is in contact with a modern Linux system. That could open the possibility that a sequel movie could involve a copy of Clu. Such a movie could also have Rinzler/Tron; the program-process’s luminescent markings changed color as he sunk, but did not go dark.

Microsoft macros, please see Stroustrup

June 4, 2011

This past week at work, I looked into why I could use a member variable called “interface” just fine in some source files but not others. Preprocessor output showed the name interface was being changed to “struct” in the files that had errors, and sometimes not where I defined the data structure that contained the interface field, but somewhere else later in the file. I eventually tracked down the culprit to objbase.h, a Microsoft supplied header file used by Direct3D 9 and maybe some other stuff. It has this wonderful gem:

#define interface  struct

No C or C++ developer should ever do that. There is no good or justifiable reason to name a macro something that, in many naming conventions, is a perfectly fine name to use for something other than a macro. Most naming conventions use all capital letters only for macro names in order to avoid such confusion.

Bjarne Stroustrup also sees this as a problem. He recommends avoiding macros whenever possible, and I can see why. This is easier to do in C++ with the help of such things as templates that are not in C, but adhering to a good naming convention can eliminate a lot of troubles when macros must be used.

In short, I find it inexcusable for any developer to do something like what I found in objbase.h. Whoever is responsible should be slapped. I can only hope that has already happened.


Follow

Get every new post delivered to your Inbox.