Angel \”Java\” Lopez on Blog

January 31, 2014

Smalltalk, JavaScript, NodeJs, C#, and Tutti Li Fiocci

Filed under: AjTalk, C Sharp, JavaScript, NodeJs, Smalltalk, Talks, Video — ajlopez @ 5:43 pm

Past year, I gave a talk at Smalltalks 2013, Rosario, Argentina. The conference was a great experience to me, and there were many interesting talks, implementations and ideas.

My talk was about implementing Smalltalk, in C#, and JavaScript. The main repos are: (I presented it at Smalltalks 2010) (I presented it at Smalltalks 2011)

My recorded talk:

The presentation:
More talks at

The first project is an interpreted based on byte codes, written in C#. It can compile to JavaScript, but the key features is to have a VM based on bytecodes, that have access to native .NET types and objects, remote execution, actors, and more. See my posts.

The second project is an implementation of Smalltalk but in JavaScript. Internally, it have a compiler to JavaScript, but also a compiler to bytecodes and then, an interpreted VM written in JavaScript. Both projects now supports NPM (Node.js package manager) for new modules.

In 2013, I added Node.js support and access to AjTalkJs, so I can run an Express application from Smalltalk:


Next experiments: distributed message. That is, an object in one machine sends a message to an object in a remote machine/process,  in a fire and forget way. I think Node.js ecosystem is a good plate to host such experiments. My previous work at Distributed Applications with Node.js. I want a distributed Smalltalk machine/application. Maybe, if the communication protocol is easy or pluggable, I could add clients/servers implemented in other Smalltalk dialects. But baby steps first ;-)

Keep tuned!

Angel “Java” Lopez

November 19, 2013

November 12, 2013

End Of Iteration 2013w45

Previous Post
Next Post

I’m exhausted, after my Node.js Knockout participation, last week end.

Node Knockout

It is my main deliverable for past week. I wrote a web application, in two days, from scratch, using Node.js and Express. Video with demo:

It’s running online at:

Now, the repo is private, but I will clone it to my public GitHub account. You can see the votes at:

TDD and JavaScript

I gave a talk at local JavaScript meetup

Code at:

Slides at:

Other works

Minor updates at

Updated require algorithm at

Keep tuned!

Angel “Java” Lopez

November 4, 2013

End Of Iteration 2013w44

Filed under: AjTalk, Iteration, JavaScript, NodeJs, Open Source Projects, Python, RedPython, Smalltalk — ajlopez @ 6:27 pm

Previous Post
Next Post

The main outcomes were: a talk, about my Smalltalk implementations, new sample code and a new project, inspired by Python and Smalltalk conference.

AjTalk Implementations

I reviewed and improved my implementations:

I added a sample using AjTalkJs, Node.js, Express.

My talk for Smalltalks 2013 at


I want to implement a compiler/transpiler from reduced (subset of) Python to C, at first using JavaScript.

The project:

I have two samples running: simple hello world, and

More ideas to implement this week. I should improve my Ruby in C# implementation, and maybe, write a Ruby implementation in JavaScript.

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 21, 2013

End Of Iteration 2013w42

Filed under: AjTalk, Iteration, JavaScript, JPyScript, Open Source Projects, Python, Smalltalk — ajlopez @ 2:22 pm

Previous Post
Next Post

The past week was dedicated to two non-public projects, and prepare of my next talks.


