Friday, March 19, 2010

Setting Up Time Zone for Working Remotely

I’ve been working with the VA on a large project, where I was recently issued a laptop. Due to security concerns, they only allow VA government furnished equipment to connect to their network.

It’s the first time in a long while where I’ve had a setup where I didn’t have an adminstrative account, and some of the restrictions surprised me. The work I’m doing is for a group in Austin, Texas (located at the AITC), which means the computer was set up in the CST time zone. By default, Microsoft restricts setting the time to the administrator account (I think because it affects all users of the computer, although for a laptop that really shouldn’t matter), so I can’t change the time zone without desktop support.

While trying to see if there was a workaround in Outlook, I learned that you can set up a second time zone there, which helps you see the difference more easily.

Step 1: Go to Tools/Options from the menu:

Step 2: click the Calendar Options button:

Step 4: Add a label to the current windows time zone (CST unless you’ve had desktop change it for you).

Step 5: Check the box that says “Show an additional time zone”, and add the PST zone.

Step 6: click OK, and you’ll see both zones in your calendar.

Note:  Some web searches I’ve done have suggested that it is possible to create a policy  to allow a restricted user to change the time zone. (Computer ConfigurationPoliciesWindows SettingsSecurity SettingsLocal PoliciesUser Rights AssignmentChange the time zone), but without that you won’t be able to change the time zone as the computer is restricted to only allowing administrators to change the system time (Computer ConfigurationPoliciesWindows SettingsSecurity SettingsLocal PoliciesUser Rights AssignmentChange the system time)

Sunday, February 28, 2010

Live Mesh Beta on Snow Leopard Login Problem Fix

Image representing Windows Live Mesh as depict...

Image via CrunchBase

I’ve been playing with the beta of Live Mesh from Microsoft for some time now, and find it a very useful technology. So far the only problem I’ve run into has been some bug that was introduced when I upgraded to Snow Leopard.

For some reason, after restarting or hibernating my machine, Live Mesh gets left in an odd state that leaves it unable to connect to the mesh, leaving it in a weird state where the login action is greyed out:

Live Mesh greyed out login

After a bit of Googling and searching around on the Microsoft Connect site for people experiencing this bug, I found a couple of different solutions.

Two possible workarounds, both require Live Mesh to be shut down:

Method 1: delete the Live Mesh preferences file ~/Library/Preferences/com.microsoft.LiveMesh.plist.

Live Mesh preferences

This method is what I typically use, since it is the least intrusive. It reconnects all the folders that I’ve added to my mesh, and re-establishes the synchronization. It does tend to fill up my hard drive with files, since the initial synch puts most (if not all) of the files in the folders into the Trash.

Method 2: Star with a clean slate:

  1. Quit the Live Mesh client.
  2. Delete the Live Mesh settings in Application Support (~LibraryApplication SupportLive Mesh).
  3. Delete the Live Mesh preference (~LibraryPreferencescom.microsoft.LiveMesh.plist).
  4. Launch Live Mesh client.
  5. Log in and select the folders you want to synch like you did originally.

This method is effectively like doing a complete uninstall, since it removes all the settings and preferences. It does cause a complete re-synch of the folders, and you can choose if you want to “merge” or “replace” based on whether you think you might need to or not.

This will also end up with lots of files in the Trash, so watch out for your disk filling up.

Method 3: Never shut down or let you machine sleep ;-)

Obviously, this method isn’t practical, but I figure I’d mention it. Until Microsoft adds some code to the Mac client it is probably worth trying to remember to shut down the Live Mesh client before you reboot or leave you machine in a state where it loses it’s connection with the network.

My guess is that the Microsoft developers aren’t listening for the right events, and therefore leaving things in a state where they don’t know how to recover. Most Mac apps are pretty smart about knowing when the machine is going to shut down, or when the network connection goes away, and handle the problem as gracefully as possible.

Live Mesh is still in beta, so it’s likely they will fix this before it becomes a real product. Like most Microsoft beta products, Live Mesh is still incredibly useful and solid on Windows. I’m hopeful it will get there on Snow Leopard as well.

Wednesday, January 20, 2010

Best Google Voice transcription yet …

I love Google Voice. It’s an inspired system that gives me a permanent number that I use as the way to get in touch with me.

It lets me have calls ring at multiple numbers, deal with voice mail as part of my normal email, and gives me some nice attempt at transcription that is sometimes useful.

Usually I can figure out what the caller was saying from the weird transcription note that I get, but occasionally I get one like today’s gem. The caller said “Call me back and I’ll fill you in”, and Google Voice gave me: “15 minutes and I’ll kill you” ….

