links for 2007-08-08

Learning Erlang

After reading some exciting posts about Erlang, I decided to find out for myself what this language is all about. So I ordered Programming Erlang. Software for a Concurrent World, from the Pragmatic Bookshelf, and today I received my copy of the book.

It’s about concurrency. It’s about distribution. It’s about fault tolerance. It’s about functional programming. It’s about programming a distributed concurrent system without locks and mutexes but using only pure message parsing. It’s about speeding up your programs on multi-core CPUs. It’s about writing distributed applications that allow people to interact with each other. It’s about design methods and behaviors for writing fault-tolerant and distributed systems. It’s about modeling concurrency and mapping those models onto computer programs, a process I call concurrency-oriented programming.

I don’t have time right now to dive into it too deep, I just started reading the first chapter, and I am already shocked.

Erlang has single assignment variables. As the name suggests, single assignment variables can be given a value only once. If you try to change the value of a variable once it has been set, then you’ll get an error.

Wondering why?

If you use a conventional programming language such as C or Java to program a multi-core CPU, then you will have to contend with the problem of shared memory. In order not to corrupt shared memory, the memory has to be locked while it is accessed. … In Erlang, there is no mutable state, there is no shared memory, and there are no locks. This makes it easy to parallelize our programs.

I am sure I will have lots of fun learning it!

Comments

Comment by xavier on 2007-09-11 02:08:02 +0000

I’m green with envy! You are making good progress!

When you posted this I was about to tell you that I was interested in joining you in the Erlang adventure, but after checking the huge backlog of non-day job projects I decided that this will have to wait…

My interest in Erlang was born when former IBM/Rational Doug Landauer named his great intranet blog as Pyscerocha, after Python, Scala, Erlang, OCaml, and Haskell.

In the last months, bcn’s IBM Claudi Paniagua’s event driven architectures and event processing evangelizing in the coffee machine and elsewhere has made me think more and more about the need to check how would Erlang fit that model.

links for 2007-08-03

WP-chgFontSize WordPress plugin v1.1 released

I have updated the WP-chgFontSize WordPress plugin to add some user suggestions:

  • Bug: use get_bloginfo(’wpurl’) instead of get_bloginfo(’url’).
  • New feature: option to restore default font size.
  • New feature: be able to specify min, max and interval values for the font size.
  • New feature: be able to use pixels, ems and percentages units for the font size.

You can download the new version v1.1 at the WordPress Plugins Directory.

Eclipse Process Framework 1.2 has been released

Per Kroll (EPF Project Lead) has announced that yesterday it has been released EPF 1.2, which you can download on the EPF Composer Download page.

EPF Composer 1.2 – New Features and Key Improvements

  • Improved Diagram Editor

  • Diagram editor has been completely reimplemented

  • Provides swimlanes, control flow labels, free-form drawing, and font styles

  • Files can be saved in GIF, JPG, or BMP format

  • Improved Rich Text Editor

  • Font family and size can be changed

  • Content cut from Microsoft Word can be pasted as plain text

  • Links and images can be added in the HTML view

  • Improved HTML error markers and correction features

  • Improved Configuration Editor

  • Processes can be fine-tuned by adding or removing categorized elements

  • Improved configuration error reporting for Method Configurations and Method Libraries

  • Current view is highlighted in configuration editor

  • Configuration views can be ordered

  • Improved Process Editor

  • Activities are displayed with indented and outdented elements

  • All tasks at any level can be suppressed

  • Activities can have multiple descriptors

  • Additional platform support

  • Vista

      • Internet Explorer 7
      • Mozilla FireFox 2
      • Subversion
      • Eclipse 3.3
    • Other Improvements
    • New plug-in naming convention allows plug-ins to be displayed in hierarchical lists
    • Published sites on application servers can implement server-based search
    • GUIDs are no longer present in published filenames
    • A new variability type is provided: Extends and Replaces
    • Elements in categories can be ordered alphabetically, manually, or by type