background preloader

The Art of Unix Programming

The Art of Unix Programming
You can browse my newest book here. If you like it, please order a paper copy. You can get it from Amazon or Barnes & Noble, or direct from Addison-Wesley. The Art of Unix Programming attempts to capture the engineering wisdom and philosophy of the Unix community as it's applied today — not merely as it has been written down in the past, but as a living "special transmission, outside the scriptures" passed from guru to guru. Accordingly, the book doesn't focus so much on "what" as on "why", showing the connection between Unix philosophy and practice through case studies in widely available open-source software. If you're using Opera 5, be aware that it has problems rendering some of the HTML in the browseable version linked above. Revisions for the first print edition are now closed. Instructions for reviewers are here. I have written some notes for translators. Raves: 123456789 Friendly: 12345678910 Pans: 12

The Loginataka: Dialogue between a Guru and a Newbie Translations: Czech Speak, O Guru: How can I become a Unix Wizard? O, Nobly Born: know that the Way to Wizardhood is long, and winding, and Fraught with Risks. Thou must Attune thyself with the Source, attaining the arcane Knowledge and Conversation of the System Libraries and Internals. Yea; and such an all-consuming Time and Energy Sink is this as to greatly Imperil thy Grade Point Average (if one thou hast), not to mention thy Sex Life (if one thou hast). But persevere, oh Larval One; rewards beyond the Dreams of Lusers await thee! Speak, O Guru: What books should I study? O, Nobly Born: know that the Nutshell Guides are but the outermost Portal of the True Enlightenment. If thou desirest with True Desire to tread the Path of Wizardly Wisdom, first learn the elementary Postures of Kernighan & Pike's The Unix Programming Environment; then, absorb the mantic puissance of March Rochkind's Advanced Unix Programming and W. Immerse thyself, then, in the Pure Light of Maurice J.

Alice.org Alice is an innovative 3D programming environment that makes it easy to create an animation for telling a story, playing an interactive game, or a video to share on the web. Alice is a freely available teaching tool designed to be a student's first exposure to object-oriented programming. It allows students to learn fundamental programming concepts in the context of creating animated movies and simple video games. In Alice's interactive interface, students drag and drop graphic tiles to create a program, where the instructions correspond to standard statements in a production oriented programming language, such as Java, C++, and C#. Watch our promotional video to learn about Alice. Download this video (right-click [ctrl-click on a Mac] > Save File As...): Quicktime (11 MB) Learn about the Alice interface and how to start creating your own worlds. (This is an older video, and the intro states that Alice is only available for PC.

How To Become A Hacker Copyright © 2001 Eric S. Raymond As editor of the Jargon File and author of a few other well-known documents of similar nature, I often get email requests from enthusiastic network newbies asking (in effect) "how can I learn to be a wizardly hacker?". If you are reading a snapshot of this document offline, the current version lives at Note: there is a list of Frequently Asked Questions at the end of this document. Numerous translations of this document are available: ArabicBelorussianBulgarianChinese, Czech. The five-dots-in-nine-squares diagram that decorates this document is called a glider. If you find this document valuable, please support me on Patreon or SubscribeStar. The Jargon File contains a bunch of definitions of the term ‘hacker’, most having to do with technical adeptness and a delight in solving problems and overcoming limits. The hacker mind-set is not confined to this software-hacker culture. 1. 2. 3. 5. 2. 3. 4. 1. 2. 3. 4.

Perl.com A User's Guide to Scheme 48 By Richard Kelsey and Jonathan Rees, html-ized and lightly edited by Margaret Fleck. A line may take us hours, yet if it does not seem a moment's thought All our stitching and unstitching has been as nought. Yeats Adam's Curse Introduction Scheme 48 is an implementation of the Scheme programming language as described in the The Revised^4 Report on the Algorithmic Language Scheme. Scheme 48 tries to be faithful to the upcoming Revised^5 Scheme Report, providing neither more nor less in the initial user environment. The Revised^5 Report hasn't been published yet, but it will be very similar to the Revised^4 Report. Using scheme48 Release details Scheme48 is maintained by Richard Kelsey. This is what might be called an alpha release. Send mail to scheme-48-request@altdorf.ai.mit.edu to be put on a mailing list for announcements, discussion, bug reports, and bug fixes. Ownership, Maintenance and Disclaimers Envision Manual Top Page

