Thursday, October 09, 2014

 

On Buying Postage by Correspondence


The Objective

A postal service ought to be able to leave a sheet or two of stamps in a mailbox, oughtn't it? Assuming the stamps are bought and paid for, of course. It turns out the United States Postal Service cannot, or will not, if the buyer is overseas, even if the delivery address is in the United States.

Consider the scenario of someone in another country who needs--or just wishes--to send a self-addressed stamped envelope to someone in the United States. How can they do this? They might be able to place an order, send payment to the U.S.P.S. and have the stamps sent to them. If for some reason the U.S.P.S. does not want to ship stamps abroad--but why would they not?--perhaps the stamps could be delivered directly to the intended beneficiary of the stamped envelope, and the envelope sent separately.

The Experiment

The U.S.P.S. does offer postage stamps for sale via an Internet ordering and payment system. The experimental protocol used entailed the following steps.
  1. Create a personal U.S.P.S. customer account.
  2. Place an order for a sheet of stamps. In this case, stamps of type "Global Forever" were selected as the most appropriate for mailing from the U.S. to anywhere in the world without concern for tariff changes.
  3. Pay.
  4. See whether the stamps arrive.

The Results

Customer Account Creation
The customer account creation was quite straightforward. In addition to name, one is required to provide an e-mail address, phone number, and physical postal address. Perhaps inappropriately, an address in the United States, that of the intended recipient, was entered. It was tested for authenticity, and a foreign address might (probably) have been rejected. Interestingly, the phone number entry field did allow the possibility of entering an "Int'l" number.
Actually, there was a curious glitch, but which was not insurmountable. The password for the account was to meet certain conditions: at least seven characters, a letter and a number, and allowed --but not required--to contain punctuation marks from a given list. A first password composed of five digits, two letters and an allowed punctuation mark was refused by the system with a message "Must contain one number" or words to that effect. A second password candidate containing only one digit (and one punctuation mark) among the many letters was accepted.
Placing the Order
Once the appropriate article had been identified and put in the shopping cart, order confirmation was attempted. The address as entered during customer account creation was rejected by the system for having an invalid telephone number. An alternate delivery address form was proposed by the system; the only country in the "Pick a Country" list is the "United States" so clearly it would not be possible to have the delivery abroad (other than to various armed forces and similar alternative 'states').
Interruption of Test
Since the order placement could not be completed for either delivery goal, the test was ended at that step.

Interpretation

There may be a rationale for this, but what? Why not ship abroad if the purchaser pays the shipping fees? Are the fees too complicated for the post office to calculate? Perhaps the range of other products available for purchase on their site includes some not easily shipped, but why not then just mark those as not available for overseas delivery? As for domestic deliveries, there was no indication that deliveries would be necessarily registered, which might justify needing to be able to contact the recipient; yet even if they were, one can just leave a delivery notice and expect the recipient to come claim their parcel.
It is not clear whether the problem lies with the order entry system or the lacking service offering. Would the post office mail the stamps to a foreign address if the order entry system allowed capturing a foreign address? Perhaps they would, and it is just the software that is faulty.

Conclusion and Prospects

This is disappointing. The solution appears to be to get a phone number from the intended recipient, if they are willing to divulge that information. But how to ask them and hope for a reply if one cannot send a stamped self-address envelope for their reply along with the request? (This is what is called a bootstrap problem.) It seems one cannot rely on postal methods alone for this use-case, one needs telephones. That's progress?
An alternative may be to purchase printable postage --to print directly on an envelope--rather than physical stamps; it remains to be seen what "delivery parameters" would be required or omitted in that case.

Tags: :

Labels: ,


Sunday, November 10, 2013

 

Errata: Business Week Piece on Twitter

