Showing posts with label MySQL. Show all posts
Showing posts with label MySQL. Show all posts

Sunday, May 13, 2007

Book Review: Build Your Own Ruby On Rails Web Applications by Patrick Lenz

by T. Michael Testi (Blogcritics.org , PhotographyToday, ATAEE)

In the past two years, Ruby on Rails has shaken up the web development industry by providing an application framework whose goal is to increase the speed and ease of web development. Computerworld named it number one of the "Five Hot Technologies of 2007." Ruby on Rails, often shortened to RoR or just Rails, is an open source project that is written in the Ruby language.

The goal of Build Your Own Ruby On Rails Web Applications is to shorten the learning curve for your ramp up to Rails. The platform is well suited to design-oriented people looking to build web applications as well as to those who are unhappy with the languages and/or frameworks they are currently using. The author clearly states "I don't expect you to be an expert programmer - this isn’t a pro-level book"

The book is divided into twelve chapters that guide you methodically toward developing a social website application. In fact, the application that you develop is based on the popular story-sharing web site Digg.com.

The first four chapters get you started in understanding what Rails is and how to install it; there are instructions for Mac OS X, Linux and Windows. You then get introduced to Ruby, a scripting language that you will use to develop your Rails application before you get into the Rails framework.

In chapter five you actually begin to develop the application, called Shovell. Here, Lenz describes using the Rails model generator to create a "story" model so that everything else can be built around it. He also discusses views and you then build a controller to handle communications between models and views.

Chapter six adds functionality via form helpers as well as building unit and functional test cases. Chapter seven looks at Ajax to add voting functionality and Web 2.0 for good looking effects. Chapter eight covers protective measures, or how to manage users and user's rights.

Throughout the core portion of the text, as well as the remaining chapters, the author is also, indirectly, teaching you about dynamic website development. You have HTML, CSS, XML as well as databases and both server and client code. I believe that by using Rails and the features of both Ruby and Rails, it makes this integrated learning almost seamless.

The remaining chapters cover more advance topics such as writing your own helpers, using callbacks, and creating complex associations. There is also more on unit and functional testing. The author describes the use of plug-ins and how they can add functionality to your site. He also describes benchmarking and debugging your site and then finishes up with deployment.

What you will learn from Build Your Own Ruby On Rails Web Applications:

• Build and deploy a complete Rails web application
• Use Rails' Ajax features to create slick interfaces.
• Reap the benefits of a best-practice MVC architecture.
• Work with databases easily using ActiveRecord.
• Create a user authentication system.
• Use object-oriented concepts like inheritance and polymorphism.
• Use migrations to manage your database schema without data loss.
• Achieve maximum code reuse with filters and helper functions.
• Analyze your application's performance using the Rails logging infrastructure.
• Benchmark your application to determine performance bottlenecks.
• Much, much more…

This is a perfect book if you are looking to get into Web 2.0 development and want a step-by-step guide to bring you up to speed. It does a good job of introducing Model-View-Controller architecture as well as laying out testing methods as being important with the implementation of unit and functional testing. Finally, I like the clear, concise and entertaining style that the author uses in presenting his material.

Book Review - Learning MySQL by Seyed M.M. "Saied" Tahaghoghi And Hugh E. Williams

by T. Michael Testi (Blogcritics.org , PhotographyToday, ATAEE)

Learning MySQL is geared toward those people who don't know a lot about deploying and using a database management system, or about developing applications that use a database. By using MySQL, the leader of open source database management systems, along with the PHP and Pearl programming languages and this book, the authors attempt to provide a readable introduction to managing data.

The book has 18 chapters divided into six parts. To work with this book you will need a computer that is running Window, Linux or the Mac OS X operating system; a web server, the one introduced here is the Apache web server; and the PHP and Pearl languages for programming specific tasks to MySQL. Each of these is available for free on the web, and described in the book in the introduction.

Part one provides the overview of the book's content and focus. The authors describe how MySQL fits into the realm of information management tools and technologies. They explain how to set up your system and how to configure the software on differing systems. Finally they introduce the text-based interface to MySQL Server and how you can use it to control almost every aspect of the program.

Part two, Using MySQL, begins with the how-to of proper database design. You will learn how to determine what features your database will need and how items relate to each other. You will learn how to read data from existing databases, how to create new databases, what queries are, how to use them and how to nest them. You will find out about importing and exporting data as well as internal information on how MySQL process a query. You will also be given an overview of how to prevent unauthorized access to your data.

Part three, Advanced Topics, will teach you how to back-up your data and how to recover from a loss if your hardware does crash. You will learn how to use configuration files to fine tune the behavior of your MySQL server. It is here that you will also discover performance tips that can improve your overall performance.

Part four, Web Database Applications with PHP, will explore the world of database applications beginning with an introduction of the PHP language and how it can be used to work with your MySQL database. Then the authors, by designing a wedding gift registry, will show you the basics of designing your application.

Part five, Interacting with MySQL Using Pearl, present an easy to use introduction to the Pearl programming language. By using the Pearl DBI module to connect to MySQL data, you can import, export as well as store and read information. They finish up by creating a Pearl CGI module to create dynamic web pages that can interface with a MySQL database.

Finally there is an appendix that contains the entire source for the wedding gift registry. You can also download the source as well as other items such as useful links, feedback and errata found in the book.

If you are wanting to learn how to work with databases and feel intimidated, Learning MySQL may be just the ticket. It is well written, easy to understand and develops in a logical, easy to follow manner. By the time you get through the book, you will have a good overview of SQL databases in general.

If like me, you are not a PGP/Pearl programmer and, don't really want to be, there is still almost 400 of the 560 non-appendix, non-index pages, that deal directly with setting up and running a MySQL server, and who knows, your eyes might drift and you may end up learning PGP or Pearl anyway.

If I had one complaint, it would be the appendix containing the source for the application. It is a personal pet peeve of computer books that I have had for almost 20 years. Put it on a disk, put it on the web, just don't put it in a book. I would have preferred to have a summary of commands as the appendix.

That being said, I think that if you want to get a good solid foundation into how to build MySQL server databases, manage and manipulate them, then Learning MySQL should be on your shelf.