Category Archive: Other Articles

Why I won’t be getting a Lumia 900

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.

MacBook Pro unable to connect to internet after waking from sleep

The Problem

I recently I’ve been having some problems with my MacBook Pro.  At first, I would seem to get disconnected from the internet randomly.  After a few weeks, I finally figured out what the pattern was to the problem.

One morning sat down on the couch, opened my MacBook, and as was becoming normal, I was unable to connect to the internet. The AirPort icon on the menu bar was fully black (meaning that the signal was good).

So I went into the browser and tried to to the router address.  To my surprise, I could fully connect to router. I mean fully. I could log in. I could change the settings. I could ping different websites. It all worked flawlessly. But as soon as I went back to my browser and attempted to connect to a website, any browser, it would complain that I wasn’t connected to the internet.

I would turn off the Wi-Fi a few times, and eventually it would connect fully. So then an idea came to me: Maybe it was related to the fact that I just woke it from sleep. I thought back. Every time I could remember, I had just opened the computer, and it would have difficulty connecting.

So I tried it. I made sure I could access different websites. All signs were a go. Then I closed the lid, and waited for the status light to start flashing. After it did, I would wait a few seconds, and then open the lid. I logged in, opened Chrome, and tried gmail. Gmail is currently unavailable it would tell me. So I opened Safari, and tried again. Same story. After going to the AirPort icon turning it off and on a few times, it came back. I decided to try it again. Sure enough same story. So I tried it a few more times.

After having successfully reproduced this exact approach 6 times, I decided it was time to call Apple. I talked to a rep one day, who walked me through a few steps, that failed to get any results, and before we could go through everything, I had to leave for a meeting. I called back a few days later, and got a Wonderful rep. named Ryan. After 17 minutes on the phone, my problem was solved. I was ecstatic.

The Solution

So the solution to the problem was actually pretty simple. I post it here, so that it might help others (or me if the problem recurs sometime). Remember to back up before hand, as it is possible that you might lose something.

I would also recommend storing your Wi-Fi password on your computer (especially if your password is as complex as mine is).

Here’s what worked for me:

  1. Open Finder.
  2. From the Menu at the top, choose ‘Go’ -> ‘Computer’.
  3. Open your hard drive (probably called ‘Macintosh HD’).
  4. Open the ‘Library’ folder.
  5. Open the ‘Preferences’ folder.
  6. Locate the ‘SystemConfiguration’ folder (likely at the bottom).
  7. Drag this folder to your desktop (as far as I can tell, this is to back it up incase something goes wrong)
  8. Once the copy is complete, drag the original to the trash.
  9. In Finder, open Applications (If you don’t have it on the sideback, use ‘Go’ -> ‘Applications’).
  10. Open the ‘Utilities’ folder.
  11. Open ‘Keychain Access’.
  12. Select ‘login’ from the list of Keychains.
  13. In the list to the right, locate an object with the name of your wireless network.
  14. Select it and press ‘delete’ on your keyboard.
  15. Select ‘System’ from the list of Keychains.
  16. Repeat steps 13 and 14 above.
  17. Restart your MacBook.
  18. Once your computer has restarted, connect to your wireless network.

With any luck your computer will now no longer have issues with your wireless network. This worked perfectly with my D-Link DIR-655 router, on which I could reproduce the wireless network issues flawlessly. Since I performed the steps above, my wireless connection has worked flawlessly.

Update: If this has worked successfully for you, you can go ahead and delete the SystemConfiguration folder that you copied to your desktop. It was designed as a backup, and is no longer needed.

Best software for On-line Communities?

I’m Looking for advice as to what the best software is for creating online communities.

I’m currently trying to set up a Graduate Students’ Association in my Computer Science department at the University of Victoria.

After talking to a number of Graduate students in my department about what they think would be useful to them, I received a number of great suggestions. Based on the suggestions, I came up with 3 features that I think would be useful:

  • A Blog: Which will allow the Grad. Association to keep grad students informed about important upcoming events.
  • A Forum or discussion board: Will allow grad. students to discuss whatever they feel is important to them or their work.
  • A Wiki: This will allow grad. students to easily create useful resources for other grad students.

