• Skip to site navigation
  • Skip to content
  • Skip to sidebar
  • Skip to footer
  • Go to archive page
Shadowmaster’s Lair
  • Home
  • Projects
  • Articles
  • About
  • Contact
  • Blog

Building bots, introducing Rei2

Thursday, September 30, 2010

Those who frequent my personal and Wesnoth-related IRC channels on freenode may have met Shikadibot before, but very few people have actually seen the mess that lies beneath its friendly user interface.

Shikadibot is, simply put, a shitload of hacks put together by someone who didn’t know better at that time — that someone being me. “Inspired” by Rhonda’s Wesbot who watches over the main Wesnoth channels, I quickly wrote Shikadibot around the middle of 2008 with nary a clue of proper Perl coding. I learned as much Perl as I needed to implement the bot’s basic functionality, and certainly not in the most orderly fashion possible. This bot is basically unmaintained and feature-frozen nowadays because I can’t be bothered to try to make something out of that mess.

And yet I felt compelled to revisit this old project and create something new and better using the same basic ideas.

Some days ago, I started to work on a new Irssi-based IRC bot under the codename “Rei II” (Rei2.pl) and building its components from scratch while trying to keep my Perl as elegant as possible while still taking advantage of advances techniques that’d have made maintaining Shikadibot much easier if I actually learned them back then. Most of the knowledge I’m applying comes from different Perl programs I wrote after Shikadibot, such as umcreg and a few random scripts for the Wesnoth-UMC-Dev Project.

I’d dare say that this is coming out nicely so far since I could quickly implement a small framework for the bot and seamlessly wire it into Irssi, and now I’m busier working on the fun stuff: the actual bot commands and functionality.

I’m not revealing the source code yet (boo!), but I can say that so far I have implemented the following aspects, cleanly and successfully:

  • “Hi” command (well, duh).
  • “Help” command (stub only though).
  • Acronyms look-up inspired by NetBSD’s (et al) wtf(6) utility.
  • Manual page abstract look-up using whatis(1), also inspired by the above.
  • Mathematical expression evaluation using GNU bc(1).
  • Dice-rolling with “d<no. sides>”, suggested by SpookyMagician on IRC.

Due to my involvement in two projects that been trolled by FSF fanboys, I have decided to publish the sources of this bot framework under a BSD-style license instead of the usual deal, since the terms of the GNU General Public License seem to be designed to provide whiners with the fuel they need to keep software developers busy with legalese instead of matters lying within their actual area of interest (id est, programming). After hearing of the FSF’s extremist views on certain issues, I don’t think I’ll use the GNU GPL again in much stuff, if at all.

Posted in IRC, Personal, Rei 2 IRC Bot, Software at 06:51 UTC | No comments

Not a bug

Saturday, September 25, 2010
04:24:07 <Unnheulu> Cool
04:24:17 <Unnheulu> If I press enter in Wesnoth it tells me "the end" :D
04:24:23 <Unnheulu> s/enter/alt+enter/
04:24:55 <Unnheulu> Well, on the title screen at least...
04:25:18 <shadowmaster> cool bug, isn't it?
04:26:12 <shadowmaster> Unnheulu: now go report it, since mordante doesn't read this channel and I don't think any of the members of the audience is going to be a carrier pigeon for this.
04:26:31 <Unnheulu> shadowmaster, uh? Bug?
04:26:45 <shadowmaster> no, it's a feature. my bad.
04:26:59 <shadowmaster> a very cool feature, while at it.
04:27:16 <Unnheulu> Totally :)

This is the complete, verbatim record of a little exchange I just had on the #wesnoth IRC channel on freenode around 15 minutes ago — all timestamps are UTC-04:00 per my geographical location.

Getting involved in conversations like this isn’t good for my faith on human user intelligence.

Posted in Miscellaneous, Wesnoth at 08:29 UTC | 1 comment

My love-hate relationship with laptops

Sunday, September 19, 2010

There are quite a few people out there trying to brainwash their audience and convince them that laptops are, somehow, an invention of the Devil, and that they are only shiny pretty toys intended for bragging about them more than working with them, and that any serious work is to be done always on a desktop computer.

I don’t agree.

