I’ve Won a Prestigious Award

Whoever said no news is good news was a liar, because this news is good (and about two weeks late). My previous blog post about how awesome surface pro is for gaming won me a free Halo Spartan Assault Surface Pro.

My better half told me that having a party to honor myself for this prestigious award would be over the top and narcissistic, so I took her advice and had her make a video of me opening it in the kitchen.
Continue reading

Microsoft Surface: Tablet Gaming Evolved

I was certainly late to jump on the tablet bandwagon. Recently, I’ve noticed my PS3 and giant gaming PC haven’t been getting the attention they are used to. Why? Because I’ve been logging probably more hours than healthy playing games on the Surface. It all started when I went on a two week vacation across the Atlantic. While packing, I realized it’s been about eight years since I’ve gone anywhere without my gargantuan laptop. Having the laptop full keyboard is nice, but using it on an airplane forces me into a contorted T-Rex arm typing  position.

I was determined not to lug the beast around Italy, so I decided to load up some games on the Surface. Everything went better than expected, and I was able to get in some quality gaming when I wasn’t out exploring the world. The eight hour flight was joyously filled with gaming. I didn’t have to deal with cramped laptop arms while getting to rock 1080p resolution. Sure there were other people gaming on their ‘tablets’, you know ‘games’ like Angry Birds and Words with Friends. No thanks.

Below are four games that get the Patrick Davis seal of approval for maximum surface enjoyment.

Civilization 5: A Brave New World

Civ5

Made for Surface Pro

This game was made for the Surface. I was skeptical about playing it without a keyboard, but the keyboard was completely unnecessary. The type-keyboard sat neglected and lonely, neatly folded behind the screen for the entirety of my playing. I’ve always been a fan of Civ games, but being able to play anywhere can have serious productivity destroying repercussions.

Mark of the Ninja

Mark of the Ninja

Surface Ninja

One of, if not the best Stealth games of all time. My favorite way to play this is to plug in a controller and use the mini display port output to a HDTV. The game plays perfectly fine with a keyboard if that suites your fancy.

X-Com Enemy Unknown

This is another strategy gem I’ve fallen in love with. The original X-Com from the 90s remains one of my favorite games of all time. I haven’t tried to play this sans keyboard/mouse. I prefer the type cover keyboard and a Bluetooth mouse.

Halo: Spartan Assault

Halo always brings back college memories of sixteen guys hauling a bunch of TVs and X-Boxes to a LAN Party. Spartan Assault is only 6.99 on the Windows Store, so it won’t set you back as much as a any of the above games. It’s a top down shooter based in the Halo Universe. I felt comfortable with the touch screen controls after going through the tutorial.

Halo: Spartan Assault

Halo on the Surface

It somewhat reminds me of an old gem from the 8 bit era called smash TV. Whats not to like about blowing up the covenant in a glorious manner. It seems like most of the Halo staples are in the game, including weapons and vehicles. It also features achievements and weapons unlocks you can buy between missions. Fun game, certainly worth the $6.99 price tag.

I never expected the Surface to be a gaming device, but after a few months of ownership it’s filled the role perfectly.

Twitters Typeahead.js in Action

Lately I’ve been doing some light web development in my spare time. One feature I’ve been finding myself needing was an auto-completing combo box. We have such a feature built in to our product at SurroundTech, but since I was brushing up on my PHP skills instead of .Net that wasn’t an option. The requirements were typeahead functionality as well as the ability to drop down the results in as a combo box would showing the results based on the already entered string. Also, it has to retreive data from a service. If the data was all static I would probably just hard code it into a combo box for simplicity.

A made it through three different approaches before I settled on the Typeahead.js released by twitter.

The first solution I looked at was the JQuery UI autocomplete. This supports JSON services to populate the combox. The downside is it doesn’t autofill in the text in the actual text box, and when you tab off it doesn’t complete the entry. The other hurdle is that it didn’t seem to play nice with my twitter bootstrap styles right out of the box. I’ll admit, I’ve become a big fan of the bootstrap framework, as it really simplifies responsive layouts.

Next, I realized there was already an auto-complete option built into the Twitter Bootstrap framework. It seems this was done as a fork of the branch, and eventually was added to the official release. There isn’t much in the way of documentation on how to use it, but I worked from this example. The biggest issue I encountered is that it doesn’t to support complex types. The JQuery auto-complete didn’t, but it did support display string and value, which was good enough for me.

