Name: Urpo Lankinen
Member since: 2000-10-23 19:05:03
Last Login: N/A
Homepage: http://www.iki.fi/wwwwolf/
Notes: 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.
20 May 2003 (updated 20 May 2003 at 18:56 UTC) »
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.)
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) »
(Apologies if this is vastly inaccurate or inelegant, I'm really tired.)
Now...
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:
"\\\[\\\(.*?\\\06134\\\)?\\\(.*?\\\)\\\]"
Which is Emacs string slang, meaning roughly
\[\(.*?\134\)?\(.*?\)\]
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. =)
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.
wwwwolf certified others as follows:
Others have certified wwwwolf as follows:
[ Certification disabled because you're not logged in. ]
FOAF updates: Trust rankings are now exported, making the data available to other users and websites. An external FOAF URI has been added, allowing users to link to an additional FOAF file.
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!