GIT IN PRACTICE: A fine how-to guide, with 66 techniques for greater effectiveness in individual & team settings – #programming #bookreview



Git in Practice

Mike McQuaid

Manning Books – paperback


I have taken Git how-to classes and read several how-to books on the Git distributed version control system. But I don’t use Git every day. Therefore, I tend to forget how to do certain tasks when I once again start bumbling around with my various local and remote Git repositories.

Git in Practice is exactly the book I have been needing at my computer. Git in Practice gives clear how-to steps, plus descriptions of ways to be more efficient and effective with Git in individual and team settings. And the well-written book even provides interesting background on how Git came to be–and be the way that it is.

For Git newcomers (and for those like me who tend to get rusty fairly quickly), the book’s appendices include how install Git, how to create a GitHub account and repository and how to benefit from the author’s heavily commented Git configuration files. There also is a handy index of Git methods for those times when you think you remember a particular command-line entry but aren’t sure exactly what is supposed to happen and what options, if any, may appear.

It matters not if you are new to Git, or someone who uses Git sporadically, or someone who uses Git daily as part of a software development or software test team. Git in Practice is a fine and useful book to keep within reach.


– Si Dunn

CouchDB and PHP Web Development Beginner’s Guide – #programming #bookreview

CouchDB and PHP Web Development Beginner’s Guide
Tim Juravich
(Packt Publishing, paperbackKindle)

CouchDB and PHP can be a formidable team when used to create web applications. 

“CouchDB is a database that completely embraces the web,” according to the Apache CouchDB website. Data is stored with JSON documents; documents can be accessed with a web browser via HTTP; and JavaScript can be used to “query, combine, and transform” documents. “You can even serve web apps directly out of CouchDB,” the site states.

Meanwhile, PHP is “a widely-used general-purpose scripting language that is especially suited for Web development and can be embedded into HTML,” its website notes.

The new CouchDB and PHP Web Development Beginner’s Guide by Tim Juravich is an excellent source for learning how to make the two packages work together. His focus, in the book, is on developing and honing skills by discovering “the ins and outs of building a simple but powerful website using CouchDB and PHP.”

After installing CouchDB and PHP, you learn how to create and enhance a simple, Twitter-like social network called “Verge.” It is an application that “will allow users to sign up, log in, and create posts,” the author states.

CouchDB and PHP Web Development Beginner’s Guide is available through Amazon, Barnes & Noble, and Safari, and also can be ordered direct from the Packt Publishing website in digital formats as well as print.

The book is packed with how-to steps and explanatory details. And it is organized into 10 well-defined chapters.

  • Chapter 1: Introduction to CouchDB
  • Chapter 2: Setting up your Development Environment
  • Chapter 3: Getting Started with CouchDB and Futon
  • Chapter 4: Starting Your Application
  • Chapter 5: Connecting Your Application to CouchDB
  • Chapter 6: Modeling Users
  • Chapter 7: User Profiles and Modeling Posts
  • Chapter 8: Using Design Documents for Views and Validation
  • Chapter 9: Adding Bells and Whistles to Your Application
  • Chapter 10: Deploying Your Application

A key strength of this book is its structure and use of focused headings. For example, when it is time to do something at your computer, there is a “Time for action” heading, such as: “Time for action – creating new databases in CouchDB.”

The step-by-step procedures that you then perform are laid out clearly in numbered order. And you get more than a brief description or illustration of what is supposed to happen. Juravich follows up with summary paragraphs labeled “What Just Happened?”  These summaries describe the purposes of the steps just performed and what they achieved.

Also, at the end of each chapter, he includes a helpful summary of the key points he has covered.

CouchDB and PHP Web Development Beginner’s Guide is well written and follows a classic and effective teaching model: “Tell them what you are going to tell them, tell them, and then tell them what you just told them.”

Its example code files can be downloaded from the Packt website or sent to you by email after you have registered with Packt.

The second chapter includes instructions for installing Apache, PHP, Git (for version control), and CouchDB on Windows, Linux and Mac OS X machines. But it is worth noting that the author restricts most of his discussions to the Mac OS X operating system (10.5 and later) and uses Mac OS command line statements “for simplicity and brevity.”

Windows and Linux users likely will have to do some command-line translations and work with files in different locations than described. Newbies with Windows or Linux machines should wait and gain more command-line experience first or find a mentor who knows both Mac OS X and Windows or Linux before tackling this book.

Maybe someone will write a similar CouchDB-PHP book for Windows and/or Linux users soon?

Si Dunn

Drupal for Designers – Putting Drupal to work, with good planning and design up front – #bookreview

Drupal for Designers
Dani Nordin
(O’Reilly, paperbackKindle)

Drupal has (1) a lot of fans, (2) a lot of people who wonder what the heck it is, and (3) a lot of people who complain about it.

Sometimes, a Drupal user is each of these at the same time.

Officially, Drupal is “an open source content management platform powering millions of websites and applications.” Thousands of add-on modules and designs are available, and individuals, groups, organizations and companies use Drupal “to build everything from personal blogs to enterprise applications.” Indeed, some big and well-known sites use Drupal, including The Economist, and the White House, to name a few.

