The Story of Lost

This is my interpretation of Lost and what happened in it. Spoilers abound.

Read the rest of this entry »

  • Share/Save/Bookmark

Geeks don’t get it

Reviewing many of the reactions to the newly announced iPad from Apple, I’m struck by how many people are dissing the thing for reasons that no ordinary user will ever care about. I think that the problem is that most of these folks are geeks, and geeks traditionally don’t get it.

What’s the difference between a geek and an “ordinary” user? Let’s look at what they want:


The Razer Naga Mouse is a geek’s wet dream. Covered in a million buttons, this thing is perfect for whatever application the user wants to approach it with. It’s designed for World of Warcraft, but I’m certain that geeks would hunger for these buttons to be available for every single application they were using. They want a million buttons and absolute control over their device.


Now look at the Magic Mouse. How many buttons do you see? None. How many buttons are there actually there? Well, one, unless you enable right clicking in software. The geeks cry foul and spit upon this mouse, but your average user looks at it and goes, “I get that!” I point at things on screen, and then I click! I don’t need to spend any time trying to figure out which button to click!

Let’s look at another comparison between what a geek wants and what your ordinary user wants.


Ah, the venerable PS3 controller. 2 analog joysticks. 8 velocity sensitive buttons. A velocity sensitive D-pad. 3 option buttons. This thing is a delight for your average geek. Sit them down in front of a game, and they have complete control over their character, with a button for every action that they might want to take. Shooting, jumping, attacking, selecting items, running… It’s all here, and they have every feature they want, right at their finger tips.

I think you can guess where I’m going with this next.

The Wii remote. When it came out, geeks were complaining about its lack of buttons. You control your characters by wagging it around? What?! That’s crazy, and you look silly while doing it! 4 ordinary buttons and 3 option buttons and a D pad are all you get with this button starved device.

The Wii remote’s innovation comes in the fact that you control it through moving the wand. Want to slash your sword? Swing the remote like you’re doing so. Throw a bowling ball? Mimic the action. This is far easier for the average user to understand. Instead of having to memorize the behaviors of 11 buttons and 3 directional controls, they have to simply do the most natural thing in the world. If they have buttons to memorize, they have a meager 7 buttons and 1 directional control to consider. For more advanced, geek-oriented games, there are other controls that add more buttons, but for your average user, this is going to seem a lot less intimidating. Furthermore, most of the games targeted towards this market tend to use only one or two of the buttons at most.


This is the options screen for the X-perl Unit Frames add-on for World of Warcraft. It’s a third party piece of software that allows you to customize your interface to your liking. The number of options here is staggering and delightful. You have absolute control over every little feature of your interface. They’ve done a great job of exposing everything to the user and enabling you to tweak everything to be perfect. This is a great example of the sort of geeky options pages I see in a lot of open source software, especially on linux.

I don’t have an example from Wow, so I’ll just show a completely separate options page to show the different aesthetic. Let’s compare to the OS X options page for changing screen resolution

Still geeky and trying to show some pretty technical information to the user, but take a moment and count the number of buttons. How long will it take even the dimmest user to figure out how to user this screen? I’d wager not nearly as long as it would take them to learn a screen with a million buttons on it.

So now let’s get to the meat of the matter.

This is your representative netbook, an Asus eeePC. This thing is awesome, especially if you hack it to run Mac OS X on it. But even without that bit of effort, you can do some pretty incredible stuff on this. Run multiple applications simultaneously. Access all of your favorite software. Surf the web. Do it all at the same time! Hell, on my Macbook, my standard use case is to be listening to music, talking on IM, browsing the internet, and playing video games or coding all at the same time. I regularly have close to a dozen applications running simultaneously. I can also download software from virtually any place on the net to run on here. It’s great! The eeePC also has a number of peripherals that you can use with it. Mice and keyboards and webcams and a thousand other bits of electronics and wires. This is a great little geek device for computing on the go.


