Efectos EspecialesRamblings, rants, musings, ideas and observations. Topics include (but are not limited to): programming (especially Python), books, games (especially CCGs and board games), astrology, design, writing, painting, etc.
#728 Use your Magi-Nation
I received a truckload of Magi-Nation boosters yesterday. This greatly improves my card collection; maybe someday I will be able to build decks.
(I'm late to the party, of course... this CCG has been around for a few years now, and isn't terribly popular (anymore), to the point where it's unsure if a new expansion will be released. Still, I think it's never too late to pick up a good card game. Especially with the deals you can find on Ebay these days.)
First geeky observation: The cards in the boosters aren't really random. A booster contains 1 rare, 3 uncommons, and 7 commons. However, the commons often appear in the same order (for example, Arboll - Weebo - Carillion - Orpus - Wellisk - Fire Flow - Tap Roots - Updraft, or Dream Balm - Pack Korrit - Diobor - Xyx - Cloud Narth - Vinoc).
Second geeky observation: Some site claimed that about 1 in every 5 boosters contains a foil card. That isn't true, or maybe my boosters have been scanned by the seller first. (Not unthinkable, since foils are valuable to collectors.) After opening 30 or so packs, I have exactly one foil. And as said, the distribution of the commons isn't really random, so I have a ton of certain cards, while other commons didn't appear at all so far (e.g. Staff of Hyren).
Anyway, if any of my readers happens to play this game (probably not), drop me a note and maybe we can trade some cards. All these boosters are from the Base Set, Unlimited.
If you want to know more about the game, this (not very well written) article talks about the various regions (minus Nar and D'Resh).
#727 Veren maken de vogel
#726 Firedrop build 20050119-2204 available
Note that the "invocation character" for reST is & (much like # for Textile and % for Sextile). To make the rest.py module work, you'll need docutils.
I will probably make a few more changes to Firedrop in the next few days.
#725 Left of the middle
As seen in comments to Bruce Eckel's Thinking in Ruby... not post...
For example, there is no need for a dozen ways to loop through a list or write down a condition etc., if you can do everything you want with simple for..in/while and if/elsif/else statements.
And if I have to read through the code from someone else, many constructs will look familiar to me, because I would have probably done it the same way.
But some perl programmers made me thinking if this is really the right way: One big reason why they like perl is because it gives them so many ways to express themselves.
People like a lot of options when they are creative, because they can write down what they are thinking, instead of reconstructing it so it fits into some kind of ruleset."
True, but on the other hand, restriction also fuels creativity. Also, you will need *some* kind of ruleset to express thoughts in. IMHO, it's better if this set is fairly concise... the smaller the number of rules, the easier it is to master the complete set. Although if it's *too* small, you actually lose expressivity.
To put it another way, I believe you're wasting brain cycles if there are too many rules, and you have to choose between alternatives that basically do the same, just look different. And it's also a waste if there are too few rules and you cannot express certain basic concepts concisely. Both extremes also make things harder to understand.
There's a sweet spot somewhere between having too few rules and too many, but there's a lot of disagreement about where this spot is.
This suggests that case statements are the norm, and that using dicts is merely an "emulation". In some cases (no pun intended), using a dict is actually more natural. If you have a number of values that should map to other values, for example. In that situation, a case statement could be considered a poor man's dictionary.
Keith does not seem to be overly enthusiastic, but I found this "language" (if you can call it that) extremely interesting. (OK, so I don't get out much...) The fascinating part is that this way of programming is so very different from conventional languages.
In the demo, the author writes a factorial function, which is admittedly rather clumsy. It's good to know that it can be written, but Subtext is probably more powerful with higher-level data structures. I don't even know (at this point) if it supports OOP or anything resembling it, but that would seem like a good fit... take an object, add an attribute to it, a method, maybe one to the "base class" to automatically affect all the "copies", etc.
I wish the site had a development version available for download. Maybe later. Anyway, it's definitely worth checking out.
#723 A journey of a thousand miles...
Not much to write about lately. But rest assured, I am still working on Wax, although it doesn't go very fast yet. I also started on some documentation. Here's a rough sample of what it might look like.
For each core control, I want to have the following sections:
- what does it do
- "styles", i.e. constructor parameters
- supported events
- common actions
- overview of methods (possibly on a separate page)
Besides that, there will be some sections explaining the basics of Wax: events, layout, pseudo-properties, the
WaxObject class, how to write your own widgets, etc.
There should be lots of working examples, "working" meaning that they can be run as standalone files. In fact, it should be possible to download them separately.
Anyway, this is an ongoing project (much like Wax itself), so improvements will appear gradually. As soon as some parts of it are usable, I will put them online.
[I will also post a list of things that I consider the "core" of Wax. Development will focus mainly on this core, and if you want to contribute, you are encouraged to take a look at it first, to see what could be improved. That is not to say that other areas of Wax will be neglected or abandoned; they just won't be the focus of my attention. More on this shortly.]
#722 Wax Sourceforge project
As usual, I ran into problems while fighting CVS. I imported the Wax source, and I can check it out using my SF account, but if I try to do so anonymously, it claims that module 'wax' doesn't exist. Great. Maybe it takes a little while before anonymous CVS gets updated? I don't know how it works.
I did manage to release a file (yay me!). If I can get CVS to work, this will be the new home for Wax... otherwise I'll look for a different place, or maybe keep everything on zephyrfalcon.org.
[Update #1] Anonymous CVS seems to work now. For now, use the
src module. (http://cvs.sourceforge.net/viewcvs.py/waxgui/src/)
[Update #2] I already received a donation through Sourceforge. Thanks to the anonymous user who donated.
#721 Linkdump 2005-01-09
- De grote pilstest. "Het is ons niet gelukt om alle bieren in een keer te testen."
- MoinMoinColorized. I am going to use a slightly changed version of this in some documentation.
- The Dinosauricon.
- The Kooks Museum. "As curator and founder of the first Kooks Museum in history I am fulfilling a half-life-long goal of housing kook ideas from all over the world under one crumbling roof."
- The Pycaml module. "A library written by firstname.lastname@example.org which follows the Python/C API as closely as possible, while providing equivalent functionality for objective caml. This is built against python 2.x and Ocaml 3.04. It is intended to allow users to build native ocaml libraries and use them from python, and alternately, in order to allow ocaml users to benefit from linkable libraries provided for python."
- Some useful French phrases. "Vos enfants sont très beaux. Ils sont adoptes?"
- Catster. "Welcome to Catster, where every cat has a webpage."
#720 European championships speed skating
Design and content © 2004 Electric Shock / Hans Nowak