Oh hi there. Long time no see. Apparently I haven’t posted since February 2017, huh. A lot of things have happened in the meantime, it turns out. Some of those things are to blame for my general inactivity elsewhere, but when it comes to this blog I just can’t seem to come up with anything to say worthy of my trademark text walls, at least not ever since I joined Twitter several years ago— wait, wasn’t that in 2010? Time sure flies. I feel old. Okay, let’s face it, I am old.

“Iris” version 1.1.0 as of earlier today

In addition to it having been a while since my last post in here, it has also been a while since the last time I gave the website an overhaul, for what little use it sees nowadays. Because of that, plus some of my experiences designing the new website theme for The Battle for Wesnoth last year, I decided to try to modernize my own a little bit so it looks more in tune with my current practices. I also decided to spruce things up with a new colour scheme, like last time, taking things in a different direction to what I’m used to.

An attentive reader who’s been around for long enough might be able to tell that the “Iris” design last year did undergo a slight revision incorporating Font Awesome in order to make icons not look awful on high-DPI screens. This was a natural conclusion of my work designing and testing the Wesnoth.org theme on devices with higher pixel density. Plus it was precisely last year that I actually caved in and got a smartphone given to me by a relative, further highlighting all the inconveniences of designing things on/for 96 DPI these days. Other than that, though, the design remained mostly unchanged from what I made in 2014.

“Iris” version 1.2.0, aptly codenamed Amethyst for reasons that should be blatantly obvious, is mostly the same as before under the hood, but on the surface it hopefully looks shinier and more elegant and modern. Even though I am not using the site much right now like I mentioned above, I have a faint hope that the new look will motivate me to post more again.

Since there wasn’t a New Year post last year, or even the year before that, or uh... the year before that as well... actually I guess there haven’t been New Year posts in here since January 1st 2013. Oops. Anyway, I guess it’s time for a short summary of what I have been up to in recent times. Let’s see...

shadowm.rewound.net has been graciously hosted by an acquaintance of mine since 2005, even after I moved on to weirder endeavors on the Internet. Originally, there wasn’t much in terms of content here, because I only used the space to host a few files from tiny projects I was involved with. However, as I took an interest in dabbling with front-facing Web technologies like HTML, CSS, and to a lesser extent, Javascript, shadowm.rewound.net turned into a testing ground for crazy experiments ranging from a seldom-updating blog, to a quotes database for an IRC channel. Giving the few interested visitors a general idea of who I am and what I do in my spare time was barely a goal at first. Fast-forward to Q4 2014 and just look at this mess.

But as everyone knows, nothing is eternal. Not even the sun. Okay, from a practical standpoint we can assume the sun is eternal. That’s beside the point.

The first chapter of “shadowm”— formerly known as “Shadowmaster’s Lair” — lasted much longer than it logically should have, and I thank grafix for that. Starting today, I am now hosted by AI0867, a close collaborator of mine in projects like Wesnoth-UMC-Dev, my campaign Invasion from the Unknown, and, well, Wesnoth itself. Hence the new hostname, shadowm.ai0867.net.

Around May this year, I went to great lengths with the Iris site redesign to ensure everything would work on any host provided the software dependencies are satisfied, and removed and/or optimized a load of cruft left from earlier iterations. In theory, things should perform more or less fine on the new host, although it is hard for me to gauge this as a user — for you see, I am stranded in high-latency mobile broadband land, making pretty much every website out there equally slow from my point of view. In any case, if there are any glaring inefficiencies, I’ll do my best to correct them over the course of the next few days.

To sum it up, most people (i.e. the handful of followers I have) should not notice a difference besides the new hostname in URLs. Old links will continue to work for approximately a year through the magic of HTTP redirection, though you should probably update them now just in case.

Anyway, that’s all I wanted to say. Now back to our regularly scheduled programming.

Those who have followed me these last five years or so are probably aware that I designed and coded this site’s layout on my own in an effort to learn the basics of Web design. Thus, shadowm.rewound.net has been redesigned no less than eight times since its inception.

