All posts by John Goerzen

Threshing Days

img_4375.jpg

This is a steam-powered tractor, which I photographed last August at my hometown’s annual festival, Threshing Days. It is a massive thing, full of detail, noise, and action.

Threshing Days (see earlier articles about it) brings people in from across the country. The town’s usual population of 600 multiplies for this.

The engine pictured here was being used for a threshing demonstration, which was how wheat was processed before combines were invented. A big flywheel on the engine was connected to a large belt, which powered the threshing machine. That machine separated the wheat like a modern combine does, but was supplied by farmers dumping wheat onto it.

img_4365.jpg

Result of that radar image

A couple of days ago, I posted a radar image.

The above photo is the result of that (and a following) storm.

It’s the muddy road at the end of our driveway. Your guess as to which road is the driveway.

Here’s another road near us:

img_2053.jpg

Cliff also has some photos from this same storm system.

Online Internet Bank Review

Back in mid-2000, I set up my first Internet bank account. I have been
using the same bank ever since. The whole notion of Internet banks has
changed a lot since then, since virtually every bank offers varying degrees
of online access these days. Lately I checked on banks to see if I was
still using the best one. Here are my reviews of
the two banks.

Internet Banks

Let’s first talk about what makes a bank an “Internet bank” or “online
bank”. So many banks let you manage your account online now, that the
distinction is blurry. But generally, I would say that unique features of
Internet banks are:

  • Significantly higher interest rates than traditional banks
  • Ability to open an account online or by mail, and perform all banking
    functions without visiting the bank in person
  • Free bill payment services
  • Free self-initiated electronic transfers from your other bank
    accounts
  • Immediate, real-time posting of transactions
  • Your own bank never imposes a fee for using an ATM card at another
    bank’s ATM
  • Web access to account info, history, canceled check images, and
    statements
  • Toll-free number for account basics (balance, transfer between your
    accounts at the bank, etc) over the phone
  • Great telephone customer support
  • An absence of outlandish fees

There are a few to highlight.

Real-time transaction posting is a great thing to have. If you go
to the website and transfer money from your savings to your checking
account, you can go to the ATM *now* and withdraw it, and when you get back
to your desk, the ATM transaction shows up. There are none of these
confusing “business day” rules with cutoff times that traditional banks
seem to love. And none of this annoying “process all withdrawals first”
business that large traditional banks (hello, Bank of America) love to do
in order to screw with customers.

High interest rates. Don’t even bother with an online bank if the
savings interest rate is less than 3% (or checking less than 1%, in my
opinion). It is almost impossible to find a traditional bank with these
rates.

Note: if you’re reading this after April, 2007, these guidelines may no
longer apply due to interest rate changes.

Electronic transfers from other banks. Another great feature. A
number of banks let you set up, and then initiate, electronic transfers to
and from your accounts at other banks. This is usually free if you are
using the feature to transfer money into your account, and with a flat
per-transaction fee (usually about the same as a foreign ATM fee) for
transferring money out.

Ability to do all business without visiting a branch. Not only
should this be possible, but routine business (such as making deposits)
should be easy to do without visiting a branch. You should be able
to order new checks online.

Now let’s look at the individual banks.

First Internet Bank of Indiana

FirstIB (they provide nationwide
service, despite the name) is the bank I signed up with in 2000. I had
found a bank in Dallas that I really liked, but when I moved to
Indianapolis, I tried two and liked neither. They all seemed to have
really poor interest rates, offer few useful services, and fees for so many
conditions that it was hard to avoid them. (More on that in the
traditional banks section below)

I looked at the online banking scene at the time, and wound up opening a
checking and savings account with FirstIB. FirstIB started as an
online-only bank, but recently acquired a bricks-and-mortar bank as well.

I found FirstIB’s customer service
at the time to be top-notch; I would dial their toll-free number, select
*one* option from a menu, and a rep would answer *immediately*. (Take
that, Bank of America, with your 45-minute hold times…) Since FirstIB
was based in Indianapolis, I actually visited their offices a couple of
times. They had a locked lobby. You picked up a phone, pressed 0, and
went into the same queue that callers to the 800 number did, then just
asked them to come to the lobby and transact your business. (They would
not give out cash there, but could take new account paperwork and deposits
and the like)

