Spring Data: Modern Data Access for Enterprise Java – #java #bookreview

Spring Data: Modern Data Access for Enterprise Java
Mark Pollack, Oliver Gierke, Thomas Risberg, Jonathan L. Brisbin and Michael Hunger
(O’Reilly, paperbackKindle)

Big Data keeps getting wider and deeper by the second. And so do the demands for analyzing and profiting from all of those piled-up terabytes.

Meanwhile, the once whiz-bang technology known as the relational database is having a very hard time keeping pace. The sheer amount of data that companies now gather, store, access, and analyze is pushing traditional relational databases to the breaking point.

Many Java developers who are trying to keep these overloaded systems held together with baling wire, also are starting to learn to work with some of the “alternative data stores that are being used in mission-critical enterprise applications,” the authors of Spring Data point out.

A lot of data now is being stored elsewhere and not in relational databases. Yet companies cannot abandon what they have already gathered and invested heavily to access. So they need to keep using and supporting their relational databases, plus some newer, faster, more voracious solutions lumped under the heading “NoSQL databases,” (even though you can query them).

In “the new data access landscape,” the authors note: “there is a revolution taking place, which for data geeks is quite exciting. Relational databases are not dead; they are still central to the operations of many enterprises and will remain so for quite some time. The trends, though, are very clear: new data access technologies are solving problems that traditional relational databases can’t, so we need to broaden our skill set as developers and have a foot in both camps.”

They add: “The Spring Framework has a long history of simplifying the development of Java applications, in particular for writing RDBMS-based data access layers that use Java database connectivity (JDBC) or object-relational mappers.”

Their new book “is intended to give you a hands-on introduction to the Spring Data project, whose core mission is to enable Java developers to use state-of-the-art data processing and manipulation tools but also use traditional databases in a state-of-the-art manner.”

They have organized their 288-page book into six parts and 14 chapters:

Part I – Background

  • Chapter 1 – The Spring Data Project
  • Chapter 2 – Repositories: Convenient Data Access Layers
  • Chapter 3 – Type-Safe Querying Using Querydsl

Part II – Relational Databases

  • Chapter 4 – JPA Repositories
  • Chapter 5 – Type-safe JDBC Programming with Querydsl SQL

Part III – NoSQL

  • Chapter 6 – MongoDB: A Document Store
  • Chapter 7 – Neo4j: A Graph Database
  • Chapter8 – Redis: A Key/Value Store

Part IV – Rapid Application Development

  • Chapter 9 – Persistence Layers with Spring Roo
  • Chapter 10 – REST Repository Exporter

Part V – Big Data

  • Chapter 11 – Spring for Apache Hadoop
  • Chapter 12 – Analyzing Data with Hadoop
  • Chapter 13 – Creating Big Data Pipelines with Spring Batch and Spring Integration

Part 5 – Data Grids

  • Chapter 14 – GemFire: A Distributed Data Grid

“Many of the values that have made Spring the preferred platform for enterprise Java developers deliver particular benefit in a world of fragmented persistence solutions,” states Ron Johnson, creator of Spring Framework. Writing in the book’s foreword, he notes: “Part of the value of Spring is how it brings consistency (without descending to a lowest common denominator) in its approach to different technologies with which it integrates.

“A distinct ‘Spring way’ helps shorten the learning curve for developers and simplifies code maintenance. If you are already familiar with Spring, you will find that Spring Data eases your exploration and adoption of unfamiliar stores. If you aren’t already familiar with Spring, this is a good opportunity to see how Spring can simplify your code and make it more consistent.”

Spring Data definitely is not light reading, but it is well-written, and provides a good blending of procedures, steps, explanations, code samples, screenshots and other illustrations.

Si Dunn

Ethics of Big Data – Thoughtful insights into key issues confronting big-data ‘gold mines’ – #management #bookreview

Ethics of Big Data
Kord Davis, with Doug Patterson
(O’Reilly, paperbackKindle)

“Big Data” and how to mine it for profit are red-hot topics in today’s business world. Many corporations now find themselves sitting atop virtual gold mines of customer information. And even small businesses now are attempting to find new ways to profit from their stashes of sales, marketing, and research data. 