Dorset6, the last iteration prior to this day, was first deployed on May 11th, 2011. Since then, it has only received minor incremental updates addressing bugs and minor practical concerns that cropped up later, since I found the overall design to be pleasing to the eyes — at least until I got a new screen where the lighter blue colors turn out to be purpler than intended, oops!

The last maintenance update to Dorset6 was Delta 24, deployed on April 26 2014.

The underlying template engine, Poison Ivy, has not seen any architectural changes all these years since it was first deployed in 2010. In the meantime, however, I have learned more about API design from my experience with various other projects. It can be very disheartening to look back on past practices and realize you were doing things completely wrong in production software!

During this time I have also heard all the hype surrounding HTML5 and CSS3, and got to experience the results firsthand as large websites started making use of the new technologies. On top of that, support for Internet Explorer 6 is finally dying off, and Windows XP just reached its definitive end of life last month; software and Web developers everywhere rejoice as they no longer have to give support to grossly obsolete products from the early 2000s.

I have actually made use of CSS3 and forward features in shadowm.rewound.net since Dorset6, but right after deployment I decided to aim for leveraging more of their potential in the next iteration, Dorset 7. I promptly begun throwing around style and layout ideas. However...

After some recent changes in Debian testing’s PHP 5 packages triggered an alarm—namely, breaking my laptop’s own Serendipity installation used for testing—I did some research, and found out that due to my severe laziness, when I originally configured the respective s9y installations I chose to use the SQLite 2 backend using some deprecated (now gone), built-in PHP functionality, instead of using the newer and better SQLite 3. Of course, given the situation when I did the configuration for shadowm.rewound.net it’s also possible I didn’t have a choice.

For this reason, I just finished casting some magic enchantments on this site to convert the blog database to SQLite 3. Evidence indicates that a mere dump suffices for this end, and the schema matches a fresh installation with SQLite 3 save for a few inconsequential bits.

None of this means there was an immediate problem, but I opted for not fixing tomorrow… later today, what I could fix this early morning.

Everything seems to be working fine, although I grabbed a backup of the previous configuration just in case. I’ve heard that SQLite 3 is faster and more space-efficient. The latter does seem to be the case, but since I’m limited to a crappy, high-latency mobile broadband connection to browse the web, I am unable to verify the former for the foreseeable future.

At long last, 2011 is coming to an end. In a few hours, we’ll have to dump our old calendars to replace them with new ones bearing the number 2012 in a big font size. Then the people who believe 2012 will be the end of life on Earth will begin to panic as we approach December again. Those nutcases.

This was a relatively calm and monotone year in what pertains to my personal life, so I’m not going to delve into details in this opportunity. However, I made some resolutions last New Year and it might be worth it to review them and check why I didn’t accomplish all of my goals.

Learning Japanese: I got severely sidetracked after a while. I may still try again in the future, just because.

Losing weight: I may have gained some a lot of weight during the course of the year. Oops. I did, however, stop drinking coffee, because my stomach started to reject (read: try to vomit) it after a while for some reason.

Wesnoth RCX: Still halted. Frankly, there doesn’t seem to be enough interest amongst the Wesnoth community nowadays for this kind of tool, and for my own purposes Wesnoth-TC serves well as it is.

Learning Lua: Accomplished according to certain definitions. I haven’t really learned more about the language than necessary, but I have indeed committed some Lua code to mainline Wesnoth, and several tasks of varying difficulty are accomplished with custom Lua-backed WML tags in After the Storm and Invasion from the Unknown as of this writing.

Rei 2 IRC Bot: Stalled, due to lack of interest. There are also seem to be a few Irssi-specific problems with Perl 5.14, which is in the operating system I’m using at the moment, Debian wheezy.

Website: Accomplished. In fact, in a few hours I’ll deploy a few minor changes to the code to optimize the blog template processing a bit.

One particular resolution deserves separate analysis, though:

Then there’s Wesnoth. I intend to finish the Second Act™ of After the Storm Episode I as soon as I may, even through the means of placeholders — I’m willing to do anything to rescue AtS out of Development Hell before the end of 2011.

