Web Programming Step By Step 2nd Edition Pdf Download

Authors' web site for Web Programming Step by Step, a textbook designed for use in a first course in web programming. Supplements for Second Edition (Supplements for the second edition are still being updated. Thank you for your patience! As a ZIP (download this if you plan to edit and re-post your own version of the slides). Cataloging-in-Publication Data. McConnell, Steve. Code Complete / Steve McConnell.--2nd ed. Visit our Web site at www.microsoft.com/mspress. Send comments. “An excellent guide to programming style and software construction.” —Martin Fowler. 9.1 Summary of Steps in Building Classes and Routines. [PDF]Free Web Programming Step By Step Mybooklibrary download Book Web Programming Step By Step Mybooklibrary.pdf FREE DOWNLOAD, WEB PROGRAMMING STEP BY STEP MYBOOKLIBRARY PDF related documents: Waec 2014 Chemistry Theory And Objective Answers Mechanical Vibrations 2nd Edition Rao Solution Manual James Munkres Topology Solution Manual. Microsoft Visual C# Step by Step, 9th Edition. By John Sharp. /* Book Download */ Download PDF / EPUB / MOBI for $34.61 /* Free Download */ Microsoft Visual C# Step by Step, 9th Edition Source Code. # Python Cookbook, 2nd Edition [by Alex Martelli, Anna Ravenscroft, David Ascher]. Download web programming step by step 2nd edition freef for FREE. All formats available for PC, Mac, eBook Readers and other mobile devices. Download web programming step by step 2nd edition freef.pdf. A connection of computer networks using the Internet Protocol (IP). Section of a web page http://www.textpad.com/download/index.html#downloads.

  1. Web Programming Step By Step 2nd Edition Pdf Download Full
  2. Web Programming Step By Step 2nd Edition Pdf Free Download
  3. Brandon Call
  4. Christine Lakin

Index

  • Assembly Language
  • Elixir
  • Groovy
  • HTML / CSS
  • Java
  • JavaScript
  • Language Agnostic
  • LaTeX / TeX
  • Prolog
  • Python
  • Ruby
  • Scala
  • Swift

Meta-Lists

  • atariarchives.org atariarchives.org makes books, information, and software for Atari and other classic computers available on the Web.
  • Bookboon: IT & Programming Cookie required. (email address requested, not required)
  • Goalkicker - Programming Notes for Professionals books
  • Programming - Wikibooks

Graphics Programming

  • Blender 3D: Noob to Pro - Wikibooks
  • Computer Graphics from scratch - Gabriel Gambetta (🚧in process)
  • DirectX manual (draft)
  • Graphics Programming Black Book - Michael Abrash
  • Learn OpenGL - Joey de Vries
  • Learning Modern 3D Graphics Programming - Jason L. McKesson (draft)
  • OpenGL - Concepts and illustrations.
  • ShaderX series - Wolfgang Engel
  • WebGL Insights - Patrick Cozzi and Contributors

Graphical User Interfaces

  • Search User Interfaces - Marti A. Hearst
  • The GLib/GTK+ Development Platform - Sébastien Wilmet (PDF)

GraphQL

Language Agnostic

Algorithms & Data Structures

  • A Field Guide To Genetic Programming - Riccardo Poli et al.
  • Algorithms - Wikibooks
  • Algorithms, 4th Edition - Robert Sedgewick and Kevin Wayne
  • Algorithms and Automatic Computing Machines (1963) - B. A. Trakhtenbrot
  • Algorithms and Complexity - Herbert S. Wilf (PDF)
  • Algorithms Course Materials - Jeff Erickson
  • Analysis and Design of Algorithms - Sandeep Sen, IIT Delhi
  • Animated Algorithm and Data Structure Visualization (Resource)
  • Annotated Algorithms in Python: Applications in Physics, Biology, and Finance - Massimo di Pierro
  • Binary Trees (PDF)
  • Clever Algorithms - Jason Brownlee
  • Data Structures - Prof. Subhashis Banerjee, IIT Delhi
  • Data Structures (Into Java) - Paul N. Hilfinger (PDF)
  • Data Structures and Algorithms: Annotated Reference with Examples - G. Barnett and L. Del Tongo (PDF)
  • Data Structures Succinctly Part 1, Syncfusion (PDF, Kindle) (email address requested, not required)
  • Data Structures Succinctly Part 2, Syncfusion (PDF, Kindle) (email address requested, not required)
  • Elementary Algorithms - Larry LIU Xinyu
  • Foundations of Computer Science - Al Aho and Jeff Ullman
  • Geometry Algorithms - Dan Sunday
  • Lectures Notes on Algorithm Analysis and Computational Complexity (Fourth Edition) - Ian Parberry (use form at bottom of license)
  • LEDA: A Platform for Combinatorial and Geometric Computing - K. Mehlhorn et al.
  • Linked List Basics (PDF)
  • Linked List Problems (PDF)
  • Matters Computational: Ideas, Algorithms, Source Code (PDF)
  • Open Data Structures: An Introduction - Pat Morin
  • Problems on Algorithms (Second Edition) - Ian Parberry (use form at bottom of license)
  • Purely Functional Data Structures (1996) - Chris Okasaki (PDF)
  • Text Algorithms (PDF)
  • The Art of Computer Programming - Donald Knuth (fascicles, mostly volume 4)
  • The Design of Approximation Algorithms (PDF)
  • The Great Tree List Recursion Problem (PDF)
  • Think Complexity (PDF)

Cellular Automata

  • A New Kind of Science - Stephen Wolfram

Cloud Computing

  • Designing Distributed Systems *(account required)
  • Learn Azure in a Month of Lunches - Iain Foulds (PDF)
  • Monitoring Modern Infrastructure(account required)

Competitive Programming

  • Competitive Programmer's Handbook - Antti Laaksonen (PDF)
  • Competitive Programming, 1st Edition (PDF)

Compiler Design

  • An Introduction to GCC - Brian Gough
  • Basics of Compiler Design (Anniversary Edition) - Torben Mogensen
  • Compiler Construction (PDF)
  • Compiler Design in C (1990) - Allen Holub, Prentice Hall
  • Compiler Design: Theory, Tools, and Examples, C/C++ Edition - Seth D. Bergmann
  • Compiler Design: Theory, Tools, and Examples, Java Edition - Seth D. Bergmann
  • Compiling Scala for the Java Virtual Machine - Michel Schinz (PDF)
  • Compiling Techniques (1969) - F.R.A. Hopgood, Macdonald
  • Crafting Interpreters (🚧) - Bob Nystrom (HTML)
  • Implementing Functional Languages: A Tutorial - Simon Peyton Jones, David Lester
  • Let's Build a Compiler (PDF)
  • Practical and Theoretical Aspects of Compiler Construction (class lectures and slides)

Computer Science

  • Computer Science I - Draft - Dr. Chris Bourke (PDF) (🚧in process)
  • Computer Science II - Draft - Dr. Chris Bourke (PDF) (🚧in process)

Computer Vision

  • Computer Vision - Dana Ballard, Chris Brown
  • Computer Vision: Algorithms and Applications - Richard Szeliski
  • Computer Vision: Models, Learning, and Inference - Simon J.D. Prince
  • Programming Computer Vision with Python - Jan Erik Solem

Database

  • Database Explorations (PDF)
  • Database Fundamentals (PDF)
  • Databases, Types, and The Relational Model: The Third Manifesto (PDF)
  • Temporal Database Management - Christian S. Jensen

Datamining

  • A Programmer's Guide to Data Mining - Ron Zacharski (Draft)
  • Data Jujitsu: The Art of Turning Data into Product (email address requested, not required)
  • Data Mining Algorithms In R - Wikibooks
  • Internet Advertising: An Interplay among Advertisers, Online Publishers, Ad Exchanges and Web Users (PDF)
  • Introduction to Data Science - Jeffrey Stanton

Information Retrieval

  • Information Retrieval: A Survey (PDF)

Licensing

  • Creative Commons: a user guide - Simone Aliprandi
  • Open Source Licensing Software Freedom and Intellectual Property Law - Lawrence Rosen
  • The Public Domain: Enclosing the Commons of the Mind - James Boyle

Machine Learning

  • A Brief Introduction to Machine Learning for Engineers - Osvaldo Simeone (PDF)
  • A Course in Machine Learning (PDF)
  • A First Encounter with Machine Learning (PDF)
  • An Introduction to Statistical Learning - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani
  • Deep Learning - Ian Goodfellow, Yoshua Bengio and Aaron Courville
  • Introduction to Machine Learning - Amnon Shashua
  • Learn Tensorflow - Jupyter Notebooks
  • Learning Deep Architectures for AI (PDF)
  • Probabilistic Models in the Study of Language (Draft, with R code)
  • Reinforcement Learning: An Introduction (Draft) - Richard S. Sutton, Andrew G. Barto (PDF)
  • Speech and Language Processing (3rd Edition Draft) - Daniel Jurafsky, James H. Martin (PDF)
  • The Elements of Statistical Learning - Trevor Hastie, Robert Tibshirani, and Jerome Friedman
  • The LION Way: Machine Learning plus Intelligent Optimization - Roberto Battiti, Mauro Brunato (PDF)

Mathematics

  • A First Course in Linear Algebra - Robert A. Beezer
  • Advanced Algebra - Anthony W. Knapp (PDF)
  • An Introduction to the Theory of Numbers - Leo Moser (PDF)
  • Basic Algebra - Anthony W. Knapp (PDF)
  • Basics of Algebra, Topology, and Differential Calculus (PDF)
  • Bayesian Methods for Hackers - Cameron Davidson-Pilon
  • Book of Proof - Richard Hammack (PDF)
  • Calculus - Gilbert Strang (PDF)
  • Calculus Made Easy - Silvanus P. Thompson (PDF)
  • Differential Equations - Paul Dawkins (PDF, use form to download)
  • Elementary Differential Equations - William F. Trench (PDF)
  • Essentials of Metaheuristics - Sean Luke
  • Introduction to Probability - Charles M. Grinstead and J. Laurie Snell
  • Introduction to Proofs - Jim Hefferon
  • Introduction to Statistical Thought - Michael Lavine
  • Knapsack Problems - Algorithms and Computer Implementations - Silvano Martello and Paolo Toth
  • Lecture Notes of Linear Algebra - Dr. P. Shunmugaraj, IIT Kanpur (PDF)
  • Linear Algebra - Dr. Arbind K Lal, IIT Kanpur (PDF)
  • Linear Algebra (PDF)
  • Linear Algebra by Jim Hefferon - Jim Hefferon
  • Mathematical Logic - an Introduction (PDF)
  • Mathematics, MTH101A - P. Shunmugaraj, IIT Kanpur
  • Non-Uniform Random Variate Generation - Luc Devroye (PDF)
  • Number Theory - Holden Lee MIT
  • Ordinary Differential Equations - Wikibooks
  • Power Programming with Mathematica - David B. Wagner
  • Statistics Done Wrong - Alex Reinhart
  • Think Bayes: Bayesian Statistics Made Simple - Allen B. Downey
  • Think Stats: Probability and Statistics for Programmers - Allen B. Downey (using Python)

