When one tries to use Facebook Messages from a browser on a phone or tablet running a relatively recent Android, the website (m.facebook.com or touch.facebook.com) will open the Google Play store. Some of us prefer using browsers and avoid installing apps when possible. Unfortunately for us, Messenger does not offer a mobile website, only a link to download the app.
Luckily for us, there a are a few tricks that will help get Facebook Messages working from a browser on Android.
The trick to avoid Facebook’s nagging is to enable “Request Desktop Site” in Chrome Menu. The explanation of what this option does is available on Stack Overflow.
Firefox also has the “Request Desktop Site” but, unfortunately, it doesn’t do the job; you actually get the desktop version of Facebook and it’s quite unusable.
One option is to use mbasic.facebook.com. Unfortunately, mbasic is neither as functional nor as pretty as m, let alone touch.
The way to get Messages working on m or touch is to pretend to be running a version of Android that is unsupported by the Messenger app. In my experiments, anything older than 4.4 will do the trick, so I picked 4.3.1. You can pick your poison from Wikipedia, but bear in mind that using very old versions might get Facebook mobile website to use workarounds which are no longer needed and will break stuff if used.
To pretend to be using an old version of Android, we will alter the Firefox’s user agent string. In Firefox, go to about:config. Add a new String option called general.useragent.override the and set it to e.g.
Note that this string will not be automatically updated when Firefox is updated, so you should take care to update it manually. For more information about the user agent override option, check out this Super User question.
Watching streaming events is cool, but having them in your city is even cooler. I was invited to speak at the local Skeptics in the pub on whether the proprietary technologies are dying. Aside from being happy to speak about the open source in public, I was also happy to speak about the computer science more broadly. Too often people make the mistake thinking that the computer science researchers look for the better ways to repair iPhones, clean up printers, and reinstall Windows. Well, in some way we do, but we don’t really care about those particular products and aren’t really focused on how to root the latest generation of Samsung phones, or clean up some nasty virus that is spreading.
That isn’t to say that any of these things should be undervalued, as most of them aren’t trivial. It’s just that our research work approaches technology in a much broader way, and (somewhat counter-intuitively) solves very specific problems. For example, one such overview would be to look at the historical development of Internet protocols at Berkeley in the 80’s and later; one such problem would be the implementation of Multipath TCP on Linux or Android.
Short version of the presentation is: computers are not just PCs anymore, but a range of devices. Non-proprietary software vendors recognized this expansion first, so open technologies are leading the way in many new areas (e.g. mobile phones and tablets), and have also taken the lead in some of the more traditional ones (e.g. infrastructure, web browsers). The “moving to the open source” trend is very obvious, at least in software. However, even in software, the proprietary vendors are far from being dead yet. Regardless, there are two aspects of the move towards the open source technologies that make me particularly happy.
First aspect is that, with open technologies taking the lead, we can finally provide everyone with the highly sophisticated tools for education. Imagine a kid downloading Eclipse (for free) to learn programming in Java, C, or C++; one does get to experience the real world development environment that developers all around the world use on a daily basis. Imagine if, instead of the fully functional Eclipse integrated development environment, the kid got some kind of a stripped-down toy software or a functionally limited demo version of a software. The kid’s potential for learning would be severely restricted by the software limitations. (This is not a new idea, most people who cheer open source have been using this in open source advocacy for many years. I was very happy to hear Thomas Cameron use the same argument at 2015 Red Hat Summit welcome speech.)
Second aspect is that LEGO blocks of the software world are starting to emerge in a way, especially considering the container technologies. Again, imagine a kid wanting to run a web, mail, or database server at his home. Want to set it up all by yourself from scratch? There are hundreds of guides available. Want to see how it works when it works? Use a container, or a pre-built virtual appliance image, and spin a server in minutes. Then play with it until it breaks to see how to break it and how to fix it, preferably without starting from scratch. But even when you have to start from scratch, rebuilding a working operating system takes minutes (if not seconds), not tens of minutes or hours.
When I was learning my way around Linux in the 00’s, virtualization was not yet widespread. So, whenever you broke something beyond repair, you had to reinstall your Linux distribution or restore it from a disk/filesystem image of some kind. If you dual-booted Linux and Windows, you could destroy the Windows installation if you did not know what you were doing. Finally, prior to the Ubuntu and subsequent Fedora Live media, installation used to take longer than it does today. And if you think further and consider the geeks who grew up in the 90’s, it’s easy to see that they had even less ease of use in open source software available to them. Yet, both 00’s and 90’s generations of geeks are creating awesome things in the world of the open source software today.