Curmudgeon Day 2010

Curmudgeon Day: It is now official!

Now this blog/site is recognized by no less an authority than Google as being the primary source of information about the holiday non-celebration that is Curmudgeon Day.

For those new to this phenomenon, Curmudgeon Day is recognized (not necessarily celebrated) by staying home all day, spending no money (in general), and participating in whatever activity makes one happy, or at least relaxed and contented.  I recommend reading the annual Curmudgeon Day posts from the past several years.

[Editor’s note:  True to the spirit of the day, this post was not edited until much later.]

On this particular Curmudgeon Day, with my status set to Out of Office all day, I actually spent my entire day off of the development computers.  After sleeping in, I did spend a little bit of time in the office (physically), tidying up and removing some excess “stuff” that had been placed here immediately prior to the arrival of our Thanksgiving Day visitors.  I then spent time watching some classic movies, including Dial M for Murder and Strangers on a Train, as well as generally putting the TiVo on a diet and fitness regimen.  (The same cannot be said for me, as I indulged on the food left over from the prior day’s feast.)

I did actually do some research and design for an upcoming game title, and I also contemplated some productivity improvements in conjunction with a weekend “reboot” of my task list.  That, however, is a subject for a future post…

Thanksgiving Day 2010

Happy Thanksgiving!

Every year, we take the opportunity on Thanksgiving Day (in the United States) to consider the reasons we are thankful, especially concerning events of the previous year.  At our house, everybody has the opportunity to mention personal reasons for being thankful, just before we tear into the big Thanksgiving feast.  At our company, I often write the business reasons for being thankful right here…

This year, I am especially thankful that SophSoft, Incorporated is doing better than ever.  We are now in our tenth year collaborating with Goodsol Development, and our Digital Gamecraft division is busy preparing releases for early 2011.  In terms of releases during this year, we have already had a record bounty, with 22 public releases, including two new products (with 3 SKUs), 5 major upgrades, and 14 product updates:

Coming in December, we plan another major update (Pretty Good Solitaire Mac Edition 2.2, already in beta), a version of PGSME available via the Mac App Store (review currently pending), and our first title on the Apple iPad (at least one more SKU, in alpha testing).  Internally, we have been making significant infrastructure and process improvements for even greater productivity (and success) moving into next year.

One personal reason for being thankful, omitted at the dining table, was the fantastic performance of the Michigan State University football teamGo Spartans!

Network Explosion

Wired router spontaneously bursts into flames.

Well, that is not entirely true.  There was, in fact, not even any smoke, but one of our wired routers got extremely hot and failed in a worse way.  Instead of a spectacular failure, one that would be immediately identifiable, this router simply began dropping packets randomly, but only on certain paths and for certain protocols.  A complete reboot of the entire network (all servers and equipment) had no effect on the problem.

The way the issue manifest was by almost completely cutting off my office machines from the internet.  I was not able to fetch my email or read web pages from my systems except (annoyingly) every once in a great while when the properly routed packets aligned correctly.  However, I have a rudimentary diagnostic script (pings from a batch file) that I use to identify the source of a failure, and it registered 100% success; I was able to ping to any reasonable internet address and get a proper response.  Likewise, I was able to connect directly to the servers without any difficulty; it was only when trying to use them normally (via the internet) that I got no response.

Finding the source of failure became a bit more difficult because of the particularly aberrant behavior of this router.  The servers that reside behind that router were able to access the internet without any signs of a problem.  Complicating the matter even more was my own failure to confirm the network topography and, instead, incorrectly assuming that the wireless router (which clients had no trouble, either) went through the same router.  Since my office seemed to be the only area affected, the obvious suspect was the local switch, or else the cable (or port) connecting it to the rest of the network.  I had, in fact, already sent out for replacements when I was able to determine (with about 80% certainty) that it was actually this odd failure of the router on the main network.

Replacement router serves its purpose, barely.

As usual, the router failure came at a very inopportune time, right in the middle of a big development push.  Instead of any network reconfiguration, I made the call to simply replace like for (almost) like.  In theory, I could just drop in the new router, configure it the same as the old router, and carry on.  The problem was that the old hardware was Linksys, of pre-Cisco vintage, and the available replacement was D-Link.  Most of the settings translated fairly directly, but differences in era and manufacturer meant that it took a little extra time to find everything and figure it all out.

