a tale of bad user interface

I wouldn’t consider myself an expert on user interfaces, or UI’s as they are often called. However, I do use computers a lot, and I mean a lot, so I think I have a bit of experience to spot a bad UI when I see one.

I have an android phone, and since android is an open source software that is altered by the manufacturers to fit their particular needs I don’t know whether to blame Google or Pantech for this one, but either way, my phone has a particularly bad flaw in it’s UI.

There is not anything really secret or private on my phone, but I am still a security conscious individual, so I decided recently to try a pattern screen lock on my phone. At the bottom of the screen lock there is a small button that says “Emergency Call”. This has been the cause of my problems.

Two days in a row last week my phone called 911 while in my pocket. Now, if you’ve ever accidentally dialed 911 you know that if you don’t stay on the line they will call you back to make sure everything is ok, like they should, however, this meant that two days in a row I had to explain to the person on the other end that my phone dialed 911 on it’s own, while in my pocket. I got to sound like a complete idiot two days in a row.

I understand the reasoning behind the button. If you are locked out of your phone and in an emergency you need a way to make the call without the pattern, either because you are panicking or it’s not actually your phone. However, it’s placement on the main page makes it way to easy for something like what happened to me last week to happen.

So, needless to say, I won’t be using a screen lock anymore…

console wars redux

An update on the Xbox One, they’ve apparently gotten their heads screwed back on tight, and got rid of a lot of their DRM stuff. Pretty much every point I made in the original console wars post has been rescinded. Well, everything except the nonsense about the kinect, which alone makes me prefer the PlayStation.

So, with this new Xbox 180 does it change my opinions about the new Xbox? Not really. The fact of the matter is that this move is too little, too late. While it is nice to see that they are listening to the backlash from fans and the media, I still read a little bit of a slap in the face from Microsoft. Originally they were going to give some nice features as well, such as being able to share your Xbox live account with family members. That is really nice, and for a family with more than one gamer in it, that can save some money. However, their not going to do that anymore, at least that’s what it looks like. When I read their update (link at the bottom of the post) what I hear is “Well, we were going to give you all these nice features to try and make up for our attempt to screw you over with DRM, but since you don’t like the DRM we’re going to take all of those away now because you don’t deserve them.”

Honestly, I’ve had about enough of Microsoft. First they go and make Windows 8 (which they are still trying so desperately to force everyone onto tablets), and now this whole mess with the Xbox.

You can read the whole Xbox One update here.

console wars (aka: why, if I were to buy a console, it would be a PS4)

I am, primarily, a PC gamer. Growing up as a kid we were never allowed to have video games in the house. The closest I ever got to owning a console when I was a kid was when I bought myself a Game Boy Advanced (remember that thing? That feels like forever ago) with my own money that I saved for a few months. It wasn’t until I was in college that my parents bought a Wii (note: after I moved out) which they bought mostly because of Wii sports, which they of course got bored of within a week or two. So, growing up most of the gaming my brother and I did were Star Wars: Rebellion, Age of Empires, and Duke Nukem I & II.

Fast forward to about a year and a half ago. I needed a new laptop for school, but at the same time I wanted something powerful enough to play games on. Well, at the time I couldn’t afford a gaming laptop, so I got one that could fulfill all of my school and programming needs and decided I would build myself a gaming PC once I could afford one, which ended up being last summer, and I did see that it was good.

Ok, now back to the topic. Basically what it comes down to is I am primarily a PC gamer, however, having a console has it’s advantages. I’ve been thinking of getting myself a console for a little while now, and of course with the recent announcements of the PS4 and the Xbox One I figured I would put my thoughts out there. For the sake of this discussion I am going to ignore the WiiU, mostly because it came out a while ago and I’m also thinking about getting one for two main reasons: I already own some Wii games and I really want to play the new Smash Brothers.

So, onward to the two new consoles that were just announced, and to why I won’t be buying an Xbox

Always on DRM

If you have read much of anything on my blog you probably know I am pretty anti-DRM, and this is probably my biggest issue with the Xbox One. For those who don’t know, what this means is that in order to play the Xbox One you are required to have an internet connection. Once every 24 hours your machine has to check in to Microsoft’s servers to make sure that nothing funny is going on.

There are a few problems with this system. For one thing, not everyone has internet. Even among those who do have internet, not everyone wants their console connected to it. Now, granted, an internet connection i s required, but not everyone cares.

