Life with a dog

Almost every weekday morning for most of my adult life, I’ve been getting up and going to work. For the last five months, I’ve been taking our new puppy Frodo out for a walk first. I hadn’t thought about how that would affect my life when we decided to get a dog.

(Side note: my spell check, until moments ago, thought that Frodo was misspelled and perhaps I meant Rodolfo. Of course! I’ll quit calling him Frodo immediately. How could I be so silly?)

I knew it was going to be a big investment in time and energy; obviously the schedule of my day, weekend, life was going to be tied to caring for and spending time with the dog in a way that it simply isn’t for cats. You can leave a cat alone for a day and it hardly notices; a dog will go neurotic if it’s treated like that (even leaving aside the food and elimination questions).

I’ve lived with a dog before, though not as the primary caretaker, so I knew roughly what I could expect to get in return for care and feeding: a happy and devoted companion with simple needs and an endlessly big heart. In so many words, though – it had been a long time, and I didn’t really have any internal feeling for how that was going to go; only that I had enjoyed it then and it would be worth the effort now.

Enter Frodo.

Frodo is a Papillon, a breed noted for intelligence, agility, luxurious silky fur, and big ears. He is small, but not tiny – he’s a bit over eight pounds right now, and he might get to ten or even eleven pounds. He has a protective streak and doesn’t like to hear anyone yelling at anyone else, but he’ll make friends with anyone or anything (including those squirrels, if he ever manages to catch one). He’s clever and observant, a bit needy, and tries very hard to be a good boy when he remembers to.

Nothing I knew about living with a dog prepared me for how profoundly it affected me to own one. Sure, the responsibility for an animal; I’m used to that, having owned taken care of cats for many years now. I had forgotten the pleasure and joy in coming home to a wagging tail and excited paws, no matter how tired the puppy is. However, I had not even thought about how taking him on walks every morning would affect me.

I enjoy getting up in the morning now.

It’s not that I hated it before. I wasn’t a morning person for most of my life, and getting up was a struggle, but I was always too groggy to care much. When that changed abruptly a few years ago and I started getting up at 6:30 every day, it was just a fact; I had a few extra hours in the morning, shifted over from the evening. I didn’t enjoy it, but I didn’t enjoy putting on my shoes, either; it’s just part of the day. Now, though, I feel like something is missing if I don’t get up and walk the dog.

It’s not precisely a meditation thing. The solitude is arbitrary, subject to interruption, and quite limited, and there isn’t much silence unless there was a heavy snowfall. It’s probably not about exercise; adding a thirty minute walk to my morning is nice, but not a huge plateau. It isn’t even the consistency of the ritual, really; I’ve had many morning rituals that I’ve enjoyed for years on end, and none of them have made me feel as good about getting up in the morning as this. It’s not even because he’s such a joy to walk; often he is, but just as often he’s alternating dragging his heels with charging off into the sunset.

I think it’s more likely that it’s reminding me to look at things with simple wonder now and then. Frodo isn’t complicated (he’s picky! but not complicated); he loves to go outside and smell things and look at things and walk around, and it doesn’t matter much where we go or what we do. He adores meeting people on his walks, and he loves to get to play with other dogs, but he’s just as happy to take a solitary turn around the block and go home to his comfy bed.

Being out there with him every morning helps me remember to see things the same way – enjoy the world for what it is and where I am. Look for opportunities, but don’t miss what I have for what I might have. Take every chance to spend time with friends, and make new ones when I can.

I’ll leave the whole “licking myself in the middle of the park” thing to Frodo, though.

Git Flow: it’s child’s play

At work, we’re moving over to use Git Flow. (A moment of background: Git is a “version control system”, a way of keeping a history of all the changes you’ve made to a file or files, in much the same way as one might have “important_spreadsheet_20120103.xls”, “important_spreadsheet_20120104.xls”, “important_spreadsheet_original.xls”, and so forth – but with much less clutter.)

It’s sometimes hard to visualize what’s going on with Git when you’re unfamiliar with it, and not everybody is familiar with the concept of a Directed Acyclic Graph, so to help get everyone up to speed, we ordered a Tinkertoy set.

There are probably better ways to spend Monday morning at work than putting together a Tinkertoy model of a Git repository, but I can’t think what they might be.

Publishing platforms and cross-publishing

I am currently publishing with WordPress. Entries are cross-posted to various other places, including LJ and DW. This addresses several basic desires I have for a publishing platform:

  1. That I can write using one consistent set of tools, and not have to keep three or four or more targets in mind when I’m writing;
  2. That all of my writing (and any images and so forth I might publish) is in one convenient central location for backups and storage;
  3. That I can publish things publicly, note things privately, or write to a group of friends and acquaintances without difficulty;
  4. and that I can fiddle endlessly with the fine details of implementation but that the general functionality just works and does what I want.

It’s also convenient that I can also use the publishing platform I get paid to work on, since it means that such fiddling around with fine details of implementation is, as I like it to be, both my hobby and my profession.

Ultima 7, once again

After a long hiatus, Ultima 7 is now available to purchase again, from Good Old Games. It includes all four…well, let’s call them “episodes”: The Black Gate, Forge of Virtue, Serpent Isle, and The Silver Seed. They can be played easily on modern systems (with a number of modern improvements to the experience, although with the original graphics and so forth) using Exult.

One more giant drain on my spare time: coming up!

Happy New Year! Make some mistakes.

I’m not the first person by a long shot to say that the “good enough” is the enemy of the “at all”. I’m probably not the last to get around to believing it, either. One of these days, I probably will remember it.

