Angel \”Java\” Lopez on Blog

December 10, 2013

End Of Iteration 2013w49

Previous Post
Next Post

Node.js Course

I gave a one-day Node.js course, at Buenos Aires. I presented:

- JavaScript intro programming
- Node.js over V8, with only one JavaScript thread
- Node.js implementation of require
- Built-in modules, like fs, http, net, assert
- Elements of TDD with JavaScript/Node.js
- Using NPM for modules
- Samples
- Web apps using Express
- Real-Time client-server messaging using Socket.IO

My samples at

I used Mongo.DB for some samples. As a final sample, I used:

an excellent sample, with single page application, backbone.js, express, mongodb, and for real-time analytics

AjLisp in C#

I moved my old project from Google Code to GitHub

And I revamped it a bit: renaming primitive verbs, some internal refactors.

Other work

I updated expressions in RuScript

I added arithmetic expressions to AjErl, my Erlang interpreter in C#

I ported AjLispJs to use simpleunit for tests

I refactored CobolScript lexer and parser implementation

I converted ClojSharp, a Clojure-like interpreter in C#, to Visual Studio 2010

I was working in two non-public projects, and started a new one on Saturday.

Keep tuned!

Angel “Java” Lopez

December 9, 2013

Python: Links, News And Resources (13)

Filed under: Links, Programming Languages, Python — ajlopez @ 6:38 pm

Previous Post
Next Post

Singly, OAuth
Get started quickly with examples and libraries in Ruby (Rails, OmniAuth), Javascript (Node, Express), Python (Django), and more.

The Power of Pythonista 1.2
Pythonista is a well designed implementation of Python on iOS

7 Python Libraries you should know about

Python operator precedence

Strata NYC 2012 and PyData
A talk at Strata NYC on network visualization

Simple read only attributes with meta-class programming (Python recipe)

Camelot provides components for building business applications on top of Python, SQLAlchemy and Qt.  It is inspired by the Django admin interface.  You can use Camelot to develop both simple and complex business applications at warp speed.

Python @staticmethod vs @classmethod

What is the difference between @staticmethod and @classmethod in Python?

AMPPS is a stack of the Apache Web Server, MySQL, PHP, Perl, Python and SOFTACULOUS.

Associação Python Brasil: Time to call it a day

What does python print() function actually do?

The new print function in Python 3

PyCon 2012 Argentina, Projects

Tailing in Python

Why can’t Python handle true/false values as I expect?

#pythonIO webcast sobre Django

bconstantin / django_polymorphic

#pythonIO – segundo round de Web2Py

Frameworks de desarrollo de videojuegos en Python en el #PyConVe

Tv Stalker
diegosarmentero / tvstalker
Tv Shows social guide

My Links

Keep tuned!

Angel “Java” Lopez

December 7, 2013

Ruby: Links, News And Resources (7)

Filed under: Links, Programming Languages, Ruby — ajlopez @ 6:41 pm

Previous Post

Ruby for Kids

Composition Of Responsibility vs Interface Implementation

Python vs PHP vs Ruby

Dando los primero pasos en Ruby

Try Ruby

Episode 2 – All The Cool Kids Use Ruby

Shoes is a cross-platform toolkit for writing graphical apps easily and artfully using Ruby.

monkeybars / monkeybars-core
MVC GUI framework using JRuby and Swing

Rawr, a packaging and deployment tool, is all you’ll ever need for your JRuby projects. With Rawr, a simple, pre-generated configuration file turns your code into an executable jar, a .exe for Windows, and a .app for OS X.

Swing with JRuby: Developing a Desktop Application with the JRuby and Java Swing APIs

It creates a skelton .rb file from a .glade file.

Screencast: Coding Conway’s Game of Life in Ruby the TDD Way with RSpec

Shoes Roundup: Ruby GUI App Development Goodness

Rack (web server interface)

Fast, concurrent ruby web applications with EventMachine and EM::Synchrony

Integrate Shoes into Aptana Studio RadRails

Rack App from Scratch

rdebug Cheat Sheet

Intro to OWIN and Knack

My Links

Keep tuned!

Angel “Java” Lopez

November 24, 2013

Ruby: Links, News And Resources (6)

Filed under: Links, Programming Languages, Ruby — ajlopez @ 3:54 pm

Previous Post
Next Post

defunkt / resque
Resque is a Redis-backed Ruby library for creating background jobs, placing them on multiple queues, and processing them later.

bvandenbos / resque-scheduler
A light-weight job scheduling system built on top of resque

Understanding Rack

The Ruby Toolbox

Fiasco is a thin and modular layer on top of Rack inspired by Flask, Jinja2 and Cuba.

List of Ruby Web Frameworks

Cuba is a microframework for web applications.

