Tuesday, June 29, 2010

Getting PIL to work well on Snow Leopard

I was trying to update my environment and ran into some linker problems. It turns out that PIL was not working well. My Python is 64 bit, the python that my environment was trying to use was i386 and ppc. I have not been building ppc files. I found a few great references out there.
Universal Binaries on Mac Ports was the best. Modifying your varients.conf file to include:
+universal
Gets you half of the way. If you need ppc support under a 64 bit Intel setup, you need to add them manually into macports.conf:
# machine architectures
universal_archs x86_64 i386
Changes to:
# machine architectures
universal_archs x86_64 i386 ppc
Save these two files and then rebuild. In this case, I was rebuilding a PIL dependency jpeg. I also found out I had to add a few more dependencies for linking to be happy:
sudo port upgrade --force jpeg
sudo port install zlib
sudo port install freetype 
The "--force" made sure to stomp over the existing compile even though other things depended on it. As mentioned in the article referenced at the top, the way to nuke and rebuild everything is by running "sudo port upgrade --force installed". I do not recommend this unless you need to or have a lot of time on your hands. It will all be rebuilt. :)

Hope this helps someone. If it does, please let me know.

Jacob

Friday, June 25, 2010

Apple was Right, and Other Updates

It turns out that Apple's iPhone 4 advertising was right. I thought It Changes Everything. Again. was pure ostentatious marketing fluff. I was duped by the "higher resolution than the human retina" line for a little while. I figured this line was just pure easy proof that Apple had finally managed to jump the shark. At it turns out, it is the literal truth. They are trying to change the way people hold their phones. Yes. If you hold it in the wrong place, you loose everything. If you hold it in the right place, you are at the mercy of ATT. As they said in Sneakers, "Now you won't know who to trust." When your phone call is dropped, it must be your fault, because you were holding it. You know, your handheld device. It is so pretty, it should not be touched.

On a more positive note, as some of you may remember, my Kindle II used to be a little photo sensitive. For those who would like to see pictures of the issue: Blurry Kindle in the Sun. I am happy to report that after dropping my Kindle out of my hands and onto concrete, Amazon replaced it for free. YAY customer service! The new replacement does not have this issue. I can now change pages in the car or in the sun and the image is still clear. I have read elsewhere that the Amazon has been replacing Kindles for this issue alone. I really respect that and love it when a company stands behind their products.

Wednesday, May 26, 2010

Nobody Died at My House Last Night

I know, yet another sensational title. I do find them quite entertaining though.

Yesterday morning, I made my morning rounds to say good morning to everybody. You would not think this a big deal until I mention that I have 6 bedrooms 4 bathrooms 4 large heartbeats and 5 small ones to keep track of. No, I have not started breeding genetically engineered pack hunters.

My daughter is now 5 and has been wanting a dog for a long time. We are currently between houses and renting and would rather delay a dog until she can help provide more of the care for it. Fish were the obvious answer. We went to the store, looked around, window shopped, checked prices, and left. We actually left without purchasing any fish. How cruel is that?

A little while later, we went back to window shopping at the pet store. Aeryn was so cute with the little fishies. I could not help myself. Yousun threw up her hands and said it was "on you." We picked up a darling little Aerial tank and two female bettas. I like predatory animals. Not vicious mind you. Interactive. Smart. Fast. Sleek. When you walk in the room, they notice you and react. When you do things near them, they are trying to watch and figure out what you are up to. In fact, when we were feeding them about a week ago, one of the pellets missed and stuck on the lip of the tank partially over the edge (it was wet). Before I could get to it and push it in, one of the bettas jumped out of the water, snagged it, and went back in.

They are crafty little buggers. Unfortunately, those two just did not want to play nice. The bigger one was getting bigger at a very fast pace. The little one was not. One night, I came in to feed them and I did not even see the little one. We looked all over. There really was only one place to hide, the huge castle that I was convinced to buy for the tiny tank. I very carefully, very slowly, raised the castle out of the water. Still no fish. I turned it over, no obvious fish. I carefully put it back into the water. We kept looking and interacting with the other fish. Then, Aeryn noticed that the fish was poking its head out the front door. Seriously, it was popping out of a front door in a house that was about the size of its body. It liked its home.

The problem was, the interior decorating of this molded castle was not actually designed to be gentle on fins and scales. The poor little girl was scraping herself raw in spots on the edges. The castle came out. Now that she did not have a good place to hide, the other one got a little bit more aggressive and the fish came out.

We then went out to the store and purchased a tank for me and three goldfish. A few hours later I had a tank with three goldfish and one agressive betta. It turns out that she had probably never seen anything as big as one of these goldfish and they had not seen something like her that they could not eat. One test pucker later and the betta was shooting across the tank at insane velocities. She quickly figured out the narrow places to hang out.