Like it or not, you can’t block all of the cookies or tracking companies or sites that are following you, and each time you surf the web, you leave behind a “data exhaust” trail that has monetary value to others. Indeed, one recent start-up, Enliken, (“Data to the People”), is offering a way for computer users to gain some control over their data exhaust trail’s monetary value and choose who benefits from it, including some charities.

Ethics of Big Data does not seek to lay down a “hard-and-fast list of rules for the ethical handling of data.” The new book also doesn’t “tell you what to do with your data.” Its goals are “to help you engage in productive ethical discussions raised by today’s big-data-driven enterprises, propose a framework for thinking and talking about these issues, and introduce a methodology for aligning actions with values within an organization.”

It’s heady stuff, packed into just 64 pages. But the book is well written and definitely thought-provoking. It can serve as a focused guide for corporate leaders and others now hoping to get a grip on their own big-data situations, in ways that will not alienate their customers, partners, and stakeholders.

In the view of the authors: “For both individuals and organizations, four common elements define what can be considered a framework for big data:

  • “Identity – What is the relationship between our offline identity and our online identity?”
  • “Privacy – Who should control access to data?”
  • “Ownership – Who owns data, can rights be transferred, and what are the obligations of people who generate and use that data?”
  • “Reputation – How can we determine what data is trustworthy? Whether about ourselves, others, or anything else, big data exponentially increases the amount of information and ways we can interact with it. This phenomenon increases the complexity of managing how we are perceived and judged.”

Big-data technology itself is “ethnically neutral,” the authors contend, and it “has no value framework. Individuals and corporations, however, do have value systems, and it is only by asking and seeking answers to ethical questions that we can ensure big data is used in a way that aligns with those values.”

At the same time: “Big data is pushing corporate action further and more fully into individual lives through the sheer volume, variety, and velocity of the data being generated. Big-data product design, development, sales, and management actions expand their influence and impact over individuals’ lives that may be changing the common meanings of words like privacy, reputation, ownership, and identity.”

What will happen next as (1) big data continues to expand and intrude and (2) people and organizations  push back harder, is still anybody’s guess. But matters of ethics likely will remain at the center of the conflicts.

Indeed, some big-data gold mines could suffer devastating financial and legal cave-ins if greed is allowed to trump ethics.

Si Dunn

PostgreSQL: Up and Running – Get a well-guided grip on this powerful, free database software – #bookreview

PostgreSQL: Up and Running
 Regina Obe and Leo Hsu
(O’Reilly,
paperbackKindle)

PostgreSQL is both a powerful open source database system and a very flexible application platform.

“PostgreSQL allows you to write stored procedures and functions in several programming languages, and the architecture allows you the flexibility to support more languages,” this book’s two authors point out.

Indeed: “You can have functions written in several different languages participating in one query.”

Release 9.2 of PostgreSQL hit the web Sept. 10, 2012. Regina Obe’s and Leo Hsu’s fine, 145-page introduction to PostgreSQL focuses on Release 9.1, but describes major 9.2 features, too. And their book definitely can be used to get you up and running. It describes “the unique features of PostgreSQL that make it stand apart from other databases…”, and shows “how to use these features to solve real world problems.”

PostgreSQL is not for every database user, the writers emphasize. “PostgreSQL was designed from the ground up to be a server-side database. Many people do use it on the desktop similarly to how they use SQL Server Express or Oracle, but just like those, it cares about security management and doesn’t leave this up to the application connecting to it. As such, it’s not ideal as an imbeddable database, like SQLite or Firebird.”

It also “does a lot and a lot can be daunting,” they concede. “It’s not a dumb data store; it’s a smart elephant. If all you need is a key value store or you expect your database to just sit there and hold stuff, it’s probably overkill for your needs.”

But after years of using PostgreSQL, the two writers remain unabashed fans. “Each update,” they state in their book, “treats us to new features, eases usability, brings improvements in speed, and pushes the envelope of what is possible with a database. In the end, you will wonder why you ever used any other relational database, when PostgreSQL does everything you could hope for—and does it for free.”

By the way, users of PostgreSQL 8.3 or older need to upgrade ASAP, Regina Obe and Leo Hsu urge. Release 8.3 “will be reaching end-of-life in early 2013,” making support increasingly difficult and expensive.

Si Dunn

FileMaker Pro 12: The Missing Manual – A big but easy how-to guide by two experts – #bookreview #database

