Softpanorama

Home Switchboard Unix Administration Red Hat TCP/IP Networks Neoliberalism Toxic Managers
May the source be with you, but remember the KISS principle ;-)

The Linux Professional Institute(LPI)
 Certification for Linux

News Recommended Books

Recommended Books

Recommended Links Distributions Overview  
Level 1 Level 2 Level 3 Admin Horror Stories Linux Tips Humor Etc

LPI certification is supported by IBM and Ian Shields does tremendous job by regular publishing high qulaity tutorials at IBM Developer Works. That's the main value of certification. Rarely such high quality materals are given for free.  See Recommended Links for a sample.

The Linux Professional Institute (LPI) certifies Linux® system administrators at three levels:

To attain certification level 1, you must pass LPIC-1 exams 101 and 102.
To attain certification level 2, you must pass LPIC-2 exams 201 and 202.
To attain certification level 3, you must pass LPIC-3 exam 301 ("core") and have an active certification level 2. You may also need to pass additional specialty exams at the senior level.

The LPI certification program is designed to certify the competency of system administration using the Linux operating system and its associated tools. It is designed to be distribution neutral, following the Linux Standard Base and other relevant standards and conventions. The Linux Professional Institute does not endorse any third-party exam preparation material or techniques in particular. The name of the certification awarded by LPI is somewhat strange --  Linux Professional Institute Certified (LPIC). But name is not that important. It's the content that matter. 

IBM has good series of LPIC tutorials. The LPIC-1 tutorials (for exams 101 and 102) are authored by Ian Shields. The LPIC-2 tutorials (for exams 201 and 202) are authored by David Mertz and Brad Huntting, individually or together. The LPIC-3 tutorials (for exam 301) are authored by Sean Walberg.


Old News

[Jan 26, 2011] Learn Linux, 101: A roadmap for LPIC-1

Use this roadmap to find IBM developerWorks articles that will help you learn and review basic Linux tasks. And if you're also pursuing professional certification as a Linux system administrator, these articles can help you study for the Linux Professional Institute Certification (LPIC) exam 101 and exam 102. This roadmap is organized according to the 43 objectives in the 101 and 102 exams, which you are required to pass for LPI level 1 certification.

[Dec 21, 2009] IBM developerWorks 10 important Linux developments everyone should know about

Linux Professional Institute certification

In 2000, LPI announced the availability of test 1a, the first exam in its new Linux administrator certification program, a program that now consists of seven tests across three certification levels. developerWorks published its first series of LPI exam-prep tutorials by Daniel Robbins in 2002, and we've kept up with it ever since.

Why it matters: You can argue about the value of certifications, but the fact that employers were looking for a consistent measure of Linux expertise was one of many signs that Linux had arrived.

What we've written about it:

Papers and Info


Overview of LPI Certification Program 


LPIC Level 1

Suitable tasks:

N.B.:

Exams:


LPIC Level 2

Suitable tasks:

Exams:


LPIC Level 3

Suitable tasks:

Exams:

Recommended Links

Five simple ways to tune your LAMP application

The Linux, Apache, MySQL, and PHP (LAMP) architecture is one of the most popular choices for web server architectures in use today. Author John Mertic examines five things every LAMP application should take advantage of for optimum performance.

Articles 25 Jan 2011
Platform emulation with Bochs

Bochs, like QEMU, is a portable emulator that provides a virtualization environment in which to run an operating system using an emulated platform in the context of another operating system. Bochs isn't a hypervisor but rather a PC-compatible emulator useful for legacy software. Learn about platform emulation using Bochs and its approach to hardware emulation.

Articles 25 Jan 2011
Create an IBM Cloud instance with the Linux command line

Learn how to use the command line from Linux to create an instance in the IBM Smart Business Development and Test on the IBM Cloud environment. The author also shows you how to create multiple instances with a simple script.

Articles 24 Jan 2011
Run ZFS on Linux

Although ZFS exists in an operating system whose future is at risk, it is easily one of the most advanced, feature-rich file systems in existence. It incorporates variable block sizes, compression, encryption, de-duplication, snapshots, clones, and (as the name implies) support for massive capacities. Get to know the concepts behind ZFS and learn how you can use ZFS today on Linux using Filesystem in Userspace (FUSE).

Articles 19 Jan 2011
High availability apps in the IBM Cloud

The new features of the IBM Cloud enable application developers and architects to eliminate single points of failures in applications. This article provides a detailed guide on those features. It includes a discussion of the approach the IBM Cloud takes (added support for virtual IP addresses); how to prepare your cloud instances to take advantage of this feature; how to set up a highly available website; and how to test that site.

Articles 10 Jan 2011
Learn Linux, 101: Runlevels, shutdown, and reboot

Learn to shut down or reboot your Linux system, warn users that the system is going down, and switch to a more or less restrictive runlevel. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about shutting down, rebooting, and changing runlevels.

Articles 05 Jan 2011
Learn Linux, 101: A roadmap for LPIC-1

Use this roadmap to find IBM developerWorks articles that will help you learn and review basic Linux tasks. And if you're also pursuing professional certification as a Linux system administrator, these articles can help you study for the Linux Professional Institute Certification (LPIC) exam 101 and exam 102. This roadmap is organized according to the 43 objectives in the 101 and 102 exams, which you are required to pass for LPI level 1 certification.

Also available in: Portuguese   Spanish  
Articles 05 Jan 2011
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.

Articles 14 Dec 2010
Learn Linux, 101: Manage disk quotas

Learn to set and check disk quotas on your Linux filesystems to prevent individual users from using more space than allowed and to prevent whole filesystems from filling up unexpectedly. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about quotas.