Their interest rates have consistently outperformed traditional banks, and
they offer all the online banking amenities listed above. They did not
offer online statements at first, but these days online statements are the
norm (there is a fee if you want paper statements). Check ordering is
accomplished using a linking with the Deluxe check printers. The web
interface uses Digital Insight, and the ACH transfer
interface uses CashEdge.

FirstIB will actually reimburse you, at the end of the month, for ATM fees
that other banks charge you, up to $6/mo. They also provide an
unlimited supply of free postage-paid deposit envelopes, and have a PDF of
deposit slips that you can print out should you run out.

FirstIB’s customer service has slipped in recent times. I know of some
people that have been impacted by some errors that FirstIB has made (simply
not processing paperwork that they should have processed). Wait times have
gone up for the phone line, and a lot of the great “small bank” feel (where
they actually knew their customers, and you might actually know the reps)
is gone.

Presidential Bank, FSB

Presidential Bank is the bank I’m looking at now. I was initially drawn to them by their extraordinarly
high interest rates (5.25% for savings!), but some other things have
convinced me to use them.

Initially, I was suspicious. Presidential is a bricks-and-mortar operation
that has been around for awhile, and was one of the very first Internet
banks. Their website says that they started offering Internet accounts in
1995, and very much looks like it hasn’t been updated since. (Thankfully,
the account management interface is more modern). I almost thought the
site was a fraud up front, a “too good to be true” deal with the high
interest rates and bad-looking website. But after doing some research,
realized that it is quite real.

Before setting up accounts with them, I had a few questions (such as
whether or not transactions post in real time). Presidential has a simple
email address for people that want to send in questions (unlike FirstIB’s
obvious queue system). I sent an email, and got a response an hour or two
later, from a real person with a first and last name, and a personal e-mail
address I could use to follow up. Nice. I also had occasion to talk to
people on the phone. They were polite, speedy, and helpful.

So I set up my accounts with them. I activated the online access, bill
payment, and money transfer features. All worked as expected. I did have
a couple more occasions to call them after the account was set up (a more
crucial test than the pre-account calls), and they remained helpful.
Strangely, this bank, which seems to be a much larger operation than
FirstIB, had a more small bank feel. Several times, as I started talking
to a rep, he or she would say something like “Oh, I remember processing the
setup paperwork on this account last week” or “I think I talked to you
about this before?”

Customer service is one of those things you rarely need after the first
month or so of an account. But with your bank, it is vital that the reps
know what they are doing and are willing to help you when you call — which
Presidential is doing better than FirstIB these days.

Presidential does not rebate ATM fees like FirstIB does. They do provide a
few deposit envelopes with your initial account setup packet, but they are
not postage paid or unlimited. However, because Presidential’s interest
rates are so much better than FirstIB’s, it doesn’t take much in your
account to more than balance out that difference. Plus, with so many
retail stores offering “cash back” when you use an ATM or debit card, it
isn’t too bad to get cash for free with Presidential. (And, most employers
offer direct deposit, so we rarely use deposit-by-mail) One other trick is
to find some local bank and open a no-minimum free checking account with
them. You can deposit checks there and withdraw cash from their ATM, and
use Presidential’s free incoming ACH to electronically transfer the funds
to Presidential when you get too much in the local account. (Chances are
that these local accounts will not pay any interest)

Presidential offers a few features FirstIB does not. First, they scan all
your deposits (not just your canceled checks) and offer to let you view
them online. Secondly, they automatically send you an email when they’ve
received a bank-by-mail deposit (you can opt out of that, of course).
Third, they let you view *all* of your old statements online
(FirstIB only lets you view the last 6 months worth, though both have the
complete history available in the web interface).

Like FirstIB, Presidential uses DigitalInsight for the web
interface and CashEdge for the ACH feature.

Internet Bank Comparison
Both banks offer two primary checking and two primary savings accounts. This
table compares all four accounts.