An introduction to RSpec – Part I

Getting Started with RSpec – Looking for tutorials

Programming for the Web with Ruby

Ruby Guide

bbatsov / ruby-style-guide
A community-driven Ruby coding style guide

Programming Ruby, The Pragmatic Programmer’s Guide

Writing an API Wrapper in Ruby with TDD

Ruby is the New Smalltalk

Why I love Ruby (Part 1)

Lisp in 32 lines of Ruby

.NET to Ruby: Learning How to Write Tests, Part I

NET to Ruby: Learning How to Write Tests, Part II

A lightning talk by Gary Bernhardt from CodeMash 2012

luciolang / lucio
Lucio is a Lisp-like language running on Ruby

Languages, Verbosity, and Java

Infografía: Comparativa entre PHP, Ruby y Python

RSpec 2.8: The Popular Ruby BDD Tool Goes Supersonic

Slido: markdown to html5 slideshow

Monads in Ruby, Part 1: Introduction

My Links

Keep tuned!

Angel “Java” Lopez

November 1, 2013

Smalltalk: Links, News And Resources (17)

Filed under: Links, Programming Languages, Smalltalk — ajlopez @ 11:16 am

Previous Post

Pharo Smalltalk Developers – #assert:equals: feels backwards

Variables and Control Structures in Smalltalk

Smalltalk – Compare two strings for equality – Stack Overflow

Tutorial – Smalltalk basics

closures – Does Smalltalk support local variable in blocks? If not, why? – Stack Overflow

Why I love Smalltalk | Pablo’s blog

Bare metal Raspberry Pi Squeak

Jtalk presentation at ESUG’11 – Nicols Petton

Installing PhaROS « CAR: Components, Agents, and Robots

Approaching the Speed of Light: SSD Drives for GemStone/S | (gem)Stone Soup

PhaROS VirtualBox image « CAR: Components, Agents, and Robots

Germán Arduino: Again an argentinian project won the Innovation Technology Awards

First Tests of a Helper Robot in a Shopping Mall « CAR: Components, Agents, and Robots

Self: The Movie; – YouTube

Cog Blog :: About Cog

The Hitchhiker’s Guide to …: Graph-ET – charts for Pharo

Sunburst Visualization – YouTube

My Links

Angel “Java” Lopez

October 28, 2013

End Of Iteration 2013w43

Previous Post
Next Post

The week was dedicated to prepare and give a talk, and prepare this week next talk.


My Python to JavaScript transpiler, written using JavaScript. It runs on node.js and browser.

It can use Node.js modules using import, and it can run Python scripts in the browser.

I gave a talk at PyCon Argentina 2013. My slides at:


My Smalltalk-like VM in bytecodes and JavaScript, written in JavaScript.

Now, I can use Node.js modules, run in server and browser. Example:

I was working in minor refactoring of:

And I was working on two non-public projects: one in C#, in-memory OLAP, and another one in Java, with agile team.

This week I will give a talk about my Smalltalk implementations at Smalltalks 2013 Argentina:

More fun is coming.

Keep tuned!

Angel “Java” Lopez

October 17, 2013

RubySharp, Implementing Ruby In C# (2)

Filed under: C Sharp, Open Source Projects, Programming Languages, Ruby, RubySharp — ajlopez @ 7:11 pm

Previous Post

I’m working on my Ruby implementation as interpreter written in C#

Today I would like to show that I have implemented many expressions that can be evaluated:

I have implemented commands, too. Initially they were separated:

But now, expressions and commands implement the same interface, to compy with Ruby moto “every is a value”

Evaluate method receives a Context:

I should review if I want or not that Context object has reference to self and other fields. But I wrote all with TDD, so, I could refactor it at any moment.

A code sample, NameExpression .Evaluate method:

