Posts Tagged ‘workaround’

Bingo Game for a Dollar?

Saturday, July 16th, 2011

Today, I stumbled upon a Bingo Game for $1 at a dollar store. Wow. You can’t buy much for a dollar… so I bought one, hoping for a few laughs.

And I get some.

Here’s a picture of the front of the box.  This box is packaged with a little ~5 inch tall plastic bingo cage roller under clear plastic packaging.


Here’s a picture of the assembled game. Dear Daniel kitten not included – he is borrowed from my sister!


A few minutes after opening the package I realized that this wasn’t standard American style bingo. Here are a few of the deviations:

  • There are only 72 balls, not the normal 75 –  LOL, the box says there are 62 balls, I had to count to discover that there are 72.
  • The 8 reusable bingo cards with fold down flaps have 24 randomly selected numbers; however, on the card, the numbers are sorted from lowest to highest.
  • Numbers do not have a specified column. On one card, 19 is in the first column, on another card, 19 is in the second column.  In theory, 19 could end up even further down the card, but that would be unlikely.

Since these are non-standard numbers, you won’t be able to use standard bingo cards. So, you’re normally limited to the 8 cards that you’ve been provided.  However, using our custom bingo card generator, I have made a workaround.

Click here for numeric bingo cards that use the numbers 1-72 with 14 numbers in each column – with the exception of “O” which has 14 numbers –

You can print enough for a small party.  Do NOT mix the original cards with cards generated on  The ones from our website generally follow the American format bingo card scheme.  I.e. numbers within a column are randomly sorted and are assigned to a column.

All things considered, it’s a pretty good value for $1, but it’s unfortunate that it’s not quite standard bingo.

PS, the roller doesn’t stay on the mount very well on the arm side. A well placed twist tie holds things together a lot better. Also, a sticker on the back of the  bingo game box says that this game  is either manufactured or  imported by Mountains China Co. Ltd.


Update: I glanced inside the cage after initially publishing this post and I realized that there were numbers past 62 in there! So, I had to count, and the box is wrong. There were 72 balls in my kit. It’s still non-standard! The custom design above has been revised.

Google Chrome Built-in PDF Viewer Incompatibility with IFRAME and a Workaround

Saturday, December 11th, 2010

With the recent automatic upgrade of Google Chrome to version 8, Google made their built in PDF viewer the default viewer *.  I.e. there is now no need to separately download Adobe Reader or Adobe Flash Player to browse the web with Google Chrome.

Generally, I like this addition to Google Chrome; however, it caused some work for us.  Our web based bingo card generator,, is highly dependent on PDF’s.  That’s the sole reason why our bingo cards are dead-easy to print out by the hundreds.  Unfortunately, Chrome’s built-in PDF renderer does not display PDFs that are in an IFRAME tag properly.

For the last few days, this is what users of would see after generating 5 pages of bingo cards on


Broken PDF rendering in an IFRAME in Google Chrome 8 - screenshot from

Broken PDF rendering in an IFRAME in Google Chrome 8 - screenshot from

Chrome tries to scale the parent page to fit everything in… and it fails badly.

We were not able to get things working 100% the way we would like, but we have a workable situation now.

The basic steps that we had to take:

  • Change from IFRAME to OBJECT tag.  For whatever reason, this fixes the zooming issue.  And it was quite simple.  In our case, there wasn’t much difference between the two HTML tags.
  • Unfortunately, we can’t find a way to get Chrome to print the contents of the object tag without printing the rest of the page (though, perhaps using CSS  might work).
  • Instead, we added some bold warning text that gives Chrome users instructions to use the manual download links. We use a little function to identify Chrome users – the two key lines of code are: 
    $u_agent = $_SERVER[‘HTTP_USER_AGENT’]; 
    if(preg_match(‘/Chrome/i’,$u_agent)) { $ub = “Chrome”; }

So, we ended up with a workaround.  We sincerely hope that Google will add the missing interface elements that will make things just work, but until then, we are doing some other site improvements as we prepare to bump up the price of Premium Access to $12 in 2011.

* If you want to go back to using Adobe Reader in Google Chrome, you can turn off the  built-in viewer by going to the special address about:plugins and change Chrome PDF Viewer to Disable.  Of course, website owners should not depend on end-users to do this just to visit your site!



Fixing the Time in Windows

Thursday, February 14th, 2008

In theory, Windows XP in a home (i.e. non-domain) setting should have no troubles keeping its time accurate. All you need to do is enable the “Internet Time” option so that it synchronizes with a network time protocol (NTP) server. It looks so easy, but it turns out that it’s really not bullet proof.

Most users should try a different NTP server first. The default server is heavily overloaded, and it’s hard to consistently get a sync. Try – that’s actually a network of machines that share the load.

But that’s not the solution in this blog post. IMHO, NTP is unusable in many small network environments because of firewalls and network address translation (NAT). Even the built-in Windows firewall can block NTP traffic which operates on UDP port 123.

Most home PCs connect to the Internet through a small, inexpensive router from the likes of D-Link, NetGear, Linksys, etc. Many of these block NTP or don’t work with it properly. This used to be a common problem with NATs. Port forwarding UDP port 123 to a computer works for some people, but that only works for one computer. And it didn’t work on the two routers I tested with today.

My solution that is generally bullet proof? Use a protocol that is TCP based. I don’t want to get too technical, suffice it to say that the chances of a TCP protocol working with all NATs is higher than that of UDP. Luckily, I found a perfectly good protocol and client (my backup plan was to write a crazy script to screenscrape a web page). It’s called DAYTIME it’s actually older and technically inferior than NTP, but what’s a second or two of accuracy if it works?

Now for a basic client, one might as well go to the source: It’s free, as functional as it needs to be, open source, and provided courtesy of a US government agency.

I setup a this as a weekly time update job on 10 small retail store POS networks through a generic maintence scripting system that is already in place: “nistime-32bit.exe Once -s5”. That’s it. It runs the time client, fixes the time, then exits. There are other options, but for this client, one time synchronizaton per week should be more than enough.

The moral of the story? UDP is over-rated in an Internet that is flooded by little home routers.