11/15/2005

A couple of things

I've posted a lot of technical stuff in my most recent posts here -- hmmm, with my lack of posts, it's hard to think of any of them as recent, The next batch won't be so technical. Let me tell you what I've got planned.

When my son, Michael, was first taking on early chapter books, I started writing one for him, Danny's Dream. Sadly, he blew through that stage before I finished. I'd like to post what I've got though, as a sort of serial. Maybe I'll even finish it this time around. At one point, I'd thought about making this into a series of books, but I never found the time.

I'd also like to comment a bit on an experiment my family and I are trying. We're looking to live off of our food storage for the week before Thanksgiving. We'll be starting tomorrow (so that I can start cooking for Thanksgiving next Wednesday). I'm hoping to write up some posts about how things go, and which (if any) recipes are worth trying.

If you only come here for technical stuff, I'll try to work some of that in soon too -- I just wanted to let my other side show for a bit.

11/03/2005

A little bit of Ruby for work

I've always used, but never really like ab for looking at Apache performance. The big things that I've wanted to do with it was hit multiple urls according to a defined ratio. After a bit of hacking on the bus, I've got a working kernel (uner 150 lines of Ruby). I can run a script like this:

config = {
"http://localhost/first" => '50',
"http://localhost/second" => '30',
"http://localhost/third" => '20'}
urls = RWBBuilder.new(config)
tests = RWBRunner.new(urls, 10000, 100)
tests.report


and I'll get back a report like this:

Concurrency Level: 100
Total Requests: 10000
Total time for testing: 48.786909 secs
Requests per second: 204.973018479199
Mean request time: 0.0048786909 secs
Results for http://localhost/first
Numer of runs: 4864
Shortest time: 0.02031 secs
50%ile time: 0.036371 secs
90%ile time: 0.045528 secs
99%ile time: 0.263913 secs
99.9%ile time: 1.555193 secs
Longest time: 1.556691 secs
Results for http://localhost/second
Numer of runs: 3142
Shortest time: 0.021777 secs
50%ile time: 0.035928 secs
90%ile time: 0.045415 secs
99%ile time: 0.289059 secs
99.9%ile time: 1.49962 secs
Longest time: 1.554188 secs
Results for http://localhost/third
Numer of runs: 1988
Shortest time: 0.016705 secs
50%ile time: 0.03639 secs
90%ile time: 0.04559 secs
99%ile time: 1.256631 secs
99.9%ile time: 1.496296 secs
Longest time: 1.544625 secs


Once I get it cleaned up a bit more, I'll release it for general use.

10/19/2005

Yet more about work

(I'm posting this reply to some email here because it fits in well with what I've been trying to write about, and because there are a not entirely unified set of people here and on the ldsoss mailing list.)

Just so you know where I'm coming from, here's a little bit of background.

I got involved in the Free Software world back in '89. I've done some volunteer work for the FSF (passing out literature at conferences and UG meetings and installing linux boxen at their MIT office space). I use, contribute to, develop, and write about Free Software both professionally and as a hobby. I've started perl mongers groups, ruby brigades, sys admin groups, and helped with LUGs in a variety of places. Heck, I even understand the difference between Free and Open Source Software (and come down firmly on the side of Free Software[0]). Even this email was written in an emacs buffer.

I'm also a church employee. I've been working here for several months now, and have gotten a pretty good idea of how things work (and sometimes even why). I've talked to several layers of management, and a number of peers about my writing and activism here and have a measure of support.

Okay, with that all out of the way, let's get down to the brass tacks.

What kinds of data will we be releasing?

What do we really want to get out of the ldsoss (or the wider FLOSS) communities?

Do we really know what we're doing?

I'm going to try to handle these in reverse order -- think of it as a modern day chiasm ;)

The church, it's IT workers, the Family & Church History Department, and even the comparativley smaller Family History group are fairly large organizations, people inside them are all over the board on their awareness of FLOSS and the principles that underlay it. We're using a lot of Free Software, and are mostly trying to give back into those communities (or are at least looking for
ways to do so). I think there is occasionally some confusion, either along the lines of "It's free as in a free [lunch], so we'll just grab it and go."[1] or "Well, we can just toss this stuff over the fence and the Free Software folks will spin it into gold for us.". I think there's a building awareness that these are both problems, and there are steps being taken[2] to
ensure that they will be corrected. Do we know what we're doing? Mostly -- and with education, it's getting better.

The Church has a lot of genealogical data that we want to make available in ways that will be useful to church members and the wider world. Our biggest goal is always to help bring saving ordinances to the many, many who have died without them. To that end, there have been (and will be) significant investments in Family History related IT. There's a lot more that can be done
though, and we don't have the ideas, the people, or the time to do it all. We're looking to partner with others to fill those gaps. In some cases, we want to contribute to existing Free Software[3], in other cases we want to enable people to write Free Software to fill the niches (either by providing data, or APIs). In still others, we would love to work with the community to
enhance tools we're already building (or thinking of building). What do we want? We want to work with the community to provide the tools that will enable more (unique) ordinance work to be done, releasing spirits from their prison.

