Monday, November 26, 2012

NaNoWriMo 2012 Winner

If you check the handy little sidebar that I have on the right hand side of my blog, you'll notice that there's a little box there that says that I "won" the NaNoWriMo. Well, winning isn't really that much of a correct term to use to describe someone who has successfully gone through the trouble of churning out fifty thousand words in a matter of thirty days, because if it is, then everybody who finishes a five kilometer run would be considered winners. I know some people who might consider successfully forcing themselves to traverse five kilometers in a row on foot to be "winning", but I disagree.

Anyway, my novel, PH:2086 is far from finished, and also very far from having a well-strung together plot. To be honest, after the time and quota pressures of the NaNoWriMo was removed from me like a bomb collar on my neck, I have noticed that I am not really up to adding more stuff into the novel anymore. Or maybe it's because I've recently taken up drumming and I'm very much occupied with practicing at every spare moment that I can get.

I'm not a fan of leaving things unfinished, though, so I will set some personal goals for me to pursue so that I can manage to rack up to eighty thousand to one hundred thousand words, which is the average and most accepted word count for most novels. I have the feeling that I won't be able to compress every bit of the story into one novel however, so I'm thinking of making a sequel once I finish the manuscript.

I also have another novel in the works besides PH:2086, and it's something that I have been working on way before the NaNoWriMo. Hopefully I can get that done as well. Perhaps some excellent time-juggling is in order.

Saturday, November 3, 2012

NaNoWriMo 2012

Today marks the first day for the National Novel Writing Month of 2012. Actually, that was yesterday, but I did plan writing this post earlier though I procrastinated by watching a couple of very well-made films made using the Source Film Maker on Youtube, and so I digress. Don't worry about the name though, NaNoWriMo is actually international. There's also conveniently a community of WriMos in the Philippines, which, of course, I immediately joined.

I took on the challenge of joining the NaNoWriMo this year because I find that it's a perfect challenge for me to pursue on my road to self-improvement. 50,000 words in 30 days. Not a pretty hard challenge to do especially with me being a man of dedication and perseverance.

I've been concocting a faint idea of my novel for a while, as I rode my commute from school to my home, a period where I am strangely more creative than usual. It's the story of a young girl who lives in a dystopian Philippine society of the future where the entire country was ruled by an autocratic theocracy. And that's basically an explanation of the story in one line.

I plan to license my novel using a Creative Commons Attribution-NonCommercial-NoDerivs license once I finish it, so that I can distribute e-book copies of it for free here on my blog, and just earn revenue through the sale of physical books, similar to what Cory Doctorow did to his book, Little Brother. I don't really care about book royalties, I'm more concerned with delivering a message.

I'll keep you guys posted on my progress. Right now it's the second day of the NaNoWriMo and so far I've done 7700, according to my last word count update at the time of writing. My estimated time of completion should be somewhere around the middle of November, if not, a few days after mid-November.

Tuesday, October 23, 2012

Debian Kit Part 2: External MicroSD config on Asus TF101

Some days ago I had managed to successfully and unfortunately soft-brick my Asus Eee Pad Transformer TF101 due to incorrectly using a Nvflash utility for SBKv1 devices on my SBKv2 device. Long story short: The fiasco led to the specially-made partitioning on my tablet's internal storage to be overwritten by garbage, taking the bootloader with it.

Thankfully it's not really that hard to completely flash the tablet back to normalcy thanks to Nvidia's nvflash utility and the tablet's APX mode. I managed to put the tablet back to Asus's stock ROM. Regaining root logins and privileges was trivial and now I managed to put in my previous daily driver ROM, Android Revolution HD, back into my Transformer.

To make my tablet two times as useful as it was at that moment, I've decided to reinstall Debian Kit. It is unfortunate that I had forgotten to back up the loopback image stored in my tablet's internal SD storage, so I had to reconfigure everything from scratch again. With that, however, I had the opportunity to do something different: I planned to put Debian on my tablet's external SD card, which is inserted on the right side of the tablet itself, not the one on the keyboard dock.

It is important to note, however, that most external SD cards are significantly slower than internal SD storages put inside most phones and tablets. The external SD card I used is a cheap class-2 16GB that I bought from CD-R king (of all places), so needless to say, my Debian install is going to be slow as fuck. Installing a package from the repositories for example, takes quite a long time, with most of the time wasted on unpacking, setting up, and installing the packages.

I partitioned the external microSD using gParted on my Thinkpad, with 12GB partitioned as ext3 (this is what Debian will use) and the rest of the remaining space as a FAT32 partition, because I don't think I'll be needing an entire ~16GB worth of space for an OS residing within another OS, especially when most of my work is done on the command line. It's formatted as FAT32 because apparently that and NTFS are the most convenient file systems that Android natively automatically mounts on its own. Following the instructions of a Debian Kit installation, instead of the usual opt to install the loopback image on a rather small 2GB file in the internal storage, I did the following with mk-debian:

# mk-debian -i /dev/block/mmcblk1p1 -d precise -t ext3

Where /dev/block/mmcblk1p1 corresponds to the 12GB ext3 partition that I had created earlier on my external microSD. Note that I did not use /dev/block/mmcblk1 because that corresponds to the entire block device, rather than one of its partitions.