Also available in: Japanese  
Articles 30 Nov 2010
Learn Linux, 101: Manage file permissions and ownership

Learn to manage file ownership and permissions on your Linux filesystems. Learn about access modes such as suid, sgid, and the sticky bit and how to use them to enhance security. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about file ownership, permissions, and security.

Also available in: Japanese  
Articles 30 Nov 2010
Network file systems and Linux

Network File System (NFS) has been around since 1984, but it continues to evolve and provide the basis for distributed file systems. Today, NFS (through the pNFS extension) provides scalable access to files distributed across a network. Explore the ideas behind distributed file systems and in particular, recent advances in NFS.

Also available in: Japanese   Portuguese  
Articles 10 Nov 2010
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
Virtual networking in Linux

With the explosive growth of platform virtualization, it's not surprising that other parts of the enterprise ecosystem are being virtualized, as well. One of the more recent areas is virtual networking. Early implementations of platform virtualization created virtual NICs, but today, larger portions of the network are being virtualized, such as switches that support communication among VMs on a server or distributed among servers. Explore the ideas behind virtual networking, with a focus on NIC and switch virtualization.

Also available in: Japanese   Portuguese  
Articles 27 Oct 2010
Migrate your Linux application to the Amazon cloud, Part 4: Conquering administrative challenges

Up to now, you have moved your application to the cloud and can enable and disable resources automatically in response to demand. In this article, the fourth in a series on migrating a Linux application to the Amazon cloud, learn how to keep this changing environment under control so that it supports your application and business.

Also available in: Japanese   Portuguese  
Articles 27 Oct 2010
Port Perl scripts from Solaris to Linux

Although the Perl language is portable among platforms, most of the scripts used for system administration leverage platform-specific resources. And scripts meant for Solaris might use Solaris-specific pathnames and system commands that may have not equivalents on Linux. This article gives you a roadmap for "code remediation" to help you port a Perl script from Solaris to Linux when direct mapping isn't available.

Also available in: Japanese   Portuguese  
Articles 20 Oct 2010
Learn Linux, 101: Control mounting and unmounting of filesystems

Learn to mount your Linux filesystems; configure and use removable USB, IEE 1394, or other devices; and properly access floppy disks, CDs, and DVDs. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about accessing Linux filesystems.

Also available in: Japanese   Portuguese  
Articles 20 Oct 2010
Migrate your Linux application to the Amazon cloud, Part 3: Building scalability

If you've followed the series to this point, our sample Linux application has been migrated to the cloud, and we've configured some basic reliability features. In this article, the third in the series on migrating an application to the Amazon cloud, it's time to take advantage of the dynamic nature of the cloud by growing and shrinking the infrastructure in response to load and to push some of the static assets to the edge of the cloud.

Also available in: Korean   Japanese   Portuguese  
Articles 06 Oct 2010
Kernel logging: APIs and implementation

In kernel development, we useprintk for logging without much thought. But have you considered the process and underlying implementation of kernel logging? Explore the entire process of kernel logging, from printk to insertion into the user space log file.

Also available in: Korean   Japanese   Portuguese  
Articles 30 Sep 2010
Monitor Linux file system events with inotify

Use inotify when you need efficient, fine-grained, asynchronous monitoring of Linux file system events. Use it for user-space monitoring for security, performance, or other purposes. (On 10 September 2010, the downloadable sample code for this article was refreshed to correct a typo. - Ed.)

Also available in: Korean   Japanese   Portuguese  
Articles 10 Sep 2010
Resizing Linux partitions, Part 2: Advanced resizing

Linux systems are often installed on multiple partitions, each of which has a fixed size. As your needs change, though, it is often necessary to resize partitions to suit your changing needs. Several tools exist to do this in Linux, but there are a number of potential pitfalls and restrictions that can make the task more difficult than it might at first seem. This article covers advanced partition resizing issues, including using Logical Volume Management (LVM) features, troubleshooting, and alternatives to partition resizing. Part 1 of this series covered basic partition resizing.

Also available in: Korean   Japanese   Portuguese  
Articles 01 Sep 2010
Porting Perl To Python

Porting legacy Perl to Python can be a daunting task. In this article, learn some of the theory behind dealing with legacy code, including what not to do.

Also available in: Korean   Japanese  
Articles 01 Sep 2010
Avoiding memory leaks in POSIX thread programming

POSIX thread (pthread) programming defines a standard set of C programming language types, functions, and constants--and pthreads provide a powerful tool for thread management. To use pthreads to the fullest, you'll want to avoid the common mistakes. One common mistake is forgetting to join joinable threads, which can create memory leaks and cause extra work. In this tips-oriented article, learn the basics of POSIX threads, see how to identify and detect thread memory leaks, and get solid advice for avoiding them.

Also available in: Korean   Japanese   Spanish  
Articles 25 Aug 2010
Learn Linux, 101: Maintain the integrity of filesystems

Learn how to check the integrity of your Linux filesystems, monitor free space, and fix simple problems. Use the material in this article to study for the Linux Professional Institute (LPI) 101 exam for Linux system administrator certification--or just to check your filesystems and keep them in good working order, especially after a system crash or power loss.

Also available in: Korean   Japanese  
Articles 24 Aug 2010
Ubuntu Linux solution stack implementation, Part 2: Solution stack download and installation

Learn how to download and install Rational Application Developer for WebSphere, DB2 Express-C, and a few other third party packages to get the solution stack up and running. This 4-part demo series shows you how to implement the solution stack (Rational Application Developer, WebSphere Application Server, and DB2 Express-C) on Ubuntu Linux, and how to integrate them in a Java application.

