Blog Posts by Matt Thompson

  • RDF, XSLT, & the Monkey Make 3

    If you've been hanging around the YDN recently, you've probably heard a thing or two about SearchMonkey.

    And why not? SearchMonkey is pretty darn cool.

    It lets you enhance the appearance of search results for your favorite sites. So the next time you need to look up, say, restaurants, a SearchMonkey app can distill all of the important information, like location, price range, and rating all into one place, right there in your search results.

    A ton of people have been tinkering with SearchMonkey since it launched in May. One of the main reasons for this (aside from how cool it is...and never mind the $10,000 contest they held recently), is how easy it is to pick up and start developing with.

    In this article, I'll go over XSLT and RDF--two of the fundamental concepts that power SearchMonkey. If you're looking to build your first app or you've built a few and want to get more out of it, you'll definitely want to read on.

    Read More »from RDF, XSLT, & the Monkey Make 3
  • Y! Music Battle of the APIs in the Key of Ruby

    Earlier this week, Yahoo! Music announced the release of their API. Jim Bumgardner, a front-end engineer from the team, gave a nice introduction, which included some examples of what you could do with it. In fact, his post inspired me to dive into the docs to see what else was in there.

    Truth be told, the Yahoo! Music API is a substantial entry into the music-related APIs. It offers a powerful and elegant interface to one of the largest music catalogs in the world, including hands-down the largest volume of music videos out there. As a Yahoo! property, it serves a massive user base, whose listening habits power a comprehensive graph of for finding similar artists. Through its corporate partners, Yahoo! Music also enjoys the benefits of direct access to artists and labels from around the world.

    The Yahoo! Music API is impressive, but the question remains:
    How does it stack up to the reigning champion of music APIs?
    How does Yahoo! Music compare to

    Read More »from Y! Music Battle of the APIs in the Key of Ruby
  • Book Review: High Performance MySQL (2nd Ed.)

    High Performance MySQL, 2nd edition, book cover A lot has changed since the first publication of High Performance MySQL in 2004. At some point, the web turned 2.0, startups became cool again, and SQL became a bad word (regardless of how you pronounce it). For many in this new generation of web development, hand-writing SQL has become a sort of vestige--something to suffer through only as a last resort. Frameworks like Django and Ruby on Rails provide a clean abstraction to the database called an ORM, or Object-Relational Mapping, which makes it possible to develop an entire application without writing a single line of SQL. Developers end up learning the hard way that reliance on database-agnostic development can have tremendous consequences once the application has to scale to thousands or millions of users.

    High Performance MySQL, by Baron Schwartz, Peter Zaitsev, Vadim Tkachenko, Jeremy Zawodny, Arjen Lentz, and Derek J. Balling, is a high-level introduction to the most powerful aspects of MySQL that's still accessible to anyone who's worked with a database before. Although this book focuses on MySQL, many of the concepts like transactions, locking, and query optimization are important to an understanding of any database system. You can get through the book on just a basic literacy of SQL, but it might be helpful to have a companion reference lying around in case something comes up.

    The book starts out with a detailed overview of the MySQL architecture, with careful attention to MySQL's selection of storage engines, which offers a lot of flexibility in how you can optimize performance. As a way to explain the differences between each of these storage engines and when it might make sense to use InnoDB rather than MyISAM, for instance, the book provides a thorough explanation of how they implement locking and transactions.

    Chapters 3 & 4 are also fairly specific to MySQL, as they explain the finer details of how it processes queries. MySQL does a fair amount of heuristics-based optimization on incoming queries depending on the nature of your data, and understanding what's going on under the hood can not only help you fix queries, but start writing better SQL. If you've ever added column indices because it seemed like the cool thing to do, or couldn't quite figure out how that simple query could be taking a few seconds, these two chapters especially will set you straight.

    The rest of the book covers general best practices for optimizing server performance. These chapters provide a good reference for how MySQL best implements practices like benchmarking, load balancing, backups, and hardware scaling. Since most of these optimizations are external to MySQL itself, much of the information is important for any production environment.

    Without a doubt, High Performance MySQL belongs on any serious developer's bookshelf. Like the original, it's an enjoyable, engaging read that provides battled-tested solutions to real-world problems that engineers face in scaling their applications. The second edition covers the new features of MySQL 5, including stored procedures, cursors, triggers and views, as well as a deeper comparative look into the various storage engines. Perhaps more importantly, the second edition brings with it a reminder of how important database design is to web development.

    Mattt Thompson
    Technology Evangelist Intern

    Read More »from Book Review: High Performance MySQL (2nd Ed.)
  • Book Review: Javascript: The Good Parts

    First off, a confession--I've rewritten the first sentence of this post maybe a dozen times. (How's that for meta?) For one reason or another, I figured that writing about JavaScript would warrant some clever insight into the language. Some poetic tidbit that people could rally behind. The kind of voice that could shape a generation of empathetic web developers.

    Something like:

    Javascript is a language of alchemy, turning inconsistent behavior and design flaws into Web 2.0 gold.

    Or maybe:

    JavaScript is nothing short of quantum physics with its spooky action at a distance.

    Before I decided to go all self-referential with my introduction, I had tentatively settled on something I think we can all agree with:

    JavaScript is really, really weird.

    As weird as it is, there are a lot of good reasons to actually learn JavaScript, and not just pretend it's some other language with C syntax. It takes a great deal of insight into this language to understand its true potential, and Douglas Crockford

    Read More »from Book Review: Javascript: The Good Parts