Angel \”Java\” Lopez on Blog

April 24, 2014

Early Erlang Geek Links (11)

Filed under: Distributed Computing, Erlang, Functional Programming, Links — ajlopez @ 2:36 pm

Previous Post

Erlang String Handling — Functional Erlang — Medium
https://medium.com/functional-erlang/7588daad8f05

Your first Erlang program (in style). – Ward Bekker
http://blog.equanimity.nl/blog/2014/03/29/your-first-erlang-program/

oubiwann/jlfe
https://github.com/oubiwann/jlfe

Erlang — Advanced
http://www.erlang.org/doc/efficiency_guide/advanced.html

Orleans Actors Analysis – Tech stuff that interests me
http://shinolajla.tumblr.com/post/81199345476/orleans-actors-analysis

reedr/slides/efsf2014-whatsapp-scaling.pdf at master · reedr/reedr
https://github.com/reedr/reedr/blob/master/slides/efsf2014-whatsapp-scaling.pdf

High Scalability – High Scalability – How WhatsApp Grew to Nearly 500 Million Users, 11,000 cores, and 70 Million Messages a Second
http://highscalability.com/blog/2014/3/31/how-whatsapp-grew-to-nearly-500-million-users-11000-cores-an.html

Elixir is for programmers
http://blog.pluralsight.com/elixir-is-for-programmers

LambaJam Chicago – Welcome
http://www.lambdajam.com/

homepages.inf.ed.ac.uk/wadler/papers/erlang/erlang.pdf
http://homepages.inf.ed.ac.uk/wadler/papers/erlang/erlang.pdf

ErlangSolutions Youtube channel – YouTube
https://www.youtube.com/user/ErlangSolutions?feature=watch

10 Billion a Day, 100 Milliseconds Per: Monitoring Real-Time Biddin…
http://www.slideshare.net/BrianTroutwine1/10-billion-a-day-100-milliseconds-per-monitoring-realtime-bidding-at-adroll

Scaling HTTP connections // Speaker Deck
https://speakerdeck.com/benoitc/scaling-http-connections

odie2630463/ercheme · GitHub
https://github.com/odie2630463/ercheme

altenwald – YouTube
http://www.youtube.com/channel/UCsx08xYUIVx0CTMKbGZtPuw/videos

My Links
http://delicious.com/ajlopez/erlang

Keep tuned!

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

April 15, 2014

End Of Iteration 2014w15

Previous Post
Next Post

Code Generation

I wrote new tasks, templates using my AjGenesis code generation tool. I create a simple:

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

to generate a Django web site, with admin page. The code generation creates the model, and admin feature allows you to edit the data, using Sqlite. It’s simple, but it is working. Next steps: create custom views, and a new project to generate Flask web site.

I added text area input fields to https://github.com/ajlopez/AjGenesisNode-Express the project that generates Express/Node.js web site from a model. Next steps: client-side validation, better server code organization, some initial tests.

I want to integrate these tools in a online app, so I started https://github.com/ajlopez/AjGenesisNodeServer to have a web site that generate codes from a model, defined at client side. You will select technology (Express, PHP, Sinatra, Django, Flask, …), the models (mainly, entities like: customer, supplier, department, employee, invoice… ), the database, the features (multiple pages, single page, angular? backbone? other?, REST API?, phonegap wrapper?), and voila. A zip will be generated with the generated solution. That is, code generation as a service. Maybe I could add an API to be externally consumed.

Python

I added a Flask web site example, work in progress, to my Python Samples:

https://github.com/ajlopez/PythonSamples/tree/master/Flask

I will use as a basis for my AjGenesis code generation version for Flask web sites.

Actor Model in C#

I refactored my project

https://github.com/ajlopez/Aktores

an Akka-like actor model implemented in C#. Now, I have a mailbox per actor, but the actor message process is executed consuming task from a queue, with n thread launched by the initial actor system. It was good to see such refactor working: all is in place, now. It is a proof that you don’t need to design everything before coding. If you follow TDD (Test-Driven Development) new ideas (or old ideas that have not implemented yet) can be added without much effort.

Erlang in C#

I started to add serialization of message to my project

https://github.com/ajlopez/AjErl

As usual, I started simple, using TDD: write input and out channel, using tests, red to green, refactoring. Instead of consuming an external library for serialization, I wrote a simple code, towards my first use case of distributed application. When the use case will be in place, I could start to think about other implementation path.

