The End of Employment – Eternal 20%+ Unemployment

Theses are some inconclusive thoughts I’ve been having lately, not a manifesto. They are somewhat re-inspired by Francine Hardaway’s recent write-up on the subject.

Industrial efficiencies are increasing exponentially, and are rising much faster than human productivity. It is now economically beneficial for factories in China to replace laborers with machines and computers, even when the workers are paid only dollars a day. This mirrors the job stagnation in the United States, where companies are finding they do not need as many employees as they once did, and competition for jobs requiring less skill overwhelms diminishing openings.

In the radical future, goods will be manufactured cheaply in our homes and neighborhoods. Computers will drive, design, harvest, and manage resources, even improve themselves, better than humans could. The need for “less skilled” labor will evaporate rapidly as we become both masters and slaves of terrifyingly efficient technology. We will have the real possibility of every human living for 500 years almost entirely supported by machines that can cater to our every need. Depending on your constitution, that could sound like paradise or hell – but we are already partially there and the next 50 years will be an era of staggering change in that direction.  The other possibility is continuing on the trend we are now, where a large portion of our population is becoming less employable and wealth is becoming unhealthily concentrated.

There are a few shorter term consequences to the wane of lesser skilled jobs:

1. The demand for unskilled labor has plummeted such that it greatly undershoots the supply — now and forever. We must learn to deal with the significant portion of the population that will always be unemployable in anything other than unskilled labor due to a lack of training, education, intelligence, discipline, interest, or other reason. There will be no recovery in jobs for these people, and while 20%+ employment could become the norm, it will exceed 50% for this group. Those exact numbers are arbitrary, but I think they are in the ballpark.

2. With less need to pay employees while generating wealth, that wealth increasingly flows to the few who can exploit these new technologies and efficiencies – the managers and investors in companies. A very small team can now design, produce, and distribute almost any product, and should that product be successful, most of the profits will go to that small team and their investors instead of being widely dispersed to factory workers, store owners, distributors, salespeople, and other shrinking economic actors.

3. Employment is declining as the primary distributor of wealth to support the middle class, and thereby the consumer economy. Employment really only served that purpose for the seventy or so years of manual-based industrial expansion, and there is no reason to expect it will happen again. We’ve all heard the story of Henry Ford generously paying his workers so they could one day afford his cars. Every year that goes by, he would need fewer and fewer workers to run his factories, and we could hardly expect companies to endlessly employ people they do not need.

What can we do? Truthfully, I have no solution to prevent the world from falling back into a medieval dichotomy of oligarchs and the economically detached masses. Here’s a few non-conclusive thoughts:


It is to everyone’s benefit to bring as many people as possible into the skilled labor pool. Heavy investment in education is a no brainer. Unfortunately, simply increasing funding is not the answer – we already invest a lot in education by world standards and are still failing.


In the past, generating wealth required heavy investment in people, and we could expect some of that wealth to trickle down to employees. While generating wealth still requires people, it now requires many fewer and therefore much less distribution of that wealth. Without employment, the only way to ensure our society isn’t undermined by poor, unemployed, dissatisfied masses, and to maintain the middle class necessary to drive our economy, is to tax the wealth and somehow make sure there is some proportional benefit to everyone.

Distribution of Wealth

Somehow we need to make sure we don’t have starving or unnecessarily sick people living in the streets, and instead have strong happy societies. In any implementation, this inherently involves a transfer of wealth from those who generate it to those who can not – “conservatives” must learn to face this unpleasant fact – the recent short-lived phenomenon of a job-based middle class is fading.

We could directly feed, house, treat, and clothe those who can not work, however that approach has the fundamental problem of undermining basic societal bonds and incentives. There is a perverse incentive to avoid self-sufficiency and economic entanglement. And how do we decide who gets subsidies? If some is not working, is it because they can’t or would prefer to live on the dole? When you try to transfer wealth to the unskilled, it’s often the skilled who exploit the system. Whether or not to help those who don’t help themselves depends on whether they can’t or won’t. This false distinction is fundamental to the battle between so-called conservatives and liberals in America. The distinction is false because both groups exist along a broad scale, but it is extremely difficult to know where someone lies and how much subsidy they should receive.

