Showing posts with label Programming. Show all posts
Showing posts with label Programming. Show all posts

Thursday, July 24, 2008

Software Review: XMLSpy 2008 From Altova

Written by T. Michael Testi

MLSpy 2008 is the latest version of Altova's integrated development environment (IDE) for XML. XMLSpy allows programmers to create XML-based applications and Web services in a more dynamic and easier to understand environment. The version that I am reviewing is XMLSpy 2008 release 2 which came out on May 7, 2008 and it is based on the Enterprise version. There is also a Professional version and if you would like to view the differences between the two, you can check out the feature comparison list.

What is XMLSpy 2008? It is a XML development environment for designing, editing, and debugging enterprise class applications that involve XML, XML Schema, XSL/XSLT, XQuery, SOAP, WSDL, and Web service technologies. Its aim is to be a productivity enhancer for J2EE, .NET, and database developers. Along with being an XML editor, it offers a code generator, file converters, a debugger, a profiler, and integration into Visual Studio .NET and Eclipse.

One of the other main features XMLSpy includes is the ability to edit XML documents in multiple formats. I personally think that this is one of those kinds of features that once you get used to it, it's hard to work without XMLSpy. You can look at your XML document as a text doc, a grid format, and as a WYSIWYG view. Next it has a built-in well-formedness checker and validator. If there is something wrong with your document, you don't have to wait till it fails and then try to figure out what is wrong with it; XMLSpy does it for you.

 XMLSpy

You also have intelligent editing such that if a schema is associated with your XML document, the auto-completion feature of Text View provides help in editing. There are structural editing features like line numbering, indentation, bookmarks, as well as expandable and collapsible element to aid in navigation.

You can create schemas quickly and easily, there is support for XInclude and XPointer, a built-in XQuery 1.0 processor, and you can transform your XML document as well. You have debuggers, project management, database import, and the ability to compare XML files. If you are using Java, C++, or C# to manipulate data in XML, you can generate code containing class definitions for the schema. That is a lot already.

So with all this, what's new with XMLSpy 2008 Release 2?

 XMLSpy

• Very large file support – has been enhanced to work with much larger files. These result in a reduction of memory consumption by up to 75-80% as compared with the prior version when opening and validating XML documents in text view. This now means that you can work with files 4 to 5 times larger than before. This will be very beneficial to those with databases and other large applications.

• Detailed find-and-replace in XML Schema editor – now adds to the robust find-in capabilities that already exist in XMLSpy by adding the ability to find-in Schemas. Here you can find within single schemas and across complex multiple schemas as well.

• Enhanced XSLT details in info window – now places an XSLT tab in the XMLSpy info window which provides information for developers working with XSLT stylesheets. This tab allows you to view the associated schema and XML Instance files as well as any included or imported XSLT documents. The toolbar buttons allow you to organize some or all of the files into an XMLSpy project or even add the files to a ZIP archive.

• New XSL Outline entry helper window – complements the XSLT tab and aids in the optimization of XSLT development. When working with a XSLT 1.0 or 2.0 stylesheet, it lists the templates and functions in the current XSLT file as well as those in any included or imported file. Here you can view or edit each template's mode, priority, and associated comment directly in the XSL outline window.

 XMLSpy

• Support for Java, C#, JavaScript, and VBScript in XSLT 1.0/2.0 engines – now allows those who embed program code in Java, C#, JavaScript, or VBScript to add advanced functionality to their XSLT stylesheets. Now, not only can you take advantage of XMLSpy's XSLT editing and transformation capabilities, but you can also test, perfect, and optimize them using the XSLT debugger and XSLT profiler.

• Support for SOAP 1.2 – now allows you to create and test Web Services messages using SOAP1.2 by checking the appropriate box in the SOAP request settings dialog.

• Project generation for Visual Studio 2008 – gives you the option to generate a Visual Studio 2008 project file when generating C# or C++ code in XMLSpy.

• Visual Studio integration extended to include Visual Studio 2008 – now offers seamless support into Visual Studio 2008.

 XMLSpy

XMLSpy 2008 is available from Altova. It is $1090.00 USD for the Enterprise version and $539 for the Professional version. Still unsure, you can download a 30 day trial version as well.

If you work with XML with any regularity then you need to do yourself a favor and check out XMLSpy 2008. Right out of the box it will begin to save you time and money in making sure that your data is correct and allowing you to see your data in a whole new way. As you progress in your learning of XMLSpy 2008, you will find yourself using more and more of the toolset and becoming even more productive. I highly recommend XMLSpy 2008.

 

Monday, July 21, 2008

Software Review - NetAdvantage For .NET Suite- NetAdvantage AppStylist 2008 Volume 1 From Infragistics

Written by T. Michael Testi

 

This is the third part of a three-part series that will cover what is contained in the NetAdvantage For .NET Suite. The three products are NetAdvantage for ASP.NET, NetAdvantage for Windows Forms, and NetAdvantage AppStylist. You can go online to explore more about the products in this suite. The goal of this series it to define what each product does and what it can do for you.

Infragistics over the years has positioned itself as a leader in the development of the presentation layer technologies. By creating high quality, reusable presentation layer tools for ASP.NET, Windows Presentation Foundation (WPF), Tablet PC, and Java Environments, they are able to provide their customers with the ability to accelerate the development process by reducing development time.

NetAdvantage AppStylist

The NetAdvantage For .NET Suite is compatible with Visual Studio 2008, and Visual Studio 2005. It works with Microsoft Windows XP and Vista. Infragistics products are subscription-based which gives you updates and upgrades for the period of the license, usually one year. So when you see the terminology "2008 Volume 1", this means it is the first release for this release of the product for that year. The license is also developer-based which means that the developer can install it on more than one machine, but they are the only one who has the right to use the license.

So what is NetAdvantage AppStylist? It is a revolutionary product that lets application developers and graphic artists peacefully coexist within a company. It allows each to do their job without stepping on or getting in the way of the other. It allows one to determine and develop the functionality while the other designs the look and feel and branding.

NetAdvantage AppStylist is really two products in one. One is for ASP.NET and the other is for Windows Forms. It is a standalone application that works outside of the Microsoft Visual Studio IDE and therefore allows visual designers to create and edit style libraries for use with these Infragistics products. It is meant to allow graphic designers to collaborate more efficiently with developers in creating polished, professional applications.