Demos 17 Aug 2010
Ubuntu Linux solution stack implementation, Part 4: Solution stack setup and integration

Part 4 of this demo series shows you how to import the Java servlet application files into the Rational Application Developer workspace, edit a few classes, and deploy the application on a WebSphere Application Server. Finally, you get to see the solution stack work in a real life scenario. This 4-part demo series shows you how to implement the solution stack (Rational Application Developer, WebSphere Application Server, and DB2 Express-C) on Ubuntu Linux, and how to integrate them in a Java application.

Demos 17 Aug 2010
Ubuntu Linux solution stack implementation, Part 3: Demo application

Learn how to configure and setup Rational Application Developer, create a WebSphere profile, create a database in DB2 Express-C, and perform a test run on the solution stack. This 4-part demo series shows you how to implement the solution stack (Rational Appli-ation Developer, WebSphere Application Server, and DB2 Express-C) on Ubuntu Linux, and how to integrate them in a Java application.

Demos 17 Aug 2010
User space memory access from the Linux kernel

As the kernel and user space exist in different virtual address spaces, there are special considerations for moving data between them. Explore the ideas behind virtual address spaces and the kernel APIs for data movement to and from user space, and learn some of the other mapping techniques used to map memory.

Also available in: Japanese   Portuguese  
Articles 11 Aug 2010
Resizing Linux partitions, Part 1: Basics

Linux systems are often installed on multiple partitions, each of which has a fixed size. As your needs change, though, it is often necessary to resize partitions to suit your changing needs. Several tools exist to do this in Linux, but there are a number of potential pitfalls and restrictions that can make the task more difficult than it might seem at first. This article guides you through the task of resizing Linux partitions, beginning with basic preparations and moving on to common resizing scenarios using graphical user interface (GUI) tools.

Also available in: Japanese   Portuguese  
Articles 11 Aug 2010
High availability with the Distributed Replicated Block Device

The 2.6.33 Linux kernel has introduced a useful new service called the Distributed Replicated Block Device (DRBD). This service mirrors an entire block device to another networked host during run time, permitting the development of high-availability clusters for block data. Explore the ideas behind the DRBD and its implementation in the Linux kernel.

Also available in: Japanese  
Articles 04 Aug 2010
Migrate your Linux application to the Amazon cloud, Part 2: Improving application reliability

In this article, the second in a series on migrating a Linux application to the Amazon cloud, learn how to make your application more robust by employing a load balancer and persistent disk. You'll use multiple servers and learn how to safely back up your data.

Also available in: Korean   Japanese   Portuguese  
Articles 03 Aug 2010
Speaking UNIX: Get to know Ksplice

Ksplice applies kernel patches on-the-fly - no reboot required - in a fraction of a second. Here's a hands-on guide to performing painless system updates.

Also available in: Chinese   Korean   Portuguese  
Articles 27 Jul 2010
Ubuntu Linux solution stack implementation, Part 1: Introduction to the UNIX environment

Learn how to download and install a Ubuntu image and then go through some basic shell commands to help you navigate through the UNIX environment. This is part 1 of a 4 part demo series to show you how to implement a solution stack (Rational Application Developer, WebSphere Application Server, and DB2 Express-C) on Ubuntu Linux, as well as how to integrate them in a Java application.

Demos 26 Jul 2010
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
Distributed data processing with Hadoop, Part 3: Application development

With configuration, installation, and the use of Hadoop in single- and multinode architectures under your belt, you can now turn to the task of developing applications within the Hadoop infrastructure. This final article in the series explores the Hadoop APIs and data flow and demonstrates their use with a simple mapper and reducer application.

Also available in: Korean   Japanese   Portuguese  
Articles 14 Jul 2010
Migrate your Linux application to the Amazon cloud, Part 1: Initial migration

Cloud computing and Infrastructure as a Service (IaaS) are well documented, but what's often not discussed is how to get a running application into a cloud environment. In this series, discover how to move an application into the cloud and take advantage of the features this setup has to offer. In Part 1, see a straight migration from one physical server to a cloud server.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 13 Jul 2010
Learn Linux, 101: Create partitions and filesystems

Learn how to create partitions on a disk drive and how to format them for use on a Linux system as swap or data space. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about partitions and Linux filesystems for your own use.

Also available in: Korean   Japanese   Portuguese  
Articles 12 Jul 2010
Learn Linux, 101: Find and place system files

Learn the correct location for files under the Filesystem Hierarchy Standard (FHS) on a Linux system and learn how to find important files and commands. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to explore file organization and management.

Also available in: Korean   Japanese   Portuguese  
Articles 09 Jun 2010
Distributed data processing with Hadoop, Part 2: Going further

The first article in this series showed how to use Hadoop in a single-node cluster. This article continues with a more advanced setup that uses multiple nodes for parallel processing. It demonstrates the various node types required for multinode clusters and explores MapReduce functionality in a parallel environment. This article also digs into the management aspects of Hadoop -- both command line and Web based.

Also available in: Korean   Japanese  
Articles 03 Jun 2010
Continuous integration with Buildbot

The days of cowboy coding are long gone at most organizations, replaced by a renewed interest in generating quality software. Continuous integration (CI) testing is a vital component in the practice of agile programming techniques that lead to high-quality software. Learn the theory and practice of CI testing by exploring Buildbot, an open source CI system written in Python.

Also available in: Korean   Japanese   Portuguese  
Articles 02 Jun 2010
Learn Linux, 101: Create and change hard and symbolic links

Learn how to create and manage hard and symbolic links to files on your Linux system. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to explore the differences between hard and soft, or symbolic, links and the best ways to link to files, as opposed to copying files.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 01 Jun 2010
Enable multipath SAN booting with DS8000 and DMMP

