Videos tagged with Erlang
Summary Brian Goetz discusses the difficulties of creating multithreaded programs correctly, incorrect synchronization, race conditions, deadlock, Software Transactional Memory, the history of concurrency, alternatives to threads, Erlang, Scala, and recommendations for concurrency in Java. Bio Brian Goetz has been a professional software developer for 20 years. He is the author of over 75 artic...
Erlang in Practice Episode 6: Adding REST Support with MochiWeb
It’s time to scale our chat system out to the web! In this episode, we’ll use the MochiWeb toolkit to make our chat system available to HTTP clients using REST conventions. You’ll learn how to: download, build, and install Mochiweb write a basic Erlang web server using MochiWeb use Erlang’s experimental support for parameterized modules add REST-style endpoints to the ch...
Guy Steele on Programming Languages
Summary Sun Fellow Guy Steele is interviewed by Floyd Marinescu, co-founder of InfoQ, and Bobby Norton of ThoughtWorks. Guy works for the Programming Language Research Group. The interview focuses on programming languages, the lessons to be learned from the past and what to expect from the future. Bio Guy Steele is a Sun Fellow for Sun Microsystems Laboratories, working on the Programming Langu...
Erlang in Practice Episode 5: Unit Testing with EUnit
Testing is the cornerstone of writing software that works. In this episode, we’ll take a break from the chat system and focus on how to do test-driven development in Erlang using the EUnit testing framework. You’ll learn how to: get started with EUnit write test specifications with EUnit macros use EUnit test generators to add flexibility to unit tests set up and tear down test envi...
MountainWest RubyConf 2008: Next Generation Data Storage with CouchDB
CouchDB is designed for highly concurrent, distributed and fault tolerant systems. The core principles for scaling database applications are the foundation of CouchDB's feature set. It supports on- and offline replication, data partitioning, a REST interface that uses JSON for data transport (Web 2.0 anyone?), a fault tolerant runtime environment built on Erlang/OTP and a sophisticated view eng...
dnrTV Show #93: Venkat Subramaniam on Functional Programming in Erlang
Summary Venkat Subramaniam introduces the concepts of functional programming with Erlang, an open source functional language, setting the stage for F# on a future show. Bio Venkat is an agile developer who teaches and mentors. He has significant experience in architecture, design and development of distributed object systems. He has worked in positions, from Programmer Analyst to Systems Archit...
Erlang in Practice Episode 4: Storing Messages in the Mnesia Database
We’ll add store and forward capabilities for more robust messaging using the Mnesia database. You’ll learn how to: create Mnesia records and an Mnesia database store messages for offline chat clients query Mnesia using the QLC module forward stored messages to online chat clients delete messages in an Mnesia transaction
Erlang in Practice Episode 3: Distributing Clients In A Multi-node Environment
We’ll take the single-node chat application and distribute it across multiple Erlang nodes using distributed Erlang features. You’ll learn how to: set up two (or more) Erlang nodes use distributed Erlang to exchange messages across nodes use the global module with distributed locking
Erlang in Practice Episode 2: Messaging Clients By Nickname
We’ll create a client nickname directory using an Erlang dictionary so that clients can send messages to each other using the nickname. You’ll learn how to: pass function references between processes use a dictionary to register chat clients by nickname register processes with the Erlang runtime create anonymous functions refactor Erlang code
Erlang in Practice Episode 1: Sending and Receiving Chat Messages
We’ll send and receive messages between a chat client and a message router running in a single Erlang node. You’ll learn how to: send messages to other Erlang processes use a receive block to receive messages from other processes use tuples to pattern-match messages spawn new processes implement tail recursion