I’m a perfectionist. I hate doing things wrong, or doing things poorly. This is a common flaw among computer folk, at least, and it leads to some outstandingly bad code and design decisions – what “wrong” and “poorly” mean can get pretty myopic if you’re not careful, and you end up with a huge pile of rubbish built to handle every case that you can imagine but that frequently doesn’t handle any of them well. It’s been important for me to recognize what “good enough” means, and aim for that rather than some imperfect view of perfection.

But that has the same pitfalls! If “good enough” is the ideal, then there must be a “perfect” good enough, right? Finding exactly the right compromise solution is now just as important as finding exactly the right overall solution, and in some ways that’s even harder to decide on and simply do.

It’s important to do things wrong. It’s important to do things poorly. Doing things wrong and doing them poorly means you’re doing them at all.

I hope that in this year to come, you make mistakes.

Because if you are making mistakes, then you are making new things, trying new things, learning, living, pushing yourself, changing yourself, changing your world. You’re doing things you’ve never done before, and more importantly, you’re Doing Something.

So that’s my wish for you, and all of us, and my wish for myself. Make New Mistakes. Make glorious, amazing mistakes. Make mistakes nobody’s ever made before. Don’t freeze, don’t stop, don’t worry that it isn’t good enough, or it isn’t perfect, whatever it is: art, or love, or work or family or life.

Whatever it is you’re scared of doing, Do it.

Make your mistakes, next year and forever.

–Neil Gaiman

iMania

The Apple iPad, like many apple products before it, has polarized people. Some people love it, some people hate it. Some people will use it everywhere, some people honestly can’t imagine a single use.

As with many products before, I fall somewhere in the middle.

On the plus side: It looks like a beautiful piece of hardware; every report I have read says that using it is a dream come true to any fan of the various iTouches. Fast, integrated, smooth, and with beautiful user interface decisions; top of the line hardware and (more polish on) groundbreaking software combine to make an unbelievable platform, and one which the vast majority of people will find satisfies their needs and exceeds all their expectations.

On the minus side: Apple has made, and will continue to make, an intentionally crippled and limited device in the name of a better overall user experience. While I wholeheartedly agree with their goals – make it accessible to the common man! – it is simply not what I, as a power user who is otherwise well in the target market, need in many respects.

Any number of minor concessions would solve this problem for me – and these are the same issues I have with any “trusted computing” sort of platform. It is not my best interests that Apple is trying to protect here, either as a developer or as an individual user. It is theirs, and it is not in their best interests to allow me to, for instance, decide whose software I actually trust.

No, I’m not trying to run Linux on the thing. It runs a perfectly acceptable *NIX operating system already, and in fact has a fantastic GUI (for almost every purpose) and software installation procedure (for almost every case) already. I just want to run my instant messenger and Pages. Even just the ability to background one application (with – yes, I realize this – the appropriate time and attention put in to making the experience smooth and complete) would make a huge difference in the overall usability.

I’d really like to run Processing on it. It’s just such a perfect platform for art-programming, and there’s nothing else quite like Processing for that.

But that’s all. I don’t want a pony.

Subject Alternative Enlightenment

So there’s this thing called an SSL certificate. Everyone (or at least the vast majority of anyone who is ever likely to read this) knows about SSL, or HTTPS, or at the very least the browser lock symbol.

Another time I’ll talk about a bunch of nonsense regarding the details of SSL and some of the strange things that have come out of it, but for the moment, one specific thing stands out.

Part of an X509 certificate is an optional piece of metadata called a Subject Alternative Name, or SAN. If you take a peek at an SSL certificate that provides one, you’ll see something like this:

Certificate:
    Data:
        [...]
        Subject: C=US, ST=CA, L=Cupertino, O=Apple, Inc., CN=*.example.com
        [...]
        X509v3 extensions:
            [...]
            X509v3 Subject Alternative Name:
                DNS:specific.example.com, DNS:example.com, DNS:*.example.com

Normally a client connecting to https://example.com/ will get a domain mismatch certificate error, because the CN *.example.com does not either exactly or via wildcard match example.com. However, a large number of clients also examine the list of SAN DNS names to validate the domain; since example.com shows up in that list, no error will be displayed.

Every major browser – IE, Firefox, Opera, Safari, and even the venerable Netscape Navigator have supported SANs since at least 2003. Surprisingly, Internet Explorer has supported them since Win98 (yes, that means they work in IE6, for those keeping count). Many mobile devices also recognize them – certainly the newest crop of WebKit-based and Android mobile browsers, but also things like Symbian 9.2+ and Windows Mobile 5 and 6.

Furthermore, SANs can be used to cause certain mail clients to stop complaining about connecting to a mail server that services multiple domains under one IP. Since these same mail clients are often configured to recognize an internal CA, rolling up all the possible names into the SAN list on a single certificate can save a pile of headache.

Why hasn’t this been more widely advertised and well-known? Because many certificate authorities are more in the habit of selling encryption than verification, and so would very much like to charge you for every single line in the certificate and every single reissue of the same certificate with slightly different metadata (say, a different set of SAN entries, in this case) rather than charging you for their performing trusted due diligence to ensure that you are who you claim to be and that you have the rights you claim to have over the subjects (in this case, domain names) in question.

Thanks a lot, “trusted” authorities. Way to instill confidence in your services.

There are a few respectable exceptions, of course, and a few web-of-trust CAs which perform the services for free or for reasonable, nominal charges. The web-of-trust CAs tend to have less or no native browser support, which makes them less suitable for general purpose commerce, but for those in the know (or a known browser demographic) they can be a fantastic alternative.

I’m currently a fan of DigiCert for business use, and StartCom for personal use. As a side note, many domain registrars (such as Gandi) also provide a free basic 1-year SSL certificate with purchase of a domain name.

sound zen

A few music and making-music links to start off the weekend.

(the original web zen, in case somehow you hadn’t run across it already)