Recent PhotosCalendarArchivesQuicksearch |
Sunday, August 27. 2006Renovation: Weeks 8-9
We've been very busy lately, so I'm a bit behind on renovation updates.
I've posted the photos for weeks 8 and 9. The new kitchen is starting to take shape! We're also going to get a nice heating/air system. My great uncle, who is doing that work for us, came up with a 3-zone system. We'll have one furnace & AC, but three temperature sensors. There will be motorized dampers in the ducts that are controlled by that system, so we can direct hot or cold air only where it needs to be. We'll break even on it now because we can make do with a smaller AC and furnace, and will save money over the long run due to lower utility bills. We also learned that the wood floors in pretty much the entire house can be saved, so that'll be nice, too. Here's a sample: ![]() Click here for the rest. Monday, August 14. 2006
Posted by John Goerzen
in House Renovation at
17:32
Comments (3) Trackbacks (0) Defined tags for this entry: renovation
Renovation Update: Weeks 6-7
The big news out at the farm this week is the foundation on the house. In 6 days of work, the foundation people have already demolished the old foundation, leveled up the house, dug out the area for the new foundation (which is digging down and out to expand the foundation to cover the whole house), and poured the walls. So the house is now sitting on new walls.
Here are some photos of the foundation work in progress. Monday, August 14. 2006HP Officially Supports DebianSunday, August 13. 2006Peter
I was meaning to write this story two weeks ago, but then the fire happened... So better late than never.
My brother Peter is participating in a ministerial inquiry program this summer. College students can spend a summer as an intern at a church and start to get a real feel for what it's like to be involved with ministry. Two weeks ago, Peter gave his first sermon at the church he's with this summer. He compared the task of a bunch of college guys trying to figure out how to get their bathroom clean to that of figuring out how to spread Jesus' word. A great (and entertaning!) sermon for sure. We went back to hear his second sermon today -- a more serious, but no less vibrant, one about how Elijah felt that he wasn't up to the task the Lord had in mind for him. Peter did a great job again, and gave me some things to think about. Now, since I've been going through pictures this weekend, here's a picture of Peter back when he was 6. Our parents were having drywall installed at the time, and Peter and I found the stilts that the drywall installers were using one evening. We had a lot of fun walking around on them. Peter is the one on the left with the smile, toy sheriff's badge, hat, and pen on his shirt. (He still has the smile and pens, but I haven't seen the badge or hat in awhile.) I'm the one on the right, looking annoyed that I'm not on my preferred side of the camera lens. I really was enjoying myself until then ;-)
Sunday, August 13. 2006Bowling with Grandpa
I've been taking photos for a long time. Today I found some pictures I had taken back when I was 11.
My grandpa used to like to take my brother and me bowling. Grandpa was a good bowler and played on a team. I wasn't a good bowler. But it was fun because it was the two of us and Grandpa, and he'd always take us out to eat afterwards, too. Here is a picture I took while bowling with Grandpa back in 1991: ![]() It's fun to look at some of these old pictures. They sure bring back the memories. And sometimes there are worthwhile ones like this in between all the photos of pets and household objects. Thursday, August 10. 2006
Posted by John Goerzen
in Software at
19:51
Comments (23) Trackbacks (3) Defined tags for this entry: darcs, version control
Whose Distributed VCS Is The Most Distributed?
Lately I have been trying out a number of distributed version control systems (VCS or SCM).
One of my tests was a real problem: I wanted to track the Linux 2.6.16.x kernel tree, apply the Xen patches to it, and pull only specific patches (for the qla2xxx driver) from 2.6.17.x into this local branch. I wanted also to be able to upgrade to 2.6.17.x later (once Xen supports it) and have the version control system properly track which patches I already have. But before going on, let's establish what it means to be an ideal distributed VCS:
There are also some things that we would generally want:
EvaluationLet's look at some common VCSs against these criteria. I'll talk about Arch (tla, baz, etc), bzr (bazaar-ng), Darcs, Git, Mercurial (hg), and Subversion (svn) for reference. 1. The fundamental method of collaboration must be a branchAll of the tools pass this test except for svn. 2. Branching should be cheapEveryone except svn generally does this reasonably well. The tla interface for Arch had a pretty terrible interface for this, so it took awhile simply due to all the typing involved. That's better these days. Darcs supports hardlinking of history to other local repositories and will do this automatically by default. Git also supports that, but defaults to not doing it, or you can store a path to look in for changesets that aren't in the current repo. I believe Mercurial also can use hardlinks, though I didn't personally verify that. bzr appears to have some features in this area, but not hardlinks, and the features were too complex (or poorly documented) to learn about quickly. svn does not support branching across repositories, so doesn't really pass this test. Branches within a repository are not directly supported either, but are conventionally simulated by doing a low-cost copy into a specially-named area in the repository. 3. Merging between branches is intelligentArch was one of the early ones to work on this problem. It works reasonably well in most situations, but breaks in spectacular and unintelligble ways in some other situations. When asked to merge one branch to another, Darcs will simply merge in any patches from the source branch onto the destination which the destination doesn't already have. This goes farther than any of the other systems, which generally store a "head" pointer for each branch that shows how far you've gone. (Arch is closer to darcs here, though ironically bzr is more like the other systems) Merging between branches in svn is really poor, and has no support for recognizing changesets that have been applied both places, resulting in conflicts in many development models. 4. Inividial changesets should be mergeable without bringing across the whole historyDarcs is really the only one that can do this right. I was really surprised that nobody else could, since it is such a useful and vital feature for me. Both bzr and git have a cherry-pick mode that simulates this, but really these commands just get a diff from the specific changeset requested, then apply the diff as with patch. So you really get a different changeset committed, which can really complicate your history later -- AND lead to potential conflicts in future merges. bzr works around some of the conflict problems because on a merge, it will silently ignore patches that attempt to perform an operation that has already occured. But that leads to even more confusing results, as the merge of the patch is recorded for a commit that didn't actually merge it. (That could even be a commit that doesn't modify the source.) Sounds like a nightmare for later. Arch has some support for it, but in my experience, actually using this support tends to get it really confused when you do merges later. Neither Mercurial nor svn have any support for this at all. 5. Branching preserves full historygit, darcs, and Mercurial get this right. Making a branch from one of these repos will give you full history, including individual diffs and commit logs for each changeset. Arch and bzr preserve commit logs but not the individual changesets on a new branch. I was particularly surprised at this shortcoming with bzr, but sure enough, a standard bzr merge from a remote branch commited three original changesets into one and did not preserve the individual history on the one commit. svn doesn't support cross-repo branching at all. 6. Merging preserves full historyAgain, darcs, git, and Mercurial get this right (I haven't tested this in Mercurial, so I'm not 100% sure). Arch and bzr have the same problem of preserving commit logs, but not individual changesets. A merge from one branch to another in Arch or bzr simply commits one big changeset on the target that represents all the changesets pulled in from the source. So you lose the distinctness of each individual changeset. This can result in the uncomfortable situation of being unable to re-create full history without access to dozens of repositories on the 'net. Subversion has no support for merging across repositories, and its support for merging across simulated local branches isn't all that great, either. 7. It is possible to commit, branch, merge, and work with history offlineEveryone except Subversion does a good job of this. 8. The program is fast enough for general-purpose useAll tools here are probably fast enough for most people's projects. Subversion can be annoying at times because many more svn commands hit the network than those from others. In my experience, Arch was the slowest. Though it was still fine for most work, it really bogged down with the Linux kernel. bzr was next, somewhere between arch and darcs. bzr commands "felt" sluggish, but I haven't used it enough to really see how it scales. Darcs is the next. It used to be pretty slow, but has been improving rapidly since 1.0.0 was released. It now scales up to a kernel-sized project very well, and is quite usable and reasonably responsive for such a thing. The two main things that slow it down are very large files (10MB or above) and conflicts during a merge. Mercurial and git appear to be fastest and pretty similar in performance. All of these tools perform best with periodic manual (or scheduled cron jobs) intervention -- once a month to once a year, depending on your project's size. Arch users have typically created a new repo each year. Darcs users periodically tag things (if things are tagged as part of normal work, no extra work is needed here) and can create checkpoints to speed checkouts over the net. git and Mercurial also use a form of checkpoints. (not sure about bzr) Subversion works so differently from the others that it's hard to compare. (For one, a checkout doesn't bring down any history.) ConclusionsI was surprised by a few things. First, that only one system actually got #4 (merging individual changesets) right. Second, that if you had to pick losers among VCSs, it seems to be Arch and bzr -- the lack of history in branching and merging is a really big issue, and they don't seem to have any compelling features that git, darcs, or Mercurial lack. #4 was a unique feature to Darcs a few years ago, but I figured it surely would have been cloned by all the other new VCS projects that have popped up since. It seems that people have realized it is important, and have added token workaround support for it, but not real working support. On the other hand, it was interesting to see how VCS projects have copied from each other. Everyone (except tla) seems to use a command-line syntax similar to CVS. The influence of tla Arch is, of course, plainly visible in baz and bzr, but you can also see pieces of it in all the other projects. I was also interested to see the Darcs notion of patch dependencies was visible (albeit in a more limited fashion) in bzr, git, and Mercurial. So, I will be staying with Darcs. It seems to really take the idea of distributed VCS and run with it. Nobody else seems to have quite gotten the merging thing right yet -- and if you are going to make it difficult to do anything but merge everything up to point x from someone's branch, I just don't see how your tool is as useful as Darcs. But I am glad to see ideas from different projects percolating across and getting reused -- this is certainly good for the community. Updates / CorrectionsI got an e-mail explaining how to get the individual patch diffs out of bzr. This will work only for "regular", non-cherry-picked merges, and requires some manual effort. You'll need to run bzr log, and find the patch IDs (these are the long hex numbers on the "merged:" line) of the changeset you're interested in, plus the changeset immediately before it on the same branch (which may not be on the same patch and may not be obvious at all on busy projects.) Then, run bzr diff -r revid:old-revid-string..new-revid-string. I think this procedure really stinks, though, since it requires people to manually find previous commits from the same branch in the log. Tuesday, August 8. 2006First steps with git and I'm not all that pleased
I have been tracking 2.6.16.x here because Xen doesn't have patches for 2.6.17 yet (why on earth that is, I don't know.) But I need a few 2.6.17.x patches to the qla2xx driver. So I figure this is an opportunity to learn git.
I learned git, but then quickly learned that I can't just pull random commits from one branch to another. I have to use git cherry-pick, which doesn't actually pull the commit unmodified -- it takes a diff, and commits a new patch based on that diff. So I expect problems later when I bump the local branch to 2.6.17. This seems depressingly like arch/baz/bzr, and is a good reason for me to stay with darcs for now. This same operation with darcs would have been trivial, AND darcs would have automatically pulled in prerequisite patches rather than giving a merge failure and making me find them manually. Thursday, August 3. 2006Family Patterns and The Great Grandparents' House
First, a random amusing pattern: If you follow my family tree up, once you get back to the 1800s, you'll see several generations in a row in which people alternated names between B. H. Friesen and H. B. Friesen. The pattern finally broke when D. B. Friesen was born in 1891. This was back in the day when people were often called by their initials. (The initials stood for Heinrich Bernhard, by the way.)
Now then... Frequent readers of this blog know that Terah and I purchased the place my grandparents owned (where my dad grew up). The part I haven't mentioned is that my parents did the same thing -- my great grandparents owned the farm that my parents bought after they got married. My dad's mother grew up there. My parents had an old farmhouse on their property, too. They opted to build a new house -- the old house made a nice home for rats, but not such a great home for people by that time. But that doesn't mean that the old house got torn down. Nope, they had it moved to a museum, where a group of volunteers restored it. Terah and I went to visit the 1911 Friesen House at the Mennonite Heritage Museum in Goessel a couple of weeks ago to get some decorating ideas for the house we're renovating. I'm going to get some more photos this weekend -- it's THRESHING DAYS again at the museum! Cliff, there's still time to drive down to Kansas! (Here's a partial schedule) Terah liked the idea of buying the farm. But I don't think she'll go for restarting the other family tradition.... (well, I wouldn't, either, but it is funny...) So I will end this post with a small collection of photos from Threshing Days 2004 (click the link). Here's the usual sample: Tuesday, August 1. 2006
Posted by John Goerzen
in House Renovation at
20:32
Comments (2) Trackbacks (0) Defined tags for this entry: fire
Fire updates
Whew. Lots has been going on the past couple of days.
First, many thanks to all that sent us e-mails, comments, and notes. We appreciate it! It's nice to have people the care. Next, in addition to the first set of fire photos I posted, I have now added more photos: a second set of fire photos. Note that there are two pages to that as well. I've also added some photos to the Grandpa's Farm set -- this shows what things looked like back in April, before the fire. The buildings that burned are the barn, calf barn, and chicken house. On to the updates... Monday I went out to the farm first thing in the morning. Some areas were still smoldering -- basically wherever there was hay. It was a bit concerning. I went up to the 2nd floor in the house and took some photos of the yard. I headed on in to work. Later in the evening, I went back out to check on things. Two fire fighters were back out there with a fire truck dousing the remaining smoldering areas. Apparently the fire fighters had been checking on the place intermittently all day and had been out there with water earlier as well. The Goessel Fire Dept. is an all-volunteer department. These people aren't getting paid for this, and they do an EXCELLENT job. Someone was out at 1AM Monday, again at 10AM Monday, then twice more with the truck. They did all this on their own -- I hadn't asked them to. It is amazing how much these people care about the community and taking care of fires. I also never knew how long bales of hay burn. Here's one of the new photos: Tuesday, August 1. 2006
Posted by John Goerzen
in VOIP & Asterisk at
16:45
Comments (0) Trackbacks (0) Defined tags for this entry: asterisk
Asterisk: The Software Phone Company
Issue 13 of Free Software Magazine is out, and it includes my article Asterisk: The Software Phone Company. If you're interested in running your own PBX in software, check it out.
|
The ChangelogMost Popular TagsSyndicate This BlogBlog Administration |

Comments
Thu, 15.05.2008 05:01
In general, it is impossible t o prove that something is rand om, and difficult to ascertain that something is suffi [...]
Thu, 15.05.2008 00:24
There should be testing of pat ched programs before they are released, when feasible. This bug could have been caug [...]
Wed, 14.05.2008 16:58
Sure, it's only modifiable if it's a pointer... but pointers are the only practical way to pass many things: strin [...]
Wed, 14.05.2008 16:47
"Especially since you may be d ealing with functions that cal l other functions 5 deep, and one of those functions m [...]
Wed, 14.05.2008 16:22
Imagine that you are knowingly breaking the law by not apply ing for the appropriate visas. Not only that, but you [...]
Tue, 13.05.2008 18:59
I have heard that argument bef ore, and frankly, I'm unconvin ced. I am not aware of any Am erican jurisdiction wher [...]
Tue, 13.05.2008 18:55
What a wonderful point and pos t. You're quite right, and it 's high time we all revisit th e notion that legality d [...]
Tue, 13.05.2008 18:52
Quite right. Article fixed ab ove.