Posts from February, 2010
-
Structure over Flexibility
From February 25, 2010 @ 8:35 am
At one time or another, someone thought that each of the following control structures was a good idea:
…
- Ability to have the program generate code on the fly and then execute the code it just wrote.
…
At one time, each of these ideas was regarded as acceptable or even desirable, even though now they all look hopelessly quaint, outdated, or dangerous. The field of software development has advanced largely through _restricting_ what programmers can do with their code. Consequently, I view unconventional control structures with strong skepticism. I suspect that the majority of constructs in this chapter will eventually find their way onto the programmer’s scrap heap along with computed _goto_ labels, variable routine entry points, _self-modifying code_, and other structures that _favored flexibility and convenience over structure and the ability to manage complexity. – Steve McConnell. Code Complete 2e
I guess Mr. McConnell isn’t too much of a fan of Lisp. Especially considering that everything he finds wrong with these strange control structures seem to be what Yegge and The Wizards seem to appreciate about the language, although I suppose that Lispers would argue that their language allows them to be far more expressive and semantic about what the crazy things they invent to solve their unique problems are than crummy goto statements…
-
Someone on the Internet is wrong.
From February 11, 2010 @ 6:00 am
On May 22, 2009, someone on the Internet made fun of the Donut Hole.
On May 22, 2009, someone on the Internet was wrong.
This is nothing if not awesomeness:
-
Get
emacs serverWorking in Emacs.app 23.1 on LeopardFrom February 10, 2010 @ 6:00 am
I recently upgraded from Emacs 23 alpha (the version MacPorts installed by default for a long time) to 23.1 and it broke a few things. I’m wrote up an extremely short (2 posts) series on getting them working again. You can read part one on
ispellandinterprogram pasteif you’d like.I’m entirely indebted to the friendly folks at the Emacs Users Mailing List for every solution that I present here. One of these days I’ll know Emacs well enough to troubleshoot my own problems.
Even with the switch to
open /Applications/MacPorts/Emacs.appI found that I could no longer runemacsclient. This is an issue because I use that as my defaultEDITORon every box I own. It turns out that 23.1 now ships with it’s own binaries of a number of applications like this that know how to communicate with Emacs.app rather than vanilla Emacs 22.3 as installed.The solution is to prepend the new
bindirectory located in/Applications/MacPorts/Emacs.app/Contents/MacOS/to yourPATHin your.bashrcfile. This allows you to run theemacsclientbinary found in thatbindirectory rather than the one installed by Apple or MacPorts (if you have the command line version installed as well as Emacs.app).To review (wraps marked with ¬):
Prepend
…/Emacs.app/Contents/MacOS/binto yourPATHif [ ¬ -d …/Emacs.app/Contents/MacOS/bin ¬ ] ; then export PATH=… ¬ /Emacs.app/Contents/MacOS/bin ¬ :$PATH fiRun Emacs.app via Terminal.app
open /Applications/MacPorts/Emacs.app
Voila.
-
Get
Kill/YankandispellWorking in Emacs.app 23.1 on LeopardFrom February 09, 2010 @ 6:00 am
I recently upgraded from Emacs 23 alpha (the version MacPorts installed by default for a long time) to 23.1 and it broke a few things. I’m going to document how to fix them in a few posts here.
I’m entirely indebted to the friendly folks at the Emacs Users Mailing List for every solution that I present here. One of these days I’ll know Emacs well enough to troubleshoot my own problems.
The first issue I noticed was that Kill/Yank (Copy/Paste for all you Emacs laymen at there) no longer worked. The problem lay in the
save-interprogram-paste-before-killfunction, apparently, but the solution presented to me on the mailing list didn’t make me happy either as I don’t like inside Emacs like many people do. I need to be able to enter text into an Emacs buffer and then get it into other programs. I stopped using Emacs for awhile at this point.One day, I decided to try to open Emacs.app via Finder.app and suddenly everything worked! Unfortunately, this also broke any dependencies Emacs had on any software I had installed via the command line. This was because Finder.app doesn’t inherit the
bin PATHthat you set via.bashrcbecause, well, it’s notbash.The solution here is to continue to open Emacs.app via the command line, but instead of using
/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacsas I’d been doing prior to upgrading to 23.1, useopen /Applications/MacPorts/Emacs.appinstead. I don’t know why I never thought of this before. It makes a lot more sense than what I was doing before even if before 23.1 it was working!As a corollary to this, another issue that I discovered when I upgraded was that
ispellno longer worked correctly. This was a big deal because I don’t like to spell check my own stuff.M-x ispellhas to work. The problem was that it could no longer find my installation ofaspellbecause it didn’t evaluate.bashrcto find myPATHsettings. Using theopencommand from Terminal.app solved this as well.To review:
Instead of starting Emacs.app via
/Applications/MacPorts/Emacs.app/Contents/MacOS/Emacsuse
open /Applications/MacPorts/Emacs.appfrom the command line so that
interprogram-pasteandispellwork. -
My Life Band
From February 08, 2010 @ 6:00 am

