wwwwolf is currently certified at Journeyer level.

Name: Urpo Lankinen
Member since: 2000-10-23 19:05:03
Last Login: N/A

FOAF RDF Share This

Homepage: http://www.iki.fi/wwwwolf/


Just Another Perl Hacker. See the home page for more information.

Personally, I don't go around joining big projects and making great big things; I merely write small things that help me to do whatever I want to do. I publish those things, wishing then that someone else might later benefit from those.


Recent blog entries by wwwwolf

Syndication: RSS 2.0
20 May 2003 (updated 20 May 2003 at 18:56 UTC) »

NeverBlender saga continueth! Today I learned that Blender in Windows indeed does support some sort of sys.path. Kind of lame sys.path but I can throw stuff in it. Just not do sys.path.append() and I'll be just fine.

So I proceeded to split up some of the code to modules. I originally wanted to keep all of the code in single file that can be easily opened in Blender and run, but it's not significantly harder to do things this way, I suppose, and writing other scripts may be easier also this way.

Following is yet another stupid language rant. Just ignore it, please.

I keep hearing "Perl is ugly and Python is clean and nice" all the time. Today, I've easily started to react to statements like that with disgust.

First of all, conventions. "Perl's sigils are ugly. So, Python uses no sigils." Yet, it's recommended to start private object variables with underscores. Underscores, people. Not just any sigil but the most ugliest and unreadable sigil imaginable.

Ages ago when I was learning C coding I read, from the guidebook, that "your #defines should not start with underscores because the library uses names like that." Me, in my youthful ignorance, said "oh, can I use two underscores? Bet that won't conflict!" Nope, it didn't - but it was horrible to read. And Python wants me to use that sort of stuff to name my constructors. def __init__(): print "Yuck."

"So," says Python, "are you ready to make your ugly Perl more beautiful?" Wait. Does Python do private instance variables? "Nnnno. It's just a convention that you name stuff this way. It doesn't enforce data hiding." Then it's just as ugly as Perl. "Eh, Yes." Well, at least I have 'self' reference and I don't need to pass references to the object to every damn one of my methods? "Er, no. First parameter is a reference to self."

Hrm, "no confusing 'bless' function, 'class' keyword defined instead" doesn't equate "more convenient OO than Perl"...

Now, I just need to figure out why the heck I spew out this same stupid tired rant every time I touch Python objects. =)

