Blog Claim on Technorati

November 25th, 2009

This is just a quick post for Technorati to verify that I am indeed the owner of this blog. ;)

Claim Code: 8YB9TVZPAN83

Is it just me, or has Technorati been pretty slow to respond ever since they relaunched their site? Ah well, I suppose that backlog must have been huge.

A Brief Overview of Google Wave

November 20th, 2009

A friend of mine recently sent over a Google Wave invite, so naturally I went and checked it out. :P Here’s my impressions of it so far…

From Wikipedia, Google Wave is a communication and collaboration tool designed to merge common networking applications like e-mail, instant messaging and more. It works in real-time, so people can see what others are contributing as they write.

Each “wave” is essentially a thread (analogous to forum topics and chained emails) where people can jump in anywhere to add content. Some examples of use can be found on a page published by Google. I won’t go too much into detail on that, since I haven’t had the chance to use it in such an environment. :P

What’s interesting about Wave (or at least the Wave protocol) is that most of the code will be released as open source. As such, developers can join in and add their own applications/extensions, making the whole works even more useful. In terms of functionality, it obviously surpasses e-mail (and I believe one of Google’s goals is to supplant it with the Wave protocol).

Will Wave be successful? Sure. I can definitely see people using it in collaborative environments (say, working on a large project at work :P ). It may even replace certain social networking applications given the right extensions. However, a goal like replacing e-mail and instant messaging… I dunno. What’s great about them is their simplicity; if I want to get a point across, I can quickly shoot off a block of text. In addition, pretty much everyone who uses the internet knows about e-mail; the same can’t be said of new gadgets like social networks and whatnot.

I suppose as the general populace becomes more technically adept, they’ll begin to see the benefits of using stuff like Google Wave. What will really make or break the protocol is how readily people are willing to accept it in lieu of traditional tools. Some sort of backward-compatibility with widely-used applications would surely go a long way in gaining acceptance.

Bleach (Episode 246)

November 20th, 2009

I’ve just finished watching episode 246 of Bleach and there are definitely some hilarious moments in it. Kenpachi and Yachiru getting lost (again) was to be expected.

As usual, Ichigo falls into another trap and escapes with his bankai. Why doesn’t he just use his hollow mask and wtfpwn everyone in his way? I suppose that would be too boring; all of the fights would last something like two minutes. ;) It’ll be interesting to see how Ukitake and Kyōraku pull off their battles though, without revealing anything unseen in the manga; chances are there’s going to be a lot of kido spells flying around. Unfortunately, following that logic we probably won’t see Minazuki do anything this arc either. Bah.

In any case, these past few episodes were actually pretty good for a filler arc. :P

Dragon Age: Origins – Technical Issues

November 19th, 2009

Wow, just from looking at the official BioWare forums, I can see that a lot of people are having problems with Dragon Age. I mean, approximately 20% of the forum’s topics reside in the technical support category. Granted, there probably are a lot of duplicate posts on similar issues (in addition to general stupidity – though this isn’t as likely given the game is rated M).

It seems like most of the problems are because of differences in hardware/software or general misconfiguration. There definitely is an advantage to making games solely for consoles (homogeneous hardware, plug-and-play, etc.), but that’s a topic for another day…

As for me, I’ve had relatively few problems getting the game up and running. Sometimes when I’ve Alt-Tabbed to another window though, the game freezes and unexpectedly quits when I try to resume. This gets annoying, but it happens so infrequently that I’m willing to overlook it. Indeed, once I got into the habit of saving often (which is a good idea in case the plotline doesn’t go the way you want it to :P ), I lost very little time when I do get booted.

It looks like the online player profile system is still having issues as well. Last week, it was having problems updating – sometimes taking as much as 5 days before changes are recorded. Now it appears that BioWare is doing maintenance on the whole works as certain sections (like managing screenshots) can’t be accessed. Hopefully they can get it working smoothly again. I think part of the problem was that their servers couldn’t handle the load right after the game launched (as everyone was creating characters at the same time). Perhaps a queuing system or some sort of load distribution mechanism should’ve been implemented (assuming it hasn’t already). Eh, whatever.

The game is still awesome, for what it’s worth. :P

