my point of view (programming stuff mostly)

Social Networking for Your Church


Starting around mid- to late-2006, I started a little project for my church. The idea was to rewrite our existing online membership directory to make it more searchable and to take a stab at creating something somewhat social, where people can easily communicate with each other and also see their interests and such. Plus, I was dying to build something significant with Ruby on Rails, my new favorite web framework.

As the application got closer to completion, I started showing friends and family my creation and getting feedback. The application grew. And grew. At the time, I was heavy into using Facebook to meet up with old friends and new, and started to see the value in connecting people online in ways that just don’t happen offline. And the application grew. And grew.

The application went online the very first day of 2007, and it was a hit. The tech-savvy people in our church got it right away. While others took awhile.

For the past year, the site has been humming along, and we’ve made several big changes as we got feedback, complaints, etc. We worked with people, classes, and small groups in our church to teach them how to use the site and got more feedback.

I’m very proud of the product we have today, and I think it’s time to give it to the community. This week, I have worked to get OneBody out on the web and ready for use by other churches.

I’m praying for a strong, friendly community to grow around OneBody so it becomes the absolute best of its kind. Though I have to say, I still haven’t found anything quite like it, especially not free!

The New Gmail

It seems the Gmail team has quietly slipped in a minor upgrade to the revolutionary and still yet after more than 3 years, best web email system I've ever seen. I have to use Outlook at work and yearn for the day that it will properly thread replies as Gmail does, but I digress...Anyway, is it just me, or is the slightly "improved" Gmail actually dumber? Here are some pet peeves I've aquired in the last week of using the new Gmail:
  1. For one, the drop down menus (you know, for selecting an action on individual and/or selected email) are no longer real select lists; they're instead some DHTML kind of thing that has a scroll bar that feels flimsy. When I use the scroll wheel on my mouse, the whole page scrolls. It's just weird.
  2. It crashes Firefox. Every. Time.
  3. When navigating away from Gmail, it always asks me if I am sure because I may lose data. What? Just let me go already!
  4. Dangit, I don't want chat mixed with my email client! Stop turning that thing back on. When I log in for two seconds to check my email, I don't want some long lost friend [I've been avoiding] starting up a chat with me.
  5. This is sort of a meta-peeve. Since I dislike the new version so much, I clicked "Old Version" in the upper-right. But that setting isn't saved from browser to browser from session to session. I keep having to click it to go back to the old version.
No doubt, Google will be removing the old version, but only if a majority of the users are happy with the new one. Let your hatred be known by switching to the old version with me.On a upbeat note, I do like that my Gmail quota has doubled to nearly 5GB. Not that I will ever use that much -- I just like knowing that I will never use more than like 15%. :-)

I used's nifty domain mapping feature and moved my blog to its own domain. Now, after I write that killer blog post that gains me tons of Google juice, I can use my newfound popularity to redesign my blog with AdSense and make beaucoups of money. /dream

Find & Replace in Word With Ruby

You can script Microsoft Word using COM and the Ruby win32ole library.

First, create a plain Word document with text to replace like this:

Here is some text of my document. This will be replaced with [name]. Today’s date is: [date].

Then, run the following code. The text in square brackets will be replaced with the values in the code, and the file will be saved as a new name.

require 'win32ole'
word ='Word.Application')
#word.Visible = true # uncomment if you want to see it happen
doc = word.Documents.Open('c:\file_to_open.doc')

replacements = {
  'name' => 'Tim Morgan',
  'date' =>'%B %d, %Y')

replacements.each do |key, value|
  word.Selection.HomeKey(unit=6) # start at beginning
  find = word.Selection.Find
  find.Text = "[#{key}]" # text must be in square brackets
  while word.Selection.Find.Execute


Ubuntu 7.10 Rocks

Ubuntu 7.10

The new Ubuntu rocks, let me tell you. For one reason: things just work. This is the first time I’ve ever installed a Linux OS and didn’t have to crack open the terminal to tweak XOrg settings or to manually install graphics drivers, etc. My wireless card worked, upgrading my graphics drivers was as simple as a few clicks in the GUI, and turning on Compiz effects was as a dream.

Props to the Ubuntu team for making this the best Linux distro ever.

Politics and 18-30 Year-Olds

