Filter by products, topics, and types of content

(0 Products)

(93 Topics)

(0 Industries)

(7 Types)

1 - 100 of 510 results | Next
Show Summaries | Hide Summaries
View Results
Title up Type none Date none
A data compression primer
This article is a primer on the basic types of data compression, with an introductory explanation of the mathematics and algorithms that go into compression techniques. Brief consideration and examples are given to help you evaluate what types of compression tools and techniques are suited to your own applications. Pointers are provided to more advanced theoretical discussions and ready-to-use compression tools and libraries. [Update: Tables 1 and 2 were updated to correct formatting errors. -Ed.]
Also available in: Russian   Japanese   Spanish  
Articles 21 Jul 2011
A deep dive into the new software-defined converged infrastructure for SAS Foundation mixed workloads
This article describes the details behind the new software-defined converged infrastructure for deploying SAS Foundation Mixed Analytics workloads using IBM Elastic Storage Server (ESS), IBM Spectrum Scale, IBM POWER8, and Mellanox networking technology. This article documents detailed test configurations, test scenarios, performance results, and tuning options for the converged infrastructure. This article provides a methodology to tune each component in the infrastructure horizontally, as well as tuning the solution vertically, which allowed the optimal performance to be achieved.
Also available in: Chinese   Japanese  
Articles 12 Sep 2017
A step-by-step how-to guide to install, configure, and test a Linux, Apache, Informix, and PHP server
Learn how to install, configure, and test a Linux, Apache, Informix, and PHP (LAIP) server. LAIP provides a very powerful and dynamic mixture for a Web server.
Articles 08 Jun 2006
Accelerate to Green IT - A practical guide to application migration and re-hosting
This guide has been developed based on implementation experience in moving application workloads from a distributed environment, such as AIX workload on Power or pSeries, RS 6000 hardware, Solaris workload on Sun hardware or Linux workload on x86 hardware (that is, IBM eServer to IBM System z primarily IBM System z9 or z10 models).
Also available in: Chinese   Japanese   Portuguese   Spanish  
Articles 16 Jul 2012
Access the Linux kernel using the /proc filesystem
The /proc filesystem is a virtual filesystem that permits a novel approachfor communication between the Linux kernel and user space. In the /proc filesystem, virtual files can be read from or written to as a means of communicating with entities in the kernel, but unlike regular files, the content of these virtual files is dynamically created. This article introduces you to the /proc virtual filesystem and demonstrates its use.
Also available in: Russian   Japanese  
Articles 14 Mar 2006
Achieving high performance for Advanced Encryption Standard (AES) applications
This article provides a detailed analysis about the new Advanced Encryption Standard (AES) built-in functions provided by IBM XL compilers. It explores the code that the compilers generate to demonstrate the performance gained by using the built-in functions. This is critical for high-performance AES applications, especially when many of them cannot be parallelized due to the nature of operation modes, such as chaining mode [for example, cipher block chaining (CBC) and propagating cipher block chaining (PCBC)] or feedback mode [cipher feedback (CFB) and output feedback (OFB)]. If you are a software engineer who is interested in achieving high performance for applications on IBM POWER8 processors, this article is for you.
Also available in: Japanese  
Articles 02 Apr 2015
Add Linux power to wireless routers with advanced tips and tricks for DD-WRT
DD-WRT brings all the power of the Linux networking stack to inexpensive wireless routers, turning a consumer router into a mighty networking powerhouse. Learn how to install and secure DD-WRT, and learn about the powerful, flexible command line behind the GUI.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 08 May 2012
Add your own GIMP features
The GNU Image Manipulation Program (GIMP) is a robust application for editing and manipulating digital images. Because it's open source software, any developer is allowed to modify and extend it with even more features. In this article, you will learn how to get started with the GIMP code, how to build the project from the Git repositories, and how to find your way around the code tree. And you will build an example application that creates a whole new painting tool for the program.
Also available in: Japanese   Portuguese  
Articles 20 Jul 2010
Administer Linux on the fly
The /proc filesystem is one of Linux's great features, and this article gives you a thorough grounding in some of its most useful aspects. With it, you can administer many details of the operating system without ever having to shut down and reboot the machine, which is a boon for those who need to keep their systems as available as possible.
Also available in: Russian   Japanese  
Articles 14 May 2003
Agile planning in real life
Are you part of a team that wants to get on the agile planning bandwagon? Are you using iterative development and still stuck doing "waterations"? In this article, the author puts his experience assisting and teaching IBM product teams into a roadmap that answers the question: "How do I start developing releases with agile planning?" He covers the basics of agile planning and shares his insights into what works and what doesn't. Editor's note: Figures 1 and 4 were updated and other corrections were added at the author's request.
Also available in: Russian   Japanese   Spanish  
Articles 15 Apr 2009
All about pseudo, Part 2: Under the hood
Part 2 of this series details how pseudo's root emulation works by tracking the path of an intercepted call to the database and back. If you want to replace open(2) with your own code, this is where you find out how.
Also available in: Japanese  
Articles 17 May 2011
An open source solution for dockerizing STAF and LTP on IBM Power Systems
STAF and LTP is a widely used regression test combination to validate the behavior of Linux kernel and glibc components. This article describes how to build a STAF and LTP Docker image. By using this image, you can create containers that test the Linux kernel and glibc components.
Also available in: Chinese  
Articles 10 May 2017
Anatomy of ext4
The fourth extended file system, or ext4, is the next generation of journaling file systems, retaining backward compatibility with the previous file system, ext3. Although ext4 is not currently the standard, it will be the next default file system for most Linux distributions. Get to know ext4, and discover why it will be your new favorite file system.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 17 Feb 2009
Anatomy of Linux flash file systems
You've probably heard of Journaling Flash File System (JFFS) and Yet Another Flash File System (YAFFS), but do you know what it means to have a file system that assumes an underlying flash device? This article introduces you to flash file systems for Linux, and explores how they care for their underlying consumable devices (flash parts) through wear leveling, and identifies the various flash file systems available along with their fundamental designs.
Also available in: Russian   Japanese  
Articles 20 May 2008
Anatomy of Linux journaling file systems
In recent history, journaling file systems were viewed as an oddity and thought of primarily in terms of research. But today, a journaling file system (ext3) is the default in Linux. Discover the ideas behind journaling file systems, and learn how they provide better integrity in the face of a power failure or system crash. Learn about the various journaling file systems in use today, and peek into the next generation of journaling file systems.
Also available in: Russian   Japanese  
Articles 04 Jun 2008
Anatomy of Linux Kernel Shared Memory
Linux as a hypervisor includes a number of innovations, and one of the more interesting changes in the 2.6.32 kernel is Kernel Shared Memory (KSM). KSM allows the hypervisor to increase the number of concurrent virtual machines by consolidating identical memory pages. Explore the ideas behind KSM (such as storage de-duplication), its implementation, and how you manage it.
Also available in: Japanese   Portuguese  
Articles 07 Apr 2010
Anatomy of Linux synchronization methods
In your Linux education, you may have learned about concurrency, critical sections, and locking, but how do you use these concepts within the kernel? This article reviews the locking mechanisms available within the 2.6 kernel, including atomic operators, spinlocks, reader/writer locks, and kernel semaphores. It also explores where each mechanism is most applicable for building safe and efficient kernel code.
Also available in: Russian   Japanese  
Articles 31 Oct 2007
Anatomy of real-time Linux architectures
It's not that Linux isn't fast or efficient, but in some cases fast just isn't good enough. What's needed instead is the ability to deterministically meet scheduling deadlines with specific tolerances. Discover the various real-time Linux alternatives and how they achieve real time -- from the early architectures that mimic virtualization solutions to the options available today in the standard 2.6 kernel.
Also available in: Russian   Japanese  
Articles 15 Apr 2008
Anatomy of Security-Enhanced Linux (SELinux)
Linux has been described as one of the most secure operating systems available, but the National Security Agency (NSA) has taken Linux to the next level with the introduction of Security-Enhanced Linux (SELinux). SELinux takes the existing GNU/Linux operating system and extends it with kernel and user-space modifications to make it bullet-proof. If you're running a 2.6 kernel today, you might be surprised to know that you're using SELinux right now! This article explores the ideas behind SELinux and how it's implemented.
Also available in: Russian  
Articles 17 May 2012
Anatomy of the libvirt virtualization library
The libvirt library is a Linux API over the virtualization capabilities of Linux that supports a variety of hypervisors, including Xen and KVM, as well as QEMU and some virtualization products for other operating systems. This article explores libvirt, its use, and its architecture.
Also available in: Japanese   Portuguese   Spanish  
Articles 05 Jan 2010
Application development for the OLPC laptop
The XO laptop (of the One-Laptop-Per-Child initiative) is an inexpensive laptop project intended to help educate children around the world. The XO laptop includes many innovations, such as a novel, inexpensive, and durable hardware design and the use of GNU/Linux as the underlying operating system. The XO also includes an application environment written in Python with a human interface called Sugar, accessible to everyone (including kids). Explore the Sugar APIs and learn how to develop and debug a graphical activity in Sugar using Python.
Tutorial 18 Dec 2007
Application optimization with compilers for Linux on POWER
Interested in tuning your C/C++ applications for Linux(TM) on POWER(TM)? This article compares the optimization options for both Linux on POWER C/C++ compilers: GCC and IBM XL C/C++. This paper also reviews tactics, such as Interprocedural Analysis, Profile Directed Feedback, and High Order Transformations, which are used by one or both of the compilers to extract higher performance from the Power architecture.
Articles 10 May 2005
Application virtualization, past and future
When you hear the phrase "virtual machine" today, you probably think of virtualization and hypervisors. But VMs are simply an older concept of abstraction, a common method of abstracting one entity from another. This article explores two of the many newer open source VM technologies: Dalvik (the VM core of the Android operating system) and Parrot (an open source VM technology for efficiently executing dynamic languages).
Also available in: Russian   Japanese   Portuguese   Spanish  
Articles 03 May 2011
Applying mount namespaces
What if you could allow users to craft their own filesystem setup without being constrained by the sysadmin-dictated structure? Users could export part of their own filesystem tree and import other users' exported filesystem trees into their tree. This article provides a step-by-step guide for Linux system administrators to allow users to do just that with mount propagation.
Also available in: Russian   Japanese  
Articles 17 Sep 2007
Assembly language for Power Architecture, Part 1: Programming concepts and beginning PowerPC instructions
The POWER5 processor is a 64-bit workhorse used in a variety of settings. Starting with this introduction to assembly language concepts and the PowerPC instruction set, this series of articles introduces assembly language in general and specifically assembly language programming for the POWER5.
Also available in: Chinese   Russian  
Articles 03 Oct 2006
Assembly language for Power Architecture, Part 2: The art of loading and storing on PowerPC
The previous article in this series introduced assembly language programming using the 64-bit PowerPC instruction set on POWER5 and other processors that use these instructions. This article drills down and discusses the specifics of 64-bit PowerPC assembly language programming on Linux and UNIX-like operating systems, focusing on data access methods and position-independent code.
Also available in: Russian  
Articles 29 Nov 2006
Assembly language for Power Architecture, Part 3: Programming with the PowerPC branch processor
The last two articles discussed the outline of how programs on the POWER5 processor work using the 64-bit PowerPC instruction set, how the PowerPC instruction set addresses memory, and how to do position-independent code. This article focuses on the very powerful condition and branch instructions available in the PowerPC instruction set.
Also available in: Chinese   Russian   Japanese  
Articles 17 Jan 2007
Assembly language for Power Architecture, Part 4: Function calls and the PowerPC 64-bit ABI
The ABI, or Application Binary Interface, is the set of conventions that allow programs written in different languages or compiled by different compilers to call each other's functions. This article, the last in a four-part series, discusses the PowerPC ABI for 64-bit ELF (UNIX-like) systems and how to write and call functions using it. Knowing in detail how the 64-bit PowerPC ABI works will help you write 64-bit programs for the POWER5 and other PowerPC-based processors more effectively, whether you program in assembly language or not. There is also a 32-bit ABI that is not covered in this article.
Also available in: Chinese   Japanese  
Articles 28 Feb 2007
Automate backups on Linux
The loss of critical data can prove devastating. Still, millions of professionals ignore backing up their data. While individual reasons vary, one of the most common explanations is that performing routine backups can be a real chore. Because machines excel at mundane and repetitive tasks, the key to reducing the inherent drudgery and the natural human tendency for procrastination, is to automate the backup process.
Also available in: Russian   Japanese   Portuguese  
Articles 03 Jul 2008
Automate the application build and distribution process
You have enough to consider when building an open source application for a single type of system, but what if you're building that application for distribution among a range of different, incompatible machines? There's no easy answer, but using a little discipline and some custom scripts, you can simplify the process. This article looks at how to create a structure for building and distributing applications, including heavily customized versions, and a simple way of disseminating the applications among a number of machines, manually or automatically, as easily as possible.
Articles 14 Sep 2004
Automate virtual machine discovery and self-connectivity
In a virtual data center the deployment and the dismissal of complex appliances require that multiple configuration steps be executed. Reconfiguration requirements include establishing and removing communication between different components of the same product running in different virtual machines (VMs) as well as different products running in different VMs. Traditionally this process has been burdensomely manual or somewhat inflexible via the invoking of predefined scripts with static values. In this article, the authors propose StereoCable, automated plug-and-play support of complex virtual appliances in a virtual data center, to solve this issue. This way VMs are able to discover and automatically connect to each other based on predefined connections policies.
Also available in: Chinese   Portuguese  
Articles 01 Nov 2010
Automate VM deployment
Sometimes you need to create an configure a bundle of virtual machines at the same time, but manually cloning and configuring the lot promises to be an unhappy task. In this article, see how to develop an automatic VM deployment solution so you can launch and activate batches of self-configuring VMs quickly. And as a bonus, you'll discover an approach that lets you run customized applications separately for each deployed virtual machine after system start.
Also available in: Russian   Japanese  
Articles 04 Mar 2009
Automating infrastructure management with Cfengine, Part 1: Installing servers and clients
Cfengine is a popular data center automation solution used by organizations around the world. It is scalable to tens of thousands of machines from laptops, desktops, and embedded devices to mainframes. Learn how you can use this versatile and flexible technology for solving data center issues.
Also available in: Chinese   Japanese   Portuguese  
Articles 03 May 2011
Backing up your Linux machines
Cover your back in the worst-case scenario with the techniques in this tutorial. Even new, high-quality hard drives will occasionally fail. Regular system backups are essential, especially for busy developers who make continual improvements to their code. This tutorial shows you how to protect yourself from losing huge amounts of critical data.
Tutorials 08 Aug 2001
Bash by example, Part 1
By learning how to program in the bash scripting language, your day-to-day interaction with Linux will become more fun and productive, and you'll be able to build upon those standard UNIX constructs (like pipelines and redirection) that you already know and love. In this three-part series, Daniel Robbins will teach you how to program in bash by example. He'll cover the absolute basics (making this an excellent series for beginners) and bring in more advanced features as the series proceeds.
Also available in: Japanese  
Articles 01 Mar 2000
Bash by example, Part 2
In his introductory article on bash, Daniel Robbins walked you through some of the scripting language's basic elements and reasons for using bash. In this, the second installment, Daniel picks up where he left off and looks at bash's basic constructs like conditional (if-then) statements, looping, and more.
Also available in: Japanese  
Articles 18 Feb 2013
Bash by example, Part 3
Daniel Robbins takes a good look at the Gentoo Linux ebuild system, an excellent example of the power of bash.
Articles 01 May 2000
Basic tasks for new Linux users
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software on a Linux system requires you to log in, become the super user (or root) for some tasks, open a terminal or shell window, and mount a CD-ROM, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
Tutorial 07 Apr 2011
Basic tasks for new Linux users
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software on a Linux system requires you to log in, become the super user (or root) for some tasks, open a terminal or shell window, and mount a CD-ROM, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
Also available in: Japanese   Portuguese   Spanish  
Tutorial 19 Nov 2011
Basic use of pthreads
Threads strike fear into the hearts of many programmers. UNIX's process model is simple and well understood, but it is sometimes inefficient. Threading can often allow for substantial improvements in performance, at the cost of a little confusion. This article demystifies the POSIX thread interface, providing practical examples of threaded code for consideration.
Articles 21 Jan 2004
Beginning Haskell
This tutorial is for programmers of imperative languages wanting to learn about functional programming in the language Haskell. If you have programmed in languages such as C, Pascal, Fortran, C++, Java, Cobol, Ada, Perl, TCL, REXX, JavaScript, Visual Basic, or many others, you have been using an imperative paradigm. This tutorial provides a gentle introduction to the paradigm of functional programming, with specific illustrations in the Haskell 98 language.
Tutorial 27 Sep 2001
Best practices and basic evaluation benchmarks: IBM Power System S822LC for high-performance computing (HPC)
This article is a quick reference guide for IBM Power System S822LC for high-performance computing (HPC) system users to set processor and GPU configuration to achieve best performance for GPU accelerated applications. Before running an application, users need to make sure that the system is performing to the best in terms of processor frequency and memory bandwidth, GPU compute capacity, and memory bandwidth.
Articles 05 Apr 2017
Better error handling using Flex and Bison
Although it is easy to generate programs using Flex and Bison, it is a bit harder to make those programs produce user-friendly syntax and semantic error messages. This article examines the error-handling features of Flex and Bison, shows how to use them, and details some pitfalls.
Also available in: Russian  
Articles 28 Jul 2006
Better networking with SCTP
The Stream Control Transmission Protocol (SCTP) is a reliable transport protocol that provides stable, ordered delivery of data between two endpoints (much like TCP) and also preserves data message boundaries (like UDP). However, unlike TCP and UDP, SCTP offers such advantages as multi-homing and multi-streaming capabilities, both of which increase availability. In this article, get to know the key features of SCTP in the Linux 2.6 kernel and take a look at the server and client source code that shows the protocol's ability to deliver multi-streaming.
Also available in: Russian   Japanese  
Articles 28 Feb 2006
Blades and external storage: Set up a fault-tolerant environment
To build a highly available Linux server environment with IBM blades, first you need to set up a fault-tolerant environment between the blade and any external storage. This enables you to deliver redundancy and enable multipathing. In this article, learn how to integrate an x86-based IBM BladeCenter server and external IBM BladeCenter Boot Disk System (DS3200) SAS storage, as a critical prerequisite for a reliable blade server environment on Linux. Some Linux Volume Manager "hot-add" features designed to meet the increasing demand on storage systems are covered as well.
Also available in: Russian  
Articles 10 Dec 2008
Boost IBM InfoSphere Streams performance with Linux channel bonding
Have you ever wondered if Linux channel bonding would allow you to get faster throughput using IBM InfoSphere Streams? We have answered that question when running InfoSphere Streams release 2.0.0.2 on Red Hat Enterprise Linux release 5.5. In this article, we describe what channel bonding is at a high level, how we set up our test environment, and the results we observed. In our experiments, channel bonding increased bandwidth by as much as 68 percent.
Also available in: Chinese  
Articles 16 Feb 2012
Boot Linux on the Beagle Board
The Beagle Board is an open-hardware single-board computer that is both inexpensive and capable of running Linux at a reasonable speed. Get to know the Beagle Board, and learn how to get a Linux development environment together on the cheap.
Also available in: Japanese   Portuguese  
Articles 18 Aug 2009
Boot loader showdown: Getting to know LILO and GRUB
Most Linux users, from the casual desktop user to the Linux system administrator, have used a utility known as a boot loader. Different variations of this utility provide varying levels of support and functionality. In many cases, the default boot loader installed with a Linux distribution is not always the best for your needs; the same can be said for the default settings of each boot loader. In this article, Laurence Bonney discusses the pros and cons of two of the more popular boot loaders -- LILO and GRUB -- and suggests a number of configurations to get the most from your machine.
Also available in: Japanese  
Articles 24 Aug 2005
Booting Linux on the BeagleBoard-xM
BeagleBoard.org recently introduced BeagleBoard revision xM, a new edition of the highly successful open-hardware BeagleBoard currently at revision C. This article describes the necessary environment and steps for booting Linux on the BeagleBoard-xM with Angstrom Linux, Android, and Ubuntu.
Also available in: Portuguese  
Articles 14 Dec 2010
Build a Linux test network
This tutorial shows how to combine Samba and GRUB to build a compact, highly adaptable, cross-platform test network, capable of booting and networking a large number of operating systems on a small number of machines. Though Samba and GRUB can manage many different operating systems, this tutorial focuses on Linux and Windows.
Tutorial 19 May 2003
Build a Python app for parsing shared memory dumps
Learn how to parse a machine-readable shared memory dump on a Linux platform and extract your expected data format using Python and the struct utility. In this article, you'll first see how to determine the format of the data by reading the binary file format of the dump file; you need this in order to parse, extract, and analyze the data. Next, you'll see how to parse the file based on the format, and then match the results with the expected format to output a validation result. Update: In the Downloads section you'll find a working Python application and dump file that you can use as-is or modify for your own needs. We changed the name of the dump file throughout this article to match the name used in the download. -Ed.
Also available in: Chinese   Russian   Japanese   Spanish  
Articles 30 May 2011
Build a remote-controlled Raspberry Pi 2 monitor for your IBM Cloud apps
Demystify the Internet of Things with a hands-on project that uses the IBM Watson IoT Platform to interconnect your devices and apps. Set up a Raspberry Pi 2 to monitor uptime and access time for a running IBM Cloud app, capturing the results in a graphing app that you can deploy to IBM Cloud. And code a desktop application that controls the Raspberry Pi 2 monitor remotely.
Also available in: Chinese   Russian   Japanese   Portuguese  
Articles 28 Apr 2015
Build an embedded Linux distro from scratch
Learn how to build a custom Linux distribution to use in an embedded environment, in this case to drive a Technologic Systems TS-7800 single-board computer. In this tutorial, you learn about cross-compiling, the boot loader, file systems, the root file system, disk images, and the boot process, all with respect to the decisions you make as you're building the system and creating the distribution.
Also available in: Portuguese  
Tutorial 12 Aug 2008
Build code with lex and yacc, Part 1: Introduction
Lex and yacc are tools to automatically build C code suitable for parsing things in simple languages. These tools are most often used for parts of compilers or interpreters, or for reading configuration files. In the first of two articles, Peter Seebach explains what lex and yacc actually do and shows how to use them for simple tasks.
Also available in: Japanese  
Articles 11 Aug 2004
Build code with lex and yacc, Part 2: Development and troubleshooting
The second article of this two-part series explores more advanced lex/yacc development and introduces basic troubleshooting techniques. See e-mail headers parsed before your very eyes! Marvel at cryptic error messages! See a computer actually compute something!
Also available in: Japanese  
Articles 24 Aug 2004
Building a wireless access point on Linux
When the ability to write and modify your own management software is the main objective, a custom-built wireless access point is the way to go. Take a look at what's involved in building a wireless bridge using Linux, including software and hardware considerations.
Also available in: Japanese  
Articles 22 Jul 2003
Building Boost libraries using the xlcpp toolset for IBM compilers on Linux
This article introduces the procedures to build Boost libraries with Boost build engine, b2/bjam, using the new xlcpp toolset of IBM XL compilers for Linux on little endian systems. The target audience is software engineers interested in increasing productivity and quality of C++ applications by using the expertly designed Boost libraries. This is important for the development of high-quality applications, where the project requirements exceed the extent of features provided by the C++ standard libraries.
Also available in: Chinese  
Articles 22 Apr 2016
BusyBox simplifies embedded Linux systems
BusyBox is a single executable implementation of many standard Linux utilities. BusyBox contains simple utilities, such as cat and echo, as well as larger, more complex tools, such as grep, find, mount, and telnet (albeit, with fewer options than the traditional version); some refer to BusyBox as the Swiss Army knife of utilities. This article explores the purpose of BusyBox, how it works, and why it's important for memory-constrained environments.
Also available in: Japanese  
Articles 15 Aug 2006
C++ exception-handling tricks for Linux
Handling exceptions in C++ has a few implicit restrictions at the language level, but you can get around them in some instances. Learn ways to make exceptions work for you so you can produce more reliable applications.
Articles 23 Feb 2005
Capturing screen shots and program interaction on UNIX and Linux systems: Part 2, Simple graphical screen and window capture
Capturing screen images of applications is something that all technical writers, most graphical application developers, many technical marketing staff members, and even many users need to do. Modern UNIX systems provide a number of different tools to capture graphical screens and single windows. This article, the second of three, focuses on tools that are present on every Linux and UNIX system that uses the X Window System. These tools make it easy to capture graphical portions of the screen to help illustrate both proper and improper program behavior.
Also available in: Chinese  
Articles 19 Apr 2011
Ceph: A Linux petabyte-scale distributed file system
Linux continues to invade the scalable computing space and, in particular, the scalable storage space. A recent addition to Linux's impressive selection of file systems is Ceph, a distributed file system that incorporates replication and fault tolerance while maintaining POSIX compatibility. Explore the architecture of Ceph and learn how it provides fault tolerance and simplifies the management of massive amounts of data.
Also available in: Japanese   Portuguese  
Articles 04 Jun 2010
Ceylon: True advance, or just another language?
The language road in computer science is littered with the carcasses of what was to be "the next big thing." And although many niche languages do find some adoption in scripting or specialized applications, C (and its derivatives) and the Java language are difficult to displace. But Red Hat's Ceylon appears to be an interesting combination of language features, using a well-known C-style syntax but with support for object orientation and useful functional aspects in addition to an emphasis on being succinct. Explore Ceylon and find out if this future VM language can find a place in enterprise software development. [Update: The fail block is clarified in Listing 7. -Ed.]
Also available in: Chinese   Russian   Japanese   Spanish  
Articles 07 Jul 2011
Charming Python: Create declarative mini-languages
The object orientation and transparent introspective capabilities of Python allow you to easily create declarative mini-languages for programming tasks. In this installment, David looks not so much at using Python to interpret or translate other specialized languages (although that is possible), but rather the ways that Python code itself can be helpfully restricted to a set of declarative elements. He'll show you how developers can use declarative techniques to state application requirements in a concise and clear way, while letting the behind-the-scenes framework do the heavy work.
Also available in: Russian   Japanese  
Articles 27 Feb 2003
Charming Python: Curses programming
A certain class of Python applications works best with an interactive user interface without the overhead or complexity of a graphical environment. For interactive text-mode programs (under Linux/UNIX), for example, the ncurses library, wrapped in Python's standard curses module, is just what you need. In this article, David Mertz discusses the use of curses in Python. He illustrates the curses environment using sample source code from a front-end to the Txt2Html program.
Also available in: Japanese  
Articles 01 Sep 2000
Charming Python: Developing a full-text indexer in Python
As the volume of information grows, effective means of locating specific information become ever more crucial. This column discusses the field of full-text indexing, with a focus on the author's public-domain indexer module.
Also available in: Japanese  
Articles 01 May 2001
Charming Python: Distributing computing with RPyC
RPyC is a seamless library for integrating Python processes on many machines/processes. This article looks at the advantages or drawbacks RPyC has over other distributed Python frameworks such as XML-RPC and Pyro. A few simple examples of using RPyC are included to give you a feel for the library.
Also available in: Russian   Japanese   Portuguese  
Articles 31 Mar 2009
Charming Python: Easy Web data collection with mechanize and Beautiful Soup
For collecting data from Web pages, the mechanize library automates scraping and interaction with Web sites. Mechanize lets you fill in forms and set and save cookies, and it offers miscellaneous other tools to make a Python script look like a genuine Web browser to an interactive Web site. A frequently used companion tool called Beautiful Soup helps a Python program makes sense of the messy "almost-HTML" that Web sites tend to contain.
Also available in: Russian   Japanese   Portuguese  
Articles 24 Nov 2009
Charming Python: Generator-based state machines
Introduced in Python 2.2, simple generators may be used to simplify state machines and to simulate coroutines. Coroutines are an exotic flow mechanism that few widely used languages -- not even non-Stackless Python -- allow. Python's new generators, however, get you almost all the way to coroutines, and the extra few steps can be faked. In this installment of Charming Python, David Mertz explains all the relevant concepts through illustrative code samples.
Also available in: Russian   Japanese  
Articles 01 Jul 2002
Charming Python: Get started with the Natural Language Toolkit
In this installment, David introduces you to the Natural Language Toolkit, a Python library for applying academic linguistic techniques to collections of textual data. Programming that goes by the name "text processing" is a start; other capabilities for syntactic and even semantic analysis are further specialized to studying natural languages.
Articles 24 Jun 2004
Charming Python: Implementing "weightless threads" with Python generators
David Mertz introduces weightless threads. Similar to Stackless Python microthreads, but using standard Python 2.2 -- they allow for extremely large numbers of cooperating processes with virtually no overhead.
Also available in: Russian   Japanese  
Articles 01 Jun 2002
Charming Python: Make Python run as fast as C with Psyco
With only a tiny amount of extra programming, Python programmers can often increase code speed by orders of magnitude with the help of an external module known as the Python Specializing Compiler (or Psyco for short). David Mertz looks at what Psyco is, and tests it in some applications.
Also available in: Russian   Japanese  
Articles 01 Oct 2002
Charming Python: Multiple dispatch
Object-oriented programming gains much of its versatility through polymorphism: objects of different kinds can behave in similar ways, given the right contexts. But most OOP programming is single dispatch; that is, just one designated object determines which code path is taken. Conceptually, a more general technique is to allow all the arguments to a function/method to determine its specialization. This article presents an implementation of multiple dispatch in Python, and shows examples where this makes for better programs."
Also available in: Russian   Japanese  
Articles 20 Mar 2003
Charming Python: My first Web-based filtering proxy
This article introduces Txt2Html, a public-domain working project created by David to illustrate programming techniques in Python. Txt2Html is a "Web-based filtering proxy" -- a program that reads Web-based documents for the user, then presents a modified page to the user's browser. To make this possible, Txt2Html runs as a CGI program, queries outside Web resources, and makes use of regular-expressions. David steps you through each of these general-purpose subtasks, explaining, clarifying, and demonstrating along the way.
Also available in: Japanese  
Articles 01 Jul 2000
Charming Python: Parsing with the SimpleParse module
Many parsing tools have been written for Python. This column discusses a high-level parsing language built on top of Python.
Also available in: Japanese  
Articles 01 Jan 2002
Charming Python: Parsing with the Spark module
Spark is a powerful and general parser/compiler framework written in Python. In some respects, Spark offers more than SimpleParse or other Python parsers. Being pure Python, however, it is also slower. In this article, David discusses the Spark module, with code samples, an explanation of its usage, and suggestions for its areas of application.
Also available in: Japanese  
Articles 01 Aug 2002
Charming Python: pydoc and distutils modules
The introduction of several modules and tools in recent Python versions has improved Python, not so much as a language, but as a tool. Author David Mertz reviews these modules that make the job of Python developers substantially easier by improving the documentation and distribution of Python modules and packages.
Also available in: Japanese  
Articles 01 Aug 2001
Charming Python: SimPy simplifies complex models
The stochastic behavior of real-world systems is often difficult to understand or predict. Sometimes it is possible rigorously to demonstrate statistical properties of systems, such as average, worst-case, and best-case performance features. But at other times, pitfalls of concrete designs only become evident when you actually run (or simulate) a system. In this article, David takes a look at SimPy, a Python package that allows you to very easily create models of discrete event systems.
Also available in: Japanese  
Articles 01 Dec 2002
Charming Python: Text processing in Python
Along with several other popular scripting languages, Python is an excellent tool for scanning and manipulating textual data. This article summarizes Python's text processing facilities for the programmer new to Python. The article explains some general concepts of regular expressions and offers advice on when to use (or not use) regular expressions while processing text.
Also available in: Russian   Japanese  
Articles 01 Sep 2000
Charming Python: TK programming in Python
David Mertz introduces TK and the Tkinter wrapper (Python's GUI library) with source code samples accompanied by detailed running commentary. To make life easy, he illustrates his examples with the GUI port of the Txt2Html front-end that he's used in many of his earlier articles. He assumes, of course, that you follow his column regularly. :)
Articles 01 Dec 2000
Charming Python: Updating your Python reading list
In little more than a year, the availability of material for learning and programming in Python has gone from a thin selection of books to the current forest of dead trees. Some books are general introductions to the Python language, while others specialize in particular tasks. Even within the 'general' category, level and focus differ considerably. This column gives David's impressions and recommendations on eight of the best known books about Python.
Articles 01 Feb 2001
Charming Python: Using combinatorial functions in the itertools module
Python 2.2 introduced simple generators to the Python language and reconceived standard loops in terms of underlying iterators. With Python 2.3, generators become standard (no need for _future_, and the new module itertools is introduced to work flexibly with iterators. The itertools module is essentially a set of combinatorial higher-order functions, but ones that work with lazy iterators rather than with finite lists. In this installment, David explores the new module, and gives you a sense of the new expressive power available with combinatorial iterators.
Also available in: Russian   Japanese  
Articles 12 Jun 2003
Charming Python: Using state machines
State machines, in a theoretical sense, underlie almost everything related to computers and programming. And it also turns out that state machines, in a practical sense, can help solve many ordinary problems (especially for Python programmers). In this article, David Mertz discusses some practical examples of when and how to code a state machine in Python.
Also available in: Japanese  
Articles 01 Aug 2000
Cloud computing with Linux
Cloud computing and storage convert physical resources (like processors and storage) into scalable and shareable resources over the Internet (computing and storage "as a service"). Although not a new concept, virtualization makes this much more scalable and efficient through the sharing of physical systems through server virtualization. Cloud computing gives users access to massive computing and storage resources without their having to know where those resources are or how they're configured. As you might expect, Linux plays a huge role. Discover cloud computing, and learn why there's a penguin behind that silver lining. [And see the new Resource links to the latest developerWorks content on cloud computing. -Ed]
Also available in: Russian   Japanese   Portuguese  
Articles 11 Feb 2009
Cloud computing with Linux and Apache Hadoop
Many companies like IBM, Google, VMWare, and Amazon have provided products and strategies for Cloud computing. This article shows you how to use Apache Hadoop to build a MapReduce framework to make a Hadoop Cluster and how to create a sample MapReduce application which runs on Hadoop. You will also learn how to set up a time/disk-consuming task on the cloud.
Also available in: Chinese   Portuguese  
Articles 06 Oct 2009
Cloud computing with Linux thin clients
Explore cloud computing from a Linux perspective and discover some of the most innovative and popular Linux-based solutions -- with a particular view toward environmentally beneficial options.
Also available in: Japanese  
Articles 28 Apr 2009
Comment lines: Scott Johnson: Take a lifetime to be a good (and happy) programmer
A happy programmer knows what they're good at and what is really involved in that pie-in-the-sky job he or she desires. Inspired by an article on the average programmer's big rush to learn the practice of programming, the author shares his views on the topic.
Articles 17 Aug 2005
Common threads: Advanced filesystem implementor's guide, Part 1
With the 2.4 release of Linux come a host of new filesystem possibilities, including ReiserFS, XFS, GFS and others. Sure, these filesystems sound cool, but what exactly can they do, what are they good at and exactly how do you go about safely using them in a Linux production environment? In the advanced filesystem implementor's guide, Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. Along the way, he shares valuable practical implementation advice, performance information and important technical notes so that your new filesystem experience is as pleasant as possible. In this, the first article in the series, he explains the benefits of journalling and ReiserFS.
Articles 01 Jun 2001
Common threads: Advanced filesystem implementor's guide, Part 2
With the 2.4 release of Linux comes a host of new filesystem possibilities, including ReiserFS, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment?
Articles 01 Aug 2001
Common threads: Advanced filesystem implementor's guide, Part 3
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel takes a look at tmpfs, a VM-based filesystem, and introduces you to the new possibilities available with 2.4's "bind"-mounting abilities.
Articles 01 Sep 2001
Common threads: Advanced filesystem implementor's guide, Part 6
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel shows you how to use an init wrapper to (finally!) convert your system to "devfs mode".
Articles 01 Oct 2001
Common threads: Advanced filesystem implementor's guide, Part 7
With the 2.4 release of Linux come a host of new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel takes a look at ext3, a new improved version of ext2 with journaling capabilities.
Also available in: Japanese  
Articles 01 Nov 2001
Common threads: Advanced filesystem implementor's guide, Part 8
With the 2.4 release of Linux come many new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel continues his look at ext3, a new improved version of ext2 with journaling capabilities. He reveals all the inside information on ext3, and demonstrates some shockingly good ext3 data=journal interactive performance numbers.
Also available in: Japanese  
Articles 01 Dec 2001
Common threads: Advanced filesystem implementor's guide, Part 9
With the 2.4 release of Linux come many new filesystem possibilities, including Reiserfs, XFS, GFS, and others. These filesystems sound cool, but what exactly can they do, what are they good at, and exactly how do you go about safely using them in a production Linux environment? Daniel Robbins answers these questions by showing you how to set up these new advanced filesystems under Linux 2.4. In this installment, Daniel introduces XFS, SGI's free enterprise-class filesystem now available for Linux.
Also available in: Japanese  
Articles 01 Jan 2002
Common threads: Learning Linux LVM, Part 1
In this article, Daniel introduces you to the concepts behind Linux LVM (Logical Volume Management) and shows you how to get the latest kernel patches and tools installed on your system. LVM allows you to create logical volumes out of the physical storage resources on your machine. However, unlike physical volumes, the logical volumes can be expanded 0and shrunk while the system is still running, providing Linux system administrators with the storage flexibility that they've until now only dreamed of.
Also available in: Japanese  
Articles 01 Mar 2001
Common threads: OpenSSH key management, Part 1
In this series, you'll learn how RSA and DSA authentication work, and see how to set up passwordless authentication the right way. In the first article of the series, Daniel Robbins focuses on introducing the RSA and DSA authentication protocols and showing you how to get them working over the network.
Also available in: Japanese  
Articles 01 Jul 2001
Common threads: OpenSSH key management, Part 2
This article introduces ssh-agent (a private key cache) and keychain, a special bash script designed to make key-based authentication incredibly convenient and flexible.
Also available in: Japanese  
Articles 01 Sep 2001
Common threads: OpenSSH key management, Part 3
In this third article in a series, Daniel Robbins shows you how to take advantage of OpenSSH agent connection forwarding to enhance security. He also shares recent improvements to the keychain shell script.
Also available in: Japanese  
Articles 01 Feb 2002
Common threads: POSIX threads explained, Part 2
POSIX threads are a great way to increase the responsiveness and performance of your code. In this second article of a three-part series, Daniel Robbins shows you how to protect the integrity of shared data structures in your threaded code by using nifty little things called mutexes.
Also available in: Japanese  
Articles 01 Aug 2000
Common threads: POSIX threads explained, Part 3
In this article, the last of a three-part series on POSIX threads, Daniel takes a good look at how to use condition variables. Condition variables are POSIX thread structures that allow you to "wake up" threads when certain conditions are met. You can think of them as a thread-safe form of signalling. Daniel wraps up the article by using all that you've learned so far to implement a multi-threaded work crew application.
Also available in: Japanese  
Articles 01 Sep 2000
Common threads: Sed by example, Part 1
In this series of articles, Daniel Robbins will show you how to use the very powerful (but often forgotten) UNIX stream editor, sed. Sed is an ideal tool for batch-editing files or for creating shell scripts to modify existing files in powerful ways.
Also available in: Japanese  
Articles 01 Sep 2000
1 - 100 of 510 results | Next
Show Summaries | Hide Summaries