Feature Checking Savings
FirstIB Presidential FirstIB Presidential
Account Interest Free Internet Plus Internet Money Mkt Reg Premier Internet
APY 1.26% 0% 4.50% 1.25% 3.90% 2.75% 5.25% 1.50-2.50%
Min Balance $500 $0 $1000 $500 $4000 $1000 $0 $100
Min Method Avg Daily Daily Avg Daily Daily
Min to Open $100 $25 $1500 $500 $100 $100 $5000 $100
Online Bill Pay $0 $4.95/mo $0 $5.95/mo (up to 10 payments) Not available
ATM surchage rebate $6 $0 $0 $0
Online Canceled Check Images Free N/A
Online Deposit Images No Free No Free
Email Deposit Notifications No Free No Free
Email Balance Alerts Free
ACH policy Free when initiated at other end; free for deposits when initiated at the bank’s website; small fee for withdrawals when initiated at bank’s website

Online options at traditional banks

As I mentioned, Presidential is a traditional bank that has offered
Internet accounts for some time now. Some other traditional banks do that
as well, but look carefully at them, especially if they’re a big nationwide
bank.

I looked at options from Bank of America, Citibank, HSBC USA, ETrade Bank,
and some other large national banks. In general, these were just regular
bank accounts with a web interface (HSBC and ETrade being somewhat of
exceptions). Read the fine print and you’ll find poor interest rates and
traditional banking hassles (lack of immediacy in transactions, predatory
posting practices, fees for just about everything).

Plus I can tell from
personal experience that Bank of America customer service is downright
awful. One example: they used to pressure me to open a credit card with
them every time I visited a branch. I declined every time, and had to be
forceful about it sometimes. Then one day, not long after a visit with a
particularly annoying employee, I got a Bank of America credit card —
which I had specifically refused — in the mail. Hmmmmmm.

They also, unlike any other bank I’ve ever used, charged a fee to
receive wire transfers. Which they had not disclosed. Then, of
course, they apply withdrawals before deposits, and caused an overdraft
from the undisclosed fee, even though the wire transfer was a *deposit* that
would have very easily covered it. That was the last straw for me. After
nearly an hour on the phone with them, I got them to agree to reverse both
the fee and the overdraft charge. THEN I said I wanted to close my
account.

When traditional banks are better

There are a few situations where Internet banks don’t work out so well:

Living paycheck to paycheck. If you are constantly running out of
money, and it is vital that any deposits get posted *NOW*, you probably
don’t want an Internet bank (and wouldn’t benefit from their higher
interest anyway). When you mail in a check, it can take some time before
you have access to the money; the postal service has to deliver it, and
then most of your checks will be subject to the “non-local” availability
policy and held for about a week (though interest will start to accrue
immediately).

Not being able to meet minimum balances. Internet banks do tend to
offer a variety of accounts, but if you aren’t able to regularly maintain
$500 to $1000 in your checking account or $2000 to $5000 in your savings,
you will likely fall into a category with lower interest and fewer free
benefits. These accounts may not have many benefits over traditional
banks, and may in fact be worse in some ways. The interest rate gap won’t
make that much of a difference either. There are several online banks that
offer savings accounts only, with high interest rates and low minimums,
that you may want to investigate — though you will have availability into
your checking account measured in days, not seconds. Presidential’s
savings has no minimum, but requires $5000 to open. (They do have
lower-interest savings accounts without that requirement) Watch out for FirstIB’s accounts; you can open an account with less than the monthly minimum balance, and will run into fees unless you deposit enough to meet the minimums.

Conferences Suggestions

At work, we use Linux (and Debian, in specific) for a lot of different things: everything from our phone system (running on Asterisk) to file serving and running some proprietary applications. I’m one of the people that finds, sets up, and maintains these systems, and I write code for our in-house use as well. I like to learn from others, and get to know others that may have things in common with me and with our environment. So going to conferences is a useful thing to do.