Which brings us to data and APIs. There's a *lot* of stuff sitting in the vault. My understanding is that we want to get it all out there for the public to use[4]. How we get it out there is more nebulous. Right now, there's a big opportunity to influence that set of decisions. I think 'the powers that be' would be very open to hearing requests for specific kinds of data (and APIs to interact with it), especially when those requests are:
a) well thought out
b) have some community support behind them
c) have a solid backing reason.

Does all of this still seem a bit nebulous? I'm afraid that it probably does but bear in mind that this is a long road, one which we've not gone very far down. This is a great time to get involved. Again:
Think about what you'd like to see.
Think about how you'd make use of it.
Talk about it, here or on other mailing lists.

Your involvement will help shape the future.


thanks,
-pate
Infrastructure Engineer
Family and Church History Department


[0] Yes, I've read the GPL and the LGPL, along with a bunch of other licenses.

[1] I'm thinking here of situations like using nagios or mon and not getting involved in the community, not hey, let's grab this code and throw it into a program/library that we're going to distribute.

[2] I'm not at liberty to talk about these yet, but I'm encouraged -- for now, you'll have to take my word for it.


[3] E.g., my call for volunteers to help us bridge JIRA and nagios. Thanks for those who have responded, I haven't forgotten to get back to you.

[4] I'm talking only about family history related stuff here. I have no idea what the plans are for access to Church history information is -- but I know things are happening there, too.

10/12/2005

Open Source mini-project: call for volunteers

Hey, are you interested in doing some Open Source work that would really help the LDS Church's family history website, which provides free (as in free lunch, not free beer) genealogical data and tools?

