Airprint woes

It’s all my fault, really.  This wouldn’t have been an issue if I had just let Xtina use my computer to print her boarding pass, but in my defense I didn’t know that she was doing that.  So I gave her our iPad to use.

When it came time to print, she quite logically asked me how she would do that.  I, of course, did not know how — I’ve never tried printing from iPad or smartphone, though I vaguely knew it was possible.  The issue just never came up and I hate printers.

I knew that it would require avahi, so I started installing that on our printserver while I hit Google to see what else I would need.

The first hit was a very fine article by Linux Magazine, and it explained pretty much everything.  But it’s never that simple, because nothing printed and cups started using 100% of a CPU.

Repeated in the /var/log/cups/error_log a billion times were messages like these:

Request from "192.168.1.32" using invalid Host: field "dandelion.local:631"

That took a little more detective work because I didn’t read the Linux Magazine article carefully enough.  The solution was to add an additional directive to the cups config:

--- /backup/snapshots/dandelion.0/etc/cups/cupsd.conf   2015-06-08 08:33:31.000000000 -0400
+++ /etc/cups/cupsd.conf        2015-06-24 19:29:34.410488191 -0400
@@ -1,6 +1,7 @@
 LogLevel warn
 PageLogFormat
 # Allow remote access
+ServerAlias *
 Port 631
 Listen /run/cups/cups.sock
 # Share local printers on the local network.

Summary:

Gentoo packages required:

  • net-print/cups
  • net-dns/avahi

Also download and run airprint-generate after cups is configured and running.

If you have iOS 6+, which is pretty much a given nowadays, make sure you have the correct MIME types available, and add them if not:

echo 'image/urf urf string(0,UNIRAST<00>)' > \
    /usr/share/cups/mime/airprint.types
echo 'image/urf application/pdf 100 pdftoraster' > \
    /usr/share/cups/mime/airprint.convs

Add the appropriate services to your default runlevel, and start them as well:

# rc-update add cupsd default
# rc-update add cups-browsed default
# rc-update add avahi-daemon default

Offshoring Gone Wrong

Here’s a tale of offshoring gone wrong.  This doesn’t qualify as horribly wrong, nor a disaster, but only because very little money was on the line.

I used to work for a small software company with a well-known product that has a long pedigree (it shall remain nameless, but our major competitor was WinRar).  I actually miss working there —  well, I miss most of it, but I did leave voluntarily.  That’s a story for another time.

We had started translating our primary product into many languages, and we wanted to provide localized translations of our website as well.  In order to save some cash, management decided that we would outsource and offshore the translation of our company website.  Our new president knew of the perfect company to hire, too.

My boss — the VP — and the rest of the engineering and IT team were all a little nervous about dealing with this new company, not only because we didn’t have a great way to verify the work but also because we didn’t have a good relationship with the new president. (Distrust isn’t strong enough a word, but it describes it well enough for this story.)  The first couple of sub-projects came back and looked ok, though, so we started to think we were over-worrying the problem.

Our process was to scrape our own english site, determine which pages and what snippets we would translate, and send those items as plain-text to the translators.  After a couple of days we would start getting the translated documents back and we would build the site.

We had a few bumps along the way, such as getting plain-text documents with an unspecified code-page — we had asked for, but didn’t initially get, UTF-8, but we eventually had them send us the documents in Word to remove character-translation problems — but the process seemed to be working overall.  We ran the the translated documents through Google Translate to make sure the reverse translation (back to English) looked ok, and it did.  In retrospect, it was a little too perfect.

So, fast forward a couple of weeks, we get the third or fourth package back. My boss noticed something… odd on one of the pages. It was worth calling the rest of the team into the office to check it out, stat!

If you guessed that it was an artifact from Google Translate’s page – just a straight copy and paste from browser to Word document that picked up a little too much – you’d be correct.  Cue immediate back-pedalling from the vendor that “it was just that one document” and “the other translations were done by hand” and by native speakers.  Haha, not so much.


Author’s Note: Though this post may seem, at first glance, to be a warning against offshoring, it’s really a warning about hiring executives with too-cozy relationships with vendors.  I’ve seen offshore projects go well and go sour, but the nepotism I saw with the above-mentioned new company president were almost always followed by a bitter taste in our mouths.

On Minimum Wage and the Post-Scarcity Economy

8 Hours for Work, 8 Hours for Rest, 8 Hours for What We Will

Lately, it seems like everyone is talking about the minimum wage.  Should we raise it?  Should it stay where it is?  Should we lower it, or even abolish it?  This looks like it will be a major question in the upcoming presidential campaign, as the candidates have already staked positions (with some candidates making it part of their platform).

It seems that everyone has a strong opinion on this.  We can all agree that the outcome will have real consequences but no-one agrees on what the outcomes will be.

Smart people, with real data to back up their claim, may predict any of the following:

