Posted on 24-05-2011
Filed Under (Computers) by Garoth

I’ve been a long-time Google fanboy, and quite frankly, they have all my personal data. They have my calendar, all of my e-mails, all of my search history, most of my documents, some of my code, my website statistics, RSS feeds, and most of everything else. In my spare time, I enjoy YouTube and chat with friends on Google Talk. (In fact, I refuse to use anything except Google Talk and Skype.)

So for me, the Android platform is amazing. I was recently given an awesome Motorola Xoom tablet running Android 3.1. I was very skeptical about tablets before this — I mean, what are they really good for? They don’t have a screen as big as my monitor for watching video, they don’t have a keyboard good enough for serious typing, they aren’t phones, and they don’t work particularly well for note-taking. However, what niche they really fill, I realized, is convenience.

For example, I play my music via a client-server system called MPD (Music Player Daemon). Basically, the client and music playing services are decoupled, and you can connect to the daemon remotely. Sure enough, there are a dozen MPD clients written for Android. So I can be lounging in my living room with my computer in the corner, open my Android MPD client, select what tracks I want to play in a rich GUI, and have my more powerful sound system play it.

So imagine the time when rich, touch based interfaces are simply lying around everywhere and you have these powerful quick utility, always-on devices on hand. In the not too distant future, we can be sitting in our smart homes and thinking about how the lights are just not romantic enough. We’d reach over to the table beside our couch, press a button on our tablet, and have the lights be dimmed. Or perhaps we’d change our air conditioner settings by dragging a slider rather than fighting with an irritating 3-button 8-bit interface that desperately wants to confuse you.

There’s a lot of potential for tablets being convenient interfaces to these low-level devices or services. In the air conditioner example,  air conditioner manufacturers would love to cut costs by designing devices that just have a simple api rather than a complex physical user interface. You would plug your air conditioner controller to your tablet via USB. There, a wizard would guide you through setting up the controller with the wireless network information. Then, you unplug your tablet. The air conditioner controller connects to the wireless, where it is discovered with a zero-conf system on the network. You open your tablet’s air conditioner application and suddenly have a simple, rich interface to use. On a tablet, it’s very easy to program a rich interface. In a small, cheap electronic gadget like an ac controller, it’s pretty complex and hard to do. This separation of tasks is great for both users as well as manufacturers.

Android’s a very promising platform that’s backed by one of my favourite companies, using all the technology that I’m already familiar with. I’m really excited about where it’ll go next, and to see how deeply we integrate these new-age devices into our lives in the forthcoming years. With that said, I really need to finish learning how to develop for the system. It seems like it’s right up my alley — being Java and Linux.

“Why not iPad!?” some may shout. Because we deserve better, as a species, than to be forever in the hands of Apple, like we have been in the hands of Microsoft. Open platforms, like open standards, are better grounds for innovation and overall advancement than closed systems. This is why Linux is quickly growing in share, why IBM’s open-hardware architecture won, and why HTML 5 is so much more promising that Flash ever was.

(1) Comment    Read More   
Posted on 24-05-2011
Filed Under (Computers) by Garoth

Dear Archlinux users at The University of Waterloo, the following is the wpa_supplicant/netcfg configuration file that will work with the eduroam network found around campus. It was a pain to figure out

CONNECTION='wireless'
INTERFACE=wlan0
SECURITY='wpa-configsection'
ESSID='eduroam'
IP='dhcp'
DHCP_TIMEOUT=40
CONFIGSECTION='
    ssid="eduroam"
    scan_ssid="0"
    proto=RSN
    key_mgmt=WPA-EAP
    group=CCMP
    eap=PEAP
    identity="USERID@uwaterloo.ca"
    password="PASSWORD"
    ca_cert="/usr/share/ca-certificates/mozilla/GlobalSign_Root_CA.crt"
    phase2="auth=MSCHAPV2"
'
(2) Comments    Read More   
Posted on 11-04-2010
Filed Under (Programming) by Garoth

Good day.

I’d like to announce the completion of the gem2arch script to the 1.0 feature set. This script has several interesting features:

  • Invoked as “gem2arch sup”, it will generate a PKGBUILD for sup with the dependencies from the gem specfile. It will automatically fetch the gem specfile from the gem server. This PKGBUILD should be nearly immediately usable (but will lack md5sum line). The script will pull in the description and use your name from makepkg.conf if it is set there.
  • Invoked as “gem2arch -dq sup”, it will list the dependencies that are given in the sup gem. The purpose of this is to be able to write shell loops along the lines of: gem2arch sup && gem2arch -dq sup | grep -Ev "list|of|dependencies|to|ignore" | while read dependency; do gem2arch ${dependency}; done
  • A man page is included with the tarball.

Anyway, you can get the script here: gem2arch-1.0.tar.gz. Alternatively, you can get a git clone: git clone git://git.mercenariesguild.net/gem2arch-garoth.git

In general, the focus of this program was clear code and very simple usefulness. There is another gem2arch script on the web that predates this script, but the code was somewhat unpleasant and the old script required more work to use. This gem2arch’s in no part uses the old gem2arch’s code — it is a fresh rewrite.

I must massively credit David “davekong” Campbell for his work on this gem2arch script. I started working on this script many months ago, but lost interest (as I am apt to do…). Recently, he came along and wrote me many patches that improved the code and fixed up the rough parts. He also very graciously helped me in creating all of the side things that I was lazy with such as man pages and so forth. I also very much appreciate him beating me with a stick and forcing me to drop some of the crazier features that my original script had or planned to have. I can only do him the honour of calling him a co-author, but really, this wouldn’t have been pushed through the finish line without him. What a great guy he is to help a stranger randomly, eh?

(5) Comments    Read More   
Posted on 11-04-2010
Filed Under (Art) by Garoth

From time to time, I think to myself: “Man, I wish I had kept up drawing. I’d have been really good by now if I did it more consistently…” And so for a while every once in a while, I get the urge to draw or paint. It usually lasts for a bit, and then I become distracted by something else and all that effort is lost.

But regardless, here’s something that I started working on recently. I’m not sure how much further I’m going to get with her, but I’m happy with the way it’s turning out so far. Note, of course, that I suck at pretty much everything that’s not presented. My colouring skills are grossly pathetic. My shading is fairly poor these days. My speed can only be described as slugish. Even drawing faces, which I did a ton of, is somewhat lacking for me lately.

I like to think of skills art in terms of leveling up. It is very much the case in art that you can obtain a basic education, and then you must only practise frequently for a long period of time to become a skilled artist. Sure, there are always more art programs to learn, more filters to experiment with, new materials to manage, and new styles to solidify. Ultimately, though, I feel like I’ve got the foundation that I need. Can I simply just “grind” enough to become very good?

In other news, I’ve ordered a copy of Chaos & Evolutions from blender.org. If you’re unaware, Blender is a highly respected open source 3D modeling program. A couple times a year, they make open-source short films and sell them online. Regardless, the concept artist for the latest film, Durian (ie. Sintel), has published a DVD describing his workflow and showing off some 8 timelapses of himself painting. I was extremely impressed by his free timelapse that you can see the announcement/link for here. I’m hoping the DVD (which I think is some 10 hours by the way) is similarly inspiring.

Another thing that impresses me about David Revoy (the aforementioned artist) is his use of open source tools. I know that there are many Adobe / Autodesk fans in the artist community — and there is much merit in these tools — but I’m extremely impressed at the quality of open source tools these days. I think David Revoy very much shows that it’s possible to produce extremely good artwork using an entirely open stack. In particularly, I’m involved in the community surrounding the open program, MyPaint (I offered to host their wiki and am currently doing so). For the interested, I used MyPaint exclusively in the production of the above sketch and the previous blog post about the new Dragoon concept art.

Cheers.

(1) Comment    Read More   
Posted on 11-04-2010
Filed Under (Dragoon, Art) by Garoth

Good day! No, I’m not dead, I’m just lazy when it comes to blogging. In fact, I’ve actually been considerably more active than ever recently. I will attempt to update my blog from time to time about my activities.

In this post, I’m showcasing a wildly different style for Dragoon that I came up with several months ago. I think it’s rather nifty.

Tell me what you think :)

(2) Comments    Read More   
Posted on 07-07-2009
Filed Under (Website) by Garoth

A year after initially intended, I’ve moved to TechMight hosting and cancelled my hosting arrangement with MidPhase. I tried to do this move a year ago, but TechMight wasn’t extremely well set up at that point.

The main reasons for the switch are:

  • TechMight is run by my old online friend.
  • I’ve been paying for quite a long time now for part of a TechMight-run server for Tremulous.
  • TechMight is affiliated with my good friends at The Mercenaries Guild (mercenariesguild.net)
  • I’m not paying anything extra to have web hosting there while my requirements are low, so I’m in effect saving ~100$/year by not having extra external hosting.
  • I know the “staff” so I get good service + ssh + whatever else.
  • My requirements aren’t praticularly giant in a lot of areas, so I don’t need the high amount of bandwidth/space that I was being given at MidPhase, but I do like having SSH access and the ability to run some cool Django / RoR code on it eventually.
  • It was extremely easy to switch, because MidPhase and TechMight both have CPanel. CPanel supports doing full backup/restore, so a TechMight techie just transfered the whole thing for me in about 15 minutes. Then I just had to change the DNS and victory was mine.

Anyway, so for me, TechMight made a lot of sense. More than a for a lot of people, probably. However, as a plug for my group/friends, TechMight at the moment is a fairly small not-yet-officially-running operation offering high quality hosting to those that know about it. Because the team is small with few customers, the support is high quality and willing to accomodate. If you’re looking for some off-beat probably cheaper than normal, high quality hosting supported by TechMight and The Mercenaries Guild (we have some smart people there), then I do recommend this.

Oh, also. To my surprise, TechMight e-mailed me to say that some of my software (web software) is outdated (I guess it’s an automated message) . MidPhase never did that — anyway, so I guess I’ll be making a stab at upgrading things later and hope it all goes smoothly!

(0) Comments    Read More   
Posted on 01-03-2009
Filed Under (Games) by Garoth

Indeed I’ve had an interesting time trying to install the EVE Online demo on my Linux computer. I think it’s an interesting story.

The background for this story is that I saw an ad that EVE was doing a demo and somehow knew that Linux was available. Why I wanted to try it, I don’t know really. I’m not an MMO player typically, but I thought I’d give it a try since there was a demo. Plus, I have a friend who’s been interested in the game for quite a while now.

Problem zero, though, turned out to be this. I registered an account with EVE before I talked to that friend about me trying it out. Turns out that if he sends me a special invite, I get a 21 day trial instead of a 14 day trial. That’s really cool and thoughtful of him, but it means I need a new account. And guess what? My username’s taken. Heh. Anyway, no big deal, but I have two accounts now.

Anyway, so the first hurdle was the simple fact that they didn’t make a package for my distro (not that I expected them to), and they also didn’t make a distro-agnostic installer of any kind. They also didn’t explicitly that “downloading this will give you just what you need to make a package” or anything like that. However, they were interestingly thoughtful enough to provide “Slackware/Gentoo” packages, which are just a tar.gz with a folder/file structure like your system so that you know what goes where. So, I unpackage the tar.gz, hackily add the .PKGINFO file that my distro (Arch Linux) requires, and packed it back up with an appropriate filename. It installed fine, and I was off.

So then the next small problem I had was the fact that I’ve got a somewhat peculiar setup with my Python (which a lot of EVE/Cedega’s Linux tools are written in). Anyway, so that’s entirely my fault, but I’m somewhat used to it so I had a pretty good idea how to fix it.

Anyway, so I finally get the package installed and my system set up so that everything is ready to run. The stuff that I installed, though, is not the game itself, it’s simply just some tools that fetch the game (or updates), install it, set it up, etc. So really what I just installed was the installer. Hmm. I run the installer, and it goes and downloads the first big file that it needs (presumably the EVE client core). It finishes the download (which takes 30 minutes at 500kbps). It then pops up an error informing me that it can’t write to a folder in my home directory. This is obviously somewhat worrying to me, and by the looks of it all permissions were set up properly. Also, it was “courteous” enough to delete the client that it downloaded from /tmp when it’s done. Erk. Right, so I know I can’t do much without the client, so I have it download it again, but this time I copy it before it has a chance to delete it. Conveniently, there is a check that it performs that if you have the client in your home folder, then it doesn’t download it again.

Anyway, so the next big problem was that despite the fact that it knew not to download the client twice once you had a copy in your home folder, something seemed to be amiss with the verification of that copy. Technically, what I mean is that when I tried to run the installer again, it failed due to unmatched md5 check sums, and asked me if I wanted to download it again. Obviously, I don’t, since it takes 30 minutes. Eventually, after a bit of digging around in the source code, I find a bit of a Python script that handles the checking. I disable it. I don’t need no stinkin’ check summing, you silly code. I love how I have the code to the install tools though, even if it’s not open source. Sure made my life easier.

Okay, so after I disabled the checksum, it did manage to get a bit further, but now I just started having errors left, right and centre. It can’t find this file, it can’t copy this here, it can’t write to that, it can’t bloody do anything. So being a good hobbyist problem investigator, I tried a big pile of things from trying to arrange the files for it myself to modifying more installer source tools, to checking on the web. In the end, nothing helped. After an hour or so of slowly getting progress, I suddenly have a possible realization. It can’t write to stuff that it should? Oh God. Maybe I’m out of disk space. Turns out… yep. I had exactly 0 bytes of disk space because the installer liked to copy big things around a lot, and I didn’t start with very much disk space available. I delete some stuff, and eventually my problems start to go away. I still had to run it a couple times and to a little bit of copying, but by far, things went much better and it was pretty easy in general.

Okay, so the thing finally is set up. At the end of the installer, the game is automatically run. One thing I notice right away is that my cursor is a lovely square of multicolored pixels. From what I gather, this was not the intended effect. This is still unsolved at the moment, and I’m not in a hurry since it’s non-crucial.

Okay, so the game’s welcome screen is rather pretty aside from that, and things seem well. I get a notification saying that my client is out of date and needs a patch. That seems kind of sloppy to me, considering I just downloaded it, but it’s reasonable that they got lazy and didn’t patch the one I downloaded. I click to the next screen. It tells me that the new patch that I’m downloading is going to be… 0 bytes. Huh. Now that’s efficient. I click something affirmative. It kindly tells me that the file blahblah-eve-blahblah-patch-blah.0.0981337 is not found on the server. That’s an interesting turn of events, eh? It asks me if I want to go to the support page. At first I was reluctunt seeing as it’s a “support page” and to me that sounds like “forum or useless info page” but it turned out that it was a download of the patch that I was trying to install. Maybe? It said that my platform was Windows. I was a bit conflicted on this. I realize that I’m running the game through Cedega, so technically it’s pretty much Windows. But it’s not actually Windows, and the patch applying tools is a Windows binary. Still, it didn’t seem out of the question. Upon examining the URL of the page, it had some information that said stuff along the lines of “TargetSystem=win”, “RealSystem=linux”. Okay, fair enough.

So I download the patch exe. I figure I’m supposed to run this and make it patch my client. Sounds good to me. After searching around on my system for a while, I was unable to find a working copy of cedega to use with it – EVE seemed really tightly tied into the stuff I found, and it seemed like a lot of work to separate it, so I decided to try wine instead. Wine seemed to handle it rather well, and I had a proper window and whatnot. It asks me to enter the folder of EVE, so that it can get to the patching bit. I try a few different folders since I’m not sure what it means. The one that made the most sense to me is the one under Program Files in my fake C drive that cedega (and wine) use. Uhm, so it turns out that that’s not cool with the patch installer, and it says that it’s not the EVE folder. (Except, well, that the bitch’s wrong. That totally is the folder.) So I tried copying the patch exe into the EVE folder on my C drive there. I ran it again, this time put “./” for the path. It seemed to like that just fine, except that when it tried to actually patch the game, it failed and told me that a blank filename was at fault. This tells me that the thing knows that this is the EVE folder, but is unable to actually know the filenames or something. Kind of retarded, no? Anyway, so as a guess, I move the patch up a folder from EVE, and try again, this time putting just “EVE” for the folder path, hoping it assumes relative to current place. Turns out that’s exactly what it liked, and it started patching. Not too long from there, then, it tells me that a certain file can’t be patched, and that means that everything is corrupted and ruined forever. Lovely. I figure maybe this is my doing because of the disk issues before. Maybe some file didn’t quite finish writing and something something. So I delete my .cedega folder, my client, and tell it to try installing again. 30-40 minutes later it’s done (with no problems this time, wow). I try again, but everything is in the same state. EVE’s cursor is still the work of Picaso, the patch still can’t be found on the server, and the patch exe behaves identically. What can I say? Pure quality. Still, the welcome screen is really nice, and I’m not even just being an asshole.

Anyway, so despite not having EVE running yet, I’ve realized some interesting things along the way. For one, I really enjoyed trying to beat it into working. For some twisted reason, after years of using Linux, I’ve begun to enjoy debugging and fixing problems. So far, my motivation for installing EVE has not been so much interest in it, but rather interest in getting it working on my system. I think I’ve also started to develop a knack for things, because I several times just guessed right at what could be wrong. Another thing, relatedly, is that I really have improved. I remember a few years ago, when I first started, everything was horrible. I was using Fedora Core 3 and stuff would just break. It’d take me forever to fix things, and it was hard to do. When I was a mega noob back then, if I didn’t see a package for my distro, I’d probably have stopped there. “I don’t know what to do without a package!” Now when I don’t see a package, I have the ability to make one or hack one together. This is helped by the fact that Arch has a ridiculously simple package format and build system, but anyway. I probably would have also stopped when it refused to run at all at first. I probably would have stopped when it refused to properly download and unpack the client. It seems to me that I’ve really come a long way as a Linux user, and I think that once you reach a certain Linuxy threshold, you start to really be into stuff like tweaking and fixing your computer system. Anyway, so to all those people out there that I’ve met on IRC that are sometimes overwhelmed by how much there is to learn on Linux to be any good at it, don’t worry. Just stick to it and give yourselves a couple years and it’ll get much easier for you. Really.

And as a note, I’m not done fighting with EVE just yet. I’m pretty sure I can get it working, though I should probably defer to the wisdom of my EVE-playing friend about the patch thing…

(2) Comments    Read More   
Posted on 11-01-2009
Filed Under (Dragoon, Art) by Garoth

Hello, folks.

Risujin and I have gotten together again to make a small sidescroller on the side. This is being actively worked on. Have some concept art:

I’ll fix this post up later probably.

(2) Comments    Read More   
Posted on 29-10-2008
Filed Under (Plutocracy) by Garoth

Hello folks,

I know I haven’t been posting a tremendous amount lately, so I feel like you deserve a nice big update with a lot of recent pictures.

I’d also like to give a big shout-out to my buddy John “Evilchampion” Black for writing a couple thousand lines of code over the last month or so and doing a great deal of the heavy lifting for the topics I’m about to explore.