There seems to be a general dissatisfaction with politics amongst people my age. We have a bad taste in our mouths. We’ve grown up watching a political process that seems to only happen on our TVs. And we feel we have absolutely no power to influence it. Because it’s a one-way channel.

In some ways, the whole process is like a bad television show.

The things we learned in grade school and high school (at a time when we were too young to participate) made the system seem beautifully complex and perfectly designed. There was a pride accompanied with our nation and its government, branches, and elections. The people have the power to change things, we were told.

But then we grew up. And realized we aren’t as powerful as our teachers told us.

Just as the shallow story arcs and tired recurring villain ideas of Smallville have all but caused us to delete our Season Pass from the TiVo, the U.S. political process seems out of touch, repetitious, and generally obsessed with continuing with the status quo. And Americans are OK with that.

It seems my age group doesn’t want to invest time in something they feel will never change. It’s too heartbreaking to put effort into something to find that nothing is different. There are just too many people out there with more money, time, and influence (e.g. the Media corporations and their superstar news pundits) that influence too many Americans.

Choosing a political candidate has become likened to choosing a toothpaste or laundry detergent. We watch this new cycle of elections unfold on our television screens (usually as it interrupts our favorite sitcom or drama series in the form of a political mud slinging ad or evening “news” about the same three candidates). A few names stick and that’s about it.

Or we feel the only choice we have is a political party. A lesser of two evils.

Is this the way it has to be?

Nope. Here’s why I think we can actually make a difference: the Internet.

While the mainstream media is busy covering a select few, and leaving the other candidates out, guess what’s happening online? People are given a voice again and they’re using this new medium to talk about the candidates who’ll really change something, uncensored by big media corporations with something to gain from one candidate or another.

For instance, check out the top rated presidential candidate YouTube videos. And the rate of growth of a few outstanding candidates on YouTube. Ron Paul is one of the most searched for terms on blogs according to Technorati, too. He surges ahead online because of his message and the free flow of that message across this medium.

And these are just a few examples. Check out Facebook, MySpace, Digg, and elsewhere on the Web and you’ll probably find something about Ron Paul.

I challenge you to do some surfing and find out which candidate you like the best. While it’s not in a nice little box like you’ll see on a big news channel, and it is quite raw, I think you’ll find that there is somebody who can turn this country around. Unless of course you like the way things are going now – in that case, just keep watching TV. Someone else will decide for you.

There is a chance for our age group to have a voice. And now is the time.

Ron Paul

I’ve been seeing a lot on the Web about this guy named Ron Paul. He’s running for president in 2008, but first he has to get the Republican nomination. He has many supporters already, and I only see that growing over the next several months.

Ron Paul is the only politician I’ve read about who truly fights for individual rights and follows the constitution. He’s restored my hope for the country and for the Republican party.



Zooomr is a little photo sharing site that has a wee bit of potential I think. While I wouldn't exactly call it "reliable" at the moment (its recent upgrade took it down for weeks and it's service has been sketchy ever since), I could see it amassing a cult following among geeks like myself.I'm still waiting on an API key so I can test my Flickr migration script. I wrote a bit of Ruby to download each of my Flickr photos, along with their tags, geotags, description, title, etc. and upload them one by one to Zooomr. I'm anxious to see if it works.At the very least, I think it will be neat to have my photos in two places on the Web.

One (Spotty) Year of MPOV

I just realized I've now had this blog for one year. While its postings have been sporadic at times, I'm happy to look back on what I've done tech-wise over the last year.FYI: Anyone who reads this blog may be interested to know that I can be found posting useless things all over teh Interwebs (not just here), many of which you can find at or on my brand new Jaiku account (

Wget to the Rescue

Have you ever been downloading something very large for a long time, and something happens to interrupt it? Firefox crashes, you lose power, you accidentally close your laptop lid, etc.? Here's a trick to start your download where you left off:
  1. On Linux, you can skip this step. On Mac, download wget here, unzip it, and put "wget" in /usr/bin. For Windows, looks like you can download wget here (I haven't tried this on Windows, but it shouldn't be much different).
  2. In a terminal window, run wget -c http://url/to/download.
The -c tells wget to "continue" the download. Even if you started your download in some other program, wget starts again where you left off. Pretty sweet, huh?