Google Code Jam

Past Saturday, I participated in Google Code Jam, Qualification Round. My code, usually written following TDD:

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

The Minesweeper problem is the tricky one. I should add the description of the problems, copying it from the original site.

Others

I added some code kata tests to my JavaScript samples https://github.com/ajlopez/JavaScriptSamples. I added metadata macro readind go my Clojure in C# https://github.com/ajlopez/ClojSharp. I started to add type checking in my node tree for Scala in C# https://github.com/ajlopez/ScalaSharp/commits/master. I added qualified name evaluation to my Rust interpreter in JavaScript https://github.com/ajlopez/RustScript. I worked on two non-public projects, too.

More fun is coming.

Keep tuned!

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

April 10, 2014

Erlang: Links, News And Resources (10)

Filed under: Distributed Computing, Erlang, Functional Programming, Links — ajlopez @ 5:27 pm

Previous Post
Next Post

Erlang y Whatsapp – AltenWald
http://altenwald.org/2014/02/22/erlang-y-whatsapp/

High Scalability – High Scalability – The WhatsApp Architecture Facebook Bought For $19 Billion
http://highscalability.com/blog/2014/2/26/the-whatsapp-architecture-facebook-bought-for-19-billion.html

ACM SIGPLAN Erlang Workshop 2014, Göteborg, Sweden
http://www.erlang.org/workshop/2014/

marianoguerra/efene
https://github.com/marianoguerra/efene
Programming language with C-like syntax that runs on the Erlang platform

Electric Duncan: Lisp Flavored Erlang
http://technicae.cogitat.io/2013/03/lisp-flavored-erlang.html

Lisp Flavored Erlang
http://lfe.github.io/

Zotonic, the Erlang Web Framework — Zotonic
http://zotonic.com/

Inside Erlang, The Rare Programming Language Behind WhatsApp’s Success ⚙ Co.Labs ⚙ code community
http://www.fastcolabs.com/3026758/inside-erlang-the-rare-programming-language-behind-whatsapps-success

Erlang/OTP – Recursos
http://erlang.bosqueviejo.net/trabajo.html

There’s More to Life than Just Functions
http://bodil.org/more-than-functions/#/

Talking about Erlang with Fernando Benavides | Paolo D’Incau’s Blog
http://pdincau.wordpress.com/2014/02/03/talking-about-erlang-with-fernando-benavides/

videlalvaro/erlang-prime-sieve
https://github.com/videlalvaro/erlang-prime-sieve

KennethLundin-ErlangFactory2009London-AboutErlangOTPandMulti-coreperformanceinparticular.pdf (application/pdf Object)
http://www.erlang-factory.com/upload/presentations/105/KennethLundin-ErlangFactory2009London-AboutErlangOTPandMulti-coreperformanceinparticular.pdf

Big changes to Erlang
http://joearms.github.io/2014/02/01/big-changes-to-erlang.html

Erlang HiPE vs Scala | Computer Language Benchmarks Game
http://benchmarksgame.alioth.debian.org/u64q/benchmark.php?test=all&lang=hipe&lang2=scala&data=u64q

Building a Multi-Master Distributed Redis in Erlang
http://www.infoq.com/presentations/redis-erlang

Can someone explain the structure of a Pid in Erlang? – Stack Overflow
http://stackoverflow.com/questions/243363/can-someone-explain-the-structure-of-a-pid-in-erlang

ongoing by Tim Bray · Software in 2014
https://www.tbray.org/ongoing/When/201x/2014/01/01/Software-in-2014

Deploshark – Tech Blog: Aprendiendo Erlang
http://blog.deploshark.com.ar/2014/01/aprendiendo-erlang.html

My Links
http://delicious.com/ajlopez/erlang

Keep tuned!

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

March 11, 2014

Erlang: Links, News And Resources (9)

Filed under: Distributed Computing, Erlang, Functional Programming, Links — ajlopez @ 4:48 pm

Previous Post
Next Post

Elixir
http://elixir-lang.org/crash-course.html

Learning Erlang: A Coding Tutorial
http://www.claystuart.com/

Modules | Learn You Some Erlang for Great Good!
http://learnyousomeerlang.com/modules

Erlang for Authoritative DNS
http://www.infoq.com/presentations/erlang-dns