Scenario Effect on the Economy
Raise The Minimum Wage (Doom Scenario) Prices rise, employment falls as businesses stop hiring and even trim their workforce to meet payroll costs. Wide-spread unemployment coupled with higher prices wrecks the economy.
Raise the Minimum Wage (Sunny Scenario) Profits rise as minimum wage workers, now with more money in their pockets, go on a spending spree. Lost profits are made up by increased volume. Some people trade 60+ hour work-weeks for more leisure time, which means there are more jobs to go around just as demand picks up – unemployment falls rapidly and wages generally get a bump – but competition keeps prices down.
Keep the Minimum Wage the Same (Doom Scenario) Stalemate: as the spending power of the dollar slowly falls over time, minimum wage workers slide further into poverty. Demand for welfare services and charity slowly rise alongside. The economy stagnates as a permanent class of have-nots emerges.
Keep the Minimum Wage the Same (Don’t Rock the Boat Scenario) Stalemate: the economy keeps chugging along without major disruption. Nobody is happy, but things remain stable.
Keep the Minimum Wage the Same (Sunny Scenario) With the certainty of stable wages, business are better able to plan ahead. Productivity gains translate to better wages as a reward – for those able to best achieve those gains.
Lower or Abolish the Minimum Wage (Doom Scenario) The average worker desperately agrees to more and more work for less and less pay, in a vicious race to the bottom.  Oligarchs take over the country and the middle class disappears.
Lower or Abolish the Minimum Wage (Sunny Scenario) Businesses pay dilettante workers (high school kids, mostly) much lower wages, but adults make significantly more; the money saved by paying unproductive workers less are passed on to consumers, so most people see their dollars go further.

Every choice has at least two contradictory outcomes.  They can’t all be right.

Those arguments are almost beside the point, however.  What we’re really arguing about is what happens as we approach, but haven’t quite reached, a post-scarcity economy.

An easy definition of a post-scarcity economy that many people can relate to is Star Trek: there’s money, but it’s de-emphasized because everyone gets what they need to live. No guarantees of easy meet-ups with green women as you aimlessly flit around in spaceships for five-year missions, though. See also: The Star Trek Economy: (Mostly) Post-Scarcity (Mostly) Socialism

(The wikipedia entry doesn’t do justice to the concept of post-scarcity.  It’s not exactly Utopia, and it’s not unlimited wealth.  It’s the ability to produce enough material wealth, at near-zero cost, to provide a reasonable standard of living to everyone.  It’s like Europe without the taxes.)

Across the economy, per-person productivity is rising at logarithmic rates. Consider cars: they used to take days, literally days, to manufacture.  In the early 21st century manufacturers produce a technologically-superior car in about two shifts – 16 hours.  One factory, with fewer people, can make over 400% more cars than a century ago.

We’re continually figuring out how to improve our business processes to make them more efficient, and using technology to supplant our workforce as well.  Self checkout lines at the supermarket easily come to mind.  There are now McDonalds restaurants where you order from a kiosk instead of a cashier.  We bank online instead of writing checks.

This is clearly what people want.  Technology makes our lives easier and more efficient when we don’t have to drive to the bank, or worry that our food order wasn’t understood correctly.

Bookkeeping department circa 1900

Bookkeeping department. Listed by source as c. 1900, but likely to be 1890s. Bookkeeping is being done by writing by hand in ledger books. Credit: http://www.officemuseum.com/photo_gallery_1890s_ii.htm

Technology saves us from the most dreary drudge work, like totalling accounting ledgers or weaving fabric by hand.

As mechanisation progresses, and more of our needs are met with fewer people involved, what happens to the rest of the people?  That’s really what the minimum wage argument is about – the lessening demand for labor.  As productivity rises, meaning we make more stuff for the same amount of labor, demand for labor (a.k.a. workers) decreases over time.  The law of supply and demand tells us that lower demand leads to lower prices (wages).

What do we do when we don’t need much of anybody to feed and clothe us? Our population isn’t growing so demand will not rise, and that means you can’t make up the difference in extra productivity with extra demand.  What do you do then?


Author’s Note: My intent is to pose ideas and ask questions, letting the reader answer them.  I’m purposely taking an apolitical view of the minimum wage in this article; if you can point out bias on my part I will gladly fix it.

My only assertion is that a post-scarcity economy may be looming.  I’m not claiming that the sky is falling.  Technological change has changed the labor landscape before and people worried about lost jobs, some even lost their jobs, but somehow new work came along.

We have a long history of upheaval caused by technology, with bouts of low employment followed by booms of full employment.  Ask any stable-hand or stone axe maker how their employment prospects are nowadays, and then introduce them to your local programmer or aerospace engineer to make them cry.

New technology replaces old.  A century ago a computer had barely been dreamed of by a few – thank you Mr. Babbage – but today that’s how I make my living.  That’s technological progress.

I believe that an upcoming cycle in the not-so-distant future may be different, in that afterwards we will have entered a post-scarcity economy – and we probably won’t even realize it until after the fact.  We’re not going to live in a utopia yet, but that day may come to pass while some of us are still in living memory.