Debian

131 results back to index


pages: 678 words: 159,840

The Debian Administrator's Handbook, Debian Wheezy From Discovery to Mastery by Raphaal Hertzog, Roland Mas

bash_history, Debian, distributed generation, do-ocracy, en.wikipedia.org, failed state, Firefox, GnuPG, Google Chrome, Jono Bacon, MITM: man-in-the-middle, NP-complete, QWERTY keyboard, RFC: Request For Comment, Richard Stallman, Skype, SpamAssassin, Valgrind, web application, zero day, Zimmermann PGP

Repositories for Testing/Unstable Users Here is a standard sources.list for a system running the Testing or Unstable version of Debian: Example 6.2. /etc/apt/sources.list file for users of Debian Testing/Unstable # Unstable deb http://ftp.debian.org/debian unstable main contrib non-free deb-src http://ftp.debian.org/debian unstable main contrib non-free # Testing deb http://ftp.debian.org/debian testing main contrib non-free deb-src http://ftp.debian.org/debian testing main contrib non-free # Stable deb http://ftp.debian.org/debian stable main contrib non-free deb-src http://ftp.debian.org/debian stable main contrib non-free # Security updates deb http://security.debian.org/ stable/updates main contrib non-free deb http://security.debian.org/ testing/updates main contrib non-free deb-src http://security.debian.org/ stable/updates main contrib non-free deb-src http://security.debian.org/ testing/updates main contrib non-free With this sources.list file APT will install packages from Unstable.

Repositories for Stable Users Here is a standard sources.list for a system running the Stable version of Debian: Example 6.1. /etc/apt/sources.list file for users of Debian Stable # Security updates deb http://security.debian.org/ wheezy/updates main contrib non-free deb-src http://security.debian.org/ wheezy/updates main contrib non-free ## Debian mirror # Base repository deb http://ftp.debian.org/debian wheezy main contrib non-free deb-src http://ftp.debian.org/debian wheezy main contrib non-free # Stable updates deb http://ftp.debian.org/debian wheezy-updates main contrib non-free deb-src http://ftp.debian.org/debian wheezy-updates main contrib non-free # Stable backports deb http://ftp.debian.org/debian wheezy-backports main contrib non-free deb-src http://ftp.debian.org/debian wheezy-backports main contrib non-free This file lists all sources of packages associated with the Wheezy version of Debian (the current Stable as of this writing).

→ http://www.spi-inc.org/ In addition to SPI, various local associations collaborate closely with Debian in order to generate funds for Debian, without centralizing everything in the U.S.A: they are known as “Trusted Organizations” in the Debian jargon. This setup avoids prohibitive international transfer costs, and fits well with the decentralized nature of the project. While the list of trusted organizations is rather short, there are many more Debian-related associations whose goal is to promote Debian: Debian France, Debian-UK, Debian-ES, debian.ch, and others around the world. Do not hesitate to join your local association and support the project! → http://wiki.debian.org/Teams/Auditor/Organizations → http://france.debian.net/ → http://wiki.earth.li/DebianUKSociety → http://www.debian-es.org/ → http://debian.ch/ 1.2.


pages: 398 words: 107,788

Coding Freedom: The Ethics and Aesthetics of Hacking by E. Gabriella Coleman

activist lawyer, Benjamin Mako Hill, commoditize, crowdsourcing, Debian, disinformation, Donald Knuth, dumpster diving, en.wikipedia.org, financial independence, ghettoisation, GnuPG, Hacker Conference 1984, Hacker Ethic, Herbert Marcuse, informal economy, Jacob Appelbaum, Jaron Lanier, Jason Scott: textfiles.com, Jean Tirole, knowledge economy, laissez-faire capitalism, Larry Wall, Louis Pasteur, means of production, Paul Graham, peer-to-peer, pirate software, popular electronics, RFC: Request For Comment, Richard Stallman, rolodex, Ronald Reagan, Silicon Valley, Silicon Valley startup, slashdot, software patent, software studies, Steve Ballmer, Steven Levy, Ted Nelson, The Hackers Conference, the scientific method, The Structural Transformation of the Public Sphere, web application, web of trust, Yochai Benkler

For example, at Debconf4, the few women attending, spearheaded by the efforts of Erinn Clark, used the time and energy afforded by an in-person meeting to initiate and organize Debian Women Project, a Web site portal and IRC mailing list to encourage female participation by visibly demonstrating the presence of women in the largely male project. Following the conference, one of the female Debian developers, Amaya Rodrigo, posted a bug report calling for a Debian Women’s mailing list, explaining the rationale in the following way: From: Amaya Rodrigo Sastre <amaya@debian.org> To: Debian Bug Tracking System <submit@bugs.debian.org> Subject: Please create debian-women mailing list Date: Tue, 01 Jun 2004 22:12:30 +0200 Package:lists.debian.org Severity: normal Out of a Debconf4 workshop the need has arisen for a mailing list oriented to debating and coordinating the different ways to get a larger female userbase.

Distributing a package illegally could leave Debian open to lawsuits. One class of Debian developers has made legal matters their obsession. These aficionados contribute prolifically to the legal pulse of Debian in debian-legal—a mailing list that because of its legal esoterica and large number of posts, is not for the faint of heart. For those who are interested in keeping abreast but do not have time to read every message posted on debian-legal, summaries link to it in a weekly newsletter, Debian Weekly News. Below, I quote a fraction (about one-fifth) of the legal news items that were reported in Debian Weekly News during the course of 2002 (the numbers are references linking to mailing list threads or news stories): GNU FDL a non-free License?

It is no longer the case that this is the only method used, but the name FTP master has stuck. 12. See Usenet Cabal FAQ, http://www.subgenius.com/bigfist/hallscience/computers/X0012_Internet_History.html (accessed July 26, 2011). 13. http://lists.debian.org/debian-devel/2005/03/msg02062.html (accessed July 10, 2011). 14. http://www.mail-archive.com/debian-vote@lists.debian.org/msg08500.html (accessed July 26, 2011). 15. http://lists.debian.org/debian-project/2005/03/msg00142.html (accessed July 26, 2011). 16. http://www.debian.org/devel/tech-ctte (accessed July 26, 2011). 17. Ibid. 18. To contain the sprawling size of this chapter, I am not providing an example of one of these legendary bugs or how debate over technical issues becomes a place where questions of authority are raised.


Pulling Strings With Puppet: Configuration Management Made Easy by James Turnbull

Debian, en.wikipedia.org, Kickstarter, revision control, Ruby on Rails, source of truth, SpamAssassin

Table 2-2 presents a list of all of the platforms with Facter ports or packages available at the time of writing. Table 2-2. Facter Packages Platform Facter Package Name Debian facter Fedora facter FreeBSD facter Gentoo facter OpenBSD ruby-facter Ubuntu facter Tip ➡ If you install Facter on Debian, you may also want the lsb-release package (if it is not already installed). This package provides Facter with Linux Standard Base facts that help you identify specific Debian and derived distributions. Most other Linux distributions install this package by default, for example, Ubuntu and Red Hat (redhat-lsb). For example, if you are using Gentoo, you can add the Facter package by merging it like so: # emerge facter Turnbull Installing and Running Puppet 17 For RPM-based distributions, there are three sources of RPM files available: at Reductive’s site (https://reductivelabs.com/downloads/rpm/), at Dag Wieers RPM repository (http://dag.wieers.com/rpm/packages/facter/), and via Red Hat employee David Lutterkort’s repository (http://people.redhat.com/dlutter/yum/).

On the following line, you can see the log entry indicating that the repository has been created: Turnbull Using Puppet 101 info: create new repo testing.com-repo in file ➥ /etc/yum.repos.d/testing.com-repo.repo The resulting repository will be created on your node. [testing.com-repo] name=Testing.com's YUM repository baseurl=http://repos.testing.com/fedora/7/ enabled=1 gpgcheck=0 The second class, debian, loads when Debian nodes connect, and it uses the service type to disable an array of services that we don’t want running on our Debian hosts. We could create and load classes for other operating systems and platforms or additional types to the operating system classes we’ve already created. Managing Users and Groups Once we’ve created our nodes, we’re going to create some users and groups for our nodes.

Another Custom Fact Facter.add("timezone") do confine :operatingsystem => :debian setcode do File.readlines("/etc/timezone").to_a.last end end Turnbull 156 Extending Puppet In Listing 7-3, we’re returning the timezone of a Debian host. In Listing 7-3, we’ve also done two interesting things. First, we’ve specified a confine statement. This statement restricts the execution of the fact if a particular criteria is not met. This restriction is commonly implemented by taking advantage of the values of other facts. In this case, we’ve specified that the value of the operatingsystem fact should be Debian for the fact to be executed. We can also use the values of other facts, for example: confine :kernel => :linux The previous confine is commonly used to limit the use of a particular fact to nodes with Linux-based kernels.


pages: 178 words: 33,275

Ansible Playbook Essentials by Gourav Shah

Amazon Web Services, cloud computing, Debian, DevOps, fault tolerance, web application

. - include_vars: "{{ ansible_os_family }}.yml" when: ansible_os_family != 'Debian' - include: install_RedHat.yml when: ansible_os_family == 'RedHat' - include: install_Debian.yml when: ansible_os_family == 'Debian' - include: configure.yml - include: service.yml We saw the include statements earlier. What's new here is the include_vars fact and the use of the ansible_os_family fact. If you notice: We are using the ansible_os_family fact here with the include_vars fact to determine whether to include OS-specific variables when the OS family is not Debian. Why not for the Debian system? That's because we are already specifying Debian-specific configurations in the default file.

We are also calling OS-specific installation scripts using the when condition. We have included two scripts for now to support the Debian and RedHat families. However, later on, we could just extend the scripts by adding more install_<os_family>.yml scripts to support additional platforms. Now, let's create the install tasks for Debian and RedHat: $ vim roles/mysql/tasks/install_Debian.yml Then edit the file, as follows: --- # filename: roles/mysql/tasks/install_Debian.yml - name: install mysql server apt: name:"{{ mysql_pkg }}" update_cache:yes $ vim roles/mysql/tasks/install_Redhat.yml After running the preceding command, edit the file as follows: --- # filename: roles/mysql/tasks/install_RedHat.yml - name: install mysql server yum: name:"{{ mysql_pkg }}" update_cache:yes In the preceding example, we used the apt and yum modules, respectively, for Debian- and RedHat-based systems.

We have a couple of options here:ansible_distribution ansible_os_family RedHat, CentOS, and Amazon Linux are all based on rpm and have similar behavior. The same goes for Ubuntu and Debian operating systems, which are part of the same platform family. Hence, we choose to use the ansible_os_family fact, which will give us wider support. We will define variables from two places in the roles:From the default vars file with the sane defaults for Debian. From the variables specific to os_family if not Debian. We will also create OS-specific task files, since we may need to call different modules (apt versus yum) and additional tasks that are specific to that OS.


pages: 313 words: 75,583

Ansible for DevOps: Server and Configuration Management for Humans by Jeff Geerling

AGPL, Amazon Web Services, cloud computing, continuous integration, database schema, Debian, defense in depth, DevOps, fault tolerance, Firefox, full text search, Google Chrome, inventory management, loose coupling, microservices, Minecraft, MITM: man-in-the-middle, Ruby on Rails, web application

Soon after creating the role, though, I wanted to make the role work with both Debian and RedHat hosts. I could’ve added two sets of tasks in the main.yml file, resulting in twice the number of tasks and a bunch of extra when statements: 1 - name: Ensure Apache is installed (via apt). 2 when: ansible_os_family == 'Debian' 3 4 - name: Ensure Apache is installed (via yum). 5 when: ansible_os_family == 'RedHat' 6 7 - name: Configure Apache with lineinfile (Debian). 8 when: ansible_os_family == 'Debian' 9 10 - name: Configure Apache with lineinfile (Redhat). 11 when: ansible_os_family == 'RedHat' 12 13 - name: Enable Apache modules (Debian). 14 when: ansible_os_family == 'Debian' 15 16 - name: Other OS-agnostic tasks...

I could’ve added two sets of tasks in the main.yml file, resulting in twice the number of tasks and a bunch of extra when statements: 1 - name: Ensure Apache is installed (via apt). 2 when: ansible_os_family == 'Debian' 3 4 - name: Ensure Apache is installed (via yum). 5 when: ansible_os_family == 'RedHat' 6 7 - name: Configure Apache with lineinfile (Debian). 8 when: ansible_os_family == 'Debian' 9 10 - name: Configure Apache with lineinfile (Redhat). 11 when: ansible_os_family == 'RedHat' 12 13 - name: Enable Apache modules (Debian). 14 when: ansible_os_family == 'Debian' 15 16 - name: Other OS-agnostic tasks... If I had gone this route, and continued with the rest of the playbook tasks in one file, I would’ve quickly surpassed my informal 100-line limit. So I chose to use includes in my main tasks file: 1 - name: Include OS-specific variables. 2 include_vars: "{{ ansible_os_family }}.yml" 3 4 - include: setup-RedHat.yml 5 when: ansible_os_family == 'RedHat' 6 7 - include: setup-Debian.yml 8 when: ansible_os_family == 'Debian' 9 10 - name: Other OS-agnostic tasks... Two important things to notice about this style of distribution-specific inclusion: When including vars files (with include_vars), you can actually use variables in the name of the file.

There are dozens of different ways to manage firewalls nowadays, from iptables and helpful tools like ufw and firewalld that help make iptables configuration easier, to AWS security groups and other external firewall services. Ansible includes built-in support for configuring server firewalls with ufw (common on newer Debian and Ubuntu distributions) and firewalld (common on newer Fedora, RedHat, and CentOS distributions). Configuring a firewall with ufw on Debian or Ubuntu Below is an entire firewall configuration that will lock down most everything on a Debian or Ubuntu server, allowing traffic only through ports 22 (SSH), 80 (HTTP), and 123 (NTP): 1 - name: Configure open ports with ufw. 2 ufw: 3 rule: "{{ item.rule }}" 4 port: "{{ item.port }}" 5 proto: "{{ item.proto }}" 6 with_items: 7 - { rule: 'allow', port: 22, proto: 'tcp' } 8 - { rule: 'allow', port: 80, proto: 'tcp' } 9 - { rule: 'allow', port: 123, proto: 'udp' } 10 11 - name: Configure default incoming/outgoing rules with ufw. 12 ufw: 13 direction: "{{ item.direction }}" 14 policy: "{{ item.policy }}" 15 state: enabled 16 with_items: 17 - { direction: outgoing, policy: allow } 18 - { direction: incoming, policy: deny } If you run a playbook with the above rules, the log into the machine (or use the ansible command) and run sudo ufw status verbose, you should see the configuration has been updated to the following: $ sudo ufw status verbose Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip To Action From -- ------ ---- 22/tcp ALLOW IN Anywhere 80/tcp ALLOW IN Anywhere 123/udp ALLOW IN Anywhere 22/tcp (v6) ALLOW IN Anywhere (v6) 80/tcp (v6) ALLOW IN Anywhere (v6) 123/udp (v6) ALLOW IN Anywhere (v6) Configuring a firewall with firewalld on RedHat, Fedora, or CentOS The same firewall configuration can be done via firewalld for RedHat-based systems with similar ease: 1 - name: Configure open ports with firewalld. 2 firewalld: 3 state: "{{ item.state }}" 4 port: "{{ item.port }}" 5 zone: external 6 immediate: yes 7 permanent: yes 8 with_items: 9 - { state: 'enabled', port: '22/tcp' } 10 - { state: 'enabled', port: '80/tcp' } 11 - { state: 'enabled', port: '123/udp' } The immediate parameter was added in Ansible 1.9, and is required to make the rules effective immediately when the permanent parameter is set to yes.


pages: 996 words: 180,520

Nagios: System and Network Monitoring, 2nd Edition by Wolfgang Barth

business process, Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, RFC: Request For Comment, web application

The following example in turn tests the Secure Shell daemons on the local computer and on wobgate, to see whether the current SSH version from Debian Etch is being used: nagios@linux:nagios/libexec$ ./check_ssh -H localhost \ -r 'OpenSSH_4.3p2 Debian-9' SSH OK - OpenSSH_4.3p2 Debian-9 (protocol 2.0) nagios@linux:nagios/libexec$ ./check_ssh -H wobgate -r \ 'OpenSSH_4.3p2 Debian-9' SSH WARNING - OpenSSH_3.8.1p1 Debian-8.sarge.6 (protocol 2.0) version mi smatch, expected 'OpenSSH_4.3p2 Debian-9' The latest version of SSH is not in use on wobgate. In heterogeneous environments with various Linux distributions, you will usually use version checking "manually" only for plugin calls, and only rarely integrate them into the Nagios configuration.

The webinterface directory contains the Web interface for the EventDB 23.2.1 Installation requirements A prerequisite for the EventDB is syslog-ng in at least version 1.9.1, since the template mechanism required is only implemented from this version onward. For the database you require a current MySQL-5.0 server (included in the Debian package mysql-server-5.0, for example), and for the syslog-ng2mysql.pl daemon written in Perl, the module DBD::MySQL (in Debian, the package libdbd-mysql-perl). The Web interface is implemented in PHP 5. This requires, along with Apache 2, the PHP-5 module for this server version (in Debian libapache2-mod-php5) and the PHP5-MySQL package (in Debian, php5-mysql). An automatic installation routine that checks that all required packages are present is not included in EventDB.

Only the Web user and the user nagios should belong to this group. The Web user can be determined from the Apache configuration file. In Debian/Ubuntu this is located at /etc/apache2/apache2.conf; in Fedora it is at /etc/httpd/httpd.conf: linux:~ # grep "^User" /etc/apache2/apache2.conf User www-data The user determined in this way (in Debian/Ubuntu www-data, in Open-SUSE www-run, and in Fedora httpd) is additionally assigned to the group nagcmd, shown here using the example for Debian/Ubuntu: linux:~ # usermod -G nagcmd www-data In the example, the Web user is called www-data. The command usermod (this changes the data for an existing user account) also includes the Web user in the nagcmd group thanks to the -G option, by manipulating the corresponding entry in the file /etc/group.


pages: 234 words: 63,522

Puppet Essentials by Felix Frank

cloud computing, Debian, DevOps, domain-specific language, Infrastructure as a Service, platform as a service, web application

Unfortunately, the stock version of Nginx cannot run Passenger through a module. The Phusion project supplies packages for the more popular Linux distributions, but only those that are for Debian and Ubuntu are current. On Red Hat derivatives, you will need to build Nginx yourself. Supporting packages that make this easy are available. The following instructions are applicable to Debian: 1. Follow the instructions at https://www.phusionpassenger.com/ documentation/Users%20guide%20Nginx.html#install_on_debian_ ubuntu in order to install appropriate Nginx packages. 2. In the /etc/nginx/nginx.conf file, uncomment or insert the passenger specific statements: passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/ locations.ini; passenger_ruby /usr/bin/ruby; 3.

Each fact is useful in different situations. The operatingsystem fact takes values such as Debian or CentOS: if $operatingsystem != 'Ubuntu' { package { 'avahi-daemon': ensure => absent } } If your manifest will behave identical for RHEL, CentOS, and Fedora (but not on Debian and Ubuntu), you will make use of the osfamily fact instead: if $osfamily == 'RedHat' { $kernel_package = 'kernel' } The operatingsystemrelease fact allows you to tailor your manifests to differences between the versions of your OS: if $operatingsystem == 'Debian' { if versioncmp($operatingsystemrelease, '7.0') >= 0 { $ssh_ecdsa_support = true } } Facts such as macaddress, the different SSH host keys, fingerprints, and others make it easy to use Puppet for keeping inventory of your hardware.

Making your module portable across platforms Sadly, our Cacti module is very specific to the Debian package. It expects to find the CLI at a certain place and the Apache configuration snippet at another. These locations are most likely specific to the Debian package. It will be useful for the module to work on Red Hat derivatives as well. The first step is to get an overview of the differences by performing a manual installation. I chose to test this with a virtual machine running Fedora 18. The basic installation is identical to Debian, except using yum instead of apt-get, of course. Puppet will automatically do the right thing here.


Producing Open Source Software: How to Run a Successful Free Software Project by Karl Fogel

active measures, AGPL, barriers to entry, Benjamin Mako Hill, collaborative editing, continuous integration, corporate governance, Debian, Donald Knuth, en.wikipedia.org, experimental subject, Firefox, GnuPG, Hacker Ethic, Internet Archive, iterative process, Kickstarter, natural language processing, patent troll, peer-to-peer, pull request, revision control, Richard Stallman, selection bias, slashdot, software as a service, software patent, SpamAssassin, web application, zero-sum game

All these terms mean the same thing: software that can be modified and redistributed by everyone, sometimes—but not always—with the requirement that derivative works be freely redistributable under the same terms. DFSG-compliant Compliant with the Debian Free Software Guidelines (debian.org/social_contract#guidelines). This is a widely-used test for whether a given license is truly open source (free, libre, etc.). The Debian Project's mission is to maintain an entirely free operating system, such that someone installing it need never doubt that she has the right to modify and redistribute any or all of the system. The Debian Free Software Guidelines are the requirements that a software package's license must meet in order to be included in Debian. Because the Debian Project spent a good deal of time thinking about how to construct such a test, the guidelines they came up with have proven very robust (see en.wikipedia.org/wiki/DFSG), and as far as I'm aware, no serious objection to them has been raised either by the Free Software Foundation or the Open Source Initiative.

After all, having Firefox distributed in Debian is good for Mozilla's mission of promoting openness on the Web. However, various technical and policy effects of the Debian packaging process left Debian unable to fully comply with Mozilla's trademark usage requirements, and as a result, Mozilla informed Debian that their Firefox package could not use the Firefox name or branding. No doubt Mozilla did so with some reluctance, as it is not ideal for them to have their software used without clear attribution. However, they could have given Debian a trademark license and yet chose not to; presumably, this is because Debian was doing something with the code that Mozilla did not want accruing to their own reputation.[100] This decision by Mozilla did not mean that Debian had to remove Firefox from their package system, of course.

One famous example of trademark enforcement in free and open source software demonstrates these distinctions clearly. Case study: Mozilla Firefox, the Debian Project, and Iceweasel The Mozilla Foundation owns the trademarked name "Firefox", which it uses to refer to its popular free software web browser of the same name. The Debian Project, which maintains a long-running and also quite popular GNU/Linux distribution, wanted to package Firefox for users of Debian GNU/Linux. So far, so good: Debian does not need Mozilla's permission to package Firefox, since Firefox is open source software. However, Debian does need Mozilla's permission to call the packaged browser "Firefox" and to use the widely-recognized Firefox logo (you've probably seen it: a long reddish fox curling its body and tail around a blue globe) as the icon for the program, because those are trademarks owned by Mozilla.


pages: 104 words: 39,583

From Punched Cards To Flat Screens: A Technical Autobiography by Philip Hazel

Debian, packet switching, Richard Stallman

Fortunately, there were a number of helpful subscribers who were willing to jump in and answer these questions, so it was not a catastrophe, but it changed the nature of things a bit, and ultimately led to an Exim developers’ mailing list splitting off from the Exim users’ list. Debian’s long release cycle meant that it continued to ship with Exim 3 for several years after Exim 4 was released. During this time, each new user of Debian became a new user of Exim 3. This was not good, because all the experienced Exim users were on Exim 4 and were rapidly forgetting Exim 3. When maintenance of Exim 3 ceased, Debian had to take responsibility for back-porting security patches from Exim 4 to Exim 3. It was a relief when Debian finally did move to Exim 4, and there was no longer a need to keep referring Debian users back to Debian for answers to their questions.

I was able to work the first of these into a three-week trip with my wife, which included visits to relatives and friends, and after the New Zealand meeting I spent a week touring the North Island and stretching my legs on some of the wonderful day walks. Debian’s use of Exim When Debian switched to Exim as the MTA for their Linux distribution, it had both good and bad effects from my point of view. On the positive side, Exim acquired a large number of new users, but on the negative side, many of those users were new to system administration and even new to Unix-like systems. When I started to develop Exim, I expected it to be used by experienced system administrators who would be installing it from source on moderate-sized Unix systems. The documentation was written with such a readership in mind. After the first Debian stable version containing Exim was released in March 1999, there was a big increase in the number of ‘newbie’ questions on the mailing list.

Exim training .......................................................................................................... Exim in Africa ........................................................................................................ Other continents ................................................................................................... Debian’s use of Exim ........................................................................................... The Exim books .................................................................................................... Exim in retrospect .................................................................................................


Multitool Linux: Practical Uses for Open Source Software by Michael Schwarz, Jeremy Anderson, Peter Curtis

business process, Debian, defense in depth, GnuPG, index card, indoor plumbing, Larry Wall, MITM: man-in-the-middle, optical character recognition, publish or perish, RFC: Request For Comment, Richard Stallman, SETI@home, slashdot, two and twenty, web application

One author prefers Debian—the most GNU-ish of the distributions. None of us particularly care for RedHat or Mandrake—both are unstable and needlessly different from the others. Something based on at least kernel 2.2 would sure be nice, because 2.2 has been the standard for a couple of years now. Kernel 2.4 is all good, too. And if you really like RedHat, or it's the only distribution you have, that's okay. It's still very usable. Everything in this book was tested on either SuSE, TurboLinux, or Debian—and most everything was tested on Debian. Three of the four authors of this book prefer Debian, and the remaining author is simply difficult to get along with.

It is simply less to type! The most common tree structure under a Web server looks something like this: /<basedir> Debian uses "/var/www" \ |-- cgi-bin Debian keeps these in /usr/lib/cgi-bin |-- htdocs (perhaps "html") Debian doesn't have this. |-- icons Depending on your distribution and options you may have installed, there may be several more directories at this level, such as logs, servlets and so on. Most distributions place some sort of standard content in this structure. Debian, for instance, puts up a slightly modified standard Apache postinstall index file. SuSE puts in a homepage with links to the online documentation and to pages that show the present system configuration.

If you don't want to pay that price, fine. But then you don't get to use the original author's code. Eric Raymond and Bruce Perens Bruce Perens created the original Open Source Definition (OSD) as the Debian Free Software Guidelines (DFSG). Debian is a Linux distribution that consists entirely of software that meets these guidelines. Some Linux distributions include closed, commerical, or marginally open software. Debian never has and never will. Eric S. Raymond wrote a number of seminal papers on the phenomenon of what he and Bruce call open source development but what I think may be more generally called Internet-distributed software development.


pages: 319 words: 72,969

Nginx HTTP Server Second Edition by Clement Nedelcu

Debian, fault tolerance, Firefox, Google Chrome, Ruby on Rails, web application

Note that since service httpd start and /etc/init.d/httpd start essentially do the same thing, with the exception that the second command will work on all operating systems, we will make no further mention of the service command and will exclusively use the /etc/init.d/ method. Init script for Debian-based distributions We will thus create a shell script for starting and stopping our Nginx daemon and also restarting and reloading it. The purpose here is not to discuss Linux shell script programming, so we will merely provide the source code of an existing init script, along with some comments to help you understand it. Due to differences in the format of the init scripts from one distribution to another, we will here discover two separate scripts: this first one is meant for Debian-based distributions such as Debian, Ubuntu, Knoppix, and so forth. [ 33 ] www.it-ebooks.info Downloading and Installing Nginx First, create a file called nginx with the text editor of your choice, and save it in the /etc/init.d/ directory (on some systems, /etc/init.d/ is actually a symbolic link to /etc/rc.d/init.d/).

The last step here will be to make it so the script is automatically started at the proper runlevels. Unfortunately, doing this entirely depends on what operating system you are using. We will cover the two most popular families—Debian, Ubuntu, or other Debian-based distributions and Red Hat/Fedora/CentOS, or other Red Hat-derived systems. [ 34 ] www.it-ebooks.info Chapter 1 Debian-based distributions For the former, a simple command will enable the init script for the system runlevel: [root@example.com ~]# update-rc.d -f nginx defaults This command will create links in the default system runlevel folders.

Simply use your login credentials for immediate access. [ FM-6 ] www.it-ebooks.info Table of Contents Preface Chapter 1: Downloading and Installing Nginx Setting up the prerequisites GCC – GNU Compiler Collection The PCRE library The zlib library OpenSSL Downloading Nginx Websites and resources Version branches Features Downloading and extracting Configure options The easy way Path options Prerequisites options Module options Modules enabled by default Modules disabled by default 1 7 7 8 9 10 11 11 11 13 14 15 15 16 16 18 20 20 21 Miscellaneous options Configuration examples 22 24 Build configuration issues 26 Compiling and installing 27 About the prefix switch Regular HTTP and HTTPS servers All modules enabled Mail server proxy Make sure you installed the prerequisites Directories exist and are writable www.it-ebooks.info 24 25 25 26 26 27 Table of Contents Controlling the Nginx service Daemons and services User and group Nginx command-line switches Starting and stopping the daemon Testing the configuration Other switches Adding Nginx as a system service System V scripts What is an init script? Init script for Debian-based distributions Init script for Red Hat-based distributions Installing the script 28 28 28 29 29 30 31 31 32 33 33 34 34 Summary 36 Debian-based distributions Red Hat-based distributions Chapter 2: Basic Nginx Configuration Configuration file syntax Configuration Directives Organization and inclusions Directive blocks Advanced language rules Directives accept specific syntaxes Diminutives in directive values Variables String values Base module directives What are base modules?


Version Control With Git: Powerful Tools and Techniques for Collaborative Software Development by Jon Loeliger, Matthew McCullough

continuous integration, Debian, distributed revision control, GnuPG, Larry Wall, peer-to-peer, peer-to-peer model, pull request, revision control, web application, web of trust

closed repository, on GitHub, Publishing Your Repository to GitHub closed source, social coding on, Social Coding on Closed Source coding models, Coding Models–Coding Models collaboration, Publishing Repositories collision, Objects, Hashes, and Blobs, A Note on Git’s Use of SHA1 SHA1, Objects, Hashes, and Blobs colon (:), Dos and Don’ts in Branch Names, The refspec branch name restrictions and, Dos and Don’ts in Branch Names in refspec, The refspec combined diff format, A Merge with a Conflict, Finishing Up a Conflict Resolution for merge commit, Finishing Up a Conflict Resolution combining projects, Combining Projects–The git submodule Command command aliases, setting up, Configuring an Alias commands, making your own, Make Your Own Git Command commercial Git hosting service, Repository Publishing Advice commit author, configuring, Adding a File to Your Repository–Configuring the Commit Author commit graphs, Viewing Old Commits, Commit Graphs–Using gitk to View the Commit Graph, Using gitk to View the Commit Graph–Using gitk to View the Commit Graph gitk to view, Using gitk to View the Commit Graph–Using gitk to View the Commit Graph for history, Viewing Old Commits commit history, Using git filter-branch, Split a Repository power to rewrite, Using git filter-branch preserving when splitting repository, Split a Repository commit IDs, Identifying Commits–Relative Commit Names, Example: A Shallow Clone of a Single Branch, Keeping Your Commit IDs Straight–Keeping Your Commit IDs Straight, Removing SVN Commit IDs from git svn, Example: A Shallow Clone of a Single Branch removing SVN, Removing SVN Commit IDs commit log message, Configuration Files, Writing Commit Log Messages editor settings for, Configuration Files commit message, Example: A Shallow Clone of a Single Branch, Using git filter-branch, Using filter-branch to edit a commit message–Using filter-branch to edit a commit message editing, Using git filter-branch, Using filter-branch to edit a commit message–Using filter-branch to edit a commit message with git filter-branch, Using filter-branch to edit a commit message–Using filter-branch to edit a commit message git-svn-id in, Example: A Shallow Clone of a Single Branch commit objects, Git Object Types, Gitlinks links from, Gitlinks commit ranges, Commit Ranges–Commit Ranges, git diff and Commit Ranges–git diff and Commit Ranges, Generating Patches, Generating Patches–Generating Patches detailed resolution example, Generating Patches–Generating Patches and git diff command, git diff and Commit Ranges–git diff and Commit Ranges for git format-patch, Generating Patches commit rights, Publishing Repositories commit-filter, Using git filter-branch commit-msg hook, Hooks, Commit-Related Hooks commit-related hooks, Commit-Related Hooks–Commit-Related Hooks commits, Viewing Your Commits–Viewing Your Commits, Viewing Commit Differences, Object Store Pictures, Commits–Commits, Commits, File Management and the Index, Commits–Using Pickaxe, Identifying Commits–Relative Commit Names, Absolute Commit Names–Absolute Commit Names, Relative Commit Names–Relative Commit Names, Viewing Old Commits–Commit Ranges, Finding Commits–Using Pickaxe, Using git bisect, Forms of the git diff Command, Altering Commits–rebase Versus merge, Altering Commits, Caution About Altering History–Caution About Altering History, Using git revert, Changing the Top Commit–Changing the Top Commit, Changing the Top Commit, Rebasing Commits–rebase Versus merge, The Reflog, Changing Public History, Separate Commit and Publish Steps–Separate Commit and Publish Steps, Role Duality–Role Duality, Patches and Topological Sorts, Examining the Hashes of Submodule Commits, Recovering a Lost Commit–Reconnecting a Lost Commit, Reconnecting a Lost Commit, Garbage Collection, Tips for Recovering Commits altering, Altering Commits–rebase Versus merge, Altering Commits, Caution About Altering History–Caution About Altering History, Changing the Top Commit–Changing the Top Commit caution about, Caution About Altering History–Caution About Altering History most recent, Changing the Top Commit–Changing the Top Commit reasons for, Altering Commits creating, Commits–Commits dangling, Garbage Collection differences between, Forms of the git diff Command finding, Finding Commits–Using Pickaxe hashes of submodule, Examining the Hashes of Submodule Commits history, Viewing Old Commits–Commit Ranges, Changing Public History dynamic, Changing Public History identifying, Identifying Commits–Relative Commit Names, Absolute Commit Names–Absolute Commit Names, Relative Commit Names–Relative Commit Names with absolute names, Absolute Commit Names–Absolute Commit Names with relative names, Relative Commit Names–Relative Commit Names isolating one with bug, Using git bisect linearization of, Patches and Topological Sorts mechanisms for transferring commits, Role Duality–Role Duality meta-information on, editing, Changing the Top Commit rebasing, Rebasing Commits–rebase Versus merge reconnecting lost, Reconnecting a Lost Commit recovering lost, Recovering a Lost Commit–Reconnecting a Lost Commit separation of publish and, Separate Commit and Publish Steps–Separate Commit and Publish Steps symbolic names for, The Reflog tips for recovering, Tips for Recovering Commits as two-step process, File Management and the Index undoing effects, Using git revert viewing, Viewing Your Commits–Viewing Your Commits viewing details of, Commits viewing differences, Viewing Commit Differences community contributions to GitHub, transparency and public visibility, Forks comparison, A Note on Git’s Use of SHA1, Diffs (see also diffs; git diff command) of objects, hash function for, A Note on Git’s Use of SHA1 Concurrent Version System (CVS), Precedents, Creating an Initial Repository revision information, Creating an Initial Repository config, GitHub in Sum (see git config command) configuration files for Git, Configuration Files–Configuration Files, Configuration Files listing variable settings, Configuration Files configuring alias, Configuring an Alias conflict merge markers, Applying Patches conflicted files, locating, Locating Conflicted Files conflicts, A Merge with a Conflict (see merge conflicts) content tracking system, Git as, Git Tracks Content content, vs. pathname, Pathname Versus Content content-addressable file store, Precedents content-addressable names, Content-Addressable Names --continue option, for git rebase command, Rebasing Commits controlled access, publishing repositories with, Repositories with Controlled Access–Repositories with Controlled Access copying, importing subprojects by, Importing Subprojects by Copying core.logAllRefUpdates Boolean configuration option, The Reflog criss-cross merge, Merge Strategies, Recursive merges, Applying Merge Strategies curl-config tool, Building and Installing current repository, Remotes CVS (Concurrent Version System), Precedents, The Old Solution: Partial Checkouts, The Obvious Solution: Import the Code into Your Project importing code into project, disadvantages, The Obvious Solution: Import the Code into Your Project cvs update command, Merging Changes into a Different Branch Cygwin-based Git package, Installing the Cygwin Git Package installing, Installing the Cygwin Git Package D DAG (directed acyclic graph), Commit Graphs, Using gitk to View the Commit Graph drawing, Using gitk to View the Commit Graph dangling commits, Garbage Collection dangling objects, The git fsck Command data integrity of VCS, The Birth of Git data objects, immutability of, The Birth of Git date-based checkout, Date-Based Checkout–Date-based checkout cautions dcommit, Keeping Your Commit IDs Straight, Merging Back into Subversion, Reconstructing the git-svn Cache Debian environment, Assumed Framework, Debian/Ubuntu–Debian/Ubuntu installing Git, Debian/Ubuntu–Debian/Ubuntu default branch, in respository, Branch Names default message, from pre-commit-msg hook, Commit-Related Hooks default port, Referring to Remote Repositories, Publishing repositories using git-daemon for Git, Referring to Remote Repositories for inetd service, Publishing repositories using git-daemon degenerate merges, Degenerate Merges–Degenerate Merges deleting, Removing and Renaming Files in Your Repository, Deleting Branches–Deleting Branches, Updating and Deleting refs branches, Deleting Branches–Deleting Branches files from repositories, Removing and Renaming Files in Your Repository refs, Updating and Deleting refs deltas, between files, Pack Files depot repository, Example Using Remote Repositories, Getting Repository Updates–Should you merge or rebase?

., Precedents tilde (~), refs and symrefs–Relative Commit Names time stamps, Commit Graphs, No One True History in commit graph, Commit Graphs of commits, No One True History tip of branch, Using Branches, The Reflog record of changes to, The Reflog top-level directory, removing after SVN import, Remove a Trunk After an SVN Import topic branch, Reasons for Using Branches, Tracking Branches topmost commit, Using git reset–Using git reset, Changing the Top Commit–Changing the Top Commit changing, Changing the Top Commit–Changing the Top Commit git reset to eliminate, Using git reset–Using git reset topological sorts, and patches, Patches and Topological Sorts–Patches and Topological Sorts Torvalds, Linus, It’s All About the Index, Repository Structure Examples, No One True History, Reconciling forks, Combining Projects, The Native Solution: gitlinks and git submodule and forking, Reconciling forks tracked file, File Classifications in Git, Using git add git add command for, Using git add tracking branches, Reasons for Using Branches, Tracking Branches–Tracking Branches, Working with Tracking Branches–Creating Tracking Branches tracking, file renames, A Note on Tracking Renames–A Note on Tracking Renames tree objects, Git Object Types, Object Store Pictures, Files and Trees, Files and Trees, Tree Hierarchies–Tree Hierarchies, Commit Graphs, Forms of the git diff Command, Gitlinks comparison in git diff command, Forms of the git diff Command creating from current index, Files and Trees hierarchies, Tree Hierarchies–Tree Hierarchies links from, Gitlinks representing repository, Commit Graphs tree-filter, Using git filter-branch trust, of VCS, The Birth of Git U -u option, Locating Conflicted Files, Publishing Your Repository to GitHub for git ls-files command, Locating Conflicted Files for git push command, Publishing Your Repository to GitHub Ubuntu Linux environment, Assumed Framework, Debian/Ubuntu–Debian/Ubuntu installing Git, Debian/Ubuntu–Debian/Ubuntu uncommitted changes, checking out and, Checking out When You Have Uncommitted Changes–Checking out When You Have Uncommitted Changes unified diff, Diffs Uniform Resource Locators (URLs), Git support of, Referring to Remote Repositories union merge driver, Merge Drivers Unix diff, Diffs unreachable objects, The git fsck Command, Garbage Collection --unset option, Configuration Files unstaging files, Using git reset untracked file, File Classifications in Git update hook, Hooks, Push-Related Hooks updates to repository, getting, Getting Repository Updates–Should you merge or rebase?

git reset command, Aborting or Restarting a Merge, Aborting or Restarting a Merge, Using git reset–Using git reset, Using git reset, Using git reset, Using git reset, Using git reset–Using git reset, Using git reset, Using git reset, Using git reset, Using git reset, Using git reset, Using git reset, reset, revert, and checkout, The Stash, Merge Conflicts, Recovering a Lost Commit to eliminate topmost commit, Using git reset–Using git reset --hard, Aborting or Restarting a Merge, Aborting or Restarting a Merge, Using git reset, Using git reset, Using git reset, Using git reset, The Stash --hard ORIG_HEAD, Merge Conflicts and lost commit, Recovering a Lost Commit --mixed, Using git reset --soft, Using git reset, Using git reset, Using git reset, Using git reset git rev-list command, Generating Patches, Generating Patches, Date-Based Checkout, Retrieve Old Version of a File --no-merges, Generating Patches -v, Generating Patches git rev-parse command, Relative Commit Names, The Reflog, Examining the Hashes of Submodule Commits git revert command, Using git revert, reset, revert, and checkout git rm command, Removing and Renaming Files in Your Repository, File Management and the Index, Using git rm–Using git mv, Using git rm --cached, Using git rm git send-email command, Patches, Mailing Patches git show command, Viewing Your Commits, Commits, Finishing Up a Conflict Resolution --pretty=fuller, Commits git show-branch command, Viewing Your Commits, Relative Commit Names, Viewing Branches–Viewing Branches, Viewing Branches, Deleting Branches, The Stash, Pushing Your Changes, Applying Patches --more option, Viewing Branches git show-ref command, The refspec git stash branch command, The Stash git stash command, The Stash–The Stash, The Stash, The Stash, Interactive Rebase with a Dirty Working Directory --all option, The Stash for dirty working directory, Interactive Rebase with a Dirty Working Directory --include-untracked option, The Stash git stash drop command, The Stash git stash list command, The Stash–The Stash git stash pop command, The Stash, The Stash git stash save command, The Stash git stash show command, The Stash git status command, Adding a File to Your Repository, It’s All About the Index, File Classifications in Git, Using git add, Using git commit --all, Locating Conflicted Files, Using git reset, Ahead and Behind .git subdirectory, Inside the .git Directory–Inside the .git Directory git submodule add command, The git submodule Command, Submodule Commands git submodule add URL command, Credential Reuse git submodule command, The Native Solution: gitlinks and git submodule–The git submodule Command git submodule foreach command, Submodule Commands git submodule init command, The git submodule Command, Submodule Commands git submodule status command, Submodule Commands git submodule summary command, Submodule Commands git submodule update command, Detached HEAD Branches, The git submodule Command, Submodule Commands git svn clone command, Example: A Shallow Clone of a Single Branch–Example: A Shallow Clone of a Single Branch, Cloning All the Branches, Cloning All the Branches --prefix=svn/, Cloning All the Branches --stdlayout, Cloning All the Branches git svn command, Example: A Shallow Clone of a Single Branch, Example: A Shallow Clone of a Single Branch, Pushing, Pulling, Branching, and Merging with git svn, Pushing, Pulling, Branching, and Merging with git svn, Keeping Your Commit IDs Straight, How dcommit handles merges, Reconstructing the git-svn Cache–Reconstructing the git-svn Cache --authors-file, Keeping Your Commit IDs Straight pushing, pulling, branching and merging, Pushing, Pulling, Branching, and Merging with git svn reconstructing cache, Reconstructing the git-svn Cache–Reconstructing the git-svn Cache vs. git svn rebase command, Pushing, Pulling, Branching, and Merging with git svn working directory, Example: A Shallow Clone of a Single Branch git svn create-ignore command, svn:ignore Versus .gitignore git svn dcommit command, Keeping Your Commit IDs Straight, Merging Back into Subversion, Reconstructing the git-svn Cache git svn rebase command, Committing Through git svn rebase, Pushing, Pulling, Branching, and Merging with git svn committing through, Committing Through git svn rebase vs. git svn command, Pushing, Pulling, Branching, and Merging with git svn git svn repository, cloning all branches, Cloning All the Branches–Cloning All the Branches git symbolic-ref command, refs and symrefs git tag command, Tags Git tags, Tags Automatically Becoming Archives Git Tower, Submodules on the Horizon Git transfer protocol, Patches git update-index command, --assume-unchanged Makefile, Keep, But Don’t Track, This File git update-ref command, Updating and Deleting refs Git URLs, Referring to Remote Repositories git whatchanged command, Quick Overview of Changes, Quick Overview of Changes–Quick Overview of Changes --since= option, Quick Overview of Changes git write-tree command, Files and Trees, Commits git-core package, Debian/Ubuntu git-daemon command, Referring to Remote Repositories, Publishing repositories using git-daemon–Publishing repositories using git-daemon, Publishing repositories using git-daemon --export-all, Publishing repositories using git-daemon git-daemon-run, Debian/Ubuntu git-email command, Debian/Ubuntu git-grep command, Using git-grep to Search a Repository–Using git-grep to Search a Repository, Using git-grep to Search a Repository command line options, Using git-grep to Search a Repository for searching repository, Using git-grep to Search a Repository–Using git-grep to Search a Repository git-gui, Debian/Ubuntu git-http-backend command, Publishing a repository using Smart HTTP Git-over-SSH protocol, Repository Publishing Advice git-submodule.sh shell script, The git submodule Command–The git submodule Command git-svn-id command, How dcommit handles merges git-svn-id, in commit message, Example: A Shallow Clone of a Single Branch git/.git directory, gitlink to, Gitlinks .git/config file, Remotes, Referring to Remote Repositories, Remote Configuration, Using git config, Using git config, Creating Tracking Branches, The git submodule Command–The git submodule Command adding branch entry, Creating Tracking Branches adding to, Using git config, Using git config copying .gitmodules file settings to, The git submodule Command–The git submodule Command .git/hooks directory, Hooks, Installing Hooks .git/logs directory, reflogs stored under, The Reflog .git/logs/HEAD file, The Reflog .git/MERGE_HEAD file, How Git Keeps Track of Conflicts .git/MERGE_MSG file, How Git Keeps Track of Conflicts .git/objects directory, Inside the .git Directory .git/rebase-apply directory, Applying Patches .git/refs/ directory, refs and symrefs ~/.gitconfig file, Configuration Files GitHub, Publishing Your Repository to GitHub, Forking projects at GitHub–Forking projects at GitHub, Submodules on the Horizon, Submodules on the Horizon, Repo for Public Code, Creating a GitHub Repository–Creating a GitHub Repository, Creating a GitHub Repository, Creating a GitHub Repository, Watchers, News Feed, Forks–Forks, Forks, Creating Pull Requests–Creating Pull Requests, Managing Pull Requests–Managing Pull Requests, Managing Pull Requests, Notifications, Finding Users, Projects, and Code, Finding Users, Projects, and Code, Wikis, GitHub Pages (Git for Websites), In-Page Code Editor, Tags Automatically Becoming Archives, Organizations Advanced Search page, Finding Users, Projects, and Code automatic merge button for Git commit, Managing Pull Requests creating account, Repo for Public Code creating repository, Publishing Your Repository to GitHub, Creating a GitHub Repository–Creating a GitHub Repository Explore page, Finding Users, Projects, and Code forking projects at, Forking projects at GitHub–Forking projects at GitHub hyperlinking of submodules, Submodules on the Horizon Mozilla’s Act control, In-Page Code Editor network graph, Forks New Repository page, Creating a GitHub Repository news feed, News Feed notifications, Notifications organizations, Organizations pages (Git for websites), GitHub Pages (Git for Websites) personal forks of projects, Forks–Forks project archive creation, Tags Automatically Becoming Archives pull requests, Creating Pull Requests–Creating Pull Requests, Managing Pull Requests–Managing Pull Requests creating, Creating Pull Requests–Creating Pull Requests managing, Managing Pull Requests–Managing Pull Requests pushing local contents to repository, Creating a GitHub Repository submodule hyperlinks on repositories, Submodules on the Horizon watchers, Watchers wikis, Wikis GitHub Enterprise, GitHub Enterprise GitHub.com, Forking Projects .gitignore file, File Classifications in Git, File Classifications in Git, The .gitignore File–The .gitignore File, svn:ignore Versus .gitignore svn:ignore vs., svn:ignore Versus .gitignore gitk (Git browser), Debian/Ubuntu, Using gitk to View the Commit Graph–Using gitk to View the Commit Graph, Using git bisect to view commit graph, Using gitk to View the Commit Graph–Using gitk to View the Commit Graph gitlinks, Gitlinks–Gitlinks, The git submodule Command git add to update, The git submodule Command .gitmodules file, The git submodule Command, The git submodule Command–The git submodule Command, Credential Reuse copying settings to .git/config file, The git submodule Command–The git submodule Command username as part of recorded address, Credential Reuse Gitolite project, Repositories with Controlled Access gitweb, Debian/Ubuntu GIT_AUTHOR_EMAIL environment variable, Configuring the Commit Author GIT_AUTHOR_NAME environment variable, Configuring the Commit Author $GIT_DIR variable, refs and symrefs GIT_EDITOR environment variable, Adding a File to Your Repository --global option, Configuration Files, Have You Been Here Before?


Ubuntu 15.04 Server with systemd: Administration and Reference by Richard Petersen

Amazon Web Services, bash_history, cloud computing, Debian, Firefox, Mark Shuttleworth, MITM: man-in-the-middle, RFC: Request For Comment, SpamAssassin, web application

# If not running interactively, don't do anything [ -z "$PS1" ] && return # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # set variable identifying the chroot you work in (used in the prompt below) if [ -z "$debian_chroot" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, overwrite the one in /etc/profile) PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' # sudo hint if [ ! -e $HOME/.sudo_as_admin_successful ] && [ ! -e "$HOME/.hushlogin" ]; then case " $(groups) " in *\ admin\ *) if [ -x /usr/bin/sudo ]; then cat <<-EOF To run a command as administrator (user "root"), use "sudo <command>".

Ubuntu Linux is managed by the Ubuntu foundation, which is sponsored by Canonical, Ltd (www.canonical.com), a commercial organization that supports and promotes open source projects. Ubuntu is based on Debian Linux, one of the oldest Linux distributions, which is dedicated to incorporating cutting-edge developments and features (www.debian.org). Mark Shuttleworth, a South African and Debian Linux developer, initiated the Ubuntu project. Debian Linux is primarily a Linux development project, trying out new features. Ubuntu provides a Debian-based Linux distribution that is stable, reliable, and easy to use. Ubuntu is designed as a Linux operating system that can be used easily by everyone.

It can also be placed in a text file in the /etc/apt/sources.list.d directory, which APT will read as if part of the sources.list file. Editing such an important file always involves the risk of incorrectly changing the entries. Software Management with Tasksel, DEB, APT, and DKPG Both the Debian distribution and Ubuntu use the Debian package format (DEB) for their software packages. Two basic package managers are available for use with Debian packages: the Advanced Package Tool (APT) and the Debian Package tool (dpkg). APT is designed to work with repositories and is used to install and maintain all your package installations on Ubuntu. Though you can install packages directly as single files with just dpkg, it is always advisable to use APT.


Nagios: System and Network Monitoring by Wolfgang Barth

Chuck Templeton: OpenTable:, Debian, en.wikipedia.org, Firefox, RFC: Request For Comment, web application

The following example in turn tests the Secure Shell daemons on the local computer and on wobgate, to see whether the current SSH version from Debian Sarge is being used: nagios@linux:nagios/libexec$ ./check_ssh -H localhost \ -r ’OpenSSH_3.8.1p1 Debian-8.sarge.4’ SSH OK - OpenSSH_3.8.1p1 Debian-8.sarge.4 (protocol 2.0) nagios@linux:nagios/libexec$ ./check_ssh -H wobgate -r \ ’OpenSSH_3.8.1p1 Debian-8.sarge.4’ SSH WARNING - OpenSSH_3.8.1p1 Debian 1:3.8.1p1-8 (protocol 2.0) version mismatch, expected ’OpenSSH_3.8.1p1 Debian-8.sarge.4’ The latest version of SSH is not in use on wobgate. In heterogeneous environments with various Linux distributions, you will usually use version checking “manually” only for plugin calls, and only rarely integrate them into the Nagios configuration.

The primary group nagios of the user nagios should remain reserved exclusively for this user. 1 2 3 4 5 6 7 26 http://www.boutell.com/gd/ http://www.openssl.org/ Depending on the distribution, the required RPM and Debian packages are sometimes named differently. Here you need to refer to the search help in the corresponding distribution. For Debian, the homepage will be of help. If a configure instruction complains, for example, of a missing gd.h file, you can search specifically at http://www.debian.org/distrib/packages for the contents of packages. The search will then come up with all packages that contain the file gd.h. http://ntp.isc.org/bin/view/Main/SoftwareDownloads http://net-snmp.sourceforge.net/ http://samba.org/samba/ http://www.openldap.org/ The final version of Nagios 2.0 was not yet available at the time of going to press. 1.1 Compiling the Source Code The CGI scripts are run by Nagios under the user ID of the user with whose permissions the Apache Web server runs.

The example configuration file ngraph.ncfg15 is copied to the directory /etc/nagios, and two icons to the logos directory of the Nagios installation: linux:nagios/nagiosgrapher # cp cfg/ngraph.ncfg /etc/nagios/. linux:nagios/nagiosgrapher # cp graph.png dot.png \ /usr/local/nagios/share/images/logos Before the start script nagios_grapher is stored in /etc/init.d, the path to collect2.pl contained in it is adjusted (this script reprocesses the data passed on by Nagios and writes it to the RRD databases): # nagios_grapher start script ... DAEMON=/usr/local/nagios/nagiosgrapher/collect2.pl ... So that the script also runs in the individual runlevels, corresponding symbolic links are set in the rc?.d directories.16 Here is an example for Debian: 15 16 In versions up to 1.2 the file extension was .cfg! Depending on the distribution, these are directly in /etc (Debian) or in /etc/init.d (SuSE, Red Hat). 337 17 Graphic Display of Performance Data linux:nagios/nagiosgrapher # cp nagios_grapher /etc/init.d/ linux:nagios/nagiosgrapher # cd /etc/init.d linux:etc/init.d # ln -s nagios_grapher /etc/rc2.d/S99nagios_grapher linux:etc/init.d # ln -s nagios_grapher /etc/rc3.d/S99nagios_grapher linux:etc/init.d # ln -s nagios_grapher /etc/rc4.d/S99nagios_grapher linux:etc/init.d # ln -s nagios_grapher /etc/rc5.d/S99nagios_grapher 17.5.2 Configuration The configuration file ngraph.ncfg The configuration file ngraph.ncfg contains a global config section with paths and general settings.


pages: 274 words: 58,675

Puppet 3 Cookbook by John Arundel

Amazon Web Services, cloud computing, continuous integration, Debian, defense in depth, DevOps, don't repeat yourself, GnuPG, Larry Wall, place-making, Ruby on Rails, web application

Add the following code to your manifest: if $::operatingsystem in [ 'Ubuntu', 'Debian' ] { notify { 'Debian-type operating system detected': } } elsif $::operatingsystem in [ 'RedHat', 'Fedora', 'SuSE', 'CentOS' ] { notify { 'RedHat-type operating system detected': } } else { notify { 'Some other operating system detected': } } 53 Puppet Language and Style 2. Run Puppet: ubuntu@cookbook:~/puppet$ papply Notice: Debian-type operating system detected Notice: /Stage[main]/Admin::Test/Notify[Debian-type operating system detected]/message: defined 'message' as 'Debian-type operating system detected' Notice: Finished catalog run in 0.08 seconds There's more… The value of an in expression is Boolean (true or false) so you can assign it to a variable: $debianlike = $::operatingsystem in [ 'Debian', 'Ubuntu' ] if $debianlike { notify { 'You are in a maze of twisty little packages, all alike': } } Using regular expression substitutions Puppet's regsubst function provides an easy way to manipulate text, search and replace within strings, or extract patterns from strings.

Add the following code to your manifest: $systemtype = $::operatingsystem ? { 'Ubuntu' => 'debianlike', 'Debian' => 'debianlike', 50 Chapter 2 'RedHat' 'Fedora' 'CentOS' default => => => => 'redhatlike', 'redhatlike', 'redhatlike', 'unknown', } notify { "You have a ${systemtype} system": } 2. Add the following code to your manifest: class debianlike { notify { 'Special manifest for Debian-like systems': } } class redhatlike { notify { 'Special manifest for RedHat-like systems': } } case $::operatingsystem { 'Ubuntu', 'Debian': { include debianlike } 'RedHat', 'Fedora', 'CentOS': { include redhatlike } default: { notify { "I don't know what kind of system you have!"

yes Warning: Permanently added 'ec2-107-22-22-159.compute-1.amazonaws. com,107.22.22.159' (RSA) to the list of known hosts. sudo: unable to resolve host cookbook-test --2013-03-15 15:53:44-release-precise.deb http://apt.puppetlabs.com/puppetlabs- Resolving apt.puppetlabs.com (apt.puppetlabs.com)... 96.126.116.126, 2600:3c00::f03c:91ff:fe93:711a Connecting to apt.puppetlabs.com (apt.puppetlabs. com)|96.126.116.126|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3392 (3.3K) [application/x-debian-package] Saving to: `puppetlabs-release-precise.deb' 0K 302M=0s 100% 27 Puppet Infrastructure 2013-03-15 15:53:44 (302 MB/s) - `puppetlabs-release-precise.deb' saved [3392/3392] Selecting previously unselected package puppetlabs-release. (Reading database ... 25370 files and directories currently installed.)


Learning Flask Framework by Matt Copperwaite, Charles Leifer

create, read, update, delete, database schema, Debian, DevOps, don't repeat yourself, full text search, place-making, Skype, web application

Check for any issues in your /var/log/apache2/error.log in Debian and Ubuntu systems and /var/log/httpd/error_log in Red Hat- and CentOS-based systems. Be aware that some Linux distros ship with a default configuration that must be disabled. This can likely be disabled in Debian- and Ubuntu-based systems by typing the following command: sudo a2dissite default However, in Red Hat- and CentOS-based systems we need to remove the /etc/ httpd/conf.d/welcome.conf file: sudo rm /etc/httpd/conf.d/welcome.conf We will, of course, have to restart the server again for Debian- and Ubuntu-based systems: sudo service apache2 restart And in Red Hat- and CentOS-based systems: sudo service httpd restart Apache also has a reload option rather than restart.

However, most people refer to it as Apache so that is what we shall call it as well. To make sure that Apache and the WSGI module are installed on Debian- and Ubuntu-based systems, run the following command: sudo apt-get install apache2 libapache2-mod-wsgi However, on Red Hat- and Fedora-based systems run the following command: sudo yum install httpd mod_wsgi To set up the Apache configuration, we must create a configuration file that will specify a new VirtualHost. You must locate the directory on your system where these files are kept. In Debian-based systems, such as Ubuntu, this will be in /etc/ apache2/sites-available; create your blog file in there.

Edit your blog.conf file to add the following line within the <VirtualHost *:80> tags: Alias /static <path to app>/static [ 206 ] Chapter 10 Here, <path to app> is the full absolute path to the directory where your static directory exists. Then reload the Apache configuration for Debian- and Ubuntu-based systems as follows: sudo service apache2 restart And for Red Hat- and CentOS-based systems as follows: sudo service httpd restart This will now inform Apache where to look for files when /static is requested by the browser. You will be able to see this happening by looking at your Apache log file, /var/log/apache2/access.log for Debian- and Ubuntu-based systems and / var/log/httpd/access.log for Red Hat- and CentOS-based systems. Nginx Nginx is rapidly becoming the de facto web server to replace Apache's httpd.


PostgreSQL Administration Essentials by Hans-Jurgen Schonig

business intelligence, Debian, full text search

Installing binary packages After this little introduction to PostgreSQL versioning, we can move forward and see how binary packages can be installed. Nowadays, most people use binary packages that are shipped with their preferred Linux distribution. These packages are tested, easy to use, and readily available. In this chapter, we will show you how to install PostgreSQL on Debian or Ubuntu and on Red-Hat-based systems. Installing PostgreSQL on Debian or Ubuntu Let's focus on installing PostgreSQL on Debian or Ubuntu first. The key point here is that it is recommended to add the PostgreSQL repositories to Ubuntu. The reason is that many Linux distributions, including Ubuntu, ship very old and outdated versions of PostgreSQL in their standard setup.

Index A all variable / Configuring the amount of log output ALTER ROLE clause / Modifying and dropping roles ANALYZE functionabout / Analyzing the performance of a query asynchronous replicationsetting up / Setting up an asynchronous replication, Setting up replication step by step high-level overview, obtaining / Obtaining a high-level overview slave, preparing / Preparing the slave master, configuring / Configuring the master initial backup, fetching / Fetching an initial backup recovery.conf file, creating / Creating and modifying the recovery.conf file slave, firing up / Firing up the slave slaves, turning into masters / Turning slaves into masters B B-tree indexinternal structure / The internal structure of a B-tree index, Understanding the B-tree internals sorted order, providing / Providing a sorted order B-treesadvantages / Understanding the B-tree internals backendsabout / Integrating Nagios backups, performingabout / Performing backups pg_dump, handling / Handling pg_dump entire instance, dumping / Dumping an entire instance basic operations, COPY commandabout / Basic operations of the COPY command bgwriter_delay parameter / Controlling writes bgwriter_lru_maxpages parameter / Controlling writes bgwriter_lru_multiplier parameter / Controlling writes binary packagesinstalling / Installing binary packages btree index typeabout / Dealing with different types of indexes Bucardo projectURL / Integrating Nagios checklist / Integrating Nagios buffers_checkpoint variableabout / Checking out the information in the background writer C cert method / Authentication methods available checkpointsconfiguring / Configuring the checkpoints optimizing / Optimizing the checkpoints distance, configuring / Configuring the distance between checkpoints writes, controlling / Controlling writes checkpoint_completion_target / Controlling writes checkpoint_sync_time variableabout / Checking out the information in the background writer checkpoint_write_time variableabout / Checking out the information in the background writer column permissionsmanaging / Managing column rights SELECT clause / Managing column rights INSERT clause / Managing column rights UPDATE clause / Managing column rights REFERENCES clause / Managing column rights combined indexabout / Combined indexes seq_page_cost variable / Combined indexes connectionabout / Integrating Nagios COPY commandusing / Using the COPY command basic operations / Basic operations of the COPY command pipes, using / Making use of pipes COPY … PROGRAM command / Making use of pipes CREATE clauseabout / Understanding schema-level permissions csvlogabout / Configuring log destinations curl command / Making use of pipes custom format dumpsabout / More sophisticated dumping D dataimporting / Importing and exporting data exporting / Importing and exporting data database-level permissionscontrolling / Controlling database-level permissions databasescreating / Creating databases ddl variable / Configuring the amount of log output DebianPostgreSQL, installing on / Installing PostgreSQL on Debian or Ubuntu E effective_cache_sizeadjusting / Adjusting effective_cache_size environment variablesPGPASSWORD / Passing users and passwords PGUSER / Passing users and passwords PGHOST / Passing users and passwords PGPORT / Passing users and passwords PGDATABASE / Passing users and passwords eventlogabout / Configuring log destinations execution plansabout / Understanding the concept of execution plans costs, calculating / Calculating costs conclusions, drawing / Drawing important conclusions indexes, creating / Creating indexes query performance, analyzing / Analyzing the performance of a query B-tree indexes / The internal structure of a B-tree index combined indexes / Combined indexes partial indexes / Partial indexes EXPLAIN ANALYZEabout / Analyzing the performance of a query explain analyze statement / Tweaking work_mem explain commandusing / Understanding the concept of execution plans F Fedora 20 / Installing PostgreSQL on Red-Hat-based systems Full-Text Search (FTS) / Dealing with different types of indexes G generate_series functionabout / Preparing the data gin index typeabout / Dealing with different types of indexes gist index typeabout / Dealing with different types of indexes GroupAggregate / Tweaking work_mem gss method / Authentication methods available H HashAggregate / Tweaking work_mem hot_standby_delayabout / Integrating Nagios huge pagesabout / Considering huge pages I ident method / Authentication methods available IF EXISTS clause / Modifying and dropping roles index typeslisting / Dealing with different types of indexes about / Dealing with different types of indexes btree / Dealing with different types of indexes gist / Dealing with different types of indexes gin / Dealing with different types of indexes sp-gist / Dealing with different types of indexes instance-level permissionshandling / Handling instance-level permissions roles, creating / Creating roles roles, modifying / Modifying and dropping roles roles, dropping / Modifying and dropping roles L ldap method / Authentication methods available Lehman-Yao B-treesURL / Understanding the B-tree internals Linux cgroupshandling / Handling Linux cgroups setting up / Setting up cgroups Linux kernel control group (cgroup) / Handling Linux cgroups local logfilescreating / Creating local logfiles locksabout / Integrating Nagios log creation, fine-tuningabout / Making log creation more fine grained logging selectively / Logging selectively slow queries, focusing on / Focusing on slow queries notices, silencing / Silencing notices log destinationsconfiguring / Configuring log destinations csvlog / Configuring log destinations syslog / Configuring log destinations eventlog / Configuring log destinations local logfiles, creating / Creating local logfiles syslog, using / Using syslog logs, configuring on Windows / Configuring logs on Windows performance considerations / Performance considerations logging collector process / Understanding the PostgreSQL log architecture log output amountconfiguring / Configuring the amount of log output logs, making readable / Making logs more readable additional settings / Additional settings logsconfiguring, on Windows / Configuring logs on Windows log_timezone variable / Making logs more readable M maintenance_work_mem parameterimproving / Improving maintenance_work_mem maxwritten_clean variableabout / Checking out the information in the background writer md5 method / Authentication methods available memory parametersadjusting / Adjusting memory parameters shared buffers, optimizing / Optimizing shared buffers huge pages, considering / Considering huge pages work_mem parameter, tweaking / Tweaking work_mem maintenance_work_mem, improving / Improving maintenance_work_mem missing indexesdetecting / Detecting missing indexes mod variable / Configuring the amount of log output N Nagios integrationabout / Integrating Nagios network authenticationmanaging / Managing network authentication contradictions, managing / Managing contradictions methods / Authentication methods available examples / Some more examples SSL, handling / Handling SSL pg_hba.conf, changing / Changing pg_hba.conf network authentication methodstrust / Authentication methods available reject / Authentication methods available md5 / Authentication methods available password / Authentication methods available gss / Authentication methods available sspi / Authentication methods available ident / Authentication methods available peer / Authentication methods available ldap / Authentication methods available radius / Authentication methods available cert / Authentication methods available pam / Authentication methods available none variable / Configuring the amount of log output P pagesabout / Considering huge pages pam method / Authentication methods available partial indexesabout / Partial indexes partial replaysperforming / Performing partial replays password method / Authentication methods available peer method / Authentication methods available pg_dumpabout / Handling pg_dump custom format dumps / More sophisticated dumping partial replays, performing / Performing partial replays users and passwords, passing / Passing users and passwords pg_dumpall command-line toolabout / Dumping an entire instance backups / Understanding backups and user creation user creation / Understanding backups and user creation pg_hba.confabout / Managing network authentication changing / Changing pg_hba.conf pg_relation_size commandabout / Calculating costs pg_start_backup variable / Setting up PITR pg_statio_user_indexesabout / Monitoring indexes pg_stat_activity fileabout / Checking out the pg_stat_activity file example / Checking out the pg_stat_activity file pg_stat_bgwriterabout / Checking out the information in the background writer pg_stat_databaseabout / Monitoring databases pg_stat_reset commandabout / How to reset statistics pg_stat_statement functionabout / Detecting slow queries pg_stat_statements moduleabout / Detecting slow queries pg_stat_user_indexesabout / Monitoring indexes pg_stat_user_tablesabout / Monitoring tables pg_stat_user_tables optionabout / Detecting missing indexes pg_stat_xact_user_tables tableabout / Resetting statistics PITRhandling / Handling point-in-time recovery about / Handling point-in-time recovery setting up / Setting up PITR transaction logs, replaying / Replaying transaction logs Pluggable Authentication Module (PAM)about / Managing network authentication URL / Managing network authentication PostgreSQLfiring up / Firing up PostgreSQL databases / Understanding the existing databases databases, creating / Creating databases index types / Dealing with different types of indexes system statistics / Understanding the system statistics of PostgreSQL integrating, with Nagios / Integrating Nagios PostgreSQL, compiling from sourceabout / Compiling PostgreSQL from source working / How it works contrib packages, installing / Installing the contrib packages database instance, creating / Creating a database instance postgresql.confwal_level parameter / Setting up PITR archive_mode parameter / Setting up PITR archive_command parameter / Setting up PITR PostgreSQL documentationURL / Dealing with different types of indexes PostgreSQL installationsetup, preparing / Preparing your setup PostgreSQL version numbers / Understanding the PostgreSQL version numbers binary packages, installing / Installing binary packages performing, on Debian / Installing PostgreSQL on Debian or Ubuntu performing, on Ubuntu / Installing PostgreSQL on Debian or Ubuntu performing, on Red Hat-based systems / Installing PostgreSQL on Red-Hat-based systems finalizing / Finalizing your installation PostgreSQL log architectureabout / Understanding the PostgreSQL log architecture log destinations, configuring / Configuring log destinations PostgreSQL securityabout / Understanding PostgreSQL security TCP, configuring / Configuring the TCP network authentication, managing / Managing network authentication instance-level permissions, handling / Handling instance-level permissions database-level permissions, controlling / Controlling database-level permissions schema-level permissions / Understanding schema-level permissions table-level permissions, handling / Handling table-level permissions column rights, managing / Managing column rights improving, with SELinux / Improving security with SELinux PostgreSQL transaction logabout / Understanding the PostgreSQL transaction log purpose / The purpose of the transaction log size, inspecting / Inspecting the size of the transaction log PostgreSQL versionselecting / Choosing the right version PostgreSQL version numbersabout / Understanding the PostgreSQL version numbers ps ax | grep post command / Passing users and passwords Q query, executing stepsparser / Understanding the concept of execution plans rewrite system / Understanding the concept of execution plans optimizer or planner / Understanding the concept of execution plans executor / Understanding the concept of execution plans query_timeabout / Integrating Nagios R radius method / Authentication methods available Red Hat-based systemsPostgreSQL, installing on / Installing PostgreSQL on Red-Hat-based systems reject method / Authentication methods available replicationimproving / Improving and monitoring the replication, Making things more robust monitoring / Improving and monitoring the replication streaming, monitoring / Keeping an eye on streaming conflicts, managing / Managing conflicts S schema-level permissionsabout / Understanding schema-level permissions schemasabout / Understanding schema-level permissions search_path variableabout / Understanding schema-level permissions SECURITY LABEL / Improving security with SELinux SELinuxused, for improving security / Improving security with SELinux shared buffersabout / Optimizing shared buffers shared_buffers parameterabout / Optimizing shared buffers simple binary treesusing / Using simple binary trees data, preparing / Preparing the data slow queriesdetecting / Detecting slow queries sp-gist index typeabout / Dealing with different types of indexes sspi method / Authentication methods available standard error (stderr) / Understanding the PostgreSQL log architecture statisticsresetting / How to reset statistics synchronous replicationupgrading to / Upgrading to synchronous replication syntax, CREATE ROLESUPERUSER | NOSUPERUSER / Creating roles CREATEDB | NOCREATEDB / Creating roles CREATEROLE | NOCREATEROLE / Creating roles CREATEUSER | NOCREATEUSER / Creating roles INHERIT | NOINHERIT / Creating roles LOGIN | NOLOGIN / Creating roles REPLICATION | NOREPLICATION / Creating roles CONNECTION LIMIT / Creating roles PASSWORD / Creating roles VALID UNTIL / Creating roles IN ROLE | IN GROUP / Creating roles ROLE / Creating roles ADMIN / Creating roles USER / Creating roles SYSID / Creating roles syslogabout / Configuring log destinations, Using syslog using / Using syslog system statistics, PostgreSQLabout / Understanding the system statistics of PostgreSQL pg_stat_activity file / Checking out the pg_stat_activity file databases, monitoring / Monitoring databases tables, monitoring / Monitoring tables indexes, monitoring / Monitoring indexes pg_stat_bgwriter / Checking out the information in the background writer resetting / Resetting statistics T table-level permissionshandling / Handling table-level permissions SELECT / Handling table-level permissions INSERT / Handling table-level permissions UPDATE / Handling table-level permissions DELETE / Handling table-level permissions TRUNCATE / Handling table-level permissions REFERENCES / Handling table-level permissions TRIGGER / Handling table-level permissions TCPconfiguring / Configuring the TCP The Oversized Attribute Storage Technique (TOAST)about / Monitoring tables timelinesabout / Understanding timelines benefits / The importance of timelines trust method / Authentication methods available U UbuntuPostgreSQL, installing on / Installing PostgreSQL on Debian or Ubuntu USAGE clauseabout / Understanding schema-level permissions users and passwordspassing / Passing users and passwords W work_mem parameterabout / Tweaking work_mem tweaking / Tweaking work_mem Write Ahead Log (WAL) / The purpose of the transaction log

Free access for Packt account holders Preface What this book covers What you need for this book Who this book is for Conventions Reader feedback Customer support Errata Piracy Questions 1. Installing PostgreSQL Preparing your setup Understanding the PostgreSQL version numbers Choosing the right version Installing binary packages Installing PostgreSQL on Debian or Ubuntu Installing PostgreSQL on Red-Hat-based systems Compiling PostgreSQL from source How it works Installing the contrib packages Finalizing your installation Creating a database instance Firing up PostgreSQL Understanding the existing databases Creating databases Summary 2. Indexing and Performance Tuning Using simple binary trees Preparing the data Understanding the concept of execution plans Calculating costs Drawing important conclusions Creating indexes Analyzing the performance of a query The internal structure of a B-tree index Understanding the B-tree internals Providing a sorted order Combined indexes Partial indexes Dealing with different types of indexes Detecting missing indexes Detecting slow queries How to reset statistics Adjusting memory parameters Optimizing shared buffers Considering huge pages Tweaking work_mem Improving maintenance_work_mem Adjusting effective_cache_size Summary 3.


pages: 360 words: 96,275

PostgreSQL 9 Admin Cookbook: Over 80 Recipes to Help You Run an Efficient PostgreSQL 9. 0 Database by Simon Riggs, Hannu Krosing

business intelligence, business process, database schema, Debian, en.wikipedia.org, full text search, GnuPG, MITM: man-in-the-middle, Skype

You can create additional data directories by using the initdb utility. On Windows and OS X, the default data directory location is as follows: ff C:\Program Files\PostgreSQL\R.r\data How it works... Even though the Debian/Ubuntu and Red Hat file layouts are different, they both follow the Linux Filesystem Hierarchy Standard (FHS), so neither layout is wrong. The Red Hat layout is simpler and easier to understand. The Debian/Ubuntu layout is more complex, though it has different and more adventurous goals. The Debian/Ubuntu layout is similar to the Optimal Flexible Architecture (OFA) of other database systems. The goals are to provide a file layout that will allow you to have multiple PostgreSQL database servers on one system, and to allow many versions of the software to exist at once in the filesystem.

The goals are to provide a file layout that will allow you to have multiple PostgreSQL database servers on one system, and to allow many versions of the software to exist at once in the filesystem. The layout for the Windows and OS X installers is different again. Multiple database clusters are possible, but are also more complex than on Debian/Ubuntu. I recommend that you follow the Debian/Ubuntu layout, on whichever platform you are using. It doesn't really have a name, so I call it the PostgreSQL Flexible Architecture (PFA). If you do this, you'll need to lay things out yourself, but it does pay off in the long run. PFA uses the following environment variables to name parts of the file layout: ff export PGROOT=/var/lib/pgsql/ ff export PGRELEASE=9.0 ff export PGSERVERNAME=mamba ff export PGDATADIR=$PGROOT/$PGRELEASE/$PGSERVERNAME ff example, PGDATADIR is /var/lib/pgsql/9.0/mamba 35 Exploring the Database There's more...

On all platforms, there is a specific command to start the server, which is as follows: 74 Chapter 4 UBUNTU/DEBIAN pg_ctlcluster 9.0 main reload RED HAT/FEDORA pg_ctl -D /var/lib/pgsql/data start SOLARIS pg_ctl -D /var/lib/pgsql/data start MAC OS pg_ctl -D /var/lib/pgsql/data start FREEBSD pg_ctl -D /var/lib/pgsql/data start although on some platforms, the service can be started in various ways such as: RED HAT/FEDORA service postgresql start WINDOWS net start postgres How it works... On Ubuntu/Debian, the pg_ctlcluster wrapper is a convenient utility that allows multiple servers to coexist more easily, which is especially good when you have servers with different versions.


pages: 234 words: 57,267

Python Network Programming Cookbook by M. Omar Faruque Sarker

business intelligence, cloud computing, Debian, DevOps, Firefox, inflight wifi, RFID, web application

The following output shows a telnet session executed on a Debian machine: $ python 7_1_execute_remote_telnet_cmd.py Enter remote hostname e.g. localhost: localhost Enter your remote account: faruq Password: ls exit Last login: Mon Aug 12 10:37:10 BST 2013 from localhost on pts/9 Linux debian6 2.6.32-5-686 #1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.

Otherwise, you can modify the remote_server() function and point it to a remote server, as follows: $ fab remote_server login [127.0.0.1] Executing task 'login' Linux debian6 2.6.32-5-686 #1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. You have new mail. Last login: Wed Aug 21 15:08:45 2013 from localhost cd /tmp faruq@debian6:~$ cd /tmp faruq@debian6:/tmp$ <CTRL+D> faruq@debian6:/tmp$ logout Done.

Chapter 9, Network Monitoring and Security, introduces you to various techniques for capturing, storing, analyzing, and manipulating network packets. This encourages you to go further to investigate your network security issues using concise Python scripts. What you need for this book You need a working PC or laptop, preferably with any modern Linux operating system such as Ubuntu, Debian, CentOS, and so on. Most of the recipes in this book will run on other platforms such as Windows and Mac OS. You also need a working Internet connection to install the third-party software libraries mentioned with respective recipes. If you do not have an Internet connection, you can download those third-party libraries and install them in one go.


pages: 681 words: 64,159

Numpy Beginner's Guide - Third Edition by Ivan Idris

algorithmic trading, business intelligence, Conway's Game of Life, correlation coefficient, Debian, discrete time, en.wikipedia.org, functional programming, general-purpose programming language, Khan Academy, p-value, random walk, reversible computing, time value of money

NumPy has binary installers for Windows, various Linux distributons, and Mac OS X at http://sourceforge.net/projects/numpy/files/ . There is also a source distributon, if you prefer that. You need to have Python 2.4.x or above installed on your system. We will go through the various steps required to install Python on the following operatng systems: ‹ Debian and Ubuntu : Python might already be installed on Debian and Ubuntu, but the development headers are usually not. On Debian and Ubuntu, install the python and python-dev packages with the following commands: $ [sudo] apt-get install python $ [sudo] apt-get install python-dev ‹ Windows : The Windows Python installer is available at https://www.python. org/downloads/ .

SDL is a C framework that gives access to graphics, sound, keyboard, and other input devices on various operatng systems including Linux, Mac OS X, and Windows. We will install Pygame in this secton. Pygame should be compatble with all Python versions. At the tme of writng, there were some incompatbility issues with Python 3, but in all probability, these will be fxed soon. ‹ Installing on Debian and Ubuntu : Pygame can be found in the Debian archives at https://packages.qa.debian.org/p/pygame.html . ‹ Installing on Windows : From the Pygame website ( http://www.pygame.org/ download.shtml ), download the appropriate binary installer for the Python version you are using. ‹ Installing Pygame on the Mac : Binary Pygame packages for Mac OS X 10.3 and up can be found at http://www.pygame.org/download.shtml

We will go through the necessary commands for some of the most popular Linux distros: ‹ Installing NumPy on Red Hat : Run the following instructons from the command line: $ yum install python-numpy ‹ Installing NumPy on Mandriva : To install NumPy on Mandriva, run the following command line instructon: $ urpmi python-numpy ‹ Installing NumPy on Gentoo : To install NumPy on Gentoo, run the following command line instructon: $ [sudo] emerge numpy ‹ Installing NumPy on Debian and Ubuntu : On Debian or Ubuntu, type the following on the command line: $ [sudo] apt-get install python-numpy The following table gives an overview of the Linux distributons and the corresponding package names for NumPy, SciPy, matplotlib, and IPython: NumPy on Mac OS X You can install NumPy, matplotlib, and SciPy on the Mac OS X with a GUI installer (not possible for all versions) or from the command line with a port manager such as MacPorts , Homebrew , or Fink , depending on your preference.


Free as in Freedom by Sam Williams

Asperger Syndrome, cognitive dissonance, commoditize, Debian, Douglas Engelbart, East Village, Guido van Rossum, Hacker Ethic, informal economy, Isaac Newton, John Conway, John Markoff, Larry Wall, Marc Andreessen, Maui Hawaii, Murray Gell-Mann, profit motive, Richard Stallman, Silicon Valley, slashdot, software patent, Steven Levy, Ted Nelson, urban renewal, VA Linux, Y2K

As soon as the FSF announced that it would lend its money and moral support to Murdock's software project, other offers of support began rolling in. Murdock 127 dubbed the new project Debian-a compression of his and his wife, Deborah's, names-and within a few weeks was rolling out the first distribution. "[Richard's support] catapulted Debian almost overnight from this interesting little project to something people within the community had to pay attention to," Murdock says. In January of 1994, Murdock issued the " Debian Manifesto." Written in the spirit of Stallman's "GNU Manifesto" from a decade before, it explained the importance of working closely with the Free Software Foundation.

The fork had given birth to a parallel version, Lucid Emacs, and hard feelings all around.Jamie Zawinski, a former Lucid programmer who would go on to head the Mozilla development team, has a web site that documents the Lucid/GNU Emacs fork, titled, "The Lemacs/ FSFmacs Schism." Murdock says Debian was mounting work on a similar fork in glibc source code that motivated Stallman to insist on adding the GNU prefix when Debian rolled out its software distribution. "The fork has since converged. Still, at the time, there was a concern that if the Linux community saw itself as a different thing as the GNU community, it might be a force for disunity." Stallman seconds Murdock's recollection.

"I wrote him asking how he could be advocating free software on the one hand and working for Intel on the other. He wrote back saying, 'I work as a consultant to produce free software.' He was perfectly polite about it, and I thought his answer made perfect sense." As a prominent Debian developer, however, Perens regarded Murdock's design battles with Stallman with dismay. Upon assuming leadership of the development team, Perens says he made the command decision to distance Debian from the Free Software Foundation. "I decided we did not want Richard's style of micro-management," he says. According to Perens, Stallman was taken aback by the decision but had the wisdom to roll with it.


pages: 188 words: 9,226

Collaborative Futures by Mike Linksvayer, Michael Mandiberg, Mushon Zer-Aviv

4chan, AGPL, Benjamin Mako Hill, British Empire, citizen journalism, cloud computing, collaborative economy, corporate governance, crowdsourcing, Debian, en.wikipedia.org, Firefox, informal economy, jimmy wales, Kickstarter, late capitalism, loose coupling, Marshall McLuhan, means of production, Naomi Klein, Network effects, optical character recognition, packet switching, postnationalism / post nation state, prediction markets, Richard Stallman, semantic web, Silicon Valley, slashdot, Slavoj Žižek, stealth mode startup, technoutopianism, The future is already here, the medium is the message, The Wisdom of Crowds, web application, WikiLeaks, Yochai Benkler

This is known as a Copyle license. 14 Mass Collaborations Debian is the largest non-market collaboration to emerge from the free so ware movement. Beginning in 1993, thousands of volunteer developers have maintained a GNU/Linux operating system distribution, which has been deeply influential well beyond its substantial deployments. Debian has served as the basis for numerous other distributions, including the most popular for the past several years, Ubuntu. Debian is also where many of the pragmatics of the free so ware movement were concretized, including in the Debian Free So ware Guidelines in 1997, which served as the basis of the Open Source Definition in 1998.

All users participate in carrying the data load, and a significant number actively source new materials to share with other members, and to satisfy requests. (10) Debian is constructed around a clearly defined goal: the development and distribution of a gnu/linux operating system consistent with the Debian Free So ware Guidelines. These guidelines are part of a wider wri en ‘social contract’, a code embodying the project’s ethics, procedural rules and framework for interaction. These rules are the subject of constant debate. Additions to the code base likewise o en give rise to extended discussion touching on legal, political and ethical questions. The social contract can be changed by a general resolution of the developers. Debian exemplifies a ‘recursive community’ (see Christopher Kelty, ‘Two bits’), in that they develop and maintain the tools which support their ongoing communication and labour.

We argue that rules for participation, established guidelines for a ribution, organizational structure and leadership, and clear goals are necessary for collaboration. In most cases, when we think of these a ributes, we think of manifestos of artist and activist groups, a empts to govern a ribution by formal licenses like the Free Culture and Free So ware licenses, Debian’s formal decision making process, or Eric Raymond’s notion of a Benevolent Dictator that characterizes Linus Torvald’s governance over Linux. What is fascinating about Anonymous, is that at first glance, it appears they have none of these: They are o en portrayed as a band of predominantly young white male renegade hackers raining chaos on random corners of the Internet with no logic or reason.


Learning Puppet 4: A Guide to Configuration Management and Automation by Jo Rhett

Amazon Web Services, Debian, DevOps, Golden Gate Park, pull request

For example, to ensure that only hosts in a certain domain provide this fact, you could use the following: 194 | Chapter 15: Extending Modules with Plugins www.it-ebooks.info # cluster_name.rb Facter.add('cluster_name') do confine 'domain' => 'example.com' setcode do ruby code which provides the value... You can use multiple confine statements to enforce multiple conditions, all of which must be true. Finally, you can also test against multiple values by providing an array of values. If you are looking for a fact only available on Debian-based systems, you could use this: # debian_fact.rb Facter.add('debian_fact') do confine 'operatingsystem' => %w{ Debian Ubuntu } setcode do ruby code which provides the value... Ordering by Precendence You can define multiple methods, or resolutions, to acquire a fact’s value. Facter will utilize the highest precendence resolution which returns a value. To provide multiple resolutions, simply add another Facter code block with the same fact name.

So the drinking comparisons have been fun, but let’s examine some practical compar‐ isons that you may actually use in a real manifest. # Explicit comparison if( $facts['osfamily'] == 'redhat' ) { include yum } # Do a substring match elsif( $facts['osfamily'] in 'debian-ubuntu' ) { include apt } # New package manager is only available with FreeBSD 9 and above elsif( $facts['operatingsystem'] =~ /?i:freebsd/ ) and ( $facts['os']['release']['major'] >= 9 ) { include pkgng } This can be more compact as a case statement: case $facts['osfamily'] { 'redhat': { include yum } 'debian', 'ubuntu': { include apt } 'freebsd' and ($facts['os']['release']['major'] >= 9) { include pkgng } default: {} } There’s also unless to reverse comparisons for readability purposes.

$facts['os'] ['release']['minor']" Here’s an example of compatibility which supports recent Enterprise Linux and Debian/Ubuntu versions. Documenting the Module www.it-ebooks.info | 167 "operatingsystem_support": [ { "operatingsystem":"RedHat", "operatingsystemrelease":[ "6", "7" ] }, { "operatingsystem":"CentOS", "operatingsystemrelease":[ "6", "7" ] }, { "operatingsystem":"Amazon", "operatingsystemrelease":[ "2015.03", "2014.09", "2014.03" ] }, { "operatingsystem":"OracleLinux", "operatingsystemrelease":[ "6", "7" ] }, { "operatingsystem":"Scientific", "operatingsystemrelease":[ "6", "7" ] }, { "operatingsystem":"Debian", "operatingsystemrelease":[ "6", "7" ] }, { "operatingsystem": "Ubuntu", "operatingsystemrelease": [ "15.04", "14.10", "14.04", "13.10", "13.04" ] } ], Defining Requirements Requirements defines Puppet component versions.


Learning Ansible 2 - Second Edition by Fabio Alessandro Locati

Amazon Web Services, anti-pattern, cloud computing, continuous integration, Debian, DevOps, don't repeat yourself, Infrastructure as a Service, inventory management, Kickstarter, revision control, source of truth, web application

Without wasting your time, let's dive into an example playbook called conditional_httpd.yaml with the following content: --- hosts: webserver remote_user: ansible tasks: - name: Print the ansible_os_family value debug: msg: '{{ ansible_os_family }}' - name: Ensure the httpd package is updated yum: name: httpd state: latest become: True when: ansible_os_family == 'RedHat' - name: Ensure the apache2 package is updated apt: name: apache2 state: latest become: True when: ansible_os_family == 'Debian' Run it with the following: ansible-playbook -i hosts conditional_httpd.yaml This is the result: PLAY [webserver] ************************************************* TASK [setup] ***************************************************** ok: [ws03.fale.io] ok: [ws01.fale.io] ok: [ws02.fale.io] TASK [Print the ansible_os_family value] ************************* ok: [ws01.fale.io] => { "msg": "RedHat" } ok: [ws02.fale.io] => { "msg": "RedHat" } ok: [ws03.fale.io] => { "msg": "Debian" } TASK [Ensure the httpd package is updated] *********************** skipping: [ws03.fale.io] changed: [ws01.fale.io] changed: [ws02.fale.io] TASK [Ensure the apache2 package is updated] ********************* skipping: [ws02.fale.io] skipping: [ws01.fale.io] changed: [ws03.fale.io] PLAY RECAP ******************************************************* ws01.fale.io : ok=3 changed=1 unreachable=0 failed=0 ws02.fale.io : ok=3 changed=1 unreachable=0 failed=0 ws03.fale.io : ok=3 changed=1 unreachable=0 failed=0 As you can see, I've created a new server (ws03) for this example that is Debian-based. As expected, the installation of the httpd package was performed on the two CentOS nodes, while the installation of the apache2 package was performed on the Debian node. Tip Ansible only distinguishes between a few families (AIX, Alpine, Altlinux, Archlinux, Darwin, Debian, FreeBSD, Gentoo, HP-UX, Mandrake, Red Hat, Slackware, Solaris, and Suse at the time of writing this book), for this reason a CentOS machine has an ansible_os_family value; 'RedHat'.

However, this would not help you while writing an advanced playbook that contains tens of tasks and have to execute only a subset of these tasks. For example, let's say you have a playbook that will install Apache HTTPd server on the remote host. Now, the Apache HTTPd server has a different package name for a Debian-based operating system, and it's called apache2; for a Red-Hat-based operating system, it's called httpd. Having two tasks, one for the httpd package (for Red-Hat-based systems) and the other for the apache2 package (for Debian-based systems) in a playbook, will make Ansible install both packages, and this execution will fail, as apache2 will not be available if you're installing on a Red-Hat-based operating system.

Without wasting your time, let's dive into an example playbook called conditional_httpd.yaml with the following content: --- hosts: webserver remote_user: ansible tasks: - name: Print the ansible_os_family value debug: msg: '{{ ansible_os_family }}' - name: Ensure the httpd package is updated yum: name: httpd state: latest become: True when: ansible_os_family == 'RedHat' - name: Ensure the apache2 package is updated apt: name: apache2 state: latest become: True when: ansible_os_family == 'Debian' Run it with the following: ansible-playbook -i hosts conditional_httpd.yaml This is the result: PLAY [webserver] ************************************************* TASK [setup] ***************************************************** ok: [ws03.fale.io] ok: [ws01.fale.io] ok: [ws02.fale.io] TASK [Print the ansible_os_family value] ************************* ok: [ws01.fale.io] => { "msg": "RedHat" } ok: [ws02.fale.io] => { "msg": "RedHat" } ok: [ws03.fale.io] => { "msg": "Debian" } TASK [Ensure the httpd package is updated] *********************** skipping: [ws03.fale.io] changed: [ws01.fale.io] changed: [ws02.fale.io] TASK [Ensure the apache2 package is updated] ********************* skipping: [ws02.fale.io] skipping: [ws01.fale.io] changed: [ws03.fale.io] PLAY RECAP ******************************************************* ws01.fale.io : ok=3 changed=1 unreachable=0 failed=0 ws02.fale.io : ok=3 changed=1 unreachable=0 failed=0 ws03.fale.io : ok=3 changed=1 unreachable=0 failed=0 As you can see, I've created a new server (ws03) for this example that is Debian-based.


pages: 132 words: 28,815

Ansible Configuration Management - Second Edition by Daniel Hall

cloud computing, Debian, pull request, web application

Instead of adding when clauses to each task that needs to be skipped, we can create a group for machines where the action should happen and then use a separate play to configure those machines separately. Here is an example of installing an ssl private key across Debian and RedHat machines without using a when clause: --- - name: Catergorize hosts hosts: all tasks: - name: Gather hosts by OS group_by: key: "os_{{ ansible_os_family }}" - name: Install keys on RedHat hosts: os_RedHat tasks: - name: Install SSL certificate copy: src: sslcert.pem dest: /etc/pki/tls/private/sslcert.pem - name: Install keys on Debian hosts: os_Debian tasks: - name: Install SSL certificate copy: src: sslcert.pem dest: /etc/ssl/private/sslcert.pem The slurp module The slurp module grabs a file from the remote system, encodes it with base 64, and then returns the result.

The following code is an example showing how to choose between apt and yum for both Debian and Red Hat systems. --- - name: Install VIM hosts: all tasks: - name: Install VIM via yum yum: name: vim-enhanced state: installed when: ansible_os_family == "RedHat" - name: Install VIM via apt apt: name: vim state: installed when: ansible_os_family == "Debian" - name: Unexpected OS family debug: msg: "OS Family {{ ansible_os_family }} is not supported" fail: yes when: ansible_os_family != "RedHat" and ansible_os_family != "Debian" There is also a third clause to print a message and fail if the OS is not recognized.

About the Reviewers Maykel Moya has been working in Systems and Network Administration since 1999. Previously, he was at two of the largest ISPs in his hometown of Cuba, where he managed HA clusters, SAN, AAA systems, WAN, and Cisco routers. He entered the GNU/Linux landscape through RedHat, but today his main experience lies in Debian/Ubuntu systems. He identifies with the Free Software philosophy. Convinced through personal experience that human intervention in computer operations doesn't scale and is error-prone, he is constantly seeking ways to let software offload the tedious and repetitive tasks from people. With a background in Puppet, he looked for alternatives and discovered Ansible in its early days.


pages: 120 words: 19,624

git internal by Scott Chacon

Debian, en.wikipedia.org, loose coupling, pull request, Ruby on Rails

Another interesting example is to see which files in these versions do not contain the string ‘git’ anywhere in them: $ git grep -L -v git v1.5.3.8 v1.0.0 v1.5.3.8:contrib/fast-import/git-p4.bat v1.5.3.8:contrib/p4import/README v1.5.3.8:t/t5100/patch0007 v1.5.3.8:t/t5100/patch0008 v1.5.3.8:templates/this--description v1.0.0:debian/git-arch.files v1.0.0:debian/git-cvs.files v1.0.0:debian/git-doc.files v1.0.0:debian/git-email.files v1.0.0:debian/git-svn.files v1.0.0:debian/git-tk.files v1.0.0:templates/this--description • git grep (http://www.kernel.org/pub/software/scm/git/docs/git-grep.html) Git Diff Git has a great diff utility built in that can give you statistics or a patch file given any combination of tree objects, working directory and index. 72 Two common uses of this include seeing what you’ve worked on but not committed yet, and creating a patch file to send to someone over email (though there is a much preferred way to share changes which we will learn about in the “distributed workflow” section a bit later).

Installing on Linux If you are installing from source, it will go something like the standard: $ wget http://kernel.org/pub/software/scm/git/git1.5.4.4.tar.bz2 $ tar jxpvf git-1.5.4.4.tar.bz2 $ cd git-1.5.4.4 $ make prefix=/usr all doc info $ sudo make prefix=/usr install install-doc install-info If you are running Ubuntu or another Debian based system, you can run $ apt-get git-core 5 or on yum based systems, you can often run: $ yum install git-core Installing on Mac You are likely going to want to install Git without the asciidoc dependency because it is a pain to install. Other than that, what you basically need is Curl and Expat.


pages: 589 words: 69,193

Mastering Pandas by Femi Anthony

Amazon Web Services, Bayesian statistics, correlation coefficient, correlation does not imply causation, Debian, en.wikipedia.org, Internet of things, natural language processing, p-value, random walk, side project, statistical model, Thomas Bayes

The various dependencies along with the associated download locations are as follows: Package Required Description Download location NumPy : 1.6.1 or higher Required NumPy library for numerical operations http://www.numpy.org/ python-dateutil 1.5 Required Date manipulation and utility library http://labix.org/ Pytz Required Time zone support http://sourceforge.net/ numexpr Optional, recommended Speeding up of numerical operations https://code.google.com/ bottleneck Optional, recommended Performance-related http://berkeleyanalytics.com/ Cython Optional, recommended C-extensions for Python used for optimization http://cython.org/ SciPy Optional, recommended Scientific toolset for Python http://scipy.org/ PyTables Optional Library for HDF5-based storage http://pytables.github.io/ matplotlib Optional, recommended Matlab-like Python plotting library http://sourceforge.net/ statsmodels Optional Statistics module for Python http://sourceforge.net/ openpyxl Optional Library to read/write Excel files https://www.python.org/ xlrd/xlwt Optional Libraries to read/write Excel files http://python-excel.org/ boto Optional Library to access Amazon S3 https://www.python.org/ BeautifulSoup and one of html5lib, lxml Optional Libraries needed for the read_html() function to work http://www.crummy.com/ html5lib Optional Library for parsing HTML https://pypi.python.org/pypi/html5lib lmxl Optional Python library for processing XML and HTML http://lxml.de/ Linux Installing pandas is fairly straightforward for popular flavors of Linux. First, make sure that the Python .dev files are installed. If not, then install them as explained in the following section. Ubuntu/Debian For the Ubantu/Debian environment, run the following command: sudo apt-get install python-dev Red Hat For the Red Hat environment, run the following command: yum install python-dev Now, I will show you how to install pandas. Ubuntu/Debian For installing pandas in the Ubuntu/Debian environment, run the following command: sudo apt-get install python-pandas Fedora For Fedora, run the following command: sudo yum install python-pandas OpenSuse Install Python-pandas via YaST Software Management or use the following command: sudo zypper install python-pandas Sometimes, additional dependencies may be needed for the preceding installation, particularly in the case of Fedora.

If you're not sure, type the following at the command prompt: which python Python is likely to be found in one of the following folders on Linux depending upon your distribution and particular installation: /usr/bin/python /bin/python /usr/local/bin/python /opt/local/bin/python You can determine which particular version of Python is installed, by typing the following in the command prompt: python --version In the rare event that Python isn't already installed, you need to figure out which flavor of Linux you're using, then download and install it. Here are the install commands as well as links to the various Linux Python distributions: Debian/Ubuntu (14.04) sudo apt-get install python2.7 sudo apt-get install python2.7-devel Debian Python page at https://wiki.debian.org/Python. Redhat Fedora/Centos/RHEL sudo yum install python sudo yum install python-devel Fedora software installs at http://bit.ly/1B2RpCj. Open Suse sudo zypper install python sudo zypper install python-devel More information on installing software can be found at http://en.opensuse.org/YaST_Software_Management.

Installation of pandas and the Supporting Software Selecting a version of Python to use Python installation Linux Installing Python from compressed tarball Windows Core Python installation Third-party Python software installation Mac OS X Installation using a package manager Installation of Python and pandas from a third-party vendor Continuum Analytics Anaconda Installing Anaconda Linux Mac OS X Windows Final step for all platforms Other numeric or analytics-focused Python distributions Downloading and installing pandas Linux Ubuntu/Debian Red Hat Ubuntu/Debian Fedora OpenSuse Mac Source installation Binary installation Windows Binary Installation Source installation IPython IPython Notebook IPython installation Linux Windows Mac OS X Install via Anaconda (for Linux/Mac OS X) Wakari by Continuum Analytics Virtualenv Virtualenv installation and usage Summary 3.


pages: 514 words: 111,012

The Art of Monitoring by James Turnbull

Amazon Web Services, anti-pattern, cloud computing, continuous integration, correlation does not imply causation, Debian, DevOps, domain-specific language, failed state, functional programming, Kickstarter, Kubernetes, microservices, performance metric, pull request, Ruby on Rails, software as a service, source of truth, web application, WebSocket

Testing Java is installed We then test that Java is installed via the java binary: $ java -version java version "1.7.0_09" OpenJDK Runtime Environment (IcedTea7 2.3.3)(7u9-2.3.3-0ubuntu1~12.04.1) OpenJDK Client VM (build 23.2-b09, mixed mode, sharing) Installing the Logstash package Once we have Java installed we install the Logstash package. On Ubuntu and Debian For Ubuntu and Debian systems we first need to add the Elastic.co public key, like so: $ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - We add the following Apt configuration so we can find the Logstash repository. $ echo "deb http://packages.elastic.co/logstash/2.2/debian stable main" | sudo tee -a /etc/apt/sources.list.d/logstash.list Then we update Apt and install the logstash package with the apt-get command

Installing collectd Installing collectd on Ubuntu Installing collectd on Red Hat Installing collectd via configuration management Configuring collectd Loading and configuring collectd plugins for monitoring Finishing up Enabling and running collectd The collectd events Sending our collectd events to Graphite Refactoring the collectd metric names Summary Using collectd events in Riemann Checking processes are running Other actions and enhancements Replicating some classic monitoring Better monitoring through smarter data Building a median-based check Using percentiles for host-based checks Creating check abstractions Organizing our checks Graphing collectd metrics with Grafana Creating the Hosts dashboard Creating our first host graph Creating a memory graph Single host graphs Additional graphs Network, device, and Microsoft Windows monitoring Alternatives to collectd Commercial tools Open source Summary Containers: another kind of host Challenges with container monitoring Monitoring Docker containers Docker collectd plugin Installing the Docker collectd plugin Configuring the Docker collectd plugin Processing Docker collectd statistics with Riemann Adding metadata to our Docker events Specifying different resolution for Docker metrics Cleaning up old Graphite Docker metrics Using Docker metrics for monitoring Other container monitoring tools Summary Logs and logging Introducing Elasticsearch, Logstash, and Kibana Logstash architecture Installing Logstash On Debian & Ubuntu On Red Hat Testing Java is installed Installing the Logstash package Testing Logstash is installed Configuring Logstash Installing Elasticsearch On Debian and Ubuntu On Red Hat Installing Elasticsearch via configuration management Testing Elasticsearch is installed Determining Elasticsearch is running Configuring our Elasticsearch cluster and nodes Adding a cluster management plugin Time and time zone Integrating Logstash and Elasticsearch What happens inside Logstash?

The Elastic.co team provides tar balls, RPMs, and DEB packages. You can find the Elasticsearch download page here. We're going to install Elasticsearch via packages using Elastic.co's package repository. For Ubuntu and Debian, we first need to install the Elastic.co public key. $ wget -qO - https://packages.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - Then add the following repository to our Apt configuration. $ sudo sh -c "echo deb http://packages.elastic.co/elasticsearch/2.x/debian stable main > /etc/apt/sources.list.d/elasticsearch.list" Next we update our Apt repositories and install the elasticsearch package. $ sudo apt-get update $ sudo apt-get -y install elasticsearch On Red Hat On Red Hat, we install Java via the yum command


pages: 369 words: 80,355

Too Big to Know: Rethinking Knowledge Now That the Facts Aren't the Facts, Experts Are Everywhere, and the Smartest Person in the Room Is the Room by David Weinberger

airport security, Alfred Russel Wallace, Amazon Mechanical Turk, Berlin Wall, Black Swan, book scanning, Cass Sunstein, commoditize, corporate social responsibility, crowdsourcing, Danny Hillis, David Brooks, Debian, double entry bookkeeping, double helix, en.wikipedia.org, Exxon Valdez, Fall of the Berlin Wall, future of journalism, Galaxy Zoo, Hacker Ethic, Haight Ashbury, hive mind, Howard Rheingold, invention of the telegraph, jimmy wales, Johannes Kepler, John Harrison: Longitude, Kevin Kelly, linked data, Netflix Prize, New Journalism, Nicholas Carr, Norbert Wiener, openstreetmap, P = NP, Pluto: dwarf planet, profit motive, Ralph Waldo Emerson, RAND corporation, Ray Kurzweil, Republic of Letters, RFID, Richard Feynman, Ronald Reagan, semantic web, slashdot, social graph, Steven Pinker, Stewart Brand, technological singularity, Ted Nelson, the scientific method, The Wisdom of Crowds, Thomas Kuhn: the structure of scientific revolutions, Thomas Malthus, Whole Earth Catalog, X Prize

Indeed, the official Constitution of the community that produces a bundled version of Linux called Debian says explicitly: “A person who does not want to do a task which has been delegated or assigned to them does not need to do it.”19 Authority can still be wielded against rogue members of the community—say, someone who does not follow the agreed-upon quality assurance practices—ranging from public shaming to taking away access privileges, and, as with all large-scale collaborative projects on the Internet, the Debian community has procedures for adjudicating disputes. Nevertheless, these projects are not hierarchies so much as networks in which some nodes are more equal than others.

In his book Cyberchiefs: Autonomy and Authority in Online Tribes, Mathieu O’Neil writes: “Debian must reconcile the central notion of each developer’s autonomy, and the respect for difference, with the constraints deriving from the production of a complex system with quality standards of the highest order.”20 So, the software is divided into modules “to give developers full administrative control over their packages or teams, in a mini-cathedral model.” The developers have to follow strict guidelines for their modules so they can be easily integrated into the whole. Debian also requires members of the community to maintain identities, rather than contribute anonymously, because only those who have earned the trust of their fellows are allowed access to key resources that, in the wrong hands, could bring down the entire software project.

See Science at Creative Commons Crick, Francis Crisis of knowledge CrisisCommons.org Crowds Crowdsourcing information amateur scientists British Parliamentarians’ use of expertise and leadership effectiveness Netflix contest open-notebook science Culture, information overload and Cybercascades Cyberchiefs: Autonomy and Authority in Online Tribes (O’Neil) Darnton, Robert DARPA (Defense Advanced Research Projects Agency) Darwin, Charles amateur scientists’ contributions barnacle studies Hunch.com and insight and leap of thought long-form thinking science and publishing Data accuracy of published data crowdsourcing scientific and medical information data commons evaluating metadata information and overaccumulation of scientific data scientific knowledge Data.gov Data-information-knowledge-wisdom (DIKW) hierarchy Davis, John Debian Decision-making advantages of networked corporate and government networked decision-making Debian community Dickover’s social solutions facing reality Wikipedia policy Defaults Democracy echo chambers hiding knowledge and increasing group polarization reason, truth, and knowledge Denney, Reuel Deolalikar, Vinay Derrida, Jacques Descartes, René Dialogue, exploring diversity through Dickens, Charles Dickover, Noel Diderot, Denis The Difference (Page) Discourses Diversity appropriate scoping decreasing intelligence echo chambers forking moderating negative effects of of expertise race and gender respectful conversations over DNA Dr.


pages: 247 words: 62,845

VoIP Telephony with Asterisk by Unknown

call centre, Debian, framing effect, packet switching, telemarketer

Chapter 5 - Install Linux and Asterisk Asterisk will run well with any stable Linux distribution. The bootable CD downloadable fromwww.mepis.org contains the Mepis distribution of Debian Linux. The Mepis distribution is pre-configured to make it easy to install Linux and Asterisk. You may choose to use a different distribution of Linux than Mepis. There are many excellent references available if you need to learn how to install or manage any Linux distribution including Debian versions. Booting from the Mepis CD on a PC provides immediate access to a working Linux system. Linux will boot and run from the CD without installing anything.

Execute this make command to create the modversion.h kernel header file. Zaptel requires this file be present. "make dep" The zaptel sources should compile now. Reporting Bugs If you find a bug with Asterisk, you should report it by going to bugs.digium.com. This is a great service to the Asterisk community. A Custom Debian Kernel If you have installed a custom Debian kernel, the kernel Makefile in /usr/src/linux/ Makefile may not have the correctEXTRAVERSION variable. If matching the Kernel, as described in the section directly above, doesn't work. examine the Makefile. Make sure the version information in the Makefile matches the information returned by the comman #uname - If needed, edit the Makefile and try compiling again.

Hardware Interfaces Asterisk supports a variety of hardware interfaces for connecting telephony channels through a Linux computer. Zaptel Pseudo TDM Interfaces All Digium Hardware shares a common driver suite and uses a common interface library. Digium drivers are based on the Zapata Telephony Driver suite. This set of drivers is often called"Zaptel." Zapata is an open source project available athttp://packages.qa. debian.org/z/zaptel.html. The zaptel telephony infrastructure was jointly developed by Mark Spencer of Linux Support Services, Inc. an Jim Dixon of Zapata Telephony. Even if no interface cards are installed, you must install at least one Zaptel driver to enable conferencing. Asterisk does not require a sound board to operate unless you are using a soft phone on the computer running Asterisk.


pages: 241 words: 43,073

Puppet 3 Beginner's Guide by John Arundel

cloud computing, Debian, DevOps, job automation, job satisfaction, Lao Tzu, Larry Wall, Network effects, SpamAssassin

However, if you need to choose between several alternatives, it becomes awkward to write: if $::operatingsystem == 'Ubuntu' { include os_specific::ubuntu } elsif $::operatingsystem == 'Debian' { include os_specific::debian } elsif $::operatingsystem == 'RedHat' { include os_specific::redhat } else { include os_specific::default } For situations like this, Puppet provides the case statement: case $::operatingsystem { 'Ubuntu': { include os_specific::ubuntu } 'Debian': { include os_specific::debian } 'RedHat': { include os_specific::redhat } default : { include os_specific::default } } case takes an expression and tries to match it against a list of values (the cases).

About the Reviewers Ugo Bellavance has done most of his studies in e-commerce, started using Linux at Red Hat 5.2, got Linux training from Savoir-Faire-Linux at the age of 20, and got his RHCE on RHEL 6 in 2011. He's been a consultant in the past, but he's now an employee for a provincial government agency for which he manages the infrastructure (servers, workstations, network, security, virtualization, SAN/NAS, PBX). He's a big fan of open-source software and its underlying philosophy. He's worked with Debian, Ubuntu, and SUSE, but what he knows best is RHEL-based distributions. He's known for his contributions to the MailScanner project (he has been a technical reviewer for the MailScanner book), but he also gave time to different open-source projects, such as mondorescue, OTRS, SpamAssassin, pfSense, and a few others.

Here's how to install the package for Ubuntu 12.04 Precise: Download and install the Puppet Labs repo package as follows: ubuntu@demo:~$ wget http://apt.puppetlabs.com/puppetlabs-release-precise.deb --2013-01-09 13:38:24-- http://apt.puppetlabs.com/puppetlabs-release-precise.deb Resolving apt.puppetlabs.com (apt.puppetlabs.com)... 96.126.116.126, 2600:3c00::f03c:91ff:fe93:711a Connecting to apt.puppetlabs.com (apt.puppetlabs.com)|96.126.116.126|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 3392 (3.3K) [application/x-debian-package] Saving to: `puppetlabs-release-precise.deb' 100%[======================================>] 3,392 --.-K/s in 0.001s 2013-01-09 13:38:25 (2.54 MB/s) - `puppetlabs-release-precise.deb' saved [3392/3392] ubuntu@demo:~$ sudo dpkg -i puppetlabs-release-precise.deb Selecting previously unselected package puppetlabs-release.


pages: 77 words: 14,578

Manage Partitions With GParted (How-To) by Unknown

Debian, en.wikipedia.org, Ruby on Rails

Following is a example listing of an iPod partition table with a type 0 partition: user@debian:~$ sudo fdisk -l /dev/sde Note: sector size is 2048 (not 512) Disk /dev/sde: 8120 MB, 8120172544 bytes 250 heads, 62 sectors/track, 255 cylinders Units = cylinders of 15500 * 2048 = 31744000 bytes Device Boot Start End Blocks Id System /dev/sde1 1 3 92876 0 Empty /dev/sde2 4 255 7812000 b W95 FAT32 user@debian:~$ Assuming the iPod is recognized as device /dev/sde, the steps to use fdisk to change the partition id type are as follows: user@debian:~$ sudo fdisk /dev/sde Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 83 Changed system type of partition 1 to 83 (Linux) Command (m for help): w The partition table has been altered!

About the Reviewers Andrew Bradford has been a developer on the Cross Linux From Scratch (http://cross-lfs.org) project and an active participant in the BeagleBoard.org community (http://beagleboard.org) since 2010. He's been using Linux since RedHat 7 and since then, except for 1 year with a Mac, has been running Linux on the desktop quite successfully. His current interests involve Debian, embedded Linux, flash memories, and Ruby on Rails. I'd like to thank my wife, Meghan, and my daughter, Erin. They're both amazing and they inspire me every day. Peter Wu is a Software Science student at the University of Technology at Eindhoven (The Netherlands). He is an enthusiastic supporter of open source software, helping other users and contributing code.

Following is a example listing of an iPod partition table with a type 0 partition: user@debian:~$ sudo fdisk -l /dev/sde Note: sector size is 2048 (not 512) Disk /dev/sde: 8120 MB, 8120172544 bytes 250 heads, 62 sectors/track, 255 cylinders Units = cylinders of 15500 * 2048 = 31744000 bytes Device Boot Start End Blocks Id System /dev/sde1 1 3 92876 0 Empty /dev/sde2 4 255 7812000 b W95 FAT32 user@debian:~$ Assuming the iPod is recognized as device /dev/sde, the steps to use fdisk to change the partition id type are as follows: user@debian:~$ sudo fdisk /dev/sde Command (m for help): t Partition number (1-4): 1 Hex code (type L to list codes): 83 Changed system type of partition 1 to 83 (Linux) Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. user@debian:~$ Use similar steps, as shown above, to set the type back to 0 (zero), instead of 83. Tip If you edit your iPod partitions, your iPod might cease to function as the manufacturer originally intended. Adding space to virtual machines Oftentimes, virtual machine (VM) software provides the ability to add more space to virtual disk drives. However, adding more space does not increase the size of the virtual disk drive partitions.


pages: 197 words: 35,256

NumPy Cookbook by Ivan Idris

business intelligence, cloud computing, computer vision, Debian, en.wikipedia.org, Eratosthenes, mandelbrot fractal, p-value, sorting algorithm, statistical model, transaction costs, web application

If you run into problems, you can ask for help at: The #scipy IRC channel of freenode, or The SciPy mailing lists at http://www.scipy.org/Mailing_Lists Installing PIL PIL, the Python imaging library, is a prerequisite for the image processing recipes in this chapter. How to do it... Let's see how to install PIL. Installing PIL on Windows: Install using the Windows executable from the PIL website http://www.pythonware.com/products/pil/. Installing on Debian or Ubuntu: On Debian or Ubuntu, install PIL using the following command: sudo apt-get install python-imaging Installing with easy_install or pip: At the time of writing this book, it appeared that the package managers of Red Hat, Fedora, and CentOS did not have direct support for PIL. Therefore, please follow this step if you are using one of these Linux distributions.Install with either of the following commands: easy_install PIL sudo pip install PIL Resizing images In this recipe, we will load a sample image of Lena, which is available in the SciPy distribution, into an array.

Xcode can be found on the OSX DVDs that came with your Mac or App Store. Follow the easy_install/pip instructions, or the installing from source instructions provided later in this section. Installing IPython On Linux: Because there are so many Linux distributions, this section will not be exhaustive.On Debian, type the following command: su – aptitude install ipython python-setuptools On Fedora, the magic command is as follows: su – yum install ipython python-setuptools-devel The following command will install IPython on Gentoo: su – emerge ipython For Ubuntu, the install command is as follows: sudo apt-get install ipython python-setuptools Installing IPython with easy_install or pip: Install IPython and all the dependencies required for the recipes in this chapter with easy_install, using the following command: easy_install ipython pyzmq tornado readline Alternatively, you can first install pip with easy_install, by typing the following command in your terminal: easy_install pip After that, install IPython using pip, with the following command: sudo pip install ipython pyzmq tornado readline Installing from source: If you want to use the bleeding edge development version, then installing from source is for you.Download the latest tarball from https://github.com/ipython/ipython/downloads.

Installing Matplotlib on Windows: Install with the Enthought distribution (http://www.enthought.com/products/epd.php).It might be necessary to put the msvcp71.dll file in your C:\Windows\system32 directory. You can get it from http://www.dll-files.com/dllindex/dll-files.shtml?msvcp71. Installing Matplotlib on Linux: Let's see how Matplotlib can be installed in the various distributions of Linux:The install command on Debian and Ubuntu is as follows: sudo apt-get install python-matplotlib The install command on Fedora/Redhat is as follows: su - yum install python-matplotlib Installing from source: Download the latest source from the tar.gz release at Sourceforge (http://sourceforge.net/projects/matplotlib/files/) or from the Git repository using the following command: git clone git://github.com/matplotlib/matplotlib.git Once it has been downloaded, build and install as usual with the following command: cd matplotlib python setup.py install Installing Matplotlib on Mac: Get the latest DMG file from http://sourceforge.net/projects/matplotlib/files/matplotlib/, and install it.


pages: 372 words: 67,140

Jenkins Continuous Integration Cookbook by Alan Berg

anti-pattern, continuous integration, Debian, don't repeat yourself, en.wikipedia.org, Firefox, job automation, performance metric, revision control, web application

This stable release version is older than the newest version and thus misses out on some of the newer features. You can download it from: http://mirrors.jenkins-ci.org/war-stable/latest/jenkins.war. This recipe details the use of VirtualBox (http://www.virtualbox.org/), an open source virtual image player with a guest Debian OS image. The virtual image will mount a directory on the host server. You will then point Jenkins to the mounted directory. When the guest OS is restarted, it will automatically run against the shared directory. Throughout the rest of this book, recipes will be cited using Ubuntu as the example OS.

Browse and select the unpacked VDI image by clicking on the folder icon. Press the Create button. Start the virtual image by clicking on the Start icon. Log in to the guest OS with username and password as Ubuntu reverse. Change the password of user Ubuntu from a terminal.passwd Install the Jenkins repository, as explained at http://pkg.jenkins-ci.org/debian/. Update the OS in case of security patches (this may take some time depending on bandwidth):apt-get update apt-get upgrade Install the kernel dkms module.sudo apt-get install dkms Install Jenkins.sudo apt-get install jenkins Install the kernel modules for VirtualBox./etc/init.d/vboxadd setup Select Install Guest additions using the Devices menu option.

Please download the newest version of w3af from SourceForge (http://w3af.sourceforge.net/), and also download and read the OWASP top 10 list of well-known attacks at https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project. w3af has both a Windows and *NIX installation package; use the OS install of choice. Warning: The Debian package for w3af is older and more unstable than the SourceForge package for Linux. Therefore, please do not use the apt-get and yum methods of installation, but rather use the downloaded package from SourceForge. How to do it... Run w3af. Under the Profiles tab, select OWASP_TOP10. Under the Target: address window, fill in http://localhost:8080/, changing the hostname to suit your environment.


pages: 312 words: 93,504

Common Knowledge?: An Ethnography of Wikipedia by Dariusz Jemielniak

Andrew Keen, barriers to entry, Benevolent Dictator For Life (BDFL), citation needed, collaborative consumption, collaborative editing, conceptual framework, continuous integration, crowdsourcing, Debian, deskilling, digital Maoism, disinformation, en.wikipedia.org, Filter Bubble, Google Glasses, Guido van Rossum, Hacker Ethic, hive mind, Internet Archive, invisible hand, Jaron Lanier, jimmy wales, job satisfaction, Julian Assange, knowledge economy, knowledge worker, Menlo Park, moral hazard, online collectivism, pirate software, RFC: Request For Comment, Richard Stallman, selection bias, Silicon Valley, Skype, slashdot, social software, Stewart Brand, The Hackers Conference, The Nature of the Firm, the strength of weak ties, The Wisdom of Crowds, transaction costs, WikiLeaks, wikimedia commons, Yochai Benkler, zero-sum game

(Garzarelli & Galoppini, 2003, p. 18) Later, once the project matures, it may turn to more formal but still community-driven institutions, such as a constitution and elected temporary leaders in the Debian case (Sadowski, Sadowski-Rasters, & Duysters, 2008). The creation of more formal democratic procedures may be a result of the project’s growth but also of the community’s discontent with an authoritarian approach of ad hoc leaders. In fact, the creation of a constitution and formalized governance for the Debian project was a result of one attempt at authoritarian leadership (Mateos-Garcia & Steinmueller, 2006), which faced strong ideological opposition from a significant part of the community.

Retrieved from http://nonbovine-ruminations.blogspot.com/2007/12/other-shoe -drops.html Mateos-Garcia, J., & Steinmueller, W. (2006, October 26–27). Open, but how much? Growth, conflict and institutional evolution in Wikipedia and Debian. Paper presented at the DIME International Conference on Communities of Practice, Durham, England. Retrieved from http://www.dime-eu.org/files/active/1/cops2006_Mateos -Garcia_Steinmueller.pdf Mateos-Garcia, J., & Steinmueller, W. E. (2008). The institutions of open source software: Examining the Debian community. Information Economics and Policy, 20(4), 333–344. Matzat, U. (2010). Reducing problems of sociability in online communities: Integrating online communication with offline interaction.

In the first case, the open-collaboration communities often start with the servant-leadership model (Taylor, Martin, Hutchinson, & Jinks, 2007), which requires the founder to take on a supportive, subservient, and noninterventionist role. In the case of such virtual self-managed teams, leadership is fluid and constantly emergent (Heckman, Crowston, & Misiolek, 2007). A study of the Debian (a free and open-source distribution of the Linux operating system) community, one of the often-researched examples from the F/LOSS movement, shows that in the beginning, charismatic authority mostly derives from earned respect often proven by leading a big, successful project. As a matter of fact, charismatic authority may be, in some circumstances, more “efficient” than authority deriving its legitimacy from well-established rules.


pages: 1,202 words: 144,667

The Linux kernel primer: a top-down approach for x86 and PowerPC architectures by Claudia Salzberg Rodriguez, Gordon Fischer, Steven Smolski

Debian, domain-specific language, en.wikipedia.org, G4S, recommendation engine, Richard Stallman

Referring to the GPL, the license gives the freedom to charge for added value to the open-source software, such as these services provided in the code's redistribution. 1.4.1. Debian Debian[2] is a GNU/Linux operating system. Like other distributions, the majority of applications and tools come from GNU software and the Linux kernel. Debian has one of the better package-management systems, apt (advanced packaging tool). The major drawback of Debian is in the initial installation procedure, which seems to cause confusion among novice Linux users. Debian is not tied to a corporation and is developed by a community of volunteers. [2] http://www.debian.org. 1.4.2. Red Hat/Fedora Red Hat[3] (the company) is a major player in the open-source software-development arena.

Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] $(Q) variable /dev directory /etc/fstab files _ _volatile__modifer 2nd 3rd 4th 5th 6th __builtin_expect() function __free_page() function __get_dma_pages() function __get_free_page() function __init macro 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] ABI (Application Binary Interface) absolute pathnames 2nd Accelerated Graphics Port (AGP) access devices 2nd DMA 2nd rights 2nd 3rd 4th 5th actiev_mm field (task_struct structure) activated field (task_struct structure) active_list field (memory zones) add_wait_queue() function add_wait_queue_exclusive() function adding caches 2nd 3rd 4th 5th 6th 7th 8th 9th code for system calls 2nd 3rd to wait queues address space fields task_struct structure 2nd address_space structure 2nd 3rd addresses intervals linear linear spaces memory management 2nd 3rd logical memory mm_struct 2nd 3rd 4th physical translation 2nd i386 Intel-based memory management virtual vm_area_struct 2nd 3rd 4th addressing devices Advanced Programmable Interrupt Controller (APIC) agetty programs AGP (Accelerated Graphics Port) algorithms big-o notations elevator aligning caches all_unreclaimable field (memory zones) alloc_page() function alloc_pages() function allocating memory kmalloc() function 2nd kmem_cache_alloc() function allocators slabs global variables 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th anticipatory I/O schedulers anticipatory I/O scheduling APIC (Advanced Programmable Interrupt Controller) Application Binary Interface (ABI) Application Specific Integrated Circuit (ASIC) applications distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th parallel ports ar command 2nd arch/ppc/ source code listings architecture assembly language example PowerPC 2nd 3rd 4th x86 2nd 3rd Big Endian/Little Endian CISC IHA inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 PowerPC Linux Power UMA architetcure dependence RISC architetcure-dependent source code 2nd architetcure-independent source code 2nd areas memory 2nd arithmetic instructions (x86) array field (task_struct structure) arrays priority ASIC (Application Specific Integrated Circuit) asm keyword asmlinkage assemblers assembly asm keyword inline 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th clobbered registers constraints input operands output operands parameter numbering assembly languages example of PowerPC 2nd 3rd 4th x86 2nd 3rd PowerPC 2nd 3rd 4th x86 2nd 3rd 4th asynchronous events asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th asynchronous I/O operations atomic flags [See also flags] attributes fields task_struct structure 2nd files Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Basic Input Output System (BIOS) BAT (Block Address Translation) Bell Laboratories Big Kernel Lock (BKL) Big-Endian big-o notations binary trees 2nd binfmt field (task_struct structure) BIOS (Basic Input Output System) BKL (Big Kernel Lock) Block Address Translation Block Address Translation (BAT) block devices block_device_operations structure blocked state blocked to ready transition state blocks devices 2nd disks blr (Branch to Link Register) boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd bottom-half interrupt handler methods bouncing Bourne shells branch instructions (PowerPC) Branch to Link Register (blr) bridges I/O 2nd 3rd buddy systems (memory management) 2nd 3rd 4th 5th buffer_head structure buffer_init() function calling 2nd buffers caches TLBs build_all_zonelists() function calling 2nd building kernels compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers source build systems_ 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th toolchains 2nd parallel port drivers 2nd 3rd 4th 5th 6th 7th 8th busses I/O 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] C language usage asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd cache_cache global variable cache_chain global variable cache_chain_sem global variable cache_grow() function 2nd 3rd cache_sizes descriptors caches aligning creating 2nd 3rd 4th 5th 6th 7th 8th 9th descriptors 2nd 3rd 4th destroying 2nd kmem_cache page pages address_space structures 2nd 3rd filesystems 2nd 3rd 4th tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th types of cahces buffers calaculations dynamic priority calibrate_delay() function calling 2nd 3rd call system VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th calling buffer_init() function 2nd build_all_zonelists() function 2nd calibrate_delay() function 2nd 3rd console_init() function 2nd init_IRQ() function 2nd 3rd late_time_init() function local_irq_enable() function lock_kernel() function 2nd mem_init() function 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function 2nd 3rd 4th page_alloc_init() function 2nd page_writeback_init() function 2nd 3rd parse_args() function 2nd 3rd pgtable_cache_init() function 2nd printk() function proc_root_init() function 2nd 3rd profile_init() function radix_tree_init() function rcu_init() function rest_init() function 2nd sched_init() function 2nd 3rd security_scaffolding_startup() function setup_arch() function 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function 2nd 3rd signals_init() function 2nd smp_prepare_boot_cpu() function 2nd softirq_init() function time_init() function 2nd trap_init() function vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th calls [See system calls] process creation system 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd capabilties fields task_struct structure 2nd characters devices 2nd 3rd 4th child processes 2nd children field (task_struct structure) chipsets CHRP (Common Hardware Reference Platform) CISC (Complex Instruction Set Computing) architecture clobbered registers 2nd clocks devices real-time 2nd 3rd 4th 5th 6th 7th 8th 9th clone() function 2nd 3rd close() function 2nd 3rd 4th 5th 6th 7th CML2 code inline assembly 2nd _ _volatile__ modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constriants input operands output operands parameter numbering code generation phases coloring (slabs) comm field (task_struct structure) commands ar 2nd hexdump objcopy Common Hardware Reference Platform (CHRP) compilers 2nd asmlinkage cross 2nd Complex Instruction Set Computing (CISC) architecture components MBR compound pages computer programs [See also applications] condition register (CR) configuration kernel configuration tool configuring caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th initrd console_init() function calling 2nd const keyword 2nd constants UL marking constraints context context of execution context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th control of files control bits control information, transmitting controllers DMA 2nd interrupts controlling terminal count field (flags) count register (CTR) CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th cpus_allowed field (task_struct structure) CR (condition register) create_process program 2nd 3rd credentials fields task_struct structure 2nd cross compilers 2nd cs_cachep field (cache descriptors) cs_dmacachep field (cache descriptors) cs_size field (cache desciptors) ctor field (cache descriptors) CTR (count register) current task structures current variable current working directories Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Data BAT (DBAT) data instructions (x86) data relocate (DR) data segments data structures VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd DBAT (Data BAT) deactivating tasks dead processes deadline I/O schedulers deadlock Debian debugging device drivers 2nd DECLARE_WORK() macro declaring IOCTL numbers 2nd 3rd 4th decrementers defining execution contexts defunct processes dentry structures 2nd 3rd 4th 5th dependence architecture descriptors cache_sizes caches 2nd 3rd 4th files kmem_cache memory zones 2nd 3rd processes 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th descriptors (files) destroying caches 2nd devfs (Linux Device Filesystem) devices access 2nd addressing block characters 2nd drivers 2nd creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd types of 2nd 3rd 4th files 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals models sysfs 2nd 3rd 4th pseudo Direct Memory Access (DMA) 2nd direct store segments directories 2nd /dev current working files 2nd 3rd fs/ home init/ kernel/ mm/ Page Global Directory working dirty pages, flushing 2nd disks blocks formatting initrd 2nd partitions 2nd distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog DMA (Direct Memory Access) 2nd dmesg tool do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th do_page_fault() function DR (data relocate) driver tables drivers cource code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd devices 2nd parallel ports building 2nd 3rd 4th 5th 6th 7th 8th types of 2nd 3rd 4th wait queues 2nd 3rd 4th 5th work queues 2nd 3rd dtor field (cache descriptors) dumb terminals dynamic libraries dynamic priority calculations Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] EA (effective address) effective address (EA) effective group IDs effective user IDs elevator algorithms ELF (Executable and Linking Format) object files 2nd 3rd 4th 5th 6th 7th 8th 9th euid field (task_struct structure) events wait_event*() interfaces 2nd EXCEPTION() macro exceptions asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th page faults PowerPC page faults exec() system calls Executable and Linking Format (ELF) object files 2nd 3rd 4th 5th 6th 7th 8th 9th executing processes adding to wait queues asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th clone() function 2nd 3rd creating 2nd do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd lifespans 2nd 3rd 4th 5th 6th 7th sys_exit() function 2nd termination tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th vfork() funciton 2nd wait queues 2nd wait() function 2nd 3rd 4th 5th 6th wait_event*() interfaces 2nd waking up 2nd 3rd 4th schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th execution context of processes create_process program 2nd 3rd execution contexts, defining exit_code field (task_struct structure) exit_signal field (task_struct structure) exploration tools (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd EXPORT_SYMBOL macro exporting symbols extensions filenames external fragmentation external interrupts Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] faults (pages) 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th fdatasync system calls Fedora 2nd field handlers fields flags 2nd memory zones 2nd 3rd process descriptor address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th superblock structures 2nd 3rd operations 2nd 3rd task_struct structure address space 2nd attribute 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th file descriptors file structures VFS 2nd 3rd filenames extensions files 2nd /etc/fstab attributes control descriptors devices 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals directories 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th filenames kernels 2nd protection 2nd 3rd 4th 5th metadata modes operations parameters offsetting pathnames 2nd processes close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th regular 2nd types 2nd types of files field (task_struct structure) files_struct structure 2nd 3rd 4th filesystems 2nd devfs fields task_struct structure 2nd handlers hierarchies implementing kernels 2nd layers 2nd 3rd 4th 5th 6th 7th navigating 2nd overview 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th performance types of VFS VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th first_time_slice field (task_struct structure) fixed-point instructions (PowerPC) flags memory management 2nd flags field flags field (cache descriptors) flags field (task_struct structure) Flash flips 2nd 3rd floating-point instructions (PowerPC) flops 2nd 3rd flushing dirty pages 2nd for_each_zone() function fork() function 2nd fork() system calls forked processes formatting caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th disks fragmentation external frames pages memory management 2nd 3rd 4th 5th 6th 7th 8th free field (slab descriptors) free software 2nd Free Software Foundation (FSF) free_area field ( memory zones) free_page() function free_pages field (memory zones) front-side busses fs field (task_struct structure) fs/ directory fs_struct structure FSF (Free Software Foundation) fsgid field (task_struct structure) fsuid field (task_struct structure) fsync system calls funcitons nice() function is_highmem() kmalloc() 2nd kmem_cache_alloc() functions __builtin_expect() __free_page() __get_dma_pages() __get_free_page() add_wait_queue() add_wait_queue_exclusive() alloc_page() alloc_pages() cache_grow() 2nd 3rd close() 2nd 3rd 4th 5th 6th 7th context_switch() 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th do_exit() 2nd 3rd 4th do_page_fault() for_each_zone() free_page() helper memory zones 2nd is_normal() kmem_cache_destroy() 2nd likely() 2nd 3rd list_del() nice() open() 2nd 3rd 4th 5th 6th printk() process creation 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd releases page frames requests page frames 2nd 3rd sched_fork() 2nd 3rd 4th 5th 6th 7th 8th scheduler_tick() start_kernel() 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th switch() switch_to() 2nd synchronous sys_exit() 2nd unlikely() 2nd 3rd wait() 2nd 3rd 4th 5th 6th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] GEC (General Electric Company) General Electric Company (GEC) general purpose caches general-purpose registers (GPRs) generic block device layers 2nd generic block driver layers 2nd 3rd Gentoo 2nd geometry of hard drives gfp_mask integer value gfpflags field (cache descriptors) gfporder field (cache descriptors) GID (group ID) 2nd global variables local list references 2nd slab allocators 2nd 3rd GMCH (Graphics and Memory Controller Hub) GNU General Public License (GPL) GPL (GNU General Public License) GPRs (general-purpose registers) Grand Unified Bootleader (GRUB) 2nd 3rd 4th Graphics and Memory Controller Hub (GMCH) group ID (GID) 2nd group_info field (task_struct structure) 2nd group_leader field (task_struct structure) GRUB (Grand Unified Botloader) 2nd 3rd 4th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] handlers filesystems page faults 2nd 3rd 4th 5th 6th 7th hard drives geometry of hard links hardware I/O 2nd 3rd parallel ports headers ELF 2nd tables programs 2nd sections 2nd heads heaps helper functions memory zones 2nd Hertz (HZ) Hertz, Heinrich hexdump command hierarchies filesystems High Performance Event Timer (HPET) history of UNIX 2nd home directories host systems HPET (High Performance Event Timer) hubs hw_interrupt_type structure hw_irq_controller structure HyperTransport technology HZ (Hertz) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] I/O asynchronous operations devices block devices 2nd characters 2nd clocks DMA 2nd files 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals hardware 2nd 3rd I/O (input/output) I/O Controller Hub (ICH) i386 Intel-based memeory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th IBAT (Instruction BAT) ICH (I/O Controller Hub) IDT (Interrupt Descriptor Table) 2nd IHA (Intel Hub Architecture) images kernels building 2nd 3rd implementing filesystems implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd inactive_list field (emory zones) inb (read in a byte) index nodes init process 2nd 3rd init threads (Process 1) 2nd 3rd 4th 5th 6th init/ directory init_IRQ() function calling 2nd 3rd initial RAM disk (initrd) 2nd initializing architecture-dependent memory i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 irqaction struct kernels systems initrd configuring initrd (initial RAM disk) 2nd inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering inline keyword inode strcutures inode structures 2nd 3rd 4th inodes input operands input/output [See I/O] Instruction BAT (IBAT) instruction relocate (IR) Intel Hub Architecture (IHA) interactive processes interactive tasks interactive_credit field (task_struct structure) interfaces ABI I/O 2nd 3rd users wait_event*() 2nd Interrupt Descriptor Table (IDT) 2nd interrupt-acknowledge cycle interrupts 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th context controllers polling and 2nd 3rd 4th 5th intervals addresses inuse field (slab descriptors) IOCTL numbers, declaring 2nd 3rd 4th IPC (Interprocess Communication) IR (instruction relocate) IRQ structures irq_desc_t structure irqaction struct irqaction structs, initializing IS_ERR macro is_highmem() function is_normal() function Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] jiffies 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] kernel messages /var/log/messages dmesg printk() function kernel configuration tool kernel mode kernel/ directory kernels architecture-dependent memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd create_process program 2nd 3rd datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees 2nd 3rd 4th 5th distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog explicit kernel preemption exploration tools ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd implicit kernel preemption 2nd 3rd 4th init threads (Process 1) 2nd 3rd 4th 5th 6th initialization memory 2nd organization overview of access rights 2nd 3rd 4th 5th device drivers 2nd files/filesystems 2nd processes 2nd 3rd schedulers system calls 2nd UID 2nd user interfaces release information 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd space start_kernel() function 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th toolchains 2nd compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers keywords asm const 2nd inline volatile 2nd kmalloc() function 2nd kmem_cache descriptors kmem_cache_alloc() function kmem_cache_destroy() function 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] languages assembly example of 2nd 3rd 4th 5th 6th 7th 8th PowerPC 2nd 3rd 4th x86 2nd 3rd 4th C asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd late_time_init() function calling latency layers filesystems 2nd 3rd 4th 5th 6th 7th generic block device 2nd generic block drivers 2nd 3rd layouts source code li RT, RS, SI (Load Immediate) libraries licenses GPL lifecycles slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th lifespans of process descriptors 2nd 3rd processes states 2nd transitions (states) 2nd 3rd 4th 5th 6th likely() function 2nd 3rd LILO (LInux LOader) 2nd limitations fields task_struct structure 2nd 3rd linear address spaces memory management 2nd 3rd linear addresses link editors link register (LR) linked lists 2nd 3rd 4th linkers links 2nd 3rd 4th Linux filesystems [See filesystems] makefiles 2nd 3rd process structures linear address spaces 2nd 3rd memory management 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page tables 2nd Linux Device Filesystem (devfs) LInux LOader (LILO) 2nd Linux Power list field (flags) list field (slab descriptors) list_del() function lists clobber linked 2nd 3rd 4th local references (global variables and) 2nd searching 2nd 3rd slab descriptors work queues lists field (cache descriptors) lists,next_reap lists.slabs_free lists.slabs_full lists.slabs_partial Little Endian Load Immediate (li_RT,_RS,_SI) Load Word and Zero (lwz_RT,_D(RA)) local list references 2nd local stacks asmlinkage local_irq_enable() function calling lock field (memory zones) lock_kernel() function calling 2nd locking spinlocks 2nd 3rd 4th 5th logical addresses logical disks login programs LR (link register) lru field (flags) lru_lock field (memory zones) ls /usr/src/linux/arch lwz RT, D(RA) (Load Word and Zero) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Machine State Register (MSR) macros __init 2nd DECLARE_WORK() EXCEPTION() EXPORT_SYMBOL IS_ERR PTR_ERR makefiles Linux 2nd 3rd sub-makefiles 2nd 3rd malloc_sizes[] global variable management memory 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd Mandriva mapping memory processes 2nd mappng field (flags) marking constants UL Master Boot Record (MBR) MBR (Master Boot Record) MCH (Memory Controller Hub) mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th memory addresses mm_struct 2nd 3rd 4th vm_area_struct 2nd 3rd 4th addressing architecture-dependent initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 areas 2nd buffer_head structures DMA 2nd initrd 2nd kernels 2nd kmalloc() function 2nd kmem_cache_alloc() function management 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd manager processes mapping 2nd regions users 2nd 3rd 4th virtual Memory Controller Hub (MCH) Memory Management Unit (MMU) memory-mapped I/O messages kernels /var/log/messages dmesg printk() function metadata files mingetty programs Minix MIT mm field (task_struct structure) mm utility mm/ directory mm_struct structure 2nd 3rd 4th MMU (Memory Management Unit) models devices sysfs and 2nd 3rd 4th modes files kernel sgid sticky suid user modifiers _ _volatile__ 2nd 3rd 4th 5th 6th modules source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th monolithic systems mount points mount systems MSR (Machine State Register) Multiboot Specification (GRUB) MULTiplexed Information and Computing Service (MULTICS) multiprogramming multiuser timesharing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] name field (cache descriptors) named pipes navigating filesystems 2nd networks devices next field (cache descriptors) nice() funciton nice() function nivcsw field (task_struct structure) no-op no-op I/O schedulers nodes index non-executable ELF file sections 2nd non-volatile storage Northbridge 2nd notations big-o notification parents 2nd 3rd 4th 5th 6th notifier chains num field (cache descriptors) numbering parameters numbers IOCTL delcaring 2nd 3rd 4th nvcsw field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] O(1) schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th tasks selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th objcopy command objdump utility 2nd object languages objects create_process program 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th file formats linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd objsize field (cache descriptors) OF (Open Firmware) 2nd offsetting descriptors offsetting file parameters Open Firmware (OF) 2nd Open Programmable Interrupt Controller (OpenPIC) open source software 2nd open() function 2nd 3rd 4th 5th 6th OpenPIC (Open Programmable Interrupt Controller) operating systems create_process program 2nd 3rd overview of 2nd operations asynchronous I/O devices 2nd files superblock structures 2nd 3rd optimizers optimizing filesystems organization of kernels outb (write out a byte) output operands overview of Linux Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] padding zones page caches address_space structures 2nd 3rd tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th Page Directory Entry (PDE) page faults page frames Page Global Directory Page Table Entry (PTE) 2nd page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd pages caches filesystems 2nd 3rd 4th compound dirty flushing 2nd faults memory management 2nd 3rd 4th 5th 6th 7th 8th 9th flags fields 2nd frames memory management 2nd 3rd 4th 5th 6th 7th 8th memory management 2nd 3rd tables memory management 2nd pages_high field (memory zones) pages_min, pages_low field (memory zones) pages_scanned, temp_priority field (memory zones) paging parallel port drivers, building 2nd 3rd 4th 5th 6th 7th 8th parameters asmlinkage files offsetting numbering parent field (task_struct structure) parent processes 2nd parents notification 2nd 3rd 4th 5th 6th parse_args() function calling 2nd 3rd partitions 2nd disks pathnames 2nd files 2nd paths requests memory management 2nd PCI busses PDE (Page Directory Entry) pdeath field (task_struct structure) performance filesystems pgtable_cache_init() function calling 2nd phases of compiling physical addresses PIC (Programmable Interrupt Controller) pid field (task_struct structure) PID process ID) pipes named PIT (Programmable Interval Time) pivoting the root plugging policy field (task_struct structure) polling and interrupts 2nd 3rd 4th 5th portability ports I/O 2nd 3rd parallel drivers building 2nd 3rd 4th 5th 6th 7th 8th PowerPC architecture-dependent memory intialization 2nd 3rd 4th 5th 6th 7th 8th 9th 10th assembly languages 2nd 3rd 4th example 2nd 3rd 4th bootloaders 2nd page fault exceptions x86 code convergence PowerPC architecture Linux Power PowerPC Reference Platform (PreP) PPC real-time clocks reading preemption tasks explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd PreP (PowerPC Reference Platform) prev_priority field (memory zones) principle of locality printk() function calling prio field (task_struct structure) priority dynamic calaculations processes priority arrays proc_root_init() function calling 2nd 3rd process 0 Process 0 process 1 Process 1 Process 1 (init threads) 2nd 3rd 4th 5th 6th process ID (PID) process status (ps) processes 2nd 3rd 4th asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th clone() function 2nd 3rd context create_process program 2nd 3rd creating 2nd 3rd dead descriptors 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th files close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th fork() function 2nd init interactive lifespans states 2nd Linux memory management 2nd 3rd 4th 5th 6th memory mapping 2nd priority running schedulers selecting tasks sleeping spawning termination do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th transitions states 2nd 3rd 4th 5th 6th types of vfork() function 2nd wait queues 2nd adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th zombie profile_init() function calling program header tables 2nd Programmable Interrupt Controller (PIC) Programmable Interval Time (PIT) programming filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th programs create_process 2nd 3rd protected mode (memory management) 2nd protection files 2nd 3rd 4th 5th ps (process status) pseudo devices PTE (Page Table Entry) 2nd PTR_ERR macro ptrace field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] queues request utilities requests 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th run system requests wait 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th work 2nd 3rd lists tasklets 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] radix_tree_init() function calling RAM initrd 2nd rcu_init() function calling readelf utility 2nd reading PPC real-time clocks real-time clocks x86 ready state ready to running state transition real addressing real group IDs real mode real user IDs real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th real_parent field (task_struct structure) receiving data from devices red black trees 2nd Red Hat 2nd Reduced Instruction Set Computing (RISC) architecture references local lists (global variables and) 2nd regions memory registers clobbered PowerPC segment SPRs regular files 2nd relationships fields task_struct structure 2nd makefiles 2nd 3rd relative pathnames 2nd release information (kernels) 2nd releases functions page frames relocatable object code relocation requests functions page frames 2nd 3rd paths memory management 2nd queue utilities queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system queues respawning programs rest_init() function calling 2nd rights access 2nd 3rd 4th 5th RISC (Reduced Instruction Set Computing) architecture Ritchie, Dennis rlim field (task_struct structure) root of users root threads rt_priority field (task_struct structure) rules schedulers run queues 2nd run_list field (task_struct structure) runnable states (processes) running processes running to blocked state transition running to ready state transition Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] s_mem field (slab descriptors) scanner phases sched_fork() function 2nd 3rd 4th 5th 6th 7th 8th sched_init() function calling 2nd 3rd scheduler_tick() function schedulers 2nd anticipatory creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th deadline I/O no-op I/O O(1) context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th rules scheduling fields task_struct structure 2nd 3rd 4th I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scripts SDR1 (Storage Description Register 1) searching datatypes 2nd 3rd sections header tables 2nd non-executable ELF files 2nd security_scaffolding_startup() function calling Segment Registers Segmented Address Translation segments data text selecting tasks schedulers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th semantic attributes semaphores 2nd 3rd 4th 5th setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd sgid field (task_struct structure) sgid mode shared libraries sibling field (task_struct structure) sibling processes signals_init() function calling 2nd SIGSTOP slabp_cache field (cache descriptors) slabs allocators global variables 2nd 3rd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th coloring sleep_avg field (task_struct structure) sleeping processes smp_prepare_boot_cpu() function calling 2nd sockets 2nd soft links softirq_init() function calling software [See applications] free/open source 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd source code system calls adding 2nd 3rd traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th writing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Southbridge 2nd space kernels users spaces addresses memory management 2nd 3rd virtual addresses spawning processes special purpose registers (SPRs) specialized caches spinlocks 2nd 3rd 4th 5th SPRs (special purpose registers) stacks asmlinkage standards start_kernel() function 2nd buffer_init() function calling 2nd build_all_zonelists() function calling 2nd calibrate_delay() function calling 2nd 3rd console_init() function calling 2nd init_IRQ() function calling 2nd 3rd late_time_init() function calling local_irq_enable() function calling lock_kernel() function calling 2nd mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd parse_args() function calling 2nd 3rd pgtable_cache_init() function calling 2nd printk() function calling proc_root_init() function calling 2nd 3rd profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function calling 2nd sched_init() function calling 2nd 3rd security_scaffolding_startup() function calling setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd signals_init() function calling 2nd smp_prepare_boot_cpu() function calling 2nd softirq_init() function calling time_init() function calling 2nd trap_init() function calling vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th state processes lifespans 2nd 3rd transitions 2nd 3rd 4th 5th 6th state field (task_struct structure) states ready static libraries static_prio field (task_struct structure) statically allocated major devices status processes sticky mode Storage Description Register 1 (SDR1) Store Word with Update (stwu_RS,_D(RA)) structures address_space 2nd 3rd block_device_operations buffer_head current task dentry 2nd 3rd 4th file VFS 2nd 3rd files_struct 2nd 3rd 4th fs_struct hw_interrupt_type hw_irq_controller inode 2nd 3rd 4th IRQ irq_desc_t mm_struct 2nd 3rd 4th processes (Linux) memory management 2nd 3rd 4th 5th 6th superblock 2nd 3rd operations 2nd 3rd task_struct 2nd 3rd address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th VFS 2nd 3rd 4th 5th 6th vm_area_struct 2nd 3rd 4th wait queues 2nd adding to struuctures data VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th stwu RS, D(RA) (Store Word with Update) sub-makefiles 2nd 3rd subdirectories architecture-independent suid field (task_struct structure) suid mode super_operations structure superblock structures 2nd 3rd 4th operations 2nd 3rd Superio chips superusers SUSE switch() function switch_to() function 2nd switching tasks explicit kernel preemption implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd symbol resolution symbolic links symbols exporting sync system calls synchronous functions synchronous interrupts syntactical rules sys_exit() function 2nd sysfs device models and 2nd 3rd 4th system calls 2nd 3rd 4th 5th 6th 7th clone() function 2nd 3rd code adding 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th vfork() function 2nd VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th system request queues system timers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th systems initializing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] tables drivers headers programs 2nd sections 2nd pages memory management 2nd Tanenbaum, Andrew target system TASK_INTERRUPTIBLE state task_list TASK_RUNNING state TASK_STOPPED state task_struct structure 2nd 3rd fields address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th TASK_UNINTERRUPTIBLE state TASK_ZOMBIE state tasklets work queues and 2nd 3rd tasks current task structure deactivating interactive preemption explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th terminals devices termination processes do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th text segments the contextual analysis phases Thompson, Ken threads init (Process 1) 2nd 3rd 4th 5th 6th time_init() function calling 2nd time_slice field (task_struct structure) timers real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th timers (system) 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th timesharing users timeslices 2nd 3rd timestamp field (task_struct structure) timestamsps schedulers TLBs (Translation Lookaside Buffers) toolchains 2nd compilers cross 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers tools distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog dmesg exploration (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd kernel configuration top-half interrupt handler methods Torvalds, Linus tracing page caches 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th tracking processes 2nd 3rd 4th 5th 6th 7th 8th 9th 10th tracks 2nd transitions prcess state process state 2nd 3rd 4th 5th 6th translation addresses i386 Intel-based PPC Translation Lookaside Buffers (TLBs) transmitting control information trap_init() function calling traps traversing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th trees binary 2nd red black 2nd troubleshooting device drivers debugging 2nd filesystems optimizing types of drivers 2nd 3rd 4th of files 2nd 3rd of filesystems of interrupt handlers Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] UID (user ID) 2nd UL (unsigned long) UMA (Universal Motherboard Architecture) Universal Motherboard Architecture (UMA) UNIX history of 2nd unlikely() function 2nd 3rd unlpugging unsigned long (UL) user ID (UID) 2nd user mode users implicit user preemption 2nd interfaces space superusers utilities request queues Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] VA (virtual address) values flags variables $(Q) variable current global local list references 2nd slab allocators 2nd 3rd HZ vectors versions kernels release information 2nd vfork() function 2nd VFS structures 2nd 3rd 4th 5th 6th system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th VFS (virtual filesystem) vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th virtual address (VA) virtual addresses virtual addressing virtual field (flags) virtual filesystem (VFS) virtual filesystems 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th virtual memory virtual page number (VPN) virtual segment ID (VSID) virtual terminals vm_area_struct structure 2nd 3rd 4th volatile keyword 2nd VPN (virtual page number) VSID (virtual segment ID) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] wait queues 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th wait() function 2nd 3rd 4th 5th 6th wait() system calls wait_event*() interfaces 2nd wait_table, wait_table_size field (memory zones) wait_table_bits field (memory zones) waking up wait queues 2nd 3rd 4th window managers distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog wireless LAN [See WLAN] WLAN (wireless LAN) work queues 2nd 3rd lists tasklets 2nd 3rd working directories writing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] x86 assembly languages 2nd 3rd 4th example 2nd 3rd PowerPC code convergence real-time clocks reading x86 interrupt flow x86 interrupt vector tables Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Yaboot bootloaders 2nd Yellow Dog yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] zombie processes 2nd zombies zones memory management 2nd 3rd padding Table of Contents Chapter 1.

Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] $(Q) variable /dev directory /etc/fstab files _ _volatile__modifer 2nd 3rd 4th 5th 6th __builtin_expect() function __free_page() function __get_dma_pages() function __get_free_page() function __init macro 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] ABI (Application Binary Interface) absolute pathnames 2nd Accelerated Graphics Port (AGP) access devices 2nd DMA 2nd rights 2nd 3rd 4th 5th actiev_mm field (task_struct structure) activated field (task_struct structure) active_list field (memory zones) add_wait_queue() function add_wait_queue_exclusive() function adding caches 2nd 3rd 4th 5th 6th 7th 8th 9th code for system calls 2nd 3rd to wait queues address space fields task_struct structure 2nd address_space structure 2nd 3rd addresses intervals linear linear spaces memory management 2nd 3rd logical memory mm_struct 2nd 3rd 4th physical translation 2nd i386 Intel-based memory management virtual vm_area_struct 2nd 3rd 4th addressing devices Advanced Programmable Interrupt Controller (APIC) agetty programs AGP (Accelerated Graphics Port) algorithms big-o notations elevator aligning caches all_unreclaimable field (memory zones) alloc_page() function alloc_pages() function allocating memory kmalloc() function 2nd kmem_cache_alloc() function allocators slabs global variables 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th anticipatory I/O schedulers anticipatory I/O scheduling APIC (Advanced Programmable Interrupt Controller) Application Binary Interface (ABI) Application Specific Integrated Circuit (ASIC) applications distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th parallel ports ar command 2nd arch/ppc/ source code listings architecture assembly language example PowerPC 2nd 3rd 4th x86 2nd 3rd Big Endian/Little Endian CISC IHA inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 PowerPC Linux Power UMA architetcure dependence RISC architetcure-dependent source code 2nd architetcure-independent source code 2nd areas memory 2nd arithmetic instructions (x86) array field (task_struct structure) arrays priority ASIC (Application Specific Integrated Circuit) asm keyword asmlinkage assemblers assembly asm keyword inline 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th clobbered registers constraints input operands output operands parameter numbering assembly languages example of PowerPC 2nd 3rd 4th x86 2nd 3rd PowerPC 2nd 3rd 4th x86 2nd 3rd 4th asynchronous events asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th asynchronous I/O operations atomic flags [See also flags] attributes fields task_struct structure 2nd files Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Basic Input Output System (BIOS) BAT (Block Address Translation) Bell Laboratories Big Kernel Lock (BKL) Big-Endian big-o notations binary trees 2nd binfmt field (task_struct structure) BIOS (Basic Input Output System) BKL (Big Kernel Lock) Block Address Translation Block Address Translation (BAT) block devices block_device_operations structure blocked state blocked to ready transition state blocks devices 2nd disks blr (Branch to Link Register) boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd bottom-half interrupt handler methods bouncing Bourne shells branch instructions (PowerPC) Branch to Link Register (blr) bridges I/O 2nd 3rd buddy systems (memory management) 2nd 3rd 4th 5th buffer_head structure buffer_init() function calling 2nd buffers caches TLBs build_all_zonelists() function calling 2nd building kernels compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers source build systems_ 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th toolchains 2nd parallel port drivers 2nd 3rd 4th 5th 6th 7th 8th busses I/O 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] C language usage asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd cache_cache global variable cache_chain global variable cache_chain_sem global variable cache_grow() function 2nd 3rd cache_sizes descriptors caches aligning creating 2nd 3rd 4th 5th 6th 7th 8th 9th descriptors 2nd 3rd 4th destroying 2nd kmem_cache page pages address_space structures 2nd 3rd filesystems 2nd 3rd 4th tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th types of cahces buffers calaculations dynamic priority calibrate_delay() function calling 2nd 3rd call system VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th calling buffer_init() function 2nd build_all_zonelists() function 2nd calibrate_delay() function 2nd 3rd console_init() function 2nd init_IRQ() function 2nd 3rd late_time_init() function local_irq_enable() function lock_kernel() function 2nd mem_init() function 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function 2nd 3rd 4th page_alloc_init() function 2nd page_writeback_init() function 2nd 3rd parse_args() function 2nd 3rd pgtable_cache_init() function 2nd printk() function proc_root_init() function 2nd 3rd profile_init() function radix_tree_init() function rcu_init() function rest_init() function 2nd sched_init() function 2nd 3rd security_scaffolding_startup() function setup_arch() function 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function 2nd 3rd signals_init() function 2nd smp_prepare_boot_cpu() function 2nd softirq_init() function time_init() function 2nd trap_init() function vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th calls [See system calls] process creation system 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd capabilties fields task_struct structure 2nd characters devices 2nd 3rd 4th child processes 2nd children field (task_struct structure) chipsets CHRP (Common Hardware Reference Platform) CISC (Complex Instruction Set Computing) architecture clobbered registers 2nd clocks devices real-time 2nd 3rd 4th 5th 6th 7th 8th 9th clone() function 2nd 3rd close() function 2nd 3rd 4th 5th 6th 7th CML2 code inline assembly 2nd _ _volatile__ modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constriants input operands output operands parameter numbering code generation phases coloring (slabs) comm field (task_struct structure) commands ar 2nd hexdump objcopy Common Hardware Reference Platform (CHRP) compilers 2nd asmlinkage cross 2nd Complex Instruction Set Computing (CISC) architecture components MBR compound pages computer programs [See also applications] condition register (CR) configuration kernel configuration tool configuring caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th initrd console_init() function calling 2nd const keyword 2nd constants UL marking constraints context context of execution context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th control of files control bits control information, transmitting controllers DMA 2nd interrupts controlling terminal count field (flags) count register (CTR) CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th cpus_allowed field (task_struct structure) CR (condition register) create_process program 2nd 3rd credentials fields task_struct structure 2nd cross compilers 2nd cs_cachep field (cache descriptors) cs_dmacachep field (cache descriptors) cs_size field (cache desciptors) ctor field (cache descriptors) CTR (count register) current task structures current variable current working directories Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Data BAT (DBAT) data instructions (x86) data relocate (DR) data segments data structures VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd DBAT (Data BAT) deactivating tasks dead processes deadline I/O schedulers deadlock Debian debugging device drivers 2nd DECLARE_WORK() macro declaring IOCTL numbers 2nd 3rd 4th decrementers defining execution contexts defunct processes dentry structures 2nd 3rd 4th 5th dependence architecture descriptors cache_sizes caches 2nd 3rd 4th files kmem_cache memory zones 2nd 3rd processes 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th descriptors (files) destroying caches 2nd devfs (Linux Device Filesystem) devices access 2nd addressing block characters 2nd drivers 2nd creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd types of 2nd 3rd 4th files 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals models sysfs 2nd 3rd 4th pseudo Direct Memory Access (DMA) 2nd direct store segments directories 2nd /dev current working files 2nd 3rd fs/ home init/ kernel/ mm/ Page Global Directory working dirty pages, flushing 2nd disks blocks formatting initrd 2nd partitions 2nd distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog DMA (Direct Memory Access) 2nd dmesg tool do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th do_page_fault() function DR (data relocate) driver tables drivers cource code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th debugging 2nd devices 2nd parallel ports building 2nd 3rd 4th 5th 6th 7th 8th types of 2nd 3rd 4th wait queues 2nd 3rd 4th 5th work queues 2nd 3rd dtor field (cache descriptors) dumb terminals dynamic libraries dynamic priority calculations Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] EA (effective address) effective address (EA) effective group IDs effective user IDs elevator algorithms ELF (Executable and Linking Format) object files 2nd 3rd 4th 5th 6th 7th 8th 9th euid field (task_struct structure) events wait_event*() interfaces 2nd EXCEPTION() macro exceptions asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th page faults PowerPC page faults exec() system calls Executable and Linking Format (ELF) object files 2nd 3rd 4th 5th 6th 7th 8th 9th executing processes adding to wait queues asynchronous execution flow 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th clone() function 2nd 3rd creating 2nd do_exit() function 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd lifespans 2nd 3rd 4th 5th 6th 7th sys_exit() function 2nd termination tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th vfork() funciton 2nd wait queues 2nd wait() function 2nd 3rd 4th 5th 6th wait_event*() interfaces 2nd waking up 2nd 3rd 4th schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th execution context of processes create_process program 2nd 3rd execution contexts, defining exit_code field (task_struct structure) exit_signal field (task_struct structure) exploration tools (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd EXPORT_SYMBOL macro exporting symbols extensions filenames external fragmentation external interrupts Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] faults (pages) 2nd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th fdatasync system calls Fedora 2nd field handlers fields flags 2nd memory zones 2nd 3rd process descriptor address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th superblock structures 2nd 3rd operations 2nd 3rd task_struct structure address space 2nd attribute 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th file descriptors file structures VFS 2nd 3rd filenames extensions files 2nd /etc/fstab attributes control descriptors devices 2nd 3rd block devices 2nd characters 2nd clocks DMA 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals directories 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th filenames kernels 2nd protection 2nd 3rd 4th 5th metadata modes operations parameters offsetting pathnames 2nd processes close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th regular 2nd types 2nd types of files field (task_struct structure) files_struct structure 2nd 3rd 4th filesystems 2nd devfs fields task_struct structure 2nd handlers hierarchies implementing kernels 2nd layers 2nd 3rd 4th 5th 6th 7th navigating 2nd overview 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th performance types of VFS VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th first_time_slice field (task_struct structure) fixed-point instructions (PowerPC) flags memory management 2nd flags field flags field (cache descriptors) flags field (task_struct structure) Flash flips 2nd 3rd floating-point instructions (PowerPC) flops 2nd 3rd flushing dirty pages 2nd for_each_zone() function fork() function 2nd fork() system calls forked processes formatting caches 2nd 3rd 4th 5th 6th 7th 8th 9th devices writing code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th disks fragmentation external frames pages memory management 2nd 3rd 4th 5th 6th 7th 8th free field (slab descriptors) free software 2nd Free Software Foundation (FSF) free_area field ( memory zones) free_page() function free_pages field (memory zones) front-side busses fs field (task_struct structure) fs/ directory fs_struct structure FSF (Free Software Foundation) fsgid field (task_struct structure) fsuid field (task_struct structure) fsync system calls funcitons nice() function is_highmem() kmalloc() 2nd kmem_cache_alloc() functions __builtin_expect() __free_page() __get_dma_pages() __get_free_page() add_wait_queue() add_wait_queue_exclusive() alloc_page() alloc_pages() cache_grow() 2nd 3rd close() 2nd 3rd 4th 5th 6th 7th context_switch() 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th do_exit() 2nd 3rd 4th do_page_fault() for_each_zone() free_page() helper memory zones 2nd is_normal() kmem_cache_destroy() 2nd likely() 2nd 3rd list_del() nice() open() 2nd 3rd 4th 5th 6th printk() process creation 2nd clone() function 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd vfork() function 2nd releases page frames requests page frames 2nd 3rd sched_fork() 2nd 3rd 4th 5th 6th 7th 8th scheduler_tick() start_kernel() 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th switch() switch_to() 2nd synchronous sys_exit() 2nd unlikely() 2nd 3rd wait() 2nd 3rd 4th 5th 6th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] GEC (General Electric Company) General Electric Company (GEC) general purpose caches general-purpose registers (GPRs) generic block device layers 2nd generic block driver layers 2nd 3rd Gentoo 2nd geometry of hard drives gfp_mask integer value gfpflags field (cache descriptors) gfporder field (cache descriptors) GID (group ID) 2nd global variables local list references 2nd slab allocators 2nd 3rd GMCH (Graphics and Memory Controller Hub) GNU General Public License (GPL) GPL (GNU General Public License) GPRs (general-purpose registers) Grand Unified Bootleader (GRUB) 2nd 3rd 4th Graphics and Memory Controller Hub (GMCH) group ID (GID) 2nd group_info field (task_struct structure) 2nd group_leader field (task_struct structure) GRUB (Grand Unified Botloader) 2nd 3rd 4th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] handlers filesystems page faults 2nd 3rd 4th 5th 6th 7th hard drives geometry of hard links hardware I/O 2nd 3rd parallel ports headers ELF 2nd tables programs 2nd sections 2nd heads heaps helper functions memory zones 2nd Hertz (HZ) Hertz, Heinrich hexdump command hierarchies filesystems High Performance Event Timer (HPET) history of UNIX 2nd home directories host systems HPET (High Performance Event Timer) hubs hw_interrupt_type structure hw_irq_controller structure HyperTransport technology HZ (Hertz) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] I/O asynchronous operations devices block devices 2nd characters 2nd clocks DMA 2nd files 2nd generic block drivers 2nd 3rd networks operations 2nd request queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scheduling 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th terminals hardware 2nd 3rd I/O (input/output) I/O Controller Hub (ICH) i386 Intel-based memeory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th IBAT (Instruction BAT) ICH (I/O Controller Hub) IDT (Interrupt Descriptor Table) 2nd IHA (Intel Hub Architecture) images kernels building 2nd 3rd implementing filesystems implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd inactive_list field (emory zones) inb (read in a byte) index nodes init process 2nd 3rd init threads (Process 1) 2nd 3rd 4th 5th 6th init/ directory init_IRQ() function calling 2nd 3rd initial RAM disk (initrd) 2nd initializing architecture-dependent memory i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 irqaction struct kernels systems initrd configuring initrd (initial RAM disk) 2nd inline assembly 2nd _ _volatile__modifer 2nd 3rd 4th 5th 6th asm keyword clobbered registers constraints input operands output operands parameter numbering inline keyword inode strcutures inode structures 2nd 3rd 4th inodes input operands input/output [See I/O] Instruction BAT (IBAT) instruction relocate (IR) Intel Hub Architecture (IHA) interactive processes interactive tasks interactive_credit field (task_struct structure) interfaces ABI I/O 2nd 3rd users wait_event*() 2nd Interrupt Descriptor Table (IDT) 2nd interrupt-acknowledge cycle interrupts 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th context controllers polling and 2nd 3rd 4th 5th intervals addresses inuse field (slab descriptors) IOCTL numbers, declaring 2nd 3rd 4th IPC (Interprocess Communication) IR (instruction relocate) IRQ structures irq_desc_t structure irqaction struct irqaction structs, initializing IS_ERR macro is_highmem() function is_normal() function Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] jiffies 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] kernel messages /var/log/messages dmesg printk() function kernel configuration tool kernel mode kernel/ directory kernels architecture-dependent memory initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 boot loaders GRUB 2nd 3rd 4th LILO 2nd PowerPC 2nd Yaboot 2nd create_process program 2nd 3rd datatypes linked lists 2nd 3rd 4th searching 2nd 3rd trees 2nd 3rd 4th 5th distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog explicit kernel preemption exploration tools ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd implicit kernel preemption 2nd 3rd 4th init threads (Process 1) 2nd 3rd 4th 5th 6th initialization memory 2nd organization overview of access rights 2nd 3rd 4th 5th device drivers 2nd files/filesystems 2nd processes 2nd 3rd schedulers system calls 2nd UID 2nd user interfaces release information 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd space start_kernel() function 2nd calling buffer_init() function 2nd calling build_all_zonelists() function 2nd calling calibrate_delay() function 2nd 3rd calling console_init() function 2nd calling init_IRQ() function 2nd 3rd calling late_time_init() function calling local_irq_enable() function calling lock_kernel() function 2nd calling mem_init() function 2nd 3rd 4th 5th 6th 7th 8th calling page_address_init() function 2nd 3rd 4th calling page_alloc_init() function 2nd calling page_writeback_init() function 2nd 3rd calling parse_args() function 2nd 3rd calling pgtable_cache_init() function 2nd calling printk() function calling proc_root_init() function 2nd 3rd calling profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function 2nd calling sched_init() function 2nd 3rd calling security_scaffolding_startup() function calling setup_arch() function 2nd 3rd 4th 5th 6th calling setup_per_cpu_areas() function 2nd 3rd calling signals_init() function 2nd calling smp_prepare_boot_cpu() function 2nd calling softirq_init() function calling time_init() function 2nd calling trap_init() function calling vfs_cache_init() function 2nd 3rd 4th 5th 6th 7th 8th 9th toolchains 2nd compilers cross compilers 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers keywords asm const 2nd inline volatile 2nd kmalloc() function 2nd kmem_cache descriptors kmem_cache_alloc() function kmem_cache_destroy() function 2nd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] languages assembly example of 2nd 3rd 4th 5th 6th 7th 8th PowerPC 2nd 3rd 4th x86 2nd 3rd 4th C asmlinkage const keyword 2nd inline keyword UL volatile keyword 2nd late_time_init() function calling latency layers filesystems 2nd 3rd 4th 5th 6th 7th generic block device 2nd generic block drivers 2nd 3rd layouts source code li RT, RS, SI (Load Immediate) libraries licenses GPL lifecycles slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th lifespans of process descriptors 2nd 3rd processes states 2nd transitions (states) 2nd 3rd 4th 5th 6th likely() function 2nd 3rd LILO (LInux LOader) 2nd limitations fields task_struct structure 2nd 3rd linear address spaces memory management 2nd 3rd linear addresses link editors link register (LR) linked lists 2nd 3rd 4th linkers links 2nd 3rd 4th Linux filesystems [See filesystems] makefiles 2nd 3rd process structures linear address spaces 2nd 3rd memory management 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page tables 2nd Linux Device Filesystem (devfs) LInux LOader (LILO) 2nd Linux Power list field (flags) list field (slab descriptors) list_del() function lists clobber linked 2nd 3rd 4th local references (global variables and) 2nd searching 2nd 3rd slab descriptors work queues lists field (cache descriptors) lists,next_reap lists.slabs_free lists.slabs_full lists.slabs_partial Little Endian Load Immediate (li_RT,_RS,_SI) Load Word and Zero (lwz_RT,_D(RA)) local list references 2nd local stacks asmlinkage local_irq_enable() function calling lock field (memory zones) lock_kernel() function calling 2nd locking spinlocks 2nd 3rd 4th 5th logical addresses logical disks login programs LR (link register) lru field (flags) lru_lock field (memory zones) ls /usr/src/linux/arch lwz RT, D(RA) (Load Word and Zero) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Machine State Register (MSR) macros __init 2nd DECLARE_WORK() EXCEPTION() EXPORT_SYMBOL IS_ERR PTR_ERR makefiles Linux 2nd 3rd sub-makefiles 2nd 3rd malloc_sizes[] global variable management memory 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd Mandriva mapping memory processes 2nd mappng field (flags) marking constants UL Master Boot Record (MBR) MBR (Master Boot Record) MCH (Memory Controller Hub) mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th memory addresses mm_struct 2nd 3rd 4th vm_area_struct 2nd 3rd 4th addressing architecture-dependent initialization i386 Intel-based 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th PowerPC 2nd 3rd 4th 5th 6th 7th 8th 9th 10th x86 areas 2nd buffer_head structures DMA 2nd initrd 2nd kernels 2nd kmalloc() function 2nd kmem_cache_alloc() function management 2nd 3rd linear address spaces 2nd 3rd Linux process structures 2nd 3rd 4th 5th 6th page faults 2nd 3rd 4th 5th 6th 7th 8th 9th page frames 2nd 3rd 4th 5th 6th 7th 8th page tables 2nd pages 2nd 3rd request paths 2nd slab allocators 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th zones 2nd 3rd manager processes mapping 2nd regions users 2nd 3rd 4th virtual Memory Controller Hub (MCH) Memory Management Unit (MMU) memory-mapped I/O messages kernels /var/log/messages dmesg printk() function metadata files mingetty programs Minix MIT mm field (task_struct structure) mm utility mm/ directory mm_struct structure 2nd 3rd 4th MMU (Memory Management Unit) models devices sysfs and 2nd 3rd 4th modes files kernel sgid sticky suid user modifiers _ _volatile__ 2nd 3rd 4th 5th 6th modules source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th monolithic systems mount points mount systems MSR (Machine State Register) Multiboot Specification (GRUB) MULTiplexed Information and Computing Service (MULTICS) multiprogramming multiuser timesharing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] name field (cache descriptors) named pipes navigating filesystems 2nd networks devices next field (cache descriptors) nice() funciton nice() function nivcsw field (task_struct structure) no-op no-op I/O schedulers nodes index non-executable ELF file sections 2nd non-volatile storage Northbridge 2nd notations big-o notification parents 2nd 3rd 4th 5th 6th notifier chains num field (cache descriptors) numbering parameters numbers IOCTL delcaring 2nd 3rd 4th nvcsw field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] O(1) schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th CPUs yielding 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th tasks selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th objcopy command objdump utility 2nd object languages objects create_process program 2nd 3rd ELF 2nd 3rd 4th 5th 6th 7th 8th 9th file formats linked lists 2nd 3rd 4th searching 2nd 3rd trees binary 2nd red black 2nd objsize field (cache descriptors) OF (Open Firmware) 2nd offsetting descriptors offsetting file parameters Open Firmware (OF) 2nd Open Programmable Interrupt Controller (OpenPIC) open source software 2nd open() function 2nd 3rd 4th 5th 6th OpenPIC (Open Programmable Interrupt Controller) operating systems create_process program 2nd 3rd overview of 2nd operations asynchronous I/O devices 2nd files superblock structures 2nd 3rd optimizers optimizing filesystems organization of kernels outb (write out a byte) output operands overview of Linux Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] padding zones page caches address_space structures 2nd 3rd tracing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th Page Directory Entry (PDE) page faults page frames Page Global Directory Page Table Entry (PTE) 2nd page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd pages caches filesystems 2nd 3rd 4th compound dirty flushing 2nd faults memory management 2nd 3rd 4th 5th 6th 7th 8th 9th flags fields 2nd frames memory management 2nd 3rd 4th 5th 6th 7th 8th memory management 2nd 3rd tables memory management 2nd pages_high field (memory zones) pages_min, pages_low field (memory zones) pages_scanned, temp_priority field (memory zones) paging parallel port drivers, building 2nd 3rd 4th 5th 6th 7th 8th parameters asmlinkage files offsetting numbering parent field (task_struct structure) parent processes 2nd parents notification 2nd 3rd 4th 5th 6th parse_args() function calling 2nd 3rd partitions 2nd disks pathnames 2nd files 2nd paths requests memory management 2nd PCI busses PDE (Page Directory Entry) pdeath field (task_struct structure) performance filesystems pgtable_cache_init() function calling 2nd phases of compiling physical addresses PIC (Programmable Interrupt Controller) pid field (task_struct structure) PID process ID) pipes named PIT (Programmable Interval Time) pivoting the root plugging policy field (task_struct structure) polling and interrupts 2nd 3rd 4th 5th portability ports I/O 2nd 3rd parallel drivers building 2nd 3rd 4th 5th 6th 7th 8th PowerPC architecture-dependent memory intialization 2nd 3rd 4th 5th 6th 7th 8th 9th 10th assembly languages 2nd 3rd 4th example 2nd 3rd 4th bootloaders 2nd page fault exceptions x86 code convergence PowerPC architecture Linux Power PowerPC Reference Platform (PreP) PPC real-time clocks reading preemption tasks explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd PreP (PowerPC Reference Platform) prev_priority field (memory zones) principle of locality printk() function calling prio field (task_struct structure) priority dynamic calaculations processes priority arrays proc_root_init() function calling 2nd 3rd process 0 Process 0 process 1 Process 1 Process 1 (init threads) 2nd 3rd 4th 5th 6th process ID (PID) process status (ps) processes 2nd 3rd 4th asynchronous execution flow exceptions 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th clone() function 2nd 3rd context create_process program 2nd 3rd creating 2nd 3rd dead descriptors 2nd 3rd 4th 5th address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th do_fork() function 2nd 3rd 4th 5th 6th files close() function 2nd 3rd 4th 5th 6th 7th files_struct structure 2nd 3rd 4th fs_struct structure open() function 2nd 3rd 4th 5th 6th fork() function 2nd init interactive lifespans states 2nd Linux memory management 2nd 3rd 4th 5th 6th memory mapping 2nd priority running schedulers selecting tasks sleeping spawning termination do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th tracking 2nd 3rd 4th 5th 6th 7th 8th 9th 10th transitions states 2nd 3rd 4th 5th 6th types of vfork() function 2nd wait queues 2nd adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th zombie profile_init() function calling program header tables 2nd Programmable Interrupt Controller (PIC) Programmable Interval Time (PIT) programming filesystems 2nd 3rd 4th 5th 6th page caches 2nd 3rd 4th VFS structures 2nd 3rd 4th 5th 6th VFS system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th virtual 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th programs create_process 2nd 3rd protected mode (memory management) 2nd protection files 2nd 3rd 4th 5th ps (process status) pseudo devices PTE (Page Table Entry) 2nd PTR_ERR macro ptrace field (task_struct structure) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] queues request utilities requests 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th run system requests wait 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th work 2nd 3rd lists tasklets 2nd 3rd Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] radix_tree_init() function calling RAM initrd 2nd rcu_init() function calling readelf utility 2nd reading PPC real-time clocks real-time clocks x86 ready state ready to running state transition real addressing real group IDs real mode real user IDs real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th real_parent field (task_struct structure) receiving data from devices red black trees 2nd Red Hat 2nd Reduced Instruction Set Computing (RISC) architecture references local lists (global variables and) 2nd regions memory registers clobbered PowerPC segment SPRs regular files 2nd relationships fields task_struct structure 2nd makefiles 2nd 3rd relative pathnames 2nd release information (kernels) 2nd releases functions page frames relocatable object code relocation requests functions page frames 2nd 3rd paths memory management 2nd queue utilities queues 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system queues respawning programs rest_init() function calling 2nd rights access 2nd 3rd 4th 5th RISC (Reduced Instruction Set Computing) architecture Ritchie, Dennis rlim field (task_struct structure) root of users root threads rt_priority field (task_struct structure) rules schedulers run queues 2nd run_list field (task_struct structure) runnable states (processes) running processes running to blocked state transition running to ready state transition Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] s_mem field (slab descriptors) scanner phases sched_fork() function 2nd 3rd 4th 5th 6th 7th 8th sched_init() function calling 2nd 3rd scheduler_tick() function schedulers 2nd anticipatory creating 2nd 3rd 4th 5th 6th 7th 8th 9th 10th deadline I/O no-op I/O O(1) context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting tasks 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th rules scheduling fields task_struct structure 2nd 3rd 4th I/O 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th scripts SDR1 (Storage Description Register 1) searching datatypes 2nd 3rd sections header tables 2nd non-executable ELF files 2nd security_scaffolding_startup() function calling Segment Registers Segmented Address Translation segments data text selecting tasks schedulers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th semantic attributes semaphores 2nd 3rd 4th 5th setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd sgid field (task_struct structure) sgid mode shared libraries sibling field (task_struct structure) sibling processes signals_init() function calling 2nd SIGSTOP slabp_cache field (cache descriptors) slabs allocators global variables 2nd 3rd memory management 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th coloring sleep_avg field (task_struct structure) sleeping processes smp_prepare_boot_cpu() function calling 2nd sockets 2nd soft links softirq_init() function calling software [See applications] free/open source 2nd source build systems 2nd architecture-dependent source code 2nd architecture-independent source code 2nd images 2nd 3rd Linux makefiles 2nd 3rd sub-makefiles 2nd 3rd source code system calls adding 2nd 3rd traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th writing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Southbridge 2nd space kernels users spaces addresses memory management 2nd 3rd virtual addresses spawning processes special purpose registers (SPRs) specialized caches spinlocks 2nd 3rd 4th 5th SPRs (special purpose registers) stacks asmlinkage standards start_kernel() function 2nd buffer_init() function calling 2nd build_all_zonelists() function calling 2nd calibrate_delay() function calling 2nd 3rd console_init() function calling 2nd init_IRQ() function calling 2nd 3rd late_time_init() function calling local_irq_enable() function calling lock_kernel() function calling 2nd mem_init() function calling 2nd 3rd 4th 5th 6th 7th 8th page_address_init() function calling 2nd 3rd 4th page_alloc_init() function calling 2nd page_writeback_init() function calling 2nd 3rd parse_args() function calling 2nd 3rd pgtable_cache_init() function calling 2nd printk() function calling proc_root_init() function calling 2nd 3rd profile_init() function calling radix_tree_init() function calling rcu_init() function calling rest_init() function calling 2nd sched_init() function calling 2nd 3rd security_scaffolding_startup() function calling setup_arch() function calling 2nd 3rd 4th 5th 6th setup_per_cpu_areas() function calling 2nd 3rd signals_init() function calling 2nd smp_prepare_boot_cpu() function calling 2nd softirq_init() function calling time_init() function calling 2nd trap_init() function calling vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th state processes lifespans 2nd 3rd transitions 2nd 3rd 4th 5th 6th state field (task_struct structure) states ready static libraries static_prio field (task_struct structure) statically allocated major devices status processes sticky mode Storage Description Register 1 (SDR1) Store Word with Update (stwu_RS,_D(RA)) structures address_space 2nd 3rd block_device_operations buffer_head current task dentry 2nd 3rd 4th file VFS 2nd 3rd files_struct 2nd 3rd 4th fs_struct hw_interrupt_type hw_irq_controller inode 2nd 3rd 4th IRQ irq_desc_t mm_struct 2nd 3rd 4th processes (Linux) memory management 2nd 3rd 4th 5th 6th superblock 2nd 3rd operations 2nd 3rd task_struct 2nd 3rd address space fields 2nd attribute fields 2nd capabilities fields 2nd credentials fields 2nd filesystem fields 2nd limitations fields 2nd 3rd relationship fields 2nd scheduling fields 2nd 3rd 4th VFS 2nd 3rd 4th 5th 6th vm_area_struct 2nd 3rd 4th wait queues 2nd adding to struuctures data VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th stwu RS, D(RA) (Store Word with Update) sub-makefiles 2nd 3rd subdirectories architecture-independent suid field (task_struct structure) suid mode super_operations structure superblock structures 2nd 3rd 4th operations 2nd 3rd Superio chips superusers SUSE switch() function switch_to() function 2nd switching tasks explicit kernel preemption implicit kernel preemption 2nd 3rd 4th implicit user preemption 2nd symbol resolution symbolic links symbols exporting sync system calls synchronous functions synchronous interrupts syntactical rules sys_exit() function 2nd sysfs device models and 2nd 3rd 4th system calls 2nd 3rd 4th 5th 6th 7th clone() function 2nd 3rd code adding 2nd 3rd do_fork() function 2nd 3rd 4th 5th 6th fork() function 2nd source code traversing 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th vfork() function 2nd VFS 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th system request queues system timers 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th systems initializing Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] tables drivers headers programs 2nd sections 2nd pages memory management 2nd Tanenbaum, Andrew target system TASK_INTERRUPTIBLE state task_list TASK_RUNNING state TASK_STOPPED state task_struct structure 2nd 3rd fields address space 2nd attributes 2nd capabilities 2nd credentials 2nd filesystem 2nd limitations 2nd 3rd relationship 2nd scheduling 2nd 3rd 4th TASK_UNINTERRUPTIBLE state TASK_ZOMBIE state tasklets work queues and 2nd 3rd tasks current task structure deactivating interactive preemption explicit kernel implicit kernel 2nd 3rd 4th implicit user 2nd schedulers context_switch() function 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th selecting 2nd 3rd 4th 5th 6th 7th 8th 9th 10th yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th system clocks real-time 2nd 3rd 4th 5th 6th 7th 8th 9th terminals devices termination processes do_exit() function 2nd 3rd 4th sys_exit() function 2nd wait() function 2nd 3rd 4th 5th 6th text segments the contextual analysis phases Thompson, Ken threads init (Process 1) 2nd 3rd 4th 5th 6th time_init() function calling 2nd time_slice field (task_struct structure) timers real-time clocks 2nd 3rd 4th 5th 6th 7th 8th 9th timers (system) 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th timesharing users timeslices 2nd 3rd timestamp field (task_struct structure) timestamsps schedulers TLBs (Translation Lookaside Buffers) toolchains 2nd compilers cross 2nd ELF object files 2nd 3rd 4th 5th 6th 7th 8th 9th linkers tools distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog dmesg exploration (kernels) ar command 2nd hexdump command mm objcopy command objdump/readelf 2nd kernel configuration top-half interrupt handler methods Torvalds, Linus tracing page caches 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th tracking processes 2nd 3rd 4th 5th 6th 7th 8th 9th 10th tracks 2nd transitions prcess state process state 2nd 3rd 4th 5th 6th translation addresses i386 Intel-based PPC Translation Lookaside Buffers (TLBs) transmitting control information trap_init() function calling traps traversing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th trees binary 2nd red black 2nd troubleshooting device drivers debugging 2nd filesystems optimizing types of drivers 2nd 3rd 4th of files 2nd 3rd of filesystems of interrupt handlers Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] UID (user ID) 2nd UL (unsigned long) UMA (Universal Motherboard Architecture) Universal Motherboard Architecture (UMA) UNIX history of 2nd unlikely() function 2nd 3rd unlpugging unsigned long (UL) user ID (UID) 2nd user mode users implicit user preemption 2nd interfaces space superusers utilities request queues Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] VA (virtual address) values flags variables $(Q) variable current global local list references 2nd slab allocators 2nd 3rd HZ vectors versions kernels release information 2nd vfork() function 2nd VFS structures 2nd 3rd 4th 5th 6th system calls 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th 16th 17th 18th 19th 20th 21st 22nd 23rd 24th 25th 26th 27th 28th 29th 30th VFS (virtual filesystem) vfs_cache_init() function calling 2nd 3rd 4th 5th 6th 7th 8th 9th virtual address (VA) virtual addresses virtual addressing virtual field (flags) virtual filesystem (VFS) virtual filesystems 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th virtual memory virtual page number (VPN) virtual segment ID (VSID) virtual terminals vm_area_struct structure 2nd 3rd 4th volatile keyword 2nd VPN (virtual page number) VSID (virtual segment ID) Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] wait queues 2nd 3rd 4th 5th 6th 7th adding to wait_event*() interfaces 2nd waking up 2nd 3rd 4th wait() function 2nd 3rd 4th 5th 6th wait() system calls wait_event*() interfaces 2nd wait_table, wait_table_size field (memory zones) wait_table_bits field (memory zones) waking up wait queues 2nd 3rd 4th window managers distributions Debian Fedora 2nd Gentoo 2nd Mandriva Red Hat 2nd SUSE Yellow Dog wireless LAN [See WLAN] WLAN (wireless LAN) work queues 2nd 3rd lists tasklets 2nd 3rd working directories writing source code 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th 13th 14th 15th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] x86 assembly languages 2nd 3rd 4th example 2nd 3rd PowerPC code convergence real-time clocks reading x86 interrupt flow x86 interrupt vector tables Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] Yaboot bootloaders 2nd Yellow Dog yielding CPUs 2nd 3rd 4th 5th 6th 7th 8th 9th 10th 11th 12th Index [SYMBOL] [A] [B] [C] [D] [E] [F] [G] [H] [I] [J] [K] [L] [M] [N] [O] [P] [Q] [R] [S] [T] [U] [V] [W] [X] [Y] [Z] zombie processes 2nd zombies zones memory management 2nd 3rd padding Table of Contents Chapter 1.


pages: 198 words: 26,435

Nmap Cookbook: The Fat-free Guide to Network Scanning by Nicholas Marsh

Debian

Nmap® Cookbook The fat-free guide to network scanning 2 Nmap® Cookbook The Fat-free Guide to Network Scanning Copyright © 2010 Nicholas Marsh All rights reserved. ISBN: 1449902529 EAN-13: 9781449902520 www.NmapCookbook.com BSD® is a registered trademark of the University of California, Berkeley CentOS is property of CentOS Ltd. Debian® is a registered trademark of Software in the Public Interest, Inc Fedora® is a registered trademark of Red Hat, Inc. FreeBSD® is a registered trademark of The FreeBSD Foundation Gentoo® is a registered trademark of The Gentoo Foundation Linux® is the registered trademark of Linus Torvalds Mac OS X® is a registered trademark of Apple, Inc.

For many, installing Nmap via the popular apt or yum package managers will only install Note version 4.x. If your distribution already has Nmap 5.00 in their repositories you can install Nmap by using the commands listed below. Otherwise, refer to page 26 to install Nmap 5.00 from source code. Installing Precompiled Packages for Linux For Debian and Ubuntu based systems # apt-get install nmap For Red Hat and Fedora based systems # yum install nmap For Gentoo Linux based systems # emerge nmap To check which version of Nmap you are running, type the following command on the command line: # nmap -V Nmap version 5.00 ( http://nmap.org ) 25 Compiling Nmap from Source for Unix and Linux Currently, the only way to get Nmap 5.00 for most Unix and Linux systems is to download and compile the source code from the nmap.org website.

The --fuzzy option is a synonym that can be used as an easy to remember Tip shortcut for the --osscan-guess feature. 93 Service Version Detection The -sV parameter enables Nmap’s service version detection feature. Usage syntax: nmap -sV [target] # nmap -sV 10.10.1.48 Starting Nmap 5.00 ( http://nmap.org ) at 2009-08-11 12:49 Central Daylight Time Interesting ports on 10.10.1.48: Not shown: 996 closed ports PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 2.0.6 22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0) 25/tcp open smtp Postfix smtpd 80/tcp open http Apache httpd 2.2.8 ((Ubuntu)) MAC Address: 00:0C:29:D5:38:F4 (VMware) Service Info: Host: 10.10.1.48; OSs: Unix, Linux Service detection performed. Please report any incorrect results at http://nmap.org/submit/ .


pages: 32 words: 10,468

Getting Things Done for Hackers by Lars Wirzenius

anti-pattern, Debian, Firefox, full text search, Inbox Zero, Kickstarter, Merlin Mann, security theater

Split systems: personal versus work GTD I’ve tried having a separate GTD system for work and personal lives, but as a free software developer, the two are mixed enough that it’s annoying to keep the two systems in sync. For example, if I find a bug in Debian, while doing work, should reporting it and maybe fixing it be a work-GTD thing or a personal-GTD thing? It’s really both: the bug affects my work, and I am a Debian developer in my free time, so it should be in both systems. Another problem is that I often need to do personal things in the middle of the workday. I might need to get a haircut during a lunch break, for example. If it’s only in my GTD system at home, I don’t remember the haircut.

I recommend having a folder named “Archive” (or something similar in your local language), which is the location where all your archived files shall be. Under “Archive”, you’ll create a folder for each topic: these are the folders that correspond to the physical manilla folders (or equivalent). Have only one level of these. $HOME/Archive/ Council tax 2011/ Debian DPL plans/ Orange GSM prepaid/ Talk: Debconf 2010/ Three GSM prepaid/ Having only a single level of archive folders makes it easier to look for them manually, when full-text search is not available or isn’t good enough. If you create folders within folders, searching manually becomes at least an order of magnitude harder.


pages: 205 words: 47,169

PostgreSQL: Up and Running by Regina Obe, Leo Hsu

cloud computing, database schema, Debian, en.wikipedia.org, full text search, web application

If you use Yum for the install, we prefer this Yum distro because it is managed by PostgreSQL group; it is actively maintained by PostgreSQL developers and always releases patches and updates as soon as they are available. We have instructions for installing using Yum in the Yum section of our PostgresOnLine journal site. Ubuntu, Debian, OpenSUSE Ubuntu is generally good about staying up to date with latest versions of PostgreSQL. Debian tends to be a bit slower. You can usually get the latest PostgreSQL on most recent versions of Ubuntu/Debian using a command along the lines of: sudo apt-get install postgresql-server-9.1 If you plan to be compiling any of the other additional add-ons not generally packaged with PostgreSQL, such as the PostGIS or R, then you’ll want to also install the development libraries: sudo apt-get install postgresql-server-dev-9.1 If you want to try the latest and greatest of PostgreSQL and not have to compile yourself, or the version of Ubuntu/Debian you have doesn’t have the latest version of PostgreSQL, then you’ll want to go with a backport.

You can usually get the latest PostgreSQL on most recent versions of Ubuntu/Debian using a command along the lines of: sudo apt-get install postgresql-server-9.1 If you plan to be compiling any of the other additional add-ons not generally packaged with PostgreSQL, such as the PostGIS or R, then you’ll want to also install the development libraries: sudo apt-get install postgresql-server-dev-9.1 If you want to try the latest and greatest of PostgreSQL and not have to compile yourself, or the version of Ubuntu/Debian you have doesn’t have the latest version of PostgreSQL, then you’ll want to go with a backport. Here are some that people use: OpenSCG Red Hat, Debian, Ubuntu, and OpenSuse PostgreSQL packages have PostgreSQL for latest stable and beta releases of PostgreSQL. Martin Pitt backports usually keeps Ubuntu installs for PostgreSQL two versions plus latest beta release of PostgreSQL.


PostgreSQL Cookbook by Chitij Chauhan

database schema, Debian, fault tolerance, GnuPG, Google Glasses, index card

For the DBI module to communicate with PostgreSQL, it is necessary to install the appropriate backend module, which in this case is DBD::Pg. On Red Hat, CentOS, Scientific Linux, as well as other Red Hat based Linux distributions, the package that provides this module is perl-DBD-Pg and it can be installed as follows: yum install perl-DBD-Pg On Debian-based systems, the package that provides this module is libdbd-pg-perl, and it can be installed as follows on Ubuntu- or Debian-based distributions: apt-get install libdbd-pg-perl Before we start using the Perl PostgreSQL interface, we will need to enter the following authentication and access control mechanism entry in the pg_hba.conf file: # IPv4 local connections: host all all 127.0.0.1/32 md5 Once these changes are done, we will need to restart the PostgreSQL server: $ pg_ctl -D $PGDATA restart How to do it...

The start argument of the pg_ctl utility will first start PostgreSQL's postmaster backend process using the path of the data directory. The database system will then start up successfully, report the last time the database system was shut down, and provide various debugging statements before returning the postgres user to the shell prompt. There's more... In Ubuntu and Debian Linux distributions, the pg_ctlcluster wrapper can be used with the start argument to start the postmaster server for a particular cluster. A cluster is a group of one or more PostgreSQL database servers that may coexist on a single host. Stopping the server Sometimes in emergency situations, you might have to bring down the PostgreSQL server's services.

If you are building from source, then follow these steps: Download the latest tarball of pgpool from the following website: http://www.pgpool.net/mediawiki/index.php/Downloads The next step would be to extract the pgpool tarball and enter the source directory: tar -xzf pgpool-II-3.4.0.tar.gz cd pgpool-II-3.4.0 Build, compile, and install the pgpool software: ./configure –prefix=/usr/local --sysconfdir=/etc/pgpool/ make make install How to do it... To install pgpool in a Debian or Ubuntu-based distribution, we can execute this command: apt-get install pgpool2 On Red Hat, Fedora, CentOS, or any other RHEL-based Linux distributions use the following command. It should be noted that the package name used is what is existing now for pgpool, that is, the 93 keyword used at the end relates to a minor release of PostgreSQL.


pages: 1,380 words: 190,710

Building Secure and Reliable Systems: Best Practices for Designing, Implementing, and Maintaining Systems by Heather Adkins, Betsy Beyer, Paul Blankinship, Ana Oprea, Piotr Lewandowski, Adam Stubblefield

anti-pattern, barriers to entry, bash_history, business continuity plan, business process, Cass Sunstein, cloud computing, continuous integration, correlation does not imply causation, create, read, update, delete, cryptocurrency, cyber-physical system, database schema, Debian, defense in depth, DevOps, Edward Snowden, fault tolerance, fear of failure, general-purpose programming language, Google Chrome, Internet of things, Kubernetes, load shedding, margin call, microservices, MITM: man-in-the-middle, performance metric, pull request, ransomware, revision control, Richard Thaler, risk tolerance, self-driving car, Skype, slashdot, software as a service, source of truth, Stuxnet, Turing test, undersea cable, uranium enrichment, Valgrind, web application, Y2K, zero day

A bug that was introduced in 2006 and discovered almost two years later in the Debian GNU/Linux version of the OpenSSL library provides one notorious example of a major failure caused by a small change. An open source developer noticed that Valgrind, a standard tool for debugging memory problems, was reporting warnings about memory used prior to initialization. To eliminate the warnings, the developer removed two lines of code. Unfortunately, this caused OpenSSL’s pseudo-random number generator to only be seeded with a process ID, which on Debian at the time defaulted to a number between 1 and 32,768. Brute force could then easily break cryptographic keys.

When replacing a critical configuration file on a POSIX system such as Linux, ensuring robust behavior in the face of crashes or other failures requires care. Consider using the renameat2 system call with the RENAME_EXCHANGE flag. 17 Successive malicious KRL pushes may broaden the negative impact, but the speed and breadth constraints still materially expand the response window. 18 The post_install and pre_rm concepts are borrowed from Debian’s familiar preinst, postinst, prerm, and postrm. Google’s package management system takes a more heavy-handed approach: it does not allow separate configuration and installation of packages, or half-successful installs. Any package change is guaranteed to succeed, or the machine is rolled back completely to the previous state.

A compromise of the automation’s credentials is equivalent to a compromise of all of the web servers. Software Update API You can distribute the config as a packaged software update, using the same mechanism you use to update the web server binary. There are many ways to package and trigger binary updates, using APIs of varying sizes. A simple example is a Debian package (.deb) pulled from a central repository by a periodic apt-get called from cron. You might build a more complex example using one of the patterns discussed in the following sections to trigger the update (instead of cron), which you could then reuse for both the configuration and the binary.


HBase: The Definitive Guide by Lars George

Amazon Web Services, bioinformatics, create, read, update, delete, Debian, distributed revision control, domain-specific language, en.wikipedia.org, fault tolerance, Firefox, functional programming, Google Earth, Kickstarter, place-making, revision control, smart grid, web application

You may also want to consider not using the latest Fedora release, but trailing by one version to be able to rely on some feedback from the community as far as stability and other issues are concerned. Debian Debian is another Linux-kernel-based OS that has software packages released as free and open source software. It can be used for desktop and server systems and has a conservative approach when it comes to package updates. Releases are only published after all included packages have been sufficiently tested and deemed stable. As opposed to other distributions, Debian is not backed by a commercial entity, but rather is solely governed by its own project rules. It also uses its own packaging system that supports DEB packages only. Debian is known to run on many hardware platforms as well as having a very large repository of packages.

Debian is known to run on many hardware platforms as well as having a very large repository of packages. Ubuntu Ubuntu is a Linux distribution based on Debian. It is distributed as free and open source software, and backed by Canonical Ltd., which is not charging for the OS but is selling technical support for Ubuntu. The life cycle is split into a longer- and a shorter-term release. The long-term support (LTS) releases are supported for three years on the desktop and five years on the server. The packages are also DEB format and are based on the unstable branch of Debian: Ubuntu, in a sense, is for Debian what Fedora is for Red Hat Linux. Using Ubuntu as a server operating system is made more difficult as the update cycle for critical components is very frequent.

Installation Ganglia setup requires two steps: first you need to set up and configure Ganglia itself, and then have HBase send the metrics to it. Ganglia-related steps You should try to install prebuilt binary packages for the operating system distribution of your choice. If this is not possible, you can download the source from the project website and build it locally. For example, on a Debian-based system you could perform the following steps. Ganglia monitoring daemon Perform the following on all nodes you want to monitor. Add a dedicated user account: $ sudo adduser --disabled-login --no-create-home ganglia Download the source tarball from the website, and unpack it into a common location: $ wget http://downloads.sourceforge.net/project/ganglia/ \ ganglia%20monitoring%20core/3.0.7%20%28Fossett%29/ganglia-3.0.7.tar.gz $ tar -xzvf ganglia-3.0.7.tar.gz -C /opt $ rm ganglia-3.0.7.tar.gz Install the dependencies: $ sudo apt-get -y install build-essential libapr1-dev \ libconfuse-dev libexpat1-dev python-dev Now you can build and install the binaries like so: $ cd /opt/ganglia-3.0.7 $ .


pages: 603 words: 141,814

Python for Unix and Linux System Administration by Noah Gift, Jeremy M. Jones

Amazon Web Services, bash_history, Bram Moolenaar, cloud computing, create, read, update, delete, database schema, Debian, distributed revision control, Firefox, functional programming, Guido van Rossum, industrial robot, inventory management, job automation, Mark Shuttleworth, MVC pattern, skunkworks, web application

I thank Bram Moolenaar and everyone who has ever worked on the Vim editor. Almost every word and XML tag that I wrote flowed through capabilities Vim. I picked up a few tricks along the way that I’ll incorporate into my daily editing habits. Vim made me more productive. Thank you. I also want to thank Linus Torvalds, the Debian folks, the Ubuntu folks, and anyone else who has ever worked on Linux. Almost every word that I typed was done on Linux. You made it incredibly simple to set up new environments and test different things. Thank you. Finally, but by no means least, I want to thank Guido van Rossum and everyone who has ever done any work on Python.

If you are using a python that was installed with your system’s package manager, it (and consequently ipython) will likely be located in /usr/bin. We’ve installed the source distribution of the latest development code for IPython, so you will see 0.8.3 in some examples. A second option for installing IPython is to use a package from your system’s package management system. On Debian and Ubuntu, .deb packages are available to install. Installation is simply apt-get install ipython. Ubuntu installs the IPython libraries to the appropriate location (/usr/share/python-support/ipython with a tangle of .pth files and symbolic links to make things work right). It also installs the ipython binary to /usr/bin/ipython.

Creating a Cross-Platform Build Network Since we know how to distribute jobs in parallel to a list full of machines, identify what operating system they are running, and finally, create a uniform manifest with EPM that can create a vendor-specific package, doesn’t it make sense to put all of this together? We can use these three techniques to quite easily build a cross-platform build network. With the advent of virtual machines technology, it is quite easy to create a virtual machine for any nonproprietary *nix operating system, such as Debian/Ubuntu, Red Hat/CentOS, FreeBSD, and Solaris. Now, when you create a tool you need to share to the world, or just the people at your company, you can quite easily create a “build farm,” perhaps even running on your laptop, in which you run a script, and then instantly create a vendor package for it.


pages: 163 words: 42,402

Machine Learning for Email by Drew Conway, John Myles White

call centre, correlation does not imply causation, Debian, natural language processing, Netflix Prize, pattern recognition, recommendation engine, SpamAssassin, text mining

Typical “easy ham” email ........................................................ Received: from usw-sf-list1-b.sourceforge.net ([10.3.1.13] helo=usw-sf-list1.sourceforge.net) by usw-sf-list2.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian)) id 17hsof-00042r-00; Thu, 22 Aug 2002 07:20:05 -0700 Received: from vivi.uptime.at ([62.116.87.11] helo=mail.uptime.at) by usw-sf-list1.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian)) id 17hsoM-0000Ge-00 for <spamassassin-devel@lists.sourceforge.net>; Thu, 22 Aug 2002 07:19:47 -0700 Received: from [192.168.0.4] (chello062178142216.4.14.vie.surfer.at [62.178.142.216]) (authenticated bits=0) by mail.uptime.at (8.12.5/8.12.5) with ESMTP id g7MEI7Vp022036 for <spamassassin-devel@lists.sourceforge.net>; Thu, 22 Aug 2002 16:18:07 +0200 From: David H=?

Linux As with Mac OS X, R comes preinstalled on many Linux distributions. Simply type R at the command line and the R console will be loaded. You can now begin programming! The CRAN mirror also includes installations specific to several Linux distributions, with instructions for installing R on Debian, RedHat, SUSE, and Ubuntu. If you use one of these installations, we recommend that you consult the instructions for your operating system, because there is considerable variance in the best practices between Linux distributions. IDEs and Text Editors R is a scripting language and therefore the majority of the work done in this book’s case studies will be done within a IDE or text editor, rather than directly inputted into the R console.


pages: 1,136 words: 73,489

Working in Public: The Making and Maintenance of Open Source Software by Nadia Eghbal

Amazon Web Services, barriers to entry, Benevolent Dictator For Life (BDFL), bitcoin, Clayton Christensen, cloud computing, commoditize, continuous integration, crowdsourcing, cryptocurrency, David Heinemeier Hansson, death of newspapers, Debian, disruptive innovation, en.wikipedia.org, Ethereum, Firefox, Guido van Rossum, Hacker Ethic, Induced demand, informal economy, Jane Jacobs, Jean Tirole, Kevin Kelly, Kickstarter, Kubernetes, Mark Zuckerberg, Menlo Park, Network effects, node package manager, Norbert Wiener, pirate software, pull request, RFC: Request For Comment, Richard Stallman, Ronald Coase, Ruby on Rails, side project, Silicon Valley, Snapchat, social graph, software as a service, Steve Jobs, Steve Wozniak, Steven Levy, Stewart Brand, The Death and Life of Great American Cities, The Nature of the Firm, Tragedy of the Commons, transaction costs, two-sided market, urban planning, web application, wikimedia commons, Yochai Benkler, Zimmermann PGP

., https://jvns.ca/blog/2017/08/06/contributing-to-open-source/. 65 “Ptychobranchus Subtentum,” Wikipedia, last updated April 7, 2019, https://en.wikipedia.org/wiki/Ptychobranchus_subtentum. 66 “Reykjavík,” Wikipedia, last updated March 27, 2020, https://en.wikipedia.org/wiki/Reykjav%C3%ADk. 67 “China: Provinces and Major Cities,” City Population, December 21, 2019, https://www.citypopulation.de/en/china/cities/. 68 “PEP 0 -- Index of Python Enhancement Proposals (PEPs),” Python.org, accessed March 31, 2020, https://www.python.org/dev/peps/. 69 “Proposing Changes to Go,” Golang / Proposal Code, GitHub, accessed March 31, 2020, https://github.com/golang/proposal/ 70 “How Brett Cannon Uses GitHub,” Customer Stories, GitHub, n.d., https://github.com/customer-stories/brettcannon. 71 “DebianMaintainer,” Debian Wiki, last updated August 24, 2019, https://wiki.debian.org/DebianMaintainer. 72 Stuart Sierra, “Clojure Governance and How It Got That Way,” Clojure, February 17, 2012, https://clojure.org/news/2012/02/17/clojure-governance. 73 “Mutate Regexp Body,” Mutant Pull Requests, GitHub, April 18, 2016, https://github.com/mbj/mutant/pull/565#issuecomment-211498398. 74 Lorenzo Sciandra, “Chain React 2019 - Lorenzo Sciandra - All Hands on Deck - The React Native Community Experience,” Infinite Red, July 31, 2019, YouTube video, https://www.youtube.com/watch?

I gained my commit privileges like people still do today on the Python project: I consistently contributed good patches and eventually a core developer noticed and asked if I wanted to join the team.70 The process by which a developer gains commit access varies widely between projects and is subject to preexisting social norms. Some projects adopt the mindset of needing to demonstrate trust, while others prefer to operate on the basis of trustlessness. For example, Debian, an operating system based on Linux, requires that developers follow an extensive onboarding process in which they are expected to read a manual, find a mentor, and meet a maintainer in person who can vouch for their identity.71 On the other hand, it’s common among JavaScript developers to give away commit access more freely.

The idea is to distribute the burden of maintenance by making it easy for others to contribute, and it’s assumed that strangers are trustworthy until proven otherwise. These differences in social norms are often closely intertwined with technical design. Clojure’s core developers highly prioritize stable code, which means they’re more reluctant to accept changes.72 And Debian has a monolithic, tightly coupled codebase, where green-lighting the wrong maintainer could, indeed, have dire consequences. But JavaScript, including Node.js, is designed to be modular, where each maintainer has a limited ability to affect other components of the ecosystem, so JavaScript developers are more likely to prioritize moving fast and accepting contributions.


pages: 394 words: 110,352

The Art of Community: Building the New Age of Participation by Jono Bacon

barriers to entry, Benevolent Dictator For Life (BDFL), collaborative editing, crowdsourcing, Debian, DevOps, do-ocracy, en.wikipedia.org, Firefox, game design, Guido van Rossum, Johann Wolfgang von Goethe, Jono Bacon, Kickstarter, Larry Wall, Mark Shuttleworth, Mark Zuckerberg, openstreetmap, Richard Stallman, side project, Silicon Valley, Skype, slashdot, social graph, software as a service, telemarketer, union organizing, VA Linux, web application

After spending a year in Russia training for a quick trip into space as the first South African space tourist, Mark started laying plans for a new Linux distribution. At the time, distributions were nothing new: Red Hat, Mandrake, Debian, and others were already producing comprehensive operating systems that technical types such as myself were not only using, but were also trying to convince our reluctant friends and family to use. Mark’s vision was different. First, he wanted to build Ubuntu on the excellent foundation of the existing Debian distribution. To do this he hired some of the cream of the crop in the Debian community, and they set to work to build a powerful and easy-to-use operating system. His vision did not end there, though.

Look at this show—you’ve got an interview with Quim Gil, which is about Maemo, not Ubuntu, the finger of God, which is plain silliness, the software vendors and security issue, which applies across the board, and packaging, which was fairly Ubuntu specific, but could easily relate across to other Debian-based distros, and, as Chris said, he would’ve talked about RPM if it had been possible. The “Ubuntu slant” is more about personal usage and experience, rather than a change in the show’s direction (which was unashamedly Debian slanted before Ubuntu came out....) In his three-paragraph response, mrben referred to 12 distinctive points and facts, citing many from existing online material. His response sought not only to convince the original poster of his error, but also to demonstrate to the community that the poster was wrong, thus providing a sense of security.

They receive security updates, and Canonical also supports them in its commercial support services. This repository contains everything that appears on the Ubuntu installation disk. Universe This repository is the entire archive from Debian (which Ubuntu is based on) but with packages built against Ubuntu. In other words, this repository contains the same software as Debian, but tweaked and tested to make sure it will run on Ubuntu. These applications are unsupported: end users are responsible for checking on security updates themselves, and Canonical does not provide support for universe packages in its commercial support services.


pages: 66 words: 9,247

MongoDB and Python by Niall O’Higgins

cloud computing, Debian, fault tolerance, semantic web, web application

Additionally, you will be able to develop with MongoDB even without an Internet connection. Depending on your operating system, you may have multiple options for how to install MongoDB locally. Most modern UNIX-like systems will have a version of MongoDB available in their package management system. This includes FreeBSD, Debian, Ubuntu, Fedora, CentOS and ArchLinux. Installing one of these packages is likely the most convenient approach, although the version of MongoDB provided by your packaging vendor may lag behind the latest release from 10gen. For local development, as long as you have the latest major release, you are probably fine. 10gen also provides their own MongoDB packages for many systems which they update very quickly on each release.

In the interests of simplicity, we will provide the commands required to install a stable version of MongoDB using the system package manager of the most common UNIXlike operating systems. This is the easiest method, assuming you are on one of these platforms. For Mac OS X and Windows, we provide instructions to install the binary packages from 10gen. Ubuntu / Debian: sudo apt-get update; sudo apt-get install mongodb Fedora: sudo yum install mongo-stable-server FreeBSD: sudo pkg_add -r mongodb Windows: Go to http://www.mongodb.org and download the latest production release zip file for Windows—choosing 32-bit or 64-bit depending on your system. Extract the contents of the zipfile to a location like C:\mongodb and add the bin directory to your PATH.


pages: 688 words: 107,867

Python Data Analytics: With Pandas, NumPy, and Matplotlib by Fabio Nelli

Amazon Web Services, backpropagation, centre right, computer vision, Debian, DevOps, functional programming, Google Earth, Guido van Rossum, Internet of things, optical character recognition, pattern recognition, sentiment analysis, speech recognition, statistical model, web application

Linux distributions and MacOS X machines should already have a preinstalled version of Python. If not, or if you would like to replace that version with another, you can easily install it. The installation of Python differs from operating system to operating system; however, it is a rather simple operation. On Debian-Ubuntu Linux systems, run this commandapt-get install python On Red Hat Fedora Linux systems working with rpm packages, run this commandyum install python If you are running Windows or MacOS X, you can go to the official Python site ( http://www.python.org ) and download the version you prefer.

.$ pip install <<package_name>> $ pip search <<package_name>> $ pip show <<package_name>> $ pip unistall <<package_name>> Regarding the installation, if you have Python 3.4+ (released March 2014) and Python 2.7.9+ (released December 2014) already installed on your system, the pip software is already included in these releases of Python. However, if you are still using an older version of Python, you need to install pip on your system. The installation of pip on your system depends on the operating system on which you are working. On Linux Debian-Ubuntu, use this command:$ sudo apt-get install python-pip On Linux Fedora, use this command:$ sudo yum install python-pip On Windows, visit https://pip.pypa.io/en/latest/installing/ and download get-pip.py onto your PC. Once the file is downloaded, run this command:python get-pip.py This way, you will install the package manager.

Currently, NumPy is open source and licensed under B SD. There are many contributors who have expanded the potential of this library. The NumPy Installation Generally, this module is present as a basic package in most Python distributions; however, if not, you can install it later. On Linux (Ubuntu and Debian), use:sudo apt-get install python-numpy On Linux (Fedora)sudo yum install numpy scipy On Windows with Anaconda, use:conda install numpy Once NumPy is installed on your distribution, to import the NumPy module within your Python session, write the following:>>> import numpy as np Ndarray : The Heart of the Library The NumPy library is based on one main object: ndarray (which stands for N-dimensional array).


pages: 313 words: 84,312

We-Think: Mass Innovation, Not Mass Production by Charles Leadbeater

1960s counterculture, Andrew Keen, barriers to entry, bioinformatics, c2.com, call centre, citizen journalism, clean water, cloud computing, complexity theory, congestion charging, death of newspapers, Debian, digital Maoism, disruptive innovation, double helix, Douglas Engelbart, Edward Lloyd's coffeehouse, frictionless, frictionless market, future of work, game design, Garrett Hardin, Google Earth, Google X / Alphabet X, Hacker Ethic, Herbert Marcuse, Hernando de Soto, hive mind, Howard Rheingold, interchangeable parts, Isaac Newton, James Watt: steam engine, Jane Jacobs, Jaron Lanier, Jean Tirole, jimmy wales, Johannes Kepler, John Markoff, John von Neumann, Joi Ito, Kevin Kelly, knowledge economy, knowledge worker, lateral thinking, lone genius, M-Pesa, Mark Shuttleworth, Mark Zuckerberg, Marshall McLuhan, Menlo Park, microcredit, Mitch Kapor, new economy, Nicholas Carr, online collectivism, planetary scale, post scarcity, Richard Stallman, Shoshana Zuboff, Silicon Valley, slashdot, social web, software patent, Steven Levy, Stewart Brand, supply-chain management, The Death and Life of Great American Cities, the market place, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, Thomas Kuhn: the structure of scientific revolutions, Tragedy of the Commons, Whole Earth Catalog, Yochai Benkler, Zipcar

The version distributed in March 2000 by Red Hat, which specialises in installing Linux for corporations, had 17 million lines in its source code. One estimate suggests it would have taken 4,500 person-years of work for professional software-coders to develop this, at a cost of about $600 million.8 The version released by Debian in June 2005 had 229 million lines in its source code and would have taken 60,000 person-years of software-coding at a cost of perhaps $8 billion.9 (To put that in context, the version of Microsoft Windows XP released in 2002 had an estimated 40 million lines in its source code.) IBM is just one software company that has recently started investing in shared, open-source platforms such as Linux.

Wheeler, ‘More than a Gigabuck: Estimating GNU/Linux’s Size’, www.dwheeler.com, July 2002. Available from http://www.dwheeler.com/sloc/ redhat71-v1/redhat71sloc.html 9 Juan José Amor-Iglesias, Jesús M. González-Barahona, Gregorio Robles-Martínez and Israel Herráiz-Tabernero, ‘Measuring Libre Software Using Debian 3.1 (Sarge) as a Case Study: Preliminary Results’, UPGRADE6.3, June 2005. Available from http://www.upgrade-cepis.org/ issues/2005/3/up6-3Amor.pdf 10 Steven Weber, The Success of Open Source (Cambridge, MA/London: Harvard University Press, 2004) 11 Thomas Kuhn, The Structure of Scientific Revolutions (University of Chicago Press, 1962), p. 10 12 Richard K.

World of Warcraft: How the virtual world created by this computer strategy game has changed the reality of over 8 million players’ lives. Web 2.0: Exploring the new face of the web, from blogs to wikis through folksonomies, RSS and social networking. BIBLIOGRAPHY Amor-Iglesias, Juan José, Jesús M. González-Barahona, Gregorio Robles-Martínez and Israel Herráiz-Tabernero, ‘Measuring libre software using Debian 3.1 (Sarge) as a case study: preliminary results’, UPGRADE6.3, June 2005. Available from http://www.upgrade-cepis.org/ issues/2005/3/up6–3Amor.pdf Audretsch, David B., Innovation and Industry Evolution (Cambridge, MA/London: MIT Press, 1995) Bak, Per, How Nature Works (New York: Copernicus, 1996) Baldwin, Carliss Y., and Kim B.


pages: 1,065 words: 229,099

Real World Haskell by Bryan O'Sullivan, John Goerzen, Donald Stewart, Donald Bruce Stewart

bash_history, database schema, Debian, distributed revision control, domain-specific language, en.wikipedia.org, Firefox, functional programming, general-purpose programming language, Guido van Rossum, job automation, Larry Wall, lateral thinking, p-value, Plutocrats, plutocrats, revision control, sorting algorithm, transfer pricing, type inference, web application, Yochai Benkler

He has written a number of real-world Haskell libraries and applications, including the HDBC database interface, the ConfigFile configuration file interface, a podcast downloader, and various other libraries relating to networks, parsing, logging, and POSIX code. John has been a developer for the Debian GNU/Linux operating system project for over 10 years and maintains numerous Haskell libraries and code for Debian. He also served as President of Software in the Public Interest, Inc., the legal parent organization of Debian. John lives in rural Kansas with his wife and son, where he enjoys photography and geocaching. Don Stewart is an Australian hacker based in Portland, Oregon. Don has been involved in a diverse range of Haskell projects, including practical libraries, such as Data.ByteString and Data.Binary, as well as applying the Haskell philosophy to real-world applications including compilers, linkers, text editors, network servers, and systems software.

Finally, you should be able to successfully run the ghci command from your shell prompt (see Figure A-5). Figure A-5. Screenshot of the ghci interpreter running in a Terminal window on Mac OS X Alternatives Both the MacPorts and Fink projects provide builds of GHC. Ubuntu and Debian Linux Under both Ubuntu and Debian, you can install a minimal working version of GHC by running sudo aptitude install ghc6 from a shell prompt. These distros maintain a small core GHC package, which is insufficient for much practical development. However, they make a number of additional prebuilt packages available; run apt-cache search libghc6 to find a complete list of these prebuilt packages.

combinator functions, Gluing Predicates Together combining functions, Getting started with the API command-line, Command-Line Editing in ghci, A Simple Command-Line Framework, Reading Command-Line Arguments arguments, reading, Reading Command-Line Arguments editing, Command-Line Editing in ghci commas (,), Lists, Useful Composite Data Types: Lists and Tuples, First Steps with Parsec: Simple CSV Parsing CSV files and, First Steps with Parsec: Simple CSV Parsing tuples, writing, Useful Composite Data Types: Lists and Tuples compact function, Compact Rendering comparison operators, Boolean Logic, Operators, and Value Comparisons, Equality, Ordering, and Comparisons compilers, Your Haskell Environment, Compiling Haskell Source Glasgow Haskell, Your Haskell Environment components (types), Defining a New Data Type composable functors, Thinking More About Functors composite data types, Useful Composite Data Types: Lists and Tuples concat function, More Simple List Manipulations, Left Folds, Laziness, and Space Leaks, The List Monad concurrent programs, Concurrent and Multicore Programming–Conclusions, Hiding Latency, The Main Thread and Waiting for Other Threads–Communicating over Channels, Shared-State Concurrency Is Still Hard–Using Multiple Cores with GHC, A Concurrent Web Link Checker latency, hiding, Hiding Latency main thread waiting for other threads, The Main Thread and Waiting for Other Threads–Communicating over Channels shared-state, Shared-State Concurrency Is Still Hard–Using Multiple Cores with GHC conditional evaluation, Conditional Evaluation–Understanding Evaluation by Example, Conditional Evaluation with Guards constant applicative forms (CAFs), Time Profiling constants, binding C to Haskell, Binding to Constants constraints, Constraints on Type Definitions Are Bad, Constraints on Our Decoder decoding, Constraints on Our Decoder type definitions and, Constraints on Type Definitions Are Bad constructors, Construction and Deconstruction Content-Length field, Parsing Headers continuations, Parsing Headers control-with-character escapes, Control-with-Character Escapes Control.Applicative module, Infix Use of fmap Control.Arrow module, Another Round of Golf control.Concurrent module, Initializing the GUI, Concurrent Programming with Threads concurrent programming with threads, Concurrent Programming with Threads Control.Exception module, The Acquire-Use-Release Cycle, First Steps with Exceptions, Selective Handling of Exceptions Control.Monad module, Another Way of Looking at Monads, Generalized Lifting, Failing Safely with MonadPlus, Writing Tighter Code lifting, Generalized Lifting MonadPlus typeclass and, Failing Safely with MonadPlus Control.Monad.Error module, Usage of the Maybe monad, Monadic use of Either, Error Handling in Monads Control.Monad.Trans module, Designing for Unexpected Uses Control.Parallel module, Transforming Our Code into Parallel Code Control.Parallel.Strategies module, Separating Algorithm from Evaluation Coordinated Universal Time (UTC), ClockTime and CalendarTime cores, Using Multiple Cores with GHC, Understanding Core–Advanced Techniques: Fusion using multiple, Using Multiple Cores with GHC cos function, Numeric Types countEntries function, Stacking Multiple Monad Transformers CSV files, First Steps with Parsec: Simple CSV Parsing–The sepBy and endBy Combinators, The sepBy and endBy Combinators Parsec helper functions and, The sepBy and endBy Combinators ctTZName function, Using CalendarTime ctWDay function, Using CalendarTime ctYDay function, Using CalendarTime currying, using partial functions, Partial Function Application and Currying custom data types for errors, Custom data types for errors c_sin function, Foreign Language Bindings: The Basics D dash (-), as a range character, Filename Matching data keyword, Defining a New Data Type, How to Give a Type a New Identity newtype keyword and, How to Give a Type a New Identity data structures, Defining a New Data Type, The structure, Association Lists–General-Purpose Sequences, Functions Are Data, Too, Taking Advantage of Functions as Data–General-Purpose Sequences functions and, Functions Are Data, Too, Taking Advantage of Functions as Data–General-Purpose Sequences taking advantage of, Taking Advantage of Functions as Data–General-Purpose Sequences data type, defining, Defining a New Data Type–Type Synonyms (see also types) Data.Array module, Introducing Arrays, Folding over Arrays barcode recognition and, Introducing Arrays folding over arrays, Folding over Arrays Data.Bits module, Pretty Printing a String Data.ByteString.Char8 module, Text I/O, The Real Deal: Compiling and Matching Regular Expressions Data.ByteString.Lazy.Char8 module, Text I/O Data.Char module, Transforming Every Piece of Input Data.Dynamic module, Dynamic Exceptions Data.Foldable module, General-Purpose Sequences, Interference with Pure Code Data.Function module, Remembering a Match’s Parity Data.List module, As-patterns, Strictness and Tail Recursion tails function, As-patterns Data.List.lookup function, Association Lists Data.Map module, A Brief Introduction to Maps, Maps–Functions Are Data, Too Data.Monoid module, Lists, Difference Lists, and Monoids Data.Ratio module, Getting Started with ghci, the Interpreter Data.Sequence module, General-Purpose Sequences Data.Traversable module, Interference with Pure Code Data.Typeable module, Dynamic Exceptions database engines, Overview of HDBC Database.HDBC module, Initializing the GUI databases, Using Databases–Error Handling, Connecting to Databases, Simple Queries, Lazy Reading, Database Metadata connecting, Connecting to Databases lazy reading, Lazy Reading metadata, Database Metadata queries, Simple Queries dates, Dates and Times–Extended Example: Piping dates and times, Dates and Times–Extended Example: Piping Daylight Saving Time (DST), ClockTime and CalendarTime -ddump-asm compiler flag, Tuning the Generated Assembly -ddump-simpl compiler flag, Understanding Core, Profile-Driven Performance Tuning deadlocks, Safely Modifying an MVar, Deadlock Dean, Jeffrey, Finding the Most Popular URLs Debian Linux, installing GHC/Haskell libraries, Ubuntu and Debian Linux debugging, Boolean Logic, Operators, and Value Comparisons declarations (module), The Anatomy of a Haskell Module decoding barcodes, Encoding an EAN-13 Barcode deconstructors, Construction and Deconstruction delete function, Getting started with the API DeriveDataTypeable language, Dynamic Exceptions describeTable function, Database Metadata DiffArray type, Modifying Array Elements diffClockTimes function, TimeDiff for ClockTime directories, Directory and File Information disconnect function, Connecting to Databases discriminated unions, The discriminated union div function, Numeric Types do keyword, A Simple Command-Line Framework, Sequencing, Desugaring of do Blocks Monads and, Desugaring of do Blocks sequencing and, Sequencing Doc data type, Generating Test Data doskey command (ghci), Command-Line Editing in ghci double hashing, Turning Two Hashes into Many double quotes ("), writing strings, Strings and Characters, Writing Character and String Literals Double value, Some Common Basic Types, Numeric Types drivers (HDBC), installing, Installing HDBC and Drivers drop function, Functions over Lists and Tuples, Conditional Evaluation dropWhile function, Working with Sublists DST (Daylight Saving Time), ClockTime and CalendarTime duck typing, Static Types dynamic exceptions, Dynamic Exceptions–Error Handling in Monads E EAN-13 barcodes, A Little Bit About Barcodes easyList function, Testing with QuickCheck Either type, Motivation: Boilerplate Avoidance, Use of Either–Exceptions, Monadic use of Either monadic use of, Monadic use of Either elem function, Searching Lists elements function, Generating Test Data ELF object files, Binary I/O and Qualified Imports else keyword, Conditional Evaluation embedded domain specific languages, A Domain-Specific Language for Predicates–Controlling Traversal EmptyDataDecls language extension, Typed Pointers enclose function, Pretty Printing a String endBy function, The sepBy and endBy Combinators #enum construct, Automating the Binding enum keyword (C/C++), The enumeration Enum typeclass, Using CalendarTime enumeration notation, Lists enumeration types, The enumeration environment (programming), Your Haskell Environment environment variables, Environment Variables EOF (end of file), Working with Files and Handles eol function, Lookahead equality tests, The Need for Typeclasses, Equality, Ordering, and Comparisons error function, Handling Errors Through API Design errors, Boolean Logic, Operators, and Value Comparisons, Boolean Logic, Operators, and Value Comparisons, Strong Types, Algebraic Data Types, Reporting Errors, Type Inference Is a Double-Edged Sword, More Helpful Errors, Standard Input, Output, and Error, Handling Errors Through API Design, Reporting Parse Errors, Error Handling, Error Handling–Exceptions, Error Handling with Data Types–Exceptions, Custom data types for errors, Error Handling in Monads, Error Handling API design, handling, Handling Errors Through API Design compiling source code, Type Inference Is a Double-Edged Sword custom data types for, Custom data types for errors handling, Error Handling–Exceptions, Error Handling with Data Types–Exceptions, Error Handling in Monads, Error Handling data types, Error Handling with Data Types–Exceptions databases, Error Handling monads, Error Handling in Monads I/O and, Standard Input, Output, and Error messages, Boolean Logic, Operators, and Value Comparisons, Boolean Logic, Operators, and Value Comparisons, Algebraic Data Types Boolean values and, Boolean Logic, Operators, and Value Comparisons No instance, Boolean Logic, Operators, and Value Comparisons, Algebraic Data Types parsers, handling, Error Handling reporting, Reporting Errors typeclasses, Strong Types, More Helpful Errors ErrorT transformer, Error Handling in Monads escape characters, Strings and Characters escaping text, Escaping Text /etc/passwd file, Extended Example: /etc/passwd–Extended Example: Numeric Types evaluation, Understanding Evaluation by Example–Polymorphism in Haskell, Conditional Evaluation with Guards, Space Leaks and Strict Evaluation–Learning to Use seq conditional with guards, Conditional Evaluation with Guards strict, Space Leaks and Strict Evaluation–Learning to Use seq evaluation strategies, Separating Algorithm from Evaluation event-driven programming, Event-Driven Programming Exception type, First Steps with Exceptions exceptions, Error Handling, Exceptions–Error Handling in Monads, Selective Handling of Exceptions, I/O Exceptions, Throwing Exceptions, Dynamic Exceptions–Error Handling in Monads dynamic, Dynamic Exceptions–Error Handling in Monads I/O (input/output), I/O Exceptions selective handling of, Selective Handling of Exceptions throwing, Throwing Exceptions --exclude flag (hpc), Measuring Test Coverage with HPC executables, creating, Generating a Haskell Program and Importing Modules executeFile function, Using Pipes for Redirection exhaustive patterns, Exhaustive Patterns and Wild Cards explicit recursion, Explicit Recursion exponentiation (**) operator, Undefined Values, and Introducing Variables, Numeric Types exports, The Anatomy of a Haskell Module Exposed-Modules field, Writing a Package Description expressions, Passing an Expression to a Function, Introducing Local Variables functions, passing to, Passing an Expression to a Function let blocks and, Introducing Local Variables external programs, running, Running External Programs extract methods, The Monad Laws and Good Coding Style F fail function, The Monad Typeclass False Boolean value, Boolean Logic, Operators, and Value Comparisons FDs (file descriptors), Using Pipes for Redirection Fedora Linux, installing GHC/Haskell libraries, Fedora Linux fetchAllRowsAL’ function, Lazy Reading fetchAllRows’ function, Reading with Statements FFI (Haskell Foreign Function Interface), Interfacing with C: The FFI–The Real Deal: Compiling and Matching Regular Expressions FFI binding, Compilation Options and Interfacing to C fFlush function, Flushing The Buffer file descriptors (FDs), Using Pipes for Redirection file processing, Efficient File Processing–Putting Our Code to Work filename matching, Filename Matching files, Working with Files and Handles–Extended Example: Functional I/O and Temporary Files, Deleting and Renaming Files, Temporary Files, Efficient File Processing, Filename Matching, Sizing a File Safely–A Domain-Specific Language for Predicates, Directory and File Information, File Modification Times deleting/renaming, Deleting and Renaming Files filename matching, Filename Matching modification times, File Modification Times processing, Efficient File Processing (see file processing) sizing safely, Sizing a File Safely–A Domain-Specific Language for Predicates System.Directory module, using, Directory and File Information temporary, Temporary Files filesystems, I/O Case Study: A Library for Searching the Filesystem–Common Layout Styles searching, I/O Case Study: A Library for Searching the Filesystem–Common Layout Styles filter function, Searching Lists, Selecting Pieces of Input, Filters with interact interact, Filters with interact find command, I/O Case Study: A Library for Searching the Filesystem first function, Another Round of Golf flex, Using Parsec Float type, Numeric Types floating-point numbers, Simple Arithmetic, Lists enumerating, Lists fmap function, Infix Use of fmap, Monads and Functors, Moving Down the Stack monads and, Monads and Functors fold functions, Computing One Answer over a Collection, The Left Fold, Folding from the Right–Left Folds, Laziness, and Space Leaks folding from left, The Left Fold folding from right, Folding from the Right–Left Folds, Laziness, and Space Leaks foldl function, The Left Fold, Folding from the Right–Left Folds, Laziness, and Space Leaks, Left Folds, Laziness, and Space Leaks, Strictness and Tail Recursion foldr function and, Folding from the Right–Left Folds, Laziness, and Space Leaks laziness and space leaks, Left Folds, Laziness, and Space Leaks foldr function, Computing One Answer over a Collection, Folding from the Right–Left Folds, Laziness, and Space Leaks fold’ function, Strictness and Tail Recursion force function, Knowing What to Evaluate in Parallel foreign import declarations, Foreign Language Bindings: The Basics Foreign modules, Foreign Language Bindings: The Basics–Regular Expressions for Haskell: A Binding for PCRE Foreign.C.String module, Foreign Language Bindings: The Basics, Passing String Data Between Haskell and C Foreign.Marshal.Array module, Foreign Language Bindings: The Basics Foreign.Ptr module, Foreign Language Bindings: The Basics ForeignPtr type, Memory Management: Let the Garbage Collector Do the Work forkManaged function, Safe Resource Management: A Good Idea, and Easy Besides forkProcess function, Using Pipes for Redirection forM function, Why Provide Both mapM and forM?


Linux Security Cookbook by Daniel J. Barrett, Richard E. Silverman, Robert G. Byrnes

Debian, GnuPG, MITM: man-in-the-middle, web of trust

Supported Linux Distributions We developed and tested these recipes on the following Linux distributions: Red Hat Linux 8.0, kernel 2.4.18 SuSE Linux 8.0, kernel 2.4.18 Red Hat Linux 7.0, kernel 2.2.22 (for the ipchains recipes in Chapter 2) In addition, our technical review team tested recipes on Red Hat 6.2, SuSE 8.1, Debian 3.0, and Mandrake 9.0. Overall, most recipes should work fine on most distributions, as long as you have the necessary programs installed. Trying the Recipes Most recipes provide commands or scripts you can run, or a set of configuration options for a particular program. When trying a recipe, please keep in mind: Our default shell for recipes is bash.

filename -> rule -i ; For example: /mnt/windows/system -> $(SEC_BIN) -i ; 1.14.3 Discussion Modern Linux kernels do not assign constant inode numbers in VFAT filesystems. 1.14.4 See Also The Tripwire manual has detailed documentation on the policy file format. Recipe 1.15 Verifying RPM-Installed Files 1.15.1 Problem You have installed some RPM packages, perhaps long ago, and want to check whether any files have changed since the installation. 1.15.2 Solution # rpm -Va [packages] Debian Linux has a similar tool called debsums. 1.15.3 Discussion If your system uses RPM packages for installing software, this command conveniently compares the installed files against the RPM database. It notices changes in file size, ownership, timestamp, MD5 checksum, and other attributes. The output is a list of (possibly) problematic files, one per line, each preceded by a string of characters with special meaning.

It doesn't automatically disable viminfo or swap files. You can do this manually by setting the viminfo and swapfile variables, but it's easy to forget and leave decrypted data on the disk as a consequence. 7.24.4 See Also Wouter Hanegraaff's original solution can be found at http://qref.sourceforge.net/Debian/reference/examples/vimgpg. Recipe 7.25 Encrypting Backups 7.25.1 Problem You want to create an encrypted backup. 7.25.2 Solution Method 1: Pipe through gpg. To write a tape: $ tar cf - mydir | gpg -c | dd of=/dev/tape bs=10k To read a tape: $ dd if=/dev/tape bs=10k | gpg --decrypt | tar xf - To write an encrypted backup of directory mydir onto a CD-ROM: #!


Gaming the Vote: Why Elections Aren't Fair (And What We Can Do About It) by William Poundstone

affirmative action, Albert Einstein, business cycle, Debian, desegregation, Donald Trump, en.wikipedia.org, Everything should be made as simple as possible, global village, guest worker program, hiring and firing, illegal immigration, invisible hand, jimmy wales, John Nash: game theory, John von Neumann, Kenneth Arrow, manufacturing employment, Nash equilibrium, Paul Samuelson, Pierre-Simon Laplace, prisoner's dilemma, Ralph Nader, RAND corporation, Ronald Reagan, Silicon Valley, slashdot, the map is not the territory, Thomas Bayes, Tragedy of the Commons, transcontinental railway, Unsafe at Any Speed, Y2K

There are often many candidates for a leadership post, and there are no political parties to vet them. The Linux community appreciated that plurality voting is particularly troublesome under these conditions. In that watershed year 2000, the Debian Project, one of the Linux groups, commissioned a study to determine the best system to use for its internal voting. Three years later, Debian adopted a form of Condorcet voting. 220 last Man Standing The voters fill out a ranked ballot. The software then conducts virtual two-way matches. It essentially asks, if Gore and Bush were the only two candidates running, who would win?

Bush or Buchanan v. Browne. With luck, one candidate beats all others in two-way matches. This candidate is the winner. Otherwise, there's more work to do. When there is no Condorcet winner, there must be a scissors-paper-stone cycle. A tiebreaker method is used to decide which candidate wins. The one used by Debian was devised by German theorist Markus Schulze in 1997. It often goes by a name that only a coder could love: cloneproof Schwartz sequential dropping. That's CSSD for short. ("Schwartz" refers to another social choice theorist, Thomas Schwartz.) Condorcet voting, often the CSSD variety, has been widely adopted by other online communities.

., 26-28, 118, 119, 134-35,148,166,264 Constitutional Union Party, 64 Constitution Party, 117-18, 119,129, 217,274 consuItants, political, 21-22, 79,92-108, 109.125.130,182,277 Conway, John Horton, 236 Cmsh, 138-39 cumulative voting, 263, 282, 287, 288 Cunningham, Randy "Duke," 120 Cuomo, Mario, 102 Darnlon, Robert, 134 Daunou, P.C,F., 146 Davis, Jefferson, 66 Davis, Richard H" 81 Davis, William. 66 Dean, Howard, U6, 264-65, 292 Debian Project, 220-21 Debs, Eugene V, 72, 73, 108-10 De Concordantia Cmholka (Nicholas of Cusa),147 329 Index de Leeuw, Nick, liS democracy, 28-29, 43, 44, 5L 53-55, 92, 137,148,180-83,205,221,242,244, 258,261-78,282-83,287 Democracy in America (Tocqueville), 163 Democratic National Commillee (DNe), 126 Democratic National Convention (1860), 63 Democratic Pany: black support for, 175-76; congressional majorities of, 280-82; economic policies of, 70, 12, 87-88; liberal suppon for, 78-79, 81~91, 98,100,124, i'll, 213-14, 263; primaries of, 5-20,98, 101, 110-1 I, 175-76; Southern support for, 11, 63-64,67,70,71,179,184; spoilers financed by, 119, i26, 127-30, 178, 213, 279-80; in two-party system, 20, 56,59-60,62,64,64,71-72,75, 89~91, 108, Ill, 114, 119, 205~206, 269, 275-76; voting reform and, 264-65 Democratic-Republican Party, 218 Dendahl, John, 110 deterrence policy, 42, 214 Dewey, Thomas E., 43 dictatorship, 25, 27, 28-29, 43, 44, 49-50,53-55 dire.


pages: 174 words: 34,672

Nginx Essentials by Valery Kholodkov

Debian, en.wikipedia.org, web application

Because of the difference in the architecture, the management procedures for a clustered setup are slightly different than for a standalone instance. We will discuss these differences soon. Starting and stopping Nginx In the previous chapter, you learned a bit about how to start your Nginx instance. On Ubuntu, Debian, or Redhat-like systems you can run the following command: # service nginx start In the absence of startup scripts, you can simply run the binary using the following command: # sbin/nginx Nginx will read and parse the configuration file, create a PID file (a file containing its process ID), open log files, create listening sockets, and start worker processes.

Typical signs of such problems are as follows: A process spends too much time in the running state (R) and does not shut down A process spends too much time in the noninterruptible sleep state (D) and does not shut down A process is sleeping (S) and does not shut down In each of these cases, you can force the worker process to shut down by first sending the TERM signal directly to the worker process. If the worker process does not react within 30 seconds, you can force the process to quit by sending it the KILL signal. Distribution-specific startup scripts On Ubuntu, Debian, and RHEL, the startup script automates the preceding control sequences. By using the startup script, you don't need to remember the exact sequence of the commands and signal names. The following table illustrates the use of the startup script: Command Equivalent to service nginx start sbin/nginx service nginx stop TERM, wait 30 seconds, then KILL service nginx restart service nginx stop and service nginx start service nginx configtest nginx -t <config file> service nginx reload service nginx configtest and HUP service nginx rotate USR1 service nginx upgrade USR2 and QUIT to the old master service nginx status show status of the instance The binary upgrade procedure is limited to starting the new binary and signaling the old master process to gracefully shut down, so you don't have an option to test-drive the new binary in this case.


pages: 139 words: 35,022

Roads and Bridges by Nadia Eghbal

AGPL, Airbnb, Amazon Web Services, barriers to entry, Benevolent Dictator For Life (BDFL), corporate social responsibility, crowdsourcing, cryptocurrency, David Heinemeier Hansson, Debian, DevOps, en.wikipedia.org, Firefox, GnuPG, Guido van Rossum, Khan Academy, Kickstarter, Marc Andreessen, market design, Network effects, platform as a service, pull request, Richard Stallman, Ruby on Rails, side project, Silicon Valley, Skype, software is eating the world, Tragedy of the Commons, Y Combinator

These numbers help provide some metrics for relative popularity, but can also be misleading. Plenty of people could star a project, for example, because it is conceptually interesting, but not actually use it in their code. Some package managers like npm (which is used for Node.js) track downloads. Debian Popularity Contest tracks downloads of packages related to the free operating system Debian. Each package manager is limited to a particular ecosystem, however, and no one package manager can paint a picture of the system at large. Many projects are not part of a package manager and go untracked. Libraries.io, a website created by Andrew Nesbitt, is one effort to aggregate data open source projects and provide more data around their usage; it tracks over 1.3M open source libraries across 32 package managers. [194] Working with projects to modernize workflows Many projects struggle not just due to lack of funding, but because the projects are difficult to contribute to, or suffer a bottleneck from maintainers, who meticulously review and accept pull requests from the community.


pages: 1,266 words: 278,632

Backup & Recovery by W. Curtis Preston

Berlin Wall, business intelligence, business process, database schema, Debian, dumpster diving, failed state, fault tolerance, full text search, job automation, Kickstarter, side project, Silicon Valley, web application

The packages install the Bacula configuration files for Linux in /etc/bacula, as mandated by the Linux Standard Base (LSB). For ease of installation, we’ll use the SQLite database (in a production network, you would use MySQL or PostgreSQL). Tip Bacula is also available in Debian and other packaging formats. Although the version of Bacula available in Debian Sarge is ancient, Debian Etch is tracking recent Bacula releases, and backports of new Bacula versions to Sarge exist. For our simple example, just rename the default client ID of Client1 to test1, and define a FileSet resource using the following line: File = /etc Tip A FileSet specifies files to back up for a given Job.

If you are upgrading for the first time to version 3.0 or later, the configure.pl script continues to use the original locations for the data store, configuration files, and program executables. Installation packages An alternative to the manual installation procedure described here is to find and install a BackupPC package specific to your operating system. Packages exist for Debian, Ubuntu, Gentoo, and others. For example, BackupPC can be installed on Debian with: # apt-get install backuppc Starting BackupPC The BackupPC server is started by using the init.d script created as part of the installation. This means it is automatically started after a reboot. Using the CGI Interface By default, the CGI interface should be accessible via the URL http://localhost/cgi-bin/BackupPC/BackupPC_Admin.

A major university in the United Kingdom has two Amanda servers on Fedora Core with more than 100 Linux (Fedora Core, Red Hat Enterprise Linux), Mac OS X, and Solaris clients with more that 2 TB of data. One of the Amanda servers is dedicated to backup of SAP and Oracle on Solaris. A cinematographic post-production company has three Debian Amanda servers at two sites protecting 84 Linux and IRIX clients with 26 TB of data. It recovers files about twice per week due to user error. In three years of production, it had three instances of total volume loss despite using RAID arrays, and Amanda was able to recover all three lost volumes.


pages: 266 words: 79,297

Forge Your Future with Open Source by VM (Vicky) Brasseur

AGPL, anti-pattern, Benevolent Dictator For Life (BDFL), call centre, continuous integration, Debian, DevOps, don't repeat yourself, en.wikipedia.org, Firefox, Guido van Rossum, Internet Archive, Larry Wall, microservices, Perl 6, premature optimization, pull request, Richard Stallman, risk tolerance, Turing machine

→ Rikki Endsley Community Manager, Opensource.com, Red Hat Wonderfully readable, not only as a practical manual, but as an engaging and inspirational introduction to the world of free software, one practical and people-oriented example at a time. This is the book I wish I had read many years ago. → Chris Lamb Debian Project Leader I’ve been working in open source for almost two decades. I went to Microsoft a decade ago to open-source .NET and C#. I wish I’d had a copy of VM’s book. This book offers valuable historical context and practical guidelines on how and when to work on an Open Source project. Forge Your Future with Open Source will no doubt empower the next generation of contributors and I’m envious of their bright futures!

→ Cat Allman Board Member, USENIX Contributing to a free software project is one of the best ways to help the free software movement, and this book is the comprehensive, self-contained guide you need to get started. Brasseur skillfully balances depth and breadth, homing in on key points around the mechanics of contributing as well as the oft-neglected meta areas of effective communication, licensing, and employment ramifications. → John Sullivan Debian Developer Forge Your Future with Open Source goes where no book has gone before, clearly teaching how to get started as a contributor to open source, explaining why contributing is valuable and rewarding, and exploring the technical and social challenges both new and experienced contributors face, in an honest and practical way

It also has a welcome side effect of helping us become better human beings, which is something we all need. Sometimes these meetups take the form of a conference or event. Not all large, free and open source projects will hold a conference, but if they do, the event tends to be quite large and international in scope. DebConf—for the Debian Linux distribution—and ApacheCon—for projects supported by the Apache Software Foundation—take place yearly and draw several hundred attendees each. The OpenStack community holds multiple events each year. The OpenStack Project Teams Gathering (PTG) also occurs twice a year. Focused purely on design and development of the next version of OpenStack, the PTG attracts many hundred community members and contributors.


pages: 302 words: 73,946

People Powered: How Communities Can Supercharge Your Business, Brand, and Teams by Jono Bacon

Airbnb, barriers to entry, blockchain, bounce rate, Cass Sunstein, Charles Lindbergh, Debian, Firefox, if you build it, they will come, IKEA effect, Internet Archive, Jono Bacon, Kickstarter, Kubernetes, lateral thinking, Mark Shuttleworth, Minecraft, minimum viable product, more computing power than Apollo, planetary scale, pull request, Richard Stallman, Richard Thaler, sexual politics, Silicon Valley, Travis Kalanick, Y Combinator

Stallman kicked off the GNU community, who started making free software and sharing the code on the Internet.3 It was a magical combination: most of the people online back then were techies and programmers. People started to download this code, which was simply digital text, improve it, and share their results with others of a nerdy persuasion. A small library of free tools started to build. This jump-started other communities such as Linux, Apache, Debian, and more. The Internet became a place where people didn’t just consume knowledge and have discussions; it was also a place where people could build things together. This set off a chain reaction. People built software, shared knowledge, produced educational materials, started websites, and more.

“Our method of working across multiple open-source communities hasn’t just allowed us to survive; it’s enabled us to actually thrive as new technological shifts have occurred. Our innovative technologies are an output of our organizational culture—our people—who give us the ability to adapt and rebound in the wake of disruptive change.”29 Red Hat doesn’t operate alone. The global open-source community has produced tools such as Linux, Kubernetes, OpenStack, Apache, Debian, Jenkins, GNOME, and others that have had a profound impact on various industries, powering clouds, devices, vehicles, space shuttles, and more. Why do these companies invest in creating code that is shared freely? There are many reasons. Open code means you can attract new contributors who produce features, fix bugs, and improve the overall security of a product.

Index Abayomi, 1–3, 7, 9, 19, 35, 278 abuse of system, 158, 217, 233, 234 access, 7–8, 16–17, 54–55, 225, 226 accountability, 139, 146, 148, 149 actions, tracking, 158–59 active participation, 109 adaptability, 176–77, 268–69 Adobe, 244 advertising, 195–96 advocacy, 23–24, 49, 111 Airbnb, 57 ambiguity, 155–56 American Physical Society, 139 Amnesty International, 18 Anderson, Chris, 46, 47 Android platform, 65 Ansari XPRIZE, xviii Apache, 6, 26 Apple, 6, 58, 128 approachability, 69–70 Ardour, 44, 52, 66 Areas of Expertise, 172–75 Ariely, Dan, 17 assets, building, 68–69 assumptions, 137, 271 asynchronous access, 54 attendance, 157 attendees, summit, 247–49 audience personas, 100, 108–19 in Bacon Method, 33 choosing, 109–12 content for, 194–95 creating, 114–16 examples of, 116–19 on Incentives Map, 230–32 On-Ramp Model for, 131, 135–38 Participation Framework for, 130 prioritizing, 112–13 productive participation by, 162–67 and relatedness, 107 audience(s) access to, 7–8 assumptions about, 137 and community strategy, 13 irrational decision making by, 101–8 for local communities, 5 surprising, 73–74 understanding your, 33, 99–100 authenticity, 75, 111, 183, 224 authority, 55–56, 200–201 Author persona, 166–67 automated measuring of condition, 217–18 autonomy, 105–6, 123 awareness, 22–24, 59–61, 192 Axe Change service, 14 Axe-Fx processors, 49–50 backlog, 150–51 Bacon Method, 32–34 Bahns, Angela, 47 Bassett, Angela, 237 Battlefield, 24, 128, 228 behavioral economics, 102–4 Bell, Alexander Graham, 153 belonging, sense of, 15, 18, 20, 143, 187, 215 Bennington, Chester, 183, 184 Big Rocks, 33, 88–96 and cadence-based cycles, 168–70 in community strategy, 94–95 and critical dimensions, 157, 161 defined, 88–89 departmental alignment on, 263 examples of, 91–94 format and key components of, 89–91 and Quarterly Delivery Plan, 34, 145–46, 148, 149 realistic thinking about, 95–96 Black Lives Matter, 18 blocked (status), 147 blogs, 193, 275 Bosch, 13 brand awareness, 24, 59–60 brand recognition, 85 Branson, Richard, 190 Buffer, 214 Build Skills stage, 132, 136, 137 business cards, 241–42 buy-in, 67, 85 cadence, operating on, 34, 264–66 Cadence-Based Community Cycle, 167–70, 264 Canonical, 1, 121, 151, 167, 245 capabilities, persona, 114, 116–18 Capital One, 13 career experience, 83 CasinoCoin, 244 Casual members, 129, 140–42 advancing, 196–97 engagement with, 198–99 incentivizing, 219, 221, 226–27 maturity model for, 166 mentoring, 203 CEOs, reporting to, 260 certainty, 105 Champions model, 49–52, 63–64, 66–67, 113, 260 chat channel, 250 check-ins, 267 civility, 187 clarity, 69–72, 138–39, 234 closing party, 250 coaching, 82–83, 205–6 Coca-Cola, 57 Coffee Bean Rewards app, 145 Colbert, Stephen, 73–74 collaboration, 8–9, 74–75, 185–86 Collaborators model, 52–56, 64–67, 86, 260, see also Inner Collaborator community; Outer Collaborator community commitment, 122 communication, 121 Community Associate, 255 Community Belonging Path, 16–20 community building, 14 additional resources on, 274–76 Bacon Method of, 32–34 as chronological journey, 127–28 consultations on, 276–77 continuing to learn about, 272–74 defining your value for, 77–78 end-to-end experience in, 125–26 fundamentals of, 15–16 getting started with, 37–38, 62 key principles of, 67–74 monitoring activities related to, 206–8 risks associated with, 154–55 tools for, 8 see also successful community building community–community engagement, 157 community culture, 30–31, 70–72, 179–88 Community Director, 254–58, 260 Community Engagement Model(s), 49–67 in Bacon Method, 33–34 Champions model, 49–52 Collaborators model, 52–59 and Community Value Statement, 80 Consumers model, 45–48 importance of selecting, 43–45 and marketing/public awareness, 59–61 scenarios for selecting, 61–67 Community Evangelist, 255 community(-ies) defined, 13–15 digital, 2–3, 5–13, 237 experimenting in, 123 foundational trends in, 7–9 future of, 35, 277–79 local, 3–5 power of, 7 social dynamics of, 15–16 value generated by, 20–29 Community Launch Timeline Template, 191 Community Leadership Summit, 179, 239 community management staff, 254–61 Community Managers, 78, 125, 126, 195, 255–56, 260–61 Community Mission, 40–43, 169 Community Mission Statement, 42, 80, 113 Community On-Ramp Model, 33–34, 130–38 community overview cards, 241–42 Community Participation Framework, 128–45 building community based on, 151–52 and building engagement, 138–44 Community On-Ramp Model in, 130–38 described, 128–30 engagement strategy to move members along, 196–206 focusing on creativity and momentum in, 209 incentives and rewards in, 145 incentives on, 211–13 incentivizing transitions in, 218–22, 226–27 mentoring in, 202–6 Community Personal Scaling Curve, 184 Community Persona Maturity Model, 163–67 Community Promise, 70–71 Community Specialist, 255 community strategy, 30 Big Rocks in, 94–95 changing, 96, 208 control over and collaboration on, 74–75 Core members’ contributions to, 201 execution of, 253–54 importance of, 13 integration of, in organization, 261–68 learning from implementation of, 268–69 planning, 39 Regular members in, 143 risks with, 29–32 and SCARF model, 105–8 variability in, 30 community summits, 245–51 finalizing attendees and content for, 247–49 follow through after, 250–51 running, 249–50 structure for, 246–47 community value, 164–67 Community Value Proposition, 175 Community Value Statement, 80–88 and Big Rocks, 89, 95 in cadence-based cycle, 169 maintaining focus on, 97 and on-ramp design, 135–36 prioritizing audience personas based on, 113 updating, 83–84, 87–88 value for community members in, 80–84 value for organization in, 84–88 company–community engagement, 157 competitions, 194 complete (status), 147 CompuServe, 5 conditions, for incentives, 216–18, 230–32 Conference Checklist, 241 conferences, 194, 195, 239, 240–43 connection(s) desire for, 9 for Regular members, 200 constructive criticism, 122–23 consultations, on community building, 276–77 Consumers model, 45–48, 62–63, 260 content for community summits, 247–49 in Growth Strategy, 192–95 for launch, 189 as source of value, 82 Content Creators (persona), 110–11, 113–15 content development in Champion communities, 49–50 in Collaborator communities, 52–56 by communities, 26–27 as source of value, 82, 86–87 contests, 194 contributions, to communities, 17, 19 control over community strategy, 74–75 over Regular members, 143 co-organizing events, 239 Core members, 129, 140 advancement for, 196–97 characteristics of, 143–44 at community summits, 242 engagement with, 201–2 incentivizing, 215, 219–20, 222, 227 maturity model for, 165, 166–67 mentoring for, 203, 205 percentage of, 141 creativity, 209 critical dimensions, 156–58, 161 criticism, 122–23, 176 cross-functional communities, 88 crowdfunding, 23–24 Cruz, Ted, 73–74 culture, community, see community culture Culture Cores, 181–88 customer engagement, 20–22 customer growth, as source of value, 85 Customer Relationship Management (CRM) system, 21 Cycle Planning, 168 Cycle Reviews, 268 dashboards, 160–61 data analysis, 207, 208 Davis, Miles, 182 Debian, 6, 26 decision making irrationality of, 101–8 pragmatism about, 184 SCARF model of behavior, 104–8 System 1 and 2 thinking, 102–3 unpopular decisions, 186 decision paralysis, 38, 106 dedicated events, organizing, 239–40 delayed (status), 147 delivery commitment to, 263–64 successful, 162, 167–70 delivery, as critical dimension, 157 delivery plans, see Quarterly Delivery Plan demonstrations, 194, 244 departmental alignment, 263–64 developer community, Big Rocks for, 93–94 Developer Relations personnel, 255 Developers (persona), 111, 114, 115 Diamandis, Peter, 40 Dickinson, Emily, 211 difficulty, of condition, 217 diffusion chain, 54 Digg, 12–13 digital communities early, 5–7 evolution of, 9–13 foundational trends in, 7–9 in-person events for, 237 as local and global communities, 2–3 digital interaction, and in-person events, 251 digital training, 243–44 dignity, 17 discipline, for community building, 31 Discourse, 66, 228, 233, 267 discovery, in gamification, 233 discussion forums, 49 Disney, 128 Docker, 12, 56 documentation, 274 domain expertise, 256, 257 Dreamforce conference, 22 Drupal, 204 Early Adopter program, 189–90 Editorial Calendar, 192–95 education (about product or service) in communities, 24–25 as source of value, 82 efficiency, as critical dimension, 157 ego calibration, 234–35 empathy, 186–87 employees openness for, 182–83 training and mentoring for, 266–68 empowerment, 55–56, 222 end-to-end experience, 59, 125–26 engagement as Area of Expertise, 174 Big Rocks related to, 93–94 with community, 72 in Community On-Ramp Model, 133–34, 136, 137 and Community Participation Framework, 138–44 in Community Participation Framework, 129 at conferences, 242 critical dimensions related to, 157 customer and user, 20–22 and Growth Strategy, 192 positivity and, 185 quality of, 159 rules for engaging with community members, 119–22 and submarine incentives, 226 and understanding audience, 99–100 Engagement Strategy, 181, 196–206 engineering department, community leadership staff reporting to, 260 equal opportunity, in Collaborator communities, 55, 58–59 estimated units, on Incentives Map, 231, 232 Event Evolution Path, 238–40 Event Organizers (persona), 111, 114–15, 117–18 events in-person, see in-person events online, 193 Everett, Noah, 224 execution of community strategy, 253–54, 268 successful, 162, 167–70 expectations clear, 70–72 in gamification, 234 in great experience, 127 related to Big Rocks, 95–96 experience, of audience persona, 114, 116, 118 experimentation, 123, 171 to build organizational capabilities, 206–8 with events, 251 expertise of community leadership staff, 256, 257 of community members, 28 in digital communities, 8 as source of value, 83 Exploding Kittens game, 24 extrinsic rewards, 214, 215, 216 on Incentives Map, 231 submarine incentives for, 224–25 Facebook, 13, 24 failure, as opportunity for improvement, 151 fairness in SCARF model, 107–8 of submarine incentives, 225 Fans as audience persona, 110, 113 community model for, 44, 62–63 fears, of audience persona, 114–15, 117, 118 Fedora, 66, 264 feedback about audience personas, 116 on Big Rocks, 94–95 from communities, 72–73 and community culture, 186 from Core members, 202 on mission statement, 41 on Organizational Capabilities Maturity Model, 176 in peer-based review, 204 from Regular members, 143, 200 Figment community, 10 Final Fantasy, 128 financial commitment, and creating value, 96 Firefox, 23, 209 Fitbit, 139, 145 focus for community building, 31 on Community Value Statement, 97 follow through after community summits, 250–51 after conferences, 242–43 formal experience, 114 forums, 91–92, 158 founders, community leadership staff reporting to, 260 Four Rules for Measuring Effectively, 156–61 Fractal Audio Systems, 14–15, 49–50 freeloaders, 54 fun, in community experience, 84 gamification, 232–35 Garmin, 190 GitHub, 24 global communities, digital communities as local and, 2–3 Global Learning XPRIZE Community, 189 GNOME, 26 GNU community, 6 goals for community summit sessions, 249 of Core members, serving, 202 for employee participation with community, 267 in incentives, 214 on Incentives Map, 230–32 for new hires, 259 Google, 13, 57, 58, 65, 128 Gordon-Levitt, Dan, 11–12 Gordon-Levitt, Joseph, 11–12, 219 governance, in Inner Collaborator communities, 66 gratification, 120, 127 group dynamics, 100, 119–22 group experiences, referral halo for, 61 grow, willingness to, 257 Growth (Area of Expertise), 174 growth, as critical dimension, 157 Growth Strategy, 181, 188–96 growth plan, 192–96 launch plan, 189–91 guest speakers, 238–39 habits, building, 142, 267 HackerOne, 69–70, 194, 214 Harley Owners Group, 132 help asking community members for, 120, 144 as source of value, 82 high-level objectives, see Big Rocks hiring, 27–29, 256 hiring away approach, 258–59 HITRECORD, 11–12, 219 Hoffman, Reid, 152 HomeRecording.com community, 81 humility, 187, 257 hypothesis testing, 207–8, 271–72 IBM, 6 idealism, 153–54 IGN (Imagine Games Network), 47–48 Ikea Effect, 101–2 impact in Community Belonging Path, 18 and Engagement Strategy, 199 multiplying, with communities, 2, 3, 9 imperfections, 188 imposter syndrome, 142 inauthentic participation, 233 incentives, xvii–xviii, 197 in Community Participation Framework, 145 on Community Participation Framework, 211–13 components of, 213–18 in Growth Strategy, 196 maintaining personal touch with, 235 in Outer Collaborator communities, 65 power of offering, 213–18 stated vs. submarine, 218–27 Incentives Map, 34, 229–32 Incentive Transition Points, 218–19 stated incentives for, 221–22 submarine incentives for, 226–27 incentivization building engagement with, 140 in Community Participation Framework, 130 Incubation stage, 171, 172 independent authenticity, 111 Indiegogo, 23 individual value, 164–67 influence, psychological importance of, 71 Influencing phase (Product Success Model), 52 information in community, 121 in digital communities, 8 infrastructure, for launch, 189 Inner Collaborator community, 56–58, 65–67, 86, 229 Inner Developers (persona), 111 in-person events community summits, 245–51 conferences, 240–43 and digital training vs. training workshops, 243–45 Event Evolution Path and strategy for, 238–40 fusion of digital interactions and, 251 in Growth Strategy, 195 launch, 190–91 in local communities, 4–5 managing, 237–38 value of, 77–78 in progress (status), 147 insight, from communities, 28, 72–73 intangible value, 78–79, 83 Integration stage, 171–72 Intel, 57 intentionality, 39, 69–70, 187 Intention stage, 171, 172 internal communities, 13 Community Engagement Model for, 66–67 importance of culture for, 180 personal interaction in, 185 value of, for community members, 83 Internet, 5–7, see also digital communities Internet Explorer, 23 intrinsic rewards, 215, 224–25 involved teams, on Quarterly Delivery Plan, 147, 148 Iron Maiden, 39 Jeep, 139 Jenkins, 26 job candidates, community members as, 27–29 job descriptions, community leadership staff, 258 Jokosher, 199 jQuery, 204 Kahneman, Daniel, 102 karma (Reddit), 228 Key Initiatives, for Big Rocks, 90, 91–93 keynote addresses, 245–47 Key Performance Indicators (KPIs), 90–94 cadence-based cycles for delivery of work on, 169, 170 on Quarterly Delivery Plan, 146, 148–50 tracking progress on, 159–60, 160–61 Kickstarter, 12, 23 Kubernetes, 26, 53, 66, 134, 204 labor, community members as source of, 120 The Late Show with Stephen Colbert (television series), 73–74 launch event, 190–91 launch plan, 189–91 leaders, community, 3, 4 leadership as Area of Expertise, 174 and autonomy in organizations, 123 clear and objective, 69–70 in community culture, 186 community involvement by, 262 by Core members, 144 in Inner Collaborator communities, 66 leadership value, 165, 167 lead generation, 28–29 A League of Their Own (film), 39 learning about community building, 272–74 from community strategy implementation, 268–69 Learning phase (Product Success Model), 51 Lego, 9, 10 Lego Ideas, 10 Lenovo, 57 Leonardo da Vinci, 37 Lindbergh, Charles, xvii Linkin Park, 183 Linux, 6, 26, 273–74 Linux Foundation, 26, 74 live stream, 250 local communities decline of, 3–5 digital communities as global and, 2–3 The Long Tail (Anderson), 46 Ma, Jack, 77 Ma Jian, 125 Make:, 195 Management (Area of Expertise), 173–74 marketing, 22–24 audience personas in, 108–9 and Community Engagement Model, 59–61 as source of value, 85 marketing department, community leadership staff reporting to, 260 Mastering phase (Product Success Model), 51–52 Mattermost, 214 maturity models, 34 Community Persona Maturity Model, 163–67 Organizational Capabilities Maturity Model, 171–76 meaningful work, 9, 17–18, 27, 41 measurable condition, 217 measurable goals, 160 measurable value, in Community Persona Maturity Model, 164–65 measuring effectively, rules for, 156–61 meeting people, as source of value, 82 meetings after conferences, 242–43 with conference attendees, 241 in local communities, 4–5 Meetup.com, 133 meetups, organizing, 239 mentoring for Casual members, 142 for community-building employees, 267–68 for community leadership staff, 256 by community members, 29 in Community Participation Framework, 202–6 of new hires, 259 as source of value, 82–83 meritocracy, 55 message boards, 5–6 Metal Gear Solid, 128 Metrics (Area of Expertise), 175 Mickos, Mårten, 69–70, 74, 262 Microsoft, 6, 13, 23 Minecraft, 25 Minecraft Forum, 25 Minecraft Wiki, 25 Minimum Viable Product, 68–69 mission statements, 32, 42, 80, 113 momentum, in Engagement Strategy, 198 momentum effect, 209 in Growth Strategy, 188, 195 in marketing and brand/product awareness, 60–61 motivations for audience persona, 114, 117, 118 for community members, 119–20 Mozilla, 23 MySpace, 12–13 NAMM music show, 239 need, for community, 30 networking, 28–29, 242 New York Times, 23 Nextcloud, 134 niche interests, 45–47 Nintendo, 9, 228 norms, cultural, 70, 130, 180, 182 notification, 147, 148 not started (status), 147 objectives, see also Big Rocks objectivity, of leadership, 69–70 onboarding, 107 in Community Participation Framework, 129 Community Persona Maturity Model for members in, 164, 165–66 gamification for, 233 importance of, 130–31 in Outer Collaborator communities, 65 online events, 193 On-Ramp members, incentivizing, 218–19, 221, 226–27 openness, 182–84 open-source code, 26, 53 open-source communities, 57–58, 261 Open Source community, 10 OpenStack, 26 optimization, in Engagement Strategy, 199–200 Optimizing phase (Product Success Model), 51 organizational capabilities building, with communities, 27–29 cadence-based cycles for building, 265–66 executing strategy to build, 253–54 experimentation to build, 206–8 success in terms of building, 162, 171–76 organizational experience, of community members, 122 organizational values, and community culture, 182–88 organizations community members as labor for, 120 identifying value for, 84–88 integration of community strategy in, 261–68 internal communities at, 13 leadership and autonomy in, 123 Orteig Prize, xvii Outer Collaborator community, 56–59, 64–65, 86 Outer Developers (persona), 111–12, 136–37 Owner of Big Rocks, 90, 91 in cadence-based cycles, 168–69 on Incentives Map, 231, 232 on Quarterly Delivery Plan, 147, 148 Participant Rewards Peak, 215–16 participation active, 109 audience personas and types of, 109 by Casual members, 142 in Consumer communities, 48 inauthentic, 233 productive, 162–67 PayPal, 13, 57 Pebble Smartwatch, 23 peer-based review, 203–5 peer-review process, 55 peer support, 139–40 peer value, 164–67 Peloton, 133, 233 Penney, James Cash, 253 people person, 256–57 perfection, 268–69 performance review, community engagement in, 262 permanence, of communities, 14 personal interaction, 184–85, 199 personal touch with incentives, 235 and submarine awards, 222–26 personal validation, 120, 224–25 personas, audience, see audience personas Photoshop “Magic Minute” videos, 244 PlayStation, 233 podcasts, 194 Pop!


pages: 157 words: 35,874

Building Web Applications With Flask by Italo Maia

continuous integration, create, read, update, delete, Debian, en.wikipedia.org, Firefox, full stack developer, minimum viable product, MVC pattern, premature optimization, web application

All the examples and code are aimed at that Python version, which is the default in most Linux distributions. Prerequisites and tools First, let's make sure our environment is properly configured. For this course, I assume you are using a Debian-like Linux distribution, such as Mint (http://www.linuxmint.com/) or Ubuntu (http://ubuntu.com/). All the instructions will be geared towards these systems. Let's begin by installing the required Debian packages with apt-get as follows: sudo apt-get install python-dev python-pip This will install the Python development tools and libraries required for compiling Python packages, and pip: a neat tool you can use to install Python packages from the command line.


pages: 761 words: 80,914

Ansible: Up and Running: Automating Configuration Management and Deployment the Easy Way by Lorin Hochstein

Amazon Web Services, cloud computing, continuous integration, Debian, DevOps, domain-specific language, don't repeat yourself, general-purpose programming language, Infrastructure as a Service, job automation, MITM: man-in-the-middle, pull request, side project, smart transportation, web application

Here’s how you would use the ec2 and wait_for modules in concert to start an instance and then wait until the instance is ready to receive SSH connections: - name: start the instance ec2: image: ami-8caa1ce4 instance_type: m3.medium key_name: mykey group: [web, ssh, outbound] instance_tags: { type: web, env: production } wait: yes register: ec2 - name: wait for ssh server to be running wait_for: host={{ item.public_dns_name }} port=22 search_regex=OpenSSH with_items: ec2.instances This invocation of wait_for uses the search_regex argument to look for the string OpenSSH after connecting to the host. This regex takes advantage of the fact that a fully functioning SSH server will return a string that looks something like Example 12-11 when an SSH client first connects. Example 12-11. Initial response of an SSH server running on Ubuntu SSH-2.0-OpenSSH_5.9p1 Debian-5ubuntu1.4 We could invoke the wait_for module to just check if port 22 is listening for incoming connections. However, sometimes an SSH server has gotten far enough along in the startup process that it is listening on port 22, but is not fully functional yet. Waiting for the initial response ensures that the wait_for module will only return when the SSH server has fully started up.

You create a new Docker image by taking an existing Docker image and modifying it by adding, modifying, and deleting files. The representation for the new Docker image contains a reference to the original Docker image, as well as the file system differences between the original Docker image and the new Docker image. As an example, the official nginx docker image is built as layers on top of the official Debian Wheezy image. The layered approach means that Docker images are smaller than traditional virtual machine images, so it’s faster to transfer Docker images over the Internet than it would be to transfer a traditional virtual machine image. The Docker project maintains a registry of publicly available images.

., /tmp/ssh-FShDVu5924/agent.5924). However, if you do sudo, then the SSH_AUTH_SOCK environment variable won’t carry over unless you explicitly configure sudo to allow this behavior. To allow the SSH_AUTH_SOCK variable to carry over via sudo to the root user, we can add the following line either to the /etc/sudoers file or (on Debian-based distributions like Ubuntu) to its own file in the /etc/sudoers.d directory. Defaults>root env_keep+=SSH_AUTH_SOCK Let’s call this file 99-keep-ssh-auth-sock-env and put it in the files directory on our local machine. Validating Files The copy and template modules support a validate clause.


pages: 282 words: 79,176

Pro Git by Scott Chacon

Chris Wanstrath, continuous integration, creative destruction, Debian, distributed revision control, GnuPG, pull request, revision control

It is also the case that many Linux distributions contain very old packages; so unless you’re on a very up-to-date distro or are using backports, installing from source may be the best bet. To install Git, you need to have the following libraries that Git depends on: curl, zlib, openssl, expat, and libiconv. For example, if you’re on a system that has yum (such as Fedora) or apt-get (such as a Debian based system), you can use one of these commands to install all of the dependencies: $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev When you have all the necessary dependencies, you can go ahead and grab the latest snapshot from the Git web site: http://git-scm.com/download Then, compile and install: $ tar -zxf git-1.6.0.5.tar.gz $ cd git-1.6.0.5 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install After this is done, you can also get Git via Git itself for updates: $ git clone git://git.kernel.org/pub/scm/git/git.git Installing on Linux If you want to install Git on Linux via a binary installer, you can generally do so through the basic package-management tool that comes with your distribution.

For example, if you’re on a system that has yum (such as Fedora) or apt-get (such as a Debian based system), you can use one of these commands to install all of the dependencies: $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev When you have all the necessary dependencies, you can go ahead and grab the latest snapshot from the Git web site: http://git-scm.com/download Then, compile and install: $ tar -zxf git-1.6.0.5.tar.gz $ cd git-1.6.0.5 $ make prefix=/usr/local all $ sudo make prefix=/usr/local install After this is done, you can also get Git via Git itself for updates: $ git clone git://git.kernel.org/pub/scm/git/git.git Installing on Linux If you want to install Git on Linux via a binary installer, you can generally do so through the basic package-management tool that comes with your distribution. If you’re on Fedora, you can use yum: $ yum install git-core Or if you’re on a Debian-based distribution like Ubuntu, try apt-get: $ apt-get install git-core Installing on Mac There are two easy ways to install Git on a Mac. The easiest is to use the graphical Git installer, which you can download from the Google Code page (see Figure 1–7): http://code.google.com/p/git-osx-installer Figure 1–7.

Gitolite is somewhat unusual as far as “server” software goes — access is via ssh, and so every userid on the server is a potential “gitolite host”. As a result, there is a notion of “installing” the software itself, and then “setting up” a user as a “gitolite host”. Gitolite has 4 methods of installation. People using Fedora or Debian systems can obtain an RPM or a DEB and install that. People with root access can install it manually. In these two methods, any user on the system can then become a “gitolite host”. People without root access can install it within their own userids. And finally, gitolite can be installed by running a script on the workstation, from a bash shell.


pages: 537 words: 82,938

Rust Programming by Example by Guillaume Gomez, Antoni Boucher

Debian, MVC pattern, type inference, web application

He contributes to multiple open source projects and is interested in system programming and compilers. Antoni lives in Montreal, Canada. About the reviewers Sebastian Dröge is a free software developer, currently working for Centricular Ltd. His main involvement is with the GStreamer project, a cross-platform multimedia framework. He also contributes to various other projects, such as Debian, GNOME, Rust, and WebKit. He works as a contractor on free software. Thanks to the authors for making the Rust programming language accessible to more people with this book and for offering me to review this book, and to the Rust team for creating such a useful and usable language with great documentation.

We will cover the following topics in this chapter: Windows Widgets Events Closures Event loops Containers Installing the prerequisite Since GTK+ is a C library, we'll need to install it first. The Rust bindings use GTK+ version 3, so make sure you do not install the old version 2. Installing GTK+ on Linux On Linux, GTK+ can be installed through the package manager of your distribution. On Ubuntu (or other Debian derivatives): sudo apt-get install libgtk-3-dev Installing GTK+ on Mac On OSX, you just need to run the following command: brew install gtk+3 gnome-icon-theme Installing GTK+ on Windows On Windows, you'll need to first download and install MSYS2, which provides a Unix-like environment on Windows.

We will cover the following topics in this chapter: MP3 decoder Threads Mutex and Mutex guards Send/Sync traits RAII Thread safety Interior mutability Installing the dependencies For this chapter, we'll need two libraries: pulseaudio and libmad. The former will be used to play the music, while the latter is for decoding MP3 files. Installing dependencies on Linux On Linux, these dependencies can be installed through the package manager of your distribution. On Ubuntu (or other Debian derivatives): sudo apt-get install libmad0-dev libpulse-dev Installing dependencies on Mac On OSX, the required dependencies can be installed through the system package manager, as follows: brew install libmad pulseaudio Installing dependencies on Windows On Windows, run the following command in a MSYS2 shell: pacman -S mingw-w64-libmad Think, click the link to download the zip file from this page: https://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/ (When the book was written, the link for the current version was http://bosmans.ch/pulseaudio/pulseaudio-1.1.zip).


pages: 351 words: 123,876

Beautiful Testing: Leading Professionals Reveal How They Improve Software (Theory in Practice) by Adam Goucher, Tim Riley

Albert Einstein, barriers to entry, Black Swan, call centre, continuous integration, Debian, Donald Knuth, en.wikipedia.org, Firefox, Grace Hopper, index card, Isaac Newton, natural language processing, p-value, performance metric, revision control, six sigma, software as a service, software patent, the scientific method, Therac-25, Valgrind, web application

Appropriate tools have to be used for some modules, such as the traffic shaping one, to determine the outcome of the test. To add to all these problems, eBox needs to be tested in several Ubuntu Linux and Debian GNU/Linux releases. Even if eBox is mainly targeted at the latest Ubuntu LTS (long-term support) release, we also release packages for the latest Ubuntu regular release and the latest Debian release to try to grow our user base. In addition, while making sure that all these releases work correctly, we have to start testing packages for the upcoming releases, to make sure our packages are ready as soon as the new releases are out.

Thus, in order to avoid having to build images more often than strictly needed, the scenario framework supports inheritance for machine definitions, allowing the user to define as many base images as needed and that hosts can later inherit from. A base image definition includes a name to refer to the image and an installation method. A program called debootstrap is used to install Debian-based distributions. This program is able to install a basic system on an empty disk, pulling the required packages from Internet mirrors and installing them in the new system. This installation method requires only one parameter: the name of the distribution to be installed. Base images can be reused in different scenarios with just minor changes.

He grew up in the northwest as an avid hiker, skier, and sailer and attended Washington State University studying computer science and business. His personal blog is at http://www.adamchristian.com. He is currently employed by Slide, Inc. I SAAC C LERENCIA is a software developer at eBox Technologies. Since 2001 he has been involved in several free software projects, including Debian and Battle for Wesnoth. He, along with other partners, founded Warp Networks in 2004. Warp Networks is the open source– oriented software company from which eBox Technologies was later spun off. Other interests of his are artificial intelligence and natural language processing. J OHN D. C OOK is a very applied mathematician.


Python Web Development With Django by Jeff Forcier

create, read, update, delete, database schema, Debian, don't repeat yourself, en.wikipedia.org, Firefox, full text search, functional programming, Guido van Rossum, loose coupling, MVC pattern, revision control, Ruby on Rails, Silicon Valley, slashdot, web application

If that is successful, it issues a GET request on the provided path.You can execute it and get the following output for checking the main Python Web site’s server: >>> check_web_server('www.python.org', 80, '/') HTTP Response: status = 200 reason = OK HTTP Headers: content-length: 16793 accept-ranges: bytes server: Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ssl/2.2.3 OpenSSL/0.9.8c last-modified: Sun, 27 Apr 2008 00:28:02 GMT etag: "6008a-4199-df35c880" date: Sun, 27 Apr 2008 08:51:34 GMT content-type: text/html Keyword Arguments (in Function Calls) In addition to this “regular” calling convention, Python also enables you to specify named keyword arguments, which makes code using the function clearer and makes it easier to use functions—also, there’s no need to remember a fixed parameter order.

In our model code, we’ve set this to ’photos,’ so if our settings.py contained the following: MEDIA_ROOT = ‘/var/www/gallery/media/’ our photos would necessarily end up in /var/www/gallery/media/photos/. If that directory doesn’t exist, it needs to be created, and it also needs to be writable by whatever user or group your Web server is running as. On our Debian-based system, we’re running Apache as the www-data user, so we can have a short shell session that looks like this (see Appendix A,“Command Line Basics,” for details on using the command line): user@example:~ $ cd /var/www/gallery/media user@example:/var/www/gallery/media $ ls admin user@example:/var/www/gallery/media $ mkdir photos user@example:/var/www/gallery/media $ ls -l total 4 lrwxrwxrwx 1 root root 59 2008-03-26 21:41 admin -> /usr/lib/python2.4/site-packages/django/contrib/admin/media drwxrwxr-x 2 user user 4096 2008-03-26 21:44 photos user@example:/var/www/gallery/media $ chgrp www-data photos user@example:/var/www/gallery/media $ chmod g+w photos user@example:/var/www/gallery/media $ ls -l total 4 lrwxrwxrwx 1 root root 59 2008-03-26 21:41 admin -> /usr/lib/python2.4/site-packages/django/contrib/admin/media drwxrwxr-x 2 user www-data 4096 2008-03-26 21:44 photos 161 162 Chapter 7 Photo Gallery The previous is only possible if your normal user is also in the www-data group— depending on your system setup you can find yourself having to use sudo or similar approaches, which is fine.We’ve found that when doing lots of system tasks that intersect with our Web server’s domain, it’s very useful to make ourselves part of its group; then as long as directories or files are group-writable (as previously shown) both the Web server and our user can interact with them.

This superuser is typically root and is also often set up with no initial password (something you should change as soon as you can), leading to a fairly quick database creation such as $ mysqladmin -u root create django_db Unlike Postgres, MySQL’s user management is done entirely within the database itself, so to create our django_user DB user we need to use MySQL’s SQL shell right away. It’s sensibly named mysql. $ mysql -u root Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 6 Server version: 5.0.51a-6 (Debian) Type 'help;' or '\h' for help. Type '\c' to clear the buffer. Summary mysql> GRANT ALL PRIVILEGES ON django_db.* TO 'django_user'@'localhost' IDENTIFIED BY 'django_pass'; Query OK, 0 rows affected (0.00 sec) mysql> That’s it! You’re now all set to update settings.py and start issuing database-related commands.


pages: 933 words: 205,691

Hadoop: The Definitive Guide by Tom White

Amazon Web Services, bioinformatics, business intelligence, combinatorial explosion, database schema, Debian, domain-specific language, en.wikipedia.org, fault tolerance, full text search, functional programming, Grace Hopper, information retrieval, Internet Archive, Kickstarter, linked data, loose coupling, openstreetmap, recommendation engine, RFID, SETI@home, social graph, web application

This chapter describes how to do it from scratch using the Apache Hadoop distribution, and will give you the background to cover the things you need to think about when setting up Hadoop. Alternatively, if you would like to use RPMs or Debian packages for managing your Hadoop installation, then you might want to start with Cloudera’s Distribution, described in Appendix B. To ease the burden of installing and maintaining the same software on each node, it is normal to use an automated installation method like Red Hat Linux’s Kickstart or Debian’s Fully Automatic Installation. These tools allow you to automate the operating system installation by recording the answers to questions that are asked during the installation process (such as the disk partition layout), as well as which packages to install.

Other projects in the Hadoop ecosystem are continually evolving too, and picking a combination of components that work well together can be a challenge. Thankfully, you don’t have to do this work yourself. The Apache Bigtop project (http://incubator.apache.org/bigtop/) runs interoperability tests on stacks of Hadoop components, and provides binary packages (RPMs and Debian packages) for easy installation. There are also commercial vendors offering Hadoop distributions containing suites of compatible components. What’s Covered in this Book This book covers all the releases in Table 1-2. In the cases where a feature is only available in a particular release, it is noted in the text.

For the examples in this chapter we’ll use MySQL, which is easy-to-use and available for a large number of platforms. To install and configure MySQL, follow the documentation at http://dev.mysql.com/doc/refman/5.1/en/. Chapter 2 (“Installing and Upgrading MySQL”) in particular should help. Users of Debian-based Linux systems (e.g., Ubuntu) can type sudo apt-get install mysql-client mysql-server. RedHat users can type sudo yum install mysql mysql-server. Now that MySQL is installed, let’s log in and create a database (Example 15-1). Example 15-1. Creating a new MySQL database schema % mysql -u root -p Enter password: Welcome to the MySQL monitor.


pages: 192 words: 44,789

Vagrant: Up and Running by Mitchell Hashimoto

Amazon Web Services, barriers to entry, Debian, DevOps, remote working, software as a service, web application

First, create a new file db_provision.sh in your project root with the following contents: export DEBIAN_FRONTEND=noninteractive apt-get update apt-get install -y mysql-server sed -i -e 's/127.0.0.1/0.0.0.0/' /etc/mysql/my.cnf restart mysql mysql -uroot mysql <<< "GRANT ALL ON *.* TO 'root'@'%'; FLUSH PRIVILEGES;" This is the shell script that will provision the db machine. Let’s quickly explain a few parts because it looks considerably different than the script used to set up Apache. First, we export an environmental variable DEBIAN_FRONTEND with the value “noninteractive.” This makes it so that when installing MySQL server, it does not ask us questions for a root password and all that.


pages: 326 words: 91,559

Everything for Everyone: The Radical Tradition That Is Shaping the Next Economy by Nathan Schneider

1960s counterculture, Affordable Care Act / Obamacare, Airbnb, altcoin, Amazon Mechanical Turk, back-to-the-land, basic income, Berlin Wall, Bernie Sanders, bitcoin, blockchain, Brewster Kahle, Burning Man, Capital in the Twenty-First Century by Thomas Piketty, carbon footprint, Clayton Christensen, collaborative economy, collective bargaining, Community Supported Agriculture, corporate governance, creative destruction, crowdsourcing, cryptocurrency, Debian, disruptive innovation, do-ocracy, Donald Knuth, Donald Trump, Edward Snowden, Elon Musk, Ethereum, ethereum blockchain, Food sovereignty, four colour theorem, future of work, gig economy, Google bus, hydraulic fracturing, Internet Archive, Jeff Bezos, jimmy wales, joint-stock company, Joseph Schumpeter, Julian Assange, Kickstarter, Lyft, M-Pesa, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, mass immigration, means of production, Money creation, multi-sided market, new economy, offshore financial centre, old-boy network, Peter H. Diamandis: Planetary Resources, Pier Paolo Pasolini, post-work, precariat, premature optimization, pre–internet, profit motive, race to the bottom, Richard Florida, Richard Stallman, ride hailing / ride sharing, Sam Altman, Satoshi Nakamoto, self-driving car, shareholder value, sharing economy, Silicon Valley, Slavoj Žižek, smart contracts, Steve Bannon, Steve Jobs, Steve Wozniak, Stewart Brand, surveillance capitalism, transaction costs, Turing test, Uber and Lyft, uber lyft, underbanked, undersea cable, universal basic income, Upton Sinclair, Vanguard fund, white flight, Whole Earth Catalog, WikiLeaks, women in the workforce, working poor, Y Combinator, Y2K, Zipcar

Git, for instance, is a program Linus Torvalds designed to manage the deluge of code contributions for Linux from all over the world; now it’s the basis of GitHub, a corporate social network and project manager that determines the pecking order of coders. The more than a thousand developers who work on Debian, an important version of Linux, govern themselves through procedures and elected positions outlined in their Debian Constitution. They have created a republic for code, and my computer runs on it. Inspired by such communities, tech-industry consultants promote new management philosophies with such names as Holacracy, Agile, and Teal.6 These feats of dynamic, distributed workflow seem to outstrip the democracy of most big, established cooperatives nowadays, which tend to have carbon-copied their hierarchies from industrial-age bureaucracies.

See Community Purchasing Alliance Creative Commons licenses, 137, 141 Credit Union Act, 42 credit unions, 13–14, 16, 57–59, 104 Crisis (newspaper), 119 Cropp, Matthew, 167 crowdfunding, 157 Cryptocommons, 114 cryptocurrencies, 109, 113 universal basic income used with, 223–224 See also Bitcoin; blockchain currencies, 106, 120, 125, 130. See also cryptocurrencies CWS. See Cooperative Wholesale Society Daemo, 154 Danielson, Joshua, 154 DAOs. See decentralized autonomous organizations data, 143–144, 153 data justice, 76 Davies, Bembo, 28, 30–31 Davis, Joseph, 44 Debian software, 139 debt, 101–102 alternative finance and, 103–104 money as, 104–105 strike, 119 student, 103 decentralized autonomous organizations (DAOs), 111–112 “Declaration of the Independence of Cyberspace” (Barlow), 217 Decretum (Gratian), 23 Degrowth March, 118–119 Delta-Montrose Electric Association (DMEA), 172–174, 172 (photo), 220 democracy, 17, 65, 98–99, 103, 138–139, 148, 161, 206, 219 in Bitcoin, 106, 108–109 co-ops as, 9, 14, 41–42, 58–60, 233 diversified, 225 in electricity co-ops, 170, 175 entrepreneurs practicing, 155–156 United States, decline of, 10, 216 dental chairs, 63 (photo) department stores, 57–58 Derrida, Jacques, 17 design principles, 20–21 Desjardins, Alphonse, 59 Detroit, MI, 72–73, 74 (fig.)


Mastering Machine Learning With Scikit-Learn by Gavin Hackeling

backpropagation, computer vision, constrained optimization, correlation coefficient, Debian, distributed generation, iterative process, natural language processing, Occam's razor, optical character recognition, performance metric, recommendation engine

We will use a few of panda's convenient tools for importing data and calculating summary statistics. pandas can be installed on Windows, OS X, and Linux using pip with the following command: pip install pandas pandas can also be installed on Debian- and Ubuntu-based Linux distributions using the following command: apt-get install python-pandas [ 18 ] www.it-ebooks.info Chapter 1 matplotlib is a library used to easily create plots, histograms, and other charts with Python. We will use it to visualize training data and models. matplotlib has several dependencies. Like pandas, matplotlib depends on NumPy, which should already be installed. On Debian- and Ubuntu-based Linux distributions, matplotlib and its dependencies can be installed using the following command: apt-get install python-matplotlib Binaries for OS X and Windows can be downloaded from http://matplotlib.org/ downloads.html.


Practical OCaml by Joshua B. Smith

cellular automata, Debian, domain-specific language, functional programming, general-purpose programming language, Grace Hopper, hiring and firing, John Conway, Paul Graham, slashdot, SpamAssassin, text mining, Turing complete, type inference, web application, Y2K

You can also download the source packages, which at the time of this writing can be found at http:// caml.inria.fr/download.en.html (this link is for the English language pages). If you download the source, you can build it via the standard ./configure;make;make install sequence that many autotools-built applications use. On many Linux distributions, there are OCaml binary packages available. For Debian (and Debian-derived) users, you can get the compilers via Advanced Package Tool (APT) like so: # apt-get install ocaml # apt-get install ledit # apt-get install tuareg-mode These three packages contain the OCaml compliers and interpreters, the Ledit program, and an improved XEmacs editing environment. For users of RPM-based distributions, you can download RPMs of the OCaml distribution from http://caml.inria.fr/download.en.html.

Findlib can be very useful—it integrates with OcamlMakefile to make building complex OCaml projects much easier. Findlib is not distributed with the standard release, however. If you are not using godi or a Debian-based Linux distribution, you can download it from http://www.ocaml-programming.de. If you are using godi, it is already installed because godi relies on findlib extensively. If you are using a Debian-based Linux distribution, you can use apt-get to install it. Otherwise, you can download the source and install it manually. Creating a Findlib META File Findlib relies upon properly formatted and installed META files.


pages: 719 words: 104,316

R Cookbook by Paul Teetor

Debian, en.wikipedia.org, p-value, quantitative trading / quantitative finance, statistical model

Click on the .pkg file for the latest version of R, under “Files:”, to download it. When the download completes, double-click on the .pkg file and answer the usual questions. Linux or Unix The major Linux distributions have packages for installing R. Here are some examples: DistributionPackage name Ubuntu or Debian r-base Red Hat or Fedora R.i386 Suse R-base Use the system’s package manager to download and install the package. Normally, you will need the root password or sudo privileges; otherwise, ask a system administrator to perform the installation. Discussion Installing R on Windows or OS X is straightforward because there are prebuilt binaries for those platforms.

Theoretically, you can install R on Linux or Unix in one of two ways: by installing a distribution package or by building it from scratch. In practice, installing a package is the preferred route. The distribution packages greatly streamline both the initial installation and subsequent updates. On Ubuntu or Debian, use apt-get to download and install R. Run under sudo to have the necessary privileges: $ sudo apt-get install r-base On Red Hat or Fedora, use yum: $ sudo yum install R.i386 Most platforms also have graphical package managers, which you might find more convenient. Beyond the base packages, I recommend installing the documentation packages, too.

=, <, >, <=, >=), Solution, Solution, Discussion complex atomic type, Problem component extraction ($), Solution Comprehensive R Archive Network, Solution (see CRAN) concatenating, Discussion, Discussion, Discussion, Problem printing objects, Discussion, Discussion, Discussion strings, Problem conditional execution, Discussion conditional tests, Problem conditioning plots, Solution confidence intervals, Discussion, Problem, Problem, Problem, Problem, Solution, Problem, Solution, Discussion adding to bar charts, Problem using bootstrap algorithm, Discussion confint() function, Discussion, Solution, Solution for a mean, Problem for a median, Problem for a proportion, Problem for regression coefficients, Problem connections, Discussion, Solution contingency tables, Problem continuation prompt (+), Discussion continuous distributions, Names of Distributions, Discussion converting, Problem, Problem, Problem, Discussion, Discussion, Problems with matrices, Problem, Problem, Problem, Problem, Problem atomic values, Problem data frame to vectors, Discussion data to z-scores, Problem date to string, Problem list to vector, Problem, Discussion mixed-mode matrix to data frame, Problems with matrices probabilities to quantiles, Problem string to date, Problem structured data types, Problem year, month, day into date, Problem coplot() function, Solution coredata() function, Discussion correlations, Problem, Discussion, Discussion, Problem, Solution cor() function, Problem, Discussion, Discussion cor.test() function, Solution testing for significance, Problem cov() function (covariance), Problem, Discussion Cramer–von Mises test, Discussion CRAN (Comprehensive R Archive Network), Other Resources, Solution, See Also, Solution, Solution, Solution, Problem, Discussion, See Also (see also task views) crantastic.org, Solution downloading R from, Solution, See Also finding functions/packages on, Solution installing packages from, Problem R Language Definition, Other Resources server and mirror sites, Discussion, See Also creating, Problem, Problem, Solution, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem bar charts, Problem box plots, Problem box plots for each factor level, Problem contingency tables, Problem interaction plot, Problem lists, Problem matrices, Problem non-normal Q-Q plots, Problem normal Q-Q plots, Problem scatter plots, Problem, Problem scatter plots for each factor level, Problem sequences, Problem, Problem series of repeated values, Solution vectors, Problem cross-correlation, Solution cross-tabulations, Discussion CSV files, Problem, Problem Ctrl key combinations, Discussion cumsum() function, Discussion cumulative distribution function, Problem cumulative probability function, Discussion curve() function, Notes on Graphics Functions, Solution customizing R, Problem, Startup Sequence cut() function, Solution cutree() function, Discussion cvm.test() function, Discussion D data, Discussion, Problem, Discussion, Discussion, Problem, See Also, Problem, An Example, Problem, Problem, Problem, Problem, Discussion, Discussion, Problem, Problem, Problem, Discussion, Problem, Problem, Problem appending to vectors, Problem binning, Problem calculating quantiles of, Problem column, initializing data frame from, Problem complex or irregularly structured (in data files), Problem, An Example data() function, Discussion displaying partial, Problem, Problem entering from keyboard, Problem inserting into vectors, Problem non-numeric, Discussion normalizing, Problem organized by observation, Discussion organized by variable, Discussion reading from the Web, Problem, See Also row, initializing data frame from, Problem self-describing (in data files), Discussion summarizing, Problem transforming into linear relationship, Discussion data editor, Solution data frames, Discussion, Discussion, Problem, Solution, Data Frames, Data Frames, Problem, Problem, Problem, Problem, Problem, Problem, Discussion, Problem, Problem, Problem, Solution, Solution, Problem, Problem, Problem, Problem, Discussion, Solution, Problem, Problem, Discussion, Solution, Discussion, Discussion, Problem, Problem, Problem, Problem accessing column contents, Problem appending rows to, Problem applying functions to columns of, Problem applying functions to groups of rows, Problem with basic statistics functions, Discussion changing column names, Problem combining, Problem converted to lists, Data Frames, Solution editing, Solution entering from keyboard, Problem excluding columns by name, Problem flattening, Problem initializing from a list, Problem initializing from column data, Problem initializing from row data, Problem interpretation by functions, Discussion merging by common column, Problem normalized values, Solution populating from built-in editor, Solution preallocating, Problem regressions between columns of, Discussion removing NAs from, Solution scatter plots from, Discussion selecting columns by name, Problem selecting columns by position, Problem, Discussion selecting rows/columns with subset(), Problem sorting, Problem, Problem structure of, Data Frames summaries of, Discussion summing rows and columns, Problem temporary copies, Discussion data structures, technical aspects of, Introduction datasets, Problem, Discussion, Problem accessing built-in, Problem dealing with mixed data from, Discussion plotting multiple, Problem dates, Classes for Dates and Times, Classes for Dates and Times, Problem, Problem, Solution, Problem, Problem, Problem, Problem, Date Versus Datetime, Discussion, Problem American-style, Solution calendar periods, Classes for Dates and Times, Discussion, Problem converting from string, Problem converting into string, Problem converting year, month, day into, Problem creating sequence of, Problem Date class, Classes for Dates and Times versus datetimes, Date Versus Datetime extracting year, month, or day from, Problem getting current, Problem dbConnect() function, Solution dbDisconnect() function, Solution dbGetQuery() function, Solution, Discussion dbinom() function, Discussion Debian, installing R on, Discussion defaultPackages list, Loading Packages deleting, Discussion, Problem Delete key, Discussion variables, Problem dendrograms, Discussion density functions for probability distributions, Solution, Problem density() function, Solution desktop icon, creating, Starting on Windows detach() function, Discussion, Solution detrending a time series, Problem, Discussion dev.set() function, Discussion deviance() function, Solution dfrm list operators, Solution dgamma() function, Discussion dgeom() function, Discussion diagnostic checks for regression, Problem dictionary, Lists diff() function, Discussion, Solution directories, Starting on Windows, Problem, Problem home, Problem working, Starting on Windows, Problem discrete distributions, Names of Distributions, Problem, Discussion discrete histograms, Problem dist() function, Discussion distribution function, Discussion distribution functions for probability distributions, Solution, Solution division operator (/), Solution dnorm() function, Names of Distributions, Discussion, Discussion do.call() function, Discussion, Solution, Discussion documentation, Introduction, Discussion, Problem, Problem packages, Discussion supplied, Introduction, Problem, Problem double atomic type, Problem down arrow, Discussion downloading and installing R, Problem, See Also dpill() function, Solution dpois() function, Discussion dput() function, Solution dump() function, Discussion, Solution dumping variable structure, Discussion dwtest() function (Durbin–Watson test), Solution dynamically typed language, Discussion E edit() function, Solution editor window, Solution, Solution effects() function, Solution eigen() function, Solution eigenvalues and eigenvectors, Problem elapsed time, Solution End key, Discussion environment variables, Discussion equals sign, Discussion, Solution, Solution, Discussion = (alternate assignment operator), Discussion == (comparison operator), Solution, Solution, Discussion errors, Problem, See Also, Discussion, Discussion, Discussion, Discussion, Discussion, Notes on Graphics Functions, Problem “cannot open the connection”, Discussion common syntax, Problem, See Also “could not find function”, Discussion, Discussion “has not been called yet”, Notes on Graphics Functions “not in a standard unambiguous format”, Discussion “object . . . not found”, Discussion suppressing messages, Problem escape character (\), Discussion, Discussion, Discussion Euclid’s algorithm, Discussion example() function, Discussion Excel worksheet, data frame as, Data Frames excluding data frame columns by name, Problem expand.grid() function, Solution exponential distributions, Names of Distributions, Discussion, Discussion, Discussion exponential smoothing, See Also exponentiation (^), Solution, Discussion, Discussion expsmooth package, See Also extracting, Problem, Problem, Problem, Problem Julian date, Problem oldest/newest observations, Problem parts of a date, Problem substrings, Problem F F distributions, Names of Distributions F statistic, Introduction, ANOVA, Discussion factor analysis/factanal() function, Problem factors, Discussion, Factors, Problem, Problem, Solution, Discussion, Solution, Defining Groups Via a Factor, Discussion, Problem, Problem, Problem, Problem, Problem categorical variables as, Problem creating, Problem creating box plot for each level, Problem creating scatter plot for each level, Problem defining groups via, Defining Groups Via a Factor factor() function, Solution, Solution generating all combinations of several, Problem levels of, Factors, Discussion non-numeric data in data files as, Discussion summaries of, Discussion tabulating, Problem testing categorical variables for independence, Problem faraway package, Discussion Faraway, Julian, See Also, Discussion Fedora, installing R on, Discussion files, listing, Problem filling a time series, Problem finding, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem best power transformation, Problem data clusters, Problem differences between means of groups, Problem lagged correlations between time series, Problem pairwise minimums or maximums, Problem position of a value, Problem relevant functions and packages, Problem and removing NULL elements, Problem .First(), .First.sys() functions, Startup Sequence first() function, Discussion fitted() function, Solution fitting the model, Introduction, Discussion, Problem fix() function, Solution fixed-width records (in data files), Problem flattening, Problem, Problem data frames, Problem list into vector, Problem forecast package, Solution format() function, Discussion, Solution forming, prediction intervals, Problem forward stepwise regression, Solution full model, Discussion function keyword, Solution functions, Problem, See Also, Discussion, Discussion, Discussion, Solution, Problem, Discussion, Problem, Problem, Problem, Problem, Problem, Problem, Problem, Problem anonymous, Discussion applying by calendar period, Problem applying rolling, Problem applying to groups of data, Problem applying to list elements, Problem applying to matrix columns, Problem applying to matrix rows, Problem arguments to, Discussion, Problem defining, Problem examples/demonstrations of, Discussion finding on CRAN, Solution getting help on, Problem, See Also graphing, Problem searching packages for, Discussion fUnitRoots package, Discussion G gamma distributions, Names of Distributions, Discussion, Discussion generating, Problem, Problem, Problem, Problem, Problem, Problem, Problem all combinations of several factors, Problem combinations, Problem random numbers, Problem random permutations of vectors, Problem random samples, Problem random sequences, Problem reproducible random numbers, Problem generic functions (methods), The Generic plot Function geometric distributions, Names of Distributions, Discussion, Discussion getting, Problem, Discussion, Problem, Problem, Problem, Problem current date, Problem environment variables, Discussion Julian date, Problem length of a string, Problem regression statistics, Problem working directory, Problem ggplot2 package, Graphics in Other Packages ggplot2: Elegant Graphics for Data Analysis (Wickham), Other Resources, Graphics in Other Packages glm() function, Solution global assignment operator (<<-), Discussion, Discussion global graphics parameters, Solution global variables, Discussion Golden Ratio graph dimensions, Discussion Goodman, Sasha, Other Resources gplots library, Solution Grammar of Graphics paradigm, Graphics in Other Packages graphics functions, Notes on Graphics Functions, Problem changing software parameters, Problem low-level versus high-level, Notes on Graphics Functions graphics package, Introduction graphics window, Solution, Solution graphing a function, Problem gray() function, Solution grid package, See Also grid() function, Solution Grothendieck, Gabor, Classes for Dates and Times grouping factors, Factors, Defining Groups Via a Factor, Problem, Discussion groups, Problem, Problem, Problem multiple, creating scatter plots of, Problem pairwise comparisons between means, Problem testing for equal proportions, Problem gsub() function, Solution H hashes, Lists hclust() function, Discussion head() function, Solution, Solution header lines, Discussion, Solution, Discussion, Problem help, Introduction, Solution, Problem, See Also, Discussion, See Also, Discussion, Solution, Problem, Problem, See Also, Solution, Discussion ?


pages: 451 words: 103,606

Machine Learning for Hackers by Drew Conway, John Myles White

call centre, centre right, correlation does not imply causation, Debian, Erdős number, Nate Silver, natural language processing, Netflix Prize, p-value, pattern recognition, Paul Erdős, recommendation engine, social graph, SpamAssassin, statistical model, text mining, the scientific method, traveling salesman

Typical “easy ham” email ........................................................ Received: from usw-sf-list1-b.sourceforge.net ([10.3.1.13] helo=usw-sf-list1.sourceforge.net) by usw-sf-list2.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian)) id 17hsof-00042r-00; Thu, 22 Aug 2002 07:20:05 -0700 Received: from vivi.uptime.at ([62.116.87.11] helo=mail.uptime.at) by usw-sf-list1.sourceforge.net with esmtp (Exim 3.31-VA-mm2 #1 (Debian)) id 17hsoM-0000Ge-00 for <spamassassin-devel@lists.sourceforge.net>; Thu, 22 Aug 2002 07:19:47 -0700 Received: from [192.168.0.4] (chello062178142216.4.14.vie.surfer.at [62.178.142.216]) (authenticated bits=0) by mail.uptime.at (8.12.5/8.12.5) with ESMTP id g7MEI7Vp022036 for <spamassassin-devel@lists.sourceforge.net>; Thu, 22 Aug 2002 16:18:07 +0200 From: David H=?

Linux As with Mac OS X, R comes preinstalled on many Linux distributions. Simply type R at the command line, and the R console will be loaded. You can now begin programming! The CRAN mirror also includes installations specific to several Linux distributions, with instructions for installing R on Debian, RedHat, SUSE, and Ubuntu. If you use one of these installations, we recommend that you consult the instructions for your operating system because there is considerable variance in the best practices among Linux distributions. IDEs and Text Editors R is a scripting language, and therefore the majority of the work done in the case studies that follow will be done within an IDE or text editor, rather than directly inputted into the R console.


Catalyst 5.8: The Perl MVC Framework by Antano Solar John, Jonathan Rockway, Solar John Antano

c2.com, create, read, update, delete, database schema, Debian, en.wikipedia.org, Firefox, MVC pattern, Ruby on Rails, social intelligence, web application

Version 5.10.x is already out, but as 5.8 is more widely used, the examples should stay that way. Ubuntu, for example, already ships 5.10 for a while. The easiest way to install Catalyst is via your operating system's package manager. This mostly applies to Linux and the BSDs and the syntax is specific to your distribution. On Debian-based versions of GNU/Linux, the command is: $ apt-get install libcatalyst-perl [ 11 ] Introduction to Catalyst On FreeBSD or OpenBSD, you can build the Catalyst port by running the following commands as root: $ cd /usr/ports/www/p5-Catalyst-Runtime $ make install If you're using ActiveState on Windows, ActiveState has a PPM (Perl Package Manager) package for Catalyst.

The web browser then executes those commands, and returns the results to the Selenium server and then your test script. It can be hard to get it up and running because it requires the Java Runtime Environment (JRE) and a working web browser. It is somewhat experimental, and the author has only tested on Cygwin with Firefox and IE and Debian GNU/Linux with Firefox. Developing Selenium tests is pretty easy, thanks to the Selenium IDE Firefox extension available at http://www.openqa.org/selenium-ide/. It turns Firefox into an IDE that can record and edit tests, and save them to the Perl format. To create a test against the Catalyst application, we'll start by recording the basic outline of the test with Selenium IDE


pages: 54 words: 11,471

FreeCAD [How-To] by Daniel Falck

Debian

For Windows, the stable release is provided as a 32-bit Microsoft Installer application (.msi file). Download the file to your computer and double-click it to run the installation program. The Linux (Ubuntu) link will direct you to a personal package archive (PPA). The packages here are for Ubuntu but should work on any recent Debian derived distribution. Both 32 and 64 bit versions are available through the PPA. Add the PPA to your repository manager and install it like any other application. FreeCAD is also available in the main Ubuntu repository, but this version is outdated and should be avoided. Mac OS X (Lion) is supported with a 64-bit installer package.


pages: 237 words: 67,154

Ours to Hack and to Own: The Rise of Platform Cooperativism, a New Vision for the Future of Work and a Fairer Internet by Trebor Scholz, Nathan Schneider

1960s counterculture, activist fund / activist shareholder / activist investor, Airbnb, Amazon Mechanical Turk, barriers to entry, basic income, bitcoin, blockchain, Build a better mousetrap, Burning Man, capital controls, citizen journalism, collaborative economy, collaborative editing, collective bargaining, commoditize, conceptual framework, crowdsourcing, cryptocurrency, Debian, deskilling, disintermediation, distributed ledger, Ethereum, ethereum blockchain, future of work, gig economy, Google bus, hiring and firing, income inequality, independent contractor, information asymmetry, Internet of things, Jacob Appelbaum, Jeff Bezos, job automation, Julian Assange, Kickstarter, lake wobegon effect, low skilled workers, Lyft, Mark Zuckerberg, means of production, minimum viable product, moral hazard, Network effects, new economy, offshore financial centre, openstreetmap, peer-to-peer, post-work, profit maximization, race to the bottom, ride hailing / ride sharing, SETI@home, shareholder value, sharing economy, Shoshana Zuboff, Silicon Valley, smart cities, smart contracts, Snapchat, surveillance capitalism, TaskRabbit, technoutopianism, transaction costs, Travis Kalanick, Uber for X, uber lyft, union organizing, universal basic income, Whole Earth Catalog, WikiLeaks, women in the workforce, Yochai Benkler, Zipcar

Oscar Wilde is supposed to have said “the trouble with socialism is that it cuts into your evenings”; the labor involved in peer cooperativism presents a challenge, although online democratic governance platforms offer flexibility, transparency, tracking, and discourse-flow affordances that can make the load more manageable than it was for physical world cooperatives. Some FOSS projects, like Debian, have successfully developed a democratic process. Many others depend on a charismatic-leadership model that may not translate well into the domain of making a livelihood. The primary resource for platform cooperativists must be the rich literature on commons governance pioneered by Elinor Ostrom, which did in fact focus on collaborative communities managing their livelihood resources together without property rights or government laws.

Stocksy United is another site that does not have a big need for a trust system because there is little room for deception; a photograph is what it is, and can be displayed and seen on the site before purchase. Other successful technology-oriented communities have adopted a mixture of approaches. Internally, personal recommendations or one-on-one mentoring can play an important role, as in the Debian community that produces a leading Linux distribution. Personal invitations can also help to filter out unwanted members, as in the arXiv community that maintains an important pool of scientific papers and working papers. Wikipedia has its messy hierarchies and occasional lapses into fiefdoms, but remains remarkable for all that—or maybe because of all that—and its graduation of articles where trust is needed (“controversial places”) helps to limit the need for formality.


Exploring Everyday Things with R and Ruby by Sau Sheong Chang

Alfred Russel Wallace, bioinformatics, business process, butterfly effect, cloud computing, Craig Reynolds: boids flock, Debian, Edward Lorenz: Chaos theory, Gini coefficient, income inequality, invisible hand, p-value, price stability, Ruby on Rails, Skype, statistical model, stem cell, Stephen Hawking, text mining, The Wealth of Nations by Adam Smith, We are the 99%, web application, wikimedia commons

RubyInstaller includes many native C-based extensions, so that’s a bonus. It is a graphical installer, so it’s pretty simple to get a fresh installation set up quickly. Installing Ruby using your platform’s package management tool If none of the approaches listed so far suits you, then you can opt to use your system’s package management tool. For Debian systems (and this includes Ubuntu), you can use this command: $ sudo apt-get install ruby1.9.1 This will install Ruby 1.9.2. Yes, it’s weird. For Macs, while Ruby comes with OS X, it’s usually an older version (Lion comes with Ruby 1.8.7, and the previous versions come with even older versions of Ruby).

: (question mark, colon), in Ruby ternary conditional expression, if and unless > (right angle bracket), The R Console, Variables and Functions -> assignment operator, R, Variables and Functions > R console prompt, The R Console ' ' (single quotes), enclosing Ruby strings, Strings [ ] (square brackets), Vectors, Matrices, Data frames accessing subset of R data frame, Data frames enclosing R matrix indexes, Matrices enclosing R vector indexes, Vectors [[ ]] (square brackets, double), enclosing single R vector index, Vectors A aes() function, R, Aesthetics An Inquiry into the Nature and Causes of the Wealth of Nations (University of Chicago Press), The Invisible Hand apply() function, R, Interpreting the Data Armchair Economist (Free Press), How to Be an Armchair Economist array() function, R, Arrays arrays, R, Arrays–Arrays arrays, Ruby, Arrays and hashes–Arrays and hashes, Arrays and hashes artificial society, Money (see Utopia example) as.Date() function, R, Number of Messages by Day of the Month ascultation, Auscultation assignment operators, R, Variables and Functions at sign, double (@@), preceding Ruby class variables, Class methods and variables attr keyword, Ruby, Classes and objects Audacity audio editor, Homemade Digital Stethoscope average, Interpreting the Data (see mean() function, R) Axtell, Robert (researcher), It’s a Good Life Growing Artificial Societies: Social Science from the Bottom Up (Brookings Institution Press/MIT Press), It’s a Good Life B backticks (` `), enclosing R operators as functions, Variables and Functions bar charts, Plotting charts, Interpreting the Data–Interpreting the Data, The Second Simulation–The Second Simulation, The Third Simulation–The Third Simulation, The Final Simulation–The Final Simulation barplot() function, R, Plotting charts batch mode, R, Sourcing Files and the Command Line Bioconductor repository, Packages birds flocking, Schooling Fish and Flocking Birds (see flocking example) bmp() function, R, Basic Graphs Boids algorithm, Schooling Fish and Flocking Birds–The Origin of Boids Box, George Edward Pelham (statistician), regarding usefulness of models, The Simple Scenario break keyword, R, Conditionals and Loops brew command, Installing Ruby using your platform’s package management tool butterfly effect, The Changes C c() function, R, Vectors CALO Project, The Emailing Habits of Enron Executives camera, pulse oximeter using, Homemade Pulse Oximeter case expression, Ruby, case expression chaos theory, The Changes charts, Charting–Adjustments, Plotting charts, Statistical transformation, Geometric object, Interpreting the Data–Interpreting the Data, Interpreting the Data–Interpreting the Data, Interpreting the Data–Interpreting the Data, The Second Simulation, The Second Simulation–The Second Simulation, The Third Simulation–The Third Simulation, The Third Simulation–The Third Simulation, The Final Simulation–The Final Simulation, The Final Simulation–The Final Simulation, Analyzing the Simulation–Analyzing the Simulation, Analyzing the Second Simulation–Analyzing the Second Simulation, Number of Messages by Day of the Month–Number of Messages by Hour of the Day, Generating the Heart Sounds Waveform–Generating the Heart Sounds Waveform, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate, Money–Money, Money–Money, Implementation bar charts, Plotting charts, Interpreting the Data–Interpreting the Data, The Second Simulation–The Second Simulation, The Third Simulation–The Third Simulation, The Final Simulation–The Final Simulation histograms, Statistical transformation, Geometric object, Money–Money line charts, Interpreting the Data–Interpreting the Data, Analyzing the Simulation–Analyzing the Simulation, Analyzing the Second Simulation–Analyzing the Second Simulation Lorenz curves, Money–Money scatterplots, Interpreting the Data–Interpreting the Data, The Second Simulation, The Third Simulation–The Third Simulation, The Final Simulation–The Final Simulation, Number of Messages by Day of the Month–Number of Messages by Hour of the Day, Implementation waveforms, Generating the Heart Sounds Waveform–Generating the Heart Sounds Waveform, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate class methods, Ruby, Class methods and variables class variables, Ruby, Class methods and variables–Class methods and variables classes, R, Programming R classes, Ruby, Classes and objects–Classes and objects code examples, Using Code Examples (see example applications) colon (:), Symbols, Vectors creating R vectors, Vectors preceding Ruby symbols, Symbols comma-separated value (CSV) files, Importing data from text files (see CSV files) Comprehensive R Archive Network (CRAN), Packages conditionals, R, Conditionals and Loops conditionals, Ruby, Conditionals and loops–case expression contact information for this book, How to Contact Us conventions used in this book, Conventions Used in This Book cor() function, R, The R Console Core library, Ruby, Requiring External Libraries corpus, Text Mining correlation, R, The R Console CRAN (Comprehensive R Archive Network), Packages CSV (comma-separated value) files, Importing data from text files, The First Simulation–The First Simulation, The First Simulation, Interpreting the Data, The Simulation, Extracting Data from Sound–Extracting Data from Sound, Extracting Data from Video extracting video data to, Extracting Data from Video extracting WAV data to, Extracting Data from Sound–Extracting Data from Sound reading data from, Interpreting the Data writing data to, The First Simulation–The First Simulation, The Simulation csv library, Ruby, The First Simulation, The Simulation, Grab and Parse curl utility, Ruby Version Manager (RVM) D data, Data, Data, Everywhere–Data, Data, Everywhere, Bringing the World to Us, Importing Data–Importing data from a database, Importing data from text files, The First Simulation–The First Simulation, Interpreting the Data, How to Be an Armchair Economist, The Simulation, Grab and Parse–Grab and Parse, The Emailing Habits of Enron Executives–The Emailing Habits of Enron Executives, Homemade Digital Stethoscope–Extracting Data from Sound, Extracting Data from Sound–Extracting Data from Sound, Homemade Pulse Oximeter–Extracting Data from Video, Extracting Data from Video analyzing, Data, Data, Everywhere–Data, Data, Everywhere, Bringing the World to Us, How to Be an Armchair Economist charts for, How to Be an Armchair Economist (see charts) obstacles to, Data, Data, Everywhere–Data, Data, Everywhere simulations for, Bringing the World to Us (see simulations) audio, from stethoscope, Homemade Digital Stethoscope–Extracting Data from Sound CSV files for, Importing data from text files, The First Simulation–The First Simulation, Interpreting the Data, The Simulation, Extracting Data from Sound–Extracting Data from Sound, Extracting Data from Video from Enron, The Emailing Habits of Enron Executives–The Emailing Habits of Enron Executives from Gmail, Grab and Parse–Grab and Parse importing, R, Importing Data–Importing data from a database video, from pulse oximeter, Homemade Pulse Oximeter–Extracting Data from Video data frames, R, Data frames–Data frames data mining, The Idea data.frame() function, R, Data frames database, importing data from, Importing data from a database–Importing data from a database dbConnect() function, R, Importing data from a database dbGet() function, R, Importing data from a database DBI packages, R, Importing data from a database–Importing data from a database Debian system, installing Ruby on, Installing Ruby using your platform’s package management tool def keyword, Ruby, Classes and objects dimnames() function, R, Matrices distribution, normal, Money dollar sign ($), preceding R list item names, Lists doodling example, Shoes doodler–Shoes doodler double quotes (" "), enclosing Ruby strings, Strings duck typing, Ruby, Code like a duck–Code like a duck dynamic typing, Ruby, Code like a duck–Code like a duck E economics example, A Simple Market Economy–A Simple Market Economy, The Producer–The Producer, The Consumer–The Consumer, Some Convenience Methods–Some Convenience Methods, The Simulation–The Simulation, Analyzing the Simulation–Analyzing the Simulation, The Producer–The Producer, The Consumer–The Consumer, Market–Market, The Simulation–The Simulation, Analyzing the Second Simulation–Analyzing the Second Simulation, Price Controls–Price Controls charts for, Analyzing the Simulation–Analyzing the Simulation, Analyzing the Second Simulation–Analyzing the Second Simulation Consumer class for, The Consumer–The Consumer, The Consumer–The Consumer Market class for, Some Convenience Methods–Some Convenience Methods, Market–Market modeling, A Simple Market Economy–A Simple Market Economy price controls analysis, Price Controls–Price Controls Producer class for, The Producer–The Producer, The Producer–The Producer simulations for, The Simulation–The Simulation, The Simulation–The Simulation email example, Grab and Parse–Grab and Parse, The Emailing Habits of Enron Executives–The Emailing Habits of Enron Executives, Number of Messages by Day of the Month–Number of Messages by Day of the Month, Number of Messages by Day of the Month–Number of Messages by Hour of the Day, MailMiner–MailMiner, Number of Messages by Day of Week–Number of Messages by Hour of the Day, Interactions–Comparative Interactions, Text Mining–Text Mining charts for, Number of Messages by Day of the Month–Number of Messages by Hour of the Day content of messages, analyzing, Text Mining–Text Mining data for, Grab and Parse–Grab and Parse Enron data for, The Emailing Habits of Enron Executives–The Emailing Habits of Enron Executives interactions in email, analyzing, Interactions–Comparative Interactions number of messages, analyzing, Number of Messages by Day of the Month–Number of Messages by Day of the Month, Number of Messages by Day of Week–Number of Messages by Hour of the Day R package for, creating, MailMiner–MailMiner emergent behavior, The Origin of Boids (see also flocking example) Enron Corporation scandal, The Emailing Habits of Enron Executives Epstein, Joshua (researcher), It’s a Good Life Growing Artificial Societies: Social Science from the Bottom Up (Brookings Institution Press/MIT Press), It’s a Good Life equal sign (=), assignment operator, R, Variables and Functions Euclidean distance, Roids evolution, Evolution example applications, Using Code Examples, Shoes stopwatch–Shoes stopwatch, Shoes doodler–Shoes doodler, The R Console–Sourcing Files and the Command Line, Data frames–Introducing ggplot2, qplot–qplot, Statistical transformation–Geometric object, Adjustments–Adjustments, Offices and Restrooms, A Simple Market Economy, Grab and Parse, My Beating Heart, Schooling Fish and Flocking Birds, Money artificial utopian society, Money (see Utopia example) birds flocking, Schooling Fish and Flocking Birds (see flocking example) doodling, Shoes doodler–Shoes doodler economics, A Simple Market Economy (see economics example) email, Grab and Parse (see email example) fuel economy, qplot–qplot, Adjustments–Adjustments heartbeat, My Beating Heart (see heartbeat example) height and weight, The R Console–Sourcing Files and the Command Line league table, Data frames–Introducing ggplot2 movie database, Statistical transformation–Geometric object permission to use, Using Code Examples restrooms, Offices and Restrooms (see restrooms example) stopwatch, Shoes stopwatch–Shoes stopwatch expressions, R, Programming R external libraries, Ruby, Requiring External Libraries–Requiring External Libraries F factor() function, R, Factors, Text Mining factors, R, Factors–Factors FFmpeg library, Extracting Data from Video, Extracting Data from Video field of vision (FOV), Roids fish, schools of, Schooling Fish and Flocking Birds (see flocking example) flocking example, Schooling Fish and Flocking Birds–The Origin of Boids, The Origin of Boids, Simulation–Simulation, Roids–Roids, The Boid Flocking Rules–Putting in Obstacles, The Boid Flocking Rules–The Boid Flocking Rules, A Variation on the Rules–A Variation on the Rules, Going Round and Round–Going Round and Round, Putting in Obstacles–Putting in Obstacles Boids algorithm for, Schooling Fish and Flocking Birds–The Origin of Boids centering path for, Going Round and Round–Going Round and Round obstacles in path for, Putting in Obstacles–Putting in Obstacles research regarding, A Variation on the Rules–A Variation on the Rules Roid class for, Roids–Roids rules for, The Origin of Boids, The Boid Flocking Rules–The Boid Flocking Rules simulations for, Simulation–Simulation, The Boid Flocking Rules–Putting in Obstacles flows, Shoes, Shoes stopwatch fonts used in this book, Conventions Used in This Book–Conventions Used in This Book for loop, R, Conditionals and Loops format() function, R, Number of Messages by Day of the Month FOV (field of vision), Roids fuel economy example, qplot–qplot, Adjustments–Adjustments function class, R, Programming R functions, R, Variables and Functions–Variables and Functions G GAM (generalized addictive model), The Changes gem command, Ruby, Requiring External Libraries .gem file extension, Requiring External Libraries generalized addictive model (GAM), The Changes Gentleman, Robert (creator of R), Introducing R geom_bar() function, R, Interpreting the Data, The Second Simulation, The Final Simulation geom_histogram() function, R, Geometric object geom_line() function, R, Analyzing the Simulation geom_point() function, R, Plot, Interpreting the Data, Generating the Heart Sounds Waveform geom_smooth() function, R, Interpreting the Data ggplot() function, R, Plot ggplot2 package, R, Introducing ggplot2–Adjustments Gini coefficient, Money Git utility, Ruby Version Manager (RVM) Gmail, retrieving message data from, Grab and Parse–Grab and Parse graphics device, opening, Basic Graphs graphics package, R, Basic Graphs graphs, Charting (see charts) Growing Artificial Societies: Social Science from the Bottom Up (Brookings Institution Press/MIT Press), It’s a Good Life H hash mark, curly brackets (#{ }), enclosing Ruby string escape sequences, Strings hashes, Ruby, Arrays and hashes–Arrays and hashes heart, diagram of, Generating the Heart Sounds Waveform heartbeat example, My Beating Heart, My Beating Heart, My Beating Heart, Homemade Digital Stethoscope, Homemade Digital Stethoscope, Homemade Digital Stethoscope–Extracting Data from Sound, Generating the Heart Sounds Waveform–Generating the Heart Sounds Waveform, Generating the Heart Sounds Waveform, Finding the Heart Rate–Finding the Heart Rate, Homemade Pulse Oximeter–Homemade Pulse Oximeter, Homemade Pulse Oximeter–Extracting Data from Video, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate charts for, Generating the Heart Sounds Waveform–Generating the Heart Sounds Waveform, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate data for, Homemade Digital Stethoscope–Extracting Data from Sound, Homemade Pulse Oximeter–Extracting Data from Video audio from stethoscope, Homemade Digital Stethoscope–Extracting Data from Sound video from pulse oximeter, Homemade Pulse Oximeter–Extracting Data from Video heart rate, My Beating Heart, Finding the Heart Rate–Finding the Heart Rate, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate finding from video file, Generating the Heartbeat Waveform and Calculating the Heart Rate–Generating the Heartbeat Waveform and Calculating the Heart Rate finding from WAV file, Finding the Heart Rate–Finding the Heart Rate health parameters for, My Beating Heart heart sounds, My Beating Heart, My Beating Heart, Homemade Digital Stethoscope, Generating the Heart Sounds Waveform health parameters for, My Beating Heart recording, Homemade Digital Stethoscope types of, My Beating Heart, Generating the Heart Sounds Waveform homemade pulse oximeter for, Homemade Pulse Oximeter–Homemade Pulse Oximeter homemade stethoscope for, Homemade Digital Stethoscope height and weight example, The R Console–Sourcing Files and the Command Line here-documents, Ruby, Strings hex editor, Extracting Data from Sound histograms, Statistical transformation, Geometric object, Money–Money Homebrew tool, Installing Ruby using your platform’s package management tool hyphen (-), Variables and Functions, Variables and Functions -> assignment operator, R, Variables and Functions <- assignment operator, R, Variables and Functions I icons used in this book, Conventions Used in This Book if expression, R, Conditionals and Loops if expression, Ruby, if and unless–if and unless Ihaka, Ross (creator of R), Introducing R ImageMagick library, Extracting Data from Video IMAP (Internet Message Access Protocol), Grab and Parse importing data, R, Importing Data–Importing data from a database inheritance, Ruby, Inheritance–Inheritance initialize method, Ruby, Classes and objects inner product, Roids–Roids installation, Installing Ruby–Installing Ruby using your platform’s package management tool, Installing Shoes–Installing Shoes, Introducing R, Installing packages–Installing packages R, Introducing R R packages, Installing packages–Installing packages Ruby, Installing Ruby–Installing Ruby using your platform’s package management tool Shoes, Installing Shoes–Installing Shoes Internet Message Access Protocol (IMAP), Grab and Parse Internet Message Format, The Emailing Habits of Enron Executives invisible hand metaphor, The Invisible Hand irb application, Running Ruby–Running Ruby J jittering, Adjustments jpeg() function, R, Basic Graphs L Landsburg, Stephen E.


pages: 485 words: 74,211

Developing Web Applications with Haskell and Yesod by Michael Snoyman

create, read, update, delete, database schema, Debian, domain-specific language, don't repeat yourself, full text search, functional programming, MVC pattern, web application

Not only do we use Cabal for building our local code, but it can automatically download and install dependencies from Hackage, the Haskell package repository. If you’re on Windows or Mac, it is strongly recommended that you download the Haskell Platform. On Linux, many distributions include the Haskell Platform in their repositories. On Debian-based systems, for example, you can get started by running sudo apt-get install haskell-platform. If your distribution does not include the Haskell Platform, you can install it manually by following the instructions on the Haskell Platform page. One important tool you’ll need to update is alex. The Haskell Platform includes version 2, while the JavaScript minifier Yesod uses, hjsmin, requires version three.

We try to keep Yesod up-to-date with all current versions of GHC, but we only officially support the Haskell Platform. If you do go the route of manually installing GHC, here are a few notes: You’ll need to install some additional build tools, alex and happy in particular. Make sure to install all of the required C libraries. On Debian-based systems, you would need to run: sudo apt-get install libedit-dev libbsd-dev libgmp3-dev zlib1g-dev freeglut3-dev Regardless of how you’ve installed your tools, you should be sure to put cabal’s bin folder in your PATH variable. On Mac and Linux, this will be $HOME/.cabal/bin and on Windows it will be %APPDATA%\cabal\bin.


pages: 779 words: 116,439

Test-Driven Development With Python by Harry J. W. Percival

continuous integration, database schema, Debian, DevOps, don't repeat yourself, Firefox, loose coupling, MVC pattern, platform as a service, pull request, web application, WebSocket

We’ll install the latest version from the official Jenkins apt repo, because the Ubuntu default still has a few annoying bugs with locale/unicode support, and it also doesn’t set itself up to listen on the public Internet by default: 365 www.it-ebooks.info # instructions taken from jenkins site user@server:$ wget -q -O - http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key |\ sudo apt-key add user@server:$ echo deb http://pkg.jenkins-ci.org/debian binary/ | sudo tee \ /etc/apt/sources.list.d/jenkins.list user@server:$ sudo apt-get update user@server:$ sudo apt-get install jenkins While we’re at we’ll install a few other dependencies: user@server:$ sudo apt-get install git firefox python3 python-virtualenv xvfb At the time of writing, the shiningpanda plugin was incompatible with Python 3.4.

I saved2 this to a file called superlists-staging.ottg.eu inside /etc/nginx/sites-available folder, and then added it to the enabled sites for the server by creating a symlink to it: elspeth@server:$ echo $SITENAME # check this still has our site in superlists-staging.ottg.eu elspeth@server:$ sudo ln -s ../sites-available/$SITENAME \ /etc/nginx/sites-enabled/$SITENAME elspeth@server:$ ls -l /etc/nginx/sites-enabled # check our symlink is there That’s the Debian/Ubuntu preferred way of saving Nginx configurations—the real con‐ fig file in sites-available, and a symlink in sites-enabled; the idea is that it makes it easier to switch sites on or off. We also may as well remove the default “Welcome to nginx” config, to avoid any confusion: elspeth@server:$ sudo rm /etc/nginx/sites-enabled/default And now to test it: elspeth@server:$ sudo service nginx reload elspeth@server:$ ..


pages: 62 words: 14,996

SciPy and NumPy by Eli Bressert

Debian, Guido van Rossum, p-value

Note that installing SciPy and NumPy with MacPorts will take time, especially with the SciPy package, so it’s a good idea to initiate the installation procedure and go grab a cup of tea. sudo port install py27-numpy py27-scipy py27-ipython MacPorts supports several versions of Python (e.g., 2.6 and 2.7). So, although py27 is listed above, if you would like to use Python 2.6 instead with SciPy and NumPy then you would simply replace py27 with py26. If you’re using a Debian-based Linux distro like Ubuntu or Linux Mint, then use apt-get to install the packages. sudo apt-get install python-numpy python-scipy With an RPM-based system like Fedora or OpenSUSE, you can install the Python packages using yum. sudo yum install numpy scipy Building and installing NumPy and SciPy on Windows systems is more complicated than on the Unix-based systems, as code compilation is tricky.


pages: 273 words: 72,024

Bitcoin for the Befuddled by Conrad Barski

Airbnb, AltaVista, altcoin, bitcoin, blockchain, buttonwood tree, cryptocurrency, Debian, en.wikipedia.org, Ethereum, ethereum blockchain, fiat currency, Isaac Newton, MITM: man-in-the-middle, money: store of value / unit of account / medium of exchange, Network effects, node package manager, p-value, peer-to-peer, price discovery process, QR code, Satoshi Nakamoto, self-driving car, SETI@home, software as a service, the payments system, Yogi Berra

On Mac, download homebrew, a command-line tool that will handle the entire process for you: # Get homebrew and if you haven't already ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)" brew tap phinze/homebrew-cask brew install brew-cask # Get node.js and bitcoin stuff brew cask install bitcoin brew install nodejs npm npm install bitcoin # Run bitcoin-qt in server mode ~/Applications/Bitcoin-Qt.app/Contents/MacOS/./Bitcoin-Qt -server For Linux Folks If you’re using flavors of Debian Linux, such as Ubuntu, you’ll just use the PPA feature to install the libraries: sudo add-apt-repository ppa:bitcoin/bitcoin sudo apt-get update sudo apt-get install nodejs npm bitcoin-qt npm install bitcoin bitcoin-qt -server With a working Bitcoin Core server, we’re now ready to start programming.

NOTE Windows users: At the time of this writing, detailed instructions for installing Maven on Windows are cleverly hidden at the very bottom of http://maven.apache.org/download.cgi. Mac/Linux users: You can use your package managers here: brew install maven for Mac and sudo apt-get install maven for Debian Linux. To ensure Maven is properly installed, a version message should display when you type mvn --version from a console. For typical Java programming, we could stop here because any needed additional libraries could be downloaded through the Maven package system. However, because we’re writing programs that work with money, the bitcoinJ maintainers require all developers to take a few extra precautions and install a couple of additional tools that directly relate to security issues.


pages: 398 words: 31,161

Gnuplot in Action: Understanding Data With Graphs by Philipp Janert

bioinformatics, business intelligence, Debian, general-purpose programming language, iterative process, mandelbrot fractal, pattern recognition, random walk, Richard Stallman, six sigma, survivorship bias

A.2.1 Linux Usually, the easiest way to install new software on a Linux box is to use the standard administration tool that comes with your local Linux distribution. On RPM-based distributions, you can also download an RPM file explicitly and then install it (as root) using rpm -i gnuplot-XXX.rpm where you should replace gnuplot-XXX.rpm with the exact name of your downloaded package file. On Debian-based systems, you can simply execute apt-get install gnuplot but be warned that gnuplot for Debian-based systems is usually built without the GNU readline library (due to strict interpretations of the differences in the GNU and the gnuplot licenses), so that you might want to build gnuplot from source instead. A.2.2 Mac OS X At the time of this writing, a version of gnuplot packaged as DMG (or Mac Installer) file is not generally available.

But actual insight arises only through the correct interpretation of those facts. appendix A: Obtaining, building, and installing gnuplot The easiest way to install gnuplot on your local computer is to download and install a precompiled package. If you’re running Linux, there’s a good chance gnuplot is already installed; if not, you’ll have no difficulty finding an RPM or Debian package on the net. There are Fink packages for Mac OS X, and precompiled binaries for Windows as well. In section A.2 we consider some of these options in more detail. If you’d like to be totally up to date and have access to the newest features, or if you want to start hacking on gnuplot yourself, you’ll have to build from source.


pages: 82 words: 17,229

Redis Cookbook by Tiago Macedo, Fred Oliveira

Debian, full text search, loose coupling, Ruby on Rails, Silicon Valley, WebSocket

If your configuration file is in a different path from the default, you can pass it along as a parameter to redis-server: /usr/local/bin/redis-server /alternate-location-for-redis-config.conf Installing on Linux Most modern Linux distributions have Redis packages available for installation, but keep in mind that these are normally not up-to-date. However, if you prefer to use these, the installation procedure is much simpler: Debian/Ubuntu sudo apt-get install redis-server Fedora/Redhat/CentOS sudo yum install redis Gentoo sudo emerge redis This approach has a few advantages: by using your package management system, you can more easily keep software up-to-date, and you’ll most likely get at least security and stability updates.


pages: 1,409 words: 205,237

Architecting Modern Data Platforms: A Guide to Enterprise Hadoop at Scale by Jan Kunigk, Ian Buss, Paul Wilkinson, Lars George

Amazon Web Services, barriers to entry, bitcoin, business intelligence, business process, cloud computing, commoditize, computer vision, continuous integration, create, read, update, delete, database schema, Debian, DevOps, domain-specific language, fault tolerance, Firefox, functional programming, Google Chrome, Induced demand, Infrastructure as a Service, Internet of things, job automation, Kickstarter, Kubernetes, loose coupling, microservices, natural language processing, Network effects, platform as a service, source of truth, statistical model, web application

OS Choices When it comes to Hadoop, the OS choices are limited to what is supported out of the box by the distributions, unless you want to build your own. (See “Hadoop Deployment” for a discussion of this topic.) Broadly speaking, most distributions support a mix of common Linux distributions, including Red Hat Enterprise Linux (RHEL) and CentOS, Oracle Linux, SUSE Linux Enterprise Server (SLES), Debian, and Ubuntu. Each vendor has a website that lists the supported OS types and versions. Of note is the absence of Microsoft Windows and any Unix variant. This is mainly due to what customers are requesting. Warning The vast majority of Hadoop clusters are set up on top of Linux distributions.

Package Management Options Depending on your selected distribution, you may have an interesting choice to make here: how you want to install the binaries. Although some offer only the package management tool that comes with the OS—for example, yum for Red Hat–based OSs (using .rpm extensions), or apt for Debian-based ones (using .deb extensions)—there are other distributions that have additional options. For example, Cloudera has its own package format, called parcels, aside from the OS-native ones. This begs the question, which option is better? Cloudera makes the case that the native package management is too strict when it comes to managing Hadoop versions.

Runtimes for the sysbench CPU test—notice the diminishing returns of extra threads as the system becomes saturated You may not find sysbench in the standard repositories of your Linux distribution, but it is a useful tool and worth your time to find and install. Table 8-1 lists some sources. Table 8-1. Obtaining sysbench Distribution Repository Red Hat Enterprise Linux 6 EPEL (yum install sysbench) Red Hat Enterprise Linux 7 EPEL (yum install sysbench) Debian/Ubuntu Core (apt-get install sysbench) SLES openSUSE sysbench Source code https://github.com/akopytov/sysbench Disks Recall from Chapter 3 that worker node disks are mounted individually, as we want each device to read and write independently of the others. All disk I/O is directed to a storage controller that supports disk connections through multiple physical channels.


pages: 99 words: 19,884

Getting Started with RStudio by John Verzani

Debian, RFID, web application

First, RStudio requires a working, relatively modern R installation. If that is not already present, then one should consult http://cran.r-project.org to learn how to install R for the given operating system. For Windows and Mac OS X, one can simply download a self-installing binary; for Linux, installation varies. For the Debian distribution (including Ubuntu), the R system can be installed using the regular package-management tools. Of course, as R is open source, one can also compile and install it using the source code. The RStudio package is available for download from http://www.rstudio.org/download/. There is a choice between a Desktop version and a Server version.


pages: 138 words: 27,404

OpenCV Computer Vision With Python by Joseph Howse

augmented reality, computer vision, Debian, optical character recognition, pattern recognition

Making the choice on other Unix-like systems The approaches for Ubuntu (as described previously) are likely to work on any Linux distribution derived from Ubuntu 12.04 LTS or Ubuntu 12.10, such as: Kubuntu 12.04 LTS or Kubuntu 12.10 Xubuntu 12.04 LTS or Xubuntu 12.10 Linux Mint 13 or Linux Mint 14 On Debian Linux and its derivatives, the Apt package manager works the same as on Ubuntu, though the available packages may differ. On Gentoo Linux and its derivatives, the Portage package manager is similar to MacPorts (as described previously), though the available packages may differ. On other Unix-like systems, the package manager and available packages may differ.


pages: 309 words: 65,118

Ruby by example: concepts and code by Kevin C. Baird

Benevolent Dictator For Life (BDFL), David Heinemeier Hansson, Debian, digital map, Donald Knuth, en.wikipedia.org, Firefox, fudge factor, functional programming, general-purpose programming language, Guido van Rossum, Larry Wall, MVC pattern, Paul Graham, Perl 6, premature optimization, union organizing, web application

Note that we use a filename that means The file called .signature within the user’s home directory, which is the traditional location for email signature files. All that’s left is to write a standard header at , add the randomly-chosen quotation, and then close the signature file. 18 C ha pt er 2 If you use a Unix-like operating system, you can put a call to this program in a crontab,1 as I do on my Debian machine. Windows users can modify the script to write a signature file with whatever name they choose, and then change the settings of their email program to use that signature file. Running the Script This is run with ruby -w random_sig.rb (to assume the default sig_quotes.txt file), or ruby -w random_sig.rb some_file, replacing some_file with the name of your preferred version of sig_quotes.txt.

After installing Apache, you’ll also want to install packages for mod_ruby, which allows Ruby programs to be run within the webserver. I’ll explain the benefits of this when we get to the script that shows mod_ruby being used. You can install mod_ruby by typing apt-get install libapache2-mod-ruby liberuby on a Debian-based system. Now that the installation is done, let’s start with our first simple CGI script. #41 A Simple CGI Script (simple_cgi.rb) This script is fairly quick and dirty, but it shows the basics of how to use Ruby for CGI and introduces Ruby’s aptly named cgi library. You’ll need to put this script in your system’s cgi-bin directory.


pages: 161 words: 30,412

Creating Development Environments With Vagrant - Second Edition by Michael Peacock

Amazon Web Services, cloud computing, continuous integration, Debian, domain-specific language, web application

Resources are mapped to a Chef code, which varies depending on the platform/operating system being used. For example, on an Ubuntu machine, the package resource is mapped to apt-get. Some of these system-specific instructions can also be accessed directly via their own resources, apt_package. For example, this is used to manage packages on Ubuntu- and Debian-based systems, whereas using the package resource, Chef will work out which package manager to use based on the operating system. Resource types available include: cron: This resource type is used to manage cron jobs on Linux- and Unix-based systems execute: This resource type is used to run commands at the terminal/command prompt file: This resource type is used to manage and manipulate files and folders on the filesystem group: This resource type is used to manage user groups package: This resource type is used to install software service: This resource type is used to manage running services on the machine template: This resource type is used to manage file contents with an embedded Ruby template user: This resource type is used to manage user accounts on the machine Each resource can be configured with different attributes, as we will discuss in this chapter.


pages: 122 words: 29,286

Learning Scikit-Learn: Machine Learning in Python by Raúl Garreta, Guillermo Moncecchi

computer vision, Debian, Everything should be made as simple as possible, natural language processing, Occam's razor, Silicon Valley

An easy way to install all packages is to download and install the Anaconda distribution for scientific computing from https://store.continuum.io/, which provides all the necessary packages for Linux, Mac, and Windows platforms. Or, if you prefer, the following sections gives some suggestions on how to install every package on each particular platform. Linux Probably the easiest way to install our environment is through the operating system packages. In the case of Debian-based operating systems, such as Ubuntu, you can install the packages by running the following commands: Firstly, to install the package we enter the following command: # sudo apt-get install build-essential python-dev python-numpy python-setuptools python-scipy libatlas-dev Then, to install matplotlib, run the following command: # sudo apt-get install python-matplotlib After that, we should be ready to install scikit-learn by issuing this command: # sudo pip install scikit-learn To install IPython Notebook, run the following command: # sudo apt-get install ipython-notebook If you want to install from source, let's say to install all the libraries within a virtual environment, you should issue the following commands: # pip install numpy # pip install scipy # pip install scikit-learn To install Matplotlib, you should run the following commands: # pip install libpng-dev libjpeg8-dev libfreetype6-dev # pip install matplotlib To install IPython Notebook, you should run the following commands: # pip install ipython # pip install tornado # pip install pyzmq Mac You can similarly use tools such as MacPorts and HomeBrew that contain precompiled versions of these packages.


pages: 612 words: 187,431

The Art of UNIX Programming by Eric S. Raymond

A Pattern Language, Albert Einstein, barriers to entry, bioinformatics, Clayton Christensen, combinatorial explosion, commoditize, correlation coefficient, David Brooks, Debian, domain-specific language, don't repeat yourself, Donald Knuth, Everything should be made as simple as possible, facts on the ground, finite state, general-purpose programming language, George Santayana, Innovator's Dilemma, job automation, Larry Wall, MVC pattern, pattern recognition, Paul Graham, peer-to-peer, premature optimization, pre–internet, publish or perish, revision control, RFC: Request For Comment, Richard Stallman, Robert Metcalfe, Steven Levy, transaction costs, Turing complete, Valgrind, wage slave, web application

This good practice avoids the notorious “DLL Hell” failure mode of Windows. Under Linux, provide RPMs. The de facto standard format for installable binary packages under Linux that used by the Red Hat Package manager, RPM. It's featured in the most popular Linux distribution, and supported by effectively all other Linux distributions (except Debian and Slackware; and Debian can install from RPMs). Accordingly, it's a good idea for your project site to provide installable RPMs as well as source tarballs. It's also a good idea for you to include in your source tarball the RPM spec file, with a production that makes RPMs from it in your makefile. The spec file should have the extension .spec; that's how the rpm -t option finds it in a tarball.

Case Study: FreeNet Freenet is a peer-to-peer networking project that is intended to make censorship and content suppression impossible.[127] Freenet developers envision the following applications: Uncensorable dissemination of controversial information: Freenet protects freedom of speech by enabling anonymous and uncensorable publication of material ranging from grassroots alternative journalism to banned exposés. Efficient distribution of high-bandwidth content: Freenet's adaptive caching and mirroring is being used to distribute Debian Linux software updates. Universal personal publishing: Freenet enables anyone to have a website, without space restrictions or compulsory advertising, even if the would-be webmaster doesn't own a computer. Freenet addresses these goals by providing a virtual space in which to publish documents that is not tied to any specific machine.


pages: 404 words: 43,442

The Art of R Programming by Norman Matloff

Debian, discrete time, Donald Knuth, functional programming, general-purpose programming language, linked data, sorting algorithm, statistical model

Interfacing R to Other Languages 325 15.1.4 Debugging R/C Code Chapter 13 discussed a number of tools and methods for debugging R code. However, the R/C interface presents an extra challenge. The problem in using a debugging tool such as GDB here is that you must first apply it to R itself. The following is a walk-through of the R/C debugging steps using GDB on our previous sd.c code as the example. $ R -d gdb GNU gdb 6.8-debian ... (gdb) run Starting program: /usr/lib/R/bin/exec/R ... > dyn.load("sd.so") > # hit ctrl-c here Program received signal SIGINT, Interrupt. 0xb7ffa430 in __kernel_vsyscall () (gdb) b subdiag Breakpoint 1 at 0xb77683f3: file sd.c, line 3. (gdb) continue Continuing. Breakpoint 1, subdiag (m=0x92b9480, n=0x9482328, k=0x9482348, result=0x9817148) at sd.c:3 3 int nval = *n, kval = *k; (gdb) So, what happened in this debugging session?

A.2 Installing from a Linux Package Manager Rather than using the precompiled binaries, if you’re running a Linux distribution with a centralized package repository, such as Fedora or Ubuntu, you can install R using your OS’s package manager. For example, if you’re running Fedora, you can install R by typing the following at the command line: $ yum install R For a Debian-based system, such as Ubuntu, the command looks like this: $ sudo apt-get install r-base Check your distribution’s documentation for more details on installing and removing packages. A.3 Installing from Source On Linux or other UNIX-based machines (probably including Mac OS X), you can also compile R’s source code yourself.


PostGIS in Action by Regina O. Obe, Leo S. Hsu

call centre, crowdsourcing, database schema, Debian, domain-specific language, en.wikipedia.org, Firefox, functional programming, Google Earth, job automation, McMansion, Mercator projection, Network effects, openstreetmap, planetary scale, profit maximization, Ruby on Rails, Skype, South of Market, San Francisco, traveling salesman, web application

If you’re using the PostgreSQL Yum repository (http://yum.postgresql.org) for the PostgreSQL installation, install PL/Python with the following command from the OS: yum install postgresql92-plpython Similarly, the PostgreSQL Apt repository (http://wiki.postgresql.org/wiki/Apt) has packages for Ubuntu and Debian users. Once you have Python and the plpython.so or plpython.dll file installed on your server, execute one of the following statements to enable the language in your database: CREATE EXTENSION plpythonu; CREATE EXTENSION plpython3u; If you run into problems enabling PL/Python, refer to our PL/Python help links in appendix A.

The PostgreSQL server service of Postgres.app can be launched and shut down with a click, making it great for development. If you use any of these, make sure to get your PostgreSQL version from the same source as PostGIS, or your PostGIS may not be compatible with your PostgreSQL. B.1.4. PostgreSQL APT repository The PostgreSQL development group (PGDG) has a repository for the Ubuntu and Debian APT packaging system. More details of how to add the PGDG APT repository can be found at https://wiki.postgresql.org/wiki/Apt. Once you add this APT repository to your list of repositories, you can install/upgrade PostgreSQL and PostgreSQL extensions via the standard APT package manager. The PGDG APT repository comes packaged with the latest versions of PostgreSQL and many add-ons, such as pgAdmin and common PostgreSQL extensions.

The PGDG APT repository comes packaged with the latest versions of PostgreSQL and many add-ons, such as pgAdmin and common PostgreSQL extensions. It also includes packages for PostGIS. There’s generally only one PostGIS per major version of PostgreSQL. PostgreSQL 9.3 and 9.4 are the latest, and both carry PostGIS 2.1. B.1.5. Other available binaries and distros Most of the other distros such as Ubuntu and Debian make PostgreSQL and PostGIS available via their package managers, though the ones from the official repositories are sometimes antiquated. B.1.6. Compiling and installing from PostGIS source If you want the most bleeding-edge version of PostGIS, compiling it yourself is still generally the way to go.


Practical Packet Analysis: Using Wireshark to Solve Real-World Network Problems by Chris Sanders

Debian, peer-to-peer, pirate software, RFC: Request For Comment

Open a console window and type rpm -ivh wireshark-0.99.3.i386.rpm, substituting the filename of your downloaded package as appropriate. If any dependencies are missing, install them and repeat the previous step. DEB-based Systems To install Wireshark on a DEB-based distribution such as Debian or Ubuntu, do the following: Download the appropriate installation package from the Wireshark web page. Open a console window and type apt-get install wireshark. Wireshark Fundamentals Once you've successfully installed Wireshark on your system, you can begin to familiarize yourself with it.


The Icon Handbook by Jon Hicks

augmented reality, Debian, Firefox, Google Chrome, Kickstarter, Skype, web application

Axialis also provides some excellent tutorial material on creating icons for different contexts: http://www.axialis.com/tutorials/index.html Inkscape http://inkscape.org/ (Linux, Mac OS X and Windows) If you prefer your applications to be open source, Inkscape is the only choice of vector editor you’ll have. It uses SVG as its native file format but can be very fiddly to use, particularly when trying to draw to pixels. The other option is GIMP, an open source Photoshop alternative, which lacks any vector tools. Supported Linux distributions are: Fedora Gentoo Debian Ubuntu Yellow Dog Suse Slackware Yoper Mandrakelinux Red Hat Opacity http://likethought.com/opacity/ (Mac OS X only) Opacity is a powerful vector and bitmap editor designed particularly for creating screen graphics and resolution independent images. Its greatest strengths lie in what it calls variables and factories, and its resolution system.


pages: 555 words: 119,733

Autotools by John Calcote

Albert Einstein, card file, Debian, delayed gratification, don't repeat yourself, en.wikipedia.org, Everything should be made as simple as possible, place-making, Richard Feynman, Valgrind

The FLAIM Toolkit Makefile.am File Ignoring the commands for Doxygen- and RPM-specific targets (for now), the ftk/Makefile.am file is fairly trivial. Example 8-10 shows the entire file. Example 8-10. ftk/Makefile.am: The entire contents of the FLAIM toolkit's top-level makefile ACLOCAL_AMFLAGS = -I m4 EXTRA_DIST = GNUMakefile README.W32 debian netware win32 ❶ if HAVE_DOXYGEN DOXYDIR = docs Endif SUBDIRS = src util obs $(DOXYDIR) ❷ doc_DATA = AUTHORS ChangeLog COPYING INSTALL NEWS README RPM = rpm ❸ rpms srcrpm: dist (cd obs && $(MAKE) $(AM_MAKEFLAGS) $@) || exit 1 rpmarch=`$(RPM) --showrc | \ grep "^build arch" | sed 's/\(.*: \)\(.*\)/\2/'`; \ test -z "obs/$$rpmarch" || \ ( mv obs/$$rpmarch/* . && rm -rf obs/$$rpmarch ) rm -rf obs/$(distdir) ❹ dist-hook: rm -rf `find $(distdir) -name .svn` .PHONY: srcrpm rpms In this file you'll find the usual ACLOCAL_AMFLAGS, EXTRA_DIST, and SUBDIRS variable definitions, but you can also see the use of an Automake conditional at ❶.

I use the dist-hook target at ❹ in Makefile.am to adjust the distribution directory after it's built but before make builds a tarball from its contents. The rm command removes extraneous files and directories that become part of the distribution directory as a result of my adding entire directories to the EXTRA_DIST variable. When you add directory names to EXTRA_DIST (debian, netware, and win32, in this case), everything in those directories is added to the distribution—even hidden Subversion control files and directories. Example 8-11 is a portion of the generated Makefile that shows how Automake incorporates dist-hook into the final makefile. The relevant portions are bolded.


pages: 960 words: 125,049

Mastering Ethereum: Building Smart Contracts and DApps by Andreas M. Antonopoulos, Gavin Wood Ph. D.

Amazon Web Services, bitcoin, blockchain, continuous integration, cryptocurrency, Debian, Dogecoin, domain-specific language, don't repeat yourself, Edward Snowden, en.wikipedia.org, Ethereum, ethereum blockchain, fault tolerance, fiat currency, Firefox, functional programming, Google Chrome, intangible asset, Internet of things, litecoin, move fast and break things, move fast and break things, node package manager, peer-to-peer, Ponzi scheme, prediction markets, pull request, QR code, Ruby on Rails, Satoshi Nakamoto, sealed-bid auction, sharing economy, side project, smart contracts, transaction costs, Turing complete, Turing machine, Vickrey auction, web application, WebSocket

If so, remove it and install the latest version from https://golang.org/. Rust can be installed by following the instructions at https://www.rustup.rs/. Note Parity requires Rust version 1.27 or greater. Parity also requires some software libraries, such as OpenSSL and libudev. To install these on a Ubuntu or Debian GNU/Linux compatible system, use the following command: $ sudo apt-get install openssl libssl-dev libudev-dev cmake For other operating systems, use the package manager of your OS or follow the Wiki instructions to install the required libraries. Now that you have git, golang, Rust, and the necessary libraries installed, let’s get to work!

Download and Install There are a number of methods you can use to download and install Solidity, either as a binary release or by compiling from source code. You can find detailed instructions in the Solidity documentation. Here’s how to install the latest binary release of Solidity on an Ubuntu/Debian operating system, using the apt package manager: $ sudo add-apt-repository ppa:ethereum/ethereum $ sudo apt update $ sudo apt install solc Once you have solc installed, check the version by running: $ solc --version solc, the solidity compiler commandline interface Version: 0.4.24+commit.e67f0147.Linux.g++ There are a number of other ways to install Solidity, depending on your operating system and requirements, including compiling from the source code directly.


Mastering Ansible by Jesse Keating

cloud computing, Debian, DevOps, don't repeat yourself, microservices, remote working

What you need for this book To follow the examples provided in this book, you will need access to a computer platform capable of running Ansible. Currently, Ansible can be run from any machine with Python 2.6 or 2.7 installed (Windows isn't supported for the control machine). This includes Red Hat, Debian, CentOS, OS X, any of the BSDs, and so on. This book uses the Ansible 1.9.x series release. Ansible installation instructions can be found at http://docs.ansible.com/ ansible/intro_installation.html. Who this book is for This book is intended for Ansible developers and operators who have an understanding of the core elements and applications but are now looking to enhance their skills in applying automation using Ansible.


pages: 190 words: 52,865

Full Stack Web Development With Backbone.js by Patrick Mulder

Airbnb, create, read, update, delete, Debian, functional programming, Kickstarter, MVC pattern, node package manager, Ruby on Rails, side project, single page application, web application, WebSocket

Homebrew is a package manager for Mac OS (see http://brew.sh/ for basic installation instructions). Once Homebrew is installed, you can run the following: $ brew upgrade $ brew install node Alternatively, you can visit the download page. Here, you also find the Node versions for Windows and source code packages. If you are running an Ubuntu or Debian flavor of Linux, you can install Node.js with: sudo apt-get install build-essential libssl-dev curl git-core sudo apt-get install nodejs If you need to run different versions of Node.js (e.g., if you are dealing with constraints in production), you might want to have a look at NVM. With NVM, you can easily switch between versions of Node.js. 157 Getting Functional with Underscore.js Because JavaScript in its old standard didn’t have helpers for dealing with enumerators, Underscore.js was born.


pages: 731 words: 134,263

Talk Is Cheap: Switching to Internet Telephones by James E. Gaskin

Debian, packet switching, peer-to-peer, peer-to-peer model, Silicon Valley, Skype, speech recognition, telemarketer

I strongly recommend you skip the speakers and microphone and get either a headset or a phone that plugs into your computer and supports Skype software. Operating systems supported include: Windows 2000 and XP (Home and Pro) Macintosh OS X SuSE 9 and newer Mandrake 10.1 and newer Fedora Core 3 (Red Hat) Xandros, MEPIS, Ubuntu, and other Debian-based operating systems If you're running a version of Linux that doesn't meet the requirements, you can try running the binary releases: Dynamic binary as a bzipped tar file Static binary bzipped tar file with Qt 3.2 installed (they also have a version for download with Qt 3.2 compiled in) Skype recently made a bundling deal with Xandros to include Skype in their low-cost hardware and software systems.

I strongly recommend you skip the speakers and microphone and get either a headset or a phone that plugs into your computer and supports Skype software. Operating systems supported include: Windows 2000 and XP (Home and Pro) Macintosh OS X SuSE 9 and newer Mandrake 10.1 and newer Fedora Core 3 (Red Hat) Xandros, MEPIS, Ubuntu, and other Debian-based operating systems If you're running a version of Linux that doesn't meet the requirements, you can try running the binary releases: Dynamic binary as a bzipped tar file Static binary bzipped tar file with Qt 3.2 installed (they also have a version for download with Qt 3.2 compiled in) Skype recently made a bundling deal with Xandros to include Skype in their low-cost hardware and software systems.


Pragmatic.Programming.Erlang.Jul.2007 by Unknown

Debian, en.wikipedia.org, fault tolerance, finite state, full text search, functional programming, RFC: Request For Comment

Or give the command q() in the shell. 21 I NSTALLING E RLANG Windows You’ll find a list of the releases at http://www.erlang.org/download.html. Choose the entry for the latest version, and click the link for the Windows binary—this points to a Windows executable. Click the link, and follow the instructions. This is a standard Windows install, so you shouldn’t have any problems. Linux Binary packages exist for Debian-based systems. On a Debian-based system, issue the following command: > apt-get install erlang Installing on Mac OS X As a Mac user, you can install a prebuilt version of Erlang using the MacPorts system, or you can build Erlang from source. Using MacPorts is marginally easier, and it will handle updates over time.


pages: 752 words: 131,533

Python for Data Analysis by Wes McKinney

backtesting, Bear Stearns, cognitive dissonance, crowdsourcing, Debian, Firefox, functional programming, Google Chrome, Guido van Rossum, index card, random walk, recommendation engine, revision control, sentiment analysis, Sharpe ratio, side project, sorting algorithm, statistical model, type inference

GNU/Linux Note Some, but not all, Linux distributions include sufficiently up-to-date versions of all the required Python packages and can be installed using the built-in package management tool like apt. I detail setup using EPDFree as it's easily reproducible across distributions. Linux details will vary a bit depending on your Linux flavor, but here I give details for Debian-based GNU/Linux systems like Ubuntu and Mint. Setup is similar to OS X with the exception of how EPDFree is installed. The installer is a shell script that must be executed in the terminal. Depending on whether you have a 32-bit or 64-bit system, you will either need to install the x86 (32-bit) or x86_64 (64-bit) installer.

If you are using the bash shell (the default in Ubuntu, for example), this means adding the following path addition in your .bashrc: export PATH=/home/wesm/epd/bin:$PATH Obviously, substitute the installation directory you used for /home/wesm/epd/. After doing this you can either start a new terminal process or execute your .bashrc again with source ~/.bashrc. You need a C compiler such as gcc to move forward; many Linux distributions include gcc, but others may not. On Debian systems, you can install gcc by executing: sudo apt-get install gcc If you type gcc on the command line it should say something like: $ gcc gcc: no input files Now, time to install pandas: $ easy_install pandas If you installed EPDFree as root, you may need to add sudo to the command and enter the sudo or root password.


pages: 549 words: 134,988

Pro Git by Scott Chacon, Ben Straub

Chris Wanstrath, continuous integration, creative destruction, Debian, distributed revision control, GnuPG, pull request, remote working, revision control, web application

Since Git is quite excellent at preserving backwards compatibility, any version after 2.0 should work just fine. Installing on Linux If you want to install Git on Linux via a binary installer, you can generally do so through the basic package-management tool that comes with your distribution. If you’re on Fedora for example, you can use yum: $ yum install git If you’re on a Debian-based distribution like Ubuntu, try apt-get: $ apt-get install git For more options, there are instructions for installing on several different Unix flavors on the Git website, at http://git-scm.com/download/linux. Installing on Mac There are several ways to install Git on a Mac. The easiest is probably to install the Xcode Command Line Tools.

The binary installers tend to be a bit behind, though as Git has matured in recent years, this has made less of a difference. If you do want to install Git from source, you need to have the following libraries that Git depends on: curl, zlib, openssl, expat, and libiconv. For example, if you’re on a system that has yum (such as Fedora) or apt-get (such as a Debian based system), you can use one of these commands to install the minimal dependencies for compiling and installing the Git binaries: $ yum install curl-devel expat-devel gettext-devel \ openssl-devel zlib-devel $ apt-get install libcurl4-gnutls-dev libexpat1-dev gettext \ libz-dev libssl-dev In order to be able to add the documentation in various formats (doc, html, info), these additional dependencies are required: $ yum install asciidoc xmlto docbook2x $ apt-get install asciidoc xmlto docbook2x When you have all the necessary dependencies, you can go ahead and grab the latest tagged release tarball from several places.


PostGIS in Action, 2nd Edition by Regina O. Obe, Leo S. Hsu

call centre, crowdsourcing, database schema, Debian, domain-specific language, en.wikipedia.org, Firefox, functional programming, Google Earth, job automation, McMansion, megacity, Mercator projection, Network effects, openstreetmap, planetary scale, profit maximization, Ruby on Rails, Skype, South of Market, San Francisco, traveling salesman, web application

If you’re using the PostgreSQL Yum repository (http://yum.postgresql.org) for the PostgreSQL installation, install PL/Python with the following command from the OS: yum install postgresql92-plpython Similarly, the PostgreSQL Apt repository (http://wiki.postgresql.org/wiki/Apt) has packages for Ubuntu and Debian users. Once you have Python and the plpython.so or plpython.dll file installed on your server, execute one of the following statements to enable the language in your database: Licensed to tracy moore <nordick.an@gmail.com> www.it-ebooks.info PL/Python 429 CREATE EXTENSION plpythonu; CREATE EXTENSION plpython3u; If you run into problems enabling PL/Python, refer to our PL/Python help links in appendix A.

The PostgreSQL server service of Postgres.app can be launched and shut down with a click, making it great for development. If you use any of these, make sure to get your PostgreSQL version from the same source as PostGIS, or your PostGIS may not be compatible with your PostgreSQL. B.1.4 PostgreSQL APT repository The PostgreSQL development group (PGDG) has a repository for the Ubuntu and Debian APT packaging system. More details of how to add the PGDG APT repository can be found at https://wiki.postgresql.org/wiki/Apt. Once you add this APT repository to your list of repositories, you can install/upgrade PostgreSQL and PostgreSQL extensions via the standard APT package manager. The PGDG APT repository comes packaged with the latest versions of PostgreSQL and many add-ons, such as pgAdmin and common PostgreSQL extensions.

It also Licensed to tracy moore <nordick.an@gmail.com> www.it-ebooks.info 488 APPENDIX B Installing, compiling, and upgrading includes packages for PostGIS. There’s generally only one PostGIS per major version of PostgreSQL. PostgreSQL 9.3 and 9.4 are the latest, and both carry PostGIS 2.1. B.1.5 Other available binaries and distros Most of the other distros such as Ubuntu and Debian make PostgreSQL and PostGIS available via their package managers, though the ones from the official repositories are sometimes antiquated. B.1.6 Compiling and installing from PostGIS source If you want the most bleeding-edge version of PostGIS, compiling it yourself is still generally the way to go.


Android Developer Tools Essentials: Android Studio to Zipalign by Mike Wolfson, Donn Felker

Debian, performance metric, pez dispenser

In Eclipse, a Java Compiler option in the properties of your Android project allows you to set this. You can download the JDK installation packages for each supported OS from the Java download site. Tip Optionally, if you are on Linux, you can use a package manager (such as apt or yum) to download and install Java. For instance, on Ubuntu or Debian, use the following command: sudo apt-get install sun-java6-jdk In general, Mac OS X developers aren’t required to install Java manually. On the Mac OS, Java comes preinstalled, with a custom packaged version directly from Apple. Updating to newer versions of Java is only possible when Apple releases an update through their own channels.


Programming Android by Zigurd Mednieks, Laird Dornin, G. Blake Meike, Masumi Nakamura

anti-pattern, business process, conceptual framework, create, read, update, delete, database schema, Debian, domain-specific language, en.wikipedia.org, fault tolerance, Google Earth, interchangeable parts, iterative process, loose coupling, MVC pattern, revision control, RFID, web application

If you installed revision 20 of the Java 6 JDK, the command would display: javac 1.6.0_20 Depending on the current version of the JDK available when you read this, version numbers may differ from what you see here. Note If it is unclear which JRE you are running, or if you think you have the wrong JRE running on a Debian-derived Linux system, such as Ubuntu, you can use the following command to display the available JREs and select the right one: sudo update-alternatives --config java The Eclipse Integrated Development Environment (IDE) Eclipse is a general-purpose technology platform. It has been applied to a variety of uses in creating IDEs for multiple languages and in creating customized IDEs for many specialized SDKs, as well as to uses outside of software development tools, such as providing a Rich Client Platform (RCP) for Lotus Notes and a few other applications.

If you are using Ubuntu or another Linux distribution, you should not install Eclipse from your distribution’s repositories, and if it is currently installed this way, you must remove it and install Eclipse as described here. The presence of an “eclipse” package in the Ubuntu repositories is an inheritance from the Debian repositories on which Ubuntu is based. It is not a widely used approach to installing and using Eclipse, because most of the time, your distribution’s repositories will have older versions of Eclipse. To confirm that Eclipse is correctly installed and that you have a JRE that supports Eclipse, launch the executable file in the Eclipse folder.


pages: 303 words: 57,177

Hands-On Functional Programming in RUST by Andrew Johnson

anti-pattern, Debian, domain-specific language, don't repeat yourself, Donald Knuth, functional programming, premature optimization

Academically, his interests are focused on the intersection between formal language processing (such as programming languages) and existing natural language programming techniques. About the reviewer Sebastian Dröge is a free software developer currently working with Centricular Ltd. He has been involved for more than 10 years with the GStreamer project, a cross-platform multimedia framework. He also contributes to various other projects, such as Debian, GNOME, Rust, and WebKit. While finishing his master's degree in computer science, he started working as a contractor on free software and continues to do so to this day. Packt is searching for authors like you If you're interested in becoming an author for Packt, please visit authors.packtpub.com and apply today.


pages: 352 words: 64,282

MongoDB: The Definitive Guide by Kristina Chodorow, Michael Dirolf

create, read, update, delete, Debian, pattern recognition, Ruby on Rails, web application

$ tar zxf mongodb-linux-i686-1.6.0.tar.gz $ cd mongodb-linux-i686-1.6.0 Now you can start the database: $ bin/mongod Or if you’d like to use an alternate database path, specify it with the --dbpath option: $ bin/mongod --dbpath ~/db See Chapter 8 for a summary of the most common options, or run mongod with --help to see all the possible options. Installing from a Package Manager On these systems, there are many package managers that can also be used to install MongoDB. If you prefer using one of these, there are official packages for Debian and Ubuntu and unofficial ones for Red Hat, Gentoo, and FreeBSD. If you use an unofficial version, make sure to check the logs when you start the database; sometimes these packages are not built with UTF-8 support. On Mac, there are also unofficial packages in Homebrew and MacPorts. If you go for the MacPorts version, be forewarned: it takes hours to compile all the Boost libraries, which are MongoDB prerequisites.


pages: 236 words: 67,823

Hacking Vim 7.2 by Kim Schulz

Alexey Pajitnov wrote Tetris, Bram Moolenaar, Debian, revision control, sorting algorithm

On computers running Linux, the installation depends on the Linux distribution you are using. Chances are that you already have Vim installed as it comes pre-installed on most distributions today. If it is not already installed, then refer to the distributions package manager (for example Aptitude in debian, urpmi in Mandriva, and Synaptics in Ubuntu) to see how to install Vim. If no package manager is available, you can always install Vim from the source you downloaded using the previously mentioned link. See the readme file for information on the exact commands to use in order to install it. vi, Vim, and friends Vim is just one of many derivatives of the original vi that Bill Joy released back in 1976.


Introducing Elixir by Simon St.Laurent, J. David Eisenberg

Debian, finite state, functional programming, Pluto: dwarf planet, Ruby on Rails, web application

You can ignore the error about FOP, which Erlang uses to generate PDF documenta‐ tion you can download elsewhere. Also, on newer Macs, you’ll get an error at the end that wxWidgets doesn’t work on 64-bit macOS. For now, ignore this too. 1 If the compilation approach doesn’t work or isn’t for you, Erlang Solutions offers a number of installs. Also, many different package managers (Debian, Ubuntu, Mac‐ Ports, Homebrew, and so on) include Erlang. It may not be the very latest version, but having Erlang running is much better than not having Erlang running. They do tend to make it run on the latest version of various operating systems, so if you have instal‐ lation problems, look closely at their requirements.


pages: 834 words: 180,700

The Architecture of Open Source Applications by Amy Brown, Greg Wilson

8-hour work day, anti-pattern, bioinformatics, c2.com, cloud computing, collaborative editing, combinatorial explosion, computer vision, continuous integration, create, read, update, delete, David Heinemeier Hansson, Debian, domain-specific language, Donald Knuth, en.wikipedia.org, fault tolerance, finite state, Firefox, friendly fire, functional programming, Guido van Rossum, linked data, load shedding, locality of reference, loose coupling, Mars Rover, MITM: man-in-the-middle, MVC pattern, peer-to-peer, Perl 6, premature optimization, recommendation engine, revision control, Ruby on Rails, side project, Skype, slashdot, social web, speech recognition, the scientific method, The Wisdom of Crowds, web application, WebSocket

CPack works much like the build part of CMake: it interfaces with other packaging tools. For example, on Windows the NSIS packaging tool is used to create executable installers from a project. CPack runs the install rules of a project to create the install tree, which is then given to a an installer program like NSIS. CPack also supports creating RPM, Debian .deb files, .tar, .tar.gz and self-extracting tar files. 5.2.3. Graphical Interfaces The first place many users first see CMake is one of CMake's user interface programs. CMake has two main user interface programs: a windowed Qt-based application, and a command line curses graphics-based application.

This is a big win for developers: they just have to describe their dependencies using the Python standards described below and use zc.buildout to release their application. But as discussed earlier, this type of release sets up a fortress within the system, which most Linux sysadmins will hate. Windows admins won't mind, but those managing CentOS or Debian will, because those systems base their management on the assumption that every file in the system is registered, classified, and known to admin tools. Those admins will want to repackage your application according to their own standards. The question we need to answer is, "Can Python have a packaging system that can be automatically translated into other packaging systems?"


pages: 270 words: 75,473

Time Management for System Administrators by Thomas A.Limoncelli

8-hour work day, Albert Einstein, business cycle, Debian, job satisfaction, Kickstarter, Mahatma Gandhi, Steve Jobs

Applications like Mac iCal, Windows Outlook, and open source tools like Evolution and KOrganizer can alert you when an appointment grows near (this is useful if you are always near the machine running said software). Set some kind of alarm for your next appointment, either on your watch or cell phone. Users of Unix systems such as Mac OS X, BSD, Debian Linux, and HP Tru64 Unix have the "leave" command to alert them when to leave for an appointment. Program a server to send a reminder to your cell phone or pager at the appropriate time. Unix/Linux users will find it useful to enable the "at" service and use it to send email to your cell phone at a certain time: $ at 11:50 > echo Meet Bob for lunch | mail 19085552323@teleflip.com > ^D Remember, when setting an alarm, always set it to give yourself enough time to get to the appointment, whether that is two minutes to walk down the hall or two hours to drive to another location.


Mastering Structured Data on the Semantic Web: From HTML5 Microdata to Linked Open Data by Leslie Sikos

AGPL, Amazon Web Services, bioinformatics, business process, cloud computing, create, read, update, delete, Debian, en.wikipedia.org, fault tolerance, Firefox, Google Chrome, Google Earth, information retrieval, Infrastructure as a Service, Internet of things, linked data, natural language processing, openstreetmap, optical character recognition, platform as a service, search engine result page, semantic web, Silicon Valley, social graph, software as a service, SPARQL, text mining, Watson beat the top human players on Jeopardy!, web application, wikimedia commons

Final Code for Creating a Database with Nodes and Properties, and Displaying Stored Data import import import import import import org.neo4j.graphdb.GraphDatabaseService; org.neo4j.graphdb.Node; org.neo4j.graphdb.Relationship; org.neo4j.graphdb.RelationshipType; org.neo4j.graphdb.Transaction; org.neo4j.graphdb.factory.GraphDatabaseFactory; public class Neo4jDemo { private static final String DB_PATH = "target/neo4jdemodb"; GraphDatabaseService graphDb; Node firstNode; Node secondNode; Relationship relationship; private static enum RelTypes implements RelationshipType { WEBSITE_OF } public static void main(final String[] args) { Neo4jDemo dbsample = new Neo4jDemo(); dbsample.createDb(); dbsample.shutDown(); } void createDb() { graphDb = new GraphDatabaseFactory().newEmbeddedDatabase(DB_PATH); try ( Transaction tx = graphDb.beginTx() ) { firstNode = graphDb.createNode(); 167 Chapter 6 ■ Graph Databases firstNode.setProperty("uri", "http://dbpedia.org/resource/Leslie_ Sikos"); firstNode.setProperty("label", "Leslie Sikos"); secondNode = graphDb.createNode(); secondNode.setProperty("uri", "http://www.lesliesikos.com"); secondNode.setProperty("label", "website address"); relationship = firstNode.createRelationshipTo(secondNode, RelTypes.WEBSITE_OF); relationship.setProperty("uri", "http://schema.org/url"); relationship.setProperty("label", "website"); System.out.print(secondNode.getProperty("uri") + " is the "); System.out.print(relationship.getProperty("label") + " of "); System.out.print(firstNode.getProperty("label")); tx.success(); } } void shutDown() { System.out.println(); System.out.println("Shutting down database…"); graphDb.shutdown(); } } Figure 6-9. A Neo4j application in Eclipse 168 Chapter 6 ■ Graph Databases 4Store 4Store is an efficient, scalable, and stable RDF database available for Linux systems such as Arch Linux, Debian, Ubuntu, Fedora, and CentOS, as well as Mac OS and FreeBSD [9]. To install 4Store on Linux, follow these steps: 1. Download the installer from http://www.4store.org. 2. Prepare your system to be used with 4Store by configuring it to look for libraries in /usr/local/lib and/or /usr/local/lib64.


pages: 220 words: 73,451

Democratizing innovation by Eric von Hippel

additive manufacturing, correlation coefficient, Debian, disruptive innovation, hacker house, informal economy, information asymmetry, inventory management, iterative process, James Watt: steam engine, knowledge economy, longitudinal study, meta-analysis, Network effects, placebo effect, principal–agent problem, Richard Stallman, software patent, transaction costs, Vickrey auction

As we saw in a previous chapter, the joy and the learning associated with creativity and membership in creative communities are also important, and these experiences too are made more widely available as innovation is democra- 124 Chapter 9 tized. The aforementioned Chris Hanson, a Principal Research Scientist at MIT and a maintainer in the Debian Linux community, speaks eloquently of this in his description of the joy and value he finds from his participation in an open source software community: Creation is unbelievably addictive. And programming, at least for skilled programmers, is highly creative. So good programmers are compelled to program to feed the addiction.


pages: 398 words: 86,023

The Wikipedia Revolution: How a Bunch of Nobodies Created the World's Greatest Encyclopedia by Andrew Lih

Albert Einstein, AltaVista, barriers to entry, Benjamin Mako Hill, Bill Atkinson, c2.com, Cass Sunstein, citation needed, crowdsourcing, Debian, disinformation, en.wikipedia.org, Firefox, Hacker Ethic, HyperCard, index card, Jane Jacobs, Jason Scott: textfiles.com, jimmy wales, Kickstarter, Marshall McLuhan, Mitch Kapor, Network effects, optical character recognition, Ralph Waldo Emerson, Richard Stallman, side project, Silicon Valley, Skype, slashdot, social software, Steve Jobs, The Death and Life of Great American Cities, The Wisdom of Crowds, Tragedy of the Commons, urban planning, urban renewal, Vannevar Bush, wikimedia commons, Y2K, Yochai Benkler

But it might just be this maturation process that is needed. For example, the Linux operating system, which inspired the Wikipedia development model, has a robust marketplace creating multiple stable distributions built off a shared central base of computer code. Most users experience Linux through packages such as Ubuntu, SUSE, Debian, and Fe-dora, each one with different characteristics—ease of use, variety of features, look and feel, etc. This might be a model of Wikipedia, where people experience Wikipedia’s content through multiple “distributions,” and not necessarily through Wikipedia’s continuously shifting state as we see it today.


pages: 713 words: 93,944

Seven Databases in Seven Weeks: A Guide to Modern Databases and the NoSQL Movement by Eric Redmond, Jim Wilson, Jim R. Wilson

AGPL, Amazon Web Services, create, read, update, delete, data is the new oil, database schema, Debian, domain-specific language, en.wikipedia.org, fault tolerance, full text search, general-purpose programming language, Kickstarter, linked data, MVC pattern, natural language processing, node package manager, random walk, recommendation engine, Ruby on Rails, Skype, social graph, web application

A trade-off of this evolutionary behavior is that there are several paths to performing any given function in Mongo. 5.2 Day 1: CRUD and Nesting We’ll spend today working on some CRUD operations and finish up with performing nested queries in MongoDB. As usual, we won’t walk you through the installation steps, but if you visit the Mongo website,[37] you can download a build for your OS or find instructions on how to build from source. If you have OS X, we recommend installing via Homebrew (brew install mongodb ). If you use some Debian/Ubuntu variant, try Mongodb.org’s own apt-get package. To prevent typos, Mongo requires you to first create the directory where mongod will store its data. A common location is /data/db. Ensure the user you run the server under has permission to read and write to this directory. If it’s not already running, you can fire up the Mongo service by running mongod.


pages: 632 words: 223,899

Exim: The Mail Transfer Agent by Philip Hazel

Debian, RFC: Request For Comment, x509 certificate

The -mbx option is mutually exclusive with -fcntl. 9 October 2001 09:12 22 Building and Installing Exim So far, we have talked only about how to use Exim, assuming that it is already installed on your system. We have not yet covered how to get it there. There are three possibilities: • Some operating systems (for example, Debian GNU/Linux) are now distributed with Exim already installed. If yours is one of these, you do not need to do anything, unless you want to use some of the optional code that is not included in your binary or you want to upgrade to a later release. If you do, you will have to fetch the source and compile it yourself

x) option, 551, 562 in headers, 12 if command and, 247, 257 as metacharacters, 550, 558 % (percent sign) in local parts, 328 + (plus sign) +allow_unknown/+warn_unknown settings, 429 with ident prefix, 431 with filenames, 105 as metacharacter, 550 ; (semicolon) in retry rules, 292 in routing rules, 168 / (forward slash), 124 /accept option, rbl_domains option, 313 in lists, 422 in maildir files, 215 /reject option, rbl_domains option, 311 /skiprelay option, rbl_domains option, 313 /warn option, rbl_domains option, 311 _ (underscore) in domain names, 310 in keywords, 254 574 " (double quote) data values and, 247 ldap_default_servers option and, 385 in lists, 122 of hosts, 163 in named field extractions, 410 in options, 57 in pipe commands, 124, 252 in query-style lookups, 383 quoting and, 414 in regular expressions, 258, 548 in rewriting rules, 344 in string expansions, 393 ' (single quote) in hosts lists, 163 in pipe commands, 124 Numbers $0 variable, 163, 538 $1, $2, etc. variables, 159, 335, 538 authentication and, 364 8BITMIME extension (SMTP), 446 12tocdbm command, 381 A A record type, DNS lookups, 388 A6 record type, 22, 26 DNS lookups, 388 AAAA record type, 22 DNS lookups, 388 /accept option, rbl_domains option, 313 accept_8bitmime option, 446 accept_timeout option, overriding, 462 add command, 249 counters incremented by, 542 addresses, 37, 304 adding/removing while transporting, 115 batched messages and, 202 canonicizing, 448 child/parent, 39, 543 deferred delivery of, pass_on_timeout option and, 151 domain-literal, 447 drivers and, 35 duplicate, 46, 122 filtering and, 241 error (see error address, changing) expansion variables derived from, 196 forcing to fail, 107 generating new, 147 smartuser director and, 149 handling, 475 9 October 2001 09:13 Index incoming, including in .forward file, 123 incomplete, qualify_domain option and, 35 IP domain literal, 150, 169 lists of, 432-434 configuration file and, 60 testing, 261 local, 19 processing, 38 restricting queue runners to, 466 lookups, options for specifying, 160 missing data in, 46 multiple, 12 multiple-user, 87 named director vs. first director, 121 nonlocal, 19 preventing passing of, 102 processing, 35, 38 options for, 468 quoting characters in, 414 recipient checking, 322-325 local senders, 306 options for, 325 rejecting explicitly, 324 sources of, 306 specifying, 304 testing verification, 324 verifying, 323 rejecting, reasons for, 17 remote, 38 becoming local, 47 routing to local host, 48 two-pass processing for, 466 remote sender, 314-322 bad envelopes, fixing, 318 failures, permanent, 317 failures, temporary, 316 headers, checking, 319 options for, 321 rejecting explicitly, 320 SMTP, 314 verification, testing, 319 rewriting, 149, 177, 339-354 automatically, 339 Bcc:/Cc: headers, 347 conditionally, 344 configured, 340-343 envelope fields, 347 From: header, 348 general, 341 headers, 348 lookup-driven, 345 Index addresses, rewriting (continued) per-transport, 342 Reply-To: header, 348 rules for, 343-345, 347-351 Sender: header, 348 To: header, 348 as unqualified local part, 348 rewriting generated, 128 sender options for, 462 $sender_address variable and, 545 smartuser director and, 118 source-routed, 448 splitting, 410 syntax of, 446-448 angle brackets in, 447 built-in extensions, 446 errors, 133 period in, 447 timeouts of, 297 types of, 18 unqualified, 128, 132, 149, 304 domains, adding to, 339 new_address option and, 147 from remote hosts, 307 validity of, 20 verifying, 103, 114, 117 by directors/routers, 316 virtual domains and, 74 $address_file variable, 538 address_file_transport option, 242 $address_pipe variable, 538 address_pipe_transport option, 242 admin group, 195 admin users (see system administrators) admin_groups option, 444 administering, 436, 482-515 address rewriting (see rewriting addresses) MTAs, 29 queue inspection, 470 system filters, 238 (see also system administrators) alias files local parts without domains in, 76 maintaining, 511 names of, specifying, 137 owners of, specifying, 132 single-key lookups and, 389 alias lists databases for storing, 133 duplicate addresses and, 122 expanding, 135 syntax errors in, 129 9 October 2001 09:13 575 aliases, 15 defaulting unknown to postmasters, 135 forwarding and, 123 system drivers and, 36 aliasfile director, 36, 118, 121-138 address_pipe_transport option and, 111 expand option and, 125 lookups and, 134, 378 multiple, 134 NFS-mounted mailing lists and, 80 options for, 126-133 pipes and, 111 transports and, 135 special-purpose, 49 aliasing, 118, 222 DNS records and, 25 domains multiple, 73 virtual, 74 expansion variables and, 538 headers_add/headers_remove options and, 109 host-checking and, 430 ignoring local parts in local deliveries, 91 nonaddress items and, 124-126 one-time, 129 to pipes, 111 for postmasters, 29 single-level, 120 by smartuser director, 77 (see also aliasfile director; pipe transport) all value (batch option), 200, 202 allow_commands option, 227, 229 restrict_to_path option and, 230 allow_fifo option, 206, 218 allow_localhost option, 191 allow_mx_to_ip option, 449 allow_symlink option, 206, 218 allow_system_actions option, 142-143 +allow_unknown/+warn_unknown settings, 429 with ident prefix, 431 ancestor checking, 127, 131 and operator, 405, 537 angle brackets (<>) (see <> (angle brackets)) ANSI/ISO C compiler, 517 anywhere value (create_file option), 206 appendfile transport, 36, 173 append_string/check_string options and, 198 comsat, notifying, 218 576 appendfile transport (continued) deliveries batched, 199-202 controlling environment for, 197 to separate files, 213-214 to separate files, maildir format, 220 files format of, checking, 209 locking, 209-213 modes of, 207 multimessage, setting up, 204 nonexistent, creating, 206 owners of, checking, 207, 218 $home variable and, 196 locking function, 210 mailboxes in home directories, 204 locking, 68 MBX, 212, 220, 222 non-MBX, locking, 211 symbolic links for, 206, 218 messages appended, format of, 207 line termination in, 199 in single file, separating, 197 named pipes, delivering to, 206, 218 operating modes, 203 options for, 196-222 prefix/suffix options and, 197 quotas exclusive/inclusive, 217 mailbox, 215 warnings, 217 append_string option, MMDF format and, 198 arguments, writing to main log, 486 asterisk (*) (see * (asterisk)) attachments, 12 viruses in, 21 scanning for, 94-99 AUTH command (SMTP), 188, 356 authenticated senders and, 362 PLAIN authentication and, 357 plaintext authenticator and, 365 auth_always_advertise option, 361 $authenticated_id variable, 364, 538 $authenticated_sender variable, 538 authenticate_hosts option, 188, 192, 363 authenticating, 6, 18, 355-367 expansion variables and, 538 forged email and, 18 mechanisms for, 357-360 CRAM-MD5, 358 LOGIN, 357 9 October 2001 09:13 Index PLAIN, 357 MTAs and, 9 options for, 363 with PAM, 402 $sender_host_authenticated variable, 545 string expansions and, 536 (see also Exim, authenticators) authenticator setting (-bP option), 474 authenticator_list setting (-bP option), 474 authenticators, 360-367 client-based, 363 server-based, 360 auth_hosts option, server authentication, 361 automatic reply messages, 145, 232, 240 disabling use of, 253 logging, 235-236 once-only, 235-236 parameters of, 233 user filters and, 259 (see also autoreply transport) autoreply transport, 36, 173 mailing lists, nonexistent, 234 messages once-only, 235-236 parameters of, 233 sent, logging, 235-236 options for, 232-237 pipe transport and, 233 auto_thaw option, 281 B b flag (rewriting rules), 347 backlists, 21 backslash (\) (see \ (backslash)) backups, MX, automatic relaying for, 329 batch option, 183, 202, 232 batch_max option and, 202 variables, 199 Batch SMTP (see BSMTP) batch_max option, 192, 200, 202, 232 hosts serialization and, 186 SMTP over TCP/IP, 373 bcc (blind carbon copy), 14 bcc option, 234-235 Bcc: header, 305 processing messages with, 336 rewriting, 347 -bd option, 273, 283, 459, 462 -q option with time value and, 467 -be option, expansion string testing and, 418 Index begins test, 258 belowhome value (create_file option), 196, 206 Berkeley DB library Version 2 or 3, 381 Berkeley mailbox format, 197 -bf option filter files, 244, 262 -oM options and, 464 -bF option -oM options and, 464 system filters, testing, 246 -bfd option, changing recipient domain, 245 -bfl option, changing recipient local part, 245 -bfp option, specifying local part prefix, 245 -bfs option, specifying local part suffix, 245 -bh option, 476, 529 -oM options and, 464 server authentication, testing, 361 :blackhole:, 125 forbid_special option and, 137 new_address option and, 147 blacklist (see DNS blocking lists) blind carbon copy (bcc), 14 -bm option, 462 message reception and, 460 $body_linecount variable, 538 body_only option, 174, 182 bounce messages, 282, 473 automatic messages and, 253 changing addresses for, 110 copies of, taking, 452 customizing, 454 delay warnings, 453 envelope senders, empty, 463 fail command and, 263 handling, 451-455 alerting postmaster, 453 replying to, 452 prefix/suffix options and, 197 reception of, logging, 490 replying to, 452 return_path option and, 177 senders, verifying, 315 size of, controlling, 303 SMTP errors and, 286 -bP option, 59, 387, 474 security and, 385 -bp option, 53, 470, 480 exiqsumm utility, 501 user privilege and, 443 -bpr option, 471 9 October 2001 09:13 577 -bpu option, 470 -brt option, 477 -brw option, 354, 478 -bS option, 283, 377, 462, 480 message reception and, 305, 460 -bs option, 283, 462 local SMTP, 376 message reception and, 305, 460 BSD-based systems configuring Exim on, 34 timestamps, 450 $tod_bsdinbox variable, 547 BSMTP (Batch SMTP), 96, 199-202, 377, 480 address verification, 316 check_string/escape_string options and, 199 HELO command and, 201-202 message reception and, 305 options for, 460 pipe transport and, 226 reception process, 283 use_crlf option and, 199 bsmtp option, 183, 201-202 batch_max option and, 202 bsmtp value (transport option), 164 bsmtp_helo option, 202 -bt option, 475 -d option and, 478 verify_only option and, 117 building Exim, 518-526 for multiple systems, 525 build-time options, 34 -bV option, 527 -bv option, 324, 475 -bvs option and, 319, 324 verify_only option and, 117 -bvs option, 319, 475 bydns/bydns_a/bydns_mx options, 160 byname option, 160 C c flag (rewriting rules), 347 -C option, 469 log_arguments option and, 487 caching in DNS, 23 in lookups, 391 $caller_gid variable, 538 $caller_uid variable, 539 canonical name records (see CNAME records) carriage return, 11 578 carriage return (continued) dropping characters, 462 carriage return/linefeed (see CRLF) case sensitivity in address list matching, 434 in alias files, 133 case of letters, forcing, 398 in domain names, 22 in filter commands, 258 in filter files, 246 header insertions in string expansions, 394 in local parts of message headers, 93 in macros, 58 in postmaster addresses, 29 cc option, 234, 236 Cc: header processing messages with, 336 rewriting, 347 cdb format, 75 lookups and, 381 cdb value (search_type option), 134 cdbmake command, 381 character translation in string expansions, 398 characters 8-bit, 445 nonprinting, 551 check_ancestor option, 127, 131 check_group option, 140, 144, 218 file ownership and, 207 check_local_user option, 144 $home variable and, 142 match_directory and, 145 check_log_inodes option, 450 check_log_space option, 450 check_owner option, 218 check_secondary_mx option, 155, 157 gethostbyname option and, 156 check_spool_inodes option, 450 check_spool_space option, 65, 450 check_string/escape_string options, 198, 202 bsmpt option and, 201 maildir_format and, 215 mbx_format option and, 208 MMDF format and, 198 circumflex (ˆ) (see ˆ (circumflex)) client_name option, 367 clients authenticators in cram_md5, 367 plaintext, 366 connecting to servers, 16 9 October 2001 09:13 Index Exim, authentication on, 363 TLS configuring Exim to use, 371 forcing use of, 370 relaying, 370 client_secret option, 367 client_send_string option, 366 CNAME records, 27 DNS lookups, 388 colon (:) (see : (colon)) comma (,) (see , (comma)) command line, parsing, 224 command option, 169, 172, 223, 229, 232 command_group/command_user options, 170, 172 command-line interface, 458-481 command-line options for BSMTP reception, 460 for configuration overrides, 469 daemon process, starting, 459 for debugging, 478 for delivery control, immediate, 464 for error routing, 465 for hosts, remote, 463 for input mode control, 459-462 for message control, 471-473 for non-SMTP reception, 460 for queue inspection, 470 for queue runner processes, 466-469 for sender addresses, 462 for sender names, 463 for Sendmail compatibility, 479 for SMTP reception, interactive, 460 terminating, 479 for testing, 464, 473-478 for testing retry rules, 477 commands delivery, 250-253 noerror value, 253 filter, 239-241 address list testing, 261 conditional, 257-262 delivery status testing, 261 error message testing, 261 number testing, 259 personal mail testing, 259 significant actions testing, 261 string testing, 258 lmtp transport, defining, 232 logging, 256 mail, 253 pipe, 224, 229 defining, 222 Index commands, pipe (continued) environment for, 225, 229 environment variables for, 226 error handling, 227, 230 failure to execute, 229 gids/uids for, 224 output from, handling, 228-229 parsing command line, 224 restricting, 227 running from shell, 225, 231 timing, 226 command_timeout option, 187, 192 comments, 568 in headers, 12 $compile_date variable, 539 $compile_number variable, 539 comsat, notifying, 218 condition option, 96, 103, 114 debug_print option and, 113 queryprogram router and, 169 conditions, testing address lists, 261 delivery status, 261 error messages, 261 numbers, 259 personal mail, 259 significant actions, 261 strings, 258 configuration file, 34, 54-61 address rewriting, 341 comsat, setting, 218 domains and, 74 drivers and, 37 gids/uids, defining, 436 hostname in, 543 hosts, using on different, 456 IP domain literal addresses and, 169 log destination, configuring, 484 lookups, 59 macros in, 58 overriding, 470 name of, changing, 469 options in order of, 101 setting, 57 overrides, options for, 469 qualify_domain/qualify_recipient options and, 543 retry rules, 48 sections of, 55 string expansions in, 59 testing, 474 updating, 511 configure_file option, 474 9 October 2001 09:13 579 configuring, 2, 33 bounce messages, 179 for building, 518-526 debugging, 113, 174 delivery configurations, 71-100 dial-up hosts, 299 directories for shared files, 266 directors, 118-149 for address verification, 316 header additions/removals and, 176 (see also individual directors; director drivers; transport drivers) hardware, 69 incoming mail, 20 local transports, 194 log destination, 484 RBLs, 311 routers, 150-172 for address verification, 316 header additions/removals and, 176 (see also individual routers) runtime configuration, 34 setuid root, 271 TLS as client, 371 TLS as server, 368 transports, 173-237 (see also individual transports) connect( ), 187 timeout for, 192 connect_timeout option, 187, 192 contains test, 258 cram_md5 authenticator in a client, 367 in a server, 366 cram_md5 value (driver option), 363 create_directory option, 214, 219 create_file option, 206, 219 belowhome/inhome values, 196 CRLF (carriage return/linefeed), 11 message separation and, 203 message termination, 462 use_crlf option and, 199 cron, 32 log files, cycling, 493 message reception and, 304 queue runner processes, starting, 279 crypt( ), 401 crypteq condition, 401, 536 CTRL-R/CTRL-S (Exim monitor), 507 curly braces ({}) (see {} (curly braces)) current_directory option, 121, 143, 172, 203 delivery environment, controlling, 197 settings, overriding, 196 580 Cyrus IMAP server, local deliveries and, 86 D D field (delivery logging), 491 -d option, 478 -D option, 58, 470 log_arguments option and, 487 -d9–-d11 options, 478 daemon process, 32, 265, 273-277, 283 configuration file and, 54 options for, 276, 459 SMTP calls, 274 daemons comsat, notifying, 220 Exim on dial-up hosts, 300 IMAP, single-file delivery, 214 listening, 464 mailer, 452 POP password lookups and, 67 single-file delivery, 214 reception processes and, 277 daemon_smtp_port option, 273 DATA command (SMTP), 17 BSMTP and, 201 data option, 144 file option and, 144 forwarding lists and, 139 databases alias lists stored in, 133 Exim and, 2 filtering instructions stored in, 138 hints, 285 maintaining, 512 serialization and, 185 (see also retry database) lookups (see lookups) MySQL, 386 list of domains in, 72 quoting in, 415 names of, in exim_tidydb utility, 513 PostgreSQL, 387 quoting in, 415 queries, 137 reducing number of, 408 reject, 269, 513 retry (see retry database) routing information in, 162 serialize-, 513 serialize-etrn, 270 serialize-etrn-runs, 513 wait-, 269, 513 data_timeout option, 187, 192 9 October 2001 09:13 Index Date: header, processing messages with, 337 date/time, $tod_full variable, 547 -days option (req command), 368 db directory, 269 for retry database, 285 DBM files, 38, 72 mail commands and, 255 maintaining, 512 DBM library, 517 DBM lookups, 72, 380 terminating zeros and, 381 dbm value (search_type option), 134 Debian, Exim installation and, 516 debugging directors and routers, 113 with log_arguments option, 486 options for, 478 transports, 174 debug_print option, 113-114, 174, 182 def condition, 403, 536 defer value (host_find_failed option), 161, 167 :defer:/:fail:, 125 forbid_special option and, 137 new_address option and, 147 deferred value (self option), 153 def:header_ condition, 536 delay_after_cutoff option, 191-192, 296 delay_warning option, 453 delay_warning_condition option, 454 $domain variable, 539 deliver command, 249-250 as significant action, 248 in system filters, 262 delivering email (see email, delivering) deliver_load_max option, 63 deliver_queue_load_max option, 63 delivery agents, external local, 85 delivery errors, temporary, 114, 284-301 during directing/routing, 289 local, 288 remote, 285-288 host errors, 285 message errors, 286 multiple hosts, 288 recipient errors, 287 retrying after, 284 delivery processes, 265, 272, 281 queue runners and, 279 Delivery-date: header, 183 processing messages with, 337 delivery_date_add option, 175, 183 Index dial-up clients ETRN command and, 375 storing mail for, 159, 163 dial-up hosts, 270 batched delivery and, 199 configuring Exim on, 299 Exim daemon on, 300 incoming mail, 298, 301 message handling, 284 queue_only_file option and, 278 retrying delivery to, 297-301 Dial-up User List (DUL), 310 director drivers, 35, 101 addresses, processing, 37-49 aliasfile, 36 aliasing, single-level, 120 conditional running of, 119 configuring, 118-149 for address verification, 316 header additions/removals, 176 debugging, 113 delivery errors, 289 forwardfile, 37 localuser, 37 named vs. first, 121 options for, 101-121 summary of, 114-117 restricting to specific domains, 114 vs. router drivers, 38 smartuser, 37 smtp transport and, 184 transports, 49 types of, 118 (see also drivers) director setting (-bP option), 474 directories creating automatically, 219 current, 143 local transports and, 196 db, 269 for retry database, 285 deliveries and, 203 doc, 518 exim-3.22, 518 for hints files, 266 home, 143, 540 checking, 146 input, 267 local transports and, 195-196 local, deliveries to, 131 log, 266, 271 for mailboxes, 395 for message files, 266 msglog, 268, 483 9 October 2001 09:13 581 msglog.OLD, 268 routers and, 196 setting, 121 spool, 266 src, 518 sticky, 205 director_list setting (-bP option), 474 directory mode (appendfile transport), 203 directory option, 214, 219 file option and, 219 quota option and, 215, 221 directory paths, 124, 131 log destinations, 484 setting, 144 to turn on Exim, 529 directory_mode option, 214, 219 directory_transport option, 131 save command and, 251 disk partitions, fullness of, 506 disk space, checking for free, 65, 450 disk storage, 7 -dm option, 478 DNS administrators (see hostmasters) DNS blocking lists, 310-313 DUL, 310 RBL, 310 DNS (Domain Name Service), 21-24 caching and, 23 errors, 27 lookups, 388 controlling, 154, 451 delivery errors, 289 host verification and, 308 remote routers, 150 system host lookup instead, 156 DNS records mail routing and, 24 related, 25 dns_again_means_nonexist option, 451 dns_check_names_pattern option, 451 dnsdb lookup, 388 dns_qualify_single option, 192 dns_retrans option, 451 dns_retry option, 451 dns_search_parents option, 190, 192 doc directory, 518 documentation, 3 installing, 530 dollar sign ($) (see $ (dollar sign)) Domain Name Service (see DNS) domain names, 21 case sensitivity in, 22 characters allowed in, 451 582 domain operator, 410 domain records, 21, 24 types of, 22 (see also DNS records) domain value (batch option), 200, 202 $domain variable, 539 address rewriting, 345 batch option and, 200 bounce messages, replying to, 452 in delay warning messages, 454 local_parts option and, 106 smtp_etrn_command option and, 376 DOMAIN variable, 226 $domain_data variable, 426, 539 domainlist router, 36, 89, 150 domains option and, 161 host lists and, 163 lookups and, 378 on mail hubs, 165 options for, 158-168 routing domain, changing, 166 routing rules inline, 159 looked-up, 162 transports, varying, 166 domains adding to unqualified addresses, 339 changing, 166 default qualification, 61 lists of, 423-426 configuration file and, 60 partial- setting in, 425 single-key lookups in, 425 from string expansions, escaping characters in, 424 local, 71 retry rules and, 290 (see also domains, multiple-local) in message headers, 12 hostnames and, 24 not local to server, 17 qualify_domain option and, 35 routing and, 18 mixture of, 194 local/remote, 88 multiple-local, 71-74 differentiating between, 73 partial matching in lookups and, 390 preventing delivery to, 282 remote, 150 looking up in DNS, 150 manually routing, 158 in retry rules, 290 routed to local host, 151 9 October 2001 09:13 Index routed to self, 152-153 deferring, 153 failing, 153 passing to next router, 152 rerouting, 153 transporting, 153 treating as local, 152 virtual, 74-78 defaults in, 76 postmasters in, 77 domains in message headers, 38 domains option, 102, 114 domainlist router and, 161 lookups and, 425 mailing lists and, 78 queryprogram router and, 169 double quote (") (see " (double quote)) driver option, 101, 114, 174, 183, 363 drivers, 35 restricting, 103 by file existence, 104 to specific domains, 102 to specific local parts, 102, 115 to specific sender addresses, 102, 116 to verification, 103 specifying, 114 types of, 35 -dropcr option, 462 DUL (Dial-up User List), 310 E E flag (rewriting rules), 347 Eastern Standard Time (EST), 449 EDITOR environment variable, 472 EHLO command (SMTP), 16 error code in response to, 286 host verification and, 308 message reception logging, 489 syntax of, 449 verifying, 309 elif-then (if command), 257 else (if command), 257 email, 5-29 bouncing, 15, 20 delivering, 31, 33, 35-51, 199, 272 commands for, 250-253 controlling environment for, 110, 197 debugging, 479 deferring, 132 deferring to local parts, 125 delaying/suspending, 63 delays in, 453-455 Index email, delivering (continued) delivery errors, ignoring, 253 delivery status testing, 261 expansion variables, 541 failures (see bounce messages) filtering and, 241 forced, 283 forcing, 469, 471 hints files, 270 logging, 490-493 multiple, 148 to named pipes, 206, 218 options for, 464 parallel remote, 65, 281 without password data, 136 via pipes, 195 preventing, 263 processes, controlling number of, 66, 192 remotely, 272 retrying (see retrying delivery) root privilege and, 438, 440 simultaneous, 68 status of, checking, 404 suppressing, 479 to UUCP, 90 (see also Exim, processes; messages, batched; delivery processes) filtering, 2, 87, 107, 118, 184, 232, 238-264 with case independence, 398 expansion variable for users, 539 external delivery agent and, 241 filter files, 244-246 instructions in databases, 138 procmail and, 241 system filter, setting up, 242 user filter, setting up, 242 virus scanning and, 94 (see also autoreply transport) forgery of, 18 message reception logging, 489 forwarding, deliver command and, 250 identifying, 52 incoming, 6, 302-338 Bcc:/Cc:/To: headers, 336 checking, 2, 19 Date: headers, 337 Delivery-date:/Envelope-to:/Returnpath: headers, 337 for dial-up hosts, 298 on dial-up hosts, 301 From: header, 334 host blocking, 313 9 October 2001 09:13 583 from local processes, 304-307 Message-id:/Envelope-to:/Return-path: headers, 337 processing, 333-338 RBLs, 310-313 reception processes and, 265 remote sender addresses, checking, 314-322 Sender: header, 335 testing connections, 476 from UUCP, 334 message standards, 11 outgoing, 6, 10, 249 personal, distinguishing from mailing lists, 259 receiving, 31 logging, 488 options for, 460 processes and, 33 reducing at high load, 62-65 routing, 18 saving, 107 storing for dial-up hosts, 69 timeout for response to, 193 transmitting, 13-15 viruses (see security, viruses) (see also messages) encryption (see security, encryption) end queue run message, setting log level for, 487 ends test, 258 ENOENT error, 137 ENOTDIR error, 145 envelope From field, 347 envelope To field, 347 envelopes, 13 preserving, batched deliveries and, 200 $recipients_count variable and, 544 rejected by servers, 17 senders changing, 110 fixing bad, 318 Envelope-to: header, 14, 183 processing messages with, 337 envelope_to_add option, 175, 183 envelope preservation and, 200 environment option, 226, 229 environment variables EXIMON_ prefix, 504 for pipe commands, 226 pipe transport and, 195 eq condition, 399 equal sign (=) (see = (equal sign)) 584 errmsg_file option, 454 $errmsg_recipient variable, 454, 540 errmsg_text option, 454 error address, changing, 110 error messages, 5 customized, 540 delivering to users’ mailboxes, 130 failed to lock mailbox, 68 Permission denied checking file existence, 105 ignore_eacces option and, 140 testing for, 261 unknown local part, 108 unknown user, 48 error_message condition, 261 errors authentication response, 363 command, handling, 227 delivery, 114, 284-301 ignoring, 253 remote, 285-288 retrying after, 284 detection of on input, 481 DNS, 27 during DNS lookups, 151 ENOENT, 137 ENOTDIR, 145 forced expansion failure, 59 handling forwardfile director and, 140 routing, 465 host, 285 message, 286 recipient, 287 reporting message, 465 routing, options for, 465 syntax in addresses, 133 in alias/forward lists, 129 in EHLO/HELO commands, 310 in .forward file, 80 in headers, 326 logging, 487 in mailing lists, 80 temporary, 17, 19, 227 in lookups, 389 errors_address option, 453 errors_copy option, 452 errors_reply_to option, 452 errors_to option, 114 bounce messages and, 110 mailing lists and, 79 escape operator, 416 EST (Eastern Standard Time), 449 9 October 2001 09:13 Index EST value (timezone option), 449 /etc/aliases file (see system alias file) ETRN command (SMTP), 270, 374 delivery, forcing, 298 EX_CANTCREAT value (temp_errors option), 228 exclamation mark (!)


pages: 519 words: 102,669

Programming Collective Intelligence by Toby Segaran

always be closing, backpropagation, correlation coefficient, Debian, en.wikipedia.org, Firefox, full text search, functional programming, information retrieval, PageRank, prediction markets, recommendation engine, slashdot, Thomas Bayes, web application

The figures it produces are intended to be of high enough quality to be used in publications. Installation Before installing matplotlib, you'll need to install NumPy, as described in the previous section. matplotlib has binary builds for all major platforms, including Windows, Mac OS X, RPM-based Linux distributions, and Debian-based distributions. You can find detailed instructions for installing matplotlib on any of the platforms at http://matplotlib.sourceforge.net/installing.html. Simple Usage Example This example will use orange circles to plot four points at (1,1), (2,4), (3,9), and (4,16). It will then save the output to a file and display it in a window on the screen. >>> from pylab import * >>> plot([1,2,3,4], [1,4,9,16], 'ro') [<matplotlib.lines.Line2D instance at 0x01878990>] >>> savefig('test1.png') >>> show( ) A great collection of usage examples is available at http://matplotlib.sourceforge.net/tutorial.html.


pages: 628 words: 107,927

Node.js in Action by Mike Cantelon, Marc Harter, Tj Holowaychuk, Nathan Rajlich

Amazon Web Services, Chris Wanstrath, create, read, update, delete, Debian, en.wikipedia.org, Firefox, Google Chrome, MITM: man-in-the-middle, MVC pattern, node package manager, p-value, pull request, Ruby on Rails, web application, WebSocket

Note that this oversimplified example assumes that the entire version string will come in one chunk. Most of the time this works just fine, but a proper program would buffer the input until a \n char was found. Let’s check what the github.com SSH server uses: $ node client.js github.com SSH server version: "SSH-2.0-OpenSSH_5.5p1 Debian-6+squeeze1+github8" Connecting two streams with socket.pipe() Using pipe() (http://mng.bz/tuyo) in conjunction with either the readable or writable portions of a Socket object is also a good idea. In fact, if you wanted to write a basic TCP server that echoed everything that was sent to it back to the client, you could do that with a single line of code in your callback function: socket.pipe(socket); This example shows that it only takes one line of code to implement the IETF Echo Protocol (http://tools.ietf.org/rfc/rfc862.txt), but more importantly it demonstrates that you can pipe() both to and from the socket object.


pages: 422 words: 104,457

Dragnet Nation: A Quest for Privacy, Security, and Freedom in a World of Relentless Surveillance by Julia Angwin

AltaVista, Ayatollah Khomeini, barriers to entry, bitcoin, Chelsea Manning, Chuck Templeton: OpenTable:, clean water, crowdsourcing, cuban missile crisis, data is the new oil, David Graeber, Debian, disinformation, Edward Snowden, Filter Bubble, Firefox, Garrett Hardin, GnuPG, Google Chrome, Google Glasses, Ida Tarbell, informal economy, Jacob Appelbaum, John Markoff, Julian Assange, Marc Andreessen, market bubble, market design, medical residency, meta-analysis, mutually assured destruction, Panopticon Jeremy Bentham, prediction markets, price discrimination, randomized controlled trial, RFID, Robert Shiller, Ronald Reagan, security theater, Silicon Valley, Silicon Valley startup, Skype, smart meter, Steven Levy, Tragedy of the Commons, Upton Sinclair, WikiLeaks, Y2K, zero-sum game, Zimmermann PGP

Disturbed, I set about trying to disentangle myself from Gmail. I briefly considered running my own e-mail server at home after I ran across a blog post called “NSA Proof your e-mail in 2 hours.” But I abandoned the idea eight paragraphs into the post when the author stated, “I’m going to assume you’re running Debian Wheezy.” It was clearly too technical a job for me. So I looked around for privacy-protecting e-mail services. It turned out that there were dozens of them—with names such as Hushmail, NeoMail, and CounterMail. I really liked CounterMail—a paid e-mail service that passed the mud-puddle test—but I had to rule it out because it was based in Sweden.


pages: 490 words: 40,083

PostgreSQL: introduction and concepts by Bruce Momjian

computer age, Debian, Y2K

TCL interface, PyGreSQL, • Dal Zotto, Massimo, near Trento, Italy, created locking code and other improvements. xxvii xxviii ACKNOWLEDGMENTS • Eisentraut, Peter, in Uppsala, Sweden, has added many features, including an overhaul of psql. • Elphick, Oliver, in Newport, Isle of Wight, United Kingdom, maintains the POSTGRESQL package for Debian Linux. • Horak, Daniel, near Pilzen, Czech Republic, did the WinNT port of POSTGRESQL (using the Cygwin environment). • Inoue, Hiroshi, in Fukui, Japan, improved btree index access. • Ishii, Tatsuo, in Zushi, Kanagawa, Japan, handles multibyte foreign language support and porting issues. • Martin, Dr.


pages: 349 words: 114,038

Culture & Empire: Digital Revolution by Pieter Hintjens

4chan, airport security, AltaVista, anti-communist, anti-pattern, barriers to entry, Bill Duvall, bitcoin, blockchain, business climate, business intelligence, business process, Chelsea Manning, clean water, commoditize, congestion charging, Corn Laws, correlation does not imply causation, cryptocurrency, Debian, disinformation, Edward Snowden, failed state, financial independence, Firefox, full text search, German hyperinflation, global village, GnuPG, Google Chrome, greed is good, Hernando de Soto, hiring and firing, independent contractor, informal economy, intangible asset, invisible hand, James Watt: steam engine, Jeff Rulifson, Julian Assange, Kickstarter, M-Pesa, mass immigration, mass incarceration, mega-rich, MITM: man-in-the-middle, mutually assured destruction, Naomi Klein, national security letter, Nelson Mandela, new economy, New Urbanism, Occupy movement, offshore financial centre, packet switching, patent troll, peak oil, pre–internet, private military company, race to the bottom, rent-seeking, reserve currency, RFC: Request For Comment, Richard Feynman, Richard Stallman, Ross Ulbricht, Satoshi Nakamoto, security theater, selection bias, Skype, slashdot, software patent, spectrum auction, Steve Crocker, Steve Jobs, Steven Pinker, Stuxnet, The Wealth of Nations by Adam Smith, The Wisdom of Crowds, trade route, transaction costs, twin studies, union organizing, wealth creators, web application, WikiLeaks, Y2K, zero day, Zipf's Law

Other groups work by giving us freedom and allowing us to be stronger, smarter, and more independent. In 2000, the Internet had not yet become cheap enough for mass-market use, and open source communities were small and often regional, frequently focused around universities. Open source communities such as the Debian Foundation still operated as classic not-for-profit organizations, as legal entities with boards, treasurers, and the like. In 2005, I joined a number of collaborative projects. On the one hand, I was involved with the FFII, working to stop software patents in Europe. We (the good guys) spoke in the European Parliament, debated with the European Patent Office (the bad guys), organized seminars, tabled amendments, got votes, and broadly, took part in the largest lobbying effort ever to hit Brussels.


pages: 320 words: 87,853

The Black Box Society: The Secret Algorithms That Control Money and Information by Frank Pasquale

Affordable Care Act / Obamacare, algorithmic trading, Amazon Mechanical Turk, American Legislative Exchange Council, asset-backed security, Atul Gawande, bank run, barriers to entry, basic income, Bear Stearns, Berlin Wall, Bernie Madoff, Black Swan, bonus culture, Brian Krebs, business cycle, call centre, Capital in the Twenty-First Century by Thomas Piketty, Chelsea Manning, Chuck Templeton: OpenTable:, cloud computing, collateralized debt obligation, computerized markets, corporate governance, Credit Default Swap, credit default swaps / collateralized debt obligations, crowdsourcing, cryptocurrency, Debian, don't be evil, drone strike, Edward Snowden, en.wikipedia.org, Fall of the Berlin Wall, Filter Bubble, financial innovation, financial thriller, fixed income, Flash crash, full employment, Goldman Sachs: Vampire Squid, Google Earth, Hernando de Soto, High speed trading, hiring and firing, housing crisis, Ian Bogost, informal economy, information asymmetry, information retrieval, interest rate swap, Internet of things, invisible hand, Jaron Lanier, Jeff Bezos, job automation, Julian Assange, Kevin Kelly, knowledge worker, Kodak vs Instagram, kremlinology, late fees, London Interbank Offered Rate, London Whale, Marc Andreessen, Mark Zuckerberg, mobile money, moral hazard, new economy, Nicholas Carr, offshore financial centre, PageRank, pattern recognition, Philip Mirowski, precariat, profit maximization, profit motive, quantitative easing, race to the bottom, recommendation engine, regulatory arbitrage, risk-adjusted returns, Satyajit Das, Savings and loan crisis, search engine result page, shareholder value, Silicon Valley, Snapchat, social intelligence, Spread Networks laid a new fibre optics cable between New York and Chicago, statistical arbitrage, statistical model, Steven Levy, the scientific method, too big to fail, transaction costs, two-sided market, universal basic income, Upton Sinclair, value at risk, WikiLeaks, Yochai Benkler, zero-sum game

When work is largely done in computing environments, the assessment can be very granular. Software engineers are assessed for their contributions to open source projects, with points awarded when others use their code. E. Gabriella Coleman, Coding Freedom: The Ethics and Aesthetics of Hacking (Princeton, NJ: Princeton University Press, 2013) (exploring Debian open source community and assessment of community members’ contributions); Stephen Baker, The Numerati (New York: Houghton-Miffl in, 2008), 33. 87. Mat Honan, “I Flunked My Social Media Background Check. Will You?,” Gizmodo (July 7, 2011). Available at http://gizmodo.com /5818774 /this-is -a-social-media-background-check /.


pages: 457 words: 126,996

Hacker, Hoaxer, Whistleblower, Spy: The Story of Anonymous by Gabriella Coleman

1960s counterculture, 4chan, Amazon Web Services, Bay Area Rapid Transit, bitcoin, Chelsea Manning, citizen journalism, cloud computing, collective bargaining, corporate governance, creative destruction, crowdsourcing, David Graeber, Debian, disinformation, do-ocracy, East Village, Edward Snowden, feminist movement, George Santayana, hive mind, impulse control, Jacob Appelbaum, jimmy wales, Julian Assange, low cost airline, mandatory minimum, Mohammed Bouazizi, Network effects, Occupy movement, pirate software, Richard Stallman, SETI@home, side project, Silicon Valley, Skype, Steven Levy, WikiLeaks, zero day

They might function well for three to six months, and then break up following volcanic levels of internal feuding. (Bazelon covers in detail the stormy bickering leading to the dissolution of one such team.) They might then reconstitute later with new members who have not internalized the same hard-learned lessons. In contrast to other hacker and geek endeavors—like Debian, the largest free software project in the world—Anonymous has no established methodology through which to encode itself as an institution. Only limited—and provisional—protocols exist to perform the roles of adjudication, social reproduction, and mentoring. For instance, IRC channels like #opnewblood, as its name suggests, serve primarily pedagogical purposes.


pages: 1,829 words: 135,521

Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython by Wes McKinney

Bear Stearns, business process, Debian, Firefox, general-purpose programming language, Google Chrome, Guido van Rossum, index card, p-value, quantitative trading / quantitative finance, random walk, recommendation engine, sentiment analysis, side project, sorting algorithm, statistical model, type inference

To verify everything is working, try launching IPython in the system shell (open the Terminal application to get a command prompt): $ ipython To exit the shell, press Ctrl-D or type exit() and press Enter. GNU/Linux Linux details will vary a bit depending on your Linux flavor, but here I give details for such distributions as Debian, Ubuntu, CentOS, and Fedora. Setup is similar to OS X with the exception of how Anaconda is installed. The installer is a shell script that must be executed in the terminal. Depending on whether you have a 32-bit or 64-bit system, you will either need to install the x86 (32-bit) or x86_64 (64-bit) installer.


pages: 960 words: 140,978

Android Cookbook by Ian F. Darwin

crowdsourcing, Debian, en.wikipedia.org, Firefox, full text search, openstreetmap, QR code, social software, web application

Ritchie (1941–2011), language pioneer and co-inventor of Unix, who showed us all where the braces go, and so much more… Preface Preface Ian Darwin Android is “the open source revolution” applied to cellular telephony and mobile computing. At least, part of the revolution. There have been many other attempts to provide open source cell phones, ranging from the mostly defunct Openmoko FreeRunner to QT Embedded, Moblin, LiMo, Debian Mobile, and Maemo to the recently open sourced Symbian OS and the recently defunct HP WebOS. And let’s not forget the established closed source stalwarts: BlackBerry OS, Apple’s iPhone, and Microsoft Windows Mobile (these all have developer toolkits, but their OS is not available as open source and often has other “click-wrap” restrictions).


Mastering Blockchain, Second Edition by Imran Bashir

3D printing, altcoin, augmented reality, autonomous vehicles, bitcoin, blockchain, business process, carbon footprint, centralized clearinghouse, cloud computing, connected car, cryptocurrency, data acquisition, Debian, disintermediation, disruptive innovation, distributed ledger, Dogecoin, domain-specific language, en.wikipedia.org, Ethereum, ethereum blockchain, fault tolerance, fiat currency, Firefox, full stack developer, general-purpose programming language, gravity well, interest rate swap, Internet of things, litecoin, loose coupling, MITM: man-in-the-middle, MVC pattern, Network effects, new economy, node package manager, Oculus Rift, peer-to-peer, platform as a service, prediction markets, QR code, RAND corporation, Real Time Gross Settlement, reversible computing, RFC: Request For Comment, RFID, ride hailing / ride sharing, Satoshi Nakamoto, single page application, smart cities, smart contracts, smart grid, smart meter, supply-chain management, transaction costs, Turing complete, Turing machine, web application, x509 certificate

This can be done by using NOOBS which provides an easy method of installing Raspbian or any other operating system. This can be downloaded and installed from the link https://www.raspberrypi.org/downloads/noobs/. Alternatively, only Raspbian can be installed from the link https://www.raspberrypi.org/downloads/raspbian/. Another alternative available at https://github.com/debian-pi/raspbian-ua-netinst can also be used to install a minimal non-GUI version of Raspbian OS. For this example, NOOBS has been used to install Raspbian, as such the rest of the exercise assumes Raspbian is installed on the SD memory card of the Raspberry Pi. The command output in the following screenshot shows that which architecture the operating system is running on.


Data Wrangling With Python: Tips and Tools to Make Your Life Easier by Jacqueline Kazil

Amazon Web Services, bash_history, cloud computing, correlation coefficient, crowdsourcing, data acquisition, database schema, Debian, en.wikipedia.org, Firefox, Google Chrome, job automation, Nate Silver, natural language processing, pull request, Ronald Reagan, Ruby on Rails, selection bias, social web, statistical model, web application, WikiLeaks

Installing Xcode or Command Line Tools will not take as long. Make sure Xcode or Command Line Tools is installed before moving on to the installation of Homebrew. If you are using Windows, Jeff Preshing has this helpful tutorial for installing GCC. If you are using Linux, GCC is installed on most Debian-based systems, or you can install it by simply running sudo apt-get install build-essential. Step 2: (Mac Only) Install Homebrew Homebrew manages packages on your Mac, which means you can type a command and Homebrew will aid in the installation. Make sure either Xcode or Command Line Tools is done installing before you install Homebrew.


pages: 1,025 words: 150,187

ZeroMQ by Pieter Hintjens

AGPL, anti-pattern, carbon footprint, cloud computing, Debian, distributed revision control, domain-specific language, eat what you kill, factory automation, fault tolerance, fear of failure, finite state, Internet of things, iterative process, premature optimization, profit motive, pull request, revision control, RFC: Request For Comment, Richard Stallman, Skype, smart transportation, software patent, Steve Jobs, Valgrind, WebSocket

If you use a language that handles this automatically for you, congratulations. If you program in C or C++ or any other language where you’re responsible for memory management, here’s a short tutorial on using valgrind, which, among other things, will report on any leaks your programs have: To install valgrind, such as on Ubuntu or Debian, issue: sudo apt-get install valgrind By default, ØMQ will cause valgrind to complain a lot. To remove these warnings, create a file called valgrind.supp that contains this: { <socketcall_sendto> Memcheck:Param socketcall.sendto(msg) fun:send ... } { <socketcall_sendto> Memcheck:Param socketcall.send(msg) fun:send ... } Fix your applications to exit cleanly after Ctrl-C.


pages: 562 words: 153,825

Dark Mirror: Edward Snowden and the Surveillance State by Barton Gellman

4chan, A Declaration of the Independence of Cyberspace, active measures, Anton Chekhov, bitcoin, Cass Sunstein, cloud computing, corporate governance, crowdsourcing, data acquisition, Debian, desegregation, Donald Trump, Edward Snowden, financial independence, Firefox, GnuPG, Google Hangouts, informal economy, Jacob Appelbaum, job automation, Julian Assange, MITM: man-in-the-middle, national security letter, planetary scale, private military company, ransomware, Robert Gordon, Robert Hanssen: Double agent, rolodex, Ronald Reagan, Saturday Night Live, Seymour Hersh, Silicon Valley, Skype, social graph, standardized shipping container, Steven Levy, telepresence, undersea cable, web of trust, WikiLeaks, zero day, Zimmermann PGP

The latter usually corresponds closely to geographic location. See “What Is a MAC Address?,” http://whatismyipaddress.com/mac-address. Using software tools, one can randomize both of those addresses and thereby avoid many forms of tracking. Such tools, for example, are built into an operating system called Tails, which is based on Debian Linux and optimized for privacy. See “The Amnesic Incognito Live System,” https://tails.boum.org. the ciphertext looked like this: Poitras to author, email, May 21, 2013. The ciphertext I quote here is for illustration. It is an encrypted version of the words Poitras wrote, verbatim, but it is not the same encrypted version she sent.


pages: 680 words: 157,865

Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design by Diomidis Spinellis, Georgios Gousios

Albert Einstein, barriers to entry, business intelligence, business process, call centre, continuous integration, corporate governance, database schema, Debian, domain-specific language, don't repeat yourself, Donald Knuth, en.wikipedia.org, fault tolerance, Firefox, functional programming, general-purpose programming language, iterative process, linked data, locality of reference, loose coupling, meta-analysis, MVC pattern, peer-to-peer, premature optimization, recommendation engine, Richard Stallman, Ruby on Rails, semantic web, smart cities, social graph, social web, SPARQL, Steve Jobs, Stewart Brand, traveling salesman, Turing complete, type inference, web application, zero-coupon bond

Some of the largest contributions have come from Intel and AMD, who provided much of the code to support hardware virtual machines. This enabled Xen to be one of the first hypervisors to support these processor extensions. What’s more, because Xen is freely available, several other projects have adopted it. Major Linux distributions such as Debian, Red Hat, SUSE, and Ubuntu now include Xen packages and have contributed code back into the project, along with useful tools for using Xen. Some contributors have taken on the effort of porting Xen to other architectures and porting other operating systems to run directly on the hypervisor. Xen has been used to run paravirtualized OpenSolaris, FreeBSD, and NetBSD, among others.


pages: 757 words: 193,541

The Practice of Cloud System Administration: DevOps and SRE Practices for Web Services, Volume 2 by Thomas A. Limoncelli, Strata R. Chalup, Christina J. Hogan

active measures, Amazon Web Services, anti-pattern, barriers to entry, business process, cloud computing, commoditize, continuous integration, correlation coefficient, database schema, Debian, defense in depth, delayed gratification, DevOps, domain-specific language, en.wikipedia.org, fault tolerance, finite state, Firefox, functional programming, Google Glasses, information asymmetry, Infrastructure as a Service, intermodal, Internet of things, job automation, job satisfaction, Kickstarter, load shedding, longitudinal study, loose coupling, Malcom McLean invented shipping containers, Marc Andreessen, place-making, platform as a service, premature optimization, recommendation engine, revision control, risk tolerance, side project, Silicon Valley, software as a service, sorting algorithm, standardized shipping container, statistical model, Steven Levy, supply-chain management, The future is already here, Toyota Production System, web application, Yogi Berra

The server will be named bosun01.example.com. It will be in the Phoenix and Toronto datacenters. Monitoring configuration will be kept in the Git “sysadmin configs” repo, in the top-level directory /monitor. Detailed Design: Server configuration: Dell 720XD with 64G RAM, 8 disks in RAID6 configuration Debian Linux (standard corporate “server configuration”) Bosun package name is “bosun-server.” • Any system being monitored will have the “bosun-client” package installed. • Backups will be performed nightly using the standard corporate backup mechanism. • (The full document would include a description of operational tasks such as adding new monitoring collectors, and alerting rules.)


pages: 720 words: 197,129

The Innovators: How a Group of Inventors, Hackers, Geniuses and Geeks Created the Digital Revolution by Walter Isaacson

1960s counterculture, Ada Lovelace, AI winter, Alan Turing: On Computable Numbers, with an Application to the Entscheidungsproblem, Albert Einstein, AltaVista, Apple II, augmented reality, back-to-the-land, beat the dealer, Bill Atkinson, Bill Gates: Altair 8800, bitcoin, Bob Noyce, Buckminster Fuller, Byte Shop, c2.com, call centre, citizen journalism, Claude Shannon: information theory, Clayton Christensen, commoditize, computer age, crowdsourcing, cryptocurrency, Debian, desegregation, Donald Davies, Douglas Engelbart, Douglas Engelbart, Douglas Hofstadter, Dynabook, El Camino Real, Electric Kool-Aid Acid Test, en.wikipedia.org, Firefox, Google Glasses, Grace Hopper, Gödel, Escher, Bach, Hacker Ethic, Haight Ashbury, Howard Rheingold, Hush-A-Phone, HyperCard, hypertext link, index card, Internet Archive, Jacquard loom, Jaron Lanier, Jeff Bezos, jimmy wales, John Markoff, John von Neumann, Joseph-Marie Jacquard, Leonard Kleinrock, linear model of innovation, Marc Andreessen, Mark Zuckerberg, Marshall McLuhan, Menlo Park, Mitch Kapor, Mother of all demos, new economy, New Journalism, Norbert Wiener, Norman Macrae, packet switching, PageRank, Paul Terrell, pirate software, popular electronics, pre–internet, RAND corporation, Ray Kurzweil, RFC: Request For Comment, Richard Feynman, Richard Stallman, Robert Metcalfe, Rubik’s Cube, Sand Hill Road, Saturday Night Live, self-driving car, Silicon Valley, Silicon Valley startup, Skype, slashdot, speech recognition, Steve Ballmer, Steve Crocker, Steve Jobs, Steve Wozniak, Steven Levy, Steven Pinker, Stewart Brand, technological singularity, technoutopianism, Ted Nelson, The Coming Technological Singularity, The Nature of the Firm, The Wisdom of Crowds, Turing complete, Turing machine, Turing test, Vannevar Bush, Vernor Vinge, Von Neumann architecture, Watson beat the top human players on Jeopardy!, Whole Earth Catalog, Whole Earth Review, wikimedia commons, William Shockley: the traitorous eight, Yochai Benkler

Microsoft later was involved in a protracted antitrust suit brought by the Justice Department, which charged that it had improperly leveraged its dominance of the operating system market to seek advantage in browsers and other products. The case was eventually settled after Microsoft agreed to modify some of its practices. 36. By 2009 the Debian version 5.0 of GNU/Linux had 324 million source lines of code, and one study estimated that it would have cost about $8 billion to develop by conventional means (http://gsyc.es/~frivas/paper.pdf). 37. An Ethernet or WiFi today can transmit data at a billion bps, which is more than 3 million times faster. 38.


pages: 643 words: 53,639

Rapid GUI Programming With Python and Qt by Mark Summerfield

Debian, Guido van Rossum, loose coupling, MVC pattern, software patent, sorting algorithm, web application

Installing on Linux and Unix 571 For Linux and most other Unixes that don’t have PyQt4 preinstalled, there are four tools to install: the Qt C++ application development framework, the Python interpreter and its accompanying libraries, the SIP bindings tool, and PyQt4 itself. The most convenient way to get everything up and running is to install the tools using standard packages for the Linux or Unix distribution being used. For ArchLinux, Debian, Fedora, Gentoo, Kubuntu, Pardus, Ubuntu, and many others, the necessary components are available as packages. These can be installed using Adept, Pirut, apt-get, yum, or whatever other package manager the system uses. For PyQt4, the package is usually called pyqt4 or PyQt4 or pyqt4-dev-tools. PyQt4’s documentation package is usually called pyqt4-doc or python-qt4-doc or PyQt4-examples.


Seeking SRE: Conversations About Running Production Systems at Scale by David N. Blank-Edelman

Affordable Care Act / Obamacare, algorithmic trading, Amazon Web Services, backpropagation, bounce rate, business continuity plan, business process, cloud computing, cognitive bias, cognitive dissonance, commoditize, continuous integration, crowdsourcing, dark matter, database schema, Debian, defense in depth, DevOps, domain-specific language, en.wikipedia.org, fault tolerance, fear of failure, friendly fire, game design, Grace Hopper, information retrieval, Infrastructure as a Service, Internet of things, invisible hand, iterative process, Kubernetes, loose coupling, Lyft, Marc Andreessen, microaggression, microservices, minimum viable product, MVC pattern, performance metric, platform as a service, pull request, RAND corporation, remote working, Richard Feynman, risk tolerance, Ruby on Rails, search engine result page, self-driving car, sentiment analysis, Silicon Valley, single page application, Snapchat, software as a service, software is eating the world, source of truth, the scientific method, Toyota Production System, web application, WebSocket, zero day

The single source repository solves much of this problem, as well as having automated tests that allow teams to migrate to new versions safely and confidently. If we are not able to build everything off a single source tree, we must find another means to maintain known good versions of the libraries and their dependencies. For instance, we might have an organization-wide repository such as Nexus, Artifactory, or a Debian or RPM repository, which we must then update where there are known vulnerabilities, both in these repositories and in production systems. Conclusion I hope these patterns show a glimpse of the obvious bridges between SRE and DevOps — they have far more in common than most would imagine and are certainly grounded in similar principles and goals.


Engineering Security by Peter Gutmann

active measures, algorithmic trading, Amazon Web Services, Asperger Syndrome, bank run, barriers to entry, bitcoin, Brian Krebs, business process, call centre, card file, cloud computing, cognitive bias, cognitive dissonance, combinatorial explosion, Credit Default Swap, crowdsourcing, cryptocurrency, Daniel Kahneman / Amos Tversky, Debian, domain-specific language, Donald Davies, Donald Knuth, double helix, en.wikipedia.org, endowment effect, fault tolerance, Firefox, fundamental attribution error, George Akerlof, glass ceiling, GnuPG, Google Chrome, iterative process, Jacob Appelbaum, Jane Jacobs, Jeff Bezos, John Conway, John Markoff, John von Neumann, Kickstarter, lake wobegon effect, Laplace demon, linear programming, litecoin, load shedding, MITM: man-in-the-middle, Network effects, Parkinson's law, pattern recognition, peer-to-peer, Pierre-Simon Laplace, place-making, post-materialism, QR code, race to the bottom, random walk, recommendation engine, RFID, risk tolerance, Robert Metcalfe, Ruby on Rails, Sapir-Whorf hypothesis, Satoshi Nakamoto, security theater, semantic web, Skype, slashdot, smart meter, social intelligence, speech recognition, statistical model, Steve Jobs, Steven Pinker, Stuxnet, sunk-cost fallacy, telemarketer, text mining, the built environment, The Death and Life of Great American Cities, The Market for Lemons, the payments system, Therac-25, too big to fail, Tragedy of the Commons, Turing complete, Turing machine, Turing test, web application, web of trust, x509 certificate, Y2K, zero day, Zimmermann PGP

Metlstorm, private communications, 19 April 2011. “Using DNS to Securely Publish Secure Shell (SSH) Key Fingerprints”, RFC 4255, Jakob Schlyter and Wesley Griffin, January 2006. “If server offers certificate, doesn’t fall back to checking SSHFP records (CVE-2014-2653)”, Matthew Vernon, 24 March 2014, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=742513. “Securing Record Communications: The TSEC/KW-26”, Melville Klein, Center for Cryptologic History, National Security Agency, 2003. “Mobile Computing versus Immobile Security”, Roger Needham, Proceedings of the 9th Security Protocols Workshop (Protocols’01), Springer-Verlag LNCS No.2467, April 2001, p.1.

Consider the basicConstraints.cA boolean flag discussed earlier, which is critical to the secure operation of a PKI since without it anyone can impersonate anyone else and the security of the entire PKI is rendered void. It wasn’t until widespread bad publicity involving a fake Amazon site “certified” by Verisign forced a fix in late 2002 that many major platforms actually paid any attention to this flag [387][388][389][390][391]. This affected implementations from BEA Systems, Debian, FreeBSD, Microsoft, and Red Hat [392] (although in some cases only via applications on the platforms themselves, for example FreeBSD was affected via the ports collection [393]), individual PKI vendors like Baltimore, and numerous others that quietly fixed things without attracting any public attention (for example IBM’s Lotus Domino server wasn’t fixed until years later).


pages: 936 words: 85,745

Programming Ruby 1.9: The Pragmatic Programmer's Guide by Dave Thomas, Chad Fowler, Andy Hunt

book scanning, David Heinemeier Hansson, Debian, domain-specific language, Jacquard loom, Kickstarter, p-value, revision control, Ruby on Rails, slashdot, sorting algorithm, web application

See also: URI (page 826) Download samples/slopen-uri_1.rb require 'open-uri' require 'pp' pen-uri open('http://ruby-lang.org') do |f| puts "URI: #{f.base_uri}" puts "Content-type: #{f.content_type}, charset: #{f.charset}" puts "Encoding: #{f.content_encoding}" puts "Last modified: #{f.last_modified}" puts "Status: #{f.status.inspect}" pp f.meta puts "----" 3.times {|i| puts "#{i}: #{f.gets}" } end O Library 782 produces: URI: http://www.ruby-lang.org/en/ Content-type: text/html, charset: utf-8 Encoding: [] Last modified: Status: ["200", "OK"] {"date"=>"Mon, 13 Apr 2009 18:27:07 GMT", "server"=> "Apache/2.2.3 (Debian) DAV/2 SVN/1.4.2 mod_ruby/1.2.6 Ruby/1.8.5(2006-08-25) mod_ssl/2.2.3 OpenSSL/0.9.8c", "transfer-encoding"=>"chunked", "content-type"=>"text/html;charset=utf-8"} ---0: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" 1: "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 2: <html xmlns="http://www.w3.org/1999/xhtml"> Report erratum O PEN 3 Open3 Run Subprocess and Connect to All Streams Runs a command in a subprocess.


pages: 931 words: 79,142

Concepts, Techniques, and Models of Computer Programming by Peter Van-Roy, Seif Haridi

computer age, Debian, discrete time, Donald Knuth, Eratosthenes, fault tolerance, functional programming, G4S, general-purpose programming language, George Santayana, John von Neumann, Lao Tzu, Menlo Park, natural language processing, NP-complete, Paul Graham, premature optimization, sorting algorithm, Therac-25, Turing complete, Turing machine, type inference

A brand is a set of classes that are related in some way, but not by inheritance. An attribute can be given a value that is the same for all members of a brand by initializing with the 7.2 Classes as complete data abstractions 499 same variable for all members. For example1: L=linux class RedHat attr ostype:L end class SuSE attr ostype:L end class Debian attr ostype:L end Each instance of each class will be initialized to the same value. 7.2.6 First-class messages The principle is simple: messages are records and method heads are patterns that match a record. As a consequence, the following possibilities exist for the object call and the method definition.


pages: 2,054 words: 359,149

The Art of Software Security Assessment: Identifying and Preventing Software Vulnerabilities by Justin Schuh

Albert Einstein, Any sufficiently advanced technology is indistinguishable from magic, bash_history, business process, database schema, Debian, defense in depth, en.wikipedia.org, Firefox, information retrieval, iterative process, loose coupling, MITM: man-in-the-middle, MVC pattern, RFC: Request For Comment, slashdot, web application

If attackers can run arbitrary code within the context of your process, they can issue the necessary system calls to propagate a saved set-user-ID to the effective and real user ID fields and regain privileges. To avoid this possibility, dropping privileges permanently as soon as possible is the safest option for a setuid application. Tcptraceroute had a simple permission-related problem that a security specialist from Debian Linux named Matt Zimmerman discovered. The program intended to drop privileges permanently, but the author used the idiom for dropping privileges temporarily. Here’s the vulnerable code: defaults(); initcapture(); seteuid(getuid()); return trace(); } This mistake was a simple one: The authors used the wrong function.