Exit review: Emacs

A shocking time has come - I've given up Emacs, after using it for 20 years. When interviewing developers, one of the questions I ask is about their favourite editor. I don't care what the answer is, but I do very much care about why it is. An editor is a fundamental part of developer productivity, so I want to hear about the candidate caring about their own productivity and trying to improve it on an ongoing basis.

The irony is that I was using the same editor for decades. I did keep trying to find improvements, but never could. There are two sides to Emacs - one is as a competent & coherent editor, and the other is "living" in it. It has builtin web browsing, image viewing, email and news support, terminal emulators etc. I was never one of those.

Before Emacs I used vi. Its modal interface, small size, and availability on all systems make it a good tool. However it was text console only, and didn't do colour, menus, multiple files or other useful functionality. (It does now.) vi does have a learning curve - I estimate it takes about 4 years to be good with it, and 8 years to be an expert!

I had known about Emacs for a while, but it was text console only, and didn't do colour, or menus. Each attempt to use it left me frustrated with what amounts to another arbitrary set of keystrokes. (I've always been a cross platform person so I was also juggling keystrokes for other operating systems and applications.) A colleague (hi Jules) introduced several of us to XEmacs around 1995. It had a gui, and colour, and most importantly a menu system. It was no longer necessary to memorize a large set of new keystrokes, as the menus showed them. You could do everything without knowing any, and then pick up those you use often enough.

By the mid 2000s XEmacs was languishing, and Emacs was slowly catching up with the gui. More and more packages only worked with regular Emacs (there were small but growing incompatibilities). I eventually made the switch from XEmacs to regular Emacs.

There was an explosion in different file types I was editing: Python, C, Javascript, Java, Objective-C, HTML, HTML with Jinja Templates, JSON, matlab, CSS, build scripts, SQL, and many more I have forgotten. Emacs had support for most. Support means syntax highlighting, indenting, jumping around notable symbols etc. More packages were produced that did linting (looking for common errors), and various other useful productivity enhancements.

At the same time a new editor Sublime Text was introduced. It had fantastic new interaction (goto anything, projects, command palettes, multiple selections, distraction free) and a rich package system (written in Python - yay!) I kept trying it, but kept finding issues that affected me. Development also seemed to drastically slow, and since it was closed source there was no way for others to improve and update the core.

Meanwhile Emacs became more and more frustrating. The web (HTML, Javascript, CSS) is not a first class citizen. Not many packages were distributed with the core, and you had to copy crytic elisp code from various places, or use strange tools to try and get them installed and kept up to date. Then you had to do that on each machine. Heck the package repositories (eg MELPA) didn't even use SSL by default! My emacs configuration file kept getting longer and longer.

Ultimately tools these days are defined by their vibrant community, useful defaults, and easy to use extension mechanisms. Emacs has all those, especially in the past. But they are of a different era and different cadence.

I have switched to Atom. It had a rough initial exposure with performance problems, and the extremely dubious choice of being closed source. However both have been addressed. Just days before Atom 1.2 was released, I removed Emacs in favour of Atom 1.1. My configuration file is 10 lines long, and I get the same experience on every machine.

Developers should work in support

I am one of the many many people getting the completely useless response on trying to upgrade to Windows 10.

/galleries/From%20Posts/windows10.jpg

Closing setup and trying again doesn't work. Nor did changing my language settings, .Net repair tools, freeing up huge amounts of space, rebooting, examining log files, or reading tea leaves.

A lesson I learned many years ago is that developers should work in support [1] (eg 3 weeks a year). Normally their experience of support issues is after they have been filtered through many layers of other people, and they don't see the ones that have been resolved even if fairly frequent. Essentially developers do not experience the friction that their customers or support staff regularly encounter.

I've done the support work myself, as well as seeing other developers doing it. There are immediate fixes such as tweaks to tools, asking for information in a different order, or new ideas for how to address common issues (hopefully eliminating them). Then they will go back and fix unhelpful messages in the product. For example a message like "couldn't find file" will be changed to say which file, and possibly detect if it is because the file doesn't exist or the directory containing it. Or make the code create a default file and parent directories.

