Chisel 
logo  Computer Human Interaction & Software 
Engineering Lab
Syndicate content
PhD student, CHISEL lab, University of Victoria, Canada
Updated: 15 hours 32 min ago

Why I won’t be getting a Lumia 900

Tue, 2012-04-10 09:11

The Nokia Lumia 900 is a great looking phone, running what I believe to be a great operating system. It was named “Best of CES” by CNET. It is powered by the latest LTE technology. But I won’t be getting it. If you’re in Canada, I recommend you don’t either.

Not that it’s not a great phone. On paper, the phone is actually pretty amazing, and I’d be happy to have one. But instead of being an example of what is right in the Windows Phone, it has become a symbol for what is wrong with telecommunications in Canada.

Before I get into all of that, let me step back a bit, and catch you up to this point. I’ve been an iPhone user for years. I ordered my first iPhone, the iPhone 3G, the first week that it became available in Canada. If I recall correctly, it was actually on the day after it was released (I didn’t get it the first day because I was negotiating with Rogers for a better plan). I was really happy with my iPhone 3G, up until iOS 4.

Like many 3G owners, as soon as I installed iOS 4, the whole experience went sideways. Things that were really responsive before, and could be completed quickly, were suddenly taking 20 seconds to respond, to keyboard press. This included things like Google Maps, Email, and many others.

I quickly moved up to the iPhone 4, and these problems quickly went away. But something didn’t feel right. But I went ahead using my phone as if nothing was wrong.

This year, while talking with one of the post-docs in my research group, I had the sudden epiphany. I was no longer in love with my phone. Somewhere along the way, we had drifted apart. The shiny button like icons that had once thrilled me, no longer brought me joy. Suddenly I realized, I had regressed to my childhood. I had once loved my phone so much, now every time I looked at it, all I could think about was Windows 3.1, with its folders and icons.

iOS had stagnated. The once innovative young company that was happy to break the rules, no longer tried, because the rules were made by it. Instead of releasing revolutionary new systems that would change their users lives, they were happy to release evolutionary new features, that would improve them, slightly, at a price.

I tried everything. I used all of the iOS 5 betas, hoping that I could rekindle the flame, but with big features like Notification center, and iMessage, it was hopeless. I new what had to be done.

After talking with my colleagues, and sleeping on it, many nights, I knew in my heart I needed something new. Android wouldn’t do it. Android at this point was essentially an open copy of iOS. The only one out there that seemed to be innovating was Microsoft.

Windows Phone 7 from Microsoft was a big rethink of what mobile should be. Instead of small icons with little number notifications, it used tiles, that could actually show more meaningful information. I knew that this was something I would have to try. It was very different of course, so with such a big change, a big risk would be involved. The best way to know for sure would be to try it. But nobody I knew had it. Well, not nobody, but no one near by. I had a few friends that had them, but none where I could really get my hands on it.

This would be something that people would have to get their hands on I thought to myself. If I had one, and liked it, I knew I would convert many people, but I’d have to get one first.

As a side note here, I like to create things. This is important to note at this point because as a friend of mine pointed out, there was a way I could get a Windows Phone for free. Well, not exactly free, but while doing something I loved doing anyway, creating things.

Microsoft knew that one of the biggest weaknesses in its platform was the lack of apps. Apple had millions, and the Windows Phone Marketplace, well, not so much (don’t worry though, all the big ones are there).

To entice developers to develop for the Windows Phone, they started a program to give them incentives. They called it the Developer Movement (Canada only). For each of your first two apps you made, you’d get a reward. As pointed out by a friend of mine, there, next to app number two, was my new phone.

So I started learning how to develop for Windows Phone. I hadn’t worked with C# in a while, but I was eager to learn again. From signing up for the program, learning the frameworks, to finishing two apps, all done in under 2 months. (If you’re interested, you can check out my apps at www.laudable.net).

So now you’re pretty much caught up. My second app was accepted April 6th (Good Friday. I was surprised to see my app get approved on a holiday). So now I can choose my reward. A brand new Windows phone. Or a $500 American Express gift card.

I knew, I threw that second possibility in there kind of late. The Windows Phone that the program had up for grabs was a Lumia 800, but one of my friends pointed out another possibility. The Lumia 800 was great, but I could take the gift card of $500, and buy the brand new Lumia 900. The 900 had a few features the 800 didn’t. Front facing camera. Access to the brand new, high speed LTE network. The review were pretty awesome. These all sounded very cool, but could I get it for $500? Apparently, yes I could. The word was, it would be available for $450, no contract.