Mathematics For Computer Science

  • Discrete Structures for Computer Science: Counting, Recursion, and Probability - Michiel Smid

Misc

  • 2016 European Software Development Salary Survey (email address requested, not required)
  • 2016 Software Development Salary Survey (email address requested, not required)
  • 97 Things Every Programmer Should Know - Extended(Leanpub account or valid email requested)
  • A MACHINE MADE THIS BOOK ten sketches of computer science - JOHN WHITINGTON (PDF)
  • A Mathematical Theory of Communication - Claude E.Shannon
  • Ansible Up & Running (first three chapters)(account required)
  • Barcode Overview (PDF)
  • Bitcoin and Cryptocurrency Technologies - Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder (PDF)
  • Communicating Sequential Processes - Tony Hoare (PDF)
  • Computer Musings (lectures by Donald Knuth)
  • Confessions of an Unintentional CTO: Lessons in Growing a Web App - Jack Kinsella
  • Continuous Delivery and DevOps: A Quickstart guide - Paul Swartout, Packt. (email address requested, not required)
  • Culture & Empire: Digital Revolution (PDF)
  • Designing for Performance - Lara Hogan
  • Designing Interfaces - Jennifer Tidwell
  • DevDocs - Documents for Developers in 1 place
  • DevOps For Dummies (IBM Edition) (PDF)
  • 'DYNAMIC LINKED LIBRARIES': Paradigms of the GPL license in contemporary software - Luis A. Enríquez
  • Essential Image Optimization - Addy Osmani
  • Foundations of Programming (PDF)
  • Game Programming Patterns - Bob Nystrom
  • Getting Started with Unity 5 - Dr. Edward Lavieri, Packt. (email address requested, not required)
  • Hacknot: Essays on Software Development - Ed Johnson
  • High-Performance Scientific Computing (class lectures and slides)
  • How Computers Work - R. Young
  • How to Become a Programmer (PDF)
  • How to Think Like a Computer Scientist - Peter Wentworth, Jeffrey Elkner, Allen B. Downey, and Chris Meyers
  • Image Processing in C: Analyzing and Enhancing Digital Images - Dwayne Phillips
  • Information Technology and the Networked Economy (PDF)
  • IRPF90 Fortran code generator - Anthony Scemama
  • Learn Programming - Antti Salonen
  • Learning 30 Technologies in 30 Days: A Developer Challenge - Shekhar Gulati
  • Learning Docker - Pethuru Raj, Jeeva S. Chelladhurai & Vinod Singh, Packt. (email address requested, not required)
  • Linked Data Patterns: A pattern catalogue for modelling, publishing, and consuming Linked Data - Leigh Dodds, Ian Davis
  • Magic Ink: Information Software and The Graphical Interface - Bret Victor
  • Mastering Bitcoin - Unlocking digital currencies - Andreas M. Antonopoulos
  • Mobile Developer's Guide to the Galaxy(Leanpub account or valid email requested)
  • Mother Tongues of Computer Languages (PNG)
  • Object-Oriented Reengineering Patterns - Serge Demeyer, Stéphane Ducasse and Oscar Nierstrasz
  • Packt Publishing: A free book every day (PDF, ePub, Mobi, Kindle) (account required)
  • PDQ: Pretty Darn Quick: An Agile, All-Purpose Methodology - Jeff Franz-Lien (Leanpub account or valid email requested)
  • Philosophy of Computer Science (PDF)
  • Pointers And Memory (PDF)
  • Practical Data Analysis - Hector Cuesta, Packt. (email address requested, not required)
  • Practical Responsive Typography - Dario Calonaci, Packt. (email address requested, not required)
  • Principles of Computer System Design (PDF)
  • Procedural Content Generation in Games - Noor Shaker, Julian Togelius, Mark Nelson
  • Real-World Maintainable Software (email address requested, not required)
  • Record-Playback Test Automation: Sahi & Selenium IDE: Critical Evaluation of Record-Playback Automation Tools - Shashikant Jagtap (Leanpub account or valid email requested)
  • The Quest for Artificial Intelligence: A History of Ideas and Achievements - Nils J. Nilsson (PDF)
  • Trends Shaping the London Tech Scene (email address requested, not required)
  • What You Need to Know about Docker - Scott Gallagher, Packt. (email address requested, not required)

MOOC

Networking

  • 802.11ac: A Survival Guide - Matthew Gast
  • An Introduction to Computer Networks (HTML, PDF, Kindle)
  • Code Connected vol.1 (PDF) (book on ZeroMQ)
  • Computer Networking : Principles, Protocols and Practice (HTML, ePub, PDF, Kindle)
  • Computer Networks: A Systems Approach - Larry Peterson and Bruce Davie (HTML, epub, mobi, PDF)
  • High-Performance Browser Networking - Ilya Grigorik
  • HTTP Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • HTTP2 Explained - Daniel Stenberg
  • IPv6 for IPv4 Experts - Yar Tikhiy (PDF)
  • Understanding IP Addressing: Everything you ever wanted to know (PDF)

Open Source Ecosystem

  • Fintech, Open Source, and Emerging Markets Digital Banking for Everyone (email address requested, not required)
  • Free as in Freedom: Richard Stallman and the free software revolution - Sam Williams (PDF)
  • Free for All - Peter Wayner
  • Getting Started with InnerSource (email address requested, not required)
  • Getting started with Open source development (PDF)
  • How to get started with open source (ePub & ODT)
  • Innovation Happens Elsewhere - Ron Goldman, Richard P. Gabriel
  • Open by Design (email address requested, not required)
  • Open Source in Brazil (email address requested, not required)
  • Producing Open Source Software - Karl Fogel
  • The Art of Community - Jono Bacon (PDF)
  • The Cathedral and the Bazaar - Eric S. Raymond
  • The Future of the Internet - Jonathan Zittrain
  • The Wealth of Networks: How Social Production Transforms Markets and Freedom - Yochai Benkler

Operating systems

  • A short introduction to operating systems (2001) - Mark Burgess (PDF)
  • How to Make a Computer Operating System (🚧in process)
  • How to write a simple operating system in assembly language - Mike Saunders (HTML)
  • Operating Systems and Middleware (PDF and LaTeX)
  • Operating Systems: Three Easy Pieces (PDF)
  • Practical File System Design: The Be File System - Dominic Giampaolo (PDF)
  • Project Oberon: The Design of an Operating System, a Compiler, and a Computer - Niklaus Wirth & Jürg Gutknecht (PDF)
  • The Art of Unix Programming - Eric S. Raymond
  • The Design and Implementation of the Anykernel and Rump Kernels - Antti Kantee
  • The little book about OS development - Erik Helin, Adam Renberg
  • The Little Book of Semaphores - Allen B. Downey
  • Think OS: A Brief Introduction to Operating Systems - Allen B. Downey (PDF)
  • UNIX Application and System Programming, lecture notes - Prof. Stewart Weiss (PDF)
  • Writing a Simple Operating System from Scratch - Nick Blundell (PDF)

Parallel Programming

  • High Performance Computing - Charles Severance & Kevin Dowd (PDF, ePUB)
  • High Performance Computing Training (LLNL materials)
  • High-Performance Scientific Computing (class lectures and slides)
  • Introduction to High-Performance Scientific Computing - Victor Eijkhout
  • Introduction to Parallel Computing - Blaise Barney
  • Is Parallel Programming Hard, And, If So, What Can You Do About It? - Paul E. McKenney
  • Programming on Parallel Machines; GPU, Multicore, Clusters and More - Norm MatloffKerridge (PDF) (email address requested, not required)
  • Using Concurrency and Parallelism Effectively – I - Jon Kerridge (PDF) (email address requested, not required)
  • Using Concurrency and Parallelism Effectively – II - Jon

Partial Evaluation

  • Partial Evaluation and Automatic Program Generation - (PDF) Jones, Gomard and Sestoft

Professional Development

  • Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman - David H. Hoover and Adewale Oshineye
  • Clean Code Developer: An initiative for more professionalism in software development (🚧in process)
  • Confessions of an IT Manager(RedGate, By Phil Factor)
  • Don't Just Roll the Dice (PDF) (RedGate, By Neil Davidson)
  • How to Do What You Love & Earn What You’re Worth as a Programmer - Reginald Braithwaite
  • Professional Software Development For Students - Mike G. Miller
  • What I've Learned From Failure - Reginald Braithwaite

Programming Paradigms

  • Introduction to Functional Programming - J. Harrison

Regular Expressions

  • Learn Regex The Hard Way - Zed. A. Shaw
  • The 30 Minute Regex Tutorial - Jim Hollenhorst
  • The Bastards Book of Regular Expressions: Finding Patterns in Everyday Text - Dan Nguyen (Leanpub account or valid email requested)

Reverse Engineering

  • BIOS Disassembly Ninjutsu Uncovered 1st Edition - Darmawan Salihun (PDF)
  • Hacking the Xbox: An Introduction to Reverse Engineering - Andrew 'bunnie' Huang
  • iOS App Reverse Engineering (PDF)
  • Reverse Engineering for Beginners - Dennis Yurichev (PDF)

Security

  • Intrusion Detection Systems with Snort (PDF)
  • OWASP Testing Guide 4.0 (PDF)

Software Architecture

  • Agile Planning: From Ideas to Story Cards - Launch School
  • Architectural Styles and the Design of Network-based Software Architectures - Roy Thomas Fielding
  • Developing Reactive Microservices (email address requested, not required)
  • DSL Engineering: Designing, Implementing and Using Domain-Specific Languages - Markus Voelter
  • Evolving Architectures of FinTech (email address requested, not required)
  • Exploring CQRS and Event Sourcing - (EPUB, PDF)
  • Kanban for skeptics - Nick Oostvogels (Leanpub account or valid email requested)
  • Microservice Databases: Migrating from Relational Monolith to Distributed Data (email address requested, not required)
  • Microservices AntiPatterns and Pitfalls (PDF)
  • Microservices in Production (email address requested, not required)
  • Microservices vs. Service-Oriented Architecture (PDF)
  • Migrating to Cloud-Native Application Architectures (email address requested, not required)
  • Naked objects - Richard Pawson (PDF)
  • Object-Oriented Reengineering Patterns - S. Demeyer, S. Ducasse and O. Nierstrasz
  • Practicing Domain-Driven Design - Part 1 - Scott Millett (Leanpub account or valid email requested)
  • Reactive Microservices Architecture (email address requested, not required)
  • Software Architecture Patterns (email address requested, not required)
  • Test Driven Development, Extensive Tutorial - Grzegorz Gałęzowski
  • Working with Web APIs - Launch School
  • Your API Is Bad - Paddy Foran

