Archive for the ‘Technology’ Category

What is a White House Game Jam?

Saturday, September 20th, 2014

Recently, September 5-8, 2014, I participated in the first White House Game Jam. A game jam is a gathering of game developers with the purpose of developing a game within a short time, like 24 – 48 hours. The White House Game Jam was sponsored by the White House.

White House

The White House

Yes. That White House.

So this adventure started about two weeks before I flew out to Washington, DC. On August 20, 2014 I got an email from a manager within Pearson asking if I was interested in participating in the White House Game Jam. Kristen DiCerbo, who works at Pearson researching how data generated while students play games can be used to assess their learning, Chris Crowell, from Crowell Interactive game development, and Cole Cecil, a fellow software developer at Pearson with me, composed our team.

Team Pearbat

Team Pearbat

On September 1, 2014, Mark DeLoura, Senior Advisor for Digital Media, White House Office of Science and Technology Policy and game jam facilitator, sent us the rules for the jam. It included suggested topics for our game: science, civics, math, English, or history. Our team, consisting of members in Iowa City, IA, Phoenix, AX, and Toronto, Canada, met via a Google Hangout to discuss strategy. After our brainstorming session we decided that we would create a game related to the assassination of President Abraham Lincoln. The idea of the game is that you are an investigator moments after the assassination and your job is to investigate and interview potential suspects who may have been involved in the assassination. Through the evidence gathered during the investigation the player would determine if the evidence is important, truthful, and points to guilt or innocence for the particular suspect. As the user plays the game they may change their assessment of the evidence and this can be used to analyse the critical thinking of the player.

Chris’s role in the team was as the game designer and graphic artist. Kristen acted as producer and researcher. Cole and myself were the developers. We looked at a couple of different adventure game engines to use for our game and decided on using Visionaire Studio. One of the requirements for the game engine was that it work on both Mac and Windows. We wanted our game to be able to record data as the user analysed the collected interview evidence so we used MySQL for the a database. And to add logic to the game for recording data we leveraged the Lua scripting language integrated into Visionaire Studio.

I made sure to order a Washington Metro SmarTrip card right away. It arrived a couple of days before my flight.

SmarTrip card

SmarTrip card

My flight on Friday, September 5, 2014, was early in the morning at 6AM. It connected through Atlanta, GA. I arrived at Ronald Reagan Washington National Airport in the early afternoon. I was able to use my SmarTrip card to board the metro rail station at the airport.

The Ronal Reagan Washington National Airport from the Metro station platform

The Ronal Reagan Washington National Airport from the Metro station platform

The trip on the Metro to the hotel, Hotel Palomar, was pretty easy. I took one train to Metro Center and switched to another train to Dupont Circle.

Riding escalator up from Dupont Circle station

Riding escalator up from Dupont Circle station

Once at street level it was a short walk to the hotel.

HotelPalomarRoom

Hotel Palomar room

View from Hotel Palomar room

View from Hotel Palomar room

Difference Engine was providing the space that we would be jamming in on Saturday and Sunday. So on Friday evening they were having a happy hour at their offices to let everyone find the location just off of Dupont Circle the night before and get a chance to meet the other teams participating in the game jam. I had a little bit of time before the meet up at Difference Engine so I went for a walk down Connecticut Avenue to 17th Street.

Found a Krispy Kreme on the way. Don't have any at home.

Found a Krispy Kreme on the way. Don’t have any at home.

I took a few pictures of the White House and then went back to the hotel.

Selfie with The White House

Selfie with The White House

Once arriving back at the hotel I met up with Cole and met Kristen for the first time in person. We decided to get some dinner before heading to the happy hour. We stopped at Pizzeria Paradiso. After dinner we went to the Difference Engine office. It is a remodeled bank building. We were escorted up the elevator to the second floor. There was a foosball table, arcade cabinet, and Band Hero set up in the front room. In the kitchen/gathering space (also where the ping pong table was) drinks and hors d’oeuvres were set up.

Difference Engine happy hour

Difference Engine happy hour

One of the Difference Engine employee’s showed us around the space that we would be using in the morning. There were three rooms that are normally used by developers. They had removed all of the computers but kept the monitors on the desks for us to use.  Chris, who drove from Toronto, Canada, where he now lives, arrived at the Difference Engine office late in the evening. This was the first time that we had met face to face. We soon called it a night. Before leaving though, I did ask if anyone on Team Pearbat wanted to go for a run in the morning.

