profile image

Bookmarks

As promised, here’s some stuff that has interested, educated and/or amused me over the years. At least those which are still around for me to link to :)

Tags

architecture  blockchain  book  business  compiler  complexity  computing  concept  concurrency  condition  contract  cryptocurrency  cybernetics  data  dependencies  design  distributed  documentation  dynamic  economics  ecs  eda  erlang  error  event  exception  experience  expertise  favorite  fiction  functional  game  go  goto  grammar  handling  history  humor  language  lecture  lisp  lua  magic  management  matching  metaprogramming  mirror  object-oriented  package  paper  parallel  pattern  peg  platform  poetry  politics  presentation  programming  rationality  reactive  real-time  reflection  rest  rpg  science  security  simple  smart  social  structured  systems  tdd  ux  voting  wisdom  writing 

96 entries
A Curriculum for Cybernetics and Systems Theory, by Alan B. Scrivener
Tags cyberneticssciencesystems

A list with reviews of suggested books, periodicals, television shows and computer programs for a classroom curriculum or individual study in cybernetics and systems theory.

A Group Is Its Own Worst Enemy, by Clay Shirky
Tags computingsocial

A keynote about a common pattern in social software which supports large, long-lived groups.

A Journey into Reactive Streams, by Kevin Webber
Tags computingprogrammingreactive

An introduction to Reactive Systems and associated concepts.

★ A Modular Verifiable Exception-Handling Mechanism, by Shaula Yemini, Daniel M. Berry
Tags computingerrorfavoritehandlinglanguagepaperprogramming

Describes several known exception handling mechanisms, and provides a new model which supports them all.

A Text Pattern-Matching Tool based on Parsing Expression Grammars, by Roberto Ierusalimschy
Tags LuaPEGcomputinglanguagematchingpaperpatternprogramming

A proposal to use Parsing Expression Grammars as a basis for pattern matching in programming languages, presenting LPeg as a working implementation.

Anatomy of a knockout, by Chris Granger
Tags ECSarchitecturecomputingprogramming

A brief description of the Entity-Component-System (ECS) architecture pattern, common in games and simulations.

Architectural Styles and the Design of Network-based Software Architectures, by Roy Fielding
Tags RESTarchitecturecomputingpaperscience

The author’s PhD dissertation describing the REST architectural style.

★ Are We There Yet?, by Rich Hickey
Tags computingconcurrencyfavoritelanguageparallelpresentationprogramming

In his keynote at JVM Languages Summit 2009, Rich Hickey advocated for the reexamination of basic principles like state, identity, value, time, types, genericity, complexity, as they are used by OOP today, to be able to create the new constructs and languages to deal with the massive parallelism and concurrency of the future.

Asset voting – an interesting and very simple multiwinner voting system, by Warren D. Smith
Tags politicsvoting

Asset voting is an “unconventional” voting system in which both the voters and the candidates participate. It’s designed for situations where several (not just one) “winner” is to be selected from a field of candidates.

★ Beyond Exception Handling: Conditions and Restarts, by Peter Seibel
Tags Lispcomputingconditionexceptionfavoritelanguageprogramming

Common Lisp’s conditions are more general than exceptions, for more than error handling.

Bitcoin: A Peer-to-Peer Electronic Cash System, by Satoshi Nakamoto
Tags blockchaincomputingcryptocurrencypaper

The paper that first introduced Bitcoin.

Breaking Out of Scientific Magic Systems, by John H. Kim
Tags RPGdesigngamemagic

Some interesting RPG mechanics to give magic a distinct flavor.

CORE Economics
Tags bookeconomics

A complete introduction to economics and the economy that has been successfully taught both to economics undergraduates and in masters courses in public policy.

Camels and Rubber Duckies, by Joel Spolsky
Tags businesscomputing

How to price your software.

Declarative is greater than imperative, by Eric S. Raymond
Tags computingprogramming

A lesson learned/reinforced while writing a replacement for sloccount: “Simple code plus smart data is better than enough smart code to do the same job.”

