Opinion on Nonprofits

Giving the keynote at last weekend’s Craigslist Foundation’s Nonprofit Bootcamp in New York, was Nancy Lublin, CEO and Chief Old Person of Do Something and founder of Dress for Success.

She gave us her Top Ten List of things she hates about nonprofits:

  1. Being told “Be more like a for-profit”. In response: “I wish you would act more like you had the soul of a nonprofit.”
  2. The people who say that. In response to the “venture philanthropists”: “I’d like you to behave like an ATM with legs.
  3. My grandfather thinks he can find me at home in the middle of the day.
  4. The way you people dress: flannel, cotton turtlenecks, socks with sandals
  5. Redundancy. There are no market forces to force collaboration: every cosmetic corporation has a breast cancer organization.
  6. Fundraising dinners: it’s always salmon.
  7. Used Computers. If it’s not good enough for them, why should it be for us?
  8. Direct Mail: antiquated, wastes time, money, trees.
  9. The standard business model: “We do good work. Give us money”. In response: “Monetize your core competency”. You should hope to put yourself out of business.
  10. Cute names: Do you think you’ll raise more money if your name rhymes?

An important distinction

Congratulations are in order. You’ve earned an important distinction – a Card that reflects your achievements and perfectly complements your life. A Card designed to reward you and bring you the extra services and privileges you require. From an American Express Rewards Plus Gold Card promo letter. Glad I can have my life affirmed via direct mail. Apparently my life doesn’t mean enough for Platinum. Sigh.

Politics of Fear

There are so many overlapping assumptions and statements in this congressman’s statement it’s amazing. It’s also amazing how 40 years of history inures you to something viciously contested by minds great and small.

On September 21st [1964], Congressman Donald C. Bruce of Indiana lashed out at the Daisy and Ice Cream ads at a Republican Ward dinner. He suggested that the spots aided Soviet political goals by “repeating as fact a Communist-sponsored lie which for years has been Kremlin-directed propaganda aimed at neutralizing the American will to resist the Communist program for world conquest by promoting fear of ‘the bomb.’”

William Bernbach himself defended the Daisy spot in no uncertain terms to the New York Times in October of 1964:

“The little girl commercial was deplored on absolutely erroneous grounds. The central theme of this campaign—whether you like it or not—is nuclear responsibility. Perhaps that theme is not a tasteful one; there is no way to make death pleasant.”

The divisiveness of the ad seems understandable considering the studies of mortality awareness.

from CONELRAD’s history of Lyndon Johnson’s atomic responsibility, anti-Goldwater Daisy Ad. (via BoingBoing)

Drupal WYSIWYG Editors

I’m partial to the following WYSIWYG editors for Drupal:

But neither of them work well enough for me to want to use them. The trade-off for using these is that it’s easy to make pretty text, but if you ever need to manually edit, it’s incredibly painful. The biggest problem is that they don’t make new lines for paragraph breaks, smashing everything together into one huge, ugly block. And since Drupal has a nice, built-in filter for creating paragraph elements, it’s redundant (and infuriating).

The only markup you need is bold, emphasis, links, pictures and a way to turn it off. Wordpress seems to get it.

Setting up Octave and Gnuplot on Apple Mac OSX

I just started auditing a Mathematical Models in Biology class and Matlab is one of the requirements. I had relatively good experience with the free, open source alternative, Octave back in college, but then I was running Linux, not OSX. It took me about an hour to figure out how to set it up (I was a little worried for a bit).

  1. Download the Octave binary for OSX from Octaveforge.

  2. Install Octave and Gnuplot (in the extras folder). I just dragged them to /Applications (X11 is required for Gnuplot—should be found on OSX install disk)

  3. If you are using OSX 10.6 (Snow Leopard) or 10.5.8+ you may need to perform some additional steps outlined here

  4. Set the environment variable for gnuplot (Octave is supposed to do this automatically, but it didn’t for me): `

sudo ln -s /Applications/GnuPlot.app/Contents/Resources/bin/gnuplot /usr/bin/gnuplot


(thanks for the help, Toby)

  1. Download and install (again in /Applications) Aquaterm which will actually render the gnuplot graphs.

  2. Within Gnuplot, set the renderer: “terminal aqua”

  3. Try it out in Octave (I had to restart Octave and Gnuplot to get it all to work): `

x = linspace(-pi, pi, 100);

y = sin(x);

plot(x, y);


Thank you: High Performance Computing for Mac OS X, the Octave Wiki and Google for helping me find what I needed.

Update (January 24, 2010): updated the link in step #1 to the latest version of Octave. Added an additional step described by Zack in the comments (thanks!)


I could care less about the politics, but it’s interesting to see that a congresswoman was caught “plagiarizing” (“borrowing” or “incorporating” if you want to play the pronoun game) in a newspaper column via “a program that monitors high school and college student papers for acts of copying and forgery”. (via ThinkProgress.org)

I didn’t realize that people were using things like Turn It In for non-schoolwork.

Not that I’d want to cite Johnny 10th Grader, but I wonder if their algorithm/database would work for looking for references (which then you could *properly* cite).

Toe straighteners

With our single, double or triple Toe Straighteners, you can align overlapping, crooked or hammertoes with gentle, constant pressure. From Colonial Medical (via a gmail contextual ad for probably “step on any toes” in an email)

Thesaurus computations

Today I just started computing the relations between groups. It’s been chugging along on my local machine for about 8 hours now, I’m 1% complete and have a table with 5 million entries (at 210mb).

If a word is shared between two groups, it forms an edge between those two groups. I’m storing that edge as the two group ids and the “overlap” value (the number of words shared between those two groups).

My algorithm is iterating through every word, finding the groups that the word is a part of, and creating an edge between them—computing overlap as it goes. I expect the rate to fall off as duplicate edges are thrown out…. but we’ll see.


tee is a Unix command that displays the output of a program and copies it into a file. lint program.c | tee program.lint