Category Archives: Reviews

Hands-on with Amazon Echo

I was in the market for a Bluetooth speaker that had decent sound.  I got that and then some with the new Amazon Echo.  I received the Echo yesterday through a Prime pre-order.  Amazon has put a lot of thought and effort into the packaging of the Echo.  The unboxing was reminiscent of unboxing an Apple device.Amazon Echo Unboxing

The first thing that struck me was the size and weight of the Echo.  Here’s a pic showing the speaker on my desk next to a CD (Classic Quadrophenia) that should give an example of the scale.

Amazon Echo

Note the blue ring in the pic too.  When the Echo is thinking or responding to something, the blue light is on.  The ring can turn bright red if, for example, the Echo loses its wifi connection.  It did that once yesterday when I had the device in the kitchen (fairly far away from the wireless AP to which it was connected).

On the top are two buttons, one is a mute button for the mic, if you don’t want the Echo listening to your every word.  The other is a button that can be pressed to wake up the Echo to receive a command, if you don’t want to speak the “wake word”.  At this time, the only “wake words” are “Alexa” (the default) and “Amazon”.  I’m guessing they’ll change that eventually so that you can customize or choose a “wake word”.

Amazon Echo Setup

Setting up the Echo is rather straightforward.  Plug it in.  The Echo takes about 40 to 45 seconds to boot, during which time the blue ring will use a white rotate effect.  When the Echo is booted the first time, the ring will turn orange and the Echo will say “Hello”.  The next step is to visit or download the Echo app from your respective App Store.

The echo sets up its own temporary wifi network and will audibly tell you to connect to that wifi network using your device.  When you do so, you’ll then be able to choose the wifi network to which the Echo should connect.  The Echo will then connect to your home wifi network and you’re ready to roll.

The Echo also comes with a remote and a fairly powerful magnetic holder for said remote.  I haven’t yet experimented with the remote.  I suppose the use case for the remote is when you don’t want to shout “Alexa, stop” across the room.

The Bluetooth pairing process is easy too.  Simply say “Alexa, connect” and the Echo will go into a mode where it can be seen and paired to nearby devices.  There is no additional security code to enter, so anyone nearby who is watching could theoretically connect to the device while in pairing mode.  Connecting and disconnecting devices from Bluetooth is as easy as saying “Alexa, connect” and “Alexa, disconnect”.

The “Alarm” feature might be useful, though there doesn’t seem to be a way to set the alarm tone, just the time.  You can speak the alarm time, like “Alexa, set an alarm for 2pm” and watch as it gets set within the Echo web site.  That’s a novelty though and I haven’t explored the alarm function beyond merely setting it and then jumping out of my chair when the alarm went off and I had the volume too high.

Speaking of volume, there are multiple ways to adjust the volume.  Saying things like “Alexa, increase volume” will make the playback louder and you can also say “Alexa, volume 3” to manually set the volume to a certain level.  Sadly, the range is 0 to 10 and not 11, as I was hoping.  There is also a dial on the top of the device that can be turned left and right to manually adjust the volume.  Manually adjusting the volume gives finer control over the output. For example, saying “Alexa, volume one” will result in the 0 through 10 scale, but you can still adjust the volume down below one manually.

There is a news function and you can customize from among several audio feeds such as NPR, BBC, Economist, and others.  Saying “Alexa, news” begins these feeds and “Alexa, next” skips to the next “Flash” news feed, as they are called.  For non-audio based feeds, the Echo reads the news aloud.

Weather is available for the current location and you can ask for future or current conditions for  both local and remote locations.

How’s the Sound?

I bought a Bluetooth speaker with good sound.  The Echo has that.  The sound is rich and full range, with sufficient bass and midrange.  With any small-size speaker there is a simple inability to move a lot of air, as you would find on a full-size speaker.  Therefore, I don’t believe a Bluetooth speaker will ever be able to provide the drive of a nice JBL monitor.

I set up a playlist through Amazon Prime Music and can now do things like “Alexa, shuffle playlist Classic Rock” and random songs will be chosen from that playlist.


I suspect Amazon will be working hard to enhance the Echo.  For instance, the calendaring function currently only works with Google Calendar.  I’d love to see that integrated with other calendaring options, maybe through the Alexa AppKit or natively.

I can see the need to order additional accessories like power supplies so that I can move the Echo to different rooms… though I suppose I could just order more Echoes.

I haven’t yet explored the home control aspects of the Echo that can be found with Belkin Wemo devices, though I’m hoping to.  I’m hopeful that Amazon won’t release an “Echo 2” right away so that this is instantly obsolete either!

Review: The Book of Xen