From that point on, the developers produce substantially better diagnostics. They work out what information they would need on answering a support call and make the diagnostics provide it all. But as time passes, the memories fade, and shortcuts are taken. That is why working in support should be done regularly.

The Microsoft developers responsible for the screenshot "something happened" are likely a lost cause though.

As a side rant, Linux distributions are also distributed as ISO files. They can be used as is on optical media, network booted, dumped as is onto USB flash drives, and work on BIOS and EFI systems (even Apple's non-standard EFI). The Windows ISO is considerably more painful, especially if your machine doesn't have an optical drive, like pretty much all of them these days.

[1] This applies to larger companies. In small companies/startups you often end up with everyone doing support.

Exploring two different battery wifi hubs

Fundamentals

I recently decided to get a multipurpose device. They can do all this:

  • Large battery to recharge other devices over USB (eg your phone and tablet)

  • Provide wifi access to a network in front of it

    A wifi network is provided behind the device with a name and password of your choosing. You connect one or more of your devices to that.

    In front of it you can have no network at all, a wifi network (unrelated to the one behind), or a wired ethernet network. You do have to configure access to the network, but only for this device. Your devices are behind it blissfully ignorant of the real network.

  • Exports attached storage (eg USB stick, USB hard drive, sdcard) via both SMB (aka "Windows network file sharing" supported by virtually everything these days) and DLNA (a multimedia network protocol, supported by many although the Apple ecosystem prefers "iTunes")

    On Android and desktop systems, you'll find that Kodi works for both SMB and DLNA, as does Android ES File Explorer (SMB only).

  • They are cheap ($40 - $60 depending on battery capacity)

  • Can run completely off the battery so no additional power is needed. They will run for many hours. They will also run while being charged.

  • Similar in size to a pack of cards

  • They use popular standards - eg they charge using standard micro-USB, provide power for devices with standard USB port, use existing filesystems, standard protocols etc. There is no need to carry different cables or chargers, and any software speaking SMB or DLNA works.

After some agonizing over Amazon reviews, and reading the manuals, I ended up with two.

/galleries/From%20Posts/battwifi.jpg

The left red one is a HT-TM05 TripMate Versatile Wireless N Travel Router (Amazon page) although the packaging and internal names say Tripmate Sith. The right white one is a RAVPower RP-WD02 Wireless Filehub / Portable Travel Router (Amazon page). They are sold by the same company, and the underlying products are substantially similar except for the hardware layout.

How they do all this turns out to be quite simple. The battery provides power, and there is a small Linux based computer attached. It is running a MIPS based processor (the manuals even tell you the exact manufacturer and model number), 32MB of RAM, and 8MB of builtin storage for their software. For some reason MIPS cores seem very popular in network access devices - if you have a box at home from the likes of Linksys, DLink, Netgear etc, it is almost certainly using MIPS.

Praise

They fundamentally do what they say. Both RAVPower and Hootoo provide Android and iOS apps to help access and configure the devices. However neither requires it and you can do all the configuration work in a web browser by going to the device address (default 10.10.10.254). It looks like the apps are really just some logic to find the device on the network, and then show the admin pages in a WebView. Note that I have never tried the apps.

Each device has some nice highlights the other doesn't. (If only someone made something combining the best of both.) The Hootoo has some lights on top to see battery level (they only light when you press the button as I did before taking the photo). The RAVPower has a micro-sdcard slot. The Hootoo can stand up. The RAVPower has a label giving default username, passwords and IP address. The Hootoo web admin pages are nicer, simpler and mobile optimised. The RAVPower ones tell me the device's external IP address. The Hootoo's lights go on or off in sequence during power on and power off so you have progress feedback.

As a test I left the HT-TM05 10,400mAh device on and connected to the wifi network. I didn't have anything connected to it, so this is a measure of the longest it can continuously run. After 45 hours (3 hours short of two full days) it had dropped to one battery led (out of four), and I decided to recharge it rather than deplete the battery completely. That is an impressive runtime. The RTP-WD02 has a 6,000mAh battery so you would expect a proportionate maximum runtime around 28 hours.

Suggested Improvements

The RAVPower has ports on 3 sides, which can lead to cables sticking out in all directions. The Hootoo is nicer with ports on two sides next to each other. Sadly the micro-USB for charging is right next to the USB for connecting storage. If the cables connecting either are anything but skinny heads then you can't have both connected. If you use an sdcard reader on the Hootoo then it will overlap the charging port. You get a choice of too dense ports (Hootoo) or not dense enough (RAVPower).

Hootoo really should have a builtin sdcard reader.

The web admin UIs have no help. When you want to safely remove attached storage, you'll end up at a page with a button labeled "Delete". It takes a lot of courage to press the button, to confirm that it really means "remove" or "eject" (it does). Firmware updates on both devices added an "auto jump service", you can enable or disable. Good luck on figuring out what that does!

Censure

Software versions

It didn't take me long to get access into the devices. Here is what the Hootoo said it is running:

$ cat /proc/version
Linux version 2.6.36 (gcc version 3.4.2) #8 Fri Jul 11 10:44:45 CST 2014
$ /usr/sbin/smbd --version
Version 3.0.24

RAVPower:

$ cat /proc/version
Linux version 2.6.21 (gcc version 3.4.2) #5 Fri Nov 1 13:36:46 CST 2013
$ /usr/sbin/smbd --version
Version 3.0.24

The Linux kernels date from 2007 and 2010. Neither version is long term supported, and both have various known security holes, although remote security holes are very rare.

smbd is the main component of Samba and provides networked file access. Version 3.0.24 was released in 2007, and there have been numerous releases since then, including 3.0.25 a few months later which fixed 3 security holes. Virtually all Samba security holes are remote since that is what it does.

I didn't check the versions of other accessible services (eg DLNA server, NTP), but this pattern of older versions with known problems is most likely. (The gcc version above is from 2008.)

Network exposed

Why do the versions matter? Both vendors (RAVPower update) made a very bad decision - all network services including the web admin pages, Samba, DLNA, and even a telnet server are accessible from in front of the device. If for example you are at an airport, campus, coffee shop, hotel or somewhere else with a network, and connect the device, then anyone on those networks can connect to the network services on the device. They do not need to connect to the wifi on it. A bad guy has more than 5 years of published security holes to choose from, and can have complete control over it. (The default usernames and passwords also make this a breeze.)

Complete control means they can extract your saved wifi password (eg if last on your home network, or for the current network), redirect or monitor your traffic, replace the firmware etc. To a certain extent this is no different than connecting to someone else's network which you have to assume is hostile, but this is something that goes around with you. (Both vendors use the word 'secure' in their Amazon descriptions.) While that kind of exploitation sounds far fetched, bad guys are already doing it.

Bridge mode

Both products' Amazon pages claim to support a bridge mode, but this marketing fluff and not the term as understood by networking people. They never bridge in the sense that those behind the device and the network in front are joined making a unified LAN. The devices always do network address translation (NAT) and never any form of bridging.

Admin Pages

As far as I can tell, Hootoo are the firmware developers. Their older products as well as the RAVPower use a fairly clunky web interface. It looks like a singe page application but doesn't do it well.

The Hootoo has a newer web interface where the URL changes as you navigate around pages, making it much easier to see what is going on, send links to others or other devices etc. It is also mobile centric giving the same pages that look good on a phone, as to a large monitor.

I had a quick look at authentication to see if there were any simple holes. Both use their own login screen, which means your browser can't prompt you nor remember the password. They set a session id cookie and require it to be present for other web accesses.

The pages are always over http, and not https, although there isn't much of an alternative. (Browsers are getting very hostile to self signed certificates.)

Both devices ended up with a second web server on port 81 (standard http is port 80), that appears to be related to the admin server. There is no need for it, and I'd be concerned about what it does.

Many changes cause the device to reboot and your browser to show a many minute "please wait" message. This gets very annoying. I understand why it is done (far simpler to code and test), but not doing it so much would be a more pleasant experience.

Firmware updates require storage to be connected as the devices don't have temporary storage. On both devices they also wiped out all settings.

RAVPower update

20 May, 2015

I sent an email to RAVPower support around the network exposing and GPL issues. There was no response. A few days later there was a comment on my Amazon reviewing asking me to email support, so I did a second time.

They claimed the issue had been fixed with new firmware, and a pointer to some source. I can confirm that the new firmware does indeed stop exposing network services to the public.

The source link was to Hootoo's website and looked like an effort had been made for some GPL awareness. It included a document outlining components, their version numbers, and license. It also included the kernel source code and Samba (including patches). I did verify the kernel and Samba versions matched, but did not verify they could be built or were exactly what was on the device (both GPL requirements). There didn't appear to be much other source present.

I did have more interaction with support, who didn't understand the difference between telling me about that source drop and actually complying with the GPL. It needs to be available to all users (without having to ask), requires copyright notices be present, be complete and more.

Hootoo update

28 May, 2015

Email to Hootoo support went unanswered. However I did see new firmware appear, which claimed to add exFAT support.

On the network exposed front, the telnet server was disabled, but another web admin server appeared on port 81.

Linux Top Origins

(I was recently asked about Linux top. Here is my response.)

Back in the second half of 1991, someone posted about a new Unix like operating system. It was an instant hit for those of us lucky enough to be connected to the Internet. At my university's several computer labs we had good access to a variety of systems, especially large numbers of Sun workstations, some Windows/286 PCs, and a big Pyramid system shared by students and faculty.

If you wanted something Unix like on your own PC there wasn't much choice. The front runner was Minix which was very expensive for students. It was also for the 8086 and didn't take advantage of more than 1MB of RAM or memory protection, plus had single threaded filesystem access making that slow too. There were a big set of patches for the 80386, but they weren't officially supported.

Linus started out with some assembly language hosted by his Minix system that explored the 80386 task switching instructions. It didn't take too much more before it could run processes and access the filesystem. It was just for fun. It was simple, effective and just what so many people were looking for with no barriers to participation. Releases were frequent as people scratched their own itches.

One thing the fledgling Linux didn't have is getting a list of running processes. (It also didn't have sound, mice, networking, gui, or a whole bunch of other normal stuff yet so that wasn't a big omission.) You had to press the Scroll Lock key and it would spew some stuff on the console showing the running processes. That wasn't a huge burden since it only supported 63 processes total. You can still see the descendent of the scroll lock diagnostics by using the SysRq key with t for tasks.

It was also very common to download the source for various parts of the system as they frequently changed to keep up to date with system calls and semantics. For example this included bootloaders, compilers, C libraries, text editors etc. You'd want to recompile everything on each Linux kernel release which took a while. And often you'd want to know if something got stuck, or if things really were proceeding.

Branko Lankester released a version of ps that was a quick hack. Instead of adding "proper" support for getting a list of processes, he added an ioctl to the keyboard driver (since all systems had one making it easy to access).

While ps is nice, it only gives you a snapshot of the system and no idea about what is happening over time. I was already familiar with top and wanted that to monitor the system. The existing top had no hope of working on Linux so I wrote one from scratch. It was pretty much the simplest way of wrapping ps so that it sorted the processes, and then output as many would fit on the screen. That is why the documentation always mentions Branko and his ps.

I did add some unique things over the top I had used. You could specify which fields were shown and in which order. There were less than 26 so I used the letters of the alphabet. It could be saved to a $HOME/.toprc so you didn't need to reconfigure each time you ran. The same configuration was preserved for many years by future authors.

I released my top in early 1992. I then had a 6 month work placement where I no longer had access to a machine I could run Linux on. Others then took over top, updating it as Linux matured, exported process information more sensibly, removed some inefficiencies I had coded, all leading up to what you have today. I would be shocked if any of the original code survives. I am still listed in the credits though.

top was developed on an 80386 system running at 20MHz with 4MB of RAM. It had a 100MB hard drive of which 80MB was used for DOS and 20MB was allocated for Linux. I used vi as the text editor, and had to figure out various library usage (eg dealing with the terminal) by reading library source code.

Paying for incoming calls

When people find out that you pay for incoming cell phone calls in the US, it seems illogical and likely part of the various issues where the country is dysfunctional (eg politics, health care, rampant hypocrisy). However there are good reasons for this system and issues in your own country you may not be aware of.

Whenever a phone call is made there are termination rates - the amount paid to the operator on the receiving end [1]. In most countries the termination rates for cell phone calls are higher than for landlines (note the termination rate covers where the call ends up - it isn't related to where the call is from - cell, landline or other).

This means that when a call goes to a cell phone, it costs more than going to a landline. Somebody ends up paying that difference.

/galleries/From%20Posts/callingrates.png

Screenshot from a random calling card site. Note that these costs include the costs to route the call to the country, in addition to the landline or cellular termination. ie the termination fees have an even larger disparity than shown here.

Look at the United Kingdom or France where the cellular rates are considerably higher than landline rates [2]. Most countries decided make the caller pay for these higher rates, but the caller had to know they were doing that. Consequently they had to allocate new area codes for cellular (these are the UK ones). Every person making a call has to know which codes are which, and some knowledge of the different rates [3]. Receiving parties can't port non-cellular numbers. Cellular carriers have no incentive to reduce their rates.

In the US the difference between landline and cellular is paid by the receiving party. The North American Numbering Plan means area codes can't change from 3 digits without massive disruption, and that there aren't enough spare area codes even if they wanted to assign them to cellular (eg 36 area codes would be needed to get one number for every American and Canadian, and have some pattern to recognise the codes).

/galleries/From%20Posts/cellpay.jpg

So is the US system better? It has a number of advantages:

  • People don't have to remember even more rules about area codes and differing charges
  • There is greater incentive to reduce the cellular extra prices since you are affected by every minute of incoming and outgoing calls. With the model used in other countries, the termination rate is set by the receiving customer's carrier and that customer has far less visibility or bargaining power over the rate.
  • Cellular was easily rolled out without disruption. An existing number could switch to cellular and no one else would have to know or care. If you were a business (eg a plumber) you didn't have to worry about people calling you fretting over getting charged more for the call than your competitors.
  • Numbers are easily portable. You can switch any number to use cellular. Countries using the other scheme can have portability but usually it is limited to cellular area codes only.
  • The method used to connect the number with the recipient is only a concern of the recipient.

The US system does make sense, and does have a number of advantages. Someone is always paying for the difference between landline and cellular virtually everywhere.

The US carriers also charge for incoming SMS. This is more a case of being able to get away with it, mixed with some of the reasons above. However most plans these days are for unlimited voice and SMS, with the big charges for data consumption.

[1] There are various exceptions like freephone/toll free numbers, premium services etc.
[2] You can also tell which countries have a poor landline infrastructure and cellular competition.
[3] You already have to know which area codes have no extra charges, which have minimal charges and which are premium. For example UK folks have to be aware of this list.

Farewell: Mario Kart Wii

Last week Mario Kart Wii online services went away. I am a fan of driving games and have had Mario Kart Wii since it came out in 2008. Most driving games only allow for perfection. If you take a corner badly or have a crash, then that is it. You'll have lost several seconds and have to start again for the position or time [1].

Mario Kart is very forgiving, using goodie boxes scattered throughout the tracks, containing random items. The closer to the front you are the more pointless the goodies are, while being further back gives the good stuff especially items that let you get closer to the front.

That all leads to a nice balance. Mistakes that lose position get you better goodies that let you recover. Players who aren't as good drivers also get opportunities to move up. You get three laps of hectic racing with everyone having a reasonable chance of a good scoring position. And the best driver can come last too.

The single player game, racing against the computer is ok but not that much fun. You need to complete various cups to unlock vehicles and characters. It just isn't that hard nor does the computer offer much challenge.

Online on the other hand is spectacular fun. You race against other people. Unlike the computer they do all sorts of unexpected things as well as cool tactics. This makes every race unpredictable and lets you use your own nefarious tactics. Fortunately Nintendo means there is no interaction with other players unlike the swearing, racism and misogyny reported on other platforms. Heck you can't actually tell it is even people other than they don't behave like the computer does. When playing you'll assign all sorts of motives to actions, be lenient or get revenge.

The engineering is impressive too. The players can be all over the world (and often are) which means it takes a while for position and speed information to be transmitted to all other players. Until later correct information arrives it has to predict where karts are to show you them right now. This is why you can sometimes think you hit or shelled someone but then nothing happens.

Online is what makes this game.

The Wii doesn't do code storage or online code updates, so Nintendo's developers had to get everything right first time for the CD. (By contrast Gran Turismo 6 for PS3 had updates every few days after release.)

There are two areas that Nintendo didn't get right. The first is balance - you expect characters and vehicles to be approximately equal. There are different attributes - eg one vehicle may have a higher speed, but lower acceleration or vice versa. These can still be balanced. Sadly they gave the bikes too much advantage, with the consequence being virtually all highest scoring players using a big player (eg Donkey Kong) on a bike.

The second area is the waiting. Each race is a multi-step process waiting to join a race, waiting for everyone else to join, selecting a track, waiting for everyone else to track select, waiting for the system to pick the track, waiting for everyone to load the track and then finally you get to race. A lot of this waiting could be combined to make the whole process be quicker.

Sadly near the end the distasteful topic of cheats came up. Some people reverse engineered what was going on and could for example shell every player as the race started, or avoid having anything affect them. Despite these "impossible" things happening, Nintendo never seemed to do anything about it.

So what is next? Wii U has a new Mario Kart coming out, but it isn't that good. And it costs over $300 because you have to buy a relatively unpopular system. I'm going to pass, and just remember the several years of multiplayer Mario Kart Wii for the fun it was.

[1] A notable exception is Excite Truck where you lose a fraction of a second in a crash, and even get points for how spectacular the crash is. When the game resumes you are still in the thick of the action instead of seconds behind in the dust.

Exit Review: Novell Bag

In the spirit of Bunnie's exit reviews I'm writing about a bag.

/galleries/From%20Posts/novellbag.jpg

In 2005 I happened to be passing the Moscone Center where lots of events happen, and spotted many people on the street with the bag. It turned out Novell's Brainshare conference was happening inside and that was amongst the swag being given out. The bag looked the perfect size to me and one was ordered online. In the almost decade since, that bag has been with me all over the world for both personal and professional trips and meetings, and has been perfect.

Size

It is hard to get size exactly right. I wanted something big enough to function as a carry on (eg some clothes, toiletries, books, electronics and laptop) but at the same time being small enough that it easily fits in overhead bins, cars, and with me when I am walking. This bag makes the tradeoffs and gets the size exactly right.

When other passengers have been made to weigh or measure their carryon, I've always been bypassed with the bag.

For my last two laptops I specifically made sure they fit in the bag (just). They were the Lenovo Thinkpad T61 (15 inch) and T430s (14 inch).

Wheels and extension handle
It has wheels at the front and a nice long extension handle. The handle has two vertical pieces which makes it very stable and easy to control.
Straps, grab handle
There is another decent sized grab handle on top, useful for pulling out of overhead bins or just moving the thing around. There are also two backpack style shoulder straps at the front, hidden behind a panel. Although I never remember using them - it was always wheels or grab handle.
Plastic bucket
You can't see this in the picture but the entire bottom is a large plastic bucket with the fabric over it. It is about 15cm deep. This means that if it ever ended up in water, the water would have to be quite deep to actually get into the bag itself. It is nice to be puddle proof.
Compartments

There are 3 compartments - not too many and not too few. At the back (closest to the camera) is a small compartment suitable for keys, documents, pens etc. There is a nice organizer inside for all these including a zipped pocket and quite a bit of space at the bottom where I would have things like spare contact lenses and an alarm clock.

The middle compartment is for laptops and has a nice padded pouch plus enough additional space for things like mice and power bricks.

The main compartment is suitably spacious. Even when full it kept its shape which meant you could still easily get the laptop in and out.

Side pockets
You can see one suitable for water bottles or rolled up magazines. It has a drawstring with a clamp to keep whatever is there from falling out. The other side has zipped pocket - perfect for ear plugs and eye masks.
Understated but sufficient colour
The black colour means it doesn't draw attention to itself, but the red trim and panel at the front made it sufficiently noticable that it would get lost in a sea of other black bags or get forgotten in a meeting room.

Sadly it broke earlier this year with the plastic near the extension handle folding over. This causes the main compartment to distort which then does the same to the laptop compartment rendering the whole thing broken (or at least significantly reduced capacity.)

It was the exercise of trying to get a replacement bag that made me appreciate just how perfect this one is. Sadly Novell don't sell the bag anymore, nor could I track down who actually made it.

During my shopping trips to get a replacement I found problems like:

  • Not having wheels
  • Too large or too small
  • Mismatched dimensions (eg really tall but comical lack of depth)
  • Nowhere to put a laptop
  • Designed to only take small Apple laptops (eg 11 inches)
  • Not having easily accessibly external pocket/compartment for travel docs and similar
  • No side pockets
  • Very inconvenient to take laptop in and out
  • Tendency to fall over
  • General lack of attention to detail

So far the JWorld Sundance (model RBS-19) has been the least worst replacement, and took a really long time to find.

Recommended: Glympse location app

An app I have been using for several years is Glympse. It is very close to perfection.

It lets people know where you are. A common example is if you are meeting someone somewhere they can monitor your progress and estimated time of arrival. This is especially useful while driving.

Where Glympse gets things right is how smooth they make it. Unlike most other apps, absolutely no authentication, account creation, social media profiles or privacy invasion is required. That applies to both the sender and the recipients. Glympses automatically timeout (your choice of up to 4 hours, or on reaching your destination).

The Glympses themselves are a URL in the form glympse.com/123A-BCD4 which is sent to the recipients. Providing they can access the web, they can see details. You are tracked on a moving map, along with updated ETA, speed (if you chose to share it), traffic and track. Recipients on mobile devices can use the Glympse mobile app to track multiple people at once etc, but this is not required.

Gympses can be sent in whatever methods you have made available. For example SMS can be used on mobile, Twitter if you logged in, email etc - all at once.

The pervasive feeling throughout is an app on your side. Every potential source of friction has been removed, for both senders and recipients. You don't feel like a pawn in some ecosystem or social network war. This stuff just works, and works well. Recommended.

Support Tale

TLDR: Panasonic use an outsourced company for support that is beyond comical. This includes only being able to provide answers they already have, surveys that can't be completed, and general behaviour indistinguishable from gross indifference.

If find it fascinating what companies do these days. They hate their users so much that third parties [1] are hired to deal with them. And you can bet those third parties are used because they are cheap.

Most of them seem to operate by having 10 or so common answers, and pattern match your question to the closest answer, hoping to close the incident as quickly as possible.

Many software companies still think that it’s “economical” to run tech support in Bangalore or the Philippines, or to outsource it to another company altogether. Yes, the cost of a single incident might be $10 instead of $50, but you’re going to have to pay $10 again and again.

Seven steps to remarkable customer service

This is extremely short term thinking. The best customer service is one you don't have to contact because things just work. And when there are calls, actually address the issue so that more calls do not come in. And use this to make your future products better. Better products result in better sales in a good feedback loop. Worse products and blowing your customer interactions is a way to bleed away customer loyalty and future product purchases. Often that forces competing on price due to the lack of other virtues, and isn't particularly profitable or good for the long term.

Panasonic makes many consumer goods, amongst them cameras. I bought a DMC-ZS40 which includes [2] wifi functionality. When connecting to a wifi access point it won't let you enter a space in the password.

/galleries/From%20Posts/panasonic1.JPG

Normal text entry screen showing that a space is entered. There are 5 buttons letting you enter a space.

/galleries/From%20Posts/panasonic2.JPG

Time to enter the wifi password

/galleries/From%20Posts/panasonic3.JPG

All space buttons are disabled and clicking on them has no effect. You may need to click on the image (full size) to see the lighter gray disabled look for the space buttons.

Spaces are perfectly acceptable in wifi passwords. Heck all the domestic access points I have access to use them! Now you know and I know that this is a bug [3]. But rather than being presumptuous I contacted Panasonic support to ask how I enter a space in wifi passwords. Maybe there is some other way in just this case?

I started with online chat. It quickly became clear that the customer service staff do not have access to the cameras, nor had they ever used that model or its similar predecessor. I pointed to the screen shot on page 75 of the manual (warning: PDF) and explained that the spaces worked elsewhere, just not for wifi passwords. I had to repeat this over and over again - I can enter spaces, just not for wifi passwords.

The rep tried everything but didn't really grasp what was going on. And short of some secret setting there is nothing they could do, other than take a lot of time to not address the issue. Eventually they told me to call phone support.

It took 5 phone calls. The calls are answered by an IVR (voice) system that asks which product, then if they recognise right what you want (eg support, buy accessories) and then in support if you want to hear common tips before finally connecting you to a person. Actually just before the human connection they ask if they can call you back for a survey [4]. At no point can you press buttons - you can only proceed by speaking. (You also can't go back.)

#1 I describe the issue to a person who immediately hangs up. My guess is wifi related issues are longer calls and make their stats look worse.

#2 It decided that I was talking about a TV, and then connected me to a number saying it was out of service permanently.

#3 The rep never spoke and I could hear some background talking for about 10 seconds before it got quiet. After trying various things to get attention I hung up.

#4 It decided I wanted to buy parts and insisted on taking me down that road. Yes I did end up swearing at the idiocy.

#5 I got through to a person and did pretty much the same as with the chat person. (Yes they too had no experience/access to the camera or seen its keyboard.) We did the page 75 of the manual thing plus fruitless attempts to enter the space. After 28 minutes they decided that a higher level support person needs to get back to me. I'm not sure if it ever sunk in that I was perfectly able to enter spaces -- just not for wifi passwords.

/galleries/From%20Posts/panasonic4.png

The next day this arrived

That is cut straight from page 75 of the manual - the same one I kept pointing them to. I am completely mystified as to what the red arrow is pointing to.

Needless to say this has cost Panasonic money and is going to cost them even more as I persevere to get the issue addressed. It didn't have to be this way.

Update: I then tried to use the "email" option where you enter details in a web form and will get a response within two business days. This was so I could link to screenshots to show the problem. I still hadn't got a response 10 days later.

I did another chat where they acknowledged the issue but said there was absolutely nothing that could be done. They refused to actually tell Panasonic about the issue. Insisted I call because they can't take personal information in chats. I pointed out I didn't need to be contacted, they already took my information to initiate the chat, and it is Panasonic who need to be contacted on the issue. The chat transcript they emailed also included a survey link. Clicking the link just resulted in a redirect to the Panasonic US home page.

Figuring that nothing would happen, I did phone call too. After some back and forth, including giving an imgur url verbally they finally came back and told me you can't enter spaces in a wifi password. I had to remind them that was exactly what I had told them. Then I was told the camera was set in stone and could not possibly be changed. I pointed out the firmware version was 1.0 and my previous model had firmware updates, so it was perfectly possible. Eventually the rep said the information would be passed on to Panasonic (yeah right). I got the usual phone call survey afterwards where a few questions in it wouldn't recognise answers.

I am befuddled as to why Accent/Panasonic aren't noticing a lack of survey responses. It is in Accent's interest that negative ones don't get through.

[1] Pansonic is using Accent and none of what is written on the snazzy Accent home page is remotely true from this experience.
[2] For some especially bizarre reason they use USB for charging but the connector on the camera while being the same size as micro-usb is not micro-usb. This means you must use a proprietary Panasonic "USB" cable. This was a really boneheaded decision.
[3] Spaces in wifi password work just fine with Android, iOS, Windows, Linux, Mac, Roku, Apple TV, Nintendo, Samsung Printer. Oh and Panasonic TV and Blu-ray players.
[4] The callback is beyond comical. You are asked to press buttons to rate various things (a scale of 1 to 5 IIRC). But on the third question it wouldn't accept any number I pressed so I had to hang up. Oh and they called 5 times - once per each original call. But I was on the phone with call #5 for several of the callbacks so they went unanswered and there were no retries.