Of course both of those would get me to call back, but I think they need a little more work to get this right.

Tuesday, December 29, 2009

XCode and Subversion woes

Today I spent an hour or so trying to clean up some iPhone code that I’ve been working on for Carticipate. I found that I was having trouble with the build that I checked out from our Subversion repository for a bunch of different reasons.

The very first one was that the code was built on an older version of Xcode, as well as an older version of the iPhone SDK, and on top of that the build machine was running Leopard (10.5) while I’ve been running Snow Leopard (10.6) almost since the day it was released.

I tend to try and stay as up to date with software as I can, and most of the time it serves me well. In this case, I ran into several very interesting issues. First thing I did was to check out the code using the command line tools for Subversion. After a few false starts, I got the full directory from the server downloaded to my Projects folder.

I opened up Finder, double-clicked on the project file, and got a warning about the file being for an older version of the SDK. Since I had loaded the latest version of the iPhone SDK, it wanted to upgrade the project build files to the new format. I figured that would probably be OK as long as I didn’t forget and check things back in, so I went ahead.

Then hit “build and run” only to get compile errors. Seems a few of the calls on the code that is currently being used in the wild aren’t allowed for the latest SDK. A few edits and no more compile errors, but there’s some other error. By default XCode just shows this little icon at the bottom of the project that shows the number of errors, but you don’t really see the build log. Clicking on the little error icon, takes you to the log, and of course there’s more greek there.

Something about not being able to copy a file from a user directory (one that naturally doesn’t exist on my machine). More web searches and digging around to try and figure out where copies are specified. If you’re OS X centric, it’s really pretty intuitive, it’s hidden somewhere and you have to find the right properties page to update. Finally I find the setting in the build targets, change it to point to an existing file, and everything runs like magic.

Now I notice that on the build machine, there is a Carticipate settings page under the iPhones Settings app, and it looks different than the one that you see if you have a production version of Carticipate from the App store. The one on my machine looks like the production build, so I figure it must be because I’m building for the release target, but switching to the debug target doesn’t seem to change anything.

I stumble around a bit more and find a DebugFiles folder that has the Settings.bundle file with the extra settings on it. Seems like it is set up to copy the file from that sub-folder if I’m building for debug, but no matter what I do, I can’t seem to get it to change. I clean, I build, I switch, I clean, I build, nothing …

Finally just to make sure the files are coming from where I think they are, I edit the root.plist in both Settings.bundles to be different, and … Magic, the debug settings show up. I switch to the release target, and the settings pane changes to the production one. So apparently something in XCode was being lazy, and not copying the file from the DebugFiles folder until I touched it (must use Make under there somewhere).

In the meantime, I see a checkin email from another developer that has the entire build tree being checked in. I dig around on the web some more only to find that the way Subversion is configured out of the box on OS X, there are no default ignores, and apparently XCode doesn’t have any intelligence of it’s own around what it checks in. Turns out there is a  ~/.subversion/config file set up, but the global ignores is commented out so nothing is excluded by default.

By default the global-ignores is commented out, even though it seems to include most everything we would want excluded. I chose to copy the list from somebody else for now, making sure I added one for “build” to exclude that for sure:

[miscellany]

### Set global-ignores to a set of whitespace-delimited globs
### which Subversion will ignore in its 'status' output, and
### while importing or adding files and directories.
# global-ignores = *.o *.lo *.la #*# .*.rej *.rej .*~ *~ .#* .DS_Store
global-ignores = build *.o *.lo *.la .*~ *~ ._* .DS_Store .Trash* *.pbxuser *.mode*

So all I had to do was remove that build folder from the repository, and give this same change to the other developers … Well, not quite …

After I deleted the folder from the repository, I had the other developer try and check it out. He got these really weird subversion messages that said something was locked. I’ve seen those before, and usually it just means you have to run an “svn cleanup” command to get things back in synch. But in this case that didn’t work, and eventually I found that I had to physically delete the folder on his machine before running the “svn update”.

Oh, and did I forget to mention, the other developer is using an older version of the client, so when trying to update he got this lovely message about his client being too old. We updated to the latest client from the Tigris.org site using the Mac OS X download, thinking that would work. Turns out that this update doesn’t replace the version that comes with OS X (in the /usr/bin folder), so you have to remove or rename that one, and add a symlink to the /opt/subversion/bin/svn executable in order to get the newly installed version to be run at the command prompt.

