http://www.moskalyuk.com/links/free_cs_books.htm
* 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 applic
ations 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.
* The Art of Unix Programming - There is a vast difference between knowledge and expertise. Knowledge lets you deduce the right thing to do; expertise makes the right thing a reflex, hardly requiring conscious thought at all. This book has a lot of knowledge in it, but it is mainly about expertise. It is going to try to teach you the things about Unix development that Unix experts know, but aren't aware that they know. It is therefore less about technicalia and more about shared culture than most Unix books â both explicit and implicit culture, both conscious and unconscious traditions. It is not a âhow-toâ book, it is a âwhy-toâ book. The why-to has great practical importance, because far too much software is poorly designed. Much of it suffers from bloat, is exceedingly hard to maintain, and is too difficult to port to new platforms or extend in ways the original programmers didn't anticipate. These problems are symptoms of bad design. We hope that readers
of this book will learn something of what Unix has to teach about good design.
* 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.
* The Linux Development Platform - The Linux Development Platform shows how to
choose the best open source and GNU development tools for your specific needs, and
integrate them into a complete development environment that maximizes your
effectiveness in any project. It covers editors, compilers, assemblers, debuggers,
version control, utilities, LSB, Java, cross-platform solutions, and the entire Linux
software development process.
* Intrusion Detection with SNORT: Advanced IDS Techniques Using SNORT, Apache,
MySQL, PHP, and ACID - Rafeeq Ur Rehman explains and simplifies every aspect of
deploying and managing Snort in your network. You'll discover how to monitor all your
network traffic in real time; update Snort to reflect new security threats; automate
and analyze Snort alerts; and more. Best of all, Rehman's custom scripts integrate
Snort with Apache, MySQL, PHP, and ACID-so you can build and optimize a complete IDS
solution more quickly than ever before.
* Embedded Software Development with eCos - 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
* Embedding Perl in HTML with Mason - Mason is a tool for embedding the Perl
programming language into text, in order to create text dynamically, most often in
HTML. But Mason does not simply stop at HTML. It can just as easily create XML, WML,
POD, configuration files, or the complete works of Shakespeare.
* Small Business Server 2000 Planning and Installation Guide - Small Business
Server 2000 installs and configures all application components and service packs
through a single, integrated setup utility that checks disk space, system
compatibility, and dependencies. Small Business Server Setup detects current versions
and recommends appropriate component or service pack upgrades. Small Business Server
Setup significantly reduces the complexity of installation by automatically setting
many common parameters to defaults and consolidating the number of screens encountered
during setup.
* Graphics Programming Black Book - Michael Abrash's classic Graphics Programming Black Book
is a compilation of Michael's previous writings on assembly language and graphics programming
(including from his "Graphics Programming" column in Dr. Dobb's Journal). Much of the
focus of this book is on profiling and code testing, as well as performance optimization. It
also explores much of the technology behind the Doom and Quake 3-D games, and 3-D graphics
problems such as texture mapping, hidden surface removal, and the like. Thanks to Michael for
making this book available.
* Programming Linux Games - Linux is a great operating system for developers, and
even for casual users who don't mind the initial learning curve. But until recently,
Linux has been lousy for gaming. This isn't due to any technical shortcoming; Linux
has plenty of performance and stability to support high-performance multimedia
applications. It did, however, lack support from game developers. Thanks to portable
game programming toolkits like SDL and OpenAL, this is beginning to change.
* Windows Server 2003 Deployment Kit: Deploying Internet Information Services
(IIS) 6.0 - IIS 6.0 provides the services to support a secure, available, and scalable
Web server on which to run your Web sites and applications. This book provides
prescriptive, task-based, and scenario-based guidance to help you design an IIS 6.0
solution that meets the specific needs of your organization. Deployment scenarios
include installing a new Web server, upgrading an existing Web server from an earlier
version of IIS, and migrating existing Apache or IIS Web sites and applications to a
newly installed Web server.
* Windows Server 2003 Deployment Kit: Designing a Managed Environment - This book provides
the foundation you need to understand and deploy Group Policy within MicrosoftÂ
Windows Server 2003. The guidance in this book will help you reduce the cost of managing a
diverse set of organizational and computing needs, and to centrally manage domain-wide and
forest-wide security, servers, computers, and users
* Windows Server 2003 Deployment Kit: Planning Server Deployments - This book
provides comprehensive information about planning server storage and designing and
deploying file servers, print servers, and terminal servers in medium and large
organizations. You can also use the guidelines in this book to maximize the
availability and scalability of your servers by planning for remote server management,
designing and deploying server clusters, and designing and deploying Network Load
Balancing clusters.
* Windows Server 2003 Deployment Kit: Designing and Deploying Directory and
Security Services - Whether you are designing a new Active Directory logical
structure, deploying Active Directory for the first time, upgrading an existing
Windows environment to Windows Server 2003 Active Directory, or restructuring your
current environment to a Windows Server 2003 Active Directory environment, part one of
this book will assist you in meeting all of the Active Directory design and deployment
goals for your organization.You also need to make important decisions early in your
deployment regarding the design and deployment of Windows Server 2003 distributed
security services for authentication, access control, and, increasingly, certificate
use. Part two of this book will assist you in preparing the design and planning
documents needed to create a sound foundation of distributed security services.
* Windows Server 2003 Deployment Kit: Deploying Network Services - This book provides
comprehensive information about planning, designing, and implementing a secure core network
infrastructure that uses Transmission Control Protocol/Internet Protocol (TCP/IP), Dynamic
Host Configuration Protocol (DHCP), Domain Name System (DNS), Windows Internet Name Service
(WINS), Microsoft Internet Security and Acceleration (ISA) Server, and Internet
Protocol security (IPSec). You can also use the deployment guidelines in this book to
extend your core network infrastructure by deploying a network access infrastructure
supporting a variety of network access methods, including dial-up, virtual private network
(VPN), wireless, and switch access. You can provide centralized authentication,
authorization, auditing, and accounting for all of these network access types by using
Remote Authentication Dial-In User Service (RADIUS).
* Windows Server 2003 Deployment Kit: Planning, Testing, and Piloting Deployment
Projects - The first of six books in the Windows Server 2003 Deployment Kit, this book
provides guidelines for planning, testing, and piloting the deployment of Windows
Server 2003 and Windows XP Professional operating systems in medium and large
organizations. IT professionals can use this book to create a comprehensive project
plan, which serves as a framework for designing and deploying complex technologies and
operating system features. A key component of this book is a roadmap that summarizes
each of the chapters in the kit. The roadmap can be used to match business solutions
with the design guidelines discussed in the kit. In addition, because testing and
piloting are critical tasks in any deployment project, this book contains guidelines
for designing and setting up a test lab, testing applications and resolving
application compatibility issues, and designing and implementing a pilo
t project.
* Windows Server 2003 Deployment Kit: Automating and Customizing Installations -
This book provides comprehensive information about planning, designing, and
implementing automated installations in medium and large organizations. Options range
from automated installations of a basic operating system to complex installations of a
customized operating system and applications. The technologies and tools discussed in
this book include: unattended installation, image-based installation with the System
Preparation (Sysprep) tool, and Remote Installation Services (RIS). IT professionals
can use the guidelines discussed in this book to create a functional specification
that describes how to automate the installation of Windows Server 2003 and Windows XP
Professional.
* Cheap Complex Devices - Computers can play chess as well as any grandmaster.
They can diagnose cancer as well as any oncologist, find oil as well as any
seismologist. But can they do that most human of all activities: can they tell a
story? Read Cheap Complex Devices and find out. This volume, edited by John Compton
Sundman, (an erstwhile technical writer whose out-of-print manuals command large sums
at online auctions, now a recluse), contains the two winning entries of the
novel-writing contest sponsored by the Society for Analytical Engines (SAE). The
introduction to Cheap Complex Devices, written by the SAE Contest Committee, contains
the history of the contest and explains the criteria by which the entries were judged.
* 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.
* The Linux Cookbook - Tips and Techniques for Everyday Use
* Perl for the Web - Perl for the Web is a book I wrote that was published by New
Riders in August 2001. It provides tools and strategies to improve the performance of
existing Web applications in Perl. It also provides principles and ideas that help Web
programmers create an extensible framework for future growth.
* Linux Device Drivers, 2nd Edition - As the popularity of the Linux system continues to
grow, the interest in writing Linux device drivers steadily increases. Most of Linux is
independent of the hardware it runs on, and most users can be (happily) unaware of hardware
issues. But, for each piece of hardware supported by Linux, somebody somewhere has written a
driver to make it work with the system. Without device drivers, there is no functioning system.
Device drivers take on a special role in the Linux kernel. They are distinct "black
boxes" that make a particular piece of hardware respond to a well-defined internal
programming interface; they hide completely the details of how the device works. User activities
are performed by means of a set of standardized calls that are independent of the specific
driver; mapping those calls to device-specific operations that act on real hardware is then the
role of the device driver. This programming interface is such that drivers
can be built separately from the rest of the kernel, and "plugged in" at runtime when needed. This modularity makes Linux drivers easy to write, to the point that there are now hundreds of them available.
* Text Processing in Python - At the broadest level text processing is simply taking textual information and -doing something- with it. This
doing might be restructuring or reformatting it, extracting smaller bits of information from it, algorithmically modifying the content of the
information, or performing calculations that depend on the textual information. The lines between "text" and the even more general term
"data" are extremely fuzzy; at an approximation, "text" is just data that lives in forms that people can themselves read--at
least in principle, and maybe with a bit of effort. Most typically computer "text" is composed of sequences of bits whichh have a
"natural" representation as letters, numerals and symbols; and most often such text is delimited (if delimited at all) by symbols and
formatting that can be easily pronounced as "next datum."
* ARM Assembly Language Programming - This page is the portal to a web-based
version of my 1987 book, ARM Assembly Language Programming (AALP). For this first
release, I'm just making the original files and various conversions of the book
available on this site, the most useful one probably being the HTML linked to above.
(I generated the PDF from IE5.5's rendering of the HTML because NS6 didn't seem to
agree with some of the whitespace that GoLive embeds. I've tried to set the margins so
it should print OK on both US Letter and A4 paper, but let me know if that's not the
case.) If there is sufficient interested, I will try to get the files on to some kind
of sharing website (e.g. sourceforge) so that people can update the book with
information about the many generations of ARM since AALP was written. If nothing else,
though, it's an interesting historical document.
* 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.
* Linkers and Loaders - These are the manuscript chapters for my Linkers and
Loaders, published by Morgan-Kaufman. See the book's web site for ordering
information. The text in these files is the unedited original manuscript. M-K has fine
copy editors, who have fixed all the minor typos, spelling, and grammar errors in the
printed book, but if you come across factual errors I'd still appreciate help getting
all the details of linking and loading as complete and correct as possible. I will
collect errata and fix them in subsequent printings.
* Perl Design Patterns Book - Perl Design Patterns documents Perl style and
design/analysis. Design Patterns are a hands-on, pragmatic object oriented approach,
in contrast to the vague, theory ridden texts IT is plagued with.
* ÐÐÐÐÐÐÐÐÑÐÐÐÐÑÐÐÐÐÑÐ ÑÐÑÐÐÐÐÐÐÐ - ÐÐÐÐÑÐ ÑÐÑÐÐÑ ÑÐÑÑÐÑÐÐ ÑÐÐÐÐÐ ÐÐ ÑÑÐÐÑÑÐÐ, ÐÑÐÐÐÐÐÐÑÐ ÐÐ ÐÑÐÐÐÑÐÐ ÐÐÐÐ (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.
* Parsing Techniques - A Practical Guide - This 320-page book treats parsing in
its own right, in greater depth than is found in most computer science and linguistics
books. It offers a clear, accessible, and thorough discussion of many different
parsing techniques with their interrelations and applicabilities, including error
recovery techniques. Unlike most books, it treats (almost) all parsing methods, not
just the popular ones.
* Logic, Programming and Prolog - by Ulf Nilsson and Jan Maluszynski
* Problems on Algorithms - This book is a collection of problems on the design,
analysis, and verification of algorithms. It is for use by practicing programmers who
wish to hone and expand their skills, as a supplementary text for students enrolled in
an undergraduate or beginning graduate class on algorithms, and as a self-study text
for graduate students who are preparing for the qualifying examination on algorithms
for a Ph.D. program in Computer Science or Computer Engineering. It is intended to
augment the problem sets found in any standard algorithms textbook.
* Data Structures and Algorithms With Object-Oriented Design Patterns in Java -
This book is about the fundamentals of data structures and algorithms--the basic
elements from which large and complex software artifacts are built. To develop a solid
understanding of a data strructure requires three things: First, you must learn how
the information is arranged in the memory of the computer. Second, you must become
familiar with the algorithms for manipulating the information contained in the data
structure. And third, you must understand the performance characteristics of the data
structure so that when called upon to select a suitable data structure for a
particular application, you are able to make an appropriate decision.
* Data Structures and Algorithms with Object-Oriented Design Patterns in C++ - This
book was motivated by my experience in teaching the course E&CE 250: Algorithms and
Data Structures in the Computer Engineering program at the University of Waterloo. I have
observed that the advent of object-oriented methods and the emergence of object-oriented
design patterns has lead to a profound change in the pedagogy of data structures and
algorithms. The successful application of these techniques gives rise to a kind of
cognitive unification: Ideas that are disparate and apparently unrelated seem to come
together when the appropriate design patterns and abstractions are used.
* Algorithms and Complexity - These files are my book Algorithms and Complexity,
broken up into chapters for easier downloading. This book was in print from 1986 to
1994, and the copyright has now been returned to me. Each chapter can be downloaded
either as a gzipped PostScript file (*.ps.gz)
* 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 bee
n 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.
* Securing Java - We hope this book appeals to geeks and grandmothers alike (not
that some grandmothers aren't geeks). Although it gets technical in places, we hope
the messages are clear enough that even the casual Web user comes away with a broader
understanding of the security issues surrounding mobile code. We kept four groups in
mind as we wrote this book: Web users, developers, system administrators, and business
decision-makers. Many of the issues of mobile code security cut across these groups.
As Java integrates itself into the foundations of electronic commerce, Java security
issues take on more urgency.
* The Protection of Information in Computer Systems - This tutorial paper explores
the mechanics of protecting computer-stored information from unauthorized use or
modification. It concentrates on those architectural structures--whether hardware or
software--that are necessary to support information protection. The paper develops in
three main sectionns. Section I describes desired functions, design principles, and
examples of elementary protection and authentication mechanisms. Any reader familiar
with computers should find the first section to be reasonably accessible. Section II
requires some familiarity with descriptor-based computer architecture. It examines in
depth the principles of modern protection architectures and the relation between
capability systems and access control list systems, and ends with a brief analysis of
protected subsystems and protected objects. The reader who is dismayed by either the
prerequisites or the level of detail in the second sectio
n may wish to skip to Section III, which reviews the state of the art and current research projects and provides suggestions for further reading.
* 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
* PC Assembly Language - I taught Computer Science at the University of Central
Oklahoma for 10 years. During this time I taught an introductory course in PC Assembly
Language programming. I grew frustrated at teaching 16-bit real mode programming and
decided to change to 32-bit protected mode. However, I soon ran into a problem. I
could not find a textbook that covered 32-bit protected mode assembly programming! So,
I decided to write my own.
* The Art of Assembly Language Programming - full text of the book with the
exception of some chapters, great reference on MS-DOS and 80x86 instruction set
* The Scientist and Engineer's Guide to Digital Signal Processing - available in
PDF format. Excellent book to start with digital signal processing, by the way.
* Handbook of Applied Cryptography - PDF format, good, solid explanations of
cryptography algorithms.
* JXTA - This book presents a guided tour of the JXTA platform, including all of
the critical information required to begin producing P2P solutions built on top of
JXTA. Reference information on each of the JXTA protocols provides an understanding of
the underlying principles of P2P networking, and examples built on the JXTA reference
implementation provide the hands-on experience necessary to become fluent in JXTA
technology.
* Programming Ruby -pragmatic programmer's guide.
* 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.
* Computer Aids for VLSI Design - HTML book with nice table of contents.
-------------------------------------------------------
This SF.net email is sponsored by: SF.net Giveback Program.
Does SourceForge.net help you be more productive? Does it
help you create better code? SHARE THE LOVE, and help us help
YOU! Click Here: http://sourceforge.net/donate/
_______________________________________________
Linux-india-general mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/linux-india-general
_______________________________________________
ilugd mailing list
[EMAIL PROTECTED]
http://frodo.hserus.net/mailman/listinfo/ilugd