A piece of writing brought to my attention recently (The Hidden Technology that Makes Twitter Huge) led me to wonder, how does one say "noyer le poisson" in American? "Noyer le poisson" is an expression in French commonly used figuratively; literally translated it is "to drown the fish" (or "drowning the fish"). The figurative use means "to avoid a taboo topic or difficult subject, concealing it under a mound of details." "Beat around the bush" is probably a good approximation, but "snow job" might be better.

The Snow Job

The piece in question is hardly unique in attempting to snow readers, but much of the detail used to snow the reader is actually wrong and misleading, while a real technological innovation of Twitter's is not mentioned at all.  The reader is provided a supposed "look under the hood" at Twitter, the better to marvel at its genius. The originality is possibly overstated, the execution performance is understated, and look under the hood leaves the reader less well informed!

The omitted technology may not matter too much to shareholders as, valuable as it may be, it cannot explain much of Twitter's market value. Twitter uses Scala effectively: "Scala is one of the main application programming languages used at Twitter. Much of our infrastructure is written in Scala and we have several large libraries supporting our use....Our use of Scala is mainly for creating high volume services that form distributed systems...".


The Genius and Genesis of Twitter

There are lots and lots of prior practices and ideas that may have contributed to the Twitter service, including e-mail listserv (for broadcasting messages to subscribers using mail protocol) and pagers (and bippers).  SMS/text messages sent from mobile phones may have a role as a model.  But the real inspiration was people's status messages on IM! From Twitter on Scala (April 2009):
Twitter started as a hack project at a company called ODEO, which was focused on podcasting. As ODEO was having some troubles in its latter days as a company, they started experimenting, to keep engineers involved by letting them play around with ideas they had on the side. One of the engineers, Jack Dorsey, had been really interested in status. He was looking at his AIM buddy list, and seeing that all of these guys were saying, “I’m walking the dog,” “I’m working on this,” “I’m going to that.” He wondered if there was some way to make it easier for people to share that status. So he and a couple other engineers started prototyping what became Twitter on Ruby on Rails, which was the stack that ODEO was built on. And Twitter continues today to be primarily a Rails application, with a bunch of Ruby daemons doing asynchronous processing on the backend.
So, using Twitter might be likened to connecting to a buddy list where nobody ever sent messages, just status updates, and the status updates were logged for later perusal. Or an alphapager system wherein anyone can broadcast short messages to everyone listening on their channel. Or simply, as one of the developers put it, a transport-independent micro-blogging system. But who will be willing to pay for that, and how much?

Message and Content Containers

The BusinessWeek piece notes that a Twitter message has lots of meta-data or header information associated. This is true, but equally true of e-mail. The piece itself, saved as html, is over 200k bytes of stuff, very little of which is the text.
It is also questionable how reliable some of the information provided by senders is, particularly when their anonymity is of the essence. On a message sent via a VPN rather than a geo-tracking device (like a smartphone) the sender's whereabouts are not known any better than those of a mail sender. Some of the fields are optional, as well, and potentially of little analytical value. Among the "special" fields in Twitter messages, a study made by an intern at PARC in 2011 found that Only 66% Use Twitter Profile Location Field as Intended:
34% of Twitter users do not provide a valid geographic location on their Twitter user profiles. Instead, some of these users co-opt the field to make jokes, express their love for a particular celebrity or to shout back at Twitter that their location is "NON YA BUSINESS!" Others, meanwhile, provide no location information at all.

n00b-speak

The factual errors concern the "snow" used to get the reader enthralled: API use and JSON. The use of technical terms was confusing, dazzling; it was not all wrong, really, but may have outstripped the author's understanding.
The first case is the explanation of JSON and its use. JSON is a set of syntax rules for representing labelled data, as is XML, and there are others. It happens that JSON uses a syntax very much like that used in ECMAScript, which (ECMAScript) served as its model. To call it "a simplified version of JavaScript" is not correct; leaving out all the control commands (loops and logic and such) is more than simplification, one does not have a programmable language left.