The Application Styling Framework (ASF) divides the space between the developer space and the designer space to let each accomplish their tasks. The designer should not be concerned with how the developer implements the design and the developer should not be concerned with any aspect of the look and feel of the application. By reducing the job cross-over, NetAdvantage AppStylist can speed development.

Some of the features of NetAdvantage AppStylist include

• Styling similar elements – such that when a graphics artist wants the column headers on a table to appear like the column headers in a list or tree without having to re-specify these setting for each control, they now have that ability from within their own IDE.

• Target components by type – will let a regular appearance to be applied across all controls of a particular control type without the developer having to tediously go in and change all of the properties within an application.

• Target individual instances – lets you change individual instances of a control type to look different than the others all without the developer having to change anything within the application.

• Coexistence with the Infragistics Object Model – In Windows Forms it merges its style settings with those of the control at appearance resolution time. On the Web, it is based on the client machine as part of their browser's routine CSS class resolution.

NetAdvantage AppStylist

NetAdvantage AppStylist For Windows Forms will make the graphics artist feel right at home and allow them to become productive much more quickly through tooling that has been designed to work like the graphics media programs that they are already familiar with.

To work with NetAdvantage AppStylist you create/open a style library and base a new style library on an existing template. You can then customize the color palette of the style library. In the past, these color changes would need to have been coordinated between the graphics and applications designers, which really means that when the graphics designer wanted a change, the developer would have to stop work and make these modifications.

Then, to see the results of the changes, the graphics designer would have to wait until a test build has been completed to see the results. Now, in NetAdvantage AppStylist the graphics designer has access to every control and UI interface available so they can see what things will look like.

Once everything is complete, the graphics designer saves the style as an .isl file which the application designer then includes into the Windows Forms code. The developer then can implement it with as little as a single line of code: Infragistics.Win.Appstyling.StyleMangager.Load("MyStyle.isl");

When the application starts running, the appearance is defined by the new Style Library. Throughout the system, all controls are now updated to use the new styles without the possibility of errors or missed controls. If the graphics designer changes their mind on something, they just present an updated .isl file.

By technological differences, NetAdvantage AppStylist For ASP.NET works a little differently from the Windows Forms version. Here the style libraries are folder-based instead of file-based. Designers use .wsl files that describe the contents of their style library, but because the style library is now composed of separate .CSS and image files organized by style set and control type, style libraries can span multiple files in a nested folder structure.

NetAdvantage AppStylist

Those appearance settings that can be styled for the Web conform to the style properties as defined by CSS and supported by major browser vendors. By defining a style using a Web site's web.config file, the new style can be set without ever taking down the site or rebuilding it.

From there the workflow is basically the same as it was with Windows Forms. You begin with a template and modify it to the look and feel that you want. You then save the .wsl file and then update your site to take advantage of it.

I think that this is a tremendous addition to anyone using either NetAdvantage for ASP.NET or NetAdvantage for Windows Forms. Even if you are not using a graphics designer and the developers are doing the layout, this will be a tremendous productivity boost to anyone.

There are two licenses that you can purchase NetAdvantage AppStylist. First is with Priority Support for $1,195.00 USD, and Standard for $695.00 USD. For the Studio it is $1,490.00, and $995.00 respectively. Priority support includes one year of priority phone, 24-hour chat and rapid response online support. As an added bonus, with either license, along with the updates, upgrades, and product releases, you also get the C# code for all ASP.NET tools and designers. You can even download an evaluation copy. There are no features disabled during your evaluation period.

If you are tired of having to repeatedly go back and forth with designers on your ASP.NET or Windows Forms application interfaces, having to spend more time then you want on the look and not enough time on what really counts—the product—then I highly recommend you take a look at Infragistics NetAdvantage AppStylist.

Wednesday, July 16, 2008

Software Review - NetAdvantage For .NET Suite- NetAdvantage For ASP.NET 2008 Volume 1 From Infragistics

This is the second part of a three-part series that will cover what is contained in the NetAdvantage For .NET Suite. The three products are NetAdvantage for ASP.NET, NetAdvantage for Windows Forms, and NetAdvantage AppStylist. You can go online to explore more about the products in this suite. The goal of this series it to define what each product does and what it can do for you.

Infragistics over the years has positioned itself as a leader in the development of the presentation layer technologies. By creating high quality, reusable presentation layer tools for ASP.NET, Windows Presentation Foundation (WPF), Tablet PC, and Java Environments, they are able to provide their customers with the ability to accelerate the development process by reducing development time.

The NetAdvantage For .NET Suite is compatible with Visual Studio 2008, and Visual Studio 2005. It works with Microsoft Windows XP and Vista. Infragistics products are subscription-based which gives you updates and upgrades for the period of the license; usually one year. So when you see the terminology "2008 Volume 1", this means it is the first release for this release of the product for that year. The license is also developer based which means that the developer can install it on more than one machine, but they are the only one who has the right to use the license.

NetAdvantage for ASP.NET

So what is NetAdvantage For ASP.NET? It is a toolkit for creating ASP.NET Web-based applications. It contains an extensive set of over 35 visual and non-visual controls including AJAX grids, charts, toolbars, menus, listbars, trees, tabs, and much more.

The NetAdvantage For ASP.NET is a complete toolset for building the presentation layer of your ASP.NET applications. The ASP.NET Controls and components are built on server-side and client-side architectural frameworks. They communicate and interact using JavaScript objects and XML. The server-side is designed to operate within the ASP.NET Framework and much of its functionality is derived from classes, structures, and events in the framework. The client-side objects are implemented as JavaScript functions on the pages that are invoked at the time that each event occurs.

So what is new with NetAdvantage For ASP.NET?

• Full Support for Microsoft Visual Studio 2008 – is new in NetAdvantage For ASP.NET. Included is support for the integrated development environment (IDE), and all .NET controls and components have been tested within this new environment.

• Aikido Framework – is the first release of Infragistics new Web User Framework. It is an architecture built into NetAdvantage For ASP.NET that supports the creation of lightweight, cross-browser, XHTML and CSS-based AJAX controls. Currently based on the Microsoft ASP.NET AJAX extensions 1.0 and ASP.NET 2.0, it is meant to remain aligned with the new ASP.NET 3.5 programming paradigms as they arise. The goals for this framework are to provide high-performance, standards compliance, major browser support, and the ability to make the object model simpler to understand and employ.