And now the iPad. Geeks hate it. Where is my keyboard?! Where are my buttons?! Where’s my multi-tasking!? I can’t even install software from my favorite open source website here! I have to go to a single location to get any apps! That sucks! It lacks features, flash, peripherals. Why would anyone ever buy this?

Well… For a geek, it makes not a lot of sense, but for your average user…

Have you ever watched an average user try to user a computer? They don’t understand multitasking. I’ve watched someone re-open an application over and over again because they didn’t get the concept of a program being “in the background.” Trying to run just 2 things at once would be overwhelming to them as they try to grasp the concept of what they’re doing. They *like* the lack of multi-tasking. It means that the only thing they ever have to think about is the application that is right in front of their face. They don’t need to memorize what applications are running, or learn how to use the mysterious task bar or dock to figure out what is currently running but not appearing on their screen.

Peripherals? They’ll never buy those. Too complicated. Flash? What’s that? Software? Gods, how nice it is to go to a *single* place to get all of my music, applications, and books. Why, I don’t even need to go to a store or ask my grandchild what I should be running! And how wonderful it is to be able to directly *touch* what I’m interacting with instead of learning that weird mouse thing that seems really challenging to use.

(Seriously, have you ever watched the average user use a mouse? It’s wince-worthy.)

This is their device. Sure, it’s more expensive than a comparable computer and does a lot less, but it makes up for that in software. You can do things easily with this machine that you could not do with others. They’ve exchanged power for ease of use. The models are all about direct interaction. What you are looking at is all you need to think about.

Geeks are complaining about the lack of features. Meanwhile, the first time their grandparents or parents grab one of these, they’ll never buy another computer again. It’s *easy.* And that’s what sells. Not features. Ease of use. That’s what made the Wii so popular. That’s what makes Mac the #1 computer over $1000. That’s what makes simpler mice so convenient to your average user. They don’t want buttons and features and control. They want all of that to get out of the way so that they can get their work done, and that means the simplest, easiest, most direct interaction that is possible. That’s what sells, and that’s what changes the world.

But the geeks don’t get that.

  • Share/Save/Bookmark

Arimaa 0.1 updated to Arimaa 0.1.1

After releasing Arimaa 0.1 the other day, we found out that our release did not work on windows. This has now been fixed in version 0.1.1.

Also, we randomly decided to use “WeirdGals” as our temporary name for our release. Just something to toss in the “Vendor” field while we figure out what to call ourselves. We, uh, probably should have looked it up before using the name, as the name is, er, already in use, it turns out. For something we’d probably not want to be associated with. Yeaaaaaah.

Anyways, we’ve got Java Web Start working now, and the program works on Windows as well as Mac and Linux. We also updated the Mac OS X native app a bit.

Click here to check it out. Enjoy!

  • Share/Save/Bookmark

Arimaa 0.1 is complete

We finally finished some of the larger outstanding bugs for Arimaa 0.1. It’s late, and we’re tired, but you can check out all the fun over here.

The program is basically an alpha test at this point, intended for evaluation of the general UI look and feel, as well as testing of the game logic. The next version, which we are launching into immediately, will permit play over the internet.

  • Share/Save/Bookmark

Rock Climbing

IMG_4119Need exercise? Enjoy puzzles? Want to do something with friends?

Why not try Rock Climbing?

December 5th, 2009 was the 1 year anniversary of my starting to climb rock walls at the local Planet Granite. A coworker of mine had been bugging me to try it for some time, and I finally got up the courage to go with him one day.

Rock climbing quickly rose to become a very important part of my life, and one of my personal passions. The experience of puzzling out a really tough climb that really wears you out is delightful, especially when you get the satisfaction of reaching the top of the climb and signaling your belayer to bring you down.

My favorite climbs are the ones that challenge me both intellectually and physically. Not everything in climbing is about brute strength and powering through things. In fact, many climbs are more about figuring out how to balance yourself *just* right to exert the minimal amount of force and get yourself to the next hold. It’s about working smarter, not harder.

