W-8BEN (U.S. Tax Withholding)

One of my clients in the U.S. requires me to fill out a W-8BEN IRS form. This is quite normal and probably should have happened with my other clients. It allows them to not withhold 30% of my payments, because I’ll be taxed on that income in my own country, under income tax treaties, and double-taxation would be unkind.

However, to get that exemption, W-8BEN seems to require that I have, or apply-for, an SSN (Social Security Number) or ITN. The W-8BEN instructions suggest that SSN is what I should have, but the suggested SS-5 form for getting one demands that I “provide a document from the U.S. government agency that explains why you need a Social Security number and that you meet all of the requirements for a Federal benefit except for the number.” What agency? W-8BEN told me to get it. W-8BEN, talk to SS-5.

The alternative, ITN (Individual Taxpayer Identification), which I can obtain via a W-7 form, should only be provided if I’m not eligible for an SSN. I’m not sure if I’m eligible.

And both the SSN and ITN application forms seem to rquire that I supply originals of identification documents, usually a passport. I’m not that happy about sending my passport to the U.S. for a few weeks.

Help?

Update: It’s amazing how quickly I can get such good advice via my blog. Thanks. It seems like a visit to the U.S. consulate/embassy is the way to do this.

GNOME 2.14 release notes heroes

I was worried there for a moment, but Davyd Madeley and Bob Kashani really pulled it off in the end. The GNOME 2.14 release notes are well done and have been translated into a heap of languages. They’ve been very well received, creating a nice warm glow around the 2.14 release. It’s a lot of work, requiring quite a bit of research, dealing with a lot of feedback, keeping everyone happy.
So make sure you thank them (and your local translators) today, with as much energy as you’d be complaining if those release notes didn’t exist. The release notes don’t just write themselves.

Now that they’ve got the basics down, I look forward to them taking bold new steps for 2.16.

UK Passport renewal in Munich

I noticed that I have to renew my passport which expires next month. Looks like I have to post it off to Dusseldorf. I was surprised to still see this remnant of the class system on the application form notes.

“Someone who has known you personally for at least two years should complete and sign Section 10. That person should be a British citizen, other British national or Commonwealth citizen who is a Member of Parliament, Justice of the Peace, Minister of Religion, Bank Officer, Established Civil Servant, or professionally qualified person, e.g. Lawyer, Engineer, Doctor, School Teacher, Police Officer or a person of similar standing.”

I remember something similar to this years ago, either when I renewed my driving licence or the last time I renewed my passport. I thought they’d have fixed it by now.

British people understand that “of similar standing” means “better than you”, or “one of us”, depending on who you are, and that it has the effect of reducing access for people who don’t move in those social circles. The class system is the thing I feel most relieved to escape by living in Germany.

I guess I’ll have to find some Brit somewhere who I more or less known who is an engineer of something. Can’t I just be a citizen of the EU, please?

2-digit years are broken

Glom tries to always show dates with 4-digit years, in your locale’s appropriate format. Nobody needs the option for it to only show 2 digits years. It just works.

I had been using C++’s insanely complex std::time_put and std::time_get thingies to do this, but for some reason the en_GB locale wants to use 2-digit years for the strftime() ‘x’ format, and there’s no way to generically specify a sane date format for the current locale. That even makes it impossible to parse any dates after 1999, because time_get parses _only_ that ‘x’ format.

That’s broken, and of no conceivable benefit to anyone, six years after Y2K. I worked around it by allowing translators to change the display format if necessary, and always using the Glib::Date fallback for parsing when they’ve done that.

Flurry of Features

I know I declared a Glom beta, so the features should be frozen, but I just couldn’t help it. I’m working on a Film Production management system, to put Glom through its paces, and hopefully to sell. I needed these new features:

  • Multiple levels of sorting on reports.
  • Vertical report groups: Rows of field values inside record rows, to show more information on a row.
  • Notebook tabs, to put more information on the details layout. This was a much requested feature in FileMaker for the last ten years, requiring awful unmaintainable hacks to simulate it, which they even used in their example files. I notice that they are making a big deal about finally adding it in their marketing for the new FileMaker version.
  • Doubly-related fields. For instance, to put Actor(via Characters::actor_id)::Agent(via Actors::agent_id)::name on a Character’s details. In FileMaker you have to create a calculated field in the Actor table, which evaluates to Agent::name, and then show that calculated field on the Character details. This way is a lot simpler, so you don’t need to understand what I just explained.

Spanish For Insomnia

I’ve always had trouble sleeping. For my whole life, I’ve often had those insomniac nights when I can’t get to sleep, but feel sleepy enough to keep trying. Often my mind refuses to stop thinking about stuff, so I end up giving up at 5am and doing some programming or emailing. That’s at least been productive but tends to get me out of sync with my side of the planet.

But I think I’ve found a solution. Now whenever I can’t sleep I listen to a Pimsleurs Spanish course that I’ve ripped to ogg files. Because I find foreign languages very difficult, it actually distracts me and tires my mind out enough to sleep. When I stop hearing the words after an hour or so, I turn off my audio player and go to sleep. When I try that with a book, I just keep reading until the sun comes up.

As a pleasant side-effect, the Pimsleurs courses are also just easy enough that I actually learn from them. They move along very slowly, repeating lots of stuff, and saying every phrase possible by combining the vocabulary being covered at the time, and stressing how to say individual syllables. But, at least for me, it needs to be that slow, though I can imagine that language-talented people might find it patronising. Without needing to rewind (well, very rarely), I am actually learning Spanish. So it’s not much more than restaurant-level stuff at the moment (at lesson 26 of 30 half-hours, of the first part), but that’s enough to impress me.

I’m really surprised that I can learn so much without seeing it written down, though it probably helps that I’ve seen some written spanish already, so I have an idea of how words would look. I strongly believed that I couldn’t do it without the text, but I guess brains insist on working in old-fashioned ways.

Glom Beta 1

I’ve been squashing lots of bugs, as ever, and I think Glom is nearly 1.0 material, so I’m calling 0.9.8 “Beta 1” and hoping that it gets some more testing. Realistically, only people using Ubuntu Dapper will be able to test it easily, thanks to Daniel Holbach.

There’s lots of post-1.0 features that need to be done, and it’s easy to start convincing myself that they are essential, but it’s also important to get some set of functionality into a stable usable form. And the reality is that the Glom 1.0 features are actually quite substantial. There’s nothing even remotely like this in free/open-source software or Linux at the moment, and it’s a deal-breaker for a significant group of users.

Glom screenshot

For now, It still lacks some features that (closed-source, non-Linux) FileMaker Pro has, but it also make several things easier and has that Postgres magic to win over hardcore sysadmins. So, if FileMaker ever get around to doing a Linux port, Glom would probably still be a winner.

Just to get this far has been an immense amount of work for me. I’ve taken months off paying-work about 3 times now to push it along, risking financial collapse each time. I actually started it five years ago, but development accelerated when I decided not to waste time making it impossibly generic and über-adaptable. To get an idea of how important this has been to me: This is the reason that I started working on gtkmm, libsigc++, bakery, libxml++, libgnome*mm, and libgdamm (taking over maintainership in some cases, starting them in others), because I just couldn’t imagine producing a full-featured app without (real) C++, because that’s what I do. Yes, gtkmm is, in a way, just a side-effect of Glom for me. You’ve got to get obsessed and stay obsessed.

Heavy Snow

We had record amounts of snow in Munich at the weekend.

Baumstrasse under snow

Path by the Isar, with snow

IMG_0725

IMG_0724

It makes everything beautiful and hands the town over to pedestrians, hiding all the ugly cars under gentle curves.