Dear lazyweb, an svn question

An svn question, reposted here in the chance that one of my brilliant readers knows the answer:

From #svn on Freenode:

[10:29] Good morning, all you brilliant people.
[10:30] I’m attempting to checkout a versioned copy of a directory tree on top of an unversioned one. So, an installed product, and overlay that with versioned files – modifications to the installed product.
[10:30] Is such a thing feasible?
[10:30] When I try, I get “svn: Failed to add directory ‘application’: object of the same name already exists”
[10:30] The scenario is a custom build of a product for a customer, which consists of adding/modifying various files on top of an installed product.

Apache Web Server training, mod_rewrite training

I’ll be teaching two training classes at the upcoming ApacheCon in Atlanta in November.

On Monday, I’ll be teaching Apache, Nuts to Bolts, with Jim Jagielski, another long-time contributor to the Apache httpd project. This class is a day-long training on everything from obtaining and installing the server to configuration, third-party modules, and security, and everything in between.

On Tuesday, I’ll be teaching a half-day training onmod_rewrite, the most powerful, and probably most confusing module, and the source of the majority of questions on any given Apache support forum.

I’d love to have you in my classes. ApacheCon will be fun, as always, and Atlanta is a great city. We’d love to see you there.

Surge 2010

If you care about scalability, you should care about Surge, a new conference put on by the company that’s synonymous with scalability, OmniTI. The speaker list reads like a who’s who of scalability – the folks who do this stuff in Real Life and who have figured out the rules and when to break them. Pretty much every hour of the conference offers a choice between two can’t-miss talks.

You should go.

Pockets

Pockets

From the pair of socks —

every boy must some time succumb
to the need to run barefoot,
sink his toes in the mud and feel the grass
tickle his toes —

to the small toy gun, slightly chewed —

some lego hero, in his last throes,
squeezed off a last round before being eaten
by the alien invaders
come to enforce their new tyrannic rule —

there’s a map of the weekend in his pockets.

A stub of pencil,
number 2, Ticonderoga,
sharpened all the way down to the eraser,
no doubt in preparation for writing
the great novel to displace Harry and Percy
in the hearts of millions.

A rubber band, a flashlight, and a keyring,
part of elaborate plan lacking only dynamite
and a fishhook
and perhaps a few small bits of string
for the construction of the doomsday machine.

And a misshapen blob of beeswax,
a tribute to hours spent listening to theological proclamations
less interesting than candles.

Assorted other nicknacks,
a carabiner, a small canvas strap,
a bottle cap, a length of chain,
several scraps of paper and plastic,
paint a picture much more vivid
and active than he tells himself.

What did you do this weekend?

Nothin’.

Climbing wall

I picked up a book at the beginning of the summer called Handy Dad. The idea was to pick a dozen projects that I could do with the kids in the coming year.

We did the water rocket on July fourth. I’m pretty sure there’s video of it somewhere.

Both kids picked the climbing wall, which is really simple in concept, but the instructions tell you to buy preformed climbing handholds, which, while very cool, are also very expensive.

So I decided to make them myself.

I got a 4 x 4 fence post and I’m cutting 3 or 4 inch pieces from it, and forming them with a dremel. It takes anywhere from 2 minutes to a half hour to make one, depending on how elaborate you want to make it. Later today, I hope to attach the first batch of handholds on a tree down at the creek, and will post pictures of that, too.

This is part of a much larger project, including a rope bridge and a tree house. I expect that this will take at least until next summer. I’m really looking forward to how this turns out. I’m completely making it up as I go along, and have no idea what I’m doing.

I recommend this book, along with Fifty Dangerous Things You Should Let Your Children Do as project starters for you geek dads looking for ways to indoctrinate your not-yet-geek kids.

Also, if you haven’t seen Howtoons you should check those out, and you should read the Geek Dad blog every day.

June 7, 2010

I mentioned, when Elise was born, that I’d write more later. I wrote something on 750Words.com a while back, but never went back to edit it. Here it is, still largely unedited, because Ruth mentioned that she really wanted to read what I had to say about it:

—————–

