Jason Copenhaver

the stuff

March 19th, 2009

Observations From Off The Grid

My wife and I recently went on a nature trip.  Three days hiking and sleeping in the woods, followed by two days at a campground nearBrooksville .  I turned my cell phone off on Friday and didn’t turn it back on until Tuesday.  Loved it.  Just some thoughts I had along the way

1.  It’s actually really easy to go 5 days without twitter, facebook, RSS feeds, digg, etc.  All told nothing that important happened while I was gone, and it’d probably be the same for any week out of the year.
2.  Natural bug repellent doesn’t work, or I’m just too damn delicious.
3.  Nothing is more peaceful than canoeing down a river, even one that is only 6 inches deep.
4.  State parks don’t allow alcohol.
5.  The dog drinks just as much water as we do but he’s too small to carry his own.

March 9th, 2009

When Link Order Matters

I don’t usually pay too much attention to the link order when I’m adding libraries to my application.  Something says you need “foo.lib”, open up the project properties and drop in “foo.lib”.  This failed for me recently.   I was trying to statically link two internal libraries that share a significant code base.  At first I was confronted with a dozen errors about colliding symbols.  This didn’t bother too me too much at first.  Colliding symbols are pretty easy to take care of, just rename one set of them, these are both straight C libraries so nothing fancy.  After making my changes I made a sample project that just linked to both of the libraries to make sure I had resolved everything.  To my surprise I now had a dozen NEW colliding symbols.  After careful inspection I noticed that the link order was different and this was indeed hiding colliding symbols.  This is when I thought back to that option “Enable Function Level Linking”  A very handy function that allows the linker to take only the functions it needs from a library when building the final application.  However, if you have two libraries with the same symbols and one of them has function-level linking enabled it can hide these kind of errors.  The linker will happily take a function from foo.lib and then when it sees the same function in bar.lib, that has function-level linking enabled, it’ll simple ignore it because it doesn’t need it.  Worse if you really wanted the function from bar.lib, you now have the function from foo.lib so there is a very good change something will break in a mysterious way.  From now on I’m going to try and keep my function-level linking libraries in the front of the link list, and try keep my legacy code from colliding with my other legacy code.

April 5th, 2008

What I’ve Learned

In my on going effort to do things outside of my comfort zone I purchased a Mac Pro last month. I’ve used windows professionally my entire career and I’ve run Linux as my main OS at home since 2000. I’ve never spent anytime on a Mac though, until now. For the most part it has been a smooth transition. The fact that it is built on a BSD core means I can always open up a terminal and feel pretty at home. MacPorts has also helped a lot in that it allows me to run some of the same apps I’m used to. I guess I haven’t bit the bullet completely because I still use Firefox as my browser, and I run a lot of webapps. However I do that so my environment feels the same whether I’m at home or at work. The following are just a couple of things I’ve had to deal with.

1. The biggest thing is the keyboard differences. I didn’t realize how much I used ctrl+c,ctrl+v until I had to switch to option+c, option+v. Then there is the way ‘del’ key works. It works more like a backspace in certain apps. Also ‘del’ doesn’t do anything in finder. To delete something you have to do option+backspace. Which really throws my keyboarding off. And something I absolutely couldn’t live with was how home and end behaved. Home and End go to the beginning or end of the document rather than the line. This annoyed me to no end. I finally found this helpful website that made terminal and firefox behave like I expect.

2. OS X has file attributes that don’t show up in terminal. I found this out the hard way. I had shared a folder into a virtual machine but couldn’t for the life of me get the virtual machine to overwrite any of the files. The VM (Virtual Machine) though it was read/write and terminal said it was read/write for everyone. I finally did Get Info on the file in Finder and saw that it was ‘Locked’. Unchecking that fixed everything. This probably happened because the file was originally copied over from an NTFS drive where the file was set to read-only and OS X was trying to do the right thing. There a couple of tools that allow you to see this information in terminal that I’ll use next time I have a file issue.

3. Something not at all related to Mac but rather a Vista issue. My VM is running Vista x64 so I can do some development for work. I have to run my copies of Vistual Studio 6.0, 2003, and 2005 as administrator to make them work in Vista. But I couldn’t for the life of me get them to open a shared drive in the VM. I wanted the files to live on my native drive and then be mapped into my VM. However this just didn’t work. If I ran a non-administrator application I could access the files just fine. This caused me hours of frustration and I finally turned off UAC (User Access Control) and the problem went away. There really should be a way to do this without turning UAC off but I can’t find it.

February 24th, 2008

Heinrich’s German Grill

My wife and I stopped at Heinrich’s German Grill on Friday night. Apparently this place has been hiding right under my nose for close to a year now. My sister had mentioned it to me, and happened to be there with some of her friends as well. The interior is much larger and better lit than it looks from outside. The owner’s/chef’s are right behind the bar cooking up some wonderful home cooked German cuisine. They even hand out some peaches or cream puffs to my sister’s ~4 yr old daughter when she sits at the bar. I had Heinrich’s Superior Schnitzel and my wife had Potato Pancakes covered in goulash. My schnitzel came out wonderful, lightly fried with two eggs, green beans and bacon on top. A number of dishes come with bacon on top so I’ll be back to try those as well. I think my wife did better than me though as the potato pancakes were just unbelievably good. They have five or six good German beers on tap and I didn’t ask if they had anything else. I’m thrilled to find a nice German place in town. Now I can vary my nice bar meals between Heinrich’s and Shakespeare’s.

