Who’s got game?

When I was 10 I had two best friends, Mikael and Alex, and we would spend all of our time together. One of our favorite activities was playing role playing games. (D&D, TMNT, Ninja’s and Superspies are the three I can remember of the top of my head) . Before we learned about girls we would spend our recesses hunched over a desk rolling die for initiative and combing through the Dungeon Masters Guide.

I’ve grown up some since then, but I still haven’t given up the nerd in me. I channeled that nerd towards technology and put aside the role playing for many years, but a couple of years ago Mary gave me Settlers of Catan for my birthday and I fell in love instantly. How could there be a whole realm of interesting, challenging, fun boardgames that I had never heard of?!? A way to exercise my love of fantasy/sci-fi and role playing without losing friends, personal hygiene and self respect! I was thrilled.

Since then I’ve picked up a number of other titles and have enjoyed them all. My friend Charlotte has organized a gaming group and we get together every couple of weeks, have dinner and play games. This has been a great experience and wonderful way of learning of (and playing) new games. Zombies, Apples to Apples, Puerto Rico, Ticket to Ride, 5 Crowns to name a few.

Long story short, I’ve added a new category for games. In future you can look forward to hearing more about my game playing experiences. Let me know if you’ve got any questions/thoughts about the games I talk about.

My awesome girlfriend

Happy New Year everyone.

I asked M. what I should write about and she recommended that I write about how awesome she is. I thought that was a good challenge, though I don’t want to call it a challenge… I mean, it’s almost too easy, right? Let me first start with the home made bagels that she made for our New Year’s brunch yesterday - salted, poppy seed, and sugar-cinnamon toppings. It doesn’t stop there, she’s an amazing cook - come over for dinner sometime and see for yourself.

Then there’s the buttons that she didn’t sew onto my coat. I pestered her for like 9 months for her to sew a button back onto my coat. And though she never did she taught me a valuable lesson about self sufficiency. Had I not sewn that one button onto my coat myself I wouldn’t have known how to sew the other three on that fell off not long after. Or, you know, she could have sewn all four of them on for me and I could have learned how to Tom Sawyer people into doing my work for me.

M.  does a wonderful job correcting my atrocious  spelling and grammar and she can even diagram sentences (but can’t manage to keep her shoelaces tied).

I also think that my M. is awesome because she’s reading this over my shoulder and I couldn’t really say otherwise at this point, could I? And that she’s patient and kind and most of all because she puts up with me.

Chat / Messaging Clients

At work we use an IRC channel to ask questions, post progress reports and, you know, link to funny You Tube videos. For awhile I’d been using Pidgin and flirted with Trillian for a bit but I wasn’t really happy with either of them. I wanted something that could use multiple protocols (AIM, Jabber, IRC) and have full support for them. And it would be great if there was an active community to provide plugins and documentation.

A little bit of searching around lead me to Miranda and I’ve been terribly pleased with it. Supports AIM, Gadu-Gadu, ICQ, IRC, Jabber, MSN and Yahoo messaging protocols as well as having a simple, easy to use interface and a ton of addons.

I had a little trouble getting used to it at first. For one thing, getting online less intuitive than I had expected. First you need to set up your network/login information in the options window and then select the online icon from the list of icons for your chosen network.

For setting up my connection with Gmail to use gTalk I found that the listed advice was incorrect. Instead of using ‘Manually specify connection host’ and setting it to talk.google.com all I needed to do was :

login: gmail user name

password: *********

Login Server: gmail.com

Port: 443

And, of course, use SSL.

These same settings work great with jGmail, a addon for Miranda that will also check your mail for you.

My History with Linux

I’ve been a Linux user for nearly 10 years now. It started back in college when my friend Nicola showed me RedHat 6.0. I was using a mac clone at the time and tried to install Yellow Dog on it, but the hardware support was non-existent and I couldn’t figure out what the buzz was all about. If I wanted to use the command line why didn’t I just log into one of the University’s Unix machines?

On and off through the years I’ve installed into, used it, uninstalled it. I see an operating system as a tool and, like any other tool, it works well when used for it’s specific purpose. From the command line its great for running services, managing users, configuring/tweaking/maintaining your OS for your needs. From the desktop I’ve found it to be a good development environment and for basic office tasks like web browsing, editing documents, basic graphic manipulation, its fine. But for getting the most out of your desktop experience I would recommend getting a Mac or Windows. I can hear the squeals of outrage from the Linux zealots already, but as I’ve said: The right tool for the right job. The hardware support for a casual user is outstanding in both on Windows and Macs. The interfaces are, for the most part, intuitive and user friendly. They support most of the latest standards and features offered by 3rd parties. And perhaps most importantly there is a very large corpus of applications for the Windows and Macintosh operating systems that are well supported and well documented.