We can also increase government spending, but that always turns into a bureaucratic nightmare of inefficiency and corruption.

Another option might be to simply tax and distribute a portion of wealth evenly regardless of need, much as the conservative Sarah Palin territory Alaska and the United Arab Emirates do with their oil wealth. This is a clear, simple, fair distribution of wealth. Because of it’s fairness and lack of social engineering, it is less likely to undermine market economic incentives to work. You might argue it’s unfair to those who generate the wealth, but ultimately more wealth may be generated from a society with money to spend and the world will be a happier, more stable place for the rich to live in.


As a society, we are rapidly approaching a point where we could all be healthy and happy if we can find a way to marshall our resources. That’s a good thing. This is not a zero-sum game. Somehow, we need to find a new way for everyone to benefit from and contribute to economic growth, because we do not have the need for 6 billion employees.


US Debt Should Be Downgraded – Rip Off This Band-aid

Does anyone remember what caused the financial crises a few years ago? Basically, junk debt was sold as high quality debt largely because rating agencies didn’t do their job, and when the emptiness of that debt became apparent, enormous wealth evaporated.

This sounds familiar in the current crises of US fiscal policy. The definition of a AAA rating on bonds is that they have “virtually no risk of default.”  Does anyone really believe this is true of the US? Debt is approaching 100% of GDP from under 40% just 20 years ago, influential political groups are threatening to choose default over losing their political battles, and our entitlement programs are outrageously unsustainable. While the US has a good chance of recovering from these threats, there is certainly a significant risk of eventual default, and getting away with lying to world markets about this default is a dangerous game.

US debt should be downgraded so that markets can adjust. Piling false credibility on a shaky foundation makes collapse both more likely and more catastrophic. Downgrading US debt now would be painful, but beneficial in the long run. It would force more reasonable diversification of the world’s wealth among commodities and debt markets, and it would force major changes in the US fiscal policy which ultimately could earn a legitimate and sound AAA rating.

I predict the current rating will hold, but purely for political and self-interested reasons of the rating agencies – just as they did with real estate debt in the first decade of this century. When there is no consequence for taking bad risks, markets fail to account for them and debtors fail to to adjust. Ratings exist to measure and communicate risk, not to preserve wealth and stabilize markets. We already saw what happens when they are used for that purpose.

The US should absolutely not default, however S&P and Moody’s should downgrade America’s debt.


Sprint SmartView works in 64-bit mode on Mac OS X Lion

Not the most exciting of topics to resurrect this blog, but I hope this is helpful.


I’ve been a Sprint mobile broadband customer for many years. Mobile broadband on my laptop is a godsend – flaky cafe wifi, Caltrain, airports, buses, roadside or camping emergency bug fixes, remote areas, hotels, new apartments – there are many situations where either wifi is unavailable, inconvenient, or expensive.

Some time last year, Sprint partnered with Clear and began offering WiMAX higher speed mobile broadband under the overloaded “4G” moniker. I’ll spare you the story here, but I ended up with a heavily discounted 3G/4G package, so I now have a U301 device and use both networks. Unfortunately, the 4G network has serious shortcomings – it takes several minutes to get a signal and connect, and isn’t as fast as it should be. That said, my plan has unlimited 4G and it is faster when it works, though too often it doesn’t and coverage is spotty.

The Problem

TLDR: Mac OS X Lion boots in 64 bit mode by default, rendering the Sprint SmartView crapware necessary to use the Sprint network inoperable. By various reports, Sprint estimates it will be SIX MONTHS before they release a compatible version.

