Earlier this year I obtained Google Adwords Professional status. This solidified the work that I've been doing for years to help companies market on the Internet. One of the recommendations somewhere along the way was to use a custom landing page for Adwords, with the intent of capturing the user's information through an online form or motivating them to buy right from that page. The recommendation calls for a special landing page, specific to the keywords, to be crafted.
However, in many instances I'm uncomfortable with this approach. From a usability standpoint, I'm searching the web for something. I see the link at the top (or wherever) on the page and want to click through to get more information. When I'm funneled into a contact form asking me for e-mail address, phone number, and other personal information it's an automatic back-click. Now the advertiser has not only spent money on the Adwords ad, but they have made me think that their company has nothing to offer. The landing pages often feel seedy or spammy, even those from reputable companies.
An ideal landing page is one that enables the visitor to obtain rich information about the product or service and to click through easily to the main web site. If you're using a landing page that traps the visitor into providing personal information right away, without a means to get to your main web site, you're likely going to spend money on unnecessary clicks.
Of course, with Google Adwords Google Analytics, you can make a report that shows how long people are staying on the landing page or if they drop out after clicking through.
[[Note: This review was first posted on Slashdot.]]
The Book of Xen (Takemura and Crawford, No Starch Press, 2009) provides an excellent resource for learning about Xen virtualization. I frequently need to create test environments for examples that appear in various books and magazine articles (in the interest of full disclosure, I've never written for the publisher of this book). In the days before virtualization that meant finding and piecing together hardware. Like many readers, I've been using virtualization in one form or another for several years, including Xen. This book would've saved hours searching around the web looking for tidbits of information and sifting through what works and doesn't work in setting up Xen environments. The authors have done the sifting for me within the ~250 pages of the book. But far beyond, the authors also convey their experience with Xen using walkthroughs, tips, and recommendations for Xen in the real world.
"The Book of Xen", "A Practical Guide for the System Administrator"
As stated in the subtitle, The Book of Xen is written with the system administrator in mind; someone who is comfortable with tasks like installing Linux and working with the command line. While it wouldn't be impossible for someone completely new to Linux to accomplish the tasks in the book, a bit of experience would go a long way to both visualize and complete the installation and configuration steps shown in the book. As stated in the introduction, the book is organized "(mostly) alternating between theoretical and practical discussion [because] an admin needs both practical experience and a firm theoretical ground to effectively solve problems..." (xxiii).
The authors do an excellent job of explaining what Xen is and where it fits in the virtualization landscape. This explanation begins with the introduction where the reader gathers a brief history of virtualization along with Xen's place in the landscape. Xen's limitations and reasons for using Xen are also covered right in the introduction, along with an overview of the book.
Chapter 1 begins with a high-level overview of Xen. This discussion is excellent if only to get the readers on equal footing for the discussions to come later in the book. Included in this chapter is a discussion of various techniques for virtualization including Full Virtualization, OS Virtualization, and Paravirtualization. The section on Paravirtualization leads nicely into some of the underlying details of scheduling, interrupts, and memory, and other resource management which are handled by Xen and discussed later in the chapter.
Chapter 2 sends the reader down the path of installing and using Xen. It's a short chapter, coming in at about 9 pages, and the reader is expected to be able to handle an install of CentOS with just a bit of guidance from the authors on specific options to select. This is a key point for those among us who have a preference for a certain Linux distribution. The book isn't tied specifically to a single distro, as the authors note in the introduction, "[w]e've tried to keep this book as distribution- and version-independent as possible, except in the tutorial sections, where we try to be extremely specific and detailed..." (xxiv). The base or host system upon which the examples run is based on CentOS, which the authors acknowledge and highlight in Chapter 2, "[f]or the purposes of this chapter, we'll assume you're installing CentOS 5.x with the server defaults and using its built-in Xen support. If you're using something else, this chapter will probably still be useful, but you might have to improvise a bit" (13). There is discussion of the Xen-tools package in a later chapter which shows its installation under Debian Linux too. So far from being tied to one distro, the book is refreshingly neutral in this regard.
By the end of Chapter 2, the reader has a working Xen host system and a domain 0 or dom0 host upon which to provision virtual machines. Included in Chapter 3 is a discussion of how to provision guest operating systems, known as domU in Xen-speak. The authors devote a good number of pages to making this task clear, and work through examples of basic domU installation and the use of package management systems and Debian's debootstrap to create domUs. Additionally in Chapter 3 the reader learns how to convert VMware disk images to a format usable by Xen.
Chapters 4 and 5 examine details of the Xen backend, including storage and networking. Chapter 4 stands out for its recommendation of blktap and LVM (Logical Volume Manager) as the storage backend as well as an overview of LVM itself, along with the use of networked storage for Xen.
Chapter 6 looks at tools for management of Xen, focusing on Xen-tools, libvirt, and Xen-shell while Chapter 7 gives advice for hosting untrusted users with Xen. Chapter 8 discusses the use of Xen with Unix-like operating systems and includes sections on Solaris and NetBSD.
The ability to migrate the virtual machine from one physical machine to another is one of the advantages of virtualization. As pointed out by the authors, a virtual machine might be migrated to take advantage of newer hardware, to perform maintenance, or any number of other reasons. Chapter 9 is of interest for its discussion of Xen migration. Cold and Live migrations are examined and Footnote 1 on page 126 is interesting for its reference to the Kemari Project and Project Remus which are projects to add hardware redundancy to Xen.
Tools and techniques for the measurement of Xen performance are shown in Chapter 10, which walks the reader through basic usage of well-known tools such as Bonnie++, httperf, UnixBench, and others. More importantly for the Xen admin is the discussion of Xen-aware profilers like Xenoprof which is "a version of OProfile that has been extended to work as a system-wide profiling tool under Xen..." (151).
Chapter 11 covers the Citrix XenServer, which is the enterprise-grade commercial Xen product from Citrix. The authors summarized it best in the review of Chapter 11: "Can Citrix's product replace the open source Xen? As always, the answer is maybe. It offers significant improvements in management and some interesting new capabilities, but that's balanced against the substantial cost and annoying limitations" (174).
Chapter 12 begins the discussion of Hardware Virtual Machines (HVMs), which are virtualization extensions that enable "an unmodified operating system [to run] as a domU" (176). This means the ability to run an unmodified version of Microsoft Windows as a guest OS within a Xen environment. The HVM discussion in Chapter 12 leads nicely into Chapter 13, "Xen and Windows".
The main chapters of the book end with Chapter 14, "Tips", and Chapter 15, "Troubleshooting". Both chapters draw on the experience of the authors and provide value to the book for their recommendations. Though the tool of choice for troubleshooting is the nearest Google search box, it's still helpful to glance over the content in the Troubleshooting chapter if for no other reason than to maybe remember that it's there when you receive the dreaded "Error: DestroyDevice() takes exactly 3 arguments" error.
The Book of Xen is almost certainly a time-saver for anyone looking to implement Xen or virtualization with Linux. The back cover states "The Complete Guide to Virtualization with Xen". The book lives up to that statement and more.
I'd love to get one of Amazon.com's Kindle readers. Problem is: My price point for a Kindle is, well, free. That's not entirely accurate. I'd likely pay somewhere in below $100 for one, but a Free Kindle would be best.
The primary factors that hold me back from a Kindle purchase are primarily:
- Price.
- Fear of Kindle 3.0, or 4.0, or N.0.
- Lock-in.
- Fragility.
1. Price: I can't seem to get past the price. As of this moment the Kindle is $259 but that seems to be way too much for someone who has a fair-sized library already.
Solution: What if Amazon threw in $200 worth of books or credit to use with the Kindle? That wouldn't nearly get my library converted to the Kindle but it would get some essentials on there, and as a bonus, it would effectively lower the price that I'm paying - or think I'm paying.
2. Fear of What's Next: I'm also afraid of what's next for Kindle, what the next generation Kindle might bring that will make me want one. They're already adding native PDF support through an update, but what about the next update that requires new hardware. I can't justify spending $259 on a single-purpose device that may be outdated in a month. (Yes, this again goes back to the price point problem).
Solution: What if Amazon included or sold upgrade insurance, where buyers could get the latest and greatest version of the product for 1 or 2 years after purchase? As an aside, having a published and easily accessible hardware roadmap would help too. If I know that Kindle 2.0 is going to be around for 5 years I might feel more comfortable about buying it, even if the price is $259.
3. Lock-in: This is less of a concern for me, but it's a concern nonetheless. What happens in the unlikely event that Amazon stops supporting the Kindle? Does the hardware become obsolete, and if so, in what timeframe? What will I be able to do with a Kindle that is no longer supported, say in 10 years? The books that I purchased 15 years ago are still readable, albeit dusty, and waiting for me to take them from the shelf.
Solution: Amazon should publish something on this. Everything seems to be centered around how great it is now, today, when it's shiny and new. But what about 2012?
4. Fragility: Am I buying a brick, and a lightweight one at that? I'd like the device to work for years and years, much like the books on my bookshelf. Will it work in 5 years? The words are still the words in books from 15 years ago and I have confidence that in another 15 years, those books will still work. What if I stop using the Kindle for a couple years? Will it still work like a book?
Solution: I have no great solutions for this problem. Other than Kindle damage insurance, I can't think of how this can be solved other than by lowering the price point of the Kindle. If the device is $39 and I can get all of my books back from the server, then I don't care as much about its fragility; other than to know that I can still buy one in 15 years to get my books again.
At the end of the day I'd love to get a Kindle but until the price point comes down significantly, I can't justify the cost. Obviously based on recent sales figures that show the Kindle selling very well, I'm the only person who has these concerns.
I'm writing a review for a book and while rereading some of the paragraphs I noticed that I'm having one of those wordy writing days; one of those days where I write several words to express one thought when one or two words would do. A symptom of such a malady is the use of semi-colons (oops, already used one in this post). I wonder as to the source of this wordiness. It may be from having to obtain a higher page count for certain unnamed publishers or it could be from reading old (1800's and early 1900's) writing where the sentence structure was much more formal.
Either way, it's making editing a more difficult task. It'll be interesting to see how the final review ends up. I should leave it unedited, take a word count, and then edit it down and compare the word count. Bah. That's too much work.
Has it really been that long since I wrote a post? I've been busy migrating to a new server recently and one of the items on the 'todo' list was to update the blog software. In doing so I discovered that I apparently haven't written anything in the blog since 2008. Makes me wonder why I have a blog anyway.
By way of updates, I've been doing various writing and web projects lately. On the writing side I've been doing some contract work for Microsoft and on the web side I've been donating time and programming to some local organizations that don't otherwise have a web person or can't afford one. I also put up a site for JavaScript Step by Step. Hopefully there's a revision of JavaScript Step by Step in the cards for 2010 which will take into account Internet Explorer 8 and the forthcoming IE9, along with jQuery and other improvements as one would expect with a revision.