Booting servers from storage area networks with multiple paths can provide significant benefits for the complex, modern data center environment -- benefits such as improving availability and increasing your reach when it comes to easier management and maintenance and in providing reliability. To boot your Linux system from a SAN device, you'll need to set up a SAN boot operating system to your storage with multipath driver support; that's where this article comes in. The author will walk you through setting up a SAN-boot Linux system on the IBM System Storage DS8000 with the multipath function supported by the Device-Mapper MultiPath (DMMP) feature. [Editor's note: The article is updated per the author's comment below.]

Also available in: Portuguese  
Articles 27 May 2010
Distributed data processing with Hadoop, Part 1: Getting started

This article -- the first in a series on Hadoop -- explores the Hadoop framework, including its fundamental elements, such as the Hadoop file system (HDFS), and node types that are commonly used. Learn how to install and configure a single-node Hadoop cluster, and delve into the MapReduce application. Finally, discover ways to monitor and manage Hadoop using its core Web interfaces.

Also available in: Korean   Japanese   Portuguese  
Articles 18 May 2010
Learn Linux, 101: Debian package management

Learn how to install, upgrade, and manage packages on your Linux system. This article focuses on the Advanced Packaging Tool, or APT, which is the package management system used by Debian and distributions derived from Debian, such as Ubuntu. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to explore the best ways to add new software and keep your system current.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 11 May 2010
Learn Linux, 101: RPM and YUM package management

Learn how to install, upgrade and manage packages on your Linux system. This article focuses on the Red Hat Package Manager (RPM) developed by Red Hat, as well as the Yellowdog Updater Modified (YUM) originally developed to manage Red Hat Linux systems at Duke University's Physics department. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to explore the best ways to add new software and keep your system current.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 11 May 2010
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: Korean   Japanese   Portuguese  
Articles 04 May 2010
Linux on 4KB-sector disks: Practical advice

Starting in December 2009, hard disk manufacturers began introducing disks that use 4096-byte sectors rather than the more common 512-byte sectors. Although this change is masked by firmware that breaks the 4096-byte physical sectors into 512-byte logical sectors for the benefit of the operating system, the use of larger physical sectors has implications for disk layout and system performance. This article examines these implications, including benchmark tests illustrating the likely real-world effects on some common Linux file systems. As disks with 4096-byte sectors become more common throughout 2010 and beyond, strategies for coping with these new disks will become increasingly important.

Also available in: Chinese   Korean   Japanese   Portuguese  
Articles 27 Apr 2010
Open source in a new light

So you've got to cut costs, but you're not a manager. You're a software developer, or a power user, or just someone who needs to keep the bottom line healthy enough to support your salary. These are ideal situations for introducing open source software solutions into your environment. That might sound like you'll spend the next three weeks learning to program or write makefiles, but it's just not so. Read on and see how open source is a flexible, usable approach to efficiency in your work environment.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 20 Apr 2010
Migrate to GRUB 2

The tools used to boot Linux are changing. Specifically, the Grand Unified Bootloader (GRUB) is now officially in maintenance mode only, and GRUB's developers have abandoned the original GRUB in favor of an entirely rewritten package, known as GRUB 2. Discover GRUB 2's new capabilities and how to use it.

Also available in: Korean   Japanese   Portuguese  
Articles 14 Apr 2010
Learn Linux, 101: Boot managers

Learn how to choose and configure a boot manager for your Linux system. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 13 Apr 2010
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: Korean   Japanese   Portuguese  
Articles 07 Apr 2010
Kernel APIs, Part 3: Timers and lists in the 2.6 kernel

The Linux kernel includes a variety of APIs intended to help developers build simpler and more efficient driver and kernel applications. Two of the more common APIs that can be used for work deferral are the list management and timer APIs. Discover these APIs, and learn how to develop kernel applications with timers and lists.

Also available in: Korean   Portuguese   Spanish  
Articles 30 Mar 2010
Learn Linux, 101: Manage shared libraries

Learn how to determine which shared libraries your Linux executable programs depend on and how to load them. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese   Portuguese  
Articles 10 Mar 2010
Scripting the Vim editor, Part 5: Event-driven scripting and automation

Why repeat yourself? You can configure Vim’s comprehensive event model to execute time-saving scripts whenever particular editing events -- such as loading a file or switching between editor modes -- occur. This article, the fifth in a series, describes how events work in Vim, explores a selection of useful event types, and then gets you started with attaching specific scripts to particular events. The end result is a more automated workflow configured precisely to your needs.

Also available in: Korean   Japanese  
Articles 03 Mar 2010
Kernel APIs, Part 2: Deferrable functions, kernel tasklets, and work queues

For high-frequency threaded operations, the Linux kernel provides tasklets and work queues. Tasklets and work queues implement deferrable functionality and replace the older bottom-half mechanism for drivers. This article explores the use of tasklets and work queues in the kernel and shows you how to build deferrable functions with these APIs.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 02 Mar 2010
Learn Linux, 101: Hard disk layout

Learn how to design a partition layout for disks on a Linux system. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese   Portuguese  
Articles 24 Feb 2010
Kernel APIs, Part 1: Invoking user-space applications from the kernel

The Linux system call interface permits user-space applications to invoke functionality in the kernel, but what about invoking user-space applications from the kernel? Explore the usermode-helper API, and learn how to invoke user-space applications and manipulate their output.

Also available in: Korean   Japanese   Spanish  
Articles 16 Feb 2010
Scripting the Vim editor, Part 4: Dictionaries