• Web Splitter – is a new ASP.NET splitter bar that provides a clean and elegant way to separate content within your Web application. It gives your user the ability to resize, expand, and collapse the content contained with the content pages. You can split horizontally, vertically, and resize your content panes.

• Web Dialog Window – can display as a simple DIV section in your HTML page and is able to bypass many of the pop-up blockers that are present in today's browsers while still appearing to the end user as a pop-up window. You can set the dialog box to behave as a modal or modeless dialog to better control your application. There is a customizable header, and it resizes just like the dialogs on your desktop. YouNetAdvantage for ASP.NET can tell it where you want it to appear on the page. And it takes care of remembering whether the user has minimized, restored or maximized its appearance.

• Web Image Viewer – is a new sliding image control that provides end users with an easy-to-use Web interface for viewing images that can also serve as a navigational control. The images can be oriented horizontally or vertically through a single property setting. There is a custom configurable animation behavior that determines how the images appear as they are scrolled through. It can be data bound to a custom data model that has the file path to use for accessing the images, the target URLs when they are clicked, as well as the tool tip to be displayed.

• ITypedList Data Binding for WebGrid – is a new grid and combo box control that fully support data binding against the ITypedList interface,

• Web Hierarchical Data Source – is a non-visual control that lets you combine disparate data source controls such as SQL data sources, Access data sources, etc. The designer wizard takes you through step-by-step identifying the parent-child relationships. It then exposes the multiple sources as a single data source to other ASP.NET controls.

• Web Chart – adds a tree map chart type. This gives you the ability to display large amounts of data sets as nested rectangles where the size of the rectangle regions correlate to the importance of the data the rectangle represents.

NetAdvantage for ASP.NET Ultra Grid

• Web Slider – is a new control that is an AJAX-enabled track bar that lets you present users with an easy-to-understand way of entering data values that are incremental and are confined within a range.

As with NetAdvantage for Windows Forms, NetAdvantage For ASP.NET, it can seem quite overwhelming when you first begin. Infragistics though, has put together some really good help documents to get you started. In the case for NetAdvantage for .NET Studio, you are provided with a getting started guide and then a developer guide which takes you through the best way to learn the product. Since this is a subscription-based product, you are also shown what you need to do to upgrade your application as new releases are made, as well as how to deploy your application.

NetAdvantage for ASP.NET

There are two licenses that you can purchase NetAdvantage For ASP.NET. First is with Priority Support for $1,290.00 USD, and Standard for $795.00 USD. For the Studio it is $1,490.00, and $995.00 respectively. Priority support includes one year of priority phone, 24-hour chat and rapid response online support. As an added bonus, with either license, along with the updates, upgrades, and product releases, you also get the C# code for all ASP.NET tools and designers. You can even download an evaluation copy. There are no features disabled during your evaluation period.

If you are tired of having to repeatedly design your ASP.NET application interfaces, having to spend more time than you want on the look and not enough time on what really counts (the product), then I highly recommend you take a look at Infragistics NetAdvantage For ASP.NET.

Thursday, July 03, 2008

Software Review: NetAdvantage For .NET Suite- NetAdvantage For Windows Forms 2008 From Infragistics

Reviewed by T. Michael Testi

This is the first part of a three-part series that will cover what is contained in the NetAdvantage For .NET Suite. The three products are NetAdvantage for Windows Forms, NetAdvantage for ASP.NET, and NetAdvantage AppStylist. You can go online to explore more about the products in this suite. The goal of this series it to define what each product does and what it can do for you.

Infragistics over the years has positioned itself as a leader in the development of the presentation layer technologies. By creating high quality, reusable presentation layer tools for Windows Forms, ASP.NET, Windows Presentation Foundation(WPF), Tablet PC, and Java Environments, they are able to provide their customers with the ability to accelerate the development process by reducing development time.

NetAdvantage for Windows Forms

The NetAdvantage For .NET Suite is compatible with Visual Studio 2008, and Visual Studio 2005. It works with Microsoft Windows XP and Vista. Infragistics products are subscription-based which gives you updates and upgrades for the period of the license; usually one year. So when you see the terminology "2008 Volume 1", this means it is the first release for this release of the product for that year. The license is also developer based which means that the developer can install it on more than one machine, but they are the only one who has the right to use the license.

So what is NetAdvantage For Windows Forms? It is a toolkit for creating Windows Forms. It is contains an extensive set of over 50 controls and components that have been designed to provide you with the ability to create modern user interfaces for your Windows Forms applications.

The NetAdvantage For Windows Forms toolset is built on the Presentation Layer Framework (PLF); a layer that resides between the Microsoft .NET Framework, and the NetAdvantage Windows Form Elements. Some of the advantages of providing this layer is that it gives you a more stable, more consistent, and more extensible environment such that you can derive your own classes from any public component class that is not sealed, and it contains a shared set of common assemblies. It also means that once you have learned some of the Windows Form controls, the rest will require little effort.

While it is beyond the scope of this review to go through each and every feature, I will try to provide some highlights to the product. You can check out the Infragistics site to explore a more complete list controls and components. The NetAdvantage For Windows Forms consists of the Toolset which includes the Frameworks, which, as explained above are build upon the PLF, the Code Libraries that are a repository of the .NET objects that augment a given application, the Assemblies that map the control to the DLL, and the Controls and Components that you will include within your application.

The NetAdvantage For Windows Forms gives you the ability to change the look and feel of your controls and components. When learning how to use this package you will be presented with ways to set the visual styles and behaviors by using presets, themes, and appearance objects to your applications.

You can also upgrade your existing Windows Forms projects with NetAdvantage For Windows Forms so that you can make changes where you need to, and add new functionality as time permits.

So what is new with NetAdvantage For Windows Forms?
• Full Support for Microsoft Visual Studio 2008 – is new in NetAdvantage For Windows Forms. Included is support for the integrated development environment (IDE), and all .NET controls and components have been tested within this new environment.

• Vista Veneer now supports on WinTree. – This takes what was provided in version 2007 Volume 3; the Microsoft Windows Vista look and feel for the WinToolbarsManager components, and now provides them on the WinTree control. In the Windows Vista Display Styles include Scolling, Expansion indicators, colors, tool tips, and headers

