Building Subversion on The Mac and using Ecto for Blogging

I finally upgraded my Subversion installation on my MacIntosh to the 1.4 version. I was waiting for the “official” packages to come out so that I could just install it, but in looking at the different places recommended by the downloads page, these distributions haven’t been updated since early 1.3 releases.

I’ve had a goal to keep my Mac somewhat pristine. I decided thats not really practical. There are a lot of things that I use that I just like having built from scratch, so that I’m on the most current software and not dependent on someone else’s schedule. Subversion is one of those tools.

One thing I was shocked at was how quickly and seamlessly the build happened on the Mac. These MacBooks are pretty fast machines. I think it took a total of roughly 20 minutes (if that) to build, run tests, and install. The build on the Mac is definitely the fastest configure/check/install cycle I’ve gone through in the many installations of Subversion that I have performed over the years.

I tell you, the more I’m on the Mac, the more I like it. I haven’t run into anything that I’ve found irritating.

Its all good.

This is also the first post I am writing using a trial version of Ecto. I have to say, this application is pretty impressive too. They have both a Mac and a Windows version. I like it much better than blogging in WordPress directly – and at $17.95 a copy, its practically a no brainer to purchase.

Don’t get me wrong, I’m going to milk the 21 day trial, but it feels like this application is a pretty good fit for me.

A Samari in the Senate: Jason Calacanis Talks About Working in a Large Company

A portion of this weeks edition of the Gillmor Gang (MidTail Gang – part IV – ugh!) really hit home for me this week. At around 14:34 in the sub-episode, Jason Calacanis talks about how he feels as an entrepreneur working in a big company. This section lasts through the end of the sub-episode. You have to give this a listen.

I don’t think what Jason is saying is necessarily only a view from an entrepreneurs perspective, but applies to anyone who wants to execute and has built their career on the ability to execute. As a company grows larger and things get more political, it becomes extremely difficult to execute anything, which can become extremely frustrating for anyone who just wants to get things done without having to talk about it for three months.

One quote that Jason threw out bears repeating:

Centralization and consolidation, I think, are two of the worst forces for building great product. Once you centralize stuff and put in controls, it just – it kills the process.

I think its great that Jason can be so honest about the experiences he is having at AOL. You rarely hear someone talk about these things and it was very refreshing to hear something that hit so close to home.

I must have listened to this section about 4 times last night on the way home. This section, in and of itself, was worth the 5 part download yesterday.

Value Stream Mapping Software

I’m looking for software that does Value Stream Mapping. As with mind mapping, this process is an extreme pain without a tool to do it. If you know of any good software (or component add ons for existing software like Visio), please leave a comment on the blog. Of course, the first preference is free, but I’d love to look at commercial software as well.

Upgrading Subversion to 1.4

Subversion Logo

This weekend I finally bit the bullet and upgraded our production Subversion server to 1.4. The upgrade was painless, after the usual running of autogen.sh on the Neon libraries that for some reason are necessary when building on the Solaris 9 environment. I also had some weird test failures that wound up being caused by hook scripts being called on the test repositories. For some reason, Python couldn’t find one of the standard libraries, even though I had set my path and library path in my environment. A quick Google search later and all tests passed.

We have been running Subversion with the Berkeley 2.2 back-end since May of 2004, when the Subversion team first released 1.0. We’ve done a few upgrades since then, when I found the time, but wound up getting as far as 1.2.3 and my time to actually do the upgrades never really materialized. Part of that had to do with some pretty large projects that were going on that I didn’t want to interrupt the teams with an upgrade.

So yesterday, finally, I did the upgrade to 1.4. As part of the upgrade, I decided to dump and load the repositories (11 of them) to take advantage of the new SVN Diff format that 1.4 brings to the table. As part of that, I also decided to abandon the Berkeley back-end in favor of the FSFS file system.

The dumps and loads took quite a long time, about sixteen hours. However, the results were worth it. After all was said and done, we saw a reduction in server disk space usage of about 46.8%.

Not bad guys!