Naruto (Chapter 472)

November 19th, 2009

Looks like chapter 472 of Naruto is out early this week. :)

I was hoping for a slightly prolonged fight between Bee and Kisame, but this was certainly an interesting turn of events. I suppose Samehada really is the source of Kisame’s power, if even he can’t fully control it.

Now, I wonder what would happen if Bee fuses with Samehada… ;) Come to think of it, wasn’t separating Kisame and Samehada part of Bee/Hachibi’s plan?

Numb3rs (Season 6, Episode 8) – “Ultimatum”

November 18th, 2009

Television is one of those things that I’ve largely abandoned over time. It’s not that it ever had that much influence over me however; I’ve always been more interested in computers because of the extra interaction required. However, Numb3rs is just one of those shows that I’ll gladly go out of my way to watch. Indeed, it’s one of the few series that I actually follow on a consistent basis.

I’ve noticed that Numb3rs has adopted a slightly different style this season, with different camera angles and interesting cold opens (such as a previous episode starting off with someone getting zapped by a “UFO” :P ). It definitely makes for a nice entertaining change.

The C-start reflex in action.

The C-start reflex in action.

Anyway, this episode starts off with Charlie Epps giving a lecture on pursuit-evasion to various people at the FBI. In pursuit-evasion, one group attempts to track down another as the latter tries to escape. Charlie mentions that a pursuer can change the rules of a chase by introducing extra variables such as canines and helicopters. He also continues by saying that pursuers must predict the actions of their target (without being predictable themselves), using a snake and a fish (referencing the C-start reflex) as an analogy.

In a separate scene, Ian Edgerton (FBI agent and brilliant sniper) tracks down a person (Vincent Costello) holding information that may be vital in shutting down a drug kingpin (Xavier Salazar) operating from behind bars. He catches his target by predicting the latter’s actions and begins to extract information on Salazar’s bookkeeper, Felipe Garcia. It turns out that said target didn’t really have sufficient knowledge and promised to find out more. In the end, Costello was killed by Salazar’s supporters, framing Ian for the murder.

Inside the prison, Ian discusses the details of why he was at the scene with Don Eppes (Charlie’s brother and FBI agent) and Frank Thompson (U.S. marshal in charge of the prison). He goes into detail on how Garcia – a supposed escapee – was actually still inside the prison impersonating another inmate (trying to hide from Salazar). However, there was too much evidence against Ian (including the weapon used to kill Costello and several bank transfers to his account from suspicious sources). He was led to his cell but managed to escape, triggering a prison-wide lockdown.

Don and his team, along with the fugitive apprehension squad (led by Janet Galvin) at the prison, track down Ian without much success at first. It turns out that Ian was hiding out in the vents; Don and Colby Granger find out about this fact after taking a look at the building’s blueprints and begin to scout the entire penitentiary. When they probe into a suspicious room, however, Ian gets a jump on them and takes Colby hostage.

Charlie explains the longitudinal socializing process.

Charlie explains the longitudinal socializing process.

Ian demands to get a hold of Charlie via video to utilize the latter’s mathematical knowledge in tracing Garcia. After getting some insight on the problem, Charlie proposes the longitudinal socializing process to search for the most beneficial patterns and behaviours – that is, the alliances that Garcia may have established to prevent being tracked down by Salazar. The FBI then begins searching for Garcia’s most likely associates at the prison.

In the meantime, Don questions his own instincts (on whether he should have shot Ian to save Colby). However, Charlie says that it may just have been self-preservation, that Don has doubts of Ian’s malicious intent. Colby and Ian wearily discuss philosophy while awaiting for something to happen.

David Sinclair finds out that Garcia has requested for a transfer (to a different prison) multiple times, each of which were rejected at the last minute by Frank. This automatically rings some bells, so David asks what was going on. His concerns were shrugged off, however, and the apprehension squad heads off to blow open a path to Ian with a bomb. A moment later, Charlie relays to David and the others that Garcia was located in the maximum security area.

Ian and Colby are alerted of this news by David. Colby was also made aware (through a distress word) of Frank’s intention to breach. They discuss the fact that Salazar couldn’t operate without help from inside the prison and that it was likely the reason why Frank was so eager to break in without listening to Garcia. The lights in the room turn red…

