Angel \”Java\” Lopez on Blog

April 5, 2014

Always Be Coding

Filed under: Open Source Projects, Programming Languages, Software Development — ajlopez @ 10:49 am

As a professional software developer, we should pursue to be better programmers. One activity I adopted some years ago, is: "Always Be Coding”. Every day, write a piece of code. Try something new. Improve something old. Open your brain. Explore a new path. Learn a new language. Practice TDD every day. Push for simplicity. Start a simple project “Hello world” using new technology or operating system. Write a simple web site using the new web framework in the block. If you write C# or Java, try Ruby or Clojure. If you use Ruby on Rails, try Sinatra, or make a switch to Python and Django. If you like Lisp, try ClojureScript for a web project. If you like Smalltalk, try Pharo and Seaside. If you are a programming language geek, go for Rust, Go, Dart. If you write ASP.NET MVC for a living, try SignalR, then Node.js and Socket.IO. Change your editor. Change your programming language. Or write your own.

Even if all these languages, technologies, libraries, and frameworks are not in your “daily work”, the new insights are welcome. And the constant practice makes the master. If you keep the brain open, new ideas could fertilize your mind and your skill toolbox. In our profession, the change is the only constant. Altought there are other things to practice, “soft” skills, teamwork, you (and me) should be trained every day.

So, to put my money where my mouth is, every day I write a piece of code, in public and non-public projects. Partial evidence:

That’s is my public commitment: to write code every day. To learn something new, to practice an skill, to explore a new way of doing things. Always be coding

More fun is coming.

Original photo from

Keep tuned!

Angel “Java” Lopez

April 3, 2014

New Month’s Resolutions: April 2014

Review of my March’s resolutions:

- Work on DictSharp [complete] see repo
- Give talk about Node.js Distributed Applications [complete] see repo see online slides
- Improve SimpleGammon [complete] see repo
- Improve Annalisa [complete] see repo
- Add @for to Templie [pending]
- Work on PreciosaAnnalisa online web services [complete] see repo
- Improve my Node.js Distributes Applications samples [complete] see repo see repo see repo
- Work on ScalaSharp [complete] see repo
- Improve ClojSharp [complete] see repo
- Improve SimpleAsync, do operation (functions in parallel) [pending]
- Improve Aktores [pending]
- Distributed messages in AjErl [pending]
- Add variable scope to Mass language [pending]
- Start code generation as a service [partial]

Additionally, I worked on:

- Complexo, simple complex numbers operations in JavaScript [complete] see repo
- Started RustScript, a Rust programming language interpreter in JavaScript [complete] see repo
- Continue RuScript, a Ruby interpreter in JavaScript [complete] see repo
- Continue RubySharp, a Ruby interpreter in C# [complete] see repo
- Started AjLispScala, a Lisp interpreter in Scala, using TDD and SBT [complete] see repo
- Recorded a second video Node.js Spanish tutorial [complete] see post

For this new month, my resolutions are:

- Continue AjLispScala
- Continue AjGenesisNode-Express
- Continue AjGenesisNode-PHP
- Continue RuScript
- Continue RustScript
- Distributed Messages in AjErl
- Give a talk Intro to Node.js
- Publish a new Node.js video tutorial

More fun is coming.

Keep tuned!

Angel “Java” Lopez

March 5, 2014

End Of Iteration 2014w09

Previous Post
Next Post

More interesting stuff for my neuron, and deliberate TDD (Test-Driven Development) practice.


A lot of new work at

It takes an string and extract information based on rules. For example, it can detect the brand of a product description, its weight, weight unit, etc. I put an online demo in Spanish for analyze or search into Preciosa project data:


I started a simple in-process, in-memory key/value store in C#:

A dictionary with a an internal tree, instead of using hashes. I should complete the node split operation, enumerate the keys, and compress the keys. A key is an string, and the associated value could be typed or a generic object.


Motivated by a use case of Preciosa project, I wrote:

A simple JavaScript module to manage a list of geolocated items (via latitude, longitude), and then retrieve the items near a point in a given radius.