As many Sprint customers who purchased new Macs or upgraded to Mac OS X Lion have noticed, the classic Sprint crapware called SmartView that powers their devices only runs in 32-bit mode. Starting it in 64-bit mode gives the error message “This application has not yet been tested on 64-bit systems. Reboot in 32-bit mode for best results” and you can’t connect.

Since February, all new Macs have booted in 64-bit mode by default, so this has been a problem for some people since then. Beta Lion releases have been available since February. Despite almost every other application vendor timely accommodating the OS upgrade, a Sprint CSR recently complained that they only received 1 day’s heads up about Lion’s release, referring to the official final release announcement. Apparently, Sprint relies on press releases and customer outrage instead of Apple’s excellent developer programs to learn of upgrade incompatibilities, otherwise they would have fixed this 4 months ago.

The Solution

For reasons unclear to me the “Run in 32 bit mode” checkbox is not available in the Get Info for SmartView. It’s possible to get a 3G connection by dumping SmartView (ahhh) and using #777 as a phone number in your connection settings, but I’m going for a full on 4G connection.

Despite Sprint’s insistance that they need 6 months to release a solution, all you need to do is upgrade a single library. Thanks to n6mod in EVDOForums for uncovering this solution.

1) Download the Clear Beta Driver for Lion. not the “Mac Driver” – download the “Beta” for Lion. And don’t install.:

2) Install Pacifist, which will make accessing and installing the necessary files easy.

3) Right/control click the Clear driver file and choose Open With > Pacifist.

4) When the Clear driver opens, drill down to Contents of CLEAR Connection Manager.pkg > System > Library > Extensions

5) Right click on BeceemAppleWiMAXAdapter.kext and choose Install to Default Location. Approve any overwrites of installed files.

6) Restart and you should be good to go. Although you will still get the warning, SmartView should work with 4G. Be patient, crapware needs time to think.

It’s going to take six months for Sprint to update this library in their software, so get used to it.

Google joins in sleazy (yet legal) tax evasion

Google is cheating you out of $60 billion dollars

Lots of business practices are considered legal but sleazy, and above-board companies won’t engage in the them even if they increase profits – from high pressure sales tactics to child labor where its legal. Why is it that companies like Google and Microsoft are given a pass on using their many-million dollar legal budgets to push the US tax burden onto the rest of us?  How do you feel about Google when you are writing a $10,000 check to the IRS with the knowledge that Google isn’t writing a $60 billion check because they have better lawyers?

By essentially not paying taxes, Google is forcing the rest of us to pay more, and they are reducing their incentive to work within the American political system to promote sensible tax reform if they object to our existing tax system.  It has to come from somewhere, folks.

Can we all please recognize that this sort of legal tax evasion is sleazy and unworthy of a company that takes “Don’t be evil” as their motto?

Fleximage rails plugin for images

I looked at a few image plugins for rails.  My requirements:

  • Arbitrary rmagick transformations
  • Automatic fetching of remote images from a url
  • Easy import from local file system
  • Handling of file uploads
  • On-demand of generation of transformed images

Dragonfly looked promising, but I first went with fleximage, because of its simpler support for local and remote file imports.  I didn’t like that it wanted images to have their own models, but since I only needed one image per model, I decided it would work with my existing models.

In the end, fleximage had some fatal flaws:

  • Fleximage generates images on the fly, with no file system caching.  This means that any time you are running without a page cache, you are doing all your transformations on every request.  That is a pain in development, and relying on a transient page cache to preserve the results of a very expensive computation is not acceptable.
  • Fleximage uses it’s own templates with a .flexi extension.  These are mapped to controller actions the same way .haml or .erb files.  Unfortunately, this is a largely useless and cumbersome step.  There is no reason to define a template and a route for a simple transform that can be declared in view, something dragonfly handles much more sensibly.  It also unnecessarily separates file types, so you need to call image_product_path(‘foo’, :png) in order to reach your image.png.flexi “template”.  The creation of a new type of template is just an unnecessary complication.
  • Fleximage only supports one image for each model, and the name of the attribute is hard coded.  This greatly limits the gem’s flexibility and in many cases necessitates unnecessary models.  The principal is that each image is its own resource and deserves its own model.  That may be true in some cases, but not in general and a gem should not enforce this convention.