There are many possible choices, but it all seems to come down to trade-offs.

As A Service or Host your own

There are two major options for hosting the community. You can either choose to use an As a Service model, where someone else manages the infrastructure, or the Host your own, where you take the software and run it on an infrastructure you control.

The obvious trade off here is Control for maintenance and cost. By going with an as a service, you will decrease costs, and maintenance, but you also decrease your control. By hosting your own, you increase the three.

In the maintenance category, I would like to reduce as much maintenance as possible, as this will likely be run by busy grad students. At the same time though, if we lose all control, we are completely at the liberty of the service to decide what we can do, and how long we can keep it up.

Separate Services or an All-in-one

Again, it is possible that we can use a number of different systems (such as a blog system, a forum and a wiki), or we can find a system that does all three.

In this case we have a trade off between consistency and maintenance versus precision. Of course, if you use 3 systems, you have to deal with maintaining 3 systems, and if you have 3 systems, it is unlikely that the three systems can be consistent.

In the precision category though, any one system will likely be good at a small number of features, and will be less good a others. So by going three systems, they’ll likely be better at the particular thing they do.

For this, I’d like to make the ease of use as easy as possible. If it is really hard for the users to go from one aspect to the other, like the discusion forum to the wiki or the blog, they are less likely to do it, unless it is absolutely necessary. If it’s not possible to link to the other systems consistently, this will be particularly hard.

Community Advice

I’ve use WordPress for blogs before, and they work pretty well. I’ve also considered CMS systems like TikiWiki, but it appears to be particularly buggy. I’ve also used Drupal, and it’s particularly bad for maintenance (which makes me die a little inside).

So this is where I look for advice from the community. What software can you recommend?

How to collect a Network Log for Google Chrome

Are you having some weird networking problems and want to report a bug to Google Chrome? The most helpful thing you can do to speed up the process is get a network log so that the Chromium team can have a better chance at diagnosing the problem.

In this tutorial, we will walk you through how to collect a Chrome Net-Internals log, and a WireShark Capture.

Pre-requisites:

What is Wireshark?

Wireshark is a tool for collecting network traffic.  This will allow the Chrome team to get a better idea of what might be causing the network issues.

Reduce Background Noise

Before attempting to make a network log, it is important to try to reduce the background noise.  Normally our computers have a number of programs running in the background, many of which are connecting to external sources.  To give yourself the best chance for success, turn off all unnecessary programs, for the duration of the log.  After you finish, feel free to turn everything back on.

Collecting the Logs

To collect your network logs, perform the following steps:

  1. Close Google Chrome and all it’s windows
  2. Restart Google Chrome (if it isn’t already open)
  3. Open the Net-internals page in a new window or tab (make sure to leave this open) using the following address:
    about:net-internals
  4. Open Wireshark
    1. From the Capture menu, select Interfaces
    2. Find the Description describing your network interface (It will likely have the growing number next to it). Press the Start button to the right of this connection
  5. Return to Google Chrome
  6. Open a new tab or window and perform whatever operation you want to log (For example, go to gmail.com if you want to demonstrate a slow loading behaviour). Continue until you feel you have a sufficient sample (in the case that it never completes)
  7. Open the net-internals page you left open.
    1. Under Dump data press the Dump to file button
    2. This log will be downloaded to your downloads folder
  8. Go to Wireshark
    1. From the Capture menu, select Stop
    2. From the File menu, select Save As…
    3. Enter a descriptive File name (for example ‘gmail-capture’) and for convenience, save it to a location you will remember (such as “My Documents”)

You will now have both a Google Chrome net-internals log, and a wireshark log. Make sure to keep track of where you saved them, and when appropriate, attach them to the bug report.

If you have any questions about this tutorial, please let me know.

Are Google’s Services Running Slow in Chrome? Try Disabling Spdy

Update: After further testing, the issue seems to be with the NSS-SSL library, rather than SPDY, however the steps below will still likely resolve your speed issues.

Update #2: I am no longer having this issue. It appears to be some odd interplay between the NSS-SSL protocol in Chrome/Firefox and the Traffic shaper at my University, that has since been reconfigured. This means that it is now more important than ever that if you’re experiencing this issue, to report it to the Google Chrome team.

Are you trying to connect to your Gmail, and it seems to take forever to connect? What about Google Docs? Google Plus? All of the above? It might not be Chrome that is the problem, but actually Google’s SPDY protocol behind the scenes.

So what is SPDY? It is a protocol that Google uses, where it keeps a single persistent connection to Google for all of your Google Accounts information. This is utilized by a number of Google Services, including Gmail, Google Docs, and most recently Google Plus. When this is working properly, it allows Google to do what Google does best: Speeding up the web. However, when it fails, it will bring down your Google world, in a thunder of Loading icons.

It it Google Chrome?

The most important first step is it make sure that the problem is actually Google Chrome. To do this, try a different web browser, such as Internet Explorer if you’re on Windows, or Safari if you’re on a Mac.

If you tried a different web browser and the problem still happens, then it is likely due to a different problem, such as a slow internet connection. If however tried the same thing in a different web browser, and it worked fine, then it is probably Google Chrome.

Google knows about this issue (I know, because helped provide information for one of the bug reports), but so far they haven’t narrowed it down.

Collect a log

If you are finding that you have a problem like this, then it might be useful to provide some details to the Chrome team so that they can hopefully make it better.  At this stage, this is optional, but highly encouraged.  This will be your best bet at getting any Google Chrome issues resolved though in the long run.  If you are willing to collect a log, you can do so by following my tutorial How to collect a Network Log for Google Chrome.

The Fix

Disclaimer: This fix is only temporary, and your best bet is to comment on the open Google Chrome Issue for this phenomena.

The good news is that there is a solution you can use for the problem (although it is temporary, as I will cover after). This wasn’t discovered by me, but rather one of my colleagues (Christoph Treude). Essentially what you have to do is disable spdy and Chrome’s enhanced SSL, which can be done using the following steps:

Windows

  • Right click on the short-cut you’re using to start Chrome
  • Select Properties
  • Modify Target from
    • ...\chrome.exe"

      into

    • ...\chrome.exe" --use-spdy=off --use-system-ssl

      (note: the command line arguments have to go after the quotation marks)

  • Click Apply
  • Close all Chrome windows
  • Restart Chrome

Mac

  • Open the terminal (In your Applications -> Utilities folder)
  • Type into terminal to change to Chrome’s Directory using:
    cd /Applications/Google\ Chrome.app/Contents/MacOS
  • Rename Google Chrome to Chrome in the terminal:
    mv Google\ Chrome Chrome
  • Copy the following 3 lines for the contents of our execution script:
    #!/bin/sh
    # This will execute your Google Chrome with SPDY disabled, and set it to use your System SSL
    /Applications/Google\ Chrome.app/Contents/MacOS/Chrome --use-spdy=off --use-system-ssl
  • Type the following into the Terminal to make a file from what you just copied:
    pbpaste > Google\ Chrome
  • Type the following into the terminal to it so our new Google Chrome can run:
    chmod +x Google\ Chrome
  • Close Google Chrome using the Apple menu, or Command-Q:
  • Restart Google Chrome

If you had this problem and this solution worked for you, I would recommend you add your voice to the discussion on the bug, as during my last correspondence, they suggested that this might be a problem localized to my network (which it might, but I suspect it isn’t). This solution is only temporary, as if you end up creating a new shortcut somewhere, or you update Google Chrome, you will likely have to redo the fix, or the problem may come back.

Collect a Log (If you didn’t above)

If you found this solution worked for you, but you didn’t collect a log above, perhaps now would be a good time to do so.  However, first we will have to disable the fix above (as the problem will not exhibit itself while the fix is in place). Don’t worry, once you have your log, you can easily turn it back on using the steps above.

