Wednesday, February 22, 2012

Ghost in the Machine - secondary, tertiary, etc.side effects

Was listening the the This Week in Tech podcast and caught a comment by Kara Swisher. The statement dealt with the Wall Street Journal article Google's iPhone Tracking: Web Giant, Others Bypassed Apple Browser Settings for Guarding Privacy where she felt that the Google was not honest in their claim that the code applied to bypass Safari Web Browser settings was not to steal user information. Here is where someone who has not been involved in the development of software systems of any size fails to realize that when you have several coders working on a system, some pieces of code have side affects that have not nor could not be anticipated, period.

Yes Google has some brilliant software engineers. However, even the best minds cannot foresee all or most secondary and tertiary effects of a piece of code. To simply say that they knew all ramifications of the code is not to consider the complexity of their systems.

I am not saying that Google is always ethical. I have submitted previous posts that clearly state that I understand the danger of user data potentially being misused. I am not so naive to think that they are not interested in making money. But I am not sure that this case, that stemmed from code added that was designed to make different web browsers consistent which is a better experience for the user, is the result of malevolence to steal user information. It is certainly possible for it to be used in that way but again, this really could be a case of an unintended side effect or what is commonly termed, the ghost in the machine.

Tuesday, February 21, 2012

Use and Calibrate the Compass

Seth Godin makes a good point in his blog when he states:

The map keeps getting redrawn, because it's cheaper than ever to go offroad, to develop and innovate and remake what we thought was going to be next. Technology keeps changing the routes we take to get our projects from here to there. It doesn't pay to memorize the route, because it's going to change soon. The compass, on the other hand, is more important then ever. If you don't know which direction you're going, how will you know when you're off course?

The map may be easier but as Godin says it will be constantly changing. Therefore, let's get good at using a compass.

To find our direction, I must turn the compass dial until the North mark and the "Orienting Arrow" are lined up with the North end of the needle. Then, whichever direction is on the opposite side of the compass, that is the direction you are heading. Now, orient yourself to the direction you want to go with the compass dial until the North mark and the "Orienting Arrow" are lined up and you are good to go. For example, the picture below shows you pointing west.


Now, you can take any road that will allow you to go west and not be stopped if the road your on is closed. Just navigate to another road going west by the use of the compass.

Of course, the compass in Godin's article was a metaphor. Yet, this concrete example shows us that we need to get better at calibrating our compasses or our sense of the proper direction. We need to determine the best direction via "the compass" and stop memorizing maps to get where we are going professionally, personally, the maps will be changing faster as we move forward in our journey.

I need to remember this next time Google Maps leads me into a corn field instead of where I wanted to go!

Saturday, February 11, 2012

...fatal error: parser/kwlist.h: No such file or directory compilation terminated on Ubuntu

Yesterday I was compiling and installing the latest source code for pgAdmin3, a popular Open Source administration and development platform for the PostgreSQL database, on my netbook with the Ubuntu 11.10 operating system and ran across the following error:

...fatal error: parser/kwlist.h: No such file or directory compilation terminated. 

Earlier this month I had built and installed pgAdmin3 on two other systems and ran into the same problem. Because I had hunted this header file down and stored it on my Dropbox account, I had it handy and dropped it into the source code and went on my merry way with the build. 

Therefore, for those who run across this issue I have linked the file here.

Simply drop the file into the /theSourceCodeDir/pgadmin/include/parser directory and reissue the make command. 
Enjoy  :-)

Friday, February 10, 2012

Build an adaptive culture that will invest in process only when it is needed

I just watched a great video with Eric Ries, entrepreneur-in-residence at Harvard Business School and author of the book The Lean Startup: How Today's Entrepreneurs Use Continuous Innovation to Create Radically Successful Businesses.

Within the video he examines the technique of the "5 whys." In short, those involved in a lean startup will for each problem they must tackle (1) ask "why" at least 5 times digging further into a  problem with each "why" questions. (2) Next they are to find the human problem behind every seemingly technical issue. And finally, (3) make a proportional investment in each of the 5 "why answer" layers. This will build an adaptive culture that will invest in process only when it is needed and not expend valuable resources.

