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.

(8) Comments    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-03-2008
Filed Under (Computers) by Garoth

It’s not much of a virus, but it’s sure worth seeing. Some “design group” has put together a “virus” that makes all desktop elements fall as if affected by gravity/physics. This whole thing seems very questionable to me, considering:

  • It’s not a virus — just a one-time thing
  • A design group programmed a non-viral virus for the Mac?! Seems unlikely.
  • As far as I know, they’ve only shown it happen in a video. I don’t think it’s been distributed at all. No way to tell if it actually works.

Still, it’s stylish and funny. Worth a look — watch the video at Dazeen. Here is a (hotlinked) preview:

(5) Comments    Read More   
Posted on 02-02-2008
Filed Under (Computers, Games, Plutocracy, Programming) by Garoth

So it seems I’m back in action, doing many things at once. Most recently, Risujin approached me with the desire to do an innovative Real Time Strategy game. Well, needless to say this is something I’ve wanted to do for a while. I’ve collected a couple friends of mine to help out, and we’re off to a good start just three days into the project.

What is Plutocracy about? We’ve been having some ideas.

General ideas: * You play as a wealthy merchant. * The game would be mapped onto a miniature planet (a sphere). You will be able to rotate the sphere pretty freely. * A balance between wealth based domination, territory based domination, and warfare based domination. Expect bribery. * You only rent land, and you can only rent land that is adjacent to land you currently control (or your ships). Expect bidding wars. * War is not declared by the player, but rather by the player’s nation on some other nation. * There are not individual land units available. The only kinds of units (thus far) are a variety of ships and perhaps an airship.

Specific ideas: * You build on shorelines using settler ships. From this, you can sprawl inwards (but remember that you can only rent adjacent land). * Nations will mostly be divided into Enemies or Neutral. Part of the game will be being able to bribe nations into wars (or stopping wars). * Design your own ships * Commodity trading & producing goods * Naval Warfare * Taking over town centers (which must be attached to docks) constitutes defeating another merchant’s town/city (and taking it over) * Expect Pirates.

Engine level: * We are building our own game engine to facilitate most of these fairly uncommon ideas. * The engine will likely have some pretty good graphics, but not tremendously fantastic physics (we don’t need them).

Development Infrastructure: * We have an IRC channel: #Plutocracy on freenode. * We have set up a code repository + wiki via googlecode: plutocracy.googlecode.com. * We will eventually have a forum probably. Remember that we’re just starting out, though. Our focus is building the game, not so much community building and fending off rabid people.

Development Status: * We’ve decided that it’ll be in C with a scripting language on top later. * We’ve completely mastered a small part of the naming conventions and agreed on a coding style. * I hear we even have a blank window open for a second or so.

Anyway, I’ll keep you updated, my sparse faithful. We don’t have anything really to show except that top image. My main responsibilities in this project will be the web stuff, organization, art, documentation, marketing, publicity, etc. You know how it is. I can do those things and have done them a lot. Besides, someone to do this kind of stuff (especially when the project is still very technical and hard to understand for “mere mortals”) is rare. I think my skills as an artist are more valuable here than my coding skills. I don’t mind, really. I like doing art-related things. :)

(4) Comments    Read More   
Posted on 30-01-2008
Filed Under (Computers, Programming) by Garoth

Hello,

One of the things that I have been putting a fair bit of work into recently is a new program I’m writing called Veranda. Veranda’s purpose is, in short, to provide a simple interface to using Versaplex. I’ll start from the beginning.

Versaplex is a middleware layer that is designed to provide abstraction in dealing with databases. So, for example, imagine that you are a big bank. You have a lot of software that you have purchased/created and you do not want to part with it. All your software is using a database for storage, for example MS SQL. This is what you have set up and integrated, so this is all you want to use in terms of a database. Now pretend that you are a small company that is trying to make software for banks. You don’t know what database they will be running ahead of time, and just picking one is not a good strategy. This is where Versaplex comes in — it lets you write your program to talk to Versaplex over Dbus, and then Versaplex can handle all the details. (Note, Versaplex comes with Dbus in case I hear you shouting “well, then it’s only good on Linux.”)