So Debian Kit did its thing and installed a minimal install of Debian that for some reason follows the apt repositories of Ubuntu 12.04 Precise, so I can't really tell if it's Debian or Ubuntu, though I'll just settle on calling it Debian for now. Anyway, I digress. After Debian had finished its usual setting-up, I began to set up my installation according to my specifications. I followed most of the stuff on the Debian Kit manual regarding andromize, created a normal user for myself, adding sudo privileges for the said user, fixed the timezone being set in UTC by default, and reimporting my dot-config files from my Thinkpad. So far, so good.

Once I let the tablet go to sleep, however, either when it automatically does after a time period of inactivity or when I close the lid with the dock connected, the block partition "disappears". That is to say, when I get back to my Debian install through the terminal, and do a command such as ls, the command is strangely not found by the system. The same thing happened to cd. I then concluded that I the block disappeared and now I'm just running off the system from memory.

I figured that it was something wrong with my ROM of some sort. I noticed that whenever external volumes (SDcards, USB drives) are inactive and the tablet goes into sleep, Android automatically unmounts them, then remounts them back again when I wake the device. I did a little research on this annoying behaviour and found out that it's a "feature" made by Asus. I then hypothesized that Asus was extremely bright to unmount the entire device rather than just the partitions that it can read (which is to say, when the ROM decides to unmount the FAT32 partition /dev/block/mmcblk1p2, it takes the ext3 partition /dev/block/mmcblk1p1 along with it as well). Since Android Revolution HD branched itself out from the stock ROMs of Asus, the behavior persisted on my custom ROM.

I figured that the ROM only does this on filesystems that it naturally (in a sense that I can see and use them on the native Android interface) detects and supports, like FAT32. So I repartitioned my external SD card again, only this time I made the ext3 partition take up the entire storage space on the device. After that I made Debian Kit install itself on the newer, larger partition.

That is currently my setup as of now and thankfully /dev/block/mmcblk1 stops disappearing whenever my TF101 goes into sleep mode. However, I noticed that after a long uptime /dev/block/mmcblk1 eventually disappears again. I do not know at the moment if it happens during activity or inactivity, but very recently I left my Debian user account logged in overnight and when I tried to use it again the following morning it appears that my partition had disappeared once again. It's solvable with a reboot, but rebooting is tedious and takes some time.

I will look further into this problem and check for any solutions. Hopefully it's something related to my ROM and not any of my hardware. If that's the case, I'll just take a look at some sweet Android 4.1.2 Jellybean ROMs, and try them on my tablet.

Wednesday, October 10, 2012

Cytus: The "touchier" touch-based rhythm game

During the recent weeks I have been occasionally engrossed in playing Cytus, a rhythm game for the iOS and Android mobile platforms. Most people would probably take a look at the game and just pass it for another one of those catchy touch-based rhythm games that only become popular for a few moments then slowly and painfully die out into inexistence.

Cytus is especially unique due to it being completely designed for capacitative multi-touch screens. I have also played other touch-based rhythm games like osu! (more specifically its Android port, osu!droid) in the past, but osu! appears to be designed specifically for graphics tablets. Additionally, due to its user base consisting of mouse-trotting players, a good handful of songs available for osu! made by the players are optimized in favor of mouse players more than those who play with graphics tablets, or in my case, fingers.

Cytus is also relatively easy to pick up and learn. The gameplay is easy and intuitive. A black bar continually bounces up and down from the top to the bottom of the screen, with each direction of movement corresponding to a measure (though sometimes I think a complete round trip from top to bottom corresponds to a measure, I'll have to take time to study this). A black glow on the sides of the screen repeatedly pulses after every two 1/4 beats. Colored circles (that are colored by group depending on which trip the black line is going to and fro) pop up on the screen, and the player has to hit these circles alongside the music's rhythm. Then there are the sliders, which are a couple of smaller circles connected in a chain. The player has to slide their finger through the slider, hitting all of the smaller circles in the process. Then there's the freezes (or holds), where the player has to keep their finger on a large circle with a bar running underneath, and wait until the black line has finished traversing the entirety of the freeze bar. Because Cytus is specifically written for multi-touch screens, "jumps", where the player has to simultaneously press two or more circles at one time, can be easily implemented.

As of the time of writing, Cytus comes with 26 songs (2 are cleverly hidden, and one of the songs requires the player to like Cytus on Facebook or follow Rayark's Cytus Twitter account), most of them unique and highly enjoyable. A song in Cytus is about a bit longer than an average DDR song (most Cytus songs do not reach two minutes in length). Rayark (the development team of the game) announced that the current roster of songs in the game are currently incomplete, and there are at least a hundred more songs that are about to come out in the future. They created an interesting release plan---every hundred thousandth registered player of the game awards everybody with ten more songs, possibly an entire new chapter; with all the songs presumably unlocked for everybody by the time Cytus gets a million official players.

Notice my use of the word "official" in the last paragraph. Cytus is available for both the iOS and Android mobile platforms, though it is not free (as in both freedom and beer). iOS users are expected to shell out approximately two dollars to get to play the game. Android users can initially pay the game for free, but as they play on the second and third chapters, they must wait out a 30-second and 45-second "cooldown" period (respectively) before the song plays. F2P Android players also have song restarting disabled by default.

F2P players are not included in the release "census", for obvious reasons. Additionally, those who acquired the game illegitimately through black repositories for jailbroken iOS devices and leaked .apk's for Android devices are also (hopefully) not counted for the census.

I bought the game off Google Play (with the same price as the iOS version) because I've decided that taking a mandatory 30/45 second break between each song isn't fun.

I have a couple of gripes with Cytus, especially with the Android port, since that's where I play most of the time anyway. Firstly, the game rendering performance is awfully poor on my Asus Eee Pad Transformer TF101. I suspect that the primary reason for the lag is due to Nvidia implementing poorly-written Tegra drivers, where by doing so, they can effectively force game developers to optimize their games for the Tegra devices, rather than for every mobile GPU out there. The game runs smoothly on my HTC Desire HD, though there are some freezes here and there (but that's probably because of activities and apps fighting for CPU time in the background). There are also timing issues present within the Android port of the game, where a rather perfectly timed tap is registered with an annoying delay, turning some of my "Perfect" notes into measly "Good"s. So I can also hypothesize that some blame is to be put on the game developers themselves as well, probably because from my experience most games ported from iOS into Android are almost always badly implemented.

To solve the performance issue on my phone, I resorted to overclocking the CPU up to 1.2-1.4GHz, choosing the Performance CPU scaling governor, and/or closing every background activity and app that I can close. For my Transformer, however, overclocking the CPU doesn't seem to have any effect, nor does closing a couple of background applications. The only viable solutions I can think of are (1) just living with the game with bad lag and timing issues (I did get a couple of Million Masters with the tablet though), (2) Just play the game on my smoother phone (though thumb players will probably be a separate category for "competitions"), or (3) steal an iPad off an unfortunately picked friend who plays the game.

I also do hope that the game will offer its players the ability to import their own songs and use them in the game, though the iOS roots of the game will most likely prevent that from doing so, if the developers decide to make the iOS and Android versions of the game completely similar to each other in respect to features. It's the same thing that keeps "osu! for iOS" an unstable hack job for jailbroken iOS devices.

Sunday, October 7, 2012

Doing some work on a novel

Some friends and acquaintances of mine have noticed me writing and working on some sort of manuscript. It's neither surprise nor a secret, I am writing a book. More specifically, I'm writing a work of fiction. I've been writing a lot of prose fiction ever since I wasn't even in high school, though some of those works were lost either accidentally or intentionally by me.

I have had a lot of ideas for writing a fiction novel during the last five years or so, but none of them ever even made past the simple 10,000 word count checkpoint. The reasons are probably because I can't find the time to work, and that I can't seem to string together a coherent plot that doesn't entirely sound like I hastily pulled it out of my ass.

I am not going to put in any specific details on this novel that I'm working on, nor am I going to hand out a plot summary of it. Those things will come once the first self-edits of every chapter and scene in my novel are done and I'll have to go find and coerce an unlucky person to edit my work again. But here's a hint for the persistent: It's set in (sort of) present day September 2012 in the Philippines, and it has something to do with international politics. It's a work of fiction that branches itself out from real-world events of that time. A lot of the places I used in my novel are also very much real. The genre is mostly thriller with bits of mystery thrown in here and there.

To prevent myself from slacking off and procrastinating by just deciding to play Sid Meier's Civilization V or Payday: The Heist all day, I've set a short term and two long term goals for my writing. The short term goal is, write at least 750 words a day. Does that sound too easy for a goal? Not really, especially when you're trying to make the plot as realistic, plausible and detailed as something you can find in a Robert Ludlum novel. I have noted a few days where I was not able to meet my short-term goal, or even wrote a single word on the pending chapter.

The long term goals are 45,000 words and 80,000 words for the entire novel. 45,000 words is 5,000 words short of the word count requirement for the National Novel Writing Month (NaNoWriMo), though I have some recollections of their word count requirement being only 45,000 or even 40,000. The second goal, 80,000, is the average word count of a lot of popular fiction novels. The 80,000-100,000 word count range is also comically referred to as the "zone where the publishers and agents actually take your manuscript seriously".

I'm writing my work in vim, typesetting it with LaTeX, and outputting it in a PDF using pdflatex, because who needs "word processors" anyway? I also wrote a small Python script that calculates the word count of each individual chapter and the entire manuscript itself, and calculates how much (in percentage) I have done to reach my long-term goals. There is a margin of error in its calculation of word count, however, since wc also counts my LaTeX comments and commands as words.

Hopefully by the next week or two I'll be able to finish the entire first draft of the manuscript. I'll begin editing by then, and at the start of November, I'll begin work on another novel to participate in this year's NaNoWriMo.

Sunday, September 9, 2012

Debian Kit: Debian Squeeze/Ubuntu[Lucid/Precise] on your Android device

Because my very trusted and loyal IBM/Lenovo Thinkpad X60s has been "deskridden" for quite a while now, so to speak, I now turn to my Asus Eee Pad Transformer TF101 as my new mobile computer. Here are its basics:
  • It runs Android 3.0 Honeycomb when I bought it, but currently it's running on the custom Android Revolution 4.0.3 ICS ROM, though "custom" doesn't seem like the right word here as they [Android Revolution] tries to keep themselves looking stock-like.
  • It has a dual-core Nvidia Tegra 2 CPU, clocked at 1GHz a core.
  • It has this shiny dock with a shitty keyboard, but still, it sure beats having to use a software on-screen keyboard.
  • Did I mention the keyboard also serves as a second battery?
If you want more info on my Transformer, you're better off Googling it yourself and reading about them elsewhere.

The Transformer has been immensely useful for regular productivity tasks. The default browser, strangely named "Browser", and which I assume is based on the FOSS Chromium browser code, works well enough, though I keep Google's own Google Chrome browser with me as well (it's shinier, damn it). Both of them are great enough for casual browsing. For documents, I can easily access my stuff from Dropbox, though actually getting stuff into Dropbox is quite uncertain (though there are some workarounds for this). Polaris Office seems to be sufficient enough for basic document editing, though I'd like to liken it to a word processor built for a Vtech kid's "laptop". So most of the time I'm editing my documents through Google Docs, or not at all, since I hate word processors.

