End Of Iteration 2013w25

It’s the end of my personal weekly iteration on programming. Today, I started to write down an “end of iteration” post. My public work:



I updated the samples, and started to write some test, to learn how it could be tested. For me, it is an exploration spike, but it’s time to learn how to write Express applications using TDD. The below example uses MongoDB:

Learning Java


My GitHub pages in Spanish. I updated the intro page:



I updated my Forth-like compiler to JavaScript. It’s in a good state, written using TDD. Inspired by project fjs, it’s an idea I had for years: write a Forth intepreter. Now, this project is a compiler. After writing CobolScript compiler, I have the resources to write a Forth one. The primitives are not the same, i.e., the operators are the JavaScript ones. I hope to add interaction with host language (JavaScript, Node.js) and async call support.



Operators for .NET objects. I had to write this project to give support of arbitrary objects operators. In other projects, I use Microsoft.VisualBasic.CompilerServices, but apparently there is no support in Mono for such methods. For now, I have binary arithmetic and compare operators implemented. It is used in Mass programming language. I relies on code generation via AjGenesis, to avoid to write all the type combinations.



I added the new operators from ObOps, and now the project should compile in Mono. I did a big refactor: change the scope rules, to adopt a JavaScript-way using var and function hoisting. Thanks to TDD, the refactor ran smoothly.

There is an assert module, to start writing Mass using TDD:


First tests:


Additional modules will be hosted in NPM.

Talk Intro to Python

I started to write my next talk presentation:


Only two slides ;-). But it was a good user experience, my first time using Reveal.js. Good support for markdown and code highlighting. No preprocessor needed, simply write the HTML file.



I had the idea of write a PEG (Parsing Expression Grammars) in JavaScript, see https://github.com/ajlopez/SimpleParser (there are links). But I started this new project, realizing that my previous lexers and parsers are faces of the same coin. Now, I have a generic parser, based on rules that detect parts of the code (integers, string, names, etc…)



Before SimpleGrammar, I started a C# project, having a generic lexer/tokenizer and a generic parser. But after my experience with SimpleGrammar, I refactored the code to have a generic parser with detection rules.

TDD in Python


My first Python experiment using TDD, using simple import unittest.

AjLisp in Python


After my first experience with unittest and Python, I started to write a new version of AjLisp, this time in Python. It is WIP, you can see my commit by test at:


I’m using Python 3.3 on a Windows 8 machine.

A lot of fun 😉

Keep tuned!

Angel “Java” Lopez

One thought on “End Of Iteration 2013w25

  1. Pingback: End Of Iteration 2013w26 | Angel "Java" Lopez on Blog

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s