Interesting web sites

Here are some interesting sites that are not directly related to my work or my teaching.

Search engines, directories, reference
Words: dictionaries, thesauri, and more
Current events and politics
Art, music, movies, and popular culture
Literature and history
Science and research
Mathematics and logic
Engineering and technology
Graphics and information design
Programming and software design
Internet technology and milieu
Security and privacy
Coping with technology
Three great faiths
Geek culture
In a category by themselves

Recent updates listed here, older updates here, original version (2001) here. Use your browser's reload or refresh button to get the latest version. Most sections are longer than a screenful, keep scrolling. Some links appear in more than one section.

Search engines, directories, and reference works

(See also Words, Internet search)

Google search engine, directions and technical information, web service APIs, also cheatsheet.html, help/features.html, apis/index.html

Google history and assessment, excellent review by John Lanchester in LRB

Google (etc.) in the news (recent articles at top) (Google, Facebook and Twitter in Egypt) (Chinese firewall)
(Google, Yahoo etc. in China. NYT Magazine, Apr 23, 2006) (federal subpoena) (privacy, CNET blackball)

Usenet News searchable archive at Google (formerly at, also advanced_search?q=&

Internet Archive: Wayback Machine (retrieve vanished web sites)
for example*/

Wikipedia, an on-line encyclopedia written and revised by anyone interested, also wiki/wikipedia:Featured_articles, wiki/wikipedia:Welcome_newcomers

Wikipedia history, assessment, appreciation, and disenchantment

WikiHow, how-to manual that you can edit

Ask MetaFilter, questions and answers on all sorts of topics, for example popularfavoriteall, What-single-book-is-the-best-introduction-to-your-field-or-specialization-within-your-field-for-laypeople, What-are-the-most-wellwritten-textbooks, Classical-classics, Contemporary-Art-History-and-Theory, WWI-what-happened, You-are-Socrates-I-am-Menos-slave, Past-performance-future-results-ampc, Recommendations-for-PC-drawing-tablet, How-can-I-break-into-an-empty-filing-cabinet, Oh-so-youre-a-insert-profession-here-How-insert-whacky-generalization-and-misguided-curiosity-here, What-are-some-good-songs-to-bring-to-my-human-dissection-class, Help-me-unlock-the-power-of-the-four-chords, The-Old-Man-and-the-C-Drive, How-is-webbe-formd, Whats-the-bless-your-heart-of-your-field, Help-Really-Cool-Nonprofit-Reptile-Park-Not-Have-Unusably-Sucky-Web-Site, Whats-the-Best-Thing-Youve-Ever-Seen-Here, What-are-the-most-interesting-obituaries-from-the-NYTIMES-or-ECONOMIST, Smells-that-dont-exist-anymore-or-are-harder-to-find-in-real-life, Nasty-harsh-scathing-literary-criticism, Many-many-manifestos
etc., etc., ... also
founder's comments:

Well-written academic books, great first paragraphs, 2007/02/19/the-challenge-of-affluence/

Open Directory Project, a Yahoo-like directory maintained by volunteers (no ads)

WWW Virtual Library, another noncommercial directory

Ibiblio (formerly Sunsite and Metalab), noncommerical directory in magazine format

Invisible Web, resources said to be unreachable by ordinary search engines

Useful sites for reporters, researchers, and other nosy people

Internet FAQ Archives, frequently asked questions, with answers

Words: dictionaries, thesauri, and more

(See also Reference)

For definitions, just (for example) define:induction in Google search box

Google Books Ngram Viewer

OneLook dictionary search with links to many general and specialized dictionaries, wildcards, reverse dictionary, also ?w=induc*, ?c=faq#patterns, reverse-dictionary.shtml dictionary + thesaurus tree browser

MyEtymology, word origins

Double-tounged dictionary, slang and colorful expressions, for example index.php/citations/violin_hickey_1/

Wordie, "like Flickr but without the photos", for example lists/7519?s=a&d=a

Wordnik (formerly Wordie) goes big time

Lexical Freenet

Internet anagram server

How to write a spelling corrector

How Google Translate works

Automatic computer science paper generator, links to other generators

Magnetic poetry

Current events and politics

Now, daily, weekly, topical, historical, organizations and projects




Google news, also intl/en_us/about_google_news.html


NY Times tag cloud

BBC day in pictures

Boston Globe big picture (new on Mon Wed Fri)

Wikipedia current events

Arts and Letters Daily


n + 1, especially n1br

SciTech Daily

Boing Boing

Slashdot "politics for nerds"


New Yorker, current issue, many but not all articles online

New Yorker archive search, with example,%20score%20desc&queryType=nonparsed

New Yorker, RSS feed of last several (four or five) issues

New Yorker article database, Nov 2003 -- Nov 2005, also Sept 2001

New York Review of Books: many but not all articles online, well-indexed archives back to 1963

The Onion

The Onion: 25 years of favorite stories

Ironic Times


About weblogs (defunct, interesting anyway)

Blogs on politics and current events, many examples linked and reviewed (August 2009)

Weblog enthusiasm and disenchantment
also (with comments)

"The Web We Have To Save", blogs' audiences have been captured and domesticated by Facebook et al. (2015)
(by an Iranian blogger jailed for his activities in 2008, written after his release in 2015)

Google history and assessment, excellent review by John Lanchester in LRB

Atlantic Monthly: archives and notable articles

Harper's archive, 1850 -

Phil Agre's newsletters: technology and society, politics, design, philosophy, also urls.html (RRE notes 1996-'02, urls '98-'04) (RRE 2001 -- 2005) (RRE 1994 -- 2004) (RRE 1994 -- 2000), also back.html (TNO 1994 -- 1996) (Phil Agre is missing) (Phil Agre found)

Historical but always relevant

Orwell on political writing, very pertinent to other topics also
Other writings:, for example
essays/joys/english/e_joys (ghastly boarding school, childhood terrors, snobs and hypocrisy, search for contradicted one another, sheer vulgar fatness, lunatic misunderstandings)
essays/lear/english/e_ltf (Tolstoy, religion vs. humanism, search for exuberance, does not know, rob others, humanist assumption, not a saint)
reviews/swift/english/e_swift (Swift, pessimism, envy, and reaction, search for hates the very idea, his horror, totalitarian tendency, Tory anarchist, weak and ridiculous, endless harping, terrible intensity)
reviews/gandhi/english/e_gandhi (Gandhi, saintliness vs. humanism, search for noble one, one must choose)

100 American speeches (text, many with links to MP3 recordings)

Martin Luther King, lesser known speeches, also RFK on MLK (text, with links to MP3 recordings) (April 4, 1967, on Vietnam) (April 3, 1968, in Memphis) (April 4, 1968)

Organizations and projects

Electronic Frontier Foundation

ACM public policy committee: intellectual property, security, privacy, cryptography, Internet governance, also

Hacktivism and human rights: using technology to fight abuses and protect people

Scorecard and Action Network: reporting on pollution, influencing decision makers

Organize to win: a grassroots activist's handbook

WorldChanging, enviro-tech blog

The arts and popular culture

Painting and drawing, music, movies, people

Painting and drawing

Paintings, indexed by artist

Museum of online museums

