The Real Want Button

22 09 2011

Business Insider just posted an article highlighting the fact that Want Button that Facebook is rumored to announce this afternoon does in fact already exist and is doing quite well.


(Full Disclosure: I’m a part of the Want Team)





OpenBSD Release Cover Art over the last 10 years

28 08 2011

Included in the long list of contributions the OpenBSD project has made is the set of art that is created for each release.

Below are the cover art images for the last 10 years of OpenBSD releases.

Please support the project by purchasing something from the OpenBSD online store .

Follow Me on Pinterest

And one for the OpenBSD Audio CD Release





Nginx and VeriSign SSL Certificates

18 06 2011

Although instructions are provided for many web servers/systems there are no instructions on the VeriSign web site on how to setup Nginx.

One tip that may save you a couple of minutes is that your Nginx SSL configuration will not work correctly with the VeriSign provided Apache CA bundle of intermediate certificates.

To get a certificate bundle that will work properly I suggest the following steps.

  • First download both the Primary Intermediate CA Certificate and the Secondary SSL Intermediate CA Certificate files.
  • Second, concatenate your certificate, then the primary CA certificate, then the secondary certificate into a single file.
  • Third reference the resulting file in your nginx SSL configuration, verify your configuration, and restart nginx.

To ensure everything is setup correctly you can verify your site using the VeriSign Certificate Check application.





ROI of Social Media per Gary Vaynerchuck

18 06 2011

If you’re not bothered by a couple of F bombs I think the following is a pretty interesting clip where Gary Vaynerchuck gives his answer on how to respond to the question of “How do you measure the ROI of Social Media?”

If you choose to use Gary’s suggested answer just make sure your audience understands the proper context for your response of “your mother”.





Maximizing the utility of failure

24 05 2011

Not specifically a “fail fast” blog post but Dave Kellog recently expressed his thoughts on the value or structuring/designing business initiatives to allow for drawing specific conclusions based on the results of the initiative.

He argues that the results of the initiative should clearly indicate whether it was a repeatable failure or a repeatable success.

Thus, my statement: if we can’t have repeatable success, then can we at least have repeatable failure?

He is describing one of the ways to maximize the utility of failure (and/or also success in this case) through critical thinking and considering the possibility of failure while still planning.

A “test” that yields inconclusive results due to the way it was structured (i.e. could have yielded conclusive results with an alternative formulation) should not be considered failing fast.





Book Review of “The Thank You” Economy by Gary Vaynerchuk

21 05 2011

I’ve just completed reading The Thank You Economy by Gary Vaynerchuk.

Book - The Thank You Economy by Gary Vaynerchuk

The essence of his message to readers is captured in the title of Chapter one, “How Everything Has Changed, Except Human Nature”.

In Part I of the book, entitled “Welcome to the Thank You Economy”, Mr. Vaynerchuk provides the definition of “Thank You Economy” (TYE) and its historical and cultural context.

The premise is that somewhere around or just preceding the middle of the last century our economy transformed from what was almost exclusively a “local” economy of small business whose owners had close relationships with their customers. At this time “word of mouth” had a very strong influence in the ultimate success or failure of any business.

Mr. Vaynerchuk argues that due to a confluence of social and economic factors including the rise of suburbia and affordable cars the economy transformed from a local one to one where the power of “word of mouth” lost its effectiveness and authority.

The emergence of Social Media is seen as a force that brings this cycle back to one of empowering the individual consumer and re-establishing the word of mouth as a vital activity.

Chapter 3 (Why Smart People Dismiss Social Media, and Why They Shouldn’t) is focused on identifying and refuting the reasons why companies use to justify their refusal to fully commit to and invest in social media.

The reasons provided are the following:

  1. There is no ROI.
  2. The metrics aren’t reliable.
  3. Social media is still too young.
  4. Social media is just another trend that will pass.
  5. We need to control our message.
  6. I don’t have time to keep track of what every Joe or Jane says, and I can’t afford/don’t
    want to pay someone else to do it.
  7. We’re doing fine without it.
  8. We tried it; it doesn’t work.
  9. The legal issues are too thorny.
  10. It takes too long to pay off.
  11. Social Media only works for start-up, life-style, or tech brands.