★ Definitional Interpreters for Higher-Order Programming Languages, by John C. Reynolds
Tags computingfavoritelanguagepaperprogramming

Classifies several varieties of interpreters, showing how they may be derived from one another, and how the choice of implementing language may affect the resulting implemented language.

★ Design Patterns in Dynamic Programming, by Peter Norvig
Tags computingdesigndynamicfavoritelanguagepatternprogramming

The title is pretty self-explaining :)

Designing Social Interfaces, by Christian Crumlish, Erin Malone
Tags computingdesignpatternsocialux

A collection of social user experience design patterns.

Documentation as knowledge capture, by Eric S. Raymond
Tags computingdesigndocumentationprogrammingwriting

Writing documentation should not be seen as a chore, but as an integral part of software design, yielding, among other things, better code more easily shared with less effort.

Energy Systems Language
Tags languagesciencesystems

A graphic language developed by Howard Odum used to compose energy flow diagrams in the field of systems ecology.

Entity Systems Wiki
Tags ECSarchitecturecomputingprogramming

A site collecting information about the Entity-Component-System architecture pattern, with several approaches, tutorials and links.

Epigrams on Programming, by Alan J. Perlis
Tags computinghistoryhumor

A series of short, programming-language-neutral, widely-quoted humorous statements about computers and programming.

Evolve Your Hierarchy, by Mick West
Tags ECSarchitecturecomputingprogramming

One of the earliest and most popular descriptions of ECS.

Explorable Explanations, by Bret Victor
Tags computinguxwriting

An essay about the author’s effort to enable and encourage active reading, presenting the notions of reactive documents, explorable examples and contextual information.

Formalizing and Securing Relationships on Public Networks, by Nick Szabo
Tags blockchaincomputingcontractpapersmart

The original smart contract proposal.

Fundamental design principles for non-designers, by Anna Mészáros
Tags computingdesignux

Some basic tips for non-designers to make a simple web design that doesn’t utterly suck.

Game Programming Patterns, by Robert Nystrom
Tags bookcomputingdesigngamepatternprogramming

A collection of design patterns found in games.

Go to considered harmful, by Edsger W. Dijkstra
Tags computinggotohistorypaperprogrammingscience

The classic paper which brought the downfall of goto as a high-level control flow construct.

Ground-truth documents, by Eric S. Raymond
Tags computingdocumentationprogramming

Documentation which describes not intent or promises, but simply what is, warts and all, can be valuable when interfacing with other software and hardware, and may evolve to become matter-of-fact specs.

★ Growing a language, by Guy L. Steele Jr.
Tags computingfavoritehistorylanguagepaperprogramming

“A good programmer does not just write programs. A good programmer builds a working vocabulary. A good programmer does language design, though not from scratch, but building on the frame of a base language.” One can watch the keynote here.

Hackers and Painters, by Paul Graham
Tags computingdesign

Why hackers are makers, not scientists, and therefore should look at painters more than mathematicians to improve on their craft.

★ How Complex Systems Fail, by Richard I. Cook
Tags complexityfavoritehistorypapersystems

A series of bullet points on the nature of failure and how failure is and should be evaluated.

How To Become a Hacker, by Eric S. Raymond
Tags computinghistoryprogramming

The (old school) hacker mindset and how to adopt it, building on the Jargon File.

How To Write A Dissertation, or Bedtime Reading For People Who Do Not Have Time To Sleep
Tags sciencewriting

Tips and directions on how to write a formal scientific document.

How not to design a wire protocol, by Eric S. Raymond
Tags computingdesign

How poor intuition for costs makes people optimize for the wrong things.

How to Build a Universe That Doesn’t Fall Apart Two Days Later, by Philip K. Dick
Tags experiencefictionsciencewriting

One of several texts about the author’s religious experiences, and his worries about the nature of reality.

How to write narrative documentation, by Eric S. Raymond
Tags computingdocumentationprogrammingwriting

How and why write good documentation for your code.