A dictionary is a container data structure that offers different optimizations and trade-offs from a list. In particular, in a dictionary the order of the elements stored is irrelevant and the identity of each element is explicit. In this fourth article in a series introducing Vimscript, Damian Conway introduces you to dictionaries, including an overview of their basic syntax and many functions. He concludes with several examples that illustrate the use of dictionaries for more efficient data processing and cleaner code.

Also available in: Korean   Japanese  
Articles 10 Feb 2010
Learn Linux, 101: File editing with vi

Learn how to use the vi editor, found on almost every UNIX and Linux system. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese   Spanish  
Articles 10 Feb 2010
Kernel command using Linux system calls

Linux system calls -- we use them every day. But do you know how a system call is performed from user-space to the kernel? Explore the Linux system call interface (SCI), learn how to add new system calls (and alternatives for doing so), and discover utilities related to the SCI. [This article has been updated to reflect coding changes for kernels 2.6.18 and later. -Ed.]

Also available in: Chinese   Japanese   Portuguese   Spanish  
Articles 10 Feb 2010
Using QEMU for cross-platform development

One of Linux's strengths is its cross-platform nature: you can run it on x86, x86-64, SPARC, PowerPC, and many other central processing units (CPUs). This wealth of hardware choices poses a challenge for software developers, though. Ensuring that software compiles, and runs correctly, on all platforms can be difficult. The use of the QEMU package can help ease this burden. QEMU is a machine emulator that supports a wide range of CPUs, so you can run PowerPC software on an x86 computer, x86-64 software on an SPARC computer, or what have you. This facility is particularly useful for programmers who need to test software's endianness compatibility or check other CPU-specific features. QEMU also enables you to run different operating systems entirely, so that you can test a program's ability to compile and run under FreeBSD, Solaris, or even Microsoft Windows without shutting down Linux.

Also available in: Korean   Japanese  
Articles 09 Feb 2010
Learn Linux, 101: Search text files using regular expressions

Learn how to use regular expressions, and then use them to find things in files on your filesystem. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese  
Articles 03 Feb 2010
Learn Linux, 101: Process execution priorities

Learn how to set and change process priorities so that applications get as much processing time as they need. You can use this material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese  
Articles 02 Feb 2010
Learn Linux, 101: Create, monitor, and kill processes

Learn about process management on Linux: how to shuffle processes between foreground and background, find out what's running, kill processes, and keep processes running after you've left for the day. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Korean   Japanese  
Articles 02 Feb 2010
Virtio: An I/O virtualization framework for Linux

The Linux kernel supports a variety of virtualization schemes, and that's likely to grow as virtualization advances and new schemes are discovered (for example, lguest). But with all these virtualization schemes running on top of Linux, how do they exploit the underlying kernel for I/O virtualization? The answer is virtio, which provides an efficient abstraction for hypervisors and a common set of I/O virtualization drivers. Discover virtio, and learn why Linux will soon be the hypervisor of choice.

Also available in: Korean   Japanese   Spanish  
Articles 29 Jan 2010
Scripting the Vim editor, Part 3: Built-in lists

Vimscript provides excellent support for operating on collections of data, a cornerstone of programming. In this third article in the series, learn how to use Vimscript's built-in lists to ease everyday operations such as reformatting lists, filtering sequences of filenames, and sorting sets of line numbers. You'll also walk through examples that demonstrate the power of lists to extend and enhance two common uses of Vim: creating a user-defined function to align assignment operators, and improving the built-in text completions mechanism.

Also available in: Japanese  
Articles 27 Jan 2010
Generate dummy CIM indications for testing on Linux

Hardware management using the Common Information Model standard often means that the management application must be capable of listening to and handling the indications that occur at the hardware level. To test the indication listener component of the management application when the planned system hardware is not available during development, you will need dummy indications. This article explains how to generate dummy indications on OpenPegasus CIMOM (Common Information Model Object Manager) using a provider shipped with the OpenPegasus source code.

Also available in: Korean   Japanese   Portuguese  
Articles 26 Jan 2010
Learn Linux, 101: Text streams and filters

There's a lot more to text manipulation than cut and paste, particularly when you aren't using a GUI. Study for the Linux Professional Institute Certification (LPIC) 101 exam, or learn for fun. In this article, Ian Shields introduces you to text manipulation on Linux using filters from the GNU textutils package. By the end of this article, you will be manipulating text like an expert. [The first line of Listing 7 has been corrected, thanks to an alert reader. -Ed.}

Also available in: Korean   Japanese   Portuguese  
Articles 26 Jan 2010
Cultured Perl: Storage management on Amazon S3

Learn how Perl programmers can use three of the CPAN S3 modules -- Net::Amazon::S3, Amazon::S3, and SOAP::Amazon::S3 -- to list, create, and delete "buckets" (S3 data storage); to list, create, retrieve, and delete items in a bucket; and to get an item's metadata.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 20 Jan 2010
Create a KVM-based virtual server

In three relatively simple steps, you can create a virtual server on the Linux KVM hypervisor host using full virtualization. The Kernel-based Virtual Machine (KVM) is free, open source virtualization software for Linux that is based on hardware virtualization extensions (Intel VT-X and AMD-V) and a modified version of QEMU.

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 19 Jan 2010
Scripting the Linux desktop, Part 1: Basics

This series of articles explores how to use Python to create scripts for the GNOME desktop, the screenlets framework, and Nautilus to deliver a highly productive environment. Scripts on the desktop enable drag-and-drop functionality and quick access to the information and services you commonly use. In this installment, learn how to build a desktop application using the screenlets widget toolkit.

Articles 18 Jan 2010
Packaging software with RPM, Part 3: Accommodating software dependencies