Disable fix on Windows

  • Right click on the short-cut you’re using to start Chrome
  • Select Properties
  • Modify Target from
    • ...\chrome.exe" --use-spdy=off --use-system-ssl

      into

    • ...\chrome.exe"
  • Click Apply
  • Close all Chrome windows
  • Restart Chrome

Disable Fix on Mac

  • Open the terminal (In your Applications -> Utilities folder)
  • Type into terminal to change to Chrome’s Directory using:
    cd /Applications/Google\ Chrome.app/Contents/MacOS
  • Rename Chrome back to Google Chrome in the terminal:
    mv Chrome Google\ Chrome
  • Close Google Chrome using the Apple menu, or Command-Q:
  • Restart Google Chrome

Collecting the Log on Both

So you’ve decided to help out? I’m glad, this will increase both of our chances at having this resolved.  As I mentioned above, you can collect your Network Log by by following my tutorial How to collect a Network Log for Google Chrome.

Submit to the Issue

If you found that this worked for you, you’re not alone, but unfortunately, as I mentioned above, this solution is only temporary, and you will likely need to redo it the next time you update Google Chrome, or change your shortcuts.  So perhaps now would be a good time to help Google Chrome find a long term solution.   There is already an open issue for Google Chrome about this phenomena, and you can easily submit your information to that issue.  If you need help doing so, let me know, but the Network Logs mentioned above would be highly beneficial to this process.

Could this be better?

So what do I think would be a better solution? For the most part, the average user doesn’t even know what Google Chrome is doing behind the scenes.

The solution above would work, but it isn’t exactly, user friendly. I suggested that in a case like this, perhaps after a few seconds of attempting to connect with SPDY (Google themselves have suggested that users spend less time at slow pages), and not getting any data (which Will Chan said was the case in my case), maybe it would be a good opportunity to say to the user that it’s failing to connect with one method, and to attempt connecting with another.

In this case, the system could try something like the solution above does, disable spdy and ssl, and try then. Sure it’s not a perfect solution, but unless you have to do something explicitly in Chrome (which few people do), this would probably stop you from Switching to an alternative browser.

In search of a New Side Project

So last weekend, I wrote on Google Plus about how I was looking for a new side project. Although I still haven’t decided on one, I did decide that as I find one, it might be fun to document the journey and the lessons learned.

Lesson one: Finding a side project is hard.