• Select Nodes from any Level – is now available is to allow users to select as many tree nodes as they want in as many different levels of the tree control. This does not require any additional work on your part. You can manipulate the selected nodes collection based on the tree nodes coming from different levels.

• WinTrackBar – is a totally new track bar control that allows your users to choose values from a range; but not just a single range, rather as many as your application requires. It comes with a full array of looks and feels. If you are using the Office 2007 theme, this includes the ribbon style, and the collapsible Outlook pane. You can also style the control to implement your own Windows Vista track bar.

• New Close Button – has been added to the WinTab and WinTabbedMdiManager controls that will allow you to add tab closing functionality much like is found in Firefox and Internet Explorer tabs; this exists in the newer versions of each where you can have multiple websites open at one time and subsequently close each tab.

NetAdvantage for Windows Forms Ultra Grid • WinListView – has been enhanced to allow end users to resize each column, resize by double clicking the right side of the column header, as well as controlling the resize process through the API. The AutoFitColumns turns this on, and the ColumnAutoSizeMode handles how the control reacts with the double click. By using the PerformAutoSize method, you can auto size whenever you need to.

Is there learning curve to using NetAdvantage For Windows Forms? Of course there is. As with any development product you need to spend the time to learn the it and integrated it into your workflow. This package was build under solid development principles that makes the learning curve diminish as you get deeper into learning the product. There are also a lot of helpful designers like the UltraWinGrid Designer that will help guide you through some of the many choices available.

When you first get into NetAdvantage For Windows Forms, it can be quite overwhelming, but Infragistics has put together some really good help documents to get you started. In the case for NetAdvantage for .NET Studio, you are provided with sections that pertain to the studio as a whole as well as for the NetAdvantage For Windows Forms product. They do a good job of presenting where you need to go to get started learning.NetAdvantage for Windows Forms

There are two licenses that you can purchase NetAdvantage For Windows Forms. First is with Priority Support for $1,290.00 USD, and Standard for $795.00 USD. For the Studio it is $1,490.00, and $995.00 respectively. Priority support includes one year of priority phone, 24-hour chat and rapid response online support. As an added bonus, with either license, along with the updates, upgrades, and product releases, you also get the C# code for all Windows Forms tools and designers. You can even download an evaluation copy. There are no features disabled during your evaluation period.

If you are tired of having to repeatedly design your application interfaces, having to painstakingly change the look and feel of controls and components, or having to spend more time then you want on the look and not enough time on what really counts; the product, then I highly recommend you take a look at Infragistics NetAdvantage For Windows Forms.

Tuesday, May 15, 2007

Microsoft SQL Server "Katmai" Announced

Microsoft SQL Server “Katmai” Builds on Proven Success of SQL Server 2005, Empowering Customers to Manage the Data Explosion
Vision for next release of SQL Server announced at Microsoft’s first Business Intelligence Conference.

read more


(Blogcritics.org , PhotographyToday, ATAEE)

The Standards Way to Do Dynamic Data

Somewhere in between presenting static information graphics and complex, interactive data dashboards there's a need for a way to visualize moderately dynamic data on the web. Oftentimes the solutions you see implemented are clunky, for example, manually creating multiple frames of various data points and uploading them by hand.



read more digg story

(Blogcritics.org , PhotographyToday, ATAEE)

Monday, May 14, 2007

Brian Shaler: "Writing Tools for Digg Users: The Inevitable Digg Effect"

"Digg.com is an ideal target for creating instant gratification content. You can come out of nowhere and have tens of thousands of new users in 24 hours. An inevitable woe is the Digg Effect -- a sign of success and often the key to server failure." Sharing a programmer's experiences with and advice about avoiding the Digg Effect.



read more | digg story

Sunday, May 13, 2007

Book Review - Everyday Scripting With Ruby: For Teams, Testers And You by Brian Marick

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

Everyday Scripting With Ruby is a book that is geared toward the computer user who is not afraid to scale new heights to try to improve their skills. The premise is that people who use computers routinely do many repetitive tasks that would be better offloaded for a computer to do. Often they think that programming it themselves is too hard, and they cannot justify hiring someone to write a program to handle their menial tasks. Using the Ruby language, anyone who is comfortable with a computer can now learn automate these tasks with a little training.

Ruby is an object-oriented scripting language that originated from Japan. It takes some of the best features from some of the best languages and combines them to make a simple and easy to use yet powerful system for processing tasks. It is freely available as open source software and is available on many platforms including Windows, Mac OS X and Linux.

Everyday Scripting With Ruby targets three audiences. First the "Tester," the person who is involved with the development of software but thinks that programming is too hard. The second target audience is the "Analyst" or someone who manipulates a lot of data. With Ruby scripts, they can automate mundane tasks and free up more time for more rewarding things. Finally, this book is for the programmer who hates to use complex programming languages to accomplish these smaller tasks.

The book is divided into an introduction and five sections. The introduction and getting started section is an overview of what will be accomplished and the best method for success. It will also provides assistance for installing Ruby on a computer and making sure that everything is running correctly. The next sections build four separate projects with the purpose of enhancing the reader's skills and building his or her knowledge of Ruby.

"The Basics" is a project that will teach the reader how to create a system to compare two text file "inventories." The reader is given an old file and then needs to create a new file. The goal is to create a dynamic script, that when run, will note changes in the two files. While the program is somewhat trivial, it teaches a lot of important concepts within the Ruby language without getting bogged down on a complex project. The techniques would be handy for automatically comparing differences in many other files such as logs.

"Growing a Script" is about creating project that "reaches out to a version control system"; in this case the VCS is Subversion, an open source product that saves its files in text. While this would not work for the VCS that I use, it does a fine job of teaching the reader how to manipulate text files.

"Working in a World Full of People" introduces the reader to Ruby's power of Screen Scraping. That is, visiting a website and scraping the data and putting it into a comma separated value file (CSV) that can be used by a spreadsheet or to import into a preferred database program. The programmer can get into some real meaty issues of file manipulation and the use of regular expressions to parse data.

"The Accomplished Scripter" works on a project called "Watchdog" that monitors long running tests and programs. It will teach the reader how to install and configure Watchdog. In this project the reader will be learning how to work with frameworks and modify code to manipulated for custom uses. The project teaches the reader how to send text to instant messengers or email with the status of a project. Here the reader learns how to handle inheritance, working with superclass' as well as subclasses.

