RSS FeedWhat will cell phones look like in 2020 – Part III
Yet another notion of what cell phones (and some of the technology accompaniments) may look like in year 2020.
A boarding pass, toner for your printer, the USB charging cable and the tooth brush
Being on the road every other week is a tremendous practice for keeping your travel bag ready. During the last 5 weeks, I have traveled some miles, some countries, and every single time left about 20 minutes to pack. That is fine, only if, you don’t need to print something right before your pickup taxi arrives at the door! If you do need to print something (say boarding pass), then suddenly you get into the loop of printing, running to the basement to pickup your printout to realize that your printer may be out of toner (or ink!). [What is the difference between toner and ink, you may ask, and then I might be forced to point out that toner is a powder, whereas ink is liquid, and while both are sold in cartridges, toner is usually more expensive than ink, blah, blah, blah.] Before you know it, the toner for your printer has somehow gotten the same priority in your travel planning as packing the toothbrush, chewing gum, the passport and the boring something to read while all electronics equipment must be switched off.
Anyhoo, if you do use toners, then one of the best brand names for toners is of course the Brother toner. [Brother brand, or Buraza Kogyo Kabushiki-gaisha, incidentally dates back to 1908 and made a name for itself using its multi-function printers!]
Rather than being penny wise and pound foolish, I find it much better to stick to high quality cartridges. For example, if you are using other HP products, you might as well bite the bullet and get original HP ink cartridges from some supplier of genuine HP products like the hp 564xl wherein you can buy black, cyan, magenta and yellow cartridges.
And yes, while there is no guarantee that the blue color that you see is the same as the blue color that I see
but if you buy good printer and good cartridges, at least the blue color that you see today will likely look similar to you next time you order the same cartridge. And while I don’t have answer to the perrenial question of theory of colors, at least I can point out that cyan, yellow and magenta are used as 3 primary colors in printing instead of red, green and blue based on subtractive coloring instead of additive coloring. In simple terms, cyan, yellow and magenta dyes and inks absorb some wavelengths allowing others to be reflected and giving the object the “subtracted” color starting from white light. If all three dyes – cyan, magenta and yellow are mixed, then all wavelengths get absorbed, leading to black color, which stands for K in the CMYK color system.
Continuing Android Frustration
About two months after my move from BlackBerry to Android, I am reaching the following question: “Why are you using Android – are you a developer?” Let me explain – essentially, Android is Google’s selling platform as much as iPhone is Apple’s and BlackBerry is RIM’s. Google really wants you to use its online services, and they cannot really be reconfigured without rooting it (hence the reference to being a developer). You cannot get rid of pre-installed apps (such as Qik video chat) without rooting the phone either. Synchronization with Outlook is painful, and makes me really miss BlackBerry Desktop Manager. (I know that in the cell phones of 2020, I hypothesize that the synchronization problems will be non-issues in year 2020, but year 2020 is not when I am writing this review.)
There are a few other problematic things with Androids: 1) There is no way to control the data usage when roaming. So, you just need to keep switching the network on/off. If you leave it on, you could end up paying hundreds of dollars over 3/4 days, of course, depending upon what apps you have on. 2) YouTube app suddenly stops showing some videos whenever it likes. Restarting the phone plays the same videos without any problem. 3) Email coolly stops working whenever it wants – restarting the phone fixes the issue.
So, essentially, my Android is a fancy camera, a mobile router, a note talking app, and occasional video watching device (when phone is cooperating).
When again is the new BlackBerry touch coming out?
Smarter Cities
Smarter Cities (page 42) in the September 2011 issue of Scientific American does a good job of explaining crowd sourcing in Transportation context and comparing it to infrastructure based approach, “An ideal beginning is to leverage the growing array of smart personal devices we all weild and recruit people as the sensors of a city rather than relying on formal systems embedded into infrastructure. The traffic function on Google Maps is a good example. Instead of building a costly network of dedicated vehicle sensors along roadways…”.
This approach is very consistent with my previous experience of handling traffic congestion issues, especially those with a strong freight component to it, since the freight traffic often has a regulatory mechanism that is easier to interface with compared to passenger traffic. This YouTube video does a good job of explaining that. ITS has come a long way for cities, but many many more improvements can be made, if some more decisions can be made dynamically, as this paper explores.
Code Reviewers’ Pet Peeves
As a code reviewer, certain things tend to bother you more than other things. Here is the list of 3 things that bother the @*(# out of me.
- Using code as the revision control system: Developers tend to comment out code, not delete it. Call it pride of authorship or something else, but it is difficult to delete that excellent, eloquent, functional piece of code that was relevant before your product/project manager decided to change the requirements completely (and completely out of blue, barely x hours after lauding your excellent work!). The main justification that the developers tend to give is, “Well, what if we want to add that feature back?” Well, Joe, no, we are never going to bring that feature back! Never.
Never, ever. Because we never change our mind. But just in the slimmest possible lemon peel of a chance that we do bring that feature back, then we will use the RCS to go hunt for that piece of code, or better, you will redo it from scratch! You wrote such good code the first time around, that I just shudder in awe of the future code that you will write when you have already written that once. So, for now, stop using code as your RCS, be brave and delete the code. If we have to give Developer Medals of Honor (DMoH), then, that should be awarded to the brave developers who have written something fabulous and deleted it from their code when requirements changed, thus relegating that phenomenal piece of code to the deathly hollows of the RCS, and done it without evincing pain. - Using naming conventions that are beyond wrong: This one causes no visible problems, other than sometimes befuddled customers or higgledy-piggledy users who are confused that the browser bar is showing “AddInvoice.jsp” or something similar, when they were clearly trying to edit an existing invoice. Horror of horrors! The customers are just not adept at recreating the thought process of the developer Alice when she was creating the page the very first time, before the first invoice existed at all! So, Alice conveniently called it the AddInvoice page, and since she is a good developer who follows the reuse principle, Alice decided to reuse the same page for editing an invoice. Alice, imaginative as she is, did not consider the possibility that a glasses, jeans/t-shirt wearing user would actually notice the URL when using a part of the application. Clearly, there is no shortage of horror movies in the software world.
- Using single liner if else blocks: This one is the easiest of the problems to fix. Just make this a hall of shame qualifier in your team (or a compiler error in your IDE settings).
No one should write if else logic that does not use curly braces to wrap the pieces of logic that go inside the if and the else blocks. This really is just a code format issue, but the number of times that I have seen this cause sudden bugs to appear in the version X.0.1 when version X.0 seemed to run absolutely fine is far too many to let this go by. Too many times, a developer will add a log statement to the first line of the else block, entirely changing the meaning of the block. This one should be considered the one-liner joke equivalent of the software comedy genre.
Apps