But I still do love that feeling of exhaustion that you get when a good climb wears you out quite wonderfully.

The picture above is a photo a friend took of someone climbing the chimney, a nice feature of the local gym. Below, I have video of myself doing a 5.8 route located in the same location this summer.

I heartily recommend this sport to anyone that is willing to try it. Not only is it great exercise, it’s a whole lot of fun!

  • Share/Save/Bookmark

Improving Set Interfaces

Set is a very good game, so a lot of folks have written implementations of the game.

This implementation, written in AJAX, is probably the nicest implementation I’ve ever seen.

There’s also the official implementation.

There’s even other folks that have implemented the game in Java.

Here’s a version that actually lets you play online with other players.

Most of the implementations of Set that I’ve found follow these basic designs. They are single player, have significant usability issues, and/or aren’t very pretty to look at. Our implementation of set is intended to solve these three problems:
1) Users will be able to play the game against people all over the internet.
2) The interface will be designed to be intuitive and easy to use.
3) The interface and cards will look nice and attractive.

Our current implementation doesn’t solve any of these issues, but we’re working on it. The next release will solve Issue #1 and I just asked a game interface designer to help us redo the entire interface with a much more attractive look and feel. That should solve #3. Then we just need to get back to solving #2, which is, of course, the hardest problem of all to solve.

The project is currently on hiatus, as we’ve been spending all of our time working on getting Arimaa up to speed and polished for its first single player release. I’ve found that switching programs when you’re getting stuck in a rut can really help you think some things out more clearly and be able to come back to your first program with fresh ideas and newfound excitement.

  • Share/Save/Bookmark

Software Projects

I added a few old software projects to my My Software Projects page. Enjoy, if you’re into that sort of thing.

It’s weird, looking back over old code I’ve written. I’ve definitely grown a lot since my old days.

Now if only I could somehow get myself more free time so I could write more software for myself…

  • Share/Save/Bookmark

Annoying Flash Bug

Flash LogoThe other day, I was doing some flash programming, and ran into this error message:
"someCodeLibrary.as" Line 13 - ActionScript 2.0 class scripts may only define class or interface constructs.
"someCodeLibrary.as" Line 15 - ActionScript 2.0 class scripts may only define class or interface constructs.

… etc.

Basically, this error message was coming up for every line of someCodeLibrary.as.

Initially, I figured it was a simple syntax error in someCodeLibrary.as that was causing cascading compile errors. But as I poked at the files, nothing seemed to jump out of me and any modifications I made were in vain.

I then considered the possibility that I was including the library incorrectly.

I checked my statement:
#include "someCodeLibrary.as"

But this was correctly formatted. I checked to see if I was including the file in the wrong place, or if I had some sort of error prior to including the file, but still, no dice.

I bashed on trying all sorts of different things before finally googling the error message to see what came up. It suggested all sorts of issues related to classes, but this file wasn’t a class. It was just a straight code import.

In frustration, I began simply eliminating whole swaths of code to try to isolate the problem to one section of my program. I noticed that when I had one section of code in, the errors were coming up for the two .as files, whereas when I did not include that section, they were only coming up for one .as file. Coupled with the fact that all the internet searches were turning up issues related to classes, I had a eureka moment and managed to track down the bug.

You see, somewhere in my code, I had accidentally left in the following line from before a refactor:
someCodeLibrary.foo()

Originally, my code was nicely organized as a bunch of classes in their respective directories. Unfortunately, the hardware I’m working with has some significant performance limitations, and I discovered that having a bunch of functions and variables declared in global space provided better performance than having them all encapsulated in a class. So I refactored the code to have someCodeLibrary be a collection of functions and variables and changed the import foo.bar.bas.someCodeLibrary command to #include "someCodeLibrary.as"