"The Back of the Book" contains the glossary, solutions to exercises, and the bibliography.

Everyday Scripting With Ruby is a well written introduction to the Ruby language. While it may be too simple for an experienced Ruby developer, an experienced programmer coming to Ruby would find it easy to read and a good place to learn Ruby incrementally. Some one who is not a programmer by avocation, but enjoys mucking around a computer, will find it a wonderful treat!

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.

Friday, May 11, 2007

Book Review: Rails Cookbook by Rob Orsini

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

Rob Orsini opens his book Rails Cookbook by saying that Ruby on Rails has revolutionized the process of developing web applications and has enabled web developers to become much faster and more efficient, which allows for quicker application development. It is my opinion that the O'Reilly Cookbook series has done the same for software development. The fact is that it allows developers to become faster and more efficient, which allows for quicker development by providing time tested tricks and pearls of wisdom; exactly what you need when you need it.

Rails Cookbook is meant for someone with web development skills, but who may be new to Rails. It is also for those who are trying to learn new techniques in Rails and want a clear, concise method to learn it without having to read an entire book. In this cookbook there are over 170 recipes broken into 15 chapters. Together they provide a wide range of solutions that will help you test, debug, and improve your application.

In "Getting Started" you will learn how to install, update and set up version control with Subversion. "Rails Development" will show you how to begin development in Rails by creating a rails project and introducing other add-ons to make development more efficient.

"Active Record" shows you how to set up a relational database to use with Rails as well as working with the concept of Active Record which allows you to define the logic of your domain model using Ruby. "Action Controller" teaches you how to handle the incoming requests and how they hand off each request to a particular action. "Action View" completes the triumvirate of the Model-View-Controller (MVC) pattern by showing how the data is presented to the user.

"RESTful Development" explores the Rails world of building full-featured web services within the Rails environment. "Rails Application Testing" shows how being proactive in the approach to testing comes by writing the tests before you write the code - by thinking about what the code should not do, then creating a test to make sure that it doesn't.

"JavaScript and Ajax" ensures that the power of Rails makes it easy to deal with JavaScript and Ajax as well as some of the common effects that you can achieve using them. "Action Mailer" shows you how to set up an application to send emails as well as responding to incoming emails. "Debugging Rails Applications" will help ease the pain of debugging an application. You will learn of the many powerful tools that Rails gives to you to combat bugs.

"Security" covers things like SQL injection and Cross-Site Scripting (XSS) as well as securing ports. "Performance" will help you diagnose speed problems using HTTPerf to measure your web server performance, benchmark your code, and help you figure how best to work with page caching. "Hosting and Deployment" gets you over the hump of deploying a Rails application.
"Extending Rails with Plug-ins" shows you how to extend your Rails application by installing third-party software to accomplish tasks that the Rails framework was not designed to handle. Lastly, "Graphics" will help you to upload, store and display images using a database as well as aid in generating PDF files from a variety of source data.

Rails Cookbook will guide you through the traps and pitfalls of Rails development by providing you with the building blocks of source code to make any Rails application complete. The book will be an essential addition to your programming library.

Book Review: Programming WCF Services by Juval Löwy

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

Windows Communication Foundation (WCF) is a software development kit for developing and deploying services on Window. WCF, previously codenamed "Indigo," is a communication system to enable applications, in one machine or many machines connected by a network to communicate. It has been introduced as part of Microsoft's .NET Framework 3.0.

WCF is really a lot of things to a lot of people. To the Web Service developer, it is the ultimate interoperability solution. To the distributed application developer, it is the easiest way to make remote or queued calls. To the systems developer, it is the next generation of productivity-oriented features such as transactions and hosting that provide off the shelf plumbing for applications. To the Application developer, it is a declarative programming model for structuring the application. To the architect, it is how one can finally build service-oriented applications (SOA).

A WCF Service is composed of three parts: a Service class that implements the service to be provided, a host environment to host the service, and one or more endpoints to which clients will connect. All communications with the WCF service will happen via the endpoints. The endpoints specify a contract that defines which methods of the service class will be accessible via the endpoint; each endpoint may expose a different set of methods.

Programming WCF Services will teach you how to design and develop SOA-WCF-based applications. You will learn how to take advantage of built-in features such as service hosting, instance management, disconnected queue calls and security. Programming WCF Services breaks down into ten chapters and three appendixes. You will need to be an experienced developer who has a fair understanding of .NET and C# 2.0. You will need .NET 2.0 and Visual Studio 2005 as well as the .NET 3.0 SDK and .NET 3.0 extensions for VS 2005.

Chapter one, WCF Essentials, begins by explaining what WCF is, its concepts and building blocks. It then concludes with I discussion of the WCF architecture which is really the whole key to everything that is enabled through the remaining book. If you are unfamiliar with SOA, then you should read appendix A, An Introduction to Service-Orientation.

Chapter two, Service Contracts, is geared for describing how to design and work with service contracts. You will learn how to design and factor contracts that cater to reuse. Chapter three, Data Contracts, is dedicated to how the client and service can exchange data without ever actually sharing the data type itself or using the same development technology.
Chapter four, Instance Management, deals with answering which service instance handles which client's request. It provides the rationale for each of the instance management modes. Chapter five, Operations, works with the types of operations that clients can invoke on a service and the related design guidelines you will need to handle.

Chapter six, Faults, explains how services report errors and exceptions back to their clients. It also discusses the best practices of error handling and how you can extend and improve the basic error handling mechanism. Chapter seven, Transactions, covers the motivation for transactions in general as well as the many transactional services.

Chapter eight, Concurrency Management, describes the declarative way WCF offers for managing concurrency and synchronization for both client and service. Chapter nine, Queued Services, shows how your clients can queue up calls to services, thus enabling asynchronous disconnected work. Chapter ten, Security, demystifies SOA security by breaking down this multifaceted task into its basic elements.

Appendix A, Introduction to Service-Orientation, will give you the background needed to understand the overall concept of this book and to expand to a more detailed description of SOA and how to implement it. Appendix two, Publish-Subscribe Service, presents the authors framework for implementing a publish-subscribe event management solution. Appendix C, WCF Coding Standard, is a consolidated list of all the best practices along with the do's and don'ts to help you get off on the right foot.

