Angel \”Java\” Lopez on Blog

March 17, 2014

End Of Iteration 2014w11

Previous Post
Next Post

Talks

I finished my presentation about Node.js Distributed Applications:

https://github.com/ajlopez/Talks/tree/master/NodeDistributedApps
http://ajlopez.github.io/Talks/NodeDistributedApps/index.html

Last week I gave this talk at the JSConf Uruguay http://jsconf.uy/ Great days, interesting people, projects and ideas. I should post about my experience. In this talk I mentioned my projects:

https://github.com/ajlopez/AjFabriqNode
https://github.com/ajlopez/SimpleStorm
https://github.com/ajlopez/SimpleActors
https://github.com/ajlopez/NodeSamples/tree/master/Fractal/distributed
https://github.com/ajlopez/SimpleGA/tree/master/samples/tspdistr

And I did a quick description of some other basic projects I used to build the demos:

https://github.com/ajlopez/SimpleBus
https://github.com/ajlopez/SimpleQueue
https://github.com/ajlopez/SimpleRemote
https://github.com/ajlopez/SimpleBroadcast
https://github.com/ajlopez/SimpleMessages
https://github.com/ajlopez/ObjectStream

SimpleGammon

I updated my project

https://github.com/ajlopez/SimpleGammon

Now it has to samples: one, with position evaluation at browser, and another with position evalution at server side. Next steps: add worker nodes, at server side, to distributed the position evaluation, maybe with a tree search in many levels (now it explores 2 plies), or more levels using montecarlo.

RustScript

After talking with @LostOracle at JSConfUy, I started an interpreter for Rust Language, in JavaScript:

https://github.com/ajlopez/RustScript

The hello world is working:

https://github.com/ajlopez/RustScript/tree/master/samples/hello

I use and updated my grammar generator

https://github.com/ajlopez/SimpleGrammar

Dog fooding is good!

Annalisa

I added new rules and some refactor to my projects:

https://github.com/ajlopez/Annalisa
https://github.com/ajlopez/PreciosaAnnalisa

I want to add a JavaScript application running at client side, to cover the main use case of Preciosa Project.

I worked on two non-public projects. Now, I’m back at Buenos Aires. More fun is comming!

Keep tuned!

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

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:

http://github.com/ajlopez/AjTalk (I presented it at Smalltalks 2010)
https://github.com/ajlopez/AjTalkJs (I presented it at Smalltalks 2011)

My recorded talk:

http://www.youtube.com/watch?v=-KFjSneVE2s

The presentation:

https://github.com/ajlopez/Talks/tree/master/Smalltalks2013
http://ajlopez.github.io/Talks/Smalltalks2013/index.html
More talks at http://ajlopez.github.io/Talks/

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
http://www.ajlopez.com
http://twitter.com/ajlopez

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:

http://www.youtube.com/watch?v=GQdyyNWCasI

It’s running online at:

http://soloninja.2013.nodeknockout.com/

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

http://nodeknockout.com/teams/soloninja

TDD and JavaScript

I gave a talk at local JavaScript meetup

Code at:

https://github.com/ajlopez/TddRocks/tree/master/JavaScript

Slides at:

https://github.com/ajlopez/Talks/tree/master/TddJavaScript

Other works

Minor updates at https://github.com/ajlopez/RubySharp

Updated require algorithm at https://github.com/ajlopez/AjTalkJs

Keep tuned!

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

October 30, 2013

PHP and Node.js

Filed under: JavaScript, NodeJs, Open Source Projects, PHP, Talks — ajlopez @ 4:37 pm

This month, I gave a talk about PHP and Node.js, at PHP Dev Conference Argentina.

http://www.phpconference.com.ar/

I should write a post about my excellent experience in that conference, full of interesting topics and people.

My talk description

http://www.phpconference.com.ar/php-node-js-y-tutti-li-fiocci-2/?lang=en

We will see what Node.js means for a PHP programmer. A programming language built on top of Google’s V8 engine. Executing loops, with asynchronous IO. Node.js as a shell server, and web server. Javascript as a very flexible language, with little of the programming bloatware that’s common on other languages. A package ecosystem, very similar to PHP’s Composer. Instead of dealing with lots of functions (as we are used to with PHP), Node has modules, that we can install and utilize at any point.

Where Node.js really shines and distinguishes itself from PHP is in realtime services. We will learn about its socket and websocket support, and how important true asynchronous IO is. We will also learn about the price we have to pay for this: callbacks.

But we don’t want to walk away from our beloved PHP, so we will integrate PHP with Node.js. First approach: PHP + browser + Node.js, with little communication between PHP and Node. Then we’ll jump right into integrating Node code from PHP. dnode modules (sync and async.) And before we end the session… surprises, and tutti li fiocci!

The slides are at:

https://github.com/ajlopez/Talks/tree/master/PhpNode

The PHP code, at:

https://github.com/ajlopez/PhpSamples/tree/master/PhpNode

to be viewed from a web server (I used xampp in my notebook).

The node code, many servers to launch, each one listening by different ports:

https://github.com/ajlopez/PhpSamples/tree/master/PhpNode/Node

You must install Node.js, and then, run “npm install” in that folder. For example, if you want to launch the distributed canvas server, execute at command line: “node canvasserver”.

There are examples where the browser connects with node.js server, without using PHP. And there are examples where the PHP code talks to Node.js. I used:

https://github.com/substack/dnode

at Node.js side. And dnode PHP clients:

https://github.com/bergie/dnode-php
http://bergie.iki.fi/blog/dnode-make_php_and_node-js_talk_to_each_other/
https://github.com/erasys/dnode-php-sync-client

At the end of the talk, I presented my PHP-to-JavaScript transpiler, written in JavaScript:

https://github.com/ajlopez/PageJs

It can run minimal PHP code in the Node.js server:

Nice!

Keep tuned!

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

October 15, 2013

End Of Iteration 2013w41

Filed under: C Sharp, Erlang, Iteration, JavaScript, NodeJs, Open Source Projects, Scala, Talks — ajlopez @ 12:59 am

Previous Post
Next Post

My past week work:

JPyScript

I was working improving my Python to JavaScript compiler, written in JavaScript.

https://github.com/ajlopez/JPyScript

I decided to implement a subset of Python language, to be prepared for the upcoming Python Argentina conference. I refactored internal implementation, add more commands, compile Python variables to ‘var’ declarations in JavaScript, etc.

RubySharp

My Ruby interpreter written in C#

https://github.com/ajlopez/RubySharp

I added support for ‘if-else’, ‘if-‘elif’. And ‘until’ command. I’m preparing my talk for RubyConf Argentina 2013.

AjErl

My Erlang interpreter in C#

https://github.com/ajlopez/AjErl

I added a console program, to parse and execute my first commands, including matches.

AjTalkJs

My JavaScript Smalltalk interpreter

https://github.com/ajlopez/AjTalkJs

I started to refactor chunk reader and other parts, in order to have separated source code files, instead of a big one. I planned to have a ‘browserify’ build, to create the browser distribution of the module, in one file.

Scala Talk

On Tuesday, I gave an Scala Internals talk. I updated my minimal samples at:

https://github.com/ajlopez/ScalaSamples

And my Scala slides at:

https://github.com/ajlopez/Talks/tree/master/ScalaInternals

TDD with Visual Studio

On Monday, I gave a talk about TDD (Test-Driven Development) using Visual Studio 2010 and ASP.NET MVC, starting from a simple controllers. The source code is at:

https://github.com/ajlopez/TddRocks/tree/master/Consorcios

I worked on two non-public projects, too.

Keep tuned!

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

Create a free website or blog at WordPress.com.