Also a little shout-out to my old friend Ben “Benmachine” Millwood for recently starting to get involved. Here is hoping that Benmachine and the other developers continue to find a love for working it Plutocracy.

No shout out to Asema though, who has somewhat mysteriously disappeared. Oh wait, whoops. ;)

Anyway, enough of that blah blah. I know you people come here for the images.

So, when you start up a game, and join a team, you can sail over to some land and buy yourself a shipyard. Normally, you would have to have enough resources on your ship to do this operation.

And here is the shipyard.

Then from the shipyard, you can select a ship to build. In the example, I’m going to select the super sloop, which is our fast testing ship.

And the super sloop lives:

Note, then, that if you select one ship and right click on another, you get a context sensitive ring menu. Because these are both my ships, the option available is “Follow.” This works.

However, if an enemy ship (green nation in this case) shows up, you can attack it!

My ship will then sail over to it…

And a little battle symbol appears to show that a battle is ongoing. The symbol is red in this case in order to show that I (red) am attacking.

But because the opponent had more crew and gets a benefit for being the player attacked, I lose my ship D:

Cool stuff eh? Not only that, but a lot of this gameplay has been translated into Python code, and that’s my next topic.

After Risujin stopped working on Plutocracy, I decided to take things in a slightly different direction. The plan was this: we make Plutocracy into a Python module, and write the logically complex parts of Putocracy in Python. This way, the C code can do the heavy lifting, but writing mods and core gameplay is relatively easier. The hope is that this will make the game more accessible to new developers, and faster to program once the framework has been created.

This is where Evilchampion has made his tremendous contributions. He has single-handedly spearheaded this operation and has done a very good job. The current HEAD in the master branch has his changes, and it is pretty much entirely stable and bug free.

Another interesting benefit to using Python is that we now have access to Python libraries. For example, we’ve recently been giving some serious thought to using Twisted for the networking code. Twisted is a rather amazing Python library, supported by organizations like LucasFilms, Google, and Canonical. This library makes networking so easy that just about anyone can do it. I wrote a TCP server + client in about 10 minutes without knowing anything of Twisted to begin with and just using the online documentation. Great work, Twisted developers!

Our current greatest weakness is the networking code. It tends to lag, and have problems. This morning, Evilchampion discovered a potential bug that may fix a great deal of the problems. However, Twisted may still be a good idea as it makes life very easy and provides easy threading, easy support for a lot of protocols (like, say, what if we want to use IRC for chat someday?), and of course asynchronous data transfers.

Oh, right, and I’ve finished the first version of the website, with content. Check it out — plutocracy.ca. Could probably use some more screenshots, but all the blah blah is there.

(5) Comments    Read More   
Posted on 22-09-2008
Filed Under (Plutocracy) by Garoth

Small but important update: I’ve obsoleted the SVN repository in favour of the new git repository. I recommend that anyone who has a copy of the source from SVN to delete what they have and get the git version instead. To do so, you have two options:

  1. Fast way over the git protocol: git clone git://git.mercenariesguild.net/plutocracy.git
  2. Slower way over the http protocol: git clone http://git.mercenariesguild.net/plutocracy.git

Also, I’ve set up gitweb so you can look at what’s going on in the plutocracy repository without having to check out the source code. The location for that is:

http://git.mercenariesguild.net

Easy enough. If you’re wondering, The Mercenaries Guild is an online game and project oriented group that I’ve been involved with for several years now. They were kind enough to provide repository and http hosting for the project.

In other minor news, a nice guy called Asema came by looking to get involved with the project as a programmer. I now have a full time job (as of a month ago or so), but still continue working on Plutocracy as much as I can. The website is probably going to be finished sometime this week, and the 0.1 release and call for developers would happen just after that. Immediately after, I intend to start working on re-designing the specifications for the game and will be open to suggestions from the community.

Cheers.

(0) Comments    Read More