Tao of the Machine

Programming, Python, my projects, card games, books, music, Zoids, bettas, manga, cool stuff, and whatever comes to mind.

On astrology

In my next attempt to destroy any credibility I might have in the programming community, I will start discussing astrology on this weblog.

I am not interested in discussions about whether astrology is possible, or how it could be possible. Astrology works for me (or at least some parts); if it doesn't for you, or you don't want to hear about it, then you're free to skip the posts in this category.

Over time, I will try to explain some of the basics of astrology, debunk some myths and misconceptions, and offer some of my own thoughts and theories (which are not necessarily the same as the conventional astrological notions).

This is a difficult topic, not only because it's controversial, but also because There's More Than One Way To Do It. N people often have N ideas about astrology, frequently incompatible with each other. And there's no real way to "verify" things. Most of the astrological ideas come from personal experience.

Is astrology a science? I don't know. It obviously isn't an "exact" science like physics, mathemathics or chemistry. I think it's more like psychology and sociology. Is psychology a science? Some think so, others don't.

I am mostly interested in the branch called "psychological astrology". I don't do the prediction stuff, and find mundane astrology only mildly interesting. In other words, I think of someone's horoscope as a psychological profile, or maybe a template. Planets represent certain energies. Signs represent ways in which energy can be expressed. Houses represent the areas of life and society affected by the planet-in-sign combos. More about this later.

Posted by Hans Nowak on 2003-10-02 15:34:27   {link}
Categories: esoterica

PC games just suck

PC games just suck. It's no wonder consoles are so popular. You buy or rent a game, pop it into your gaming system, and it just works.

Compare this to the sorry state of PC games. If I try a game that's too new, chances are my 3D card isn't up to snuff ("sorry, you need at least a Doodoo AGP 2004 to run this game"). Or I need more memory, otherwise the game is dog slow. On the other hand, if the game is too old, problems are likely to occur as well. "Sorry, needs Windows 95/98." (I have Windows 2000.) "Sorry, needs DirectX 6 or later." (I have DirectX 8, but apparently the "old" game doesn't recognize that.) You can forget about games that are even older... from the DOS era. Strangely, your chances are better when the game is from around 1991 or so... you might need something like MoSlo or VDMSound, but you're less likely have problems with EMS, XMS, protected mode, obscure Sound Blaster configurations or video card, etc.

If you think I'm exaggerating, here are a few games I've tried. Age of Wonders/Shadow Magic? Requires 3D card. Alice? Requires 3D card. Civ 3? Needs more memory. Requiem? Needs Windows 95/98. Microprose Magic? Needs Windows 95/98. Serious Sam 2? Very unstable. Doom, Quake and Duke 3D didn't work well until special Win32 versions were created.

With lack of stability like this, I'm really not buying PC games anymore... you spend $40 or more, then find out the game doesn't work, and you usually cannot go back for a refund.

I would love to insert a remark here about the good old days and how everything used to be better, but I really can't... Ever since I used PCs (1991) I recall having problems with games... incompatible video cards, configuring sound card, not enough memory, not the right kind of memory, processor too fast or too slow, etc.

One area that does seem to be flourishing is emulators. If you can find a decent emulator for a given system, and ROMs, then you're all set... tons of good games await you, and they all work! (Assuming the emulator deals with them correctly... that's why I said a *decent* emulator. :-)

Posted by Hans Nowak on 2003-10-01 13:02:50   {link}
Categories: games

Betta roundup

They had the most gorgeous orange betta at Wal-Mart today... it's the first time I actually see an orange in real life; I've seen them on the Net, but the stores around here haven't been carrying them. (This was a real orange, not perfect, but not faded-out like they have them on some sites either.) Lately they only seem to have the "common" colors anyway... red and blue, and mixtures. I see the occasional emerald green, but no whites and yellows, and certainly no blacks and oranges.