A couple of points about Programming WCF Services, first, this isn't a beginners book; the author dives down into advanced material in spots almost without notice. If you are uncomfortable with this you may want to start with a more basic attempt first, whether from the web or from another book. That being said, if you want to become proficient using WCF, you will be buying this book eventually. You will find that this book will become both a reference as well as well as a guide.

The book is well thought out and presented. Löwy places the focus on the how and why of programming WCF without the hype of the technology. He gives you information that is not readily available anywhere else, and has given well engineered examples that will provide you the correct methods of working with WCF.

If there was one thing missing to this book is a contextual reference for existing users of previous distributed technologies. That is background on how this relates back to Web Services, Remoting, COM etc. All pretty minor overall.

If you are serious about getting on the next wave of distributed SOA and Interoperability, then Programming WCF Services will take you to the next level. The book is filled with examples and will guide you along until you are creating professional WCF services. If you want to go to the next level of WCF then Programming WCF Services is a great place to get started.

Book Review: Webbots, Spiders and Screen Scrapers by Michael Schrenk

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

According to the Michael Schrenk, the internet is bigger and better than what a mere browser allows. Webbots, Spiders and Screen Scrapers was written to show you how to take advantage of the vast resources available on the internet. When you are regulated to the world of a browser, you are limited in what is available to you. Webbots, Spiders and Screen Scrapers goal is to open up the Web and enhance you online experience.

What is the problem with browsers? It is a manual tool that downloads and renders websites. You still need to decide if the website is relevant to you. Your browser cannot think. It cannot anticipate your actions and won't notify you when something important happens. To accomplish this, you will need the automation and intelligence only available in a webbot; also known as a web robot.

Webbots, Spiders and Screen Scrapers contains 28 chapters that break down into four sections. I will focus on the four sections highlighting the chapters as needed. What you will need to work with this book is a fundamental understanding of HTML, and how the internet works. It should be known that this book is not going to teach you how to program, or how things like TCP/IP; the protocol of the internet work. Pretty much any kind of Pentium computer running Windows, Linux or Mac operating system will do. You will also want to get PHP, cURL and MySQL, all of which are free on the internet. Again, this book will not teach you how to use these products, but rather use these products to teach you how to create webbots, spiders and screen scrapers.

Part one, "Fundamental Concepts and Techniques," introduces the concepts of web automation and explores the elementary techniques that will allow you to harness the resources of the web. It begins by explaining why it is fun to write webbots and how writing webbots can be a rewarding career. It tells where you can get ideas for webbot projects and talks about existing as well as potential webbot projects. You will learn how to download web pages, parse those pages, automatically submit forms, and how to manage large amounts of data. All of these topics will set you up for the rest of the book.

Part two, "Projects," expands on the concepts that you learned in part one. According to the author, with further development, any of these projects could be transformed in to a marketable product. The projects include; Price-monitoring webbots where you can collect and analyze online prices from any number of websites. There is an image-capturing webbots that will download all of the images from a website as well as a Email reading an email sending webbot. All in all there are eleven projects included in part two.

Part three, "Advanced Technical Considerations," explores the finer technical aspects of webbots and spider development. Here the author shares some hard learned lessons while teaching you how to write some specialized webbots and spiders. Here you will learn about spiders; a webbot that finds and follow links both within a website as well as those that crawl along the web searching out specific information. You will learn how to create snippers; webbots that automatically purchase items from places like auction sites when a specific set of criterion has been met. You will also find out how to deal with cryptography, authentication and scheduling.

Part four, "Larger Considerations," advises you on being socially responsible with your webbot development. Webbots need to coexist with not only society, but with the system administrators of the sites that you target. You will learn how to create webbots with stealth; webbots that look like normal browser traffic. You will also learn how to write fault tolerant webbots. Because the web changes constantly, your webbots will need to handle these changes. You will also learn how to create webbot friendly websites, writing pages that can be made secure from other spiders to protect sensitive data and how to keep your own webbots out of trouble.

Webbots, Spiders and Screen Scrapers is a great book for learning about webbots and spiders and how they work on the web. It will introduce you to a wide variety of topics via the projects and you will be able to understand how the different technologies work.

I have one main complaint and one warning. First the complaint, in chapter 27, "Killing Spiders," we are told about robots.txt which is meant to keep spiders from trampling sensitive pages. Then we are told that we really shouldn't use them because that the use of Robots.txt is strictly voluntary, and that it might alert others to where the sensitive material are. I felt confused. If I don't use a robots.txt, other webbots will be trampling my site and if I do use it, I leave my self open for attack.

The warning begins on page four: "You may use any of the scripts in this book for your own personal use, as long as you agree not to redistribute them... and agree not to sell or create derivative products under any circumstances." This is total contradictory to what the author says on page 75; "Any of these projects, with further development, could be transformed from a simple webbot concept into a potentially marketable product." I'll leave it to you to determine what he means.

Webbots, Spiders and Screen Scrapers, is a great book for the beginner to intermediate user of PHP and for someone who wants to get into web agents. It is a good overview and tutorial on the topics of webbots, spiders and screen scrapers and will have you understanding and programming them in no time.

Thursday, May 10, 2007

Book Review: Build Your Own Web Site The Right Way Using HTML and CSS by Ian Lloyd

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

Trying to create a web site can be a pretty daunting task, especially if you have never done it before. When my son's swim team asked me to do theirs, I was a bit intimidated. I was a application programmer and I had worked on some website stuff, but the web is a different beast. The questions were many: what tools do I need? how do I layout my pages? do I use tables? HTML tags to directly apply formatting?

One could use FrontPage or a similar product to automatically generate the web site, but that was never my style. I would have to go old-school. I wish I would have had Build Your Own Web Site The Right Way back then.

Build Your Own Web Site The Right Way is geared for the absolute beginner to web site design. However, you should be comfortable with a computer, you should use the web a lot, have seen a lot other sites, have a good grasp on what you want for your own site. HTML stands for HyperText Markup Language and it is the language that generates web pages. CSS stands for Cascading Style Sheets and it is what is used to format those pages.

Build Your Own Web Site The Right Way is set up into eleven chapters and an appendix. Chapter 1, "Setting up Shop," explains what tools you will need to get going. While you can buy tools to use, the author shows you how you can also get them for free.

