Things I do for work.



In August, I went on a business trip to Beijing.  Our company has a group over there that is adapting our product for the Chinese market, and they were running a trial at one of the mobile phone carriers’ lab.  We decided that we should send a couple of engineers over to help out, since they would be accessing data from the system that was designed here in the US.

GETTING THERE – The Visa Adventure

The original plan was for me to leave immediately and stay for two weeks.  However, China requires a visa, and my last visa had expired six months ago.  So I delayed my trip by a week and shortened it to a single week, while I collected all of the paperwork from my company and sent it off to a company that specializes in getting visas.  Less than 48 hours before my flight was supposed to leave, I still had not heard back from the visa company, so I called them to check on it… you know, get a FedEx tracking number, etc.  Nope!  It turns out that the visa company still had not submitted my paperwork to the Chinese embassy!  They said I had two choices: submit it then and wait two days (which would mean missing the lab trial entirely) or go to Washington DC and walk it through myself.

This was Thursday night, and I was expecting to leave home at a “civilized” time of 10am on Saturday.  I was not fully packed. My kids were planning to spend Thursday night and Friday night playing with me at the pool, and then they could send me off on Saturday.  Instead, I changed my flight plan to leave on the very next flight to Washington, 6am Friday morning.  Suddenly, I had to pack, try to sleep a little, and then sneak out of the house at 4:30am.  I’d miss my last day and a half with my kids, and they were not pleased.

I made it to Washington, and I went to the passport company to retrieve my passport.  They actually charged me a cancellation fee, but instead of ripping them a new one, I decided to use that precious time to get my visa.

The Chinese embassy visa office

When I got to the Chinese embassy, I waited in line only for the lady at the counter to tell me “sorry, no same-day service!”.  I was furious.  Not only did the visa company NOT do their job, but they fed me bad information about how I could remedy the situation!

I decided to get back in line, hope for a different counter clerk, and practice my story.  When it was my turn, I slowly explained that I had sent my paperwork in more than a week ago, and through no fault of my own, it never made it to their office.  She explained their policy of no-same-day service, but this time, I was ready for it.  I asked if I could “appeal to the consulate to consider my story” (remember that phrase, it’s a good one).  So the lady took my papers to the back office and I waited.  She came back and said that they did not believe my story.  I was shocked at her choice of words.  But I stayed cool.  Fortunately, I had made copies of EVERYTHING, and so I pulled out a copy of my FedEx waybill and the receipt from when I had dropped the package off at the FedEx office at RDU airport.  It showed TO and FROM and a date.  She went back in the back and came back to tell me to return in three hours to pick up my passport and visa.

With my passport in my pocket, I was free to explore Washington DC for the afternoon.  I stayed in DC overnight and got on my original scheduled flight the next day.

IN BEIJING – A Dog’s Life

HostessThe trip to Beijing was uneventful, and we arrived at the very nice Crowne Plaza hotel.  Every morning, we were greeted by the beautiful Chinese hostess, and then treated to a buffet that was a confluence of breakfast foods from every continent.

Our hotel was on a popular pedestrian street called WangFuJing (王府井).  This was not the place to see how the locals live.  This place was a magnet for tourists from all over China and beyond.  The streets were lined with a combination of tourist shops selling souvenirs and stereotypical Chinese stuff, as well as big-name stores like Swarovski and Rolex.  The Apple Store is on that strip, too.  The pulse of WangFuJing reminded me of the NC State Fair, with crowds of visitors and shops selling crazy foods that no one would eat if they were at home.

IMG_2486AEach day, we’d take a taxi to the customer’s office, and we’d go through this routine of signing in, getting a pass, walking to the lab, giving our pass to the guard, going upstairs, exchanging our work ID badge for a guest badge with a locker key, telling the receptionist our laptop serial number, and locking everything except our laptops in a locker.

Inside the lab, our company’s workers and the contractors were busy making changes to their Chinese adaptation of our product.  But I could not help the for three reasons: (1) it ran in Internet Explorer only, and I had a Mac (2) it was written in Java, a language that I am not familiar with (3) the entire user interface was in Chinese.  So we fell into a pattern where they would work in Chinese until they reached a problem with our product, then they would switch to English to ask me a question.

So I spent most of my day the way a dog would.  I sat there, watching them talk, but not understanding a word.  Sometimes I would hear a single word that I understood, and it would catch my attention.  Sometimes, they would get up suddenly and say they’re heading out for lunch, and I would leap up and follow them out the door. A dog’s life.


So during the daytime, I experienced a sort of sensory deprivation in the lab.  I did not know what anyone was talking about, and so I did not have a good idea of how the trial was going (fortunately, my colleague spoke Chinese natively, and he produced a daily summary report for our bosses back home).  Rather than totally “plugging in” to their project, I simply answered technical questions as they came up.

Sensory deprivation.

IMG_2817AAt lunch time, we’d walk somewhere nearby for lunch.  And in the evenings, we would wander the city in search of supper and finally head back to the hotel.  On the city streets is where I experienced sensory overload.  Beijing is lively, with bright lights and unfamiliar sounds, smells, and tastes.  There’s 18 million people bustling to and fro, on foot, on bicycles and in cars.  It’s a lot to soak in, especially if you’re trying not to get hit by a bus.

I’d be remiss if I did not mention here that the Asian ladies, dressed in their smart city styles, are especially interesting to watch.

Total sensory overload.