Well, at least in the States it would be $450. But this is the no contract price. With a Canadian dollar essentially floating on parity with the American and no tariffs on cellphones, there would be little reason it shouldn’t be the same, right?

There is only one company in Canada that will be selling the Nokia Lumia 900, Rogers Communications. Rogers is one of, if not the largest, Wireless communications company in Canada. It has one of the largest numbers of subscribers in the market, and it knows how to use that to it’s advantage, and it does.

But the prices got leaked. No big surprise, the largest wireless company in Canada was not trying to compete with it’s American counterpart. Where AT&T was offering the Lumia 900 for $99 on a Two year contract and $450 with no commitment, Rogers would be offering the same device for $99 on a Three year contract, or $529.99. Why the higher price? Because they can, who else are you going to buy from.

So where does that leave me? Well, I had a decision to make.

I could pony up the extra cash ($29.99 extra for the phone + $63.60 in taxes, and that’s still not unlocked)…

Or I could just take the Lumia 800 from the Developer Movement, not have to deal with the extra hassle, and make a small stand against the greed in the Canadian wireless system.

I think I know which way I’ll be going.

Categories: News

Fixed: ExecJS RuntimeError and FATAL ERROR: v8::Context::New() when deploying Rails to Shared Hosting

Sat, 2012-01-28 16:42

I’ve recently been working on setting up a rails app for a site I’m building for one of my side projects.  While I’ve mostly been working on this in my spare time, I decided that it would be important, to one day be able to deploy it to a larger audience (like friends and family). After trying to get rails set up on my old hosting, and being told that Rails 3 wasn’t supported. I recently moved to Vexxhost. Two things enticed me: 1) they’re Canadian; 2) Their hosting is bloody cheap.

So after moving my PHP sites over, I got to work on deploying my currently simple rails app.  And that’s when I hit a problem.

The Problem ExecJS::RuntimeError in Home#index

Showing /home/jrstarke/apps/___/releases/20120128224905/app/views/layouts/application.html.erb where line #6 raised:

FATAL ERROR: v8::Context::New() V8 is no longer usable (in /home/jrstarke/apps/___/releases/20120128224905/app/assets/javascripts/charities.js.coffee)

Now if you’re finding yourself  in a similar situation, Stop. Take a breath. You’re not very far.

The reason you are finding this is because Rails is clever. The .erb and .js.coffee files in application are compiled, compressed, and this all happens dynamically. They call this the ‘Asset Pipeline’.

The problem is that if you’re shared hosting is anything like Vexxhost (and I imagine most that use cpanel are), their servers in their shared hosting are based on efficiency.  This compiling of assets dynamically takes time and resources, and really, once you’d deployed it to the server, they don’t usually change much (with the exception of a new version, but then that won’t change much either until the next version).

The Solution

It turns out that the solution isn’t all that hard, in fact, most of it I found through a great article on the Ruby on Rails site about The Asset Pipeline – In Production Environments.

The trick is that you essentially need to turn off the asset pipeline. During the dynamic compilation on the fly of assets into a more static compilation. This will still compile your multiple stylesheets and javascript into single files though.

Without further ado, to the solution.

First you need to go into your config/application.rb and disable the application pipeline. You will look for the following line:

config.assets.enabled = true

and turn it to false

config.assets.enabled = false

Next, next go to your Gemfile and comment out the following 3 lines:

gem 'sass-rails', " ~> 3.1.1"
gem 'coffee-rails', "~> 3.1.1"
gem 'uglifier'

These are all the changes we need to make, but before we can deploy the application, we need to compile the assets, ourselves. This is where you will use the following line.

bundle exec rake assets:precompile

At this point use whatever tool you normally use to deploy your app (in my case, Capistrano). If you’re using Capistrano, don’t forget to commit the new assets that would have just been created in your public/assets folder.

Next you’ll need to log into your cpanel, or whatever actually controls your app, stop and restart it. Even if your deploy tool (like Capistrano) just said it restarted your app, don’t believe it, just restart it. This part caught me for a few hours trying to fix this bug. Even though Capistrano said it restarted the app, it still seemed to hold onto the old gems (sass and coffee) until I actually restarted.

With any luck, try your app now, and if your system is anything like mine, it will have worked.

Categories: News