Why Python? My first look at Python was an accident, and I didn't much like what I saw at the time. It was early 1997, and Mark Lutz's book Programming Python from O'Reilly & Associates had recently come out. O'Reilly books occasionally land on my doorstep, selected from among the new releases by some mysterious benefactor inside the organization using a random process I've given up trying to understand. One of them was Programming Python. I had already heard just enough about Python to know that it is what is nowadays called a “scripting language”, an interpretive language with its own built-in memory management and good facilities for calling and cooperating with other programs. Perl, of course, is the 800-pound gorilla of modern scripting languages. At that time, I had used Perl for a number of small projects. I immediately tripped over the first odd feature of Python that everyone notices: the fact that whitespace (indentation) is actually significant in the language syntax. Listing 1 Listing 2

The Python Tutorial — Python v2.7.1 documentation Python is an easy to learn, powerful programming language. It has efficient high-level data structures and a simple but effective approach to object-oriented programming. Python’s elegant syntax and dynamic typing, together with its interpreted nature, make it an ideal language for scripting and rapid application development in many areas on most platforms. The Python interpreter and the extensive standard library are freely available in source or binary form for all major platforms from the Python Web site, and may be freely distributed. The Python interpreter is easily extended with new functions and data types implemented in C or C++ (or other languages callable from C). This tutorial introduces the reader informally to the basic concepts and features of the Python language and system. For a description of standard objects and modules, see The Python Standard Library. The Glossary is also worth going through.

Simply Scheme: Introducing Computer Science 2/e Copyright (C) 1999 MIT Below this short table of contents is an expanded table of contents including sections within each chapter. Click on the chapter name to jump down. You can also download the complete text of each chapter in PDF format for elegant printing, or browse the HTML version. Note: This book is still in copyright, and in print. Appendices The Program Development Cycle Integrated Editing Getting Our Programs Tuning Our Programs for Your System Loading Our Programs Versions of Scheme Scheme Standards Why Common Lisp Exists Defining Procedures and Variables The Naming Convention for Predicates No Words or Sentences True and False Files Arrays Equivalents to Scheme Primitives A Separate Name Space for Procedures LambdaMore about FunctionWriting Higher-Order Procedures [no back] chapter thread NEXT

Tips for Linux Explorers Set Up a Home Server Setting up a home server running an open-source operating system is a popular and useful activity. Useful in what ways, you may ask. You could use it to run a website (I use a home server to power my world travel website, luxagraf.net), collect and send e-mail messages, store your OpenID credentials or serve your music around the home. As you can guess, we have a great many tutorials on Webmonkey for getting the most out of that machine in your closet. But here are some guidelines for the hardware side of it. Introduction Before You Start – Alternatives Setting up a home server can be a lot of fun and a great learning experience. What you’ll need To build your own server, you need just a few components, some or all of which you may well have already: A computer A broadband network connection A network router, with Ethernet (CAT5) cable A monitor and keyboard (just for the first few steps) A CD/DVD drive/burner will be handy if you plan to use the server for media. The computer Memory

Simply Scheme Support Definitions Danny Yoo <dyoo@cs.wpi.edu> 1 Introduction This library adds a Simply Scheme teaching language into DrRacket; the language is used in the textbook: The original source of these programs can be found from the FTP site at The definitions in this library should correspond to those in "simply.scm" version 3.13 (8/11.98). 2 Quick Start Although it’s possible to use these definitions by switching the DrRacket language level to Simply Scheme, this library can be easily used as a #lang language. For example, if your DrRacket language level has been set to Determine langauge from source, then the following example should run: If you write this in a DrRacket definitions window, and press Run, this will install the Simply Scheme library support. 3 Table of Scheme Primitives by Category (Primitives with a ’*’ are not part of standard Scheme) 3.1 Words and Sentences 3.2 Lists 3.3 Trees 3.4 Arithmetic 3.5 True and False 3.6 Variables 3.7 Vectors 3.8 Procedures 3.10 Control

3. An Informal Introduction to Python — Python v2.7.1 documentation In the following examples, input and output are distinguished by the presence or absence of prompts (>>> and …): to repeat the example, you must type everything after the prompt, when the prompt appears; lines that do not begin with a prompt are output from the interpreter. Note that a secondary prompt on a line by itself in an example means you must type a blank line; this is used to end a multi-line command. Many of the examples in this manual, even those entered at the interactive prompt, include comments. Comments in Python start with the hash character, #, and extend to the end of the physical line. A comment may appear at the start of a line or following whitespace or code, but not within a string literal. Let’s try some simple Python commands. 3.1.1. The interpreter acts as a simple calculator: you can type an expression at it and it will write the value. The integer numbers (e.g. 2, 4, 20) have type int, the ones with a fractional part (e.g. 5.0, 1.6) have type float. 3.1.2.

Related: