Notes

from Kemper Barkhurst

New Ways for Nonprofits to Raise Money Online

HiDef Web Solutions Kemper Barkhurst is a designer at HiDef, a skilled team that creates web solutions for great causes.

I recently set up an online donation form for Rio Grande Community Farm, a nonprofit organization where I serve as board member and volunteer. This PayPal donation form was static and made me wonder about the other ways in which nonprofits can raise money with online technologies. After a little research, I found a few new tricks by which nonprofits can connect and accept donations from their supporters. These methods extend beyond just online payments or joining a social network. Check out the new ways nonprofits can collect donations from a mobile device, a text message campaign (SMS), and even social networks.

Credit Card Donations with Square

Nonprofit Mobile Donations with Square

One of those emerging services is Square, a payment system that processes credit cards from a mobile device. This type of system will allow a nonprofit to accept on-the-spot donations. Imagine that your organization is tabling at an event and instead of having to rent a credit card terminal or go through a cumbersome paper-filled process, you grab your smart phone and accept a donation and email the receipt on the spot. There is a low transaction fee associated with each payment and is something that nearly any size, smart phone-equipped nonprofit can get started using fairly quickly once the service is fully launched. The only missing piece would be getting those donors automatically into a mailing list or in a CRM so you can follow up with them of the great work they are supporting (by the way, we can help with that).

SMS Donations with mGive

Nonprofit Mobile SMS Donations with mGive

Another way that nonprofits can raise money is through text message donations. A service such as mGive and a well crafted campaign can open new fundraising opportunities. For a fee, nonprofits can receive text donations in increments of $5 or $10 to a designated number. This donation is then charged to the supporter’s cell phone bill, so money can be collected without credit cards or cash payments. Square isn’t for all nonprofits, however; service fees range from $400-1,500/month in addition to a fee for each transaction. A free account for contact list building can get a smaller nonprofit started with SMS. This account also allows outgoing messages for a per-message fee. Outside of the free account, it might be difficult to make back the investment without a large media campaign. There are some successes, though, as mGive processed over $37M within three weeks for Haiti. This is a good testimonial to the power of a well-crafted campaign.

Donations from Twitter and Facebook

Yielding a return on investment into social media networks is very important. Services like TwitPay and Causes allow you to turn these social networks into a direct fundraising mechanism. Nonprofits can now reach the crowds in social networks.

TwitPay and RT2Give

Twitter for Nonprofits

TwitPay, as the name suggests, works with Twitter. Their RT2Give service provides a quick way for getting supporters to donate. So not only do your supporters promote your cause through their tweets, they are just one step away from donating to your cause with a simple confirmation response. Currently a nonprofit must submit a request to access this service. It is recommended that you have at least 1,000 followers or work with a partner that can provide enough exposure.

Causes on Facebook

Facebook Causes

Causes is an application on Facebook that allows members to support their favorite causes. They can spread their support through their network by joining a cause. They can also quickly get to a donation page where they can show that support. There are currently over 20 million members of this Facebook app. To get started with Causes, a nonprofit can join as a partner or start immediately by adding a cause within the Facebook app. As usual, there is a transaction fee for each payment from your supporters.

Overall, these are all great and dynamic new ways in which a nonprofit can begin more actively connecting and hopefully receiving funding from their supporters. I plan to spend a little time in the next few months experimenting with these services with the farm. It will be interesting to see how a nonprofit can more directly connect with their supporters to keep them engaged.

Bashrc Script for Chroma Key Compositing

Step 1

The first step of this process is to output the source video into individual frames using FFMPEG. This is the command used to output a sequence of frames.  This was done on both the background and the foreground video files.

ffmpeg -i ../video.avi -f image2 %03d.jpeg

Step 2

Once these two sets of image sequences were created the dark image of the clay man had to be corrected and the background extracted.  This was achieved using a Photoshop Action that provided some level adjustments to brighten the image so it would be easier to extract.  The color range of the blue is selected and that selection is then removed from the image.  The layer with the clay man is then duplicated twice to build back any of the blue that was removed from the man.  For our purposes we had five different shots that all needed varying adjustments because of the variation in the lighting.  So this required that five different actions be created.

Step 3

The two images now need to be composited together into one image.  This can be achieved very easily using a basic loop that uses a command in GraphicsMagick.

#!/bin/bash
for (( f=1; f<=9; f++ ))
do
gm composite top/00$f.png bg/00$f.jpeg 00$f.png
done