Around 9: 45 on Sunday morning, Maria called me in and said that she’d suddenly passed a bunch of liquid that wasn’t urine – that is, that her water had broken. Since we were at 35 weeks, too early to deliver at home, we determined that it was time to head to the hospital. We called the midwife, who was on vacation, and her assistant, who didn’t respond, and this confirmed our decision.

(I also missed the opportunity to insert Steve Martin’s quote here. “My water broke!” “It’s ok, we’ll get you another one.”)

We were, of course, very, very disappointed, having decided to do this at home, and quite looking forward to that experience. We had watched several videos of home deliveries, and I was getting quite excited about the experience.

We also called Kriss, our doula, who, amazingly, wasn’t away, but was sick. She said that she’d come, and tell them that it was allergies. Kriss is my favorite person in the world now.

We took our time getting ready. The kids got a change of clothes, and a few books, and we packed a few things for us and then headed to the hospital. Contractions hadn’t started, so there didn’t seem to be any immediate hurry.

We arrived at St. Joseph East, and checked in at the Women’s Hospital, where we were admitted to a lovely room. The place has only been open for less than month, and everything was brand new, with much still unfinished.

Our nurse came in and introduced herself – Kathleen, or Kate, and offered us another room, with a birthing tub, so we picked up everything and moved.

Isaiah wanted to go to a friend’s house, and they came and got him pretty quickly, but Sarah wanted to stay as long as she could.

Kriss showed up and made herself at home.

Then, for a long time, nothing much happened.

We told the nurses that we had intended to do this at home, and they assured us that they’d try as much as possible to make this like home. They promised not to offer any medication, and the night nurses, when they came around, put up a sign to that effect on the door.

As evening wore on and very little had happened – contractions had started, but were still pretty mild – Sarah’s friends the Franks came and picked her up for the night.

At one point, I heard singing in the hallway, and was pretty sure that it was a bantu African language. I went out to ask who it was, and saw two african women disappearing around the corner. I asked, and found out that they were from Congo/Zaire. Later in the evening, they showed up in our room and sang us a song, in Swahili, about how we live in God’s house, and so everything comes to us as a gift from God. It was so very kind of them, and one of the best memories of the whole experience.

And we waited. We walked around some, and at one point were told that if things didn’t progress pretty soon, they would start recommending some medication to induce labor. After walking around a little more, contractions started in earnest, and after a while, they filled up the hot tub.

While in the hot tub, the contractions were getting very strong. Maria moaned and groaned and made all sorts of other odd cow-like noises. It was fascinating to watch and listen to, but was plainly not a whole lot of fun.

Eventually the nurses came back in and said that they needed to get her on the monitors yet again – they had been doing this every couple of hours the whole time – to see how Elise was faring. They said she could get back in the tub when they were done. However, when they were done, Maria opted to stay on the bed, on her hands and knees, as that was pretty comfortable. She asked me to get behind her, apply pressure to her pelvis, and rub her lower back. I did that for most of the rest of the process, massaging her lower back, and leaning on her rear and pelvis, as this apparently relieved some pressure and pain.

Various people kept asking me if I was tired, if I wanted to take a break, if they could take over. I had no intention of letting anyone take over until it was over. That was what I was there for, and, quite possibly, what I’m here for – in the larger sense – here on earth, for that moment. It was wonderful to be able to participate in that.

Throughout all of this, the moaning and mooing got faster and louder. and was quite obviously more and more painful. During this stage, Maria loudly asserted that she couldn’t do it, but I don’t think I ever once doubted that she could in fact do it.

Eventually she ended up on her back, and the doctor and nurses lifted her legs and encouraged her to push, saying that there were just a few pushes left. Sure enough, out came a curly brown haired head, the opening stretching impossibly large, and looking … quite improbable. How that came out of there, I can’t quite imagine. And then, very suddenly, the rest of her came out, and Elise Marguerite came into the world. It was 2:27am on Monday, June 7, 2010.

I went around and cut the umbilical. I thought that this would be stomach-turning, but it seemed very natural, and I’m glad that I got to do that. They then whisked Elise over into the corner, where they started blowing oxygen in her face. I realized that she had been silent so far, and I started to get scared. I went over to where she was, and each breath that she tried to take, her chest sunk very deep. She was having a hard time with each breath, and they were suctioning liquid out of her lungs. After a little while doing this, she started crying, which was the most wonderful sound ever.