Standards

Theoretical Computer Science

  • Building Blocks for Theoretical Computer Science - Margaret M. Fleck
  • Category Theory for Computing Science (PDF)
  • Category Theory for Programmers - Bartosz Milewski (PDF)
  • Homotopy Type Theory: Univalent Foundations of Mathematics (PDF)
  • Introduction to Computer Science - Prof. Subhashis Banerjee, IIT Delhi
  • Introduction to Theory of Computation - Anil Maheshwari and Michiel Smid (PDF)
  • Models of Computation - John E. Savage
  • Practical Foundations for Programming Languages, Preview - Robert Harper (PDF)
  • Principles of Programming Languages - Scott F. Smith
  • Programming and Programming Languages - Shriram Krishnamurthi
  • Programming in Martin-Löf's Type Theory - Bengt Nordstroem
  • Programming Languages: Application and Interpretation (2nd Edition) - Shriram Krishnamurthi
  • Programming Languages: Theory and Practice - Robert Harper (PDF)
  • Semantics with Applications: A Formal Introduction - Hanne Riis Nielson, Flemming Nielson
  • The Black Art of Programming - Mark McIlroy
  • Think Complexity - Allen B. Downey

Web Performance

  • Book of Speed - Stoyan Stefanov
  • High Performance Browser Networking - Ilya Grigorik
  • Mature Optimization - Carlos Bueno (PDF)

Ada

  • A Guide to Ada for C and C++ Programmers (PDF)
  • Ada Distilled (PDF)
  • Ada for the C++ or Java Developer - Quentin Ochem (PDF)
  • Ada Programming - Wikibooks
  • Ada Reference Manual - ISO/IEC 8652:2012(E) Language and Standard Libraries (PDF)

Agda

  • Programming Language Foundations in Agda - Philip Wadler and Wen Kokke

Alef

Android

  • Agile Android Software Development - Etienne Savard (PDF, epub, mobi)
  • Android 5 Programming by Example - Kyle Mew, Packt. (email address requested, not required)
  • Android NDK Beginner's Guide - Second Edition - Sylvain Ratabouil, Packt. (email address requested, not required)
  • Android NDK Game Development Cookbook - Sergey Kosarevsky & Viktor Latypov, Packt. (email address requested, not required)
  • Android Notes (PDF)
  • Android Programming Guide for Beginners (PDF - need email confirmation)
  • Android Programming Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • RxJava for Android App Development (email address requested, not required)
  • The Busy Coder's Guide to Android Development (PDF - older versions)
  • Tutorial Point Android Tutorial (PDF)

APL

  • Mastering Dyalog APL (PDF)

Arduino

  • Arduino Programming Notebook - Brian Evans
  • C Programming for Arduino - Julien Bayle, Packt. (email address requested, not required)
  • Introduction to Arduino : A piece of cake! - Alan G. Smith

ASP.NET MVC

Assembly Language

  • Assembly Language Succinctly (PDF)
  • PC Assembly Language - P. A. Carter
  • Professional Assembly Language (PDF)
  • Programming from the Ground Up (PDF)
  • Software optimization resources - A. Fog
  • x86-64 Assembly Language Programming with Ubuntu - Ed Jorgensen (PDF)
  • x86 Assembly - Wikibooks

Non-X86

  • Easy 6502 - Nick Morgan
  • Machine Code for Beginners [Z80 and 6502 CPUs] - Lisa Watts and Mike Wharton (PDF) (Scroll to bottom and click on book cover)
  • Machine Language for Beginners - Richard Mansfield [6502 CPU]

AutoHotkey

  • AutoHotkey Official Documentation (CHM)

Autotools

Awk

  • An Awk Primer - Wikibooks
  • Awk - Bruce Barnett

Bash

  • Advanced Bash-Scripting Guide - M. Cooper (HTML)
  • Bash Guide for Beginners (2008) - M. Garrels (HTML)
  • Bash Notes (PDF)
  • Bash Notes for Professionals - Compiled from StackOverflow documentation (3.x) (PDF)
  • BASH Programming (2000) - Mike G. (HTML)
  • Bash Reference Manual (HTML)
  • Bash tutorial - Anthony Scemama (PDF)
  • BashGuide - Maarten Billemont (HTML) (PDF)
  • Conquering the Command Line - Mark Bates (HTML)
  • Getting Started with BASH (HTML)
  • Google Shell Style Guide - Paul Armstrong (HTML)
  • Introduction to the Command Line - Launch School (HTML)
  • Linux Fundamentals - Paul Cobbaut (PDF)
  • Linux Shell Scripting Tutorial - A Beginner's Handbook (2002) - Vivek G. Gite (HTML)
  • Linux Shell Scripting Tutorial (LSST) v2.0 - Vivek Gite (HTML)
  • Slackbook (2005) - Alan Hicks, Chris Lumens, David Cantrell and Logan Johnson (HTML, DocBook, Postscript, PDF)
  • The Bash Academy - Maarten Billemont (HTML)
  • The Linux Command Line - William E. Shotts, Jr. (PDF)
  • Writing Shell Scripts - William E. Shotts, Jr. (HTML)

Basic

  • 10 PRINT CHR$(205.5+RND(1)); : GOTO 10 - Nick Montfort, Patsy Baudoin, John Bell,Ian Bogost, Jeremy Douglass, Mark C. Marino, Michael Mateas, Casey Reas, Mark Sample, Noah Vawter
  • A beginner's guide to Gambas - John W. Rittinghouse (PDF)
  • Pick/Basic: A Programmer's Guide - Jonathan E. Sisk

BETA

  • Object-Oriented Programming in the BETA Programming Language - Ole Lehrmann Madsen, Birger Møller-Pedersen, Kristen Nygaard

C

  • 256-Color VGA Programming in C - David Brackeen
  • A Tutorial on Pointers and Arrays in C - Ted Jensen (PDF, Zipped HTML)
  • An Introduction to C & GUI Programming - Simon Long (PDF)
  • Bare-metal programming for ARM - Daniels Umanovskis (PDF)
  • Beej's Guide to C Programming - B. Hall
  • Beej's Guide to Network Programming - Using Internet Sockets - B. Hall
  • C Elements of Style - Steve Oualline
  • C Notes (PDF)
  • C Programming - Wikibooks
  • Essential C (PDF)
  • Functional C (1997) - Pieter H. Hartel, Henk Muller (PDF)
  • Learn to Code With C - The MagPi Essentials (PDF)
  • Modern C (PDF)
  • Object-Oriented Programming With ANSI-C (PDF)
  • Programming in C - Bharat Kinariwala & Tep Dobry
  • The Craft of Text Editing or A Cookbook for an Emacs - Craig A. Finseth
  • The Current C Programming Language Standard – ISO/IEC 9899:202x (C2x) - Open Standards Org - www.open-std.org (PDF)
  • The GNU C Programming Tutorial (PDF)
  • The little book about OS development - Erik Helin, Adam Renberg
  • The New C Standard - An Economic and Cultural commentary (2009) - Derek M. Jones (PDF)

C Sharp

  • C# Notes (PDF)
  • C# Notes for Professionals - Compiled from StackOverflow documentation (3.x)
  • C# Programming - Wikibooks
  • C# Yellow Book (intro to programming)
  • Daily Design Patterns (PDF)
  • Data Structures and Algorithms with Object-Oriented Design Patterns in C# - Bruno Preiss
  • Dissecting a C# Application - Christian Holm, Bernhard Spuida, Mike Kruger
  • Fundamentals of Computer Programming with C# - Svetlin Nakov
  • High level asynchronous programming with Reactive Extensions - Emil Petro
  • Object Oriented Programming using C# - Simon Kendal, Bookboon. (email address requested, not required)
  • Xamarin Cross-Platform Development Cookbook - George Taskos, Packt. (email address requested, not required)

C++

  • C++ Core Guidelines - Editors: Bjarne Stroustrup, Herb Sutter
  • C++ Notes (PDF)
  • C++ Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • C++ Today (email address requested, not required)
  • Financial Numerical Recipes in C++ - Bernt Arne Ødegaard
  • How to make an Operating System - Samy Pesse
  • How To Think Like a Computer Scientist: C++ Version - Allen B. Downey
  • Introduction to Design Patterns in C++ with Qt (PDF)
  • Joint Strike Fighter, C++ Coding Standards, by Bjarne Stroustrup (PDF)
  • Learn C++. (PDF, Online)
  • Matters Computational: Ideas, Algorithms, Source Code, by Jorg Arndt (PDF)
  • Open Data Structures (In C++) (PDF)
  • Practical C++ Metaprogramming (email address requested, not required)
  • Software Design Using C++ - Br. David Carlson and Br. Isidore Minerd
  • The Rook's Guide to C++ (PDF)
  • Thinking in C++, Second Edition, Vol. 1. - Bruce Eckel (Vol. 2)

Chapel

Cilk

  • Cilk 5.4.6 Reference Manual (PDF)

Clojure

  • Clojure - Functional Programming for the JVM - R. Mark Volkmann
  • Clojure by Example - Hirokuni Kim
  • Clojure in Small Pieces - Rich Hickey (PDF)
  • Clojure Programming - Wikibooks
  • ClojureScript Unraveled (HTML)
Brandon call

COBOL

  • COBOL Programming Fundamental (PDF)
  • OpenCOBOL 1.1 - Programmer's Guide (PDF)

CoffeeScript

  • CoffeeScript Ristretto - Reginald Braithwaite (Leanpub account or valid email requested)

ColdFusion

  • CFML In 100 Minutes - J. Casimir

Component Pascal

  • Computing Fundamentals - Stan Warford (PDF)

Cool

  • CoolAid: The Cool 2013 Reference Manual (PDF)

Coq

Crystal

CUDA

  • CUDA C Best Practices Guide (PDF)
  • CUDA C Programming Guide (PDF)
  • OpenCL Programming Guide for CUDA Architecture (PDF)

D

Dart