I realize that there are other solutions, such as database abstraction libraries. There are many issue with that approach that I will not cover here. Versaplex is unique in that it uses a standard Dbus protocol instead. (As a little side-benefit, a lot of programs that use databases let you pick a custom ODBC driver, at which point you can sneak in the one that uses Dbus/Versaplex and actually make closed-source programs abstract nicely as well.)

Another result of Versaplex is that even small time programmers are able to quickly write up a program that is capable of speaking to any database that Versaplex supports (at this moment, sadly, only MSSQL).

For more information on Versaplex (and to get its code), see versaplex.googlecode.com. The Veranda source is distributed with Versaplex at the moment.

Anyway, hopefully that was not overly confusing. Back to my project: Veranda. Veranda is a simple(ish) program that is able to use Dbus/Versaplex in order to send data to (and parse data from) any database that Versaplex supports. I’ve been working on it for about a week now, and am ready to show off some features. Probably the following screenshots will help you understand what I was talking about above also.

Here is Veranda after it just started up, with a first SQL query already in. I would like to mention that Versaplex figures out who the originating user is and what database they are configured to use, so you don’t have to do any of that. It even manages passwords.

Note: the right side would be a table listing, but it is incomplete.

Here is Veranda with a result to the above query. I have implemented a Dbus message parser that is able to organize the data in a table. A note about tabs: for the moment, I have it so that one at the top correlates with one at the bottom, which is why both would be labeled “0″.

Here it is again, this time in the “Dbus View” — this is what the data looked like before I parsed it.

Here I am showing Veranda’s “Text Table View.” This is pretty nifty for copy-paste stuff. As a benefit, it also cuts off strings that are too long, so it is good for an overview.

And finally, here is Veranda with multiple tabs open.

So, the project is going well. Assuming that Versaplex continues to be developed (extremely likely), one day Veranda could be the end-all database query tool. Cheers.

Technical stuff (if you know, you know): gtk, python, dbus, gtksourceview, inkscape (icons not in yet), and a lot of Vim.

(0) Comments    Read More   
Posted on 29-01-2008
Filed Under (Art, Computers) by Garoth

Well, well.

I’m running Glade3 as my part of my development tools at work, and I just thought the icon that came with it (even glade3 on ubuntu at the moment) is terrible. So, being the kind of strange guy that I am, I decided to make a new icon (which I am now using).

Here is the old glade icon with my new set to the right:

http://garoth.com/Images/BlogImages/glade.svg

To briefly explain, Glade is a interface builder where you can drag elements together to build GUI windows very quickly. Anyway, sadly for me, it seems that they have decided on a new icon just recently for Glade. However, this is overall good. The old glade icon was just so bad. Still, I’m sad to part with the “set the world on fire” theme :)

(Note: mine is mostly Tango compliant)

Edit: Oh, and here is a shot of what the icon actually looks like in use:

(0) Comments    Read More   
Posted on 28-01-2008
Filed Under (Art, Computers) by Garoth

A lot of people don’t care much what their desktop looks like. To be honest, most of the time, they have a valid reason to think so. A lot of people are Windows users and they just can’t do much to make their desktop look good anyway. A lot of people think that efficiency is more important than a pretty appearance. They have some valid points. Certainly a window manager like ion3 is more efficient than windows, and it may even make your more productive. Personally, though, I want my desktop not only to look the best I can imagine, but to behave that way as well.

I have put a lot of time (some would say wasted a lot of time) downloading themes, backgrounds, and programs that could improve my workflow and the appearance of my desktop. I have used, to be honest, a lot of different pretty things. Screenlets? Been there. Desktlets? Been there. Kiba Dock? Done that. My latest trends are a bit more off the beaten path, but not entirely so.

So, what do I exactly look for in my computing experience?

1) An amazing appearance, something that looks better than a mac and behaves slicker than one. 2) A lot of keyboard bindings to make sure that the things I want are there when I want them. (Aside: a keyboard binding is where an action is performed due to a series of keystrokes.) 3) Little clutter. I don’t want a billion things that I can click on. The bindings help with that, though. 4) Speed. I don’t mind some small startup delays, and my computer isn’t particularly slow, however something that wastes resources like Vista is completely out for me. 5) Quiet animations: I want them, because what is the point of having an attractive desktop without it having attractive movements as well? I don’t really like the overly fancy animations so much now though.