Fleximage is an interesting attempt to bring RESTful conventions to image processing, but fails to be  practical solution in many cases.

I’ve switched to Paperclip, which I had not realized appears capable of meeting most of my requirements.

Quick iterations with Scala, JRebel, and Maven

As a developer who’s followed a path from Java through Ruby to Scala, I miss the quick turnaround time an interpreted language like Ruby enables: change your code, hit the up arrow on your command-line and hit enter. Despite all the debugging time and headaches type safety saves, adding a compiling step still slows iterations.  (This slows me personally down even more because I always try to jam some other activity, like writing this blog entry, into my compile times.)

One thing I don’t miss about Ruby is the console, but only because Scala has one. For you Java/PHP developers, a console is nice to have because it lets you quickly test out little snippets of code, both to verify some syntax you forgot and to test your objects.

Using the maven-scala-plugin, the free JRebel plug-in, and the scala console, I’ve been able to get pretty close to script like iteration speed.

  1. mvn scala:cc – The scala continuous compilation command is part of the maven-scala-plugin.  It saves the maven startup, compiler startup, and human command-line time.  When you save a source file, the process detects the change, and nearly instantly starts compiling.

    Unfortunately, scala:cc exits when there is a compilation error, which is annoying in practice.  I’d prefer it either waited until a file changes to start compile again, or at waited for a keypress.   To work around this, I use the following command:

    • (while true; do mvn scala:cc; sleep 10; done)

    That will keep your CPU a bit overly busy, but will save you some thought.

  2. Use JRebel.  The JRebel plugin-in, a costly but probably well-worth-it library for Java developers, is available for free for Scala developers in what I assume is a random act of kindness.  JRebel detects changes to class files and reloads them without restarting the runtime, and it generally just works.
  3. Use the Scala console to run your code. The console is easily launched using maven-scala-plugin with the command: mvn scala:console

Now every time you save a .scala file, it will be compiled.  Wait the few seconds for compilation, then run your test command in the Scala console, for instance a command-line simulation: liivid.MyClass.main(Array(“–test”)). JRebel will reload any changed .class files. The console has a convenient command line history (try the up arrow), which it preserves even after restarts.

I still can’t iterate as fast as I can with Ruby or PHP, but this is huge improvement.

As a side-note, I am playing around with the Play framework, a Java and soon-to-be Scala framework which uses some clever magic to allow interpreted language behavior in a Java/Scala web framework. I’ve been playing with it in Java, and really like it. Just change your source file and reload the browser – no need to wait for compilation. Very convenient. The Play framework is also stateless, and contains a fully integrated stack with hibernate and a built-in, production ready (supposedly) webserver – no piecing together Spring, Maven, and whatever else configs. Check it out..

Small Violin Plays: TechCrunch Criticised by Microsoft-employed Blogger

Arrington calls Obasanjo a moron

Somebody pull Arrington away from the keyboard.  Welcome to the age of the Twitter-cation, when minor celebrities can show their human side by publicly grandstanding about who is a bigger moron.

Expect general silence about this entertaining meltdown from the silicon valley digerati, many of whom pant at Michael Arrington’s every word. Most will be loathe to risk Arrington’s annoyance, since a shout-out on the TechCrunch blog is seen as a key PR turning point for a struggling startup. (The truth is TechCrunch can generate a lot of clicks and a half day of high visibility to entrepreneurial geekdom, but most of the new “users” will be valley news junkies afraid of not knowing about the next big thing and any link-love will be temporal as you’ll be on the second page in less than a day.  It’s good PR, but will not change a company’s prospects.)