Ian – “So you’ve got to ask yourself Granger: why’s Thompson pushing to make entry? Why wouldn’t he at least listen to what Garcia has to say? He wants to protect himself and now he’s gotta kill me.” Frees Colby and hands over his gun. “Just the facts.”
ColbyResigned expression. “Just the facts…”

Thompson and his team detonate the bomb, making a rather large hole into the wall. Colby pretends to apprehend Ian in order to prevent any bloodshed. At the same time, Don and Nikki Betancourt rush to the maximum security wing where Galvin was making her move. During the breach earlier, Galvin had gone off to free Salazar and told him of Garcia’s location (it turns out that she was working for Salazar for the past two years). Don and Nikki make it just in time, with the former shooting Salazar in the back and the latter apprehending Galvin.

In the end, Ian’s name was cleared and Don’s gut instinct confirmed. As for the episode name, it was derived from the ultimatum game (giving an explanation to Ian’s behaviour – he was willing to inflict damage to himself to punish another).

Don – “Why am I always going to bed when everyone else is waking up?”
Charlie – “Well, at least this time you’re not alone, I’m right here with ya.”

Don – “Hey, Ian bet his life on you, kid.”
Charlie – “You can say the same thing about you.”
Don – “Sure that’s why I didn’t pull the trigger?”
Charlie – “Aw, I’d bet my life on it.”

How to move the site root to a subdirectory on cPanel-based web hosts

November 15th, 2009

I’m going to start off by saying that I’m rather picky about how files and folders are organized on a computer. For my own site structure, I’ve placed each subdomain into its own directory. Many hosts using cPanel (like BlueHost and HostMonster) allow you to set the directory where the subdomain’s files can be placed. However, it is not immediately obvious how you can accomplish the same with the root domain. By default it is mapped to the /www (/public_html) folder and there are no options in cPanel that allow you to change this. Good thing there’s an alternative solution. :)

For this to work, you must be running Apache as your web server (I suppose IIS should have a similar method, but eh…) and have mod_rewrite enabled. We’ll be creating (or adding to) a .htaccess file as follows:

1
2
3
4
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1

The first line turns the runtime rewriting engine on to allow for modifications. The second line determines whether the request came from “www.domain.com” or “domain.com”; this is to prevent rewriting the URLs of any subdomains you might have. The condition after checks to see whether the request has already been redirected to the subdirectory. If not, then the rewriting rule is executed to make it so.

The above code is sufficient if all you want is to move files from “/www/” to a subdirectory “/www/subdir/”. However, Apache is quirky in that it requires a trailing slash at the end of directory names (to specify that it is indeed a directory). Normally this isn’t a problem since there is a module (mod_dir) that automagically redirects a path without a trailing slash to one that does. However, it conflicts with the above code in this case: first a request is directed to a subdirectory and then mod_dir issues another redirect, exposing the subdirectory name. For example, a request for “http://irythia.com/somefolderhere” will become “http://irythia.com/subdir/somefolderhere/”.

Note: mod_dir only executes if there isn’t a trailing slash on directory names, so if you qualify URLs with one the rules above work as expected. That is, “http://irythia.com/somefolderhere/” won’t change.

To fix this problem, we add another rule to append a trailing slash on all URLs ending in directory names.

1
2
3
4
5
6
7
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$
RewriteCond %{REQUEST_URI} !(/|\.[^/]*)$
RewriteRule (.*) http://www.domain.com/$1/ [L,R=301]
RewriteCond %{HTTP_HOST} ^(www\.)?domain.com$
RewriteCond %{REQUEST_URI} !^/subdir/
RewriteRule ^(.*)$ /subdir/$1

Note the additions in lines 2-4. Again, line 2 checks to see whether the request came from “www.domain.com” or “domain.com”. Line 3 checks to see if the URI ends in a directory by filtering out file extensions (i.e. .php, .html, .js, .css, etc.). It also checks to see if there isn’t already a trailing slash. Finally, we rewrite the URL. The [L,R=301] flag tells Apache to not execute any more rules and do a permanent redirect.

And that’s that. Upload the .htaccess file to the root web directory (/www or /public_html) and you’re good to go.