I didn’t resort to unlawful methods to accomplish this goal as I originally feared, but it still happened! Granted, rather late.

During September and October I had a rather unexpected creativity and productivity spurt which culminated with the release of AtS version 0.5.0 with Episode I: Fear complete with 13 scenarios. More recently in December, we reached version 0.6.1 with 7 complete scenarios for Episode II: Fate. As of this writing, E2S8 and E2S9 are also complete in SVN trunk in Wesnoth-UMC-Dev, although it’s been suggested that the latter could use some spicing up. E2S10 is a work in progress since yesterday, and part of E2S12 was written already back in October, just not committed.

Thus, it could be said that after many difficulties, After the Storm broke out of Development Hell. Whether I’ll consider Episode III: Final (expected to be shorter, around 6 scenarios) part of the required line-up for version 1.0.0 is a matter I haven’t settled yet.

Once After the Storm is finished, I plan to take a rather long break from campaign development. That isn’t to say I’m out of ideas, since there is one character I want to explore in further detail in her own campaign. However, I may have my Wesnoth time taken up by mainline work after 1.10 is released depending on the situation then, since there’s a rather large technology gap in Wesnoth that needs to be solved.

Other than that, I haven’t really decided on any resolutions for 2012, so I’ll leave you with the one resolution of the moment:

The website’s appearance has changed again! Dorset6 (codenamed “Air”) has come to replace Dorset4 and to reduce the site’s data weight by a significant amount, by abandoning the use of bitmap graphics for layout and replacing them with some well-supported rules from the CSS 3 suite.

As a consequence, older browsers will not work with the website very well and might not display some neat details like rounded corners and shadows. Despite this, it’s still readable and mostly functional with Internet Explorer 6 and later. Both Chrome 11 and Firefox 4.0 provide all the required features to make this work properly, but there’s also some degree of compatibility with previous Chrome versions, some other versions of webkit-based browsers, and Firefox 3.5 (found in Debian 6.0) and later.

There were also a few structural changes around the Project section with this revision, making it hopefully more readable and concise.

As for the version number skip, Dorset5 was ultimately scrapped and recycled into Dorset6. Here’s what it looked like before the slaughter.

I have been thinking about some stuff to do during this year for a while, actually. It’s really hard to decide because I’m a person who runs into all sort of trouble while trying to get projects accomplished (including procrastination).

One thing I’m already doing is learning some Japanese, for no particular reason at all — although you’ve got to admit that having multiple languages in your curriculum is worth a bunch of coolness points. Espreon is helping me along the way with his own recently gained knowledge. It seems quite fun to learn a language in a non-Latin alphabet, if not a tad overwhelming at times, especially with kanji.

It’d be a good idea to lose some weight this year, too. My addiction to sugary stuff isn’t quite compatible with my heart condition! (Nor is coffee, but… meh.)

Then there’s Wesnoth. I intend to finish the Second Act™ of After the Storm Episode I as soon as I may, even through the means of placeholders — I’m willing to do anything to rescue AtS out of Development Hell before the end of 2011.

Wesnoth RCX’s development is halted right now due to lack of interest on my part to invest energy on writing the rest of the new functionality (i.e. definition of custom ranges and palettes), but I know that once I touch Qt Creator’s awesome interface I can’t stop working for a while — so I may eventually get some inspiration to redesign the main window, which should inevitably lead me to tinker around with the rest of the code.

C# was the first “major” programming language I learned, not counting Visual Basic. I have some fond memories of my first experiments with C#, but after I embarked upon learning and using C++ I kind of forgot about it. I have been considering the possibility of writing an IRC client of sorts using C# just for kicks, and to not forget this language in case I ever need it again. Why IRC? Because clients for this protocol are simple and challenging to implement, both at the same time!

I’ve already started to learn a bit of Lua for my work on the aforementioned Wesnoth campaign — in fact, there’s already some released code within it written in this language, particularly in scenario 5! I have plans to rewrite parts of Invasion from the Unknown in Lua to clean it up a little, thus paving the road for future maintenance work by me or other people (don’t forget that IftU is still abandoned!).

