13 December, 2007

Now, what about that smalltalk?

How to walk the (small)talk

Trying to learn programming isn't one of the easiest pursuits in the world, especially to me. In fact, I'm finding about the only real language as such that I have any proficiency in is the bash scripting language. Wonderful, that. In comparison to big brothers such as perl, ruby, or even tcl, bash doesn't have a whole lot to offer except the ability to string things together using pipes, and call external programs. It at least has arrays which is something, I suppose; I've made use of arrays in some of the bash scripts I've tailored for myself, as well as something called Indirect references (in essence, pointers, but in bash instead of C). That made my life a whole lot easier writing the programs I have, as I could simply wrap something in a mildly complicated forloop instead of hammering it all out into a temp file, then slurping in that temp file as part of the execution of the script. It's best ... avoided.

But this isn't really why I'm here. After all, I talk about smalltalk. A lot. It hasn't overtaken my life yet, though I'll bet that plenty of 'talkers could say that it has for them—it being a just-about-complete development environment in addition to being an environment for running applications. Yes, in comparison to the big IDEs (namely Visual Studio, KDevelop, Eclipse, NetBeans) the smalltalk development environment can be seen as primitive, but then so is a text editor and gcc+make, which is my normal fare. And nobody would argue that at least they get the job done. I'm sure you're mostly aware of the typical development cycle of "create, compile, test, break, fix, compile, test...", and the attempts of the big IDEs to put that all in one place; some more successfully than others.

One look for me, another look for you

In comparison to the "one window to do everything" approach of some IDEs, it seems that the smalltalk environment has one place to enter code (either of the System Browser or Debugger), a place to execute code (the Workspace), a place to view variables while the program is running (Inspector/Explorer) and yet another place to view output (the Transcript, or simply World). Sounds as inefficient as heck, and yet there's a certain sparse beauty to it. In the end, it does make sense to have various functions separated from each other. After all, you don't typically use your email client to do your budget, nor do you attempt to use your spreadsheet to send an email - there's separation of function. Otherwise we'd never get any work done.

However, in the smalltalk world, there's less separation than what I've mentioned here, as you can literally view every program's code in a smalltalk environment, all at once. If you want, you can even lock down aspects of the environment so that it acts more like a single application, rather than an environment to run a whole lot of applications. However, the normal use of smalltalk is to have everything turned on; that way you can fix something then and there if it breaks, and you happen to know how to fix it. To extend the metaphor a bit, it's a bit like having Internet Explorer being the front end to the entire source code of Microsoft Office, Windows XP/Vista, Messenger, Media Player, Outlook Express, and even IE itself. Of course this will never happen in the Microsoft world, but you get my point.

What? There are locks here?

To provide an example of locking down the Squeak environment to make it act like a single application instead, I mention a commercial offering built in Squeak: Plopp. Yes, this funny sounding name is actually an application built in squeak. And no, it's not explorable in quite the same way as a normal Smalltalk environment - it's been built to be an application, after all, and the company doesn't want just anyone browsing their crown jewels. So what's been stripped out? Most of the stuff that make Squeak what it is: an excellent development environment. The browsers have (presumably, at least) all been removed, as has the debugger, Inspector, and anything else normally associated with development. What's been left in? Great graphics (they're 3D!), and sound support, all based upon the Croquet 3D version of Squeak, an immersive world where you can spend time making drawings in 3d. The program is aimed at children, so it just has to be simple to use, that's why everything else that would get in the way of children enjoying themselves has been removed.

Je ne parlez petit parlez-pas

I came up against a small conundrum the other day. I wanted to run some code and view some variables while the code was running, but I didn't want to wreck a working codebase, which is what I had. I merely wanted to tweak, play, as it were. I couldn't find a way of doing that, without cloning the whole image and playing in that instead, with the ability of exiting without saving. It's the Smalltalk way, though I've got to still get used to that. I also couldn't start a program THEN invoke the debugger on the program, because I still don't know how to do that. The Debugger window is about the closest to what I want, yet I'm still hamstrung by what I mentioned at the beginning of this post - my lack of proficiency. And that's not just proficiency with smalltalk, or else I'd just get over it, and do the hard yards.

Instead, it's the lack of knowledge about programming in general - what works, what doesn't, how to do really really common stuff that professional programmers take for granted. Stuff like lists, sorting, filereading, and output to screen being some examples. I don't know how to do most of that in any language I know.

A useful idea I came across quite a few years ago in a related subject is the "Whole language" method of learning - in effect, chucking the subject in the deep end, and making their brain find connections for itself without the crutch of a translator to ease the process and hold back the progress. To address my attempt to learn programming, this is what I'd like to try for six months or so.

I'd like to simply boot into a Smalltalk environment, use it to run smalltalk applications, debug code, save files and so on, then get back to booting to my regular Linux. I can't quite do that with Visual Studio, although some people would say that emacs comes the closest to that under Unix-like platforms. However, there's a problem with trying to do that with Smalltalk at the moment. At this stage, I can't boot into a Smalltalk without additionally having to boot an operating system underneath to supply what the smalltalk environment doesn't. And normally, that's quite a bit.