The biggest issue, however, is that the new router has an apparent design problem not inherent in the old Linksys.  The replacement hardware cannot properly handle loopback connections.  The link explains this in detail, but the gist of a loopback connection error is that a router sends internal packets out to the internet even if they are destined for an address the router handles.  In other words, I can reach my servers behind the router using a private address, but if I try to use the public address (say, ‘’), it sends my packets to Neverneverland.

Fortunately, the problem only impacts machines behind the same router as the servers, which in practical terms means that it only affects me and my development systems.  I reconfigured a few settings here to work around the limitation in the hardware, and everything seems to be working fine.  The weird thing is that the rest of the world could reach the servers fine, but it is hard to accept that when the closest systems to them (both physically and in network terms) could not.  I was able to test from other systems and from external services.  In particular, I found SuperTool from MxToolbox particularly helpful.

In the midst of this, I also dealt with a stupidity problem with Linux, but that tale will have to wait for another day…

Community Statement

Regarding Westboro Baptist Church Protest at East Lansing High School

[The following statement was recently approved by area community and religious leaders in response to an announced protest, scheduled to take place later today, directed at ELHS students, including my son, and their teachers and parents.  It is republished here as a show of support.]

The Greater Lansing Community stands unified in opposition to the message of hate brought to our community by the Westboro Baptist Church. We know that as a community our strength lies in our diversity – religious, ethnic, gender, sexual orientation, race, social, political and more. This diversity is what creates a healthy thriving community. And such communities foster and participate in a market place of ideas.

We understand that the diversity of our community also allows for a diversity of ideas and that is part of our strength.  This also means that we may not all agree on the best way to respond to WBC on Thursday.  We  ask that each participant, in planning their role in the response to WBC, consider that Westboro  is only able to fund these trips by suing the people that respond to their provocations in confrontational or violent ways. If you feel inspired to join our efforts please help the rest of us respond to their hate with more dignity than they are showing us and our youth.

We are appalled that Westboro Baptist Church has decided to direct its vitriol at the students of East Lansing High School. Their hate stands in direct opposition to the values of our community and is an attempt to unfairly bully our youth into silence.

It has been reported the Westboro Baptist Church has targeted these youth because they have done that which we encourage as a community value – they’ve engaged in the civic dialog and expressed a view with which Westboro disagrees. Instead of dialoging with the youth, and participating in the marketplace of ideas, Westboro has instead decided to attack, bully and harass our youth. We stand with our youth and applaud this engagement by them. We value participatory citizenship in which ideas are challenged through dialog over demagoguery and bullying.

Sadly, the Westboro Baptist Church protest serves to remind us that bullying is not isolated to our school hallways, but permeates our culture. We whole-heartedly reject bullying as the violence it is—to individuals, to groups and to the community.

We believe the protest by Westboro Baptist Church shows our elected officials in the legislature that it is past time for them to lead and take action against bullying.

The irony that Westboro Baptist Church has come to divide us as a community, but has instead united us is not lost on this community.

Our faith leaders and community agree that the Westboro Baptist Church does not reflect our understanding of a place of worship. Houses of worship create, build, nurture and support community. Despite our diverse views of God, we are united in our belief that God is a loving creator.

We stand in opposition to Westboro Baptist Church’s intrusion into our community. At the same time, the tapestry of our community in all of its diversity are on full display, and demonstrates why the Greater Lansing Area is an amazing community in which to live, work and play.

15 Years of

We have had a web presence for a decade and a half.

On November 14, 1995, our original registration of the domain was approved.  Back in those days, our online activity was conducted via BBS, CompuServe, America OnLine, and Delphi (albeit briefly).  At the time, we spent about $150 in various fees to secure the domain name, having originally failed to obtain by about a month.  We had to go through our dial-up provider (before the term “Internet Service Provider” [ISP] was coined) to register with InterNIC, which (as Network Solutions) was in the process of change, including the institution of fees for registering domains.  The domain was a shortening/concatenation of our company name, Sophisticated Software Systems.

Within a year, our company had incorporated as SophSoft, Incorporated, using the domain as the basis for its official name.  Our provider was bought out by another company, (which is now our ISP, and one of the largest providers in the state), so we had to figure out how to navigate the domain system ourselves.  At the time, one had to email a specially formatted text message to a particular address in order to make any changes, which (of course) took time to take effect.  We also got broadband via one of the very first commercial cable modems in the country, and were soon running our own servers (which is probably a bad habit that continues to this day).  Our early websites were fairly minimal, built originally via HTML in a text editor.