public object Evaluate(Context context)
    var result = context.GetValue(;

    if (result is IFunction)
        return ((IFunction)result).Apply(null, emptyvalues);

    return result;

Notice that I had to take into account the case: the name argument refers to a function. In Ruby, you can call a function simply using the name, the parenthesis are not mandatory.

Next steps: internal refactor, more commands and expressions.

Keep tuned!

Angel “Java” Lopez

October 14, 2013

RubySharp, implementing Ruby in C# (1)

Filed under: C Sharp, Open Source Projects, Programming Languages, Ruby, RubySharp — ajlopez @ 12:02 pm

Next Post

Every day I write code and push it to my GitHub account. The purpose is training: practice programming, programming languages and TDD (don’t forget TDD!).

I’m working in RubySharp in my spare time:

It is a Ruby interpreter written in C# (like PythonSharp, see posts). There are two solutions, with and without tests, so you can compile the small solucion witn Visual Studio Express. The solucion with tests:

I have commands and expressions. But I learned that in Ruby every is an expression, so now expressions and commands implements the same interface. The programming language Mass derived from ideas in RubySharp.

My tests (now are more tests):

To give evidence about “put my money where my mouth is”, you can check my commits at:

Next posts: implementation details, examples, scripting over .NET.

Keep tuned!

Angel “Java” Lopez

October 8, 2013

Scala: Links, News And Resources (6)

Filed under: Functional Programming, JVM, Links, Programming Languages, Scala — ajlopez @ 7:01 pm

Previous Post

Concurrent and Distributed Applications with Akka, Java and Scala
by @frodriguez

A better Java: Scala or Xtend?

Ken Little on Scaling Tumblr

Scala 2013: A Pragmatic Guide to Scala Adoption in Your Java Organization

Java NIO and Scala Continuations
Combining Java’s NIO non-blocking input/output with Scala’s delimited continuations allows making a multi-client stateful server that does not require a a dedicated thread for every active client.

ReactiveMongo for Scala: Unleashing MongoDB Streaming capabilities for Realtime Web

Effective Scala

Rúnar Bjarnason on Scalaz, Lenses, Functional Programming and Scala

Scala Adding Macros to the Language

janm399 / akka-patterns
Demonstration of the common Akka patterns

Java 8 vs Scala: a Feature Comparison

Why Scala? Our Take at Boundless

Scala, Functional Programming and Play 2.0
Sadek Drobi discusses functional programming sand Scala’s multi paradigm approach at QCon London 2012. He also shares insights into the new Play 2.0 framework.

Scala ou Java? Explorando mitos, polêmicas e fatos

A Startup Junkie’s Journey to Python via Java, Ruby and Scala

Programming Language Performance

Compile Online

Ozma: Extending Scala with Oz Concurrency

Workshop: Build an Image Processing Server

romix / akka-protostuff-serialization
protostuff-runtime based serializers for Akka

romix / akka-quickser-serialization
quickser based serializers for Akka

Play!: I’ll See Your Async and Raise You Reactive
Guillaume Bort and Sadek Drobi introduce Play, a Java and Scala web development framework, insisting on its asynchronous reactive capabilities built on Iteratee IO.

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.

Learn Scala with a Programming Game

The Scala Compiler Corner
A collection of resources for compiler hackers

tim8dev / play-akka-pi
Pi Approximation distributed over the network using AKKA 2.0 Remote Actors :-)

debasishg / cqrs-akka
An implementation of CQRS using scalaz for functional domain models and Akka for event sourcing

My Links

Keep tuned!

Angel "Java" Lopez

September 24, 2013

Scala: Links, News And Resources (5)

Filed under: Functional Programming, Java, JVM, Links, Programming Languages, Scala — ajlopez @ 5:48 pm

Previous Post
Next Post

CQRS with Akka actors and functional domain models

Akka Consumer Actors: New Features and Best Practices

MongoDB for Akka Persistence

PubSub with Redis and Akka Actors

Above the Clouds: Introducing Akka

Akka: Simpler Scalability, Fault-Tolerance, Concurrency & Remoting through Actors

Starting with Akka and Scala

Akka and the Java Memory Model

Task Dispatch and Nonblocking IO in Scala

spray / spray
spray is a suite of lightweight Scala libraries for building and consuming RESTful web services on top of Akka.

Benchmarking JVM Concurrency Options for Java, Scala and Akka

Functional Java
…Fully operational Actors for parallel computations…

Cassie: A Scala client for Cassandra

Scalding, a Scala API for Cascading

Esos raros lenguajes nuevos NodeJs, Scala, Clojure, Erlang, Python, Ruby

Combinator Parsing

(take 5 daniel-spiewak)
Daniel Spiewak is a highly respected member of the Scala programming language community and an overall thoughtful polyglot

Nick Kallen Discusses Scala at Twitter

The Why and How of Scala at Twitter

Lang.NEXT Trip Report

Pervasive Parallelism in Scala

twitter / util
Wonderful reusable code from Twitter

Learn about Efficient Functional IO in Scala from John De Goes’ Presentation at NEScala

Thinking Scala
Scala is one of those languages that’s almost too smart for it’s own good. I like everything about it, but I still think it lacks appeal to a wide audience.

Actor Applications
This website serves as a collection of Akka/Scala actor applications.

Actor References, Paths and Addresses

Differences between pattern matching and unification?

Supervision and Monitoring

SIP-18 – Modularizing Language Features

My Links

Keep tuned!

Angel “Java” Lopez

« Newer PostsOlder Posts »

The Shocking Blue Green Theme. Create a free website or blog at


Get every new post delivered to your Inbox.

Join 57 other followers