Process home monitoring data using the Time Series Database in Bluemix

I keep a lot of information about my house – I have had sensors and recording units in various parts of my house years, recording info through a variety of different devices.

Over the years I’ve built a number of different solutions for storing and displaying the information, and when the opportunity came up to write about a database built specifically for recording this information I jumped at the change, and this is what I came up with:

As home automation increases, so does the number of sensors recording statistics and information needed to feed that data. Using the Time Series Database in BlueMix makes it easy to record the time-logged data and query and report on it. In this tutorial, we’ll examine how to create, store, and, ultimately, report on information by using the Time Series Database. We’ll also use the database to correlate data points across multiple sensors to track the effectiveness of heating systems in a multi-zone house.

You can read the full article here

Introduction to programming in Erlang, Part 2: Use advanced features and functionality

Part two of my introduction to programming Erlang is available on IBM developerWorks:

Erlang is a multi-purpose programming language that is primarily used for developing concurrent and distributed systems. Part 1 of this series introduced Erlang and how its functional programming style compares with other programming paradigms such as imperative, procedural, and object-oriented programming. In Part 2 you will use some of the advanced features and functionality, starting with basic functions and moving on to concurrent programming, processes, and messaging. These work together to support distributed programming, a powerful feature of Erlang.

Read Introduction to programming in Erlang, Part 2: Use advanced features and functionality

Introduction to programming in Erlang, Part 1: The basics

I have a new article on programming in Erlang available on IBM developerWorks:

Erlang is a multi-purpose programming language used primarily for developing concurrent and distributed systems. It began as a proprietary programming language used by Ericsson for telephony and communications applications. Released as open source in 1998, Erlang has become more popular in recent years thanks to its use in high profile projects, such as the Facebook chat system, and in innovative open source projects, such as the CouchDB document-oriented database management system. In this article, you will learn about Erlang, and how its functional programming style compares with other programming paradigms such as imperative, procedural and object-oriented programming. You will learn how to create your first program, a Fibonacci recursive function. Next, you will go through the basics of the Erlang language, which can be difficult at first for those used to C, C++, Java™, and Python.

Read Introduction to programming in Erlang, Part 1: The basics


A new article on indexing documents using the Xapian/Omega toolkit is now available.From the intro:

Storing and providing access to documentation and information is an ever-growing problem for many companies. There are many solutions, including wikis and structured documentation stores, but full-text indexes are often the only way to gain the information you need from a wide array of documents. Xapian is an open source tool that reads and indexes documents, including those in HTML, PDF, OpenOffice, Microsoft® Office®, and many others, and with programmable interfaces to add and extract information, including Java™ technology, allowing you to support document indexing within your IBM WebSphere®-deployed environment. Examine how to install and deploy a typical Xapian installation indexing a variety of information, then see some examples for extracting the information using the different language bindings. The process will focus on how this could be used within a typical company intranet environment. The article will also provide a quick overview of Omega, a custom tool designed to work with the Xapian infrastructure.

Read: Read and index documents with Xapian and Omega

Take advantage of using libevent and libev

I have a new article available on making use of the libevent and libev libraries. libevent has become a very popular choice for people that want to build very efficient I/O systems, particularly for network solutions, and therefore it fits nicely into applications like memcached and lighttpd, both of which make use of the event driven architecture. From the intro:

Building a modern server application requires a method of accepting hundreds, thousands, and even tens of thousands of events simultaneously, whether they are internal requests or network connections effectively handling their operation. There are many solutions available, but the libevent library and libev libraries have both revolutionized the performance and event handling capability. In this article, we will examine the basic structure and methods available for using and deploying these solutions within your UNIX® applications. Both libev and libevent can be used in your high performance applications, including those deployed within the IBM Cloud or Amazon EC2 environment, where you need to support large numbers of simultaneous clients or operations.

Read the article: Boost network performance with libevent and libev

Deploying Gearman across multiple environments

A new article on using the work distribution tool, Gearman:

The open source Gearman service allows you to easily distribute work to other machines in your network, either because you want to spread the work over a large body of machines or because you want to share the functionality of different languages and environments with each other. In this article, you will look at some typical uses of Gearman and how it can solve a variety of issues and problems in modern applications. You will also learn how Gearman can be combined with other tools, like memcached, to help speed up your application and processing requirements.

I’ve tried to pay particular attention to using it where you might normally use RPC or web services, or when you want to execute large quantities of jobs and spread them over a number of machines or different parameters.Read it Deploying Gearman across multiple environments

Ten XML Schemas you should know

A new article on Ten XML Schemas that you should be aware of is now available at IBM developerWorks. The article collects together some of the XML schemas that I think are important.

In this article, look at some top XML schemas that provide solutions for all sorts of problems, from the basics of Web services to data description. You’ll also cover database-like solutions that involve contacts and invoices. The schemas in this article were chosen for their usefulness and utility, plus their impact on the XML community in how information is shared and exchanged using the XML format.

Read: Ten XML Schemas you should know