That’s my life band.
It’s actually hard to think about how long ago that was, considering all that’s happened in my life since then. Since I got the band, I’ve married, moved to Norristown, had 3 jobs, had one child and am now awaiting the birth of a second. It’s just crazy.
I was at the OneThing Conference in ‘04 when a man that I at the time hadn’t even heard of came on stage at the end of the conference. It was the first year that I’d been there when the conference wasn’t held in Bartle Hall and it had been, as usual, a complete whirlwind of a time. They pack so much information into those 4 days and your mind just ends up being blown by the end of it. When we had gotten there, we noticed this new organization that we hadn’t heard of before had a booth up. That organization was Bound4Life. It was headed, at the time, by a man name Lou Engle who my wife had heard of because of the famous 1999 Call D.C. (which apparently isn’t very famous on the web… here’s a clip from that day with Jesse Engle praying for the Nazirites) where 400,000 young people came to pray for the elections that year. Lou was like no one I’d ever seen. He spoke with such prophetic unction, shuckling in place and then stopping with his neck out like a huge overgrown turtle every time he’d made a point he really wanted you to get. His voice seemed to perpetually be lost, I assumed because of how passionately he spoke and cried out all the time.
What he spoke about that day was the massive outcry of blood that our nation has in its soil. 50 million babies have been aborted in our country since Roe vs. Wade. Despite the consistent claim that abortion rights are in place to protect the health of the mother, some estimate that over 95% of these children were murdered for reasons of inconvenience or unwantedness. I get these and other statistics from Bound4Life, a biased source no doubt but honestly, no one really disputes these claims. Lou Engle pronounced the urgent desperation of our position before God. We have legally sanctioned for over 30 years the unquestioned destruction of the most helpless and defenseless people group in the world: unborn children. And worse, we’ve done it in the name of choice.
God is not okay with that.
In response, he called for a massive prayer movement to begin in the United States and around the world to see abortion as an inalienable human right end, for adoption of children to be taken up in earnest by those rightfully responsible for it, the church, and for a great turning of the hearts of the Church towards mercy for those women who had received an abortion and who’s hearts were broken because of it. He wanted to encourage this by giving Life Bands to people and having those people commit to, whenever they saw that band, pray a simple 22 word prayer, “Jesus, I plead your blood over my sins and the sins of my nation. God, end abortion and send revival to America.” His hope and prayer was that that simple prayer would be prayed 50 million times every day to God.
And so I wore it ever since. I can’t say I’ve prayed that prayer every time I’ve seen the band; I can’t say I’ve been as active as I could have been in opposing abortion, in pursuing unwanted children, or in participating in acts of mercy towards hurting women who didn’t know what they were doing. But I haven’t forgotten Lou’s call, and I still tremble when I think of the guilt America is building as we daily sacrifice our children on the altar of our convenience.

