Monthly Archives: November 2012

Working on AjTalk: Smalltalk VM, C# version

After working on my Node.js distributed examples (Genetic Algorithms), and my Python interpreter (Spanish Post, GitHub repo), I went back to work on AjTalk, my Smalltalk VM implementation. I have three projects (C# version, Java version, JavaScript/NodeJs version), but now I’m working on the C# one.

The past weeks, I added a simple/naive but functional save/load binary images, and I have a new bytecode compiler: instead of parsing code and directly generates the bytecodes, AjTalk builds an AST-like structure in memory, and using visitors, it can generate the bytecodes (past year, I had implemented a visitor that transforms the AST to JavaScript code, to use in my JavaScript VM version). The visitor pattern could be used to generate different outcomes using the same AST input (litmus test: a third visitor generating Python, Ruby or C# code (in this case, using dynamic objects)).

I can load more than one Machine at the same time: in my jargon, a Machine has the objects and classes of a living image. Instead of being a singleton, I can create, populate and load from images more than a Machine. The main code at:

I could generate a minimal image for a hello world (< 300 bytes!), see the code at:

I exercised the parsers loading and executing the Pharo file outs:

All written using TDD, as usual 🙂

Now I have many machines in memory, I would like to implement this idea:

– Load a Machine A (with its classes, methods, objects) having a complete class library
– Load a Machine B, having only some classes and objects
– Set Machine A to be the host of Machine B.
– Reimplement #doesNotUnderstand message processing in Machine B so, if a message is not located in that machine, the search of the corresponding method continues in the similar classes at Machine A. In this way, I could use all the power of Machine A, to operate on a slim Machine B. Machine A could have all the development tools/classes/methods, meanwhile Machine B still have a minimal size. A similar ideas is being explored by @morplenauta (Squeak committer), see Spanish email list.

Another project: to have a minimal static files web server, using native .NET objects (System.NET).

Keep tuned!

Angel “Java” Lopez

Python: Links, News And Resources (10)

Previous Post
Next Post

Se vienen PyCamp y PyCon Argentina (+ video)

A rewrite of the Django tutorial with Test Driven Development

hjwp / Test-Driven-Django-Tutorial
source code & text for a tutorial on using doing TDD django

chrisclark / PythonForDataScience

Up And Running With Python – My First Kaggle Entry

NINJA-IDE: A Powerful IDE For Developing Python Apps

ErlPort – Erlang port protocol for Python

RESTful Pyramid
Pragmatic Unicode

Preview: NINJA-IDE Code Completion Inheritance

Building a distributed concurrent queue with Apache ZooKeeper

fisadev / fisa-vim-config
my vim configuration (lot of python, autocompletition, fuzzy finder, debugger, …)

bvdelft / PyOpaque
PyOpaque is a module to screen or control the access to an object’s attributes and methods, by wrapping Python objects in build-in objects.

marianoguerra / feedformatter
feedformatter is a Python (2 & 3) library for generating news feeds in RSS and Atom formats.

PyPy is a fast, compliant alternative implementation of the Python language (2.7.2)

15.18. ctypes — A foreign function library for Python
It provides C compatible data types, and allows calling functions in DLLs or shared libraries. It can be used to wrap these libraries in pure Python.

Design Patterns in Python

General Python FAQ

30.6. importlib – An implementation of import
The purpose of the importlib package is two-fold. One is to provide an implementation of the import statement (and thus, by extension, the __import__() function) in Python source code. This provides an implementation of import which is portable to any Python interpreter. This also provides a reference implementation which is easier to comprehend than one implemented in a programming language other than Python.

Implementing Python

Python in .NET

Preview: NINJA-IDE Code Completion – Functions Return

My Links

Game Development: Links, News, Resources (6)

Previous Post

Building a Real-Time Location-Based Urban Geofencing Game with, Redis, Node.js and Sinatra Synchrony
How we planned, built and tested a truly real-time location-based game with, Redis, Node.js, and what we learned along the way.

Light Table
An Open Software project in San Francisco, CA by Chris Granger

ibdknox / live-cljs
a clojurescript version of bret victor’s editable game

Bidirectional binary streams with WebSocket

Graphwar Tutorial
Graphwar is an artillery game in which you must hit your enemies using mathematical functions.

Game development company

Rapid game development
Chilly Framework is a platform for HTML5 game development.

Basic Programming and Game Development with Scratch

Achieving Performance: An Approach to Optimizing a Game Engine

robashton / MolyHole

Node.js experiment: MMO Asteroids

Will the Next Generation of Top Guns Be Gamer Geeks? The Unmanned X-47B Makes Its First Flight

Kinect Star Wars

The life of a Sim in SimCity

Spaceship Pilot
Node.js, accelerometer, HTML5

Battlefield Simulator

Zynga compra la compañía OMGPOP por 180 millones de dólares

Learning Python: Child’s Play with RUR-PLE!

Lessons learned building a multiplayer game in NodeJS and WebGL

cocos2d is a framework for building 2D games, demos, and other graphical/interactive applications. It is built over pyglet. It provides some conventions and classes to help you structure a "scene based application".

C# y OpenGL (Parte I: Inicialización de OpenGL)

SharpGL: A C# OpenGL Class Library

My Links

Keep tuned!

Angel “Java” Lopez

Game Development: Links, News, Resources (5)

Previous Post
Next Post

Learn OpenGL and C#

The Open Toolkit is an advanced, low-level C# library that wraps OpenGL, OpenCL and OpenAL. It is suitable for games, scientific applications and any other project that requires 3d graphics, audio or compute functionality.

The Tao Framework
The Tao Framework for .NET is a collection of bindings to facilitate cross-platform game-related development utilizing the .NET platform.

JBullet – Java port of Bullet Physics Library

Bullet Physics Library

Aaron Dignan: How to Use Games to Excel at Life and Work
Real life isn’t always satisfying, but games almost always are. So how can we take the principles that make Angry Birds so addictive and apply them to work? Games researcher and author Aaron Dignan schools us at the 99% Conference.

adgeville is the world’s first behavior platform. We bring the best of gamification, social networking, reputation, and behavior analytics to any brand’s web and mobile experiences.

Initial Results From Co-operative Co-evolution
for Automated Platformer Design
We present initial results from ACCME,A Co-operative Co-evolutionary
Metroidvania Engine, which uses co-operative co-evolution to automatically evolve
simple platform games. We describe the system in detail and justify the use of
co-operative co-evolution.

Artificial intelligence project builds video games from scratch
A project from Imperial College in London puts together whole video games …

Building a multiplayer HTML5 game using Node,

Es un motor para hacer videojuegos de manera sencilla desde C++

hugoruscitti / sbfury
Shaolin’s Blind Fury

Video: Inventing on Principle

Connect With Your Creation Through a Real-Time Editor

Pygame is a set of Python modules designed for writing games.
Pygame adds functionality on top of the excellent SDL library.

Pilas Engine

Ruby for Kids

Is 2012 the Year for Gamification?

Wooga, A Case Study In No-Cash Bonus Culture

Lisp REPL in Vendetta Online

Vendetta Online

Asteroids, C#, 3D and OpenGL

My Links

Keep tuned!

Angel “Java” Lopez

Game Development: Links, News, Resources (4)

Previous Post
Next Post

Game development for fun, for profit. Exercises for our neuron.

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

Ric-rac-roe in a soup of technologies
It all started with a desire to experiment a few things: Sinatra, Shoes, and the context testing framework. So I decided to write a simple application – the classic tic-tac-toe game. I ended up with 3 interfaces:
command line interface (cli)
web app (using Sinatra)
GUI desktop app (using Shoes)

Empresas de videojuegos pisan cada vez más fuerte en el país y buscan sumar desde ingenieros hasta músicos
Hace una década era una industria inexistente en la Argentina. Hoy, sin embargo, cuenta con 65 compañías, que sufren el déficit de mano de obra calificada y buscan perfiles de los más variados e insólitos. Conozca este mundo por dentro

Developing MMO Game Servers in PHP and JavaScript
Theory of Everything – an MMORPG written in CoffeeScript on node.js and HTML5/CSS3/WebGL

MMO server/client test

Javascript browser MMORPG [closed]


TileGen – Mystalia MMORPG Engine
Using PHPGD and called from Node.js (argv) we can dynamically create tilesets for each map to reduce load time.

An Interview with Rob Evans of Isogenic Engine: Building Real-Time, MMO Games with HTML5 and Node.js

NodeJS Pokemon: MMO iPad, iPhone, Chrome, Safari Card Game

NowJs, Multiplayer Map example

HTML5 Canvas MMORPG Games using Node.js and Nowjs

Multi-User Dungeon Definition Language

The MUDDL programming language, “Multi User Dungeon Definition Language”, is a domain-specific language for creation of text-based multi-user virtual worlds, i.e. MUDs.

Multi-User Dungeon, or MUD (referred to as MUD1, to distinguish it from its successor, MUD2, and the MUD genre in general) is the first MUD and the oldest virtual world in existence
…In 1980 Roy Trubshaw created MUD version 3 in BCPL (the predecessor of C), to conserve memory and make the program easier to maintain…
(ajlopez: I wrote programs in BCPL 😉

What Is a MMORPG?
MMORPG stands for massively multiplayer online role playing game, a type of massively multiplayer online game (MMOG). An MMORPG is a computer-based role playing game (RPG) which takes place in an online virtual world with hundreds or thousands of other players. In the game, a player uses a client to connect to a server, usually run by the publisher of the game, which hosts the virtual world and memorizes information about the player.
C# for Gaming: AltDevConf This Weekend

Rediscover the Early Days of Video Gaming using the Arduino Single-Board Computer

Using modern computing horsepower to stretch retro graphics hardware

Kinect for Windows SDK
Kinect For Windows Now Available
LOGO: Videojuego del Tetris

The Reality of HTML5 Game Development and making money from it
1991 Summer CES

Microsoft’s real-world 3D ‘Cut the Rope’ lets fans in London ‘jump’ into the game
Command and Conquer HTML5

Zynga buys four mobile gaming companies

My links

Keep tuned!

Angel “Java” Lopez

Game Development: Links, News, Resources (3)

Previous Post
Next Post

Recently, I was working on isometric games using HTML5 canvas. There is a lot ideas to implement (distributed game processing, artificial intelligence, etc.). Now, more links I found interesting about game development:

Kinect Is Coming to Windows Feb 1

Cut the Rope

What 2012 holds for social gaming

Asteroides : Codea Game – iPad 2


Gamification is Productivity, NOT (Just) Fun and Games

Corona SDK, una herramienta de desarrollo para iOS, Android y Kindle Fire

Game Developer Meets Demand and Prepares for Success with Scalable Cloud Solution

Writing an iPhone Game Engine (Part 7- Postmortem)

Platform Updates for Games Developers

QuakeCon 2011 – John Carmack Keynote

It’s ready when it’s ready, dammit!

Parallel Implementations
by John Carmack

Static Code Analysis
by John Carmack

Creating a Multiplayer Game with Sockets in C#

Canvas Tutorial

Gamification’s Three Disciplines

MonoGame: XNA multi-plataforma

Indie game Minecraft receiving over 240 million logins every month

Windows Azure Tookkit for Social Games 1.1 RELEASED

ThreeNodes.js: A Visual WebGL Scene Editor

The making of the Xbox: How Microsoft unleashed a video game revolution (part 1)



NGD and Regnum Online: past, present, and future

NGD Studios’ Andrés Chilkowski on Bunch of Heroes, Regnum Online & Designing Game Engines

NGD Studios

Anatomy of a Windows Phone Game Project

Erlang, the big switch in social games

Kinect unleashed for commercial Windows apps

Duck Hunt via HTML5 + JavaScript
with level creator

My Links

Keep tuned!

Angel “Java” Lopez

Python: Links, News And Resources (9)

Previous Post
Next Post

Past Saturday, I presented my work on PythonSharp (see Spanish Post). More links about Python language:

MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON but it’s faster and smaller. For example, small integers (like flags or error code) are encoded into a single byte, and typical short strings only require an extra byte in addition to the strings themselves.

tokenlib 0.1.0
This is generic support library for doing token-based authentication.

Multiprocessing y Threading
En esta receta se muestra como hacer para correr algo en otro thread o proceso con pocos cambios y como lograr comunicacion entre ellos.

Web2py / Python application for Conference Registration and Management.

Taint Mode
Taint Mode permite alertar a los desarrolladores de potenciales problemas de seguridad en su aplicación.

A Taint Mode for Python via a Library

Why I can’t extend bool in Python?
We show how to provide taint analysis for Python via a library written entirely in Python, and thus avoiding modifications in the interpreter.
Building and installing NumPy

NumPy and SciPy for IronPython / .Net

NumPy is an extension to the Python programming language, adding support for large, multi-dimensional arrays and matrices, along with a large library of high-level mathematical functions to operate on these arrays.

NumPy and SciPy for .NET

Tornado is an open source version of the scalable, non-blocking web server and tools that power FriendFeed.
The framework is distinct from most mainstream web server frameworks (and certainly most Python frameworks) because it is non-blocking and reasonably fast.

Supervisor: A Process Control System
Supervisor is a client/server system that allows its users to monitor and control a number of processes on UNIX-like operating systems.

Celery: Distributed Task Queue
Celery is an asynchronous task queue/job queue based on distributed message passing.

What is gevent?
gevent is a coroutine-based Python networking library that uses greenlet to provide a high-level synchronous API on top of the libevent event loop.

My Links

Python: Links, News And Resources (8)

Previous Post
Next Post

python: what’s the difference between pythonbrew and virtualenv?

A Primer on virtualenv
Put simply (and copied from the project page), virtualenv is a tool to create isolated Python environments.


PyCon 2012 Poster Session

You Should Propose a Poster

Poster up at PyCon 2012

Ruby is faster than Python, PHP, and Perl

Pynature: 3D Game for Linux

lightweight high-level message passing library supporting actor based concurrency
machinalis / refo
Regular expressions for objects

Trabajos con Python

web2py Application Development Cookbook

Introduction to MongoDB for Java, PHP and Python Developers

Python Tutor

concurrent.futures — Launching parallel tasks
tokenize — Tokenizer for Python source

Database Gateway (dbgw) is a simple library that gets you working with relational databases in very few steps.

Compiling Python Code

Factual Releases Drivers that Matter: Python, Clojure, Haskell

My Links

Python: Links, News And Resources (7)

Previous Post
Next Post

Compiling Python Code
Python source code is automatically compiled into Python byte code by the CPython interpreter.
…to “compile” a Python program into an executable, use a bundling tool, such as…

Factual Releases Drivers that Matter: Python, Clojure, Haskell

Why I like Redis

ProDy 1.0.3
A Python Package for Protein Dynamics Analysis

Creando un nuevo proyecto Python

Repository Structure and Python

Functional Programming With Python – Part 1

mdipierro / gluino
Port of web2py to Bottle, Flask, Pyramid, Tornado, wsgiref and other frameworks


How to change behavior of dict() for an instance

One-line Tree in Python

Google Python Style Guide

ORMs and Python

What blocks Ruby, Python to get Javascript V8 speed?

Waf is a Python-based framework for configuring, compiling and installing applications

Test Driven Development in Python
templating engine for separation of code and HTML

Planet is a ‘river of news’ feed reader. It downloads news feeds published by web sites and aggregates their content together into a single combined feed, latest news first.

Smiljan, a Small Planet Generator

Stackless python and multicores?

Python + Django vs. C# + ASP.NET: Productivity Showdown

My Links

Keep tuned!

Angel “Java” Lopez

Node.Js: Links, News And Resources (14)

Previous Post
Next Post

Use Jade blocks, not layouts

Uploading images using NodeJS, Express, and Mongo

Parsing file uploads at 500 mb/s with node.js

Primeros videos de jsconfar

c4milo / node-webkit-agent
NodeJS agent for WebKit devtools front-end

What is “this”?

saary /
A node .Net native extension example

Writing your first native module for node.js on Windows

cranic / node-flatdb
Flat database based on json files for Node.js

isagalaev / highlight.js
Javascript syntax highlighter

Sistema de mensajería Node.js y Ruby

Node.js For My Tiny Ruby Brain: Keeping Promises

Optimizing Ruby on Rails applications with NodeJS

Node.js y ruby
Introducción a node.js para la rubyconf de uruguay

Node.js and Ruby

Node.JS based ESB

A framework for web applications

New BitNami Stack: Node.js

simplyianm / archie
Simple archetype system for Node.js

can you host a private repository for your organization to use with npm?

Setting up a private NPM repository

Private npm modules

Using npm to install or update required packages just like bundler for rubygems

My Links

Keep tuned!

Angel “Java” Lopez