Yesterday, when I did my rounds, I found one of the goldfish was stuck to the filter. Poor little thing. I don't know why it died, but it was only a few days. It might have been the tank or the other fish. No damage was obvious and the filter definitely did not cause it. Aeryn walked in right when I was about to clean it up. Thankfully she does not appear to have been traumatized by it. That night I was off buying more stuff for bettas to hide and two more bettas. Aeryn was finally going to get her replacement betta.

As it turns out, the betta that we purchased for her might have been a boy. If you don't know. Bettas are also called Siamese Fighting Fish. Two boys will fight to the death instantly. The top of the cup said girl. We later found out that the side of the cup said boy. When introduced into Aeryn's tank, they performed some impressive displays, and started to arc around each other and move in slow circles. I thought they were being friendly.

Then the slow circles started to leap in different directions by an entire body length instantly. Occasionally they would end up in odd positions. After one of those lurches, the agressive girl betta had a nice long chunk of fin in her mouth which she slowly proceeded to slurp in like a kid with a spaghetti noodle. She quickly found herself out of that tank.

A little while later she was in my tank with more foliage and hiding places. As I was writing this, two of the bettas were actually snuggled together side by side in a hollow that I had scooped out of the rocks. They are pretty little fish.

The goldfish are acting like they are pressed for space. Many times, one of them will chase and follow around the other fish. I thought he was just being frisky, but I only see one of the signs that it is a he so I am not sure. Oh, the other odd thing is they look pressed for space in a 20 gallon tank.

We shall see. I hope they are all happy. I hope they all live a long time. In the meantime, I will continue doing my daily body count to make sure everybody is still here.

Jacob

Tuesday, May 25, 2010

Meeting Your Idols and Heroes

I was listening to NPR today and they were talking about a director meeting one of his idols. Meeting an idol, as they mentioned, is not always a good thing. So far, thankfully, they have generally been pretty good experiences so far. I have had the great pleasure to meet many wonderful people during my life. Sometimes things go smoothly.

When I met Larry Augustin in 2004 we had a wonderful meeting. We were looking for some advice while we were starting SugarCRM Inc. He very quickly validated our business model and helped clarify the tools that we had at our disposal. That kind of background knowledge directly from one of the founders of the open source movement was invaluable. Over the years, his advice was very valuable and I am pleased to count him as a mentor, friend, and advisor. Larry has later gone on to have a much more active role in SugarCRM Inc. In his current role as CEO, he has helped ramp up the company towards its full potential.

I had the pleasure of meeting one of my favorite authors, when he spoke at our group's convention and then went out to dinner with us. He had tons of fascinating stories. I noticed after a while, that many of the regulars where quite a bit far behind where they could not hear well. I dropped back and asked them what was going on. The response was something like, "yeah, these stories are excellent the first two or three times." I am sure I have managed to bore a few people myself. Have you ever had one of those times where you could not remember someone when you were being reintroduced?

I managed to do that a few months ago with Chris Schiflett. I have actually met him a few times, read his blog on and off, and have read at least a few of his articles and possibly even a book. When Travis Swicegood verified that I knew him I totally spaced and forgot all of that. Sorry Chris. It was me, not you.

Sometimes, I find myself walking around a convention realizing that I recognize up to 50% of the people. After a very short while I find myself in a kind of trance. At that point, it is actually hard for me to recognize people that I know rather well.

There are a few people that I have met where I really don't have much to say to them. For instance, Don Box, when I mentioned that I loved "Essential Com" back in the day, appreciated it, but that was all I had. It made for a bit of an awkward moment. When I was studying excellent speaking, I had just finished reading about Carly Fiorina. A few days later, I had the chance to hear her speak and really wanted to say how impressed I was. Again, not a bad start, but I had nothing to back it up.

Thankfully, I have also had the opportunity to meet tons of other people and things usually proceed much better. Sometimes it is nice to keep people perfect idols and not pull them off the pedestal by meeting the actual human. Personally, I love the chance to meet people. Achievements are more meaningful because we are human, not despite the fact that we are human.

Find and idol and say hello. If they are busy, be respectful. If not, you might get a chance to actually meet them. I think it is worth surrounding yourself with as many wonderful people as possible. The world is full of them.

Happy Hunting,
Jacob

Wednesday, May 5, 2010

Be Careful What You Wish For

This is a piece of age old wisdom, but you should always be careful what you wish for. Last night, I was biking up a nice long hill. I was tired and approaching a major intersection that has a terrible bike path to right turn lane merge.

I was trying to build up speed, peddling harder, and downshifting rapidly. I kept willing my bike to make it easier to pedal. A few seconds later, it became really easy to pedal. I had managed to shift my bike chain right off the front gear. A few seconds later, I was back on the road, pondering again the phrase "Be careful what you wish for."

In life, we often find ourselves wishing for something that we don't have. When you want something focus on what you want and how you would like to get it.