Inspired by a work by @darachennis  ( I wrote a simpler implementation of beams (piped message processors

I should write the, but the tests are self-explanatory. A beam receives messages and emit messages. It can have a filter function, filtering the message to process. And a transform function, that can emits new messages.


It compiles a Python-like language to JavaScript. The compiler is written in JavaScript

Notable, I can write controllers in Python for Express web apps. See samples


My Smalltalk VM in JavaScript. Using JavaScript, it compiles Smalltalk fileouts to bytecodes. It started to compile directly to JavaScript code, instead of only bytecodes.

It can run from Node.js, and from the browser, too.

I worked on two non-public projects, one using C# with Visual Studio 2010, and other using Java, with Maven, Eclipse, JBoss 5.x

This week I will give a talk at Python Argentina 2013

Keep tuned!

Angel “Java” Lopez

October 3, 2013

New Month’s Resolutions: October 2013

Filed under: C Sharp, JavaScript, NodeJs, Open Source Projects, PHP, Scala, Smalltalk — ajlopez @ 4:55 pm

My September resolutions:

- Update SimpleForth [pending]
- Give a talk about SimpleMongo, SharpMongo [pending]
- Update SimpleMongo [complete] see repo
- Update SharpMongo [complete] see repo
- Update PageJs [complete] see repo
- Update ScalaSharp [complete] see repo
- Update JPyScript [complete] see repo
- Update AjTalkJs [complete] see repo
- Update Mass scopes [pending]
- Start Web Server example with AjTalkJs [pending]
- Update AjTalk [pending]
- Update AjLispJs [pending]
- Web Server example with AjLispJs [pending]
- Prepare a talk about Scala [partial]

Additional, I worked on:

- Create SimpleBot [complete] see repo
- Update GrammGen with a new sample [complete] see repo
- New PHP samples with Node.js [complete] see repo
- More compiler features in SimpleLisp [complete] see repo

This new month’s resolutions:

- Give a talk about PHP and Node.js
- Give a talk about TDD with ASP.NET MVC
- Give a talk about Scala implementation
- Give a talk about Python in JavaScript
- Give a talk about Smalltalk in JavaScript and C#

I will update the corresponding repos, too.

Keep tuned!

Angel “Java” Lopez

August 16, 2013

Smalltalk: Links, News And Resources (16)

Filed under: Links, Programming Languages, Smalltalk — ajlopez @ 6:24 pm

Previous Post 
Next Post

Back to the future

Index of /PharoByExampleTwo-Eng/latest

References for “The Future of Programming”

Klein and Squeak VM architectures | Self

Klein Metacircular Virtual Machine Kit™ |  versions |  SmalltalkExpress.html

Smalltalk/X – Object-oriented programming language | eXept AG

ESUG: A Guided Tour through Smalltalk/X

Sep 19th, 2008 – Claus Gittinger talk at the UBA campus ~ ClubSmalltalk

Smalltalk MT – Wikipedia, the free encyclopedia

Huemul, a Smalltalk implementation

Hardware/software codesign in neo smalltalk


Smalltalk Squeak demo
by @morplenauta

Practical Git for Smalltalk

BioSmalltalk: A pure object system and library for bioinformatics

Screen Recording and Screencasting Software – ScreenFlow Overview – Telestream

My Links

Keep tuned!

Angel “Java” Lopez

August 4, 2013

New Month’s Resolutions: August 2013

Time to review my July’s resolutions:

- Update Memolap [complete] see repo
- Update GrammGen [complete] see repo
- Update SimpleGrammar [complete] see repo
- Prepare a talk: Intro to Smalltalk [complete] see talk
- Start PHP compiler to JavaScript [complete] see repo
- Write PHP example with Node.js [pending]
- Update AjLispJs [[pending]
- Create a web site sample using AjLisp and Node.js [pending]

Instead of updating AjLispJs, I started another project:

- Start SimpleLisp, Lisp compiler to JavaScript [complete] see repo

Additionally, I worked on:

- Start SimpleContext, associate arbitrary data to simple JavaScript objects [complete] see repo
- Start SimpleProlog, Prolog language interpreter in JavaScript/Node.js [complete] see repo
- First version of KodeTokenizer [complete] see repo
- First version of KodeMutator [complete] see repo
- Publish Obops on Nuget [complete] see repo
- Publish my first Smalltalk samples [complete] see repo
- Create and pubish first version of Plagre, programming language recognizer [complete] see repo see demo
- Updated my TDD Rocks samples [complete] see repo
- Start SharpBase C# in-memory database [complete] see repo
- Start AjForce, applications in Node.js a la [complete] see repo
- Start OStore, in-memory JavaScript object store [complete] see repo
- Added Rack samples to my Learning Ruby [complete] see repo
- Write SimpleMule, simple Mule-like in JavaScript/Node.js [complete] see repo

Also, I published Google hangouts:

- TDD Rocks (1) Playing with Ruby
- TDD Rocks! (2) OStore with JavaScript/Node.js
- Exploring Smalltalk (1) (Spanish)
- TDD Rocks! (3) SharpBase in C#
- TDD Rocks! (4) SharpBase in C#

My new month’s resolutions, August 2013:

- Update SimpleProlog
- Update Mass
- Update AjTalkJs
- Update AjTalk
- Update SimpleLisp
- SimpleLisp web server sample
- New Google Hangout using Ruby and TDD
- New Google Hangout using C# and TDD

Lot of fun is coming ;-)

Keep tuned!

Angel “Java” Lopez

Older 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