Evan Sims

Evan is a 25 year old designer, programmer and college student from the cornfields of Illinois. Aside from being a freelance web developer, he is also an aspiring video game designer. Learn more.

Free for Job I am currently available for contract work! I have over a decade of experience in building appealing, standards-based web designs and applications. Check out my resume on LinkedIn, my list of ongoing projects and if you feel like we might be a good fit, drop me a line.

Add to Technorati Favorites

Last Seen

S Pine St, Arcola, IL

Lifestream

So the new level sync feature in FFXI definitely makes this game way more playable. Why couldn't they have added this two years ago?

Monday 22:16

Uh oh. Methinks somebody forgot to renew tsavo.com.

Monday 19:30

Majorly productive day so far. Who knew rocking out to Tenacious D was a big work motivator?

Monday 15:55

Chris and I are discussing the logistics of creating a tweet tracking app devoted exclusively to the topic of poop. Genius. Pure genius.

Monday 14:34

Exploring 2007

You are currently browsing the unholy depths of my blogging history, albeit a rather short one given that I didn't start keeping track of my posts until a few years ago. If you're looking for a summary of all my past posts, check the Archives page.

September 8th, 2007
Gaming
Reviews
Comments

Tags:

Bioshock: Greatest FPS Ever?

So, I just finished Bioshock this evening. What a crazy, brilliant game. The game mechanics and level design are top notch, there’s a very deep and involved storyline, and the gameplay doesn’t get stale after the first five levels. I have to hand it to them, I think they may have built the greatest first person shooter to date.

I loved the hacking minigames, the “virtue tests” involving the children (and subsequent alternate endings), and the plasmids were a blast. Not a dull moment in the game. My only complaint? I suppose the ending left me a little wanting… the ending boss fight wasn’t overly difficult, but more importantly it kind of of felt unfinished. You get there, he dies, roll one of three possible endings, fin. Regardless though, total blast, and I can’t recommend the game more.

Continue Reading ‘Bioshock: Greatest FPS Ever?’ …

September 5th, 2007
News
Comments

Tags:


Apple announces iPod Touch, iTunes Wifi, more.

Today at San Francisco’s Moscone West, Steve Jobs announced a several new iPods, a new iTunes Wifi Store and a new business partnership with Starbucks, among other bits.

iPhone Price Drop

Roughly $200 less. Overdue and very much welcome.

iPod Touch

Apple kind of gave AT&T a kick in the ol’ jewels today by announcing the iPod Touch. Basically, take all the goodness of the iPhone without the phone, and AT&T’s nonsense, and you’ve got the touch. It supports Wifi, has Safari, multi-touch, music playback, video playback, all that fun stuff. Just no phone; and the 8GB model is $100 (USD) less than the 8GB iPhone, after the new price reduction. I was so pleased to see this move, as it gives all of us who don’t need or want to converge their phone with their mp3 player an opportunity to get their grubby hands on the sexy device.

Personally, I think it makes a hell of a lot of sense to keep your cell phone - which, if you’re like me, you undoubtedly upgrade far more often than you do your MP3 player - and just get a very sexy iPod that will last you a long while. Convergence is great, but when you replace your electronics as most of us do, it’s not very financially wise.


(Images courtesy of MacWorld.)

iPod Nano

As many of us had expected, and several sites leaked imagery of in the past week, Apple launched a redesigned iPod Nano, lovingly referred to as the “iPod fatty” - and for good reason. The thing is chunky for a Nano. Honestly, I don’t care much for it. I think it’s pretty fugly. I like the fact that they finally added video playback support, but the design is just hideous. What was so wrong with the 1st gen design, or even the 2nd gen, that Apple felt this direction was worth going?

iTunes Wifi Store

iPod Touch and iPhone owners will be able to browse and buy music right from their palm of their hands using the new iTunes Wifi Store; purchases are delivered straight to the device, and synced up to your PC next time you dock. By far the most exciting them for me at this event.

Starbucks Partnership

Kinda goofy, but worth mentioning; iTunes on the iPod and your PC/Mac will now detect when you’re using Wifi in a Starbucks, and will open access to a new iTunes section that allows you to see what music is currently playing in the store, and purchase it right from your device. This will take a massive infrastructure upgrade for Starbucks, and will not be an immediate launch by any means. From the amount of work that it will take to launch this feature, I’m guessing this is just the beginning of the partnership; these two have got something up their sleeves, mark my words.

September 3rd, 2007
Thoughts
Comments

Tags:

Much Ado About Second Life

Those of you who knew me in-world as Vincent Shore may have noticed my absence from the metaverse as of late; and some of you who know me as the developer of Squawk, the social network integration tool for Second Life, may have questioned why I decided to sell my project. I thought now would be a good time to go over my reasoning behind my departure, if only to straighten the thoughts in my own mind.

For those unfamiliar with the platform, Second Life is an Internet-connected 3D virtual world. You might think of it like a massively multiplayer online game like World of Warcraft, minus the game. Second Life is a world where you exist as a infinitely customizable avatar, where the citizens of the world set the rules (for the most part) and define the shape the world takes. You can build anything your imagination can conceive by using primitives or molding it’s shape in an external 3D program and importing it, and then you can give it “life” by scripting it’s invisible intelligence. Users can then give away these creations, or even sell them for Linden Dollars; the inworld currency that can be traded back and forth for real cash using PayPal.

Continue Reading ‘Much Ado About Second Life’ …