Finally, I decided to check out the new Typeahead.js by twitter. Not to be confused with the type ahead support in the bootstrap framework (version 2.0). Funnily enough, the bootstrap framework has dropped their previous implementation of type ahead for the typeahead.js version in the 3.0 version of bootstrap. RC1 just came out for Bootstrap V3.0, I’ll admit I haven’t tried it out yet.

Typeahead.js supports json web calls via ajax, as well as static values and the ability to pre-cache data-sets on page load.  It also auto-fills in the most relevant result in the text input field as you type. Most importantly, it supports complex types, and templateing of results.

Example:

There are already some solid examples on the typeahead.js page. I threw together an example you can download and try out as well.

If you’re using the bootstrap 2.0 framework, make sure you generate a custom package without the typeahead jquery option, as the two versions have some of the same signatures and can cause conflicts. 

You’ll need a simple php (or language of your choice) service to return the json results. This page returns a json string array based on the query string passed in to the ‘q’ parameter. This would normally go to a database, but for ease of use I’ve setup some static data.


<? 	header('Content-Type: application/json'); 	 	function startsWith($haystack, $needle) 	{ 	    return !strncmp(strtoupper($haystack), strtoupper($needle), strlen($needle)); 	} 	 	$data[] = "Abrams, J.J."; 	$data[] = "Connery, Sean"; 	$data[] = "Darwin, Charles"; 	$data[] = "Davis, Ben"; 	$data[] = "Davis, Patrick"; 	$data[] = "Drake"; 	$data[] = "Ellington, Duke"; 	 	$query = $_GET['q']; 	if(ISSET($query)) 	{ 		foreach ($data as $value) 		{ 			if(startsWith($value, $query)) 			{ 				$result[] = $value; 			} 		} 		echo json_encode($result);      	} 	else 	{ 		echo json_encode($data); 	} ?>

Now we add the code for our control. Try typing the letter ‘d’, I didn’t go to the trouble of adding a huge dictionary of names to the fake service.


<input class="typeahead tt-query" dir="auto" id="string-typeahead" spellcheck="false" style="position: relative; vertical-align: top; background-color: transparent;" type="text" autocomplete="off" placeholder="Search Contacts" />



Finally, the javascript code to make the magic happen. Jquery and the typeahead.js files are required. The %QUERY parameter will be set to whatever data is in the typeahead text box.

<script type="text/javascript" src="/demo/typeahead.js"></script><script type="text/javascript">// <![CDATA[
$('#string-typeahead').typeahead([
		{
			name: 'contacts',
			remote: 'http://www.thepatrickdavis.com/demo/stringresult.php?q=%QUERY',
		}]);
// ]]></script>

For a full list of examples and features checkout the twitter typeahead page on github.

Chocolatey: Fresh System Setup

This week at the dotnet group I discovered a sweet (pun intended) tool. Short for Chocolatey Nuget, Chocolatey allows you to download and install programs from a PowerShell command line. Anyone who’s toyed around with Ubuntu will recognize that it’s very similar to apt-get.

Writing a Windows PowerShell Script takes a lot of pain out of reformatting your machine. I love the feeling of a fresh windows install, but that feeling fades quickly as I realize I’m going to have to spend the next four hours downloading and babysitting program installs. With Chocolatey I was able to put together a script to get all of my must have development (and a few other) utilities. I was able to go watch a movie and come back to a windows 8 start menu full of programs. I’ve also run the script on windows seven which was smooth except having to CTRL+C the firefox install (everything still installed fine).

If your interested in taking a look at my script, you can download it here. I’ve commented out everything that isn’t free. I also commented out Paint.net in favor of Gimp, since I only require one photo editing application.

You will have to allow powershell to run scripts, as it’s disabled by default for security reasons. You can do this by running the following command:

Steps to get started:

Chocolatey in Action

Chocolatey in Action

  1. Type ‘PowerShell’ in the run menu, this should bring up windows PowerShell. Right click on it and click ‘Run as Administrator’
  2. Enter ‘set-executionpolicy Unrestricted’ and take a Y on the confirmation
  3. Save the PowerShell script above and modify based on preference. IE may download it as a text file, make sure it has a ps1 extension
  4. Enter the path to the PowerShell script
  5. Make a sandwich
  6. Watch Chocolatey magically install your programs
  7. When completed Change the execution back using ‘set-executionpolicy Restricted’ so you don’t get haxored.

 