TechCrunch, for the 99.9% of the world who have never heard of it, is a tech startup blog. The content is high volume, often interesting, usually opinionated, frequently critical, and heavily focused on social media. Stinging criticism of startups is often presented with god-like certainty. The criticisms are sometimes valid, and sometimes seem personal. Such is the right of a blogger.

Michael Arrington, the TechCrunch blogger, caused general LOLing today by continuing his earlier lashing out about Dare Obasanjo, a far less visible blogger, for poking at TechCrunch for being too negative on the influences of economic capitulation on startup-dom.  Arrington accuses him of representing Microsoft’s attempts to discredit TechCrunch, despite the fact that, although Obasanjo is a Microsoft-ee, his blog does not seem to be Microsoft focused.

See for yourself.   My favorite:

@MossyBlog settled down, gave it some thought, and I still think you’re a moron. and oh yeah, I just uninstalled silverlight. jerk.

The story goes like this:

  1. Hotshot blogger criticizes lots of companies, says their technology is inadequate or predicts failure.
  2. Blogger employed by Microsoft uses his personal blog to criticize said hotshot blogger for being negative.
  3. Hotshot blogger upset that he was criticized and makes a scene about evil Microsoft conspiracy to crush him.
  4. Companies that hotshot blogger criticized scratch chin.
  5. Hotshot blogger uninstalls Silverlight.

UPDATE:  Arrington cancels Microsoft coverage:

TechCrunch Microsoft asked us to live stream a Ballmer talk after the PDC. Accepted last week, just canceled. We have better things to cover.

Michael Arrington about 5m ago via web

Take that Ballmer!

Sarah Palin Lies About Her Beliefs – How to Tell

It doesn’t take a CIA trained interrogator to see that Sarah Palin is lying about her beliefs.  She has a clear-as-day liar’s tell.  Her neck tenses briefly as she closes in on a fib, and she closes her eyes, smirks tensely, and bobbles her head uncomfortably as she tells it.

In some way this means she is honest.  Her soul and her heart do not want to lie and her unconscious struggles to stop her, but loses.  Her cerebral ambition, and the pressure from her coaches, compel her to deception.

Watch this video from 1:09 to 1:15, first with no sound and then with sound. When you are done, watch the whole video if you like to see how different she looks when she isn’t lying.

(I tried to use YouTube params to have it play just that time period, but I couldn’t get it to work. Fixes appreciated.)

Please send me other examples of Palin’s liar’s tells if you find them. (I’m not interested hearing about her lies – those are covered elsewhere.)

Chinese monitor Tom-Skype chat

From a recent article on Ars Technica forwarded to me by my mother:

In a joint report between ONI Asia and the Information Welfare Monitor, author Nart Villeneuve details evidence that China not only monitors and logs text chat, but also targets specific users for further monitoring.

The article was based on a publication entitled BREACHING TRUST: An analysis of surveillance and security practices on China’s TOM-Skype platform.

Like it or not, it is the policy of the Chinese government to monitor whichever communications they want, and to respond in whatever way they want.  All Chinese know this.  There is no promise of privacy to breach.  This applies to communications with an endpoint in China, in a state cooperating with China, or any location managed by a Chinese or sympathetic company.

The real story here is that eBay is unlikely to end its relationship with Tom Online because the Chinese government would retaliate by crippling all eBay services inside China.  This is the same sort of leverage that prevents CNN and FoxNews from overly negative reporting on China, and forced Yahoo to reveal the identity of a high profile dissenter several years back.

The Chinese government uses its powers to hurt the interests of uncooperative entities.  Anyone who does business with the Chinese government, Chinese companies, within China, or travels to China subjects themselves to strong-arm tactics by the Chinese government and is therefor a de facto collaborator with the Chinese government.  That does not mean you should not do any of the above – the Chinese government is not all bad – but there should be no misunderstanding about what you are doing.