Having said all of that let me also say: Any tool in the right hands is a hammer. And sometimes all you need is a hammer. And sometimes what you need is an operating system and it really doesn’t matter which one you use. Considering that, I’ve recently begun to revisit the idea of using Linux as my primary desktop. I was quite happy with it last time I used it, but there were small features that made it unbearable - lacking power management for my laptop, poor support for web standards, a clunky UI, insufficient application base - but that was four years ago and think have really moved since then.

I currently use Gentoo on the linux box that acts as my firewall/NAT/router. It has an amazing package management system and it is one of the best document linux distributions I’ve used. My beef with it is that everything has to be compiled. I guess its not such a bad thing, really, and I don’t mind once everything is set up and running, but if I were to set it up for a non-technical user I’d worry about having to support it for them.

What I’d like to do is find a distro that I can recommend to friends and family who have little to no interest in maintaining the operating system they use. They want it to work and they want to be able to do what they want to do. The news around the block is that the hot new distro for the casual user is Ubuntu Linux. A very slick gnome based interface, a very active user community with lots of documentation, lots of little helper applications and a dedicated team of developers.

In the next couple of weeks (perhaps I should wait till the end of the semester?) I hope to get Ubuntu installed and put it through its paces. There are already piles and piles of reviews available online, but sometimes you just need to get your hands dirty and find out for yourself.

I’ll let you know how it turns out.

VMWare SCSI driver error

Using VMWare server 1.0.4 (check it out, its free!) I recently tried to install Fedora Core 7. I ran into a problem with the SCSI driver. First, while installing I received a message saying that the device sda, sdaa, sdab, etc… could not be found. After clicking through the 52 or so error dialogs I was finally able to proceed. When I finished the installation and restarted the server I received a message:

Asking for cache data failed
Assuming drive cache: write through
rejecting I/O to offline device

for each possible sda device. After all the messages the server proceeded to boot. Needless to say, this took a very, very long time.

Apparently there’s an error with the SCSI driver that hasn’t been addressed yet. You can see more in this thread. My quick solution was to rebuild the VM using the LSI Logic instead of the Bus Logic.

Hope this helps someone.

Did I say tomorrow? I really meant three weeks later. I don’t know how Alec does it, but with school and work I can’t seem to find the time or the energy to update this thing.

I’m learning about all sorts of cool things at school and I’m starting with another company shortly. The previous one was pretty good to me, but I think the opportunities will be better for me at the new place.

See you around…

All quiet

School started last week and I’ve become incredibly busy. In addition to my school work, I’ve decided that having a social life is rewarding and deserves more of my attention. Why I choose now to rekindle friendships is not a question I can answer, but strike while the iron is hot, right? Anyway, short story even shorter: I promise to put something new up tomorrow. That’s more of a promise to myself than to the ravenous hordes, but no matter who I write for I’ll hope to have something new for you tomorrow.

Geek

A couple of weeks ago the NYTimes had an article about the San Diego Comic-Con. It’s title: We’re All Geeks Here. The article itself isn’t terribly offensive - in fact it does a pretty good job at being respectful and non-exploitative, but the mere fact that it appeared in the Times drives me crazy.

I can’t pinpoint the origins, but some time ago there was a decision made by whatever syndicate runs the media that the identity of the ‘geek’ had become marketable. There is an outsider allure and a kind of universal appeal to anyone whose ever passed over for lack of social grace. So you played with Star Wars action figures when you were a kid or you had a calculator wrist watch. I bet you might even spend some time playing video games or ‘hacking’ online.

What I find so offensive about the new Geek identity is its ability to alienate a true geek from his/her peer group. A true geek is the kind of kid you find in the mall at the gaming store playing Magic or perhaps D&D, with the greasy hair and the velvet cape. One that is so interested in HAM radio or building rockets that they will speak for ours on it. These are the kind of people who fall into a group of friends because they annoy the hell out of everyone else. They stand together, united behind the banner of geekdom.

But now its cool to be a geek. Go get your HAM radio operators license, show the rest of the kids on the block just how eccentric yet stunningly intelligent you are. Invite your friends over and join the local chapter. Soon enough you and your six buddies run the club and the socially inept ones feel so threatened they retreat to their basements paint their miniatures in blissful solitude.