Another software project I intend to tackle in the short term is Rei 2. Sure, she’s doing well and her main command handlers are many and useful enough for channels such as ##shadowm and #wesnoth-umc-dev, but her dependence on Irssi’s core might well be a curse for one of our use cases: Shikadibot (the Second), which runs on a resource-limited VPS where every drop of RAM has got gold value. I’m already brainstorming a possible abstraction layer (codenamed “API 3”) which could allow the Irssi core to be swappable with a custom, native IRC client core (codenamed “Anya”). There’s really not much in the current Irssi-based implementation of the internal interfaces (“API 2”) that make a dependency switch unfeasible.

Finally, I’m not going to stop producing useless updates for my website! Dorset5 0001 is already a reality, although there’s still much I want to do before replacing the current layout. This time I have placed an emphasis on readability and elegance that I don’t think the previous revisions have lived up to so far.

• • •

All in all, I always have so many ideas floating in my mind that I rarely carry to realization, so this can’t be considered a definitive list. There are other possibilities I’m contemplating for the long term regarding my personal life, but that’s a much more volatile subject to discuss so I’m avoiding it for now.

The Wesnoth-UMC-Dev Project website is now running with the Hakone layout system, but the blog section is currently not operational due to administrative issues I hope to have solved within the next 24 hours.

Just a few hours ago I reorganized the site’s front-page in order to make it more readable and visually cleaner. As a side-effect, users of Internet Explorer 6 got lucky and should not be seeing glitches there anymore, at least at large window sizes.

But that’s not what I came to report. Just a few minutes ago I deployed version 0.1.0 of codename “Asuka”, the new fortunes database viewer running on a little hidden page in this site.

At last, it’s the second weekend of October and here in Chile we’re already switching to DST-based schedules. But I didn’t come here to talk about how nice it is to have sunlight past 7 PM, or to announce any plans for summer.

Instead, I came here to announce the early arrival of codename “Dorset4”, the new revision of the site’s layout, now with more CSS 3! (Really.)

It’s not really as big an update as I expected because there’s really very little to fix overall — I feel quite happy with my work on Dorset3 and save for some minor things no big improvements appear to be necessary. Of course, I introduced a couple of bugs with this revision (notably, in the Projects section index), which will be fixed over the next days. The most notable changes are the introduction of a few icons in places where it made sense, and the tidying up of the sidebar and footer, all with the purpose of presenting the most important information more cleanly than ever.

But these aren’t all the changes. Besides the stylesheet revisions, there’s also a new project page for Rei 2 IRC bot and a new separate page with information on the website. The blog has also now acquired entry paging powers, which means that multi-page articles will be possible in the future — in fact, the forthcoming follow-up to Wesnoth Evolution: 0.1 may take advantage of this new feature.

I know people in the northern hemisphere are going to freeze very soon as winter approaches, but I know I’ll still envy them in a few weeks when local temperatures start going over 32°C.

Long ago, I wrote a (scarcely linked) Wesnoth fortune viewer that runs on this website, using an old copy of the fortunes file which can be found in Wesnoth’s SVN trunk under /misc/fortunes/wesnoth. I wanted to build an interface with more features from that ground, but never got to it, until now.

The fortunes database for Poison Ivy, codename “Asuka”, is in development since exactly 3 hours ago, and a test tree is already online at http://shadowm.rewound.net/asuka/. It is not very functional at the moment, and the visual design sucks, but I expect to improve that soon. For now it’s possible to get safe permalinks, select the previous/next quote in the database when viewing a single entry, or let the website pick a random quote for you.

Other planned features include:

Short excerpts in the index page.

Author/source detection.

Full quote index.

Published source code, under a BSD-style license.

Anything else I come up with in the way to 1.0.

On a more personal note, it’s amazing how much time can be saved by coming up with completely modular code design. Implementing individual features becomes then as simple as adding a few lines of code here and there. With this, I’m slowly regaining my faith on my own ability to code.

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.