DB2

  • Getting started with DB2 Express-C (PDF)
  • Getting started with IBM Data Studio for DB2 (PDF)
  • Getting started with IBM DB2 development (PDF)

Delphi / Pascal

  • Essential Pascal Version 1 and 2 - M. Cantù

DTrace

Elasticsearch

  • Elasticsearch: The Definitive Guide (fork it on GH)

Eiffel

  • A Functional Pattern System for Object-Oriented Design - Thomas Kuhne (PDF)

Elixir

  • 30 Days of Elixir - Tim Morgan (HTML)
  • Elixir School (HTML)
  • Études for Elixir (HTML)
  • Getting Started Guide (HTML) (PDF, MOBI, EPUB)
  • Joy of Elixir - Ryan Bigg (HTML) - Source (🚧in process)
  • Learning Elixir - Joseph Kain Blog (HTML)
  • The Ultimate Guide To Elixir For Object-Oriented Programmers - Bruce Park (HTML)

Ecto

  • Ecto Getting Started Guide (HTML)

Phoenix

  • Phoenix v1.3.0 Guide (HTML)
  • Versioned APIs with Phoenix - Elvio Vicosa (PDF) (account required)

Emacs

  • GNU Emacs Manual (PDF)

Embedded Systems

  • Control and Embedded Systems (HTML)
  • Discovering the STM32 Microcontroller (PDF)
  • Introduction to Microcontrollers (HTML)

Erlang

  • Concurrent Programming in ERLANG (PDF)
  • Erlang Handbook (PDF)
  • Erlang Programming - Wikibooks (HTML)
  • Études for Erlang - J. David Eisenberg
  • Getting Started with Erlang User's Guide (HTML)
  • Learn You Some Erlang For Great Good - Frederic Trottier-Hebert
  • Making reliable distributed systems in the presence of software errors - Joe Armstrong (PDF)
  • Stuff Goes Bad: Erlang in Anger - Fred Herbert (PDF)

ESP8266

  • Kolban's book on the ESP32 & ESP8266(Leanpub account or valid email requested)

F Sharp

  • Analyzing and Visualizing Data with F# (PDF)
  • F# for fun and profit (ePub)
  • F# Programming - Wikibooks
  • F# Succinctly, SyncFusion (PDF, Kindle) (email address requested, not required)
  • Functional Programming Textbook - Yusuf M Motara (PDF)
  • Programming Language Concepts for Software Developers (PDF)

Firefox OS

  • Quick Guide For Firefox OS App Development: Creating HTML5 based apps for Firefox OS - Andre Garzia

Force.com

  • Heroku Postgres (PDF)

Forth

  • And so Forth... (PDF)
  • Programming Forth (PDF)

Fortran

  • Introduction to fortran 95 and numerical computing: a jump-start for scientists and engineers (PDF)
  • Self Study Guide: Programming in Fortran 95 (PDF)

FreeBSD

  • Using C on the UNIX System - David A. Curry

Git

  • A Visual Git Reference - Mark Lodato
  • Git From The Bottom Up - J. Wiegley
  • Git internals - Scott Chacon (PDF)
  • Git Pocket Guide - Richard E. Silverman
  • Git Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • GitHub Cheat Sheet - Tim Green (Markdown)
  • Intoduction to Git and Github - Launch School
  • Intoduction to Git and Github - Tutorial - Dr. Chris Bourke (PDF)
  • Learn Enough Git to be Dangerous - Michael Hartl
  • Learn Git - Learn Version Control with Git - Tobias Günther
  • Pro Git - Scott Chacon
  • Pro Git Reedited - Jon Forrest
  • Ry's Git Tutorial - Ryan Hodson

Go

  • Go 101 - @TapirLiu
  • Go Bootcamp - Matt Aimonetti
  • Practical Cryptography With Go - Kyle Isom

Groovy

Gradle

  • Gradle User Guide - Hans Dockter, Adam Murdoch (PDF)

Grails

  • The Grails Framework - Reference Documentation - Graeme Rocher, Peter Ledbrook, Marc Palmer, Jeff Brown, Luke Daley, Burt Beckwith, Lari Hotari (PDF)

Spock Framework

  • Spock Framework Reference Documentation - Peter Niederwieser

Hack

Hadoop

  • Cloudera Impala - John Russel
  • Data-Intensive Text Processing with MapReduce (Jimmy Lin and Chris Dyer) (PDF)
  • Hadoop Explained - Aravind Shenoy, Packt. (email address requested, not required)
  • Hadoop Illuminated - Mark Kerzner & Sujee Maniyam
  • Programming Pig - Alan Gates

Haskell

  • Anatomy of Programming Languages - William R. Cook
  • Beautiful Code, Compelling Evidence (PDF)
  • Exploring Generic Haskell - Andres Löh (PDF)
  • Haskell - Wikibooks
  • Haskell web Programming (Yesod tutorial)
  • Learn You a Haskell for Great Good - Miran Lipovaca
  • Parallel and Concurrent Programming in Haskell - Simon Marlow
  • Wise Man's Haskell - Andre Popovitch
  • Yet Another Haskell Tutorial (PDF)

Haxe

  • Haxe and JavaScript - Matthijs Kamstra (wikibook)
  • Haxe Manual - Haxe Foundation (PDF, HTML)
  • HaxeFlixel Handbook (HTML)

HTML / CSS

  • Adaptive Web Design - Aaron Gustafson
  • Code Guide: Standards for developing flexible, durable, and sustainable HTML and CSS - Mark Otto
  • Dive Into HTML5 - Mark Pilgrim (PDF)
  • HTML Canvas Deep Dive - Josh Marinacci
  • HTML5 Canvas - Steve Fulton & Jeff Fulton
  • HTML5 for Publishers - Sanders Kleinfeld
  • HTML5 For Web Designers - Jeremy Keith
  • HTML5 Graphing and Data Visualization Cookbook - Ben Fhala, Packt. (email address requested, not required)
  • HTML5 Notes for Professionals - Compiled from StackOverflow documentation (3.x)
  • HTML5 Shoot 'em Up in an Afternoon - Bryan Bibat
  • Learn to Code HTML & CSS - Shay Howe
  • Scalable and Modular Architecture for CSS - Jonathan Snook
  • Thinking in CSS - Aravind Shenoy, Packt. (email address requested, not required)
  • Thinking in HTML - Aravind Shenoy, Packt. (email address requested, not required)
  • Understanding Flexbox: Everything you need to know - Ohans Emmanuel
  • Web Audio API - Boris Smus

Bootstrap

  • Twitter Bootstrap 3 Succinctly (PDF, Kindle) (email address requested, not required)
  • Twitter Bootstrap Succinctly (PDF, Kindle) (email address requested, not required)

HTTP

Download
  • Introduction to HTTP - Launch School

Icon

iOS

  • iOS Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • Mastering iOS Game Development - Miguel DeQuadros, Packt (email address requested, not required)
  • NSHipster (Resource)
  • Start Developing iOS Apps (Swift) (HTML)
  • Start Developing iOS Apps Today (Objective-C) - Last updated 22.10.2013 (PDF)

IoT

  • IoT in five days- V1.1 (PDF, EPUB)

Isabelle/HOL

  • Concrete Semantics - A Proof Assistant Approach by Tobias Nipkow and Gerwin Klein (PDF)
  • Isabelle/HOL - A Proof Assistant for Higher-Order Logic by Tobias Nipkow and Lawrence C. Paulson and Markus Wenzel (PDF)

J

  • Arithmetic by Kenneth E Iverson (PDF)
  • Brief Reference by Chris Burke and Clifford Reiter (PDF)
  • Calculus by Kenneth E Iverson (PDF)
  • Concrete Math Companion by Kenneth E Iverson (PDF)
  • Easy J by Linda Alvord, Norman Thomson (PDF) (Word DOC)
  • Exploring Math by Kenneth E Iverson (PDF)
  • Math for the Layman by Kenneth E Iverson (zipped html+images)

Java

  • 3D Programming in Java - Daniel Selman (PDF)
  • Apache Jakarta Commons: Reusable Java Components - Will Iverson (PDF)
  • Artificial Intelligence - Foundation of Computational Agents (2010) - David Poole and Alan Mackworth
  • Category wise tutorials - J2EE - Yong Mook Kim
  • Core Servlets and JavaServer Pages, 2nd Ed. (2003) - Marty Hall and Larry Brown
  • Data Structures in Java for the Principled Programmer (2007) - Duane A. Bailey (PDF)
  • Introduction to Computer Science 'booksite' - by Robert Sedgewick and Kevin Wayne (HTML)
  • Introduction to Computer science using Java - Bradley Kjell
  • Introduction to Programming in Java - Robert Sedgewick and Kevin Wayne
  • Introduction to Programming Using Java - David J. Eck
  • Java Application Development on Linux (2005) - Carl Albing and Michael Schwarz (PDF)
  • Java, Java, Java Object-Oriented Problem Solving - R. Morelli and R.Walde
  • Java Language and Virtual Machine Specifications - James Gosling, et al
  • Java Notes for Professionals - Compiled from StackOverflow documentation (3.x)
  • Java Programming for Kids - Yakov Fain
  • Java: The Legend - Ben Evans (email address requested, not required)
  • Learning Java (4th Edition) - Patrick Niemeyer and Daniel Leuck
  • Microservices Best Practices for Java (PDF)
  • Microservices for Java Developers - Christian Posta (email address requested, not required)
  • Modern Java EE Design Patterns - Markus Eisele (email address requested, not required)
  • Neural Network Development with Java - Alan M. F. Souza and Fabio M. Soares (email address requested, not required)
  • Object-Oriented Programming in JavaTM Textbook - Rick Halterman (PDF per Chapter)
  • Object Oriented Programming using Java - Simon Kendal (PDF) , Bookboon. (email address requested, not required)
  • Object-Oriented vs. Functional Programming - Richard Warburton (email address requested, not required)
  • OOP - Learn Object Oriented Thinking & Programming - Rudolf Pecinovsky (PDF)
  • Open Data Structures (in Java) - Pat Morin (PDF)
  • Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX) (2002) - Elliotte Rusty Harold
  • The ABC of PDF with iText: PDF Syntax essentials - Bruno Lowagie (Leanpub account or valid email requested)
  • The Java EE6 Tutorial (PDF)
  • The Java EE7 Tutorial - Eric Jendrock, et al (PDF)
  • Think Java: How to Think Like a Computer Scientist - Allen B. Downey and Chris Mayfield
  • Welcome to Java for Python Programmers - Brad Miller
  • Welcome to the Java Workshop (2006) - Trevor Miller