August 7th, 2007
Thoughts
Comments

Tags:

Mediacom Blows

Just an FYI: I may not be able to blog much this week, as my home Internet is completely useless. Mediacom was supposed to fix it today, but instead of sending out a maintenance guy to fix the signal - which I told them was the issue, and told them to send out - they sent a technician, who was here for 10 minutes, agreed with my conclusion, and then told me he’d have to schedule a maintenance guy to come out. I called them just now to see when I could expect someone to be out, and they told me “we don’t schedule our maintenance people, they come out as soon as possible.” Super, so it could be in ten minutes or two weeks.

If you have an option between using Mediacom or another service, use another service. Their support is rude and worthless, and I’ve had nothing but headaches with their service. DSL and DirectTV are looking better with every passing moment.

August 3rd, 2007
Tips
Comments

Tags:


Web APIs by Example, Part II: del.icio.us

Today we’ll be looking at applying what we’ve already learned from working with the Twitter API to the social bookmarking site del.icio.us. As you might expect, the del.icio.us API offers a much broader set of functionality for interacting with it’s data. Besides being able to add bookmarks, you can delete existing ones and use a number of different methods to selectively filter your bookmarks and return just the ones you’re looking for. It’s quite nice, and today we’ll be exposing some of these features with an app that lets us add bookmarks as well as filter our most recent ones.


$delicious_username = 'YOUR_USERNAME_HERE';
$delicious_password = 'YOUR_PASSWORD_HERE';

$errno = 0;
$errstr = '';
$response = '';

$links = array();

function httpRequest($host, $path = '/', $method = 'GET') {

  global $errno, $errstr, $response;
  global $delicious_username, $delicious_password;

  $port = 80;
  if(substr($host, 0, 6) == 'ssl://') $port = 443;

  $sock = @fsockopen($host, $port, $errno, $errstr, 30);
  if (!$sock) {
    if(!$errno) {
      die("<p>fsockopen() error:<br />Unable to open socket for undefined reason; most likely the version of PHP you're running doesn't have SSL support compiled.");
    } else {
      die("<p>fsockopen() error:<br />$errstr ($errno)</p>");
    }
  } else {

    $host = substr($host, 6);
    $header  = "$method $path HTTP/1.0rn";
    $header .= "Host: $hostrn";
    $header .= "Accept-Encoding: nonern";
    $header .= "Authorization: Basic " . base64_encode("{$delicious_username}:{$delicious_password}") . "rn";
    $header .= "Connection: Closernrn";

      fwrite($sock, $header);
      while (!feof($sock)) {
      $response .= fgets($sock, 128);
      }
      fclose($sock);

      $response = str_replace("r", '', $response);
      $response = trim(substr($response, strpos($response, "nn")));
      return true;
  }

}

if(isset($_POST['url']) && isset($_POST['description'])) {

  // Bookmark a URL

  $url = urlencode(trim($_POST['url']));
  $description = urlencode(trim($_POST['description']));
  httpRequest('ssl://api.del.icio.us', '/v1/posts/add?url=' . $url . '&description=' . $description);

}

// Fetch our recent bookmarks:

$count = 10;
$tag = '';

if(isset($_GET['count']) && strlen($_GET['count']) && is_numeric($_GET['count'])) $count = trim($_GET['count']);
if(isset($_GET['tag']) && strlen($_GET['tag'])) $tag = urlencode(trim($_GET['tag']));

$ret = httpRequest('ssl://api.del.icio.us', '/v1/posts/recent?count=' . $count . '&tag=' . $tag);

if($ret) {
  $xml_parser = xml_parser_create();
  xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, true);
  xml_set_element_handler($xml_parser, 'parsePostOpen', 'parsePostClose');
  xml_parse($xml_parser, $response, true);
}

function parsePostClose($parser, $name){}
function parsePostOpen($parser, $name, $attrs)
{
  if(isset($attrs['HREF'])) {
    $attrs['TIME'] = strtotime(substr($attrs['TIME'], 0, -1));
    $attrs['TAG'] = explode(' ', trim($attrs['TAG']));
    global $links;
    $links[] = $attrs;
  }
}

?>

<html>
<head>
  <title>del.icio.us Bookmarks Example</title>
</head>

<body>

  <h1>My Recent Bookmarks</h1>

  <form method="get">
    <fieldset>
      <legend>Filter Results</legend>
      Display the
      <select id="count" name="count">
        <option >10</option>
        <option >50</option>
        <option >100</option>
      </select>
      most recent bookmarks,
      tagged with <input type="text" id="tag" name="tag" value="" /> &nbsp; <input type="submit" value="Refresh" />
    </fieldset>
  </form>

  <ul>

  </ul>

  <form method="post">
    <fieldset>
      <legend>New Bookmark</legend>
      <label for="url">URL:</label><br />
      <input type="text" id="url" name="url" /><br />
      <label for="description">Description:</label><br />
      <input type="text" id="description" name="description" /> <input type="submit" value="Add Bookmark" />
    </fieldset>
  </form>

</body>
</html>

That’s it! If everything’s gone right, you’ve got yourself a pretty slick little bookmark manager for del.icio.us. Hope you enjoyed this article, and please feel free to comment with any questions or additions. I have a few more additions planned to the series, so stay tuned.

Download the Source Code

© 2000-2008 Evan Sims. Content redistributable under terms. Hosted by (mt) Media Temple. Powered by Wordpress. Fueled by ramen.