Apparently, in the process of doing this refactor, I left some calls to the now defunct class in the program. But instead of giving me a nice error message saying that said class had not be imported or that the symbols couldn’t be found, Flash decided to “helpfully” auto-import someCodeLibrary.as as a class definition, and then spit out a bunch of errors for the file when it found someCodeLibrary.as to be incorrectly formatted for a definition of a class.

Quite an annoying bug to have run into, and it really adds to the frustration I feel with Flash at times. Although I really like programming in flash, Adobe’s IDE and compiler sometimes leaves some things to be desired.

  • Share/Save/Bookmark

Converting to Mac OS X

I wrote this a while back, but never got around to re-adding it to my blog. Here it is again.  I wrote it just after buying my Macbook.

The Apple iPhoneThere have been many project ideas that have drifted through my mind over the past few years. One of them has been to create some sort of app for the iPhone. Last summer, I happily signed up as an iPhone developer on Apple’s website, with the idea of being able to get started on building an application on the phone ASAP. Unfortunately, I was dismayed to discover that the iPhone SDK was only available under Mac OS X. At the time, I did not have access to a Mac platform, so the idea fell to the wayside.

I’ve been struggling with personal motivation to learn new things for many years now, and haven’t been able to get much progress done on my personal projects for a long time. Sure, I’ve been learning things at work, and I’ve been building my skills there, but I haven’t been spending time building myself up on my own time. That all changed at the beginning of December, when I started doing indoor rock climbing three times a week or more. Suddenly, I had all this energy, drive, and focus like I hadn’t felt since I was in high school or college. I began to get a lot of progress made on my set project, and I was finally learning again.

Naturally, my thoughts turned to the iPhone projects that I wanted to work on again. Of course, if I wanted to work on those, I would have to purchase a Mac. Since I was thinking about getting a laptop anyways, I decided to purchase one of the pretty new Macbooks.
The new aluminum, unibody Macbook

I’ve been a Windows user for most of my life, due to the fact that I used to play video games all the time. I figured that the Mac would probably be an acceptable alternative to Windows, since I barely play video games any more, but really, it’s just another operating system. I’ve used Linux before, and there really was no distinction between that and Windows for me. I expected my experience with Mac OS to be quite similar.

I was wrong. I have never had such a wonderful and smooth experience with a computer. It was like the Mac OS was perfectly designed to satisfy my every need. It was the fastest setup experience I’ve ever had. I’ve never been able to get a computer from out of the box to useful that fast! There were several key things that I found to be absolutely amazing about my beautiful new computer:

1. The pre-installed software bundle.
Normally, when I get a new computer, the first thing I have to do is dig in and start deleting all of the pre-installed junk that comes with the system. AOL, MusicMatch, Tutorials… All of that crap. Then I have to go online and start downloading all of the tools that I actually need to use. A web browser that doesn’t suck, word processing tools, my audio editor, all of my software IDEs… You know the drill.

With the Mac, I didn’t have to do this nearly as much as I normally do! The pre-installed software package is absolutely fantastic. To start off with, Safari is just a great web browser, and probably my favorite browser ever. I downloaded Firefox, but frankly, I’ve only run it once, and that was to make sure I had installed it correctly.

Mail.app is an email application that actually WORKS, for once. I could actually get my email and everything set up and running on the application, unlike all of my failed attempts to get Outlook Express to behave.

GarageBand is an absolutely awesome audio manipulation platform. I’ve really enjoyed playing around with it and creating music.

And I absolutely love how Xcode is actually packaged with the rest of the system. It’s like someone actually paid attention to what people actually use computers for, and designed a pre-installed software package around that. Fancy that.

2. The simple configuration process.
I really despise the Windows control panel. Every single control panel on there is oddly named and contains complicated archaic settings that barely have anything to do with my actual goals. I just want to change my background wallpaper! Would that be under Themes, Desktop, Appearance, or Settings? Augh! The configuration pages for most Windows programs aren’t much better. The settings I want are always buried under a hundred levels of clicking, and are given strange and archaic names. Generally speaking, all of the defaults for these things are set horribly, so the first thing I do with any new application is open the settings page and start fiddling. It’s the only way to get the damn thing to actually work for me.