In this third article in a three-part series on the RPM Package Manager, discover the ins and outs of software dependencies, and learn how to control and customize your software packaging. (This series replaces an earlier series on RPM written by Dan Poirier.)

Also available in: Japanese   Portuguese   Spanish  
Articles 12 Jan 2010
Packaging software with RPM, Part 2: Upgrading and uninstalling software

In this second article in a three-part series on the RPM Package Manager, learn how how to use RPM to upgrade and uninstall software on your Linux system. (This series replaces an earlier series on RPM written by Dan Poirier.)

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 12 Jan 2010
Packaging software with RPM, Part 1: Building and distributing packages

In this first article in a three-part series on the RPM Package Manager, learn how to use RPM not just to install software and attendant files but to package almost anything, from system scripts to source code to documentation. (This series replaces an earlier series on RPM written by Dan Poirier.)

Also available in: Japanese   Portuguese   Spanish  
Articles 12 Jan 2010
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
Inside the Linux 2.6 Completely Fair Scheduler

The task scheduler is a key part of any operating system, and Linux continues to evolve and innovate in this area. In kernel 2.6.23, the Completely Fair Scheduler (CFS) was introduced. This scheduler, instead of relying on run queues, uses a red-black tree implementation for task management. Explore the ideas behind CFS, its implementation, and advantages over the prior O(1) scheduler.

Also available in: Korean   Japanese  
Articles 15 Dec 2009
Cultured Perl: Practical Twitter with Perl

Learn how to access the features of the Twitter API using the CPAN Net::Twitter module. You'll also see some solid business uses for Twitter, including automated posting and analyzing Twitter search results.

Also available in: Japanese   Portuguese  
Articles 08 Dec 2009
Git for Subversion users, Part 2: Taking control

Git offers Linux developers a number of advantages over Subversion for software version control, so developers working collaboratively owe it to themselves get familiar with the basic concepts behind it. In this installment, Ted dissects branching and merging in both Git and Subversion, introduces "git bisect" for bisecting changes, and shows how to resolve merge conflicts.

Also available in: Korean   Japanese   Portuguese   Portuguese  
Articles 25 Nov 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
Cultured Perl: Flickr, a business's bst frnd

Flickr isn't just for photo sharing and social networking; it's a legitimate business tool. Learn how Perl programmers can use the CPAN Chart modules to create charts and graphs, and the Flickr::Upload module to upload the charts to Flickr.

Also available in: Japanese   Portuguese  
Articles 24 Nov 2009
Linux introspection and SystemTap

Modern operating system kernels provide the means for introspection, the ability to peer dynamically within the kernel to understand its behaviors. These behaviors can indicate problems in the kernel as well as performance bottlenecks. With this knowledge, you can tune or modify the kernel to avoid failure conditions. Discover an open source infrastructure called SystemTap that provides this dynamic introspection for the Linux kernel.

Also available in: Korean   Japanese   Portuguese  
Articles 09 Nov 2009
Next-generation Linux file systems: NiLFS(2) and exofs

Linux continues to innovate in the area of file systems. It supports the largest variety of file systems of any operating system. It also provides cutting-edge file system technology. Two new file systems that are making their way into Linux include the NiLFS(2) log-structured file system and the exofs object-based storage system. Discover the purpose behind these two new file systems and the advantages that they bring.

Also available in: Korean   Japanese   Portuguese  
Articles 31 Oct 2009
Virtual appliances and the Open Virtualization Format

Not only has virtualization advanced the state of the art in maximizing server efficiency, it has also opened the door to new technologies that were not possible before. One of these technologies is the virtual appliance, which fundamentally changes the way software is delivered, configured, and managed. But the power behind virtual appliances lies in the ability to freely share them among different hypervisors. Learn the ideas and benefits behind virtual appliances, and discover a standard solution for virtual appliance interoperability called the Open Virtualization Format.

Also available in: Korean   Portuguese  
Articles 20 Oct 2009
Learn Linux, 101: Streams, pipes, and redirects

If you think streams and pipes make a Linux expert sound like a plumber, here's your chance to learn about them and how to redirect and split them. You even learn how to turn a stream into command arguments. You can use this material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Japanese   Portuguese   Spanish  
Articles 14 Oct 2009
Linux virtualization and PCI passthrough

Processors have evolved to improve performance for virtualized environments, but what about I/O aspects? Discover one such I/O performance enhancement called device (or PCI) passthrough. This innovation improves performance of PCI devices using hardware support from Intel (VT-d) or AMD (IOMMU).

Also available in: Korean   Japanese   Portuguese   Spanish  
Articles 13 Oct 2009
Reduce Linux power consumption, Part 3: Tuning results

This three-part series is your starting point for tuning your system for power efficiency. In Part 3, the author compares the performance of the five in-kernel governors in both tuned and untuned states to show you how to optimize a Linux-based System x server.

Also available in: Portuguese  
Articles 07 Oct 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   Korean   Portuguese  
Articles 06 Oct 2009
Learn Linux, 101: File and directory management

You've probably heard that everything in Linux is a file, so start on the right path with a solid grounding in file and directory management -- finding, listing, moving, copying, and archiving. You can use this material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun.

Also available in: Japanese   Portuguese   Spanish  
Articles 06 Oct 2009
Monitor home energy with AMEE

Electricity is invisible. To understand how people use it, you need to make it visible. This tutorial will show you how easy it is to build a Web-based energy monitoring system yourself, using a Current Cost real-time energy monitor and AMEE, a neutral Web-based API for energy data, combined with some XML, Ruby, Rails, and Ajax.

Also available in: Korean   Portuguese  
Tutorial 29 Sep 2009
Reduce Linux power consumption, Part 2: General and governor-specific settings