So, what does something resembling my dream look like? Something like this:

I think that covers #1 pretty well. Some explanations:

  • The bottom dock is called Avant-Window-Navigator, and as a previous contributor to the project, I know it pretty well. This one is a custom build with a lot of applets and very nice features.
  • The panel in the bottom right is PyPanel. It has replaced gnome-panel as my default panel. This is largely due to the fact that all I really want there is the system tray. For the windows users, compare how few things I have there compared to your tray. I have quite literally things I use: the first lets me choose networks, the second is a chat program (Pidgin), and the last is a music player (Amarok).
  • The background is part of a all-seasons pack. There are four at a high resolution. They all look the same, but with the different seasons imposed. I have always been a fan.

So you may be asking something like “but how do I get to my files?” Well, I could have put that in AWN as a launcher, but I use the file browser pretty often. As a result, I have bound it to Control-h via Compiz-Fusion. (Compiz-Fusion provides extremely modern effects such as being able to slide around the workspaces, wobbling windows, annotation on the screen, taking screenshots of selected areas, closing/opening effects, and apparently keyboard bindings to any program that you tell it to use.) Here is what it looks like with the file browser open:

To further elaborate on how the system looks like in day to day usage, I have taken another screenshot with some other programs open:

Finally, you may notice the complete lack of a main menu or something like that. I realized a while ago that main menus are completely overrated. Even Microsoft has realized this. Notice how every major operating system now comes with a search that is used to launch programs. People have found that it is much easier to press a couple keys than to search through endless menus. I have taken a step further and gotten rid of the menus altogether. As a replacement, I have bound Alt-F3 to start up another program called “Gnome-Do.” The “tagline” for Gnome Do is “Gnome+Do=Crazy Delicious.” I must agree, this is the best launcher I have used. To be fair, though, it is a very close clone of Mac’s 3rd party program called Quicksilver. However, I find that in the tradition of open source, the things we steal we make better. Gnome Do has a well defined plugin system for launching songs in your favourite music player, for seeing contacts in your address book, and several other things. Here is what Gnome Do looks like while idle:

And to give you a slight idea of what it looks like in action, here is it with all menus/ui bits open:

So anyway. My desktop is getting very close to being exactly how I always wanted. For those of you that think I am a graphics hog, you are totally right. Despite all that, though, I can log in within 10 seconds and have everything up and running. I am considering rewriting the session manager as per my boss’s suggestion. That would cut out some more of the Gnome stuff that sometimes slows things down. Apparently, it is not a very hard thing to do. I would also like to mention that one of my favourite tools is still the terminal, which I am using for hours each day. Vim is my text editor of choice still. You may notice that mine is maximized vertically. I have done this using a tool called Devil’s Pie, which is capable of manipulating window shapes and locations as the windows open. This is a powerful tool that I recommend.

I hope that I have shown to some extent that just because a desktop is fancy looking does not mean that it has to be overburdened with Screenlets, 150+ MB using word processors, or even a lot of panels with CPU statistics and drawers. I aim to create an attractive, efficient, and very usable desktop experience for myself. I think I am succeeding.

Ubuntu Linux, 7.10 release. Compiz-Fusion, Gnome-Do, Avant-Window-Navigator, PyPanel, and Devil’s Pie, set up from the Gnome Desktop base.

(71) Comments    Read More   
Posted on 13-01-2008
Filed Under (Art, Blender, Computers) by Garoth

Hello.

I have been working on teaching myself Blender. Blender is an open source program that is “created by 3D artists for 3D artists”. It has been in development for years now and most agree that it is a very nice bit of code. I heard that Dreamworks or Pixar uses it for a lot of their movies. I forget which it is that uses it. One of them. Anyway.

In the past, I have attempted to learn Blender via Internet tutorials. The best one I can think of is Blender: Noob to Pro on wikibooks.org. It sounds kind of silly, but it’s a pretty good and pretty long book. It’s decent, but it still needs shaping up. I learned the basics there, but then became somewhat bored. After a few months, I got to talking to an online friend of mine who is the Art Director and Vice President of Black Pixel, a small game development firm that you haven’t heard of (yet!). He himself being a frequent Blender user recommended a fairly recent book to me, “the Essential Blender: Guide to 3D Creation with the Open Source Suite Blender” (capitalized like that, if you’re wondering).