I’m hoping that some reader out there will have a good suggestion for a conference I ought to attend. Here are some that I’ve looked into and my thoughts on them:

  • Usenix Annual Tech Conference: I went last year. There were some very good talks, but the audience size was not all that large. I got to meet some peers there, but I didn’t get to talk in-person to anybody I’d worked with online before. (LISA being in fall/winter means it’s too early to consider it just yet)
  • LinuxWorld Conference & Expo: My general impression of LWCE in the past has been that its technical talks aren’t very technical; that is, they either cover things I already know or don’t care about. They are starting to publish their program this year, and I see a few interesting things though. There have traditionally been a lot of Debian folks at the .org pavillion.
  • Debconf: It seems to be focused almost exclusively on developing the Debian operating system, rather than on using it. While I am a Debian developer and have been for quite awhile, I would find new uses of Debian to be more interesting than new ways to hack on Debian. Plus, the insanely early registration requirements means that it’s too late to go this year anyhow. (And my brother is getting married right in the middle of it.)
  • OSCon: There look to be some interesting talks in the database area, and some about Xen and virtualization, and Simon PJ (one of the ghc hackers) will be there. So this would be interesting, though somewhat light on the admin side of things.
  • OLS: Seems very focused on the kernel, and not much else. That is of interest, of course, but is one piece of many. Though there was a talk about Linux deployment at Nortel that sounded interesting.

My leading candidates are probably Usenix and OSCon. I’m interested to hear what people think, especially those that have attended some of these conferences.

And we’re off!

Yesterday afternoon, we started our information meetings with employees about our Linux on the desktop project. We’re underway on our migration.

But before I talk about that, I need to back up and describe what the project is.

We are converting approximately 80% of our 150 or so PC users to Linux desktops. They’re Debian etch (4.0) running Gnome, Firefox (Iceweasel), Evolution, NFSv4, and SystemImager. Over the coming days and weeks, I’ll be writing about why we’re doing this, how we’re making it happen, things we’ve run into along the way, and the technology behind it.

Today I’d like to start with a high-level overview of the reasons we started investigating this option.

It became apparent that Vista was going to be a problem for us. Most of our desktop PCs are not very old, but Vista meant a significant degradation in performance from the Windows XP Pro that most people were running. A performance dip so significant, in fact, that it would have created a significant negative impact on employee productivity.

We tend to buy PCs with Windows licenses from the vendor (Windows preinstalled). As such, we knew it wouldn’t be long before XP-based machines would be hard to find. If we stuck with Windows, we’d be running a mixed-OS network — which we knew from experience we did NOT want to do. The other option would be to replace all those old PCs. The direct costs of doing that, with the associated Vista and Office licenses, would have been more than $200,000.

So we started to look at other options — changing the way we license Windows, sticking with XP for awhile, or switching away from Windows. This last option sounded the most promising.

I took a spare desktop-class machine, representative of the hardware most end users would have, and installed etch (then testing) on it. I spent a bit of time tweaking the desktop settings, making things as transparent to the user as possible. We liked what we saw and started pursuing it a bit more. We knew we had some Windows apps we couldn’t discard, so we tested running them off a Windows terminal server with the Linux rdesktop client. That worked well — and the appropriate Server 2003 licenses plus CALs would still be far cheaper than a mass migration to Vista.

To make a long story short, we are getting quite a few benefits out of all this. One of the most important is a single unified system image. Excepting a few files like /etc/fstab, every system gets a bit-for-bit identical installation from the server, updated using rsync. /home is mounted from the network using NFS (v4). So our users can sit down at any PC, log in, and have all their programs, settings, email, etc. available. A side benefit is that hardware problems become minor annoyances rather than major inconveniences; if your hard disk dies, we can just bring up a different PC. We had tried numerous times to make roaming profiles work in Windows, but never really achieved a reliable setup there — perhaps because it seemed virtually impossible to assure that each Windows PC had the exact same set of software, in the exact same versions, installed.

More to come.

Some more git, mercurial, and darcs

Ted Ts’o had an interesting post about git recently. He has a lot of good thoughts on the subject. He comments that he wound up using git because it’s so Unixy (with its small commands to do things), that he sees the git community developing innovations faster than Mercurial, and that they are working to improve the documentation and user interface problems.

The being so Unixy is a double-edged sword. On the one hand, it can make it easy to write shell scripts to extend Git. That itself can be a double-edged sword (think filename quoting and the like). But one doesn’t have to use the shell. The other downside is that being Unixy makes it hard to run on platforms that aren’t, such as Windows. So if one is working on Unix-only software (X, the kernel, e2fsprogs, etc.), there’s no need to care about it. But if you’re a person like me, who has Windows users using my software, or a large organization like Mozilla, it’s maybe a showstopper. Of course, workarounds exist (cygwin, git-cvsserver), but none of them are particularly nice.

