Domain: mac.com
Stories and comments across the archive that link to mac.com.
Stories · 321
-
Essential Mac OS X Server Administration
norburym writes " Essential Mac OS X Server Administration, written by Michael Bartosh and Ryan Faas, has been eagerly anticipated by the OS X Panther Server community. The wait is finally over and the authors have satisfied their audience with a meticulously written and detailed volume on OS X Server administration. This is not a book for the beginner: if you're an IT professional with an OS X Server deployment and want to gain a thorough understanding and appreciation of integrating Panther Server into your particular environment then this book will fully meet your expectations. Bartosh and Fass present a complete exploration of OS X Server software and services and client considerations between the covers of a volume essential to any systems administrator responsible for a cross-platform network." Read on for Norbury-Glaser's detailed review. Essential Mac OS X Server Administration author Michael Bartosh and Ryan Faas pages 848 publisher O'Reilly rating 9 reviewer Mary Norbury-Glaser ISBN 0596006357 summary Essential Mac OS X Panther Server AdministrationMichael Bartosh, President of 4am Media, Inc. (formally an Apple Systems Engineer), is a Mac OS X consultant and trainer specializing in cross-platform directory services integration. He is the main author of Mac OS X Server Administration, having written Parts I through VI. Ryan Faas is the Mac columnist for Computerworld and has extensive experience with integrating Macs in cross-platform networks and contributed Part VII, "Client Management," to this volume.
The authors divide the book into seven main parts covering server installation and management, a variety of services (directory, IP, file, security, and Internet) and client management. An appendix offers an extremely concise and clearly written introduction to directory services. Part I discusses planning and designing the server environment, installing and configuring the OS X Server, an overview of the server management tools, system administration and troubleshooting. Hardware (to XServe or not, supported architecture and performance bottleneck consideration), storage technologies (XServe RAID (Redundant Array of Inexpensive Disks), ATA (AT Attachment, IDE (Integrated Drive Electronics), SATA (Serial ATA), fibre channel, SCSI (Small Computer System Interface), FireWire/FireWire 800, various flavors of RAID), volume partitioning (best practices for maintaining different parts of the file system on different volumes) and particularly network infrastructure (performance, infrastructure and services). The latter is a critical consideration for cross-platform efficiency; basically, "playing nice" with existing and predominant OSes and platform-specific settings on network links.
The next chapter on installing and configuring Mac OS X Server walks the reader through the actual installation process for both the GUI and the command-line options. There are plenty of screen shots for the GUI install but the more attractive aspect of this section is for those administrators who are comfortable with the command-line. This is a terrific example of how the command-line provides far more granular control over installation and configuration options in comparison to the GUI process (if you want an excellent step-by-step introductory narration of the GUI installation then you can't do better than Schoun Regan and Kevin White's Mac OS X Server 10.3 Panther: Visual Quick-Pro Guide published by Peachpit). Bartosh and Faas also include descriptions of network install using Apple's NetBoot technology, ASR (Apple Software Restore) and radmind (remote administration daemon).
Chapter 3 continues with another well-documented section on server management tools: Workgroup Manager (creating users, groups and computer lists, managing the same, managing share points and the oft-ignored...because it's hidden in the application's preferences pane...Inspector), Server Admin (service managing, monitoring and configuration app) and Server Monitor (XServe specific hardware-monitoring app). Again, the best part of this chapter is the inclusion of both graphical and command-line equivalent tools: serveradmin; nicl (used to read data in NetInfo where the share record is stored); sshd, servermgrdhwmon (server management daemons); and a very brief nod to the directoryservice daemon (manages Open Directory) which is covered is more depth in the excellent Appendix.
Chapter 4 is titled, "System Administration" and is a very interesting aside that acts as a forum for author Bartosh's particular philosophies on the approaches and practices that make good bedfellows in a non-homogeneous network environment. Do not read "peculiar" here; Michael Bartosh takes an extremely sensible and ostensibly efficient approach to a difficult and sensitive topic. As Bartosh notes, "The Macintosh is...still a minority platform, and it makes little sense when working to gain acceptance somewhere to ask that organization to make fundamental infrastructure changes in order to support the Mac." His main points include: minimize intrusion into existing infrastructures; focus on the needs and business of your organization; default policy of denial (minimize access points); and minimize change, maximize stability. He also holds forth on software update methods, backup strategies, account management, failover, the diskspacemonitor daemon and watchdog for service monitoring. At the end of the day, this chapter provides an enlightening approach to combining a realistic set of principles with an appreciation of the compromises that must be made to ensure cooperation and success.
The final chapter of Part I involves strategies in troubleshooting Panther Server on a higher plane than merely going through the simple first step of repairing permissions. Again, Bartosh uses this chapter to introduce a more rigorous approach to analyzing and solving problems that often occur during the course of system administration. Bartosh details a structured approach to name resolution: lookupd with query and debug modes, fundamentals of LDAP and OS X directory services, forensic tools (strings, fs_usage, otool, ps, lsof, ktrace, kdump), network tools (netstat, tcpdump) and joiners/filters (grep, | (pipe symbol), awk).
Part II, "Directory Services," requires a thorough read of the Appendix ("Introduction to Directory Services"). Part II is composed of several chapters covering Open Directory Server: identification and authorization, and authentication and replication. This is a complicated topic but Bartosh explains the concepts with skill. He begins with management of Open Directory Server using Server Admin and quickly follows with an overview of roles (standalone, connected to a directory system, open directory replica or open directory master), best practices for creating administrator accounts and a detailed account of how to access an open directory domain.
Chapter 7 consists of an examination of LDAP (lightweight directory access protocol) basics and terminology; Apple's OpenLDAP including the use of Server Admin to manage OpenLDAP settings; a summary of the OpenLDAP server daemon, slapd, and the configuration file, slapd.conf; slapd troubleshooting, OpenLDAP utilities and tools (ldapadd/ldapmodify, ldapsearch and slapcat among others); a breakdown of LDAP data (identification data, authorization data and configuration data) in an Open Directory Master; an explanation of Apple's LDAP Schema and how to query LDAP services using ldapsearch at the command-line or LDaper from the GUI. Bartosh has a knack for taking a conversational tone in his approach to complex subjects: he is able to import the salient points of his extensive knowledge in a casual yet nontrivial manner.
Password Server and Kerberos are both handled in the next chapter. Bartosh provides a detailed treatment of PasswordService (SASL or Simple Authentication and Security Layer), a breakdown of the Password Server architecture (Password Server daemon, config file, main database, etc.), Password Server policies and new policies in Panther Server, use of public key cryptography and Password Server tools including pwpolicy, mkpassdb and NeST (NetInfo Setup Tool). Kerberos basics are fully explained with principal terms defined (realm, KDC, service ticket, TGT, encryption type, etc.) and a stepwise description of the Kerberos exchange mechanism. Also included is a general review of securing Kerberos using preauthentication. Following this is a specific treatment of MIT's Kerberos distribution within Mac OS X Server. Bartosh walks the reader through Kerberos configuration and Kerberizing Mac OS X Server services. He rounds out this chapter by bringing together the Kerberos and Password Server concepts (synchronization of Kerberos and Password Server authentication databases).
The final chapter in Part II involves replication architecture in Open Directory Server, design choices and best practices for deployment. The author uses both a GUI method (Server Admin's Open Directory Settings interface) and the command-line technique (slapconfig) in creating an Open Directory Replica and includes a detailed sequence of events that occur during the replication process. LDAP replication, Password Server replication and Kerberos replication are all discussed in-depth. Not surprisingly, client-side replica discovery is also dissected, including LDAP replica discovery, Password Server replica discovery and Kerberos replica discovery.
Part III is devoted to IP services and examines xinetd and Apple's DNS, DHCP and NAT services. Chapter 10, on xinetd, is very well written with a short history of the evolution of xinetd; configuration using the shell-script service; a description of xinetd architecture; and lists of general options for use with xinetd (id, passenv, port, redirect, groups, etc.), OS X specific options (mdns, session_create) and security-related options (log_on_failure, no_access, access_times, etc.).
DNS (Domain Name System) and the BIND (Berkeley Internet Name Domain) package are the topics of Chapter 11. Obviously an important but difficult concept to grasp but Bartosh does an exceptional job here. New to Panther is the ability to access DNS via a GUI tool and again it's done through the Server Admin interface. The author guides the reader through the process including looking at the DNS logs, the Activity pane and some minimal option settings (zones and logging). A thorough approach is also taken in analyzing the BIND package, the named daemon, the named.conf file, the tools available for troubleshooting (nslookup, dig and particularly host), and advanced configuration options (running named as an underprivileged user, establishing a domain-specific forwarder, change rooting, limiting zone transfers, and providing different host data using views).
The next chapter covers DHCP (Dynamic Host Configuration Protocol) and Apple's bootpd service. The author again provides GUI access instructions to the DHCP service, including screenshots of the various tabs (Overview, Log, Clients, Settings) and an explanation of available options. Troubleshooting, using the bootpd daemon and advanced command-line tools at one's disposal are also included: creating bootpd static bindings and using bootpd to supply other DHCP options (IP address of the NetInfo parent, the default URL to present in a Web browser, local POP3 server, local newsgroup servers, etc.).
Chapter 13, NAT (Network Address Translation), is the final chapter in Part III and follows the established format of providing screenshots of the Server Admin access point for this service, along with architecture (including the natd daemon and the OS X packet filter, ipfw) and advanced configuration options (editing the natd.plist).
Files Services comprise Part IV and includes an overview of creating and managing share points, automounts and home directories; AFP (Apple file protocol) management; Windows file services via SMB (Server Message Block); FTP (File Transfer Protocol), network file system and print services. The services are familiarly managed through Server Admin and Bartosh provides details on each service: accessing each of the GUI tabs (Overview, Logs, Connections, Graphs and Settings) and options within as well as using the command-line equivalents. He consistently provides comprehensive information about each choice, their consequences and alternatives. He also offers interesting asides on the historical evolution of various options (default permissions behavior pre-10.2, for instance) that make the reader appreciate the complexity involved in the development of an innovative system such as OS X Server.
The permissions mapping section in Chapter 15 ("Apple Filing Protocol") has some very well-done representational examples of permissions mapping. Integration of AFP Services in Mac OS X into different shared directory domains is referenced to http://www.4am-media.com/sso/ (which was not available at the time of this writing). The recommended troubleshooting technique is AFP client logging and the author gives stepwise instructions on how to enable AFP client logging through the command-line.
Chapter 16, "Windows File Services" will, no doubt, be a focal point for many administrators. Over the long haul, successful integration of Mac OS X Server into a Windows environment will make or break the OS X Server platform. Apple included Samba in Mac OS X to smooth the way toward assimilating platforms in such a way that it's a fairly seamless experience for diverse clients. Configuration, logging, connections, etc., are viewed and configured through Server Admin with per-share options are managed using Workgroup Manager (share this item using SMB, allow SMB access, custom SMB name, default permissions, etc.). Password Server integration, useful command-line utilities (testparm and smbutil) are also described.
FTP (File Transfer Protocol) is covered in the next chapter in the same format as the other services: both GUI and command-line options; managing FTP using Workgroup Manager; architecture (xftpd, ftpaccess.default); securing FTP (using Kerberos, FTP tunneled over SSH and sftp). An added bonus is an extended section on advanced options when manually editing ftpaccess, ftpconversions, and ftphosts/ftpgroups/ftpusers.
Chapter 18 deals with NFS (Network File System) with some caveats as to the relative insecurity of the service model and UniqueID mismatch issues. NFS File locking, /etc/exports and NFS daemons (mountd, nfsd, rpc.lockd and rpc.statd) are introduced in due course.
Print services is the final topic of Part IV and Bartosh is fairly blunt about the inadequacies found here. Nevertheless, he presses on and covers the subject in much detail. In all honesty, Tiger Server provides vast improvements in this realm and while this Panther section is worthwhile for those interested in how it's peripherally handled in Panther, if you are relying on OS X Server as your primary print server...well, it may be time to upgrade to Tiger.
Part V consists of two chapters revolving around Security Services: Mac OS X Server Firewall and Virtual Private Networks. The firewall chapter begins with a general discourse on how network communications function, a comparison between packet-switched vs. circuit-switched networks, redefining "firewall" in terms of packet filters (ipfw) and a look at ipfw packet filter rules. Bartosh follows this up with a point-by-point, server-specific initialization of Apple's Firewall service. The GUI through Server Admin is set out along with using the Advanced pane to "deny" rules and using the command-line to configure ipfw in order to bypass issues involved with extreme sluggishness experienced when reloading rules. The chapter concludes with specifying rule order, configuration examples in scenario/action format, reporting and monitoring (using ipfw list, serveradmin status, sysctl and /var/log/system.log), and managing the firewall service.
Chapter 21 is a methodical explanation of VPN (Virtual Private Network) vs. other varieties of encrypted connections: SSL (Secure Socket Layer) and SSH (Secure SHell); VPN protocols: PPTP (Point to Point Tunneling Protocol), and L2TP over IPSec (based on the Internet Protocol Security suite). Configuring L2TP/IPSec (via the IPSec daemon, raccoon, and vpnd) and PPTP are more than adequately covered. Logging, client information, Internet Connect, Rendezvous (now known as Bonjour), subnets, and authentication are also included. There is a dearth of OS X VPN instruction/discussion in the wild so it's nice to see it finally included in some detail within the context of OS X Server.
"Internet Services" (Part VI) is dedicated to Mail and Web services and Application servers (Tomcat and JBoss). The section begins with an overview of mail protocols: SMTP (Simple Mail Transfer Protocol); POP (Post Office Protocol); and IMAP (Internet Mail Access Protocol) followed by global graphical management options in Server Admin. Also included here are WebMail via SquirrelMail (open source IMAP client), Workgroup Manager to manage per-user Mail Service options, Postfix (default Mail Transport Agent) as a replacement to Sendmail, and Cyrus (default Mail Delivery Agent). Several valuable additions to this section include: a discussion of migration from legacy or existing mail systems (amsmailtool), backup strategies (BRU by the Tolis group) and content filtering (ClamAV, SpamAssassin).
Apache is bundled into Mac OS X and OS X Server and, with the latter, is integrated with the server tools. All the usual settings are accessed through Server Admin: Overview, Logs, Graphs and Settings. General and site configuration are handled through the Settings tab: setting MIME (Multipurpose Internet Mail Extension) types, configuring the proxy server, adding and removing modules are all available here.
In Chapter 24, Application Servers, Bartosh walks the reader through a comprehensive setup of the Application Server and the configuration of JBoss and Tomcat. He gives a simple introduction to creating a simple JSP page as well as illustrating more complex application scenarios.
The final part of this book, "Client Management," was contributed by co-author Ryan Faas and stands on its own as an excellent accompaniment to Michael Bartosh's coverage of OS X Server in the previous sections. The reader enjoys a complete scope of managing preferences on OS X clients (for users, groups and computer lists), managing both Classic Mac OS X workstations and Windows clients, workstation deployment and using ARD (Apple Remote Desktop). Of outstanding value are: understanding how varying preferences interact, using the Home directory for preference management, mobile accounts preferences, using Mac Manager to manage Classic Mac OS Workstations (Mac Manager share points and folders, creating workgroups, defining workgroup printers, disabling login for a computer list, security options for computer lists and global settings), hosting a Windows domain (configuring Mac OS X Server as a Windows Domain Controller), home directory access from Windows clients, setting up user profiles for Windows users, using login scripts, and configuring member and standalone servers.
Chapter 28 covers "Workstation Deployment and Maintenance" and discusses types of disk images, NetBoot (share points and image folders, shadow files) and network issues with NetBoot (load balancing, NetBoot across subnets), creating Mac OS X NetBoot images using the Network Image Utility, configuring the NetBoot service from both the GUI and the command-line, NetInstall and Apple Software Restore (creating Classic ASR images using Disk Utility, applying ASR images using Disk Utility, the command-line and other tools (Carbon Copy Cloner). A real-world scenario that is covered here is the time consuming and deadly annoying task of maintaining software updates across networked client machines. Faas proffers a variety of server-based options: Apple Software Update, creating and using NetInstall images that contain package files, using application share points, putting application installers on the network, and using third-party software management tools such as NetOctopus (http://www.netopia.com) and Filewave (http://www.filewave.com) or, my personal favorite, the Open Source tool, Radmind (http://rsug.itd.umich.edu/software/radmind/).
The final chapter of "Essential Mac OS X Server Administration" describes an application not included with Panther Server: ARD (Apple Remote Desktop). A desktop management system integrated with VNC (Virtual Network Computing), ARD provides a full set of administrative tools that include custom software package installation, data reporting options (hardware, OS, installed software, etc.), workstation broadcasting, etc.
The book includes one appendix, "Introduction to Directory Services" (did I mention it was quite excellent?!).
As always, O'Reilly has published a well-designed book: despite the 800 plus pages, the book is perfectly balanced with a comfortable weight-to-size ratio, clean typography, appropriate and pithy asides, and a supple binding that allows the book to stay open when you want to follow along while at your keyboard.
Yes, Tiger Server (Mac OS X 10.4) has been released and no doubt authors Bartosh and Faas have already been hard at work on the second edition of this book. This in no way minimizes the impact this book should have on its intended audience. The evolution of any particular server product should be of vast interest to the professional systems administrator. Panther Server (Mac OS X 10.3), which is the focus of this book, will continue to be a presence in the Apple server-specific market for quite some time. Frankly, not every deployment site (from small businesses to vast educational institutions) will be able to upgrade to Tiger immediately nor will they all be eager to expend the time and additional dollars needed to invest in software, training and potentially new hardware. With the exception of Schoun Regan's Mac OS X Server 10.3 Panther: Visual Quick-Pro Guide (Peachpit, 2005), there is no other comprehensive documentation on OS X Server (Apple's documentation is clumsy and self-promoting). Essential Mac OS X Server Administration is an indispensable contribution to the education of the IT professional.
Mary Norbury-Glaser is IT Director at a University of Colorado Denver affiliate center. She has over 15 years experience in cross-platform systems administration. You can purchase Essential Mac OS X Panther Server Administration from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
-
Adding 2 Extra Drives to a G5
Dave Calhoun writes "The G5 tower is a work of art but Steve only provided two hard drive bays. Some of us need much more than that and don't want a stack of external firewire cases. So I found a way to add two drives inexpensively. They sit between the front of the G5 grill and the CPU fans." -
Teacher Fired for P2P Lecture
An anonymous reader writes "A teacher at the Polytechnic University of Valencia, Spain, was forced to resign after a talk about P2P networks. You can read his side of the story on his blog." From the article: "The day before the conference, the Dean (pressured by the Spanish Recording Industry Association 'Promusicae' as I found out later, and he recognized himself in a quote to the national newspaper El Pais, and even the Motion Picture Association of America, as another newspaper quotes) tried to stop it by denying permission to use the scheduled venue. So I scheduled a second one, and that was denied again. And a third time. Finally I gave the conference on the university cafeteria, for 5 hours, in front of 150 people." Commentary on this story at BoingBoing as well. -
Safari vs. KHTML
Johnny Mnemonic writes "CNET has a story that describes the divergence between the code base of Safari and KHTML. Although there were high hopes that Apple would contribute significantly to the OSS project, that optimism has all but disappeared. Is an unrealized danger of OSS that others may take your project in a direction you didn't intend? Can OSS code and goals harmonize with the goals and needs of corporation designed code? Is it that Apple mismanaged the relationship, or that the KHTML guys expected too much? Interesting warning for other OSS-corporate marriages." We've previously reported on the frustration in the OSS community on this issue. -
iTunes Music Store Sells Videos
bonch writes "With the recent release of iTunes 4.8 and its ability to manage and play videos, several users are discovering that iTunes is now selling videos through the online store. One example is the 'Feel Good Inc.' single used in the recent rollerskating iPod ad. The videos are provided in DRM-less .mp4 format encoded in 3ivx D4 4.5 and are available with purchase of the album." -
Firefox and Thunderbird Garage
norburym (Mary Norbury-Glaser) writes "Firefox and Thunderbird Garage, written by Chris Hofmann, Director of Engineering at the Mozilla Foundation; Marcia Knous, Mozilla Foundation Project Manager; and John Hedtke, president of JVH Communications (and an accomplished technical writer) is published by Prentice Hall PTR. This is the most recent addition to their Garage Series of books, which aims to bring the newest topics in technology to print in an engaging and readable manner. Firefox and Thunderbird Garage does not disappoint: the authors have covered all the bases on these two popular apps with a combined writing style that keeps the subject matter alive and interesting." Read on for the rest of Norbury-Glaser's review. Firefox and Thunderbird Garage author Chris Hofmann, Marcia Knous, John Hedtke pages 384 publisher Prentice Hall PTR rating 8 reviewer Mary Norbury-Glaser ISBN 0131870041 summary Master Firefox and ThunderbirdThe book is split into two parts, covering Firefox in the first half and its complementary mail app Thunderbird in the second. The first chapter discusses the open source software development concept, a brief history of Firefox and the unique features of Firefox including popup blocking, tabbed browsing, enhanced security, built-in Google search, live bookmarks, and Web developer support. Included are system requirements and instructions on installing Firefox on Windows, Linux and Mac OS X systems, as well as how to import settings from other browsers. The chapter continues with an overview of the application window and the various options screens, Firefox help and links to help on the Internet.
Chapter 2, "Protecting Your Security and Privacy," gives the authors a well-deserved soapbox to air the best reason to use Firefox. Yes, Firefox is small and fast -- but it was also built for security. In this chapter, there are some nice explanations of what's out there to worry about (viruses, worms, trojan horses, adware, search hijackers and keystroke loggers) and best practices on how to avoid them by using a proactive software application like Firefox: setting security options (history, passwords, cookies and cache), limiting Web access and setting Web features options (allowing software installs, enabling Java and JavaScript).
Popups are the most annoying aspect of surfing the Web, and chapter 3 dedicates itself to dealing with popups and banner ads by setting specific options built into Firefox. If you learn nothing else but how to control these annoyances then you've made your Web browsing experience infinitely more pleasurable.
Chapter 4 is titled "Searching the Web" and highlights Firefox's Google search toolbar, shortcut keys, using other built-in search engines (Yahoo, Amazon, eBay), searching within pages, using smart keywords and creating your own smart keywords. The authors include an amusing "fridge" aside on search games (NetBullseye or Googlewhacking) and a more practical "toolkit" aside, which describe how to use Google's advanced operators and where to get more information on optimizing Google searches. At the end of this chapter is a "blog" on "Websites to Waste Your Time With" and includes a long listing and description of Web sites on a wide variety of subjects: words, news, science and technology, silliness (unavoidable; we all partake), music, films, cartoons and...other. Just plain fun to be reminded of the vast variety out there.
Chapter 5 returns to seriousness with "Bookmarks and History" and illustrates how to: create and modify bookmarks, create live bookmarks using RSS (Really Simple Syndication or Rich Site Summary), use the bookmarks toolbar, organize bookmarks with Firefox's Bookmarks Manager and how to use the sidebar to view all your bookmarks. Manipulating these options gives the user more management control over their bookmarks and can make browsing easier and more productive.
Tabbed browsing is covered in chapter 6 and will be of particular interest to many IE users. If you've never experienced tabbed browsing, now's the time: download Firefox, read this chapter and never go back. Tabbed browsing allows you to open multiple browser screens within one window and simply select whichever one interests you without having to open yet another separate instance of the browser. The authors give nice direction on how to set tabbed browsing options, open links in new tabs, closing and reloading tabs, bookmarking multiple tabs simultaneously, opening live bookmarks in tabs and even using windows and tabs together.
The next chapter, "Customizing Firefox with Third-party Extensions and Themes," begins with a topic that comes as a natural consequence to having a small, powerfully built, open source app like Firefox: extensions. Folks will always want to add more functionality to what they have. Instead of building a bloated app that holds absolutely everything a developer and a user can think of, the Mozilla Foundation team built lean and expandable, which leaves the developer to bring specific functionality to a particular extension and, with the numerous extensions cropping up daily, allows the user to pick and choose only what they need or desire. Here, the authors explain extensions, where to find them, how to install or update them, and what to do about conflicts (disabling and uninstalling), and then give a detailed look at some featured extensions to enhance tabbed browsing, security, bookmarks, toolbars, sidebar, downloading, email (the Gmail Notifier extension is very useful) and searching. The second part of this chapter deals with third-party themes: Firefox includes a theme manager that aids the user in installing themes that customize the look and feel of the browser. There is an official Mozilla repository of themes that the authors use for their instruction in installing, switching, uninstalling and updating themes. The last section of this chapter includes a Garage Series "blog" on "Managing Your Blog With Extensions" and includes references to several popular blog-management extensions that can be installed in Firefox, and advice on how to choose one based on which blogging format you use.
Chapter 8, "Other Interesting Features," concludes the first half of the book with how-to's on using Firefox's Download Manager for downloading files, printing Web pages, customizing the Navigation and the Bookmarks toolbars and tweaking the display to set options for Website font, color and size. The chapter ends with a blog on "Literary Blogs Through the Ages" which is a bit of a rambling discourse on whether great writers like Shakespeare, Sylvia Plath, beatniks like Jack Kerouac and Ginsberg, Voltaire, Mark Twain or even Dr. Seuss would have blogged. The message here seems to be that it might be a bit refreshing to revisit literature and occasionally venture away from experiencing only what the Internet offers us. Having read books of all the authors represented here, I was intrigued and I did wonder whose voice this dialogue belonged to.
Back to the book, and in particular Thunderbird, Firebird's companion email application. Again, the authors cite security as a major reason to choose Thunderbird for email, and their praise is well deserved. Thunderbird doesn't permit scripts to run by default, has options to block images, contains message encryption features, and has support for certificates and digital signing. Thunderbird also sports accurate junk mail management, an integrated spell checker and RSS reader, powerful search capabilities and the ability to manage multiple email accounts. Chapter 9 walks the reader through hardware and OS requirements, download and installation on a variety of platforms, and making Thunderbird the default email client.
Chapter 10 concentrates on configuring Thunderbird for email, RSS and newsgroup. Since email is so critical to most of us, the authors take a cautionary step and provide various scenarios for either setting up Thunderbird with no previous email client used on the machine or migrating from another mail client. They include important considerations for using POP (Post Office Protocol) or IMAP (Internet Messaging Access Protocol) as well as migrating from Outlook and other standard email apps using the Thunderbird wizard or by manually importing. There are step-by-step instructions and accompanying screenshots for setting up email, RSS and newsgroup accounts; using the Global Inbox to view multiple email accounts in one inbox; creating and managing multiple identities (to manipulate your "from" address when sending and replying); basic composing, reading and sending email and adding and removing accounts. The Thunderbird address book is also described (importing and exporting addresses; creating a mailing list and sending an instant message). The end of this chapter includes a "toolkit" aside that discusses backing up the Thunderbird profile in order to move Thunderbird to another computer or to simply create a backup. In particular, they mention MozBackup. This is a Windows-centric approach, though: Mac and Linux users will need to look elsewhere for info.
Chapter 11, "Protecting Your Privacy and Blocking Spam," should be required reading for everyone. Not only does this chapter describe the many ways the user can manipulate Thunderbird options to optimize security and minimize spam but it has some good cautionary lessons on how pervasive and dangerous spam and phishing are and how to be proactive in protecting against the bad guys. They cover how to train Thunderbird's junk mail filter, configuring junk mail controls (white lists, handling, logging, adaptive filter), blocking remote images, using anti-virus programs, signing and encrypting email, using certificates and using the Password Management tool.
Organizing email is the subject of Chapter 12 and looks at ways Thunderbird can help manage mail: creating folders and subfolders, labeling mail (important, work, personal, etc.), marking mail (read, unread, junk, etc.), creating saved searches (which essentially creates virtual directories with shortcuts to the original messages), creating and using filters to sort related messages, and searching mail. An amusing "blog" ends this chapter with an invective against how the masses abuse email. Not just the spammers and the phishers, but the daily drones who forward lame jokes, litter their emails with smiley faces and use Reply To All indiscriminately. Ultimately, what I liked about this section wasn't that it held obvious information but, like the bit above on literary blogs, the authors humanize their subject matter by interjecting some personal reflections.
The final chapter of the book looks at customizing Thunderbird through the use of extensions and themes. Like Firefox, Thunderbird can also be enhanced through the use of their common Extension and Theme Manager. A thorough description follows on how to find extensions on the Internet and how to install and update extensions. There is also a good list of featured extensions and URLs to their download locations: getting and sending messages, productivity, configuration, privacy and security, RSS and companion extensions, among others. The next part of the chapter deals with using themes or skins to alter the Thunderbird look and feel: where to find them, installation, switching themes and updating them. Finally, there is a brief overview of customizing the toolbar and using either the built in icons or extensions that allow third-part icons to be added to the toolbar.
The end of the book is dedicated to the appendices (keyboard and mouse shortcuts for Firefox and Thunderbird; menu commands for each app; hacking configuration files and security, certificates and validation). These are followed by a brief glossary of terms.
Prentice Hall PTR's Garage Series books utilize a two-color layout with casual typography and art. The book reads comfortably with plenty of screenshots and appropriate and interesting asides like the "blogs" and "fridges" described in this review. As an introductory book, Firefox and Thunderbird Garage succeeds in providing valuable instruction on how to get the most out of both programs. There are lots of tweaks, tips and basic information on how to make these two applications powerful additions to any desktop system. I particularly like the FAQ asides as they provide a lot of troubleshooting advice throughout the book that clearly anticipates common problems, queries and gotchas. Obviously, there are choices of browsers and mail apps out there but, in putting together this great manual, the authors have given Mac, Linux and Windows users plenty of reasons to choose well and to ultimately choose Firefox and Thunderbird above the others.
Reader honestpuck (Tony Williams) also reviewed this book, and writes about it:I currently work on a large campus supporting Macintosh users where I find the most common browser unstable and lacking in features and the most common email client just a little buggy and lacking in good support (neither are the free products provided by Apple). I think that a quick install and a copy of this book would solve a number of my problems. I would recommend this volume to all those who want a good beginner to mid level user volume on two excellent pieces of software. I would prefer to recommend this book to a beginner than any other I have seen on the topic, as it doesn't attempt to cover too much of the learning curve; rather it goes for width, covering both pieces of software and more of each that might be of interest to the early user.
Mary Norbury-Glaser is an IT Director at a University of Colorado Health Sciences affiliate center in Denver. You can purchase Firefox and Thunderbird Garage from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Computers in Space Examined
Wil Harris writes "There's an article about the computers used in space missions over at bit-tech this morning. It covers the processor types and speeds, why space stations are less powerful than the laptops that astronauts take up with them and why tape storage is still de rigeur. An interesting and concise couple o' pages." -
Linux Cookbook
norburym (Mary Norbury-Glaser )writes "Carla Schroder's Linux Cookbook (O'Reilly) is an extremely dense volume packed with valuable information. The author writes with precision and detail and with a conversational style that handles the topic with a wry humor making this book a pleasure to read. The Linux Cookbook is command-line based so some familiarity with a Linux system, the inherent power of using the command-line and the dangers of using root are necessary." Read on for the rest of Norbury-Glaser's review. Linux Cookbook author Carla Schroder pages 700 publisher O'Reilly rating 9 reviewer Mary Norbury-Glaser ISBN 0596006403 summary Practical Advice for Linux Users and SysAdminsThe O'Reilly Cookbook series uses a problem/solution/discussion layout to deliver content in a "recipe" format. Schroder provides a thorough compendium of practical solutions to common problems found in the Debian and RPM-based Linux environments. Intended for the beginner to intermediate user, this book also has lots of good nuggets for the advanced Linux systems administrator. The table of contents generously lists each topic covered with enough detail for the reader to quickly pinpoint specific problems of interest.
The book begins with a logical chapter, "Finding Documentation," which naturally covers man (manual) pages: understanding, finding, reading and printing the documentation that has frightened many a newbie. The author includes references to other documentation (CHANGELOGS, RELEASE NOTES, etc.) and even some graphical viewers like Konqueror, Yelp and Pinfo. This chapter provides a nice overview of man pages and clearly explains how to find documentation quickly and efficiently.
Chapter 2 covers "Installing and Managing Software on RPM-Based Systems" and the introduction, "Source-Built Systems: The Olde Way", made me LOL. Schroder describes how "us old-timers" did it in the days before dependency resolvers; with failed makes and long download times. Having experienced my share of "Dependency Hell" and espousing more than once, "In my day....", I can take a cue and not only laugh at the past but appreciate the present. Schroder brings that to bear with her problems and solutions to "RPM Hell". Ahhh, the more things change, the more they stay the same! Schroder addresses issues with RPM (Red Hat Package Manager) basics and Yum (Yellow Dog Updater, Modified).
A natural transition to this chapter is "Installing and Managing Software on Debian-Based Systems" which introduces the package manager/dependency resolver, apt. A particularly nice addition here is a description of how to build a local Debian package repository for sharing out to client systems. This is a bit of how-to that is useful for sysadmins and is a welcome addition to a book of "solutions". Schroder follows this chapter with "Installing Programs from Source Code" which provides an alternative to using package management. Included here: generating a list of files from a source install, installing programs from source code and using CheckInstall to create packages.
Chapter 5, "Discovering Hardware from Outside the Box," illustrates the problem of detecting hardware. Schroder discusses an assortment of solutions: using Ispci, dmesg and reading /proc. Also included is how to view drive partitions and how to calculate drive capacity with fdisk.
Schroder chooses JOE and Vim as topics for her "Editing Text Files" chapter. This isn't intended to be a tutorial on each editor. Rather, the author provides some quick problem/solution scenarios that guide the reader through customizing the two editors to meet their unique preferences and she lists useful commands and offers recommendations on how to use vimtutor and Joe's online help to get up to speed.
Chapter 7 is titled "Starting and Stopping Linux" and begins by explaining runlevels then discusses how to start and stop X, how to change the default runlevel and how to manage Debian's and Red Hat's runlevels. Also included are command-line solutions to manually configure, start and stop services. The latter is particularly useful since many of us find ourselves needing to manually stop or restart a service when testing configuration changes. Another sysadmin tip found here is disabling or limiting access to Ctrl-Alt-Delete. This is a common "first step" to protecting a machine in an secure environment.
"Managing Users and Groups" is the topic of Chapter 8 and covers system accounts vs. human user accounts, finding UIDs and GIDs, modifying accounts (changing the login or UID, moving a home directory), deleting users and disabling accounts, killing user processes, password and disk quota management and using shell scripts to manage batches of users and passwords. Included in this chapter is the author's cautionary statements on using su and sudo to gain temporary root powers while doing system tasks at the command-line.
In the introduction to the next chapter, "Managing Files and Partitions," Schroder provides a well written primer on understanding filesystem fundamentals: Linux file types, file attributes and definitions, filesystem internals (logical block, logical volume, B+trees, etc.), and journaling filesystems. She uses this basis to tackle the common problem of controlling who has access to what file and uses the chmod (change mode) command to change file permissions. She includes batch operations and setting file and directory permissions with chmod. The next set of problems in this chapter deals with using the chown command to change ownership of files and directories and doing batch operations with chown. Other solutions here: setting up a shared directory with setgid and the sticky bit, using umask to set permissions defaults, configuring file system mounts with /etc/fstab, mounting and unmounting filesystems on hard drives (a common issue with dual or triple boot systems), using dmesg to find device names in order to mount them in conjunction with fdisk to show partition numbers on drives, creating and deleting files and directories using mkdir, touch and rm, using fdisk to create Linux disk partitions and creating a filesystem on a new partition. Pretty much everything one would desire to do bound in one chapter!
Chapter 10 is dedicated to "Patching, Customizing and Upgrading Kernels". Many users have avoided modifying their kernel because of fear of "hosing" the system entirely but Schroder shows that it's not that complicated and can be accomplished without fear of losing one's "old" kernel. She addresses upgrading to the latest stable version of the 2.4 kernel, adding new features to the 2.4 kernel, building the 2.6 kernel and removing a kernel patch (we've all needed to do this at one time or another).
The next chapter on CD and DVD recording will be a well thumbed section for many readers. Schroder points out that the "entire field is evolving rapidly, and CD/DVD standards are in a chaotic state." Schroder introduces some fundamental packages (cdrtools and dvd+rw-tools) and straightforward instructions on how to get the most out of CD/DVD. She begins with a fairly comprehensive Glossary of Formats and Standards which provides a good basis for getting a handle on a number of terms and changing technologies. Some problems she tackles here are common: finding the SCSI address for CD and DVD writers, enabling SCSI emulation for IDE/ATAPI CD and DVD writers, making a Linux and Windows readable data CD, copying a CD or DVD, erasing a CD-RW, recording a multisession data CD, creating a bootable CD using mkisofs (a pre-mastering program) and recording data DVD using growisofs (a front end to mkisofs).
"Managing the Bootloader and Multi-Booting" will also be a popular chapter, especially for LILO users who want to migrate to GRUB and newbies who will learn quite a bit about how bootloaders function and how Linux manages partitions. Many Linux users not only have a Windows partition on their system but other Linux distros happily sharing a drive. Schroder gives a nice step-by-step solution to correctly partitioning a drive for multi-booting various Windows OS versions and other Linux distros with bootloader solutions for both LILO and GRUB users.
We've all done it: hosed our system. Can't get past the errors, can't boot. Schroder turns to the best Linux recovery tool there is: Knoppix, a bootable, live CD with Linux drivers and utilities that automatically detect your existing partitions. This chapter covers all the necessary tools you'll need to get your system back up and your data recovered: booting Knoppix; creating a Knoppix boot diskette; saving your Knoppix config on a USB flash stick; creating a persistent, encrypted Knoppix home directory; copying files to another Linux PC; copying files to a Samba share (Windows PC); copying files to a CD-R/RW; installing software from Knoppix, repairing a lost root password; installing Knoppix to a hard disk and virus-scanning Windows PCs with Knoppix.
Chapter 14, "Printing with CUPS," describes the Common Unix Printing System and how to: find drivers; network printers; install printers on a standalone Linux PC; share a printer without using name resolution; share printers on a mixed LAN with Samba; build a dedicated CUPS printer server; restrict printers to select users and troubleshooting. There's more here than a typical home user will need to learn but it's well documented for a sysadmin.
Chapter 15 deals with "Configuring Video and Managing X Windows" and the author provides detail on the X Window System and X.org, terminology, hardware (video adapters) and drivers. She leads the reader through installing new video adapters and making manual settings by editing XF86Config, configuring a multihead display, configuring startx to start the desktop or window manager and changing the login display manager.
Doing backups using rsync and incorporating Mondo Rescue for creating a bootable system restore disk is the topic of Chapter 16. Rsync is an extremely efficient and elegant solution to synchronized backup. Schroder covers local file transfers and synchronization, using ssh with rsync to authenticate login and encrypt the transport of data, building an rsync backup server, automating rsync over ssh backups, customizing filepaths in rsync and installing rsync on Windows clients. Also in this chapter are problems/solutions for creating a bootable system restore disc using Mondo Rescue. Mondo can also be used to clone Linux systems and for a complete system backup.
The next chapter, "Remote Access," concentrates on the SSH protocol: setting up OpenSSH, generating new host keys, authenticating via public keys, using multiple key pairs, using ssh-agent and keychain for passwordless logins. Schroder takes SSH a bit further with a section on tunneling X over SSH and solves the problem of accessing Linux boxes from Windows clients (using PuTTY and Cygwin).
For programmers or groups of users who are collaborating on a single project, version control is a powerful tool that can simplify and maintain both code and documentation trees. In chapter 18, Schroder shows the reader how to build a simple RCS (Revision Control System) repository then how to compare file versions in RCS; manage system config files with RCS, use CVS (Concurrent Versions System) for a single-user local repository; add and delete files from a CVS repository and how to create a shared CVS repository. She then goes into a good amount of detail working with files in CVS as well as building a public repository with Pserver and customizing the CVS environment.
Chapter 19 is dedicated to ntp (network time protocol) which will interest sysadmins. Schroder walks the reader through building a local time server using ntp and ntpdate, connecting the clients, adding access controls to ntp.conf and using iptables rules, setting up multiple local time servers and using ntp keys for authentication.
The next two chapters cover "Building a Postfix Mail Server" and the related "Managing Spam and Malware". Schroder chooses to pick one mail app for handling email, Postfix, rather than some of the other contenders (Sendmail, Exim or Qmail) and introduces the topic with a glossary of terms. She then helps the reader through a POP3 mail server setup, testing the mail server using telnet and openssl s_client, the basics of sending and receiving mail and installing Cyrus-SASL for SMTP authentication, among other topics. The author doesn't neglect IMAP servers or Squirrelmail and covers issues related to both. Schroder follows this with a comprehensive chapter on adding spam and virus-fighting tools to the Postfix server and includes a basic checklist for the admin who manages a cross-platform environment with Windows clients. She then discusses adding checks to /etc/postfix/main.cf and provides a discussion on UBE (unsolicited bulk email) controls. The chapter continues with creating whitelists for management of wanted addresses, using DNS blackhole lists and setting up Clam Anti-Virus and SpamAssassin.
Schroder takes a simple approach to Apache installation and configuration in Chapter 22: a public web server for a single domain serving up static HTML pages. This is a very basic introduction to Apache and web serving on a Linux box. Her topics include how to start Apache at boot, password protecting individual directories, using robots.txt to control web crawlers, making custom error pages, using favicons and viewing Apache access logs with Webalizer. A bit thin on details in this chapter but adequate to get one up and running.
Sysadmins get another treat with Chapter 23: "File and Printer Sharing, and Domain Authentication with Samba." Schroder begins by building a simple Samba file server on a Windows LAN. She extends that a bit with a Windows/Linux peer-to-peer network then rounds that out with a description of how to add authentication to the Samba server in order to control access to the shares. For admins with a large numbers of users, Schroder helps solve the problem of converting /etc/passwd entries to smbpasswd format and copying them to /etc/samba/smbpasswd using the mksmbpasswd script. She also delves a bit deeper into controlling share access by using ACLs (access control lists). There are always groups of users who need to share files and those users who need a central network directory for their personal files and there are solutions here for creating public shares and home directories. The chapter then moves into building a PDC (primary domain controller) with Samba and connecting various Windows clients (95/98/ME/NT/2000 and XP) to a Samba domain as well as connecting Linux clients both by the command-line and with GUI LAN browsers like smb4k, LinNeighborhood, Konqueror and Nautilus. Password synchronization is briefly covered in one problem before the chapter switches gears to sharing Linux printers with Windows clients and vice versa. Running Windows applications directly on Linux is solved using CrossOver Office and Schroder applies the last section of this chapter to installation and discussion of this tool.
The last chapter of this book is dedicated to "Managing Name Resolution." Schroder offers a discussion of DNS and then provides a glossary of DNS terms before addressing the problems section. The author helps the reader enable name resolution on a LAN with hosts files then shows how to set up a DHCP server to take care of IP addresses. She then discusses configuration of Windows and Linux dhcp clients, adding static hosts to dhcp and running a public DNS server. Schroder looks at installing djbdns (initials of the creator, D. J. Bernstein + dns) as a secure, simple and robust alternative to BIND. Schroder shows how to configure the djbdns tools, tinydns and dnscache before giving a tour through BIND and how to set up a local BIND caching name server, installing both a private and a public BIND DNS server and building a BIND secondary server. The author finishes the book with a section on testing and querying DNS servers using dig and dnstrace.
The appendices offer extended information on how to find Linux documentation, a reference list of online hardware Web and Usenet sites, a list of Microsoft file types and extensions and an init script for CVSD.
O'Reilly is well known for producing high quality books that are beautifully bound and well designed. The layout of this book is simply presented with clear typography with chapter and topic headings easily discernible and command-line sections cleanly delineated. The book opens and stays open to selected pages for ease of use (no "cracking" of bindings allowed or necessary!); most of us like to follow along with a book splayed open next to our keyboard or laptop so it's nice not to have to balance our mug of coffee on one side of the book to prop it open.
The Linux Cookbook by Carla Schroder is extremely easy to navigate and very readable thanks to the author's sensible and practical topic selection, clarity of writing and humor. In providing solutions to common problems, Schroder has also managed to disperse valuable advice along the way. Her common sense approach to Linux systems management and administration shines through. The reader gets the benefit of the author's experience in this clearly written and valuable resource to Linux. A bonus is the author's enthusiasm for her topic. This translates into a pleasurable read. Much of this information is scattered across a large number of Websites but having a single competent resource to have at hand makes this book worth owning.
You can purchase the Linux Cookbook from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Beginning PHP 5 and MySQL E-Commerce
norburym (Mary Norbury-Glaser) writes " Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional by Cristian Darie and Mihai Bucica is a valuable resource for the web developer/intermediate programmer who is preparing to create a database-driven e-commerce site and who is most comfortable learning by example. The authors have prepared a book with real-world application in a tutorial format; they give detailed instruction on how to create a fully developed e-commerce web site from design phase to deployment. This book is not for the raw beginner; some knowledge of PHP and MySQL is assumed and truthfully, this book will most benefit a professional web designer who has some experience building dynamic elements into web sites." If that fits you, or if you want it to, read on for the rest of Norbury-Glaser's review. Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional author Cristian Darie and Mihai Bucica pages 568 publisher Apress rating 9 reviewer Mary Norbury-Glaser ISBN 1590593928 summary Create an E-Commerce Site Using PHP 5 and MySQL 4The authors use a T-shirt shop scenario as their model for the design and implementation of their e-commerce site. The book is separated into three distinct "phases" of development. Phase I covers the foundations of creating the Web site, what tools to use and how to use them including creating a product catalog, incorporating a search tool, using PayPal payment processing and adding an administration interface. Phase II proceeds with enhancing the site with a custom shopping cart, a client-server ordering process, a page for pending order administration and a dynamic product recommendations system. Phase III looks at a more complicated customer accounts scenario: taking credit cards instead of using PayPal, building an order-processing pipeline, implementing credit card gateways, adding a product reviews system and accessing web services using SOAP (Simple Object Access Protocol) and REST (Representational State Transfer) XML-based protocols.
Chapter 1 introduces business strategies for considering an online commerce solution and the reasons for launching an e-commerce presence: acquiring more customers, making customers spend more and reducing the costs of fulfilling orders. A thorough read of Appendix C ("Project Management Considerations") would be a good aside at this point. This section provides excellent insight into choosing an appropriate software development cycle model for different projects with a good discussion of advantages and disadvantages of various methods and theories.
Chapters 2 through 7 constitute Phase I proper. The authors begin by tackling the basic structure of the site and focusing on flexible design, scalability and reliability. They introduce a three-tier architecture model: the presentation tier (dynamic pages that contain the elements that allow visitor to the site to interact effectively with the business end), the business or middle tier (requests for data that are posed by the visitor are passed on by the presentation tier to the data tier) and the data tier (manages the data and sends appropriate responses back to the business tier when requested).
Chapter 2 lays the groundwork for the reader to establish the TShirtShop site and accompanying database. Installation instructions for Apache 2, PHP 5, MySQL 4 and phpMyAdmin are referenced to Appendix A. Instructions for installing other tools used in this book - the Smarty template framework for PHP and PEAR DB - are included within Chapter 2. I quite admire the authors' choice to use Smarty. Smarty parses templates behind the scenes and creates PHP scripts from them so when a Web page is rendered, Smarty reads from the PHP scripts instead of pulling the templates themselves, eliminating run-time parsing of templates. Smarty also has built-in caching of template outputs, which saves on overhead in retrieving data from the database.
After creating the main index.php page and the index.tpl Smarty template, the authors discuss error handling and reporting (with a nod to PHP's often head-scratching error messages). They provide a nice set of instructions here for creating an efficient error handling/reporting scheme. The last step in Chapter 2 is to load phpMyAdmin and create the new tshirtshop database and an admin user.
From this point forward, the authors structure each chapter to adhere to the three-tier model. Implementing the presentation tier, the business tier and the data tier is an integral part of the construction of the site. The reader is encouraged to begin every major aspect of the project with these elements in mind.
Chapters 3 and 4 lead the reader through the creation of the product catalog for the TShirtShop site. The authors give a brief overview of SQL, relational databases, using PEAR DB and Smarty plug-ins. The first table is created and populated with data, PEAR DB is used to access the data and a Smarty template is used to implement the user interface. Multiple tables are then added to enhance product catalog features, which allows for a discussion of table relationships. Filtering SQL results and joining data tables are then examined in the section on implementing the data tier.
Chapter 5 introduces a product search engine to the site by using MySQL to search the database and using Smarty templates to build the user interface. This is a major component of any e-commerce site and the authors prepare an excellent code set for this purpose by using the full-text searching functionality of MySQL. The pros and cons of this versus using LIKE are also discussed.
Chapter 6, "Receiving Payments Using PayPal", will be of great interest to many readers. Many individual proprietors and small businesses don't have the resources to process credit cards and therefore use Internet Payment Service Providers to process transactions. In this chapter, the authors teach the reader how to create a new PayPal account, how to integrate the PayPal shopping cart and custom checkout and how to configure PayPal to automatically calculate shipping costs. There is a bit of missing code in this chapter but it appears correctly on this book's Apress errata page (apress.com).
The last chapter of Phase I covers implementation of a catalog administration page using componentized templates and a simple authentication scheme for administrator access to the page.
By the completion of Phase I, the design and programming for a completely functional e-commerce site is in place.
Phase II begins with a pros and cons discussion of using a simple cart method like PayPal versus creating a custom shopping cart and checkout to enhance flexibility. There are some neat tricks here including storing the cart ID as a cookie on the client.
In Chapters 8 and 9, the reader learns how to store cart info in the database, how to implement a client-side ordering mechanism and an orders administration page for pending orders. The benefit to this is that since the data is now stored in the database, quantitative analysis and tracking can be done based on the products sold.
In Chapter 10, the authors add product recommendations to their TShirtShop site. This dynamic visitor-specific functionality is an excellent sales strategy intended to boost sales by adding suggestions for upgrading a purchase or complementing a purchase with another product. The items recommended are based on what products were ordered together by other customers. The SQL query to get the list of products is very nicely done!
This concludes Phase II and the site is again fully functional but with some neat new enhancements: the site has its own shopping cart, credit card processing is accomplished through PayPal and an orders administration page and product recommendations system have been added. Many individually run or small businesses may stop at this point and be completely content with the e-commerce site that has been developed so far. But the authors proceed with more complex scenarios by offering Phase III: "Processing Orders and Adding Features". This final section of the book deals with processing credit cards, using SSL to encrypt data transactions, storing customer accounts, adding a customer product review system (think Amazon.com) and using XML Web services to integrate Amazon.com products into the site.
The authors spend some time covering the design of the order pipeline and optimizing the logical sequence of tasks that need to be tracked. Chapter 12 deals with the modifications necessary to the enable pipeline processing and the database schema changes for auditing and storing data. Chapter 13 implements the pipeline sections in preparation for adding full credit card transaction functionality in Chapter 14 and rounds out with the creation of a new orders admin page that shows an audit trail for any particular order stored in the database.
Full implementation of credit card orders is completed in Chapter 14. The authors discuss credit card transaction fundamentals including working with credit card payment gateways, understanding transactions and card processing. They look at two payment services providers as examples: DataCash (a UK-based company) and Payflow Pro (a division of Verisign).
Product review integration is the subject of Chapter 15. This is another highly coveted enhancement to e-commerce sites. The authors provide a very simple (and therefore, elegant, in my view) implementation of code to add review capabilities to the sample site.
The final chapter of the book is Chapter 16, "Connecting to Web Services", where the authors complete their professionally developed TShirtShop e-commerce site by integrating the Amazon E-Commerce Service using SOAP and REST.
Appendices A-C cover necessary application installation (as mentioned above), hosting advice, steps for getting your files where they need to be on various hosting models and project management theory. Access to code and errata is available on the Apress Web site (apress.com). This book has a nice layout, clean typography, plenty of screen shots and the code sets are offset from the main body of text and are extremely easy to follow. The book can readily be propped open while looking on from your development machine and the overall size of the book isn't unwieldy or awkward to place on a surface.
In the The Expert's Voice in Open Source series, Apress has harnessed the knowledge and expertise of some of the best folks in open source and this book is no exception. Cristian Darie has previously written several well-regarded volumes (Programmer's Guide to SQL, Beginning ASP.NET E-Commerce, Visual C# .NET: A Guide for VB6 Developers, among others) and his skill in untangling complex subject matter is apparent in Beginning PHP 5 and MySQL E-Commerce. Both authors have prepared a book that will enable any intermediate developer to create a fully functional e-commerce Web site that they can then customize and extend. This book is consistent, well organized and clearly presented. Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional is the perfect tutorial-style book for start-to-finish e-commerce site development instruction for any developer with the desire to learn the advanced tools and techniques to get a scalable professional site designed and in production.
You can purchase Beginning PHP 5 and MySQL E-Commerce: From Novice to Professional from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Shufflephones 2.0
Photo_Designer writes "After hacking my first pair of headphones to accept an iPod Shuffle, I just couldn't keep my hands off my other set of headphones and hacked an iPod shuffle adapter inside them, too. This version also includes an all-new expansion jack which allows sharing your music on the go, plugging your Shuffle into a stereo with a patch cable (without removing it from the phones), and also allows the headphones to be used as regular phones with the shuffle removed or turned off." -
Shufflephones 2.0
Photo_Designer writes "After hacking my first pair of headphones to accept an iPod Shuffle, I just couldn't keep my hands off my other set of headphones and hacked an iPod shuffle adapter inside them, too. This version also includes an all-new expansion jack which allows sharing your music on the go, plugging your Shuffle into a stereo with a patch cable (without removing it from the phones), and also allows the headphones to be used as regular phones with the shuffle removed or turned off." -
Shufflephones 2.0
Photo_Designer writes "After hacking my first pair of headphones to accept an iPod Shuffle, I just couldn't keep my hands off my other set of headphones and hacked an iPod shuffle adapter inside them, too. This version also includes an all-new expansion jack which allows sharing your music on the go, plugging your Shuffle into a stereo with a patch cable (without removing it from the phones), and also allows the headphones to be used as regular phones with the shuffle removed or turned off." -
In Which OS Do You Feel More Productive?
HTMLChecker asks: "I found an article in which the author talks about how she is more productive using Mac OS X. What about the people of Slashdot? Where do you feel more productive, in Linux? Windows? DOS? Mac OS X? Also, what is the best way to rate productivity in an OS?" -
GUI Pioneer Jef Raskin Has Passed Away
Viridian writes "Jef Raskin, GUI pioneer, interface expert, Apple employee #31, and the man most credited with the creation of the Apple Macintosh, died of cancer on Saturday February 26, 2005. It was Raskin who named it after his favorite fruit, the McIntosh apple, although he said that he changed the spelling to "Macintosh" to avoid potential copyright conflicts with McIntosh, the audio equipment manufacturer." -
Battlestar Galactica Available for Download
blankgm writes "The SciFi channel has made Episode '33' (Season 1 Episode 1) of Battlestar Galactica available for free, uncut and commercial free, online at SciFi.com. Also available are deleted scenes from the series. Is this a ploy by the SciFi channel to grow a viewer base as well as loyalty, or an extremely bold move since the series isn't even out on DVD yet? Hopefully it's both. In either case, I believe this is unprecedented, especially since season 1 hasn't even concluded here in the states. Bravo SciFi. Keep 'em coming!" -
Make a PC Look Like a Firewire or USB Drive?
buckinm asks: "Here's the problem: I have a Windows laptop that I use for work. When I'm at home though, I much rather use my Mac. Since we use Cisco's VPN client at work, I can't mount the drives on the PC from the Mac. What I'd like to know, is there any software out there that would make the PC act like a Firewire or USB drive? I'd want to be able to mount it read/write. I know I could do some sort of rsync of thing when not connected to the VPN, but that seems like too much trouble. I wouldn't be against writing something like that, if I could get some idea of what is required to listen / respond to traffic on the Firewire or USB ports." -
Mac OS X Server Panther
norburym (Mary Norbury-Glaser) writes "Mac OS X Server 10.3 Panther is one of the latest in Peachpit Press' Visual QuickPro guides (not to be confused with the beginner "QuickStart" series) and is written by one of the best IT/Mac trainers in the industry, Schoun Regan, with assistance by his devoted sidekick and co-trainer at itinstruction.com, Kevin White. Peachpit and the authors have produced a book with excellent content and delivery; the installation and setup of Mac OS X Server and Web services is explained with clarity and precise detail." Read on for the rest of Norbury-Glaser's review. Mac OS X Server 10.3 Panther author Schoun Regan with Kevin White pages 472 publisher Peachpit Press rating 9 reviewer Mary Norbury-Glaser ISBN 0321242521 summary Learn Mac OS X Server fast and efficiently.PeachPit Press labels Mac OS X Server 10.3 Panther as intended for those readers with intermediate to advanced OS X Server experience, but this is not accurate. The step-wise instruction provided by Regan and White is richly documented with screenshots, so even those new to OS X Server can follow this book. Intermediate or advanced server admins will find some nice "tips and tricks" to add to their arsenal of tools, and if they're preparing to set up their first OS X Server or XServe, they'll find this book a handy companion to "pre-lab" with and to use as a follow along guide.
In less than 20 pages, Chapter 1 takes the reader through planning his or her OS X Server deployment with an overview of partitioning options, various methods of installation and a tour of post-install logs. This is Regan's "20-pages-of-prep/20-minutes-to-install" chapter; concise, exact and representative of the pace and caliber of the chapters that follow.
Chapter 2, "Server Tools", covers the aftermath of the install; how to use the Server Administration software that comes with OS X Server to configure the server. The authors walk through language choices, network interfaces, administrator account setup, directory service and service startup options. The Server Admin and Workgroup Manager tools are also discussed in detail; how to customize Server Admin preferences, how to use Workgroup Manager preferences (resolve DNS, use SSL for sharing, show system users and groups) and how to add users to the local database. The Server Admin tool is the most used utility in OS X Server. It offers a well-designed GUI to manage all your services as well as preferences and advanced options. If you're upgrading from AppleShare IP, you'll want to look at the section on using the AppleShare IP Migration tool to ease the transition to OS X Panther Server. An overview of the Macintosh Manager follows, for support of Mac OS 9 user preferences. The chapter concludes with a brief introduction to additional server tools: MySQL Manager, using Server Monitor, the RAID Admin Tool, the Network Image Utility, the QTSS (QuickTime Streaming Server) Publisher and the QuickTime Broadcaster (the last two are discussed in greater detail in Chapter 12).
Implementing Open Directory is the focus of Chapter 3, but the actual implementation steps are prefaced by a strong discussion of directory services. The authors begin with a summary of LDAP (Lightweight Directory Access Protocol) and Microsoft's AD (Active Directory), both methods of storing user data. This leads neatly into the Mac OS X Client and Server Directory Access application and the various services options that allow the client or server to connect to another directory service (AD, BSD Flat Files and NIS, LDAPv3 or NetInfo) in order to obtain authentication, authorization and contact information. Each of these options is detailed in its own section. Using the Authentication tab of the Open Directory service to apply global password server policies and using Kerberos (authentication method) are also addressed here. This is an exceedingly well-composed chapter. Understanding directory services and Open Directory concepts will enable the server administrator to better organize the hierarchy of users, groups and shares in his or her environment, especially in a multi-platform situation.
User and group management is the logical segue to the discussion on directory services and is the title of Chapter 4. Topics range from: configuring basic user attributes, advanced user options and administrative user permissions; configuring password types (Open Directory/Kerberos single sign-on, shadow, crypt); creating groups and assigning group folders; setting the home directory and user disk quotas; adding email to user accounts and enabling printer quotas. The section devoted to setting the home directory will be of particular interest to many readers; most academic and corporate users are in an environment where their documents and application preferences are stored in a home directory.
OS X Server excels at providing file sharing via AFP (Apple File Protocol), SMB (Server Message Block), FTP (File Transfer Protocol) and NFS (Network File System). Chapter 5 concentrates on strategies and configuration of share points and sharing protocols. Of the four protocols addressed here, the most widely referenced will be SMB, the native Windows service provided in OS X Server by Samba, an open source/free software (samba.org). Subtopics in this category include connecting Mac OS X clients via SMB and Windows clients via SMB, configuring your server as a PDC (Primary Domain Controller) to enable Windows clients to authenticate against your server and enabling WINS. The chapter concludes with instructions on creating additional network mounts using a shared Application folders and a shared Library folder as real world examples. This chapter will help anyone in a cross-platform environment to blend their Mac OS X Server seamlessly with Windows client and server machines.
Chapter 6, "Network Configuration Options" looks at extending the functionality of your server by enabling other network services like DNS, DHCP, NAT and IP forwarding. The authors spend some time underscoring the importance of properly configuring DNS and the instructions here for setting up simple forward and reverse zone records and then testing the DNS settings are excellently done. Another well-written section is on enabling NAT. This is a simple procedure to perform and well worth it for the added security it provides.
Printing services is the focus of Chapter 7 and goes over print queues, CUPS (Common Unix Printing System), configuring printers in Open Directory and on client machines, managing print jobs and viewing print logs. Every organization can benefit from a centralized print server that can allow an administrator to monitor and control print jobs. The authors make the process of configuring the server and clients extremely easy.
Not everyone needs to enable mail services (especially if they find themselves in a Windows environment with an Exchange server) but nonetheless, it's a valuable subject and the authors give a thorough explanation of not only the mail protocols and services built into OS X Server (SMTP and Postfix, POP, IMAP, Cyrus, SquirrelMail and Mailman) but they also expound on ways to handle spam, creating virtual domains, configuring secure mail authentication, enabling SSL and enabling mail lists via Mailman. Monitoring mail services using the Server Admin tool and Mailman close out the chapter.
Chapter 9, "Web Services," introduces the reader to the Apache Web server. Built into OS X Server, Apple has provided a unique integration of Apache that can be managed via the GUI. Using our friend, the Server Admin tool, the authors show how to set up a Web site, configure Web site options, set up SSL, edit or add to the built-in MIME types, enable Web proxies and monitor web services and log files. By far the most interesting part of this chapter is devoted to setting up realms and WebDAV. WebDAV is a network protocol that provides collaborative editing on a shared file server destination and it supports versioning of any type of media (HTML, GIF, JPEG, etc.), not just text-based. Since WebDAV works over HTTP, you get authentication, encryption, caching, proxy support and efficient transfers.
Every server administrator has to worry about security and the authors turn their attention to this topic in Chapter 10. They begin with physical security (locking the server room, locking the server itself, removing external devices from the server and installing Open Firmware Password to prevent someone from booting into a less secure mode) and then move to firewall basics and how to create advanced FTP rules. Password "good practices" comes next (seems like this is a no-brainer, but the sad fact is that this is a necessary reminder for many people, even server administrators) followed by how to enable encryption based on SSL (Secure Sockets Layer). The authors walk the reader through creating a private key and a corresponding CSR (Certificate Signing Request) and how to act as your own CA (Certificate Authority). They provide really nice directions on how to implement certificates for Open Directory, Web and email SSL as well using, of course, the Server Admin tool.
Chapter 11, "Running A NetBoot Server" combines many of the concepts from previously discussed protocols (DHCP, TFTP, NFS, HTTP) to illustrate another unique feature of OS X Server. NetBoot allows for client machines to boot off shared disk image files that reside on the server. It also enables the server admin to deploy an install image across a network. NetBoot is a highly valuable tool for anyone interested in creating an efficiently managed environment. The authors provide step-wise directions on how to create a bootable image and an install image, how to manage NetBoot images, how to automate installations (very neat) and how to import/export images in order to move them from server to server.
The last three tools in OS X Server are illustrated in Chapter 12: QTSS (QuickTime Streaming Server) which enables audio and video streaming, QTB (QuickTime Broadcaster) which allows you to produce live events for online delivery and QTSS Publisher which manages QuickTime movie, MPEG-4 and MP3 playlists.
The final chapter of the book concentrates on client management and how to implement managed preferences to workgroups, computer lists or individual user accounts. This, of course, is every administrator's dream: to manage and control clients from a centralized environment! The authors show that OS X Server provides excellent management options and with a bit of planning and foresight, an administrator can properly configure their OS X Server tools to provide a balance of efficiency and control.
So what's missing? Not much, really. VPN is not covered at all, though, and I would have liked a section on this. VPN is a real necessity not only for remote employees/students but also for the administrator. But sheesh -- that's a small complaint given the amount of information in this book, and I have to applaud the authors for their ability to combine such detailed instructions on nearly every aspect of OS X Server between two covers.
The book follows the classic Visual QuickPro Guide layout, with each page split into two columns to allow for instructional text situated alongside accompanying screenshots. This book is loaded with screenshots and icon graphics, so the reader will miss nary a step while following along on their test box or their production server. There are even pictures of the progress bar as configuration settings are being applied! (Well, sometimes patience needs to be encouraged.) Chapter subtopics are indicated on the binding of the book with gray thumb tabs. Extended information and digressions are highlighted in gray boxes as logical asides.
Everything about this book is designed to guide the reader through every aspect of the installation and configuration of OS X server. The authors provide clear explanations of each step using a task-based approach with extended discussions on the various choices the server presents the user with at appropriate intervals. There are plenty of real world "tips and tricks" that will save the administrator time and anguish over the course of setting up the server. Regan and White address some of the most difficult to comprehend topics and issues an admin will address: multi-platform environments and file sharing, DNS, Open Directory and security. Fully understanding these subjects is critical to making the correct choices while configuring the server. The authors' thorough discourse provides the reader with the knowledge and tools to get the job done.
Mary Norbury-Glaser is an IT Director at a University of Colorado Health Sciences affiliate center in Denver. Working in a multi-platform academic environment dominated by Windows boxes, she sometimes feels like the Mac Maytag Lady. You can purchase Mac OS X Server 10.3 Panther from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
The Return Of The Pop-Up Ad
SYFer writes "Shortly after upgrading my Macs to OS X 10.3.8, I noticed that I was getting pop-up ads on Safari. It had been so long since I'd seen a pop-up, I completely forgotten how annoying they can be. I went over to Apple's Support site to see if there was a relationship, but learned that the timing is just a coincidence (even though there's a lot of the usual FUD and flailing of arms in the discussion forums). In fact, it turns out that the pop-up advertisers (what's the proper denigrating term here?) have finally defeated the pop-up blocking functionality found in many browsers. MacFixIt is running a front page article on the topic and says 'Contrary to initial reports, this problem isn't limited to Safari; subsequent reports have noted pop-under ads victimizing a number of browsers that provide pop-up-blocking features, including the latest versions of Safari, FireFox, Mozilla, OmniWeb, and Camino.'" -
Live Telescope Webcam Tonight
Daniel Bowen writes "Tonight's Willow Brook Elementary School star party will have decidedly more technology in use than previous years. In addition to a fleet of telescopes and astronomers for the children, this year there will be a live webcam connected to a telescope, operated by Roane State college astronomers, and hosted by the University of Tennessee Sunsite. The telescope image will also be projected onto the outside wall of the gymnasium in a 50 foot diagonal image alongside a Starry Night sky map. With cooperation from the City of Oak Ridge, TN, all streetlights in the neighborhood will be turned off, giving the giant projections clarity from the school yard, and night vision a chance. For one night out of the year, this suburban elementary school soccer field should have a beautiful nighttime sky, and a chance to inspire hundreds of children." -
Will New Apps Keep TiVo Afloat?
Dave Zatz writes "Tivo, struggling to keep customers and inch towards profitability as execs step down, has continued to shift focus from pure PVR functionality towards digital convergence. Tivo's recently released Home Media Engine SDK extends Tivo's capabilities as developers churn early Java apps out, including the eBay-developed BuyItNow and the independent Airport Express AirTunes remote control. The recently released Tivo To Go allows PC users to transfer shows to their computers for viewing, editing, and burning shows. Mac users aren't entirely forgotten - a hidden feature in the OSX Tivo Desktop 1.9 provides AAC music playback through the television." -
Nintendo With Possible Palm OS Capabilities
Sammy writes "According to GamerCentric, Nintendo has licensed Palm OS software although there intentions are not clear. "Well there seems to be some clues about this. "Nintendo had recently licensed Palm OS based PDA software without any details on why they had done it. Now Nintendo sources have revealed that V-Pocket trademark concerns this licensing. E3 will be the first witness of Nintendo's complete line of personal organizer tools for its Nintendo DS." So there is a possibility that we could see a Nintendo device with Palm OS organizer capabilities." -
Beginning AppleScript
norburym writes "AppleScript: The Missing Manual by Adam Goldstein is part of the Missing Manual series of beginner/intermediate books published by Pogue Press/O'Reilly and Associates. This series focuses on computer products that have been released without adequate printed manuals (Mac OS X, iLife '04, Google, iPod and iTunes, Windows XP, Windows 2K, among others). I would venture that this also applies to most major software releases, which should keep Mr. Pogue, O'Reilly and their contributing authors busy for quite some time. Their newest release, AppleScript: The Missing Manual, is a welcome addition to their catalog of smart, funny and user-friendly books." Read on for the rest of Norbury-Glaser's review. AppleScript: The Missing Manual author Adam Goldstein pages 304 publisher Pogue Press/O'Reilly & Associates rating 8 reviewer Mary Norbury-Glaser ISBN 0596008503 summary AppleScript for the Beginning/Intermediate UserAppleScript mimics the syntax of English. As such, its grammar by intent should be easy for English speakers to grasp, which results in an intuitive and simple to use scripting language. However, this doesn't undermine its role as a very powerful tool for automation.
There are very few books on AppleScript, and certainly not many current volumes outside of Matt Neuburg's excellent AppleScript: The Definitive Guide (O'Reilly) for the intermediate-to-advanced scripter, and Hanaan Rosenthal's reference-type manual, Applescript: A Comprehensive Guide to Scripting and Automation on Mac OS X (Friends of Ed). But Neuburg's book is intended for the intermediate to advanced reader while Rosenthal's book is a bit extensive to be called a primer. Hence, there are few worthy contributions for the beginner. Goldstein's Missing Manual fills this gap with coverage of the current Mac OS 10.3 (Panther) release of AppleScript, including multimedia support, GUI scripting and AppleScript Studio. While the book is intended for the beginner and intermediate user, power-hounds will also find many tricks, tips and hidden tools.
The book is divided into four parts: "AppleScript Overview," "Everyday Scripting Tasks," "Power-User Features," and "Appendixes." Part One begins with the usual suspects: where to find the AppleScript folder in Mac OS X, and how to enable the script menu (and how to take advantage of the surprising number of useful scripts you'll find there). In just a few pages, Goldstein hands the reader a collection of valuable scripts that were hiding in OS X Panther all along (I particularly like the "ransom note" script). Chapter 2 introduces the Script Editor application and provides a comprehensive description of Script Editor properties, tools and preferences. After setting up the work environment and introducing the AppleScript tools to the reader, Goldstein begins hands-on scripting in Chapter 3: displaying dialog boxes, commands, commanding other programs, using tell statements and how to find and use the command dictionaries specific to the Finder and other scriptable applications. This author avoids the pitfall of overwhelming the reader with too much information, too many new concepts, and too many abstruse examples.
Part Two is the core of the book, and covers "Everyday Scripting Tasks." The seven chapters in this section run the gamut of increasing difficulty: manipulating text, controlling files, creating lists, organizing and editing graphics, playing sound and video, internet and network scripting, and organizing information in databases. The author quickly takes the reader through a series of simple scripts designed to illustrate AppleScript syntax. Chapter 4 covers variables, strings, dialog boxes, scripting applications and running scripts from text. Goldstein scripts TextEdit, the built-in Mac OS X word processor, by adding code to automatically add new text to a document, adding formatting and adding a word count. He then adapts this exercise to scripting Microsoft Word, which contains far more robust AppleScript support. The contrast is a good example of the range of AppleScript support between applications; some programs aren't AppleScriptable at all, while others offer varying degrees of support.
Chapter 5 includes a primer on file paths as an introduction to folder and file scripting (displaying and opening folders; moving, backing up, deleting and saving files). There are quite a few exercises here that train the reader in using the dictionary and becoming more adept with the AppleScript syntax.
Creating and manipulating lists is the subject of Chapter 6. It covers lists: nested lists, list commands and various ways of displaying lists. Goldstein creates a UNIX top-like/Activity Monitor AppleScript to display a simple list of running programs. This exercise leads into list processing and batch renaming which is the type of automation AppleScript excels at. Other list examples include joining, merging, inputting, and getting lists from other programs (TextEdit and MS Word are again the apps of choice). Lists are ubiquitous, and we spend an enormous amount of time organizing and sorting through them. Goldstein shows the reader how well AppleScript is suited to the task of manipulating lists quickly and efficiently.
The author moves on to another core application of AppleScript in Chapter 7: organizing and editing graphics. Graphics applications are highly scriptable, and Goldstein illustrates this with tutorials using iPhoto and Photoshop: creating new iPhoto albums, showing slideshows, color-correcting images automatically, filtering images, getting image dimensions and creating droplets. One of the most practical uses of AppleScript in this category is batch conversion of images from one format to another using Image Events. (You don't have to be a graphics professional to see how often anyone with a digital camera would make use of this script.)
Scripting sound and video apps is discussed in Chapter 8: manipulating tracks, converting song files, making your Mac speak to you and listen to you, showing full-screen QuickTime movies, rotating movies and embedding movies within scripts. For those with DVD-drive equipped Mac, Goldstein also unveils the AppleScript menu within the DVD Player app. For so many people who rely in iTunes to catalog their extensive music collection, there are very good scripts here for streamlining playing tracks, creating song ratings and performing song file conversions. The best video tip is using AppleScript to enable full-screen video within QuickTime Player, a feature normally available only if you upgrade to the Pro version.
Chapter 9, "Internet and Network Scripting," is chock-full of fun and useful scripts for Internet Connect, Safari, Address Book, Mail, iChat and Keychain. Goldstein shows the reader how to automate dial up an ISP, show Airport signal-strength fluctuations, view Web page source code, run AppleScripts from a Web page using Safari Services, use AppleScripts right in the Safari address bar, save scripts in the favorites bar, find contacts in Address Book, check for new and unread messages in Mail, create iChat controls, download and upload files, and recall passwords. The Power Users' Clinic aside is particularly interesting as it deals with using AppleScript to interact with Web Services using call soap or call xmlrpc. Goldstein provides resources and references for pursuing this advanced topic.
The final chapter in Part Two involves database scripting, including creating simple AppleScript databases and scripting FileMaker Pro databases using AppleScript to enter and sort data. Goldstein includes a nice FAQ on FileMaker's built-in ScriptMaker option.
Once the reader whips through the example scripts in Parts One and Two, it's time to get down and geeky. Part Three, titled "Power-User Features", is the section of the book for geeks and wanna-be geeks. Goldstein shoves enough advanced techniques in five chapters to make these alone worth the price of the book. Chapter 11 introduces folder actions to the AppleScript repertoire of advanced features. The reader learns how to enable folder actions, attach built-in folder actions to specific folders, view and edit these built-in folder actions and run his or her own actions. Folder actions always bring to mind Sal Soghoian's (AppleScript Product Manager and Evangelist) lectures on AppleScript and some tricks to play on unsuspecting co-workers with folder actions. For example, a clueless user double-clicks a folder to open it and it opens and immediately closes ... If you're an IT manager, sometimes you just need to break up the monotony once in a while!
Dictionaries are revisited in Chapter 12 and the author addresses the unfortunate situation when an app doesn't have a dictionary, or has such a limited dictionary that it's effectively useless. Goldstein explains how to control these programs with Mac OS X's GUI Scripting feature, System Events (to automate the clicking of buttons or typing of keys instead of using commands) and Apple's UIElementInspector to discover an object's hierarchy (a download available from http://www.apple.com/applescript/uiscripting).
My favorite chapter in this section is Chapter 13, "Mixing AppleScript and Unix." Goldstein gives a quick terminal lesson followed by a neat trick to display the Expose button ("the blob"). Other helpful actions: use do shell script to run Unix programs straight from AppleScript, run shell scripts with admin privileges, run AppleScripts from Unix thus saving time by bypassing the Script Editor and schedule commands (use an AppleScript to run cron every day, use iCal to schedule scripts). Even users who normally shy away from the terminal will want to try some of these.
Chapter 14 is titled "Testing and Debugging Scripts," and offers some advice and tools to handle errors that show up when you compile a script. Goldstein offers a handy table of common compiler errors and likely causes, error handling tricks (using a display dialog command and the log command) and tips on avoiding typical scripting errors like infinite loops, coercions and nonexistent items.
The author closes this chapter with a brief introduction to Xcode: how to download it, install it and use it to debug your scripts. Xcode is a much more powerful tool than Script Editor and therefore has better features and options for debugging. The reader should probably choose to revisit this section after the chapter that follows, on AppleScript Studio, where Xcode is handled with a bit more depth.
The final chapter in the book is "AppleScript Studio," where Goldstein creates a simple "SpeakToMe" project that contains a dialog box for typing in text, a pop-menu menu with Mac OS X system voices and a button labeled "Speak." This chapter is a very brief nod to AppleScript Studio (Xcode and Interface Builder) but gives the reader a taste for what application building with control over the GUI is all about. This is enough to pique the reader's interest and provides enough hands-on experience to engender confidence in using these tools.
Part Four contains the Appendix A through C: "AppleScript Support in Common Programs" (a very useful set of tables of applications, their level of AppleScript support, price and where to get them), "Moving from Hypercard to AppleScript" (options and advice for converting Hypercard stacks to AppleScript and major syntax differences between HyperTalk and AppleScript), and "Where to Go from Here" (AppleScript sources: Web sites, discussion lists and books).
The Missing Manual series uses a nice layout style with a "soft" look; the pages have black tabs on light gray margins that identify the chapter topic and dark gray sidebars. Screenshots are enhanced with a shadow effect that raise the graphic off the page in a visually appealing manner. The notes, tips and boxed asides (Gem In The Rough, Workaround Workshop, Power Users' Clinic, etc.) are relevant, concise and often contain an element of humor; they don't detract at all from the flow of reading the main text. Each chapter has a gentle reminder that example scripts can be found on the Examples CD disk image that can be downloaded from the Missing Manual web site (http://www.missingmanual.com). References to definitions, tips, hints and other topics are indicated with a page number, not the usual "somewhere in the depths of chapter x". The Web site for the Missing Manual series (http://www.missingmanual.com) contains a link to "Missing CD-ROMs" where readers can download free and shareware applications described in the book series. For this particular book, the author has made a disk image available containing all the sample scripts used in the text examples. Errata can be found at O'Reilly's site (http://www.oreilly.com/catalog/applescripttmm/ind ex.html).
This book is eminently satisfying on many levels: the writing style is conversational and humorous (I would imagine this is a pre-requisite for writing for David Pogue), the style of this book series is consistently pleasant to read and the level of technical difficulty satisfies the range of readers from beginner through power-user. The "valuable information:price" ratio is, hands-down, in the buyer's favor.
A final note about Adam Goldstein, the author of Applescript: The Missing Manual: he is the teenage founder of GoldfishSoft (http://www.goldfishsoft.com), a Mac OS X games and utilities software company (my 7 year-old son loves AlgeKalk and FrakKalk, geek that he is). By "teenage," I mean Adam Golstein is 17-ish. He began contributing to this Pogue/O'Reilly series several years ago by writing a few sections of Mac OS X Panther Edition: The Missing Manual (FileVault, journaling and Disk Restore). I suspect we'll be hearing a lot more from Mr. Goldstein, and I'm looking forward to it.
Mary Norbury-Glaser is an IT Director at a University of Colorado Health Sciences affiliate center in Denver. Working in a multi-platform academic environment dominated by Windows boxes, she sometimes feels like the Mac Maytag Lady. You can purchase Applescript: The Missing Manual from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Build a Database Driven Site -- Quick
norburym (Mary Norbury-Glaser) writes "The third edition of Build Your Own Database Driven Website Using PHP & MySQL is written by Kevin Yank, Technical Business Director for sitepoint.com, a popular online resource for Web development. Updated for PHP 5 and MySQL 4 in this edition, Yank has put together an easy-to-follow, hands-on tutorial using the tools and techniques necessary to build a functional database-driven Web site. Many Web designers don't have deep knowledge and experience in data coding but want to get started serving up dynamic Web pages. This book gives designers and beginning coders a concise introduction to PHP and MySQL and quickly brings the reader to the page-creation stage." Read on for the rest of Norbury-Glaser's review. Build Your Own Database Driven Website Using PHP & MySQL author Kevin Yank pages 359 publisher Sitepoint rating 8 reviewer Mary Norbury-Glaser ISBN 0975240218 summary Using PHP and MySQL to Build Your First Data Driven WebsiteYank starts with the basics of MySQL and PHP installation on Windows, Linux and Mac OS X systems (he notes PHP 4.3 differences as well), and walks the reader through his first PHP script (no, not "Hello World!"). This first chapter is well written, with step-by-step instructions and shell script examples. It will help even a newbie feel comfortable with the process, and encourage him or her to move on to the rest of the book.
Chapter 2 focuses on relational databases and SQL queries. This chapter is not an in-depth study of RDBMs, but rather an extremely brief overview of the concepts involved in order to introduce the reader to command line interaction with MySQL. A simple database is begun that will be used in later chapters.
Basic syntax and commands of PHP are covered in Chapter 3 (statements, variables, operators). There are a lot of simple examples here that clearly demonstrate the elemental concepts of PHP. Yank uses forms, user interaction and control structures (if-else, while loop, for loop) to illustrate some easy methods of data access and user interaction with PHP.
Chapter 4 combines the two previous chapters' concepts into the beginnings of a working data-driven Web site. Yank shows the reader how to use PHP to connect to a sample MySQL joke database ("A man walks into a bar....Ouch."). He introduces sending SQL queries with PHP (mysql_query, delete, insert, update), handling SELECT result sets and inserting data into the sample ijdb (Internet Joke) database.
Chapter 5 is devoted to relational database design, and expands the one-to-one relationship to many-to-one, one-to-many and many-to-many relationships, this chapter teaches the reader how to join data spread between tables into one resultant set. This chapter is not meant to deal comprehensively with the complexities of relational database design. Indeed, the author gives an extremely brief nod to the inherent informality of his approach and references other resources for deeper study. Yank's intention here, as with the entire book, is to use relevant real-world examples to illustrate the simpler types of relationships a beginner will experiment with and how to deal with complex data and table issues with good design practice.
The next chapter presents content management and restricted-access database administration without relying on the command line (a few hints on protecting pages with appropriate access restrictions are in the introduction to this chapter but aren't dealt with in any depth until Chapter 12). Chapter 4's mention of forms is revisited here, and forms are used to manage, add, search for, edit and delete data.
At this point, the reader will have designed a database, organized the data into categories, created Web pages to display the data to site visitors, and prepared pages for administration of the data. The HTML is separate from the data, thereby relieving the Webmaster from the onerous and constant task of having to refresh pages with content. Here, in Chapter 7, the reader learns to format and submit content without resorting to hand-written HTML by using PHP functions (Yank covers the more standardized POSIX regular expressions, not PCRE). Code examples for string replacement, boldface and italic text, paragraphs, hyperlinks and splitting text into pages are included. The last bit of this chapter is dedicated to automatic content submission and has a nice design note about creating a visible column to the joke table where newly submitted jokes are handled as a No value, which allows review by a content manager before being posted.
This leads well into Chapter 8, "MySQL Administration (backing up, access control, checking and repairing data files)." Yank explains mysqldump and the use of update logs to create a practical backup-management scheme. He also covers using the myisamchk utility to check and repair MySQL data files. Basic MySQL access control using GRANT (creates new users, assigns passwords and adds user privileges) and REVOKE (the reverse of those functions) is included in this chapter as well, along with some tips and tricks to prevent access control problems.
Chapter 9 "gets back to the fun stuff" with Advanced SQL Queries (sorting and GROUPing SELECT results, setting LIMITs, LOCKing TABLES, aliases, LEFT JOINs and Limiting results with HAVING) giving the reader a well rounded sense of the versatility and scope of SQL in general and the SELECT command in particular.
Yank veers from textual data in Chapter 10, "Binary Data" (image files, encryption keys, programs for download) and shows the reader how to deal with working with files in PHP, handling uploaded files in PHP, storing and retrieving binary data in MySQL and learning when to use semi-dynamic pages to lighten the load on server performance in the process.
Chapter 11 deals with creating persistent variables, and offers an excellent description of cookies and sessions in PHP. I like Yank's figure "the life cycle of a cookie," which shows a graphical representation of a PHP-generated cookie. Yank rounds out the chapter with a simple shopping-cart example that consists of PHP scripts handling a product catalog and a checkout page (very real world).
The final chapter of the book is titled "Structured PHP Programming," and focuses on techniques for organizing code in order to simplify management (using include files, writing your own functions and streamlining code within Web pages). Yank gives a lot of sensible advice here, and his approach is not preachy. He brings up many important pitfalls that developers fall into: too much code, difficulty of finding what you need, understanding how it works. As this is a beginner's book, I would say that good design, good technique and good sense go a long way and should be stressed at the start of anyone's career in coding.
Build Your Own Database Driven Website Using PHP & MySQL, 3rd Edition runs only about 350 pages with a clean, easy-to-read page design, comfortable typography, lots of script boxes and screen shots. The appendices cover MySQL syntax, functions and column types and PHP functions for working with MySQL. Errata can be found at sitepoint's Web site, and I can't stress enough the value of checking these out before delving into any technical or instructional book: the frustration level goes way down if you know in advance that there's a typo, or a step missing!
This is a beginner's book with the essential tools and techniques that will get anyone started with serving up their first dynamic Web site. The tutorial approach of this book makes it easy for any reader to follow the step by step instructions. Yank manages to cover pretty much every topic necessary to provide the reader with a clean overview of the topic. It's a quick read and gives the reader encouragement and enough knowledge to move on to more complex volumes on the subject. This book provides a great first step for the beginner."
You can purchase Build Your Own Database Driven Website Using PHP & MySQL from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.
-
Colocate Your Mac mini
Pfhreak writes "Pure Static is already offering a service to colocate your Mac mini into a rack for those who want to set up a server on the cheap. Unfortunately, according to their FAQ, they're not planning on creating a Mini supercomputer. Which could be good news for those of you that are working towards being the first to set up such a cluster who have purchased a couple pallets of Minis, but haven't had time to finish setting up the cluster." -
Disney Plans Tron Remake
blkmagic writes "Sci Fi Wire is reporting that Disney will remake Tron. The original article was in Variety, but requires a pay subscription, unless you want to sign up for a 14-day free trial. The article didn't mention what stage they're at, but sounds like they're changing the story a bit (surprise). I loved the original when I was younger (and still watch it again once in a while), so I don't know how I feel about this one!" -
Practical Guide to Red Hat Linux, 2nd Edition
norburym (Mary Norbury-Glaser) writes "If you own the first edition of this book, then it's probably dog-eared and well thumbed-through, so now's a good time to upgrade to this extensive volume, Practical Guide to Red Hat Linux: Fedora Core and Red Hat Enterprise Linux, second edition. This book covers Fedora Core 2 (2.6 kernel) and Red Hat Enterprise Linux version 3 (2.4 fork version with 2.6 kernel features) and includes Fedora Core on four CDs, which comprises the complete release. Mark G. Sobell accomplishes what many fail at: he has successfully crammed a huge amount of information into one volume in a compact, perfectly readable manner. This second edition serves two audiences, the end user and the administrator, and consequently combines two topics that easily could have filled separate books: Fedora Core and Enterprise Linux." Read on for the rest of Norbury-Glaser's review. Practical Guide to Red Hat Linux: Fedora Core and Red Hat Enterprise Linux (2nd Edition) author Mark G. Sobell pages 1136 publisher Prentice Hall PTR rating 9 reviewer Mary Norbury-Glaser ISBN 0131470248 summary Practical Guide to Red Hat Linux: Fedora Core and RHELThe book is separated into parts: Installing Red Hat Linux, Getting Started with Red Hat Linux, Digging into Red Hat Linux, System Administration, Using Clients and Setting Up Servers, Programming, and Appendixes. Each part is further divided into chapters including Linux Utilities and Filesystem, GUIs, Shell, Networking/Internet, Files, Directories, Downloading/Installing Software, Printing with CUPS, Rebuilding the Linux Kernel, Admin Tasks, Configuring a LAN, OpenSSH, FTP, sendmail, NIS, NFS, Samba, DNS/BIND, iptables, Apache, Programming Tools, Regular Expressions, Security and many others. Clearly, Sobell takes great pains to address every aspect of Linux that the end user or admin would encounter. Sobell has also taken several steps to make sure the book works as a reference work: he's structured the layout with identifiers (Fedora or RHEL) to enable the reader to identify the OS he or she is mainly interested in, optional sections with more difficult concepts that can be skipped until the reader is more competent to address them, caution boxes that provide warnings about troublesome areas, tip boxes with interesting information or alternative suggestions, security boxes, many practical examples, chapter summaries, review exercises, resources, GNU tools, pointers to online documentation and URLS. There is also a glossary with cross-references to other terms and chapter page numbers.
After a Welcome To Linux chapter that introduces the reader to the history of Linux/Unix, GNU and why everyone should use Linux (an understandable inclusion, but probably of little interest to current Linux users), we move quickly into a brief overview of installation. A scant 50 pages is dedicated to installation, but Sobell covers the necessary particulars with sufficient depth that even a beginner should feel comfortable with these instructions. I approached this book from an administrator's perspective so felt the time and detail devoted to installation was completely appropriate; neither too much nor too little information presented. Experienced users can easily skip this section and not feel they've lost any significant amount of their investment by doing so; at over a 1000 pages, this book has plenty for everyone. It's interesting to note that the author chooses to lead the user through installing KDE instead of GNOME, Red Hat's default desktop manager, although both are addressed in detail in Part III.
Part II introduces the reader to Red Hat, Linux utilities (ls, cat, rm, cp, grep, head, tail, sort, diff, echo, script, mcopy, gzip, gunzip, zcat, tar, which, whereis, apropos, who, finger, write, talk, vim), the Linux filesystem (mkdir, cd, absolute and relative pathnames, rmdir, mv, cp, access permissions, hard links, symbolic links) and an intro to the Shell (the author's choice is bash). Both graphical and command line utilities are discussed; system admins in particular should become familiar with the command line choices.
Part III covers Linux GUIs (xwindow, startx, remote computing, GNOME, KDE) and more bash (basics, separating and grouping commands, redirecting standard error, parameters and variables) in depth, and gives an introduction to networking and the Internet (types of networks, network protocols and utilities, ping, traceroute, host and dig, distributed computing, usenet). This leads smoothly into Part IV, System Administration. This is a meaty chunk of the book, with well-written core information (core concepts, files, directories and filesystems, downloading and installing software, printing with CUPS, rebuilding the Linux Kernel, Admin tasks and LAN configuration). Sobell introduces the reader to installing and updating using Red Hat's RPM system and updating via Yum and Apt. An especially nice addition here is Chapter 15 on Rebuilding the Linux Kernel. Often glossed over or ignored completely, this is an exercise that should be included in any decent Linux volume and Sobell doesn't disappoint.
Part V continues the administration learning curve on Using Clients and Setting Up Servers. Chapters include OpenSSH, FTP, sendmail, NFS, Samba, DNS/BIND and Apache. Probably every advanced user to administrator should take some time over the OpenSSH chapter; it contains great information, start with, but more importantly is positioned as a prerequisite to further secure network communication instruction.
These chapters should provide more than adequate instruction for anyone running Apache, Samba or mail services for the first time. However, somewhere in here a primer on PHP/mySQL and additional email server choices (other than the discussed sendmail) would be welcome.
Programming tools and a revisit with bash comprise Part VI. Programming in C, using shared libraries, debugging, system calls and CVS are covered in Chapter 27. Chapter 28 continues with additional bash commands and concepts (control structures, string pattern matching, filename generation and functions), utilizing many short script examples. There's an excellent section on CVS and very useful information on compilers.
The Appendixes and glossary round out the book with helpful information on regular expressions (characters, delimiters, special characters, bracketing expressions), help (finding Linux-related information, documentation, Linux sites/newsgroups/mailing lists, software, office suites and specifying a terminal) and security (encryption, file/email/network/host/login/remote access/physical security, viruses and worms and security resources).
Also included in the appendixes is the Free Software Definition, which is a verbatim copy of the original document on the GNU website, and a description of features new to the 2.6 kernel.
Since I'm in an educational environment, I found the content of Sobell's book to be right on target and very helpful for anyone managing Linux in the enterprise. His style of writing is very clear. He builds up to the chapter exercises, which I find to be relevant to real-world scenarios a user or admin would encounter. An IT/IS student would find this book a valuable complement to their education. The vast amount of information is extremely well-balanced and Sobell manages to present the content without complicated asides and meandering prose. This is a "must have" for anyone managing Linux systems in a networked environment or anyone running a Linux server. I would also highly recommend it to an experienced computer user who is moving to the Linux platform.
You can purchase Practical Guide to Red Hat Linux: Fedora Core and Red Hat Enterprise Linux, second edition, from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, carefully read the book review guidelines, then visit the submission page. -
Debian 3.0r4 Released
SeaFox writes "The Debian group has released an update to the 'Woody' distribution of the popular Linux/GNU OS. From the site: 'This is the fourth update of Debian GNU/Linux 3.0 (codename woody) which mainly adds security updates to the stable release, along with a few corrections to serious problems. Those who frequently update from security.debian.org won't have to update many packages and most updates from security.debian.org are included in this update.' But the question on everyone's mind is probably when the current Testing branch, featuring much more up-to-date packages, will be named the new stable release." -
Homemade Hypercube Case
blkmagic writes "I have to say this is probably the most amazing homemade case I've seen. The HyperCube^2 was inspired by Vincenzo Natali's first film, Cube. This is a long article, so here's a link to the gallery of images of the final product. I read about this on CubeOwner.com, a Cube site with a slightly different focus." -
Caveats In Reselling DSL Bandwidth To Neighbors?
chrisleetn writes "I'm contemplating getting Slashdot (Speakeasy) 6Mbps broadband or something similar and offering wireless internet access to my neighborhood. Speakeasy even has a plan to allow this. What should I be aware of as far as legal/business/regulatory implications? I know I need to restrict obvious illegal stuff and probably p2p to be safe, but is the local cable modem company going to come after me for competing with them? Has anyone done this who can offer some insight?" -
War of the Worlds, Chocolate Factory Trailers
rocketjam writes "The trailer for Tim Burton's version of 'Charlie and the Chocolate Factory' is online at Yahoo. The movie stars Johnny Depp and scheduled for release in July of '05. I think Tim Burton is the perfect director for a new Willie Wonka movie. The trailer looks very Burtonesque." And reader daquake writes "Our first peek at Steven Spielberg's contemporary version of War of the Worlds is available from Apple. Spielberg's installment is just one of many that have been developed throughout the years including a film produced last year n England." -
Reducing RFI at Home From Lighting Fixtures?
amper asks: "I'm in the process of building a new home recording studio. When I originally moved into my new (very old) house, I decided that in the interests of conserving energy, I would replace most of the incandescent lighting fixtures or lamps in my home with fluorescent fixtures or compact fluorescent replacement lamps in those fixtures which could not easily be replaced. Unfortunately, these fixtures are creating a massive amount of radio frequency interference in my home. The worst culprits seem to be the dimmable fluorescent fixtures in my living room. Barring replacing all my fixtures and lamps with conventional incandescents, can anyone point me in the direction of alternatives? Is it possible that the decreasing quality of most home goods has led to a decreasing quality in fluorescent ballast systems that are much more noisy from an RFI standpoint? Some of these fluo's are so noisy, they even emit audible sound! It's gotten so bad that I can't even play an electric guitar without turning off all the non-incandescent lighting in my house, which pretty much limits me to playing and recording during daylight hours (when I'm supposed to be out making money)." -
MySQL Database Design and Optimization
norburym (Mary Norbury-Glaser) writes "As the title suggests, Beginning MySQL Database Design and Optimization is intended for the range of users between novice and professional. It may seem difficult for one book to suit such a wide readership without losing readers on either end of the spectrum, or perhaps without providing adequate coverage to any particular audience, Apress has done what many other publishers have failed to do by providing an excellent series of 'novice to professional' books. An example of their dedication to detail and perfection is the inclusion of top-notch technical reviewers (Mike Hillyer, in this case, often found haunting Experts Exchange as one of the top MySQL experts) who provide expertise to the series. Authors Jon Stephens and Chad Russell have extensive combined PHP and MySQL experience that shows in the content of this volume. Readers with some MySQL experience who desire a broader range of instruction will gain much from this book. Experienced users will find quite a lot of valuable information that will extend their existing knowledge base. Concepts in design are better learned from the beginning to avoid repeating poor programming mistakes, but it's never too late to learn good practices." Read on for the rest of Norbury-Glaser's review. Beginning MySQL Database Design and Optimization author Jon Stephens and Chad Russell (Technical Reviewer: Mike Hillyer) pages 520 publisher Apress rating 8 reviewer Mary Norbury-Glaser ISBN 1590593324 summary MySQL Database Design and OptimizationThis book focuses on MySQL 4.0/4.1 but also gives consideration to v.3.23 users as well as a nod toward v.5. The layout of each chapter gives a description of the topic of the chapter, followed by the meat of the chapter, a summary and what's next (how the context of this chapter ties into the subject of the next). There are numerous "notes", cautionary flags, tips, screen shots, code examples as well as thoughts from each author that provide explanatory asides to the content. The authors also provide references to other volumes, as needed.
A glance through the table of contents will give the reader a precise overview of what to expect in this book: Review of MySQL Basics; MySQL Column and Table Types; Keys, Indexes and Normalization; Optimizing Queries With Operators, Branching and Functions; Joins, Temporary Tables and Transactions; Finding the Bottlenecks, MySQL Programming; and Looking Ahead.
Chapter 1: Review of MySQL Basics gives a very quick (under 50 pages) summary of how to connect to the MySQL server; MySQL's identifiers and naming conventions for databases, tables and columns; a review of MySQL's syntax, writing basic queries and using basic commands (create, drop, select, insert, update, delete); and a discussion of the use of table, column and expression aliases. This section, while adequate, is clearly intended as an analysis of core information necessary to proceed to further chapters.
Chapter 2 follows with MySQL Column and Table Types, which deal with datatypes and structures used to store the data. The goal here is to help the reader design effective tables (and therefore create a well-designed and efficient database) suited to the particular type of data at hand. Numeric types are covered in depth; strings, the null value, ENUM and SET are also addressed as well as common "gotchas" and developer errors.
Keys, Indexes and Normalization come naturally in Chapter 3, with optimal data handling the goal: the chapter addresses getting data in efficiently and getting the results out efficiently, eliminating redundant data, appropriate uses of indexes and common index creation errors.
The core of the book is clearly Chapter 4, "Optimizing Queries with Operators, Branching, and Functions." Here, optimization skills are honed; manipulation and filtering of data is one of MySQL's strengths and this chapter shows the reader how to replace less-than-ideal program logic with SQL constructs to precisely adjust query performance. There's a good demonstration here of outputting a list of member data to a web page. The ultimate goal in this chapter is to provide the reader good skills that translate into better efficiency and faster database interaction. As the authors point out, one obvious logical consequence of this is easier migration between platforms and programming languages.
The next reasonable step is to look at additional features that MySQL has up its sleeve that will save the developer time and effort in the overall scheme of application development. Chapter 5, "Joins, Temporary Tables, and Transactions" discusses three of these additional features. The authors carefully point out that each of these eliminate excess queries needed to pull data, decrease code overhead, minimize the need to store data as application logic, decrease the number of bugs that appear in code and help guarantee data integrity (an aspect of database design that unfortunately often takes a back seat to other priorities as developers are often not concerned with the validity of data in a real world sense; i.e. from the user's perspective).
Chapter 6, "Finding the Bottlenecks," addresses modifying system configuration variables outside of the default and how these can dramatically affect performance. The authors look at some available free tools that help monitor server performance and enable configuration changes including mytop, WinMySqlAdmin, phpMyAdmin and the new MySQL Administrator (available from MySQL AB). MySQL caching capabilities and the ability to decrease repetitious read/writes to disk (good table, key and query caching within MySQL) are discussed. Finally, database interoperability and abstraction layers are mentioned in terms of performance penalties vs. making life easier for the programmer.
MySQL Programming is the topic of Chapter 7, where a very good discussion of the MySQL API is provided. There are a lot of useful examples in this chapter covering many of the common MySQL APIs available (PHP's MySQL and MySQLi, Pythons's MySQLdb, ODBC, Perl's DBI), along with feature discussions and examples.
The final chapter, "Looking Ahead," examines MySQL v.4.1, 5.0 and 5.1 and some eagerly awaited new features, including stored procedures, stored functions, views and triggers.
This is a well-rounded volume on MySQL design. There are excellent examples and the flow of the text is conversational without being rambling and unstructured. The authors have obviously taken great pains to minimize tangents and extraneous information; pithy, but with sufficient detail in mind. The reader is left with neither the sense of being overwhelmed nor longing for an explanation for a glossed-over topic. This book is pretty much a "must have" for a MySQL programmer looking to bridge the gap between novice and professional.
You can purchase Beginning MySQL Database Design and Optimization from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
BusinessWeek On XORP vs. Cisco
cornfed writes "BusinessWeek is running this article talking about how XORP will take on Cisco's dominance in the router market. The article speculates that XORP could represent the next 'open-source rebellion.' One can only imagine the fallout within the telecommunications industry if an open-source project like this gained traction-- Cisco would not be the only giant to be slain." -
Knoppix Hacks
norburym writes "The publishers' blurb on the back cover describes Knoppix as 'a veritable Swiss Army knife in CD form.' Knoppix Hacks by Kyle Rankin is no less astounding in revealing the hidden versatility and power inherent in this unassuming tool." Read on for the rest of Norbury-Glaser's review. Knoppix Hacks: 100 Industrial-Strength Tips and Tools (with CD) author Kyle Rankin pages 336 publisher O'Reilly rating 10 reviewer Mary Norbury-Glaser ISBN 0596007876 summary Knoppix HacksMost Linux users will recognize Knoppix even if they've never given it a whirl, but this book goes beyond the simple "how to create and boot from a Knoppix Linux Live CD." Rankin displays the raw power that lies beneath the surface of simply running a clean distro of GNU/Linux free from fear of installation issues. Proper Knoppix books are lacking in the wild, with mere chapters in general Linux volumes mostly dedicated to larger issues for both the novice and the intermediate user. One or two Knoppix books are out there (and one by Samuel Hart, Knoppix Komplete, is in press) but what sets Knoppix Hacks apart is not that it is one of the few available on the subject, but rather Rankin's skill in exposing the underutilized potential in the Knoppix tool set.
This book begins with a forward by Klaus Knopper, creator of Knoppix. It's always entertaining and enlightening to read a first-hand account of some clever soul's chance involvement with an "experiment" that turned out wildly successful and this is no exception. The "Knoppix Story" is engaging and leaves the reader with a sense of awe at the ingenuity of this dedicated and resourceful individual.
Rankin has collected a "who's who" of Linux hackers to contribute to this book: John Andrews, creator of Damn Small Linux; Fabian Franz, creator of FreeNX server; Alex de Landgraaf, creator of Morphix; Simon Peter, developer of klik; Wim Vandersmissen, creator of ClusterKnoppix and many others no less accomplished, all of whom have contributed to the future of free software/open source development.
As is expected with the O'Reilly Hacks series of books, the chapters are structured with clean typographical conventions identifying URLs, directory/folder/file names, code examples and excerpts, sample text delineation and cross-references. Tips and warnings are clearly identified with pushpin and screw graphics, respectively, and indented. There are a helpful number of tips without getting too overwhelming or annoying by breaking the flow of the text. The thermometer icons next to each hack indicate the level of expertise required: beginner, intermediate and expert. Screenshots are placed where needed but again, the reader isn't left distracted by unnecessary filler.
The nine chapters cover hacks ranging from beginner to expert: "Boot Knoppix," "Use your Knoppix Desktop," "Tweak Your Desktop," "Install Linux with Knoppix," "Put Knoppix in Your Toolbox," "Repair Linux," "Rescue Windows," "Knoppix Reloaded" and "Knoppix Remastered." The book includes a CD with v.3.4 of Knoppix (3.6 having just been released; the author wisely chooses to stay with the tried, true and debugged version).
The first two chapters are pitched to beginners, with Chapter 1, "Boot Knoppix," leaping directly into downloading Knoppix and creating a bootable CD. It then covers "cheat codes" - options passed at the boot: prompt to work around hardware detection and support failures. Tweaking X settings, desktop and laptop scenarios, language settings and optimizing the Knoppix CD are also included here. Chapter 2 introduces details of the KDE desktop and encourages the reader to become familiar with the Knoppix desktop, the applications included and connecting to the Internet (even via GPRS over Bluetooth!).
Chapter 3 concentrates on saving settings and documents, using Knoppix as a kiosk or terminal server to boot multiple computers over a network from the same Knoppix CD, and how to use the live installer feature to add extra packages directly to ramdisk.
Chapter 4 covers the inevitable situation when you will find yourself using Knoppix so often that you decide to install it onto your hard drive. Rankin includes single and dual boot system installs.
Chapter 5, "Put Knoppix in Your Toolbox," is where admins should head. The full list of 15 indispensable hacks in this chapter include running remote desktops via rdesktop or xvncviewer, running X remotely with FreeNX, browse Windows shares, create an emergency router, emergency file or web server, wardriving with Knoppix (including how to capture GPS coordinates along with data), audit network security, check for root kits, collect forensics data, clone hard drives, wipe hard drives, test hardware compatibility, and copy settings to other distributions.
"Repair Linux" (Chapter 6) is for those of us who spend a lot of time "breaking" things in the course of experimenting and need to recover the system. Rankin shows hacks for repairing both lilo and grub, how to: back up and restore the MBR, find lost partitions, resize linux partitions, repair damaged file systems, recover deleted files, rescue files from damaged hard drives, backup and restore, migrate to a new hard drive, create Linux software RAID, reset Linux passwords, repair Debian and RPM packages, and copy a working kernel. We will always break something along the way and these hacks help minimize the frustration.
Chapter 7, "Rescue Windows"...well, need I say more? Put these hacks into practice and you'll probably be using them every day. Use Knoppix to: fix the Windows boot selector, backup files and settings, write to NTFS, resize Windows partitions, reset lost NT passwords, edit the Windows registry, restore corrupted system files, scan for viruses and download Windows patches securely. A must for any systems administrators with Windows machines lurking everywhere.
Knoppix Reloaded, in Chapter 8, takes on Knoppix variants Morphix, Gnoppix, Mediainlinux, Freeduc, Damn, Small Linux, INSERT, L.A.S. Linux, Knoppix-STD, distccKnoppix, ClusterKnoppix, Quantian, GIS Knoppix and KnoppMyth. There is also a well-deserved pitch at the conclusion of this chapter to become a Knoppix developer and contribute to the ongoing work.
The final chapter includes seven hacks that help the reader create their own customized Knoppix CD. Knoppix Remastered walks the reader through the steps of customizing and personalizing a live CD.
This is one of the liveliest technical books I've read in a long time. A few of the easier hacks can be found on Knoppix.net or elsewhere but I think Rankin has managed to put the majority of Knoppix related material in one book that could be subtitled the "First Knoppix Manual." The admin hacks, in particular, will add a whole new arsenal of Knoppix wonders to an admin's repertoire. Kudos to O'Reilly for publishing such an outstanding volume, to Rankin for compiling some damn useful material, and to MacGyver for inspiring many of us to look for simple solutions to seemingly insurmountable problems.
You can purchase Knoppix Hacks from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
Examining Mac OS X 10.4's Spotlight
Ton writes "Apple has published a discussion of Spotlight, the radical systemwide search technology that will be part of Mac OS X 10.4 'Tiger'. The really interesting part is that metadata will be playing a big role in Spotlight while just a few years ago people were afraid metadata in Mac OS X was going the way of the dodo." -
Teaser Trailer for 'Cars'; Info on 'Polar Express'
Michael Wyszomierski writes "The teaser trailer for the final Disney/Pixar film, Cars, is now available on Apple's Movie Trailers page. The film will open in theaters on November 4, 2005." And reader BoredStiff writes "The movie Polar Express will open Wednesday and could create a film genre somewhere between animation and live action. Made almost exclusively with a method called performance capture, which drops digitized human actors into a computer-animated world. The technique has been used in some video games and, to a limited extent, in earlier movies. Warner Bros. says The Polar Express is the first feature made solely with the process." -
'Opener' Malware Targets OS X
the_webmaestro writes "Macintouch.com is covering the "opener" malware, a new and potential vulnerability which affects Mac OS X. If true (it's not on HoaxBusters yet), this could become a Mac user's worst nightmare... Worse even than Microsoft Word macro viruses (heretofore the only real 'viruses' which threatened Mac users)! Normally, when ever I'd see virus alerts, I'd revel in the fact that as a Mac user, I was immune (except for the slow-down of the net, the loss in productivity of my colleagues, and the increase in SPAM--often coming from my friends and colleagues). [Sigh] Perhaps, my days of telling friends and family that there are no viruses for Macs may be coming to an end. There have been stories." -
Mt. St. Helens Magma Reaches Surface
daquake writes "Volcanic rock has flowed to the surface of Mount St. Helens' crater, creating a new lava dome after weeks of seismic activity, the bulge had risen at least 330 feet since scientists noticed it September 30. Geologists said there is still a chance of explosive ash eruptions from the 8,364-foot mountain, and the immediate area around the volcano remained closed." -
Did Kerry Use a Cheat Sheet?
mrbrown1602 writes "The Drudge Report is reporting that repeated viewing of video from the first Presidential Debate shows Senator John Kerry reaching into his coat pocket for what looks like to be a piece of paper, and he proceeds to unfold it on the lectern. According to the rules set by the Commission on Presidential Debates, candidates are not allowed to bring anything with them on stage (even something as simple as a pen, which is what Kerry's people says it was), and everything they may need (water, tissues, pens, etc.) are provided at the lectern. So what DID Senator Kerry bring out there, anyways?" There's also a QuickTime movie. -
Beginning PHP and MySQL
norburym writes "W. Jason Gilmore and Apress have put together an impressive volume, both in girth and content, in Beginning PHP 5 and MySQL, From Novice to Professional. At first glance, it appears that any technical manual that tries to approach such heady stuff such as PHP and MySQL for an audience ranging the span from beginner to the uber-geek is headed for failure. Happily, I can report that Gilmore and Apress have given the world one book that will replace many other PHP and MySQL volumes. This is one that the reader will consistently rely on and keep near to hand." Read on for the rest of Norbury-Glaser's review. Beginning PHP and MySQL: From Novice to Professional author W. Jason Gilmore pages 800 publisher Apress rating 9 reviewer Mary Norbury-Glaser ISBN 1893115518 summary PHP and MySQLOne key to the book's success is the manner in which Gilmore approaches his subjects. The text is split neatly into three sections: the first deals exclusively with PHP and comprises the bulk of the book's content, the second section goes into depth with MySQL and the final chapters deal with PHP/MySQL integration. This layout is where the promise of appealing to such a wide range of user abilities succeeds admirably. The beginner can read cover to cover and come out of the pipe with a solid, practical knowledge of PHP, MySQL and how to combine the two to build advanced web applications. An experienced MySQL or PHP guru can skip the area of his expertise and gain much from the chapters on the other. A more advanced user can use this book as reference material, skim the chapter outline, pick and choose topics of interest and quickly find the answers they seek. Everything is cleanly written, with little or no anecdotal filler or asides. Each chapter begins with a nice overview of what will be covered and ends with a brief but concise summary.
Gilmore begins with nine chapters specific to the PHP language and its many core features and extensions, taking particular care over installation and configuration issues (platform specific instructions are included for UNIX/Linux (Mac OS X users can swim in this pool very easily) and Windows), basics (data types, variables), functions, arrays, PHP's object-oriented functionality and expressions. The next ten chapters delve deeper into PHP's file and operating system functions, web form integration, http authentication, file upload management, LDAP, session management (one of the best aspects of PHP and incredibly easy to use), Web Services (SOAP, SimpleXML extensions as well as NuSOAP and MagpieRSS -- cool stuff!), security and PHP's SQLite database extension. SQLite is an exciting multi-platform database engine that will most likely prove to be hugely popular in the near future. It's interesting to note that Apple plans to integrate SQLite into their next release of OS X, Tiger. Also of note is Gilmore's well-written chapter on PHP and LDAP. He provides an extremely competent introduction to LDAP and PHP's LDAP extension. If you work in an enterprise environment, this knowledge will become an integral part of your mindset and vocabulary.
The SQL section of the book is compact and concise. Gilmore manages to take the reader through a fast but detailed introduction to MySQL. Installation and configuration, clients (the standard set and some GUI based administration clients), table structures and security/user management are all explained with precision and an eye toward practical expectations.
Chapters 26 through 30 stand out, with an integrated approach to both PHP and SQL. This is where Gilmore pulls it all together. The reader is introduced to PHP's MySQL functionality, creating MySQL database classes, indexing and searching, transactions and importing and exporting data. There are numerous excellent real-world examples throughout this section that will enable the reader to create elegant, advanced web applications.
Gilmore removes the complexity and ambiguity inherent in many technical books and gives the reader a detailed approach to these two wildly popular open source packages. Beginning PHP 5 and MySQL will definitely serve the novice, the professional and those in between. For anyone wondering what all the fuss is about with PHP or MySQL or for anyone who has wanted that one volume that will explain it all, this is definitely the book for you. It is at once an excellent tutorial and an indispensable reference manual.
You can purchase Beginning PHP and MySQL: From Novice to Professional from bn.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page. -
AT&T Considers Mac OS X, Linux For 70,000 Desktops
hype7 writes "CNet's News.com.com is reporting that AT&T is reconsidering its corporate IT investment in Microsoft Windows - with both Mac OS X and Linux being considered. Although the article notes that AT&T is not actively seeking to replace Windows, there's a wonderful quote on the page from the AT&T guy - 'Any CIO would not be doing due diligence if they are not looking at their options now.'" As with previous mass-migration stories, a cynical (or realistic) viewpoint is also that by "looking into" non-Windows operating systems, they're giving themselves a bargaining chip when talking with Microsoft. Update: 10/06 17:35 GMT by T : Actually, that's 70,000 desktops, rather than 7,000 as originally stated. -
New Clustering Search Engine to battle Google
Sophrosyne writes "The New York Times is reporting a new search engine [free if DNA on file with Homeland Security] named "Clusty" is going to try and take Google head-on. The new search engine was developed by three former CMU computer scientists who formed the company Vivisimo. The search engine uses Overture for it's results but offers new features such as an encyclopedia search, clustered results, and a gossip search." -
AOL Will Not Support Sender-ID
DominoTree writes "America Online said Thursday that it will not support the Microsoft-backed antispam technology called Sender-ID. The online giant cited 'lackluster' industry support and compatibility issues with the anti-spam technology SPF that AOL supports." -
Next iChat version to include Jabber support
SeaFox writes "A couple of stories about new features in the next version of Mac OS X have revealed that the new iChat 3.0 will include support for Jabber. With businesses able to host their own messaging servers behind the firewall and use it with Apple's included IM client, will this effect Jabber's overall share of the IM market?" -
Independent Developers Fight Piracy & Lose
An anonymous reader writes "The author of the Echelon decided to take his fight against software piracy to the next level and then threw in the towel. After someone began posting new serial numbers on a well known hacking site, the author took matters into his own hands. With version 1.0, entering a hacked serial number causes the software deleted the user's Home directory. Yes, you read it right, the software completely erases it (aka rm -rf ~). A variety of people have voiced some some strong opinions on this. While some argue that piracy is good for established companies, a few large companies are battling piracy and having limited success. Small, independent developers, however, are recognising this is a serious problem and are generally stumped by what to do about it." -
Politics Making Strange Bedfellows
loid_void writes "Leave it to Reuters to report that the run-up to the U.S. presidential election is casting the spotlight on a new crop of Web sites for political-minded singles who are seeking Mr. or Ms. Right... or Left. But as such sites make small gains in the polls, another debate is brewing among singles in this politically divided nation: Is it better to find a like-minded mate or to cross party lines in the search for true love? Reached last week on his cell phone at the Republican National Convention in New York, Brian Barcaro said he does not interparty date and has no plans to start... let the debate begin!" -
Samsung Introduces Phone With Hard Drive
swight1701 writes "It is being reported that Samsung has shown what it claims is the world's first mobile phone that incorporates a hard drive. The model, V5400, is integrated with a 1" hard drive with 1.5GB of capacity. Other features of the phone include - 2.2" LCD display, an MP3 player, electronic book reader, and Korean-English dictionary. Samsung has also included a built-in microphone to enhance the audio in the phone's camcorder feature. The included dual-speakers allow the user to listen to music with a 3D appeal." loid_void adds a link to this Reuters story, too. -
Moving To Linux
norburym writes "This is an interesting format for a techie book geared at non-techies: instead of providing a detailed installation and configuration instruction set for a particular full Linux distribution, Marcel Gagne has included a Knoppix CD with his book, Moving to Linux: Kiss the Blue Screen of Death Goodbye! The author's intention is clearly to give the reader a no-risk introduction to Linux. As such, this book is not intended for power users or professionals; there are other books more suited for this market. At the same time, this book is not really for the Dummies style audience, either. It's for the Windows user who is looking to migrate to the Linux platform and find solutions to his or her day to day computing needs." Read on for the rest of norburym's review.
Since the book comes with Knoppix and the author's purpose is to introduce the Linux desktop immediately, the first few chapters of this book only briefly describe what Linux versions are available, how to get a copy and how to install your chosen distro. Gagne gives some example installation choices with Mandrake, Redhat and SuSE. The next two chapters deal with using and customizing the author's desktop environment of choice (KDE) and exploring with Konquerer.Chapter 7 provides a "release-agnostic" approach to package installation with examples and screen shots from Kpackage, RPM installs via shell and building from source. Most readers will become quite familiar with Chapter 8: Working with Devices, despite the author's exclamation that "Device support under Linux is excellent. No, really." Printing looms large in this chapter and there's some good advice to be had here for the newbie. The next several chapters tackle getting connected to the Internet, email and using Konquerer and Mozilla. In short, mainstream user necessities. Mandrake, RedHat, SuSE, and Ximian are all represented in the chapter on system updates along with a pitch to get involved in the Linux community (this is a good thing).
The make-or-break chapters for those readers requiring office productivity solutions come near the half point of the book. Gagne gives an overview of OpenOffice.org's suite of MS Office counterparts. These are really meant as introductory lessons on migrating from the more familiar, more ubiquitous MS suite of applications and not intended as an in-depth look at OpenOffice.org. Here is where the user will judge whether Linux is a viable alternative to Windows. Productivity is essential. Can you create a document that can be shared in a Windows dominant world? Can you do it without struggling to learn new rules and exceptions to the rules? Gagne makes a strong pitch for ease of use in the Linux world.
The final chapters on multimedia and games round out the topics that every semi-literate computer user has on their "must know how to" list. Under multimedia, KsCD, XMMS and Noatun are covered, including visualization plugins and skins. K3b, Grip and MPlayer are also described. Favorite Linux games are represented: KSirtet, KAsteroids, Frozen-Bubble, KBattleship, KPatience, KPoker ... well, you get the idea!
Care has been taken in laying out the book; from the beautiful typography, the boxed asides with Quick Tips, Shell Outs and Notes to the Resources list at the end of each chapter. The book is easy to read and the author has a crisp conversational style of writing devoid of distracting anecdotes or sophomoric humor (chapter subheadings aside!). Gagne succeeds in providing a guidebook to Linux that should enable the average Windows users to make a smooth transition to a Linux distro of their choice. At the very least, Gagne gives the nervous Windows-to-Linux wannabe an excellent bootable Knoppix CD to test drive while following along in the book. I wouldn't hesitate to recommend this book to someone who is looking to give Linux a spin but is afraid to commit their working PC to Linux entirely. This book and the accompanying CD will ease the way toward independence from Windows.
You can purchase Moving to Linux: Kiss the Blue Screen of Death Goodbye! from bn.com. Slashdot welcomes readers' book reviews. To see your own review here, carefully read the book review guidelines, then visit the submission page. -
iTMS Sells 100,000,000th Song
Macslacker writes "At 10:26 PM PDT on Sunday, July 11, Apple apparently sold its 100 millionth song at the iTunes Music Store. While the contest may now be over, congrats to Apple for a job well done." -
Browser Wars 2004
J. Hobbs writes "Recent posts on David Hyatt's site describing the new technology he's working on for Dashboard, coupled with recent announcements from the newly formed WHAT-WG alliance (Apple, Mozilla, and Opera) could add up to a potentially new kind of application development and deployment that I explore in this highly speculative essay. See if you don't agree..."