Don't listen to the advice out there that tells you to
waste an entire weekend backup, delete, create a
new (and bigger!) partition, then restore when you want to
resize your Boot Camp partition. There is a much easier way: iPartition.
Ordinarily I probably would have skipped writing this post. But there's so much of the bad advice out there that I thought I'd post this in hopes that it will save someone the hassle of the ridiculous process described above.
iPartition is not the most user friendly of applications I've used on a platform known for "just working",
but it does get the job done.
For instance, when I opened up iPartition for the first time, there was no indication of what to do. I couldn't figure
out how to resize the partition. Well, it turns out that a tiny warning told me: I just
had to find it first:
More...
Now I need to find a CD and create a bootable disk. Ok, pop it in to create one, and...
Uh oh! I've got Leopard, version 10.5. Well, now I have to take my laptop home and use the Leopard DVD.
But it didn't tell me I'd still need to burn something. That's ok, I've got blank CDs at home. Unfortunately,
it didn't say I'd need DVDs either. I didn't bring one from the office, so I had to trek up to the store.
No problem. I figured I'd need to defrag the drive anyway, since it would need to make sure nothing gets
overwritten at the end of the drive when we resize it. So, I'll start the defrag while I go out and
get a blank DVD.
Ugh. Ok, here are the algorithms:
But the one it says I need isn't available:
Oh well. I guess I'll go to the store and do the defrag after I create the disk. Thirty minutes later,
I'm well on my way to resizing partition bliss:
Only one more hiccup:
How was I supposed to know what to do or that it was done?
Oh, there you are!
iPartition wasn't the only program that gave me trouble during this process. After seeing the
beachball of doom, Firefox decided it
couldn't handle the pain:
After I got past all the distractions, the actual defrag process and resizing partitions went really smoothly.
Even with all the trouble, I'd estimate it took about 3 hours from start to done. Without the trouble,
perhaps only 1.5 hours: and most of that you don't have to be present for - just start it and go lay down to
nurse your Saturday Morning Hangover with some Gatorade, beans on toast with fried eggs, and Saturday morning
cartoons.
It may cost $50, but it's well worth it. Likewise, it might have given me a lesson in how not to design the flow of an application, but most importantly,
it saved me a weekend.
Hey! Why don't you make your life easier and subscribe to the full post
or short blurb RSS feed? I'm so confident you'll love my smelly pasta plate
wisdom that I'm offering a no-strings-attached, lifetime money back guarantee!
TeamCity is a build server from JetBrains that
I'm starting to like. It checks your code out, builds it, and runs your unit tests against the compiled source code (among other things),
continuously integrating your code each time someone checks-in a change to the repository (or on-demand, if you'd like).
Oh, and it's a bit faster than CruiseControl as well (At least for me).
It's free for many applications - those where you won't use more than 20 user accounts, 20 build configurations, 3 build agents, and don't need anything more than the standard web-based authentication interface. (A build configuration is a way of building using a build agent - e.g., you could build based on a .NET solution file, ANT file, or many other ways. A build agent appears to be the computer itself, though I'm not sure of that yet.)
More...
In any case, there is an "enterprise" license that costs a couple of thousand dollars to get you around most of those limitations. The only exception is the limitation to three build agents - you can buy extra licenses for that at $299 a pop. I can't foresee the need for even two, but that might be because I have yet to see all the functions they serve.
Anyway, if you've been paying attention at least partially, you'll know I'm a huge fan of the
DRY principle, especially as it relates to source code. In that case, you wouldn't be surprised to learn that one of my favorite features is this:
I haven't yet found a way to make the build fail for duplication, but seeing the reports is nice.
I was also a bit disappointed it didn't catch code like this:
public int add(int x, int y) { return x+y; }
public int anotherAdd(int z, int a) { return z+a; }
But, it's nice to know it will at least catch copy-and-paste reuse.
I was set up and running my duplication checks in a few minutes, but finding everything you need is not as painless (setup is mostly painless, finding reasons for build failure and editing is not as easy). It's not hard, by any stretch of the imagination, but they set such a high standard on the "add" part that even the minor annoyances I encountered on the rest seemed large. A lot of that is being new not just to the technology, but some of the terminology they used as well.
Anyway, I've not dived in deep enough to see how or if it might work for other languages or platforms, but if you're using Java or .NET, I'd recommend you give it a try.
A quick note for people who get irritated when they forget to push
alt/option on the keyboard when they want to boot into another OS on their Macs:
rEFIt might be for you. It changes the boot-up sequence and pauses every time you boot to allow you to select which OS you want to use. It does other things as well, but I haven't used them yet.
Special thanks to
Grant, who introduced it to me this weekend before he left for Scotland. I think it's going to be a nice time-saver.