Tao of the MachineProgramming, Python, my projects, card games, books, music, Zoids, bettas, manga, cool stuff, and whatever comes to mind. |
Front page Last 10 archives 2003-05-31 2003-06-07 2003-06-14 2003-06-21 2003-06-28 2003-07-05 2003-07-12 2003-07-19 2003-07-26 2003-08-02 Category archives bettas books CCGs Charm esoterica Firedrop games general ideas internet Kaa linkstuffs Lisp manga music Mygale Nederland nostalgia programming Python SGI switch Wax Zoids :: Search All posts ...by category ...by date ![]() :: About me :: Oasis Digital :: Resume :: GeoURL :: RSS :: Atom ![]() ![]() |
Anti-pitfalls?My Python pitfalls article seems to be a popular read. It's written from a somewhat negative viewpoint: things that can go wrong. (Of course, that's useful; you're never going to do these things wrong again. Right? ;-) To counter-balance this, I think there should an article with a more positive viewpoint as well. So I was wondering, if I could collect 10 "anti-pitfalls"; parts of the Python language that are especially clever, elegant and intuitive. By "clever", I don't mean "a clever hack", or "clever code", which is not always a Good Thing; rather, I mean clever design that is present in the core Python language. The ability to loop over just about everything, in a consistent and intuitive way, may be an example of clever design. Try doing that in Pascal, C or Java. Let me know if you have any suggestions for anti-pitfalls. Simplicity counts, I am not looking for obscure corners of the language. .hack//infectionQuite an interesting game. It's yet another RPG, but with an innovative twist: it pretends its an online multiplayer game. Pretends, because the PS2 isn't really going online (although it's apparently capable of it), yet it plays like a MMORPG. How does that work? First of all, you have a "desktop". Here you can read mail, work with "data" (load/save games), read news, and start the pseudo-online RPG called "The World". There are a lot of NPCs in this game, and you can talk to them or trade with them like in a real MMORPG (or so I assume -- I've never really played one :-). To make things more realistic, whenever you log on you see (mostly) new players. Some of them can become your friends, and you get their "member code" to join a party with them, and start a quest. .hack does a good job of faking the online aspect. When you leave The World, you might have new mail from people you met; or maybe somebody posted to the bulletin board, answering your questions, or providing a new quest. Still, it's an RPG, so you do the usual... create parties, fight monsters, pick up objects, explore dungeons, go on quests, etc. The game uses an unusual world creation system... there are "keywords", that can be combined to form a key to enter a world. Gluing random keywords together works, but can be a dangerous business, since the choice of words affects the terrain, monsters, and difficulty of the world being created. I will only be able to play this game until Saturday (then it goes back to Video City), so I won't be able to finish it or even see most of it. That will prevent me from getting bored with it, and my daughter from humiliating me by beating the game in a couple of days. The offcial site is here. By the way, there's also a manga of .hack. Not sure how close it sticks to the game's plot. 10 Python pitfallsis the name of an article I just wrote. It's late, so it's quite possible that it contains typos, blatant errors, oversights, and the like. If you have a suggestion for The elastiC languageelastiC. Quite an interesting language; Pythonic in many ways. At first glance, it seems to combine some good stuff from Python, Perl, Smalltalk, Lisp and C. Yet (again at first glance) it doesn't seem as kludgy as Ruby. Then again, what do I know... :-) Can it compete with Python? Not yet, IMHO. What's missing, for example, is an extensive standard library. I also don't see an interactive interpreter (great for experimenting). And, it seems to be biased towards Unix. That's not surprising, since it's probably the platform it's being developed on. However, for me to seriously consider it, I'd need a Windows version that is up-to-date and full-featured. But, let's see what I can do with it on Cygwin... Update: So far, all attempts to compile elastiC under Cygwin and Mac OS X failed. Freebie daysDe Telegraaf: Nederlanders hebben weinig vakantiedagen. (This roughly translates as: Dutch get few days off.) How many days off do they get, then? On average, 28 days a year. Hoh hoh... here in the US, a well-paying job gives you 10 days a year or so... and you usually don't get them immediately, but only after you've worked there for a year (or two). (I'm basing this on the experience of people I know and job offers on Monsterboard and the like.) When you do menial work, you often don't get any days off at all. (Yah, there are official holidays like Christmas, Easter, 4th of July, and some typical American ones like Veteran's day, President's day, and Free days are much better in the Netherlands, and the same goes for benefits... you automatically get insurance, build up pension, and can get (some) compensation in case you get sick or lose your job. In the US, you only get this with certain jobs. On the other hand, taxes are *much* lower here. How would the average American feel about giving away 38% of their wages? Or maybe 50% or more if you make a lot?
Posted by Hans
"'t is niet goed of 't deugt niet"
Nowak on 2003-08-12 00:15:35
{link}
Categories: general Another silly Python/Windows hackI don't know about you, but I find Windows terrible for serious file management. There's no decent command shell, and if you use something like 4DOS or 4NT it's often a pain to deal with ultra-long filenames and names containing spaces. On the other hand, moving files around in explorer only gets you so far. What I miss, for example, is an easy way to move a file to its parent directory. In a shell, that's easy enough: move filename .. But in explorer, there's no such beast. You can move a file to a folder, but the reverse operation takes a few steps: select, cut, move to parent folder, paste. Too many steps for a lazy hacker. ;-) So today, we're going to do two things: write a Python script that moves a file to its parent directory, and associate this script with "any file" in Windows. Writing the Python code is easy. This version uses the Windows API to move the file: # moveup.py # Moves a file to the parent directory. import os import sys import win32api path, file = os.path.split(sys.argv[1]) parent_dir, dir = os.path.split(path) if parent_dir != path: dest = os.path.join(parent_dir, file) win32api.MoveFile(sys.argv[1], dest) (I haven't tested this code extensively. Let me know if you encounter problems with it.) Now, associating this script with just one file type in Windows isn't very useful. So we're going to use it with any kind of file. This requires a registry hack. (The usual disclaimer applies... do this at your own risk, I'm not liable for any damage to your computer, etc. If you're not comfortable with editing registry keys, maybe it's better not to proceed.) Start In Shell, create a new key called "Move up" (or whatever you want to call it). Double-click on the value called "Default", then enter "Move up". Create another key here (a sub-key of "Move up"), called "Command". Double-click the "Default" value and enter something like c:\python22\python.exe c:\scripts\moveup.py "%1" That's it. If all went well, all files should now have an option "Move up" in their context menu. Right-click any file to find out. Once you get this to work, the upload script becomes a lot more useful too (obviously because it lets you upload any file, not just a specific kind of file). Note: This construct only works for files, not folders. To make that work, you probably need to associate the script with the "Folders" key, but I haven't tested this.) References/further reading: -- Generated by Firedrop2. |