terminal craziness

What errant key or cosmic ray consistently makes it impossible to switch screen tabs with ctrl-A and the number? It just prints the number, then when I hit backspace to delete the number, then it acts like I hit ctrl-A backspace instead and goes to the previous tab, whichever that is.

Even more galling is I have yet to figure it out. I just have to wait until, sometimes, after waiting long enough, it starts working again. Like I completely closed every screen tab and screen and the terminal session and iTerm, and when I logged back in it was still broken—yet in just the time it has taken to write this, it has resolved itself without explanation and works again.

After all these years I have no idea how terminals work. It's still completely high magic and I'm totally stuck whenever it breaks. It doesn't help that it's completely impossible to search the internet for keystrokes.

JumpDomain sucks

JumpDomain is totally screwing me by not renewing my markpasc.org domain even though I paid them to renew it on the 4th.

People have had to resort to messaging me on Flickr and elsewhere to ask me about stuff. The site is still available at a different name thanks to Cornerhost’s nice every-name-a-subdomain feature, but that doesn’t help anyone searching or, say, sending me email. The earliest disruption was when I tried to reply to my sister-in-law about getting gifts for my nephews (noted earlier) and Comcast rejected my mail; I didn’t realize at the time why but the next day my web site was down too, so it was obvious.

As everyone else on the internet seems to note (I included this, this, and this in my message to Tucows; also this) JumpDomain was highly regarded when they first started, but seem to be not even answering support requests anymore. How Tucows or Enom would let them get away with running a business that irresponsibly is beyond me. (My support request has only been open a few days, but after reading these stories, I gave up and contacted Tucows directly today.)

I have to admit I’m surprised that Tucows would throw a tasting style page up on my domain. Even before I found out they were doing that, I fantasized a couple minutes yesterday I might start my own registrar or reseller; one feature would be a more helpful failwhale style “Technical difficulties!” page warning a customer that a domain had expired, but I wasn’t sure ICANN would allow a registrar to take over an expired domain immediately like that. (I figure this kills your site from search engine listings either way.) It’s sad that it’s possible but Tucows is spamvertising instead. Hopefully they can make up for it by helping me get the name back.

Also not encouraging is that on the Tucows Domain Name Help Center, the “you can go here for assistance” link doesn’t work. Fortunately they have other links that do, such as their “If my provider does not help me, can you assist?” FAQ.

