Prediction: Facebook to Buy Steam

So Facebook has bought Oculus for 2 billion and like so many others I’ve got mixed feelings about it. As a Kickstarter backer I feel the typical disillusionment as a cool upstart company matures and sells out. From a VR enthusiast perspective I’m more optimistic than most of the FB trolls posting out there today. But beyond the gut reaction is the underlying question: why buy Oculus? Continue reading →

Bitcoin Mining – The Party is Over

Making Bitcoins is simple enough. Run a special program on your computer, and it will try to solve a hard math problem. If your computer gets lucky and guesses a valid answer first, it will let the Internet know you have an answer,  and your computer will be rewarded with 25 Bitcoins. This challenge is repeated roughly every 10 minutes.

So if you want to get more Bitcoins just use bigger and faster computers, right? Except everyone thinks this way. When more horsepower joins in, the math problem automatically becomes harder, maintaining that 10-minute-per-problem benchmark.

Continue reading →

Google’s Latest Machiavellian Move

Windows XP extended support is scheduled to end April 8th 2014. Microsoft has many reasons to stick to the plan – older systems are a pain to patch, they are supporting too many legacy systems, and they make more money when people are in an upgrading cycle. Although this will drive many businesses to move and kick some individuals into gear, millions will stick with their familiar and stable XP, either due to the cost, the inability of old software to run, fear of change, or simply the lack of motivation. Continue reading →

Local Video Options

Last year I came up with a reasonable solution for my local entertainment environment using a Roku and a Synology NAS for my files. Since then the world has moved to the cloud, which is something I continue to resist. There are now tons of devices, apps and services for my TV, but few handle local content well. Here is my rundown of what works and not, and I’ll skip my tirade about cloud storage for the moment. Continue reading →

One-Click-Win Frequency in Minesweeper

Back in 1997 I decided I needed to learn Javascript, so I wrote a clone of Minesweeper to teach myself the new language. I put my demo online and it was well received. Despite the lack of modern standards it has been used as the basis of many apps, widgets, and other sites. It continues to grow, now up to a crazy 1.7 million games played per month just from my site.

I want to build a simple leader board with a 24-hour, 30 day, and an all time list. But does the all time list work at the beginner level? Will it quickly descend into an all 0 score board?

What I want to know: how often will a beginner minesweeper board be solvable in a single click.

To answer the question I wrote a fun routine.

Continue reading →

MVC Sucks

MVC, or Model-View-Controller, is an old concept that has gained traction in the developer community in the last few years. The idea is instead of writing spaghetti, follow a general separation of duties, where one element defines the data (the Model), one presents the data (the View), and one logic store interacts with the user, the view, and the model (the Controller).

And the way all the JavaScript frameworks are implementing it, MVC sucks. Continue reading →

Unfortunate Powerball Numbers

Apparently 20% of lottery players pick their own numbers. Although I can’t source this ‘fact’ and I’m admittedly speculating from here, I’ll bet many of those who self-select are choosing familiar numbers such as birthdays. This means there will be a disproportionate number of digits from 1-12 and to a lesser extent from 13-31, out of a maximum numbered ball of 54. Tonight’s numbers were all below 30.

Continue reading →

Balanced Email RegEx Mask

My users seem to have a problem entering email addresses. Not too often, say 1 in 50, but it is an issue. Forcing them to enter it twice would help them to fix some type-o’s and it does prevent some invalid emails, but I suspect those who make the most errors will defeat the duplicate entry with a simple copy-and-paste. I need a way to give them better feedback without extra typing work.

I find the official spec for email addresses to be too liberal. There are complete email parsers out there but I find they approve too much when compared to real world situations. They will allow things like embedded comments within an email address and formats I’ve never seen in practice.

My goal is to balance completeness with practical real world usage. Here is my JavaScript mask.


Continue reading →

Evil Business Plan XI: Movie/TV Review/Listing Mashup

When I want to go to the movies I head over to rottentomates.com to get a sense of the choices. It isn’t nearly as accurate at netflix.com since the tomatometer is a general population of reviews as opposed to matching other users to my reviews and tastes. I find that even though I pay for so many TV stations (Verizon FIOS mid-tier plan with HBO, including all HBO movies and shows free on demand) I still gravitate to streaming Netflix because of the quality rating structure even if their selection is modest these days. I just don’t know if that HBO movie is going to be my taste, and I don’t want to waste time finding out. How can my reliance on review data be leveraged to totally control my viewing habits?

Continue reading →

Evil Business Plan, Part X: Software and Razor Blades

I will be hosting a large party soon, and with the middling reception at my house the inevitable “Can I get your Wifi Password” will come up a dozen or more times. After doing some research I found that there is a Wifi QR spec that all Android phones use (I’m not sure about Apple) so the plan is to print a not-so-classy QR code and put it somewhere prominent. It’s not beautiful, but it is better than just scribbling down the WPA key. But then I found a better, more classy way to go: NFC tags. Continue reading →