Here is a list of programs I included in my script, let me know if I’m missing any dev or general user essentials.

  •  Google Chrome
  • Firefox
  • Office 365 ($) -or- LibreOffice (free)
  • Libra Office
  • Sumatra PDF -or – FoxitReader
  • Python
  • Microsoft Web Platform Installer
  • Visual Studio 2012
  • Snoop
  • Fiddler -or- Wireshark
  • PHP
  • PHP Storm ($)
  • git
  • TortoiseGit
  • Subversion
  • Notepad++
  • Filezilla
  • Skype
  • Process Explorer
  • Dropbox -or- Google Drive -or- SkyDrive
  • Keepass
  • Oracle Virtualbox
  • Synergy
  • ack
  • Microsoft SQL Server Express
  • MySQL Community Server
  • MySQL Workbench
  • Toad Mysql
  • Gimp -or- Paint.net
  • Steam (Even the best devs need breaks)

 

Windows 8.1 on Microsoft Surface Pro

With the recently announcement of Microsoft Windows 8.1 pre-release at build, I figured I’d try it out on my Surface Pro. I’m not what you would call a ‘Microsoft fan boy’ but I really do like this device. I won’t go into too many details, but I will say that being the only ‘mobile’ OS that runs steam doesn’t hurt. I also wasn’t overwhelmed by the initial 8.0 release, but I will say it’s really grown on me, especially when using a touch enabled device.

 Installation

  1. Go to http://windows.microsoft.com/en-us/windows-8/preview-download and click download. Windows will ask you to install an update, so far so good. 
  2. Restart.
  3. When the system comes back up, you’ll be prompted to upgrade. After about 30 minutes you’ll have windows 8.1.

Whats New

New Windows 8.1 Settings

New Windows 8.1 Settings

First and foremost, the start button is back. It still only takes your to the start screen, whereas I was expecting a full return of the old school start menu. I did discover that right clicking on it gives you a powerusers menu that has options to open the most used control panel options like ‘Power Options’ and ‘Programs and Features’ as well as the ability to open Powershell and File Explorer. The most impressive however, is the ability to SHUTDOWN the system without going into ‘Settings’->’Power’ which never made much sense to me.

Apps by Category

Apps by Category

There is also a new categorized view off of the start menu. I’m not the ideal user of Windows 8 since I don’t use all that many ‘Windows Apps’. What sold me on the Surface Pro is that it’s really an Ultra-book that can be a tablet when you go into the bathroom or want to read in bed.  Any feature that lets me organize my ‘real’ programs better is a +1 for me. You can also sort by ‘Most Used’, which will probably what I will end up defaulting to.

The Photo viewing app seems a lot better, offering the ability to press left and right arrow keys to move through photos, a feature that was strangely missing from the previous version.

I ran a few Chocolatey installs with no issue, so compatibility seems to be more or less the same. My start menu icons for non-store apps seem to be color coating their backgrounds a little better, before I remember them being mostly gray.

The Important Stuff

My favorite thing about the surface is that it’s great for entertainment. Being able to plug in an HDMI cable (requires micro display port adapter) and getting video and sound into a stereo receiver is great. Being that it’s the size of a small notebook you can take anywhere, it makes for a great multimedia experience.

Multi-monitor has been improved, you can now keep the start screen opened on one monitor and have your windows desktop on the other. You can also have a metro app on each screen. You can also have four apps across two screens.

There are four Apps

There are four Apps

Steam

Steam2Go

Steam still works great, I enjoy using big picture mode hooked up to my TV. Driver compatibility seems to be the same as with Window 8.0. My PlayStation 3 controller still works, which makes for a great mobile gaming platform as long as you don’t require cutting edge graphics.

Development

I’m in the process of downloading the Visual Studio Express 8.1 and trying out some of the features. I’ll do a separate post once I get familiar with the software.

 

Welcome to Web 2.0.0.1

It’s 2013, and I finally think this internet thing is going to catch on. The great thing about blogging is that it lets you share your expertise and experiences with like minded individuals. The bad thing is that it requires extreme discipline to keep up with posting anything of value.

I’m on sort of a web kick lately. I’ve been doing a freelance project using the LAMP stack which I’ve always been fond of. Web development has certainly changed since I was last into it. The combination of php frameworks, jquery libraries, and layouts like twitter bootstrap make building large sites take a lot less overhead. I’ve also started learning Microsofts MVC framework, so keep an eye out for numerous references to ‘view bags’ (Why does this term make me giggle?).

What does my blog offer that other blogs don’t? Cunning Witt, brilliant intellect, life changing wisdom are things that don’t come to mind. However, it will have useful programming tips coupled with bad puns. And who doesn’t like that?