The refutation of these reasons is both substantive and interesting.

Part II of the book, entitled “How to Win”, is oriented toward identifying a set of approaches and techniques that may be utilized to lead to successful results in the TYE.

A high level list of the techniques include the following:

  • Care about your customers, employees, brand, and everything else.
  • Be an innovator and early adopter.
  • Build a culture of caring that includes self-awareness, authenticity, and
    commitment to change.
  • Build a sense of community around your brand.
  • Nuture and encourage opportunities to extend and have extended conversations (“Ping-pong”)
    with your customers.
  • Intent matters, approach customer engagement with good intent, aiming for quality
    engagements and not quantity.

You can start to get the idea from the list above, you’ll find more techniques
and a full description of each item in the book.

Part III of the book, entitled “The Thank You Economy in Action”, provides real-world examples of companies that have utilized and are utilizing the techniques described in Part II of the book.

Part of Mr. Vaynerchuk’s message that particularly resonates is that success in TYE must be earned and cannot be achieved through shortcuts.

Although Mr. Vaynerchuk’s opinion is never far from the surface, Part IV, entitled “Sawdust”, was the section of the book in which it really shines through.

Several of the insights are listed below:

  • On page 202 there is a discussion about context and its importance. IMHO the significance of context cannot be overstated.
  • On page 205 there is a quote nice bit of advice. “Don’t be afraid to say what you think. Ever. That said, don’t forget to listen, either.
  • On page 206 there is a discussion of the ROI of Emotions and an argument that the TYE will accelerate the “humanization of business”.
  • On page 211 there is the always welcomed reference to the Observer Effect as it relates to getting feedback from customers.
  • On page 223 there is a reference to the always true statement that “talent wantsto follow talent”.
  • On page 224 there is a discussion of how to effectively drive interaction between traditional media and social media.
  • On page 226 there is a discussion of Earned Media and how effective participation and engagement with customers using social media provides unique opportunities for organizations to benefit from Earned Media.
  • As important as what to do is what not do to. On page 228 is the list of biggest mistakes companies can make with Social Media.
  • On page 229 There is a discussion about the opportunity in venues of all sizes in Social Media and that it is just not about Facebook or Twitter.

Part V of the book is a two page summary of the book’s key messages.

Summary

I have to wonder if Mr. Vaynerchuk was influenced by The Cluetrain Manifesto. It was one of the first well known expressions of the importance of engaging with customers in an authentic way with an authentic voice.

If you’re involved in a business at any level take a break from your summer fiction reading list, give this book a read, and decide for yourself whether if you believe we’re headed for a “Thank You Economy”.





Yet Another How to Install PIL on OS X in a virtualenv Recipe

15 05 2011

The Python Library PIL can sometimes be challenging to install in OS X.

Installing PIL in a virtualenv can also add another layer of complexity to the task.

The need for this recipe arose from the fact that although our development and deployment environments at work are Linux, we frequently have the need to get a “local” environment running for our front-end developers and designers that are running OS X.

I’m posting it on the chance that it might be useful to others that need to get a workable virtualenv based environment on OS X setup that can be built to parallel their Linux environments and aren’t afraid to build some components from source.

Characteristics of this approach:

  • Doesn’t interfere with the Python build provided in OS X.
  • Doesn’t install software into system directories.
  • Doesn’t require “root” or “admin” level privileges.
  • Does allows for as many different builds/versions of Python as one needs.
  • Does require building Python and the relevant supporting libraries from source.

In this approach we’ll build a copy of Python and the necessary supporting libraries that we can install in a “local” directory of choice. In other words instead of installing into the /usr/local directory we’ll install into another specified directory (e.g. ~/local).

In order to build PIL with the necessary support for JPEG and FreeType we’ll also patch the setup.py file in the PIL source code to reference our new local installation of the libraries.

