Wednesday, March 23, 2011

TetriNET is back as blockbattle.net - multiplayer tetris in your browser

Are you are current or former TetriNET or Blocktrix player? Then I have some excellent news for you - today we are finally taking the wraps off blockbattle.net. Blockbattle.net is essentially a very modern take on a a very fun, but abandoned classic game - instead of requiring players to download and install software, search for servers, ensure compatibility, etc, blockbattle.net implements the game entirely in the browser. It allows people to play without worrying about software and we've made a number of usability and gameplay changes to make it even better than the original.

We're pretty excited, so I cordially invite you all the give it a try and let us know what you think.

Sunday, March 13, 2011

Why Android Tablets Will Dominate

The Allegory of the 3 Series
The 3 Series is a magnificent car. It is not too big, not too small. It is safe, aesthetically pleasing, thoughtfully designed, expertly engineered and very well-built. It provides a thrilling driving experience and although it costs a bit more, both new and used models are still affordable for most folks. In many ways the 3 series is the perfect car and yet, not everyone drives a 3 Series. Even people who freely acknowledge its magnificence. Why?


Android Smartphones
2010 was a great year for Android phones. In the US, they outsold the iPhone and BlackBerry combined, saw 1600% growth in Europe and displaced Symbian as the world's #1 smartphone OS. All this in the same year that Apple released their best iPhone, whose lineage had an year-and-a-half head start on Android. The reason for this popularity is simple - unlike the iPhone which is a rigid, one-size-fit-all solution, Android phones come in a dizzying array of features, sizes, customizations and price points, allowing people to select the phone that's right just for them.


