RSS Feed Subscribe to RSS

Macbook Pro Uptime

Rebooting is standard procedure for nearly every computer I own or have ever owned.  I’ve noticed however that whenever I have to reboot my Mac, it makes me mildly angry.  I’ve become accustomed to running my six standard applications (Firefox, Mail, Adium, iCal, iTunes, and NetNewsWire Lite) all the time.  I literally never turn them off.  When my computer goes in my backpack, it’s sleeping and ready to go at a moment’s notice.

Uptime is something that people usually are proud of when they talk about servers, but in my own little world, I started taking pride in my laptop uptime.  The latest security update from Apple forced me to restart my computer, but prior to that, I had achieved a short month of uptime.

Uptime

My father-in-law just announced his anger at Microsoft again, but this time it was enough that he wanted to go Mac.  Freezing and restarting is one of his major gripes.  When I shared this little screenshot with him he was stunned speechless.

Everything I Need To Know About Life…

I learned in Isys 532 (not really, but this post is fishing for a grade. Dr. Liddle, this one is for you).

I’ll just throw out the warning up front that this is not a typical blog post. For my Information Architecture class, I’ve been instructed to condense a semester’s worth of learning into one blog post.

So my goal with this post is not to rehash all the research and work I’ve done throughout the semester, but to make a good parts version and wrap everything up. So here we go in no particular order. I wrote a random number generator to sort them for me. A real random-number generator, not a psuedo-random number generator.

Lesson #1: Ruby is not a toy. And Rails is not a buzzword.
Dr. Liddle, I can already see you shaking your head and smiling as you read this. To borrow a phrase, you’re thinking that all I’ve got is a hammer and everything looks like a nail.

While I admit that there may be a bit of truth in it, the fact is that I really don’t know that much about Ruby or Rails. But there are very smart people in the world that know just about everything that there is to know about it, and they’re working very hard to make it better.

It is not a solution for every problem. I’ve never seen a decent client-side GUI built on Ruby, but when you add Rails and throw it onto the web, it becomes a very powerful, very simple, and very stress-relieving application platform. It makes AJAX very simple. It teaches good practice. It has good separation of components. It has a very active friendly community around it. No it is not the solution to everything, but it is going to go places, and you should pay more attention to it instead of just smiling and shaking your head whenever I bring it up =)

Lesson #2: Your mileage may vary.
During this semester, I’ve spent countless hours on the internet, looking up different solutions to different problems, to put together programs and projects for technologies I’ve never even heard of before.

Even though I ran into the same problems and error messages that others had run into, their solutions did not always work for me. There are lots of folks that Google themselves onto my blog, and while I hope that my solutions work for them, that assumption requires a certain amount of naivety, and it’s not an assumption I’d make.

Sometimes an authoritative answer cannot be found, so we turn to the blogosphere. The so-called Web 2.0 movement has enabled millions of people to build themselves a spot on the internet and granted access to amazing information resources, but just keep in mind where this knowledge is coming from. Don’t be surprised when someone else’s solution does not work for you.

Lesson #3: More servers and computing power is not always the best answer.
Sometimes when you are presented with the same old problem, the same old answer is not the best one. I wrote a paper about Memcached this semester. It’s an innovative way to solve the ages-old problem of scalability.

Obviously when you get bigger, you’ve got to scale up, but the lesson taught by Memcached is that up is not the only direction to scale. Proper use of innovative technologies can enable you to scale out as well as up. And Memcached is free, so throwing more money on the fire isn’t always the best solution either.

I actually just ran across an article on Digg that provided instructions for surviving The Digg Effect. The article didn’t mention anything about buying new servers, but rather instructions for tuning your server, optimizing your DB, caching your results, and tweaking your PHP (read programming language of choice). That’s all free too.

Lesson #4: A Gentoo installation should not be undertaken in the middle of a busy semester.
This is pretty much self-explanatory.

Lesson #5: There is no perfect one-size-fits all solution.
There are a million ways to architect a system to support your application. Maybe Model Driven Architecture will fit your needs. Maybe it’s an extensible Service Oriented Architecture. Maybe it’s a simple Web Service that you publish for others to consume.

The point is that what works best for someone else, may not be your best option. Figure out what you really need, do your research, talk to people who know what they’re doing, and decide what works best for you.

Lesson #6: Don’t reinvent the wheel.
If you’re having some kind of pain with your infrastructure, chances are you’re not the first. Google is your friend. Or in an attempt to not be search-engine specific, the internet is your friend. There are a lot of smart and friendly people that can help you out.

Lesson #7: If you’re supporting a really really big, revenue-generating infrastructure, you’re going to want the right tools for the job.
This is somewhat related to the above point. We talked a lot about different architectures, applications, frameworks, and tools for solving your enterprise-level problems. Standards are developed for a reason. There are some industry standard tools for getting important tasks done. log4J and JMS are examples of accepted, widely used tools for enterprise logging and messaging. If a particular part of your IT infrastructure is not helping to generate a strategic advantage for your business, using tried-and-true solution is an excellent idea.