Codename One

  • Codename One Developer Guide (PDF)
  • Create an Uber Clone in 7 Days (first 2 chapters) - Shai Almog (PDF)

JasperReports

  • The JasperReports Ultimate Guide, Third Edition (PDF)

Spring

  • Spring Framework Reference Documentation - Rod Johnson, Juergen Hoeller, Keith Donald, Colin Sampaleanu, Rob Harrop, Thomas Risberg, Alef Arendsen, Darren Davison, Dmitriy Kopylenko, Mark Pollack, Thierry Templier, Erwin Vervaet, Portia Tung, Ben Hale, Adrian Colyer, John Lewis, Costin Leau, Mark Fisher, Sam Brannen, Ramnivas Laddad, Arjen Poutsma, Chris Beams, Tareq Abedrabbo, Andy Clement, Dave Syer, Oliver Gierke, Rossen Stoyanchev, Phillip Webb, Rob Winch, Brian Clozel, Stephane Nicoll, Sebastien Deleuze (PDF)

Spring Boot

  • Spring Boot Reference Guide - Phillip Webb, Dave Syer, Josh Long, Stéphane Nicoll, Rob Winch, Andy Wilkinson, Marcel Overdijk, Christian Dupuis (PDF, EPUB)

Spring Security

  • Spring Security Reference - Ben Alex, Luke Taylor, Rob Winch

Wicket

JavaScript

  • Basic JavaScript for the impatient programmer - Dr. Axel Rauschmayer
  • Crockford's JavaScript - Douglas Crockford
  • Developing Backbone.js Applications - Addy Osmani
  • Eloquent JavaScript 2nd edition - Marijn Haverbeke
  • Exploring ES6 - Dr. Axel Rauschmayer
  • JavaScript Allongé - Reginald Braithwaite
  • JavaScript Bible (PDF)
  • JavaScript Enlightenment - Cody Lindley
  • JavaScript ES6 and beyond - Alberto Montalesi (PDF, epub)
  • JavaScript Garden (Maintained by Tim Ruffles)
  • JavaScript Patterns Collection - Shi Chuan
  • JavaScript Spessore - Reginald Braithwaite
  • Javascript Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • jQuery Fundamentals (starts with JavaScript basics)
  • JS Robots (PDF)
  • Leaflet Tips and Tricks: Interactive Maps Made Easy - Malcolm Maclean
  • Learning JavaScript Design Patterns - Addy Osmani
  • Let's Learn ES6 - Ryan Christiani (Superbook format)
  • Managing Space and Time with JavaScript - Book 1: The Basics - Noel Rappin
  • Marionette Exposé: Learn to write modular Javascript applications using Backbone Marionette and RequireJS/AMD - Jack Killilea (Leanpub account or valid email requested)
  • Mastering JavaScript High Performance - Chad R. Adams, Packt. (email address requested, not required)
  • Object-Oriented JavaScript - Stoyan Stefanov, Kumar Chetan Sharma (email address requested, not required)
  • Oh My JS - Azat Mardanov
  • Patterns For Large-Scale JavaScript Application Architecture - Addy Osmani
  • Speaking JavaScript - Dr. Axel Rauschmayer
  • The JavaScript Way - Baptiste Pesquet
  • Thinking in JavaScript - Aravind Shenoy, Packt. (email address requested, not required)
  • Understanding ECMAScript 6 - Nicholas C. Zakas
  • Understanding JavaScript OOP(Sorella)

Angular.js

  • AngularJS Essentials - Rodrigo Branas, Packt (email address requested, not required)
  • AngularJS Succinctly (PDF, Kindle) (email address requested, not required)
  • Developing with Angular - Denys Vuika (Leanpub account or valid email requested)
  • Recipes with Angular.js - Frederik Dietz

Aurelia

  • Beginning Aurelia - behzad (Leanpub account or valid email requested)

Backbone.js

  • Backbone Tutorials: Beginner, Intermediate and Advanced - Thomas Davis (Leanpub account or valid email requested)
  • Building Single Page Web Apps with Backbone.js (🚧in process)

Booty5.js

D3.js

  • D3 Tips and Tricks - Malcolm Maclean

Dojo

  • Dojo: The Definitive Guide - Matthew A. Russell

Elm

  • An Introduction to Elm (HTML)
  • Beginning Elm - Pawan Poudel (HTML)
  • Elm Accelerated - James Porter
  • Elm Programming Language (HTML)
  • Learn You an Elm (HTML)

Ember.js

Express.js

  • Express.js Guide - Azat Mardanov

jQuery

  • jQuery Novice to Ninja (PDF)
  • jQuery Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)

Meteor

Node.js

  • An Introduction to libuv - Nikhil Marathe (PDF - ePub)
  • Node: Up and Running - Tom Hughes-Croucher
  • Node.js Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • What You Need To Know About Node.js - Bruno Joseph Dmello, Packt (email address requested, not required)

Om

React

  • React-Bits (vasanthk)
  • React Tutorial by Josh Finnie
  • The Road to learn React - Build a Hacker News App along the Way - Robin Wieruch (Leanpub account or valid email requested)markdown

React Native

  • Programming React Native(Leanpub account or valid email requested)

Redux

  • The Complete Redux Book - Boris Dinkevich and Ilya Gelman (Leanpub account or valid email requested)

Jenkins

  • Jenkins: The Definitive Guide (PDF)

Julia

  • Introducing Julia - Wikibooks
  • Julia by Example - Samuel Colvin (GitHub repo)
  • Julia language: a concise tutorial - Antonello Lobianco (GitBook)
  • Learn Julia in Y minutes - Leah Hanson
  • The Julia Express - Bogumił Kamiński (PDF)

Kotlin

  • Kotlin Notes for Professionals book - Compiled from StackOverflow documentation

LaTeX / TeX

LaTeX

  • LaTeX - Wikibooks
  • The Not So Short Introduction to LaTeX (PDF)

TeX

  • Notes On Programming in TeX - Christian Feursänger (PDF)
  • TeX by Topic, A TeXnician's Reference - Victor Eijkhout
  • TeX for the Impatient - Paul Abrahams, Kathryn Hargreaves, and Karl Berry

Limbo

Linux

  • Ad Hoc Data Analysis From The Unix Command Line - Wikibooks
  • Advanced Linux Programming (PDF)
  • Learn Enough Command Line to Be Dangerous - Michael Hartl
  • Linux 101 Hacks - Ramesh Natarajan (PDF)
  • Linux Device Drivers, Third Edition - Jonathan Corbet, Alessandro Rubini, and Greg Kroah-Hartman
  • Linux Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • OpenVZ Linux virtualization (PDF)
  • Secure Programming HOWTO - Creating Secure Software - D. A. Wheeler (HTML, PDF)
  • Ten Steps to Linux Survival: Bash for Windows People - Jim Lehmer
  • The Linux Command Line (PDF)
  • The Linux Development Platform (PDF)
  • Ubuntu Server Guide (PDF)
  • Understanding the Linux Virtual Memory Manager - Mel Gorman (HTML, PDF)
  • UNIX Systems Programming for SVR4 - David A. Curry
  • What Every Programmer Should Know About Memory (PDF)

Lisp

  • Basic Lisp Techniques - David J. Cooper, Jr. (PDF)
  • Common Lisp: A Gentle Introduction to Symbolic Computation - David S. Touretzky (PDF, PS)
  • Common Lisp: An Interactive Approach - Stuart C. Shapiro
  • Interpreting LISP - Gary D. Knott (PDF)
  • Learn Lisp The Hard Way - Colin J.E. Lupton
  • Let Over Lambda - 50 Years of Lisp - D. Hoyte
  • Lisp Hackers: Interviews with 100x More Productive Programmers - Vsevolod Dyomkin
  • Lisp Web Tales - Pavel Penev (Leanpub account or valid email requested)
  • On Lisp - P. Graham
  • Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp - Peter Norvig (PDF, epub, markdown)
  • Practical Common Lisp - P. Seibel
  • SOLID Design Principles in Common Lisp - Momozor (PDF)
  • Successful Lisp: How to Understand and Use Common Lisp - David Lamkins (PDF)
  • The Evolution of Lisp - Guy L. Steele Jr., Richard P. Gabriel (PDF)

Livecode

  • LiveCode userguide (PDF)

Lua

  • Lua Programming - Wikibooks

Make

  • Managing Projects with GNU Make - Robert Mecklenburg

Markdown

  • Learn Markdown - Sammy P., Aaron O. (PDF) (EPUB) (MOBI)

Mathematica

MATLAB

  • An Interactive Introduction to MATLAB (PDF)
  • An Introduction to MATLAB (PDF)
  • MATLAB Programming - Wikibooks
  • MATLAB Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • Physical Modeling in MATLAB - Alan B. Downey

Maven

Mercurial

  • Mercurial: The Definitive Guide 2nd edition (source repository) (🚧in process)

Mercury

  • The Mercury Users' Guide (PDF)

Modelica

MySQL

  • MySQL Tutorial Excerpt (PDF)

Neo4J

  • Graph Databases (PDF)
  • Graph Databases 2nd edition(account required)

.NET Framework

  • Game Creation with XNA - Wikibooks
  • .NET Performance Testing and Optimization - The Complete Guide(RedGate, By Paul Glavich and Chris Farrell)
  • Under the Hood of .NET Memory Management (PDF) (RedGate, By Chris Farrell and Nick Harrison)
  • Visual Studio .NET Tips and Tricks (VS 2003-2005 only)

NoSQL

  • Extracting Data from NoSQL Databases: A Step towards Interactive Visual Analysis of NoSQL Data - Petter Nasholm (PDF)
  • Instant MongoDB - Amol Nayak, Packt. (email address requested, not required)
  • MongoDB Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • NoSQL Databases - Christof Strauch (PDF)
  • The Little Redis Book - K. Seguin (PDF, Epub)

Oberon

  • Algorithms and fallback-src='https://github.githubassets.com/images/icons/emoji/unicode/1f6a7.png'>🚧project is dead)