I did contribute to this myself by not realizing I had an old email for my admin address on that domain. I may need to file the Change of Admin Email form with Tucows for them to help me renew/release the domain. Oddly enough this never mattered before in the several years I’ve been renewing this domain, so I never noticed. (Registrar feature #2: better integrated monitoring and updating of contact emails across an account and all its domains.)

My other domains are with WebLaunching.net, though I haven’t had a customer service emergency to test with them either. At least they don’t have the vociferous web hate JumpDomain now has, plain as day on the first page of Google results.

Are your names coming up for renewal? Who’s your registrar? Do you like them?


(no subject)

There once was a young man from Flint
Who’d torture with both eyes a-glint
For all he would say,
Every night and each day,
Was, “Any you quaids got a smint?”

Five months in 15 pictures

I only read Activate for the pictures, as they’re so good at picking out the best of Reuters. I caught up from issue 100 (late May), and here are 15 favorites.

  1. A woman dressed as a maiko (apprentice geisha) walks down a street wearing US Democratic Party candidate Barack Obama campaign buttons in Kyoto, Japan, on May 20, 2008.”
  2. “White House staff, press, and Secret Service personnel sit outside a luxury trailer where US first lady Laura Bush flies in privacy inside a C-17 military aircraft, during a seven-hour flight from Afghanistan to Slovenia, on June 8, 2008.”
  3. People watch fireworks during the first edition of the Golden Nights International Pyrotechnic Festival in Bucharest, Romania, on July 5, 2008.”
  4. “Firefighter Cody Cox of Colorado looks over a burned redwood forest while working to control hot spots during a wildfire in Big Sur, California, on July 7, 2008.”
  5. “People walk across a copy of Russian-born expressionist Vassily Kandinsky’s painting ‘Weilheim-Marienplatz’ on the pavement of the market square in the southern Bavarian town of Weilheim, Germany, on July 28, 2008.”
  6. A magnet carries confiscated guns, to be thrown into a melting pot and destroyed, at an iron and steel plant in Montevideo, Uruguay, on July 24, 2008.”
  7. “A reveller swims in tomato pulp during the annual tomatina (tomato fight) in the Mediterranean village of Buñol, Spain, on August 27, 2008.”
  8. “A man carries drinking water through a flooded street in the northern Indian city of Lucknow, on August 27, 2008.”
  9. “Informatics PhD student Sebastian Bitzer performs push-up exercises with a programmed Kondo humanoid robot, at the newly opened Informatics Forum building of the University of Edinburgh, Scotland, on September 3, 2008.”
  10. A US soldier waves to residents at the newly opened Mithaq swimming pool in Baghdad’s Sadr City, on August 30, 2008.”
  11. “A worker mows around a sculpture entitled ‘Innerscape on the Move’ by artist Zadok Ben-David at a Sotheby’s exhibition at Chatsworth House in England, on September 16, 2008.”
  12. “A worker climbs among skylights on the ‘living roof’ — a 2.5 acre expanse of native California plants — at the California Academy of Sciences building in San Francisco, California, on September 18, 2008.”
  13. “Museum of Tropical Queensland researcher Neil Bruce studies specimens in a lighted aquarium on Lizard Island Reef in far-northern Australia.”
  14. “Spanish flamenco dancer Andres Marin performs as musician Llorenc Barber plays bells, during a rehearsal of ‘El Cielo de tu Boca’ at the Biennial of Flamenco in Seville, Spain, on September 22, 2008.”
  15. A Kazakh officer shows off a large map with a plan of the joint Kazakh-Russian military exercise at Otar range, some 93 miles west of Almaty, Kazakhstan, on October 3, 2008.”

Recovering from "(no branch)" during a git rebase

I was using git rebase to merge changesets from one subversion repository onto code from a completely different repository. Figuring out multiple svn-remotes and the attendant issues was fun1, though once I figured out I did want to rebase, which onto what, how to delete a remote branch, and how to use rebase --interactive to edit git svn’s ported commit messages, it worked pretty well. But that’s not important.

During the rebase, I ended up off the branch I was trying to do the merge “in,” where git branch said I was on (no branch). However, like everyone else on the internet, I blithely continued past that point. How do I recover from (no branch) without losing the completed rebase?

mpaschal@mpaschal-mt:~/svn/mt/git$ git branch -a
* (no branch)

Of the search results I consulted, Mark Guzman best described what happened:

Little did I know that I had entered the “(no branch)” state. At this point I was pretty much gunning to create orphaned blobs, commits and other such items.

So (no branch) is when HEAD is a commit that is no longer one of the leading branch commits (which is what it means to be “on a branch”). If as in this case I want atompub to match HEAD, I have to git merge the outstanding HEAD commits over to atompub. That works fine since the new commits are changesets atop atompub in the first place; it’s as though I’m on a branch of atompub, only I never explicitly branched, so it doesn’t have a name. Instead I have to refer to it by the commit ID.

As I hadn’t switched back to the real branch yet, I didn’t have to recover my nameless HEAD commit the way Mark did. Instead I could look directly at the log:

mpaschal@mpaschal-mt:~/svn/mt/git$ git log -1 --pretty=oneline
658b8173ab396c7bb765f990c2bc2fdc7d639c86 Merged all ...

Then switch and merge:

mpaschal@mpaschal-mt:~/svn/mt/git$ git checkout atompub
Switched to branch "atompub"
mpaschal@mpaschal-mt:~/svn/mt/git$ git merge 658b817
Updating 461f2f7..658b817
Fast forward

It’s like magic!2

1 Not actually fun.

2 It’s a long incantation you have to research to discover, and getting it wrong can have disastrous consequences.


(no subject)

I’m always eager to believe people who tell me I’m smart and creative, but is this Psychology Today article1 some cold reading bullshit or what?

Or as put by the author: “Here are the 10 antithetical traits often present in creative people that are integrated with each other in a dialectical tension.”

  1. You’re energetic, except when you’re exhausted; you’re sexually charged, except when you’re not.
  2. You’re smart, but not too smart, and not always.
  3. You work hard and play hard.
  4. You’re in the here and now, except when you’re off in your own world.
  5. You like crowds and company, except when you don’t.
  6. You crow about your accomplishments, yet you know how much you suck.
  7. You’re strong, but have a soft side.
  8. You have enough experience in your area to make what’s good even better.
  9. You’re both enthusiastic and analytical in your work.
  10. Your awareness in your area of expertise is a blessing and a curse.

If this is what makes you creative, it’s even more proof of Ken Robinson’s claim that everyone can be creative.

1 It’s gratifying enough I forgot where I got the link before reading it, yet came to a similar conclusion.


(no subject)

Awesome dinner last night with David and folks for his birthday. Much wine and laughter.

As dream imagery goes, calling 911 and getting phone trees, someone's voicemail, hold music, and ultimately the business end of my alarm clock seems like a bad sign.

“No such file or directory” checking out gitosis-admin repo (git-shell not on path)

Am I the only person who’s found git 1.6.0 doesn’t work with gitosis 0.2? I found a couple references to this error trying to check out the gitosis-admin project, but no solutions—at least not the one I had to make up.

mpaschal@hostname:~$ git clone git@hostname:gitosis-admin.git
Initialized empty Git repository in /home/mpaschal/gitosis-admin/.git/
Traceback (most recent call last):
  File "/usr/local/bin/gitosis-serve", line 8, in <module>
    load_entry_point('gitosis==0.2', 'console_scripts', 'gitosis-serve')()
  File "/usr/local/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", line 24, in run
    return app.main()
  File "/usr/local/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/app.py", line 38, in main
    self.handle_args(parser, cfg, options, args)
  File "/usr/local/lib/python2.5/site-packages/gitosis-0.2-py2.5.egg/gitosis/serve.py", line 192, in handle_args
    os.execvp('git-shell', ['git-shell', '-c', newcmd])
  File "/usr/local/lib/python2.5/os.py", line 353, in execvp
    _execvpe(file, args)
  File "/usr/local/lib/python2.5/os.py", line 389, in _execvpe
    func(fullname, *argrest)
OSError: [Errno 2] No such file or directory
fatal: The remote end hung up unexpectedly

gitosis sets up so it runs git-shell as the git user’s login command, but git 1.6.0 apparently installs everything in the “gitexecdir,” which by default ends up /usr/local/libexec/git-core. Which of course is not on the user’s path. Normally that’s fine since you write git command and /usr/local/bin/git rewrites that as git-command, and /usr/local/bin/git knows exactly where all those are, but that means you can’t yourself run git-shell directly.

The gitosis directions I was looking at also suggest making /bin/sh the git user’s shell, which means .bash_profile isn’t evaluated on login. So I couldn’t just add /usr/local/libexec/git-core to git’s PATH (even if I put it in regular .profile—dunno if I was goofing it up somehow, or if ssh default commands don’t start the shell first, or what).

I gave up and copied git-shell to /usr/local/bin, where regular git lives.