In the Beginning was the Command Line, by Neal Stephenson
Tags computinghistory

An essay about the history and evolution of OSes and user interfaces, written in 1999.

Inventing on Principle, by Bret Victor
Tags computingux

A transcript of the author’s famous speech at CUSEC 2012.

Invisible asymptotes, by Eugene Wei
Tags businesscomputing

Strategic planning and growth at large scale technology companies.

Jeff Bezos, Jack Ma, and the Quest to Kill eBay, by Steve Yegge
Tags business

The right - and wrong - way to compete with a locked market.

Laws of Tech: Commoditize Your Complement, by Gwern Branwen
Tags businesscomputing

Expanding on Joel Spolsky’s ‘Strategy Letter V’.

Learnable Programming, by Bret Victor
Tags computingprogrammingux

The author’s answer to the question “How do we get people to understand programming?”

Lewis Carroll Invented Retroactive Public Goods Funding In 1894, by Scott Alexander
Tags economics

An oft-reinvented idea to fund public goods.

Links - Raph's Website, by Raph Koster
Tags RPGdesigngame

A collection of links about MUDs and game design in general.

Making reliable distributed systems in the presence of software errors, by Joe Armstrong
Tags Erlangcomputinghistorylanguagepaperprogrammingscience

The author’s PhD dissertation on how to make reliable systems from faulty components, focusing on the essential characteristics the programming language (here, Erlang) and the standard library should have.

★ Mirrors: Design Principles for Meta-level Facilities of Object-Oriented Programming Languages, by Gilad Bracha, David Ungar
Tags computingfavoritelanguagemetaprogrammingmirrorprogrammingreflection

Gives some design principles for reflection and metaprogramming facilities, and defines the concept of mirrors for an reflective API which follows these principles.

Mu’s Unbelievably Long and Disjointed Ramblings About RPG Design
Tags RPGdesigngame

Several links and ramblings about game design in general, and many times fantasy MMORPG in particular.

NetPositive error messages
Tags computinghumor

A collection of humorous haiku error messages originally from NetPositive, a web browser for BeOS. I’ll probably steal some of these…

★ No Silver Bullet – Essence and Accident in Software Engineering, by Frederick P. Brooks
Tags complexitycomputingfavoritepaper

“There is no single development, in either technology or management technique, which by itself promises even one order of magnitude [tenfold] improvement within a decade in productivity, in reliability, in simplicity.”

Notes on Structured Programming, by Edsger W. Dijkstra
Tags computinghistorypaperprogrammingsciencestructured

One of the first papers introducing the (now commonplace) notion of structured programming.

On the cruelty of really teaching computing science, by Edsger W. Dijkstra
Tags computinghistorypaperscience

An attempt to put computer science into a wider perspective within science, an argument that computer programming should be understood as a branch of mathematics, and that the formal provability of a program is a major criterion for correctness.

Our Software Dependency Problem, by Russ Cox
Tags computingdependenciesprogramming

A critical examination on dependency management practices.

Out of the Tar Pit, by Ben Moseley, Peter Marks
Tags complexitycomputingpaperprogramming

Accidental vs essential complexity, common causes of complexity, and how functional programming and Codd’s relational model may help.

Parsing Expression Grammars: A Recognition-Based Syntactic Foundation, by Bryan Ford
Tags PEGcomputinggrammarlanguagepaperprogramming

An alternative to context-free grammars and regular expressions for parsing machine-oriented languages.

Passing a Language through the Eye of a Needle, by Roberto Ierusalimschy, Luiz Henrique de Figueiredo, Waldemar Celes
Tags Luacomputinglanguagepaperprogramming

How the embeddability of Lua impacted its design.

Principles of Good Technical Writing, by Michael Wittenburg
Tags documentationwriting

A short and to-the-point essay about, well, good technical writing :)

★ Programming Without a Call Stack – Event-driven Architectures, by Gregor Hohpe
Tags EDAarchitecturecomputingeventfavoriteprogramming