PHP

  • CakePHP Framework
    • CakePHP Cookbook 2.x (PDF)
  • CodeIgniter Framework
  • Drupal Framework
    • Drupal 7
      • The Tiny Book of Rules (PDF)
  • Laravel Framework
    • Laravel 3
      • Laravel: Code Happy - Dayle Rees
    • Laravel 4
      • Laravel: Code Bright - Dayle Rees
    • Laravel 5
      • Laravel 5.x Official Documentation. Synced Daily(Leanpub account or valid email requested)
      • Laravel: Code Smart - Dayle Rees
      • Laravel Collections Unraveled - Jeffrey Madsen (Leanpub account or valid email requested)
  • PHP 5 Power Programming (PDF)
  • PHP Pandas - Dayle Rees
  • PHP Programming - Wikibooks
  • PHPUnit Manual - Sebastian Bergmann (PDF)
  • Symfony Framework
    • Symfony 2.8
      • The Symfony Book 2.8.x (PDF)
    • Symfony 3.4
      • The Symfony Best practices 3.4.x (PDF)
      • The Symfony Getting started 3.4.x (PDF)
    • Symfony 4.1
      • The Symfony Best practices 4.1.x (PDF)
      • The Symfony Getting started 4.1.x (PDF)
  • Zend Framework

PicoLisp

PostgreSQL

  • Postgres Succinctly (PDF, Kindle) (email address requested, not required)

PowerShell

  • Creating HTML Reports in PowerShell (PDF,ePub,HTML)
  • DevOps: The Ops Perspective (PDF, ePub, MOBI)
  • Ditch Excel: Making Historical & Trend Reports in PowerShell (PDF, ePub, MOBI)
  • Introduction to PowerShell for Unix People (PDF, ePub, HTML)
  • Layman’s Guide to PowerShell 2.0 remoting (PDF)
  • PowerShell 2.0 – One CMDLET At A Time (PDF)
  • PowerShell Notes for Professionals - Compiled from StackOverflow documentation (3.x)
  • PowerShell Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • Secrets of PowerShell Remoting (PDF, ePub, MOBI)
  • The Big Book of PowerShell Error Handling (PDF, ePub, MOBI)
  • The Big Book of PowerShell Gotchas (PDF, ePub, MOBI)
  • The DSC Book (PDF, ePub, HTML)
  • The Monad Manifesto - Annotated (PDF, ePub, MOBI)
  • Why PowerShell? (PDF, ePub, MOBI)
  • Windows PowerShell Networking Guide (PDF, ePub, MOBI)

Processing

Prolog

  • Applications of Prolog - Attila Csenki, Bookboon. (email address requested, not required)
  • Coding Guidelines for Prolog - Michael A. Covington, Roberto Bagnara, Richard A. O'Keefe, Jan Wielemaker, Simon Price
  • GNU Prolog Manual (PDF)
  • Introduction to Prolog for Mathematicians - J. Ireson-Ireson-Paine
  • Natural Language Processing Techniques in Prolog - P. Blackburn, K. Striegnitz
  • Prolog and Natural - Language Analysis - Fernando C. N. Pereira, Stuart M. Shieber
  • Prolog Problems - Werner Hett
  • Prolog Techniques - Attila Csenki, Bookboon. (email address requested, not required)
  • The Art of Prolog, Second Edition - Leon S. Sterling, Ehud Y. Shapiro (Open Access)
  • The First 10 Prolog Programming Contests - Bart Demoen, Phuong-Lan Nguyen, Tom Schrijvers, Remko Tronçon
  • Warren's Abstract Machine: A Tutorial Reconstruction - Hassan A¨it-Kaci

Constraint Logic Programming (extended Prolog)

PureScript

  • PureScript By Example - Phil Freeman

Python

  • 20 Python Libraries You Aren't Using (But Should) (email address requested, not required)
  • A Beginner's Python Tutorial - Wikibooks
  • A Byte of Python (3.x) (HTML, PDF, EPUB, Mobi)
  • A Guide to Python's Magic Methods - Rafe Kettler
  • A Whirlwind Tour of Python - Jake VanderPlas (PDF) (EPUB, MOBI)
  • Automate the Boring Stuff - Al Sweigart
  • Biopython (PDF)
  • Build applications in Python the antitextbook (3.x) (HTML, PDF, EPUB, Mobi)
  • Building Machine Learning Systems with Python - Willi Richert & Luis Pedro Coelho, Packt. (email address requested, not required)
  • Building Skills in Object-Oriented Design (Python) (PDF) (2.1.1)
  • Building Skills in Python (PDF) (2.6)
  • Composing Programs (3.x)
  • Data Structures and Algorithms in Python - B. R. Preiss (PDF)
  • Dive into Python 3 - Mark Pilgrim (3.0)
    • Dive into Python - Mark Pilgrim (2.3)
  • Functional Programming in Python (email address requested, not required)
  • Fundamentals of Python Programming - Richard L. Halterman (PDF) (3.2)
  • Google's Python Class (2.4 - 2.x)
  • Hacking Secret Cyphers with Python - Al Sweigart (3.3)
  • Hadoop with Python (email address requested, not required)
  • Hitchhiker's Guide to Python! (2.6)
  • How to Make Mistakes in Python - Mike Pirnat (PDF) (1st edition)
  • How to Think Like a Computer Scientist: Learning with Python, Interactive Edition (3.2)
    • How to Think Like a Computer Scientist: Learning with Python - Allen B. Downey, Jeff Elkner and Chris Meyers (2.4)
    • Think Python - Allen B. Downey (2.x & 3.0)
  • Intermediate Python - Muhammad Yasoob Ullah Khalid (1st edition)
  • Introduction to Programming with Python (3.3)
    • Introduction to Programming Using Python - Cody Jackson (1st edition) (2.3)
  • Introduction to Python - Kracekumar (2.7.3)
  • Invent Your Own Computer Games With Python - Al Sweigart (3.1)
  • Learn to Program Using Python - Cody Jackson (PDF)
  • Learning Python - Fabrizio Romano, Packt. (email address requested, not required)
  • Lectures on scientific computing with python - J.R. Johansson (2.7)
  • Making Games with Python & Pygame - Al Sweigart (2.7)
  • Modeling Creativity: Case Studies in Python - Tom D. De Smedt (PDF)
  • Natural Language Processing with Python (3.x)
  • Non-Programmer's Tutorial for Python 3 - Wikibooks (3.3)
    • Non-Programmer's Tutorial for Python 2.6 - Wikibooks (2.6)
  • Picking a Python Version: A Manifesto (email address requested, not required)
  • Porting to Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)
  • Practical Programming in Python - Jeffrey Elkner (PDF)
  • Problem Solving with Algorithms and Data Structures using Python - Bradley N. Miller and David L. Ranum
  • Program Arcade Games With Python And Pygame (3.3)
  • Programming Computer Vision with Python (PDF)
  • Python 2 Official Documentation (PDF, HTML, TEXT) (2.x)
  • Python 2.7 quick reference - New Mexico Tech (2.7)
  • Python 3 Official Documentation (PDF, EPUB, HTML, TEXT) (3.x)
  • Python Data Science Handbook - Jake VanderPlas (HTML, Jupyter Notebooks)
  • Python for Everybody Exploring Data Using Python 3 - Charles Severance (PDF, EPUB, HTML)
    • Python for Informatics: Exploring Information (2.7.5)
  • Python for you and me (2.7.3)
  • Python for you and me (3.x)
  • Python Idioms (PDF)
  • Python in Education (email address requested, not required)
  • Python in Hydrology - Sat Kumar Tomer
  • Python Koans (2.7 or 3.x)
  • Python Module of the Week (3.x)
    • Python Module of the Week (2.x)
  • Python Notes for Professionals - Compiled from StackOverflow documentation (3.x)
  • Python Practice Book (2.7.1)
  • Python Programming - Wikibooks (2.7)
  • Python Programming - Wikibooks (PDF) (2.6)
  • SICP in Python (3.2)
  • Suporting Python 3: An In-Depth Guide (2.6 - 2.x & 3.1 - 3.x)
  • Test-Driven Web Development with Python - Harry Percival (3.3 - 3.x)
  • Text Processing in Python - David Mertz (2.3 - 2.x)
  • The Coder's Apprentice: Learning Programming with Python 3 - Pieter Spronck (PDF) (3.x)
  • The Definitive Guide to Jython, Python for the Java Platform - Josh Juneau, Jim Baker, Victor Ng, Leo Soto, Frank Wierzbicki (2.5)
  • The Little Book of Python Anti-Patterns (Source)
  • The Programming Historian - William J. Turkel, Adam Crymble and Alan MacEachern
  • The Standard Python Library - Fredrik Lundh
  • Think Complexity - Allen B. Downey (2nd Edition) (PDF, HTML)
  • Tiny Python 3.6 Notebook - Matt Harrison (3.6)
  • Web2py: Complete Reference Manual, 6th Edition (pre-release) (2.5 - 2.x)

Django

  • Django Girls Tutorial (1.11)
  • Django Official Documentation (PDF) (1.5)
  • Django Official Documentation (PDF) (1.7)
  • Django Official Documentation (PDF) (1.9)
  • Django Official Documentation (PDF) (1.10)
  • Django Official Documentation (PDF) (2.2)
  • Effective Django (1.5)
  • How to Tango With Django (1.7)

Flask

  • Explore Flask - Robert Picard
  • The Flask Mega-Tutorial - Miguel Grinberg (0.9)

Kivy

Pandas

  • Learn Pandas - Hernan Rojas (0.18.1)

Pyramid

Tornado

QML

  • Qt5 Cadaques - Juergen Bocklage-Ryannel and Johan Thelin (HTML, PDF, ePub) (🚧in process)

R

  • Advanced R Programming - Hadley Wickham
  • An Introduction to Statistical Learning with Applications in R - Gareth James, Daniela Witten, Trevor Hastie and Robert Tibshirani (PDF)
  • Cookbook for R - Winston Chang
  • Introduction to Probability and Statistics Using R - G. Jay Kerns (PDF)
  • Learning Statistics with R - Daniel Navarro
  • Machine Learning with R - Brett Lantz, Packt. (email address requested, not required)
  • ModernDive - Chester Ismay and Albert Y. Kim
  • Practical Regression and Anova using R - Julian J. Faraway (PDF)
  • R for Data Science - Garrett Grolemund and Hadley Wickham
  • R for Spatial Analysis (PDF)
  • R Language for Programmers - John D. Cook
  • R Packages - Hadley Wickham
  • R Practicals (PDF)
  • R Programming - Wikibooks
  • R Programming for Data Science - Roger D. Peng (Leanpub account or valid email requested)
  • R Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)
  • The caret Package - Max Kuhn
  • The R Inferno - Patrick Burns (PDF)
  • Tidy Text Mining with R - Julia Silge and David Robinson

Racket

Raspberry Pi

  • Raspberry Pi Cookbook for Python Programmers - Tim Cox, Packt. (PDF) (email address requested, not required)
  • Raspberry Pi: Measure, Record, Explore - Malcolm Maclean (HTML)
  • Raspberry Pi Users Guide - (2012) - Eben Upton (PDF)
  • The Official Raspberry Pi Project Book (PDF)

REBOL

  • Learn REBOL - Nick Antonaccio

Ruby

  • Developing Games With Ruby - Tomas Varaneckas
  • Introduction to Programming with Ruby - Launch School
  • Learn Ruby First - Frederick John
  • Learn Ruby the Hard Way - Zed Shaw
  • Learn to Program - Chris Pine
  • Object Oriented Programming with Ruby - Launch School
  • Ruby Web Dev: The Other Way - Yevhen Kuzminov
  • The Definitive Ruby Tutorial For Complete Beginners - Jesus Castello
  • The Unofficial Ruby Usage Guide (at Google) - Ian Macdonald

RSpec

Ruby on Rails

  • Kestrels, Quirky Birds, and Hopeless Egocentricity - Reg Braithwaite
  • Ruby on Rails Tutorial (Rails 5): Learn Web Development with Rails - Michael Hartl

Sinatra

Rust

  • Why Rust? (PDF)

Sage

  • Sage for Power Users - William Stein (PDF)

Scala

  • A Scala Tutorial for Java programmers (PDF)
  • Advanced Scala with Cats - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
  • Creative Scala - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
  • EAI Patterns with Actor Model - Vaughn Vernon
  • Essential Scala - Noel Welsh and Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
  • Functional Programming for Mortals - Sam Halliday
  • Functional Programming, Simplified (Scala edition) - Alvin Alexander (free preview (400 pages from 595), PDF)
  • Hello, Scala - Alvin Alexander (free preview (120 pages from 257), PDF)
  • Programming in Scala, First Edition - by M. Odersky, L. Spoon, B. Venners
  • PythonToScala - Rob Story
  • S-99: Ninety-Nine Scala Problems - Phil! Gold
  • Scala & Design Patterns: Exploring Language Expressivity - Fredrik Skeel Løkke (PDF)
  • Scala By Example - M. Odersky (PDF)
  • Scala Cookbook: Bonus Chapters - Alvin Alexander (PDF)
  • Scala for Perl 5 Programmers - Breno G. de Oliveira
  • Scala for the Impatient (A1 Scala Level chapters) - Cay S. Horstmann
  • Scala Tutorial (PDF)
  • The Neophyte's Guide to Scala - Daniel Westheide
  • The Type Astronaut's Guide to Shapeless - Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)

Lift

  • Exploring Lift (published earlier as 'The Definitive Guide to Lift', PDF)
  • Lift Cookbook - Richard Dallaway
  • Simply Lift - David Pollak (PDF)

Play Scala

  • Essential Play - Dave Gurnell (PDF, HTML, EPUB) (email address requested, not required)
  • Play Framework Recipes - Alvin Alexander

Scheme

  • Concrete Abstractions: An Introduction to Computer Science Using Scheme - M. Hailperin, B. Kaiser, K. Knight
  • Simply Scheme: Introducing Computer Science - B. Harvey, M. Wright
  • The Scheme Programming Language: Edition 3 - The Scheme Programming Language: Edition 4
  • Write Yourself a Scheme in 48 Hours - Wikibooks

Scilab

Scratch

Sed

Self

Smalltalk

  • Dynamic Web Development with Seaside - S. Ducasse, L. Renggli, C. D. Shaffer, R. Zaccone
  • Pharo by Example (Smalltalk Implementation and IDE)
  • Squeak By Example (Smalltalk Implementation and IDE)
  • Stef's Free Online Smalltalk Books (meta-list)

Spark

SQL (implementation agnostic)

SQL Server

  • Best of SQLServerCentral.com Vol 7 *(RedGate, By SQLServerCentral Authors)
  • Brad's Sure Guide to SQL Server Maintenance Plans(RedGate, By Brad McGehee)
  • Defensive Database Programming (PDF) (RedGate, By Alex Kuznetsov)
  • How to Become an Exceptional DBA(RedGate, By Brad McGehee)
  • Inside the SQL Server Query Optimizer(RedGate, By Benjamin Nevarez)
  • Mastering SQL Server Profiler(RedGate, By Brad McGehee)
  • Microsoft SQL Server Notes for Professionals (Compiled from StackOverflow documentation)
  • Performance Tuning with SQL Server Dynamic Management Views(RedGate, By Tim Ford and Louis Davidson)
  • Protecting SQL Server Data(RedGate, By John Magnabosco)
  • SQL Server Backup and Restore(RedGate, By Shawn McGehee)
  • SQL Server Concurrency: Locking, Blocking and Row Versioning(RedGate, By Kalen Delaney)
  • SQL Server Execution Plans (PDF) (RedGate, By Grant Fritchey)
  • SQL Server Execution Plans, Second Edition (PDF) (RedGate, By Grant Fritchey)
  • SQL Server Hardware(RedGate, By Glenn Berry)
  • SQL Server Internals: In-Memory OLTP(RedGate, By Kalen Delaney)
  • SQL Server Statistics(RedGate, By Holger Schmeling)
  • SQL Server Stumpers Vol.5(RedGate, By SQLServerCentral Authors)
  • SQL Server Tacklebox(RedGate, By Rodney Landrum)
  • SQL Server Transaction Log Management(RedGate, By Tony Davis and Gail Shaw)
  • The Art of SQL Server FILESTREAM(RedGate, By Jacob Sebastian and Sven Aelterman)
  • Troubleshooting SQL Server: A Guide for the Accidental DBA(RedGate, By Jonathan Kehayias and Ted Krueger)

Standard ML

  • Introduction to Standard ML - Atsushi Ohori (PDF)
  • Programming in Standard ML '97 - Stephen Gilmore, University of Edinburgh
  • Programming in Standard ML, DRAFT - Robert Harper (PDF)
  • SML# Document - Atsushi Ohori, Katsuhiro Ueno
  • The Definition of Standard ML (Revised) - SMLFamily GitHub project (PDF)

Subversion

  • Subversion Version Control (PDF)

Swift

  • Swift Essentials - Second Edition - Dr. Alex Blewitt, Packt (email address requested, not required)
  • Swift Pocket Reference (email address requested, not required)
  • Test-driven iOS Development with Swift - Dr. Dominik Hauser, Packt. (email address requested, not required)
  • The Swift Programming Language (HTML) (iBook)
  • Using Swift with Cocoa and Objective-C (HTML) (iBook)

Vapor

  • Vapor 3 Tutorial For Beginners - Tibor Bödecs

Tcl

  • Tcl Programming - Richard.Suchenwirth, et. al.
  • TclWise - Salvatore Sanfilippo

Teradata

Tizen

  • Tizen for Dummies - Jon Lansdell, Cheng Luo, Michelle Somersville (PDF)

TLA

  • Specifying Systems: The TLA+ Language and Tools for Hardware and Software Engineers - Leslie Lamport (Postscript or PDF)

TypeScript

  • TypeScript Accelerated - James Porter
  • TypeScript Succinctly, Syncfusion (PDF, Kindle) (email address requested, not required)

Unix

  • Commentary on the Sixth Edition UNIX Operating System - J. Lions
  • Unix as IDE - Tom Ryder (epub, mobi)
  • UNIX Commands and Concepts - Robert I. Pitts
  • Unix for Poets - Kenneth Ward Church (PDF)
  • Unix Toolbox - Colin Barschel

Verilog

  • Verilog Quick Reference Guide - Sutherland HDL (PDF)

VHDL

  • Free Range VHDL - Bryan Mealy, Fabrizio Tappero (TeX and PDF)

Vim

  • Use Vim Like A Pro - Tim Ottinger (Leanpub account or valid email requested)
  • Vi Improved -- Vim - Steve Oualline (PDF)
  • Vim Recipes (PDF)

Visual Basic

Visual Prolog

Web Services

  • RESTful Web Services (PDF)

Windows 8

Windows Phone

  • Windows Phone 8 Development Succinctly - Matteo Pagani (PDF)

Workflow

xBase (dBase / Clipper / Harbour)

  • Application Development with Harbour - Wikibooks
  • Clipper Tutorial: a Guide to Open Source Clipper(s) - Wikibooks
Web Programming Step by Step Chapter 10 Ajax and XML for Accessing Data Except where otherwise noted, the contents of this presentation are Copyright 2009 Marty Stepp and Jessica Miller.
10.1: Ajax Concepts 10.1: Ajax Concepts 10.2: Using XMLHttpRequest 10.3: XML
Synchronous web communication (10.1)
synchronous: user must wait while new pages load the typical communication pattern used in web pages (click, wait, refresh)
Web applications web application: a web site that mimics the look, feel, and overall user experience of a desktop application a web app presents a continuous user experience rather than disjoint pages as much as possible, 'feels' like a normal program to the user examples of web apps Gmail, Google Maps, Google Docs and Spreadsheets, Flickr, A9 many web apps use Ajax to battle these problems of web pages: slowness / lack of UI responsiveness lack of user-friendliness jarring nature of 'click-wait-refresh' pattern
What is Ajax? Ajax: Asynchronous JavaScript and XML not a programming language; a particular way of using JavaScript downloads data from a server in the background allows dynamically updating a page without making the user wait aids in the creation of rich, user-friendly web sites examples: UW's CSE 14x Diff Tool, Practice-It; Google Suggest
Asynchronous web communication
asynchronous: user can keep interacting with page while data loads communication pattern made possible by Ajax
Core Ajax concepts JavaScript's XMLHttpRequest object can fetch files from a web server supported in IE5+, Safari, Firefox, Opera (with minor compatibilities) it can do this asynchronously (in the background, transparent to user) contents of fetched file can be put into current web page using DOM result: user's web page updates dynamically without a page reloadPdf
A typical Ajax request 1. user clicks, invoking event handler 2. that handler's JS code creates an XMLHttpRequest object 3. XMLHttpRequest object requests a document from a web server 4. server retrieves appropriate data, sends it back 5. XMLHttpRequest fires event to say that the data has arrived this is often called a callback you can attach a handler to be notified when the data has arrived 6. your callback event handler processes the data and displays it
10.2: Using XMLHttpRequest 10.1: Ajax Concepts 10.2: Using XMLHttpRequest 10.3: XML
The XMLHttpRequest object the core JavaScript object that makes Ajax possible methods: abort, getAllResponseHeaders, getResponseHeader, open, send, setRequestHeader properties: onreadystatechange, readyState, responseText, responseXML, status, statusText IE6 doesn't follow standards and uses its own ActiveXObject instead we'll learn to use Ajax in 4 steps: 1. synchronous, text-only (SJAT?) 2. asynchronous, text-only (AJAT?) 3. asynchronous w/ Prototype (AJAP?) 4. asynchronous w/ XML data (real Ajax)
1. Synchronous requests (10.2.1) var ajax = new XMLHttpRequest(); ajax.open('GET', url, false); ajax.send(null); // at this point, the request will have returned with its data do something with ajax.responseText;
create the request object, open a connection, send the request when send returns, the fetched text will be stored in request's responseText property
Why synchronous requests are bad your code waits for the request to completely finish before proceeding easier for you to program, but ... the user's entire browser locks up until the download is completed a terrible user experience (especially if the file is very large)
2. Asynchronous requests, basic idea (10.2.3) var ajax = new XMLHttpRequest(); ajax.onreadystatechange = functionName; ajax.open('get', url, true); ajax.send(null); // don't process ajax.responseText here, but in your function ...
attach an event handler to the request's onreadystatechange event pass true as third parameter to open handler will be called when request state changes, e.g. finishes function's code will be run when request is complete
The readyState property holds the status of the XMLHttpRequest possible values for the readyState property: State
Description
0
not initialized
1
set up
2
sent
3
in progress
4 complete readyState changes → onreadystatechange handler runs usually we are only interested in readyState of 4 (complete)
Asynchronous XMLHttpRequest template var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function() { if (ajax.readyState 4) { // 4 means request is finished do something with ajax.responseText; } }; ajax.open('get', url, true); ajax.send(null);
most Ajax code uses an anonymous function as the event handler useful to declare it as an inner anonymous function, because then it can access surrounding local variables (e.g. ajax)
Checking for request errors (10.2.2) var ajax = new XMLHttpRequest(); ajax.onreadystatechange = function() { if (ajax.readyState 4) { if (ajax.status 200) { // 200 means request succeeded do something with ajax.responseText; } else { code to handle the error; } } }; ajax.open('get', url, true); ajax.send(null);
web servers return status codes for requests (200 means Success) you may wish to display a message or take action on a failed request
Prototype's Ajax model (10.2.4) new Ajax.Request( 'url', { option : value, option : value, ... option : value } );
Prototype's Ajax.Request object constructor accepts 2 parameters: 1. the URL to fetch, as a String, 2. a set of options, as an array of key:value pairs in {} braces hides some of the icky details (onreadystatechange, etc.) works in all browsers: IE, Firefox, etc.
Prototype Ajax methods and properties options that can be passed to the Ajax.Request constructor: method : how to fetch the request from the server (default 'post') parameters : query parameters to pass to the server, if any asynchronous (default true), contentType, encoding, requestHeaders events in the Ajax.Request object that you can handle: onSuccess : request completed successfully onFailure : request was unsuccessful onCreate, onComplete, onException, on### (handler for HTTP error code ###)
Prototype Ajax template new Ajax.Request( 'url', { method: 'get', onSuccess: functionName } ); ... function functionName(ajax) { do something with ajax.responseText; }
most Ajax requests we'll do in this course are GET requests attach a handler to the request's onSuccess event the handler accepts the XMLHttpRequest object, ajax, as a parameter
Handling Ajax errors w/ Prototype new Ajax.Request( 'url', { method: 'get', onSuccess: functionName, onFailure: ajaxFailure } ); ... function ajaxFailure(ajax) { alert('Error making Ajax request:' + 'nnServer status:n' + ajax.status + ' ' + ajax.statusText + 'nnServer response text:n' + ajax.responseText); }
for user's (and developer's) benefit, show a message if a request fails a good failure message shows the HTTP error code and status text
Creating a POST request new Ajax.Request( 'url', { method: 'POST', // optional parameters: { name: value, name: value, ..., name: value }, onSuccess: functionName, onFailure: functionName } );
Ajax.Request can also be used to post data to a web server method should be changed to 'post' (or omitted; post is default) any query parameters should be passed as a parameters parameter, written between {} braces as name: value pairs get request parameters can also be passed this way, if you like
Prototype's Ajax Updater new Ajax.Updater( 'id', 'url', { method: 'get' } );
Ajax.Updater can be used if you want to fetch a file via Ajax and inject its text/HTML contents into an onscreen element additional (1st) parameter specifies the id of the element into which to inject the content
Ajax code bugs (10.2.5) When writing Ajax programs, there are new kinds of bugs that are likely to appear. Nothing happens! The responseText or responseXML has no properties. The data isn't what I expect. How do we find and fix such bugs?
Debugging Ajax code
Net tab shows each request, its parameters, response, any errors expand a request with + and look at Response tab to see Ajax result
XMLHttpRequest security restrictions
cannot be run from a web page stored on your hard drive can only be run on a web page stored on a web server can only fetch files from the same site that the page is on www.foo.com/a/b/c.html can only fetch from www.foo.com
10.3: XML 10.1: Ajax Concepts 10.2: Using XMLHttpRequest 10.3: XML
What is XML? XML: a specification for creating languages to store data; used to share data between systems a basic syntax of tags & attributes languages written in XML specify tag names, attribute names, and rules of use Example: XHTML is a 'flavor' of XML an adaptation of old HTML to fit XML's syntax requirements XML specifies tag syntax: HTML contributes tag names (e.g. h1, img) and attributes (id/class on all elements, src/alt on img tag)
An example XML file Tove Jani Reminder Don't forget me this weekend!
begins with an xml header tag, then a single document tag (in this case, note) tag, attribute, and comment syntax is identical to XHTML's
What tags are legal in XML? any tag you want; the person storing the data can make up their own tag structure example: a person storing data about email messages may want tags named to, from, subject example: a person storing data about books may want tags named book, title, author 'Garden State' XML: if you're feeling unoriginal, make up some XML nobody's ever done before quirkleblat
Schemas schema: an optional set of rules specifying which tags and attributes are valid, and how they can be used together used to validate XML files to make sure they follow the rules of that 'flavor' XHTML has a schema; W3C validator uses it to validate doctype at top of XHTML file specifies schema two ways to define a schema: Document Type Definition (DTD) W3C XML Schema (we won't cover schemas any further here)
Uses of XML XML data comes from many sources on the web: web servers store data as XML files databases sometimes return query results as XML web services use XML to communicate XML languages are used for music, math, vector graphics popular use: RSS for news feeds & podcasts
Pros and cons of XML pro: easy to read (for humans and computers) standard format makes automation easy don't have to 'reinvent the wheel' for storing new types of data international, platform-independent, open/free standard can represent almost any general kind of data (record, list, tree) con: bulky syntax/structure makes files large; can decrease performance example: quadratic formula in MathML can be hard to 'shoehorn' data into an intuitive XML format won't need to know how for this class
Fetching XML using AJAX (template) new Ajax.Request( 'url', { method: 'get', onSuccess: functionName } ); ... function functionName(ajax) { do something with ajax.responseXML; }

Web Programming Step By Step 2nd Edition Pdf Download Full


ajax.responseText contains the XML data in plain text ajax.responseXML is a pre-parsed DOM object representing the XML file as a tree (more useful)
Using XML data in a web page custom flavor of XML needs to be converted to XHTML, then injected into page we will transform using Javascript XML DOM basic technique: 1. fetch XML data using Ajax 2. examine the responseXML object, using DOM methods and properties 3. extract data from XML elements and wrap them in HTML elements 4. inject HTML elements into web page other ways to transform XML (not covered): CSS, XSLT
Recall: Javascript XML (XHTML) DOM All of the DOM properties and methods we already know can be used on XML nodes: properties: firstChild, lastChild, childNodes, nextSibling, previousSibling, parentNode nodeName, nodeType, nodeValue, attributes methods: appendChild, insertBefore, removeChild, replaceChild getElementsByTagName, getAttribute, hasAttributes, hasChildNodes
XML DOM tree structure children computers ...
the XML tags have a tree structure DOM nodes have parents, children, and siblings
Analyzing a fetched XML file using DOM
We can use DOM properties and methods on ajax.responseXML: // zeroth element of array of length 1 var foo = ajax.responseXML.getElementsByTagName('foo')[0]; // same var bar = foo.getElementsByTagName('bar')[0]; // array of length 2 var all_bazzes = foo.getElementsByTagName('baz'); // string 'bleep' var bloop = foo.getAttribute('bloop');
Recall: Pitfalls of the DOM

Web Programming Step By Step 2nd Edition Pdf Free Download

We are reminded of some pitfalls of the DOM: // works - XML prolog is removed from document tree var foo = ajax.responseXML.firstChild; // WRONG - just a text node with whitespace! var bar = foo.firstChild; // works var first_baz = foo.getElementsByTagName('baz')[0]; // WRONG - just a text node with whitespace! var second_baz = first_baz.nextSibling; // works - why? var xyzzy = second_baz.firstChild;
Larger XML file example Everyday Italian Giada De Laurentiis 200530.00 XQuery Kick Start James McGovern 200349.99 Harry Potter J K. Rowling 200529.99 Learning XML Erik T. Ray 200339.95
Navigating the node tree don't have ids or classes to use to get specific nodes firstChild/nextSibling properties are unreliable best way to walk the tree is using getElementsByTagName: node.getElementsByTagName('tagName')
get an array of all node's children that are of the given tag ('book', 'subject', etc.) can be called on the overall XML document or on a specific node node.getAttribute('attributeName')

Brandon Call

gets an attribute from a node (e.g., category, lang)
Navigating node tree example // make a paragraph for each book about computers var books = ajax.responseXML.getElementsByTagName('book'); for (var i = 0; i < books.length; i++) { var category = books[i].getAttribute('category'); if (category 'computers') { var title = books[i].getElementsByTagName('title')[0].firstChild.nodeValue; var author = books[i].getElementsByTagName('author')[0].firstChild.nodeValue; // make an XHTML

Christine Lakin

tag based on the book's XML data var p = document.createElement('p'); p.innerHTML = title + ', by ' + author; document.body.appendChild(p); } }
A historical interlude: why XHTML? in XML, different 'flavors' can be combined in single document theoretical benefit of including other XML data in XHTML nobody does this most embedded data are in non-XML formats (e.g., Flash) non-XML data must be embedded another way (we'll talk about this later on) requires browser/plugin support for other 'flavor' of XML development slow to nonexistent most XML flavors are specialized uses
Why XML in AJAX? most data you want are provided in XML the de facto universal format the browser can already parse XML (i.e., XHTML) into DOM objects DOM only defined for XML-based formats, may not map directly to another format would have to manually parse a different format simple formats can be parsed manually from ajax.responseText most data are easier to manipulate as DOM objects than to parse manually
Debugging responseXML in Firebug
can examine the entire XML document, its node/tree structure