For example, let us suppose you are part of startup X and one of the startup's main partners asked a software developer, "Why didn't we get that last feature into the release to show to the investors?" That was why number 1. The software developer answers, "Because I did not have enough time." The partner then asked, "Why didn't you have enough time?" Again, why number 2. "Because I can only add features to the application on week-day nights." "Why only on weekday nights?" Why number 3. I think you are getting this by now. "Because I have a full-time developer job that I work during the week and I want to spend time with my family on the weekend." "Why did we not consider your time limitation when prioritizing features and do the more important features first?" "Not sure, I was told to add the features in this order." "Why who was it that told you those features?" "The project manager."

We see the human factor here is both the developer resource limitation as well as with the program manager on how the priorities of the software program's features were determined.

Proportional investments into the first three layers could be addressed by adding development resources. The last two layers could be remedied by the full team collaborating on what the startup's software should feature. Simple and elegant. 

Thursday, February 09, 2012

Weblining - what you'll miss

In the previous post I discussed how the use of the results of the analysis of individuals' aggregated data and what Lori Andrews termed "weblining." 

Andrews sees the limitation of chance encounters as well when considering the results of a demographic segment's data analysis in targeted advertisement. "When young people in poor neighborhoods are bombarded with advertisements for trade schools, will they be more likely than others their age to forgo college? And when women are shown articles about celebrities rather than stock market trends, will they be less likely to develop financial savvy?" 

In other words, media content tailored to the individual's preferences may lead to a lack of exposure to new products as well as ideas and view points. This area of negative impact from this use of data aggregation analysis is what I and others before me call the loss of serendipity. defines serendipity as "an aptitude for making desirable discoveries by accident."

Lenny Rachitsky, in his TED Talk entitled Losing Serendipity shares that we may be denying ourselves our next favorite thing by limiting our exposure by what we like on Facebook or the narrow news feeds we select and hear.


Could it be that with targeted advertising and by following only those viewpoints and ideas with which we already agree and are comfortable with that we are losing out on what we may discover and/or may be beneficial for us? Could it be possible that a new type of food we will love could be missed if we always went to the same restaurant? What about that next song you will not hear because your current music tastes reflected in your Facebook posts limits what music advertisements Facebook provides to you? 

Does this mean that we should not utilize data to target advertising? Of course not. Data analysis and the discoveries it provides offers too much potential to ignore. The question in my view is, how can we use technology to increase an aptitude for making desirable discoveries by accident? 

Wednesday, February 08, 2012

Weblining--what you 'search' can be used against you?

Anyone who has watched a law enforcement television show has heard the apprehending official state the Miranda warning to the person being arrested. "You have the right to remain silent. Anything you say or do can and will be held against you in a court of law...."

According to Wikipedia, "the 'Miranda rights' was enshrined in U.S. law following the 1966 Miranda v. Arizona Supreme Court decision, which found that the Fifth Amendment and Sixth Amendment rights of Ernesto Arturo Miranda had been violated during his arrest and trial for domestic violence." Within this decision the court did not provide the exact wording of the warning but did set guidelines that law enforcement must follow:
"...The person in custody must, prior to interrogation, be clearly informed that he or she has the right to remain silent, and that anything the person says will be used against that person in court...."

In her recent New York Times article Lori Andrews provides a similar warning. She defines "weblining" as using the results from analyzing aggregate data to discriminate against individuals or groups of people. The term is based on the use of "redlining." Andrews explains:
"In the 1970s, a professor of communication studies at Northwestern University named John McKnight popularized the term “redlining” to describe the failure of banks, insurers and other institutions to offer their services to inner city neighborhoods. The term came from the practice of bank officials who drew a red line on a map to indicate where they wouldn’t invest. But use of the term expanded to cover a wide array of racially discriminatory practices, such as not offering home loans to African-Americans, even those who were wealthy or middle class."