Some final notes: this is essentially a hack to work around limitations imposed by many web hosts; there are probably better methods if you have direct access to the server. Since it is a hack, it might not work on all sites without modification; this post is pretty much a reference for myself. As well, there is likely some performance penalty (as minor as it is) because the .htaccess file rewrites all requests that hit the domain. Of course, if you were that worried about performance, you wouldn’t be running on a shared host anyway. :P

On social media and their uses…

November 14th, 2009

Over the past week I’ve gone on a blitz, trying out various tools (both old and new) to see what they offer. The results were in line with my expectations, but it was still interesting to see. ;)

Twitter

At this point, pretty much everyone who uses the Internet on a frequent basis knows about Twitter. Now that the initial hype has died down, I’ve finally created my own account. The tool itself is relatively simple on a conceptual level, but I think that’s one of its main appeals. A single question (“What are you doing?”) is all that is asked, although it is by no means the only thing that you can tweet about.

Traditional channels have covered Twitter extensively over the last couple years. At one point, even Oprah Winfrey talked about it on her show, thereby putting it into mainstream use. We now see people of all sorts twittering, from celebrities to politicians. Is this bad? Well, it depends on your view I guess. :P

One issue of contention is that a lot of content on Twitter is just mindless noise (to most people). The classic example is that “people don’t care about what you had for breakfast”. While it is true that a lot of stuff being tweeted is of little value, this can be resolved by following the right people. For example, fans of Digg might follow Kevin Rose to see what he has planned for the future.

As for me, I’m tracking a lot of the leading experts in web development and design along with several game developers. What they have to say is often quite intriguing. Indeed, Twitter is a good source of news as oftentimes people are sending out tweets while events are happening. I can definitely see the value in using tool and if nothing else, it can supplement my microblogging habits (for years, I’ve put random comments next to my MSN nickname :P ). Actually, one of the reasons why I looked into Twitter was because it could update my Facebook status.

In conclusion, Twitter is – when used correctly – a valuable tool. It definitely synergizes well with a blog. ;)

Stack Overflow / Super User

Both Stack Overflow and Super User are wiki-like tools designed to be Q&A sites. The former was created for programmers while the latter targets computer enthusiasts. The concept is simple: if you have a question on a topic, you can post it on the site and have various experts try to resolve it for you. You can also browse current open questions and help out where you can.

While I haven’t spent a lot of time on these two sites, I did notice that questions are (usually) answered extremely quickly. This could be useful in, say, debugging a project at work when you have to meet a deadline. The community also doesn’t look kindly upon “homework-like” questions, preferring inquirers to put in some effort. This is an attitude that I agree with; we don’t really need another way to destroy academic integrity.

As I mentioned, these are wiki-like tools, meaning you don’t need an account to post/answer questions. However, it’s likely that you’ll want one anyway to keep track of your activities on the site. One of the first things that I noticed when creating an account was that both SO and SU support OpenID. Now, this is actually the first time that I’ve used it so it was kind of interesting. It turns out that I already had an OpenID though, since Google was a provider (man, Google does everything now…). How convenient.

Well, I didn’t actually have any questions to ask so I can’t comment on that aspect. I did provide some answers though. Hopefully I didn’t embarrass myself. :P

StumbleUpon

I’ve heard about StumbleUpon back in high school, but this was the first time that I’ve taken a serious look at it. In essence, it is a service that builds a directory of content sorted by tags and serves it to users based on their interests. Through a pseudo-randomized algorithm, different content is shown to users when they click the “Stumble!” button on the toolbar provided. I guess the entire purpose of this is to expose people to new content that they might be interested in (and haven’t seen before).

After creating an account, you can post some basic information about yourself for other Stumblers to see. You then make a listing of your current interests for StumbleUpon to use. When this is done, all that’s left is to install the toolbar (or access the web-based one), click “Stumble!” and enjoy the show. :P

For each page that you stumble upon, you have two available options: thumb up (adds site to favourites) or thumb down (so you aren’t shown similar content in the future). When adding something to your list of favourites, you can choose to write a review of it. This is recommended if you want to be an active participant in the community. As for the list of favourites, there is actually a subset called discoveries. These discoveries are pages where you have been the first to visit (and thumb up); essentially, you are adding new content to the StumbleUpon index when you do so.

