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
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
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
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
The third and final part of my series on saving money with open source covers the OpenChange mail server, designed to provide a complete, protocol and functionally equivalent collaboration environment to Microsoft’s Exchange server. From the article:
In today’s economic climate, everyone is looking for ways to reduce expenses. In the IT sector, one way to cut costs is by turning to open source alternatives instead of using expensive licensed products. This last part of our series explores OpenChange, which is designed to be used as an Exchange groupware server. E-mail is probably the backbone of your business; When the e-mail servers go down, everything can quickly grind to a halt. In this article, learn about the OpenChange e-mail server and whether it is ready for prime time.
Read: Saving money with open source, Part 3: The OpenChange solution offers great promise
The second part of the series on saving money using open source technology looks at OpenOffice, a complete Office software suite comprising word processor, spreadsheet, and presentation package, among other tools. From the intro:
On the desktop, the operating system and environment are less important than the applications that support the main operating functions for your office. Your business drives your application requirements, but most businesses will also use an office suite, such as OpenOffice, to support their core operations.The OpenOffice suite is open source, freely available, and completely compatible with a wide range of different office suites, including Microsoft Office. It’s a compatible product, both in terms of file readability and usage, and you can try out OpenOffice with no barriers.
Read: Saving money with open source, Part 2: Tap into the power of OpenOffice
I completed a series earlier this year on using various tools within the open source world that can save you money in place of spending money on commercial products and licenses. The first article looks at the Ubuntu Linux distribution. From the intro:
Part 1 discusses Ubuntu, a community developed Linux-based operating system for laptops, desktops, and servers. Ubuntu contains many applications: a Web browser; presentation, document, and spreadsheet software; instant messaging; and much more. This article explores Ubuntu’s:
- Updates and stability
- Desktop version
- Compatibility and integration
- Hardware support
Read: Saving money with open source, Part 1: Use the Ubuntu operating system}
A new article on consuming and using the SNMP (Simple Network Management Protocol) data that is published and provided by different devices is now available:
The Simple Network Management Protocol (SNMP) is built in to many devices, but often the tools and software that can read and parse this information are too large and complicated when you only want to check a quick statistic or track a particular device or issue. This article looks at some simplified methods for getting SNMP information from your devices and how to integrate this information into the rest of your network’s data map.
Read: Systems Administration Toolkit: Using SNMP data
A new article on understanding the Domain Name System (DNS) is now available:
The Domain Name System (DNS) is the service that converts hostnames and domain details into the IP addresses required for application to communicate. Under UNIX, the primary DNS service is based on BIND, and DNS itself is a key part of most UNIX installations. This article looks at the basics of DNS setup, how servers and requests are distributed, and exchanged and how to set up and keep a DNS environment running smoothly.
Read: Systems Administration Toolkit: Understanding DNS