[[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.

Logic Supply

fyi, for anyone looking for Mini ITX stuff, I’ve had great luck with Logic Supply. They ship quick, and the products I’ve ordered have been exactly what I expected. Now if I only had more time to work on the interfaces for some of the embedded/semi-embedded projects that I have in mind.

Review: High Performance MySQL

Review by Steve Suehring

Knowing that Jeremy Zawodny works with MySQL in a highly demanding environment at Yahoo! Finance, I have to admit that I was somewhat anxious to crack open a copy of the book “High Performance MySQL” published by O’Reilly and written by Jeremy and Derek J. Balling. With high expectations, it would be easy to be disappointed with the content or level of the material in the book. Far from disappointing, “High Performance MySQL” was exactly what I had hoped it would be and more.

With a title like “High Performance MySQL” the reader should not expect assistance with tasks such as installation or the basics of SQL. The authors of “High Performance MySQL” acknowledge that the book isn’t meant for the MySQL beginner. Even so, the book does spend a little time going over a refresher of MySQL for the reader. If the reader is looking for a book on the basics of MySQL, I’d recommend picking up a different title. I might be so brazen as to suggest looking at the book on MySQL that I wrote a couple years ago but I’ll leave it for the reader to find an appropriate title for their level of knowledge with MySQL.

The book is broken out over ten chapters beginning with a chapter on the basics of MySQL as seen from someone with some level of MySQL experience. As someone with some level of MySQL knowledge, this chapter didn’t seem to be too painful of a read. That statement begs for a further explanation. I find it painful to read books that claim to have advanced topics but find it necessary to spend (or waste) time by giving yet another explanation of how to type ./configure; make; make install in the beginning chapter. In this regard, I find “High Performance MySQL” to be quite good at providing the appropriate level of explanation for the audience.

The first pages alone are a great starting point for those who are wondering
about the performance as it relates to the different versions of MySQL. A discussion of the binary versions of MySQL versus the source code versions gives the reader a good understanding of the implications of this important decision. Choosing correctly between the versions of MySQL can help to maximize performance.

Though the first chapter is titled “Back to Basics”, most chapters include some basic or background information pertinent to that chapter. For example, both the query and index performance-related chapters include sections with the word ‘Basic’ in their titles. These two chapters, “Index Performance” and “Query Performance” are often misunderstood when considering performance on a database. Naturally, any database administrator worth their pay (insert your own joke here) will tell you that an index can help to improve performance. But “High Performance MySQL” takes it a step further diving into why you might use a particular index given your database needs. This type of practical information is common throughout the book. Rather than just give the reader a listing of the indexes (which are mostly common among RDBMS anyway), the authors choose to tell you why you might choose one method over another.

Other chapters within “High Performance MySQL” include chapters on server performance tuning, replication, load balancing and high availability, backup and recovery, and security. I’ve followed MySQL forums and mailing lists over the years and some of the more common questions relate to MySQL security. The chapter on security gives the reader a great explanation of the MySQL GRANT tables and includes a sidebar on the significance of ‘localhost’ in MySQL which nearly always seems to be a source of confusion, though maybe not for the reader of this particular book. Like other chapters, the security chapter includes tips for the underlying environment upon which MySQL operates. For example, regardless of how good the MySQL database permissions are configured, if
another piece of software on the server isn’t kept up to date then the entire server, including the MySQL data could be compromised.

Looking back at the book, I might have laid the chapters out in a different order or provided more structure through sections of the book. However, this can be dismissed as personal opinion and is non-substantive anyway. I believe “High Performance MySQL” is an excellent choice for the MySQL administrator or developer not only looking to improve their database performance but also to improve their knowledge of MySQL.

Review: The Linux Cookbook

Recently got a copy of The Linux Cookbook Second Edition by Michael Stutz, published by No Starch Press. It’s quite a hefty book, coming in at 695 pages of chapters and then another ~40 pages of Appendices. The book is geared directly towards desktop and workstation users, and as one would expect from a cookbook-style book, it’s task-oriented.

The book is very comprehensive, going through 34 chapters of everything from how to use command-recall to how to edit sound files, and a lot more. It would be pointless for me to try to list everything that the book goes through since there’s so much, so have a look at the table of contents. Well, it turns out that I can’t link directly to the table of contents for the title since the No Starch Press web site is using frames and thus direct linking isn’t readily available. Yes, I could view the source and link there, but maybe they should make linking to their site easier too! Suffice it to say that the book has a lot of good recipes to help desktop users.

I liked the book’s positive coverage of Debian but I do wonder how realistic that such coverage is for this audience who would presumably be using one of the newbie distributions like Red Hat or Mandrake. Of course, if the book didn’t cover Debian I would be very critical of it for ignoring the popular distro. So it’s a no-win situation, but I’m happy to see the Debian coverage in this type of book nonetheless.

I like books that come right out and tell you what they won’t try to show you, as this title does on page 10. This seems quite responsible and would thus prevent a potential system administrator or developer from picking this title up thinking that it’s going to help. Rather, the author makes sure that you know the book is right for you. It is for this reason that I feel comfortable recommending the title for desktop users who want to get things done in Linux. The book won’t show you all of the intricacies of each and every aspect of Linux nor does it claim to do so.

The Linux Cookbook is yet another good title from No Starch that deserves space on just about any Linux desktop user’s shelf.