Category Archives: AjErl

End of Iteration 2014w04

Previous Post
Next Post

I worked on my open source projects:

AjErl

My Erlang implementation as interpreter in C#:

https://github.com/ajlopez/AjErl

First mailbox tests, including delayed message; adding lists as predefined module; write and test lists:map, lists:filter, lists:any, lists:all, lists:sum.

Parsing fun, with one clause and multiple match clauses.

ScalaSharp

My Scala-like interpreter in C#

https://github.com/ajlopez/ScalaSharp

I added binary arithmetic functions, variable expression first implementation (with context to hold the values), val command, object command.

Others

Updates in:

https://github.com/ajlopez/DylanSharp Dylan as interpreter in C#
https://github.com/ajlopez/ClojSharp Clojure as interpreter in C#
https://github.com/ajlopez/RuScript Ruby as interpreter in JavaScript
https://github.com/ajlopez/ScaScript Scala as interpreter in JavaScript
https://github.com/ajlopez/AjLisp Lisp interpreter in JavaScript

I worked on three non-public projects.

More fun is coming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

End Of Iteration 2014w03

Previous Post
Next Post

Great week extending interpreters.

AjErl

My Erlang implementation as interpreter in C#

https://github.com/ajlopez/AjErl

I added multi-functions, that is, functions with the same name and arity, but with different argument matching conditions. And I started to write a minimal Process, to have threads running functions. Next steps: implement process mailboxes.

AjLisp

I was working on my C# implementation

https://github.com/ajlopez/AjLisp

I started to add Java Dot Notation, to access native types and objects. So, I grabbed some code from RubySharp/PythonSharp/AjSharp to access .NET types and objects, and wrapped functions to invoke properties, methods and constructors.

Aktores

More work on implementing Akka-like actor model in C#

https://github.com/ajlopez/Aktores

I should refactor mailbox implementation. After a bit of design, I decided to have a worker thread by actor, consuming a concurrent queue. ActorRef could add message to the queue.

RuScript, ScaScript and SimpleGrammar

I updated the version of SimpleGrammar

https://github.com/ajlopez/SimpleGrammar

to fix a bug detected consuming the library from RuScript:

https://github.com/ajlopez/RuScript

I’m using SimpleGrammar in

https://github.com/ajlopez/ScaScript

my Scala-like interpreter in JavaScript (I just implemented only a minimal parser).

Others

I was working in two non-public projects, and updating old PHP personal sites. I moved the code generated for Sinatra

https://github.com/ajlopez/AjGenesisNode-Sinatra

to use a modular instead of classic approach.

More fun is comming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

End of Iteration 2014w01

Previous Post
Next Post

First iteration of the year, more open source ideas, design, and TDD deliberate practice.

Code Generation, using AjGenesis

I updated

https://github.com/ajlopez/AjGenesisNode my AjGenesis tool for code generation
https://github.com/ajlopez/AjGenesisNode-Entity AjGenesis module to manage entity model
https://github.com/ajlopez/AjGenesisNode-Express AjGenesis module with tasks and templates to generate a simple web site, based on Node.js, Express, MongoDB

You can try the Quick Start of the Express module. Next steps:

– More property types
– Client-side validation
– Generate some basic tests
– Support of one-to-many entity relation

I could adapt the same templates to have another module that will generate PHP, MySQL web sites.

SimpleFlow

I published version 0.0.1 of:

https://github.com/ajlopez/SimpleFlow

I need it for chaining async calls in my tests and in my controlles in a non-public project. Use case to be described.

DylanSharp

I started to write a C# interpreter:

https://github.com/ajlopez/DylanSharp

trying to emulate Dylan language:

http://opendylan.org/

It’s a lisp-like programming language, with classes, and with a more Ruby/Python-like syntax, instead of parenthesis. As usual, I want to access native .NET types, classes and ecosystem, from a dynamic languages.

AjErl

I added first module support for my Erlang C# interpreter

https://github.com/ajlopez/AjErl

Others

I continue to adapt my old PHP sites https://github.com/ajlopez/ajlopezsite https://github.com/ajlopez/Todocontenidos to support latests PHP versions. I was working on three non-public projects, too.

More fun is coming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

End Of Iteration 2013w52

Previous Post
Next Post

Another week, with open source projects activities, and deliberate TDD practice.

AjErl

My Erlang interpreter written in C#:

https://github.com/ajlopez/AjErl

I added:

– Function definitions
– Module (with context by module)
– Forms (elements of a module)

Notably, Erlang REPL has expressions, and Erlang module has forms (in Erlang terminology). Now, the parser can parse expressions and forms. Machine object can load a module file. Pending items: complete c primitive function (compile a module).

Revamping PHP Sites

I removed short tags from PHP sites:

https://github.com/ajlopez/AjConsorSite
https://github.com/ajlopez/Inmob

to be ready to run in modern hosting. I published my personal web site old code

https://github.com/ajlopez/ajlopezsite

to be revamped in the same way.

Code Generation with AjGenesis, Node.js and Express

I improved my code generation projects, based on JavaScript/Node.js

https://github.com/ajlopez/AjGenesisNode
https://github.com/ajlopez/AjGenesisNode-Entity (to add entities to a model using command line interface)

I wrote the first steps (minimal controller, mongodb persistence, app, services, …) for Express

https://github.com/ajlopez/AjGenesisNode-Express

DylanSharp

I started a Dylan interpreter written in C#

https://github.com/ajlopez/DylanSharp

Dylan looks like a nice programming language, to explore. With Lisp roots, but modern syntax, it can be compiled, but I want to apply “baby steps”: my first goal is an interpreter. As usual, I will add access to native .NET types and objects, and .NET ecosystem.

Others

I worked on two non-public projects, learning Visual Studio Office Tools, and first steps into ASP.NET MVC 5.

More fun is coming!

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

End Of Iteration 2013w51

Previous Post
Next Post

My main outcome for this week:

AjErl

I was working on my Erlang interpreter written in C#:

https://github.com/ajlopez/AjErl

I improved the match algorithm, incorporating more use cases and resolving them using Test-Driven Development. The REPL is working:

Other works

I updated my PHP projects, removing old short tags notation:
https://github.com/ajlopez/AjConsorSite
https://github.com/ajlopez/Inmob

I refactor internal implementation of:
https://github.com/ajlopez/AjLispJs
https://github.com/ajlopez/SimpleYaml

I worked on three non-public projects.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez

End Of Iteration 2013w50

Previous Post
Next Post

After a series of weeks preparing talks, this week was the exception. No talk, no course to prepare or give. So, I could dedicate the time to code!

AjLispJs

I started to refactor the code:

https://github.com/ajlopez/AjLispJs

Past week, I migrated the tests to simpleunit. Now, I was splitting a big module in submodules/files, and refactoring the tests to use those modules. I should complete the compilation for browser: the reason to have only one big file was to easy use from browser. Now, I now how to “browserfy” my code.

AjErl

My Erlang interpreter written in C#:

https://github.com/ajlopez/AjErl

Past week I added arithmetic operations. Now, I improved the internal implementation, have a better matching, and added more arithmetic operations.

I was working on removing short tags from my PHP projects https://github.com/ajlopez/AjConsorSite and https://github.com/ajlopez/Inmob

I also worked on three non-public projects, in C#. More fun is coming.

Keep tuned!

Angel “Java” Lopez
http://www.ajlopez.com
http://twitter.com/ajlopez