While I’ve got quite a history of pain and failure with my laptops on Linux, this is all related to the unfortunate tendency of my family to buy any kind of artifacts without researching the available models, their pros and cons, past consumers’ experiences, etc. If I actually had the time to choose my laptop on ’Xmas 2008, I’d not have gone through the long and convoluted road towards 100% Linux compatibility — on which I’m still stuck, around 95%.

My last two computers are regular laptops, and they are preceded by an OEM-built desktop that is pretty much useless at this point, better known as Blackcore. That annoying can of crap served me well at the beginning for various tasks, including drawing, writing and compiling software, watching TV or DVDs, listening FM radio, gaming, and general tinkering with Linux (openSUSE 10.2 and 10.3). Of course, I also used it for doing my homework whenever I didn’t have any other option. :Awesome:

But then, I got my first laptop, Greycore. I started to appreciate the possibilities of wireless Internet through Wi-Fi, the ability to watch videos or work on stuff in any location (including my bed), and the safety granted by the battery supply whenever black-outs are imminent (storms, etc.). Through mobility I also became a regular contributor to Battle for Wesnoth, and that continues to be the case even nowadays.

Since getting Bluecore in particular, my usage of the poor broken desktop box drastically diminished, in part due to the larger storage capacity — Greycore had a 80 GB HDD, and Bluecores has 250 GB. The 2 GHz dual-core AMD64-capable processor also helps, despite my desktop has an older 2.6 GHz Intel Pentium 4 with Hyperthreading technology. In practice, Bluecore’s performance and capabilities are on par (and even surpass in some cases) with Blackcore. Of course this is a moot point if I compared it with newer desktop systems, but why bother?

Why should I bother to get a desktop, if I’m already comfortable using my laptop? The keyboard is softer than the desktop’s, it has a decent display size (1280x800 vs. Blackcore’s 1280x1024), it doesn’t have any annoying wires, I can play movies with it (connecting the desktop’s speakers whenever possible), it can burn DVDs and CDs, it has a 1-slot multicard reader, three USB ports that suit most purposes without needing an additional hub, it can connect to the Internet through WLAN or using my USB modem, it does hardware virtualization so I can run many different operating systems with VirtualBox, it has 4 GB of RAM (used to be 2GB, and Blackcore has 1 GB), the PCIe ATI Radeon HD 3200 is pretty good in comparison to the other onboard GPUs I have used (ATI mayhem notwithstanding), I have enough disk space to do anything I need, and more; and most importantly, I can carry it around to work on anything and anywhere.

If you are a humble computer user like me (regardless of expertise level), and you don’t really require the full power of a bulky desktop machine, and mobility and versatility are your priorities, you’ll most likely feel at ease with a notebook-laptop.

I have not addressed netbooks on purpose, since I don’t own any of those yet. However, I see some potential in acquiring one since I occasionally don’t need the full power (and weight!) of Bluecore, i.e. when going out for a drive. In such occasions I’ll be mainly interested on being able to quickly check my email inbox, the Wesnoth forums, and IRC, instead of running CPU-intensive software (I’m looking at you, Wesnoth game client!). Whenever I get an opportunity, I’ll get one, regardless of what certain people out there could say about it. I don’t consider myself a consumerist, nor I intend to become one, but I’ll always lean towards the aforementioned mobility and versatility for my specific purposes, even if that involves accepting the platform’s limitations.

So, don’t let either band brainwash you: think about your needs first, and about your peers later!

Posted in Hardware, Personal at 05:41 UTC | No comments

A brief history of the site layout

Saturday, September 11, 2010

Today I was talking to Gambit on IRC about web design, sharing some of the things I’ve learned as an amateur/wannabe web designer over the time, which reminded me of the multiple changes that this site has gone through since its conception circa 2006 thanks to rewound.net’s hosting, kindly provided by Grafix of the Public Commander Keen Forum through NearlyFreeSpeech.net.

With the intention of showcasing my progress on the web design area, I have prepared a small picture gallery with Konqueror’s help, collecting some screenshots I have lying around in my home dir.

  • Dorset evolution gallery

A detailed historical explanation follows.

Continue reading “A brief history of the site layout” ›
Posted in Miscellaneous, Personal, Site updates, Web design at 18:44 UTC | No comments

Rent-a-Mod

Wednesday, September 8, 2010

The Wesnoth users community has always been rather special compared to other gaming groups. The forumers are usually civilized, they respect the Posting Guidelines, rarely start heated discussions on their own, and follow our moderators and developers’ orders and recommendations.

