Recently Updated Pages
SharingDataStructures.html (Thu, 17 Sep 2009 17:34:59 GMT)
Sharing Data Structures
Introduction
Converting an Existing Term
Sending a Term in a Message
Introduction
On the list recently, the question of ensuring maximal sharing of an Erlang term came up.
I've run into several cases where enforcing the sharing of data resulted in a significant memory savings. I'm talking about...
mnesia/OrderedBy.html (Mon, 27 Jul 2009 03:56:56 GMT)
Mnesia Ordered By Queries
Table of Contents
Introduction
Inefficient General Solution
Efficient Solution: Primary Key
Efficient General Solution: Secondary Sorted Index
Introduction
Mnesia is not a relational database engine; it's better described as a distributed transactional key-value store. Relational databases do...
Counters.html (Sat, 18 Jul 2009 00:36:41 GMT)
Implementing a Counter in Erlang
Table of Contents
Introduction
Slower but Ideologically Pure
Faster
Introduction
Erlang, as a functional language, strives for a side-effect free sequential syntax. Sometimes side-effects are desirable, the classic example being the collection of serving statistics .
I want to add...
index.html (Fri, 17 Jul 2009 20:19:18 GMT)
Welcome
This is a site devoted to providing color commentary for erlang questions . You can peruse the recently updated content indicated in the left bar, or you can check out the index of all content.
I am also working on a searchable socialized Erlang Questions archive . I'm slowly populating it with messages...
mnesia/DistributedHelloWorld.html (Tue, 07 Jul 2009 17:15:08 GMT)
Mnesia Distributed Hello World
Table of Contents
Introduction
Hello World
Problem Solved
Dynamic Maintenance
Schema
Other Tables
Introduction
One of the simultaneously coolest and most challenging features of Mnesia is distributed operation. Before even tackling the complexities of managing failure cases, some...
mnesia/SchemaFree.html (Fri, 03 Jul 2009 00:25:25 GMT)
Mnesia Schema Free Operation
Introduction
Most programmers are aware of the distinction between statically typed and dynamically typed programming languages, with respective advantages and disadvantages. Analogously, databases can be schema driven or schema-free. All relational database engines that I am familiar...
mnesia/SchemaMaintenance.html (Thu, 02 Jul 2009 23:20:14 GMT)
Mnesia Schema Maintenance
Table of Contents
Introduction
Basics: Making Sure Tables are There
Advanced: Schema Migrations
Introduction
Any database driven application faces the problem of initialization and maintenance of the data store in conjunction with the rest of the application, and Mnesia driven applications are...
about/infrastructure.html (Fri, 26 Jun 2009 21:05:05 GMT)
About the Site
The site consists of a document store written in Mnesia , a serving layer provided by inets httpd , a presentation layer which leverages Nitrogen , and an editing interface which leverages TinyMCE . ( CouchDB looked like a good choice for the document store, but I am super familiar with Mnesia so that was...
PrivilegedPort.html (Wed, 24 Jun 2009 23:07:16 GMT)
Binding to a Privileged Port
Table of Contents
Introduction
Do not do this: setuid beam as root
Port forwarding
Capabilities
Reverse proxy
Disable privileged ports
Introduction
Erlang is a natural fit for web applications and there are several webservers available for Erlang. Since ports 80 and 443 are privileged...
facebook/VerifySignature.html (Sun, 21 Jun 2009 18:33:45 GMT)
Verifying a Facebook Connect Signature
This site uses Facebook connect to authenticate. Basically, Facebook javascript sets cookies in my domain (erlanganswers.com) which the server can read, and one of these cookies contains a user id. In order to prevent malicious persons from faking authentication by setting...
mnesia/EqualsIgnoresCase.html (Sat, 20 Jun 2009 15:10:56 GMT)
Mnesia Equals Ignores Case Query
Table of Contents
Introduction
Maintain the Data Canonicalized
Match Specification Solution
Secondary Index Solution
Introduction
Many more people know SQL than know Mnesia, so questions about how to translate a particular SQL construct into Mnesia arise frequently on the list, and in...
ComplexCasePatterns.html (Wed, 17 Jun 2009 22:10:45 GMT)
Complex Case Patterns
Table of Contents
Introduction
Disjunctive Guards
Universal Clause
Transform Expression
Introduction
Erlang case statements have clauses that are guards, and since they can do pattern matching the case statement resembles conditional constructs from other languages. However the correspondence...
VersionedVariables.html (Wed, 17 Jun 2009 18:21:22 GMT)
Versioned Variables
Table of Contents
Introduction
Numbered Variables
Function Arguments
Introduce New Scope
Named Functions
List Comprehensions
Anonymous Functions
Let Construct
Folding
Introduction
Erlang doesn't have an assignment operator, but it has a pattern matching operator that looks like one. The first...
About Me
My name is Paul Mineiro. I'm an avid user of Erlang and an avid reader of the Erlang Questions mailing list. I am available for consulting work. I use purple alot on this site because it is my daughter's favorite color.