This three-part series is your starting point for tuning your system for power efficiency. In Part 2, follow a step-by-step guide on the general settings of the Linux CPUfreq subsystem and get more details on the five in-kernel governors -- performance, powersave, userspace, ondemand, and conservative -- and their settings.

Also available in: Korean   Russian   Portuguese   Spanish  
Articles 23 Sep 2009
Reduce Linux power consumption, Part 1: The CPUfreq subsystem

This three-part series is your starting point for tuning your system for power efficiency. In Part 1, get up to speed on the components and concepts you need to fine-tune a Linux-based System x server for power efficiency. Learn how to enable the Linux CPUfreq subsystem, get instruction on C and P states, and determine which of the five in-kernel governors you need to boost power efficiency on your system.

Also available in: Korean   Russian   Portuguese   Spanish  
Articles 15 Sep 2009
Linux on POWER: Distribution migration and binary compatibility considerations

Learn about binary compatibility as it relates to the different operating environments that run on Linux on POWER. Examine the two Linux on POWER distributions supported by IBM, Red Hat Enterprise Linux (RHEL) and SUSE LINUX Enterprise Server (SLES), with regard to the binary compatibility between their respective releases. In general, a smooth transition from the 2.6.9 kernel-based RHEL4 to the 2.6.18 kernel-based RHEL5 is made possible by the stable Application Binary Interface (ABI) maintained between the releases. The same can be said when moving from the 2.6.5 kernel-based SLES9 to the 2.6.16 kernel-based SLES10. Learn about new technologies that can provide performance enhancements for a Linux on POWER application, and follow steps to ensure binary compatibility across multiple distributions in the future. [Additional items have been added to the Resources section. -Ed.]

Also available in: Russian   Portuguese  
Articles 09 Sep 2009
Guide to porting from Solaris to Linux on POWER

Accelerate your porting efforts by following this six-step guide. Learn the differences between Solaris and Linux on POWER that you commonly encounter during a port. Get an introduction to the development environment for Linux running on IBM POWER processor-based systems, and see how Sun's compiler/linker switches compare with those of GNU GCC and the IBM native compiler. Finally, learn about tools for performance analysis and software packaging for Linux on POWER. [This article has been updated to reflect the latest product versions. -Ed.]

Articles 08 Sep 2009
Learn Linux, 101: The Linux command line

GUIs are fine, but to unlock the real power of Linux, there's no substitute for the command line. In this article, Ian Shields introduces you to some of the major features of the bash shell, with an emphasis on the features that are important for LPI certification. By the end of this article, you will be comfortable using basic Linux commands like echo and exit, setting environment variables, and gathering system information. [The first two notes following Listing 8 have been updated to correct the process IDs (PIDs). -Ed.]

Also available in: Japanese   Vietnamese   Portuguese   Spanish  
Articles 31 Aug 2009
Anatomy of the Linux virtual file system switch

Linux is the very definition of flexibility and extensibility. Take the virtual file system switch (VFS). You can create file systems on a variety of devices, from traditional disk, USB flash drives, memory, and other storage devices. You can even embed a file system within the context of another file system. Discover what makes the VFS so powerful, and learn its major interfaces and processes.

Also available in: Korean   Japanese  
Articles 31 Aug 2009
Git changes the game of distributed Web development

Version control systems are a core component of most development projects, regardless of whether you're developing an application, a Web site, or an operating system. Most projects involve multiple developers, often working at widely separated physical locations. Distributed version control systems are nothing new, but the Git version control system provides unique support for collaboration and interaction among developers.

Also available in: Chinese   Korean   Japanese  
Articles 25 Aug 2009
Three ways to recycle commodity hardware with Linux

Outdated computer hardware may be too old to rely on, but it represents a value to your organization -- whether in an office or at home. Discover how you can realize that value by repurposing older machines with Linux.

Also available in: Portuguese  
Articles 22 Aug 2009
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
Thoughts from OSCON 2009: Open government, concurrency

The O'Reilly Open Source Convention (OSCON) is nothing if not a place to collect one's deeper thoughts around software development. The 2009 convention offered more than its share of inspiration, but David Mertz whittled the schedule down and focused on two very different but important areas: open government and concurrency.

Also available in: Portuguese  
Articles 12 Aug 2009
Git for Subversion users, Part 1: Getting started

Distributed version control systems (DVCSs) offer a number of advantages over centralized VCSs, and for Subversion users looking to explore this model, Git is a great place to start. Using Subversion as a baseline, this first of two articles shows how to install Git, set up a remote repository, and begin using basic Git commands.

Also available in: Korean   Japanese  
Articles 04 Aug 2009
Make the most of large drives with GPT and Linux

Once a faraway problem, an important barrier in disk storage is fast becoming a reality: the venerable master boot record (MBR) partitioning scheme can't fully handle disks larger than 2TB. With 1TB-hard disks now common and 2TB-disks becoming available, forward-looking individuals are thinking about alternatives to the MBR partitioning scheme. The heir apparent is the GUID Partition Table (GPT). Learn how to make sure your Linux system is fully prepared for the future of disk storage.

 

 


Etc

Society

Groupthink : Two Party System as Polyarchy : Corruption of Regulators : Bureaucracies : Understanding Micromanagers and Control Freaks : Toxic Managers :   Harvard Mafia : Diplomatic Communication : Surviving a Bad Performance Review : Insufficient Retirement Funds as Immanent Problem of Neoliberal Regime : PseudoScience : Who Rules America : Neoliberalism  : The Iron Law of Oligarchy : Libertarian Philosophy

Quotes

War and Peace : Skeptical Finance : John Kenneth Galbraith :Talleyrand : Oscar Wilde : Otto Von Bismarck : Keynes : George Carlin : Skeptics : Propaganda  : SE quotes : Language Design and Programming Quotes : Random IT-related quotesSomerset Maugham : Marcus Aurelius : Kurt Vonnegut : Eric Hoffer : Winston Churchill : Napoleon Bonaparte : Ambrose BierceBernard Shaw : Mark Twain Quotes

Bulletin:

Vol 25, No.12 (December, 2013) Rational Fools vs. Efficient Crooks The efficient markets hypothesis : Political Skeptic Bulletin, 2013 : Unemployment Bulletin, 2010 :  Vol 23, No.10 (October, 2011) An observation about corporate security departments : Slightly Skeptical Euromaydan Chronicles, June 2014 : Greenspan legacy bulletin, 2008 : Vol 25, No.10 (October, 2013) Cryptolocker Trojan (Win32/Crilock.A) : Vol 25, No.08 (August, 2013) Cloud providers as intelligence collection hubs : Financial Humor Bulletin, 2010 : Inequality Bulletin, 2009 : Financial Humor Bulletin, 2008 : Copyleft Problems Bulletin, 2004 : Financial Humor Bulletin, 2011 : Energy Bulletin, 2010 : Malware Protection Bulletin, 2010 : Vol 26, No.1 (January, 2013) Object-Oriented Cult : Political Skeptic Bulletin, 2011 : Vol 23, No.11 (November, 2011) Softpanorama classification of sysadmin horror stories : Vol 25, No.05 (May, 2013) Corporate bullshit as a communication method  : Vol 25, No.06 (June, 2013) A Note on the Relationship of Brooks Law and Conway Law

History:

Fifty glorious years (1950-2000): the triumph of the US computer engineering : Donald Knuth : TAoCP and its Influence of Computer Science : Richard Stallman : Linus Torvalds  : Larry Wall  : John K. Ousterhout : CTSS : Multix OS Unix History : Unix shell history : VI editor : History of pipes concept : Solaris : MS DOSProgramming Languages History : PL/1 : Simula 67 : C : History of GCC developmentScripting Languages : Perl history   : OS History : Mail : DNS : SSH : CPU Instruction Sets : SPARC systems 1987-2006 : Norton Commander : Norton Utilities : Norton Ghost : Frontpage history : Malware Defense History : GNU Screen : OSS early history

Classic books:

The Peter Principle : Parkinson Law : 1984 : The Mythical Man-MonthHow to Solve It by George Polya : The Art of Computer Programming : The Elements of Programming Style : The Unix Hater’s Handbook : The Jargon file : The True Believer : Programming Pearls : The Good Soldier Svejk : The Power Elite

Most popular humor pages:

Manifest of the Softpanorama IT Slacker Society : Ten Commandments of the IT Slackers Society : Computer Humor Collection : BSD Logo Story : The Cuckoo's Egg : IT Slang : C++ Humor : ARE YOU A BBS ADDICT? : The Perl Purity Test : Object oriented programmers of all nations : Financial Humor : Financial Humor Bulletin, 2008 : Financial Humor Bulletin, 2010 : The Most Comprehensive Collection of Editor-related Humor : Programming Language Humor : Goldman Sachs related humor : Greenspan humor : C Humor : Scripting Humor : Real Programmers Humor : Web Humor : GPL-related Humor : OFM Humor : Politically Incorrect Humor : IDS Humor : "Linux Sucks" Humor : Russian Musical Humor : Best Russian Programmer Humor : Microsoft plans to buy Catholic Church : Richard Stallman Related Humor : Admin Humor : Perl-related Humor : Linus Torvalds Related humor : PseudoScience Related Humor : Networking Humor : Shell Humor : Financial Humor Bulletin, 2011 : Financial Humor Bulletin, 2012 : Financial Humor Bulletin, 2013 : Java Humor : Software Engineering Humor : Sun Solaris Related Humor : Education Humor : IBM Humor : Assembler-related Humor : VIM Humor : Computer Viruses Humor : Bright tomorrow is rescheduled to a day after tomorrow : Classic Computer Humor

The Last but not Least


Copyright © 1996-2018 by Dr. Nikolai Bezroukov. www.softpanorama.org was initially created as a service to the (now defunct) UN Sustainable Development Networking Programme (SDNP) in the author free time and without any remuneration. This document is an industrial compilation designed and created exclusively for educational use and is distributed under the Softpanorama Content License. Original materials copyright belong to respective owners. Quotes are made for educational purposes only in compliance with the fair use doctrine.

 

FAIR USE NOTICE This site contains copyrighted material the use of which has not always been specifically authorized by the copyright owner. We are making such material available to advance understanding of computer science, IT technology, economic, scientific, and social issues. We believe this constitutes a 'fair use' of any such copyrighted material as provided by section 107 of the US Copyright Law according to which such material can be distributed without profit exclusively for research and educational purposes.

This is a Spartan WHYFF (We Help You For Free) site written by people for whom English is not a native language. Grammar and spelling errors should be expected. The site contain some broken links as it develops like a living tree...

You can use PayPal to make a contribution, supporting development of this site and speed up access. In case softpanorama.org is down you can use the at softpanorama.info

Disclaimer:

The statements, views and opinions presented on this web page are those of the author (or referenced source) and are not endorsed by, nor do they necessarily reflect, the opinions of the author present and former employers, SDNP or any other organization the author may be associated with. We do not warrant the correctness of the information provided or its fitness for any purpose.

The site uses AdSense so you need to be aware of Google privacy policy. You you do not want to be tracked by Google please disable Javascript for this site. This site is perfectly usable without Javascript.

Last modified: March 08, 2018