The closest that Squeak comes (and it's not working well enough yet to be a viable alternative) is an alternative called SqueakNOS (No Operating System). In essence, what they've added to Squeak acts like the rest of the normal operating system, providing services such as reading from disk, writing to input and output ports for controlling items, and generally doing all the things we'd expect the normal operating system kernel to do. It hasn't quite got there yet, as all this code has to run through the VM, which itself sits on top of its ... yeah, well let's say it's messy. The critical thing, at least for me at the moment, is this: SqueakNOS can't write itself back to disk yet. The other point seems to be that nobody's really that interested in it at the moment, so it's not being maintained. The latest example I can get my hands on was released over three years ago, and is showing its age, compared to modern Squeak environments.

So for the moment at least, I'll just have to go with the "run Smalltalk as an application on top of the OS" and be aware that things aren't quite all there yet. Besides which, I can gain the benefit then of running multiple Smalltalk VMs side by side, and study how they differ in their implementations. Fun ones to compare for me have been Cincom VisualWorks (now up to version 8) and Smalltalk/X (now up to version 5.3.4, at least for the Windows platform), as they both present similar interfaces to the user, both of them using the underlying windowing system of the operating system to manage windows; I mentioned this in a previous post.

I believe that other Smalltalk environments (VisualAge being an example) also present themselves in a similar manner; I actually downloaded Dolphin Smalltalk to compare that. Given that it only runs under Windows, it's a somewhat unfair comparison to other smalltalks that run under multiple platforms. I've also avoided downloading anything that costs, as I can't buy it or justify the price of purchasing. Have you seen the per-seat price for Visual Age recently? Don't expect much change out of $7,500 if you want to use it in any significant capacity.

No cute dummy here - more a powerful force in its own environment

Now, into Dolphin. It's ... well, a rather well written program, and what appears to be a rather well written smalltalk. The class library is huge, even in comparison to other smalltalks I've used, and has most items that the average beginning programmer would want. I've yet to play with Dolphin some more, as I have to keep booting back into Windows to start it up.

Recent events and decisions have meant that the original authors of Dolphin have decided not to continue development on Dolphin, and as they have a serious bias against allowing the project to fall into the open source world, we aren't likely to see it made freeware any time soon unless someone does what happened to Blender (bought for $75,000). Frankly I hope that works, as I'd be VERY interested to see it tweaked even further.

This isn't a small talk, is it?

No it doesn't seem to have remained that. Frankly if I think about it, Smalltalk is chickenfeed in comparison to other languages such as Java, .NET or even C and C++. Yet Smalltalk presumably shaped the way interfaces were made, was possibly the driving force behind true object oriented programming, and hasn't gone away yet, even against the heavyweights mentioned before. It's not easy to learn, yet from learning it, there may be valuable aspects that will apply to other areas of programming. In saying that, there are apparently negative aspects to thinking Small, in that if you think in that manner, you're automatically counting out other ways of working that may actually fit the current problem better than Smalltalk. I don't know if there will be any consensus on that, given that programming can be a bit like trying to herd cats that are on fire. No further guesses from this corner, at least.

That's Grouse, not Sexpot

A shot in the daylight

I found out that Wine happily (well, mostly, anyhow) runs a game well known to Germans, called Moorhuhn. And that's not Moorhunn, as I found out by accident. Roughly translated from the German, Moorhuhn is a grouse. So Moorhuhn Jagd is "grouse shooting". Once you see the game, you'll think to yourself - this is simple. And it is. You have ninety seconds to blow away as many grouse as you can, without shooting down balloons, planes, and turtles that may be in the scene. However some other objects can be shot at, and also give you points too. I first came across the game when my mother told me about it. I've stuck it back onto the computer because it's less blood than Quake, and can actually be played by a six year old with no real damage to the psyche. There isn't just the one game either - there are a number of them, based on the same theme, with some slight twists. Moorhuhn 2 and 3 also appear to work under wine, and I got MoorHuhn 3 running on zoombuggy's machine too.

In fact, I decided I liked it enough to actually pay for it. Someone was offering the game for a really cheap price, so I purchased it. Now my only problem with the game is that the copy I paid for (and downloaded from the website) doesn't work in non-nag mode; instead, it pops up an annoying dialog box that happens when you haven't bought the software initially. Instead, and this is an irony, it works for zoombuggy on her machine under wine, with no nag screens. Ah well. Win some, lose some.

Especially in later versions (Moorhuhn 2/3) there are also little tricks you can use to extend either the time you can shoot for, or the number of points you get. And, best of all, it works under Wine too, for a fast enough machine. Go on... you know you want to...

10 December, 2007

La lettre est morte. Vive la lettre!

An Anachronism in today's times.

I wrote a letter today. A real true blue dinky die letter, and (with large numbers of modifications to suit a blog entry) it went a bit like this:

You are officially holding an anachronism in your hands; a throwback to the past when email, blogs, and Youtube hadn't been quite invented yet; Life, The Universe, and Everything hadn't been written, and we still thought for ourselves, or tried to anyhow. These days, we're more likely to ask if someone will be able to take a shot of their cat with their cellphone camera so we can display it on our LCD monitor as a backdrop, while we listen to the latest album from ColdPlay that we paid $1.99 per tune for and downloaded to our iPod. These days, Letters To the Editor are more likely to be emails, instead of pieces of paper.

There's the inevitable torrent of spam pouring into our ISP's mailboxes trying to sell you any NUMBER of things; while most of them will be deleted by the ISP, even they can't catch all of them. Then there are phone calls across the world through your computer for practically free, or very reasonable rates at least.

Send me a letter!

There's no reason for letters, when "stuff" is so much quicker, and we've become so used to response times of less than ten minutes (maybe an hour if we're busy and can't catch up) that letters have simply been left in the dust. That is, until the electricity goes out. Once that happens, none of the other stuff will work, especially if the phone network's gone down too. Then, only a good old-fashioned letter, sent by a friendly postal representative, will do.

Barring fires (and the occasional maraudering rubbish bin), letters have a longer life than some data CDs do, certainly longer than files on floppies, and eternally longer (and more durable) than most people's memories end up being. We haven't managed to duplicate these advantages of letters, even though we've come up with a far faster way of getting information from place A to place B on a certain mudball (the third one from the sun, I think).

Going Postal

Terry Pratchett wrote about letters having a spirit in his book "Going Postal". Get enough of them together in one place, and you have a critical mass. It's a comedy with a bit of a look at the more serious sides of life. Murder. Hanging. An angel. A new life. A new job, restoring the Ankh Morpork Postal Service, which has become moribund, useless, and frankly totally outdated and unused. The building, last used twenty years before, is looked after by one rather old codger with a breastplate made of flannelete, goose grease and hot bread pudding that's become tougher than kevlar, and one young pin fancier with less brains than the average rabbit, and that's after the "Wow, two moons!" moment.

Moist von Lipwig (ex-murderer, con artist, and all-around shyster) has gained a chance to reform his character, by reforming the Postal Service. He thinks it's all for nothing, but the letters have other ideas. There are hundreds of thousands of them in the building, including some that nobody ever wrote, and they must be sent. And so it is - he restores the Post Office, posts letters, and incidentally, manages to take charge of the very organisation that put the Post Office out of business to begin with. No mean feat, when the previous owner of that organisation (who refused his angel, by the way, and is now dead) fought VERY hard to have Moist killed, disposed of, and plain neutralised. But, the letters must be sent.

And so this letter will be sent, (and blogged) with many Christmas wishes to you. You can see a copy on my blogsite (you're reading it now, actually), but don't worry, I won't turn it into an mp3, to charge $1.99. Besides which, it's only my $0.02 worth, so I'd be making a horrible profit.

I wanted to make this letter personal, but it doesn't have that feel to me - I've only worked over three separate versions, one of which will appear as a blog entry online. This one alone survives in paper and handwriting form, just like the good old days when spam was probably edible, the web was pretty if it had dew on it in the morning, and people still thought for themselves.

Or tried to, anyhow.

29 November, 2007

The genius of it all

Quick note

Well, not so much a quick note as to say I gained a couple of new pieces of hardware from a friend; one to keep, and one I'll end up buying. First, the item to keep: a box that basically does television signals to your monitor. Yes, RF in PAL/NTSC, audio (L & R), S-video, or composite video+audio, all come out on your monitor to view in wonderful colour. It even has composite video out and audio out so that you can hook the box up to an existing television and stereo, though I don't think that Picture-in-picture works on this setup. Go look up Genius' TVGo A31 for more details. I like it. The wee box is actually supposed to be for the both of us, but I guess I'll be the only one to really get any use out of it. In saying that, the box has minor issues, thankfully not many.

Hot signal.

One: it gets quite warm. For a box with no fan, and no way of keeping it cool, I hope this poor wee thing doesn't die of heat exhaustion. Two: the other thing I've found (at least for me) is that it really needs a proper aerial connection to bring in the TV signal. Simply sticking on a wire into the plug isn't really cutting it for me. Three: the picture-in-picture support works, but needs the computer's video output to be of a certain resolution and framerate for the TV picture to be properly superimposed on top of the VGA signal from the computer. So far, I haven't managed to get that right all the time, though I've got it right some of the time. And last: the output from the TV signal isn't in stereo, even though the inputs from the composite signal are. What that means is: audio from a Playstation or DVD or video player or the computer comes out in stereo, but there isn't (or doesn't seem to be) a Dolby Stereo decoder inside the box. That's a shame, as I like my sound in stereo or better, whereas frankly zoombuggy doesn't give two shakes. Anyhow, I'm enjoying it - as it means I get television without having to have a tuner card inside the computer. I even found one or two other channels I didn't know about before. As it also has composite video, I can also hook up a Playstation and play a few games, not that I actually have one of those yet.

Tabla Grafica

Second, the item to buy, at a suitably agreed price, and the item I want to talk about the most. It's a graphics tablet, but not just "any" tablet. Specifically, it's a Genius NewSketch 1212HR-III-B. It works well under Windows XP, even though Windows complains about the fact the driver isn't WHQ certified and I really shouldn't run it unless the driver has been "certified". The tablet dates from the early part of this decade (the driver is dated 2001) and thankfully for me, it works. There's even a Linux driver, though I note that the driver isn't for this specific model of the tablet, not even for this brand, but more for a generic "SummaSketch" tablet. The tablet came with a stylus with three buttons on, and two pucks (one with six buttons, the other with sixteen buttons). The tablet also seems to have three different modes of operation. I found this out from the two-page userguide from the website, but didn't find a lot else from there. Two of the modes supported are compatible with Summa tablets in general, and the third mode isn't, but it's the mode that Windows kicks the tablet into. Of the two Summa modes, only one is directly supported by the driver in Xorg, and it's the least capable mode, only supporting the use of either the stylus or the six-button puck, not the sixteen-button puck. The second and third modes support the use of the sixteen-button puck and the stylus, and apparently the third mode supports the use of both the stylus and the puck simultaneously, though I have yet to confirm that works. I did eventually find a document describing both the Summa modes, and I now know why it won't play ball under Linux with the sixteen-button puck connected. It seems that the MM protocol only has three bits for buttons (maximum of eight buttons, of which the puck uses six), whereas the UIOF protocol uses four bits, allowing for sixteen buttons. The source code to Xorg only mentions MM commands, and doesn't seem to have any facility for UIOF or K mode commands. I may need to write my own code and recompile Xorg to get it all to work. That's a pretty big job for me, and for my computer.

Who stole all my bits?

One other thing - this model uses a keyboard passthrough for power, and a serial port for communication to the computer, though other models use USB. Since I only had two serial ports to begin with, I've ended up having to sling another PCI serial card into a slot in the machine just so I could continue to synchronise the Palm V to the computer - it's just as well I had a spare slot for the card. That reminds me, I'm still on the hunt for some nice simple ways of getting email into the palm without limiting the size of each email record, currently the version of Palm that I have is limited to 4k per message. The only solution I've found so far is to turn a mbox (Unix mail file) into a text file with makeztxt, and to save that file to the Palm, making sure I've trimmed all the excess headers first. Anyhow, it's time I left again.

14 November, 2007

A drive around the block

You bought what?

It seems I made just a bit of a boo boo when I purchased a DVD drive recently. The specs on it were very nice (supports DVD-R,+R,-RW,+RW,-RAM, CD-R, etc etc). The price was even better. So I bought it, and brought it home, but it wasn't until about half an hour after I actually got it home that I realised I'd made a small mistake in purchasing it. Yes, it works fine. No, it wasn't misrepresented in its advertising. So, I can't actually take it back because it doesn't work, or it doesn't do the job advertised in its marketing. No. My problem was, I didn't click to the fact that it was only a DVD reader, and not a writer. I could have saved myself the purchase cost of that drive, and added a bit of money, I might have had a writer. Never mind, it'll go into fatty as a reader, fine. Solaris recognises it, Ubuntu recognises it.

But the sun is eclipsed by the moon

Yes, I've reinstalled Eclipse, after upgrading my JDK, of course. I was aware of Callisto (Eclipse 3.2) but wasn't aware of Europa (Eclipse 3.3) so I had a pleasant surprise when I got to the download site all ready to download my copy. I'd already grabbed J2SE6 and docs to go with it, and I'd also upgraded my copy of NetBeans to 5.5 as well as installing a couple of useful plugins for non-Java coding. So I went ahead and downloaded Europa. I must say that Netbeans is considerably smaller than Eclipse, by some really significant margin. That was reflected in the long time it took to download both Eclipse itself, and some of the other plugins I wanted. On top of that, there are way way more plugins available for Eclipse. I'm still not sure yet what I'll use on an ongoing basis, though I have downloaded pretty much anything I'm likely to use, as well as possibly stuff I may never use.

Back to the books

I've been getting back into books recently, reading a bit of Stephen King (good writer, that), Thomas Harris (Hannibal fame), and Stephen Donaldson. Incidentally, he's just come out with a second part to his "Last Chronicles of Thomas Covenant" series. As with his other previous series, this one looks like it'll be another three-parter too. I ended up finishing "Firestarter" in just over a week - not fast for me, but faster than I have been reading books up until recently. With that in mind, I've got out two other Stephen King novels: Christine, and Cell. Anyhow, guess I've nothing else much to say.

10 August, 2007

Worms play with guns

Why are worms involved in warfare?

I have found a game I can actually play under Wine! Yes, I know people say you can play heaps of games from wine, but I haven’t found that to be the case. Of all the CD programs I’ve tried, only three seem to work under wine. And one of them is a little classic—literally. Anyone who remembers the DOS game Worms, will be familiar with these little creatures from Team17 whose mission seems to be to annihilate everything and everyone else in sight, except for themselves of course. No screenshots, as I’m probably going to violate various licence agreements if I do.

Not a great taste in wine

You might ask why on earth I want to run such a game under wine when I could simply run it on Windows instead, and gain the benefits of running the game properly, on an operating system for which it was designed. I’ll explain why. I seem to use Windows about once every six months at the moment, if that. I use Linux for 99% (or more) of the time that I’m on the computer, and I don’t want to be tied to the Windows platform any more. Not that I have much choice, as most games are written for Windows first, and maybe Linux gets a thought in after that. I was familiar with Worms 2 and Worms World Party, having installed them under Windows at one stage, and watching while worms blew each other to bits with insane weaponry, and spouted totally corny lines I just had to laugh at. Just today, I was lamenting the fact I couldn’t get most of my other games running under Wine (nor, for that matter, the games that zoombuggy has collected - more on that later), because they wanted stuff that wine simply didn’t provide. And this was using the latest available wine sourcecode, so it’s not like I was not keeping up with the play. So, I decided to try out the copy of Worms 2 I had sitting up on the shelf, all unused and unplayed.

Awww. That’s a sad story.

Anyhow, I stuck the CD in and mounted it, and executed the installer—once I found it, that is. It did the normal thing that installers do, copied a bit of data on to the hard drive (don’t they all), and tried to display the README using write.exe, which I don’t actually have. Hey, that didn’t matter, the game was installed. When I ran it, Worms came up with all the relevant graphics, sound and action - so I’m stoked, as that’s one game that actually works.

You mentioned zoombuggy

Unfortunately, zoombuggy is not as fortunate as myself. For starters, she doesn’t have a CDROM drive, so she can’t install games even if she wanted to. Secondly, we’ve tried all of the games she owns under wine, but none of them want to work under anything but DOS or Windows. And because she doesn’t have a CDROM drive, most of them won’t run as they require the CD mounted before they’ll play. It’s beside the point that she doesn’t have a running Windows install at the moment, due to her having changed machines twice in the past 12 months.

Has she found any games she can play?

Yes, she has, though they are Linux games, of course. Suffice it to say that she enjoys them, and has a good time playing them. And with that, I’ll sign off.

07 August, 2007

Back to the Cube

It’s tiny, Dad!

Nearly a couple of months back, I wrote here about the big Rubik’s Revenge cube that I bought, and the normal Rubik’s Cube. Today, I finally bought the tiny one, for the sum total of only $12.95— quite cheap, really.

It’s tiny! Only three million combinationsSo far, I’ve already scrambled it, put it back together (that surprised me!), AND scrambled it again. It might only have three million combinations (hah. only he says), but it's proving slightly tricky to put it back to rights. As with its really big brother, the 4x4x4 Rubik’s Revenge, it came with its own Solutions Booklet. Most of the pages described what a face was, what colours were on the cube, and what was in the pamphlet. Of the 16 pages, only one page showed actual moves that could be used on the cube to swap pieces around or to rotate them. Yes, this cube only has three sets of moves that get used to solve it.

Sell! Sell! Sell!

Oh yes, and the obligatory marketing for more of the Rubik’s products. For example, until today, I was unaware that there was also a Rubik’s Tangram (14 tangram pieces, which can of course be combined into many clever diagrams. I don't (yet) think I’ll be buying this one, much as I like playing with tangrams. As an aside, there is a Gtk program called gtans which shows a variety of shapes to fill in using the pieces. Quite challenging for some people. Anyhow, I’m sure you’ve all seen some of the other products produced as part of the company.

Missing link puzzleI came across one a couple of weeks after I bought the Revenge. It was a darn sight simpler, known as the “Missing Link.” You’d think it was relatively simple, but there’s a slight twist to it. Isn’t there always? The twist is—you can’t move the two middle sections independently, as they’re fixed in place, though you can still slide tiles through them. So really, it’s like a reorganised “15” puzzle. It took me quite a few minutes, but I solved it. Better results than I get with normal 15-puzzles.

Tick tock, time’s a’ running out

One other puzzle that I already have from the Rubik’s family I forgot to mention is the Clock puzzle. It’s got two sides, and nine clock faces on each side, linked by cogs and sliding elements that make it just a bit more tricky than you’d normally expect.Clock puzzle Of course, the aim is to set all the clocks to 12 ’clock. Laughs can be had by seeing if you can set each clock from 1 through to 9—I haven’t found out if this can be done yet. According to the wikipedia page for the puzzle, it’s a lot easier than the other puzzles, purely because the clock faces are linked.


And with that said, I must thank the authors of the related wikipedia.org articles I used for this blog, and also my thanks go to the owner of the Missing Link picture.

01 July, 2007

Another day of SUNshine

What, again?

Yes, only this time I had a little more room than before. The previous hard drive only had 3.2GB of space on it in total, so I had to leave some packages off the hard drive from the full install of Solaris 10. A few days ago, a friend of mine offered to send down two complete computer cases with motherboard and CPUs if I were to pay the postage. Funnily enough, zoombuggy agreed, as the idea was that she’d get her own computer back, with its own hard drive, and without any of my schlock on it. So we got them sent down, and I had a play.

They’re quiet, Jim

Yes, they’re quiet, and they’re also custom. The little ENS Compaqs quite often are. These machines are no exception, as they have Pentium-II motherboards, but they have Pentium-III CPU cards in them. Weird. One’s a 600 MHz CPU, the other is a 450 MHz CPU, so they're both slow, but not totally crawling. They also have (almost) tool-less cases. Again, weird, but I could get used to it. The main disadvantage is: there is only 128MB of memory in each machine, in two 64MB SDRAM sticks. So I’m now waiting for an awful lot of 128MB or 256MB SDRAM sticks that I can put into three computers. To make it worse, Kubuntu 7.04 doesn’t like having less than 256MB, and is running as slow as water on fire - personally I’ve found it runs okay with 384MB.

So now what happens?

Well, each of the computers had a 10GB drive. As one drive already had a complete Kubuntu 7.04 set up on it, I just moved on in, and got zoombuggy’s data shifted over. It seems funny, but I’d been wanting to upgrade her rather old Hoary Hedgehog installation (where do they come up with these names, anyhow?) for a while, and here I was, boom - up one distribution already, and without having to download a CD or DVD image. That was zoom and zoombuggy all jacked up, and I was up by one 4.3GB drive - that’ll probably have NetBSD put back on to it. The other machine (the 450 MHz) got the hard drive ripped out of it, which I used in fatty for the new Solaris install. Meanwhile (yes, I’ll get back to Solaris in a minute, Laura - just hold your horses) to make actual use of the machine and not have it lying around without a purpose, I put the Plan 9 drive into it. It works really REALLY well, in fact I’m frankly astounded. So, now my Plan 9 install has a machine all to itself. Once I corrected the IP I was using, and changed the hostname, it was good to go. I just wish it could get more use, but screens are at a premium here—I’ve only got two working screens, and I have to repair the third.

And now, the story about Solaris?

Yes Laura, on to Solaris. Well, as I said in the first paragraph, I had nowhere near enough room on the original drive, so I took the DVD writer out of brick and stuck it into fatty, so I could install Solaris on to the 10GB drive, and finally install everything off the DVDs that I had. I had to migrate a wee bit over from the original drive, such as the beta for Flash 9 player (yes, there IS one for Solaris x86), and the OSS commercial sound driver software - more on that in a bit. Now I’m the happy owner of a Solaris install that actually has all of its bits and isn’t missing anything. I also added Sun Studio 11 (it already had GCC) and NetBeans 5, but found the machine simply wouldn’t run the Java Studio Creator without bogging down. I guess that 256MB really isn’t enough, as I read the requirements afterward and found that 1GB would have been more like it. Of course, Solaris comes with Star Office 7, and a reasonably complete Motif 2.1 install, so I’ll at least have a bit of stuff to learn - and, it even has a complete install of Java SE5, so that I can start learning Java from that Bruce Eckel Java Book that I got from Amazon.com back in February or so. I’ve also added several packages from the Sun Freeware project, and several packages from the Solaris Companion disc. And Firefox, of course. So I’m happy, kind of.


Yes, there’s a “but”. Currently the support in Solaris for sound is somewhat ... patchy. I have two ISA soundcards that don’t want to work under Solaris, even with the commercial OSS software that I downloaded. So for the moment at least, I ain’t got no lovin’ feeling ’bout that. If I happened to have an on-board AC97 sound chip, this would not be an issue, as:
  1. the sound card would be on the PCI bus, and not the ISA bus, and
  2. there's a AC97 sound driver in the Solaris kernel.
I know that works, as it worked somewhat under brick when I was running Solaris 3/05. So sound is the only issue I have, aside from memory (which could be worked on once I get some more 256MB memory sticks) and machine speed (probably requiring a motherboard upgrade).

And that's a wrap

Sure is. I'll have to do some more experimenting with Solaris, play with things a while. Frankly the version of Gnome I have here is ancient, to say the least. There are several aspects that have already been fixed in later versions of Gnome, such as the ability to change keyboard shortcuts. However, it does work, mostly. I don't have a whole lot of space left, but I have enough room in which to do some stuff, at least.

20 June, 2007

That's like, totally random

Starting small

An old classicWell, not totally random, but several gazillion combinations makes for a lot of choice. I’m referring of course to the Rubik’s Cube... that ‘toy’ that has befuddled us from 1980 when Ernö Rubik put it on the market. Apparently when he first came up with the cube, he had to play with it for a whole month before he was able to actually complete it for himself. Since then, of course records have tumbled with the lowest record for the 3x3x3 seemingly sitting at around 9.8 seconds or so (May 2007). That’s about the lowest quote I can find, at least for the moment. But wait, there’s more.

You broke me!

Oops—the nephew dropped it. Honest!Some people get a little too frustrated with their cube, and attempt to solve it by less conventional means (i.e. cheating). Other reasons for disassembly include regreasing—a favourite of cubers everywhere is a product called Vaseline, otherwise known as petroleum jelly. For some speed cubers, another product is Silicone Grease. Adding a good grease makes the cube more fluid in operation (so you can turn the faces with greater ease) and is often the first item in setting up for speed-cubing (doing the cube really really fast). Cubes can’t be done disassembled of course, so put it back together—carefully now. The Rubik’s cube site has reassembly diagrams for the three most common cube formats, though not for the Professor’s Cube. Anyhow, when you’ve finished, it’s supposed to look like this. All done A good cube will have a good smooth motion, not too tight or too loose. It shouldn’t be too easy to disassemble either, as the cube deteriorates the more often you have to disassemble it. These elements become more important the larger the cube, and the more you look after it, the longer it should last you before needing inevitable replacement. So far, I’ve found a marked difference between the real McCoy and other imitation products, so don’t go to the two dollar shop if you expect the cube to last longer than two minutes.

But wait, there’s more!

I first found out about the Rubik’s big brother “Rubik’s Revenge” in the late ’eighties, and have wanted a version since then. That’s a long time to want something without getting it. But hey, it happens. A few days ago, I found such a beast again, and decided to buy it, as the price was reasonable for New Zealand (only $30.00), and zoombuggy was okay with it.
  56 cubes of colourThis big brother has 7.4x10^45 combinations. Too large a number for me to even guess at pronouncing. I paid for it, brought it home, and found that the Rubik company had included a “Hints & Solutions” book with the cube in two parts. One part had the different instructions, each of them with a number that you used to look up the diagram in the other booklet that had all the pictures in it. Needless to say, I found it strange. I decided to go to the related website and grab their downloadable booklets to take a look at them; went there, spent about an hour actually finding the downloads, and snaffled copies of the other booklets too. This is where it gets interesting, because when I opened the downloaded booklet in my browser, it included the diagrams inline with the text as you’d normally expect. Only one ... quibble. The arrows pointing up, down, left, right, and around in 180 degrees, had been replaced with white numbers in black circles. Yay, not. Thankfully when I opened up the booklet for the original 3x3x3 Rubik’s Cube, it had arrows, and the diagrams were all in the right place. Strange, that.

It’s got how many cubes?

Anyhow, I aim to buy (when I can afford them) both the Mini—Cube (2x2x2) (which I’ve since purchased) and the Revenges’ even bigger brother, the “Professor’s Cube” (shown at the back in the last picture below).The whole official family That cube has 2.8x10^74 combinations. I've even seen it advertised at Amazon.com for only about US$26.00 or so, so it is at least able to be bought. That way, I’ll have the majority of the cube family, at least as put out by the Rubik company. I think I can safely skip the “cube on a keychain”, as it’s too flimsy to operate for long periods. Other varieties that I have already, include the Sudoku cube (a standard 3x3x3 cube that uses a different sudoku puzzle on each face), and “Square 1” (both pointed to by wikipedia). Grateful thanks go to the editors of the related wikipedia articles for their excellent pictures.

06 June, 2007

Knuth, that's kuh-nooth.

\begin {article} And if you don't know who Donald Knuth is, just google for him and you'll see how important people think he is. His main passion of life is mathematics, but he also happens to be one of the more important names of computer science. His seminal (if I can use that term loosely) works include the five-part work The Art of Computer Programming, the TeXbook, Concrete Mathematics, and Selected Papers of Discrete Mathematics. There are of course a lot of other books that he has either produced, or at least had a rather large hand in producing. The Art of Computer Programming hasn't been completed yet, as only three volumes have been released so far, with two more volumes to be produced before he re-revises and releases his fourth edition of same. When viewing him in his video presentations (these are available from Stanford, and are linked to from his home page), I feel that he appears diffident, and rather unsure of himself. He quite often seems to be discovering the subject along with his students, though this turns out not to be the case, that he actually is viewing the subject from what commonly appears to be a completely different perspective—one not reached by most of his students. But the moments when his students and himself "get it" can seem almost like an epiphany. And for a mathematician, that's pretty heady stuff. I've also noticed that he also seems to jump around whatever subject he is covering, and seems to want to say a hundred things all at once. However, in contrast his writing appears confident, concise, and of course, accurate. You can hardly be otherwise when you're as famous a mathematician as he seems to be. Or is it Computer Scientist? I'm never quite sure. Any good scientist has hobbies, and he is no different—he owns his own small organ. Yes, it's a real organ. That's also covered in his home page, with its own special section describing it. I'm sure that's not his only hobby, as I've seen web pages devoted to diamond signs (imagine a square turned through 45 degrees, and something in the sign, and you have it), travel, and many other items I can't remember. So, go take a look. \end.

Linux for Suits - Beyond Blogging's Black Holes | Linux Journal (July 2007)

I'm rather sorry I have to point to just the abstract for this article from the well-established Linux Journal, but I can't point to the article directly: you can't view it unless you're already a Linux Journal subscriber. And even if you're a subscriber, it can take a bit of gymnastics to get to the actual article. I've already emailed them about that. Anyhow, do become a subscriber, it's a pretty good idea, in my opinion. Anyhow, Linux for Suits - Beyond Blogging's Black Holes | Linux Journal (July 2007) describes what happened to Doc Searls recently, due to what appears to be some narrow-minded or just plain stupid antics, and reactions to same. As a result, he states:
The old 'sphere ain't the same. And, the problem isn't just incivility and flamage. As old hands know, that's been around for the duration and will never go away. The problem is blogging itself. Somehow it's becoming more like TV and less like what made it great to begin with.
That's all I'm going to excerpt, so I can hopefully stay within "Fair Use". Thank goodness I'm only a small one-man blogging station with not a lot to say... hopefully nobody will abuse me in the comments merely for mentioning LJ or Doc Searls.

23 May, 2007

Theme tinker

Yup. Decided green was no longer the in thing, so I ditched it in favour of another of the pre-canned themes available from Blogger. Had to tweak a little until I got what I wanted, i.e. a bit of mix and match - some of this theme, some of that theme... it's not ALL working out, but I seem to be working through the bad bits slowly. Anyhow, lets get this theme to bed so I can get to bed myself... I'll write a bit more tomorrow if I think of it. The last thing I want to do is to replace the background colour with something a little more exciting. Like a New York cityscape. And hey, why don't I lighten up the background display over all?

From the Weekly Squeak: What's in a Comment?

Today, I saw a news article with the following title: What's in a Comment? « The Weekly Squeak provides yet another look at why we should comment our code, this time from the perspective of a SmallTalk developer. You can read the rest of the details at the link above, but that's not where the story ends. Frankly the comments make more interesting reading than even the article does, though the article is entertaining enough. An excerpt from the article best describes this:
I believe that these statements, the code is self documenting, and there is no good place to document in code, are wrong. Comments deliver two very basic benefits. First they give context to flow. Good comments can help to point you in the right direction. If you have a method that is protected by callers or has other considerations that may limit the usefulness of a method, you had better put a comment in. Otherwise you can be sure some other developer will use the method wrong and make the mistake you thought was obvious. Class comments are a very good example of this. Having a class comment that just points you to the default flow of the object can really help.
I wholeheartedly agree with this, and don't think the standard excuses of "not enough time" hold up. I do accept that when a professional codes, that there IS a time constraint. After all, the programmer is often paid by the hour, and spending an extra two minutes per hour doing the documentation when the job is already clocking up the time doesn't seem worth it when you consider that the typical market for the code is non-technical users who will never look at the source code. But there are two things I believe worthy of consideration here. First, the documentation and comments in the code aren't for the user, they're for the coder. The second point to consider is this: the extra two minutes pays off in rewrites—when the next coder comes along to maintain the work, good comments and strong (that is, correct and relatively complete) documentation will mean that she can often do her job in half the time it would normally have taken her. Now, that's a lot of dosh saved.

02 March, 2007

A Blast From The Past

I have a friend that plays an online game that he likes. He likes it so much he doesn't just buy the ordinary version, he buys the collectors version if he can instead, at its retail price. These collector's packs aren't $89.95 - they're quite often more like $110 or $120. Well, I've been a game player (not a very good one, admittedly) for a while, but haven't really been able to afford the games when they come out brand new, understandably. So I've had to wait until the prices of games I've wanted has come down. On top of that, there's the fact that just about NONE of the modern games these days will even run on my machine, due to demands for video this, 1.5GHZ that, 2GB drivespace here, Radeon 9700 / Nvidia GeForce 7 there... you get the picture. Some of My Small Collection Simply put, when I come across a game I (1) can run, and (2) can play, I like to get all the members of that family I can. As a result of waiting, I've gained quite a collection.

A recent (for me, anyhow) example has been the Quake family. I got Quake 1 a while ago, thankfully I found this at the Warehouse (a budget store a lot like the American WalMart) along with Doom 2. I also got Final Doom when I found that in the Warehouse too. When I brought Quake home and played it, I was hooked. I loved the feel, especially after having played DooM. I like DooM, don't get me wrong, but Quake was something else again. Of course, then I decided to get mods, paks, and maps to extend my Quake single-player experience, just like I had done with DooM previously. To give another example: a couple of years ago, I stumbled across a cheap bundle called Totally Unreal, which contained Unreal, the expansion pack (second part, as it were), Unreal Tournament (the original one) and expansions. It was pretty good too, and brought me into the arena-style game. Now I'd got more of an idea of what it was all about. I have since seen a similar package, this time including Unreal, Unreal Tournament, Unreal 2 and Unreal Tournament 2004. At this stage, it's on my list of "I want, but will wait".

For the past six years or so, I have been looking for Quake 2 to fill the series out some, but hadn't really had much luck finding it... the two times I did find it, at the time I didn't believe my machine could run it due to the 16MB video memory requirement. So I left it on the shelf at the time. That was the way things stayed for about four years. I recently tried to find it again, and stumbled into Quake 3 Gold edition instead (contains Quake 3 Arena and Quake 3 Team Arena). By then, I'd gained a Voodoo2 and a Radeon 7000, and could play it, so I bought it. I liked that too, and finally got to play Quake Arena, against computer opponents - fun for me. Now I was even more determined to look out for a nice cheap copy of Quake 2, to fill out the set of Quake games. Of course, Quake 4 was released, and I realised once I saw the specs I was never going to be able to run it with my current machines, so left it out of my mind. Of course I kept looking.

Skip forward to five days ago. When I spotted another games collection on the shelf of our local Gamesman store, I decided to ask if I could buy it.
Age Of Empires (Collector’s Edition) They had bundled the first two Age Of Empires games with the first two accompanying expansion packs, and called it "Age Of Empires (Collectors Edition)". It would pad out my set of Age of Empires games that I wanted to get. I'd originally gained the first CD of Age Of Empires, collected from a cereal packet. I took a look at Age Of Empires III, just for a comparison, I guess that's another game I won't be running any time soon, as it requires more machine muscle than I have. So I'll stick with Age Of Kings. Anyhow, I bought that set, and in return zoombuggy ended up with two more books to fill out her Philippa Gregory collection. Fair trade, I thought.

Then yesterday, I went down to another mall to get some coffee on wild discount. I decided to look in the EB Games store while I was at that mall, just on the faint hope that they might have Quake2 or something else I wanted... StarCraft, perhaps? I didn't find Quake2, of course though I did find StarCraft for $24.95. So, I trundled off to the Warehouse, just on the off-chance. I didn't find it there either, and then I picked up the Quake 4 box, looking at the price - $49.95. Then ...I spotted another Quake 4 box, this time labelled "Special DVD Edition Quake 4", and wondered ... what the ...? What made this version different from the normal edition? So I picked it up, looked at the rear of it, and nearly jumped out of my skin. It has Q2!
Included on the second DVD was Quake 2, and not only that, but also two Quake 2 Expansion Paks! I'd struck gold, finally! Now all I had to do was to talk zoombuggy around. Surely she'd allow me to spend $49.90 if I promised to pay part of the cost back at a later stage? It worked, she agreed, then asked this question: "What do I get in return?" Hm. Thought I'd better be fair and ask her what she wanted, so she said she'd go back to the Warehouse and look through their books section. In the end, zoombuggy gained three more Philippa Gregory books in return for me being able to purchase Quake 2. This would complete her series of Tudor stories. I think it'll be the last purchasing I'll be doing for a while, somehow.

What a price! $88.90 down to $49.90! After I bought it, I decided to compare some prices. At EB Games where I'd gone before, I looked again on the shelf at the StarCraft collection they had tried to persuade me to buy ($54.95 for SC, expansion, and two guidebooks - actually a pretty good price), then checked on the shelf for Quake4 for the version I had just bought. Sure enough, I found it - at $89.83 (or something like that). Then I realised how much of a discount I'd got it for. I still wasn't sure if I was going to be able to run Quake 2 of course, but I looked at the machine requirements (90MHz Pentium, 24MB memory, 775 MB hard disk space) and thought let's give it a go, and took it home.

Of course I was going to need the Quake 2 binaries for Linux, not Windows, so I went ahead and installed those, and copied the data off the DVD into the right place on the hard disk. I had Quake 2! Started it up, it even ran for me, which surprised me considering that the specs had stated 16 MB of video memory. It turns out that Quake 2 has a perfectly usable software rendering mode, which runs perfectly acceptably on a K6-II @ 533MHz. Sure, I don't get the fancy graphical effects, but hey, I'm there to play the game, not admire the scenery. Another thing I don't get with it is the original Quake 2 audio tracks, as they supplied it on a DVD-ROM instead of a CD-ROM. Again, I can handle it, though the music apparently rocks.

My next purchase is to aim for completing the Command & Conquer series (there's a box called "Command And Conquer - The First Decade" that I'll have to buy), and work out which of the Tom Clancy games I can run on my machine, and fill out one or two more of his games. For some reason, I like them, though they don't play the same as Quake/DooM/Unreal Tournament. I think I'll dodge games like Flight Simulator*, Formula 1, Need For Speed, GTA**, and anything where I have to steer around a circuit. I suck at those games, big time.

(Updated on 23-5-2007) I also really like the Myst series from Raven Software. So far I have the first game "Myst" on a disc on its own, and the collection of the first five games that I also got for a cheap-ish price ($29.95), called "Myst, The Collection". I can't currently run games 4 or 5 yet, but the first three look pretty darn good.

To bring the story to an end (because this is getting to be a bit long...) I now have all the main cast of Quake games, though I can't play Quake 4 for quite a while, as that'll require a motherboard upgrade.

* EDIT: Several years later, I eventually bought Flight Simulator X on Steam, and have loved it. Time changes things sometimes.

** I also bought all but one of the GTA titles, at least to this date (Dec 2016).

So, be prepared to trawl the aisles at the Warehouse sometimes - you never know what you might find. Also, do check prices everywhere before you shell out your hard earned cash. Quite often, you'll get a pleasant surprise somewhere if you do. Incidentally, another option I was told about today (thanks, wishes), was to go online and go to trademe to look for a game there. I'm informed it's a good place to find games as long as you are prepared to observe the caveat emptor principle (buyer beware).

To summarise, these are the games I currently have in my collection - it's getting reasonably sized. Some of them are real old and I don't play them much, or they were given to me and I still haven't worked out how to play them yet.

  • Age Of Empires, Rise Of Rome, Age Of Kings, Conquerors
  • Beneath A Steel Sky, Lure Of the Temptress
  • Command & Conquer
  • Ultimate Doom, Doom II, Final Doom
  • Duke Nukem 3D (including the first two Duke Nukem games)
  • F1 2000
  • Fifa 99
  • Half Life (Game Of The Year), Team Fortress, Blue Shift, Opposing Force, Counter Strike
  • Heroes Demo CD (contains demos of:
    • Deadly Dozen
    • Hitman
    • Project IGI
    • Rollercoaster Tycoon
    • Tombraider Chronicles
    • Totally Unreal
  • Monsters Inc - Bowling for screams (Sample game)
  • Moto Racer
  • Myst Masterpiece Edition
  • Myst: The Collection containing:
    • Myst Masterpiece Edition (yes, a second copy)
    • Riven
    • Myst III: Exile
    • Myst IV: Revelation
    • Myst V: End Of Ages
  • Quake and two expansion paks, Quake 2 and two expansion paks, Quake III Arena, Quake III Team Arena, and Quake 4
  • Railroad Tycoon II (not strictly mine, more ... left here by the owner's mother)
  • Spec Ops (Ranger Assault)
  • Tactical Ops (Assault On Terror)
  • Terracide
  • The Need for Speed SE
  • Thief (The Dark Project), Thief II (The Metal Age)
  • Tilt!
  • Tomb Raider I, Unfinished Business, Tomb Raider II, Tomb Raider III
  • Tomb Raider - The Last Revelation, Tomb Raider Chronicles, Tomb Raider - Angel Of Darkness
  • Tom Clancy's Rainbow Six, Rainbow Six: Rogue Spear
  • Totally Unreal, containing Unreal (Game Of The Year), Unreal Na Pali, Unreal Tournament
  • Worms 2, Worms World Party
And that's it. If I were able to stick these all on one hard drive, it'd take up quite a bit of space. And that's not even including any of the games that I've installed that aren't on a CD somewhere (i.e. games that came with Mandriva, or other Linux games (fillets-ng, xlogical, etc etc).

Hope you enjoyed this trip through nostalgia lane with me.

18 January, 2007

The Sun finally shines again in the Flying Brick System.

The latest offering from Sun.

Well. After all my bashing about Solaris not working on brick (the K6-II@533MHz, Apollo MVP4 chipset, 512MB) I actually tried it on fatty (a Celeron Coppermine@766MHz, 256MB) and got the surprise of my life. It WORKS on here! And it works like I expect! So now I'm writing this from Mozilla under CDE, on Solaris 6/06. It seems to behave rather nicely, though I've yet to do some more customising. One other thing I've found though, is the lack of hard drive space. I only installed on to a 3.2Gb drive, so I'm missing some things I wanted to experiment with, like the Sun Java Application Server Platform.

The real deal.

Now to the reason I installed Solaris to begin with: I wanted to see how programs behaved on a real UNIX™, and not on a clone like Linux, nor on a BSD variant. Not that I don't like Linux or FreeBSD, merely that I wanted to try the closest thing I was ever going to get to what has always considered to be real UNIX™. Anyhow, I'll leave this as just a real short note so far. No point in boring people with the few small struggles I've had learning how to "mount" a cdrom, or how to even get X to show a picture. Suffice it to say I've dealt with those. Only things left are sound, automounting CDs, and SunFreeware. and even that's not desperately important. I seem to remember there was a driver for my sound chipset out there somewhere, so I might hunt through my IRC logs to see what's around. Sun's Freeware (of course) is available freely, so all I have to do is scare up enough room... hmm, how about a new hard drive, people? Say, oooo... about 20GB?


Cheers for now...time I went and played with CDE and all those wonderful things that make Solaris so unique. Now where did I put that DVD-ROM?