Category: Computers

Just the Fax, Ma’am

It happens that I am occasionally the victim of the need to send a fax. Yes, this vestigial technology persists in the slackwater bayous of the internet world. Every printer I’ve owned in the past 15 years has had some kind of proto-fax machine embedded in it, and every one of them has had a dorky and clumsy interface. The Jurassic Period saw the worst case scenario, having to manually punch in the phone numbers on the printer itself, with the printer additionally required to have its own phone line.

But, even if you have advanced into the modern era, and your printer can “fax” via the internet, wait — it’s a document that you have to sign and date and then send. You mean — yes, it’s a Word document, received via email, that you now have to print out, sign, date, stick it onto the printer’s “copy” window, then return to your computer to punch in the phone number and — by this time, it’s Miller time, and you’re ready to bong a gallon. Look up clusterfuck in the dictionary, and this scenario will be one of the definitions.

Some businesses, I know, still use fax extensively. Ordinary folks might send a half-dozen, usually in a legal or financial situation, or sending the office order over to the local deli, which promotes its “with it” status by accepting takeaway orders via fax.

So, what happens when you encounter this PDF form that has to be filled out, signed, dated, and faxed? — and, of course, this is a matter of pressing importance and must be completed and sent immediately.

You print the form, fill, sign, date. With a sigh, you slip the paper onto the copy window and return to your computer. Oh, no. You haven’t installed the “fax” software that came with the printer, because you figured you’d never use it. Oh, man, — haha! Good luck finding that CD! That means a Google, followed by a trip to the printer manufacturer’s web site, a massive download of the bloatware, an interesting experience with Windows Installer … and then, having propitiated the gods with an exceptionally excellent stream of curses, you bring up the software interface, negotiate its arbitrary design quirks, put in your fax number, create a “fax cover page,” and send your fax.


All this reflection on the gentle art of faxing is by way of setup. I am not in the habit of giving free adverts to products, but I’m excepting the rule with a web service called “HelloFax,” that is easily accessible via a browser extension.

Warning. The following description involves the use of technology.

HelloFax is specifically designed to address all the absurdities of the adventures described above.

You upload your uber-important document to HelloFax. You edit it as needed, sign and date it. You create/select an address book entry for the phone number. You click “send.”

Wait … what? How can you … ?

After you create your HelloFax account, you sign a blank piece of white paper, in the manner you would sign a document — your legal signature. You then use your phone’s camera to take a photo of the signature. You upload the photo to HF. On the HF server, the image is processed to make the background transparent. If necessary, you can resize the signature image to make its appearance relative to a document appropriate.

From this point forward, you can sign and fax any document without ever having to approach any machinery, without even leaving your seat.

You upload your document to HF, open it in the HF editor, and insert your signature image in the appropriate location. Since the background is transparent, the signature visually appears to have been the product of pen on paper. You can insert a date, if needed. It also is inserted as an image with transparent background, so you can drag it around into the appropriate position with your mouse.

If you have a document or documents that are resent periodically, you simply open the appropriate item in your “sent faxes” folder in HF, edit as needed, and click “resend.”

You can create and add a coversheet, if desired.

There may be other, similar tools. Adobe has one, which in my observation is clumsy and a PITA to use. I had an account at fax.com for a time, but really, it was not useful for the kind of service provided by HF. And it’s expensive, if you need only send or receive the occasional fax, and don’t use the service more than a few times a year.

HelloFax is not free. In fact, the cost of the full-service solution 1 would not be justifiable for the occasional user, unless you were in some situation in which immediate access to it was an absolute requirement. But, HelloFax allows you a certain number of free faxes, so you can treat it as free, up to that point. This number of freebies has migrated somewhat since I signed up for the service.

The FAQ reports:

The free plan comes with 5 free fax pages. When you run out, it’s only 99 cents / fax for faxes up to 10 pages and 20 cents for every page after. Note, this is just for sending faxes. To receive faxes, you can pick one of the paid plans.

The implication is that you get five free pages, period, and then after that you have to pay (the entirely reasonable) specified fees. However, HF seems to be running promos on some of the cloud services (in my case, Google Drive), and I’ve been faxing with reckless abandon for six months at no charge. 2

Aside from the convenience — I just filled out, signed, dated, and faxed a financial document in less than 5 minutes — HF represents to me a well thought out, and cleanly implemented, process design. Someone analyzed how computer users handle faxes, and realized that it blows chunks. The analyst then went the next step, and asked the money question, “What technology is available to address the pain points in this process?” And, finally, the stroke — instead of yet another special-purpose software application, practically invisible in a sea of such: a web-based service easily accessed via a browser extension. HF integrates the faxing of documents into the computer user’s daily workflow.


  1. Both send and receive faxes, and an assigned fax telephone number. 
  2. I am not disturbed by the fact that this is a send-only option. I have no anticipation of ever needing to receive a fax. 

