Free books on technology subjects
The books that did not fit the categories are all here (Page 2) Click
here for previous page. Also the books that fit in several categories (for example, Linux and C++) are here as well. Please send me a link in case something is missing.
Project
Management -
(pdf) - 43 page primer on how to make
projects work.
Dive into Greasemonkey -
Getting to grips with greasemonkey scripts, answering common questions,
debugging, case studies, common questions and Greasemonkey API references. Numerical Recipes with Fortran 90 - Note that Numerical Recipes in Fortran 90 is considered to be Volume 2 of the Numerical Recipes in Fortran series. Its chapter and page numbering continue where Volume 1 (Numerical Recipes in Fortran 77) leaves off. The material in Volume 1 is not repeated in Volume 2.
Numerical Recipes with Fortran 77 - PDF files of 20-chapter title on Fortran 77
Structure and Interpretation of Computer Programs - The material in this book has been the basis of MIT's entry-level computer science subject since 1980. We had been teaching this material for four years when the first edition was published, and twelve more years have elapsed until the appearance of this second edition. We are pleased that our work has been widely adopted and incorporated into other texts. We have seen our students take the ideas and programs in this book and build them in as the core of new computer systems and languages. In literal realization of an ancient Talmudic pun, our students have become our builders. We are lucky to have such capable students and such accomplished builders.
An Introduction to Programming in Emacs Lisp - Most of the GNU Emacs integrated environment is written in the programming language called Emacs Lisp. The code written in this programming language is the software--the sets of instructions--that tell the computer what to do when you give it commands. Emacs is designed so that you can write new code in Emacs Lisp and easily install it as an extension to the editor. GNU Emacs is sometimes called an "extensible editor", but it does much more than provide editing capabilities. It is better to refer to Emacs as an "extensible computing environment". However, that phrase is quite a mouthful. It is easier to refer to Emacs simply as an editor.
Open Source Development with CVS
- If you've never used CVS (or any version control system) before, it's
easy to get tripped up by some of its underlying assumptions. What
seems to cause the most initial confusion about CVS is that it is used
for two apparently unrelated purposes: record keeping and
collaboration. It turns out, however, that these two functions are
closely connected. Record keeping became necessary because people wanted to compare a
program's current state with how it was at some point in the past. For
example, in the normal course of implementing a new feature, a
developer may bring the program into a thoroughly broken state, where
it will probably remain until the feature is mostly finished.
Unfortunately, this is just the time when someone usually calls to
report a bug in the last publicly released version. To debug the
problem (which may also exist in the current version of the sources),
the program has to be brought back to a useable state.
Programming
Languages: Application and Interpretation
- This book is the primary text for Brown University’s course cs173.
This course is intended for junior and senior (3rd and 4th year)
undergraduates, as well as beginning graduate students. In practice,
the course enrollment includes some outstanding sophomores as well as
advanced graduate students. The course and book are my attempt to
synthesize two conflicting traditions of teaching programming
languages: through interpreters and by survey.
FreeBSD
system programming
- In summary, the BSD family of operating systems dates back to the
late 1970s, when AT&T owned Unix. Although Unix was proprietary,
source code was available, which encouraged customers to make
modifications to their systems. One such customer was the University of
California at Berkeley's Computer Systems Research Group. Their version
of Unix was known as the Berkeley System Distribution (BSD). BSD tapes
were available for a nominal fee to anyone with a Unix source license.
BSD received a big boost from the United States Department of Defense,
who selected BSD as the base system for implementing TCP/IP and what
became the Internet. The TCP/IP code was made freely redistributable
via Networking Release 1 (Net/1) in 1989.
The Mono Handbook
- The Mono Handbook is a collection of guides and tutorials, that might
help you to get started with mono. It covers the mono runtime, the C#
language, tools like the debugger, certain parts of the class library,
the Database layer ADO.NET, and the WebSite Framework ASP.NET, as well
as GTK#.
Programming in Lua -
Currently, many programming languages are concerned with how to help
you write programs with hundreds of thousands of lines. For that, they
offer you packages, namespaces, complex type systems, a myriad of
constructions, and thousands of documentation pages to be studied.
Lua does not try to help you write programs with hundreds of thousands
of lines. Instead, Lua tries to help you solve your problem with only
hundreds of lines, or even less. To achieve this aim, Lua relies on
extensibility, like many other languages. Unlike most other languages,
however, Lua is easily extended not only with software written in Lua
itself, but also with software written in other languages, such as C
and C++. Lua was designed, from the beginning, to be integrated with software
written in C and other conventional languages. This duality of
languages brings many benefits. Lua is a tiny and simple language,
partly because it does not try to do what C is already good for, such
as sheer performance, low-level operations, or interface with
third-party software. Lua relies on C for those tasks. What Lua does
offer is what C is not good for: a good distance from the hardware,
dynamic structures, no redundancies, ease of testing and debugging. For
that, Lua has a safe environment, automatic memory management, and
great facility to handle strings and other kinds of data with dynamic
size.
The
Programmers' Stone
- The purpose of this site is to recapture, explore and celebrate the
Art of Computer Programming. By so doing we hope to help the reader
either become a better programmer, understand what less experienced
programmers are struggling with, or communicate more effectively with
other experienced programmers.
PLT
Scheme Cookbook
- The Scheme Cookbook provides short "recipes" using PLT Scheme to
solve common programming problems. The Cookbook is a collaborative
document and contributions are actively sought from all users of PLT
Scheme. For consistency with the industry standard Perl Cookbook, and
the offshoot PLEAC Project, we will adopt the order and topics in its
table of contents and show how these common tasks might be solved using
Scheme, in particular the PLT Scheme dialect of the language. Although
we draw some inspiration from Perl Cookbook we will not limit our
exposition to its contents, and will take great pleasure in
highlighting tasks that Scheme makes easy that Perl can not yet make
possible.
Integration
Patterns
- This document provides a brief overview of the Preview Release of
Integration Patterns, which embraces existing work in the patterns
community, contributes new patterns, and shows how to use the Microsoft
platform to implement them. This release includes 10 patterns and an
example scenario that illustrates the use of the patterns in the
context of a representative project.
The Scheme
Programming Language
- This book is intended to provide an introduction to the Scheme
language but not an introduction to programming in general. The reader
is expected to have had some experience programming and to be familiar
with terms commonly associated with computers and programming languages.
Practical
Theory of Programming - You can download the book in four
parts, in your choice of pdf or ps format.
Software
Engineering for Internet Applications
- This is the textbook for the MIT course "Software Engineering for
Internet Applications". The course is intended for juniors and seniors
in computer science. We assume that they know how to write a computer
program and debug it. We do not assume knowledge of any particular
programming languages, standards, or protocols. The most concise
statement of the course goal is that "The student finishes knowing how
to build amazon.com by him or herself."
How to
be a Programmer - A Short, Comprehensive, and Personal Summary
Information
Theory, Inference, and Learning Algorithms - PDFs and PSs
available
Poignant guide to Ruby
- This is just a small Ruby book. It won't crush you. Itos light as a
feather (because I haven't finished it yet). And there's a reason
this book will stay light: because Ruby is simple to learn.
Application
Interoperability: Microsoft .NET and J2EE
- Application Interoperability: Microsoft .NET and J2EE presents
interoperability best practices, and illustrates these approaches with
a functional sample application. It shows how to link Microsoft .NET
and J2EE, using Web services, runtime bridges, and asynchronous
techniques.
On
Search
- This series of essays on the construction, deployment and use of
search technology (by which I mean primarily “full-text” search) was
written between June and December of 2003. It has fifteen instalments
not including this table of contents.
Free as in
Freedom - Richard Stallman's Crusade for Free Software
Creating
Applications with Mozilla
- Mozilla is not just a web browser. It is also a framework for
building cross-platform applications using standards such as Cascading
Style Sheets (CSS), XML languages such as the XML-based User-interface
Language (XUL), eXtensible Binding Language (XBL), and Resource
Description Framework (RDF).
Gecko, Mozilla's rendering engine, is used as part of the framework,
along with other technologies such as XPConnect and XPCOM, Mozilla's
component model. The Mozilla development framework also uses
programming languages such as JavaScript, C++, C, Python, and Interface
Definition Language (IDL).
The Mozilla framework is used to create Netscape's Mozilla-based
browsers (Netscape 6.x and 7.x), other browsers such as Galeon and
Camino, and chat clients like ChatZilla and JabberZilla. Developers
also use Mozilla to create development tools, browser enhancements,
games, and other types of add-ons and applications.
This book explains how applications are created with Mozilla and
provides step-by-step information that shows how to create your own
programs using Mozilla's powerful cross-platform development framework.
It also includes examples of different existing applications to
demonstrate the possibilities of Mozilla development.
XForms
Essentials
- The book in your hands introduces you to XForms, a combination of two
of the most successful experiments ever performed on the Web: XML and
forms.
2003 marks the 10-year anniversary of forms on the Web. During that
time, the Web grew from a loose collection of technical research sites
to the livelihood of millions; browser empires have risen and fallen;
and the tech economy went through an inflationary period of cosmic
proportions only to collapse back in upon itself. The addition of forms
to the otherwise static HTML language in 1993 was a revolutionary step
forward, making possible Yahoo!, Google, Amazon, Hotmail, and countless
other interactive sites.
During the mid-nineties, the World Wide Web Consortium (W3C), began
work on XML, a uniform way to represent structured text and data, in an
attempt to simplify an earlier language called SGML. XML became a W3C
Recommendation in 1998, and has since gained momentum, becoming the
foundation for XHTML, SVG, the Universal Business Language (UBL),
syndication formats like RSS, and DocBook (which was used to write this
book). Nearly every data format that consists primarily of
human-readable data has been influenced by XML.
Embedded
Software Development with eCos (pdf)
- Embedded Software Development with eCos shows developers and managers
the advantages of using the eCos — Embedded Configurable Operating
System from Red Hat — over proprietary or commercial embedded operating
systems. In this start-to-finish guide to eCos solution building,
Anthony Massa covers eCos architecture, installation, configuration,
coding, deployment, and the entire eCos open source development system.
User
Interface Design for Programmers - selected chapters by
renowned guru Joel Spolsky
The
UNIX-HATERS Handbook - Modern Unix is a catastrophe. It's the
"Un-Operating System": unreliable, unintuitive, unforgiving, unhelpful,
and underpowered. Little is more frustrating than trying to force Unix
to do something useful and nontrivial. Modern Unix impedes progress in
computer science, wastes billions of dollars, and destroys the common
sense of many who seriously use it. An exaggeration? You won't think so
after reading this book.
Knowledge-based
systems in Japan - This is the final report of the JTEC Panel
on Knowledge-Based Systems in Japan, sponsored by the National Science
Foundation and the Advanced Research Projects Agency. It examines
Japanese expert systems applications and advanced knowledge-based (KB)
systems R&D, and compares progress and trends with similar
developments in the United States. The report includes an executive
summary, an introductory chapter, and chapters on: applications; tools
and infrastructure; advanced research; national projects; integration
with conventional data processing systems; and business perspectives.
Site reports on the visits made to Japanese corporate, government and
university facilities are included as appendices. The panel observed
some contrasts between U.S. and Japanese KB research and applications:
(1) Japanese computer manufacturers play a dominant role in the
technology and business of expert systems. These large companies have
mastered this technology as a core competence, and tend to use systems
engineers rather than knowledge engineers to build systems.
Consequently, integration with conventional information technology is
handled routinely and smoothly. (2) Japanese companies have more
experience in applications of KB systems technology to heavy industry,
particularly in steel and construction. (3) Products based on the use
of fuzzy control logic have had a big impact in Japanese consumer
products. (4) Japanese companies are continuing their substantial
investments in KB systems technology and business. (5) Compared to the
U.S., the quantity of Japanese university research is considerably
smaller, but the quality of the best work is as high.
Телекоммуникационные
технологии - Данный сервер частично создан на средства,
выделенные по проектам РФФИ (99-07-90102 и 01-07-90069). В основу
материалов легли тексты книг автора "Протоколы и ресурсы Интернет"
(Радио и связь, М. 1996) и "Сети Интернет. Архитектура и протоколы"
(Сиринъ, М. 1998), а также "Протоколы Интернет. Энциклопедия" ("Горячая
линия - Телеком", М. 2001), которые базировались на двух курсах,
читаемых студентам кафедры "Телекоммуникационные сети и системы" МФТИ
(факультет ФПФЭ) - "Каналы и сети передачи данных", "Протоколы
Интернет".
Let's Build a
Compiler - This fifteen-part series, written from 1988 to 1995,
is a non-technical introduction to compiler construction. You can read
the parts on-line or download them in a ZIP file.
Compilers and
Compiler Generators - This site provides an on-line edition of
the text and other material from my book "Compilers and Compiler
Generators - an introduction with C++", published in 1997 by
International Thomson Computer Press. The original edition is now out
of print, and the copyright has reverted to me.
Logic,
Programming and Prolog - by Ulf Nilsson and Jan Maluszynski
How to Design
Programs - An Introduction to Computing and Programming
The Inner Light
Theory - Look around and concentrate on what you experience.
Perhaps it is a warm summer day and you are sitting on an outdoor
patio. You see a deep blue sky and smell the fragrance of the flowers
in bloom. Wind blowing through the branches of a nearby tree provides a
soothing melody. You feel the texture of these papers in your hands,
and can still taste the last sip of your beverage. Of course, your
experience will be different; you may be in a university library, at
your desk at work, or relaxing on the couch in your home. You may be
smelling the fragrance of flowers, the sweetness of newly baked
cookies, or the lingering odor of disinfectant. You undoubtedly will be
experiencing many things from your five senses, plus an introspective
view of your mind's operation. These are the things you perceive, and
are therefore the things that define your reality. But now imagine that
you suddenly awake and realize it was only a dream. The things you had
been experiencing can now be seen from an enlightened perspective.
Before you awoke, you justifiably believed that the sights and sounds
you experienced were genuine, originating in an external physical
universe. The tree, papers, and patio seemed more that just your
perception of them; they were real objects with an independent
existence. Or so you thought. But now that you are awake you have
gained a greater knowledge, the knowledge that your previous reality
was not genuine. The things that you had been perceiving exist only in
your mind, and nowhere else.
Designing
and Building Parallel Programs - The content available here may
be accessed freely via Web browsers but may not be archived or
reproduced without written permission.
Compiler
Construction using Flex and Bison - HTML book by Anthony Aaby
Programming Ruby
-pragmatic programmer's guide. The link goes to the first edition of the book, the second edition is available only in excerpts.
Common
Lisp the Language - In this greatly expanded edition of the
defacto standard, you'll learn about the nearly 200 changes already
made since original publication - and find out about gray areas likely
to be revised later. Written by the Vice-Chairman of X3J13 (the ANSI
committee responsible for the standardization of Common Lisp) and
co-developer of the language itself, the new edition contains the
entire text of the first edition plus six completely new chapters.
How We Got Here: A Slightly Irreverent History of Technology and Markets.
This is a Silicon Valley and Wall Street primer, it connects the dots through history to how we got to where we are today
and covers which new technologies develop from unprofitable curiosities to essential investments.
Free PDF download.
Thinking in PostScript - The book is a result of Glenn Reid's years trying to teach people to write PostScript programs, during which he discovered that people tended to try to make PostScript "look like" other programming languages they already knew. There is even a chapter in this book entitled "PostScript Is Not Like C", because it is really a very different language, and one must learn to "think" in PostScript in order to be a good programmer.
The Autodesk File - Too many business books, like histories of science, tend to tell the story as a straightforward progression from start to finish. Reality is never that easy. Decisions are made in the face of incomplete and unreliable information because they must be made. There's no way to tell a promising avenue of success from a blind alley when you turn onto it--you only find out much later. As you read through these documents, you'll be seeing it all, and if it seems tedious and repetitious, it's because the process of building a company is often tedious and repetitious. But it's also rewarding, and I hope that these documents also convey the feeling of exhilaration, challenge, and accomplishment that everybody felt as we built this company into what it is today.
Designing and building parallel programs - Designing and Building Parallel Programs promotes a view of parallel programming as an engineering discipline, in which programs are developed in a methodical fashion and both cost and performance are considered in a design. This view is reflected in the structure of the book, which is divided into three parts. The first part, Concepts, provides a thorough discussion of parallel algorithm design, performance analysis, and program construction, with numerous examples to illustrate fundamental principles. The second part, Tools, provides an in-depth treatment of four parallel programming tools: the parallel languages Compositional C++ (CC++ ), Fortran M (FM), and High Performance Fortran (HPF), and the Message Passing Interface (MPI) library. HPF and MPI are standard parallel programming systems, and CC++ and FM are modern languages particularly well-suited for parallel software engineering. Part II also describes tools for collecting and analyzing performance data. The third part, Resources surveys some fundamental parallel algorithms and provides many pointers to other sources of information.
Version control with Subversion - This is the online home of Version Control with Subversion, a free book about Subversion, a new version control system designed to supplant CVS. As you may have guessed from the layout of this page. this book is published by O'Reilly Media. This is a place to read HTML and PDF versions of the book (although you can certainly buy a copy if you'd like to). We'll do our best to keep the site up-to-date. As Subversion development continues, the product will continue to grow new features, and we plan to continue documenting those changes.
Introduction to machine learning - Machine learning is usually associated with artificial intelligence. This book provides introduction into the topic in 12 PDF chapters.
Introduction to source control - Our universities don't teach people how to do source control. Our employers don't teach people how to do source control. SCM tool vendors don't teach people how to do source control. We need some materials that explain how source control is done. My goal for this series of articles is to create a comprehensive guide to help meet this need.
Programmer's Introduction to PHP 4.0 - This book from APress is available for sale, but the author and the publisher decided to post the contents online as well. Look for the sidebar on the right for freely available chapters in PDF format.
Two XView books - XView programming manual and XView reference manual from O'Reilly
Programming the Be Operating System - Writing Programs for the Be Operating System - a 1999 title available for free from O'Reilly Publishing.
Object-oriented system development - This book is intended to help the reader better understand the role of analysis and design in the object-oriented software development process. Experiments to use structured analysis and design as precursors to an object-oriented implementation have failed. The descriptions produced by the structured methods partition reality along the wrong dimensions. Classes are not recognized and inheritance as an abstraction mechanism is not exploited. However, we are fortunate that a multitude of object-oriented analysis and design methods have emerged and are still under development. Core OO notions have found their home place in the analysis phase. Abstraction and specialization via inheritance, originally advertised as key ingredients of OO programming, have been abstracted into key ingredients of OO analysis (OOA). Analysis-level property inheritance maps smoothly on the behavior inheritance of the programming realm.
How to Build a Successful Website - Due to the many news stories in recent years about big corporate websites going bankrupt it is a common misconception today that all or most websites are unprofitable and will not make their owners money. This assumption is based on the idea that if big corporations like Disney fail at making a website then your average guy on the street must fail horribly, of course that assumption is wrong. In the case of content driven websites the smaller independent operation often has the advantage over large corporate entities. While an individual or a small group does not have the resources of the large corporation, they also do not have the overhead. If you run a website out of your basement or your bedroom your overhead is already significantly smaller than that of a major corporation because you're not running your website out of a brand new state-of-the-art office building. Additionally if you only have one employee, yourself, you're also reducing your overhead compared to corporations who have to pay for workers who do the same things you do, but also management, building management, building security, maintenance, marketing consultants, development consultants, secretaries, and a myriad of other positions that by keeping your operation small you don't need. The only advantage a corporation has over an individual is that they can afford to pay for gross amounts of advertising both online and off, whereas the typical individual cannot.
PNG: The Definitive Guide - Targeted at graphic designers and programmers, PNG: The Definitive Guide is the first book devoted exclusively to teaching and documenting this important new and free image format. It is an indispensable compendium for Web content developers and programmers and is chock full of examples, sample code, and practical hands-on advice.
Machine Learning, Neural and Statistical Classification - This book is based on the EC (ESPRIT) project StatLog which compare and evaluated a range of classification techniques, with an assessment of their merits, disadvantages and range of application. This integrated volume provides a concise introduction to each method, and reviews comparative trials in large-scale commercial and industrial problems. It makes accessible to a wide range of workers the complex issue of classification as approached through machine learning, statistics and neural networks, encouraging a cross-fertilization between these disciplines.
Learning OCaml, for C, C++, Perl and Java programmers - This is a practical, detailed tutorial for people who already know an imperative or OO-language and wish to learn OCaml. OCaml is a fast, concise and powerful language for application development - but I assume you already knew that, and I also assume you've managed to install it.
Developing Applications With Objective CAML - The desire to write a book on Objective CAML sprang from the authors' pedagogical experience in teaching programming concepts through the Objective CAML language. The students in various majors and the engineers in continuing education at Pierre and Marie Curie University have, through their dynamism and their critiques, caused our presentation of the Objective CAML language to evolve greatly. Several examples in this book are directly inspired by their projects. The implementation of the Caml language has been ongoing for fifteen years. Its development comes from the Formel and then Cristal projects at INRIA, in collaboration with Denis Diderot University and the École Normale Supérieure. The continuous efforts of the researchers on these teams, as much to develop the theoretical underpinnings as the implementation itself, have produced over the span of years a language of very high quality. They have been able to keep pace with the constant evolution of the field while integrating new programming paradigms into a formal framework. We hope through this exposition to contribute to the widespread diffusion which this work deserves. Slashdot review of the book.
Practical Common Lisp - This page, and the pages linked to by it, contains the work-in-progress of Practical Common Lisp which will be published by Apress some time in late 2004 or early 2005. I'm putting this on the web in order to allow folks to give me feedback while there's still a chance for me to do something about it. Please keep in mind, however, that this is not a finished book. I will add some indication on this page as particular chapters reach various stages of completion—you may want to wait until chapters are marked as ready for various kinds of review before spending too much time with them. Or dive right in now if you really want.
|