David McWilliams

RSS

Missions and Web 2.0

The following is an idea that I’ve had rolling around in my head and weighing on my heart for the last three months. People I talk to say nothing like this is out there, is that true? That’s why I want to ask a broader audience. Is something like this out there? If not, would it be useful? I want to hear your feedback.

Lately I’ve been thinking a lot about how missions, para-church and international aid organizations communicate the work God is doing in their organizations. From what I’ve learned and observed, please correct me if I’m wrong, the way most organizations communicate both internally and externally has not changed much in the last 20 years. From monthly newsletters via snail mail or email to an occasional update on the website or a visit when the missionary is on sabbatical, it all seems pretty old school these days. It’s not because organizations have not wanted to update the way they communicate, but there has not been a toolset created which would allow them to do so.

With all the internet has to offer from social media to mass email, keeping supporters and donors up-to-date and more involved in what is happening in your organization should be fairly simple, but its not. It’s hard to aggregate all those tools into one cohesive process. So I have this idea…

What if it was simpler, what would that do? What if one simple message posted from a little village in South Africa was able to notify the world about an immediate need? And what if there was a person on the other side of the globe who just happened to check Twitter on their iPhone and wanted to help? And what if that need could be met automatically by that person?  How would that change missions?

When you get down to the basics I see three elements to a missions organization: projects, people and places. Each organization has one or many projects (some may call them programs) that their ministry focuses on. Examples range from orphanages to disaster relief. Those projects occur in specific geographic places and are supported by people far and wide. People could be interested in a specific project if that project involves something they are passionate about: children, AIDS care, evangelism etc. If they have travelled to a specific place during a short-term mission trip they may be more interested in what is happening in that place across all projects. The question comes back to how do you keep those supporters up-to-date and engaged in the work?

If you can keep supporters engaged and up-to-date I think it gives you a lot. First, you can build a more passionate group of supporters who will spread the word about your work and bring in more support. Secondly, if communication can be streamlined and more support raised, there is less need to return home to fundraise so the work can continue on.

I think about all this and I think I see where the web could help solve this problem, I’m still thinking over what that solution might look like, but I see one there. The question I have for you is, do you see the need? Would you be interested helping me? I look forward to hearing from you.

Jun 6

Regex validator for Google Analytics account

I was adding Google Analytics support to ChurchTechies and I wanted to validate the form field I gave the user in their account settings for adding their analytics account info. A quick Google search didn’t give me what I was looking for so I ended up just writing my own regular expression for it. Hope this helps someone else too.

/\AUA-[0-9]+-[0-9]+\z/

If you want the full Rails validation code its:

validates_format_of :google_analytics, :with => /\AUA-[0-9]+-[0-9]+\z/, :message => " code is invalid.", :allow_blank => true

Setting up a basic Rails server

I’ve been setting up quite a few Rails web servers in the last few weeks on Slicehost andAmazon’s EC2 service so I want to document the basics. On EC2 I’ve been using Amazon’s flavor of linux which, like RedHat/Fedora/CentOS, is RPM-based so I’m using Yum to manage the packages. I’m sure this could be further automated using Chef or Puppet but I don’t really need that kind of efficiency at the moment.

Update the system and install the basics:

sudo yum update
which gcc make git
sudo yum install make gcc-c++ zlib-devel openssl-devel gcc git curl curl-devel

Install and secure MySQL:

sudo yum install mysql-server mysql-libs mysql-devel
sudo /etc/init.d/mysqld start
mysql_secure_installation

Install SQLite

sudo yum install sqlite sqlite-devel

Install Ruby

sudo yum install ruby ruby-devel ruby-libs ruby-mode ruby-rdoc ruby-irb ruby-ri ruby-docs ruby-mysql ruby-sqlite3

Install RubyGems

mkdir src
cd src
wget http://rubyforge.org/frs/download.php/73882/rubygems-1.4.2.tgz
tar xzf rubygems-1.4.2.tgz
cd rubygems-1.4.2
sudo ruby setup.rb

Install Rails

cd ~/
sudo gem install rails --no-rdoc --no-ri
sudo gem install json --no-rdoc --no-ri
sudo gem install sqlite3-ruby --no-rdoc --no-ri
sudo gem install mysql --no-rdoc --no-ri

Install Apache

sudo yum install httpd
sudo yum install httpd-devel

Install Passenger for Apache

sudo gem install passenger --no-rdoc --no-ri
sudo passenger-install-apache2-module

After Passenger installs, add the following lines to the httpd.conf file so Apache knows how to handle Rails apps.

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-3.0.2/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-3.0.2
PassengerRuby /usr/bin/ruby

If you are using virtual hosts, remember to point it to the public dir in your Rails app.

<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /somewhere/public
</VirtualHost>

Restart Apache

sudo /etc/init.d/httpd start