For example, "Your application for credit could be declined not on the basis of your own finances or credit history, but on the basis of aggregate data — what other people whose likes and dislikes are similar to yours have done." "What?!?" you might ask, how can that be? Andrews goes not to explain that "If guitar players or divorcing couples are more likely to renege on their credit-card bills, then the fact that you’ve looked at guitar ads or sent an e-mail to a divorce lawyer might cause a data aggregator to classify you as less credit-worthy. When an Atlanta man returned from his honeymoon, he found that his credit limit had been lowered to $3,800 from $10,800. The switch was not based on anything he had done but on aggregate data. A letter from the company told him, 'Other customers who have used their card at establishments where you recently shopped have a poor repayment history with American Express.'"

Wow! While I do think that the analysis of data can and does provide the consumer with more useful, directed advertisements, this is not a proper use of individuals' aggregated data. So, here is your warning, what you search can and may be used against you. Now you know.

Tuesday, February 07, 2012

When creating Postgresql users....

Being new to the Postgresql database server this is a note to self, in the future when creating postgresql users, remember the options precede the user name. For example, to create a user with an encrypted password issue the following from the command prompt:
$ sudo su postgres
$ createuser -e -P theUserNameHere
The first line logs you in as the postgres superuser. The next line is where the user is created. The -e option is so the password is encrypted and the -P option is so the password is requested before the user creation is complete. There, now I have it for future reference. 

Thursday, February 02, 2012

...more tangible, more linear and more contextual

In her NY Times piece, The Dilemma of Being a Cyborg, Carina Chocano defines a dilemma of depending on memory extension devices such as smart phones: "It’s that we’re collectively engaged in a mass conversion of what we used to call, variously, records, accounts, entries, archives, registers, collections, keepsakes, catalogs, testimonies and memories into, simply, data. 'Data' has become the default word used to describe the constantly generated, centrally stored evidence of our existence. I wasn’t surprised to learn that the word “data” comes from the Latin for 'to give,' and refers to something that is given or relinquished. It also feels significant that data rests at the very bottom of the so-called knowledge hierarchy — below information, knowledge and wisdom."

Her tone is one of regret. She expertly details that as we move our digitally captured memories and experiences to silicon extensions of ourselves, we lose what biological memory is good at providing--an emotional context that was a tangible part of our space/time existence. "Data is weightless and characterless and takes up very little space. The more of it we save, the more we lose the ability to differentiate it, to assign significance and meaning."

At the end of the article she discusses the small revival of the use of physical media such as vinyl records or cassette tapes. "It strikes me that the current fetishization of analog technology has less to do with nostalgia than it does with an urge to slow down the transfer of data from the internal to the external, from the individual to the collective, and to make it all less instant, less ephemeral, less interchangeable, and more tangible, more linear and more contextual."

Given that we are all cyborgs now, what can we do to recover the richness of ourselves that is more tangible, more linear and more contextual? It is not as if we will abandon those devices any time soon. Could it be that we can find a way to use them in a more tangible, linear, and contextual fashion? Is this where the Facebook timeline can help a person as they look at their own and other friend's profiles? Perhaps looking at the timeline with a significant other as they remissness over those actual events?

While I agree with Chocano that reducing our contextually created memories to bits and bytes is not the same as "remembering," can we use binary data to create meaningful memories? I hope so.

Wednesday, February 01, 2012

Highly Specific Rituals

I was perusing the Harvard Business Review blog site and came across the Why Don't We Act in Our Own Best Interest? post by Tony Schwartz. This should sound familiar to us in that we often hear the phrase that we are our own worst enemies.

Schwartz's answer to the question that he poses is "The most basic answer is that we don't make a connection between our current behavior and its future consequences."

Schwartz's remedy? "It's to rely more on our pre-frontal cortex, which allows humans alone to imagine the future consequences of our actions. Too often, instead, we use our pre-frontal cortex after the fact, to rationalize and minimize our short-term and ultimately self-defeating behaviors." While I agree, the problem here is literally easier said than done. So, what things can we do that reminds us to use our pre-frontal cortex and not the amygdala?

"Our own work at The Energy Project focuses on helping individuals and organizations institute highly specific rituals — behaviors and practices that eventually become automatic and serve sustainable well-being and effectiveness. We can learn to be far more conscious and intentional in our behavior, and less self-centered and short-term in our perspective. Doing so requires deliberate practice."

Again, I agree whole heartily. But isn't the trick here to not give in to the lizard brain and procrastinate on those "highly specific rituals?"