For sequences longer than just 9 frames the number padding needs to change based upon the total number of frames.  An if statement would need to be setup to change that number padding so when the frame count reaches 10 the number padding would be reduced down from 00 to just 0.  This is needed for each time the number padding changes so would have to occur again when the count reaches 100, 1,000, 10,000, etc.

Step 4

The final step of this workflow is return the composited frame sequence back into a video.  This can be achieved using FFMPEG with the following command:

ffmpeg -f image2 -i %03d.jpeg final_video.mpg

Nature by Numbers

An animation by Etérea featuring the Fibonacci numbers over the Golden Angle and Ratio, and the Delaunay triangulation. All it needs is a little variability of environment.  If I had time I would love to recreate all the 3d modeled scenes with photography.

Bashrc Script for Filtering a Video

Below is my bashrc script that will accept an input video.  It will then run FFMPEG to dump out the frames into a new directory with a reduced 1/FPS for speed of processing.  It uses GraphicsMagick to apply a color filter to these frames that get dropped into a filtered directory.  This image sequence is then converted back into a video with FFMPEG.  Currently, there is no clean-up so all the image sequences will remain in the generated directories.

#! /bin/bash
echo "What video file do you want to filter?"
read output_file_name

mkdir frames
chmod 777 frames
cd frames
ffmpeg -i ../$output_file_name -r 1 -s 320x240 -f image2 %03d.jpeg

mkdir filtered
chmod 777 filtered
for img in `ls *.jpeg`
do
gm convert -modulate 115,0,100 \
-colorize 7,21,50 $img filtered/$img
done

cd filtered
ffmpeg -f image2 -i %03d.jpeg -r 12 -target vcd filtered.mpg
gm display filtered.mpg

Creating a Thumbnail with FFMPEG

This is very basic script for generating a thumbnail from FFMPEG using a UNIX script.

#! /bin/bash
ffmpeg -i video.MTS -s sqcif -f image2 -vframes 1 thumb.jpg

Line 1 specifies the shell to be used to run the script.
Line 2 is the command to run FFMPEG.

-i videoFile.MTS denotes the input video

-s sqcif is the size which is actually 128×96. sqcif could be replaced by 128×96 if one desired.  It’s simply a preset in a collection of 29 or so preset video dimensions in FFMPEG.

-f image2 is the format and in this case it’s set to image2 which is a JPG.

-vframes 1 is the total number of frames

thumb.jpg is the filename for the output image.

Video editing with FFMPEG


I’ll be following up on this tutorial soon.  It was a bit much at first pass but skipping to the end it’s interesting to see how a video can be created using this tool.

Interactive Visualization of the History of Electronic Music

A three user, two projector interactive powered by wii remotes and processing.  It allows visualization of rhythms and sub-rhythms used in a variety of electronic music. I’ll have to look into how wii remotes can interface with processing.

Source: SYNC/LOST

Script-fu Color Wheel Generation

I was able to put together this color wheel shown here and the Gimp script can be downloaded at:

script-fu-kbColorWheel.scm

Without getting into the syntax of it all this is the basic process:

  1. Create a new image and set the size.
  2. Set a series of variables to store some of that math such as pi, how many color wedges will be used and an array of the three x,y coordinates for the triangle that makes up the wedge.
  3. Run a loop to generate the wedges, set the color values of each wedge by adjusting the hue, and rotate the wedge.
  4. Flatten these wedge layers into one and rotate it 180 degrees because the initial hue value at the top was cyan and I wanted it to start with red. *
  5. To generate the three hue transition strips on the left another loop is setup.  This loop runs three times and at each instance it defines the background and foreground. The x positioning is defined by multiplying out the loop instance by the width of the strip.  This could have also been setup with one set of colors and adjusted via hue values if one felt incline to minimize code further.
  6. Last and the most important step is to then display this image.

*Notice the color wheel doesn’t start from red at the top. My rotation is wrong but I didn’t feel inclined to fix it.  I’ll add this to my list of future enhancements.

Baby Stepping into Script-Fu

An inefficient Script-fu script that generates three gradient layers.

script-fu-kbGradientLayers.scm

Open Source Game

Primrose is a  puzzle game that was sent to me from an iPhone developer.  It was created by a New Mexico game developer.

He was prominently mentioned in this NY Times article, Can D.I.Y. Supplant the First-Person Shooter? What I found really interesting is the game was put in the public domain and uses a cross-platform library (SDL) that works with dozens of different languages.