So with the newly updated checkout, the build worked on all machines, and the repository is fairly clean. Then came the next hurdle, the older machines (running the older version of the iPhone developer kit and therefore XCode) would no longer update the code using the built in subversion client. Found a small message about the version being too old displayed in the status line of XCode, so did some more searching.

Apparently on the older version of XCode, you could tell it which Subversion to use, but at some point, the developer tools started including a subversion library. Still haven’t figure that one out yet, but it looks like it might require some more moving files and setting up symlinks to get it to use the newly installed latest version.

Seems like one thing that I am continuing to learn is that it doesn’t pay to keep your software up to date on a Mac (unless you’re really brave) …

Monday, December 21, 2009

Long and Winding Road to Windows 7

Today I received a box containing the replacement PC for my wife. I got a really great deal on a refurbished HP Desktop with a quad core AMD processor, 8Gb of memory and a 750Gb drive from TigerDirect.com

I'd been waiting about a week for it to get here, and my poor wife has been limping along on my slowly dying laptop in the meantime. I suspect that it's about to die, as it has become painful just to start up a browser or read email.
The UPS lady arrived at my door shortly before 5pm, and told me that she had heard a crash from the back of the truck in the morning. At first she thought someone had been drinking in the truck: she smelled beer.

As it turned out, a box containing beer had fallen and was leaking in the truck. She showed me the bottom of my package was wet, and said I could refuse the shipment and have her take it back.

I figured that it would probably be OK, since they usually pack things like desktops pretty well (in plastic and foam), so I asked her if I'd be able to send it back after looking inside. She told me that she could come by tomorrow and pick it up and gave me her supervisor's number.

I opened the box and found that there didn't appear to be any dampness or liquid inside (so far so good). But then when I actually pulled the desktop out, the front panels were all poked out, and the Styrofoam pieces were broken.

Now I figured that it would be just my luck that it would work initially and then start having weird problems caused by having been dropped. So I decided to send it back, and I called the number the UPS lady had given me.

Her supervisor told me I had to call the shipper and have them make a claim, that they couldn't return the box once it had been opened. So I called TigerDirect to get a return label and see if they could ship a replacement.

The return part was easy, they sent a link to my email. Interestingly enough though, during the order process, they had offered me a $5 discount for using Google Checkout, and that meant they couldn't just ship a replacement out. The customer service rep told me they could process a new order and give me free next-day shipping, but it would require a new order.

After looking at the inventory, the machine I had ordered was the last one of that model, and they offered me something that looked similar in price. I looked at the things that were available and decided to wait, so I'm back on the hunt for my replacement desktop.

Maybe somebody is trying to tell me something, this hunt for a new computer has been painful, maybe I should just look for another Mac ...

Enhanced by Zemanta

Long and Winding Road to Windows 7

Today I received a box containing the replacement PC for my wife. I got a really great deal on a refurbished HP Desktop with a quad core AMD processor, 8Gb of memory and a 750Gb drive from TigerDirect.com.

I’d been waiting about a week for it to get here, and my poor wife has been limping along on my slowly dying laptop in the meantime. I suspect that it’s about to die, as it has become painful just to start up a browser or read email.


The UPS lady arrived at my door shortly before 5pm, and told me that she had heard a crash from the back of the truck in the morning. At first she thought someone had been drinking in the truck: she smelled beer.

As it turned out, a box containing beer had fallen and was leaking in the truck. She showed me the bottom of my package was wet, and said I could refuse the shipment and have her take it back.

I figured that it would probably be OK, since they usually pack things like desktops pretty well (in plastic and foam), so I asked her if I’d be able to send it back after looking inside. She told me that she could come by tomorrow and pick it up and gave me her supervisor’s number.

I opened the box and found that there didn’t appear to be any dampness or liquid inside (so far so good). But then when I actually pulled the desktop out, the front panels were all poked out, and the Styrofoam pieces were broken.

Now I figured that it would be just my luck that it would work initially and then start having weird problems caused by having been dropped. So I decided to send it back, and I called the number the UPS lady had given me.

Her supervisor told me I had to call the shipper and have them make a claim, that they couldn’t return the box once it had been opened. So I called TigerDirect to get a return label and see if they could ship a replacement.

The return part was easy, they sent a link to my email. Interestingly enough though, during the order process, they had offered me a $5 discount for using Google Checkout, and that meant they couldn’t just ship a replacement out. The customer service rep told me they could process a new order and give me free next-day shipping, but it would require a new order.