Chapter 2, "Your First Web Pages," will teach you what makes a web page. You will learn about XHTML — the latest version of HTML — and about the basic requirements for creating a properly formed web page.

Chapter 3, "Adding Some Style," will introduce you to CSS. You will learn how to apply CSS to add color, change fonts, and generally improve the appearance of your page.

Chapter 4, "Shaping up with CSS," builds on chapter three to teach you about border styles and more advanced page layouts. You will even learn how to position elements using CSS.

Chapter 5, "Picture this! Using Images on your Web Site," teaches you all about image. You will learn about inline images, background images, as well as learning how to make images accessible for your blind surfers.

Chapter 6, "Tables: Tools for Organizing Data," will show you when it is proper to use tables, and especially when they should not be used. You will learn how to use CSS to make your tables more visually appealing.

Chapter 7, "Forms: Interacting with your Audience," will teach you about the proper use of forms to collect data from your user. Lloyd also shows how to use a free service to have data emailed to you!

Chapter 8, "Getting your Web Site Online," is all about getting your site hosted, uploaded, and presenting it to the world. Here the pros and cons are examined to see what approach will be right for you.

Chapter 9, "Adding a Blog to your Web Site," will show you how to do just that: create your own blog. You probably have an idea of what a blog is; a way to interact with other people. Whatever you think about this review, you can tell me in the comments. If you think I should have said more, or didn't like something that I said, you can tell me. I can then turn around and respond. Neat stuff!

Chapter 10, "Pimp my Site: Cool Stuff you can Add for Free," will have you spicing up your site with carefully executed cosmetic touches that won't break the bank.

Chapter 11, "Where to Now? What you Can Learn Next," will summarize the skills that you have learned as well as to provide a listing of sites that can take you to the next level.
The Appendix is an XHTML Reference guide that provides information on the elements that you are likely to use.

What I like about Build Your Own Web Site The Right Way is its quick and easy pacing, subtle humor, and straightforward manner. While this may be a beginners book, even the more seasoned of us learned, or perhaps I should say un-learned, quite a number of things along the way.

Book Review - SQL Hacks by Andrew Cumming and Gordon Russell

by T. Michael Testi (Blogcritics.org , PhotographyToday, ATAEE)
SQL Hacks works well because of the fact that it does what it says. It hacks. It gets in to SQL and shows you how to do things that you would have to, in many cases, search for hours to find out how to accomplish. This is not for the beginner, rather these books target more experienced users.

It is a collection of 100 hacks that, according to the authors, will help you to “get the job done”. They are not concerned with good database design or sticking to the rules. Their goal is to give you a better understanding of the breath of SQL and how different approaches to a solution can result in simple and elegant solutions.

This is titled SQL Hacks, because the authors have worked to make this volume and vendor/platform independent as possible. When there are differences, they take the time to reference back to SQL Server, Oracle, MySQL, PostgreSQL and MS-Access when applicable.
While it would be time-consuming to list more than a few hacks, to give you an idea of the scope of the book, I will illustrate a few. There are some simple ones such as number 15 "Search for Keywords Without LIKE". Using the keyword LIKE will give you matches where an exact match is found. But what if you wanted to search for partial matches with a resulted weighting for the matches? Hack number 15 gives it to you. Since each of the major SQL systems do it differently, the authors show you how to do it with each of them.

A more complex Hack is number 41; "Copy Web Pages into a Table". Here the authors spend almost seven pages showing you how to use XSLT processing to take a web page and extract the data you require and insert it into a SQL Database.

The book is broken in to 12 chapters as listed below.
Chapter 1, SQL Fundamentals (6 hacks)
Chapter 2, Joins, Unions, and Views (8 hacks)
Chapter 3, Text Handling (4 hacks)
Chapter 4, Date Handling (5 hacks)
Chapter 5, Number Crunching (17 hacks)
Chapter 6, Online Applications (8 hacks)
Chapter 7, Organizing Data (9 hacks)
Chapter 8, Storing Small Amounts of Data (6 hacks)
Chapter 9, Locking and Performance (13 hacks)
Chapter 10, Reporting (13 hacks)
Chapter 11, Users and Administration (7 hacks)
Chapter 12, Wider Access (4 hacks)

To me, SQL Hacks is the classic reference book that you need to keep on the shelf, close at hand for those little jobs that come up and just need to get done. It also serves the purpose of giving you new ideas for solutions that perhaps, you may have thought could not be done.

Tuesday, May 08, 2007

Book Review: XQuery by Priscilla Walmsley

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

As increasing amounts of data are stored, processed and exchanged using XML, the ability to access that data in an efficient, organized, and streamlined manner becomes ever so necessary. In the traditional data world, the standard is by using a SQL query, and as of January 2007 in the XML world, we officially have XQuery.

Written by Priscilla Walmsley, XQuery is for query writers who are familiar with XML basics, but perhaps not skilled in other XML-related technologies. It is both a tutorial as well as a reference book. It covers namespaces, schemas, built-in types and regular expressions. It also covers XQuery's support for filtering, sorting, and grouping data as well as how to use FLWOR expressions, XPath and XQuery tools for extracting and combining information.

While the book breaks out into 25 chapters and three appendixes, I will break it down in to its six functional areas. The book is approximately two-thirds's tutorial and one-third reference. It uses a running example that reflects many XML structures.

Chapters 1-2 are a high level overview of XQuery. In these chapters the author goes through what XQuery is, what it can do and lays out the example structures that will be used thought the book. She explains the design of the language as well as the data model.

Chapters 3-9 explore how to write fairly sophisticated queries with out using namespaces and schemas. Here she gets in to the building blocks that will be used to create your queries; that is, things like keywords, whitespace, function calls, and variables. You will learn to navigate input documents using paths, adding elements and attributes to results, selecting and joining using FLWOR's expressions, sorting and grouping, as well as advance queries.

Chapters 10-15 provide advanced concepts for those who want to take advantage of modularity. You will also look at XML namespaces, types, nodes and atomic values as well as learning about queries, prologs, and modules. You will get into schemas, static typing and the overall principles of query design.

Chapters 16-23 introduce advanced concepts for those who want to work with specific types of data, like numbers, strings, dates, URI's and processing instructions. There is discussion on working with other XML components such as documents, text nodes and CDATA as well as implementation -specific features such as serialization parameters.