There are four (4) parameters in the bash script below that can be easily modified to meet one’s specific needs.

The script assumes that one will run it in the directory that one wants to use as the parent directory for the software to be built and installed (e.g. something like ~/ProjectName) .

The script will create a ./local , ./distfiles , ./src and a ./ve directory below the parent directory.

The example script below utilizes Python 2.7.1 but should work equally well with the appropriate changes for other Python versions.

Xcode must be installed.

#!/bin/bash
set -v
# ############################################################################
# script to build a python environment that
# includes PIL for OSX that can be easily used
# in a virtualenv
#############################################################################
# PARAMETER 1
# LOCAL_INSTALL_DIR sets the primary directory
# for the build to be installed into
#
LOCAL_INSTALL_DIR=`pwd`/local; export LOCAL_INSTALL_DIR
#
mkdir local
mkdir distfiles
mkdir src
mkdir ve
cd distfiles
curl -O http://www.python.org/ftp/python/2.7.1/Python-2.7.1.tgz
curl -O http://pypi.python.org/packages/source/v/virtualenv/virtualenv-1.6.1.tar.gz
curl -O http://www.ijg.org/files/jpegsrc.v8c.tar.gz
curl -O http://mirror.its.uidaho.edu/pub/savannah/freetype/freetype-2.4.4.tar.gz
curl -O http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
cd ..
cd src
tar xvfz ../distfiles/Python-2.7.1.tgz && \
tar xvfz ../distfiles/virtualenv-1.6.1.tar.gz && \
tar xvfz ../distfiles/jpegsrc.v8c.tar.gz && \
tar xvfz ../distfiles/freetype-2.4.4.tar.gz && \
tar xvfz ../distfiles/Imaging-1.1.7.tar.gz
# #################################################################################
#
cd ./jpeg-8c
./configure --prefix=$LOCAL_INSTALL_DIR && make && make install
cd ..
#
cd ./freetype-2.4.4/
./configure --prefix=$LOCAL_INSTALL_DIR && make && make install
cd ..
#
#############################################################################
#
LDFLAGS=-L$LOCAL_INSTALL_DIR/lib ; export LDFLAGS
#
cd Python-2.7.1/
./configure --prefix=$LOCAL_INSTALL_DIR && make && make altinstall
cd ..
#
PATH=$LOCAL_INSTALL_DIR/bin:$PATH; export PATH
#
cd virtualenv-1.6.1/
python2.7 setup.py install
cd ..
#
#############################################################################
#
LDFLAGS=-L$LOCAL_INSTALL_DIR/lib ; export LDFLAGS
#
cd Imaging-1.1.7/
cp setup.py.orig setup.py
cp setup.py setup.py.orig
sed "s@JPEG_ROOT = None\$@JPEG_ROOT = \'$LOCAL_INSTALL_DIR\'@" setup.py > setup.new
sed "s@FREETYPE_ROOT = None\$@FREETYPE_ROOT = \'$LOCAL_INSTALL_DIR\'@" setup.new > setup.new2
cp setup.new2 setup.py
python2.7 setup.py install
cd ..
cd ..
# #############################################################################
#
# PARAMETER 2
# LOCAL_VE_DIR sets the primary directory
# for the virtualenv to be installed into
#
# PARAMETER 3
# VIRTUALENV_NAME sets the name of the
# virtualenv to be created
#
# PARAMETER 4
# VIRTUALENV_DIR sets the primary directory
# for the individual virtualenvs to be installed into
#
LOCAL_VE_DIR=`pwd`/ve; export LOCAL_VE_DIR
VIRTUALENV_NAME=test_virtualenv1; export VIRTUALENV_NAME
VIRTUALENV_DIR=$LOCAL_VE_DIR/$VIRTUALENV_NAME; export VIRTUALENV_DIR
#
virtualenv $VIRTUALENV_DIR && cd $VIRTUALENV_DIR && source bin/activate && ./bin/easy_install pip
#

Hopefully this will be of some help to others.








Follow

Get every new post delivered to your Inbox.