Take Care,
Jacob

Where Vehicles Are now...

Not sure what happened to this post, but it appears to have not been published. Publishing now.

The Army has been making use of little nearly indistructable spy vehicles called Throwbots. I like the idea of smaller vehicles taking the place of people in risky situations. I don't like the idea of never quite knowing if your conversations are private. I think there might be such a thing as too good in this case. These guys were used initially to help explore the rubble of the world trade center. This is a great use of the technology. I think helping to find mines and clear them, as well as scouting in hazardous situations are also great uses.

In unrelated news, I had a lot of fun with a simple iPhone holder that I heard about. You can create a holder for your iPhone using a business card. Today, I read a blog entry about creating an iPhone holder from an airplane barf bag. Now you can still have a holder, even if you forget your business cards. Ahhh....innovation at its finest.

Tuesday, March 9, 2010

The Redemption of HP

Yeah, I know, ruined some of the suspense with the title. Now that you know they have redeemed themselves, I will now walk you through what they did to get on the naughty list in the first place and how they managed to redeem themselves.

I have been using a Mac for the past four years or so. I have long been a fan of fast printers. I always find that reading a printed page, or even eInk pages now, is far more relaxing on the eyes than looking straight at an electron beam. Early on, when I was first contemplating starting my new company, Adaptive Intelligence Inc., I purchased a snazzy new HP color laser printer.

Those of you who are paying attention might be thinking that there was something wrong with the printer and that is what HP did to me. Actually, it was big and a bit slow, but both of these were fine with me. Big made it faster, added an automatic scanner, network connectivity, portable memory readers, and a fax machine. A bit slow decreased the up front costs significantly.

I was happy with my new printer. It was relatively quiet, relatively fast, easy to setup and use, scanned documents in reasonable quantities, and produced great output. Basically, I received exactly what I paid for. The one nagging issue that I had was that pages printed out in the wrong order by default. It was when I jumped on the Snow Leopard bandwagon that things started to fall apart. I was cautious and made sure that HP had managed to create drivers for Snow Leopard. They had large listings of drivers and their current status. I followed the directions, cleaned the old drivers, and installed the new drivers.

Now, I had a nice snazzy printer that no longer supported scanning from or to the computer. At this point, I was frustrated. I choose two name brand companies, high end products, and was suffering compatibility issues. I managed to leverage a portable memory card, the manual controls on the printer, and a newly purchased USB memory card reader to work around the problem. Yes, in my fully wired gigabit networked home with a network enabled printer, I had recreated the kind of "sneakernet" solutions that we used to use back in the 80's. At this point though, I had faith in HP and Apple to play nice together and fix the printer. I was willing to work around the problem for a while.

Time passed and the workaround continued to irk me. I went online for updates and found that new drivers were posted and there was new firmware available for my printer. I quickly updated my printer's firmware and the drivers on my computer. Now I had a current system and it was sure to scan. I followed the directions on the HP website to use the built in OS X software for scanning. The menu items were there, but my printer was not. After a few rounds of cleaning, scanning for all things HP and moving them, restarting, and reinstalling I grumbled and went back to building my company.

I did not notice the lurking problem until I tried to deposit a check online. I scanned a check to the memory card, went to the bank's website, and tried to deposit it. They rejected the check since the resolution was too low. I went back to the controls, verified that the resolution was set right, scanned the check again, and found that it was no longer respecting the manual scan setting. Sneakernet was busted. After a few weeks of looking for updates, I finally gave up.

HP had officially made it onto my naughty list. It took me several frustrating calls, transfers, 15 minute hold times, and "your call is important to us" messages to finally get to someone that worked at HP, knew about Macs, and was able to help. We deleted all of the drivers again. We went to their website. Instead of clicking on the link for Snow Leopard, we clicked on the link for older OS X versions with no Snow Leopard support. There, inside, was a file that worked with Snow Leopard. Installing the full version took a couple of minutes. The system was then up and running well. Scanning worked from the computer (no longer really needed manual settings) again using their software. After that was working, the tech asked the always interesting question, "Is there anything else that I can help you with?"

Remember the page ordering problem that I mentioned in the beginning? I mentioned this, explained the issue, and how to reproduce it. I quickly explained that I understood the workaround, and the limitation to the workaround. Depending on how the software configured printing, you might not be able to customize the options and would have to manually reorder the pages. He took this issue, along with the manual scan resolution bug to engineering and we ended the call.

A few days later, I was surprised to see a message in my inbox from HP. Here was a driver extension that should fix the "default" paper ordering to the logical order. It worked on the first try. I am still waiting to see if the scan resolution issue gets fixed.

At this point, HP has really come through. My printer is back to being the solid reliable workhorse that I purchased. I am rid of a few nagging issues. I am able to deposit checks.

Jacob