Monday, July 24, 2017

Inspiration and Irritation

Recently I read an excellent post about Claude Shannon the father of the information age. In the post, the author summarizes his approach to problem solving as "Don’t look for inspiration. Look for irritation".

This is an interesting approach. I thought that as an IT professional, there are many things that irritate me. Most of them are personal views but others are generally accepted. The list is not exhaustive as I don't want to sound too grumpy.

Limited Connectivity

Turn on the Wi-Fi at a random place and you will probably see between 10 to 20 networks. Almost all of them are secured, you don't have credentials for either of them and rightfully you don't trust the free ones. So you walk a little until you get to a familiar place with a network you are registered to. Of course there are another 10 networks at this place but you only have access to one. After a while you have to leave this place, your device forgets this network and you must find another one a few meters further. So on the average there are 10-20 Wi-Fi networks at every place, idle most of the time and no user is connected 24x7. This is a total waste of bandwidth and user experience. It happens because network connectivity is not considered a resource but rather a bonus or a benefit like we have free Wi-Fi with your coffee. The equivalent for water would have been bottled water selling machines every 10m and no taps, fountains or pipe network. Of course that would have been unacceptable.

In the European Union Wifi4EU is a project for free Wi-Fi everywhere. It is a good step but it seems like putting bottled water selling machines every 1m. In the US they have a bigger problem to solve as net neutrality is threatened an issue much bigger than 24x7 connectivity.

Networks are resources and should be treated as such. We need free, fast, neutral networks everywhere.

The Digital Dark Age

Nowadays terra bytes of new information are generated every day and all sites try hard to provide real time services. What about the information of yesterday or the previous year or 5 years ago? Well, generally nobody cares. A good article you read and bookmarked last year may be still online, you may be still able to find a video from 2 years and you may still contribute to a discussion thread started some time ago. The issue is that past information becomes inaccessible and eventually is lost. This comes in two flavors:
  • technology: new technology does not try to be fully backwards compatible and we lose artifacts stored using older technology. Read this excellent post by Rob Pike for more details
  • archiving: almost all sites overwrite previous versions when adding new content and do not preserve the previous. Vint Cerf believes that can be solved in a generic way using existing technologies
This is important because it is about our heritage. Something that didn't work in the past may inspire something in the future. Since we have the technology to preserve and index everything we should do it on a continuous base. Nothing should be lost. Notable work towards this is done by the internet archive and the software heritage but it needs to be done globally by every site and provider.

Devices are not interconnected

Laptops, tablets, cellphones  are connected to the cloud and this is very good. Examples of daily and common use are very familiar: I enjoy my coffee and I have a good idea. I put it in google keep and when i open my laptop later at home I find it there. I am at work and a friend sends me a nice video. I can put it in pocket and enjoy it later on my tablet. I start writing a document. I can share it with my colleagues with google docs and check their changes and comments in real time.

However connectivity to the cloud implicitly means usage of only one device at a time. What if I want to use all my devices together? Well, in this case I am alone. I have to move from device to device, open apps on demand and upload/download data continuously, a very bad user experience indeed. Devices cannot cooperate together to give a better environment. This limits our possibilities significantly. Some usage patterns can be:
  • edit a file on my laptop and check urls fr it to the nearby tablet automatically
  • switch view of a video from my tablet to my laptop with just a click
  • see photos from past vacations on my laptop and my tablet automatically search and play music from that period
  • see current photos on my tablet and my laptop automatically generate artistic collages from them or fix them with filters
  • write a document on my tablet and my laptop stream a sound version of it in another language for practicing my skills
  • surf the web on my phone and my laptop generate a visualization of the graph
The possibilities are endless. My hope is that since voice interfaces are becoming common, all devices would hear the voice of the user and each respond differently depending on the task and the topology.

The web is not interconnected any more

The WWW was build and succeeded based on the power of the link. A web page should have references to other web pages. The other web pages need not have similar content and this is the power of the model. It works like the coherence of the human thought. A good book can make you think of paintings. A good song can make you think of travelling. A good article can make you think of politics. The links make the web simple and powerful and help organize and decentralize the information. Unfortunately the web has become a business domain and sites loose money if you leave them for another site, so there are not external links. In the cases that external information is needed most sites prefer to embed it or make a strong hint for it. It has become daily practice to read articles without links, mark interesting text snippets and right-click "search with google" to find additional information.

Extreme cases of limited interconnection are the "silos", sites like Facebook, twitter, Instagram etc. These embed all their content and not only they don't have or support links outside but make it difficult to point a link inside them to target small information snippets.

I loved the early days of the web where surfing was actually a learning process. Following links is like discussing a topic with others. Googling is like a presentation by a teacher. Both are needed but it seems we have lost the former. This excellent post by Hossein Derakhshan is a great summary of the bad situation we are in.

Beautiful web pages are hard to find

The average web page is
  • Bloated It has big overhead compared to the actual information content and if the connection is slow or the hardware a bit slow then the loading lag is noticeable. This happens mainly because nowadays web pages are not documents but rather programs that generate content.
  • Unreadable Few pages take typography, aesthetic aspects and accessibility seriously. Most of them want to include almost everything in the page to facilitate SEO and attract clicks and they make the reader a second priority. If google puts us first we are OK even if the page is badly designed.
  • Annoying Too much advertising and too much tracking. This affects not only the loading speed of a page but the whole user experience since as you surf we carry and see information about your actions on a previous page. A common example is book suggestions from amazon while you read an article on climate change.
I would like to add another aspect, maybe minor maybe not, web publishing for non-IT professionals. It is not easy to create a web site anymore. The requirements for a good site are many and a non-IT user does not have the technical background to cope with them. The solution are site-building sites or sites with predefined templates. They make it easy to publish content but they hide the details from end users. This is not necessarily bad but in the early days it was very easy to learn html and write your own page. I don't like that non-IT people became frustrated from the complexity of the web, stopped coding and started using out of the box solutions. I hope that the rising popularity of static site generators and cloud deployment will bring back people to coding, especially kids.

Operating systems have become irrelevant

During the day we use multiple devices and operating systems. My setup is android, iOS, windows and chrome OS. I use 4 machines daily with 4 different operating systems. Almost mechanically I press "update" when the notification comes and I get the latest version every time. So, what new features I get and in what ways my computing experience has improved? To be honest I can't tell. The computing world is nowadays the applications and they are the same on all devices and OSes. Most OS updates and new features are either shortcuts for common tasks or ports of popular applications to the base OS. New, exciting ways to use the computer are missing.

I think the computer is the most revolutionary machine ever invented and the ways it enhances human productivity and imagination are countless. However to get the best from it you need special coding skills. Out of the box the computers have become difficult and tedious to use. It is the job of the OS not of the application to give a sweet, fast and intuitive interface to the computer and there is a lot of work to be done in this direction. We need better ways to interconnect devices and applications, move and transform data around and make computers work, find and present data to the users proactively rather expecting users to request them on demand and leave for the computer only some decorations for the presentation. I think we must aim high on this like in the movies  and stop considering things like "C-t closes least recent active window" or "file explorer with custom colors" as innovations any more.

No comments:

Post a Comment