Be sure to check them out

Heinrich’s German Grill
8420 Lockwood Ridge Road
Sarasota, FL
941 355-5453.

January 27th, 2008

words of the day

Timely
ROFL
Bonus
Jade
Zinc
Towny

I dumped a bunch of scrabble cubes out on my desk and this is what I came up with.

December 8th, 2007

First 5K

31st Annual Sandy Claws Siesta Key Beach Run
40:29 – At least I did it.

March 27th, 2007

Jenny! 86-5309!

I needed to send a package via FedEx the other day so I did a quick Google search for their number to schedule a pickup. It landed me on this wonderful page. Which, as of this posting, lists the number 1-800-22-6161 as the number to call to schedule a pickup. The astute reader will notice that it is missing a digit. (Note the missing digit isn’t a ‘2′, that is JCPenny’s number) I found another phone number for FedEx and was able to get my packaged delivered anyways. I also had the urge to be a good Netizen so I wrote them a short email letting them know there was a slight error on their website. This is the email I got back.

Dear Mr. Jason,

Thank you for writing to FedEx.

With reference to your mail, we kindly request you Contact us in Customer
Service Number on 1800226161, Mumbai 25708888, Bangalore 9880170000, Chennai
9840570000, Delhi 9818170000, you may also visit our website at
www.fedex.com or you may email us at inmaster@fedex.com.

Sincerely,
<name removed>
FedEx Customer Service,
Mumbai, India.

<name removed>
FedEx Customer Service Associate
Mumbai, India

Phone number : 91 22 25708888
Toll free number : 1800 22 6161
Fax number : 91 22 25700836

The important thing to notice is that they would like me to call them on the
same 1-800-22-6161 number. ohh well.. I tried..

Update: 04/16/2007
A reader pointed out that the FedEx page I linked to is most likely the FedEx India contact page. And the phone number has been changed to be a 1600 number rather than a 1800 number. My bad for not looking more closely. I’m a little surprised that it is the first page returned for “FedEx Pickup” via Google though. Maybe more people in India use FedEx than in the US?

March 3rd, 2007

20-20-20 Rule

I’ve read about the 20-20-20 rule at a number of websites now. For those that don’t know the 20-20-20 rule says that “Every 20 minutes you should look at something 20 feet away for at least 20 seconds”. This gives your eyes a chance to relax and if you actually get up to do this, blood flow might even return to your legs. I tend to spend too much time staring at my monitors so I thought I would implement something to help me practice the 20-20-20 rule.

I created the 20-20-20-Rule.py python script to display a small pop-up for 20 seconds every 20 minutes. If you click on the tray icon that is displays you have two options, “Quit”, obvious, and “Restart”, which is useful if you’ve been away from the computer for awhile and want to restart your 20 minutes.

You’ll need the notifiaction-daemon, libnotify, and notify-python packages for this script to work. All of those can be found at the Galago project page if your distribution doesn’t currently have them installed.

November 6th, 2006

I’m living with a Master

A master in Epidemiology that is. My wife defended her Master’s Thesis today and everything went well. She was unbelievably stressed this weekend and today before she actually presented, but she pulled it off just like I knew she would. To celebrate we had snacks and a couple of beers at Shakespeare’s and were even lucky enough to run into one of the former Surly Chicks of Sarasota. Elsie talked about Shakespeare’s in her blog so much that I had to go down and try the place a couple of months ago. I think I’ve been at least once a week since. To finish the evening off we watched the gift I got for my wife, The Little Mermaid on DVD, just released. This is by far my wife’s favorite Disney movie. Aren’t I the best?

September 2nd, 2006

2006 Sarasota | Manatee Technology Conference

For a first time event I was pretty impressed. I think close to 200 people turned out to talk about the technology scene in Sarasota and Manatee. The content was pretty high level and focused a lot on the small business crowd. That of course makes sense considering that it is mostly small businesses in this area. I was very excited to hear about the company culture at LexJet. Their three rules ares:

1. Have Fun
2. Make Money
3. Don’t get in the way of anyone else having fun or making money.

The co-founder talked a lot about the importance of having a good company culture and hiring good individuals. He also mentioned that they pay above average salaries so they can ATTRACT and RETAINT the high quality people that make them successful.

I was also really impressed with the stuff that Robert Hanson is doing with the Sarasota County IT department. They are consolidating services and servers throughout the county. They are really embracing the software as a service (SaaS) model and trying to save the tax-payers money yet still provide superior service and capabilities to the local government departments.

After the conference some of the crowd headed over to G.Wiz for the Digirati party. This was a really fun event for me. I was able to talk to a lot of interesting people and it was the first time that I personally felt successful and confident at networking. I had a great conversation with Andrew Foley, from Sarasota News & Books, about the impact of the Internet on local culture. I’ll have to stop by his bookstore sometime soon to see what other interesting conversations come up.

I’d really like to thank all the people at the Young Technology Alliance, who don’t have a web page just about them yet, for putting on this great event. I can’t wait for next years.