FileMaker Pro 12: The Missing Manual
Susan Prosser and Stuart Gripman
(O’Reilly,
paperbackKindle)

The good news is: “FileMaker Pro is the ease-of-use champion.” It avoids common database “jargon words like query, join, and alias.” Instead, the two authors state, it uses “simple concepts like find, sort, and connect.”

So, if it’s so simple, why does this book weigh three pounds and have 924 pages?

Two reasons, both good. The authors – each are FileMaker Pro Certified Developers — do a fine job of explaining the package, from the basics to the most advanced features. And they illustrate their points with a generous number of screen shots, lists of steps, and other learning aids.

“FileMaker Pro databases,” they point out, “can be as simple as a list of the things you need to pack when you’re camping (complete with pictures!) or as complex as a company-wide system for purchasing, sales, inventory, invoicing, shipping, and customer tracking. But all of them essentially work the same way.”

FileMaker Pro 12: The Missing Manual has six parts, and the first two parts (encompassing four chapters and 172 pages) explain and demonstrate how to get started with the software and use it to build and improve your first database.

In Part 3, you move past the beginner stage and into creating and maintaining a relational database, plus handling such choices as field options, layout mechanics, calculations, and using scripts. In Part 4, you learn how to start thinking like a relational database developer and using FileMaker Pro Advanced. Part 5 focuses on database security and integration issues, including managing accounts, sharing databases over the Internet and sharing data with other systems. Part 6 contains four useful appendices, including definitions of FileMaker error codes.

In a powerful package like FileMaker Pro 12, there are plenty of choices and capabilities to explain, and there are few ways to be reasonably “complete” without ending up holding a big pile of how-to pages.

Despite its heft and thickness, however, this excellent Missing Manual is structured to help you move forward at your own pace — whether you want to learn it all or just enough to scrape by at a new workplace.

Si Dunn

New Books for Windows Phone 7 & 7.5 and Microsoft SQL Server 2012 T-SQL – #bookreview

Microsoft Press recently has released two new books, one for developers who work with Windows Phone 7 & 7.5 and the other for newcomers to Microsoft SQL Server 2012 T-SQL. 

Windows Phone 7 Development Internals
Andrew Whitechapel
(Microsoft Press, paperback, Kindle)

Andrew Whitechapel’s hefty new 809-page development internals guidebook focuses on Windows Phone 7 design and architecture and helps you learn best practices for building Windows Phone 7 applications. It is illustrated with numerous screenshots, code examples, and other illustrations.

The book “covers the breadth of application development for the Windows Phone platform, both the major 7 and 7.1/7.5 versions and the minor 7.1.1 version,” Whitechapel writes.

Windows Phone 7 Development Internals is aimed at experienced .NET developers who are familiar with Microsoft Silverlight and want to dig into Windows Phone’s platform design and API surface.

“The Windows Phone 7 release only supports C#,” Whitechapel notes, “and although support for Visual Basic was introduced with the 7.1 SDK, this book focuses purely on C# and XAML.”