Seeing as StumbleUpon is built around its community, there are obviously tools that promote relationship-building. Among theses tools are friend lists and interest groups, on top of the profiles and reviews that I mentioned above. I haven’t actually tried out this aspect of StumbleUpon yet so I can’t really comment, but it shouldn’t be too far removed from other networking tools.

I’ve set my toolbar to look for content in the realm of computer science, nature, art, music, mythology and other similar topics. There are definitely some interesting things to see if you’re open-minded. :)

Dragon Age: Origins – First Impressions

November 8th, 2009

So I’ve spent the last two days of my rather limited time playing through Dragon Age. Now, obviously I wouldn’t be doing that if it wasn’t any good. ;) First of all, the development studio behind it is BioWare. And well…it’s BioWare. That alone probably means the game is, in the worst case, mediocre. :P According to them, Dragon Age supposedly incorporates elements from both RP and RTS games. I came across that little tidbit a few years back though, so I no longer know if it’s true. We’ll see.

Anyway, I bought the game last Friday almost on a whim. At the time, I was at Fairview Park Mall to get some other things and just happened to come across an EBGames while wandering around. Of course, I went in and took a look (despite the store chain reducing their focus on PC games, gah). Now since the game had already come out the day previously, there were no immediate signs to catch my attention; indeed, I found only two copies of the game stuffed near the back (though I assume the store has more in stock). It appears there were leftovers from the pre-order promotion, however, since I received some extra item codes at the point of sale. Lucky me. :P

With regards to the promo codes, BioWare has set up a site where you can redeem them. What came with my copy was a Feral Wolf Charm and a Memory Band, as well as Shale – a potential companion. I haven’t gotten Shale yet, but the first two items came in handy. The Feral Wolf Charm has decent bonuses that blow everything else out of the water until midway through the game, and the Memory Band boosts the amount of experience you get per fight. Now, you’d think that these items would upset the balance of the game and make it a bit too easy. Not so. The fights were challenging for someone not entirely used to the system (that is, me); indeed, one major complaint on the BioWare forums was the difficulty of even the easiest mode – this led to a fix in the first patch.

To continue on, I went home and installed the game on my main laptop. That went by smoothly and I have nothing more to say on it. After the installation was done, I booted up the game and started tinkering with the configuration settings. First of all, after creating an account on the official BioWare site, I linked my copy of the game in order to experience the bonus content previously redeemed. Secondly, I ramped up the graphics settings to maximum because I can. :P

The recommended system specs. of the game are relatively high, though a modern computer (run-of-the-mill desktop or mid/high-end laptop) shouldn’t have any trouble with it. I wouldn’t bother with the absolute minimum listed though; the game would merely be runnable. Actually, this is where I blast NVIDIA an ATI for crazy product names – the average consumer is not going to know what the hell the video requirements are and how their own hardware compares.

And after all this, I’ll finally begin playing. ;) One of the first things you’ll notice is that there are three classes that you can choose: warrior, mage and rogue. There are also three races that you can play: humans, dwarves and elves. Those two in combination lead to six different origins that you can start with – that is, the background story of your character. Don’t be fooled by the limited class types as well; later on, your character will be able to specialize into different areas such as blood magic and shapeshifting. The second thing you’ll notice is the insane amount of customization options for your character’s appearance. For those who have played Morrowind and Oblivion, think of that plus more. :P

I first started with the human noble storyline, though I created a mage afterwards. In the former case, your character has to support his/her family as it prepares for war. As for the latter, your character has to endure a mental test called the Harrowing and deal with the events that follow. Without giving away any more spoilers, I’ll just say that BioWare throws a ton of twists at you that will surely keep you on your toes. ;) Indeed, the choices that you make as the story progresses have a profound impact on what happens to the world of Ferelden.

Looking over the battle between the Grey Wardens and the Darkspawn

Looking over the battle between the Grey Wardens and the Darkspawn

