Driving between dead zones of opposite carriers is surprisingly difficult to do - would have been a great test, though!
I did test walking down the street away from Wi-Fi - the transition is much smoother, but I was only able to get it down to about 2 seconds or so. And that was when I turned around and ran back toward Wi-Fi when it started to switch, so that the call remained good on Wi-Fi until it actually cut over.
Yeah, finding the right dead zones would be pretty hard. Especially if you are somewhere with relatively good signal. Would be a very interested in the results.
Disappointed with that 2 seconds though. I was really hoping for smoother. Though I guess that is why they are still invite only. They are still working on the technology. I was leaning towards getting Fi when the new Nexus comes out, but this makes me think it might not be ready yet.
The counterargument to an all-software solution is that if you switch the profile on the Fi phone, it also remains switched if you move the SIM to another device. So however selection was made, it is 'sticky' across devices.
That's why I guessed it was a paired SIM app + intelligent Android app - but I couldn't verify that, so you could be correct.
Usually radio stuff happens on a dedicated processor which has limited communication with the application processor that runs Linux/Android/Java/Userland. (think like a modem, in some cases they are literally controlled with serial links and AT like text commands).
I believe that profile swaps would be sticky, but actual processing on the SIM is going to be extremely limited and active management of the radios most likely will take place in baseband firmware.
Android talks its baseband processors by interfacing with a daemon called rild (Radio Interface Layer (Library?) daemon) which loads a binary blob library which actually does the talking to the baseband chip.
(author here) I didn't have a chance to test how the VPN works, but even if they were using MPTCP the switch wouldn't necessarily be seamless.
Especially how they are using it now - which hands over a Wi-Fi call (which is data) - to a cellular voice call (not data). It's a subtle point, but calls over cellular are not data, so they are not using TCP/UDP/MPTCP/etc.
From what I've seen, the Canadian stipends range from a low of about $15k, for those on research assistantships (paid out of their supervisor's research budget) or on provincial scholarships, to a high of about $21k (NSERC or other tri-council federal scholarships). There are a limited number of higher-paying tri-council scholarships as well.
Some universities will top up a federal/provincial scholarship (Waterloo tops up by $10,000), and teaching assistantships are available as well. However, part-time work hours (TA or otherwise) are usually limited by the terms of the scholarship/assitantship, so there is a limit to how much a student can reasonably earn while doing a degree (NSERC limits to 10 hours worked/week, the expected hours for a TA).
Tuition is paid out of the student's stipend amount, though it's often quite a bit less than undergraduate tuition in CS and similar programs. My fee bill dropped in half when I finished my BASc and started an MASc.
Code review. Oddly enough, it wasn't so much the issues that were raised by the reviewers that made me a better programmer (though they certainly helped), but the knowledge that every aspect of my code could be inspected, and I'd be expected to fix it, that forced me to double- and triple-check my work before sending it off. Since that time, even when I'm working on personal projects, I find myself coding defensively, and will often write sections of code a couple times until I'm satisfied that it is unambiguous, correct, and clear.
This has helped immensely when I've gone back months later and tried to figure out what I was thinking; now, it actually makes sense!
I did test walking down the street away from Wi-Fi - the transition is much smoother, but I was only able to get it down to about 2 seconds or so. And that was when I turned around and ran back toward Wi-Fi when it started to switch, so that the call remained good on Wi-Fi until it actually cut over.