If you’ve ever seen the movie “Lost in Translation”, my week in China felt a little bit like that movie.  Sofia Coppola does a great job of capturing that intoxication that comes from a mixture of jet lag, not understanding the surrounding spoken language, and bedazzlement from the strange and alluring scenery surrounding the traveller.

Overall, my trip to Beijing was a blast.  And I hear that our lab trial went very well!


Two heads are better than one


At work, I got a new PC with two monitors, and I have really enjoyed having the extra screen real estate.

When I worked from home this week, I decided that I needed to try hooking an external monitor to my HP laptop. I was happy that, unlike the last time I tried this a few years ago, it “Just Worked” ™ without any special calesthenics on my part.

I wondered why Gnome decided to put the panels (the bars at the top and the bottom) on the external monitor instead of on the laptop display. To me, it seemed more natural to have the “start” menu (actually, the “Applications, Places, System” tri-menu) on the external display instead of right in front of me.

It turns out that this is really easy to fix. Gnome has this configuration tool that is roughly equivalent to the Windows registry… yuck. You can access it using either gconf-editor or gconftool-2. Inside that deep mine of settings, there is one jewel that tells where the panels should go. So I wrote a quick script to move the panels from one monitor to the other and back.


if [[ ( ! -z "$m" ) && ( ( $m -eq 1 ) || ( $m -eq 0 ) ) ]]
   panels=$(gconftool-2 --dump $menu | \
      grep '<key>.*/monitor</key>' | \
      sed -e 's/^.*<key>//g' -e 's/</key>.*$//g')
   for p in $panels
      gconftool-2 --set "$menu/$p" --type integer "$m"
   echo "usage --> $0 [ 0 | 1 ]"
   echo "moves gnome panels to monitor 0 (VGA) or 1 (LCD)"
exit 0

ssh + netcat


At work, I need to access some blade servers that are on a private network. The only way to get into these machines is to shell into a lab box first, and then shell into a blade.

alan@desktop:~$ ssh root@labaccess
Last login: Tue Feb 17 10:13:52 2009 from desktop
[root@labaccess ~]# ssh root@blade3
root@blade3's password:-******
Last login: Tue Feb 17 10:14:03 2009 from labaccess
[root@blade3 ~]#

A while back, I picked up this little nugget from the TriLUG mailing list (thanks to Magnus Hedemark). There is a way to make this intermediate hop automatically. Simply add the following to $HOME/.ssh/config:

Host blade3 blade5 blade10
    ProxyCommand ssh root@labaccess "nc %h %p" 2>/dev/null

Now, when I try to ssh directly from my desktop to one of the blades, it first establishes an SSH session to the labaccess machine, and then netcat’s all of my original SSH traffic directly to the target blade.

This process will ask you for 0, 1 or 2 passwords, depending on whether your public key (from desktop) is in the $HOME/.ssh/authorized_keys files on the labaccess and bladeX machines. Since I have my public key on all of the machines, this is what I see now:

alan@desktop:~$ ssh root@blade3
Last login: Tue Feb 17 10:17:21 2009 from labaccess
[root@blade3 ~]#

This also means that I can scp files directly from my desktop to the blades, without having to dump them on the labaccess machine.

By the way, this trick provides an EXCELLENT reason to consider re-flashing your home router with Tomato firmware, which has ssh and netcat built-in.

Host homepc1 homepc2
    ProxyCommand ssh root@router "nc %h %p" 2>/dev/null

WFH: Working From Home


Tekelec has had an official “work from home” policy for a while now, but I have never taken advantage of it until now. I had dialed in to kick off builds or to check email, but I never tried working an entire day at home.

I decided that I should try it out, just to see if it would work for me. Depending on what you’re working on, and on the infrastructure at your office, working at home can either be a wonderful productivity tool, or it can be an exercise in frustration.

At my previous job, I could carry my entire development and test environment around on a laptop. I could do my work in isolation, even without a network connection. The only time I needed to connect to our office VPN was when I needed to check my source code into our code library.

The same is not true at Tekelec. We have a carefully set-up development environment in a lab — with source code living on one machine, builds taking place an other machines, and testing taking place on even more machines. In fact, the PC on my desk is only used to access these servers. Similarly, when working from home, my PC does not need any special software installed, since it is only used as a screen. I use a software package called “NX” to remotely log in to the PC in my office.

I think the day worked out OK. Here’s some lessons that I learned:

  • A few days beforehand, I need to block off the day in my calendar (to prevent people from trying to schedule meetings while I planning to be out).
  • The desk in my home office is OK, but I could use a better chair.
  • In the mid-morning, I get a glare from the bedroom window. In the late afternoon, I get a bright sun spot across my monitor from the office window. I might want to turn my desk.
  • My monitor at home is finer pitch than the one at work, so fonts look small.
  • NX is a great tool for remotely logging in to my desktop PC… much better than VNC.
  • At first, I ran into some glitches with NX mapping my keyboard keys incorrectly.
  • My normal lunchtime came and went without me even noticing.
  • The cafeteria at work has a lot more choices than my fridge.
  • The bathrooms are cleaner at work than they are at home. (!!)
  • When I return to the office the next day, I need to remember to bring my books back with me.

All in all, I think it went OK. I think I’ll try to incorporate regular WFH days into my work schedule.

In the dark


The power was out at work this morning. We have massive generators to keep the labs powered, but the offices were in the dark. The whole building was filled with the beeping of dying UPS’s.

Go to Top