I think that both Git and Mercurial are working to address their shortcomings. I’ve chosen hg for now because it does what I need now. And because there are very nice tools to convert hg to git, and vice-versa. So if Ted’s right, and a year from now git is easier to use, better documented, more featureful, and runs well on Windows, it won’t be that hard to switch over and preserve history. Ted’s the sort of person that usually is right, so maybe I should starting looking at hg2git right now

So following up on my bzr post, here are the things that Mercurial is great at right now:

  1. Performance. Approximately even with git, occasionally faster. Nobody else can compete with these two right now.
  2. Simplicity. It’s almost as easy to get started as with darcs, and with recent patches, will be even closer in the future.
  3. Lots of ways to interact. You can send hg bundles, which preserve all metadata (parents, hash, authors, etc), or you can send git-format email patches, or you can push and pull between repos. The email tools will shortly be able to automatically detect what patches to send. Your choice. git doesn’t seem to support lossless emailing of bundles like this, and bzr doesn’t make emailing of anything easy by default.
  4. Merging. hg seems to be able to automatically resolve more merge conflicts than anything else, and when it can’t automatically resolve them, has a nicely configurable system to let you use your choice of tool to manually resolve them.
  5. Community. The Mercurial community is open and inviting, and open to new/different ideas. It seems similar to Darcs in that respect, and somewhat dissimilar to git.
  6. Rebase does not trash history like it does (barring undocumented manual intervention) in git.

I’ve written before about Darcs, so I won’t duplicate that here.

bzr, again

I’ve talked a lot lately about different VCSs.

I got some interesting comments in reply to my most recent post. One person took issue with my complaint that nobody really understood how to specify a revision to git format-patch, and proceeded to issue an incorrect suggestion. And a couple of people complained about my comments about bzr, which generally came down to the released version of bzr didn’t have anything compelling and also didn’t support tags.

So I went into , asked them what bzr has that git, Mercurial, and darcs don’t. And gave bzr the benefit of the doubt that 0.15 will be out soon and will be stable. What I got back were these general items:

  1. Renaming of directories (not in hg, git)
  2. 2-way sync with Subversion (not in hg, darcs)
  3. Checkouts (not in any others by default)
  4. No server-side push requirement

Let’s look at these in more detail.

1. Renaming of directories

All of them can rename files and (excepting git) completely accurately track back the file’s history. But consider this: if person A commits a change to branch A that adds a file, and person B then renames the directory that the file is in on his branch, will a merge cause person A’s file to appear in the new directory name? In darcs and bzr, yes. In Mercurial and git, no.

So yes, this is a nice thing. But I have never actually had this situation crop up in practice, and even if it did, could be trivially remedied. I would say that for me, I don’t really care.

[Update: Current stable releases of Mercurial can do this too. I’m not quite sure how, but it does work. So git is the only one that can’t do that.]

2. 2-way sync with Subversion

This is a really nice feature and is present in both git and bzr. I haven’t tested it either place, but if it works as advertised — and properly supports tracking multiple related svn branches and merges — would be slick. That was enough to make me consider using git, but in retrospect, I so rarely interact with people using svn that it is not that big a deal to me.

Still, for those that have to work with svn users, this feature in bzr and git could be a big one.

Better yet would be to get all those svn holdouts over to DVCS.

3. Checkouts

A bzr checkout is basically a way to make local commits be pushed to the remote repo immediately, as with svn. This is of no utility to me, though I can see some may have a use for it. But it can be done with hg hooks and probably approximated with scripting in others.

4. No server-side process necessary for pushing repos

bzr has built-in support to push to a server that has sftp only, and doesn’t require a copy of itself on the server. While I believe that none of the other three have that, it is possible to rsync (and probably ftp) darcs and Mercurial repos to a server in a safe fashion by moving repo files in a defined order. Probably also possible with git. All four can pull repos using nothing but regular HTTP.

What bzr still doesn’t have

