Wednesday, September 27, 2006
Honest
Thursday, September 14, 2006
Serving With Code
I have a friend who is the pastor of Redeemer Presbyterian in Indianapolis. Our family has been helping financially with a small and wonderfully unique congregation that he and Redeemer have helped to get off the ground called The New Deal. About once a year we get to see Jason and his family in Indy. We did again in August. While visiting, he introduced us to Tim Streett who founded Jireh Sports. Jireh is an inspiring organization dedicated to "meet the spiritual, physical, mental and emotional needs of urban youth...through significant relationships with mentoring adults developed around unique sports, recreation, and educational opportunities."
The reason I mention Jireh is because it got me thinking. I'm not a guy that could start a gym, but could I start a program to mentor underprivileged children about computers. Is it possible to have an aftershool program that teaches kids how to use computers, how to take them apart and put them together again, to learn about logic and math, to learn how to program them? I suppose the curriculum would have to have healthy doses of video games also ;) Perhaps more importantly would kids be interested in that, and would it make a difference in their lives? Perhaps this will be another idea in the list of many unimplemented ideas? But let's try anyhow, or at least act like we're trying....
I always start with naming a project. In this case, because I have another idea for how to start developing a curriculum that's gonna need a website. So audience; all five of you (thanks Mom)... What should I name such an endeavor? Here are a few ideas that I'm considering:
- codeducate (or codeducator)
- bit professor
- code kids (I couldn't bring myself to use a 'k' for kode ;)
- bits for kids (as in "silly rabbit bits are for kids")
What do you think?
Books that Change You
I first read about the concept of orthopraxy in the work of Brian McLaren. Orthopraxy means "right practice" whereas the more familiar term orthodoxy means "right thinking". Many churches that I've attended focus almost exclusively on "right thinking"; on understanding Jesus and our relationship to him, but too often in the life of a Christian it stops there. The Christian faith is an active one, it must be practiced in sacrificial love and acts of service and we should never be satisfied with believing the "right thing". I'm not saying that orthodoxy is unimportant. In fact it is often foundational to orthopraxy. But not always... Recently I heard a story of the faith journey of a woman (it was wonderful to hear) and God moved in her life and she started "practicing" Christianity before she even understood really what it meant to be a Christian. The point is simple "right thinking" should never innoculate us from "right practice."
I had planned on including lots of great quotes from Shane's book like one from Mother Teresa: "In this life we cannot do great things. We can only do small things with great love." But there's too many. When I read books I dog-ear the top corner of the page to mark where I am, and I dog-ear the bottom corner of the page to mark things that I want to remember. My copy of the book is nearly twice as thick because of my dog-earring. So, you'll have to read it yourself to get the good stuff. If you're a Christian be ready for a wild ride. If you're not, read it anyway to see a Christianity unlike ANYTHING you've seen on TV, or pushed on you by your "hypocrite neighbor." I make this promise. If you don't find anything of value in the book. I'll give you your money back (actually Shane makes that promise in the book... actually he's giving away all of the proceeds anyhow)
Wednesday, September 13, 2006
Reading banned books...
As part of Banned Books Week (http://www.ala.org/ala/oif/bannedbooksweek/bannedbooksweek.htm) I’ve decided to read (probably not all all in the week ;)
- Slaughterhouse 5 by Kurt Vonnegut (http://www.amazon.com/gp/product/0440180295)
- A Wrinkle in Time by Madeleine L’Engle (http://www.amazon.com/gp/product/0440498058)
- I Know Why the Caged Bird Sings by Maya Angelou (http://www.amazon.com/gp/product/0553279378)
I’ll let you know how it goes!
Prediction #1: MySpace
So since I'm feeling particularly prophetic I've decided that I'm going to start making public predictions and cataloging them here. I give you prediction #1.
MySpace will fail within the next two years; just like Friendster and Orkut, etc.
I was reading this article by Dare Obasanjo and it all came together for me. If they only focused inward on what they've seemed to capture mindshare with (which I think is crappy home pages that help teenagers find dates, that and band home pages) I still think they would fail when teenagers get bored of the site or when social networking gets integrated into the next Motorola phone (hey maybe that's a prediction too ;). But then if they start trying to build a better Flickr, and a better YouTube and a better mousetrap, they're sure to do a mediocre job at everything. I like what David Heinemeier Hansson says "Don't build a half-assed product... Build half the product." So there! May you rest in peace MySpace.
Tuesday, September 12, 2006
MySQL "group-wise limiting"
I've got a query that I'm using GROUP BY for. Is is possible to limit the rows per group.
Every SQL dialect that I've seen makes it possible to limit the rows in a results set. Usually something like:
mysql> select * from sometable limit 10;
and you'll get only the first ten rows. However, when you introduce grouping it all falls apart. Consider this schema representing (denormalized) grades for different students from two classes:
create temporary table groupwise_select(
id int not null primary key auto_increment,
class_id int not null,
name varchar(255) not null,
grade float not null);
insert into groupwise_select(class_id, name, grade) values(1, 'Andy', 100.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Andy', 98.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Andy', 99.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Andy', 97.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Bob', 97.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Bob', 98.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Bob', 65.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Henry', 32.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Henry', 33.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Henry', 34.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Henry', 35.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Henry', 100.0);
insert into groupwise_select(class_id, name, grade) values(1, 'Amelia', 73.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Valerie', 100.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Valerie', 100.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Valerie', 100.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Valerie', 100.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Valerie', 100.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Hans', 13.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Hans', 14.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Hans', 15.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Hans', 16.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Oscar', 99.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Oscar', 99.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Oscar', 99.0);
insert into groupwise_select(class_id, name, grade) values(2, 'Oscar', 104.0);
Your assignment is to return the two best students (highest average) from each class. OK, great. Lets start with a simple grouping query to return the average for each student
mysql> select class_id, name, avg(grade) as average from groupwise_select group by name, class_id order by class_id, average desc;
+----------+---------+-----------------+
| class_id | name | average |
+----------+---------+-----------------+
| 1 | Andy | 98.5 |
| 1 | Bob | 86.666666666667 |
| 1 | Amelia | 73 |
| 1 | Henry | 46.8 |
| 2 | Oscar | 100.25 |
| 2 | Valerie | 100 |
| 2 | Hans | 14.5 |
+----------+---------+-----------------+
7 rows in set (0.01 sec)
Good we now know that the four students we need to return as the answer are Andy (98.5), Bob(86.7), Oscar(100.25), and Valerie(100). This should be easy let's just use a LIMIT
mysql> select class_id, name, avg(grade) from groupwise_select group by name, class_id LIMIT 2;
+----------+------+-----------------+
| class_id | name | average |
+----------+------+-----------------+
| 1 | Andy | 98.5 |
| 1 | Bob | 86.666666666667 |
+----------+------+-----------------+
2 rows in set (0.00 sec)
Hmmm... That only returned the first two rows from our previous query. Yep, that's because the LIMIT is applied as the last thing the query does. Now you'll probably bang your head against the wall trying all different variations of GROUP BY, ORDER BY, and LIMIT at this point and ultimately you'll end up doing the LIMITing in application code instead of SQL concluding that it's just not possible.
However, there is a solution! It uses MySQL's user defined variables and sub-selects. Let's jump to the answer:
mysql> set @idx=0; set @cur_class=0;
mysql> SELECT class_id, name, average FROM (
SELECT r.class_id, r.name, r.grade,
IF(@cur_class != r.class_id, @idx:=1, @idx:=@idx+1) AS row_index,
IF(@cur_class != r.class_id, @cur_class:=r.class_id, 0) AS discard
FROM (SELECT class_id, name, avg(grade) AS average FROM
groupwise_select GROUP BY name, class_id
ORDER BY class_id, average DESC) AS r
HAVING row_index <= 2) AS r2;
+----------+---------+------------------+
| class_id | name | average |
+----------+---------+------------------+
| 1 | Andy | 98.5 |
| 1 | Bob | 86.6666666666667 |
| 2 | Oscar | 100.25 |
| 2 | Valerie | 100 |
+----------+---------+------------------+
4 rows in set (0.01 sec)
Awesome! So how does that work. There are probably a few key insights here:
- sub-selects must evaluate in their entirety before the outer-select (in this case our query returns the averages for ALL of the students sorted first by class_id and then by average)
- The true and false expression parts of the IF() function can be used to set user-defined variables
- IF() function expressions included in a SELECT statement are evaluated left to right
- You can't use a WHERE clause on a computed column (like row_index) but you can include it in the HAVING clause (I don't presume to really understand that)
So given those insights we first retrieve ALL of the GROUPed averages for the students order by class_id and then average, second we number the results for each class, and last we trim out the rows that have a row number less than or equal to our target (2 students per class). Voilla! Group-wise limiting.
Monday, September 11, 2006
Cringley Article
"This is key, because what's been missing throughout this conversion to Internet television has been a way to incorporate our user device of choice -- the TV. People don't really want to watch movies on their computer screens. They'll do it, some of them, but most people won't, so for the Internet and downloadable video market to explode the way it is supposed to do, we need an easy way to get the movies out of our computers and onto our TV screens."
The question remains about Amazon UnBox... How will they get the content to the TV. If it's through a player then they chose the wrong set of devices.
Friday, September 8, 2006
Amazon Unbox
Because I have a Mac and iPod I've been doing all of my purchasing through the iTunes Music Store, and while I have my beefs with them (DRM prevents playing on non Apple software, there's no "wishlist", navigation is poor, etc.) it's been a great experience and I'm hooked. That said, when Amazon announced Amazon Unbox I was intrigued and wanted to try it. I read a little bit and noted that buying a video gets you "DVD-quality video to watch on your PC or TV, and a video file optimized for compatible portable video players". I just assumed that would work on my Mac/iPod setup. Nope! Not only does Amazon Unbox not work for the iPod, it doesn't work on a Mac either. The iPod bit is understandable. I'm sure the media companies aren't licensing the content without DRM and Apple's DRM for the iPod is it's special sauce that it won't open up to competitors. I suppose it's even reasonable to not support the Mac since it's only 10% marketshare or somesuch.
However, I don't see a non-iPod strategy working out. As of now, people are not going to watch video content on their PC and you're right to point out that people are not watching video content on their iPod either. BUT, they will dump the video content onto a player and then plug it into their home entertainment system (for example I use a n RCA/video cable). So, as of now, Amazon is trying to compete in 13% of the player market and maybe not even that much because they support a pretty limited set of players.
Wednesday, September 6, 2006
Joel on Software
First I think he's starting to recycle content (like his latest Finding Great Developers). If it's NOT recycled it feels like it. So at a minimum he's no longer saying things that I don't already know. Then last week there was the whole Language Wars rant (and the answer from DHH). I don't really even know what to say about that except "did someone pay him to say that stuff?"
So thanks for the insights over the past 6 years, but Joel, I'm afraid that you've Jumped the Shark.
Wednesday, July 12, 2006
You know you're and old programmer when...
I've wanted to build internet infrastructure since I was twelve, so I'm psyched to finally have an opportunity to do just that.Then again, I guess I was only eighteen when I had my first experience with Mosaic. So perhaps this should be titled "You know you're a geek when..... You want to 'build internet infrastructure'"
Friday, June 30, 2006
Unity
The mandate spoke of the problems being experienced as a consequence of [ordaining Gene Robinson to bishop] and the need to seek a way forward which would encourage communion within the Anglican Communion. It did not demand judgement by the Commission on sexuality issues. Rather, it requested consideration of ways in which communion and understanding could be enhanced where serious differences threatened the life of a diverse worldwide Church. In short, how does the Anglican Communion address relationships between its component parts in a true spirit of communion?and it continues:
This Report is not a judgement. It is part of a process. It is part of a pilgrimage towards healing and reconciliation. The proposals which follow attempt to look forward rather than merely to recount how difficulties have arisen. A large majority of the submissions received by the Commission have supported the continuance of the Anglican Communion as an instrument of God's grace for the world.Then there is a lengthy document that follows (I only read the first section completely and skimmed the remaining two). Ultimately it lays out the argument against electing homosexuals to the episcopate (bishops) and blessing same-sex unions. But the interesting thing is that it spends FAR MORE TIME talking about the unity of the church and why that matters. Here's are a few choice snippets:
In particular, as the letter to the Ephesians puts it, God's people are to be, through the work of the Spirit, an anticipatory sign of God's healing and restorative future for the world. Those who, despite their own sinfulness, are saved by grace through their faith in God's gospel (2.1-10) are to live as a united family across traditional ethnic and other boundaries (2.11-22), and so are to reveal the many-splendoured wisdom of the one true God to the hostile and divisive powers of the world (3.9-10) as they explore and celebrate the astonishing breadth of God's love made known through Christ's dwelling in their hearts (3.14-21). The redeemed unity which is God's will for the whole creation is to be lived out within the life of the church as, through its various God-given ministries, it is built up as the Body of Christ and grows to maturity not least through speaking the truth in love (1.10, 22-3; 4.1-16). The church, sharing in God's mission to the world through the fact of its corporate life, must live out that holiness which anticipates God's final rescue of the world from the powers and corruptions of evil (4.17-6.20).The conclusion of the document says this:
We call upon all parties to the current dispute to seek ways of reconciliation, and to heal our divisions. We have already indicated (paragraphs 134 and 144) some ways in which the Episcopal Church (USA) and the Diocese of New Westminster could begin to speak with the Communion in a way which would foster reconciliation. We have appealed to those intervening in provinces and dioceses similarly to act with renewed respect[105]. We would expect all provinces to respond with generosity and charity to any such actions. It may well be that there need to be formal discussions about the path to reconciliation, and a symbolic Act of Reconciliation, which would mark a new beginning for the Communion, and a common commitment to proclaim the Gospel of Christ to a broken and needy world.The document is not primarily about the theological ramification of homosexual bishops or marriages in the church. It is mostly about the disregard that the Episcopal Church and spefically the New Westminister diocese showed for the communion at large.
Certainly the New Westminster diocese sees their role in some ways as prophetic defenders of human rights. They see the situation as no different than the protection of the rights of women or of black South Africans during apartheid. What's interesting is that the Windsor Repory acknowledges that fact. It stands theologically in opposition to the stance of the New Westminster diocese but at the same time it recognizes the historical changes in the theology of the church. The report says this:
There is, first, theological development. Virtually all Christians agree on the necessity for theological development, including radical innovation, and on the fact that the Holy Spirit enables the church to undertake such development. Primary examples include the great fourth-century creeds, which go significantly beyond the actual words and concepts of scripture but which have been recognised by almost all Christians ever since as expressing the faith to which we are committed. At the same time, all are agreed that not all proposed developments are (to put it mildly) of equal weight and worth. Some, in fact, do not develop the Christian faith, but distort or even destroy it. A recent example might be the heresy of apartheid. Healthy theological development normally takes place within the missionary imperative to articulate the faith afresh in different cultures, but (as has become notorious) this merely pushes the question a stage further back: how is the line between faithful inculturation and false accommodation to the world's ways of thinking (note Romans 12.1-2) to be discerned and determined? Christians are not at liberty to simplify these matters either by claiming the Spirit's justification for every proposed innovation or by claiming long-standing tradition as the reason for rejecting all such proposals. The church therefore always needs procedures for discussing, sifting, evaluating and deciding upon proposed developments; in particular, they need to honour the process of 'reception', described in Section B.The concern of the Windsor report is that the Episcopal church didn't care to protect the unity of the church by using the prescribed means for having theological debate:
The first reason therefore why the present problems have reached the pitch they have is that it appears to the wider Communion that neither the Diocese of New Westminster nor the Episcopal Church (USA) has made a serious attempt to offer an explanation to, or consult meaningfully with, the Communion as a whole about the significant development of theology which alone could justify the recent moves by a diocese or a province.All of this is very interesting to me because I've never been in a church that cared much about unity at such a global scale (the Anglican Communion encompasses almost 80M Christians in hundreds of countries, cultures, and languages). In fact the church culture that I'm most familiar with is one that is almost opposite; disagree? split off and make a new denomination. The theological implications of this whole debate ARE important but I'm really glad to be learning in such a tangible way that they are secondary to the unity of the church. I pray that God will honor that desire.
Monday, May 1, 2006
The Physics of Life
Throughout the conversation we asked ourself. "Is this foolishness to think this?" or "Is the mainstream way of thinking about X right?" Two things that I had mentioned just encapsulated my answers to that those questions. First, in regard to organic farming... I feel pretty strongly that if we adopt organic farming methods for the next 20 years that we won't look back and say "can you believe how dumb we were to raise vegetables with ONLY soil and manure, and lady bugs" (or however you do organic farming ;) I'm not so certain that keeping the current path will merit a comment like "wasn't it a smart thing to continue using growth hormones, genetic engineering, and pesticides to raise our food!" I don't know but if I were a betting man, I'd choose the former prediction. Second, for whatever reason, the topic of breastfeeding came to mind. My mom and her peers (mostly) formula fed their babies. The cultural and scientific establishment convinced moms from that age that formula feeding was better for your baby. It was so complete that even now there remains a strong social stigma for a mom feeding her baby in public (which also has to do with the sexualization of our culture...) despite the fact that there is credible scientific evidence that breastfeeding is important for the development of a babies immune system, brain, etc. In both of these cases you could stick within the norm and in one case you ARE wrong, and in the other case you're likely to be wrong.
Something that emerged from our talking was a general life principle.
It's always best to do things the hard way.In my examples, it would be HARD economically and otherwise to switch entirely to organic farming, or it was hard for moms to switch back to breastfeeding. But as I've been thinking about that principle it applies universally in life. It's hard, but better to devote time from your day to developing your spiritual life. It's hard, but better to go to all of your children's activities. It's hard, but better to speak honestly to your neighbor when you're annoyed by something they're doing. It's hard, but better to serve the poor in your community. It's hard, but better to drive the speed limit. It's hard, but better to give generously. It's hard, but better to keep a budget. It's hard, but better to be yourself all the time.
I've yet to find a counter example where "it's easier, but better." Perhaps this is just the first law of thermodynamics at work. You put in extra energy doing it the hard way and you reap the benefit of it being better for you. Doing the easy thing AND reaping the benefit would seem to violate the principle.
Anyhow, I've been mulling the "hard way" principle for a few weeks now and trying to enact it in my life, but the thing that pushed me to share the thinking with my two readers is an article that Shiree shared with me by Joe Klein (be sure to listen to the Kennedy speech from the article). It's an excerpt from his book Politics Lost. Klein's point seems to be the perfect example of the "fruit" of doing things the easy way:
Listen to Kennedy's Indianapolis speech and there is a quality of respect for the audience that simply is not present in modern American politics. It isn't merely that he quotes Aeschylus to the destitute and uneducated, although that is remarkable enough. Kennedy's respect for the crowd is not only innate and scrupulous, it is also structural, born of technological innocence: he doesn't know who they are--not scientifically, the way post-modern politicians do. The audience hasn't been sliced and diced by his pollsters, their prejudices and policy priorities cross-tabbed, their favorite words discovered by carefully targeted focus groups. He hasn't been told what not to say to them: Aeschylus would never survive a focus group. Kennedy knows certain things, to be sure: they are poor, they are black, they are aggrieved and quite possibly furious. But he doesn't know too much. He is therefore less constrained than subsequent generations of politicians, freer to share his extravagant humanity with them.Politicians today are masters of doing things the easy way. They know exactly what you want to hear and they feed it to you. On the other hand it would be harder for us to hear what we don't want to hear if politicians were honest. As for me... I'm doing it the hard way.
Wednesday, April 19, 2006
When the Media Seems Unbelievable
Anyhow, that bit of introductory knowledge helped this story to catch my eye this morning. Read the fifth paragraph:
Elizabeth Economy, director for Asia studies at the Council on Foreign Relations, said that while China had promised to make progress on the currency front, Hu was unlikely to make any announcement during this visit to avoid it being seen as coming "at a point of U.S. pressure on him."That looks SOOOO fabbed. I'm sure that Elizabeth Economy is a person and the "Director of Asia studies at the Council on Foreign Relations" is a real position, but that paragraph reads like filler that was inserted with a hand scribbled note say "find a real quote from a real person..."
Weird. BUT she's real Perhaps it's even weirder that her name belies her career. Maybe it was self-fulfilling.
Friday, April 14, 2006
FairTax.org
I think the thing that's most discouraging is the reality that taxes are not really understandable by an ordinary human being. Extraordinary humans like CPAs can't really understand the whole thing. So every April I saddle up and do the work and get paid or owe and pretty much don't have any idea why really. It's like a bill from a vendor I don't recognize and for an amount that I can't afford. When I don't owe it's like a sweepstakes letter asking me to just come down to the local Holiday Inn to watch a "short" demonstration of Vacuum cleaners before I can collect my $5000 prize.
Anyhow, as I said, I've support FairTax in the past, and to that end I get regular updates from them via e-mail alerting me of interesting news or asking me to participate in some rally. I get this sort of stuff OFTEN (Schwab, ProFlowers, REI, Lung Association of Washington....) and most of the time it feels like SPAM. E-mails from FairTax though don't. What they say just plain makes sense and the ironic thing is that much of their mission seems to be helping other people to believe that it makes sense. It's kinda like Morpheus giving the Blue or Red pill to Neo. He and his band have done their convincing now it's up to Neo to figure out if he believes it and takes the red pill or not.
The latest example is this e-mail:
Hello FairTax supporters,
Is it the American appetite for all things foreign, from oil to cars to clothing, that pushed the trade deficit to yet another record in 2005? Or is it our broken income tax system?
The U.S. Department of Commerce reported last month that the overall trade gap climbed to an all-time high of $725.8 billion last year, up 17.5 percent from 2004, marking the fourth straight record. Analysts predict that the 2006 trade gap will be even worse. The year's $201.6 billion deficit with China, the largest ever recorded with a single country, brought demands for a crackdown on what the U.S. sees as unfair trade practices. This occurs at a time when Europeans are viciously attacking the U.S. for not phasing out fast enough the puny export incentive provided in the form of the Foreign Sales Corporation (one of the many small loopholes in the tax code).
It's time Congress knew what FairTax supporters know: The real culprit is our income tax system. It penalizes American manufacturers and workers in order to provide what is, in effect, a tax incentive for foreign goods. The U.S. allows foreign-produced goods to enter our market fully tax free, yet we fully tax American-made goods. Foreign producing nations rebate the tax they impose upon export, but the U.S. does not. And when Americans seek to export, the foreign nations with whom we trade have no problem reimposing border taxes at an average rate of 18 cents per dollar. In other words, we tax our own goods and don't tax theirs. No wonder we have a trade deficit. Americans don't have too high an appetite for foreign goods. We have an appetite for less expensive goods.
Next time you hear a member of Congress talk about manufacturing losses or the trade deficit, raise this point. The FairTax puts foreign and American-made goods on an equal footing. (Source: Dan Mastromarco, the Argus Group)
As you fill out your tax returns this week and next, take a moment to e-mail your friends the link to FairTax.org: (http://www.fairtax.org/) and let them know why you support the FairTax!
Maybe I took the red pill and it's side-effects are severe, but that seems quite plausible to me. For the record (and for the impatient), the "Fair Tax" is essentially a consumption tax; you're taxed on what you buy (some items like food excluded). You want to pay less taxes? Buy a cheaper car. Their website has lots of interesting articles and research that talk about specifics and respond to question like "is it good for the economy to incent people to buy less so that they can reduce their taxes?"
</soapbox>
Saturday, April 8, 2006
Just in case...
Thursday, April 6, 2006
Help Out
Anyhow, every participant needs to raise $750 to participate. I'm trying to raise $2000 because I'm an overachiever, and because I know that all 4 of you listening are GENEROUS and LOVING people. If you'd like to help, I've set up a "thon" page with Give Meaning.
You can Give Here. The "Profile", "Event" and "Sponsors" links on the "Project Details" tab have good information about the event. You may also want to read the "How This Works" tab.
Thanks for your help!
Wednesday, February 15, 2006
Tuesday, January 31, 2006
Prototype
Bad:
Element.setStyle(mydiv, {float: 'left'});GOOD:
Element.setStyle(mydiv, {cssFloat: 'left'});I suppose this is probably true outside of prototype too..
The sticky wicket about this is that Safari seems to be the only browser that cares. Firefox and IE handle it just fine. Safari fails mysteriously.
Two haircuts down
Friday, January 6, 2006
Seven more months for me too...
July, but we started dating 15 years ago and met long before that as children.
Our parents have volunteered to watch the kids, but we’re still trying to decide what we want to do though. It’s a hard balance between doing things that you can’t do with children and not going too far from the kids. Right now, the leading contenders are some sort of road trip through the mid-west visiting friends and family, camping, etc. and going on a cycling tour in the northeast (does anyone have any experience with a cycling touring company that they like?), or we may just go to B&B/spa-resort thinger with plenty of reading time. Any other ideas?