Other facts you should not be shocked to hear:

  • All instant messages (Yahoo, AIM, MSN, ICQ) are monitored and censored.
  • All message boards are monitored and censored.
  • All emails are monitored.
  • All SMS messages are monitored.
  • Phone calls can be monitored.
  • Mobile phones can be located and tracked.
  • All call records are available to the Chinese state.
  • Many mobile phones can be transformed into a transmitting listening device by sending a signal over the network.  (This occurs in the United States as well.)
  • With the combination of location tracking and call records, the Chinese government can easily tell who you are meeting with, where and when you are meeting, who you are communicating with, and what you are saying.  Anyone working against the interests of the Chinese state, its allies, or agents, can easily be discovered along with their network of collaborators.
  • Hotel rooms, business offices, homes, and any locations that arouse suspicion are routinely monitored with bugs.
  • Hotel and airplane travel records are stored centrally and accessible to the Chinese state.

There is no expectation of privacy from the state in China.  The Chinese state does not respect the privacy of communications, homes, or businesses.

Tom Online is the Chinese partner of eBay (which owns Skype,) and distributes a modified version of Skype for China.  There is no reason I know of to use the Tom Online version, unless you wish to subject yourself to monitoring.

Anyone inside or outside China wishing to make sure all of their communications are not subject to Chinese monitoring should use a secure tunnel with a server outside China, and avoid communication that passes through resources tainted by Chinese access.

If you have ssh on your computer and have access to a Unix account outside of China, the following command will create such tunnel:

ssh -qTfnNC -D 9999 [user]@[host]

You must then proxy communications through the host initiating the tunnel.

Google IO Notes

(This post is a work in progress and probably contains mistyping and perhaps factual errors.)

My brief take:

  • GWT is awesome.  With the new version, the Javascript generated from your Java code will almost universally be better or at least as good as the Javascript you would write.  You also get incredible leverage you get toward targetting different platforms (including iPhone and Android,) and the productivity and satisfaction boost of using advanced development tools that give you refactoring, autocomplete, and no spelling mistakes – features only possible with strongly typed languages like Java.  Lombardi demonstrated a sophisticated process diagram application that they developed 3 times on different platforms (Flash, Dojo, and finally GWT.)  Their experienced conclusion was that you lose nothing by using GWT.  GWT doesn’t really hide anything from you – it just gives you Java and gives you the leverage of virtualizing your Javascript.
  • AppEngine is a great platform, especially for startups since it’s free up to 5 million page views per month.  Here are a few bullets.
    • Learning the AppEngine datastore concepts (e.g. “entity groups”) might be tough for many people, and you need to follow some distributed programing techniques, unfamiliar to most web developers, to build scalable applications.
    • Python is back!  AppEngine is Python only for the forseeable future, so Django – an excellent web framework – is the likely platform for traditional web applications.
    • Serious limitations in the current version:
      • No full text search.  There are some hacks to get close right now, but it’s no Google.  This features is likely to be added.
      • No long running processes.  Your requests are limited to 5 seconds and a smidgen of CPU.
      • No data import or export.  You will need to do everything through requests.
      • No outgoing requests.  You can’t open a socket, but there is supposedly a curl library.
      • 500Gb of storage.  This only should be a limitation for a very few people.  If you have media files, store them on S3.  If you’ve got that much user data, maybe you should work on making money instead of porting your app.
      • No way to exceed the 5 million page quota, although estimated pricing for future versions was revealed at around 10-12 cents per CPU hour.
  • Android is pretty darn cool.  I didn’t spend much time at these presentations, but the demos had some features that put the iPhone to shame.  I loved the pull down status bar.  Touch and pull down and the status bar shows expands to detailed interactive versions of your notifications.
  • New APIs for YouTube, a Google Earth browser plugin, and a number of other presentations were compelling, but were not in my area of interest.