I refactored my in-memory repository:

to support optional autonumeric ids, and tests using SimpleUnit. Notably, I found an issue: SimpleUnit can be installed as global module in NPM (Node Package Manager) but the bin file has a shebang (!#) in the first line, ending with \r\n (carriage return line feed). Then, Linux operating system take the shebang, and use it as the name of the program to execute the script, WITH THE CARRIAGE RETURN in the name. So, I fixed it removing the carriage return. Weird thing in the third millenium. I updated

to have no carriage return in bin scripts.


I worked on two non-public projects, using C#. I started my Python samples I added some nodes to AST (Abstract Syntax Tree) in

More fun is coming.

Keep tuned!

Angel “Java” Lopez

January 23, 2014

Erlang: Links, News And Resources (6)

Previous Post
Next Post

Elixir – A modern approach to programming for the Erlang VM on Vimeo

15 Erlang – Distributed Programs – Node Creation – YouTube

JLOUIS Ramblings: Acme as an editor

Erlang/OTP at EE: journey and lessons learned – Erlang User Group (London, England) – Meetup

Erlang Factory – Dublin Erlang Factory Lite 2013 – Register

Aprendiendo Erlang: Comunicación entre procesos (Ping-Pong).

Erlang — Concurrent Programming

extend/bullet · GitHub
Bullet is a Cowboy handler and associated Javascript library for maintaining a persistent connection between a client and a server.

duomark/erlangsp · GitHub
Erlang Services Platform

Erlang the movie II the sequel

Erlang-style Supervisor Module for Scala Actors ←

Open Telecom Platform – Wikipedia, the free encyclopedia

What They Don’t Teach You About Running a Business When Taking Your CS Degree

Parsing packets Erlang style using core.logic

ErlangDC 2013 Conference

jacobgroundwater/federation · GitHub
Node.js. Federation is inspired by Akka and Erlang, and borrows some semantics from the actor model.

Federation by jacobgroundwater
Federation is a federated message network for distributed environments

Programming Rules

[erlang-questions] hobbyists, erlang, elixir (was Improve $handle_undefined_function)

Merge branch ‘bjorn/remove-parameterized-modules/OTP-10616′ · 35adf88 · erlang/otp

Persisting your entities in erlang

My Links

Keep tuned!

Angel “Java” Lopez

January 12, 2014

New Month’s Resolutions: January 2014

A bit late, I was busy these days.

Review of my December’s Resolutions:

- Give a one-day Node.js course [complete]
- Refactor and improve CobolScript [partial] see repo
- Continue writing Ruby to JavaScript compiler [complete] see repo
- Variable scope in Mass language [pending]
- More modules in AjTalkJs [pending]

I was working on:

- Code generation using AjGenesis for Node, and templates for Express [complete]
- Started DylanSharp, Dylan interpreter in C# [complete] see repo
- Start to revamping old PHP websited [complete] see repo and repo
- Start support for modules and REPL to AjErl, my Erlang interpreter in C# [complete] see repo

My new month’s resolutions are:

- Start to implement Akka-like actor model in C#
- Start to implement Scala interpreter in JavaScript
- Work on AjErl
- Work on Mass (I have many ideas to implement as module pattern and variable scope access)
- Work on DylanSharp
- Start an implementation of ML (JavaScript? C#?)

More fun is comming

Keep tuned!

Angel “Java” Lopez

January 10, 2014

Erlang: Links, News And Resources (5)

Previous Post
Next Post

I have more links about this interesting programming language and distributed technology:

Erlang/OTP: Volumen I, Un Mundo Concurrente | Bosque Viejo


High Scalability – High Scalability – BigData using Erlang, C and Lisp to Fight the Tsunami of Mobile Data

What Can Be Done with Java but Should Better Be Done with Erlang

Erjang is a virtual machine for Erlang, which runs on Java

What’s Your Next JVM Language?

The Erlang stack | the web dev

Erlang stdlib extensions

Elixir v0.7.1 released and the end of a journey – Elixir

Erlang Scales … Do You?

Lambda Luminaries (Pretoria) – Meetup

Erlang: Is Elixir ( production ready? – Quora

Elixir is a functional meta-programming aware language built on top of the Erlang VM

Why I Program In Erlang

I hope Wittgenstein would approve /

Episode 12 – Isaac Schlueter –

My Links

Keep tuned!

Angel “Java” Lopez

January 3, 2014

Erlang: Links, News And Resources (4)

Filed under: Programming Languages, Functional Programming, Links, Erlang — ajlopez @ 4:34 pm

Previous Post
Next Post

I’m very interested in this programming languages, and I’m working on a C# Interpreter implementation. More links:

OTP Technical Board – Decisions affecting R16.

aerosol / vimerl
The Erlang plugin for Vim

Errors and Exceptions

Live Blogging: getting started with Erlang and Nitrogen

A DSL for Scripting Refactoring in Erlang
Simon Thompson introduces Wrangler, a refactoring tool written in Erlang for Erlang code and embeddable in common IDEs, such as Emacs and Eclipse.

Joxa is a small semantically clean, functional lisp. It is a general-purpose language encouraging interactive development and a functional programming style. Joxa runs on the Erlang Virtual Machine. Like other Lisps, Joxa treats code as data and has a full (unhygienic) macro system.

Erlang Solutions’s Videos

Scaling to Millions of Simultaneous Connections: Rick Reed

Chicago Boss
Just install Erlang on your computer, download Chicago Boss, and follow the simple instructions. You’ll be ready to work on your first prototype in minutes.

Rebar Releases and Being Wrong

Erlang on Xen

Concurrency Among Strangers
Programming in E as Plan Coordination

ErlPort – Erlang port protocol for Python

Webmachine: a Practical Executable Model of HTTP

ericmoritz / wsdemo
C10K Websocket Test

Distribution Protocol

External Term Format
The external term format is mainly used in the distribution mechanism of Erlang.

Erlang, do they really understand?

Estructura Lider/Trabajador en Erlang

No, Erlang no es eso

Erlang: Servidores Concurrentes TCP

Erlang: Servidores UDP

Building Polyglot Systems with Scalang
Cliff Moon discusses Scalang, a message passing and actor library enabling easy communication between Scala and Erlang apps, wrapping services in Scalang actors.

Erlang Tools and Packages

Learn you some Erlang

Building Highly Available Systems in Erlang
Joe Armstrong discusses highly available (HA) systems, introducing different types of HA systems and data, HA architecture and algorithms, 6 rules of HA, and how HA is done with Erlang.

Higher Order Functions

My Links

Keep tuned!

Angel “Java” Lopez

January 1, 2014

Erlang: Links, News And Resources (3)

Filed under: Programming Languages, Functional Programming, Links, Erlang — ajlopez @ 8:42 pm

Previous Post
Next Post

Brief Introduction to Parse Transformations

Differences between pattern matching and unification?

mashion/chloe · GitHub
A realtime web server that doesn’t suck… or at least won’t suck when it’s finished.

InfoQ: Chloe and the Real Time Web

.NET Rocks! Bryan Hunter and OJ Reeves Program in Erlang

Erlang EUnit – introduction « Erlang, Testing and TDD

Dizzy Smith – Building Erlang Applications With Rebar

Erlang Factory – Dave Smith, YAED. Author of rebar and bitcask

How to create, build, and run an Erlang OTP application using Rebar | Skeptomai

Richard Jones | Erlang rebar tutorial: generating releases and upgrades

Rebar – Erlang Web wiki

Erlang App. Management with Rebar


Erlang – Leex and Yecc []

Qrly – selectores a lo jquery para XML y HTML en erlang


Distributed OTP Applications | Learn You Some Erlang for Great Good!

generate HTML (or XML) using CSS-like selectors in erlang

Erlang Factory: Chad DePue: Lua Integration with Erlang

Erlang Factory – Chad DePue, Entrepreneur and creator of

Inaka Networks: Scaling Erlang

Inaka Networks
Erlang programming from Argentina (ex-Microsoft founder)

Seth Ladd’s Blog: Calculating Combinations the Erlang Way

Generate permutations iteratively without recursion or stack with Ruby/Erlang

erlang – How to effectively store a large set of permutations? – Stack Overflow

recursion – Generate custom permutations with Erlang – Stack Overflow

Permutations – Rosetta Code

Erlang Solutions’s videos on Vimeo

Charla: Gestión de Llamadas con Erlang/OTP | Bosque Viejo

Philip Wadler’s home page

Concurrency in Erlang & Scala: The Actor Model / Ruben Vermeersch (RubenV)

What is actor model in context of a programming language?

Reia Programming Language
Reia is a Ruby-like scripting language for the Erlang virtual machine. Reia brings you the best of both worlds between Ruby’s friendly syntax, reflection, metaprogramming, and the amazing power of blocks, and Erlang’s immense abilities for concurrency, distribution, hot code swapping, and fault tolerance.

My Links

Keep tuned!

Angel “Java” Lopez

December 30, 2013

Clojure: Links, News And Resources (11)

Filed under: Clojure, Functional Programming, Links, Lisp, Programming Languages — ajlopez @ 4:43 pm

Previous Post

I have ten additional posts in my Clojure queue. A new one:

Clojure and the future for programmers like me
Attitudes common in the Clojure community are making that community increasingly unappealing to people like me. They may also be leading to a language less appealing to people like me than a Lisp should be.

A world in a ref

A tour of the Clojure landscape

Introduction to Clojure
by @stuartsierra at #strangeloop

Writing CouchDB Views using ClojureScript

Clojure Lisp Programming

frenchy64 / typed-clojure
Gradual typing for Clojure

Browser the open-source Clojure ecosystem

A TDD library for Clojure that supports top-down (‘mockish’) TDD, encourages readable tests, provides a smooth migration path from clojure.test, balances abstraction and concreteness, and strives for graciousness.

Laziness: the Good, the Bad, and the Ugly

The London Clojure Community:Persistent Data Structures in Clojure

Learning Clojure: Leiningen

The Curious Clojurist with Neal Ford

The Value of Values – Rich Hickey

Clojure Programming

Prismatic’s "Graph" at Strange Loop

Ruby + Clojure = Rouge

Clojure Tetris


Macros are Hard!

Writing Datomic in Clojure

Why Clojure?

My Links

Keep tuned!

Angel “Java” Lopez

December 12, 2013

Python: Links, News And Resources (14)

Filed under: Links, Programming Languages, Python — ajlopez @ 5:07 pm

Previous Post

A test fixtures replacement for Python

Introducción a Tryton Application Platform // Speaker Deck

exception – Try/Catch in Python – Stack Overflow

Open Source Game


Creando un SCADA con Python y HTML5

Virtual machines should be invisible

PyCon Argentina 2012 – Design Patterns en Python // Speaker Deck

Python 2 debe morir // Speaker Deck

PyCon 2012

python – How to install pip on windows? – Stack Overflow

Flask – El microframework que revoluciona el mundo // Speaker Deck

pilas-engine – haciendo juegos en medio de la revolución // Speaker Deck

slides/ponete-pilas-django at master · machinalis/slides

slides/javascript-para-programadores-python at master · machinalis/slides

¡ Bienvenido a pilas !
Game Engine

A Simple Python NodeVisitor Example

Eli Bendersky’s website » Blog Archive » Python internals: Working with Python ASTs

Blender – Python

Watch PyDay Rafaela Episodes | Blip

Twitter / reingart: Introducción a Sugar en @pyconar …

Jython 2.7 and techniques for integrating with Java – Frank Wierzbicki

Java Empowered by Jython

My Links

Keep tuned!

Angel “Java” Lopez

« Newer PostsOlder Posts »

Theme: Shocking Blue Green. Get a free blog at


Get every new post delivered to your Inbox.

Join 67 other followers