After this, I carried Elise to the NICU, and sat there with her for three hours while they told me every 20 minutes that it would just be 20 minutes and then we could go back to the room. Finally, Maria came in, in a wheelchair, and was able to hold Elise for a little while.

FINALLY, we headed back to the room. On the way, we had to stop in the nursery so that they could put on the security ankle bracelet. They promised she’d be in the room in five minutes, and shooed me off, despite my obvious unwillingness to leave her there. More than a half hour later, they delivered her to the room, and we were able to sit all together holding her. This was about 6am

We finally got a little sleep, but around 7:30 they came and wanted to take her away AGAIN. I was getting pretty fed up at this, but it was clear that they weren’t giving us an option. Mostly, however, after that, they let us keep her until we came home, with a few brief exceptions.

The rest of the time there was mostly us asking when we’d be allowed to go home, and not receiving a direct answer, right up until the very last minute. We were particularly impatient to get back home, since we really didn’t want to be at the hospital in the first place, and the folks there were clearly used to folks staying as long as they could. So we eventually came home the following morning.

Barber Shop

In Wilmore, the town where I went to first grade and college, there is a barber shop named Clay’s. Clay has cut hair there for almost sixty years. He will utter the ancient incantation, “blocked or tapered in the back?”, he’ll will listen politely while you tell him what kind of hair cut you want, and then he’ll give you the same haircut that he’s given every man who’s come into his store since 1950.

In Wilmore, there are also hairdressers. Scads of them. Possibly one for every ten citizens of the town. It’s always been a marvel to me that they stay in business.

Here in Lexington, I can’t find a barber shop, of any description, without driving for fifteen minutes. There are hair dressers. Plenty of them. But I realized this morning, as I approach the time when I can no longer avoid a hair cut any longer, that I have never, not even once, seen a man in the hair dressers that I’ve gone to around here. And the amount of goop that gets glopped into my hair when I go there makes me wonder whether they have, in fact, ever cut a man’s hair.

I am *so* tired of going for a simple hair cut, and having some beauty-school graduate think I also want my eyebrows trimmed, and possibly highlights and a perm. And don’t even get me started on what they try to do to my beard.

Which all leads me to wonder, where do men around here go for their hair cuts? Maybe I just need to start taking the trek across town to the “Old Fashioned Barber Shop.” But why is it old fashioned? Doesn’t any man just want a hair cut these days?

UPDATE: Awesome related article: Barber Shops

TSA and filtered internet access

Several people reported today that the TSA has started filtering its employees’ access to the Internet, including access to sites featuring “controversial opinions”.

Many folks were quick to denounce this as censorship, demonstrating their lack of understanding of how web filtering works. Lots of comments were posted by readers, asking things like “Who decides what’s controversial?” “Will Fox News be blocked while MSNBC is permitted?” and other questions that, similarly, reflected a general misunderstanding of how web filtering software works.

I’d like to make several points about the TSA’s decision. I find myself in the bizarre position of defending an IT decision by an organization with which I disagree on almost every other point.

1) A significant percentage of businesses, and most government agencies, monitor, track, and restrict access to the Internet. This is not a curtailment of your rights. On the contrary, they are paying you to work for them, and every moment you spend at work reading Facebook could very well be considered theft of company resources.

2) When you install web filtering software, you’re given a list of checkboxes describing categories of web content. One of them might be something like “Controversial Opinions”, and will likely contain such things as hate sites, sites about gay and lesbian rights, sites about abortion, and sites about vegetarianism. These sites are categorized as such simply because viewing these sites in the work place can result in disruptive arguments among employees, or simply because the conversations that result are detrimental to productivity.

