April 19, 2009

Christ, Jesus is calling the Austin Stone

Filed under: Uncategorized — dave @ 1:10 am

One of the most entertaining bugs I’ve ever witnessed is in the Caller ID system at the Austin Stone. I helped Doug roll out a voice over IP system when the church ran out of extensions on it’s legacy system. One of the neat things we did is write a perl script that would take each inbound call and do a database lookup that searched for any members who had that phone number.

The system worked great, and like all good systems was forgotten and people just learned to trust that we just had really accurate caller id. This was a problem for some people because they were in the habit of calling into the office to do occasional prank calls. The most famous of these was on a new ministry assistant’s first day, when one of the members of the church called in pretending to be Louie Giglio and asked for Chris Tomlin’s cell phone number. (For those not steeped in Christian culture, Chris Tomlin used to be the worship leader at the Stone and he is fairly famous, Louie Giglio is also fairly famous and is close with Tomlin). This flustered the new worker, and Matt Carter got on the line to see why Louie needed Tomlin’s number, at which point the ruse unraveled.

The system was called into question one day when the office manager received a phone call from one ‘Christ, Jesus’, which for some reason they immediately thought was me playing a prank. I was offended, not because that kind of goofing around was beneath me, but rather because I wish I had thought of it.

As it turns out, several months after rolling out caller ID, we introduced a new web application for people to sign up for small groups, and one of the steps was for people to enter their contact information into the system. One young adult small group leader thought it would be hilarious to have Jesus in his group, so he signed him up; Jesus Christ, address: 2000 Salvation Drive, Jerusalem, TX 12345, phone: (000) 000-0000. That last part caused the issue, as there are some auto-dialers that send 000-000-0000 as their caller id, and our spiffy caller id system overrides the default message and tells the office that Our Lord and Savior is calling.

February 18, 2009

Backyard Evolution

Filed under: Uncategorized — dave @ 6:37 pm

The previous owners of my little homestead were content to let the backyard (and front) grow as the plants saw fit, which is fine as a philosophy, but ends up with more chaos than I am apparently happy with. One of the results is that trees end up growing into some rather strange configurations, including a live oak sapling that was growing at a 45 degree angle that would someday inevitably make the lower portion of my deck less than usable (somewhat like the much older oak that everybody demands I leave standing that is going to force the reconfiguration of the deck this summer). I mercilessly pruned (cut down) two of the trees that were choking this little sapling out and twined the tree up into a configuration that should hopefully get it more sun and not encroach on the deck as much.

Unfortunately it’s going to be years before the little guy looks anything less than pathetic compared to the rest of this forest in which I live. Luckily, I know a little bit about television sci-fi and my sisters gave me a delightful present for Christmas, so I hung a lantern on it.

Lantern hanging off my small oak

Lantern hanging off my small oak

February 17, 2009

Cisco crushes my dreams

Filed under: Uncategorized — dave @ 5:50 pm

http://arstechnica.com/hardware/news/2009/02/cisco-bakes-software-security-into-new-linksys-routers.ars

Last week I was thinking/discussing with some people how there is a market for a router running custom firmware that monitors/restricts internet usage and has a user friendly web interface for a monthly fee. Guess Cisco was thinking and discussing that too.

At least it was just in the idea phase.

December 11, 2008

Winning a race, I’d prefer to lose

Filed under: Uncategorized — dave @ 7:04 pm
Snow on my car and house

Snow on my car and house

Austin got snow before Seattle did this year. (So did Houston and New Orleans) Now we just need another few days above 70 before Christmas and I’ll be happy.

November 18, 2008

Laying hardwood down the hall

Filed under: Housing — dave @ 8:55 pm

Obligatory: That’s what she said. I’m glad I’m done with this project because it was impossible to talk about it without getting those comments. I’m also glad because it looks freaking awesome.

The craziest thing about this project is I wasn’t planning on doing it in the first place. I just had so much leftover wood that I couldn’t not do it. (yes, TWSS) I wanted to have that point at the edge of the living room be the boundary between public and private and have a wood to carpet boundary, but I guess since the guest bathroom is public this makes more sense. Of course, I still have extra flooring and no more floor to cover, but I think I’ll live.

