www.archive-ca-2012.com » CA » B » BLOGSPOT

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".

    Archived pages: 20 . Archive date: 2012-07.

  • Title: Canned French Fries
    Descriptive info: .. Canned French Fries.. Thursday, May 17, 2012.. Symmetric Pandemic.. Pandemic.. is a very popular board game around the office, but there are a couple things about it that bug me.. First, I'm pretty competitive so even though this co-op game can be a real challenge I really wanted to find a way to pit players against each other (other than using the bio-terrorist role).. The other thing that has always bothered me a bit about pandemic is that one or two vocal (hopefully experienced) players can often drown out the other players.. I've occasionally considered granting each player a certain amount of time per round/game and using timers to limit an individual's vocal contributions but this kind of takes away from one of the most fun parts of a good game of pandemic, the interaction and debate.. A colleague of mine, Mike McGraw, proposed an interesting twist on the game that seemed like it might solve both of the above issues.. We had multiple copies of the game, what if we could sync up the decks so that we could have 2 teams simultaneously playing the same game? Because of the way that pandemic works it would be relatively easy to have both teams get the exact same player and virus cards in the same order.. This means that the decisions made by the teams would be the sole difference in the results of the games.. A nice even playing field.. We decided that the winning team would be the team that cured the most viruses, if both teams won, then the team that won first (real time, not turns) would be the victor.. This incentivised both teams to play at a quick pace, but not a reckless one.. A nice side effect of having both teams play on the same (large) table and use the same card order is that at least at the start of the game you don't want to talk too loudly or too much about the cards you draw or the good ideas you have because your opposing team can also hear them and use that information.. While I don't think either team used this advantage to any great degree in our game it's an interesting dynamic.. Once we decided to give this variation a try we didn't want to have to require an extra person on hand to do the initial deck sync and make sure the post-infection shuffles also resulted in the same ordering.. Fortunately I work in an office full of talented programmers, one of whom (Luke Dewitt @whatadewitt) spent a couple hours building a web-app that takes a seed and generates a shuffled deck of pandemic cards, has buttons for drawing from both the player and virus decks and manages the actions required for infection events.. We had 2 computers load up this app and input the same seed and the resulting play through is symmetrical (in terms of cards drawn).. Luke's Pandemic Card-Sync-app.. To make it a little easier to get the app running in the limited time we had before playing we decided to remove a couple special event cards that can affect card drawing which could potentially break the drawing symmetry.. Since you only play with a subset of the special event cards anyway this shouldn't be a problem.. The game itself went really well, my team had to restart after a missed turn early in the game, but this was easily accomplished using the app and the same seed and we quickly caught back up to where we were before.. The game ended with one team curing the last virus and winning by being the first to do so.. I'm confident that both teams would have won the game (we were playing with 4 infection cards for this initial play test) so the real-time aspect of the variation made the difference.. The 2 Teams and Boards.. We plan on playing another game like this sometime soon, if it turns out I'll record it and post it here.. I think everyone enjoyed the game and the new angle that the 2-team variation brought.. One thing we've considered for future iterations is finding a way to track (or perhaps record) which moves each team made so we could review it post-game and find the turning points.. In particular I like the idea of picking a seed at random, generating a unique game and playing it either with a group or solitaire (Pandemic is a great solitaire game) and then sending the seed to a friend to see how they did with the same card sequence.. Thanks to Luke, Mike, Shawn, TJ, and Jamie for the great game,.. Brent.. UPDATE:.. Luke has posted the source for the web-app on github and it's also available on his site:.. source:.. https://github.. com/whatadewitt/symmetric-pandemic.. online:.. http://whatadewitt.. ca/pandemic/.. I'd recommend playing (or at least starting) a solo game before trying a multi-team setup just to make sure you understand how the app works.. Posted by.. Brent Smith.. at.. 5:55 PM.. 3 comments:.. Labels:.. boardgames.. ,.. games.. pandemic.. Wednesday, April 11, 2012.. Super Mario Kart Cycle.. I love Super Mario Kart and the SNES in general.. When I was young I used to think about how much fun it would be to play SMK with a real bike.. Now, many years later, we finally have the ability to create such a thing without a lot of very specific knowledge and tools.. Some of the things I used:.. Arduino microcontroller (UNO).. A few transistors.. Some pushbutton switches.. A few resistors.. A 2$ photo interrupter.. An SNES controller.. A very old stationary bike.. A breadboard.. Nothing there is overly expensive and none of it should require more then a little time and googling to figure out how to use.. That said I'm not particularly experienced with electronics so there may very well be better ways to do some of this.. (Actually I've found a few things I'd like to correct myself quite recently).. This was my 2nd Arduino project, the first being an n-back test game which I'll make a post about in the future (https://github.. com/statuswoe/nBackGame).. There are two separate parts to this project, the first is finding an easy way to output from Arduino into the SNES and the second is having the Arduino recognize when the bike is being pedaled and when the buttons are being pressed.. Arduino to SNES.. The SNES controller isn't particularly complicated, there looks to be a multiplexer and a couple resistors but little else.. I wasn't able to find a really good diagram though.. There is a description of the pinouts here: http://www.. gamesx.. com/controldata/snesdat.. htm but I wasn't really interested in playing with a clocked signal when I didn't have to since I had an old SNES controller that I wasn't using.. All I needed to do was put an NPN transistor across the points that the buttons contacted and I can fake a button press by applying voltage to the base pin, this was pretty simple.. My soldering is getting a little better, couldn't get much worse.. What I ended up with is a series of input pins that I plugged into my Arduino board and when I set them high the associated SNES button is triggered.. I mounted the project board and the modified controller into a small toolbox which was the cheapest container I could find that fit them both.. The SNES connector comes out of one end and the Arduino connector comes out of the other.. One of my goals was to make the SNES controller adapter entirely separate so that I can use it for other games/peripherals.. Bike to Arduino.. The Handlebar buttons are pretty self explanatory.. I used momentary push button switches that are on unless pressed just because I had some on hand.. Because I'm running them into the Arduino I was able to invert the state in software.. The fun part was finding a simple way to track pedaling.. I found a few caveats:.. - Because the wheel doesn't stop when you stop pedaling and there are no real breaks I didn't want to use the wheel  ...   a party had enough to be considered a viable choice in future elections that's a lot of potential voters using their own maximums to make that call subconsciously.. As an example if I was a party X supporter, but voted A strategically and tuned in to see the vote totals I have a number, albeit a number I don't consciously know, where I would realize that party X might have a shot next election.. Say that number was 4,352 then in the above example I wouldn't yet be convinced and would likely vote strategically next election, but I wouldn't know exactly how close I came to being convinced.. Now consider there are a large number of people like me, but who's number is slightly (or significantly) different than mine.. This means that instead of having one solid number (to win the election) that if you miss you feel like you've wasted your vote you actually have hundreds or even thousands of numbers where your single vote could influence the next election in a much more dramatic way.. This kind of thing can snowball too.. If my vote this election catalyzes additional people to consider party X and maybe vote for them in the following election then their votes can do the same in subsequent elections.. In conclusion even though third party vote totals might not win them an election, the value of the actual vote count (or penny charged, or drop added) can have direct impact on results even if the number seems arbitrary.. I didn't really intend for this to become so much about voting, but it seemed a decent example, and I think it's important that people consider not only the short term outcomes of elections but use their votes as a path to the future that they want.. Thanks,.. Brent.. 6:58 AM.. No comments:.. Thursday, March 3, 2011.. Maven Release and Directory Locations.. A co-worker of mine ran into a strange error while running a maven release:prepare goal on a new project we were setting up, and the issue is kind of odd.. When he ran the prepare goal he would quickly get (on the first module) this error:.. [INFO] ------------------------------------------------------------------------.. [ERROR] FATAL ERROR.. [INFO] null.. [INFO] Trace.. java.. lang.. NullPointerException.. at org.. apache.. maven.. shared.. release.. util.. ReleaseUtil.. getBaseWorkingDirect.. oryParentCount(ReleaseUtil.. java:233).. phase.. RewritePomsForReleasePhase.. tran.. slateScm(RewritePomsForReleasePhase.. java:109).. sformScm(RewritePomsForReleasePhase.. java:62).. Google didn't really help much so I had a look at source for those classes and tried to figure out where the null was coming from.. While I was looking around I remembered that he had checked out the project into his root directory, so the working directory was directly inside "C:\".. That is:.. C:\project\pom.. xml was the top level pom getting built.. Since the release plugin looks for some base and parent directories I wondered if this made a difference, if asking for the base directory and just getting "C:\" was an issue.. I tried to run the same goal on my machine, with a more nested working directory and it finished successfully.. We tried adding one level of directories between his root and his workspace (C:\blah\project\pom.. xml) and that seemed to do the trick.. I've logged a bug report with the maven release plugin about this: http://jira.. codehaus.. org/browse/MRELEASE-663, but in the interm if anyone runs into it just make sure you aren't doing your dev too close to root.. 9:51 AM.. Thursday, February 24, 2011.. Hudson/Jenkins and the missing key.. A while back we began moving from one old hudson server to a new box with a newer version of hudson on it that could better handle the ever increasing load it was being given.. For a while things were working fine, I do mostly AS3/Flex builds using flex-mojos and I moved a couple project to the new server with no issues.. At some point (still unsure why) our flex jobs started failing.. The error given was as follows:.. [ERROR] BUILD ERROR.. [INFO] key can't be empty.. org.. lifecycle.. LifecycleExecutionException: key can't be empty.. DefaultLifecycleExecutor.. executeGoals(DefaultLifecycleExecutor.. java:719).. executeGoalWithLifecycle(DefaultLifecycleExecutor.. java:556).. executeGoal(DefaultLifecycleExecutor.. java:535).. executeGoalAndHandleFailures(DefaultLifecycleExecutor.. java:387).. executeTaskSegments(DefaultLifecycleExecutor.. java:348).. execute(DefaultLifecycleExecutor.. java:180).. LifecycleExecutorInterceptor.. execute(LifecycleExecutorInterceptor.. java:65).. DefaultMaven.. doExecute(DefaultMaven.. java:328).. execute(DefaultMaven.. java:138).. cli.. MavenCli.. main(MavenCli.. java:362).. I found a couple references online to "missing key in Hudson" but none seemed to fit my situation.. Eventually I ended up creating a new test project as a multi-configuration project instead of my standard Maven 2 project, adding an empty shell script and the Maven 2 build step.. This ended up solving the missing key issue, though I'm at a loss as to why.. Since I struggled with this for so long I figured I'd post it and hopefully save someone else some pain.. It's quite possibly a flex-mojos bug since it didn't seem to affect the Java jobs on the server.. If anyone can explain why this seems to happen I'd love to hear about it.. This occurred in a version of Hudson just before the start of the Jenkins project, so it would likely occur there as well and I thought it's worth mentioning.. 10:35 AM.. 1 comment:.. code.. flex-mojos.. hudson.. Thursday, November 18, 2010.. Pidgin MSN Cert update.. This morning pidgin was complaining about my MSN accounts and the cert coming from omega.. contacts.. msn.. com.. I seems that the cert was changed.. The fix:.. Using Firefox visit: https://omega.. com/.. Right-click on the page (an error page) and select page-info.. Select the Security tab and click "View Certificate".. In the Details tab click export and save it in the certs dir in your.. purple folder.. ex:(Win XP) C:\Documents and Settings\{username}\Application Data\.. purple\certificates\x509\tls_peers.. (if you can's find this on your machine a simple search for tls_peers should point you in the right dir).. In Pidgin disable then enable any MSN accounts and it should connect.. For people who don't want to grab the cert themselves a helpful blogger has a link to a copy of the cert (and similar instructions) here: http://blog.. andreineculau.. com/2010/11/pidgin-and-msn-certificate-error-for-omega-contacts-msn-com/ BUT BE WARNED that certs are the sort of things you should get from the site itself if you care about security.. Hope This Helps,.. 7:51 AM.. pidgin.. Thursday, June 17, 2010.. AS3 Boolean Assignment.. I came across a situation where I had a series of function calls that could alter an array of objects and I wanted to know at the end if any of them had actually made any changes.. I decided to have each function return true if it had made a change and false otherwise.. Then I created a boolean variable before running through the set of functions and assigned the result of each of the function calls to that variable using the following:.. b = foo.. ().. || b;.. I did it this way because boolean logic operators work left to right and had I done either of these:.. b = b || foo.. ().. ;.. b ||= foo.. then if b was true foo() would never have been called.. I found myself wishing that there was a way to explicitly set which direction the expressions would be checked in ( =|| instead of ||= for right to left) or even a means of indicating that you want ALL of the expressions to be validated (efficiency be damned!).. Fortunately there is a (less optimized?) way to do something similar using numerical operators.. When a boolean is used in a numerical operator it gets treated as a 1 or 0.. This allow you do do the following.. var.. b:Boolean =.. true.. c:Boolean;.. //defaults to false.. d:Boolean;.. trace.. (.. b+b+c+b.. ).. ;.. // 3.. b+c+c+c.. // 1.. d = c+b+b.. d.. // true;.. d = c+c+c+b;.. d = c+c;.. // false;.. d =.. false.. d += b.. This means I can do the following in my example situation:.. b:Boolean;.. b += foo.. b += boo.. b += who.. b +=.. do.. and if any of the functions return true b will become true.. 7:06 AM.. Older Posts.. Home.. Subscribe to:.. Posts (Atom).. Pages.. About Me.. Blog Archive.. 2012.. (2).. May.. (1).. April.. 2011.. (3).. March.. February.. 2010.. November.. June.. First Climbing Experiance.. 2009.. December.. XKCD on PRS300.. Picture Window template.. Powered by.. Blogger..

    Original link path: /
    Open archive

  • Title: Canned French Fries: Symmetric Pandemic
    Descriptive info: Canned French Fries.. Symmetric Pandemic.. 3 comments:.. Anonymous said.. Is there anyway to put that app out for public use.. In case any of us want to try it?.. May 18, 2012 12:26 AM.. Steve.. said.. Call it Duplicate Pandemic , in line with duplicate bridge etc.. I wonder if this mechanic would work for other co-op games like Space Alert..  ...   of each game.. Wouldn t be quite to easy to use an app to give everyone the same action cards.. May 18, 2012 1:46 AM.. Matt Leacock.. Great idea! Love the concept, especially the notion of a seed that allows others to test their abilities against the same challenge.. May 23, 2012 9:27 PM.. Post a Comment.. Older Post.. Post Comments (Atom)..

    Original link path: /2012/05/symmetric-pandemic.html
    Open archive

  • Title: Canned French Fries: Super Mario Kart Cycle
    Descriptive info: Super Mario Kart Cycle.. Sophronis Mantoles.. Super cool!!!.. May 7, 2012 10:16 AM.. Sam.. Wow nice idea to work more on exercise.. I didnt think that you can use.. Online Car Games.. for exercise.. May 11, 2012 5:53 AM.. pharmacy.. Super mario kart is one of the best games ever made theres no doubt about it!.. June 1, 2012 9:22 AM.. Newer Post..

    Original link path: /2012/04/super-mario-kart-cycle.html
    Open archive

  • Title: Canned French Fries: The value of a drop in a bucket
    Descriptive info: The value of a drop in a bucket.. No comments:..

    Original link path: /2011/04/value-of-drop-in-bucket.html
    Open archive

  • Title: Canned French Fries: Maven Release and Directory Locations
    Descriptive info: Maven Release and Directory Locations..

    Original link path: /2011/03/maven-and-directory-locations.html
    Open archive

  • Title: Canned French Fries: Hudson/Jenkins and the missing key
    Descriptive info: Hudson/Jenkins and the missing key.. 1 comment:.. We are having the exact same issue, going to try your suggestion.. Did you ever figure out the cause?.. May 26, 2011 9:21 AM..

    Original link path: /2011/02/hudsonjenkins-and-missing-key.html
    Open archive

  • Title: Canned French Fries: Pidgin MSN Cert update
    Descriptive info: Pidgin MSN Cert update..

    Original link path: /2010/11/pidgin-msn-cert-update.html
    Open archive

  • Title: Canned French Fries: AS3 Boolean Assignment
    Descriptive info: AS3 Boolean Assignment..

    Original link path: /2010/06/as3-boolean-assignment.html
    Open archive

  • Title: Canned French Fries: About Me
    Descriptive info: About Me.. Brent Smith is a Software developer and proud father of one.. Twitter: @brentsmith_dev.. GitHub: statuswoe..

    Original link path: /p/about-me.html
    Open archive

  • Title: Canned French Fries: May 2012
    Descriptive info: Newer Posts..

    Original link path: /2012_05_01_archive.html
    Open archive

  • Title: Canned French Fries: April 2012
    Original link path: /2012_04_01_archive.html
    (No additional info available in detailed archive for this subpage)


    Archived pages: 20