Android Tablets
Consider the leading-edge tablet OS contenders: Android, BlackBerry Playbook OS, iOS and webOS. Of those, only Android has been designed from the very start to be flexible and open enough to be adapted to different needs and uses. Within a year (or perhaps even this year's holiday season) we will start to see the same kind of diversity in Android tablets as in Android phones. Screens from 5" to 12", tablets that are thin glass slabs, tablets with sliding keyboards, laptop-like clamshells, dual-screens and god knows what else. The fact that the iPad has a big head start and many more applications in March of 2011 will prove as irrelevant in the long term as the iPhone's head start. Only Android will be able to provide consumers with a modern tablet OS in a device suited for their particular needs.


Different Strokes for Different Folks
I don't think this calls for pessimism on Apple, RIM or HP. I think they'll all continue to put out great products, maintain a sustainable market share and influence the direction of the market. However, I have little doubt that Android will be the way the majority of the world's people will interact with smartphones, tablets and other digital devices that'll dominate our interaction with technology in the coming years.

Thursday, February 10, 2011

The difference between Android and iPhone illustrated

I was a iPhone-only user for about 2 years when I got my Nexus One last year. Instead of ditching the iPhone, I've been using both devices for the past year - the Nexus One as my phone and internet device (email, browsing, etc) and the iPhone for music and gaming. I take both of them when I travel, when I go to work, when I get in the car, etc. After a bit, I realized I didn't want to ditch either of them, as I liked and disliked things about both of them, and thought of an interesting way of explaining that.


iPhone
The iPhone feels simple, yet complete. It knows what it can do, does it very well and rarely screws up - the homescreen is a simple icon grid, all settings are in one place and everything is smooth and neatly animated. The downside of course is, that is feels a little dumb - notifications are uselessly simplistic, apps can't tie into each other and worst of all, you have to use iTunes - the music player/content store/social network/central hub/software configuration system/kitchen sink monstrosity that makes me yearn for the days of Real Player.



Android
Android feels smarter and more ambitious, but very much incomplete. It allows you to personalize your device as much as you want, apps can tie into each other and adjust to different phones and it uses Google's cloud as an integral link to the device - your email and calendar just show up, apps can be pushed from a browser and software updates are quick, painless and delivered over the air. The downside is that Android is still very much a work in progress - you can wipe your device and sign into another and your email/calendar/contact list will show up, but not your call or SMS log. Music? Figure it out yourself!



Growth and Development

Both platforms are changing and the analogy applies here as well. We can imagine Android to be a big puzzle that Google solves in public by adding more pieces all the time, whereas we can imagine Apple releasing a complete, solved puzzle once a year - each puzzle being larger than the previous, yet still containing the previous year's puzzle in itself.
Ultimately both have to borrow a lot from each other's play book - Apple must eventually ditch iTunes as a hub and move to the cloud (image the absurdity of using your PC to sync your phone in 2015), while Google must still deliver important pieces like purchasing music and other content.

Thursday, March 18, 2010

The Nexus One as a halo product

Recent estimates of Nexus One sales have revealed that Google's very own smartphone has been selling at a far slower pace than many other smartphones, including the original iPhone, the Motorola Droid and even the BlackBerry Storm. In the ensuing online discussions, people speculated that the poor sales were due to Google's inexperience with retail sales, the novel phone distribution model and a variety of other plausible reasons.

Without knowing what Google's real expectations of the Nexus One are, I will speculate that big sales numbers aren't necessary for the Nexus One to be considered a success. In marketing, the halo effect is a term coined to explain how one product's positive traits translate into increased positive perception of the whole brand. Many companies produce such "halo products", especially in the automotive industry where virtually every car company spends a lot of time and money developing models which sell in tiny numbers. For example, Ford built just over 4000 Ford GTs over several years, while they sell over 2,000,000 cars per year.

While the Nexus One isn't (relatively speaking) as high end as the Ford GT, looking at it as a halo product makes it look fairly successful. Namely, it has brought of a lot of positive press and attention towards the Android platform, while acting as an excellent showcase of what the platform is capable of. This strategy also makes sense when you consider that Google relies heavily on their partners to sell devices. By positioning the Nexus One as a halo product, Google can generate a lot of positive brand awareness for Android and help their partners sell more units, while at the same time pushing their partners to keep up with the rapid evolution of the platform.

For a software company, it is a pretty good strategy.

Saturday, December 19, 2009

The iPhone 4G Predictions

Apple has introduced all three iPhone iterations during the summer, starting with the release of the original in 2007. Given the fast-moving nature of the industry, Apple will most certainly introduce a new iteration of the iPhone next year, if not during the now-typical summer season, then for sure before the holiday season of 2010.

Considering the iPhone's strengths and weaknesses, as well as the state of the competition, the following is a look at what the likely "4G" iPhone will look like. It is based not on sources, but extrapolation of current trends and an attempt at reading the market, so while these predictions are conservative, I also think they're fairly likely to come true.


Screen Upgrade
When it was introduced in 2007, the iPhone boasted one of the best screens on a mobile device, however it has not changed 2 and a half years while phones like the Motorola Droid or HTC HD2 have been introduced with larger, higher-res screens(3.7+-inch, 800+pixels). Apple clearly has to upgrade the iPhone's screen soon to remain competitive, however one of the iPhone's advantages has been providing a unified platforms for developers where all devices have the same screen.

Thus, I think its highly likely that the next iPhone will have a 960x640 screen impacting existing applications minimally by upscaling everything by 2. Developers will have to upgrade their image resources, but impact beyond this should be minimal. In addition, given the increased density, I think the screen will be bigger than the current 3.5". By cutting back on the large amount of dead black area on the face of the device, Apple should be able to fit in a 3.7-4" screen without noticeably altering the device's profile.


CPU and Memory
The 3GS gave us a much needed speed improvement, but the iPhone is still a very resource-constrained device, so while I think the CPU may see only a moderate speed increase (maybe 700Mhz compared to the current 600), I think the device's RAM will be doubled to 512MB.


Radio Quality
Given the high-end nature of the product, the call and connection quality of the current crop of iPhones can be described as "mediocre" at best. In positioning the iPhone as a gaming, internet and multimedia device, Apple has been able to get away with this so far, however I think the next iteration of the iPhone will have some noticeable improvements in its DSP, as this will improve one of the product's biggest weaknesses.


Camera
The current 3MP camera is pretty average and improving it seems like low-hanging fruit, so I think we'll see at least a flash and possibly a 5.2MP camera in the next iPhone.


Storage
I think the current 16GB and 32GB models are more than adequate for the vast majority of users, so I think its unlikely that we'll see a 64GB iPhone.


App Store Genius
With over 100,000 Apps in the Store, it's getting increasingly hard to find new apps. Using your list of installed apps (and possibly how much you use them) and your App Store ratings, it would be straightforward to build recommendation system for the App Store. Apple already has the genius feature working for music and with the Netflix Challenge winner's algorithm being publicly available, they also have access to a top-notch algorithm.


More Developer Power
While I am not very hopeful, perhaps the continued success of Android and its openness combined with continued developer complaints about its review process will convince Apple that is perfectly OK to give developers more power, such as access to system logs or background processing. Phonalyzr is one example of a somewhat popular Android app (currently #8 in the communication category) that is impossible to write on non-jailbroken iPhones.

Monday, November 30, 2009

Why Perl Lost It

Over the last several years it has become fairly obvious that Perl has lost the prominence and popularity it enjoyed in the late 90s and early 2000s, which can be seen from many different angles:
  • Google Trends [1] and the TIOBE index [2] show a steady decline over time [1]
  • A wide reaching survey at Langpop places Perl near the bottom [3]
  • A lot of Perl talk centers around people vigorously stating that Perl is not dead [4] and other kinds of cries for attention [5]
There are many reasons behind this decline, but put quite simply, Perl was outclassed by the competition and lost mindshare amongst developers.

On the low end, PHP became the defacto web development language thanks to its ease of development and deployment. While many developers decry PHP's ugliness and its simplistic nature (no closures, no namespaces, 3000 functions), it nevertheless made web development far more accessible to everyone and thus allowed a huge number of people to make the products they wanted, and helped some notable companies (Flickr, Facebook etc).

On the other end, Python's steady improvement over the years (which made it both more powerful and easier than Perl) attracted a lot of companies and developers, while Ruby and Rails attracted developers who wanted more flexibility out of their language. While this was happening, there were no significant releases to Perl5 and Perl6 was nowhere in sight.


Another significant factor I believe was Perl's much beloved "There's More Than One Way To Do It" principle. While marketed to developers and giving them freedom and flexibility, it also hamper's Perls practicality.

First, it makes the language extraordinarily complicated. While most good designs struggle and strive for simplicity and coherence (the K.I.S.S. principle), Perl goes for the kitchen-sink mentality. Its table of operators can only be described by "gargantuan" and is only eclipsed by its grammar, which is at least 5 times larger than the grammars of languages like Python and Haskell. What this means is that Perl demands far more time out of a developer to become proficient at it, while offering no significant benefits for someone investing this extra time.

Second, it makes it hard for the community as a whole to progress. For example, while Python added new-style classes and pushed everyone into adopting them, there is no way for Moose to easily obtain the same ubiquity (as no one can push it and enforce it). In fact, it is rather telling that Perl's premiere web development framework, Catalyst, only acquired a decent object system in mid 2009.

Whether Perl will continue to decline or not is hard to say, though I highly doubt it'll ever return to its former glory - neither Perl5 nor Perl6 seem to offer much for developers who do not already love Perl.


[1] http://www.google.com/trends?q=perl%2C+python%2C+ruby&ctab=0&geo=all&date=all&sort=0
[2] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
[3] http://langpop.com/
[4] http://www.slideshare.net/Tim.Bunce/perl-myths-200802?src=embed
[5] http://blog.newint.org/tech/2009/11/26/perl-dont-ingore-it/
Easter Egg: The Forex Chart Monkey gives advice on Picket Prevention and Forex Technical Analysis

Saturday, November 21, 2009

The Making of BlockBattle.net

Welcome to the first of a series of blog posts I'll be writing about the ongoing development of BlockBattle.net. Although the project is several weeks old, it is still early in the development life of the game and I am hopeful that these posts will provide some insights to other developers about working with some interesting new technologies, as well as random tetris and network-programming related tid bits.


BlockBattle.net is in essence a modern implementation of the classic Tetrinet game. For those who are not familiar with Tetrinet, it is a fun and well-made multiplayer version of Tetris. Up to six players can join a game, then divide themselves into teams. Once the game starts, every player gets to control a single tetris field. When they make a line in their field, a random block will turn into a special power/attack and if a line is destroyed that includes that special power/attack, the power gets transfered to the player's attack queue. As the game progresses and players make lines and accumulate powers, they can use those powers/attacks either on themselves or on other players. For example, if a player gets a Clear Line and Add Line powers, they use use Clear on themselves and Add on an opponent.


While the original Tetrinet was great, it is now an old game (it was first released in 1997), works only desktop OSs and makes it really hard to find players on demand. BlockBattle.net (so named so that it does not infringe on any trademarks) will be web-based version, available across modern web-enabled devices (iPhone, Android etc) as well as any modern web browser. In addition, BlockBattle.net will offer automatic on-demand player matching and focus on simplicity of game play. It is my hope that BlockBattle will turn out to be a novel, fun and engaging game for users, while offering an interesting exercise in game, UI and web development for the developers.

The major design outlines of BlockBatte.net are:
  • The front-end game play will be done in JavaScript. Piece movement, generation, etc will be done client-side, while major events (dropping a piece, attacking an opponent) will be sent to the server so all player fields are synced at all times.
  • Using HTTP Long-polling (AKA Comet) to enable the sever to push events to the client, such as the player getting attacked.
  • Rather than the Tetrinet way of finding players, whereby one person starts a server and other players connect to the IP, BlockBattle.net will try to automatically match players, so users can simply log in and start playing
  • Making the game accessible on mobile devices by embedding a WebBrowser within an application, then making local inputs (buttons, gestures, taps etc) control the game.
Some of the technologies we'll be using:
  • JavaScript/DHTML for the game front-end.
  • Tornado Webserver - Tornado is a real-time python webserver that powered FriendFeed's website. Tornado was chosen because it is a fast, lightweight framework well suited to the needs of a push server. As well, it is written in Python which is popular, easy to develop for and quite powerful.
  • Mobile Apps: Popular mobile devices such as the iPhone, BlackBerry and Google Android phones will have native apps for BlockBattle, each of which will offer as simple UI customized to the handset and the kind of controls that are suitable for it.
----------
For some silliness, check out the Forex Chart Monkey that helps you with Pickpocket Prevention and Forex Technical Analysis.