Curmudgeon Rant #3

December 15, 2014

I continue my rants about platitudes that I’ve seen on Linked In.

Note that just because I rant about these platitudes, I don’t want people to dream and pursue objectives.  But I do get a little fed up with how many times we see these platitudes repeated, “liked” and redistributed without any substance behind them.  They have become the “Have a nice day” phrase of (at least) the technology professional world.

This set of platitudes focuses on interpersonal relationships (focused on but not limited to the office).

Take the following:  A friendship uncultivated will not grow and eventually will whither.  If you forget your friends, you will not sort out the real ones from the phony ones; you will become friendless.


Here are three platitudes positioning the “opinions of others.”  Yes, I understand that it is very important to develop your self-esteem.  But I’m afraid these platitudes can lead to “pathological self-esteem”:  arrogance, lack of compassion and empathy, hubris.  What if your sheep are your employees or your students?   It’s not your road and your road alone.  Any significant endeavor requires support from others.  And in fact, some of those folks may be building the road you are walking on (remember Obama’s misunderstood remarks about building a business alone?).  Be self-confident.  But don’t exclude the thoughts and support of all the people around you including the ones criticizing you, correcting you, and perhaps telling you are going in the wrong direction.

lions yourroad  seeyourself

This next one blows my mind.  It is patently untrue.  Tone of voice can exacerbate a conflict, but I don’t really believe it causes 90% of  the problems.  Think about the real conflicts in the world impacting millions of people:  Israel/Gaza, Ukraine/Russia, Syria, half of Saharan Africa. How many of these conflicts are about the “wrong tone of voice.”   How many times have you as a professional really had a conflict that was tone of voice versus contractual terms, group dynamics surrounding divisions of work, etc.  I hate to say it, but a lot of professional conflicts are resolved because of a Howard Beale moment ( where someone claims bullshit on a situation.  I know I have had my fair share of Howard Beale moments. It is not the preferable solution, but occasionally it serves as the only impetus available.


Finally, I don’t have a problem with the first two pillows — it is the third.  Delete Situations?  How about: face up to situations, work through them, be resilient, adapt, and cope.  Delete?  That sounds like an ostrich sticking its head in the sand.


Curmudgeon Rant #2

October 12, 2014

My next rant covers a bunch of things I’ve seen that are all basically saying:  Don’t be afraid of Failure!

platitude3 platitude1 platitude2 platitude4

Let me throw up another quote:

Insanity: doing the same thing over and over again and expecting different results.
Albert Einstein

There are plenty of times when what you are doing is just plain wrong.  It is important to recognize this.  Sometimes you can’t or shouldn’t pursue something, even if it is your dream.  Or re-prioritize your efforts.  A hobby is not necessary enough to be a profession.

I’ve thought about changing careers.  I’d love to build things; I’m an avid woodworker.  It would be great if I didn’t have to worry about actually making a living at it (not too many woodworkers can make a livelihood from it).  Perhaps it will make a good retirement vocation.

So don’t fear failure…but be self-aware and be aware of how what you want to do fits into reality.  If you are an entrepreneur you need to know your market. Maybe you’ll make a new market (like Steve Jobs did with iTunes).  But realize that this is a rare circumstance.

In my personal experience, I think it is more important to be resilient, to change and adapt. Yes…that’s part of the learning part of failure.  I’m more impressed with folks that take their companies (or personal life) in new directions not so much because of failure but because of a conscious realization that there is a better path.


Curmudgeon Rant #1

October 10, 2014

A while back I annoyed someone on LinkedIn.  She had posted some feel-good post about following your passion or something like that and I commented back that maybe that’s not always available.  (Mike Rowe had a recent article about this very topic which I largely agree with:

This poor person was upset and frankly I say: Too Bad…don’t post to LinkedIn stuff that belongs on Facebook.

Since then I’ve collected a number of platitudes all from LinkedIn and thought I would do a little commentary on them.  This is the first platitude.


The point marked with the Star is an extremely small point.  In fact I think it is almost vanishingly small.  I am 52 and have worked in some wonderful jobs that I have enjoyed, that I have been good at, and I’ve been paid reasonably for that work. But the world has never needed an incremental compiler for a strongly typed language.  I’ve worked for volunteer organizations and I would say most would actually prefer your monetary donations over your physical presence.

If you can find something you get paid for that you enjoy, and you and your neighbor can live with what you do (i.e., you are not hurting anyone), then I think you are off to a good start.  If you can get paid beyond what you need (after saving for your retirement and your kids’ education), then be generous with charities.

If you are young, don’t worry about finding your ideal job.  Try things out.  I agree with Mike Rowe:  You don’t necessarily have to follow your passion; but you should be passionate about what you have found, be flexible, and follow your opportunities.  From that, hopefully you can find something that you are good at, can be fairly compensated for, and have enough time to do what brings you joy even if that is something you’re not paid for.  And don’t forget to help others.

BSP and Parallel Sets…

January 13, 2012

Interesting to see BSP rising up after 20 years. See and

A proof point for an authentication service

November 16, 2011

In “Who are You?” ( I argued what we need a means to authenticate that your online identity matches a real-life identity.

Here is a great example of the problem:  Salman Rushdie found it difficult to prove his identity sufficiently to Facebook to be considered “Salman Rushdie” on Facebook.   Interestingly, not only did they want him to prove his identity (ultimately with a copy of his passport), but also to require him to use the name on the passport (Ahmed is technically Mr. Rushdie’s first name but not the one he goes by).

There are a number of interesting points to this:

  1. Facebook is becoming a de facto primary authentication service.  Is there anything wrong with that?  The fact that it requires membership in Facebook is probably the biggest objection I have.  The current facebook authentication mechanisms are certainly weak.  Would you want to authenticate with Facebook to access your bank account?
  2. Authentication credentials and user name need not be the same.  Many people go by middle names, pseudonyms, nom-de-plumes.  Your authentication credentials may be something very different than a user name (though that may be part of it). SecurID is an example of this:  your PIN/revolving code need not have anything to do with your username.
As I spoke about earlier, what is really needed is an independent, non-profit, vendor neutral authentication service that can manage credentials, the validation of credentials, levels of authentication, etc.
What is happening is that online identity is going to approach parity with other forms of ID.  I can easily imagine just as you swipe your phone as a boarding pass at the airline security point, it may become the means by which you prove your identity as well.  More about this later.



Powerpoint available

October 22, 2011

Here is a powerpoint I presented at MIT. It describes examples where distributed computing and network coding can work together. It includes Battlefield Logistics, Video Caching, and Nanobots.

Some Interesting Examples of Distributing Computing

Privacy is not an Opt In feature

September 25, 2011

When are companies going to learn that my privacy should be the default and I need to Opt-out of it. OnStar takes the opposite approach and should revise its policy.

Hurricane Irene and the Cloud

September 3, 2011

Well, Hurricane Irene has come and gone:  Rain, wind, a disrupted vacation, power out for a day.  All-in-all, not too bad an experience for our family.  My heart goes out who were more dramatically effected by the storm.

What I want to talk about here is why Hurricane Irene demonstrates that the “Cloud” will become ubiquitous (and we’re not talking cumulus here).

It just so happens that at the height of Irene, a customer of mine was having some issues with deploying a software solution for distributing video content.  With no power, no landline, no cable connection I was able to do the following:

  1. Fire up the old generator and get enough circuits active in my house so that I could run a laptop.
  2.  Tether my laptop to my iPhone so I could have Internet access.
  3. Launch a couple of instances on Amazon EC2
  4. Download the latest release from Subversion hosted on Codesion.
  5. Build the software
  6. Deploy the test system through our automated Amazon test system
  7. Send E-mail that the problem is solved

The only local resources are my phone and a laptop, electricity and cell connectivity.  The laptop is only for connecting to my real computing environment in the cloud. See for a discussion of what the ultimate client might be: It is not the laptop and it may not be a tablet either!

The upshot of this is that with fairly minimal resources (a generator, a cell phone), I could do all the work that I could with my “fully connected” office, except maybe play video.  With LTE, that limitation will give way as well.

The “extreme mobile” worker is not new.  What is newer is that:

a)      Connectivity is becoming more ubiquitous

b)      The availability of “cloud” resources is growing

c)      Tools are now web-enabled  (and HTTP is becoming the lingua franca for transport – see

In short, it is easier to be a Hurricane Worker.

What still needs to be done?

  • Connecting to the cloud is still fairly clumsy.  I authenticate a different way to each service: name/password for E-mail,  public key authentication for my Amazon instances, a different name/password for my Codesion account.  What we really need is the ability to launch windows just like I do on my laptop (or tablet for you iPad types), and have all the cloud brokering happen in the background.
  • Lower costs.  In two weeks I burned through 1.75GB of data across my tether.  Over 2 GB and I pay surcharges.  While data costs will undoubtedly drop as the LTE infrastructure is capitalized, the proliferation of WiFi also goes a long way to bringing down costs.  But again, it is a hodge podge of infrastructures with different use policies and logon mechanisms.
  • LTE may make the performance issue moot; it will be about as fast as “normal” cable, though not as fast as 100 Mbps Coax (at least not for a while) or 1 Gbps Optical (e.g., FIOS).  It will be up to the telco’s to see how much they gouge the customer (At 10x the speed do I reach my GB/month limit 10x faster?).
  • Better battery life!  I long for the day when you can work for 24 hours on a single charge (or maybe a single refill of a micro-fuel cell).
  • Integration between the local state of my computing device and the cloud would be nice.  Ultimately all the state may be in the cloud. Today I still need to edit “stuff” locally and upload (Google docs not withstanding).  We want to get to the point where there is virtually no state locally.

This last point is particularly challenging when you consider how easy it is to put state on a device (e.g., a 32 GB iPhone can hold a lot of state).  What we really want is to make that state a bidirectional cache of the cloud state.  That is a blog entry for another day.

A Great Kayak Trip

July 23, 2011

Every now and then I add a non-technical item here (See my posts on Over-fishing and my brother’s band).  I just got back from a short but stellar kayak trip.

I went from the Town of Harvard Oxbow boat landing on the Nashua river and went just north of the Rt. 2 overpass in Ayer.  It is a short trip (under 2 hours one way including a side trip here and there.  On one side of this stretch of river lies the former Fort Devens (and an area still owned by the government if the No Trespassing signs are to be believed).  I think the old Tank Road parallels this.  The other bank is the Oxbow Nature Refuge.

The Nashua is a slow moving river in this stretch (it isn’t much more to paddle upstream than it is to paddle down stream).  I had the river to myself.

What made this such a fantastic paddle was the range (and quantity) of wildlife and plantlife I saw.   The banks are rich with arrow-root, cattails, small purple flowers, red berries, ferns, and moss climbing over fallen trees that litter the waterway.  The water clarity is not great but in one spot I could see a school of 9″ small-mouth bass swimming slowly upstream.  Where the current seems to be non-existent on the surface, it is more evident near the bottom where you see fish and grasses bending to it.

Dragon and Damsel flies were everywhere. To the uninitiated:  Damsel flies are dragonflies that hold their wings together vertically when they alight; dragonflies keep their wings outspread. The damselflies are often iridescent.  I saw stunning green and blue ones. One damselfly rested on my hand. Every now and then you would see a dragonfly dipping to catch an insect on the surface of the water.  Here and there you would see huge masses of tiny water-striding insects that the kayak just glided over, hardly disturbing them.

Upstream from the bass a duck noisly flapped across the water just in front of me, waddling out on the opposite shore.  Looking from where she came I could see a brood of ducklings; the duck was clearly trying to draw my attention from her family.

From there I saw three large great blue herons sunning themselves on a fallen tree.  These would be three of half a dozen that I would see on this trip.

Just before reaching Route 2, I slipped into a very shallow pond that connects to the river (this is part of the large wetland you see on your left as you travel west on Rt. 2 past the Shirley exit).  Another pair of enormous Great Blue Herons flapped away.  The shore was peppered with I think are killdeer (a type of shore bird…though more typically associated with beaches). A number of painted turtles plopped into the water as I passed by. Schools of minnows swam by.

Returning to the river, I passed a gaggle of Canada geese.  Just past the Rt. 2 bridges I saw a lone mute Swan.  I wondered what had happened to its mate.

Also in this area were a pair of Kingfishers with their distinctive white collar, crest, bill and swooping flight.

Finally, on my way back I rounded out the animal kingdom with the only mammal I saw on the trip:  A beaver crossing the river.

Despite a 90+ degree day, paddling on the river was quite pleasant.  Much of the time I was in the shade and the water tended to keep it a little cooler.

Truly an amazing venture practically in my backyard!

Interesting Use Cases of Distributed Communication, Storage and Computation

July 23, 2011

Recently I participated in a brain storming session on distributed communication and computation. One of the challenges we had was to figure out what were the use cases for this type of technology.

Scenario 1:
Imagine a (large) group of autonomous agents geographically dispersed within some region (e.g., on the ground). These agents are mobile, and may communicate with one another. Above the agents (e.g., in the air) are communication “collectors.” All of the agents may communicate with the collectors that are within some proximity. The collectors are also mobile so they come in and out of communication range of the agents on the ground. These collectors can consolidate information and pass it between themselves or perhaps to other receivers.
Communication may be bi-directional. Agents may receive information (instructions) from collectors which may receive it from their receivers.
None of this communication is particularly reliable, is certainly noisy, and may be subject to deliberate interference, and should not be susceptible to eavesdropping.
The information collected may be used, among other things, assess provisioning of resources, identify problems in the distribution of resources, etc. While the information transferred from the agents need not necessarily be complete, instructions to a given agent do need to be accurate.

An obvious example of this scenario is battlefield logistics: soldiers, drones, command center. Other examples might include nanobots in the human bloodstream being sensed by external monitors (that are not necessarily fixed). One can imagine sensors flowing through a network of pipelines that are being detected by planes flying over them. Many logistics problems fall into this category (imagine shipping containers being transported from one side of the world to another). Certainly these examples stress different aspects of the scenario: nanobots in a clinical setting are probably less worried about malicious interference and eavesdropping, where this may be an issue for the shipping container owner who wants to ensure that competitors are not getting competitive advantage by intercepting communication.
Here are some illustrations of this scenario:

What kind of computation might we need to perform with this scenario? Suppose we use our nanobot example. A nanobot can tell you the shape of the space near it, where it is to very fine resolution, and the time to millisecond resolution or better (it may use external signals to determine this information but as we know, these external signals may be poorly received). The nanobot can also signal information (not necessarily electromagnetically). Finally, it is possible to guide nanobot “clumps” to concentrate them in certain areas.
Finally, it may be when there is a concurrence that the nanobots have found a tumor cell, they release a toxin inside the cell to kill it.
We may be dealing with many millions of nanobots distributed throughout the body of the person injected with them. From the information received from the nanobots we can do imaging of the area they are in, extent of tumor spread, constituency of the tumor, etc.

Scenario 2:
The next scenario is from Content is being delivered to a consumer that is in motion passing by cell towers. The consumer is not in proximity of a single tower during the transmission; many towers may need to have the content to transmit. Access to the content is not necessarily linear. For example, imagine someone viewing a movie and rewinding, jumping to scenes, etc.

The simplest approach is to have a central repository of the content and to feed all requests to that repository. This can involve a lot of “back-haul”, network traffic traversing from the handset all the way potentially to web sites on the internet (think NetFlix or Hulu).
The next step to improve this is to place caches closer to the content. Now as a consumer passes from one tower (cache) to another (cache), it will pick up the content from the new tower. This works well if there is more than one user accessing the same piece of content.
The problem with caching the content at the towers is that each cache needs the entire content. With a coding approach, this need not be necessarily true. Instead, we code against a group of towers that will simultaneously transmit “chunks” of the cached content. As towers fade from reception, the fragments can be recovered at forward towers. The net capacity is reduced, and the bandwidth to put the “chunks” in place is reduced: A win-win combination.
With the use of coding, it is also possible to provide some content protection as well. Instead of
encoding the content, the coefficients for the coding can be encrypted. It may be possible to reduce the amount of copies that we need and still have strong encryption results. This requires some more thought.
We haven’t spoken much about computation in this paper. Clearly there are logistic optimization algorithms that might apply to the battlefield and container transport examples. The nanobots might require local consensus algorithms to decide where they are and if they have found a target cell. An interesting question is how to apply inexact algorithms: Algorithms designed to work with partial information (or inexact information) distributed among many agents. Another interesting area are distributed algorithms that work with local information to create global effect. For example, the way ants create trails optimizes the amount of distance traveled without global communication.

In this example, ants see some number of ants in front of them and end up “optimizing the path.
This short paper has tried to motivate distributing computing, communication, and storage with a number of use-cases. We are only scratching the surface.


Get every new post delivered to your Inbox.