This was yet another thing that just blew me away about the Mac. As usual, one of my first stops on my new computer was the System Preferences pane, but I found that I had very little to change there! Most of everything was already configured intelligently. I barely had to change a thing. And I practically swooned over the icons. They were so well named and laid out. Compare the Windows and Mac versions of the desktop wallpaper settings:

Mac Desktop and Screensaver SettingsWindows Display Settings

In the Windows one, I have to dig through a ton of different options to find the one that I actually want, which is the Desktop menu. In the Mac configuration panel, I have two options: Desktop and Screen Saver. If I want to change my wallpaper, it is pretty easy to figure out which one I want. Whereas the Windows one is absolutely confusing if you don’t know exactly what you’re looking for. Hell, it looks like that screen right there is the right screen to change your wallpaper, but if you thought that, you’d be wrong.

In The Design of Everyday Things, Donald Norman describes this sort of thing as putting constraints on your user. By having fewer choices presented to me, the control panel on the Mac is simpler and easier to use. I have to do less thinking to figure out what it is I want to do.

I was done configuring my Macbook within just a few minutes when I got it. What options I was offered, I was able to quickly and easily understand what they did, and most of them were already set to values that I liked.

3. The intelligent organization of applications
I have a really carefully laid out organizational structure on my PC. Whenever I install a new application, if it is a game, it goes in the C:\Games folder. If it is anything else, it goes in the C:\Program Files folder. Then I meticulously organize all of my icons on my start menu so that I can quickly and easily access all of those applications.

I’ll spend hours digging through my start menu when I first get a computer. Microsoft likes to put EVERYTHING under Accessories, so I go in there and start tearing it all out, organizing my software into games, applications, programming tools, accessories that I’ll never use, etc.

One again, the Mac impresses me. Instead of all this crazy organization and insanity, Mac OS X has a simple application install procedure. When you want to install an application, you just drop it in your applications folder. The application file is also the shortcut you click to access the file, so no need to organize the application link and application data separately. If you use a particular application a lot, you can simply drag it over to your dock. Clean, simple, and fast. There’s one way to install applications, and one way to add icons to your dock. Once again, constraints help the user always know exactly what the right solution is in the moment.

But wait! Now all of my applications are all unsorted and all that! How will I ever find the apps I want?

Well, first of all, the apps I use the most are on my dock, and my dock is reasonably organized for the way that I think. You can see it to the left. I start with my web browser, then my IM clients, then email and calendar, then office productivity stuff, then programming IDEs, then photo and audio editors.

Of course, if the application I want to use isn’t actually on the dock, I don’t have to dig through a hundred applications in my applications folder to find it. I just hit Command-Space and open Spotlight to search for the application I want to run. Easy-peasy! Sure, I use Launchy on my Windows machine, but Spotlight is pre-installed on Mac OS X.

4. The trackpad
Macbook TrackpadI had only been using my Macbook for three days, when I had to go back to using a PC laptop. What a difference! Within a few short days, I had managed to completely retrain myself to use the two finger scroll to scroll around pages. This simple little feature completely took hold of me and I fell in love. This trackpad is the one and only built-in mouse controller that I have EVER seen on a laptop that I don’t cringe at the thought of using. I am absolutely in love with it.

Whenever I’ve owned a laptop, I’ve always wanted to have a wireless mouse in my laptop bag along with the laptop itself, because trying to control the mouse through the built in trackpad on most laptops is absolutely horrible. You can barely make anything work, the trackpad jumps around a lot, and generally it is just a bad experience.