Integrated patch emailing. The big thing is that it has no built-in emailing of patches support. darcs is extremely strong in this area, followed by hg, and git is probably third. “darcs send” is all it takes to have darcs look at the remote repo, figure out what you have that they don’t, and e-mail a bundle of changesets to them. I posted an extension and later a patchset that does all this for Mercurial except for automatically figuring out what default email address to do (that’ll come in a few days, I think). One feature Mercurial has had for awhile that Darcs hasn’t is sending multiple textual diffs as a thread, with one message per changeset. bzr doesn’t have any support for emailing patches yet, which is disappointing. Because of the strong support for this in darcs and Mercurial, people running those systems feel less of a need to publish their repos.

[Update: There is a plugin for bzr that seems to address some of this. I haven’t tested it, and it’s not in bzr core (so doesn’t quite meet my very friendly for a newbie requirement), but this does exist, though apparently not as advanced as Mercurial]

Performance. Supposedly 0.15 is supposed to be better on this, but even if bzr achieves the claimed doubling of performance, most benchmarks I have seen would rate it as still being significantly behind git and Mercurial, though it may overtake darcs in some tests.

Extensive documentation. I would say that bzr’s docs are better in some ways than git’s (its tutorials especially), but lack depth. If you want to know some detail about how the repository works on-disk, it’s not really documented. Darcs still has David’s excellent manual, and Mercurial has the hg book which is still great as well.

Merging not as advanced. darcs is pretty obviously way on top here, but of the others, Mercurial does a pretty good job with its automatic handling of renames and automatic resolving of different branches that commit the same change (even if that same change is a rename, or an add of the same content). bzr can’t resolve as much automatically.

Summary

Well, I’ll say that bzr still doesn’t look compelling enough for my use cases to use, and the lack of an easy-for-a-newbie-to-use automated email submission feature is a pretty big disappointment. Though I did appreciate the time those on spent with me, and if I needed to sync with svn users frequently, I’d probably choose bzr over git.

For now, I’m happy with sticking with darcs for my code and hg for my Debian work.

But all four communities are aggressively working on their weaknesses, and this landscape may look very different in a year.

More on Git, Mercurial, and Bzr

I’ve been writing a lot about this lately, I know, but it’s an interesting landscape.

I had previously discarded git, but in light of git-cvsserver (which provides a plausible way for Windows people to participate), I gave it a try.

The first thing I noticed is that git documentation, in general, is really poor. Some tutorials that claim to cover git actually cover cogito. Still others use commands that are much more complex than those in the current git — and these just the ones linked to from the git homepage.

git’s manpages aren’t much better. There are quite a few git commands (such as log) that take arguments that other git commands accept. Sometimes this fact is documented with a pointer to these other commands, but often not; a person is left guessing what the full range of accepted arguments are.

My complaint that git is overly complex still exists. They’ve made progress, but still have a serious issue here. Part is because of the docuemtnation, and part is because of the interface. I wanted to export to diffs all patches on the current branch in a repo. I asked on , and someone suggested using the revision specifier ..HEAD. Nope, didn’t work. A few other git experts chimed in, and none could come up with the correct recipe. I finally used -500, which worked but is hackish.

git’s lack of even offering support for a human to indicate renames also bothers me, though trustworthy people have assured me that it doesn’t generally cause a problem in practice.

git does have nicer intra-repo branching than Mercurial does, for the moment. But the Mercurial folks are working on that anyway, and branching to new directories still works fine for me.

But in general, git’s philosophy is to make things easy for the upstream maintainer, and doesn’t spend much effort making things easy for contributors (except to make it mildly easier to contribute to a large project like Linux). Most of my software doesn’t have a large developer community, and I want to make it as easy as possible for new developers to join in and participate. git still utterly fails on that.

I tried bzr again. It seems that every time I try it, after just a few minutes, I am repulsed. This time, I stopped when I realized that bzr doesn’t support tags and has no support for emailing changesets whatsoever. As someone that has really liked darcs send (and even used tags way back with CVS!), this is alarming. The tutorial on the bzr website referenced a command “bzr help topics”, which does not work.

So I’ll stick with my mercurial and darcs combination for now.

I announced the first version of a hg send extension yesterday as well. I think Mercurial is very close to having a working equivalent to darcs send.