But that’s not even the biggest problem with always on DRM. The biggest problem is this: We can’t trust Microsoft (or the publisher as the case may be for certain games) to always keep their servers running. What happens when my console tries to check in, and your server isn’t working? It means I can’t play my games until you solve your issues. It’s stupid. Steam uses a similar check-in system, but Steam at least has an offline mode.

The PS4 does not have a system like this in place, though the way that DRM is used for individual games is up to the individual publishers, so there is still a possibility for this sort of system with 3rd party PS4 games, but it is not system-wide.

Used Games.

This one is not really a big issue for me, as it’s been years since there has even been such a thing as used games for PC, so I’m just going to brush over this one. However, this might be a big issue for some people.

Kinect

I hate motion gaming. Hands down. I think that motion gaming alone almost ruined a whole generation of games. I mean, come on, is there really any proof necessary beyond Star Wars Kinect to prove that the kinect is nothing more than a gimmick with nowhere to go that does nothing but ruin perfectly good franchises?

The Xbox One will not run without the kinect. Granted, it comes with one, but the fact is I don’t want one, and the added kinect built into it just raises the price.

The tl;dr

If I buy a console, which again, is not for sure as I’m more focused on repairing my gaming PC at the moment, it will be a PS4 over the Xbox One. Hands down, no question about it.

first impressions: PyGame

So, I’ve decided that every time I use a new language or framework for the first time, I will write a little first impressions post about it.

This spring term I am taking a computer graphics class, CS 455 at BYU for anyone interested. It has been a really interesting class, and the projects so far have been both fun and informative. The latest project we were assigned to do was an Inverse Kinematics solver. If you don’t know what Inverse Kinematics means and you want to, you can read about it on wikipedia, but that’s not the point of this post.

We were given a framework, basically a starting point, using XNA that we could use for the project. Well, I ran into a little hitch there when the CPU in my nice gaming machine died. My gaming computer was also my only windows machine (I run Fedora on my school laptop). So… now what?

I decided I would need to learn and use a different environment, language and library to do the assignment. Being a big fan of Python I decided to try out PyGame, a library designed to help make 2d games.

This is, of course, a first impression, I have only spent about 8 hours total working with the system, but here are some initial thoughts after completing my first project in PyGame. First, a screenshot:

Screenshot from 2013-05-23 00:27:06

Syntax

Well, considering that this is a library for Python the syntax is, well, Python. That is a huge plus. Even if you are not familiar with Python syntax it is pretty simple to learn (unless you are an experienced C-related language programmer, then the lack of brackets and semi-colons might drive you nuts). It is a library that is simple to use for both experienced an inexperienced programmers. The entirety of the IK solver took only 155 lines of code.

PyGame itself plugs into Python like any other module. It provides a bunch of classes, methods and constants that make interacting with the game window really simple. Here is my displayPlanks method, which is used to draw all of the planks that make up the arm.

Before calling this method we already know where each plank is located as well as how much to rotate the image of the plank. We also know the position of the end-effector (represented graphically as a baseball). This method simply takes the image of the plank, scales and rotates it for each segment, and then prints all the planks and the baseball to the screen. All of that happens quickly and without a lot of code.

Documentation

The PyGame module is pretty well documented, and everything I needed was pretty easy to find as well. However, I must say that the color scheme used for their online documentation is pretty hard on my eyes.

Additionally, I was able to find some examples of some of my problems easily enough on google. There is also this free online book that is a pretty good resource to learn how to use PyGame, I only read chapter 2 and half of chapter 3, but it is easy to understand and is a pretty good resource for anyone interested to learn PyGame.

Power and Capability

This was a simply project, and I haven’t done a lot of research on this subject yet, but as far as I’m aware, PyGame is not designed to be a heavy-duty game development environment, so I doubt we’ll be seeing any best seller’s coming from it, but it’s simplicity definitely makes it worthwhile and capable of being a good way to prototype and make smaller games.

Conclusion

Again, this is a first impression, so if I have preached false doctrine, I claim ignorance as my defense. That being said, though, I was impressed at how simple it was to learn and build something with PyGame, and I plan to use it in the future for personal projects.

Here is a demo of the IK solver in action:

You can check out the source code for my IK solver on github.

on changing one’s identity