And then the other day, after over 5 years of wearing it, my beautiful little girl woke me up by pulling on it and it snapped. We had another one that fit me but it just doesn’t feel the same. It’s kind of like the end of some sort of era. I was unmarried, childless, and young(er) when that thing went on my wrist for the first time. It snapped off after having remained there for all of the past 5 years and I’m not any of that any more. What a ride God has brought me on. And still, abortion runs free in America.
God is still not okay with this, and we will answer for our crimes. May he have mercy on us when that day comes.
So, in memoriam of my Life Band:
“Jesus, I plead your blood over my sins and the sins of my nation. God, end abortion and send revival to America.”
-
Round Robin Date Nights
From February 06, 2010 @ 6:00 am
We’ve been placing a lot of pressure on my sister and her husband to help us have a date night by watching Fiery. They’ve been awesome about it so far and we’ve been able to have date night a few times since Fiery has started to primarily eat when she’s hungry rather than nurse. This does, in my mind, place a fairly large burden on them, however, and I’ve been trying to think of a fairer way for parents of young children to have date night without having to resort to professional (or unprofessional) babysitting services.
How’s this for an idea?
Have a sort of round robin affair within a circle of friends who all have kids. The way it would work is thus: One family is up, all the other family’s can drop their kids off at a predetermined time (say, 6 o’clock). The one family can have activities or whatever and a large but simple to prepare dinner (grilled cheese?) that can be shared by all the kids. All the other families can go out and plan to be back no later than a given time so that the family hosting the children can expect when to be relieved (say, 10). That gives all but one family the opportunity to go out for the night. Rinse and repeat.
If you have a large group of friends, you’d only be up every couple of weeks. With five families, you’d have to watch about 10 kids every 5 weeks, and 4 weeks in a row you could have date night. That seems like a win. You could even organize this in your church depending on how much you trust your fellow church goers. If your circle is too big, then just split it up so that the family responsible for watching the kids isn’t overwhelmed.
Or…
We could always go with The Baby Sitters Club.
-
Having eyes, they don’t see.
From February 05, 2010 @ 7:53 am
People look without seeing, hear without listening, eat without taste, touch without feeling, and talk without thinking. — Leonardo da Vinci
This quote is widely attributed to da Vinci but in the 3 seconds I searched I couldn’t find where it actually came from. Anyway, I feel like it’s a rehash of many other quotes I’ve heard. One notable one that comes to mind at the moment is a quote that I believe I heard in high school but now can’t seem to find with my relatively weak GoogleFu. A monk is visiting New York for the first time and the Westerners showing him around expect him to be very impressed. They show him Times Square and take him to Macy’s and after a few hours he turns to his escorts and says, “It’s so strange. With so much wonderment all around them, all anyone in this city can seem to do is to look at the ground 3 feet in front of them.” In fact, one of my wife’s favorite teachers in high school (who’s blog is currently on hiatus) would purposely attempt to watch the ground rather than look around because he thought that it was the people who were looking around that were instantly marked as tourists and easy prey for sales pitches and pick pockets.
It has always been my personal goal to have this not be true of me. I desperately don’t want to drift through life eating and drinking, laughing and scratching, sleeping. I want to deeply engage with the time I have here. I’ll tell you how I did when God gives me my grade…
-
That’s the trouble with falling in love.
From February 01, 2010 @ 12:54 pm
Try as many ideas as you can in pseudocode before you start coding. Once you start coding, you get emotionally involved with your code and it becomes harder to throw away a bad design and start over. – Steve McConnell
I love this quote. I’m amazed every time I do anything how sold I get to the way that I started doing it. Just this past week I was working on a problem and I began in a certain way without too much thought up front. 3/4 of my way into the day with almost no progress having been made, I was still hacking away at the same solution, convinced that I was just too close to the problem or just another half a dozen lines of code away from solving it. What I should have done is stopped 2 hours into it and said, “This isn’t working. I can’t see why it should be this complicated. It must be the ’solution’ I came up with. Reset.”
This works in other areas of life as well. Taking the time to do a little analysis and design up front can save you boatloads of time and frustration, not just because you shouldn’t make as many mistakes during the actual implementation of whatever adventure you’re going on, but because it really is hard to give up on something once you feel committed to it.
This is probably why most people are still at the jobs they are.