Today, domain names are easy to purchase and manage, changes are close to immediate (with propagation issues being just a side note), web pages are much simpler to create, broadband is much faster and nearly ubiquitous, and expectations for internet communication are far higher.  All of that makes it fairly ironic that our first site has hardly been touched in five years…

Goodsol Solitaire 101 version 2.02

More than 100 Solitaire games for less than $20.

Goodsol Development has released Goodsol Solitaire 101 version 2.02 for both Windows and Mac OS X.  This maintenance update fixes every reported bug on both platforms.

Goodsol Solitaire 101 is a collection of 101 of the most popular types of computer solitaire, plus another bonus 34 games as a bonus for customers.  The editions for each platform are functionally equivalent, the game deals are identical, and the saved games are even interchangeable.  You can get both the Mac and Windows software for only $19.95Buy now!

Supreme Arguments

Video Games have their day before the Supreme Court.

On November 2, the case of “Arnold Schwarzenegger, Governor of California, et al., Petitioners v. Entertainment Merchants Association, et al.” (docket # 08-1448) was argued in front of the Supreme Court of the United States.  Oral arguments began at 10:04am and lasted exactly an hour (until 11:04am).  The format was an initial argument by the petitioners (California), followed by a response from the respondents (EMA), and then a rebuttal by the petitioners.  Each side is represented by one (speaking) attorney, and the Justices interrupt them (and each other) at whim with questions and arguments.

As discussed originally in my post, Video Games facing Supreme Court review, the case concerns the law passed in California that would prohibit sales of games with “deviant violence” to anyone under 18 years of age.  The law never went into effect and was ruled unconstitutional by two lower courts before being appealed to the Supreme Court.  Hopefully, as discussed at Meaningful Play 2010, this case will put the legal question to rest once and for all and allow the industry to have an open debate.

Surprisingly, the transcript of the oral arguments in the case (PDF) is actually fairly entertaining to read.  The Justices are nowhere near as dry as one might expect, and there were moments of actual laughter.  The case is also very interesting in the fact that the normal ideological lines of conservative versus liberal seem to break down, so there are no easy predictions as to how individual Justices may vote (and Clarence Thomas did not speak at all).  In fact, press reports differ on which way the Court may be leaning.

Here are a few of my favorite moments from the oral arguments in this case:

“I’m concerned about the producer of the games who has to know what he has to do in order to comply with the law.  […]  But a law that has criminal penalties has to be clear.  And how is the manufacturer to know whether a particular violent game is covered or not?” — Justice Antonin Scalia

“Well, I think what Justice Scalia wants to know is what James Madison thought about video games.” — Justice Samuel Alito

“Would a video game that portrayed a Vulcan as opposed to a human being, being maimed and tortured, would that be covered by the act?” [answer: “No, it wouldn’t…”]  “So if the video producer says this is not a human being, it’s an android computer simulated person, then all they have to do is put a little artificial feature on the creature and they could sell the video game?” [answer: “Under the act, yes…”] — Justice Sonia Sotomayor

For more coverage, you can listen to the story from National Public Radio (or read the NPR transcript) or see the associated stories in the Wall Street Journal and Los Angeles Times, or read the story on Kotaku for a perspective from the game media.

A ruling on the case in expected by June, 2011.

Pretty Good MahJongg 2.40 / ME 2.00

MahJongg Solitaire for both Windows and Mac OS X.

Last month, just before I attended Meaningful Play 2010, Goodsol DevelopmentPretty Good MahJongg Mac Edition continued its intense autumn release schedule, publishing updates to its award-winning MahJongg Solitaire game, Pretty Good MahJongg, for both the Windows and Mac OS X platforms.

Pretty Good MahJongg 2.40 [for Windows] adds five more tile matching layouts, for a total of 300 layouts, plus the ability to have the program minimize to an icon in the task bar (a.k.a., “tray”) with just a keystroke.

Pretty Good MahJongg Mac Edition 2.00 includes 32 original solitaire games, and it adds 23 puzzle games, as well as 140 more tile matching layouts, bringing the Mac OS X version up to the same number of games and layouts as the Windows version (which turned 8 years old in October).

Download a trial version of PGMJ for Windows or PGMJME for Mac OS X now, or buy it today for only $24.95 (plus an optional $7.50 if you want it on CD).