A summary of why event-driven architectures might be interesting, and some of the challenges involved (e.g. debugging).

Query-based compiler architectures, by Olle Fredriksson
Tags compilercomputinglanguageprogramming

Why building a compiler around a query system (database?) instead of a pipeline may yield significant advantages for your language tooling.

★ Re: Theory of Everything (TOE), by Tom Davidson
Tags favoritehumor

An argument for the most fundamental of all logical statements that can be made about a system, even when nothing is known about the contents or processes that may be found therein.

Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I, by John McCarthy
Tags Lispcomputinghistorylanguagepaperprogramming

The landmark paper introducing Lisp, code-as-data, and how a handful of simple operators and a notation for functions is enough to build a programming language.

Reflections on Trusting Trust, by Ken Thompson
Tags computinghistorypapersecurity

To what extent should one trust the software one runs.

Remove the legend to become one, by Eugene Wei
Tags businessdataux

Some basic principles on how to best present data for ease of consumption.

Resources for Amateur Compiler Writers, by Quentin Carbonneaux
Tags compilercomputinglanguageprogramming

A collection of relevant and practical (as deemed by the author) papers and books about compilers.

Simple Made Easy, by Rich Hickey
Tags computinglanguagepresentationprogrammingsimple

A presentation emphasizing simplicity’s virtues over easiness’, showing that while many choose easiness they may end up with complexity, and the better way is to choose easiness along the simplicity path.

★ So you want to write a package manager, by Sam Boyer
Tags Gocomputingfavoritelanguagepackageprogramming

An essay about the nasty complexities of package management in general and Go’s in particular, proposing a general set of requirements and an insightful way of framing the problem.

Spaghetti Code
Tags computinghumor

A quick introduction to the complete Pasta Theory of software.

Status as a Service (StaaS), by Eugene Wei
Tags businesssocial

An analysis of social networks on the dimension of status or social capital.

★ Stevey's Google Platforms Rant, by Steve Yegge
Tags businesscomputingfavoriteplatform

Why Amazon does everything wrong and Google everything right, and still offers a better platform. Saved as a Gist for posterity, since Google+ no longer is a thing.

Strategy Letter V, by Joel Spolsky
Tags businesscomputing

How a little microeconomics can help explain tech companies’ strategies.

★ Structure and Interpretation of Computer Programs, 2nd edition, by Harold Abelson, Gerald Jay Sussman, Julie Sussman
Tags bookcomputingfavoriteprogramming

The second edition of MIT’s classic introductory programming course, when they still used Scheme instead of Python.

Structure and Interpretation of Computer Programs: Video Lectures by Hal Abelson and Gerald Jay Sussman
Tags computinghistorylectureprogramming

The complete collection of video lectures of MIT’s famous introductory computer science course, given in 1986.

Taste for Makers, by Paul Graham
Tags design

The author’s tips and observations on characteristics of good design.

The Cathedral and the Bazaar, by Eric S. Raymond
Tags bookcomputinghistoryprogramming

A classic book which helped popularize the open source movement.

The Failure Mode of Clever, by John Scalzi
Tags documentationwriting

Be careful when trying to sound clever, especially with someone you don’t know well.

★ The Gervais Principle, Or 'The Office' According to 'The Office', by Venkatesh Rao
Tags businessfavoritemanagement

Seeing the TV show ‘The Office’ as a fully realized theory of management, which supercedes both the Peter Principle and the Dilbert Principle.

The Gods of the Copybook Headings, by Rudyard Kipling
Tags poetrywisdom

A poem counterposing fashionable ideas (the Gods of the Market Place) and the tradicional wisdom in proverbs and maxims (the Gods of the Copybook Headings).

The IDE as a value, by Chris Granger
Tags ECSarchitecturecomputingprogramming

A description of Chris’ BOT architecture, derived from ECS to fit event-driven applications.

The Jargon File, by Eric S. Raymond
Tags bookcomputinghistoryhumor

A comprehensive compendium of hacker slang illuminating many aspects of hackish tradition, folklore, and humor.