As I had mentioned in a previous post, one of the motivators for this upgrade were the working copy improvements, which according to the release notes, should cut down on inode usage on machines running the client. In our environment, we have about 20 people all working on the same machine (in their home directories) and we have had problems with inode max-outs in the past. Again, I’ll have to reserve judgement on these changes until we see the results, but this is one of the things that motivated me to bite the bullet and take a Saturday to do the upgrades.

The other big motivation for me, especially after yesterday was this statement from the FSFS document referenced above:

An FSFS repository can be backed up with standard backup software.
Since old revision files don’t change, incremental backups with
standard backup software are efficient. (See “Note: Backups” for
caveats.)

(BDB repositories can be backed up using “svnadmin hotcopy” and can be
backed up incrementally using “svnadmin dump”. FSFS just makes it
easier.)

Aside from normal system backups done nightly by the admin team, our nightly backups have also consisted of doing nightly dumps of all of the repositories so that, in the event that the repository server goes down, we can just load the repository on another machine (you can never have too many backups – in my opinion). The wake up call from yesterday is that it takes much longer to reload a repository on Solaris 9 than it does on the Linux work-group server I have sitting here that I did all of my original testing on a few years ago. What I thought would be a trivial load (3 hours was the estimate that I had in my head) wound up being 5-6 times that on the 2×2 Solaris box at work. It will be nice to be able to rely on the nightly system backups for these now — and perhaps just a quick tarring of the existing repository structure for quick backups (using hotcopy), rather than the dump / load process we have planned to use up until now. I’ve just never been comfortable for some reason with the Berkeley backend and backups outside of repository dumps.

Finally, I’m really looking forward to playing around with svnsync to set up a shadow fail-over repository in the event of an outage. This was something I threw on a wish list back in 2004, and I’m excited to see a tool to synchronize a “stand by repository” included in this release. There apparently is not much documentation on this new feature yet, but this article should be a good starting point.

Thanks to the Subversion team for another great release of their software. As anyone who reads this blog with any regularity knows, this is one of those pieces of software that I continuously receive value from and cannot say enough about.

Now I’m off to search for more svnsync documentation …

Current Reading Queue

Thought I’d throw out a list of the current reading queue. I have two books in process, another in waiting:

  1. Implementing Lean Software Development: From Concept to Cash – Currently Reading
  2. Lean Thinking : Banish Waste and Create Wealth in Your Corporation, Revised and Updated – On Hold Until #1 completed.
  3. The Toyota Way: 14 Management Principles From The World’s Greatest Manufacturer – In queue.
  4. Fearless Change: Patterns for Introducing New Ideas – In queue

Sensing a pattern here? I’m really intriqued by the lean way of thinking. The nice thing about it is as you read all of this stuff, you realize that they are pretty much the principles behind any agile method of development. The reading thus far has given me a good base of principles necessary to make sense out of the methodologies. There is something to be said about knowing the “why” behind what you are doing.

I’m sure there will be more to write about this later. One thing I will say: My brain hurts.

Ron – One Week Old

Photo by rbieber

Ron at 1 week old. Ironically, I spent most of my 20’s just like this (sans the pacifier).
June 1968.

Just really like this picture. A nice little thing to throw on the blog on a Sunday.

Honestly, I have no idea how old I was here. It looks to be a little more than a week though.

More on Mind Mapping and MindManager

I’ve been playing around with MindJet MindManager over the last week or so and I have to say, overall I really like it. Mindmapping provides a great mechanism in getting your thoughts down on paper and establishing relationships between different concepts, especially for someone who suffers from “chronic editor” syndrome such as myself.

I’d love to post some examples of some of the things that I have been working on, but the only real “work neutral” mindmap I have available is the one I previously posted. Some really good examples can be found in the mindmaps that Cote produces. These are some really good examples of the complexity that can be represented using this technique.