In each of the 20 chapters, several features are introduced, and Whitechapel provides “one or more sample [Silverlight] applications and walks you through the significant code (C# and XAML).”

The book’s author is a senior program manager for the Windows Phone Application Platform.

#

Microsoft SQL Server 2012 T-SQL Fundamentals
Itzik Ben-Gan
(Microsoft Press, paperback, Kindle)

Transact-SQL, more commonly known as T-SQL, is the Microsoft SQL Server dialect of the ISO and ANSI standards for SQL. T-SQL code is used to query and modify data in SQL Server 2012.

Itzik Ben-Gan, one of the leading experts on T-SQL, emphasizes that his new book “covers fundamentals [and] is mainly aimed at T-SQL practitioners with little or no experience.” But others who have some T-SQL experience also can find it helpful for filling in gaps in knowledge. The book also is recommended for database administrators, business intelligence (BI) practitioners, report writer, analysts, architects, and SQL Server power users who have “just started working with SQL Server and need to write queries and develop code using Transact-SQL.”

Microsoft SQL Server 2012 T-SQL Fundamentals is structured into 10 chapters. The first chapter provides “Background to T-SQL Querying and Programming. Chapters 2 through 8 examine “various aspects of querying and modifying data.” Chapter 9 looks at concurrency and transactions, and Chapter 10 provides an overview of programmable objects.

The book’s one appendix shows you how to “get started and set up your environment so that you have everything you need to get the most out of this book.” The major discussions include: “Getting Started with SQL Database”; “Installing an On-Premises Implementation of SQL Server”; “Downloading Source Code and Installing the Sample Database”; “Working with SQL Server Management Studio”; and “Working with SQL Server Books Online.”

#

Si Dunn

PHP & MySQL: Novice to Ninja, 5th Ed. – A popular how-to guide updated – #bookreview #in #php #programming

PHP & MySQL: Novice to Ninja, 5th Edition
Kevin Yank
(SitePoint,
paperback, list price $39.95; Kindle edition, list price $29.95)

A key measure of a programming book’s usefulness and popularity is how many times it has been revised and reprinted.

Kevin Yank’s book first was published in 2001 under a different title. Eleven years later, his newly revised fifth edition is now in print and providing up-to-date hands-on guidance for those who want to use PHP and MySQL to create database-driven websites.  (By some estimates, at least 20 million websites worldwide now use PHP.)

Yank points out that “PHP is a server-side scripting language that lets you insert instructions into your web pages that your web server software (in most cases, Apache) will execute before it sends those pages to browsers that request them.”

Meanwhile, “[a] database server (in our case MySQL) is a program that can store large amounts of information in an organized format that’s easily accessible through programming languages like PHP. For example, you could tell PHP to look in the database for a list of jokes that you’d like to appear on your website.”

Yank’s fifth edition shows you how to use PHP to create a working content management system (CMS) that accesses – no surprise here – an online joke database that’s managed with MySQL. (Of course, if you think a simple joke database is lame, you can always modify a few tables and labels and create something more substantial, such as a database of vegetables you hate or celebrities or politicians you consider utterly irrelevant to your life.) 

Building a joke database (or whatever) is a pleasant way to learn the basics of PHP coding and database design and then quickly start improving your knowledge and skills as the CMS project is expanded and given more capabilities.

Yank’s book has 12 chapters and four appendices. The how-to chapters are split into short paragraphs, with numerous short code examples. A link is provided where the book’s code examples can be downloaded in a ZIP archive. And the book’s text is written in a smooth, approachable style.

PHP & MySQL: Novice to Ninja, 5th Edition is “aimed at intermediate and advanced web designers looking to make the leap into server-side programming,” Yank says. He expects readers to be familiar with “simple HTML” but “[n]o knowledge of Cascading Style Sheets (CSS) or JavaScript is assumed or required.”

He adds, however, “if you do know JavaScript, you’ll find it will make learning PHP a breeze, since these languages are quite similar.”

Si Dunn

Machine Learning for Hackers – Analyzing & displaying data using R – #bookreview #in #programming

Machine Learning for Hackers
By Drew Conway and John Myles White
(O’Reilly,
paperback, list price $39.99; Kindle edition, list price $31.99)

The word “hacker has a very bad reputation in many parts of the computer world.

This book’s two authors, however, offer a different and much more positive view. “Far from the stylized depictions of nefarious teenagers or Gibsonian cyber-punks portrayed in pop culture, “they write, “we believe a hacker is someone who likes to solve problems and experiment with new technologies.”

In their view: “If you’ve ever sat down with the latest O’Reilly book on a new computer language and knuckled out coded until you were well past ‘Hello, World,’ then you’re a hacker. “ You’re also a hacker, in their view, “if you’ve dismantled a new gadget until you understood the entire machinery’s architecture….”

As for machine learning, they define it “[a]t the highest level of abstraction…as a set of tools and methods that attempt to infer patterns and extract insight from a record of the observable world.” In more concrete terms, machine learning “blends concepts and techniques from many different traditional fields, such as mathematics, statistics, and computer science.” At the computer programming level, machine learning is defined as “a toolkit of algorithms that enables computers to train themselves to automate useful tasks.”

Conway’s and White’s new book, Machine Learning for Hackers, is rich with challenges for experienced programmers who love to crunch data. Its code examples use the R programming language, a “software environment for statistical computing and graphics.” It can be downloaded free for Windows, MacOS, or a variety of UNIX platforms from The R Project for Statistical Computing.

What you don’t get in this book is an R language tutorial. Instead of “Hello, World!” in the introductory chapter, you jump straight into working with a very interesting data set and generating histograms dealing with distributions of UFO sightings.

It is assumed that you have done some programming, and the authors note that you can find basic R tutorials online or in other books.

With a case-studies approach, each chapter of the 303-page book focuses on a particular problem in machine learning, and the authors show how to analyze sample databases and create simple machine learning algorithms.

The chapters are:

  1. Using R
  2. Data Exploration
  3. Classification: Spam Filtering
  4. Ranking: Priority Inbox
  5. Regression: Predicting Page Views
  6. Regularization: Text Regression
  7. Optimization: Breaking Codes
  8. PCA [principal components analysis]: Building a Market Index
  9. MDS [multidimensional scaling]: Visually Exploring US Senator Similarity
  10. kNN [The k-Nearest Neighbors algorithm]: Recommended Systems
  11. Analyzing Social Graphs
  12. Model Comparison

Some of the other projects the authors present include: using linear progression to predict the number of page views for 1,000 top websites; doing statistical comparisons and contrasts of U.S. Senators based on their voting records; and building “a ‘who to follow’ recommendation engine” for Twitter that doesn’t violate Twitter’s terms of service or its API’s “strict rate limit.”

Conway and White offer some fairly heady and challenging learning experiences for those who would like to work with pattern recognition algorithms and big piles of data.

“The notion of observing data, learning from it, and then automating some process of recognition is at the heart of machine learning,” the authors note, “forms the primary arc of this book.”

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir. He is the author of an e-book detective novel, Erwin’s Law, now also available in paperback, plus a novella, Jump, and several other books and short stories.

 

MySQL Troubleshooting – Tools, steps & advice from an expert – #bookreview

MySQL Troubleshooting
By Sveta Smirnova
(O’Reilly,
paperback, list price $29.99; Kindle edition, list price $14.99)

Sveta Smirnova knows how to find and fix MySQL problems. She is a principal technical support engineer in Oracle’s Bug Analysis Support Group and works daily with MySQL support issues and bug fixes.

Her new book is structured to help both MySQL beginners and those with more advanced skills, and it has been reviewed, prior to publication, by several other MySQL experts.

This well-written how-to guide likely will become a must-have reference book for many MySQL database administrators and support staff, as well as those currently learning MySQL. It contains numerous code examples, log excerpts and other illustrations, plus tips gleaned from long experience at solving a wide array of MySQL issues.

MySQL Troubleshooting has seven chapters:

  • Chapter 1, Basics – Basic troubleshooting techniques
  • Chapter 2, You Are Not Alone: Concurrency Issues – Problems that can occur “when applications run in multiple threads or interfere with transactions in other applications.”
  • Chapter 3, Effects of Server Options – A two-part chapter: (1) How to find and fix problems caused by configuration options; and (2) recommendations on how to solve and test configuration issues.  
  • Chapter 4, MySQL’s Environment – Deals with hardware and server environments. Lists “some points a MySQL database administrator (DBA) must look into.”
  • Chapter 5, Troubleshooting Replication – When slaves lag far behind the master, and related issues.
  • Chapter 6, Troubleshooting Techniques and Tools – Describes “extra techniques and tools” not discussed in earlier chapters.
  • Chapter 7, Best Practices – Focuses on “good habits and behaviors for safe and effective troubleshooting.”

An appendix titled “Information Resources” offers a number of websites and books that the author deems “good sources of information that can help during troubleshooting.”

She notes that MySQL now has “many forks” and acknowledges that her book cannot cover everything, nor “describe servers I don’t work with daily.” For example, she skips over Percona server and MariaDB but says “most of the methods described here” can be used except when “dealing with a particular feature added in the fork,” which will require product-specific information.

She also does not cover MySQL Cluster problems. Issues “specific to MySQL Cluster need separate MySQL Cluster knowledge that I don’t describe here,” she writes.

“But I do devote a lot of space to MyISAM- and InnoDB-specific problems…because they are by far the most popular storage engines, and their installation base is huge.”

A few of her code examples use PHP. But the C API is used “to illustrate the functions discussed in this book. The choice wasn’t easy,” she notes, “because there are a lot of programming APIs for MySQL in various languages.” And covering them all is impossible, she adds.

For many who work with MySQL, MySQL Troubleshooting can help solve or prevent a wide range of  problems, from easily overlooked syntax glitches to complex issues involving configuration, replication or multiple threads. And even if she doesn’t specifically cover your “fork” of MySQL, many of her tips, techniques, and examples can be adapted and put to good use in your own support and troubleshooting efforts.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir available now in paperback. He is the author of a detective novel, Erwin’s Law, a novella, Jump, and several other books and short stories.

Not your father’s database: Getting Started with CouchDB & with Fluidinfo – #bookreview #in #programming

These two books reflect some of the wide-ranging changes that the Internet and mobile devices are bringing to the ways databases are structured, accessed, updated, stored and maintained.

Getting Started with CouchDB
By MC Brown
(O’Reilly,
paperback, list price $24.99; Kindle edition, list price $14.99)

“Databases are no longer isolated, single systems,” writes MC Brown. “Whether you want a database that can be shared among multiple devices (your desktop, laptop, and mobile phone), between multiple offices, or to be used as part of your database scaling operations, copying and sharing database information has become required functionality.”

He adds: “Different databases have traditionally approached this in a variety of different ways, including binary logs, data streams, row-based logging, and more complex hashing techniques. Within CouchDB, a simple but very effective method has been developed that uses the individual documents as the key to the method of sharing and distributing the document information between databases.”

Apache CouchDB is a free download for Linux, Mac OS X, or Windows. According to the website, “Apache CouchDB™ is a database that uses JSON for documents, JavaScript for MapReduce queries, and regular HTTP for an API.”

Brown also describes how to install CouchDB from source code, with careful emphasis on “(if you must).”

For the number of pages (84), the list prices for Brown’s book seem a bit high. But if you want to learn how to work with CouchDB, information to get you started is conveniently at hand, in the book or e-book. For example, Brown shows how to create databases and delete databases and how to create, update and delete documents in the databases.

“All of your interactions with CouchDB will be through HTTP,” he notes. His book provides some “key details” for several HTTP operations “such as HEAD and DELETE that are useful when talking to CouchDB.”

MC Brown has written or contributed to more than 26 books dealing with programming, systems management, web technologies and other subjects. He is vice president of documentation for Couchbase.

#

 Getting Started with Fluidinfo
By Nicholas J. Radcliffe and Nicholas H. Tollervey
(O’Reilly,
paperback, list price $24.99; Kindle edition, list price $11.99)

“Fluidinfo is an online storage system in which there is a place for information about everything—everything that exists, everything that could exist, and everything that can be imagined,” this book’s two authors state. “It allows anyone to store any information, about anything, in any digital form. And Fluidinfo is social: users can exercise fine control over who can read their data and can even enable other chosen users and applications to write data on their behalf.”

Another way to describe Fluidinfo is as an “openly writeable shared datastore.”

Like CouchDB, Fluidinfo exposes “all its functionality through HTTP, the core protocol that underpins the World Wide Web. Programmers can take advantage of its RESTful API, which makes it easy to integrate with other applications.”

To try out Fluidinfo and get an account, go to fluidinfo.com. The site offers the option to sign in via Twitter.

This well-written, 119-page book is offered as a “practical guide to several ways to access and use Fluidinfo” and is organized into nine chapters:

  • Chapter 1: What Is Fluidinfo?
  • Chapter 2: Fluidinfo from the Command Line
  • Chapter 3: Social Data
  • Chapter 4: Programming with Fluidinfo
  • Chapter 5: Programming with FOM (the Fluid Object Mapper)
  • Chapter 6: Programming Fluidinfo with JavaScript
  • Chapter 7: Fluidinfo’s RESTful API
  • Chapter 8: Advanced Use of the Fluidinfo Shell
  • Chapter 9: Conventions for the About Tag

There is also an appendix titled “Fluidinfo Query Language Reference.”

One of the book’s authors, Nicholas Radcliffe, has connections to Fluidinfo that date back to the 1980s and “has been a friend and advisor to the Fluidinfo company since its inception.” Meanwhile, Nicholas Tollervey is a software developer at Fluidinfo and has nearly 30 years’ experience in programming.

#

Si Dunn is a novelist, screenwriter, freelance book reviewer, and former software technical writer and software/hardware QA test specialist. He also is a former newspaper and magazine photojournalist. His latest book is Dark Signals, a Vietnam War memoir available now in paperback. He is the author of a detective novel, Erwin’s Law, a novella, Jump, and several other books and short stories.