MichaelDrogalis/dire
https://github.com/MichaelDrogalis/dire

(349) Programming Languages: Why create any more programming languages? – Quora
http://www.quora.com/Programming-Languages/Why-create-any-more-programming-languages

Defining erlang functions in the shell – Stack Overflow
http://stackoverflow.com/questions/2065990/defining-erlang-functions-in-the-shell

Cqerl by matehat
http://matehat.github.io/cqerl/

altenwald/ephp
https://github.com/altenwald/ephp

ephp_testing.md
https://gist.github.com/manuel-rubio/7949523

inaka/sumo_db
https://github.com/inaka/sumo_db

inaka/canillita
https://github.com/inaka/canillita

Erlang Handbook by esl
http://opensource.erlang-solutions.com/erlang-handbook/

My Links
http://delicious.com/ajlopez/erlang

Keep tuned!

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

March 8, 2014

New Month’s Resolutions: March 2014

Filed under: AjErl, C Sharp, ClojSharp, Clojure, Erlang, Open Source Projects, Scala, ScalaSharp — ajlopez @ 7:27 pm

Review of my February’s Resolutions:

- Complete distributed messaging in AjErl [partial] see repo
- Complete dot notation in AjLisp [pending]
- Improve ClojSharp [complete] see repo
- Work on ScaScript [partial] see repo
- Work on ScalaSharp [complete] see repo
- Add variable scope to Mass [pending]
- Complete first version Aktores actor model in C# [pending]
- More code generation tasks, templates, models in AjGenesis for Node, generating Express, Meteor, Sinatra applications [partial] see repo

To compensate missing coding, I worked on:

- Create Annalisa [complete] see repo with online web services and demo
- Start SimpleAsync [complete] see repo
- Create my first Meteor samples [complete] see repo
- Start Templie, a simple template engine in Java [complete] see repo
- Start SimpleScraper, a simple scraper in JavaScript/Node.js [complete] see repo

And I made minor improvements on DylanSharp

New month’s resolution:

- Work on DictSharp
- Give talk about Node.js Distributed Applications
- Improve SimpleGammon
- Improve Annalisa
- Add @for to Templie
- Work on PreciosaAnnalisa online web services
- Improve my Node.js Distributes Applications samples
- Work on ScalaSharp
- Improve ClojSharp
- Improve SimpleAsync, do operation (functions in parallel)
- Improve Aktores
- Distributed messages in AjErl
- Add variable scope to Mass language
- Start code generation as a service

More fun is coming.

Keep tuned!

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

March 7, 2014

Erlang: Links, News And Resources (8)

Filed under: Distributed Computing, Erlang, Functional Programming, Links — ajlopez @ 5:35 pm

Previous Post
Next Post

Why I love Smalltalk | Pablo’s blog
http://pupeno.com/2011/07/28/why-i-love-smalltalk/
Comparison with Erlang and others

Try 10 Programming Languages in 10 minutes
http://trelford.com/blog/post/ten.aspx

A Peek Inside the Erlang Compiler
http://prog21.dadgum.com/127.html

Ankur Blogoyal | Node.js is backwards
http://blog.ankurgoyal.com/post/6433642218/node-js-is-backwards

Scaling with Riak at ooVoo | Basho
http://basho.com/scaling-with-riak-at-oovoo/

Episodio 4 de la temporada 1 – Erlang con Alvaro Videla – @old_sound | ViveCodigo – Podcast
http://vivecodigo.org/2013/10/02/episodio-4-de-la-temporada-1-erlang-con-alvaro-videla-old_sound/

Erlang Websocket Server using Cowboy
http://marcelog.github.io/articles/erlang_websocket_server_cowboy_tutorial.html

Elixir: Modern Programming for the Erlang VM
http://www.infoq.com/presentations/Elixir-Erlang-VM

A Q&A With Opa Creator Henri Binsztok | Regular Geek
http://regulargeek.com/2012/04/30/a-qa-with-opa-creator-henri-binsztok/

Tsung
http://tsung.erlang-projects.org/
Tsung is an open-source multi-protocol distributed load testing tool

Strange Loop Conference Videos
http://www.infoq.com/conferences/strangeloop2013/

Concurrency
http://concurrency.tumblr.com/

▶ Erlang The Movie II: The Sequel – YouTube
http://www.youtube.com/watch?v=rRbY3TMUcgQ&feature=youtu.be

My Links
http://delicious.com/ajlopez/erlang

Keep tuned!

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

February 28, 2014

Erlang: Links, News And Resources (7)

Filed under: Distributed Computing, Erlang, Functional Programming, Links — ajlopez @ 3:55 pm

Previous Post
Next Post

Erlang Bookmarks
https://github.com/0xAX/erlang-bookmarks/blob/master/ErlangBookmarks.md

The Go Circuit Project: Paradigm for developing and sustaining Big Data apps
http://www.gocircuit.org/

Recon Library
http://ferd.github.io/recon/
Recon is a library to be dropped into any other Erlang project, to be used to assist DevOps people diagnose problems in production nodes.

ferd/pobox
https://github.com/ferd/pobox
External buffer processes to protect against mailbox overflow in Erlang

Embedding the Nitrogen Web Framework into an Existing Erlang Application | Sigma Star Systems
http://sigma-star.com/blog/post/embedding-nitrogen

Leapfrogging Online Payments & Burying Tech Debt
http://www.infoq.com/presentations/refactoring-erlang
David Craelius tells the story of Klarna building an online payment system in Erlang and their approach to solving the nightmare of technical debt accumulated during a period of fast expansion.

Productivity Gains in Erlang
http://www.slideshare.net/JanHenryNystrom/productivity-gains-in-erlang

Erlang at Basho, Five Years Later | Basho
http://basho.com/erlang-at-basho-five-years-later/

langref.org
http://langref.org/

How attached are you — Functional Erlang — Medium
https://medium.com/functional-erlang/6d31b7af25d4

Erlang processes — Functional Erlang — Medium
https://medium.com/functional-erlang/c527f4b30544

How does Cloud Haskell currently compare with Erlang/OTP, Scala/Akka, Clojure/Storm? : haskell
http://www.reddit.com/r/haskell/comments/1ft2l2/how_does_cloud_haskell_currently_compare_with/

Building Services With Erlang webmachine
http://www.erlang-factory.com/upload/presentations/679/webmachine_services.pdf
http://www.erlang-factory.com/upload/presentations/679/webmachine_services.pdf

Scaling systems configuration at Facebook: The paradigms, design, and software behind managing massive numbers of systems with open source and small teams – Phil Dibowitz | Opscode Blog
http://www.opscode.com/blog/chefconf-talks/chefconf-2013-scaling-systems-configuration-at-facebook-the-paradigms-design-and-software-behind-managing-massive-numbers-of-systems-with-open-source-and-small-teams-phil-dibowitz/

An interview with Stavros Aronis about #erlang and Dialyzer | Paolo D’Incau’s Blog
http://pdincau.wordpress.com/2013/05/31/an-interview-with-stavros-aronis-about-erlang-and-dialyzer/

A beginners guide to Erlang – Ward Bekker
http://blog.equanimity.nl/blog/2013/05/29/a-beginners-guide-to-erlang/

Writing RabbitMQ Plugins With Elixir
http://videlalvaro.github.io/2013/06/writing-rabbitmq-plugins-with-elixir.html

The Three Laws of Programming Language Design | Lambda the Ultimate
http://lambda-the-ultimate.org/node/4754

A Week with Elixir
http://joearms.github.io/2013/05/31/a-week-with-elixir.html
Elixir is a functional, meta-programming aware language built on top of the Erlang VM.

Scale-free engineering
http://www.gocircuit.org/scalefree.html

Liberator – Welcome
http://clojure-liberator.github.io/liberator/
Liberator is a Clojure library that helps you expose your data as resources while automatically complying with all the relevant requirements of the HTTP specification (RFC-2616). Your resources will automatically gain useful HTTP features, such as caching and content negotiation. Liberator was inspired by Erlang’s Webmachine.

My Links
http://delicious.com/ajlopez/erlang

Keep tuned!

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

February 12, 2014

End Of Iteration 2014w06

Previous Post 
Next Post

More deliberate TDD practice in my open source projects

AjErl

My Erlang-like interpreter in C#:

https://github.com/ajlopez/AjErl

I added selective receive to process mailboxes. It was an interesting implementation, where each mailboxes has a save queue to keep the rejected messages. Once a message is accepted, the save queue is put again as a message queue, ready to be consumed again.

ScalaSharp

My Scala interpreter in C#:

https://github.com/ajlopez/ScalaSharp

I added binary expressions. I started to think about type check implementation. This next week I will add an explicit AST (Abstract Syntax Tree) to be used for type checking. Not all Scala expression can be type checked at parser time, because possible not-resolved cross references.

ScaScript

My Scala interpreter in JavaScript:

https://github.com/ajlopez/ScaScript

Minor additions: parse class with body, parse a suite of statement (a list of statement). One thing to review in this project and the previous one: Scala new line in lexer/parser. The language has special rules to skip or not a new line, depending on the context. I should add type checkting to this JavaScript project.

ClojSharp

My Clojure interpreter in C#:

https://github.com/ajlopez/ClojSharp

I applied a surgical refactor: internal reimplementation of top level context to save internally clojure vars. In this way, the top level definitions are saved not as name/value but as named var/value. The rest of the context are simple name/value dictionaries (like the context created by the special form let).

SimpleScraper

I created a new JavaScript/Node.js package:

https://github.com/ajlopez/SimpleScraper

a simple web scraper in JavaScript/Node.js. The initial commits only process HTML in text, iterating over tag items. Light weight, no dependencies needed yet.

Others

I added minor changes to:

https://github.com/ajlopez/AjSharp
https://github.com/ajlopez/AjScript
https://github.com/ajlopez/RubySharp
https://github.com/ajlopez/RuScript

I worked on three non-public projects, too.

More fun is coming.

Keep tuned!

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

February 7, 2014

New Month’s Resolutions: February 2014

Review of my January’s Resolutions:

- Start to implement Akka-like actor model in C# [complete] see repo
- Start to implement Scala interpreter in JavaScript [complete] see repo
- Work on AjErl [complete] see repo
- Work on Mass (I have many ideas to implement as module pattern and variable scope access) [pending]
- Work on DylanSharp [complete] see repo
- Start an implementation of ML (JavaScript? C#?) [pending]

I also worked on:

- Improving Scala interpreter in C# [complete] see repo
- Adding dot notation to Lisp interpreter in C# [complete] see repo
- Improving Ruby interpreter in JavaScript [complete] see repo
- Improving Clojure-like interpreter in C# [complete] see repo
- First templates, tasks generating Sinatra application in AjGenesis for Node [complete] see repo

My new month’s resolutions:

- Complete distributed messaging in AjErl
- Complete dot notation in AjLisp
- Improve ClojSharp
- Work on ScaScript
- Work on ScalaSharp
- Add variable scope to Mass
- Complete first version Aktores actor model in C#
- More code generation tasks, templates, models in AjGenesis for Node, generating Express, Meteor, Sinatra applications

More fun is coming

Keep tuned!

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

February 4, 2014

End Of Iteration 2014w05

Filed under: AjErl, C Sharp, Erlang, Iteration, JavaScript, NodeJs, Scala, ScalaSharp — ajlopez @ 2:45 pm

Previous Post
Next Post

As usual, I was working on my open source projects:

AjErl

Big advances:

https://github.com/ajlopez/AjErl

I implemented mailbox in processes, and now I have a send operator !, and a receive expression. I started to add map support (the new Erlang feature) and now I have export form in place.

Using messages, send and receive, I could communicate local processes.

Next steps: selective receive, distributed applications.

ScalaSharp

My project:

https://github.com/ajlopez/ScalaSharp

It is still an interpreter, work in progress, of Scala, written in C#. But this week I added first type info support. In general, in my interpreter, I didn’t write type checks. But in this case, the source language, Scala, is a typed one. So I added TypeInfo to def arguments, returns, and var and val commands. I should decide where to put the type checking: I could add some checkpoints at parser time, but some class def are not known at that time, so I should add a second pass visitor for pending type checking.

Anyway, TDD supports my work and my refactor/redesigns!

ScaScript

My Scala interpreter in JavaScript (not a compiler, yet)

https://github.com/ajlopez/ScaScript

Few additions, but now I have types for var, val, def. I’m applying “dog fooding” of my SimpleGrammar module.

The same for

https://github.com/ajlopez/RuScript

I was working on three non-public projects, involving C#, Excel plugin, web applications in ASP.NET MVC, and simple server with Node.js/JavaScript and geolocation trends using d3.js

More fun is comming.

Keep tuned!

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

Older Posts »

The Shocking Blue Green Theme. Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 57 other followers