The development team, our current moderators and I are usually around to help with any thread requiring moderation. Such a pacific community doesn’t require maintenance work like that very often, not counting the insatiable spam generators that never stop coming to attempt to plague the forums with cheap search engine-feeding signatures and gratuitously large ad-posts.

However, a rather recent phenomenon is that of Rent-a-Modding. There are some members who seem to think, consciously or not, that forum moderation works by following a tight set of rules resulting in mechanical procedures fitting every possible situation, derived of course from our Posting Guidelines. Other users attempt to answer to forum posts authored by newbies, by guessing what a developer or moderator would say in such situation, or by copying past moderator reactions.

The behavior I’m describing here is commonly known as backseat-modding, and as Urban Dictionary puts it (mature/NSFW language), they are, effectively, a pain in the ass for actual mods and admins, but it’s not because they look like wannabe-mods, but because most of the time they are doing it wrong!

As I was saying, moderators don’t really follow strict rules to decide how to react to a particular situation, since every situation involves completely different contexts which depend a lot on the poster’s background and past behavior — there is, after all, a reason for handpicking Forum Regulars who might fit the job. This is what makes Rent-a-Mods annoying in the first place, since they can easily give out a really bad impression of our community and standards, scaring away newcomers and spreading bad words about us in other corners of the ’net.

Taking a wild guess of what a Developer will say to a poster regarding a specific development issue, such as Wesnoth’s future plans, or why problem X has not been fixed yet, or why feature Y is apparently never going to be implemented, is also a really Bad Thing™ since it wastes our time correcting the spreading misinformation before it gets stuck in people’s heads. There has been a lot of random guesswork regarding recent problems such as the supposed GNU General Public License violations by the iPhone/iPad port creator and distributor, or why a complaining poster has been banned from the multiplayer server(s) — hence we had to ban both to keep things orderly and avoid the development of useless time-consuming arguments.

In case I’m not getting my point across:

DON’T DO IT. IT’S NOT USEFUL FOR ANY OF THE INVOLVED PARTIES. LET THE MODS DO THEIR JOB.

Thanks for reading. I’m fairly certain that this post might not provide a clear enough answer for cases such as this, but I don’t feel like writing a longer and thorough rant at this moment.

Posted in Miscellaneous, Wesnoth at 16:33 UTC | 1 comment

The problem with partitioning: Part II

Saturday, September 4, 2010

Not very long ago, I posted an entry regarding some arguably bad installation decisions when I partitioned bluecore’s hard disk for installing Debian. Some weeks ago, I finally decided to risk it all and fix those problems, with the guarantee that if I screwed up like I did multiple times in the past with other installations, I could just restore from a rsnapshot backup stored in the external hard disk I bought earlier this month.

The real dilemma was settling for a new, permanent scheme, keeping performance in mind more than protection against physical or logical failures since I can just put my backups to use nowadays. Part of this dilemma involved choosing the right partitioning tool, after having really bad experiences both with the fdisk tool for Linux, and command-line based GNU parted.

This time I chose the smallest tool that fitted the task, also making sure I would feel comfortable with it previous to doing the real thing, by trying it out with VirtualBox’s help: the GParted Live CD, built around a minimalistic Debian Sid-based system with the GParted front-end on top of a small X server with the most complete toolchain for doing all sorts of funky operations on partitions containing some of the most popular filesystems, such as Ext2, Ext3, Ext4, ReiserFS, NTFS, FAT12/16 and FAT32/VFAT.

Although its X server is not accelerated and the default Fluxbox config doesn’t have opaque window moving disabled as it should, it’s a pretty neat tool for modifying unmounted partitions with the help of a friendly GUI, avoiding all the hassles and risks involved in toying around with the disk containing rootfs and other important filesystem on a running Linux installation — the impossibility of changing rootfs’ parameters and geometry in any way when the system is online is also eliminated with this procedure.

Continue reading “The problem with partitioning: Part II” ›
Posted in Hardware, Miscellaneous, Personal at 06:34 UTC | No comments

Approaching Spring

Friday, September 3, 2010

Plum blossoms, the false hope of life
Rain, the reflection of infinite sadness
The sky, the unique embodiment of loneliness
A dog in the shadows, the instrument of Death.

