gordonbrander + compsci 28
Nomic - Wikipedia, the free encyclopedia
I wonder: this may actually be a great way to test how a democratic system works in the long term. It's a like a microcosm version of democratic government, with players exploiting the boundaries of law (for profit?).
politics
logic
compsci
development
philosophy
game
6 weeks ago by gordonbrander
Nomic is a game created in 1982 by philosopher Peter Suber in which the rules of the game include mechanisms for the players to change those rules, usually beginning through a system of democratic voting.
I wonder: this may actually be a great way to test how a democratic system works in the long term. It's a like a microcosm version of democratic government, with players exploiting the boundaries of law (for profit?).
6 weeks ago by gordonbrander
Reflective Facilities in Smalltalk-80
So, actually, it sounds like SmallTalk 80 did bind message names to method names, much like JavaScript or any other OOP language. Earlier versions of the language did not. It sounds like Actor-based languages work essentially the way I expected SmallTalk would.
compsci
development
web
oop
smalltalk
6 weeks ago by gordonbrander
When a message is sent to a Smalltalk-80 object, the method dictionaries associated with that object's class and its superclasses are searched at runtime. If none of these classes implement a method for a given message, the Smalltalk virtual machine sends the object the message doesNotUnderstand:. The original message selector and message arguments are bundled together in a Message object and passed as the argument to doesNotUnderstand:. The default method for this message is stored in class Object. This method invokes the Smalltalk debugger, since sending an object a message it does not implement is usually a sign of programmer error. However, objects that override doesNotUnderstand: can intercept unimplemented message at runtime, and process them as they see fit.
So, actually, it sounds like SmallTalk 80 did bind message names to method names, much like JavaScript or any other OOP language. Earlier versions of the language did not. It sounds like Actor-based languages work essentially the way I expected SmallTalk would.
6 weeks ago by gordonbrander
Scripting: Higher Level Programming for the 21st Century
JavaScript's prototypal inheritance side-steps the implementation inheritance issue by making everything implemented by the class observable on a prototype object.
development
javascript
compsci
web
pattern
6 weeks ago by gordonbrander
Implementation inheritance... is a bad idea that makes software harder to manage and reuse. It binds the implementations of classes together so that neither class can be understood without the other: a subclass cannot be understood without knowing how the inherited methods are implemented in its superclass, and a superclass cannot be understood without knowing how its methods are inherited in subclasses. In a complex class hierarchy, no individual class can be understood without understanding all the other classes in the hierarchy.
Nonetheless, object oriented programming does provide at least two useful features. The first is encapsulation: objects combine together data and code in a way that hides implementation details. The second useful feature is interface inheritance, which refers to classes that provide the same methods and APIs even though they have different implementations. This makes the classes interchangeable, which encourages reuse.
JavaScript's prototypal inheritance side-steps the implementation inheritance issue by making everything implemented by the class observable on a prototype object.
6 weeks ago by gordonbrander
PaulBarry.com - Tail Call Optimization
6 weeks ago by gordonbrander
How to do tail call optimization by hand in JavaScript.
functional
JavaScript
learn
compsci
development
web
from iphone
6 weeks ago by gordonbrander
Futures and promises - Wikipedia, the free encyclopedia
6 weeks ago by gordonbrander
Promises are composable and pipeline-able.
functional
development
web
compsci
commonjs
6 weeks ago by gordonbrander
Introduction to Arrowlets
javascript
haskell
functional
web
development
compsci
reactiveprogramming
7 weeks ago by gordonbrander
Arrowlets is a JavaScript library that uses the concept of arrows to make the task of composing event-handlers easy. Event handlers are written as normal functions, as you would today, and Arrowlets provide flexible combinators to easily compose sequence of events, animation, asynchronous network access, and making long-running computations while keeping the UI responsive.
7 weeks ago by gordonbrander
jQuery is a Monad « Important Shock
7 weeks ago by gordonbrander
...Basically, it treats `this` as an implied first parameter.
jquery
javascript
functional
development
compsci
7 weeks ago by gordonbrander
Twitter / @littlecalculist: Wow. Promises are a polymo ...
functional
development
compsci
7 weeks ago by gordonbrander
Wow. Promises are a polymorphic equi-recursive abstract structural type encoding a monadic style of asynchronous programming. In JavaScript.
7 weeks ago by gordonbrander
Functional programming - HaskellWiki
7 weeks ago by gordonbrander
A great summary of the concepts that make up functional languages.
haskell
functional
compsci
learn
development
7 weeks ago by gordonbrander
Less Sugar/More Meat » Blog Archive » Introducing Reactive: Events
functional
haskell
development
web
compsci
learn
reactiveprogramming
7 weeks ago by gordonbrander
Semantically, Events can be thought of as lists of time/value pairs where the times are non-decreasing
7 weeks ago by gordonbrander
The Reactive Extensions for JavaScript – Event Composition – Calyptus Life
8 weeks ago by gordonbrander
References to talks and frameworks.
JavaScript
functional
compsci
development
web
reactiveprogramming
from iphone
8 weeks ago by gordonbrander
What is Reactive Programming? - Paul Stovell
8 weeks ago by gordonbrander
A fun explanation in story form. Reactive programming could be implemented as event-driven observables or through an event loop.
functional
development
web
JavaScript
learn
compsci
reactiveprogramming
from iphone
8 weeks ago by gordonbrander
Functional reactive programming - Wikipedia, the free encyclopedia
8 weeks ago by gordonbrander
Event-driven functional programming.
functional
JavaScript
development
web
compsci
learn
reactiveprogramming
from iphone
8 weeks ago by gordonbrander
JavaScript’s two zeros
9 weeks ago by gordonbrander
Ah geeze, in JavaScript, -0 is a thing. Though -0 === +0, it is not the same in bits.
javascript
development
web
compsci
The canonical solution for determining the sign of a zero is to divide one by it and then check whether the result is -Infinity or +Infinity
9 weeks ago by gordonbrander
Expression problem - Wikipedia, the free encyclopedia
12 weeks ago by gordonbrander
As quoted by Brendan Eich:
http://twitter.com/pcwalton/status/176741289700769792
compsci
development
pattern
functional
oop
learn
Denial that the expression problem exists is a common symptom of overzealous functional or object-oriented dogmatism.
http://twitter.com/pcwalton/status/176741289700769792
12 weeks ago by gordonbrander
Haskell/Category theory - Wikibooks, open books for an open world
12 weeks ago by gordonbrander
An overview of category theory using the Haskell language.
haskell
math
compsci
development
learn
from iphone
12 weeks ago by gordonbrander
johnbender.us - Faster Javascript Through Category Theory
12 weeks ago by gordonbrander
Examines jQuery through the lens of category theory.
development
web
jquery
math
compsci
learn
javascript
oop
12 weeks ago by gordonbrander
Up and Down the Ladder of Abstraction
compsci
visualization
design
development
math
learn
february 2012 by gordonbrander
How can we design systems when we don't know what we're doing?
The most exciting engineering challenges lie on the boundary of theory and the unknown. Not so unknown that they're hopeless, but not enough theory to predict the results of our decisions. Systems at this boundary often rely on emergent behavior — high-level effects that arise indirectly from low-level interactions.
When designing at this boundary, the challenge lies not in constructing the system, but in understanding it. In the absence of theory, we must develop an intuition to guide our decisions. The design process is thus one of exploration and discovery.
february 2012 by gordonbrander
What increases when a self-organizing system organizes itself? Logical depth to the rescue. | The Quantum Pontiff
february 2012 by gordonbrander
Fancy this. A discourse on simple changes producing complex, organized results.
development
compsci
science
math
philosophy
february 2012 by gordonbrander
How I Learned to Stop Worrying and Love Erlang's Process Dictionary
february 2012 by gordonbrander
Hash table based languages and functional programming.
development
compsci
learn
from iphone
february 2012 by gordonbrander
Understanding Computation
Yes, please.
development
compsci
book
learn
february 2012 by gordonbrander
As of February 2012 I’m writing a book for O’Reilly Media. Its working title is “Understanding Computation”.
It’s a book about old, deep ideas from theoretical computer science, deconstructed and explained in an engaging, practical way for an audience of working programmers.
Yes, please.
february 2012 by gordonbrander
bl.ocks.org - 1893974 - Mitchell's Best-Candidate
An interesting way to generate noise.
javascript
visualization
art
math
compsci
development
february 2012 by gordonbrander
Mitchell's best-candidate algorithm generates a new random sample by creating k candidate samples, and picking the best of k. Here the "best" sample is defined as the sample that is farthest away from previous samples.
An interesting way to generate noise.
february 2012 by gordonbrander
Coursera
february 2012 by gordonbrander
An online CompSci course started by a Stanford professor.
stanford
teaching
school
disruption
compsci
development
february 2012 by gordonbrander
Structure and Interpretation of Computer Programs: MIT Press
january 2012 by gordonbrander
They put the whole book online!
development
pattern
learn
book
school
teaching
lisp
compsci
january 2012 by gordonbrander
Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I
october 2011 by gordonbrander
Paper by John McCarthy, creator of Lisp.
compsci
development
philosophy
pattern
essay
october 2011 by gordonbrander
related tags
art ⊕ book ⊕ categorytheory ⊕ commonjs ⊕ compsci ⊖ design ⊕ development ⊕ disruption ⊕ essay ⊕ film ⊕ functional ⊕ game ⊕ haskell ⊕ javascript ⊕ jquery ⊕ learn ⊕ lisp ⊕ logic ⊕ math ⊕ oop ⊕ pattern ⊕ philosophy ⊕ politics ⊕ reactiveprogramming ⊕ school ⊕ science ⊕ smalltalk ⊕ stanford ⊕ teaching ⊕ via:stuhlmueller ⊕ visualization ⊕ web ⊕Copy this bookmark: