Tuesday 16 December 2014

Should Humans Learn To Count in Hexadecimal?


Computers use a binary or base-2 counting system for reasons that are beyond this post. Since binary numbers are large to write, programmers adopted larger base systems that could directly represent the bits, namely octal (base-8,3 bits) and hexadecimal (base-16, 4 bits) with hexadecimal more commonly used. Two hexadecimal digits represent a byte and other computer words all have a number of bits that can be divided evenly into bytes.   For example, 32-bit address is 4 bytes or 8 hexadecimal digits. To write these extra digits, A-B-C-D-E-F is used, representing decimal the numbers 10-11-12-13-14-15 and to make the distinction clear numbers are often prefixed with 0x or #.
Decimal numbers, or base-10 is what  humans mostly use and while it seems logical when looking at our hands, unlike computers, using this system is arbitrary.  Humans can use any base system (see below). The result is that computers have to convert the base of numbers that are displayed to the users and also convert numbers that are entered by the user.   While this is not difficult, this extra step itself can create issues that need not be created.
One of these issues is rounding error.  In both systems 1/3 cannot be represented exactly, as the best that can be done in base-10 is 0.33333... and hexadecimal (and convertible to octal and binary), the number is 0x0.5555...  There are also numbers that can be represented in decimal but not hexadecimal.  For example, 0.1 is 0x109999....  While people easily understand the issues with base-10 figures, such as seeing a graph with three 33% and knowing they really add up to 100%, issues with this conversion are often not noticed or create odd numbers such as 0.9999 when people expect to see 1.
Another issue is that many things in computers are limited by the binary system but with base-10 the limitation seems arbitrary.  Take the RGB colour values used by many programs, including photo editors and CSS.  The user can only enter 0 to 255.  There seems no rational reason that they cannot change the third digit 255 to 256 unless the user realises that it really is a two digit hexadecimal number.  Then they would understand clearly that  0xFF + 0x1 = 0x100, a three digit number too big to fit is the two digit space.
A high point is that the cost of learning is minimal because people already have the tools to use hexadecimal numbers.  For example, to calculate 0x4D + 0xC5 using elementary school techniques:
  • Add 0xD + 0x5 to get 0x12
  • Carry the 0x1
  • Add 0x1 + 0x4 + 0xC and you get 0x11
  • Carry the 0x1 again and since it is the only number the first digit becomes 0x1
  • The answer is 0x112
While there is a necessity for new symbols and vocabulary, people also no longer using Roman Numerals (base-1 with compression?) and have also switched to the Metric system.  As computers are now the primary tool used in mathematical calculations, it seem only prudent that humans consider using the native numbering system of computing when doing math themselves.



Wednesday 3 December 2014

The Desktop Metaphor No Longer Makes Sense


The desktop metaphor is meant to covey to the user that the files and folders on their computer are similar to the files an folders on their desk.  In addition, the work that the user does on their desk is similar to how they work on a file when it is open in an application.  However, when introduced computers were very large (and often on the desk) and monitors were using CRT technology. Even notebooks took up a monitor sized footprint on the desk. As a result the computer was not just another work area, it actually replaced your physical desk with a virtual one.
In the last decade, CRTs were replaced by flat screen monitors, often more then one.  Because of their smaller size they leave useable space on the desk and many can even be directly mounted to a wall (if the desk is against a wall). Therefore, and especially with multiple large monitors, your virtual desktop is less like a desktop and more like an interactive wall above the desk with your physical desktop available for traditional, non-virtual uses.
As a result the concept of the desktop seems to be becoming less relatable then it once was and new form factors like the tablet are making this detachment even worse.   The virtual world seems to be expanding into the physical world as people can now walk around with windows that before were limited to their computer screen. The advent of the cloud and networking has also changed the ways people store and move files, with the expectation that they are simply everywhere.
What is needed is a successor to the desktop metaphor that can capture the new ways of working in this physical/virtual world but still be applicable when applied to the contemporary desktop.

Thursday 13 November 2014

Idea: Add .localhost,.lan,.vpn,.ian and .wan to the DNS standard


An important part of the IPv4 protocol is that there are ranges of addresses that are reserved and cannot be used on the Internet.  These include the localhost address 127.0.0.1 and the ranges for LANs, such as the address in 192.168/16 that are commonly used with retail Internet routers when assigning LAN addresses.
These addresses are critical in making the Internet work since they allow the Internet to easily coexist with private networks, especially when using standard devices.  For example, every router sold by a company can have an admin address of 192.168.0.1 without interfering with other routers of the same brand. However, while there is support for naming devices on a network, a major problem is that unlike with IP addresses, DNS does any robust conventions to prevent conflicts with internal networks.

This lack of naming rules has caused problems as new top level domains are conflicting with names of internal resources and disrupting access. Before administrators only had to worry about a small set of conflicts, such as “com” or “ca” but now that anything can be a TLD, any name could potentially conflict with something on your network.  In addition, the .local TLD does not seem to be robust enough to help this situation.
To solve this and perhaps promote more consistent naming of resources, network administrators and standard bodies should consider adopting the following TLDs:

.localhost

  • This already exists and would continue to refer to 127.0.0.1 alone.
  • Subdomains could point to 127.0.0.1 or to another 127/8 address, but nowhere else.

.lan (Local Area Network)

  • These would only point to LAN addresses, such as the 192.168/16 addresses.
  • Lookup would only take place within the LAN, never consulting DNS servers on the Internet.
  • “lan” itself could point a designated device, such as one providing DHCP services.
  • A device could be responsible for its own name and can subdomain that name for resources available though that device.
  • There could also be a way to define domain trees that are managed independently of the devices they point to, such as on the device with the DHCP server.

.vpn (Virtual Private Network)

  • As a synonym for .lan, this would exist mainly to make it easier for the user to understand where their resource is located. For example, a computer at a head office named files.mycompany.vpn makes more sense than files.mycompany.lan since the server is might not be in the user`s local area network.

.ian (Internet Area Network/Internal Area Network)

  • This would indicate that the domain namespace is defined using user controlled DNS servers or host computers.
  • The IP addresses can be any valid IP address.
  • Public DNS servers should not return information about a .ian domain unless the .ian address is acting like a proxy server.

.wan (Wide Area Network aka the public Internet)

  • This would explicitly say the address of the resource your want in on the public Internet and not a localhost address, LAN or VPN.
  • This would be a valuable safeguard in some cases, such as security or in the event of overloaded names not named with the above conventions.
  • An administrator could also use this like a telephone outside access code and require all public addresses require .wan, as if “wan” is the name of a proxy server.


In the event there is not an extension the best default would to be assuming an implicit .wan it there is a period in the name and .lan/.vpn/.ian if it is a single name.  For these addresses, it would be up to the administrator or user to determine the best naming scheme to avoid and  resolve addresses issues.
I feel that using this naming scheme would make DNS more robust and  would allow for its future expansion, such as naming devices in the Internet of Things.

Friday 10 October 2014

Smartwatches Should Be Round


One feature of the new Apple smartwatch is the knob on the side called the Digital Crown.  After seeing it demonstrated with a map, I would liken it to a mouse's simple but versatile scroll wheel as well as other digital knobs.  I agree that due to their small size some type of scroll device is probably a logical user interface feature for any smartwatch. However, since watches are normally round, my first thought was why use an angled wheel the surrounds the face.  After thinking about how the BlackBerry Playbook enables touch beyond the screen, the realised that it did not have to be a physical wheel but should be virtual touch circle.
With this the user would simply make the motions associated with rotating or scrolling by swiping anywhere around the face.  This would make zooming in or out on the watch similar to how a optical lens is zoomed or focused.  Making it angled would also allow for other interactions with the user, such as tapping or double tapping at specific locations related to the screen.  For example, the numbers zero to nine could be represented by the clock locations for twelve o'clock to nine o'clock with ten and eleven used for special purposes, such as the pound and star keys.  This seems like an easy to learn and elegant way to interact with a smartwatch.
Sadly, however, it seems that many smartwatches are designed with an rectangular face rather then a round face.   While I understand the efficiently of why rectangles are used for smartphones, tablets and computer monitors, smartwatches are not used in the same way as smartphones, tablets or computers.  It is unlikely someone would want to read a novel on their smartwatch or write a document.  They might video conference or watch as video, but letter boxing or simply removing the corners would be as acceptable as using a smartwatch for these purposes in the first place.
If smartwatches require a scroll wheel to create an acceptable user experience, then it would seem prudent for companies to design smartwatches that implement the user interface design described above.  Therefore, smartwatches should be round rather then rectangles.

Friday 4 July 2014

Personal Navigation Using Self-Driving Technology

If you are blind, the current solution is to provide you with a seeing eye dog. Seeing eye dogs seem to work ok, but I started wondering if self driving technology,  such as what Google is developing mixed with navigation software, that is already used to replace seeing eye dogs, would be better.

Imagine if a person could be provided with a hat/glasses that would have the same sensors as the cars, but they would be smaller, easy to wear and look less out of place. An ear bud (and/or other feedback device) would direct the person as they navigated the street. It could provide directions with the same level of detail that they would get if a human were leading the person. 

For example, a navigation sequence could be:
  • Keep walking along the sidewalk straight
  • Watch out for the paper box to the right in three meters
  • There is a puddle in four meters that is one meter long and one meter wide
  • You have turned enough to a avoid the puddle
  • You have turned enough to keep from leaving the sidewalk
  • You will be clear of the puddle in two meters
  • You are approaching a crosswalk in three meters. Press the button at you right upon arrival.
  • Your hand is too high
  • Your hand is on the button
  • The walk sign is on, proceed five meters straight to the other side

Thursday 3 July 2014

Should Wearable Devices Not Be All-In-One Devices?

Wearable computers, whether they are watches or heads-up displays are becoming popular but they all suffer from the same problem: they are self contained. Despite the need for them to be extremely small, for what they are designed to do they need to contain all the basic components found in a smartphone.  This means that components that normally need to be bulky, such as the battery, are forced to be undersized and therefore do not meet user expectations.

For example, according to techradar, the Google Glass only lasts for five hours with normal use and less then an hour when recording video.  Since a day is twenty-four hours long,  this is clearly unacceptable if it is going to be as an essential part of peoples daily lives as a regular watch or smartphone is now. 

While new technology may mitigate these problems, after my experience with the Timex Datalink and seeing how smartphones features often offload work to "the cloud" (like voice recognition), I am wondering if wearable devices should be treated more like portable monitors/keyboards/sensors/etc. and less like full computers. While they might have some basic functions(time, authentication), any serious functionality would be carried out using your smartphone or by a device that is also worn but its bulk is more easily hidden or accommodated by the user.

The challenge of course would be how to connect the two without creating more problems. Wireless is often the knee jerk choice and it might be up to the task but power and security issues might also make this unworkable. Seeing as many people already use wired headphones/ear buds, I feel that some form of wired technology is possibly the best option.  Not only could the wire provide power, but it could be fast and secure.   The challenge is how can the current awkward to user wire be improved for all day wearing and possibly even be able to run down the users arm.

I would envision this would be analogous to wiring a building with Ethernet, where twisted pair cables are put in the walls and devices attach to the network using the standard jacks that are available wherever there is an anticipated need.  A standard wire or other communication medium would be stabled with access points distributed around.

The best solutions will be ones that can integrate the wire with the user's body or clothing to create something comfortable to wear without much work. This could include something that the user can attach to themselves or by using something that occurs naturally like the body's electricity or movement.  Of course, another option would be implanting the wire in user.

I think this could also be invaluable to the medical community as it would make it easy to connect and power implanted medical devices. The public would probably be most adverse to this, a least for now.  But as people see how well these new devices work, wiring people may become as normal as getting an immunisation, getting cavities filled or having a pace maker installed.

In the future, it could simply be normal for everyone's body to be outfitted their own Personal Network of interdependent devices.