The controls of the game are relatively straightforward. There is an in-game tooltip that helps you out as you wander around and a Codex that is essentially a tome of knowledge. A journal and a conversation log allows you to play through the game without remembering every single detail (in case it was needed later on). You can set up tactics (basically behaviour rules) for your characters so you don’t have to micromanage all of them constantly.

In battle situations, you’ll likely be pausing a lot to issue commands to your party. It can be quite hectic as you’ll be facing large mobs. I’d recommend having a damage absorber (tank) and several AoE skills as it definitely makes things easier. For the most part, however, you’ll be relying on tactics such as clumping enemies together, attacking from favourable positions and taking advantage of surrounding obstacles (like doors and corners).

The visual quality of the game is pretty awesome. Some people might complain that the graphics are a bit dated, but they really are at the limit of a RP/RTS game. Any more emphasis on graphics and we’ll see even the most powerful computers keel over. Besides, I wouldn’t consider visual quality to be that important. Many of the best games (IMO) are pretty mediocre in that department. Heck, take a look at Crysis and tell me how that panned out. :P

A lightning storm in combination with a blizzard. Ouch.

A lightning storm in combination with a blizzard. Ouch.

The audio aspect of the game was equally impressive. It appears that there was a lot of work put into voice acting; there are many characters whose dialog is spoken out loud. Interestingly enough, however, is that the player character stays silent – I suppose you’re supposed to talk for them. :P The background music fits right in and helps to promote a great atmosphere.

Anyway, that’s it for now. I’ve spent 9 hours on my mage and am barely 8% through the game (according to the character log). That speaks quite a bit as to the depth of the game, not including potential player mods. I’ll probably talk more about it when I’ve actually completed a storyline or two. ;)

Visit this page to see my progress!

The dangers of procrastination…

November 7th, 2009

On November 1st, many Canadians turned back their clock and enjoyed an extra hour of sleep. Alas, I wasn’t part of that group. ;)

Last week was largely dominated by CS 240 (Data Structures and Data Management). Assignment #5 was due on Tuesday and the midterm was scheduled two days after. They were worth 12% and 15% of the final grade respectively (yeah, a midterm worth only 3% more than an assignment :P ). For me, at least, those were the only immediate tasks at hand. Easy, right?

Not so, apparently. The assignment, which was about implementing a B-tree structure, took nearly 30 hours. It definitely didn’t help that I had little experience with Java and completely underestimated the length (my estimate was <10 hours using C++). Anyway, there goes my weekend. :P I did end up finishing though, albeit with some minor bugs; the program length measured up at over 700 lines (with comments and braces) and the documentation at another 250.

Now, what’s really interesting was the number of people who asked for an extension on the assignment. Fine, there’s nothing wrong with that – indeed, I’m sure most professors wouldn’t mind accommodating their students (given a valid excuse ;) ). However, what really happened was that people essentially pressured the instructor into extending the deadline. It even went as far as implied insults directed towards the course staff (criticizing their lack of foresight in putting a major assignment right before the midterm).

If you ask me, most (if not all) of those arguments in favour of an extension were just BS. There was at least two weeks of notice given in advance (not including the clear weighting on the syllabus). Indeed, both the instructor and the tutor clearly said to start on the assignment early. There was really no real excuse why a mass extension was needed – those arguments were literally a façade to cover up people’s inability to manage time. Now, I’m sure there are those with legitimate reasons (perhaps coming down with the H1N1 flu), but those seem few and far between looking at the posts on the newsgroup.

Anyway, it turns out the extension (’till Friday) was reluctantly granted with a 30% penalty. I think those who needed it should be thankful the course instructor is so lenient; he was well within his rights to refuse (and he did, until an hour before the deadline). The tutor should be given some credit for dealing with this issue too; by trying to accommodate the class (asking the prof. for an extension in lieu of the students), she was essentially adding to her own workload. I later found out that approximately half the class didn’t submit on time; now that’s some statistic right there.

This is coming from someone who literally gets through university procrastinating (I have a pretty good reason for it, but that’s another topic). As I implied earlier, I pretty much rushed through the assignment and could have used some extra time. But I also realized that it was entirely my fault for miscalculating the length of it. It seems like a lot of people have a hard time admitting that.

Bah, whatever. What’s done is done…

As for the midterm? It was a breeze. ;)