There is a learning curve, but Drupal specialist Dani Nordin’s new book can help you (1) get started with Drupal, (2) help you wrap your mind “around the way Drupal handles design challenges,” and (3) help you master important techniques and tools. You will also learn the importance of doing detailed site planning first and keeping up with version control, even if you are a solo designer.

The book focuses on Drupal 7, but much of the material can be used with Drupal 6. Some parts of the book are “version-agnostic.”

Dani Nordin also offers case studies involving two of her ongoing efforts, so readers can “see how these ideas work in the real world, with all the frustrations and moments of unexpected joy that happen in real projects.”

She adds: “Through these projects, I can show you a typical Drupal design process—from creating the project brief to ideation and sketches to prototyping and applying our look and feel to the site’s theme.”

Drupal for Designers is a compilation of three previous short guides, with new materials added. It is aimed, the author says, at “the solo site builder or small team that’s itching to do interesting things with Drupal but needs a bit of help understanding how to set up a successful Drupal project.”

To work with Drupal, you should have some familiarity with HTML and CSS, and you should be open to learning some PHP.

Drupal for Designers has 303 pages and 22 chapters that are grouped into seven parts:

  • Part 1: Discovery and User Experience
  • Part 2: Sketching, Visual Design, and Layout
  • Part 3: Setting Up a Local Development Environment
  • Part 4: Prototyping in Drupal
  • Part 5: Making It Easier to Start Projects
  • Part 6: Working with Clients
  • Part 7: Sample Documents (for designers, including a project brief, a work agreement, and a project proposal)

There is no one “right” way to use Drupal, the author notes. “Every Drupal designer and site builder has his or her own approach to creating projects….”

But careful planning and design work up front will be essential to your success, she emphasizes.

Si Dunn

Version Control with Git, 2nd Ed. – Bring order to software development’s collaborative chaos – #bookreview #programming

Version Control with Git, 2nd Edition
Jon Loeliger and Matthew McCullough
(O’Reilly, paperbackKindle)

When I first took a job in software development, individual programmers controlled code versions themselves, and they jealously guarded their releases with back-ups on multiple diskettes – 5.25” diskettes. The real floppies. (Yep, I’m so old I actually worked with a few 8-inch floppies, too.)

It’s a different world now. Code for one project often is developed, modified, tested and controlled by groups of people, sometimes big groups. And many of those who work with the project’s code are scattered all over the planet.

Thus, maintaining version control and keeping good backups are major management challenges for software developers today. There’s no more going home after work with 10 big floppies in your briefcase as a hedge against your office burning down overnight.

Git is a popular, if somewhat difficult, tool for tracking, branching, merging, and managing code revisions. The authors of Version Control with Git favor the term “version control system (VCS)” for this and other software packages that perform similar functions. (“Source code manager (SCM)” is another popular label.)

In their updated and expanded 2nd edition, here is how they sum up the imperative for strong version control:

“No cautious, creative person starts a project nowadays without a back-up strategy. Because data is ephemeral and be lost easily—through an errant code change or catastrophic disk crash, say— it is wise to maintain a living archive of all work. For text and code projects, the back-up strategy typically includes version control, or tracking and managing revisions. Each developer can make several revisions per day, and the ever-increasing corpus serves simultaneously as repository, project narrative, communication medium, and team and project management tool. Given its pivotal role, version control is most effective when tailored to the working habits and goals of the project team.”

Whether you do or do not yet have experience with a version control system, you can glean important information and numerous useful tips from this book’s 21 chapters and 434 pages. Version Control with Git covers a lot of vital ground in a well-organized how-to fashion, with plenty of code samples and related illustrations.

One example out of its many key lessons: “As the developer of content for a project using Git, you should create your own private copy, or clone, of the repository to do your development. This development repository should serve as your own work area where you can make changes without fear of colliding with, interrupting, or otherwise interfering with another developer.”

In another key lesson, they show how to use git stash, “the mechanism for capturing your work in progress, allowing you to save it and return to it later when convenient….the stash is a quick convenience mechanism that allows a complete and thorough capturing of your index and working directory in one simple command. It leaves your repository clean, uncluttered, and ready for an alternate development direction. Another single command restores that index and working directory state completely, allowing you to resume where you left off.”

In a software development environment where everything is a crisis and priorities change hourly on what should have been finished yesterday, git stash save and git stash pop may become two of your favorite commands.

The book describes installing versions of Git for Linux and Microsoft Windows, and for running within Cygwin. It also can be run on Mac OS X and Solaris systems. Meanwhile, most of the book’s chapters focus on using the Git command line tool. But the new 2nd edition also devotes a chapter to what many Git users consider the most vital tool that has emerged from the big online community that now surrounds Git:

Developers often clone a repository from GitHub. Several types of public and private repositories also can be created there. And so-called “social coding” is available. Indeed, many open source projects are hosted on GitHub, and some of them attract people who simply watch the coding, while others do coding in personal “forks” that may or not prove helpful to those more officially involved in the project. Yet another popular use of GitHub is finding useful code examples in particular programming languages.

Whether Git is in your working future or it’s already here, or if you’re still wondering if it can help you, definitely check out Version Control with Git.

Si Dunn