Update, and a thorough analysis:

This piece of text that only a foolish one would dare to call a “poem” happens to be my first serious poem-y output ever in my life, and I got the inspiration — if you want to call it that — from staring at the light rain this Wednesday around 3 to 4 pm at home, with the cloudy sky lingering above, a plum tree in front of me with new blossoms, and a dog in the shadows looking at me directly to my eyes, in an improvised kennel after murdering one of our cats while we weren’t at home — in particular, one who was pretty smart, if not a little bad tempered. She was, nonetheless, one of my favorites, and the other cats and I still miss her.

I’d say that the gorgeous view in front of me reflected more than just my emotional state at that particular moment, but instead something I’ve been trying to cope with for years already. Being a technology freak as I am, I rarely stop for a single moment to look at the wonders nature has to offer. In this opportunity, watching myself reflected in this rare scenario was a priceless experience, and it made me discover this hidden “poetic” side of myself, alleviating my hopelessness.

The original piece I muttered in Spanish follows:

El ciruelo en flor, la falsa esperanza que es la vida
La lluvia, el reflejo de mi profunda tristeza
El cielo, único e infinitamente amplio, la representación de mi infinita soledad
El perro en las sombras, el instrumento de la Muerte, que tanto temo.

Although my first revision of this post presents us with the piece at the start, it’s not a 1:1 translation to English, mostly due to the omission of all first-person references:

The blooming plum tree, the false hope that is my life
The rain, the reflection of my deep sadness
The sky, unique and infinitely vast, the representation of my infinite loneliness
The dog in the shadows, the instrument of Death, which I fear so much.

It’s very unusual for me to share my feelings with anyone else (not really having anyone else in the first place), but maybe it’s something I need to do more often. The last verse conveys my authentic fear of death — not as something that I don’t want to face at the end of my life, but as something that can harm me while alive, taking away those who I love the most. While this has probably been my sentiment for years already, I had never externalized this and other feelings.

Thanks to everyone who’s put up with this brief moment of emo-ness.

Posted in Miscellaneous, Personal at 01:03 UTC | 3 comments
Page 1 of 1, totaling 7 entries
‹ September ’10 ›
Mo Tu We Th Fr Sa Su
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30      
  • Recent posts
  • Archives
  • RSS/XML RSS 1.0
  • RSS/XML RSS 2.0
  • Atom/XML Atom 1.0
  • RSS/XML Comments
Twitter: @shikadilord
  • Okay, that failed spectacularly. Go back to your regular schedule, #Wesnoth forum users.4 days ago
  • Not to alarm you, #Wesnoth people, but I'm going to break your forums for a few seconds!4 days ago
  • Who cares about #Wesnoth 1.10. I'm a developer, I use trunk! http://t.co/upxww27M6 days ago
  • Goodbye, #Wesnoth 1.8!6 days ago
  • I knew I missed something during #Wesnoth 1.9.x. http://t.co/s33x5BUr1 week ago
  • Shadowmaster’s Blog: Wesnoth add-on tests and sanity checking http://t.co/CbUGlI711 week ago
Categories
  • XML Frogatto
  • XML Hardware
  • XML IRC
  • XML freenode
  • XML Miscellaneous
  • XML Personal
  • XML Projects
  • XML Rei 2 IRC Bot
  • XML Wesnoth-TC
  • XML Site updates
  • XML Software
  • XML Web browsers
  • XML Web design
  • XML phpBB
  • XML Wesnoth
  • XML Wesnoth Evolution
  • XML Wesnoth-UMC-Dev
Projects
  • Wesnoth Add-ons
  • Wesnoth-TC/RCX
  • Frogatto levels
  • Rei 2 IRC Bot
  • Wesnoth-UMC-Dev Registry
  • Shikadibot 0314
  • phpBB 3.0 Mods/Hacks
Articles
  • Wesnoth Evolution
Links
  • Battle for Wesnoth
  • Wesnoth-UMC-Dev
  • Frogatto & Friends
Contact • Site Information & Disclaimer

Copyright © 2006-2012 by Ignacio R. Morelle. All rights reserved.
Powered by Poison Ivy/Dorset6 D9 and Serendipity.
Hosting provided by rewound.net and NearlyFreeSpeech.NET.

Serendipity PHP Weblog Valid XHTML 1.0 Transitional