3) As for the question “Who Decides?!?!?” that keeps getting asked, the answer is pretty darned simple. It’s not the TSA. It’s not the government. It’s not President Obama or his cabinet. It’s college students, getting paid minimum wage, at Universities around the country, who look at websites, and categorize them. No conspiracy exists here. They are given criteria by the manufacturers of the web filtering software, and simply categorize according to those criteria. So when the TSA installs software and checks the “Controversial Opinions” checkbox, not only didn’t they decide what’s in there, they don’t even know what’s in there. And what’s in there changes daily, as those college students update the master list of what sites are porn, what sites are hate sites, and what sites are about fluffy bunnies.

So, when I read that the TSA was starting to filter their employees’ web access, my first question was, why are they doing it in 2010, when all other responsible agencies implemented policies like this *at least* five years ago? When I saw the ludicrous articles claiming that this proves that the current government hates dissident opinions, and that this is the first step towards government control of the Internet, I chuckled a little. But when I started realizing the number of people who think that this is a conspiracy to control the Internet, and that the President is in on it, I have to say that I find it profoundly irresponsible for folks like InfoWars.com and their ilk to whip people up into anti-government frenzy based on lies, misinformation, and obfuscation of the plain and readily-available facts.

Get your facts, folks, before you start calling a simple IT policy change, a government conspiracy. You clearly don’t understand how IT decision-making works in the real world of corporate America.

Karate Kid

We went to see Karate Kid on Monday night.

It was better than the original in every way imaginable. It was way more believable. Jaden Smith is a better actor than everyone in the original put together, and was absolutely believable. And Jackie Chan was not only Jackie Chan, with all the humor and brilliant martial arts that implies, but he was also a completely convincing sad, lonely old man.

We laughed. We cried. We cheered. We gasped. We cowered. It was pretty much brilliant in every way.

And the change of setting made the premise all that much better. In the original, a New Jersey kid is displaced to California, which, while disrupting, isn’t exactly the end of the world. This was the end of the world. An african-american kid from Detroit is suddenly in Beijing, and so completely out of his element that everything, even turning on the hot water, is an insurmountable hurdle. Most of us can relate to this displacement at some level – if not to that extreme – and we felt each moment with him.

Now, if you’ve seen the preview, you’ve seen most of the best *action* moments, and if you’ve seen the original there will be no plot surprises. But you should go see this, and you should take your kids. It’s the best movie I’ve seen in a very long time, and was even worth the exorbitant bill at the Movie Tavern.

Did I mention that Jaden Smith is an amazing actor? This kid has a brilliant career ahead of him. Let’s hope he doesn’t go the way of so many other spoiled child stars.

Review: Modsecurity Handbook, by Ivan Ristic

mod_security Handbook

I’ve finally finished reading Ivan Ristic’s new book, mod_security handbook, published by Feisty Duck. Ivan is the brain behind mod_security. By the way, if you’re not using mod_security on your Apache server, you should be. And this is the book to tell you how to use it.

Ivan sent me a few early releases of the book, and about a month ago I received the first print edition.

This book is what you’ve been waiting for if you use mod_security. (And, as I mentioned, if you’re not using it, you should be.) The documentation for mod_security has long been frustrating. Even where it was complete and informative, you just didn’t know where to start.

This book is where to start.

The first 2/3 of the book is written in tutorial fashion, walking you through tasks from installation to complex scripting. Chapter 6 gives a great description of writing rules, and Chapter 9 gives numerous practical examples which flesh out what goes before. I always learn best by example, so these examples and the accompanying explanations make the earlier academic learning more meaningful to me.

Chapter 8 is about persistent storage of data. I’ve long been interested in this area of mod_security, and have had many times when I needed it and didn’t understand the docs on it. Ivan makes it much clearer than I’ve seen it presented before. I’ll be looking back at this the next time the need arises to do this kind of thing.

The last third of the book is the reference manual. I’m a big fan of having the reference manual in printed format, although it does run the risk of being out of date quickly.

This book is constantly updated, so you can always obtain the latest version. However, it’s unlikely that I’ll be buying a new paper book each time there’s a new release of mod_security. This book is also available in electronic format, and if you buy the ebook, you get updates to it as part of your purchase price. That’s pretty cool.

On the whole, this book is a long-awaited resource, and is very well written, by the person who knows the topic best. Highly recommended. You should go get a copy right away.

The Margin Is Too Narrow