Similarly, and in the next sentence, "API essentially means “speaks (and reads) JSON.”" is not generally true. API essentially means "accepts requests from application programs and responds as best it can." It is an interface program, which may "speak" XML, html or something else instead of JSON. The flickr.com api, for instance, accepts requests using REST, XML-RPC or SOAP (but not JSON) and replies using REST, XML-RPC, SOAP, JSON, or PHP.

Another instance of confused reference to an API is in "For all the possibilities of APIs, there are also limits." A query result returned by a call to an API has flags set with warning messages, restricting publication; how is that in conflict with "all the possibilities of APIs"? It is not, "API" was worked in gratuitously.

Finally, and this may not bother all readers, stylistically writing of short text messages as if they were animals is inappropriate. "a tweet thrives," "once born, they're alone and must find their own way," is nonsense.

Note on the French figure of speech: Ref. (Figuré) Ne pas aborder un thème tabou ou un sujet difficile, le dissimuler sous un monceau de détails. from Wiktionary entry

Tags: :

Labels: , , , , , ,


Friday, September 07, 2012

 

My First Go at "Bing It On"





I've engaged in search engine comparisons in the past, both using sites providing the support framework for the tests and running redundant queries on my own; in fact, when James Fallows wrote a Bing vs. Google note a couple of years ago, I wrote him to recommend Yahoo!, which I'd found very good at filtering out irrelevant results. That was before Yahoo! dropped support for their superior engine (for me, in English) to use Bing for their searches.

Yesterday, ReadWriteWeb described "Bing It On" as "A 'Pepsi Challenge' for Bing and Google," an official effort on Microsoft's part to test the same queries side-by-side with the two search engines. It is a test, presenting only the top (first page) results returned, and one 'plays' five times with the search terms of one's choice. I presume Bing has some way to mine the results to try to figure out why they lose when they do, but I frankly don't know how I would structure that analysis. (But now I'm thinking about it).


For Dave Copeland, the ReadWriteWeb writer, Google won 3-1-1. He includes information about some research findings which may explain the results. The research "found that Google outperforms Bing on simple one-word queries. Bing generally delivered more precise results for simple, multi-word queries and complex multi-word queries." His queries were simple multi-word, not simple one-word, so it does not seem to me that the explanation works.

Nor does this seem to explain the 4-1-0 Google scored with my query set!  None of my queries were one-word, even excluding articles, prepositions and conjunctions. Two were in French, one of which included a spelling ambiguity. My list was not "designed" or planned, it just happened that way, but probably is representative of the queries I submit.

My list:
The draw was on 'limage populaire', a curious name I spotted on a tombstone recently in a small village churchyard in Belgium. It also contains the spelling ambiguity, as "l'image populaire" is much more common, although "limage populaire" is a possible--not very comprehensible--construction.



The "Bing It On" site also provides a link to learn about the study in which they found "people chose Bing web search results over Google nearly 2:1 in blind comparison tests." The link is on the tally page you'll see after you try five queries, too.

Tags: :

Labels: , , ,


Thursday, November 17, 2011

 

Upgrading to Thunderbird 3.1.15 and Kubuntu 10.10

I recently upgraded Kubuntu on my computer, from 9.10 to 10.04, then to 10.10. One consequence of those changes was that the version of Thunderbird (with Lightning) evolved from 2.x to 3.1.15.

The first issue was encountered in the "Migration Assistant" of all places. The Migration Assistant is a wizard that highlights a couple of former features that are now delegated to extensions (plugins, add-ons) and provides links to install them. However, the links only start a download of the xpi, they do not --nor does some other feature of the wizard -- allow one to complete the installation immediately. Meanwhile, the little "installing" icon continues to rotate as if something were still being done; one can should proceed to "Next" once the download has completed. To complete the installation, one simply follows Tools>Add Ons from the menubar, indicates the downloaded xpi, and confirms. This is where the second glitch showed up: the version download following the link in the wizard does not work with this version of Thunderbird! Not entirely surprising, since I've only updated to a version of Thunderbird that is over a year old, but the link was to the current version of the extension, no longer compatible with my older application. But I was not able to find a compatible version of the extension, so presumably I've lost a feature. I restarted Thunderbird and checked my inbox.