We're in the middle of some significant upgrades (see previous posts or here), and it often seems like we have more stuff to do than people to do it. Case in point, we use the JIRA issue tracking system and the Free Software Nagios system/network monitoring software. We'd really like to build some connectivity between the two (to enable 1-click ticket creation for example), but we don't have anyone we can assign to making this happen. Would you be interested? It could be done as a brand new project or as an extension to Nagios, As long it it stays Free Software we'll be happy. (We'd like it to be Free in the GNU sense, not because we want to save money.)

Update:
Just so everyone knows, Nagios has a home page at www.nagios.org.

Also, JIRA has an API (SOAP, REST, and XML-RPC) available, which is probably the way to do this.

10/05/2005

More about work.

As promised, here's a bit more about what we're doing at work. I'm tremendously excited to be a part of this, and I think that it will turn out to be a very important step forward for the church as it rolls out into general production.

The project as a whole encompasses a lot of pieces: Family Search Indexing; a redesign of the www.familysearch.org home page; making more documents from 'the vault' accessible; and (the part I'm involved with) developing a new software system for organizing, performing, and recording family history and temple work.

I'm part of the infrastructure team that manages the computing and networking resources involved in running this new system. There are several people on the team (although we have a few job openings that we're still trying to fill). Right now, I'm most involved in developing processes and tools for provisioning and maintaining large sets of computers. In subsequent posts I'll try to put together some specifics about this.

There are a lot of developers hard at work on the actual system. It's been cool to see things coming together. One of the pieces that really has me jazzed is the effort that's gone into making collaboration easy. I look forward to this accelerating the work of identifying and researching our ancestors. (Again, I'll try to put together some more information about this in later posts.)

Well, that was interesting.

In a comment to a recent post an anonymous poster wrote a number of unflattering things about me. A lot of them centered around my being prideful. That's not a comment I haven't heard before -- and it's something that I've tried to work on and will continue to work on. That's also not what bugged me.

The anonymous commentor also said: "The church dispanded(sic) your former ward due to corruption.". Now that irks me. All units of the church are made up of people, and none of us are perfect. But to say something like this about a group of people (most of whom don't even know that they're being painted with that brush) is petty and mean.

Most of the people in my former ward are decent people, with solid testimonies, trying to do the right thing. Our bishop was a humble caring man, who loved his ward family and served them well. The Elders Quorum presidency was made up of three stalwart brethren who were focused on ministering to the families of the quorum. I could go on, but I'm afraid I'd leave someone out so I'll stop with this pair of examples. I know of no 'corruption' or any similar problems in the ward.

In fact, the entire stake went through a renaming and a series of boundary changes a couple of weeks ago. This is not an uncommon event, and is brought about by demographic changes. I think the changes will make for stronger wards and a stronger stake. I think these kinds of changes are a wonderful sign that the church is indeed a 'living' church (see D&C 1:30).

10/04/2005

Blog Spam

Well, I've been more or less under the radar, but I think that's starting to change. I've been getting 1 or two spam messages a day for several days now. So far it's manageable though.

10/03/2005

Yummy!

I just found a link to Tasting Menu a great foodie site. They've created to e-cookbooks that are currently available at no cost. The books are a visual delight, and are full of wonderful looking recipes. I'll be adapting the 'Dungeness Crab wrapped in Red Delicious Apples' soon ... maybe for a date night treat this week.

Anyway, I just had to share. Enjoy.

Hearing about your job in conference

One of the neatest tidbits from conference (for me) was hearing President Hinckley talking about the new genealogy software. That's the project that I work on, and this was the first time I've been in a position to hear the prophet talking about my day to day work during conference. It sure left me feeling excited to get in to work on Monday.

On a related note, we're still looking for some good technical people. I'll try to blog a bit about what's going on here, and lay out some more information about the kinds of people we're looking for.

9/06/2005

the best way to learn . . .

is to write about it.

IBM just published another Ruby article I’ve written, this one’s about Debugging Ruby Code.




Maybe after another hundred or so articles, I’ll be able to start thinking of myself as a master.




8/31/2005

getting started with Haskell

I’ve started working through Yet Another Haskell Tutorial to teach myself some haskell. I’m not too far into it, but it’s making sense so far—none of the mind-bending strangeness that I keep hearing about. Nothing that makes me want to give up Ruby either.

Here’s my version of a recursive multiplication by addition function from one of the exercises:




mult a 1 = a
mult a n = a + mult a (n -1)




8/15/2005

Not nearly a Ruby master, but I'm working on it.

One of the things of been doing lately is writing about Ruby. An article of mine was released on IBM’s DeveloperWorks site last week (yay!), and just got linked from OS News (http://www.osnews.com/story.php?news_id=11574) which is pretty awesome too.

8/05/2005

more ruby

today, i needed a class for handling IP addresses for hosts and the IPAddr class from the standard library didn’t quite do everything I needed, so I ended up writing one for myself. Now, when people do data entry into my hosts database I can keep them from entering all kinds of hokey, bad data:

here’s some trimmed output from irb:




host = IP_Addr.new(‘192.168.1.0’, ‘255.255.255.0’)
RuntimeError: bad ip address, can’t use network address
host = IP_Addr.new(‘192.168.1.255’, ‘255.255.255.0’)
RuntimeError: bad ip address, can’t use broadcast address
host = IP_Addr.new(‘192.168.1.253’, ‘255.255.255.0’)
host.network
=> “192.168.1.0”
host.broadcast
=> “192.168.1.255”




now, I can count on my db not having network or broadcast addresses (or other invalid addresses that I’m checking for), and I can build dhcp and dns config files automaticly.

7/29/2005

another step, another release

The Ruby Programming Shop has been hard at work on r43, a Ruby library wrapping the 43 Things webservice. All of our hard work has really paid off. The 0.2.0 release of r43 is better designed, better tested, and easier to use.

I’d especially like to thank Sean Carley and Edward Cho who really beat the early code into shape. If anyone is interested in getting involved, we’re going to be working on r43 through the end of August. At that point, we’ll pick a new library to work on.




You can grab your own copy at the r43 page on RubyForge.

7/20/2005

Quick update

Well, it's been too long since I've posted, but I thought I should break my silence for this.

My daughter just got accepted into BYU's concurrent enrollment program. She'll attend Fall and Winter terms under this status, then will be able to start as a true freshman in the Spring. Not bad for a 15 year old.

Mom and dad are both doing fine.

7/09/2005

Tag Clouds

Folksonomies are an interesting idea. Here's a fun take on it:



A tagcloud based on some of my favorite Ruby blogs. It'll be interesting to see where this goes.

6/16/2005

Ajax on Rails

Ajax on Rails
Ajax on Rails,
originally uploaded by chrisglass.
A great visual pun about two cool web development technologies.

(Thanks to Tim Germer for the pointer.)

6/14/2005

Ruby Brigades just rock!

Tim Germer just made a post on his blog about the June pdx.rb meeting. From his tone, it sounds like it was his first meeting, but I think he’s hooked:

It was great to be surrounded by such smart people – there was easily over a dozen people in attendance. The experience was like grabbing a really challenging book off the library shelf and diving in; ambitious to learn new words, etc.


When’s your next Ruby Brigade meeting? I’ll be going to one in Utah next week.

6/07/2005

Today's article

Tim O’Reilly wrote about a TestFest in June (I wish I could be there, it looks like it’ll be fun).

6/06/2005

Feeling the pain of not unit testing

Ten minutes without a test is a great article about the pain that ignoring tests brings. Whether you’re writing code test first, or just doing unit testing, this is well worth the read.