But I'm a student of Computer Science, a Software Engineer, and a hacker at heart, so this wasn't quite enough for me. In essence, the original "productivity suite" my Transformer offered to me at the start appears to be more appealing for children ("regular" Android tablet users might say the same thing to people with iPads, but I digress). So I started searching for solutions to my little problem.

My first attempt to fix the problem are, as ashamed as I am to admit it, using ready-to-use apps from Google Play. I got some text editors here and there, though they all sucked and couldn't hold a candle to Vim. I also grabbed a couple of C and C++ compilers, because sometimes I some code prototyping and I occasionally teach and help a certain list of people how to code. I also installed "Scripting Language for Android", or SL4A for short. SL4A, as far as I can understand, is a collection of interpreters and such for different scripting languages, most notably, Python and Perl; that you can run on your Android device, though it seems that native Android app development using scripting languages is still pretty much uncertain (sorry folks, you'll still have to live with Java).

But I wasn't satisfied with those yet. I preferred working in a command-line interface, so I needed a good terminal emulator. Unfortunately the one that you can easily get from Google Play will most definitely suck if you do not have root permissions on your device (this was before I decided to root the Transformer). Fortunately, there's Terminal IDE, a suite of command line software development tools that run on its own userspace. However, being jailed in its own userspace has some distinct disadvantages, one of these is that fact that everything in Terminal IDE is being jailed in its own userspace.

I tried SSH'ing remotely into my Thinkpad as well, though this effectively turns my Transformer into a dumb terminal, plus the Internet connections of the Philippines are too shitty to effectively maintain a stable remote connection.

Debian Kit


After a lot of lurking around on the web, however, I've discovered Debian Kit for Android. This little solution puts a complete GNU/Linux Debian installation inside your Android device, allowing it to work side by side with the Android OS, rather than, say, completely replacing or dual-booting alongside it.

The idea of a GNU/Linux distribution running inside Android isn't particularly new, however. Numerous people have gone lengths to do the same, though their solutions usually boils down to chroot'ing the distro inside Android. This means the distro will run in its own little "virtual environment" inside Android. The big disadvantage in this approach is that the distro's world is limited to that little environment, which means you'll have difficultly accessing the files on your Android device's SD card, etc.

Debian Kit does this differently. According to its creator, Debian Kit effectively makes Debian/Ubuntu run side-by-side with Android through cleverly-made symlinking and bind-mounting. It will allow you to access the different storage devices present on your Android device, which is extremely important, at least for me.

I won't be writing instructions on how to set up Debian Kit on your Android device here. If I did it would be completely redundant and unnecessary. The creator of Debian Kit has written adequate documentation regarding the installation and my install worked after I did one or two read throughs. Also, he made some screencasts for the people who does not RTFM.

Though, there is one important thing that he forgot to document, and that is manually adjusting Debian/Ubuntu's timezone. On a regular installation procedure of Debian, the installer automatically sets this up for you, but in Debian Kit this isn't present, so your timezone is automatically set at UTC +0. This is fine for you people living somewhere in the UK, but not for everybody else who aren't. This has been a pain in the ass for me for a long time until I finally found a solution through a bit of Googling.

The solution for the borked timezone is the here (courtesy of Geek Ride).

Right now I'm reinstalling Debian Kit on the Transformer because I thought by doing so, I could fix the timezone, but no it didn't, so now I'm about to configure everything again. Thankfully the only thing that's a nuisance to replace is my SSH key, but that should be easy to regenerate and remanage.

Wednesday, June 20, 2012

Some friendly requests to professors and instructors everywhere

This probably isn't news anymore for some people, but I recently jumped ship to another college and I do not reside anymore in De La Salle University-Manila. Old news aside, I like my new school, and I'm going to be staying in it for a good two years or so. The place is great (the places around it are better though), and most people there have quite some eccentric tastes and are actually interesting.