I was immediately annoyed by one evolution: the opening of messages in tabs instead of new windows and, with that, no longer being able to close a message by hitting Escape. Evidently, the user interface is evolving to suit tablet and phone users who do everything with just one finger rather than eight fingers roaming over a full keyboard. The way to change that to suit my preferences was:
  • Navigate to : Edit > Preferences>Advanced> Reading & Display
  • Choose the option: "Open messages in: a new message window" and, while I was at it, tick "Close message window on delete." Unlike some mail clients, deleting a message does not automatically open the next unread message but goes back to the list of messages, and I'm grateful for that.
The next annoyance was trickier to resolve; I won't say how long it took me, since I'm supposed to be a software engineer, but the advice I tried, found all over the Internet, did not work for me. The situation is probably aggravated by the particular context of my computer, arrived at by successive upgrades rather than a clean install. Also, advice accumulates and rarely disappears when it is obsolete; it isn't always easy to guess whether it still is useful or not. The problem was this: clicking on links in messages launched another browser even though Firefox was already running. There doesn't seem to be a setting for this in Thunderbird, so I guessed it was a "preferred browser" setting I'd lost in the Kubuntu upgrade process. What I did:
  1. Change default browser in KDE system settings. Configuration > Configuration of the system >Workspace Appearance and Configuration: Default applications. Change web browser to firefox. Just in case, close everything and reboot. Test: fail, the other browser launched.
  2. Edit user.js file, as seen a couple of places on the web, adding user_pref("network.protocol-handler.app.http", "/usr/bin/firefox"); equivalent for https and ftp. I'll skip the details on this, because directly editing the files is not the best way to do it. It is especially not the best way on a system with an evolved (updated through version changes) machine like mine. There have been changes to directory names and organization so it is tricky to even find the right user.js to edit. By the way, on one forum I noticed a comment and query about Thunderbird installing two hidden directories, one called "~/.thunderbird" and one called "~/.mozilla-thunderbird". These are the directories where all the personal settings, connection settings, and mail archives are kept. The redundancy is only apparent, not quite true, and is done to ensure compatibility if one switches from a Debian-Ubuntu Thunderbird package to a (newer) Mozilla Messenger installation; one is just a symbolic link to the other (an alias path, if you see what I mean). The user.js (and prefs.js) have been moved from a sub-directory of .thunderbird (called something.default) to a sub-directory of .thunderbird/Profiles (called somethingelse.default), but the older files are not automatically deleted so one can -- following outdated advice -- edit the wrong user.js (as I first did). An example of this : a recommendation from 2007 which doesn't cite versions at all and adds a shell script to the chain.
  3. Do (2.) the right way (described in French following a link from a French Ubuntu forum). For this, one launches Edit > Preferences>Advanced>General (like for the preference change described above, except the General tab rather than Reading & Display). A click on the "Config editor..." button, and on the warning panel, brings up the list of all the settings ("about:config"). It is here, in this list, that one adds the key-value pairs "network.protocol-handler.app.ftp":"/usr/bin/firefox", "network.protocol-handler.app.http":"/usr/bin/firefox", "network.protocol-handler.app.https":"/usr/bin/firefox". Before doing so, one might check that that is the correct path to Firefox. One can either navigate there with Dolphin or open a terminal (Ctrl-alt-t) and command "which firefox". However, this was not sufficient either, and I found out why by playing around. Incidentally, insertions, resets, and so on are initiated via right-click to open a context menu. Conclusion: fail. Skip this, too.
  4. As in (3.), navigate to and launch the Config editor. Find the lines with "network.protocol-handler.warn-external.http" and toggle it to "true". (This is following advice [fr] for Windows, not Linux, just in case it should have been repeated but wasn't). What this does is set a trigger for a pop-up when one clicks on a link, the pop-up 'warns' what action is about to be executed and give one a choice of accepting, stopping, or choosing an alternative action. It was here that I discovered that the default action was "sensible-browser" even though I had set "firefox" as my preference. Well, the good news is that I (one) could at this point choose firefox as the alternative action and tick the box "always use this option" (or words to that effect) and that was that. I'll do the same for ftp and https when I come across links of those sorts. It does remember and doesn't pop up the warning again, but I don't know where it writes the 'firefox' preference, I don't find it in the user.js or prefs.js files.
I wasn't familiar with 'sensible-browser' and investigated what that does and how it works. I found out why it wasn't working correctly, too, but that will be another note.

Labels: , , , ,


Sunday, February 14, 2010

 

Disappointment with Progress : electronic kitchen timers

Affordable, battery powered electronic timers suitable for use in the kitchen have been around for about forty years, I reckon. Is their becoming stupider and less useful a leading indicater of anything? One should hope not.

Between thirty and forty years ago, we acquired a kitchen timer that was wonderful: digital, small, capable of tracking three timespans simultaneously (and they didn't have to have common start times or common finish times). It stopped functionning so long ago, though, that I can't remember how one knew which of the times had elapsed (a blinking triangle at the bottom of the display, IIRC); however, I recall it as helpful, not obnoxious, and I was sorry to see it "die" so young.

Subsequently, we tried other "similar" timers, but found them so inferior that we used the microwave oven's timer  instead. Our microwave oven --a low-priced model, not a top-of-the-line one-- acquired in the 1985-88 period, had a digital control timer which could also serve as a timer, without using its oven. I don't recall whether that was only when it wasn't cooking, or whether the timer was an auxiliary function available (one track, but better than none) at all times, but I think it was the latter.  It, like the timer it helped replace (as well as cooking and warming stuff) had been sensibly programmed to ring only five times when "time was up."  It lasted quite a while, and had provided very good value-for-money over its years of use. Unfortunately, the maker went out of business. When it went, we had to find another timer.

Over the past ten years, I've tried more than one, all in the "affordable" range, from Ikea or Target or similar retailers. And they all now track only one thing (maybe that's all the majority of purchasers ever used), unlike the Pyrex one from over thirty years ago, and they all, and this is the really questionable "progress",
  • beep not five times, but sixty (a full minute) when time is up;
  • start over timing the same duration if not properly stopped.
I suppose there might be a savings in building devices that are only programmable by minute (not sure, though), but that is a poor explanation because these timers can do things for other than a full minute (or multiple thereof) such as beep only a few times (2 or 3) at five-minute and ten-minute warning beeps: someone decided they should beep for a full minute, then restart timing, if not interrupted. Not progress, in my opinion.

"Time is money" and I'm willing to spend a fair price for a better timer, but I don't know how much I should discount for my time and effort to find it and beat a path to its builder's door. Let's not kid ourselves about how much a kitchen timer is worth : how much better do they get if one pays more? How much more time can they help one save? Haven't we already spent more time than it can be worth to find a better timer?  The potential builders probably have similar (if second-degree) reasoning, and don't see how they can profit from building a better timer people have given up trying to find. Better timers, per se, may not be likely as long as potential producers figure an iPhone app will beat them, and a Carrefour or Walmart or Metro will make market entry prohibitively costly.

Progress in kitchen timers, if people are to continue cooking at home and want them, might be one like the one I had thirty years ago (but longer-lasting); or three like the ones available today, but all capable of stopping beeping when yelled at, even from another room: considerate, voice-deactivated, or both.Identificateurs Technorati : , , , , , ,

Labels: , , ,


This page is powered by Blogger. Isn't yours?