However, at 6:30AM on Saturday morning, September 6, 2014, there were no takers. I was able to run down to the Lincoln Memorial before we needed to be at the Difference Engine offices at 9AM for the start of the jam. Here is the link to my GPS tracked run: http://connect.garmin.com/modern/activity/584011061. There wasn’t a lot of traffic in the morning. I assume that was because it was a Saturday. Down at the Lincoln Memorial there were just a handful of people hanging out or taking pictures from the steps. While visiting the memorial most of the time I was the only one actually in the memorial.

When our team arrived at the Difference Engine offices we were one of the first teams there. We were assigned a “bay” and were able to pick which of three tables we wanted for our team. We set about connecting the laptops to the monitors and getting settled in.

Team Pearbat set up and ready to jam

Team Pearbat set up and ready to jam

Breakfast was provided for us. There were drinks and bagels. We were gathered into the front room for a kickoff.

Difference Engine meeting room in the morning empty

Difference Engine meeting room in the morning empty

DifferenceEngineMeetingRoomFull

Participants gathered in meeting room for kickoff

Mark DeLoura started the game jam by explaining how the White House decided to host this event. There were remarks from other officials. The teachers/educators that would be on hand for the two days to help provide us with any educational resources were introduced. And then we were released to start developing.

Mark DeLoura kicking off White House Game Jam

Mark DeLoura kicking off White House Game Jam

We went back to our team area and began developing our game. Lunch was also provided to us and there were drinks and snacks available throughout the two days. Cole and I spent much of the morning and afternoon setting up the initial game elements and sketching out the data to be collected. Kristen was working on dialog to use within the game. And Chris worked to create content like the outside of Ford’s Theatre and the game avatars. We went out to eat at The Burger Joint for dinner. We wanted to get out of the office for a little bit. Once done with dinner we returned to the office and stayed until about 10:30PM.

We arrived back at the office at 8AM on Sunday, September 7, 2014. Again, we were provided with breakfast. We had to have a playable prototype of our game ready for a checkpoint at 11:30AM that day.

"Who Killed Lincoln?" playable prototype

“Who Killed Lincoln?” playable prototype

Once we had the playable prototype complete we were provided lunch. At 1:00PM we had students arrive to playtest our games. They gave us feedback on the game that we could integrate back into the game.

"Who Killed Lincoln?" playtesting

“Who Killed Lincoln?” playtesting

We had to have a 2 minute game demo created and uploaded to the event Dropbox by 7PM that evening. Submitting the video was our ticket to be able to present on Monday morning. Everyone got the video done. 🙂

After getting the video done we stopped to eat the provided pizza. Once done eating, we continued to polish the game a bit, adding support for storing data about how the player categorizes information discovered in the game. We wrapped up around 8:30PM and cleaned up our team space.

Cleaned up work space

Cleaned up work space

On Monday morning the teams were going to be presenting our videos from 9-11AM. Each team was allocated 3 minutes to present: 2 minutes for their video and 1 minute to talk. We would be presenting in the South Court Auditorium in the Eisenhower Executive Office Building (EEOB) on the White House grounds.

Dressed and ready to present

Dressed and ready to present

We walked from the hotel to the EEOB and arrived at 8:15AM on Monday, September 8, 2014.

Dwight D. Eisenhower Executive Office Building sign

Dwight D. Eisenhower Executive Office Building sign

Eisenhower Executive Office Building

Eisenhower Executive Office Building

We had to go through security. Back before we even traveled to DC we had to provide our names, birth dates, social security numbers, and nationality to the game jam organizers to get us approved to enter the building. On this morning, we had to provide our ID to the guards who verified that we were on the list. There was a bit of small talk with the first set of guards because one of them was from the Waterloo, IA area and found it interesting that Cole and I were from the Cedar Rapids/Iowa City, IA area. We then followed a path to a small building. There was a window on the outside of the building. We again gave the guard our ID and he then gave us a visitors badge.

EEOB visitor badge

EEOB visitor badge

We waited by the building door and we were individually let into the building. Once in the building we were sent into a small room to stand on a mat. There was a short fence and on the other side was dog and it’s handler. After a few moments we were let out into a larger room with an x-ray machine and metal detector. We scanned our badge, walked through the metal detector, collected our x-rayed items and were let out of the room and told that we were free to walk around the building. This was because we were US citizens. Some of the participants weren’t citizens and they had to be escorted through the building. We were directed through the building to the auditorium. Here is the White House Game Jam presentation agenda. The presentation started with some speeches. Then each team had their three minutes. We presented in the second batch of team presentations.