You always want to have something that is going to be meaningful, and perhaps even help people (it’s always easy to minimally do something that helps yourself, until you actively try to do this, then it’s next to impossible to notice any problems you are actually finding.

What I’ve figured out so far:

  • Probably something’s technology based.
    • It’s something I’m skilled at, so I might as well utilize that right?
  • Not necessarily software engineering based.
  • I’d like to do something that can help someone.
  • Having kids does not apply. I just don’t feel like I’m ready for kids yet.
  • I would be eager to incorporate some new technologies, if they apply, just for the experience:
    • iOS
    • HTML5
    • Windows Phone
    • Android
  • Although I enjoy the odd game, I am not a game designer, and would prefer something that helps with productivity, although I am open to suggestions.
  • I have both Windows and Mac machines at my disposal, as well as an iPhone and iPad.
  • Money is a bonus, not the goal.
    • I’ve run a small tech support business before. The money was decent, but it was rarely rewarding.
    • Previous side projects that I enjoyed were creating websites, and web based tools (like TweetSeeker) although I never really made any money off them. TweetSeeker was a work in progress related to a research project that got shelved. Since then, as no one else seems to use it, I just can’t get motivated to advance it.
  • This is to be thought of as a 20% time project (mostly Saturdays, or slow Sundays)

So if anyone else has some ideas, or questions that might help me narrow it down, I’d love the feedback. Comments, or emails are greatly appreciated.

As I mentioned before, I’ll write about the side project as it unfolds, and I’ll tag it as “Side Project” for easy finding.

Google+ should have Share defaults at the Circle level

Earlier this week, I heard about Googles latest social offering. After checking out all the videos and information about the Google+ Project online, I was eager to hop in and try it out. I quickly put my name in for an invite, and the. I waited. And when I got tired of waiting (a few hours, pretty sad), I started looking for people that had invites. I think it was the next day that I found a friend on Facebook had some, and I quickly leaped at the opportunity.

For the last few days, I’ve been using Google+, and I can quickly see the potential for this to become my member one social network. Hangouts are pretty awesome, and though I’ve only used this a little, I could see the potential for this to replace Skype plus. One of the biggest sells to be though was the ability to select groups of friend with whom I could share content. This made some much sense to me, that it wasn’t until this morning that I found a problem with it.

It wasn’t a huge problem, it just caught me a little off guard at first. When you first post some content on Google+ you select a group that you want to share it with. For example my wife shared a few photos from a recent trip that we took. I thought these were pretty cool, and I might want to share them with my colleagues. To my surprise, I did. It was kind of odd really, it seemed clearly like a bug. But after checking the help dialogs, I found that this was in fact intentional. You could on the other hand disable sharing on a post by post basis.

A friend of mine brought up a good point. Enough if you were to disable the ability to share a post, picture or otherwise, they could just as easily screenshot it and share the screenshot, or just telling others what you said.

This is where I believe the basis of any true trustworthy sharing should come in.

You should never share anything with someone who, knowing your wishes, you can not trust to abstain from sharing beyond those wishes.

But what if someone didn’t know it wasn’t ok to share with others? Can they really be to blame? Of course not. Although we can all believe in common sense, there are situations where a user might feel that certain content is worth sharing, but doesn’t realize this is ok. But setting every post to disable sharing can be very tedious.

But what if there were a better way? You probably have social circles which which you would be more comfortable sharing more personal details than you would with other groups. These personal details you likely wouldnt want being shared. So why not be able to set the sharing defaults based on your circles?

Although it can’t replace the trust rule above, it can augment it. The sharing link would then act as a flag or a signal to your circles. Share link is there would mean “feel free to share this”, and no share link would imply “please respect my wishes and not share this”.

This is just my idea for what could make Circles on Google+ even more useful, but I would love feedback.

Out with Drupal, In with WordPress

For anyone that checks my site regularly, I’m sure you’ve noticed some fairly big changes over the last day or so.

I recently decided to move to WordPress, over my old Drupal site. There were many reasons for this. Drupal is an immensely powerful CMS, but with great power, comes great responsibility. Specifically, I found that there were frequently critical updates that were required for my Drupal installation, and it was my responsibility to take care of them. This involved downloading the latest versions of the Drupal core and any modules, going on to my home laptop, opening Cyberduck (ftp), connecting to the server, backing up my database, putting the site in maintenance mode, uploading the new versions of any modules, then running the database upgrade scripts. If it sounds like a lot of work, believe me, it is.

Even after all that work, I was never really happy with my installation. It always felt like it was slow, and people would comment that my site is slow. I was constantly looking into ways to speed it up, and eventually I came to the realization that I was putting more time into maintaining my Drupal installation than I was putting into adding new content to my site. If you ever find yourself doing this, run…

I started to look into alternatives. I had worked with WordPress before and it seemed to work well, but I figured I would check to see if anyone else had recommendations. I sent out a tweet, and only received 1 response.  Christoph told me that he had been using WordPress for a while and it had “Practically no maintenance effort”.  That was just the nudge I needed (thanks Christoph). To my surprise, many things are so easy on WordPress, that I was able to even install a number of Plugins I needed, from my iPhone!

So all my content is now up on the new site, although the urls have all changed (ya, WordPress takes care of that, on Drupal I did it mostly myself, but I know, it too could be automated on Drupal). So, welcome to my new home online.  I hope that you find everything you’re looking for.  If not, let me know (contact info on the right side), and I’ll do my best to fix it up.

So It Begins

I'm currently thinking of starting a new blog up. Of course, I'm not looking for something that I will be updating all the time. But I'm looking for something that has semi-professional content that I will want to be keeping up and keeping active for an extended period of time. There are lots of things I would be interested in making available here, computer advice, useful information, all that fun stuff.

I'm always looking for feedback though. Comments, advice, all are welcome.