Essential Blender is a fantastic book, it truly is. The one downside is that you may have to order it online or through your local bookstore (like Chapters or Indigo, they’ll ship it in if you pay). It covers everything from thinking in 3D, to absolute basics like the interface, to modelling, sculpting, texturing, rigging, lighting, and animating. The writing is very easy to follow and the book is jam packed full of images. It comes with a CD that contains a lot of sample models, renders, Blender itself, and a bunch of other things. Honestly, someone that knows nothing about 3D modelling and has only ever doodled in their life could pick up this book and be able to learn how to make models in 3D. It isn’t even that difficult! Promise. If you’re curious about art and the digital universe, this is a phenomenal book to pick.

So, I have completed about one third to half the book now and am very much enjoying it. I thought to post some of the things that I have made while going through the book (they have hands on tutorials, really, though you don’t tend to do it exactly how they do).

First of all, the following is the first model I have made under the guidance of this book. It didn’t turn out that well, to be honest, and I’m not really happy with it. I could go back and make it better, but I want to go on with learning. The model is supposed to depict something along the lines of a highway or bridge. The kinds of tools I used for this are mirrors (to make it symmetrical) and the array feature to duplicate one part of the highway many times. Also, standard node manipulation and cutting was used.

Second of all, I had a lot more fun making a monster’s head. Blender has this awesome mode where you can take a basic shape (in this case a sphere) and smush, pinch, inflate, and manipulate a lot like working with clay. It really feels like working with your hands. I found it really enjoyable. The one “trick” is that there is a button that can make the model symmetrical down vertical (or other ways too). That way, I can just work on one side and not have to worry about making it look the same on the other as I had to when working with actual clay. Clay can be painful, messy, and bad for your lungs. This is just plain fun.

I hope you like my work. In the future, I hope to do some things for Tremulous and have purpose. Cheers.

(0) Comments    Read More   
Posted on 16-12-2007
Filed Under (Art, Computers, Tremulous) by Garoth

Hello! I’ve spent far too long today working on a new texture for use in the Open Source epic game, Tremulous. The old one was horribly small, so I was asked to make a higher resolution, higher quality one. I decided, also, to break away from the standard style of it, and change it up slightly. Although there is room for improvement, I am rather happy with the initial results. This is my first professionally done texture. I hope you like it :)

Note: This is a brightened version for your viewing pleasure. In the game, everything is far brighter than the actual images call for, therefore, the in-game version must be very dark.

Here are some in-game screenshots of this new creep: Screenshot 1 Screenshot 2 Screenshot 3

And, of course, here is the link to the actual file: New Creep (1024×1024, will want to reduce)

Final Note: This was done entirely in The GIMP.

(2) Comments    Read More   
Posted on 14-11-2007
Filed Under (Computers, Games) by Garoth

In multiplayer video games with decentralized servers, such as Quake (or in this case, Tremulous), there comes a point in the community when a realization dawns that there are far too many people in the game who are there only to cause grief to other players. What motivates such players to act as they do? That is beyond me. You may ask, though: who cares about ‘griefers’? Can’t you just ban them and be done with it? Well, the answer is: yes, you can ban them and be done with it. But the trouble is that with multiple servers, they could just go grief elsewhere. Eventually they would run out of servers, this is true, but in games like Counter Strike there could be thousands of servers. So what is one to do? One possible solution is Global Banning.

The above image demonstrates how global banning should be made, generally. This approach is rather nice because:

  • It is rather clean.
  • An uploaded ban is in effect immediately — no waiting to fetch a new ban list to merge with.
  • Multiple networks could be created and linked together, master servers acting as routers.
  • If each server acts as a master server, and each server is able to get lists from multiple servers, this creates a decentralized, p2p network.
  • If there is a particularly trusted server with good admins, all other servers can benefit.
  • Griefers are kept away longer.

Enjoy!

Note: this is not an original idea of mine.

(1) Comment    Read More