<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description></description><title>OkayAndrew</title><generator>Tumblr (3.0; @okayandrew)</generator><link>http://okayandrew.tumblr.com/</link><item><title>Information Design: Space Flight</title><description>&lt;p&gt;I&amp;#8217;ve been a big fan of information design after hearing &lt;a href="http://www.edwardtufte.com"&gt;Edward Tufte&lt;/a&gt; speak a few years ago. Since starting a new contracting job with NASA at the beginning of the year my friend and designer extrodinaire &lt;a href="http://www.carolynsewell.com/"&gt;Carolyn Sewell&lt;/a&gt; has sent me two amazing infographics that I felt compelled to share. One is by the design firm &lt;a href="http://www.mgmtdesign.com/"&gt;MGMT&lt;/a&gt; and one is by Corey.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://www.mgmtdesign.com/MEDIA/PDF/MGMT_spacetravel.jpg"&gt;&lt;img src="http://media.tumblr.com/tumblr_m0mzc4WauY1qi9209.jpg"/&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;I think it&amp;#8217;s fascinating that since 1961 there has been a US citizen in space for all but ten of those years. My only exception is the omission of the International Space Station, which still fits into the category of manned flights. It seems like we&amp;#8217;re due for another gap like the one from &amp;#8216;76 to &amp;#8216;80, although at that time we had a plan in mind and were working on the shuttle. &lt;br/&gt;&lt;br/&gt;When it comes to the future of US space exploration my views fall in line with &lt;a href="http://www.theatlantic.com/technology/archive/2012/03/neil-degrasse-tyson-how-space-exploration-can-make-america-great-again/253989/"&gt;Neil deGrasse Tyson&lt;/a&gt;, who was great on a recent Daily Show. We&amp;#8217;ve got to get back up there, and go farther. The technology that got us to the moon resulted in a multitude of advances here on earth. Not to mention the inspiration for future scientists, engineers, and mathematicians. I think it is fantastic that the government spent &lt;a href="http://www.whitehouse.gov/sites/default/files/microsites/ostp/costem__federal_stem_education_portfolio_report.pdf"&gt;$3.4 billion on STEM initiatives last year&lt;/a&gt;, but why not add that to NASA&amp;#8217;s $18.7 billion budget and do something truly inspirational.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_m0mzapu3H51qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;As for this second diagram, I can think of no omissions. I really like including a missile, because who knows what you&amp;#8217;re going to come across in space. Well done sir.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/19058087452</link><guid>http://okayandrew.tumblr.com/post/19058087452</guid><pubDate>Sat, 10 Mar 2012 10:00:05 -0500</pubDate><category>information design</category><category>space flight</category><category>NASA</category><category>STEM</category></item><item><title>Trivia Game</title><description>&lt;p&gt;[&lt;a href="https://docs.google.com/open?id=0B_SzELCby8x3MWVkMWY1MzYtNDZjZC00ZmFiLTg0YmItNjcxNzIxMDE5NjI2"&gt;download the Trivia Game here&lt;/a&gt;]&lt;br/&gt;&lt;br/&gt;I found my first thumbdrive the other day while cleaning so I popped it in the laptop and was treated to 256Mb of nostalgia. Among the files was quite possibly the first thing I ever wrote in VBA - a trivia game in the vein of Jeopardy. I was a year or two out of college and my former roommates and I were getting back together. I decided to put together a few questions about our group referencing inside jokes and the stupid things we did, with each column / category as a different roommate.&lt;br/&gt;&lt;br/&gt;As a word of warning, this was my first foray into VBA so the code is not particularly well documented or well done. Yet I wanted to preserve this initial work so I didn&amp;#8217;t clean up the code. I did however change the questions to protect my roommates. Now it is set up as a Saved By The Bell trivia game, mainly because I could think up all the questions and answers in a few minutes.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lz7ayfWXH91qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;The file can easily be modified for your own purposes. The second sheet has a matrix of all the questions and answers. So feel free to make it your own (and clean up the code if you want). However, it does require someone who knows all the answers to run the game.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/17353461146</link><guid>http://okayandrew.tumblr.com/post/17353461146</guid><pubDate>Thu, 09 Feb 2012 22:00:00 -0500</pubDate><category>vba</category><category>excel</category><category>trivia</category><category>game</category><category>saved by the bell</category></item><item><title>Relaxing and Reading</title><description>&lt;p&gt;It&amp;#8217;s been a relaxing holiday season. Even more so because I took two weeks off while changing jobs. I started on a handful of projects that I&amp;#8217;m sure will show up on this site in the near future. I was also able to catch up on quite a bit of reading, including the fantastic &lt;a href="http://www.readyplayerone.com/"&gt;Ready Player One&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The novel is set in the not too distant future where a Steve Jobs type wills his fortune to anyone who can find a secret he&amp;#8217;s hidden in a virtual world. Oh, and all of the clues and trials to reach the secret are centered around 80&amp;#8217;s trivia, video games, and nerd culture. It&amp;#8217;s Ernest Cline&amp;#8217;s first novel and at times it shows. The foreshadowing can be pretty heavy handed, leading to plot twists you can see coming from miles away. But overall I really enjoyed it, and apparently it&amp;#8217;s going to be made into a movie. In fact, Warner Brothers bought the rights a year before the book was published. Although I&amp;#8217;m not sure how exciting an epic game of &lt;a href="http://en.wikipedia.org/wiki/Joust_(video_game)"&gt;Joust&lt;/a&gt; will be&amp;#8230;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/15542241378</link><guid>http://okayandrew.tumblr.com/post/15542241378</guid><pubDate>Sun, 08 Jan 2012 20:31:33 -0500</pubDate><category>Ready Player One</category><category>book</category></item><item><title>Completed Powerbook Mini Arcade</title><description>&lt;p&gt;In May I got off to a strong start creating a miniature arcade cabinet using an old Mac Powerbook. The project quickly moved from a scale model to a &lt;a href="http://okayandrew.tumblr.com/post/5813446813"&gt;full size cardboard model with working controls&lt;/a&gt;. Then it sat for several months. With some time off around Thanksgiving I was finally able to construct the completed Powerbook Mini Arcade.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhgidXIBX1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;On the first of what would prove to be many trips to Home Depot I picked up two sheets of MDF (2&amp;#8217; x 4&amp;#8217; x 1/4&amp;#8221;), hinges for the control panel, and assorted screws, nails, and bolts. Although most full size homemade arcade cabinets tend to go with 3/4&amp;#8221; thick MDF I figured I could get away with 1/4&amp;#8221; because mine wouldn&amp;#8217;t have to support much weight. After outlining the cuts in pencil on the MDF I got to work with the circular saw and drill to cut out each piece. I tried cutting the curved sections on the arcade&amp;#8217;s sides with a reciprocating saw but that made a bit of a mess out of the MDF so I ended up doing that with box cutters.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhg1fd6mm1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;To check that I had not made any major mistakes I taped the whole thing together to see how it would look. Not too bad.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhg288yeK1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;As I started to put the buttons into place I realized that the holes I had drilled for them were too small. The buttons themselves are one inch in diameter, which is how I drilled the holes, but the screw threads on the bottom of the button made it too big to fit. After sanding out the holes and attaching the hinges the control surface was assembled.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhg3gGBaw1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;Now it was time to assemble the rest of the cabinet. Initially I wanted to nail the pieces directly together, but 1/4&amp;#8221; was too thin to line up the pieces properly and the MDF might start falling apart when working that close to the edge. To get around this I decided to add some framing pieces of wood inside the cabinet. I screwed the sides to these frame pieces and nailed the other boards to the wood. In theory this means I could unscrew a side to take it off and make changes. Once the cabinet was constructed I drilled out holes on one side to access the power and USB ports.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhg6cdWTU1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;When I moved the controls from the cardboard model to the final cabinet I had to unplug some of the buttons which resulted in a bit of rewiring. Working with the control wiring is by far the least enjoyable aspect of this entire project. The connections to the keyboard circuit are incredibly finicky and I&amp;#8217;m concerned that if I frequently open and close the control panel something will come undone. I&amp;#8217;ll likely end up buying a fabricated connector like the &lt;a href="http://www.ultimarc.com/minipac.html"&gt;mini-pac&lt;/a&gt; and scrapping my keyboard hack but this will work for now. As before, once I had each button hooked up I opened Excel on the Mac to ensure that every button press or joystick move corresponded to the appropriate key.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhgbyGktJ1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;With the cabinet constructed and the controls wired all that was left was to start up some emulators, configure the inputs to use the appropriate keys, and start playing. Which is exactly what I did. Although after a bit I turned it over to my wife to test out Ms. Pacman. It worked great.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lvhgcvGfmC1qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p&gt;All told this entire project took roughly twenty hours although that included making scale and full size models, wiring the controls twice, and at least a half dozen trips to Home Depot. I didn&amp;#8217;t add up all the costs but it&amp;#8217;s probably somewhere around $50 with the most expensive part being the joystick at around $20. This doesn&amp;#8217;t include the cost of tools, or the laptop and keyboard that I already had lying around. In the future I&amp;#8217;d like to pretty up the exterior of the cabinet and replace my keyboard hack controls with a solution that is less prone to coming apart over time. But for now I can play old school video games with old school arcade controls and that&amp;#8217;s good enough for me.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/13549794957</link><guid>http://okayandrew.tumblr.com/post/13549794957</guid><pubDate>Wed, 30 Nov 2011 12:00:39 -0500</pubDate><category>mac</category><category>powerbook</category><category>arcade</category><category>cabinet</category><category>mini</category></item><item><title>Arcade Cabinet Dimensions</title><description>&lt;p&gt;&lt;p class="MsoNormal"&gt;A few months ago I made an &lt;a href="http://okayandrew.tumblr.com/post/5813446813"&gt;arcade cabinet for an old Mac PowerBook out of cardboard&lt;/a&gt;. It was a proof of concept, not meant to last, and used some pretty rough measurements. Having done that I went back and measured more carefully, coming up with a plan to create a final arcade cabinet. Looking at websites for similar projects 3/4&amp;#8221; MDF seems to be the standard construction material so that&amp;#8217;s what I used in my plans. The images below show a side view of what the constructed arcade would look like and how those pieces could be cut from a pair of 2 x 4&amp;#8217;s.&lt;/p&gt;
&lt;p class="MsoNormal"&gt; &lt;img src="http://media.tumblr.com/tumblr_lugiikeUGK1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This is one of those times that I really miss college. Not because of the partying and free time, but because of the CAD programs and power tools that I had easy access to in the Physics department at JMU - although the parties were great. Instead I drew these plans up in PowerPoint, paying close attention to the dimensions so the scale should be correct. Next up is actually buying the MDF, making the cuts, and putting this thing together. I&amp;#8217;ll be sure to take pictures throughout the construction process for a future post. Hopefully I can have this completed by the holidays.&lt;/p&gt;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/12837304501</link><guid>http://okayandrew.tumblr.com/post/12837304501</guid><pubDate>Tue, 15 Nov 2011 10:21:05 -0500</pubDate></item><item><title>Lego Rubik’s Cube Solver</title><description>&lt;p&gt;&lt;p class="MsoNormal"&gt;When I finished the &lt;a href="http://okayandrew.tumblr.com/post/11866058178"&gt;Excel Rubik&amp;#8217;s Cube solver&lt;/a&gt; I felt that it was a pretty nice little product. It was tricky creating the logic and determining the correct permutations, and rewarding to see it all work properly at the end. Then I look at an article like this and am blown away. These two guys built a &lt;a href="http://singularityhub.com/2011/10/19/lego-robot-beats-human-world-record-for-solving-the-rubiks-cube/"&gt;Rubik&amp;#8217;s Cube solver out of Lego and a smartphone&lt;/a&gt; that can solve a cube faster than any human. Now that&amp;#8217;s impressive. I know that Lego has evolved quite a bit since I put together the &lt;a href="http://www.brickset.com/detail/?set=6285-1"&gt;Black Seas Barracuda&lt;/a&gt; in the late 80s, but I had no idea it could interface via Bluetooth. Back then it was groundbreaking that the figures had eye-patches and facial hair - now they&amp;#8217;re wirelessly communicating with a phone to solve a Rubik&amp;#8217;s Cube.&lt;/p&gt;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/12604159676</link><guid>http://okayandrew.tumblr.com/post/12604159676</guid><pubDate>Thu, 10 Nov 2011 13:10:26 -0500</pubDate><category>excel</category><category>vba</category><category>rubik's cube</category><category>solver</category><category>lego</category><category>smartphone</category></item><item><title>Rubik's Cube Solver</title><description>&lt;p class="MsoNormal"&gt;[&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3ZWEyZTJiZmItZTljMC00ZmUwLTg0MjktMWI4YzI2MzM2ZDY4&amp;amp;hl=en_US"&gt;Click here to download the Rubik&amp;#8217;s Cube Solver&lt;/a&gt;]&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img height="196" width="222" src="http://media.tumblr.com/tumblr_ltktmjtEY71qi9209.jpg"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;I have never been able to solve a Rubik&amp;#8217;s cube. I can get to the point where one side is correct before getting frustrated. But then I invariably try to get one more piece in place and end up ruining the whole thing. With that in mind, I decided to write &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3ZWEyZTJiZmItZTljMC00ZmUwLTg0MjktMWI4YzI2MzM2ZDY4&amp;amp;hl=en_US"&gt;a computer program that would solve a Rubik&amp;#8217;s cube&lt;/a&gt; for me.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;First, I wanted a way to display the cube and manipulate it. Displaying a 3D surface on a 2D computer screen is always a bit tricky because you can&amp;#8217;t see the entire object. My initial thought was to show the &amp;#8220;unwrapped&amp;#8221; cube, where the six faces are joined at the appropriate edges. For rotation the user would be able to move any row or column on the front face in either direction. Because they could only manipulate the front face I added the capability to rotate the entire cube to show any of the adjoining faces.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://media.tumblr.com/tumblr_ltkti3wgje1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;This was a mess.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;The &amp;#8220;unwrapped&amp;#8221; cube creates issues because no matter how you unwrap it one of the faces will be upside-down from what it should intuitively look like. Additionally, it&amp;#8217;s restrictive to think about rotating the cube by only manipulating the front face. A quick search showed that there is actually a standard nomenclature for manipulating a Rubik’s cube. F denotes rotating the front (F) face of the cube 90 degrees clockwise. F&amp;#8217; is a counterclockwise rotation.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;With this knowledge I modified my display to show each of the six faces independently, with buttons to rotate them clockwise or counterclockwise. I added similar buttons and icons to rotate the entire cube along any of its three axes. In the earlier version I had created a 3D rendering of the cube that displayed the front, up, and left faces. I added a see-through view of the cube next to this so that the back, right, and down faces of the cube would be visible in 3D as well.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_ltktirhvyE1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Once I had written the code to rotate the faces and cube appropriately I added two buttons. The first to reset the cube to a solved state - the equivalent of peeling the stickers off and putting them back in the right place. The second to randomly perform some number of rotations along different faces and axes until the cube was nicely randomized, but still guaranteed to be solvable. Finally, it was time to add a button to solve the cube.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;There are a variety of ways to solve a Rubik&amp;#8217;s cube and this is by no means the most efficient. I wanted to follow a structure that led itself to programming and could potentially teach a person how to solve the cube themselves. The process treats the cube as having three layers, like a cake. It starts by solving the top layer, then the middle, then the bottom.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://media.tumblr.com/tumblr_ltktjaHiQR1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;A cross of a single color is formed first on the top layer, and then the corner pieces are put into place. It is important that not only are the colors on the top correct, but the edges as well. Having done this there are only four spots in the middle layer that might need adjusting and only four spots that they could potentially be. To solve the bottom layer the program actually flips the cube over and then solves the upper layer again. However, it uses a more complicated set of rotations to ensure that it doesn&amp;#8217;t change anything in the other, completed layers.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://media.tumblr.com/tumblr_ltktjvNO6f1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;With the solver algorithm developed I decided to add a second worksheet that would list the steps so the user could follow along. The idea is a user could color the squares to match a real cube and then run the solver to discover what steps to take in order to solve it. They could then follow each step, rotating their own cube, and see how it is solved. If nothing else, at the end of the process they would have a completed cube to impress and amaze their friends.&lt;/p&gt;
&lt;p class="MsoNormal"&gt;&lt;img src="http://media.tumblr.com/tumblr_ltktkdNOyU1qi9209.png"/&gt;&lt;/p&gt;
&lt;p class="MsoNormal"&gt;Because my solver algorithm follows this layer concept it is by no means the most efficient way of completing a cube. Running it on randomly scrambled cubes I&amp;#8217;ve found that it generally takes between 200 and 250 steps to solve it this way. At some point in the future I might look at optimizing my solver to use fewer steps I&amp;#8217;m fairly happy right now that the thing actually works. Enjoy!&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/11866058178</link><guid>http://okayandrew.tumblr.com/post/11866058178</guid><pubDate>Mon, 24 Oct 2011 11:30:15 -0400</pubDate><category>excel</category><category>vba</category><category>rubik's cube</category><category>solver</category><category>solution</category></item><item><title>Mini Cooper meets Mario</title><description>&lt;p&gt;[&lt;strong&gt;&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWYxZGJjZTgtOTkwMi00OWE4LWJjYmMtZTg5N2E2MWY4NTUw&amp;amp;hl=en_US"&gt;Click here to download the Mini Cooper / Mario Presentation&lt;/a&gt;&lt;/strong&gt;]&lt;/p&gt;
&lt;p&gt;I can&amp;#8217;t recall seeing animation in PowerPoint done in a useful or interesting way. Mostly what you get are obnoxious rotating, flashing messages that bounce across a slide. After all this &lt;strong&gt;&lt;a href="http://okayandrew.tumblr.com/post/10281444401"&gt;kinetic typography&lt;/a&gt;&lt;/strong&gt; stuff I wanted to play around a bit and see if I could make something fun. After a conversation with co-workers about the four door &lt;strong&gt;&lt;a href="http://www.roadandtrack.com/future-cars/first/2011-mini-countryman/gallery3"&gt;Mini Countryman&lt;/a&gt;&lt;/strong&gt; I made an &lt;strong&gt;&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWYxZGJjZTgtOTkwMi00OWE4LWJjYmMtZTg5N2E2MWY4NTUw&amp;amp;hl=en_US"&gt;animated presentation&lt;/a&gt;&lt;/strong&gt; where Mario has been replaced with a Mini Cooper, which quickly powers up to become a Countryman.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lsapqbajkW1qi9209.png"/&gt;&lt;/p&gt;
&lt;p&gt;While not particularly useful, I thought it was an interesting example of what can be done in PowerPoint. The animation tool suite isn&amp;#8217;t very flexible or powerful, and the screen gets crowded quickly with all the motion paths. Regardless, I had some fun goofing around with it. Now that the two door &lt;strong&gt;&lt;a href="http://www.roadandtrack.com/future-cars/first/first-official-photos-2012-mini-coupe"&gt;Mini Coupe&lt;/a&gt;&lt;/strong&gt; is out I might have to do another one.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/11021809763</link><guid>http://okayandrew.tumblr.com/post/11021809763</guid><pubDate>Tue, 04 Oct 2011 11:07:05 -0400</pubDate><category>powerpoint</category><category>video</category><category>mini cooper</category><category>mario</category><category>animation</category></item><item><title>The above video, Portal: No Escape, came out about a month ago...</title><description>&lt;iframe width="400" height="225" src="http://www.youtube.com/embed/4drucg1A6Xk?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;The above video, Portal: No Escape, came out about a month ago and got a million views on its first day.  It was made by &lt;strong&gt;&lt;a href="http://dantrachtenberg.com/"&gt;Dan Trachtenberg&lt;/a&gt;&lt;/strong&gt; from The Totally Rad Show and is a intriguing glimpse at what a film based on the video game series might look like. The pan to a weighted companion cube at the end almost makes up for the lack of GLaDOS.&lt;/p&gt;
&lt;p&gt;I only bought an XBox 360 a few months ago, primarily as a way to recreate childhood days spent &lt;strong&gt;&lt;a href="http://okaysamurai.tumblr.com/post/9630578111/multiplayer-coffee"&gt;playing video games with my brother&lt;/a&gt;&lt;/strong&gt;. He was nice enough to send me a bunch of the games he had long since beat, so I actually finished playing Portal only a week ago. Dave and I have plans to pick up Portal 2 in the near future and play through its acclaimed co-op mode.&lt;/p&gt;
&lt;p&gt;After beating Portal I realized I forgot to mention Jonathan Coulton’s other claim to fame in my last post. &lt;strong&gt;&lt;a href="http://www.jonathancoulton.com/2007/10/15/portal-the-skinny/"&gt;He wrote the song&lt;/a&gt;&lt;/strong&gt; that plays during the end credits. I even stumbled across a few &lt;strong&gt;&lt;a href="http://www.youtube.com/watch?v=NCt2nZF2nLk"&gt;kinetic typography videos for the song&lt;/a&gt;&lt;/strong&gt;. Coulton wrote another song that is featured in the sequel, although I haven’t listened to it yet to avoid spoilers.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/10781910759</link><guid>http://okayandrew.tumblr.com/post/10781910759</guid><pubDate>Wed, 28 Sep 2011 18:43:37 -0400</pubDate><category>kinetic typography</category><category>video</category><category>portal</category><category>jonathan coulton</category></item><item><title>I came across this video the other day and was completely blown...</title><description>&lt;iframe width="400" height="300" src="http://www.youtube.com/embed/y4sOfO8Ei1g?wmode=transparent&amp;autohide=1&amp;egm=0&amp;hd=1&amp;iv_load_policy=3&amp;modestbranding=1&amp;rel=0&amp;showinfo=0&amp;showsearch=0" frameborder="0" allowfullscreen&gt;&lt;/iframe&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;I came across this video the other day and was completely blown away. Before this I had never heard of “&lt;a href="http://en.wikipedia.org/wiki/Kinetic_typography"&gt;&lt;strong&gt;kinetic typography&lt;/strong&gt;&lt;/a&gt;”, which apparently dates back to Saul Bass and Alfred Hitchcock. A quick look around YouTube shows that a ton of people have put together animations using song lyrics or movie quotes. But this is the by far the best one that I’ve seen.&lt;/p&gt;
&lt;p&gt;The video was made by Jarrett Heather and I was a bit disappointed that he hadn’t done another one of these kinetic typography videos (although it looks very time consuming). He did have some cool piano arrangements and videos of his son playing a homemade arcade cabinet.  Since I’m in the process of making &lt;a href="http://okayandrew.tumblr.com/post/5813446813"&gt;&lt;strong&gt;my own arcade cabinet&lt;/strong&gt;&lt;/a&gt; seeing that this guy had done the same thing made me like him even more. Heck, his personal website is &lt;a href="http://spaceparanoids.net/"&gt;&lt;strong&gt;spaceparanoids.net&lt;/strong&gt;&lt;/a&gt;, a reference to the movie Tron. He has a son and likes Tron, piano, video games, and graphic design. He sounds suspiciously similar to &lt;a href="http://okaysamurai.tumblr.com/"&gt;&lt;strong&gt;my brother&lt;/strong&gt;&lt;/a&gt;…&lt;/p&gt;
&lt;p&gt;I’ve really been getting into &lt;a href="http://www.jonathancoulton.com/"&gt;&lt;strong&gt;Jonathan Coulton’s&lt;/strong&gt;&lt;/a&gt; music lately thanks to Pandora and my They Might Be Giants station. Coulton is probably best known for the intro song on a cancelled &lt;a href="http://www.g4tv.com/codemonkeys/index.html"&gt;&lt;strong&gt;G4 animated show&lt;/strong&gt;&lt;/a&gt; about a video game company in the 80s. Which is to say he’s well known in the video game / code developer community. Outside of that, not so much. Which is a complete shame because he’s a great musician and writes some genuinely fantastic songs.&lt;/p&gt;
&lt;p&gt;He put a modern spin on TMBG’s old Dial-A-Song concept by releasing a Song-A-Week, where he did exactly what it sounds like - released a new song each week. While a few miss the mark most are good and some are excellent. Personally, I really like Tom Cruise Crazy, Re: Your Brains, and Chiron Beta Prime, which is quickly becoming my favorite Christmas song. Shop-Vac, the song in the video, was a song-a-week. He also did a concept album where each song was a musical response to articles from Popular Science, which includes the awesome song I Feel Fantastic. He also &lt;a href="http://www.youtube.com/watch?v=0OYhx0UxuTA"&gt;&lt;strong&gt;RickRolled the entire audience at PAX&lt;/strong&gt;&lt;/a&gt; a while back. So yeah, he’s got some geek cred.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/10281444401</link><guid>http://okayandrew.tumblr.com/post/10281444401</guid><pubDate>Fri, 16 Sep 2011 13:44:00 -0400</pubDate><category>kinetic typography</category><category>jonathan coulton</category><category>shop-vac</category><category>video</category></item><item><title>Dynamic Presentations</title><description>&lt;p&gt;[&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWFjYmE5ZjUtYmRhOC00MzEzLTlhY2UtOTVhMWFhNjViOGJk&amp;amp;hl=en_US"&gt;Click here to download the Dynamic Presentation&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;Presenting data to a client is a big part of my job. Having learned a bit about using VBA in PowerPoint, albeit for &lt;a href="http://okayandrew.tumblr.com/post/5241845042"&gt;a non-work related task&lt;/a&gt;, I started looking at different ways to convey information. What I came up with was &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWFjYmE5ZjUtYmRhOC00MzEzLTlhY2UtOTVhMWFhNjViOGJk&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;a presentation that incorporates dynamically changing graphs&lt;/a&gt;. This small, three slide brief shows two different ways to accomplish that.&lt;/p&gt;
&lt;p&gt;The first slide is an X and Y chart with two graphed points and three buttons for different times of interest (generically labeled now, soon, and future). When the buttons are pressed they change the position of the graphed points, as well as their color, size, and outline. The data is actually on a table on the second slide, which is hidden during presentation. Without dynamics it would require three graphs to display the same information, or one graph with multiple points that could become confusing. This example doesn&amp;#8217;t use the native Microsoft Office charts which requires a bit more work but does allow for some flexibility. For instance, the points can be any shape you want, not just circles.&lt;/p&gt;
&lt;p&gt;The third slide has what I refer to as a &amp;#8220;sand chart&amp;#8221; and shows the cost data for three systems over their lifetimes. It&amp;#8217;s called a sand chart because overlapping data is stacked to easily show both the individual and cumulative costs. I anticipated that the client would want to explore different options for when to start work on the three systems so I added a timeline for each system beneath the graph. The arrows on either end adjust the start date and are immediately reflected in the graph. Unlike the first slide, this is a Microsoft Office chart and the underlying data is in an embedded Excel worksheet. In some ways this is nicer because you can utilize all the existing graph options like gridlines, legends, etc. without having to recreate them.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lqe6kd76co1qi9209.png"/&gt;&lt;/p&gt;
&lt;p&gt;One major issue is that the Excel data needs to be opened for the dynamic aspects to work properly. To do this just right click on the chart and select &amp;#8220;Edit Data&amp;#8221;. If the worksheet isn&amp;#8217;t opened then when you click on an arrow to adjust the start date the dataset for that system will disappear. That&amp;#8217;s not something you want to have happen during a presentation to a client.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s important to note that this technique isn&amp;#8217;t appropriate for all clients. Some just want the bottom line answer, not a dynamic graph that shows different options. Also, this obviously doesn&amp;#8217;t work well for print outs, which could be misleading by removing the dynamic functionality. But it does work nicely when responding to questions on the fly. If you can anticipate what a client might ask you can quickly adjust the data and show the impact.&lt;/p&gt;
&lt;p&gt;A brief like this can also be a valuable &amp;#8220;leave behind&amp;#8221; tool so the client can do some analysis themselves without you there. Some people might find that to be dangerous, giving the client a tool so they don&amp;#8217;t need you anymore, but I&amp;#8217;ve never found that to be the case. A mantra I picked up from a coworker years ago is to always try to automate yourself out of a job. Basically because you can&amp;#8217;t do it. What you&amp;#8217;ll end up doing is automating all of your more boring or repetitive tasks, freeing yourself up to work on more complex things. That will result in a better product, which will keep your customers coming back to you for future work.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/9298116676</link><guid>http://okayandrew.tumblr.com/post/9298116676</guid><pubDate>Tue, 23 Aug 2011 13:43:00 -0400</pubDate><category>VBA</category><category>PowerPoint</category><category>Graph</category><category>Chart</category><category>Dynamic</category><category>Moving</category><category>Data</category></item><item><title>Monopoly Follow Up</title><description>&lt;p&gt;When I posted initially about making &lt;a href="http://okayandrew.tumblr.com/post/5039074212"&gt;Monopoly in Excel&lt;/a&gt; I mentioned wanting to create computer players with different strategies to compete against each other. After running the game several times I could analyze the output to determine the optimal strategy. What I ended up making was a game for four human players. While fun, it wasn&amp;#8217;t as useful for strategy analysis. And I also wanted to allow a single person to play against three computer opponents.&lt;/p&gt;
&lt;p&gt;With that in mind I &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NzVmNzc0NWQtMGY0ZC00M2YwLTgzOWQtNWU5M2UwMGZmYjRh&amp;amp;hl=en_US"&gt;updated Monopoly in Excel&lt;/a&gt; with the added option of specifying human or computer players. The computer players are randomly assigned a &amp;#8220;personality&amp;#8221;, which dictates their strategy as follows.&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Aggressive: Always tries to buy property, builds houses and hotels on the most expensive property as much as they can as soon as they can, will accept any trades that result in a net monetary gain&lt;/li&gt;
&lt;li&gt;Restrained: Will buy or build as long as there is $500 on hand afterwards, builds on the cheapest property&lt;/li&gt;
&lt;li&gt;Basic: Randomly decides to purchase properties or accept trade offers&lt;/li&gt;
&lt;li&gt;Complex: Prefers to buy and build on properties between the &amp;#8220;Jail&amp;#8221; and &amp;#8220;Go to Jail&amp;#8221; spaces, won&amp;#8217;t accept trades that result in a monopoly for an opponent (unless they receive one as well)&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;There is more logic than what is mentioned here about when to offer or accept trades, when to pay to get out of jail, etc. I invite you to look into the code for more detail if you are interested. All of the computer player logic is in its own module to keep it cleanly separated from the rest of the game mechanics.&lt;/p&gt;
&lt;p&gt;This allows for a single player game against three computer opponents. However, I didn&amp;#8217;t want messages to pop up for each computer interaction (e.g. when one computer player owes another rent). To get around this I added a three-way button for messaging. When set to OFF no messages will be displayed unless they require a human player&amp;#8217;s input (like decisions to purchase a property, pay to get out of jail, or accept a trade). The ON setting displays every message. Finally, the PERSON setting will only show messages that pertain to the human player(s), even if they require no input (e.g. when a computer player pays a human player rent).&lt;/p&gt;
&lt;p&gt;Allowing for any combination of human and computer players means that it can now run games with all four players controlled by the computer. This means it is possible to analyze who wins and loses based on their personalities and come up with an optimal strategy. To help with this the game logs every action in an output text file. This can be read later for analysis as a play-by-play on how a game went. If so inclined, you can edit the computer reaction logic, or add a new personality and test its effectiveness. Or you can &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NzVmNzc0NWQtMGY0ZC00M2YwLTgzOWQtNWU5M2UwMGZmYjRh&amp;amp;hl=en_US"&gt;just play some Monopoly&lt;/a&gt;. Enjoy!&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/8740017278</link><guid>http://okayandrew.tumblr.com/post/8740017278</guid><pubDate>Wed, 10 Aug 2011 13:54:04 -0400</pubDate><category>excel</category><category>vba</category><category>monopoly</category><category>simulation</category></item><item><title>010000100110100101101110011000010111001001111001001000000100010101101110011000110110111101100100011001010111001000100000001011110010000001000100011001010110001101101111011001000110010101110010</title><description>&lt;p&gt;There are &lt;a href="http://www.thinkgeek.com/tshirts-apparel/unisex/frustrations/5aa9/"&gt;10&lt;/a&gt; kinds of people in the world: those who undestand binary and those who don&amp;#8217;t. &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3YzcwNzVlM2UtYzc1MS00MGM5LWE4NWEtMTBlZWEzMTgyOTA5&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Here&amp;#8217;s a little tool &lt;/a&gt;to convert between binary and text. It uses the built in CHAR and CODE functions, which implement the ASCII format. Initially I tried using a lookup table instead of those functions so that a different binary to text format could be interchanged. Unfortunately, I ran into issues distinguishing between lowercase and uppercase letters.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s not a problem when going from binary to text. For that you can convert each binary set to a decimal, find that number in the table and then the corresponding text value. But when you try going the other way the resulting message will be in all caps. The issue is that for Excel &amp;#8220;a&amp;#8221; and &amp;#8220;A&amp;#8221; are identical. Don&amp;#8217;t believe me? Try putting =IF(&amp;#8220;a&amp;#8221;=&amp;#8221;A&amp;#8221;,TRUE,FALSE) into a cell and it will return TRUE. The function for MATCH and LOOKUP (and its variants) don&amp;#8217;t distinguish between cases either, and they state that in their help files.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s not a big deal here, but it would be problematic to convert to and from a format other than ASCII. Has anyone out there run into other problems due to this?&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/8426828753</link><guid>http://okayandrew.tumblr.com/post/8426828753</guid><pubDate>Wed, 03 Aug 2011 09:17:00 -0400</pubDate><category>excel</category><category>binary</category><category>ascii</category><category>encoder</category></item><item><title>Excel Blog</title><description>&lt;p&gt;&lt;a href="http://jefferino4.tumblr.com/"&gt;Jeff&lt;/a&gt; sent me a link to a blog called &lt;a href="http://chandoo.org/"&gt;Chandoo.org&lt;/a&gt; with the self proclaimed mission &amp;#8220;to make you awesome in Excel&amp;#8221;. I was immediately sucked in, reading one post after another. I found it interesting that we tackled similar projects like &lt;a href="http://chandoo.org/wp/2007/02/25/is-monopoly-fair/"&gt;Monopoly&lt;/a&gt;, tutorials, and &lt;a href="http://chandoo.org/wp/2009/10/23/solve-sudoku-using-excel/"&gt;Sudoku&lt;/a&gt;, but in somewhat different ways. Other projects, like the &lt;a href="http://chandoo.org/wp/2008/10/03/download-excel-deal-or-no-deal-game-play/"&gt;Deal Or No Deal simulator&lt;/a&gt; and the recent &lt;a href="http://chandoo.org/wp/2011/07/06/3d-dancing-pendulums/"&gt;Pendulum Visualizer&lt;/a&gt; also caught my attention. Take a look!&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/7842568242</link><guid>http://okayandrew.tumblr.com/post/7842568242</guid><pubDate>Wed, 20 Jul 2011 09:19:00 -0400</pubDate></item><item><title>Excel Trainer</title><description>&lt;p&gt;&lt;span&gt;After talking a bit with some coworkers and friends about Excel I realized that there are features that I take for granted that others might not know. It seemed helpful to create a file t&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3YWViNjAyYzQtOTZkYi00OTZlLWI1OTUtNmE5MWFmMTU1MGYy&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;o teach basic Excel functionality&lt;/a&gt;. The tutorial isn&amp;#8217;t long or comprehensive, but it teaches the fundamentals of functions and graphs that I find to be the most useful or frequently used. If you&amp;#8217;ve spent any time in Excel there is probably not much new here. However, if you&amp;#8217;re just getting started then hopefully you&amp;#8217;ll find this useful.&lt;/span&gt;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/7507211604</link><guid>http://okayandrew.tumblr.com/post/7507211604</guid><pubDate>Mon, 11 Jul 2011 17:49:02 -0400</pubDate><category>excel</category><category>trainer</category><category>tutorial</category></item><item><title>Moneyball Trailer</title><description>&lt;a href="http://moneyball-movie.com/"&gt;Moneyball Trailer&lt;/a&gt;: &lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Having mentioned a few books recently I thought I’d link to the trailer for Moneyball. I read &lt;a href="http://www.amazon.com/Moneyball-Art-Winning-Unfair-Game/dp/0393057658"&gt;the book&lt;/a&gt; a few years back and it really resonated with my professional and educational background.  I was cautiously optimistic when I heard it was being made into a movie because the book isn’t exactly a flowing narrative and I don’t know how well statistics translates to the big screen. After seeing the trailer I’m even more excited because it looks like they figured out how to do it properly. It gives off a Social Network kind of vibe to me.&lt;/p&gt;
&lt;p&gt;I caught an interview a few years back about a guy who did a similar statistical analysis for basketball. The main difference was that instead of working for a team he used his results to make money by gambling in Vegas. He realized that his models were pretty decent at predicting the total combined score for a game and he used that to make a fair amount of money. He expanded his efforts and worked as a contractor to different teams, analyzing which players they should draft or trade. I’m pretty certain that he wrote a book as well but I can’t remember his name and couldn’t find it after a quick search.&lt;/p&gt;
&lt;p&gt;I think this kind of study is fascinating and have been toying around with doing a similar, first-order analysis of the NHL. Maybe the Washington Capitals could use some help…&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/7156189449</link><guid>http://okayandrew.tumblr.com/post/7156189449</guid><pubDate>Sat, 02 Jul 2011 10:00:06 -0400</pubDate></item><item><title>Memorial Names</title><description>&lt;a href="http://blog.blprnt.com/blog/blprnt/all-the-names"&gt;Memorial Names&lt;/a&gt;: &lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;A coworker passed &lt;a href="http://blog.blprnt.com/blog/blprnt/all-the-names"&gt;this link&lt;/a&gt; along, which describes the process for organizing the names of the victims at the 9/11 memorial in New York City. The idea is that the names will be placed not alphabetically, but socially, to reflect their relationships.&lt;/p&gt;
&lt;p&gt;&lt;span&gt;A program was written that takes the data, as well as restrictions based on the architecture, and optimizes the placement so that the people who knew each other are in close proximity. The output was then manipulated by artists and architects to refine the aesthetic. I thought this was an interesting intersection of computer science and art - not to mention an incredibly important landmark.&lt;/span&gt;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/7081265890</link><guid>http://okayandrew.tumblr.com/post/7081265890</guid><pubDate>Thu, 30 Jun 2011 10:00:06 -0400</pubDate></item><item><title>A Month Off</title><description>&lt;p&gt;&lt;span&gt; &lt;/span&gt;&lt;/p&gt;
&lt;p&gt;I realize I&amp;#8217;ve been silent here for a month, mostly because I haven&amp;#8217;t done much on my current projects. I&amp;#8217;m working through some basic iPad app development and have made a schematic for the &lt;a href="http://okayandrew.tumblr.com/post/5813446813"&gt;PowerBook laptop mini arcade&lt;/a&gt;. Yet most of my time has been spent in other pursuits. There was a friend&amp;#8217;s bachelor party and wedding weekends, as well as the subsequent bout of poison ivy to deal with thanks to a wedding photographer who had us traipsing around &lt;a href="http://www.merriweathermanor.com/"&gt;a farm&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I made my way through the e and hunger games books, and enjoyed them all. e and e2 (by &lt;a href="http://en.wikipedia.org/wiki/Matt_Beaumont"&gt;Matt Beaumont&lt;/a&gt;) are incredibly clever, telling a story entirely through emails  that reads like a mature version of The Office. I enjoyed the &lt;a href="http://www.thehungergames.co.uk/"&gt;Hunger Games series&lt;/a&gt; as well, although it does trail off a bit by the third book as pretty much everyone warned me. It&amp;#8217;s a bit odd to see stories about teenagers fighting to the death on a game show marketed as a children&amp;#8217;s book. Of course, I remember reading Ender&amp;#8217;s Game and Michael Crichton novels in late elementary school, which have their dark moments. There&amp;#8217;s a copy of Jurrasic Park at my parent&amp;#8217;s house somewhere with a heavily dog-eared page when &lt;a href="http://www.youtube.com/watch?v=d921M-ACMM4"&gt;Nedry dies holding his own intestines&lt;/a&gt;.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/6993790070</link><guid>http://okayandrew.tumblr.com/post/6993790070</guid><pubDate>Mon, 27 Jun 2011 20:41:00 -0400</pubDate></item><item><title>Sudoku Solver and Generator</title><description>&lt;p&gt;&lt;span&gt;
&lt;p&gt;[&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3MDFiZDM1MWUtYmUyNi00MWU1LThlMjMtOTkyYWEwMzAwNTk4&amp;amp;hl=en_US"&gt;Download Sudoku Solver and Generator Here&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;When I &lt;a href="http://okayandrew.tumblr.com/post/5542549132"&gt;first posted&lt;/a&gt; my Sudoku Solver I mentioned that there are many such programs available. There seem to be far fewer Sudoku Generators, that can create the puzzles in the first place. With this is mind I updated my previous Excel file so that it can &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3MDFiZDM1MWUtYmUyNi00MWU1LThlMjMtOTkyYWEwMzAwNTk4&amp;amp;hl=en_US"&gt;generate Sudoku puzzles as well as solve them&lt;/a&gt;. Generating a puzzle is tricky and involves more trial and error than solving a puzzle. I found several methods online but wasn&amp;#8217;t thrilled with any of them so I decided to create my own concept.&lt;/p&gt;
&lt;p&gt;The first thing I need is a completed puzzle that meets all the restrictions of Sudoku (e.g. all nine numbers in each row, column, and 3x3 big box). To start I fill out the three big boxes along the diagonals by inserting the numbers 1 through 9 at random. Next, I fill out the big boxes in the remaining two corners. At this point I can&amp;#8217;t randomly assign values because the other two corner boxes restrict where the numbers can be used. The code determines which values are allowable and tries to fill them in. If it gets stuck then it just clears out the entire corner box and starts over again. From there I can run the Solver to fill in the remaining four big boxes. This works properly most of the time but if it gets stuck then I just clear it all out and start over again. I&amp;#8217;m sure there&amp;#8217;s a more efficient way to fill these out but this works pretty well and doesn&amp;#8217;t take too much time.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lm55lyIHLl1qi9209.png"/&gt;&lt;/p&gt;
&lt;p&gt;Okay, so now I&amp;#8217;ve got a puzzle solution. At this point I keep removing a cell and its mirrored pair (e.g. the cell in the upper left and the lower right) while making sure the puzzle is still solvable. The two cells are removed and the solver is run. When it finally gets to the point where the puzzle can&amp;#8217;t be solved it fills the values back into the last two cells it removed. It then tries to remove a different pair of cells. After a few attempts if the program is unable to remove additional cells without making the puzzle unsolvable it stops. The difficulty of the generated puzzle is then provided to the user. Based on the hand-entered Washington Post puzzles I found that the number of iterations required of the solver is proportional to the difficulty ranking.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_lm55meovP71qi9209.png"/&gt;&lt;/p&gt;
&lt;p&gt;I&amp;#8217;ve been doing quite a bit of programming in VBA lately, mainly because it&amp;#8217;s easier to share Excel files than most other formats. However, I want to keep branching out and trying new things. Over the past few weeks I&amp;#8217;ve been starting to learn to program apps for the iPad. I&amp;#8217;m still working through some books and examples to learn the idiosyncracies of the SDK and language but I&amp;#8217;m making my way up the learning curve. Once I get a bit more familiar my plan is to create a simple tic-tac-toe app. From there I&amp;#8217;d really like to get my Sudoku Solver / Generator working as an app. I have an idea for a more ambitious app after that, but it&amp;#8217;ll have to wait&amp;#8230;&lt;/p&gt;
&lt;/span&gt;&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/6094355166</link><guid>http://okayandrew.tumblr.com/post/6094355166</guid><pubDate>Wed, 01 Jun 2011 22:30:52 -0400</pubDate><category>excel</category><category>sudoku</category><category>solver</category><category>generator</category><category>vba</category><category>puzzle</category></item><item><title>Ms. Pac Man</title><description>&lt;p&gt;[&lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWVlNmQ5MmQtNDE1ZC00YWJmLTgyMDgtMDY3YzEwMmQyZDVm&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Download Ms. Pac Man in Excel Here&lt;/a&gt;]&lt;/p&gt;
&lt;p&gt;Playing around with the &lt;a href="http://okayandrew.tumblr.com/post/5813446813"&gt;Powerbook Mini Arcade&lt;/a&gt; reminded me of a program I wrote about a year ago. At the time I was trying to recreate simple video game concepts in Excel and quickly ran into user input issues. It&amp;#8217;s easy to enter text into a cell or a message box, and you can press buttons to start running a macro like the buttons to roll, trade, etc. in the &lt;a href="http://okayandrew.tumblr.com/post/5039074212"&gt;Monopoly file&lt;/a&gt;. When using forms, like the blackjack game in the &lt;a href="http://okayandrew.tumblr.com/post/5130252325"&gt;VBA Trainer&lt;/a&gt;, there are a few more options like catching when the mouse is clicked or moves over an object. However, to do a basic video game concept I really wanted direct keyboard input. Meaning that when I press the up arrow key the character goes up on the screen. Maybe I was asking too much from VBA and should have found another programming language.  After all, Excel is a spreadsheet program that was not intended for this, but still I wanted to try. What I came up with was a very rough approximation of &lt;a href="https://docs.google.com/leaf?id=0B_SzELCby8x3NWVlNmQ5MmQtNDE1ZC00YWJmLTgyMDgtMDY3YzEwMmQyZDVm&amp;amp;sort=name&amp;amp;layout=list&amp;amp;num=50"&gt;Ms. Pac Man in Excel&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="http://media.tumblr.com/tumblr_llq2nacg8G1qi9209.png"/&gt;&lt;/p&gt;
&lt;p&gt;To get around the control issues I made a bunch of small, empty cells to the right of the game screen. When the game starts the center of this field of empty cells is selected. When the user hits the direction keys a new cell is selected and the code, knowing the previously and currently selected cells is able to tell which direction the player wants to go.&lt;/p&gt;
&lt;p&gt;It&amp;#8217;s not very pretty but the control concept works well enough. I used the Webdings font to roughly approximate the characters and pellets, but I have noticed a few glitches where pellets will dissappear even if Ms. Pac Man is nowhere near them. There is also a timing issue inherent in Excel that results in the time between moves being a bit slow. This means that the game can take a while and it&amp;#8217;s not very difficult.&lt;/p&gt;
&lt;p&gt;I made up my own logic for the ghosts, where they can &amp;#8220;see&amp;#8221; a certain number of spaces given their color. If Ms. Pac Man is within that range they will try to move closer, otherwise they will continue along their current path and randomly pick a direction at any intersections. After finishing this project I learned a lot more about the actual ghost logic and was fascinated. Instead of duplicating that information here I&amp;#8217;ll post this link to an article I found interesting. The complex behavior and percieved &amp;#8220;personalities&amp;#8221; for the ghosts that resulted from simple logic is amazing to me. Especially considering they had about 4 kilobytes of assembly language to work with.&lt;/p&gt;</description><link>http://okayandrew.tumblr.com/post/5835113712</link><guid>http://okayandrew.tumblr.com/post/5835113712</guid><pubDate>Wed, 25 May 2011 12:05:00 -0400</pubDate><category>excel</category><category>vba</category><category>ms. pac man</category></item></channel></rss>