Team Pearbat presenting

Team Pearbat presenting

We used our one minute to talk about:

  1. Our game about “Who Killed Lincoln?” was designed to teach in more detail a piece of history that most everyone knows the basics about. The game provides multiple perspectives about a historical event allowing the student to apply critical thinking to understand what happened at the event.
  2. Our game collects data about how the student is understanding the information as it is presented. This data can be used by teachers to determine how well the students are learning.
  3. Our team was a partnership between a large corporation and a small independent developer. And it worked!

After the presentation was over, which actually ended exactly at 11AM, we went up to the Indian Treaty Room for refreshments and to let people play our games.

Indian Treaty Room - originally the Navy's library

Indian Treaty Room – originally the Navy’s library

The “presidential” cupcakes were a standout hit of the event.

Presidential cupcakes

Presidential cupcakes

Me and my cupcake

Me and my cupcake

Tables were set up around the room where we set up our laptops to present our games.

Jesse demoing in Indian Treaty Room (from Karina  Linch's Instagram feed)

Jesse demoing in Indian Treaty Room (from Karina Linch’s Instagram feed)

Rovio Angry Birds developers and the Chief Technology Officer of the United State Megan Smith playing games

Rovio Angry Birds developers and the Chief Technology Officer of the United State Megan Smith playing games

 

West Wing from Indian Treaty Room

West Wing from Indian Treaty Room

Once the demos were over the event was over. Team Pearbat got a team photo in the Indian Treaty Room.

Team Pearbat in Indian Treaty Room

Team Pearbat in Indian Treaty Room

We left the EEOB, which is much easier than entering. We could go out any of the exits. There was a pad to scan our visitor badge and a slot to deposit it into. We then went through the guarded turnstile and were out on 17th Street. Cole and I had the same flight, so we went back to the hotel and picked up our stored luggage and changed clothes. We took the metro back to the airport and headed home. It was long weekend but a very memorable one.

Pentagon from the air

Pentagon from the air

The Office of Educational Technology has posted videos from the weekend on the #WHGameJam 2014 YouTube playlist.

The White House Education Game Jam sticker

The White House Education Game Jam sticker

First month of Internet telephony results

Tuesday, April 1st, 2014

My Internet telephony landline replacement system has been used for one complete month. Here are some financial results.

My last traditional landline month of service: $47.46
Internet telephony – Twillio and Callcentric – March 2014: $8.12
Savings: $39.34

I am very happy with these results. These results may not be typical as we (obviously) don’t use the home phone very much. The traditional home phone service wasn’t usage based which results in a large per minute cost. The Internet telephony system meets our needs better because of the pay-what-you-use model. It gives us a much lower monthly cost with no loss of features.

Cutting the landline phone

Sunday, March 30th, 2014

I know it is 2014 and many people have already dropped their landline phone. But I have two kids who aren’t yet old enough to have a mobile phone and I want to make sure that they can use a traditional phone in our house if the need should arise. This February 21, 2014, I fully activated my Internet based home phone system which replaced my traditional CenturyLink phone service. My Internet based phone service is composed of an OBi device to interface with my existing phone handset, Twilio for incoming calls, and Callcentric for outgoing calls.

Callcentric is a BYOD (Bring Your Own Device) Internet phone provider. They can provide incoming and outgoing phone service using your own telephone adapter. One of the things that I like about Callcentric is the ability to use a pay-per-minute phone plan. Since we typically use our mobile phones it currently doesn’t make financial sense to buy a lot of VOIP minutes. For outgoing calls, Callcentric charges $0.0198 per minutes to USA and Canada. Callcentric also provides 911 services at $1.50 per month.

I could use Callcentric for incoming calls as well. But I am using Twilio to create an incoming call voice application. I have had a little experience in automated telephone software. In my first job out of college I worked at MCI on 1-800-COLLECT. As part of that job I worked on a team the developed collect messaging and we patented the idea in US 5787150 A: Method and system for automated collect call messaging. Back then, the software was written on an AIX Unix system in C and interacted directly with the telco switch. Now with Twilio you can create a REST application that Twilio invokes when it has telephony events. The application that I developed allows the caller to choose to connect to my mobile phone directly, my wife’s mobile phone directly, or connect with my home phone. This application was written in Python and is hosted on Google App Engine. I have created a GitHub repository Mytelco to host an example of the application. When the incoming caller chooses to connect to one of our cell phones the outgoing connection is a voice call. When the incoming caller chooses to connect to our home phone the outgoing connection is a SIP call.

Here is the current cost breakdown of the system:

Old System

  • CenturyLink local phone service: $47.46 per month

New System

  • One time costs
  • Callcentric
    • 911 service: $1.50 per month
    • Outgoing calls: $0.0198 per minute
  • Twilio
    • Phone Number: 2 x $1.00 = $2.00 per month
    • Incoming call: $0.01 per minute
    • Outgoing connection voice: $0.02 per minute
    • Outgoing connection SIP: $0.005 per minute
  • Google App Engine
    • usage based, currently free

 

2012 Walmart Black Friday HP Laptop Dual Boots Windows 8 and Ubuntu

Thursday, December 27th, 2012

So last night I was able to upgrade my Walmart Black Friday HP 2000-bf69WM laptop from 4 to 8 Gig of memory. Today, I got Ubuntu installed on it so that it can dual boot between Windows 8 and Ubuntu. I followed the steps from this post to shrink the Windows 8 partition to make space for Ubuntu (shrunk by 150 Gig) and installed Ubuntu via USB key: Installing Ubuntu on a Pre-Installed Windows 8 system.

2012 Walmart Black Friday Laptops Support 8 Gig of Memory

Wednesday, December 26th, 2012

I bought the 2012 Walmart Black Friday Compaq CQ58-bf9WM laptop for my daughter and the HP 2000-bf69WM laptop for me. Both are running Windows 8, a 64-bit OS. We just just opened each laptop yesterday for Christmas. The Compaq came with 2 Gig of memory and the HP came with 4 Gig of memory. Both laptops look like they are based on similar if not the same base system. The motherboard only has 1 memory slot. I ordered a 16 Gig (2 x 8G) set of DIMMs; one DIMM for each laptop. I was able to open the bottom of the laptops, take out the 2 or 4 Gig DIMM and insert an 8 Gig DIMM. Upon booting up the machines, they both reported 8 Gig of memory. Success!

Here is the memory that I ordered from Newegg.com: G.SKILL 16GB (2 x 8G) 204-Pin DDR3 SO-DIMM DDR3 1333 (PC3 10600) Laptop Memory Model F3-10600CL9D-16GBSQ

Running pfSense on my home LAN

Saturday, July 4th, 2009

I just got pfSense running on my home LAN. I had a cheap Walmart/Everex PC that wasn’t doing anything. And with the three day weekend I realized that I could use it to create a better home network. I added an Ethernet card that I had plus a new Linksys 10/100 Ethernet card that I found at my local Target for $11.99. This gave the computer 3 network interfaces: WAN, LAN, and Opt1WiFi. I have DSL service, so I hooked the WAN interface of the computer to the DSL router. The WAN interface gets a DHCP address. I hooked the LAN interface to an Ethernet switch that I had around. The LAN interface is configured with a DHCP server. I can hook a laptop into the LAN switch, get a DHCP lease from pfSense, and access the WAN interface out to the Internet.

Yeah, yeah, this could also be done with a typical router like the Linksys WRT54GL. Well, I do have a WRT54GL, which I hooked to the Opt1WiFi interface on the pfSense server. So the WRT54GL also has a concept of a WAN<->LAN interface. In my new configuration the WAN side of the WRT54GL is receiving a DHCP address from the Opti1WiFi interface and the DHCP service of pfSense. The LAN side of the WRT54GL is providing addresses via WiFi (which is how I am posting this from my laptop).

So why have both the pfSense server and the WRT54GL? What the 3 interfaces of the pfSense server allow me to do is separate the WiFi traffic from the LAN. I can add a firewall rule in pfSense to only allow the WiFi traffic from the Opt1WiFi interface to the WAN and block access to the LAN. This will allow me to have services on the LAN network interface that are protected from any WiFi connections.

But what if I want my laptop, connected over the WiFi network, to access my home LAN network? I believe that there are a couple different ways the pfSense will allow me to do that. But that is another task for another time. Because at this time, there isn’t anything (yet) running on my new LAN network segment.

Authenticate via OpenID

Wednesday, March 18th, 2009

You can now use OpenID to authenticate at this blog! w00t!

I have just installed the WordPress plugin OpenID (version 3.2.1). Installation was very simple: just upload the “openid” directory to the “plugin” directory and then active the plugin. The plugin allows you to assign multiple OpenIDs to your account to log in to your blog account.

Google can sort

Saturday, November 22nd, 2008

Google recently announced that they were able to sort 1 terabyte (TB) in 68 seconds using 1,000 computers. The previous record holder was 209 seconds on 910 computers. I was impressed by this because I recently read about MapReduce and have been studying some of Google’s papers about the Google File System. Google used both MapReduce and the Google File System to attain this sorting record. But, being Google, they thought that since they did 1 TB so successfully, why not try sorting 1 petabyte (PB). (A petabyte is a thousand terabytes.) Google was able to sort 1 PB in six hours and two minutes and used 4,000 computers.

Why does Google care about sorting? One reason may be that their primary revenue source is based on advertising. And they have vast access to massive amounts of data submitted by their end users in the form of search queries. The more efficient Google is at crunching this information, the better they can target their advertising to users, resulting in more revenue. And Google can use their data for other purposes too, like predicting flu outbreaks.

I have been very impressed by what I have been reading about MapReduce and the Google File system. These sorting results help prove how efficient their infrastructure is. I particulary like how they use commodity computers to achieve these results. I know that using multiple nodes can get tricky very quickly. But their techniques seem to be designed from the ground up to use multiple nodes. And with this mindset, they can more adequately manage and utilize their collective computing resources.

What I’m reading: locks!

Friday, October 10th, 2008

I have been reading some of the papers published by the Google engineers. It started with Bigtable: A Distributed Storage System for Structured Data. I am not sure how I started. The Official Google Blog posted a link announcing their new technology round series. I watched the “MapReduce” discussion, where the engineers talked about Bigtable and how it is used in MapReduce. This lead me to look for more information about Bigtable as I was looking for information on distributed “communication” techniques to enhance the littles3 implementation. (The current littles3 architecture is very simple and only supports one node. It works, but doesn’t do any cool things like scale storage or be fault tolerant.) I had heard Bigtable discussed in different technical blog settings, but I had no idea that there was a paper from 2 years ago that described the Bigtable system. (I guess I don’t read the technical CS journals like I should. I may have to become more active in IEEE.)

While reading the paper (I did find it very readable. Okay, I am a computer geek. Fair warning.) I noticed that Bigtable, which is a highly scallable distributed database (not relational), used a “lock service” called Chubby. What is a “lock service”? Well, the The Chubby Lock Service for Loosely-Coupled Distributed Systems paper will tell you. I am currently reading this paper. (Again, this is from 2006! Where have I been?) Mike Burrows, the author of The Chubby Lock Service for Loosely-Coupled Distributed Systems, sprinkles humor into a computer science paper discussing Paxos, “a family of protocols for solving consensus in a network of unreliable processors”. What I found interesting is how the “lock service” is used to share information in a highly distributed system. The Bigtable implementation is a client of the “lock service” and uses it to elect a leader; the leader is the node that aquires the lock–only one node will get the lock. The “lock service” can also store small amounts of information, like metadata or configuration information, that a client application can read from the “lock service”.

Next up is the paper Paxos Made Live – An Engineering Perspective. This paper provides some details on how the Google team implemented Chubby, some of the history of the previous implementation, and some of the issues that they discovered implementation the Paxos algorithm.

Together, these papers provide some details of how Google has implemented highly distributed systems. So far, the information about Paxos has been very enlightening. And I am impressed with the way in which a “lock service” is used to coordinate communication and direct cooperation in a automated distributed network. It seems that they have created simple building blocks that together work in sometimes unique ways to make a complex system.

Hello, Android

Sunday, July 13th, 2008

So, July 11, 2008, came and went. What happened on July 11? The iPhone 3G came out.

But I don’t have an iPhone. The other big thing is that the Apple iPhone App Store opened. But I don’t have a Mac, so I can’t run the emulator or create my own apps for the emulator.

So, I celebrated by creating my first Android app.

Hello, Android

This is the “Hello, World” version of an Android app running in the emulator. It was very easy to make. What made it easier for me is that Android apps are written in Java. (I am a Java developer by day.) The “Getting Started” tutorial even shows you how to use Eclipse.

I have only created the sample app so far, but it looks pretty easy for a Java developer to write an “Activity“. But, of coarse, the apps currently can only run in the emulator. But the emulator can be integrated very easily into Eclipse.

Though, it is not like having real hardware like the Apple iPhone. 🙂