The IEEE Ranking of Programming Languages – July 2015

The IEEE ranks these programming languages by how much general usage they are getting. Their methodology combines information about the activity of the language’s user base in social media, the number of open source projects using the language, the demand for programmers in the language and their salaries, and so forth. It’s a bit of a heat map, I guess. What’s hot — where the jobs are, where the money is, and where the enthusiasm is highest. Or, lowest. Not meant to be a measure of value.

The big application workhorses are still smoking hot. Assembly is hotter than Perl! Haha! I’m interested to see Go high up the list, at 13. I was just reading up on it last week. Some friends are missing altogether — Dart, Groovy, Elixir. Maybe, next year. HTML — that’s so old skool! Not even top-20 anymore.

1.Java
2.C
3.C++
4.Python
5.C#
6.R
7.PHP
8.JavaScript
9.Ruby
10.Matlab
11.SQL
12.Shell
13.Go
14.Assembly
15.Perl
16.Swift
17.Visual Basic
18.Arduino
19.Scala
20.Objective-C
21.HTML
22.Processing
23.Cuda
24.Lua
25.D
26.SAS
27.Haskell
28.Delphi
29.Fortran
30.Lisp
31.VHDL
32.Ada
33.Rust
34.Clojure
35.LabView
36.Erlang
37.Verilog
38.Prolog
39.Ladder Logic
40.Julia
41.ABAP
42.Cobol
43.Scheme
44.TCL
45.Forth
46.J
47.Actionscript
48.Ocaml

Dead or Deadly — The Wanked-up Web World

I’m down to my last neuron with the “world wide web.” We’re at the mercy of developer-driven technology — “ooh, look at the cool widget,” let’s deploy that.

Really, unbelievable to me how little usability matters for modern enterprise web sites. I was just over at our utility company’s site to pay the bill … I can’t even go over all the things that are wrong with that site, I’ll become so enraged I’ll kill myself.

A huge, and I mean huge, 1/3 of the window, animated HTML5 banner across the top of the page, scrolling, and in tiny letters, maybe 14 pt type at the top, the link for “My Account.” Hahaha! When I run the mouse over the banner, it triggers a pop-out that covers up the link I’m going for! What! What! Who the — designed that piece of crap and who thought it was a good idea to pop up promos that prevent people from getting to their account page?

God in Heaven, have mercy on those fools. If I ever were to meet them, I wouldn’t.

This particular example is just that — particular and an example. I have a “business class” Comcast VOIP and network connection, here in my home office. A test at the internet speed test just reported a download speed of 17.2 Mbps. I just downloaded a 1 GB zip file in 10:18. That’s not super fast, but I am not complaining about it. I’m at home, not on a corporate pipe. And, I’m connecting through a VPN server in New Jersey, so there’s some overhead there.

So given that I can download a 1 GB file in a little over 10 minutes, why am I waiting, and waiting, and waiting, for that web page to load? Yes, the modern web page is bloated, and consists of maybe 2 or 5 MB of data. Yet, why is the status line reading “waiting for cdn.somefuckedupsitesomewhere…”? Weren’t Content Delivery Networks supposed to speed up the page load?

Why can I not read a web page as it loads? Oh, welcome to the wanked-up world of asynchronous page loads. The genius idea with async loading is that you can have parts of the page ready and operational while other parts are still being pulled down from the server. I don’t criticize this idea … but … when the browser doesn’t know ahead of time how much page real estate to assign to the downloaded object, it resizes the page on the fly, once the object is available to be presented.

Hahaha! This means my displayed content is jumping all over the place as varying portions of the page are resized! I’m half-way through that first paragraph of the news article, when the gigantic video header for the page is popped into the display, pushing down all the content below it. Now, the paragraph I was reading is clear off the bottom of the screen! Oh, hit the spacebar, the page scrolls down, and the content reappears. Okay, now searching for the last line I was reading, and … the sidebar loads, so the browser shifts all the content to the left and restructures the paragraph line lengths! Good one! You almost had me — I almost was able to read the available content before the page had completely loaded. Almost.

I am led to the question — what is the point of the technology? Weren’t we on a mission to make the web better, more usable? The Wanked-up Web World started life as a tool for efficient information exchange across distance. Through no fault of its own, it turned into a “marketplace,” a primarily commercial enterprise in which the information is secondary to the presentation. It’s become a gigantic television commercial, from which there is no escape.

If you go back to look at some old web site pages from 10 years ago, they’re actually usable presentations of information. Yeah, they were mighty plain looking, not jammed up with images, CSS styling, and uber-cool fonts. Some people — okay, many people — hurled common sense down the toilet like Friday night’s beer, with ridiculous design decisions, like blinking text. But, yesteryear’s mechanisms for gobbing up a web site are quaint, compared to the sophisticated tools of user torment now deployed all across the netosphere. Not only has usability been thrown out with the party trash, the party itself was in celebration of having done away with usability and having deployed yet more cool widgets that have suicide hot lines lighting up across America and around the world.