Oh and here’s a side-by-side before and after:

November 16, 2008

The tile I traded my knees for

Filed under: Housing — dave @ 12:22 am

Today, I (finally) laid some tile in the guest bathroom. Multi-colored slate in a basic grid pattern. There’s a part of me that wishes I had gone diagonal or used some smaller tiles, but my sister Susan pointed out to me that it’s already very visually interesting with the different colors and textures.

November 4, 2008

Stupid Sign Errors

Filed under: Programming, Technology — dave @ 10:10 pm
    if (lastCall != nil && [lastCall timeIntervalSinceNow] < 300) {
        if ([cacheData valueForKey:scenario] == nil) return; //user double clicked update
        [self loadScenario:[cacheData valueForKey:scenario]];
        return;
    }

Turns out calling timeIntervalSinceNow on a date in the past gives you a negative number. And as now gets later and later it gets more and more negative. So, it will never be more than 300, and our app never lets users refresh the data. Thank God, I never wrote that number out to disk, so if you shut down the app and reopen it, the app will successfully load new results.

In other news I hate rich client apps. If this were a web app, or I had done what I planned on doing earlier and putting the timeout inside of the file, I could fix it. There’s basically no way I can fix it at this point. If anybody using the app reads this. I am sorry. My bad.

November 1, 2008

Earthquakes + Tornadoes = Just move, seriously

Filed under: Uncategorized — dave @ 12:49 am

Apparently, those durn Californians are so intent on making Texas like their old home they brang the earthquakes with ‘em.

http://www.statesman.com/news/content/gen/ap/TX_Texas_Earthquake.html?imw=Y&plckCurrentPage=0&sid=sitelife.statesman.com.

October 30, 2008

One of my Favorite Interview Questions

Filed under: Programming, Technology — dave @ 1:34 pm

This was stolen from a hiring manager with Microsoft Office when I went through one of the strangest interview loops of my life. Maybe I’ll talk about that another time, but suffice it to say that if another multinational technology company tries to hire me they shouldn’t try to do it in an office park in Las Colinas (Dallas suburb) in a room with no windows under absurd “This offer expires at the door” conditions. But I don’t want to talk about the past, I want to share a pretty mind bending interview question. If you’ve found this because I’m going to be interviewing you, please mention that you found this entry. I will be impressed that you did research in advance on your interviewer.

As with all good interview questions this one is best done in C. Imagine a singly-linked list who’s data is a pointer to another node in the list or is null. So you’ve got something like:

struct Node {
	Node* next;
	Node* data;
}

Write a function that when passed a linked list makes a deep copy. By which I mean that if you had the following

Node Next Data
A B C
B C null
C null C

the function would return:

Node Next Data
D E F
E F null
F null F

Well, a pointer to D, but you knew that already. Writing any function that successfully implements the problem description is passing, but the bonus points come when you do it without using any additional memory (with the obvious exception of the new Nodes that need to be created). To be considered all answers must be in linear time (multiple iterations of the list are acceptable, but it should be a constant number of times, but you knew that when I said linear time)

Polytechnical

Filed under: Programming, Technology — dave @ 1:14 pm

Operating Systems used in the last two weeks:

  • OS X (Leopard)
  • Windows (XP)
  • Linux (Ubuntu Silly Something)

Programming Languages used in the last two weeks:

  • Java
  • Objective-C (iPhone)
  • Python (dinky little script for Austin Stone, but still)
  • PHP (ASCC again)
  • Ruby
  • VB.NET (sorta, was used while conducting an interview)

I don’t know what the cost in depth is when trying to stay current in a number of different technologies, but it does make me keenly aware of which technology space I’m in. Objective-C ticks me off when I need to manage my own memory (especially when there’s so little of it). Java when I deal with hashtables or delegates which are so wonderful in other languages. PHP when I have to look at it. VB when I think about arrays.

I need to get some time in on C# here before too long. I’ve heard there’s a 800 character long regular expression that can convert Java 1.4 into C# 2.0 and vice versa, but there’s stuff like LINQ that I’d like to get my hands on.