Recent Computer Related Events

The last few months have been crazy.

I’ve had a couple of job interviews with tech companies in California, attended a BB10Jam, released a couple of playbook apps, started on some side research projects at school. So this post is all about talking a bit about each of those things.

Job Interviews in Grad School
If you are like me and don’t like to say no to anything, you’ll probably go along with the whole interview process – just to see where it takes you. Also if you are like me and a busy grad student – you probably will not have time to prepare properly for the interviews. This is probably a big mistake (or maybe not). From my perspective, the technical questions in the interviews went pretty well when they were directly in my areas of expertise. As soon as they meandered to peripheral areas, things got a little ugly. Worse still was the coding questions. While I do try to keep up my skills in this area, grad students (particularly PhD) students in comp sci aren’t always well known for being code monkeys. We spend most of our time reading papers, proposing algorithms and mechanisms for solving problems. We then either 1) Hire an undergraduate student for the programming or 2) Make use of as many open source tools as possible and “macgyver” them into suiting our needs. In the extreme case we may code some specialized tool for what we need as well. So as you can guess, my coding skills were rusty. If I were to prepare in the future, I’d focus on this for as much time as I could before starting the interview processes. But since these interviews all contacted me first, that wasn’t an option.

Despite all the doom and gloom in Waterloo these days about RIM, I still like to develop apps for the Playbook for a few reasons. 1) RIM lives where I live. 2) I got a free Playbook at a conference. 3) The AppWorld is not saturated with a million of the same type of app yet.


So after developing a couple of apps I noticed they were having a BB10Jam here in Waterloo and went. The event was really good. The people were friendly and nice, and it was much less stuffy than some of the previous RIM events I have attended. Maybe it is a sign things are starting to reverse. Beyond just that though, the platform looks pretty good. I also got a developer device and am working on some apps for it now. The biggest selling point in developing for them right now for BB10 is the $10,000 reward for any app that can make $1,000 in the first year. Also at the event there were many stats showing increasing numbers of developers and apps in the store which all sounds good. Another interesting bit of info was that BB users are more likely to pay for their apps compared to other platforms. All of this makes it increasingly attractive to develop for the platform. So at the end of the BB10Jam I came away pretty excited to get at it. Just need to find the time now!

BB Playbook Apps
If you have read this blog previously, you may noticed something about one of my apps. The first one I made was a telnet application. I had the intention to also include ssh, but have not had the time to include this bit of code yet. The biggest challenge with that app was developing a console library for displaying the text. At the time Cascades was not available yet, and this type of thing was a bit tricky. There’s more info on it here: The app is available here for free on the appworld:

The second app I created is a web server. The inspiration for this was that I wanted to be able to serve images from the camera onto a website hosted on the playbook. This way you can leave your playbook setup as a sort of security camera. So the first step was creating the web-server to serve the content. Right now it just supports serving static content – no php, perl, python etc, but maybe in the future. The next step will be to hook into the camera and serve up a continuously changing image that is polled from the camera regularly. The app is available here:

Side Research Projects
The last thing is the side research projects I have taken on in the past couple of months. I have been collaborating with researchers in the math department on two projects. First is a cognitive agent project. In this project we are interested in the intelligence required for a creature to cross a busy street. The first creatures are oblivious to the conditions in which danger may exist so they cross the road. As some of them are hit, the creatures which follow can observe the conditions and avoid crossing. Eventually they start to learn when it is safe to cross. The focus of the work is the underlying learning mechanisms for this problem.

The second project I am involved in is a vehicular traffic simulation tool. An existing tool was developed several years ago, however there were some shortcomings in the model. The model is based on the Nagel-Schreckenberg traffic model, however the ramps on the highway were only one cell. Because of this limitation, it becomes difficult to properly simulate certain highway configurations such as clover-leaf ramps. My recent work on this project has extended the model to address this limitation.

Upcoming PhD QE Progress

So I’ve been doing my PhD for over two years now, and I haven’t posted a reflective “state of the thesis” post in quite some time, so here it is. I have maxed out my 50 pages (not included ToC and references) for some time now, it’s just been in the process of revision for the last month or so! I have more or less settled on what my research actually is now and am getting a clearer picture of it in my head all the time.

Officially the topic is “Radio Resource Management for Quality of Service in Heterogeneous Wireless Networks”. This is quite the mouthful, I know. Really what it boils down to is: Making various wireless technologies (Bluetooth, WiFi, WiMAX, 3G, 4G, … , etc) seamlessly work together. Many devices are capable of connecting to many of these radio access technologies (RATs), but often it is not seamless. What do I mean by this? Well suppose I am inside a university building, deep in the basement (where they tend to put CS students :P) where there is no mobile reception (3G, 4G etc.). I start downloading a large file, or call someone via wifi. Now I want to walk to my car because it’s time to go home for the day. Many networks now are not able to handle this, and it is interrupted after you change networks. Furthermore, you often have to manually tell the device you want to leave one network and join another. Seamless means this should all happen without you noticing. This is the focus of my research.

The biggest problem that I am concerned with is called handoff or handover. This is when the switch between RATs occurs. Traditionally, this also occurs when a mobile device switches from one tower to another, and it usually involved predicting the motion of the device along with some other factors for Quality of Service (QoS). For a vertical handover, we may or may not need to predict motion. If the heterogeneous wireless network (HWN) is densely covered, many RATs are available throughout the coverage region (as opposed to a sparsely covered where a given location may have access to one technology at once). In a dense HWN, the problem becomes a multi-criteria question.

  1. Which network is most economical for me to connect to?
  2. Which configuration of (network, client) pairs is most profitable for the operator?
  3. Which network is able to provide me with the required QoS?

More technical details to follow…

Why Blanket Wireless Coverage in Waterloo Failed, and Potential Solutions

Today the KW Record ran an article entitled “Blanket Wi-Fi plans unplugged in Waterloo Region and Guelph, but growing in Stratford”. I thought I’d throw in my two cents since this issue is very related to some of my research. Overall to me, the biggest factor that contributed to the failure of blanket wireless access in the Region of Waterloo was the cost of the service for users. From what I remember, it was on part with many high speed Internet plans. Why would someone pay the same price to have potentially slower, less secure service than competing wired services?

The Atria plan used large WiFi cells, with very expensive antennas (see the apartment building near University Plaza, which I believe was one of them).

Many other cities (much larger ones) have been very successful in providing blanket WiFi, using a completing different coverage model and cost model. The best example is San Francisco where a company named Meraki provides free wifi for over 100,000 people using their Mesh Router devices. These devices cost between $399 and $1500 each, which is still expensive, but likely much cheaper than anything used by Atria. These devices likely have much lower range and handle dense areas compared with the atria cells which seem to be designed for large areas, and require many people to subscribe to pay for their costs. The argument in the article that WiFi coverage in metropolitan areas is difficult seems like a terrible attitude to have for an area that has a reputation as a high tech leader. San Francisco likely has much greater challenges in this regard compared to our tiny city.

Example coverage map in San Francisco

Instead of using these expensive devices, much cheaper devices such as linksys wrt routers could be used. These routers support linux, and because of this much customization is possible such as mesh networking. While these devices are less reliable than the previous more expensive solutions, it may be a good way to at least get the network started cheaply. Additionally, areas which are not used by as many people could be covered with cheaper routers, while areas with more dense traffic may be covered by expensive ones.

The argument in the article that WiFi networks are unnecessary because of cellular networks is ludicrous! If that is the case, why are every smartphone and other device including WiFi radios in them? It’s because data on cellular networks is way to expensive. Any place where a device can get free or low cost WiFi should be used instead of the cellular network. One large problem with this at the moment, however is that it is not seamless to go from a cellular network to a wifi network. For example, it is often not possible to carry on a phone call while switching networks, or continue downloading or steaming without interruption. This will change with much of the research in heterogeneous networks.

One potential model that hasn’t been explored much is community wireless networks. In this case, devices could be provided to anyone willing to provide access to their own home network for the community. The incentive could be either donations from users, or a very small fee (2 – 5 dollars per month) which is distributed to providers. Additionally, anyone who provides a part of the network is able to get on free to other parts of the network. Of course, there’s nothing to stop the larger companies like Rogers and Bell from creating the same type of value added service. Since so many people already have wireless in their home using Rogers and Bell, they could create some type of login where you take your bandwidth quota with you and have access to anyone else’s network who is also participating. This way, you are not using their bandwidth cap (only their “speed” – which may introduce a whole other range of problems :P)

BWCCA 2010 – Adaptive Mixed Bias Resource Allocation for Wireless Mesh Networks

Today I presented a recent paper on “Adaptive Mixed Bias Resource Allocation for Wireless Mesh Networks” at the BWCCA conference in Fukuoka Japan. The paper is authored by myself and Thabo Nkwe from the University of Guelph. The abstract is below:

In wireless networks, conditions may change rapidly and unpredictably. Often wireless networks are not designed to adapt to these changing conditions and perform poorly when they become congested. The multi-hop broadcast nature of wireless mesh networks amplifies the problem of poor wireless performance. Mixed bias scheduling has previously been applied successfully to wireless mesh networks however, it still suffers from similar problems when conditions change rapidly. In this work we propose an adaptive mixed bias (AMB) algorithm which uses a tabu search approach to change based on delay and dropped packets in the network. The proposed scheduling approach consists of three important algorithms, namely, the tabu search algorithm, move generation, and utility function. The adaptive mixed bias approach is compared against IEEE 802.11 and the non-adaptive mixed bias approach. The performance is evaluated using the packet delivery ratio and average end-to-end delay metrics.

Here are the slides from the talk: BWCCA-NGWMN2010-final (pdf)
and here is the link to the pdf from the conference: Adaptive Mixed Bias Resource Allocation for Wireless Mesh Networks (pfd)

ACM Events & Website

Recently the ACM Student Group at the University of Guelph (which I am currently chair of) has been busy with some of our first events. The first was a programming contest modeled after the ACM-ICPC. The event was briefly featured in the fall issue of XRDS (crossroads magazine) (look for the article “ACM Chapter News: From Ontario to Hyderabad”). The purpose of the event was to gain enough interest within the department to field a couple of teams for the annual competition. Our school has not had a team for many years. Overall the event was a success. We managed to attract two sponsors: Freshbooks and the School of Computer Science at the University of Guelph who provided us with great prizes and t-shirts and refreshments for the participants. We now have many students interested in the programming contest teams. Below are some of the pictures from the event.

ACM Guelph Programming ContestACM Guelph Programming Contest
ACM Guelph Programming ContestACM Guelph Programming Contest
ACM Guelph Programming ContestACM Guelph Programming Contest

On top of the programming event, we have begun a speaker series at the University of Guelph. The goal here is to get enough people coming out so that we can eventually host an ACM distinguished speaker. Our first speaker was Dr. Dan Ashlock from the department of Mathematics at the University of Guelph. His talk was on video game content creation and was quite interesting. The slides for the talk are available on the ACM guelph website. The turnout was very good for the first talk and we hope it continues in the future. (for anyone interested in attending we also provide snacks!) There are more talks scheduled for throughout the semester from professors, students and industry speakers.

Lastly, we have launched a first version of our website: The main purpose of this page is to display upcoming and past events. In the future we also intend on having a vote available for the distinguished speaker we are inviting to Guelph as well as the ability to vote on dates for upcoming events so that we can get the highest attendance possible.