Sometimes, the old ways really are better ways.

Total World Domination

That Google-flavored Kook-Aid

Occasionally, I mention that I have drunk the Google-flavored kook-aid, and contemplate the extent of my perfidy.

Despite the occasional, and usually monumental, blunder, Google is the well when it comes to technical wizardry. The fact that the company’s blunders are ginormous is a testament to how much risk-taking the company indulges.

Doodling

This moment of musing is brought on by this morning’s “Google Doodle,” which is a celebration of Duke Kahanamoku, the “father of surfing.”

Consider the imagination with which the Google team selects its candidates for a Doodle feature. The Doodle is not your run-of-the-mill “today in history” blurb. It usually pops up someone or something interesting and which has probably dropped off the collective radar, or never was on it.

The Doodle often features some kind of interactive “Easter egg,”1 2which you can waste some time figuring out and playing with. These animations range from simple things like making a balloon float up, up, and away; to games in which you can move a character through a series of obstacles and opponents, to win through to a prize.

These interactive animations are all written in HTML 5, meaning you do not need a special plugin like Java or Flash to use them. The Google Doodle was the first place I came across this aspect of HTML 5, a couple of years ago. All done with plain old markup — brilliant.

It Just Works

Gmail, Google Apps, Google Drive, Google Play, Google Music. As a music lover, Google Music is the bomb for me. Whenever I get a tip on some music I haven’t heard, I can almost always find it on GM. If I like it that much, I can buy it. Google Books. Plenty of places to buy ebooks, these days. With Google, I not only buy them (usually, at a discount), I download them and import them into a reader of my choice. I am not stuck with Google Books as a reader, and I am not stuck with reading them only on one (proprietary) device.

The Google Web Toolkit, AngularJS, Dart. BigQuery. Web Developer. The “sync” feature in Chrome browser.3

“It’s Your Money, Use it When You Want to”

Google Wallet! Isn’t this the final step toward World Domination? Not only can you pay from your phone (not completely unique), but you can send money directly from one Wallet to another. Last week, I went through a hellish fracas, trying to send the spouse some emergency funds while she was away, travelling. MoneyGram had some kind of problem, and wouldn’t send the money; and with Western Union, the pay station at which my wife tried to pick up the money had some kind of operator error, as a result of which she had to wait until the next day to get it. The MG would have cost me $25, and the WU did cost me $20.

With Google Wallet, I could have sent her the money, no charge, from my Wallet to hers, in about 60 seconds. Really. I’ve done it, with other accounts. 4

The Google Wallet card has two other features I like. One, the moment a purchase is made on the card, I get a notification of the location and amount of the purchase. Sometimes, when I’m taking the little gal to school in the morning, she pesters me to stop at the convenience mart, so that she can get something for breakfast. I give her my Wallet card. Before she’s back out to the car, my phone dings, and I have a notification from Wallet. I know how much she has spent.

Secondly, the card will allow you to zero out its balance. With my bank ATM card, I can either be declined for NSF, or go over and pay the penalty. The Wallet will not allow me to spend more than I have. It will, however, allow me to spend exactly as much as I have. If my order at the Dunkin window comes to $10, and the Wallet card has only $6.50 on it, the card will disburse the $6.50 and the clerk will tell me I need to come up with an additional $3.50.

Oh, dear, I don’t have any cash — what to do? Well, I open up the Wallet app on my phone, and punch the “Add $20” button. And a few seconds later, I have the additional money to pay up.

Blogger

I will criticize one Google service that I have used, and which just really blows chunks; and that is Blogger. I just could not make that tool work for me. I was constantly fiddling with stuff, trying to get the most basic tasks done, like properly formatting the page, or inserting a picture. I finally gave it up, and have gone over to the dark side, with WordPress. I’m sorry to say it, but WP just works right out of the box, in the way that I want it to work.

Sin Boldly

Folks, it is all in the details. I sometimes have that moment of creeping guilt, at allowing myself to quaff another cup of the delicious beverage. But, Google provides me with tools to do what I want to do, and with a minimal interference. Really — don’t Yahoo users get tired of that screaming advertising cacophony called the Yahoo home page?


  1. An Easter egg in a software application is a hidden feature that can be activated by some (often mysterious) keystroke, or set of keystrokes, or by a mouse click. 
  2. Microsoft Word 97 Easter Egg Instructions for unlocking and playing a pinball game, an elaborately hidden Easter egg in Word 97. 
  3. Chrome browser itself is unique in that each tab in the browser is a separate process, as a result of which, if a web site crashes one tab, the whole browser doesn’t go down. You just close the errant tab. 
  4. Now, I’ve set up herself an account, too. 