I didn't get the fish though, because it was one of those "vase" bettas... you know, a vase with a plant, and then a fish in it. 30 bucks is a bit steep if you only want the fish. The "manual" claimed that the betta would eat the algae that form in the vase... I've never heard of this, bettas are carnivores and not algae eaters. To their credit, the little paper also said that you have to feed them pellets. (Some bettas-in-a-vase are sold under the (obviously incorrect) assumption that you don't have to feed them at all!) Still, it would probably be best to move the plant elsewhere and use the vase as a fishtank.

Aquabid has oranges and yellows and much more, but I currently cannot afford $30+ for a fish. Not many people would want to spend that amount of money anyway, I suspect.

By the way, here's an informative betta forum on Delphi.

Some weird stuff seen when skimming over their topics:

  • crunching -- yes, many of my "baby" females do this as well. It's really strange, it sounds a bit like pieces of glass... it's also possible that it's the sound of the pellet against the glass of the jar.

  • halloween bettas -- orange and black. Hard to come by, unless you know a breeder.

  • sleeping bettas -- not all of them show obvious sleeping behavior, but I've seen fish that seemed "dead" until they decided it was time to take some more air.

  • fish prices -- yes, they can be quite high if you order from breeders. It's usually only worth it if you're a serious breeder yourself, and want bettas that are genetically "perfect", and/or if you want any fancy color combinations. (I've never seen a mustard gas or a salamander at Petsmart, for example.) If you don't care much, the $3 fish from the local petstore will probably do just fine.

  • film on the water -- some fish seem to have this, or maybe some bowls. I wonder if it's dust. They all get the same food, so that can't be it.

(Well, it was time for a post about something else than Python... :-)

Posted by Hans Nowak on 2003-09-30 23:18:26   {link}
Categories: bettas


New versions of Wax and Charm are available in the download area. (What is Charm?)

One might wonder what the deal is with all these unfinished and unstable projects. :-) The situation is, that they are not ready yet for prime time... they have missing features, possibly glaring errors, unrefactored code, etc. However, they are usable. Charm isn't quite done, but I'm using it to edit my code, also for work, and I've been doing so for several months. The same for Firedrop... I have been managing this site with it for a few months now. Both of them use Wax, which is even further away from a 1.0 release, but which happily powers these programs nonetheless. Oh, and then there's Testipy and Sextile...

So, I hope that all these projects (and some others) eventually will earn the "stable" status. With help from others, this will go a little faster; but while contributions are greatly appreciated, the projects will still live without them.

In the meantime, if you write code based on a certain Wax version, it may be safer to keep that version around... backward-incompatible changes *may* occur in the future. I will try to keep this to a minimum, but the version number is 0.1.x for a reason. :-)

Posted by Hans Nowak on 2003-09-29 23:58:28   {link}
Categories: Wax, Charm

Pyzine revival

Pyzine Migration and Relaunch FAQ. Also of interest: Write for Pyzine. I wrote an article for Py 1.4 (which was never released); I wonder what will happen to it. If it doesn't get published, I suppose I can put it on my site.

Update. According to Mark (?) from PyZine, they still plan to publish the article.

Posted by Hans Nowak on 2003-09-28 02:08:42   {link}
Categories: Python

A dead simple options system

I added a new options system to Charm. It's easy and powerful. Here's how it works:

1. Write a file options.py:

class Options:
    def __init__(self, **kwargs):
    def extend(self, **kwargs):
        for key, value in kwargs.items():
            setattr(self, key, value)

options = Options()

# some example default values
options.width = 80
options.title = "My title"
# etc...

# create sub-categories
options.python_syntax_coloring = Options(

The Options class is just a placeholder to store attributes... the __init__ and extend methods are for conveniently adding a lot of values.

2. Use the options module from other files:

from options import options

# later...
if options.text_bold:

3. It's easy to support user-defined "profiles". In this case, those are just Python files, usually put in a special directory. Here's the method that loads them:

def load_profile(filename):
    namespace = {
        'options': options,
        # define variables here that can be accessed 
        # from the profile
        execfile(filename, namespace)
        print >> sys.stderr, "Error executing profile: %s" % (

As said, a profile is just a Python file, and all it does (or *should* do, rather) is set options. For example:

# profiles/mycolors.py
# My color preferences.

c = options.python_syntax_coloring
c.default = 'black'
c.string = 'yellow'

options.editor_background = 'white'

Adding a command line switch to load profiles is left as an exercise to the reader.

It's late... I hope this made sense. >_< It's nothing spectacular, but it's an easy way to set an application's options. I used to mess with dicts, ini files, and such... I like this approach better. It will probably be clearer once you see Charm's option list, which contains just about everything that can be set from inside and outside the program... syntax highlighting, sizes, colors, editor settings, etc. I needed a decent way to handle all this, *and* make it easy for (power) users to set their own preferences.

Posted by Hans Nowak on 2003-09-27 00:24:13   {link}
Categories: Python

Generated by Firedrop2.