Lesson #8: Database optimization is not for the faint of heart.
Part of the reason it’s so difficult is because it’s different for every application and every person. It is hard, but it is not impossible.

Awhile ago I wrote about my thoughts for the best way to approach it. Benjamin Swanson, a good friend of mine, developed his own framework for performing the task. It’ll take time, but so do most other things that are worth doing.

Lesson #9: Putting in the extra time is worth the extra time.
I’ve found through personal experience that taking the time to do something right is worth the effort. Throughout my school career, I’ve built a reputation for being a go-to guy and getting things done because I’ve been willing to put in the time it takes to get things done. I find it rewarding when my peers ask me for help with something I’ve figured out.

But that is not why I do it. For me, putting in the time to learn something is its own reward.

*** Update ***

Lesson #10: Make your technology fit your business.
Perhaps this lesson is more powerful when stated in the longer form. Make your technology fit your business; don’t make your business fit your technology. Technology serves a purpose, but it is only a tool. When applied to the business world, it should solve a business need and more importantly, should make it easier for the business people to do their jobs. The MISM program at BYU emphasizes both the business and the technology, but in most cases, it’s the business that makes the money. The technology exists to help us do business better (well, obviously there are other uses for technology, but let’s keep things in context here).

Google Website Optimizer May Be A “Stormy Teacup”

Not everyone is excited about Google’s Website Optimizer. Google uses AdBot, a version of GoogleBot, to spider through the landing pages that are entered with AdWords Campaigns. AdBot judges the contents of the landing pages and assigns them a Quality Score. The higher your score, the lower your minimum bids and the better position your ads achieve. So in order for your Pay-Per-Click Campaigns to work well, you better be doing Search Engine Optimization well.

According to this analysis by Andrew Girdwood at e-Consultancy, the way that Google’s Website Optimizer changes the content on your page in order to increase conversion, conflicts at a very basic level with the things you should be doing for your long-term SEO.

On the list of concerns:

  • Google dislikes pages that present one set of content to GoogleBot, but which appear to say something else to users
  • Probable heavy use of javascript to run the optimizer does not play well with long-term SEO objectives
  • Creating seperate PPC landing pages creates duplicate content on your site which means your own internal pages are competing with each other for rank in the Google search result

One possible solution is to protect the URLs to your PPC landing pages from GoogleBot through use of the robots.txt file while still allowing AdBot to get to them. That way you can create duplicate SEO friendly content for your PPC pages (remember, you want a good Quality Score) without conflicting with your other long-term SEO goals.

More Info
http://www.e-consultancy.com/news-blog/363042/why-to-be-great-at-ppc-you-have-to-be-good-at-seo.html

How Can Smart People Make Such Stupid Laws?

I found this article through Slashdot today, and I’m embarrased to call myself a Utahn. Apparently our legislature has just passed a law that bans keyword advertising. Not all keyword advertising, just the ones that use something that could loosely be tied to a competitor’s trademark. If you’re in the same industry, couldn’t any keyword fit that description?

Apparently the law only applies if the ad is displayed in Utah or the advertiser/keyword vendor is located in Utah. How on Earth does one control that? In reality, every advertiser would have to check a Utah registry before buying keywords that might contain a trademark of a competitor. In fact, the language of the law is even more vague. It defines a trademark as an “electronic registration mark…[a] word, term, or name that represents a business, goods, or a service.” How does the state of Utah possibly expect to enforce this law?

If all this doesn’t spell S-T-U-P-I-D-I-T-Y, the law passed despite the fact that Utah’s general counsel informed the legislature that the law violated the dormant commerce clause.

The bills champion, Dan Eastman, is trying to protect against so-called trademark hijacking, which he refers to as a new form of identity theft. While that is a problem, this is one solution that will never work. The consitutional issues involved are only one massive obstacle in the road, not to mention the lack of support from anyone with a brain (OK, maybe that’s a bit harsh).

The likely outcome is that the law won’t stand up under scrutiny or even a slight breeze, but before we can bury it, our tax dollars will have to pay for the litigation and resulting court cases so the judges can strike it down. Couldn’t the state be doing something worthwhile with our money, like working on the new Real Salt Lake stadium? (And yes, I’m glad the stadium is being built)

More Info
http://blog.ericgoldman.org/archives/2007/04/utah_bans_keywo.htm
http://www.eff.org/deeplinks/archives/005185.php
http://www.schwimmerlegal.com/2007/03/utah_electronic.html

Google Website Optimizer

Awhile ago Matt Belkin wrote about A/B Testing and mistakes you should avoid while doing it (recommend reading for the online marketer in you). He talked about the differences between A/B Testing and Multivariate testing.

Multivariate testing is changing more than one thing at a time. True A/B testing takes discipline and patience, neither are often prominent character traits of web developers. Google Website Optimizer to the rescue.

From the homepage of the latest Google service: “Website Optimizer, Google’s free multivariate testing application, helps online marketers increase visitor conversion rates and overall visitor satisfaction by continually testing different combinations of site content (text and images).”

Happy testing!