That Old Tin Foil Beanie

Local Shared Objects

Today’s poke at paranoia is brought to you by the letters L, S, and O. Together, they form the initials LSO, “Local Shared Object.”

The LSO is a data storage mechanism that originated with Adobe Flash about 10 years ago. The purpose of LSO was to allow Flash to store information on your computer about Flash movies or games that you were using in your browser. The LSO might store your game position, or your location in the movie.

The LSO is like a cookie in the browser cookie cache. However, unlike cookies, a single LSO cache is used by all browsers. Thus, if you play your Flash movie in Firefox, and then later reconnect to it with Internet Exploder, Flash will be able to reload your information stored while you were using Firefox.

About the time that advertisers and web sites began to be hammered by paranoia about cookies, and especially about 3rd party cookies, they discovered the genius of the LSO cache. The LSO data storage mechanism is almost unknown to non-technical users. “Clear browsing history,” in any of its incantations, does not touch LSO. This fact led to something dubbed cookie re-spawning.

When the browser accepts a cookie from a web site, the site may also choose to store a copy of that cookie in the LSO cache. Now, suppose you delete that cookie. The next time you are using that web site, if the cookie is not found, the site will automatically look for a copy in the LSO cache; if it finds one, it respawns or recreates the deleted cookie with the saved information.

Web developers bolted on several methods of manipulating the LSO cache in their web sites. HTML 5 formalized a methodology for this activity. Your friendly web site can now bank information about you in the LSO cache with a few lines of JavaScript on the page.

Haha! You were being so conscientious about deleting your cookies, too.

All is not lost. Newer versions of Firefox now include the LSO cache in “delete browser history,” and other browsers provide options to delete items from it, as well. If you’re feeling, well, paranoid.

Linux Desktops

That Desktop Clutter

Linux introduced me to the twin concepts of virtual desktop and multiple desktops. Although it’s technically possible to do these things on Windows, the implementation is opaque, and in practice, I have found the experience horrible.

Virtual desktop depends on the fact that your monitor screen operates as a “window,” allowing you to view the desktop created by your operating system GUI. (In Linux/Unix, this window is sometimes referred to as a viewport.) By convention, the viewport is the same size as the desktop, e.g. my current viewport is 1920×1080, as is my desktop.

But, that is a convention, not necessarily hard wired into your computer. The size of the desktop is constrained by the native ability of the graphics card. The size of the viewport is constrained by the capability of your monitor (its “resolution”).

I could, for example, have a viewport of 1920×1080 and a desktop of 2970×1620. The viewport would reflect my monitor’s resolution, and the desktop the capability of my graphics card. Portions of the desktop would then be invisible, off the edges of the display, and I would move the viewport around by hitting the edges of the display with my mouse pointer. Virtual desktops are quite useful for working simultaneously in several applications, and switching rapidly from one to another.  The application windows don’t bury each other.

Virtual desktop 2970x1620. This desktop is 1.5 times the size of the viewport.
Virtual desktop 2970×1620. This desktop is 1.5 times the size of the viewport.

Having multiple desktops is the bomb. I currently use 4. Now, I have multiple applications running simultaneously, and segregated from each other. I often keep this browser running on a desktop by itself, while doing real work on the others. I may also keep my email open on its own desktop, or a programming IDE/editor. In any case, distractions are reduced by keeping irrelevant activities off screen, and by a simple keystroke (or mouse movement) I can return to some other activity. After 20 years, I’m so used to this environment, that I’m constantly trying to CTRL-ALT-<arrow> to other desktops on my Windows box, sometimes with unfortunate results, depending on what application I’m using at the time.

Four desktops - four work areas
Four desktops – four work areas

Follow That Mouse

Everybody who has worked in Windows is aware of a basic annoyance.  When you move from one application window to another by clicking into the target window, you reset the position of the application’s cursor.  Whether you are editing a document, or creating a presentation slide, you now have to remember — hopefully, you do remember — to move the cursor back to the proper insertion point, before continuing.  Of course, I often don’t remember, until I’ve whacked my document with an enormous paste operation.

Focus follows mouse is a standard behavioural feature on Linux desktops that eliminates this annoyance.  Again, you can activate it on Windows desktops, but its implementation is sub-optimal and I have found it to be not useful. Focus follows mouse means, simply, that when you move the mouse pointer out of an application window, that window loses focus (becomes inactive) and when you move the mouse pointer into an application window, that window gains focus (becomes active).  Not having to activate a window by clicking means that you do not, cannot, accidentally move the window cursor when you activate the window. (It also means that you have to be conscious of where your mouse pointer is.  It’s possible to start working in the wrong application, if you fail to notice which one is active.)

Because, Linux

It just makes most of my work so much easier.