Chapters 24-25 describe XQuery's relationship to SQL and XSLT by comparing SQL syntax with XQuery syntax and showing how to combine the two when it would be advantageous. The author also goes into XPath and XSLT and how they compare to XQuery.
There are three Appendixes; A which contains a built-in function reference, B covers the built-in types, and C provides a listing of error messages.

There is a lot of information contained in XQuery and it is obvious that Priscilla Walmsley both knows her topic, and is quite clear, concise and well versed on presenting the information in a logical style. While the book is aimed at the XQuery novice, it's usefulness as a desk reference makes it one of those books that you get to learn the topic, but keep forever.

Book Review - Ruby Cookbook by Lucas Carlson and Leonard Richardson

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

In the Ruby Cookbook preface, the authors begin by saying "Life is Short." Following with, and I paraphrase, "This book is meant to save you time… but a span of time is also a piece of your life. Our lives are better spent creating new things than… trying to solve problems that have already been solved." The authors hope that by writing this book, they can save you much more of your time than they spent creating the book. As has been my experience with the Cookbook series, their hope is well founded.

Ruby Cookbook is geared toward those who have some experience with Ruby or those who have a strong general background in other programming languages and are wanting to learn Ruby. If you are familiar with a number of programming languages, studying through the first ten chapters should get you up to speed quite nicely.

Ruby is an object-oriented scripting language that originated from Japan. It takes some of the best features from some of the best languages and combines them to make a simple and easy to use yet powerful system for processing tasks. It is freely available as open source software and is available on many platforms including Windows, Mac OS X and Linux.

The Ruby Cookbook contains 23 chapters broken down into loosely six functional areas; Data Structures, Idiom and Philosophy, Storing Data, Applications, Programming Techniques, and Miscellaneous Techniques. You won't find these titles explicitly listed in the book, but for organization (and so I don't have to step through each chapter) I will present, my discussion using them. Each recipe begins with a problem statement. It then follows up with the solution so if you want, you can be done and get on with your life. There then is a discussion if you want to learn more about the solution. It ends with a "See Also" which will give you addition information if the discussion is not enough.

In data Structures (chapters 1 thru 6), the authors cover the built in data structures used by the Ruby language. They cover strings, numbers, dates and time, arrays, hashes, files and directories. These deal with strict algorithmic problems. Some are as simple as 1.10's "Changing the Case of a String", some are more complex such as 4.15's "Partitioning or Classifying a Set" in which you want to partition an array based on some attribute of its elements.

Idiom and Philosophy (chapters 7 thru 10) covers items that you may encounter when you cannot get the Ruby language to do what you want. You will learn things like iteration, blocks and callbacks. You will explore objects and classes, working with superclasses and abstract methods, modules and namespaces as well as reflection and metaprogramming.

In Storing Data (chapters 11 thru 13) you will focus on how to work with three popular forms of data storage; XML, HTML, graphics and database. You will extract data from a tree structure, convert from one encoding to another as well as convert an HTML Document to a text document. You will learn how to thumbnail images, present graphing data as well as generate PDF files. You will work with YAML, MySQL, and Berkley DB as well as learning how to prevent SQL Injection attacks.

Applications (chapters 14 thru 16) will explain how to work with internet services, web development and web services. Here you will explore sending/receiving mail, working with FTP and CGI. They explain working with Ruby on Rails development as well as interacting with sites such as Amazon and Flickr. They will show you how to creat a jukebox, a whiteboard and how to charge a credit card.

Programming Techniques (chapters 17 thru 19) tend to auxiliary tasks of programming such as testing, debugging, packaging and automating tasks. You will be shown how to create and run unit tests, how to use external resources and how to profile your application. You will learn how to package and distribute your Ruby application as well as automate tasks with Rake. Miscellaneous Techniques (chapters 20 thru 23) complete the package with items such as multitasking/multithreading, user interface, extending Ruby and system administration.

Will you have need for all 300 plus recipes in this cookbook? Probably not…today, but perhaps soon! With over 800 pages, there is something for everyone.

Tuesday, February 06, 2007

Book Review - The Book Of JavaScript - 2nd Edition by Dave Thau

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

In his second go-around with The Book Of JavaScript, Dave Thau has knocked another one out of the park. The first book, published in January of 2000, while an incredibly good book, was showing its age. To say a lot has happened in the past seven years with regard to web development techniques would be an understatement. This book was long overdue.

For those who do not know, JavaScript is the technology that allows web pages to be dynamic, interactive and more flexible. There are other technologies such as CGI, VBScript and Flash, but these have limitations and are many times useful only in specific situations.

Make no mistake, this book is geared for the beginning user, but I think that there is also a lot for the more experienced user, as well as for those who are in need a refresher. The Book Of JavaScript is broken down into 18 chapters and 4 appendices. Major topics include: working with variables, browsers, rollovers, windows, timing, frames and image maps, validation, cookies and dynamic HTML. There is also over 150 pages that cover the new AJAX technology.

What I like about this book is that every topic is well written and covered in-depth. For example, in chapter seven, Thau explains about working with forms. He takes you from writing HTML forms, reading from the forms, writing to forms and triggering events from form elements. He goes into the use of the keyword “this” as well as using the “id” attribute and retrieving it using the JavaScript function getElementByID(). Each topic addressed and built upon in a logical progression.

Chapter 13 takes us in to the world of dynamic HTML or DHTML. He explains clearly what it is, why it is useful, and shows websites that make use of it. He explains how to use JavaScript to manipulate divs to make DHTML. Understanding that DHTML too big of a topic to cover here, he goes into it enough to give you the basics for use with AJAX.

The next two chapters are devoted to Asynchronous JavaScript and XML or AJAX. This is the new technology that allows web pages to act more like desktop applications. By the use of DHTML and the ability to download and display information, we can now present screens to the user that do not have the familiar submit and wait cycle.

At the end of each chapter is a summary and an assignment for you to practice your new skills. Instead of a companion CD, there is a companion website for this book. It contains all of the examples used in the book as well as freeware for use with JavaScript.

The author, Dave Thau, has been creating internet applications since 1993. He has taught programming to hundreds of artists, engineers and children. He is currently working toward a Ph. D in computer science at the University of California, Davis.

I find that this book is a very easy read. It is easy to understand and use. If you are new to JavaScript, if you want to refresh skills, The Book Of JavaScript is a great place to get you up to speed.