Okay, first some background. My birth name is Isaac. However, about 18 months ago (it may have actually been 2 years, but the specifics are not important, what is important is it was a while ago) I changed and started to go by Ike. The reasons for this are a little complex, but one is I don’t like who I was in high school (then again, who did? We were all terrible people in high school) and since starting college I had been trying to reinvent myself. (Freshman year I thought about starting to go by my middle name, Grant, but that never panned out.) The name Ike started off as a lazy moment, where I typed my name as TAIke on a chat forum. I was working as a teaching assistant at the time. And yes, Ike is only two letters shorter than Isaac, but that’s how it was. The chat room was used by the students to ask the TA’s questions without having to come into our office, which was helpful on both sides. However, all the students started calling me Ike because I had never bothered to change the name on the chat. After a while I grew to like it.

The name Ike is unique. Well, Isaac is also, at least among people my age, I only know a handful of Isaac’s around my age (however, it is a really popular name among 10-12 year old boys), and I personally don’t know anyone that goes by Ike. The name Ike does come with it’s problems, though. One is that most of my introductions happen something like this:

“Hi, I’m Ike.”

“Mike?”

“No, Ike”

But that I can deal with.

The name also brings with it two associations. One is with president Dwight D. Eisenhower (which, by the way, baffles me, how is ‘Ike’ derived from that name) and the other is ‘Ike from Super Smash Brothers’. For the record, he is not from Super Smash Brothers, he is from Fire Emblem, and he is bad-ass.

However, changing your identity is not that easy. There are a lot of people that still know me as, and prefer to call me, Isaac. I even get confused myself as to what name to put on forms, and on rare occasions I still slip up and introduce myself as Isaac. Transition is proving more difficult than simply deciding to introduce myself as Ike and sign my name as “Ike Ellsworth”.

But there’s a reason why it’s important to me. It’s about reinventing myself. Don’t get me wrong, there is nothing wrong with the name Isaac, it’s a good name, and I’m grateful to my parents for naming me that. However, at the same time, changing the way I identify myself is part of changing who I am.

every freaking semester

You would think that after doing this whole school thing for as long as I have I would learn to figure it out, but it would seem that every semester goes pretty much the same way. I start off at the beginning feeling pretty good, I feel confident that I can handle my workload, and that I’m going to do well and get good grades. However, about midway through the semester things start to pile up. Somewhere in that time something stressful seems to happen in my life, be it work related, school related or related to my personal life, somewhere the stress begins. Then everything starts to fall apart. I get behind, I get stressed, and life gets generally pretty miserable.

Then, somewhere I kick into high gear. I focus and decide which grades are worth salvaging, and which I can afford to divert attention from, and I manage to salvage it somehow and end up with decent, not great, grades. This vicious cycle seems to repeat every semester without fail, and it worries me.

Probably the biggest reason that this is a concern is that it implies inevitability. Have I just become stuck in a cycle that I can’t break?

I personally don’t believe in inevitability. Some time ago I was a psychology major. Yes, I know that sounds ridiculous, considering where I’m at now (a cs major, wanting to go into a career in game production), but I was. For me one of the biggest reasons I quit the major was because I couldn’t swallow the idea of Behaviorism, the idea that we, as humans, are nothing more than our genetics and our conditioning. I don’t believe that. There is something more to our beings that allows us to rise above our circumstances, that allows us to be more than just finite state machines, transitioning from state to state governed by a set of defined rules.

This is why this cycle of mine is so concerning, how I seem stuck in a cycle that I can’t break. I’m searching desperately for a way out, and every semester I tell myself “This semester will be different, this time I’ll get it right.” Each semester that promise seems more and more hollow.

I apologize for a pointless rant, but I needed to vent for a moment.

udk

I’ve been starting to work and learn with UDK with some friends and classmates of mine. We’ve spent the past few months working on the start of a third person action game. I took the following few pictures today, just wanted to show off the progress we’ve made so far.

UDK 2013-03-30 11-27-51-78

UDK 2013-03-30 11-28-06-71

UDK 2013-03-30 11-28-23-93

why open source works

In short: community. Community is the core that drives open source. Users become contributors with access to the source code itself and can submit bugs, suggest new features, and even contribute to the solutions. A company simply cannot hire a pool of developers as vast and knowledgeable as open source projects have access to. It is an unusual model of software development, and it contrasts with traditional commercial software development. This does not mean they cannot coexist.

a blog about technology, gaming, life and whatever written by Ike Ellsworth