The trackpad on my Macbook is completely different. I find that I actually prefer using it to using a mouse. Even though I have my laptop hooked into my mouse and keyboard at my desk, I still reach over to use the two finger scroll from time to time. It’s just nice and easy to use! Combine that with having such a large and responsive touch surface, and you’ve got yourself a winning mouse controller here. And with the expose-all and expose-none features in here as well, I can control my entire system with hardly a need to switch back to the keyboard. I just swipe my fingers, and everything I need appears right in front of me.

If I have one nit, it’s that the trackpad support isn’t nearly as nice when running Windows on the Macbook. At those times I go back to preferring to use my nice trusty wireless mouse. But really, how often do I boot my Macbook into Windows?

5. The “It just works” feature.
This is just sort of a summary of everything else that I’m experiencing with my Mac. Whenever I run Windows, I am constantly encountering random and bizarre behavior in the system. Inexplicable crashes, programs not running for seemingly no reason, unexplained changes to word documents… It all seems par for the course when using a Windows machine. It seems to have a mind of its own, and does strange things at times, with or without prompting from me.

My experience of Mac OS X is rather different than this. Even when I get errors, they tend to be rather sensible errors that actually explain what happened and what I can do about it. They’re not arcane generic messages with links to help files. They are actually productive messages.

But that’s not even really necessary, as the Mac generally doesn’t experience such error messages. It just works, all the time. From boot up to hibernation, it just works. When I tell it to do something, it seems to just do it, without all of the annoying guess work that I find myself involved in with Windows.

It feels as though this is a platform that was built from the ground up to work correctly from day one. Oh, I’m sure I’ll have issues with it in the future, but for now, I am floored by the amazing and incredible performance of this device.

So I guess you could say that I’m a Mac convert now. Within a few days of owning a Mac, I was already questioning whether I would really use my PC anymore. A week later, and I had already converted another life-time PC user to a Macbook owner. Once I returned from my Christmas vacation to Cleveland, I went out and bought a DVI dongle for my Macbook so that I could use one of my two monitors on my desktop computer for the laptop. I now have a three monitor setup in front of me, two showing the Macbook screens, and one showing the PC screen, and I really only use the PC for IM and music while I’m working on the Mac now.

This is absolutely the best computer that I have ever owned, hands down. It is a purchase that I shall be raving about for a long time.

  • Share/Save/Bookmark

Art

Everyone has the ability to use both their left and right brain hemispheres to accomplish tasks. However, there are some people that seem to focus on improving one hemisphere over the other. Growing up, I was one of these people, focusing almost solely on developing left brain, intellectual type stuff at the expense of anything right brain. With that went a great deal of my efforts in 3D animation, sculpture, art, writing, and poetry.

Over the last year, I’ve been working on amending this situation. A friend of mine lent me a copy of Drawing on the Right Side of the Brain, which discusses how to get your right brain hemisphere active and functioning in the process of drawing.

My early efforts were very primitive, since they were among the first dozen drawings I had ever done in my entire life. But as time went on, some of the concepts started to sink in.


Outside by ~joycem137 on deviantART

Outside was one of the first drawings I did that combined form and shading to create a sense of three dimensionality to the image. As I drew it, I entered a sort of trance state where I was more *feeling* where lines should go, instead of making conscious decisions about where to place my pencil.

After creating that, I decided to try creating another image, this time one of these Dr-Seuss like trees that I seem to constantly find myself doodling when I’m bored:

Seussian Tree by ~joycem137 on deviantART

A few days later, I attempted to combine conscious thought with this newly discovered abstract thought an create something a little more deliberately:

The Hall of the Faerie Queen by ~joycem137 on deviantART

I particularly like the way the perspective turned out on this one, especially with the vaulted ceiling.

Earlier today, I went out and bought some paints and brushes to try my hand at a watercolor painting. Here’s what came out:

Untitled Landscape by ~joycem137 on deviantART

Primitive… but not horrid.

It’s a nice feeling to have figured out how to create art and how to learn about creating more. It’s a neat little inexpensive hobby that I can do any time I like, and it gives me space to create things.

  • Share/Save/Bookmark
« Older Entries