(Update, a little while later: Also discovered Python doesn't do method overloading. Bet my scream was heard back home, across the country.)

Not done anything remarkable for a while. Small scraps of Perl and Ruby for doing mundane trash.

And then. The big project I've been doing for a while is called NeverBlender.

A script for exporting Blender models to Neverwinter Nights ASCII model format. Supports mesh geometries, NWN special properties, texturing (including UV coordinates), and per-face shading. Cool, eh? Quirky as hell, but it works already.

Written in programming language I mildly dislike due to its reaction to my karma and its infuriating documentation. Written mostly in that ungodly operating system (Strangely not crashed, even when the app has done that a few times). The script was mostly written the application's own text editor that's not among the greatest text editors built (Can you imagine writing code when you can't use brackets or other required symbols except through copy-paste?)...

So what have we here? A program mostly for Windows users (because most of the Neverwinter Nights custom content creation tools, incl. the toolset and the hak editor, work best in Windows). A program in Python. It manipulates relatively undocumented NWN data files. I'm no Windows guru, I'm no Python guru, I'm not a Blender guru, I'm not a 3D graphics guru, and I'm no Neverwinter Nights Custom Content Dude. But hell, I've made the thing to actually work somewhat. Should I be happy of this little accomplishment?

I have to admit Python is actually nicer than I remembered. But I would still pick Ruby over Python any day if I'd do some scripting in a language that's Not Perl. =)

16 Nov 2002 (updated 16 Nov 2002 at 22:36 UTC) »

Previously, did a small release of Vocoditor and did some work on the new release that'd actually support custom tags.

(Apologies if this is vastly inaccurate or inelegant, I'm really tired.)


People talk about Integrated Noding Environment in Everything2.com.

Ahem, I'm not a Guru, but I just did my step toward that goal. I finally got fed up with XEmacs' "don't mess with user's auto-fill-mode setting from file local variables" policy, and wrote a major mode for this baby that does very little else except provide something ELSE besides text-mode to work in. If it isn't text-mode, it can't turn it on in the text-mode hook, right? Right! As an added bonus, I added link syntax coloring.

Too bad this is fairly GNUEmacs-like still... I noted xemacs has even more funky stuff.

Oh, by the way, why people call Perl ugly, when Emacs regexes are twice uglier? It's late in the night, so I couldn't figure out a beautiful way to say this:


Which is Emacs string slang, meaning roughly


Which in turn is


in Perlese. I particularly find it disgusting that [] has syntactical meaning, \[\] is literal, while () is literal, \(\) has syntactical meaning.


Not letting this to be downloaded just yet. It'd rock to actually add sumbission thing and stuff. =)

Perl shit: finally made EveryLecture script to work better - now it handles stuff like headings better and probably will not make Festival's SABLE parser to get confused and die everywhere. The only problem is that I split up the E2 client part to other file - and it's actually a package that could, in time, be put to cpan or something. except that I'm not a hero like that, just a lousy coder. and it's just a trivial wrapper for LWP anyway. if it one day has OO interface to E2, then I may be put it to CPAN, or quit using silly abbreviations everywhere. it's a problem because I can't really node a multi-file package that easily in e2, and making a node that just refers to a dl site is Improper. *sigh*

Okay, I took a dip into the wonderful new world of GNOME 2.0, now that the stuff is finally in Debian. I finally have an original (?! not really) idea for an application (will tell of that later) and I wanted to try out GNOME 2.0 because someone hinted that the libgnome API is now stable "forever".

Return of the Horrors from the Docu-land

Jeez. Why every time I try to touch anything, it's always horribly documented? The HTMLs that come with Debian are not exactly a promise of a better environment, and developer.gnome.org has Good, Honest Documentation for everything else except libgnome/libgnomeui. I did find a porting guide that got me through the confusion of setting up the build stuff (note to self: srcdir=. USE_GNOME2_MACROS=1 gnome-autogen.sh && make). Still, I guess I will be reading existing code and not good API references...

I guess it will once again take a lot of time to get used to GNOME 2. I guess I'll wait for next edition (if there is one) of Writing GNOME Applications book.

36 older entries...


wwwwolf certified others as follows:

  • wwwwolf certified che as Master
  • wwwwolf certified wwwwolf as Journeyer
  • wwwwolf certified tigert as Master
  • wwwwolf certified ajk as Journeyer
  • wwwwolf certified xach as Master
  • wwwwolf certified juhtolv as Apprentice
  • wwwwolf certified jwz as Master
  • wwwwolf certified rms as Master
  • wwwwolf certified premchai21 as Journeyer

Others have certified wwwwolf as follows:

  • wwwwolf certified wwwwolf as Journeyer
  • novalis certified wwwwolf as Apprentice
  • ajk certified wwwwolf as Apprentice
  • xach certified wwwwolf as Apprentice
  • nymia certified wwwwolf as Apprentice
  • lerdsuwa certified wwwwolf as Apprentice
  • ksandstr certified wwwwolf as Apprentice
  • nooks certified wwwwolf as Apprentice
  • brother certified wwwwolf as Apprentice
  • shd certified wwwwolf as Apprentice
  • juhtolv certified wwwwolf as Apprentice
  • andersca certified wwwwolf as Apprentice
  • jarod certified wwwwolf as Apprentice
  • realblades certified wwwwolf as Journeyer
  • jono certified wwwwolf as Apprentice
  • fxn certified wwwwolf as Apprentice
  • premchai21 certified wwwwolf as Journeyer
  • Mysidia certified wwwwolf as Journeyer
  • Rockwalrus certified wwwwolf as Journeyer
  • pasky certified wwwwolf as Apprentice

[ Certification disabled because you're not logged in. ]

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!

Share this page