Comics, samples indexed by artist (dealer's site, but low-key and helpful)

Cartoonists' sketchbooks: Anders Nilsen, Jeffrey Brown, Kate Beaton, Ruth Modan, Chris Ware

Wally Wood's 22 panels that always work, also archives/2006/08/wally_woods_22.html

Drawn! Illustration and cartooning blog

(More comics in geek culture)

Paul Klee's notebooks

Seeing.Thinking.Drawing. Frank Chin's blog: architecture, Seattle, and more

Books on modern art history, criticism, theory


(See also music synthesis)

100 most important American musical works of the 20th century, chosen by NPR staff (RealPlayer)

100 essential jazz albums, chosen by David Remick and Richard Brody

20th century classical music, audio clips for works discussed in The Rest Is Noise

Classical music appreciation, recommendations and recordings, 290584/Help-me-find-a-way-in-to-classical-music

Classical music performances on YouTube

Chord progressions, music theory, also determine-key-from-chords

Map of musical influences, by Ethan Hein

Thelonius Monk quartet with John Coltrane at Carnegie Hall (Flash)

Thelonius Monk's musical advice (scroll down for easier-to-read transcript)

Grateful Dead: 3000 complete shows at Internet archive, other Dead lore

Blues, gospel, folk recordings and photos from the Library of Congress (MP3, Real Audio, others), also lohtml/lohome.html, hrhtml/hrhome.html

All Music Guide, discography (commercial, but comprehensive and well-organized), also

Finale, WYSIWIG music editing and typesetting

Lilypond, non-WYSIWIG music editing and typesetting

abc, text-based music notation, popular for folk, traditional, and early music, tune collections tunes/

The Session, online tune exchange, large community, nice design, abc notation

Recommendations from an eclectic musician, with links to recordings etc.

Petrucci, public domain music library, over 300,000 scores in many genres
for example,_James%29

Mutopia, free sheet music, typeset in Lilypond (above), over 1900 scores

Music manuscript paper

Music notation, in BibliOdyssey

Music Thing, synthesizers and more


Movie databases, search in many categories, some entries offer preview clips

Many classic movie clips have been posted to YouTube, for example...

Classic movie trailers, clips, and stills (RealPlayer or Windows Media Player)

Movie trailers (many broken links and ads, Quicktime)


BBC audio interviews: artists, writers, performers (RealPlayer), also books/features/, music/features/

Fresh Air radio interviews: current show, archive, search (RealPlayer, Windows Media)

This American Life radio episodes, recommendations from staff and others, also 90513/Best-episode-to-introduce-someone-to-This-American-Life

Literature and history

Writing, history


Digests, journals, authors, classics, poetry, essays


Arts and Letters Daily (many book review journals linked at left column, scroll down)

Literary Hub
for example haruki-murakami-the-moment-i-became-a-novelist/

Open Culture



(see also Weeklies)

New Yorker, also contributors
for contributors not listed, try:, etc.

New York Review of Books: many but not all articles online, well-indexed archives back to 1963

n + 1, especially n1br

McSweeny's, also columns/lists/

Best magazine articles (boldfaced title links directly to article, alternative to Instapaper at "read" links)


Paris Review, interviews with writers back through the 1950's

Course syllabi by famous authors

Handwritten outlines of famous literary works by their authors

Letters of note, an archive of fascinating correspondence


On-line books

100 best first and last lines from novels, also PDF/100_Best_Last_Lines_from_Novels.pdf

Best sentences and first and last lines, several collections, even more in comments

The 200 Greatest Adventure Novels of All Time, including wonderful cover art

Well-written academic books, great first paragraphs, 2007/02/19/the-challenge-of-affluence/

Punctuation in novels

Pynchon's Gravity's Rainbow synopsis with artwork


Pessoa's Trunk, seventeen different tranlations of a Portuguese poem into English

Essays and criticism

Why study literature, how to teach it (and how not to)

Scathing reviews


Ancient Rome, the evidence

Old Seattle, I-5 construction

Science and research

(See also education)

Breaking news, journalism, careers, DIY, literature, biology, chemistry, physics, astronomy

Breaking news

Nature, news, current issue contents

Science, news, current issue contents

Wikipedia current science and technology events

Slashdot science

Journalism, popular science writing, teaching, philosophy, history

SciTech Daily

American Scientist (nearest thing to the Scientific American of old)

Elegant experiments

Why teach science at universities?

What is a scientific theory?

What is the purpose of a scientific theory?

Core scientific knowledge in one paragraph (search for Four centuries ago ...)

E. O. Wilson introduces Darwin, comments on religion and behaviorism

Explanation and advocacy for a scientific worldview in an essay by an English Lit prof

Scientific, artistic understanding contrasted (search for science satisfies a very special hunger ...)

Scientific, journalistic reporting contrasted (scroll down to last three paragraphs: I'm reading a book ...) (Eric Pepke)

Journalist's plea for better science reporting

Assessing science stories in the news, for example #1608866, #1608966 #1608968 #1608971 #1609588

Talking to reporters (much good advice in replies despite snarky title)

Dear Science column in The Stranger, Seattle alt-weekly. Also, author's blog

Bad science journalism,3858,5279802-117799,00.html

Bad science textbooks

Bad science (errors in experiment design and interpretation)

Bad medicine (limitations of epidemiology and observational studies, compared to experiments and controlled trials)

Research studies that looked good, but were later shown wrong

Milieu: funding, publication, review, collaboration

Dan Gezelter's syllabus for Science 2.0

Michael Nielsen's blog, bookmarks

Careers and lives

(See also math, programming, and education)

John Sidles: physics career aptitude test (actually a long essay, also pertinent to other fields)
(scroll down about 10% past other stuff, persevere through poor formatting, much nicer original is lost)

Giving an academic job talk

Working in the lab

Richard Hamming: career advice based on experience among the great and the rest. "What is the difference?"

Tone and attitute in scientific debate, and elsewhere

Coping with disappointment, etc.

Geniuses, crackpots, and others (David Ashley) (Dennis Feldman) (john baez) (Nick Halloway, scroll down past included text) (empath) (Daryl McCullough)

DIY science

(See also in engineering and hacks)

Toys from Trash: simple DIY science toys and experiments, for example induction.html, reactance.html, etc.

Science toys you can make, with detailed instructions and photos, for example

A simple spectrometer built from a CD and a cereal box, with experiments

Weigh the earth in your basement: measure the gravitational constant

Keiki gels: electrophoresis with drinking straws and food coloring

Synthetic biology lab in a closet for $470 (scroll down to fig. 5 near end)

Citizen Science Quarterly

Biotech Hobbyist magazine, interview with contributor

Scanning Tunneling Microscopes (STM)

Scanning Electron Microscope (SEM)

Cyclotrons on a shoestring, also cyc2.html


PubMed (including MEDLINE and much more), also gquery/gquery.fcgi

US Patents

Biology and bioinformatics

Structure of DNA, original papers by Watson, Crick, Franklin, Wilkins, Avery, others

Entrez, life sciences search engine

Bioinformatics for dummies (scroll down for links to databases and resources),page-1.html

Centre for Computational Drug Discovery: P2P search for anti-cancer drugs


Compound Interest, everyday exploration of chemical compounds, also infographics/


The Feynman Lectures on Physics, I_toc.html
the making of:

Leonard Susskind: The Theoretical Minimum, courses on modern physics

Gerard 't Hooft: lifetime physics syllabus, with links to online course notes
older version

Robert Geroch: mathematical physics lecture notes, including several books

Newton: college notebook (1664-5)

Einstein: handwritten notebook on relativity (1912-14)

Paul Dirac: handwritten thesis manuscript and notes (1926)

Gordon Kane: the standard model, the Higgs boson, supersymmetry, and string theory

David Mermin: introduction to quantum mechanics concepts and notation for quantum computing

David Gross: does physics have a future? 25 questions (formerly, also help/, blurb/pg01unesco.html

Standard Model Langrangian, said to describe everything except gravity

Simplification in physics

Reasoning from first principles

Textbook exercises vs. problem solving

Simple experiment + reasoning gets deep result (DIY Cavendish)

Interpretations of quantum mechanics

Quantum mechanics in popular culture, a sighting

also, 2010/03/the-snarxiv/


Astronomy picture of the day archive, with explanations and links

NASA Visible Earth

Cosmic distance ladder, how we figured it out (about...) (slides, 4.3 MB pdf)

How do we know the Earth orbits the sun?

Scale of the universe, animation and tool

Logarithmic maps of the universe

Mathematics and logic

Buzz Books Exposition Provers Foundations Teaching Culture


Animated factorization diagrams

Mathoverflow, questions and answers. Also, a review., for example questions/4994/fundamental-examples, 8846/proofs-without-words, 23478/examples-of-common-false-beliefs-in-mathematics

Stackoverflow CS Theory B: logic, semantics, automata, theory of programming

Polymath, massively collaborative mathematics: news story, details, background

Tricki, a wiki for mathematical techniques at university level and beyond, for example tricki/map

Terry Tao: blog, for example 2010/10/21/245a-problem-solving-strategies/, 2010/10/18/the-no-self-defeating-object-argument-revisited/, 2009/09/03/the-cosmic-distance-ladder-2/, etc.

Dick Lipton: blog, for example 2010/11/30/notation-and-thinking/

Timothy Gowers: blog, for example 07/25/what-is-deep-mathematics/, 2008/08/16/just-do-it-proofs/, etc.

Scott Aaronson: blog, for example ?p=327, ?p=303, etc.

n-Category Cafe, various authors: blog, for example 2012/12/rethinking_set_theory.html

M-Phi, various authors: blog, for example 2011/10/inconsistency-of-pa-and-consensus-in.html

The Bourbaki Code, Lieven Lebruyn: blog

Notices of the American Mathematical Society, current issue (and all issues) etc.

Rejecta Mathematica: journal of papers rejected by peer-reviewed journals, also frequently-asked-questions


Chicago undergraduate mathematics bibliography, recommended by its graduates

"How to Become a Pure Mathematician (or Statistician)", recommeded readings

Hacker News contributors' recommendations, observations about learning math (Spring 2014) (Fall 2014)

Exposition, essays, and opinions

Math atlas: brief surveys of college and graduate level topics, with links

Timothy Gowers: essays, also mathsindex.html

Edsger W. Dijkstra: essays, many about mathematics, for example EWD538.PDF, EWD1294a.PDF, EWD1300.PDF

Doron Zeilberger: opinions, for example Opinion65.html

David Eppstein: computational geometry, recreational math, art, science, games

Justin Mullins: beautiful equations

Theorem provers

Formal proof: special issue of Notices of the AMS

Freek Wiedijk: formalizing 100 theorems, also 300 theorem provers, also digimath

HOL theorem prover: history, command summaries, also summary.txt

Coq theorem prover applied to programming language theory, for example sf/Basics.html#lab25, also papers/LambdaTA.pdf

Programming language theory: notation, semantics applied to "featherweight C"

Simple compiler verified with HOL4, with links to pertinent literature
explained for HN

Vdash: a formal math wiki, also e-club.pdf, ignite.pdf

Machine obstructed proof: a novice's experiences

FLiP: logical framework in Python


Logicomix, for example ...#twoj_fragment1-4

Lambda calculus, Church encoding, Y combinator explained with Ruby code

Philosophy and theoretical computer science, course at MIT (links to many readings) (instructor's blog and student comments)

Logic, sets, infinity (Zeisel) (torquemada) (Rubin) (bobg0) (Beldin) (Asselin) (klausness) (crocomancer) (Enderton) (Chapman) (Megill) (Seaman) (Tangent60) (Oliver) (Maimon)

Logic and madness

Teaching and learning

What is it like to have an understanding of very advanced mathematics?

Learning math (see also programming and education) (on practice and effort) , etc. (on memorization, flabdablet and many contributors), also #1269359, etc. (Class Goat, grouse, and many contributors) (john baez) (Chris Hillman) (Keith Ramsay) (Torkel Franzen) (Randy Poe) (Clive Tooth) (Ron Bloom)

Explaining calculus

Students' and teachers' difficulties (see also in programming) (Chris Hillman, don't miss note on Tolstoy at the end) (Lee Lady) (Keith Ramsay and David C. Ullrich) (Gary Martin) (goodyear) (Richard Fateman), for example #1165133, #1165335, #1165165, #1165465 (onoclea and many contributors) (Tachoh and many contributors) (Ron Bruck) (labuser)

Math books (Lieven Marchand) (Josh Kortbein) (Lee Rudolph) (Achava Nakhash) (Robert Hill)


History, people, humor (Doxiadis, et al.) (McCaughan) (Taylor) (Chernoff and others, entire thread) (Long and others, entire thread) (Buyske) (Henry Cohn via danah boyd) (Carvin) (Keith, via Stewart) (Winsor and Parry, via Brooke) (Angluin, via Enderton) (Rodgers)

Animated graphics

Mathematical tattoos




Euclid in Greek (for translation click load at top right)

Engineering and technology

Theory, problem solving, electronics, signal processing, music synthesis, computer architecture, computer hardware, DIY


Concise review of systems, circuits, basic electronics, also WhaKnowSys.html

Transfer functions, block diagrams, feedback, also node14.html, node19.html

Digital filters

Problem solving


Units, dimensions, orders of magnitude, also 485, 526

Examples and techniques (engineering vs. science), for example #1445725, etc.
textbook reviewed


Handmade computer, projects built from discrete components and small chips: words, drawings, photos, video, also category/tools/ and welcome/, etc.
slides, see tiny links on many slides

Simple but complete handmade computer built from discrete components, with hand-lettered design documents
Built from scratch ... using some of the lowest level, most primitive parts around (circa 1970).
An architecture of my own design ... programmable microcode so that the machine language is reconfigurable., for example article.txt, notes_page3.jpg, photo2.jpg, notes_page7.jpg

Graphics card designed in Verilog, implemented in FPGA, built on custom circuit board
I had to learn how to design a PCB and get it manufactured, how to work with SMD parts,
how to program in Verilog and synthesize code for an FPGA, how SDRAM and DVI/HDMI work ...
The Amiga is probably the last 32-bit personal computer that is fully understood, documented and hackable.
HN comments with even more advice

Home electronics workshop, instruments and storage described, with photos

Simple DIY pocket headphone amplifier with detailed instructions
schematic misc/cmoy-tangent-sch.pdf, layout misc/mini-cmoy-layout-0150.pdf
HN comments

4-bit processor in 17 chips, TTL with microcode in ROM, on 5 x 4 inch perfboard
HN comments

Custom 8-bit processor built with TTL on solderless breadboards (short on details)

Electronic circuits cookbook, for example using op amps and flip-flops
for example opampvar.html#c1, and jkflipflop.html#c1

FPGA projects, for example f2008/tor2/main.html

Notes on Verilog programming, with links to language references and other resources

MyHDL, hardware description and verification language in Python, for example examples/flipflops.html

Signal processing

GNU Radio, for example TutorialsWritePythonApplications

Software-defined radio products recommended by HN contributors, October 2015

DIY Cellphone

Homemade GPS receiver

Music synthesis

120 Years Of Electronic Music, for example the-electronic-sackbuthugh-le-cainecanada1945/

Audio, music

SuperCollider real-time audio sythesis language: tweet-sized compositions, explanation

Music programming languages
explained by kaoD on HN

Music Thing

Analog synthesizers (many links)
explained at
via 52862/The-Worlds-Cutest-Synth, also links to similar devices
via, with links to more

Homemade analog synthesizer on Mr. Rogers (1968)
HN comments, more links

Javascript piano, also 6270040 (months later)

Moog synthesizer in a browser (links to other synthesizer-in-a-browser) (code, web audio links) (more web audio links)

Computer architecture

(See also

Which Machines Do Computer Architects Admire? (2001)

Von Neumann's first computer program, explained by Don Knuth (1945, article written 1970)

Programmers' Handbook for Manchester Mark II, by A.M. Turing (1950) (images) (OCR, more about Mark II)

Univac hardware, applications, operations, and architecture (1951), instruction set: univac_cheatsheet.jpg

IBM 1401 architecture, programming, operations, and economics -- very strange to modern eyes (1959)
A fine printer connected to a puny processor. ...
Allowed useful programs to be punched onto a single card, directly in machine language.
Simplest boot sequence: read a card into locations 1..80 and branch to location 1. -- Dick Sites

Bob Barton's 4-page paper on the stack-based B5000 architecture for executing ALGOL (1961)

James Thornton's "Elephant Book" on the CDC 6600, other links (1963 - )
It was the first RISC -- the RISC philosophy was laid out chapter-and-verse by Thornton in the "Elephant Book" -- Jim Smith (Elephant book, 1963) (Thornton's design textbook, 1970) (Grishman's assembly language textbook, 197X?) (IBM president's "janitor memo") (Alan Kay remembers Seymour Cray and the CDC6600) (summary, many more links)

PDP-10: instruction set, TENEX TOPS-20 and ITS OS, PARC's MAXC clone, recent PDP-10/X on FPGA and Incompatible_Timesharing_System, also arch10x.pdf

PDP-10 assembly language coding example in literate style: TECO editor (1970-78)

Books on architecture of classic computers (Manchester Mark I, B5000, System/360, PDP 8, 10, 11, more), Computer_Engineering/

Brief descriptions of some influential architectures: PDP 8, CDC 3300 and 6000, 6502, 8088, ARM (pdf, 4 - 8 pages each), CDC-3300_and_6000.pdf, 6502_processor.pdf, 8088_processor.pdf, ARM_processor_intro.pdf

Nova, popular 1960s-70s minicomputer, architecture description on p. 7 and p. 12+ of brochure in first link
A "clean machine," a rare example of a truly optimal design -- complex, but no more complex than necessary. -- Paul E. Ceruzzi
Instead of having 50 instructions to do various types of mathematical type things, they had one instruction. -- Steve Wozniak
A simple machine that still has a lot to teach us, since it was arguably the first commerical RISC machine. -- Chuck Thacker (1968 advertising brochure, don't miss!), example: PL.html (emulator)

6502 microprocessor history (1975 – ), introduction, data sheet, opcode map, reference, Verilog, C, lore.
The historic, once very popular 6502 makes a simple yet practical and applicable introduction to computer architecture. (motivation, history) (introduction)
also, also 6502/OpMap.htm, also 6502/ (data sheet, opcode map, other lore) (reference) also at (Verilog model) (C simulator) (Python simulator)

6502 instructions, address modes, and execution cycles explained, with an Apple II example

6502 assembly language programming tutorial with emulator and development tools in the browser

6502 architecture implemented in 74HC logic gates, with microcode in EPROM, especially blob/master/microc/microcode

Visual 6502: transistor-level simulator (in Javascript) inferred from microphotographs of an actual chip (2010)
notes on tutorial:
hand-drawn circuit diagrams:
overflow flag circuit in detail
HN comments on previous link

Neurophysiology-style experiments performed on transistors in the Visual 6502
Could a neuroscientist understand a microprocessor?

6502 architecture implemented in 3218 discrete transistors (4304 parts in all) on a 12 x 15 inch four layer circuit board
Many HN comments

6502 awesomeness explained (on p.21) by Sophie Wilson (architect of the ARM)
These high-end processors (68000, 80286, 32016) with their clock rates twice the 6502s
with their bus widths twice the 6502s were actually, in many circumstances, slower.
... they didn't use the memory system effectively. On the 6502 ... each cycle is a memory access.
We became convinced ... that memory system bandwidth is direct predictor of system performance.
But ... back then you could have complete single-cycle random access to any byte of memory, and the 6502 relied on that.

See also KIM-1, Apple II, etc. in Computer hardware and systems below.

Tiny CPU in a CPLD (smaller than an FPGA), with a minimized 6502-like instruction set, also 2010/04/18/tiny-cpu-architecture/

ARM processor history, variants, programming (history) (history) (variants), also ARM_Cortex-M#Instruction_sets (variants) (programming model), start at ARM_processor_intro.pdf (programming, intro) (programming, overview, variants) (programming, thorough) (reference card, Thumb only)

ARM1 chip described and explained, many references and links at the end

X86, opcode and instruction reference

Exploring X86 with a C compiler and debugger, 7-understanding-c-by-learning-assembly

X86 is a high-level language, huge difference between architecture and recent implementations

X86 assembly language coding example in literate style: webserver

Y86, pipelined x86-like processor design from CMU, including Verilog, ch4-preview.pdf, waside/waside-verilog.pdf, formal verification

RISC explained and discussed on HN

CISC and RISC, John Mashey's explanation with detailed comparison of many architectures

A Brief History of Microprogramming by Mark Smotherman, with more about CISC and RISC

RISC-V, open source architecture, implementations, and tools with impressive pedigree
".. the fifth major RISC ISA design from UC Berkeley (after) RISC-I, RISC-II, SOAR, and SPUR..." (summary) (review, motivation, explanation) (an implementation) (spec)

Tiny Computer for Teaching, Chuck Thacker's 32-bit RISC for FPGA in two pages of Verilog
"This approach was first employed in the original Nova, a simple machine that still has a lot to teach us ..."
different version with assembler and sample program in Thacker's chapter here:

Niklaus Wirth's CPU designs for FPGA, also Ch 16-17 here: ProjectOberon/

J1 Forth CPU for FPGAs, "probably close to the smallest possible useful CPU", paper j1.pdf, Verilog j1.v, IP ip.fs.html
  J1A built with IceStorm open source FPGA toolchain, runs on tiny Lattice ICEstick

BrainF* machine, homebrew CPU in 17 small ICs (mostly 74HCxxx)

Computer hardware and systems

(See also
operating systems and programming)


Don Lancaster's TV Typewriter (1973)

Archive of early microcomputers: newsletters, articles, manuals from the 1970s and early 80s, also systems.htm


The first 6502 computer (1976): KIM-1 was very simple, very cheap yet complete and self-contained.

Hand-assembled, handwritten 6502 machine code for KIM-1

Chess in 1K for KIM-1 (1976)
"If you are an above average player, you may find that the MICROCHESS program is below your level ..."
manual, source: Kim-1Microchess.html, downloadable source: Microchess6502.txt
hex machine code: Kim-1Microchess.html#25

KIM-1 laboratory control application (1977-80) also here

KIM-2: proposed KIM-1 replica, with discussion of difficulties recreating old hardware (1999)

Micro-KIM: KIM-1 replica with 6502 and other mostly original components (2007)
(does not include the fifteen I/O ports that made KIM-1 a self-contained controller), also files/mkmanual.pdf

KIM Uno: simple but functionally accurate KIM-1 replica using Arduino Uno with atMega328 emulating 6502 (2014)
"will run on any Arduino ... without keyboard and LED display ... over the serial port"!kim-uno-summary/c1uuh
also #!kim-uno-details/c1alo (at page bottom, download emulator in C including KIM-1 ROM contents)

Apple I and II

Steve Wozniak, long interview about early experiences culminating in Apple I and II
When you design with very few parts, everything is so clean and orderly you can understand it more deeply... you have fewer bugs.
All the best things I did at Apple came from (a) not having money and (b) not having done it before, ever.
I would type the (hex code) in by hand. ... I had no tools. ... I know what's going on better (without) a tool.
I designed two computers and (etc.) ... I wrote a Basic and (etc.) ... and I did this all moonlighting, in a year.
(The Apple II) had all these things and not one bug was ever found. Not one bug in the hardware, not one bug in the software.

Steve Wozniak's monitor for Apple I, in 254 bytes

Steve Wozniak's "brilliant and classic", "beautiful" disk controller for the Apple II
See also Woz' comments about 80% down in interview above also woz-machine-hw-sim.lisp, also #4303936

Homemade Apple II clone built on a prototyping board with wire wrap in 1979
I desperately wanted an Apple II ... but $2000 was just too much money.
I helped a bit, but my Dad did most of the work ... late into the night for months.

Other 6502

6502: three-chip system (with dual-port RAM and video) on a solderless breadboard (2013)
"I don't have any schematics ... it was all improvised on the fly ...", also final-words-on-the-3cc

6502 systems brought up and explained chip-by-chip, with diagrams, photos, videos, code (first in a series) (a different series) (yet another series, with SD card)

6502 in an FPGA on a tiny board with I/O and a serial port (2013)
Xilinx XC3S50 running Arlet's Verilog core (see architecture above)

TGL-6502, emulated by 8 pin LPC810 ARM Cortex-M0+, construction details including retro case

Hack-a-Day 6502 projects, summaries and links, the 6502 microprocessor resource


Z80 on a solderless breadboard, details about clock, memory bus signals etc.
HN comments


68008 on a solderless breadboard running Linux, file system in one ROM and one RAM chip, also category/68katy/
HN comments, also 9712793

AVR and PIC microcontrollers and platforms

Arduino with AVR, Basic Stamp with PIC, for example #1802889

PIC hardware and assembly language programming tutorials
... today's CPUs are very complicated ... The microcontroller is a very simplified version ...

DIY laptop built from two Picaxe microcontrollers, with custom OS and development tools in 4Kb

AVR microcontroller and C compiler co-design
C compiler development was started before the AVR architecture and instruction set were completed.

Microtouch, homemade tablet computer built from AVR Atmega644 and 320x240 touch screen

VGA on Arduino Uno Rev 3.0 with no external parts, using second on-board CPU and serial shift register

8-bit AVR microcontroller emulates ARM, runs Linux (also refreshes DRAM in software)
The effective emulated CPU speed is about 6.5KHz ... It takes about 2 hours to boot to bash prompt ...

ARM microcontrollers

ARM on a breadboard
HN comments

Rust and C on ARM STM32 F4 Discovery development board
HN comments

Homemade book reader built from NXP LPC1114 (ARM Cortex M0) on LPCXpresso dev board and touch screen

Video game console built from super-cheap NXP LPC111X (ARM Cortex M0) on tiny LPCXpresso dev board
  video and audio signals are generated entirely in software

"Minimal viable text workstation" built from PJRC Teensy3 dev board (ARM Cortex M4)
  with custom OS + editor, PS2 keyboard, SD drive, USB, AES 256 encryption, VGA video generated by software

"Javascript Home PC" built from Espruino Pico (ARM Cortex M4) + DIY keyboard + VGA video generated by software

Other Microcontrollers

ESP8266, tiny microcontroller with Xtensa LX106 CPU, TCP/IP and WiFi, MIT or BSD-licensed toolchain

Raspberry Pi

Portable computer including WiFi built from Raspberry Pi with Kindle Paperwhite display
comments, alternatives

Raspberry Pi Zero and other models, rationale, applications (Nov 2015)
"... getting a PC to do something simple like turn a lamp on and off is really, really hard. Raspberry Pi is really good at that"
explanations #6299527, #6299552, #6299669, #6299312, especially 10634410 applications, RPi vs. Arduino, etc.

Raspberry Pi Zero headless setup (via WiFi USB adapter)
HN on alternative setup and OS

Raspberry Pi openness and hackability (2016) (2013) (2016)
HN comments


Novena open source laptop for hardware research and development, with onboard FPGA etc. (click on page title for more links)

Supercomputing on a shoestring

Performance, benchmarks (database of detailed results for many many models)

Network hardware and systems

Networks, including wireless


(See also in
science and hacks)

Make, for example archive/hacks

Computers and systems,4/Build-Your-Own,16/, for example review_print.php?p1=1907, for example #1257622 (high end), #1257439 (low end) (build vs. buy, low end, March 2007) (begun 1980's, revised Sept 2007) "The page has not been maintained since the last century", Category:Audio, Category:Video

Circuits, mechanical etc.

Make printed circuit boards at home out of old magazines (buying press-and-peel transfer paper might be easier)

How To Make (almost) Anything, MIT course


(See also math, programming, and science careeers)

Why learn, college, graduate school, teaching staff, lifelong, online, courses and events, serendipity

Why learn

Why learn about science (or math, or literature, or anything beyond your day-to-day needs)? (Steven Pinker) (bobs) (Brian Harvey), for example #900985, #900844, #901150, especially #901438, etc. (SansPoint and others) (troy) (Penny314)


Getting in: confessions of a college counselor (etc.)

Taking standardized tests

How to write, think, and learn (especially slides 108 - 120 on learning strategies and clear understanding, also 65 - 77, etc.)

How to learn in college (see also math and computer science, many comments here about humanities also apply to science, and vice-versa), #1618707, etc., also #1269359, etc., for example #1445725, etc., 380133, 380251, etc., #1262426, etc., etc., for example #1074772, #1074818, #1074928, #1075527, #1281767, for example #900985, #900844, #901150, especially #901438, etc., for example #2259232, also #2482392, etc., etc. (good advice for any kind of criticism), #1613290, etc., also #1529375, #1529392, #1529532

What is it like to have an understanding of very advanced mathematics? (... or many other subjects)

After graduation, also #1665320

Graduate school

(Much advice here applies to every stage of a research career.)

Choosing a grad school, and other advice from Alan Kay

Considering grad school, getting in

Wrong reasons to go to grad school (bulleted list about halfway down)

How to do research in grad school (MIT AI lab, pertinent to other fields, other places, other career stages)

Grad school disillusionment and realism: You need to focus on a concrete goal. ..., also 1807498, also aboutcomics.html

Preparing during grad school for a finding a job after


How to teach in college, for example #1165133, #1165335, #1165165, #1165465, #2544978 etc. etc.

Alternatives to traditional lectures, exercises, also rowid=78, also phys2010/phys2010_sp04/CTindex.html

Handling too much work in a new job

Constraints on finding research topics

Professional skills for academics, also leader.html, hosting.html

Academic politics and mores then and now, recalled by Alan Kay
-- consensus was not very important: really capable people explored
without worrying so much about what others thought (this is hard to explain
to people who've grown up in the intensely social and identity seeking world
of the last 20 years or so).


Understanding college faculty and administration politics and mores, for staff


Coping with disappointment, etc.

Confronting and overcoming discouragement

Staying sharp, also #1580062 etc.


The Siege of Academe (origins of Coursera, Udacity, edX etc., Sep 2012)

University courses and events

(see also
computer science courses)

MIT course web pages, in many subject areas (scroll down a bit to see the list)

MIT open courseware (still more course web pages), also OcwWeb/Global/AboutOCW/technology.htm

"Everything I learned at MIT" (four years of handwritten notes, scanned), for example 12_1.jpg

UC Berkeley courses and events (video, podcasts)

Research Channel, video archive of research talks from all over (Windows Media Player, etc.), also program/displayseries.asp?collid=172, etc.

Open University (UK), an unusually detailed and well-organized on-line catalog

Self-study and serendipity

Best introductory books, most well-written textbooks
What-single-book-is-the-best-introduction-to-your-field-or-specialization-within-your-field-for-laypeople, What-are-the-most-wellwritten-textbooks

Well-written academic books, great first paragraphs, 2007/02/19/the-challenge-of-affluence/

What's New in the UW Libraries Collections

Graphics and information design

Frequently updated, portfolios, unusual media, typography, information design, history and literature, web page examples, web page design and technology

Frequently updated

Weblogs, also jp/ (in Japanese)

Drawn! Illustration and cartooning blog

Design Observer

Information aesthetics

Rhizome: net art news

Linkdup: frequently updated directory of splashy websites

Kaliber1000: online design magazine

Generator.x: art from code

Metropolis magazine

Design firms, portfolios, galleries

Coudal Partners: design firm with links to many other graphics and design sites (some Flash), also archive.php, moom

Entropy8Zuper: web design firm (Flash)

Second Story Interactive Studios: promo for web design firm with links to many of their projects

Design Observer: Culture Is Not Always Popular, an illustrated lecture (exept the illustrations disappeared!)

Interactive Media Design Review: exhibit of web sites etc.



Unusual media

Vintage Japanese magazine covers

The Nonist, also archives/, links/

Book design, for example 2007/11/my-favorite-book-covers-of-2007.html

"Surely You're Joking Mr. Feynman" book cover designs, better than the usual one

BibliOdyssey, book art, here showing music notation

Marginalia from medieval illuminated manuscripts

Strange maps, an unusual view of history and literature

The Stranger, alt weekly cover art (nb archive links back to 1999)

Poster of the Week, rock club posters (mostly) in the Stranger, also 229406, 12744, 12338, many more at,

Patent Pending Industries, posters, T-shirts, links to similar sites, also shirts.php, links.php

Stanley Mouse and the sixties psych-rock aesthetic

Vintage classical music album covers

Soviet posters, with translations and explanations




Music Thing


Ministry of Type

Texter, draw with words (interactive demo, Javascript and HTML5 canvas)

Periodic table of typefaces

Fonts for programming, also 000969.html

Ramsey Nasser: programming in Arabic

Typesetting with LaTex

Mathematics typesetting with LaTeX

Pollen: web publishing tool written in Racket (Scheme dialect)
also Butterick's Practical Typography, made with Pollen

Wikiwand: alternative interface to Wikipedia with new design and typography

The Rise and Fall of Grunge Typography

"Learn to read Korean in 15 minutes", the alphabet explained in a comic, also Russian (click in comic to expand)

The First Roman Fonts, early calligraphy and printing with beautiful photos

Helvetica, a movie about the font

Hermann Zapf 1918 -- 2015 (beautiful calligraphy in video)

Songs about fonts

Information design

D3 library, gallery, and design

Information aesthetics

Visual complexity

Dead Reckonings: Lost Art in the Mathematical Sciences

Newsmap, also apps/newsmap

Linux kernel map, also about.php

Map of musical influences

GUI history, gallery, also site/map, screenshots, icons/components

Paper prototyping


History and literature

Essential graphics literature

History of graphic design

Edward Tufte: essays, forum on information design, also bboard/

Brief summary of lessons from Tufte's books

Design advice and links

Web page examples

Current web style (more links at page bottom)

Fresh Styles: book on web design, lot of links to interesting examples

Deep Sites: another book on web design, lots and lots of links to interesting examples

Test Pilot Collective FirstPage Archive: 1800+ graphic web pages (scroll down)

Paper prototyping: initial pencil-and-paper designs for some well-known web sites

Vows: nice page design for a programming tool

Web page design and technology

(See also Internet technologies)

The Web platform: Browser technologies (canonical sources on several dozen)

Mozilla developer center: browsers, plugins, related technologies

HTML, CSS, and Javascript briefly explained

HTML, CSS, and Javascript explained at length

HTML, CSS, and Javascript essential skills for web designers

Chrome browser explained in a comic book by Scott McCloud

Topics and resources for an introductory course on web page design, HTML + CSS etc. (May 2008)

Google: HTML, CSS, and Javascript from the Ground Up

Google Code how-to's and references on web page design

HTML primer, including a bit about CSS

HTML style advice, especially semantics vs. display

BBC Technical Standards and Guidelines, for web site development etc.

CSS advice for the artistically challenged

Design advice and links

HTML Dog: HTML and CSS quick references, also cssproperties/

HTML canvas element for graphics and animation

Texter, draw with words (interactive demo, Javascript and HTML5 canvas)
also (links to more experiments)

HTML color codes matching chart: CMYK, RGB, Hex

XHTML Character Entity Reference

Common Math Symbols in HTML, XML, TeX, and Unicode

Jakob Nielson: AlertBox, usability advice for web page designers

Webless initiative, Any Browser campaign: pleas and recommendations for simpler web pages, also rules-validated.html, antiweb.html, also ablinks.html

The website development process

Programming and software design

Buzz, languages, tools, systems, design, examples, projects, documentation, open source, teaching, courses, talks, careers, literature, history


Hacker News

Slashdot developers

Lambda the Ultimate, programming languages weblog, also node/view/13 (list of blogs)


Left Fold, weekly digest (inactive but back issues still available)

Questions and answers for programmers, system administrators, and users, technology, What-are-good-resources-to-learn-about-search-engine-architecture


2500 programming languages

HOPL: History of Programming Languages, canonical conferences and papers

John McCarthy: essentials of Lisp

Paul Graham's pages: Lisp, also avg.html, lisp.html

Peter Norvig's pages: Lisp, also Java and Python, also Lisp-retro.html
Python python-lisp.html, lispy2.html spell-correct.html, sudoku.html
also (Design of Computer Programs, in Python)

John McCarthy: The LISP Programming System (1960)

Henry Baker: The Legacy of Lisp

Lisp 50th birthday celebration

New Lisps: Arc (2001), PLOT (2006), Clojure (2008), cheatsheet

BASIC at 50, Dartmouth Time Sharing System

Niklaus Wirth 80th birthday symposium: Pascal, Modula, Oberon, computer architecture

Type systems (with several interesting links)

Programming language theory: notation, semantics applied to "featherweight C"

Simple compiler verified with HOL4, with links to pertinent literature
explained for HN

Introduction to LLVM + Clang compiler technology

Programming language Rosetta stones, also
syntax-across-languages-per-language/, also p.html, etc., etc. (and links therein) (anagrams in Python, Perl, Ruby, C, C#)
  (Python code, performance to compared six compiled languages)

Visual programming languages

Piet, the language whose programs look like Mondrian paintings
HN comments (interpreter in Python)

Language arcana
APL, J, K, for example APL.htm, also lisp.txt, also 11563803
Basic, TBuserMan.htm, TBEK.txt, LifeTB.txt, Advent.txt
C, 7-understanding-c-by-learning-assembly, also hint
CSS (links to many tutorials)
Emacs (TECO, Emacs precursor)
Forth, also jonesforth.s.txt, jonesforth.f.txt (.s is x86 assembler, with explanation)
Haskell, etc., for example C.html, Y.html (Gregg Michaelson) (Miranda, a Haskell precursor, vs. Scheme)
HOL, also summary.txt (John Harrison, Carl Witty)
Java (Marty Hall)
Javascript (links to many tutorials) (history, recalled by its creator), also survey.html , also mario.js
  also, also 6270040 (months later) (inspired by Smalltalk) (write any Javascript using only ()[]{}!+)
  also (pedagogical programming environment)
Lisp (John McCarthy) (Kaz Kylheku) (Paul Tarvydas) (Tim Bradshaw) (InvalidOrTaken, others) (Reinhard Gantar)
Lisp (CL), also lisp/cl-pitfalls (Jeff Dalton) (Edmund Weitz) (Jeremy H. Brown) (Brooks and Gabriel) (Skef Whorley) (Dan Weinreb) (Zach Beane)
Lisp (Clojure), assembler.clj, compiler.clj
Lisp (Elisp) (Christopher Browne)
Lisp (Scheme) (Ken Dickey) (Brian Harvey), also 2009/12/29/sicp-distilled/ (jao) (Scheme vs. Miranda, a Haskell precursor) (Patrick D. Logan) (James A. Crippen) (brlewis)
Lisp (CL and Scheme)
Lua, also source/5.2/, especially jucs05.pdf
ML (OCaml vs. Standard ML), src/ (tiny C compiler)
PHP, also #1293266 (starter PHP project, simple server-side include), also #rule7, and comments 7, 24, 26 (learning PHP), for example 436930, 437954, 436966, 437261, 437001, 437140, etc.
Python (reference) (awesomely dense), also #QuickRef (other versions), for example reference/, library/, howto/, modindex.html, glossary.html, also NumPy_for_Matlab_Users (SciPy)
Python (brief tutorials), also 101268/hidden-features-of-python, , 231767/the-python-yield-keyword-explained, 739654/understanding-python-decorators, etc. (graphics libraries, video editing) (also decorators) (decorator classes), also starttest.html (iteration, also testing) (context managers etc. for Python 2.x also)
Python (books), also (text for Berkeley SICP in Python, linked below)
Python (courses), also (MIT, uses Downey's Think Like a Computer Scientist text) (MIT, CS intro with Python, 24 videos), also index.html#_python_understanding (Google) (Design of Computer Programs, in Python, by Peter Norvig) (Berkeley, SICP in Python, text linked above), also (Bioinformatics) (SciPy/NumPy) (two-day introduction for women) (free class at a hacker space) (UW continuing education)
Python (examples), sudoku.html (also Perl, Ruby, C, C#) (Python decorators), also (yield, lambda), also Chapter_2 Chapter_3, for example examples/flipflops.html (one-line tree using autovivication)
don't forget
Python (pitfalls and arcana) ("evil default value pitfall") (more about mutable default values)
Python (assessment), for example 2009/01/pythons-design-philosophy.html (Python vs. Ruby, lots of details about both) (Peter Norvig and John McCarthy) (compared to 6 compiled languages) (object model frustates compilation to fast code, much more in parent) (popularity for scientific programming)
Python (Python 3) (Python 3 motivation and features) (Python 2.6 vs. 3, keeping up with versions in general) (useful additions to recent Python 3.x) (review of Python 3 features through 3.5)
Python (announcements)
Ruby (lambda calculus, Church encoding, Y combinator explained)
Regular expressions, also reanimator/ (Flash), archives/2006/02/reanimator
Smalltalk (Squeak) (Squeak, Pharo, GNU Smalltalk, Seaside in 2015) (Smalltalk UI in Emacs), 4228324 (motivation and legacy)
Unix find, grep, xargs
Unix shells
Z, also toolkit.html (download PDF from link on page)

Codefetch, Code Search, search for code examples from programming books and public repositories, also popular.html, examples.html, also stats/, also help/faq_codesearch.htm

Gawkinet, Internet programming language (new wine in old bottles)

Wheat, Internet programming language (interesting ideas, probably not ready for production), also talk/intro.html, talk/talk6.html

Programming languages and teaching (Alan Kay)

Programming language ecology (Pereira) (Jeff Dalton) (Blackwell) (Naggum) (Shebs) (Shebs 2) (Stroustrup) (Stroupstrup 2) (Pitman) (invalidOrTaken) (Griffith), for example 436930, 437954, 436966, 437261, 437001, 437140, etc. (eries and many contributors) (angersock and others) (chubot) (gjkood and others) (Gantar)

Conferences, also 2003, 2002, also 2004, also 2004, 2003, 2002, also ll2, ll1




TextEditors Wiki: links and lore about more than 1800 editors, also Family_Classifications, EditorFamilyTree etc.

HN comments, especially usersguide.html#guide (ed + browser + mail hybrid) (ed in asm from PDP-7 Unix)
about Readme, via (ed in C from PDP-11 Unix) (ed-like editor in Python)

teco (teco history, also about using early OS-less PDP1 etc.) (1978 in PDP-10 assembler, with explanation and comments) (1980s -- present in C)

emacs (command summary) (cartoon guide to emacs)
  also (introductory tutorial) (built-in emacs help)
  also (lessons of emacs source code)
  also (transcript, without slides) (M-x tetris, M-x finder-by-keyword) (emacs lisp)
  also (emacs bytecode) (Smalltalk UI in emacs) (Emacs Lisp animations) (emacs-like editor in less than 2000 lines of C)

emacs screenshots, search for emacs (long, many animated demos)

emacs history (emacs in 1977, Daniel Weinreb in 2008) (Bernard S. Greenberg on Mulics emacs, 1979 revised 1996, vast trove of tech details) (Richard Stallman, MIT AI Memo, 1979) (Richard Stallman, canonical reference, 1981) (Richard Stallman, 1970s -- 80s recalled in 2002)

vi, vim

vi history (original manual)
But fundamentally, vi is still ed inside. (Bill Joy, 1984)
I was trying to make it usable over a 300 baud modem. ... vi was written for a world that doesn´t exist anymore. (Bill Joy, 1999)

vi, vim clones and variants (Python) (edit bidirectional text, for Arabic and Farsi) ("bad imitation", C, 920 lines), with innovations:

emacs and vi
... programmability and modelessness. Those are two ideas which never occurred to me. (Bill Joy, 1984)
I have always detested emacs and vi -- baroque efflorescences totally out of harmony with the spirit of Unix. (Doug McIlroy, 2014)


acme (Tour of Acme, video, comments) (more comments) (a different video) (Acme in use, 2011) (Acme on the MacBook, 3-button mouse, 2012) (Wily, Acme clone, concise manual at onepage.html) (wmii, tiling window manager influenced by Acme) (Acme, other Plan 9 programs ported to Linux etc.)

IDEs and alternatives


Distributed version control (see also Subversion)
hg (choosing a dvcs for the Python project)
fossil, (uses SQLite)
git tutorials, also #3171499
git summaries
  (click in page to show commands, hover cursor over any, explanation appears at page bottom)
git reference
git explanation, git-from-the-inside-out
git svn equivalences
git in Python
git origins (Linus Torvalds)

Testing tools (mostly Python but with generally useful taxonomy)

Model-based testing, also mbt/, also research/pubs/view.aspx?type=Technical%20Report&id=912

Vows, Javascript testing tool (nice page design, too)

Java Modeling Language (JML), including testing tool

NuSMV: a new symbolic model checker, also NuSMV/papers/sttt_j/html/index.html

AskIgor automated debugging server, also dd/?lang=en

Nostalgia and frustration


Jim Gray's pages: large databases, astronomy

Design principles

(See also documentation, Internet architecture, examples)

"What is your definition of 'Design', Monsieur Eames?" (ca 1955)

Tim Berners-Lee's principles of design (1998--2002)

Butler Lampson's hints for design (1983)

Erlang team's programming rules and conventions (2000)

Jon Bentley's collection of proverbs and aphorisms (1985)

David Parnas' classic paper on modular design (1972)

Jerome Saltzer et al's classic paper on the end-to-end principle (1981)

Jon Postel's robustness principle (1979, via Nick Gall)

Fallacies of distributed computing by Peter Deutsch, comment by Tim Bray

"Extremist simplification" in the K programming language
"Reduce the problem surface by going for extreme simplicity in absolutely all areas"

Big-O analysis in web applications

Trygve Reenskaug's original notes on Model-View-Controller (MVC) (1979), an early implementation (1987, 1992), a web implementation (2007), criticism (2008), explanation and caveats (2009) (etc.)

Alexis Rosen's post on user interface design details that hugely affect acceptance (1989)

Martin Pilkington's page on database design and normalisation (also with nicer formating, comments, 2006)

Database normalization design tradeoffs (many contributors, 2008), for example #1319152, #1319416, #1319652
etc. ...

SQL design and programming advice

"Tico the fairy teaches the Princess how to simplify her data management..."

Bjarne Stroustrup's paper on object-oriented design and some alternatives (1995)
(Are there any good short introductions or summaries about object-oriented design? ...)

(... Maybe this is it.)

Object-oriented design: enthusiasm and skepticism (the same tension gathers around any method) (Rolf Schumacher) (Elliot), also 0203.html (Nancy Leveson) (Christopher Browne) (mechanical_fish, thomasmallen), 380862 (gruseom, daniel_yokomizo) (Dr. Richard Botting)

Design patterns (I'm underwhelmed but some think they are helpful), 380862, 380766, etc.

Phil Agre's design course, also week5.html, week10.html

Butler Lampson's and Daniel Jackson's systems course at MIT (2004)

Kaashoek's and Zeldovich's systems course at MIT (2012)

Daniel Jackson's pages: software design and analysis, also alloy, womble.pdf, fall00-lectures.pdf

Niklaus Wirth's history of "good ideas that turned out to be less than brilliant" (2006)

Design examples, case studies

(See also principles, computer architecture)

John McCarthy's essentials of Lisp (1980)

John McCarthy's original paper on the LISP Programming System (1960)

Timothy Brownawell's one sentence description of Unix (2006)

Doug McIlroy, Rob Pike, and Ken Thompson on Unix philosophy, summarized by Eric Raymond (1978, 1987, 2003)

Doug McIlroy on Unix evolution (2014)
Unix was born of a taste for achieving big power by small means rather than by unbounded accumulation of facilities.
But evolution, including the evolution of Unix, does not work that way.

Dennis Ritchie's early notes on Unix (1972)

Dennis Ritchie and Ken Thompson's classic paper on Unix internals (1973,78), also cacm.pdf

Xv6, a re-implementation of Unix V6 in ANSI C for x86, used in MIT 6.828 (2006), especially book-rev7.pdf

Unix "philosophy" of connecting everything with text streams, disadvantages and alternatives

Simson Garfinkel et al's Unix haters handbook (1994)

Unix and Windows similarities, contrasted to other OS designs
"Unix and Windows are huddled together in one tiny corner of the design space ..."

Plan 9, elegant post-Unix OS from the same team, especially /1/0intro, /5/0intro, 9.html, acme.html, for example (more about Acme editor in tools) (Plan 9 programs ported to Linux etc.), especially (recent fork) (rc shell) ("everything is a file", considered) ("everything is a file", considered again) (objects vs. files) (mounting remote services) (desktop GUI) (no TTY or X11) (vt terminal emulator) (TTY + X11 replacement, scroll down to Text windows) (9term for Unix, don't miss link to manual page) (9term clone in Ruby/Tk, 463 lines, contrasted to xterm etc. in README) (summary in FAQ format) (notes from MIT 6.824 Distributed Systems, scroll down) (history, motivation, design principles) (very brief summary)

Language-based OS and hardware: Lisp machines, Smalltalk, and more

Squeak, a practical Smalltalk written in itself

Smalltalk motivation and legacy, influenced Lively Kernel and STEPS (below), 4228324

A Smalltalk designer's comment on programming language philosophy

Lively Kernel, Smalltalk-like tools + applications entirely self-contained in the browser, in Javascript

Pedagogical programming environment in the browser using Javascript

Viewpoints Research Institute STEPS project, attempting OS + tools + applications in 20,000 lines, also tr2011004_steps11.pdf

Sergey Brin and Larry Page's original paper on the Google design and prototype (1998)

Subversion (version control system) goals, architecture, design, performance tradeoffs (2000--2007)
(see also
distributed version control), #svn.intro.architecture.dia-1

Wikipedia database: huge LAMP example (Linux, Apache, MySQL, PHP5, 2007)

The Architecture of Open Source Applications (2011), for example mercurial.html, packaging.html, and selenium.html

Beautiful software, examples suggested by HN contributors

Bitcoin, notes/l18.txt

Projects: process, management, politics, and business

(see also documentation, open source, Internet projects, Apple, Microsoft)

Proverbs, truisms, rules of thumb (Alan Perlis) (Jon Bentley) (Robert L. Glass) (Susan Cramm)

Fred Brooks' Mythical Man-Month Revisited (summarized by Rene Schaad)

Routine projects vs. novel ones, other experience that confirms Brooks (above) (Mike Williams)

Program-building strategies and heuristics, #1460817 (jenkinsEar, and for no one) (grumblebee) (edw519) (blhack)

Extreme programming, and some precursors (chromatic) (John Roth) (Ben Kovitz, Biju Thomas) (John Duncan) (Ulf Wiger) (Gary Stoneburner) (Eric Peterson) (Kurt Guntheroth) (spinoza9999) (Dr. Richard Botting)

Proposals, estimates, invoices, taxes, licenses etc.

Developers, users, and customers (Frank A. Adrian) (Robert Munck and Andy Gabb) (Graham Shevlin) (Darren Collins)

Testing (Marshall Woodson) (Boris Beizer, scroll down for "best and worst practices" article) (Ben Kovitz, Biju Thomas) (Martin Fowler) (Vivekanand Sakaram) (boris beizer)

Estimating time and costs (Rommert J. Casimir) (Herman) (Peter Leeson) (John Duncan) (Jon D Hagar) (Ulf Wiger) (Jonathan Allan) (Tom DeMarco)

Large projects vs. small ones, matching staff size to time (see also Fred Brooks, above) (Scott L. McGregor) (Jeffrey C. Dege) (Dick Dunn)

Damage control and prevention (Steve McConnell) (Joel Spolsky) (boris beizer) (ppgooding) (Nicole Bianco) (jasondigitized and many contributors)

Traditional engineering vs. software development (Jeff Offutt) (Paul C. George) (Andy Dent) (Marshall Woodson)

System administration including people, operations, IT (see also in coping) (Terence Parr) (Steve Simmons) (Paul Evans via David Meyer)

The Inmates are Running the Asylum, a book supposedly about design but more about projects (talk years later by same author)

High Stakes, No Prisoners, a book on startups, management, and the computer industry

QA Confidential


(See also projects, design, literature)

What to document, why, and for whom (John Roth), or (David Parnas and Paul Clements in TSE 12(2) Feb 86) (Paul Campbell) (clover kicker)

What to document for web sites (analogous items are needed for any software), also #1600220, #1600595, etc.

Requirements vs. specifications vs. design vs. user manuals
(Remarks here on object-oriented programming and UML apply as well to other styles and notations) (David Alex Lamb) (Robert C. Martin) (Ben Kovitz)

Requirements via use cases, difficulties and recommendations (cdewalt) (Ben Kovitz)

Unreadable requirements (Ben Kovitz)

Specifications (Tim Berners-Lee) (Pete Fenelon) (Eric Rescorla), also 0510.0/0575.html (Linus Torvalds)

Design notations (remarks here on UML apply as well to other notations) (John Burton) (Graham Perkins)

Design examples (how well do these follow other recommendations linked here?)

Code vs. comments, see especially dissenting remarks number 7, 24, 26 further down page

Collaboration, version control, content vs. cosmetics
(some of us today are happily using emacs, LaTeX, and svn) (Thomas N. Mackey) (many contributors)

Literate programming, advocacy and disenchantment

Open source

(See also

How to contribute to an open source project

Open source development

Free and open source philosophy, advocacy and licensing, also free-sw.html, categories.html, license-list.html

Early history of FSF and GNU recalled by a participant

Motivation, pride, and craft
"Open Source is not just about "working", it's about being modifiable by the end user."

Open source and peer review
(Search for paragraph with "Linux" in first line, about a third of the way down)

The Architecture of Open Source Applications

Teaching and learning

(See also in math and education)

Teaching yourself (comments on computing and math apply to other subjects also) (Peter Norvig) (Ookseer) (ojbyrne) (jrookie and many contributors) (christo, not just about Javascript) (fstutzman, not just about PHP), this: #1333384 (pjern and many contributors) (Zarkonnen and many contributors), also item?id=149597, also item?id=149495 (Internet starter projects) (DIY web server, ambitious project) (web frameworks) (Dave Korn) (Michael Ash) (Eric Raymond and Rick Moen) (Chris Hillman) (Randy Poe) (Drew McDermott) (mechanical_fish) (yacoset) (Ron Bloom)

Self-taught programmer writes his own email client with innovative UI, uses Node with nw.js (2015)

Teaching novices (Phil Agre) (Alan Kay) (SuperSquirrel and others, not just about web design) (Jon Jacky 1) (Jon Jacky 2) (Brian Kernighan)$enk$ (Richard O'Keefe 1) (Richard O'Keefe 2, especially after still struggling ...) (Doc Ruby) (Joseph Weizenbaum, especially paragraph beginning It happens ...)

Teaching and careers, #1419105 (Isemel, twiggy) (Netzapper) (Fernando Pereira 1) (Fernando Pereira 2) (Joe Seigh) (Amanda Giarla) (Edward Hartnett) (Jeff Dalton) (Michael Hann) (Kevin Cline) (Jeffrey B. Siegal), for example #1445725, etc. (gzimmer, scruss and many contributors)

Teaching agony and ecstasy (see also in math) (David Ashley) (Robert Strandh) (Randy Poe) (labuser) (Clack and Myers, via Jacky) (Allan Adler 1) (Allan Adler 2) (Dave Rusin) (john baez)

Computer science courses at universities

(see also other
university courses)

SICP, possibly the best computer science textbook ever: full text, video lectures, worked exercises (Peter Norvig review) (Phil Wadler critique, Scheme vs. Miranda) (high-quality pdf for download) (links to ebook and other formats)

SICP at universities recently (dropped at MIT)
  links in HN: (partial revival at MIT)
  comments in HN:, also proglang.html (Berkeley)
  comments in HN: (Berkeley, now in Python)
  comments in HN:

Why SICP matters, retrospective by Brian Harvey (2011)
  comments in HN:

Computer Systems: a Programmer's Perspective, course and textbook from CMU, textbook: public/samples.html, rationale: papers.html

Elements of Computing Systems, build a computer system from first principles in one semester, papers.php

Lectures on Scheme and functional programming (videos) (jao)

Computer Science introduction and survey with Python at MIT, 24 videos

Design of Computer Programs, in Python, by Peter Norvig, notes and code

Algorithms course at MIT: summary, individual lectures, handwritten notes, for example mit-introduction-to-algorithms-part-eleven/ with mit-algorithms-lecture-16-01.jpg

Math for computer science course at MIT

Computer systems courses at MIT with links to many classic papers (Lampson and Jackson, 2004) (Kaashoek and Zeldovich, 2012)

Introductory CS course emphasizing functional programming at CMU, 2011/03/15/teaching-fp-to-freshmen/

Brian Kernighan's introduction to computing at Princeton with many interesting links, also summary07.html

UW computer science course web pages

Cambridge University computer science course web pages
(pages for years before 2002-2003 have much more material)

Ars Digita University, MIT-like CS curriculum with free tuition, now defunct but course materials still available, also ~tomh/rants/aduni_five_years_later.html

Computer science research talks

UW computer science colloquia (Windows Media Player, a few RealPlayer)

Research Channel, video archive of research talks from all over (Windows Media Player, etc.), also program/displayseries.asp?collid=485, etc.

Careers and lives

(See also learning and coping)

How to be a programmer

Little nybbles of development wisdom

Interviewing, also
what-you-need-to-know, and other pages at blog-rants

Paul Graham's essays: startups, career advice

Close to the Machine, a memoir by a software engineer

Contrasting career paths (gaius) (ch1x0r)

Confronting and overcoming discouragement

Programming ability and experience (ojbyrne) (Ralph Cook) (Amanda Giarla) (Tim McDermott) (biohacker) (David Chase) (Jim Nusbaum) (David Kastrup) (yacoset) (Linus Torvalds) (Joe Seigh) (Jay) (many contributors)


Rent a Coder (I'm not recommending this!)


Literature and writing

(See also
documentation, design)

Origins and precursors, 1936 - 1982: Turing, Von Neumann, Shannon, etc.

Some classic papers, 1968 - 1984: Dijkstra, Codd, Parnas, etc. (removed now!? boo! hiss!)

Great works in programming languages, 1940 -- 1999
some with links, scroll down:

Algorithms from the book

Recent papers by Google scientists

CiteSeer, richly annotated index to computer science literature, also citeseer.html. Example: harel87statecharts.html

Citeseer, most cited papers, also most cited in each topic, also directory.html

DBLP, searchable computer science bibliography, 740K+ BibTeX entries (nice GUI to same)

Disappearing computer science literature (Jerry Leichter)

Experiments (or lack thereof) in computer science

Automatic computer science paper generator

Literate programming, documentation, coding standards, metrics (papers and links)

Literate programming disenchantment

Writing about programming: reviews and criticism (RC) (Doc Ruby) (renderhead) (larry bagina)

Writing about programming: advice, how-to's (pertinent to other subjects also)


(See also literature, computer architecture)

Paul Ceruzzi: A History of Modern Computing, especially good on the 1950s, 60s, and 70s:
  mainframes, minicomputers, and the origins of personal computers and the Internet.

HOPL: History of Programming Languages, canonical conferences and papers

History of Computing course at UW, lectures by Gordon Bell, Butler Lampson, Steve Wozniak, and others (2006), slides, videos: alectures/, readings: References.htm

History of Computing references and links suggested by HN readers

"Wheel of Reincarnation" in computing history, first observed by Myer and Sutherland (1963)

Bitsavers, vast archive of manuals and software from old computers
ibm 360 ibm/360/princOps/A22-6821-0_360PrincOps.pdf
pdp 8 dec/pdp8/handbooks/SmallComputerHandbook_67-68.pdf
alto xerox/parc/techReports/CSL-79-11_Alto_A_Personal_Computer.pdf
apple ii apple/apple_II/Apple%5d%5bRefJan78.pdf
and many many more ...

Most important software innovations, 1837 --

A Golden Age? 1964 -- 1974

Significant new inventions in computing since 1980

AI: two critical histories, and some shorter observations (Phil Agre), also .ps.Z (Rodney Brooks) (Jorn Barger) (Bill Park) (Drew McDermott) (John McCarthy (in 2008!) via mgummelt, and many contributors)

Lisp history (John McCarthy 1979, early days) (Michael Fogus 2011, other early contributors) (Steele and Gabriel, 1992)

Lisp machines, other language-based machines and OS: Smalltalk, etc.

Lisp 50th birthday celebration

John McCarthy: writings, also photos and biography

Gordon Bell: personal cybermuseum, books on architecture of classic computers, CyberMuseumPubs.htm
  Computer_Structures_Principles_and_Examples, Computer_Engineering

Butler Lampson: hardware, software, systems: 1960s - 2000s, Publications.html, Systems.html

Systems Past, software innovations of the 1950s and 60s

The first operating system (possibly), for IBM 704 in 1956
"early operating systems ... were designed and implemented by the user community..."
don't miss

The Evolution of Operating Systems by Per Brinch Hansen, 24 examples, 91 references, 2000
detailed reponse

Univac, Bible concordance project, 1955 (don't miss wonderful photos)

LGP-30, small computer that made ingenious use of technology available in 1956
(compare to its much larger contemporary, Univac, above)
Only 16 instructions, rotating magnetic drum provided all memory including registers.
Oscilloscope in control panel showed register contents as they rolled by the read heads.
lgp30_instruments_automation_v29_p264.pdf (article introducing computing and the LGP30 to engineers, 1956) (photos of insides) (design details) (simulator and sample programs, scroll down about 70%) (another simulator with sample programs)

Computing at MIT in the 1960s: project MAC, CTSS, and Multics vs. AI Lab and ITS

DTSS, Dartmouth Time-Sharing System, the original BASIC platform, 1964, especially history.php, don't miss sciencearticle/pages/page02.html

Multics operating system, 1963 - 2000: papers, stories, myths, and more, papers.html, multics-stories.html, myths.html

IBM 600 series: from mechanical multipliers to stored program computers (1931 - 1953)

IBM 1401 architecture, programming, operations, and economics -- very strange to modern eyes (1959) (hardware) (software) (assembly code, front panel video) (magnetic core memory)
more info, links on HN

IBM 1401 FORTRAN compiler, 63 passes, compiler, source, and object together in 8K (explanation) (compiler source code)

IBM 1401 restoration, many links and photos on computing in the early 1960s, IBM1401_ArchivePics/1401_Production_Pics/IBM1401_Manufacturing_Landscape_1960.jpg, RobertPan-.jpg
also, don't miss slideshow

MTS and other early time-sharing operating systems on IBM mainframes, 1966 --
IBM 360/67 photos
especially CPU insides slide07.jpg, slide24.jpg, 21.jpg, slide06.jpg

IBM mainframes, 1952 -- 2010

Brett Victor: "The Future of Programming", innovations of the 60s and 70s

Alan Kay: origins and very early history of object-oriented programming

Alan Kay: ARPA/PARC heyday recalled and analyzed, with pictures and bibliography

Alan Kay, Dan Ingalls et al. contributions, recalled and assessed, 4228324, 9591805

M. Mitchell Waldrop: The Dream Machine, ARPA, PARC and much more, recommended by Alan Kay

Spacewar, Stewart Brand's 1972 Rolling Stone article on hackers, SAIL, PARC, ARPA

Jaron Lanier: memories of California hackers in the 70's (including Ted Nelson, see below)

Patrick S. Farley: memories of California cyberculture in the 90's

Personal computers and precursors 1950 -- 1981

Steve Wozniak: interview about early experience, Homebrew Computer Club, founding Apple

Richard Cini: archive of early microcomputers: newsletters, articles, manuals from the 1970s and early 80s, also systems.htm

Ted Nelson: curmudgeon's history of computing

Dennis Ritchie: Unix and C history and memorabilia, also picture.html, also primevalC.html

Alan Turing: his life, work, death, and biographers

Portraits of programming language designers, others, also ---Part-Deux.aspx

Programming languages birthplaces

Niklaus Wirth: history of "good ideas that turned out to be less than brilliant"

The end of history?
  html at

Fallen heroes (Ray Tomlinson, March 2016) (Wesley Clark, February 2016) (Stan Kelly-Bootle, April 2014) (Doug Engelbart, July 2013) (Aaron Swartz, January 2013) (Dennis Ritchie and John McCarthy, dual obituary, November 2011),0,2083488,print.story (John McCarthy, October 2011) (don't miss comments at the end) (Dennis Ritchie, October 2011) (Daniel D. McCracken, July 2011) (Tom West, May 2011) (Paul Baran, March 2011) (Ken Olsen, February 2011) (Robin Milner, March 2010) (Joseph Weizenbaum, March 2008) (John Backus, March 2007) (Ted Codd, April 2003), also indexBibTeX.html (Edsger Dijkstra, August 2002) (eulogy by Krzysztof Apt) (remembered by Alan Kay) (video interview, pointful comment by fuffz) (Kristen Nygard, August 2002) (Bob Floyd, 2001, eulogy by Donald Knuth) (Alonzo Church, August 1995) (memories of Church, scroll down)

Internet technology, history, and milieu

Buzz, architecture, governance, core technologies, newer technologies, search, applications, projects, history, see also security


Tim Bray: blog

Nelson Minar: links (hover pointer over each link to see comment), for example culture/blogs/my-most-linked-posts.html
also same links, different view
also explanation

Maciej Ceglowski talks, don't miss!
also and about.htm, personal blog and bio (with pronounciation)
also Pinboard blog
more about Pinboard in Internet projects


(See also layering and software design)

Architectural principles of the Internet, and some recent changes, also rfc/rfc3439.txt, rfc/rfc3724.txt

Teaching network architecture through case studies, reviews classic papers on the Internet and alternatives

GNUnet: clean-slate alternative to the Internet, motivated by privacy and decentralization, overview strint2014gnunet

Networking named content, well thought-out alternative to TCP/IP (2009)

CCN-lite, lightweight implementation of Content Centric Networking (link immediately above)

Internet standards: RFCs etc. by number, also by category, various formats, also rfcs/np.html

RFC writing


Who runs the Internet?, also cid=11837336, cid=11838143

Tussle in cyberspace

Core technologies

Layering, from course notes by Phil Agre (in first three paragraphs only)

Stack of specifications (layering again), from a talk by Tim Berners-Lee

TCP/IP Tutorial, RFC 1180 (1991)

IP, from a book by Eric Hall

TCP, in a paper by Jingjing Lu and Yuxiang Zhu

TCP/IP and HTTP protocol sequence diagrams, etc.

TCP Implementation in Linux: A Brief Tutorial

Network data flow through the Linux kernel

TCP/IP in Python experiment, HN comments with more experiences, advice, and other implementations

Small Forth implementation of TCP/IP, Ethernet, ARP, UDP, DHCP, NTP, DNS (scroll down), IP protocol ip.fs.html, etc.

Full TCP/IP for 8-Bit Architectures

TCP/IP for ucontrollers, advice and discussion on minimal implementations!msg/comp.realtime/Bnbgdw5yyBc/EFlpOp0IfWYJ

Well-known TCP and UDP ports

HTTP, from a book by Clinton Wong

Thirty minute web server by Wilhelm Fizpatrick

HTTP headers and status codes, a diagram by Alan Dean

HTTPTracer, displays HTTP traffic between your browser and any server

Tim Craven's course notes: brief coverage of many topics with lots of links

Newer technologies

(See also web page design and technology)

Very short but enlightening explanation of many web technologies, then a warning and a mea culpa, but also 538263

Another short explanation

Another explanation, how it got that way

Comprehensive tutorial for novices: web, command line, Python, Django, git, hosting, deployment ...

DOM, Document Object Model, how it relates to HTML, CSS, Javascript

Web servers and HTTP, etc.

John Osterhout's course on web applications (Stanford, Fall 2010), also projects.php

Courses on Internet Programming in Python (UW, Winter 2011 and 2012) (Brian Dorsey, 2011) (Jon Jacky, 2012)

Flatiron school: studies to prepare for web applications course (2012)

Browsers: primer on the internal operations of WebKit and Gecko

WebKit for Developers

Toy browser engine in Rust, links to other small browser projects

Chrome browser explained in a comic book by Scott McCloud, some background

Chrome binary size, contributions of each component shown in treemap visualization

Mozilla developer center: browsers, plugins, related technologies

Turn your browser into a notepad with one line, using data: uri
much more

Excel-like spreadsheet app in less than 30 lines of JavaScript, no library used

"Radically refactoring the web", new approach to web applications (2013)

Node (Node, 2014)

Self-taught programmer writes his own email client with innovative UI, uses Node with nw.js (2015)

Once-new technologies

XHTML, advocacy and caveats

A Brief History of Markup: W3C, HTML 4 and XHTML, WHATWG, HTML 5 (2012)



Ajax (aka Remote Scripting)

Web development frameworks (some advice quickly becomes dated) (TurboGears, Python, 2005) (various, Python, 2006) (various, 2006) (various, 2006), also #rule7, and comments 7, 24, 26 (various, 2007) (various, 2008), also 217264, 216879 (various, Rails, PHP, 2008) (various, 2009) (frameworks vs DIY, 2009) (Django, 2009) (DIY 2010) (DIY Python, 2010) (Python, Aug 2011) (Python, Dec 2011) (.NET, 2011) (Flask + Python, May 2012)
also (Java, various, Aug 2011 - Jun 2012) (Django + Python, 2014)

Social bookmarks, tags, folksonomy, also tag/, help/, joshua/
See also Pinboard in Projects

Mashups and web APIs, also howto, apis, reference

Semantic web: XML, RDF, RSS, OWL etc., from course notes by Phil Agre

Semantic web for web developers (clear, short summary with discussion of RDF vs. XML + SOAP)

Simile, semantic web plugins for Firefox (check out projects on right panel), for example solvent/, piggy-bank/, piggy-bank/developers.html, welkin/, etc.

Semantic web: RDF sample data and command line tools, explanations and demos, also 04/transmuting-ntriples.html

Semantic web in haiku, also

Future of Web Apps Summit (notes from the conference, Feb 2006), also notes/2006/summit/schachter.txt, notes/2006/summit/carson.txt


See also using search engines

Web crawlers, search engines, data mining, and more from course notes by Dan Weld

How Google works

Google design and prototype, original paper by Brin and Page at Stanford in 1998

How Google Translate works

Perspectives on the information industry, a talk by Google CEO Eric Schmidt, May 2005 (abstract, video)

Behind the scenes at Google, a talk by Jeff Dean, October 2004 (abstract, video)

The Google Linux Cluster, a talk by Urs Hoelzle, November 2002 (abstract, video)

MapReduce, a Google Labs paper from 2004 (abstract, also PDF)

The Google file system, a paper from 2003 (abstract, also PDF)

... and many other publications by Googlers

Google maps, how it works

Software development at Google


Tiny web servers, discussion on minimal TCP/IP

Traceroute in Python

VisualRoute, a graphical traceroute (commercial promo, interesting anyway)

Projects: technology, process, management, politics, and business

(See also programming projects)

Philip Greenspun's pages: education, designing and running a big web site, databases, e-commerce, startups, bustups, also internet-application-workbook/, panda/, seia/, also ~tomh/rants/aduni_five_years_later.html

Recent experiences: Terence Parr (jGuru), Joshua Schachter (, Ryan Carson (DropSend), Jacob Kaplan-Moss (6News), Matt Haughey (MetaFilter), Maciej Ceglowski (Pinboard), various (Matt Haughey, MetaFilter)
also, 2011/09/the_costs_of_bookmarking/, 2012/06/do_it_yourself_bookmarking/ (Maciej Ceglowski, Pinboard)

Five stages of hosting

How web sites make money

Y Combinator, seed funding for early-stage startups, advice on technology and business, also faq.html, lib.html (best of Ask HN by topic, startup advice and more) (similar but older)

Project proposals, estimates, and invoices for freelancers and small shops

Starter projects, also item?id=149597, also item?id=149495

Launching a website, also #1633136, etc.

Wordie, minimal but addictive social networking site, some reactions at words/mentions

Wordnik (formerly Wordie) goes big time

____ will ____ you, an even more minimal site

Social networks: collection of features that makes a product "social"

Social networks: Facebook = email + home pages w/rss feeds + real names + discovery + ...

"Every Unix command eventually becomes an internet service"
grep -> Google, rsync -> Dropbox, ..., finger -> Facebook, ...

History, assessment, prospects

Brief history of the Internet, by its inventors

Tim Berners-Lee: World Wide Web original announcement and web pages (1991)

Tim Berners-Lee: World Wide Web history, architecture, prospects

Internet history timeline

The decline of Usenet

Usenet, updated in real time as it was thirty years ago, also faq/

Security and privacy

NSA, networks, web, applications, programming, media, milieu


"Pervasive Monitoring Is an Attack" (Internet Engineering Task Force, May 2014)

The NSA Revelations All in One Chart (June 30, 2014)

NSA backdoors: examples of NSA weakening security (Dec 20, 2013)

Who's watching you? (Tim Bray, Aug 21 2013)

The NSA is commandeering the Internet (Bruce Schneier, Aug 15 2013)

Timeline of NSA Domestic Spying (updated frequently)


GNUnet: clean-slate alternative to the Internet, motivated by privacy and decentralization, overview strint2014gnunet

Network security at home, general information about networks, also advisories/CA-2001-20.html

Top Ten Internet security vulnerabilities (lecture notes in PDF, MP3, updated web page), also mp3, top20.htm


Ruby on Rails security guide (2010, web security overview, not just RoR)

John Osterhout's course on web programming and security (Stanford, Winter 2009), also syllabus.html

Chinese firewall (2008)

A tangled world wide web of security issues (March 2002, review article, 100+ references)


Recent evaluation of cookies by one of the inventors (Dec 2006)

How to block web ads (2000, many browsers now do this automatically)

Cross site scripting, SQL injection (2001), also sql-injection.html

Database security, SQL injection etc., examples in MySQL (2009)

State-based attacks on web applications (2006)

Common security problems in web applications (2006, PHP but probably similar elsewhere)

Top 10 web hacks of 2006


Security and privacy problems in Microsoft products, some fixes and suggestions


Secure programming for Linux and Unix (pertinent to Windows etc. also)

The Tao of Windows buffer overflow

"Smashing The Stack For Fun And Profit"


Hacking the Xbox (hardware, crypto, legal issues)

How to decrypt a DVD, in haiku form, also ~dst/DeCSS/


Ross Anderson's pages, economics of information security, etc., also ~rja14/econsec.html

Dave Dittrich's page, forensics and much much more

Conferences (in Defcon, click on author links to see abstracts and bios)

Spammers and frauds vs. Craigslist: security technology arms race (May 2008)

Credit card exposure due to poor programming: legal repercussions, regulations, standards (May 2008)


Attitudes about security

Coping with technology

RISKS: forum on risks to the public in computers and related systems (Peter G. Neumann and contributors)

How to help someone use a computer (Phil Agre)

How to ask questions, and why so many "stupid" questions are asked (Michael Ash) (Eric Raymond and Rick Moen) (dkarl)

Rationalizations for bad design (Phil Agre)

Some causes of bad design and implementation (see also traditional engineering) (Andy Dent)

Architectures of control, also ?page_id=3 (Dan Lockton, contributors)

Is cost-benefit analysis itself "irrational"? (Nancy Leveson)

System administration (see also in projects) (Steve Simmons) (Paul Evans via David Meyer), also #1314354, etc. (Skorgu, dg, LolaGeek, many others) (wabashdw and many contributors), also #1600220, #1600595, etc. (spicynuts and many contributors)

IT costs

Staying current (see also careers and learning) (Joe Seigh) (Amanda Giarla) (pjern and many contributors) (Zarkonnen and many contributors)

Innovation vs. churn (marco1 and many contributors) (Tim Bray)
HN comments
HN Comments

Saving time or wasting it

Performance and complexity, then and now
"Software gets slower faster than hardware gets faster" -- Wirth's law

Unix-hater's handbook (Garfinkel, Weise, Strassmann, et al.)

Code inflation (how Unix true command grew from 0 bytes in 1979 to 22,896 in 2012)

Nostalgia and frustration OS (Rob Pike on Unix after 197x) OS (Doug McIlroy on Unix evolution) Research (Rob Pike in 2000, is it still true?)
  html at (Rob Pike on Bell Labs, Unix, Plan 9, ...) programming languages (Assembler) programming languages (HyperCard) programming languages (HyperCard again) programming languages (Visual Basic) programming languages (Javascript) desktop GUIs (PARC, Oberon, Plan 9) web browsers web applications web applications, links web application stack, etc., also 11512204 personal computers programming environments tools and frameworks, novelty vs. creativity Alan Kay on pop culture vs. developed culture

Returning to simplicity OS utilities utilities and OS personal computer hardware and OS OS programming languages (Lua) programming languages (K) programming languages (Go) programming languages (Oberon) desktop GUIs (avoiding distractions) web applications (design, testing) web applications web applications (teaching)

Aspiring to perfection

Three great faiths

Linux, Mac, Windows. See also hardware and programming.

Books on all three, with sample chapters to download, also animals.html

Unix and Windows similarities, contrasted to other OS designs
"Unix and Windows are huddled together in one tiny corner of the design space ..."

Linux (and other Unix)

(See also
open source, Unix design)

Unix guide for beginners from Matt Might, settling-into-unix, tools
also ssh-hacks, intro-to-make

Tech primer series from Daniel Miessler, also study/
also collection-of-less-commonly-used-unix-commands

strace and other OS tools described by Julia Evans

Linux Core Concepts from Daniel Robbins

Look like a Unix guru, shell and command tipsheets

Etymology of Linux command names

Origins of Unix acronyms

Linux file system: standard, history, alternatives

Package management: significance, how to use it, how it works, command summaries, also ps

Desktop environments for Linux: Gnome, KDE, LXDE, Xfce, Unity, and more (2012)

Using the Linux console, lightweight alternative to desktop environments (2012), 2009/11/23/mplayer-for-the-framebuffer-only/

The TTY demystified, including a control sequence parser for ANSI-compatible video terminals, especially emu/dec_ansi_parser

Linux distributions gathered into categories and compared (2012)

Linux distributions family tree (2006, explanations, comments, corrections in second URL)

Levinux, small no-install Linux in a VM for novices, with instructions and advocacy

NixOS, Linux distribution with innovative configuration and package management, docs.html

Guix, Linux distribution that uses Scheme for defining packages and configuring the system

How different are the Linux distributions?
"... not stalks off the same evolutionary branch anymore, but an entire ecosystem of different animals"

Linux on a 68008 on a solderless breadboard, file system in one ROM and one RAM chip
Directions and links for building and bringing up a very small Linux system
HN comments

BSD vs Linux

Building from source on Unix, Linux, and OS X

GNU manuals online

Linux how-tos, Ubuntu 2007 (but much applies to any Linux), much more material in Ubuntu:Feisty

Linux HOWTOs (older, mostly before 2005)

Kernel analysis HOWTO

Linux system call quick reference, services provided by the kernel

Linux kernel source and cross reference

Linux kernel map (Cool diagram with concentric circles. Broken link, where did it go?), also about.php

Linux kernel map (interactive, pg dn to zoom, arrow keys or drag to pan, click to view code), also kernel_map_intro

TCP Implementation in Linux: A Brief Tutorial

Network data flow through the Linux kernel

Notes on virtualization, from Randal E. Bryant at CMU

Linux, Red Hat 7.1, April 2001: 30+ million lines of code, $1B, 71% C

Linux kernel 2.6, April 2008: statistics, authors, sponsors

Linux (in)compatible systems, components (not necessarily complete)

Dennis Ritchie: Unix history and memorabilia (scroll down to Unix papers)

Unix heritage society: "collect the available historical documents and recollections of Unix into one central place", especially doku.php

Recently discovered earliest draft of a Unix manual, by Dennis Ritchie (1971)
about: Readme

The Restoration of Early UNIX Artifacts (V1 1971 through V7 and 32V 1979)

The first Unix port (V6 to Interdata 7/32 in 1976-7, details about many cross-development steps)

Original announcement of Linux (1991)!msg/comp.os.minix/dlNtH7RRrGA/SwRavCzVE7gJ

Linux 0.11 source code (1991), for example main_8c_source.html

Linus Torvalds: fascinating early interview (Linux News, issue 3, 1992)
I still live at home, which is why I can afford to work on Linux and study ...
I bought myself an AT-386 ... I didn't have enough money, so I'm still paying on it ...
I doubt Linux will be here to stay, and maybe Hurd is the wave of the future ...

Linux early adoption in the 1990s, how it became so popular

Humor (see also in geek culture)


Mac OS X for Unix users

Mac OS X development at Apple

Mac through history

Mac performance, many models

Mac dissection: iBook, PowerBook, Mini

Frankenmac, Hackintosh: OS X on commodity PC hardware (I'm not recommending this!)

Mac disenchantment, especially among former PC users


Windows: 50+ million lines of code, 300+ million copies in use

Windows command line

Windows development at Microsoft

Rapid application development for Windows, Microsoft tools vs. alternatives

.NET and C#, also csharpfaq.htm, also cid=15510059 (C# and .NET vs. Java platform, technology and community)

Nancy, lightweight web framework for .NET

Programming Windows with GNU, other tools, also links.shtml

Windows/Linux applications and utilities, equivalents/replacements/analogs (apparently defunct)

Essentials for Windows (TeX, LaTeX) (Graphviz: dot, etc.) (GhostScript, GhostView, GSView) (GNU tools: tar, gzip, find, etc.) (Emacs) (PuTTY: terminal with ssh, scp etc.) (CVS) (Subversion) (Subversion server on Windows)

Gow, GNU on Windows, over 100 open-source Unix utilities with installer

Coping with Word

Windows sysadmin chores

PC performance, many models

WinFS integrated/unified storage, ambitious abandoned project

US vs Microsoft anti-trust settlement

EU vs Microsoft decision

PIFF + Microsoft agreement about Samba, etc., also PFIF_agreement.html

Geek culture

(See also technology, great faiths)

News, rumors, gossip, rants, also item?id=1024399, 1024293 (Hacker News)
also (scroll down to table)
also (best of Ask HN by topic, startup advice and more)
also (similar but older)
also see search box at bottom of HN page, for example computers-internet, technology, science-nature, etc.

"Unknown technical blogs" recommended by Hacker News contributors

Folklore and jargon

Comics (see also in art), for example 195, 482, 485, 526, 386
explained differently, also aboutcomics.html
Don't miss

Laptop art

Screenshots for example index-el.html, index-tex.html, etc.

Donald Knuth: screenshot and fvwm2 setup,   programs/.fvwm2rc

Keys vs. mice: "using language is more expressive than pointing at things all day"

Food, also 142951, 311740, 311835, for example #1922385

Hack a day

Bootstrapping from nothing (with links to many more contributions)
  discussion starting here
  archived at
  see also kragen-hacks and kragen-fw

Neat hacks (recent entries at top, see also in science and engineering), also category/tools/ and welcome/, etc.
slides, see tiny links on many slides
video, "a game that will only ever exist on one computer"
explained at
via   52862/The-Worlds-Cutest-Synth, also links to similar devices
via, explained at
explained at   2007_Nanoletters_Nanotube_radio.pdf
explained at

Humor (see also in Unix)
differently formatted here
the original inspiration

also, 672582

In a category by themselves

Historical anniversaries

Letters of note, an archive of fascinating correspondence

Internet anagram server

Lexical Freenet

Magnetic poetry

"May I take your order?"

International Rollergirls' master roster

Browse Wittgenstein's Tractatus

Nietzsche Family Circus

Dao De Jing, with links on the translation, language and culture

Oracle of Bacon

Typealyzer, Myers-Briggs classification of web pages

Early technical manual

Search for your name or birthday in pi.

The elements, also Posters/

Looplabs (Flash)

Sodaplay (Java, nothing to do with soft drinks)

404 Research Lab

Jon Jacky,