The Log: What every software engineer should know about real-time data's unifying abstraction, by Jay Kreps
Tags computingdistributedreal-time

Everything one needs to know about logs, including what is log and how to use logs for data integration, real time processing, and system building.

★ The Rise of "Worse is Better", by Richard Gabriel
Tags architecturecomputingfavoritehistoryprogramming

Excerpted from “Lisp: Good News, Bad News, How to Win Big”, this essay is about how simple-first, “New Jersey-style” software has better survival characteristics than quality-first, “MIT-style” approaches.

The Roots of Lisp, by Paul Graham
Tags Lispcomputinghistorylanguagepaperprogramming

The author’s attempt to understand and distill the essence of John McCarthy’s original paper on Lisp, in an easier form for modern audiences.

The Universal Design Pattern, by Steve Yegge
Tags computingdesignpatternprogramming

A long essay about the power and flexibility of the Properties Pattern.

The Value of Values, by Rich Hickey
Tags computingfunctionallanguageobject-orientedpresentationprogramming

A presentation comparing value-oriented programming with place-oriented programming, concluding that the time of imperative languages has passed and it is the time of functional programming.

Three Hundred Mechanics, by squidi
Tags designgame

(Eventually) 300 different gameplay mechanics and concepts, created by the author and released to the public domain.

★ Time-traveling dimension hopping kung-fu killaz
Tags RPGconceptfavoritegame

One of the most out there RPG world concepts I’ve seen.

To the members of the Budget Council, by Edsger W. Dijkstra
Tags computingprogrammingscience

A memo where the author advocates for continuing to use Haskell for the introductory programming course in the university, and notes that “we are all shaped by the tools we train ourselves to use, and in this respect programming languages have a devious influence: they shape our thinking habits.”

Tsuyoku Naritai! (I Want To Become Stronger), by Eliezer Yudkowsky
Tags rationality

“Take no pride in your confession that you too are biased; do not glory in your self-awareness of your flaws. This is akin to the principle of not taking pride in confessing your ignorance; for if your ignorance is a source of pride to you, you may become loath to relinquish your ignorance when evidence comes knocking.”

★ Unit testing in Coders at Work, by Peter Siebel
Tags TDDcomputingfavoriteprogramming

A blog post about some known programmers’ impressions of TDD, and particularly Ron Jeffries’ (XP guy) vs Peter Norvig’s approaches for a Sudoku solver.

Version 0.8 - status or lack thereof, by Chris Granger
Tags ECSarchitecturecomputingprogramming

A honest assessment of Light Table and the author’s BOT architecture. “BOT filled its goals of an architecture that is infinitely extensible and runtime modifiable, but that degree of power came at a cost - despite its simplicity the resulting program is very hard to follow. I’ve recently come to understand that this is because mixins are fundamentally an anti-pattern and BOT is basically dynamic mixins.”

Wardley Maps, by Simon Wardley
Tags bookbusiness

The use of topographical intelligence in business strategy. Or, how and why build a map for your business.

We already know blockchain’s killer apps, by Haseeb Qureshi
Tags blockchaincomputing

There are many exciting ideas floating around blockchains, but its killer app may already be known.

What Money Cannot Buy, by John Wentworth
Tags economicsexpertiserationality

Basically, expertise.

When Money Is Abundant, Knowledge Is The Real Wealth, by John Wentworth
Tags economicsrationality

“When non-experts cannot distinguish true expertise from noise, money cannot buy expertise. Knowledge cannot be outsourced; we must understand things ourselves.”

Write Libraries, Not Frameworks, by Brandon Smith
Tags computingprogramming

A reasoned argument for, by and large, preferring libraries to frameworks if they aren’t called for.

You Can't Buy Integration, by Martin Fowler
Tags computingprogramming

Several observations about the challenges and current practice of software integration. “Integration isn’t primarily about connecting systems; it’s about putting clean interfaces in front of digital capabilities, emphasizing capabilities over systems.”