I’m doing a poor job making my argument, but let me boil it down for you. Basically, I see the geek identity as a passing trend which is exploitative and isolating to the ones who truly earned the right to wear that badge. Being an outsider has become the cool thing to do which pushes the true outsiders even further out.

Java Web Start

I’ve been working on an application for work that is to be distributed by Java Web Start (JWS) and I can see what all the fuss is about. I have really gotten into it yet, I hardly know anything actually, but I do know that it makes it incredible easy to distribute an app.

Basically, JWS is a technology that allows you to bundle up a Java app in jars and then bundle it on a web server so that it can be downloaded as needed. Once you’ve downloaded it you can run it locally, but if there is a change to the code on the server JWS will grab the new package and update your app. It combines the mobility of Java applets with a feature rich, locally run Java application.

With all of the convenience of distribution I had a few problems getting it up and running. I’ll qualify that statement with this: I didn’t spend a lot of time reading up on JWS or how to debug it and ultimately it wasn’t really JWS fault that I was having trouble (a logic disconnect between the chair and the keyboard). To solve the problem I enabled the Java console which can be found (in Windows) under Control Panels>Java>Advanced> Enable Console and Enable debugging. My main problem was that the app would download and launch and then hang giving me no errors or wouldn’t display anything. I turned out that there was a problem loading one of the libraries.

To get the full benefit out of JWS I should probably do a lot more reading. What I’ve come across so far has been pretty good, but I’m sure there’s tons more information out there. I’d recommend reading up on JWS over at Sun’s page, there’s Wikipedia of course and there’s a pretty good article over at JavaWorld which gives a good overview of the history and its uses.

Mongrel

Mongrel is a lightweight web server that is quite popular with the Ruby on Rails crowd. It’s apparently really great at serving dynamic pages and is often coupled with Apache which serves the static pages. Set up is extremely easy

gem install mongrel

and running it is much the same.

mongrel_rails start -d

There are some things that I found particularly annoying about it. Mostly you have to be in the document root of the rails app when you start the daemon for it to know where everything is.

Because mongrel runs one thread at a time it can only answer one request at a time. This can be problematic when you’ve got a busy site with many requests a second (I’ve heard a single mongrel instance can handle around 25 requests a second, but I couldn’t site my source). To overcome this limitation you can run mongrel behind Apache’s mod_proxy and mod_proxy_balancer which allows you to create some psuedo load balancing. This is all done through Apache’s httpd.conf file (or whatever imports you want to add to it). You’ll need to load the proxy modules, the balancer module and the rewrite module for things to work right. My configuration looks something like this:

<virtualhost *:80>
ServerName myserver.com
DocumentRoot "/path/to/doc/root"

<proxy balancer://mongrel_cluster>        #This is the name of the cluster group, can be anything
BalancerMember http://localhost:xxx0     # the location of your additional mongrel instances
BalancerMember http://localhost:xxx1
</proxy>

ProxyPass /images !                     # Don't let mongrel serve these pages - static content
ProxyPass /stylesheets !
ProxyPass /javascripts !

Alias /appName /full/path/to/your/app       #only needed if app resides somewhere other than docRoot
ProxyPass /appName balancer://mongrel_cluster
ProxyPassReverse /appName balancer://mongrel_cluster/

RewriteEngine On
ProxyRequests Off              #SysAdmins don't usually like open proxies

# Check for static index
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME}/index.html -f
RewriteRule ^(.*)$ $1/index.html [QSA,L]

# Check for Cached pages
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} -d
RewriteRule ^(.*)[^/]$ $1/ [QSA,L]

# Send all other requests to Mongrel to be dynamically generated
RewriteCond %{DOCUMENT_ROOT}/%{REQUEST_FILENAME} !-f
RewriteRule ^/(.*)$ balancer://mongrel_cluster%{REQUEST_URI} [P,QSA,L]

# Compress text files so they can be loaded more quickly
AddOutputFilterByType DEFLATE text/html
AddOutputFilterByType DEFLATE application/x-javascript
AddOutputFilterByType DEFLATE text/css
AddOutputFilterByType DEFLATE text/plain
AddOutputFilterByType DEFLATE text/xml
AddOutputFilterByType DEFLATE application/xml
AddOutputFilterByType DEFLATE application/xhtml+xml

As you can see its not overly complicated. The rewrite can be intimidating, but they’re recipes mostly you wouldn’t need to change them. There is some good documentation online, but not copious amounts of it. I’d recommend here and here for more resources, but you’re a smart kid, you can find your own answers using google.