However, there are some do's and don'ts (mostly don'ts though) that I'd like to point out regarding my professors and instructors there. These will probably apply to everybody else out who are teaching to at least one other person besides themselves.

Don't put your class's/section's group on Facebook.

I for one try to avoid Facebook like it is an ugly part of town, but sometimes it just comes back like a bad habit and I end up being there anyway. For example, this post gets automatically advertised on my wall and every unfortunate person on my Friends list's news feed. Other notable examples include looking for someone, trying to communicate with people I barely meet every week, and checking out a group my professor made for the class I'm taking.

And the latter isn't really supposed to be there. Facebook is still a long, long way from being a good choice to organize serious groups, like groups between co-workers or, in my case, groups between instructors and students. For one, every privacy issue associated with Facebook profiles apply to groups as well. You really don't want outsiders knowing what your little private group is up to. That's why some companies opt for private corporate "social networks" because apparently people can't communicate on the Internet anymore if it doesn't involve a news feed or an instant messaging platform. I still communicate through old fashioned e-mail, and handle most instant communication through IRC (and sometimes VoIP), so that probably means I'm old.

What's a good alternative for Facebook groups? I'd have gone and suggested Yahoo!, but to me Yahoo! is just a silly company trying to be like Google but instead became a Google clone for those with inept computer skills and awful English. Google Groups is a good place to start, and there are also a lot of other services out there besides Facebook and Yahoo! that you can try out.

Stop handing out documents to students in formats other than PDF.

I like the Portable Document Format ever since it became an open standard at around the year 2008. It does a great job of preserving the original content and format of documents and its sheer portability and commonness is due to Adobe pulling a Microsoft move and telling everybody that their PDF reader and authoring tools are the only things that matter, when there are actually a lot more better readers out there and numerous ways to create PDFs. I can read PDFs on my desktop, my ThinkPad, my tablet, my phone, and my Kindle. And that is good.

However, some instructors thought it was a good idea to hand out documents to their students in their original, editable document forms. The "editable" part isn't the problem here, I actually do not give a shit whether I can manipulate my copy of the document or not. The problem is, handing out documents in such formats hinders portability, because, for example, files that use Microsoft's new formats (*.docx, etc.) look messed up when you're not using something that has Microsoft's name on it to open them. Sure, LibreOffice has done a good job of at least trying to preserve the original formats and looks of Microsoft .doc and .docx files, but when I open these files in my tablet or my phone, things get really ugly. I haven't tried opening .doc, .docx, or .odf files on my Kindle yet, probably because I think that's a very stupid idea.

Instructors should save all the documents that they're going to hand out to their students as PDFs - this goes for presentations as well. This saves me (and other students as well) a lot of time trying to figure out the original format of the file when LibreOffice is having a hard time opening it. Don't know how to save a document as a PDF? Your (probably pirated) copy of Microsoft Office 2010 has that functionality built inside it already.

Don't upload your materials to Rapidshare (or some other bad "filehost").

Right now as I'm typing this, I'm also downloading an economics textbook encoded as a PDF about 69 megabytes big. The size really shouldn't be a problem here - 69 megabytes are downloaded in less than 10 minutes by my connection on average. But right now the estimate says it's going to take a bit like 40 minutes to download (not adjusted to compensate for how badly Chrome estimates remaining download times). The problem lies where the file lies - Rapidshare.

Rapidshare has earned its share of popularity for being the [probably most popular] site that annoys people trying to access it and ripping off people stupid enough to avail of their services by coughing up some euros. The site throttles down your download speed when you're just getting your files for free, and you can't even download more than 2 files at once; both problems are remedied once you've given in to your sanity and you've decided to pay up. They're also not the only one doing this, there are countless of other "file hosts" out there ripping off each other's business models.

The solution for this would be to use an actually decent file host, like Mediafire, or create a Dropbox account and share the files from there. And if the file is really big, it's not too hard to just make a torrent out of it.

Oh, and after finishing the first draft of this post, reading through it two times and doing some edits here and there, my download from Rapidshare isn't even done yet. That means I'm probably going to be staying up late again trying to create a very minimal presentation that no one can understand unless they listen to me talk while I'm presenting. Thanks a lot for making me lose my sleep, Rapidshare!

Monday, June 4, 2012

Why I think Dota 2 going free-to-play is a bad idea

After the last school year (which did not end well, but that's not the point of this post), I've decided to try out being a beta tester (read: someone who can't wait for the game to be released) of Dota 2, the derivative of the immensely popular action RTS game Defense of the Ancients (whose roots started as a Warcraft 3 map), created by Valve (who also created other not-so-popular titles like Half-Life, Counter-Strike, and Portal). The process was simple. Go to the Dota 2 webpage/blog, fill out a simple survey about your Dota habits and skills (which I'm sure a lot of people have purposefully put in false information), and wait for Valve to contact you back with your Dota 2 "beta key". For most people, the "wait" takes weeks, even months. For me though, it's just 12 hours or so. Probably because of my Steam game collection and loyalty to Valve and Steam:

I actually have more games that would probably fit 5 or more screenshots, but listing them all here would make me look like a douchebag.

Anyway, after downloading Dota 2 and having fun with it, I've somehow accumulated a little bit less than 200 hours of play time in the course of less than a month. Which is not totally a bad sign for my productivity because I still managed to work on some hobby projects of mine here and there, and I merely substituted the countless games of Solitaire with Dota 2 every time I needed a break.

What I liked about the community of Dota 2 that it was seemingly better than that of Garena's (where most online interactions between Dota players occur) original W3 Dota. Gameplay-wise, people in Dota 2 actually intentionally choose support heroes to help their teammates. In a Garena W3 Dota game, if you happen to come up against a team with a solid lineup (not consisting of 5 carries), they're pubstompers and you should clear out immediately or you're in for a bad game. And there are really a lot of other differences between the Dota 2 and Garena W3 Dota community that makes the former more superior than the latter.

It is in my observations that I believe the relative "good" behavior of Dota 2 players is due to the mere fact that beta keys are limited and once they're banned from playing, it sure is going to take a hell lot of time to get another one. Kind of like Team Fortress 2 before it became Free-To-Play, nobody would dare to cheat (although some did anyway, with hilarious consequences) because they didn't want to waste the $60-$10 (depending on how early you bought the game) that they spent.

But now it seems that Valve has decided to turn Dota 2 into a free-to-play game and follow Team Fortress 2's business model to generate income, which is simply "to sell useless cosmetic items at ridiculous prices while taking advantage of people's gambling tendencies by capitalizing on selling keys that open special item crates". The good news is that the game is probably already in a complete working state and that Valve is ready to "sell" it to people. The bad news is that the game is now open for everybody to play, which includes the diverse species of 'tards that inhabit Philippine comshops, that I'm desperately so trying to avoid running into in games.

There were some comforting thoughts that came out of my mind after hearing the news, however. Steam's current way of game distribution is that every user account using Steam on a computer was given separate copies of games for themselves, even if they both owned the game. Which means there would probably hundreds of Steam accounts logging in a single computer in a comshop every month. Doing the math, that would mean 5GB~ (a single installation of Dota 2, not including the base Source Engine stuff) * 100 worth of data installed on a single computer, or 500GB. I highly believe that comshops do not have that kind of money to acquire hard drives larger than 500 gigabytes, nor would it give them any sort of business advantage for doing so. Also, every time a new user wants to play Dota 2, they would have to download the game again for themselves, which, given how immensely slow the average Internet connection in the Philippines is, would take a very, very long amount of time.

Also, Dota 2 has some very strict hardware requirements that would require beefy computers. Which means most comshops will probably not be able to play Dota 2 since they commonly employ Intel GPUs from 2005 as their graphics cards, unless the kids today are fine with playing games at slideshow speed (what has this generation come to?).

After writing all of that, I now feel kind of comforted that most kinds of people that I don't like to play with won't be able to play Dota 2. The game's matchmaker would also do good to keep me safe as well, since nowadays I usually get teamed up with and put up against respectable gentlemen who actually know how to play. And if buying from the Dota 2 store would guarantee me a spot in the Dota 2 community's civilized circle, I would totally throw my money in Valve's direction for the sake of my own sanity (sadly, not for the sake of my wallet).

Why I think GNOME 3 and GTK+ 3 is subtlety trying to kill off the other DEs

As someone who spends hours toying with the look and feel of his machine's GUI (with only quite a few handful of people appreciating these efforts due to the fact that people today accept the ugly fact that they all look the same), consistency is a very important factor in the overall aesthetics of my work environment. Every window and dialog should look similar to each other in shape, color and form. Begrudgingly, the only operating system/suite of desktop applications that has accomplished the goal of total consistency is Mac OS X. However, I do so believe [from experience] that consistency can also be accomplished in a GNU/Linux environment, provided you have the time and patience to configure your system.

Most applications that use a Graphical User Interface (GUI) on GNU/Linux usually use either GTK+ (GIMP Toolkit, or for those who like extremely long names, the GNU is not Unix Image Manipulator Program ToolKit) or Qt. GTK+ is by far the more popular choice for developers, although Qt has done a bit in terms of catching up (I personally prefer Qt over GTK+, but that's probably because I have not gone knee deep in GTK+ programming yet). GTK+ is primarily used in the GNOME Desktop Environment, while Qt is primarily employed in the K Desktop Environment.

Because of its popularity, other DEs besides GNOME use GTK+ as well. XFCE (my personal choice and longtime favorite) and LXDE use it, as well as many other less popular DEs. Even if you only use a Window Manager (WM) for minimalism, most of the GUI applications you are going to run are probably using GTK+.

With the introduction of GNOME 3, however, the devs at GNOME also introduced a new version of GTK+, GTK+ 3. The third major release of GTK+ includes many new widgets and features that we shouldn't really care about (unless you're a developer developing GUI apps in GTK+), but it also introduced an annoying side-effect: the lack of backwards compatibility.

The explosive popularity of Ubuntu's Unity and the distributions that choose to ship with GNOME3 by default has in turn raised the popularity of GNOME3 and GTK+ 3 in return. Which means more developers are now aiming to target the demographic that uses Unity and GNOME 3 by using the latest version of GTK+. While this is nice for people who use Unity and GNOME 3, it's not really that beneficial for those who use DEs that only use GTK+ 2 by default (e.g. XFCE).

Here comes the problem: When an application uses GTK+ 2, it loads the GTK+ 2 theme that the user chose for their environment and uses the widgets and pretty things from that theme to decorate itself. And when the application uses GTK+ 3, it does the same except this time it loads up GTK+ 3. What happens then, if the application does not find a working theme for the GTK+ version it's running on? It will start to look like this:


Bleh, right? It kinda reminds me of the classic Windows look, when everything was all boxy and threatened to molest your eyes if you stare at it for far too long. What happened here is that gitg (the program above) uses GTK+ 3, but the GTK+ theme I have set on my machine doesn't support GTK+ 3. So gitg had no choice but to fallback to the ugly defaults that are only suitable for the root user.

It appears that the only viable solution for this is to find GTK+ themes that work in both GTK+ 2 and GTK+ 3. Which is a nuisance because there are only a handful of themes right now that support both versions. So when you find a really cool GTK+ theme online (hopefully it's not something that's trying to rip off OS X's look) and you've decided to check it out and install it, some applications are going to look completely out of place when they can't find the appropriate widgets from your theme for their GTK+ version.

But then again, some theme developers are kind enough to support both GTK+ 2 and GTK+ 3 engines to appeal to a wider audience. But only "some", though. So that means the blame partly goes to the theme developers as well, who are too busy trying to rip off the look of OS X and not investing that time to make rip offs of the OS X interface that works on GTK+ 2 and GTK+ 3.

And while we're on the topic of desktop environments, allow me to shamelessly insert a screenshot of my working environment (which is in no way looking like a rip-off of OS X):


Tuesday, February 28, 2012

Why I suddenly want an iPod Nano

For some reason, the 6th Generation iPod Nano is currently on my wish list. That's weird, because I usually do not like Apple products, and mostly I just hate them. But the latest generation of the iPod Nano (as of this time of writing) has fulfilled one of my wishes: To make the conventional timekeeping watch do more than just tell me the time. I've tried that with a few sports watches, you know, the ones that come with timers, countdowns, barometers, a compass, and even altimeters. But I'm not trekking mountains or anything to use an altimeter, nor directionally-challenged to use a compass, or even too obsessed with the weather to use a barometer. Also, those watches are bulky.

And I am also in need of a more convenient portable sound system. Right now I roam around with my preferred pair of earphones connected to a Bluetooth headset hung around my neck, like a pendant on a necklace, while that Bluetooth headset is, in turn, paired and connected with my phone. I like this headset because it allows me to change songs whenever I don't like the one that's currently playing, since I play all my songs and just shuffle them around. Also, if someone is calling, I don't have to pull out my phone to answer it, I can just press the Answer button on the headset to answer the call, then I'll initialize the customary "Hold up I'm talking on my Bluetooth headset" pose (which is putting your index finger on the earpiece and bowing your head a little) so that I don't look like I'm talking to myself or to a random person in front of me (an unfortunate side effect of Bluetooth headsets).

Anyway, I'm here to ramble about the 6th generation iPod Nano, not my Bluetooth headset. And since I'm lazy, I'm just gonna post the things I like and do not like about the device in question in a list form.


What I like

  • The watch form factor. The iPod Nano isn't actually designed to be worn as a watch, however, some guy probably looked at it and thought, "Hey, I can probably put a strap on this and wear it around my wrist".
  • Low-profile. The iPod Nano is tiny, and I like that because I don't really like having big devices strapped on me (my phone is an exception).
  • The plethora of other features on the phone. Like the pedometer and timers, which will probably be useful when I start running, and the FM radio plus other stuff.

What I don't like

  • iTunes lock. This is given for all iPods and iDevices, especially those which are new. New iDevices do not allow the user to interface with their computer(s) with something other than iTunes which is a damn shame because (1) I do not want to boot into Windows just to manage my music, and (2) I hate iTunes, it's clunky and slow as hell.
  • No Bluetooth. I would've liked the iPod Nano more if it had the capability to connect to a Bluetooth headset, because I think having a wire run up from my wrist looks kind of weird in general.
  • No video playback. It would've been nice if the iPod Nano had video playback capabilities, but no, it didn't.
  • Non-expandable storage. 16GB of storage might seem enough at first but I might need even more when the time comes. Sadly, I won't be able to buy a larger SD card when I need to because Apple doesn't use them.
  • No GPS/Navigation support. Having a watch tell me where I am would be very awesome, not to mention convenient.



Right now though, I'm sensing that Apple is about to release a new generation of iPods again, particularly the iPods that aren't the iPod Touch (stop fucking calling it an iTouch for fuck's sake). So I'm thinking of buying the 6th generation iPod right now instead of waiting for the 7th because I am certain that the 7th isn't really much different from the previous one, I just heard rumors that the new one is much like the 6th but with a camera (of all things!), but I don't believe in rumors, the entirety of religion is built on that shit. Also, I think that if the 7th generation iPod Nano did come, it's gonna take a while for it to be sold in the Philippines (because this country is slow on everything), and if it does get sold the accessories for it, especially the watch strap, is also going to take a while for it to reach the country.

Still, I'm in a bit on a financial lockdown right now, and I'm just doing my part in being frugal and saving up money so that I can buy one myself. If you happen to know and see me personally though, you can try and donate to my worthy cause. :)

Sunday, February 26, 2012

My review of the updated Blogger interface

As I've stated in my previous post, I've just come back to writing on my blog again. It feels really good to be typing nonsense again, especially since my ThinkPad has one of the most comfortable keyboards I've ever used.

Anyway as I was writing my previous post, I stumbled upon a small bar with blue text on the top of Blogger's composed page. It said something along the lines of "Try Blogger's new interface". I was intrigued, because recently Google has been redecorating and redesigning the interfaces of many of their web services, starting from Gmail to Youtube and Docs. Being tired of the default Blogger interface (seriously they've been using that for more than 10 years), I was intrigued and decided to give it a try.




Consistency

Finally, Blogger looked like a proper Google Web Service rather than something separate from the rest of the services. The interface is highly inspired from Google Docs (which I greatly use and recommend) and Google+ (which I do not really use but highly recommend for other people who do not like Facebook). The sense of minimalism is apparent in the design, as well as intuitiveness. All major functions that you are ever going to need are on top of the area you are editing your post on, but then again, that's the de facto interface design of mostly everything you type text on.

However, added on top of that editor and its buttons is a row of very cleanly-laid and good-looking text and buttons, as well as your Google+ name and picture. However, the prominent "Google bar" that appears on most Google services such as Docs, Calendar and Gmail appears to be missing, but I don't really care since adding it probably makes it look out of place. It might also prove to be quite distracting.

I highly suggest that Google replace the buttons on the main toolbar though -- they appear to have been taken from Blogger's last look. I suggest that they use something similar to Google Docs' monochromatic, minimalistic buttons.


Editing

As a coder one might expect me to prefer editing my post in Blogger's raw HTML editor instead of the WYSIWYG editor Blogger provides. That would have been the case before Blogger updated its interface, as I find the editor to be ugly and boring as hell. However, with the new redesign I'm now more apt to use the WYSIWYG editor instead. It feels so clean, and the minimal design always inspires me. But that doesn't mean I don't need the HTML editor -- I still use it to fine-tune the elements of my post.

While I'm on that topic, the HTML editor appears to be very well designed as well, and it is noticeably wider than the Compose mode (I will now address the WYSIWYG editor as the Compose mode from now on). That's good because HTML tags can take up a lot of space and no one likes too many newlines.


Cons

No interface is complete without its flaws. As such, I will now proceed to list them here in this section.


No option to easily change formatting styles in Compose Mode

Someone who is experienced in word processors would prefer using "Formatting Styles" to format their bodies of text rather than just manually editing them. This is important for consistency, and it can also save you a lot of time.

However, on Blogger's Compose mode, there does not appear to be a menu or a button in the main toolbar that allows me to quickly switch formatting styles. This is disappointing because I have to go to the HTML editor and wrap my headers into appropriate header tags in order to turn them into headers. And yes, I know it will work as well if I wrap them in tags inside Compose mode, but it would look pretty much out of place with the rest of the interpreted text.


No indication of whether your post has been (automatically) saved

Google Docs has this neat little feature on the autosave that tells me whenever the document I'm working on has been automatically synced and saved to Google's servers. I really like that feature because I am paranoid that my files might not have been saved and that the next unfortunate crash of my browser would be the end of my work.

Blogger does not have that feature. The system automatically saves your work everytime you stop typing for a while, but it does not have that persistent indication that your work has been saved. While you are not typing to ponder some thoughts, Blogger automatically saves your work, and the Save button on top of the main toolbar briefly turns into a "Saving..." button that indicates that your work is being saved. While that is quite comforting, sometimes I'd like to know that Blogger has already saved my work some time ago while I stopped typing to ponder my thoughts, as I usually do so for extended periods of time and I usually leave myself in a state of short term memory loss afterwards.

My suggestion? Put something that tells me when the last edit I made was saved somewhere. I'm not saying the Save button should be removed entirely (as shown in Google Docs), because I think for this matter, it is still necessary.




I think that's all I have to say about the new updated Blogger interface for now. It's pretty, intuitive, and most importantly, minimal. There's just a couple of stuff that they should try to fix here and there. I'm quite too tired of further scrutinizing the interface and adding more feedback, because at the time I'm writing this it's already really late. But I do expect improvements to happen in the future, somehow.

I'm back (after a long time)

For some reason I find myself writing again in this personal weblog/blog/journal/whatever of mine, after a very, very long time. The last post I made was dated around September of 2011, and now it's been 6 (or 5? My inborn capacity to count is very limited) months since I've been here. I've had many reasons why I've suddenly went dark for quite a while.

First off, and might I add is the most obvious reason, is that I got lazy of writing. I think I have lost my passion for it, but thankfully not my touch. I might have silently realized that I like writing code better than writing creative compositions and self-ramblings. But yes, I probably just got lazy.

Second, I'm trying to avoid Facebook. I made a pitfall during the time I started this blog (which is like, 2 years ago), in which I used this Facebook app (do they call it an app? I don't really know) that tracks this blog and then posts on my wall whenever I make a new post. For some reason I now find that annoying because I don't like people thinking I'm active on Facebook (I'm not, at least, I'm trying not to be), but then again, Facebook sure reels in a lot of traffic. So I'm in the middle of thinking whether I should leave it as it is or remove it.

Third, well, I've been busy with life, particularly the lazy parts of life.

I can't promise myself or to other people that I'll continue to write on this blog, but my fingers have been really itchy for a while and they're tired of typing any more code. There's also lots of stuff I wanted to write about, so maybe I'll be actively posting on this blog for weeks to come.

Hopefully.