I had first read about mindmapping quite a few years ago in the book Quantum Learning: Unleashing the Genius in You by Bobbi Deporter (with Mike Hernacki). Deporter and Hernacki describe the Mind Mapping technique as “a whole brain technique using visual images and other graphic devices to form impressions”. The key piece of this, for me, has been the connection and breakdown of different concepts into sub concepts. The graphical nature of a mind-map, coupled with the distilling of the key concepts and relationships and visual representation, have allowed me to retain much more information while taking notes over the past week than I have previously experienced.

I had attempted mind-mapping when reading Quantum Learning, but the extremely manual process (actual drawing) turned me off immediately. For me, it just seemed like too much work.

That’s where Mind Manager comes in. With a few natural keystrokes you can string all of these concepts together, attach images or URL’s to the key concepts for further reference material, and flag concepts as priorities or something to pay attention to. The additional benefit of a tool to do this stuff is the ability to dynamically refactor your mind maps without having to throw away your piece of paper and recopy everything. The refactoring of these concepts has been something that I have been doing quite a bit.

The folks at MindJet were nice enough to give me complimentary licenses for both the Macintosh and Windows environments. Since buying a Mac in June, I have decided to use it exclusively at home in order to learn as much about the environment as possible (and, of course, to justify the investment). So, I have had the opportunity to work on a few mind maps across the two environments. There is no ‘import’ or conversion necessary. I store the maps on my thumb drive, work on them at home, take them to work, and they just load and are ready for continued editing on the Windows platform.

There are some differences between the two versions of the product. The Windows version has quite a bit of Microsoft Office integration. You can export your mind maps to Visio, Word, Excel and even Microsoft Project, in addition to JPG and PNG image formats and PDF. Both versions allow you to add task information to map nodes, including flagging nodes as resources and flagging them as quarter, half, three quarters done, as well as completed. I have not experimented with taking these types of mind maps and exporting them to project, but I’m assuming these move along with them (I can mess with it later and validate this).

The Macintosh version has a more limited set of export formats. JPG and PNG are supported along with multiple flavors of RTF (Word, TextEdit) and PDF.

For me, the use of this tool over the past week has been a really positive experience – on the Macintosh. The Windows version has some pretty major performance issues that are being talked about in the support forums as well as being addressed specifically by the Vice President of Engineering on the companies blog.

The Windows machine that I am running MindManager on has 2G of memory and 80G of hard drive space. When docked, I run at a pretty high screen resolution (1280×1024 – maybe even higher). Docked, the software runs well enough to do the work I need to do as another connected concept hits me on some of the things I am working on.

The strange part is that as soon as I undock and run in ‘laptop’ mode at the standard 1024×768 resolution, performance drops to the point where the software isn’t even usable. I’m not sure why this is the case, but at a seminar the other day with the Windows laptop, I was unable to take notes using the software whatsoever, as the software began exhibiting the symptoms mentioned in the above links.

Overall, the technique of mind mapping is proving extremely helpful to me. As mentioned earlier, using the technique has increased the retention that I am experiencing while thinking through problems. The MindManager software is excellent – on a Mac. The Windows version needs some work to fix some of the performance challenges that I am experiencing.

The price tag for the software is not the cheapest in the world either. A single user license for MindManager 6.0 Pro weighs in at a whopping $349, with the Basic and Macintosh versions available at $229. The question then becomes is the price tag worth the value received from the software. While I’m receiving a ton of value from using the software, the price of a single user license would definitely stop me from even taking the time to try it in the first place. While the company does make trial software available (both a 5 day express trial with no registration required and a 21 day “premium trial” of which the premium is registering with the company), I rarely “do” trials on products in this price range for the fear of getting addicted to them and having to pay for them.

So the real question for me as I use the software further is whether I will buy it. Time will tell. I like to (and see it as an obligation) to support software I find useful with my wallet. The only real guarantee that useful software will continue to be available is if there is a community behind it, or, in the case of commercial software, people actually buy it. Once the “newness” of the software wears off, we’ll see if I continue to see value in the process and whether I keep using the software. At the point that I find it indispensable, I will definitely shell out the money to show my support for the product.

And when that happens, you’ll definitely be the first to know.

Related Links