After looking at the inventory, the machine I had ordered was the last one of that model, and they offered me something that looked similar in price. I looked at the things that were available and decided to wait, so I’m back on the hunt for my replacement desktop.

Maybe somebody is trying to tell me something, this hunt for a new computer has been painful, maybe I should just look for another Mac

Monday, November 9, 2009

Loss of Innocence (and Arrogance)

There’s a saying I’ve heard in self-help and twelve step programs that basically means you will learn more about yourself if you continue to do the work: “More shall be revealed …”

I’ve always been a very confident person when it comes to my ability to adapt to work, and always felt that as long as there were challenging problems to solve, I’d have no problem finding work. And while I am highly skilled, I have come to believe that I have been very lucky, and I may have therefore been a bit arrogant about my abilities.

Recently I recognized the fact that intentions and actions don’t always meet. I was flying home and the overhead bins were full next to my seat, so I walked back and placed my bag in a bin a few seats back. As I turned to go back to my seat, I saw a woman who obviously had been ready to put her bag in that spot. I work very hard to be a nice guy, but in this instance, I just continued back to my seat. My intention hadn’t been to upset this person, but my actions did so.

Last year, in October, I was released from a contract that I’d been on for a few years. I had been brought in to temporarily fill a vacancy, but was able to keep extending the contract by doing good work. The organization I was working for was worried about cash flow due to some expansion they were doing, so it seemed like this would be a temporary cost cutting measure.

Immediately after that, the market tanked, and jobs started disappearing. I wasn’t too worried, knowing that typically when jobs get scarce, contracts become more plentiful. I hadn’t had any time off for years, so I decided not to look too hard for the rest of the year.

Even though I wasn’t working too hard at finding a new job, I started to become a bit worried. I was only seeing contracts that had rates lower than salaries for the same work, and often were all inclusive out of state jobs. I did the math on a couple of these and found that I would be working for free by the time I paid for airfare and hotel.

So after the first of the year, I figured I better step the search up. I started working full time on my job search, and spending a lot more time on networking. I went to Job Connections nearly every Saturday, called and emailed friends and former coworkers, and talked to every recruiter that called. I spent hours trying to redo my resume to make it work for a couple of different types of jobs.

And during all this, I took advantage of my time off, studying for, and getting my PMP (Project Management Professional) certification. The silver lining in being out of work for many months, was that I was spending a lot of time on self improvement.

The biggest downside was watching the dwindle, and trying not to panic. We reviewed finances and realized we spent way too much money on a lot of things, and cut our expenses neatly in half. We dropped our burn rate enough to extend our expected “run out of cash” date to be somewhere around the end of the year. Somehow, even though we’d both lived in the paycheck to paycheck mode before, it was almost scarier to see the cash reserves disappear. There was that unfounded fear that we’d lose everything and be homeless.

Luckily for me, my network did pay off, and I picked up a contract that a friend of mine found me. Seemed like things were rolling again. But my lesson wasn’t yet over: I underestimated some politics and made some mistakes at this contract, and I was quickly out of a job. My intentions were to help improve a less than optimal process into one that was efficient, making the lives of nurses and patients better. My actions however only gave a politically charged situation more ammunition.

I lost that job because of two bits of arrogance: not paying attention to the inner voice that told me I should uncover my stakeholder’s needs early, and overestimating my abilities. The contract was supposed to have taken me through the end of the year, instead it lasted only a few weeks. I had been humbled again.

In the mean time, people in my network continued to struggle with the job market. The average time people were unemployed was beginning to stretch out beyond a year. People with more impressive backgrounds than mine were having trouble finding jobs. Companies that really needed employees weren’t hiring to minimize risk from another downturn, or were doing things like taking advantage of the downturn to replace expensive people with less expensive ones.

So after losing that job, I really came to the conclusion I had to take whatever came along, as long as it was something I could do. I started working on equity projects for startups, splitting my time between several of them. I went to meetups, and any free networking events I could find. I took a short contract doing development work. Still the bank account dwindled.

And then out of the blue, I got a call from a woman I had worked with a couple of years ago. I work really hard to stay in touch with people, but I’m definitely humble about my abilities in that area, so I was really happy that she thought enough of me to give me that call. It was perfect timing. It was a salaried job, which I haven’t had for years. I’ve always looked at contracting as just a different way to be compensated however, so I gladly took the job.

As it turns out, it’s a huge job, that I’m sure will challenge the limits of my abilities. I have confidence in my abilities, but humility about my ability to mark the boundaries of those abilities now, which I think will help me grow and meet these challenges.

And I’m sure, as they say: “More shall be revealed …”