Angel \”Java\” Lopez on Blog

March 31, 2012

Lisp: Links, News and Resources (1)

Filed under: Functional Programming, Links, Lisp, Programming Languages — ajlopez @ 7:26 pm

Next Post

If you usually read this blog, you should know about my interest in Lisp programming languages. This is the first post on a series with my collected links.

Structure and Interpretation of Computer Programs
http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-4.html

Structure and Interpretation of Computer Programs, Video Lectures
http://groups.csail.mit.edu/mac/classes/6.001/abelson-sussman-lectures/

Beating the Averages
http://www.paulgraham.com/avg.html

What Made Lisp Different
http://www.paulgraham.com/diff.html

Lisp for the Web
http://www.adampetersen.se/articles/lispweb.htm

L-99: Ninety-Nine Lisp Problems
http://www.ic.unicamp.br/~meidanis/courses/mc336/2006s2/funcional/L-99_Ninety-Nine_Lisp_Problems.html

Growing a Language
http://www.cs.virginia.edu/~evans/cs655/readings/steele.pdf

Getting Started | Lambda the Ultimate
http://lambda-the-ultimate.org/node/492

Lisp Isn’t Really a Programming Language « Learning Lisp
http://lispy.wordpress.com/2007/10/24/lisp-isnt-really-a-programming-language/

Common Lisp – Myths and Legends
http://www.lispworks.com/products/myths_and_legends.html

msnyder.info — Lisp for the Web, Part II
http://msnyder.info/posts/2011/07/lisp-for-the-web-ii/

Automata via Macros
http://www.cs.brown.edu/~sk/Publications/Papers/Published/sk-automata-macros/paper.pdf

Hedgehog
http://hedgehog.oliotalo.fi/
Hedgehog is a very concise implementation of a Lisp-like language for low-end and embedded devices.

Stylish Lisp programming techniques
http://www.ccs.neu.edu/home/shivers/newstyle.html

The Rebirth of Lisp
http://silversmalltalk.wordpress.com/2011/01/31/the-rebirth-of-lisp/

Lisp machine
http://en.wikipedia.org/wiki/Lisp_machine

YouTube – Practical Common Lisp
http://www.youtube.com/watch?v=VeAdryYZ7ak

Primacy of syntax
http://fexpr.blogspot.com/

Programing Language: The Glory of Lisp’s cons
http://xahlee.org/UnixResource_dir/writ/lisp_cons.html

YouTube – Land of Lisp- The Music Video!
http://www.youtube.com/watch?v=HM1Zb3xmvMc

Beginning LISP Programming in Ubuntu
http://easyybloger.blogspot.com/2011/06/beginning-lisp-programming-in-ubuntu.html

Investing with lisp
http://www.findinglisp.com/blog/2004/11/investing-with-lisp.html

Review of Structure and Interpretation of Computer Programs
http://www.adampetersen.se/reviews/sicp.htm

Review of Let Over Lambda
http://www.adampetersen.se/reviews/letoverlambda.htm

Make macros and functions integrate more seamlessly
http://www.nujk.com/make-macros-and-functions-integrate-more-seamlessly

Pharen: Lisp -> PHP
http://scriptor.github.com/pharen/index.html

Lisp: Common Lisp, Scheme, Clojure, Emacs Lisp – Hyperpolyglot
http://hyperpolyglot.org/lisp

Social Problems Of Lisp
http://c2.com/cgi/wiki?SocialProblemsOfLisp

Monad Macros in Common Lisp
http://common-lisp.net/project/cl-monad-macros/monad-macros.htm

Lisk – Lisp and Haskell
http://chrisdone.com/posts/2010-11-25-lisk-lisp-haskell.html

The Little Schemer
http://www.ccs.neu.edu/home/matthias/BTLS/

Common Lisp Extensions – Common Lisp Extensions
http://www.chemie.fu-berlin.de/chemnet/use/info/cl/cl_1.html

The Common Lisp Cookbook
http://cl-cookbook.sourceforge.net/

Zach’s Journal
http://xach.livejournal.com/tag/lisp

Arc Tutorial
http://ycombinator.com/arc/tut.txt

And my implementations
http://ajlopez.wordpress.com/category/ajlisp/

More links about Lisp and similar programming languages are coming.

Keep tuned!

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

March 28, 2012

Ruby: Links, news and Resources (4)

Filed under: Links, Programming Languages, Ruby — ajlopez @ 4:16 pm

Previous Post
Next Post

More links about Ruby Programming:

tarcieri / celluloid
https://github.com/celluloid/celluloid
Actor-based concurrent framework for Ruby

Programming Ruby 1.9 (3rd edition): The Pragmatic Programmers’ Guide
http://pragprog.com/book/ruby3/programming-ruby-1-9

Learn to Program
http://pine.fm/LearnToProgram/
A Place to Start for the Future Programmer

NoSQL OODB with Smalltalk-based Ruby VM: MagLev 1.0 Released
http://www.infoq.com/news/2011/11/ruby-maglev-10

MetaWhere & MetaSearch
http://railscasts.com/episodes/251-metawhere-metasearch
MetaWhere provides a way to do complex find conditions without SQL in Active Record. MetaSearch makes it easy to create search forms with many find options.

jeremyevans / sequel
https://github.com/jeremyevans/sequel

Sequel: The Database Toolkit for Ruby
http://sequel.rubyforge.org

Monkeypatching For Humans
http://www.codinghorror.com/blog/2008/07/monkeypatching-for-humans.html
…In those languages, you could redefine everything in the String class if you wanted to. This is commonly known in dynamic language circles as monkeypatching.

Como instalar Ruby en Ubuntu Linux
https://github.com/rubyperu/rubyperu.github.com/wiki/Instalacion-en-linux

Como instalar Ruby en Mac OS X
https://github.com/rubyperu/rubyperu.github.com/wiki/Instalacion-en-mac

Ruby performance showdown
http://nebulab.it/en/nebulog/ruby-performance-showdown

rchatley / extreme_startup
https://github.com/rchatley/extreme_startup
This software supports a workshop where teams can compete to build a software product that satisfies market demand.

eventmachine / eventmachine
https://github.com/eventmachine/eventmachine

EventMachine: fast, simple event-processing library for Ruby programs
http://www.rubyeventmachine.com

Musings On Software Community
http://haacked.com/archive/2011/11/25/musings-on-software-community.aspx
While attending Oredev 2011, I had an interesting conversation with Corey Haines about his perception of the Ruby community as compared to the .NET community.

Enums in Ruby
http://stackoverflow.com/questions/75759/enums-in-ruby

Ruby clouds: Engine Yard vs. Heroku
http://www.computerworld.com/s/article/9222258/Ruby_clouds_Engine_Yard_vs._Heroku

RubyConf Argentina and Fenix
http://blog.mmediasys.com/2011/11/26/rubyconf-argentina-and-fenix/
My talk was titled Tirando Ruby por la Ventana, which translates to Throwing Ruby through the Window
The talk was aimed at highlight a few issues with Ruby on Windows, ranging from the community to the implementation.
by @luislavena

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

Keep tuned!

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

March 26, 2012

March 22, 2012

AjTalk in Javascript (1) First implementations

Some days ago, I moved my AjTalk project from Google Code to GitHub:

https://github.com/ajlopez/AjTalk

Last year, I added the compilation of Smalltalk fileouts to Javascript, into that project. Past Sunday, I created a new project at:

https://github.com/ajlopez/AjTalkJs

as code kata for another approach: implementing an AjTalk virtual machine, from scratch, in JavaScript. The idea is to compile Smalltalk code to methods in bytecodes, and to have an interpreter for those methods. The code is at´

https://github.com/ajlopez/AjTalkJs/blob/master/lib/ajtalk.js

In that implementation, I’m using a sendMessage method and a custom lookup for methods. Excerpt (lib/ajtalk.js):

BaseObject.prototype.sendMessage = function(selector, args)
{
    var method = this.lookup(selector);
    return method.apply(this, args);
};

function BaseClass(name, instvarnames, clsvarnames, supercls) {
    this.name = name;
    this.instvarnames = instvarnames;
    this.clsvarnames = clsvarnames;
    this.supercls = supercls;
    this.methods = {};
};

BaseClass.prototype.__proto__ = BaseObject.prototype;

BaseClass.prototype.defineMethod = function (selector, method)
{
    this.methods[selector] = method;
};

BaseClass.prototype.getInstanceSize = function() {
    var result = this.instvarnames.length;
    if (this.supercls)
        result += this.supercls.getInstanceSize();

    return result;
};

BaseClass.prototype.lookupInstanceMethod = function (selector)
{
    var result = this.methods[selector];
    if (result == null && this.supercls)
        return this.supercls.lookupInstanceMethod(selector);
    return result;
};

At Monday, I had new ideas for implementing the virtual maching. I could use the prototype features of Javascript. Then, I wrote some new code (lib/ajtalknew.js):

function createClass(name, superklass, instvarnames, clsvarnames)
{
    var protoklass = new Function();

    if (superklass)
    {
        // Chain class prototypes
        protoklass.prototype.__proto__ = superklass.proto;
    }
    else
    {
        // First class methods
        protoklass.prototype.basicNew = function()
        {
            var obj = new this.func;
            obj.klass = this;
            return obj;
        }

        protoklass.prototype.defineSubclass = function(name, instvarnames, clsvarnames)
        {
            return createClass(name, this, instvarnames, clsvarnames);
        }

        protoklass.prototype.defineMethod = function(name, method)
        {
            var mthname = name.replace(/:/g, '_');
            if (typeof method == "function")
                this.func.prototype[mthname] = method;
            else
                this.func.prototype[mthname] = method.toFunction();
        }

        protoklass.prototype.defineClassMethod = function(name, method)
        {
            var mthname = name.replace(/:/g, '_');
            if (typeof method == "function")
                this.proto[mthname] = method;
            else
                this.proto[mthname] = method.toFunction();
        }

        // TODO Quick hack. It should inherits from Object prototype
        protoklass.prototype.sendMessage = function(selector, args)
        {
            return this[selector].apply(this, args);
        }
    }

    var klass = new protoklass;

    // Function with prototype of this klass instances
    klass.func = new Function();
    klass.proto = protoklass.prototype;
    klass.name = name;
    klass.super = superklass;
    klass.instvarnames = instvarnames;
    klass.clsvarnames = clsvarnames;

    klass.func.prototype.klass = klass;

    if (superklass)
    {
        // Chaining instances prototypes
        klass.func.prototype.__proto__ = superklass.func.prototype;
    }
    else
    {
        // First instance methods
        klass.func.prototype.sendMessage = function(selector, args)
        {
            return this[selector].apply(this, args);
        }
    }

    Smalltalk[name] = klass;

    return klass;
}

createClass('Object');

Smalltalk.Object.defineClassMethod('compileMethod:', function(text)
    {
        var compiler = new Compiler();
        var method = compiler.compileMethod(text, this);
        this.defineMethod(method.name, method);
        return method;
    });

Smalltalk.Object.defineClassMethod('compileClassMethod:', function(text)
    {
        var compiler = new Compiler();
        var method = compiler.compileMethod(text, this);
        this.defineClassMethod(method.name, method);
        return method;
    });

Ok, it’s a bit tricky, but it works!

Notably, I wrote test using Node builtin assert module (I had no Internet connection, and had no NodeUnit in my machine). The code was nurtured using TDD and it was a good experience for me.

I have a javascript Compiler function/”class” that I can use to compile Smalltalk code to my bytecode version. Only a few bytecodes are implemented:

var ByteCodes = {
    GetValue: 0,
    GetArgument: 1,
    GetLocal: 2,
    GetInstanceVariable: 3,
    GetGlobalVariable: 4,
    GetSelf: 5,
    SetLocal: 10,
    SetInstanceVariable: 11,
    SetGlobalVariable: 12,
    Add: 20,
    Subtract: 21,
    Multiply: 22,
    Divide: 23,
    SendMessage: 40,
    Return: 50
};

Pending work: implement class variables, metaclasses, with TDD. Improve hmtl samples

Keep tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

March 21, 2012

Clojure: Links, News And Resources (5)

Filed under: Clojure, Java, Links, Lisp, Programming Languages — ajlopez @ 8:31 pm

Previous Post
Next Post

Clojure/core — (take 5 william-byrd)
http://clojure.com/blog/2012/02/16/take5-william-byrd.html
William Byrd is a postdoc at Indiana University researching the applicability of declarative programming techniques to high-performance computing domains. In addition, he is one of the three authors of the fantastic book The Reasoned Schemer that walks the reader through the development of a small …

pallet/zi – GitHub
https://github.com/pallet/zi
Zi is a maven plugin for clojure.

mmikulicic / clarsec
https://github.com/mmikulicic/clarsec
Parsec monadic parser ported to clojure

youngnh / parsatron
https://github.com/youngnh/parsatron
Clojure parser combinators

Clojure vs Scala · Compare programming languages · Programming Languages
http://hammerprinciple.com/therighttool/items/clojure/scala
The absolute rankings are interesting for large scale comparisons but when you want to know about two specific languages it’s much more informative to look at how the two fare when they go directly head to head.

Reflections on a real-world Clojure application (take 2)
http://blog.malcolmsparks.com/?p=56
Last night I gave a talk at the London Clojure Users Group (LCUG) about a ‘real-world’ (16K lines-of-code) application we built in less than a year with Clojure at Deutsche Bank.

Doing Things ←
http://www.clojure.net/2012/02/08/Doing-things/
So far, we’ve looked at the sequence monad and the set monad. Hopefully by now you’ve gotten a feel for how m-result and m-bind work for those two examples.

Clojure demo web application using Ring, Compojure, MongoDB and Fusion Charts.
http://www.youtube.com/watch?v=4CFy5C2OvM4&feature=youtu.be
A demo web application using Clojure, Ring, Compojure, MongoDB, Fusion Charts.

The RedMonk Programming Language Rankings: February 2012 – tecosystems
http://redmonk.com/sogrady/2012/02/08/language-rankings-2-2012/
For years now, it has been self-evident to us at RedMonk that programming language usage and adoption has been fragmenting at an accelerating rate

Using dynamic programming to calculate Stirling numbers
http://biesnecker.com/dynamic-programming-stirling-number-calculator.html

IT Software Community – John W. Verity – LISP Is Back, and It’s Baaaaad!
http://www.itsoftwarecommunity.com/author.asp?doc_id=238067&section_id=1624

gelfino
http://documentup.com/narkisr/gelfino/
Gelfino is a tiny embeddable Gelf server written in pure Clojure, Gelfino enables real time processing of log events through streams.

(david-mcneil.com:blog), Clojure Robot DSL
http://david-mcneil.com/post/17044248397/clojure-robot-dsl

Sets Not Lists ←
http://www.clojure.net/2012/02/04/Sets-not-lists/

Functional Relational Programming with Cascalog
http://clojure.com/blog/2012/02/03/functional-relational-programming-with-cascalog.html

Stuart Sierra: “Learning Clojure – Next Steps” | Clojure on Blip
http://blip.tv/clojure/stuart-sierra-learning-clojure-next-steps-5921905
You can conj and assoc like a pro. You eat macros for breakfast.What’s next?

The Pragmatic Bookshelf | PragPub 2011-08 | Hello, ClojureScript!
http://pragprog.com/magazines/2011-08/hello-clojurescript
Clojure rocks, JavaScript reaches. ClojureScript is the realized inevitability of Clojure’s expansion to other platforms.It seems these days you can’t write a web-based application without reaching for JavaScript.

David McNeil: “Concurrent Stream Processing” | Clojure on Blip
http://blip.tv/clojure/david-mcneil-concurrent-stream-processing-5919702
The foundation of our query processing engine is a concurrent data stream processor. This processor is characterized by the need to efficiently perform parallel, non-blocking processing of multiple data streams which are too large to fit in memory.

InfoQ: One () to Rule them All
http://www.infoq.com/presentations/One-Parenthesis-to-Rule-them-All
Aaron Bedra introduces Clojure and details how ClojureScript – a Clojure subset compiled to JavaScript – helps with web development.

Clojure/core — First Conj 2011 Videos Available
http://clojure.com/blog/2012/01/31/first-conj-2011-videos-available.html
Five videos from Clojure Conj 2011 are now available.

Home // Overtone
http://overtone.github.com/
Overtone is an open source audio environment being created to explore musical ideas from synthesis and sampling to instrument building, live-coding and collaborative jamming. We use the SuperCollider synth server as the audio engine, with Clojure being used to develop the APIs and the application. …

On Beyond Lambda: Clojure is one answer
http://onbeyondlambda.blogspot.com/2012/01/my-last-post-was-link-to-video-t...
A travel log of a .NET developer as he explores Clojure and F#, and looks for ways to apply C# to a multi-core world.A travel log of a .NET developer as he explores Clojure and F#, and looks for ways to apply C# to a multi-core world.

richard-lyman/amotoen – GitHub
https://github.com/richard-lyman/amotoen
Amotoen is a Clojure library that supports PEG style definitions of grammars that can produce parsers

Clojure for Ruby Programmers – Stuart Halloway – Ruby Conference 2009
http://confreaks.com/videos/191-rubyconf2009-clojure-for-ruby-programmers

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

Keep tuned!

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

March 15, 2012

Erlang: Links, News And Resources (2)

Filed under: Erlang, Functional Programming, Links, Programming Languages — ajlopez @ 1:44 pm

Previous Link
Next Link

Learning Erlang
http://20bits.com/articles/learning-erlang/
Last week I decided to learn Erlang, a functional programming language developed by Ericsson in 1987 for use in telecommunications environments. It’s probably the strangest non-toy programming language I’ve ever tried to learn…

Long rant on Erlang-style Actors: Lost Dimension | Lambda the Ultimate
http://lambda-the-ultimate.org/node/4453
This post is follow up to my previous post about programming languages. If we apply the conceptual framework that was discussed in the post we will see that modern event-driven programs designed in OO paradigm (but not necessary in OO-language) has the following dimensions of analysis and …

Erlang Web
http://www.erlang-web.org/
The Erlang Web is an open source framework for applications based on HTTP protocols, giving the developer better control of content management. With Erlang Web’s simple but extensible concept of including dynamic content in pages, libraries of reusable components can be built. Currently it supports …

PlanetErlang
http://www.planeterlang.org/

Erlang Solutions – Your Scalability Architects
http://www.erlang-solutions.com/

Erlide – the Erlang IDE. Powered by Eclipse.
http://erlide.org/
We are proud to announce the latest version that is 0.13.9 and offers the following features:For those that have been using our unstable releases, there are only few new things…

ejabberd Community Site | the Erlang Jabber/XMPP daemon
http://www.ejabberd.im/
ejabberd 2.1.9, ejabberd 3.0.0-alpha-4, and exmpp 0.9.8 have been released, after several months of development. They contain a lot of bugfixes, improvements and some new features.This release includes a lot of bugfixes and improvements.

Erlang Factory
http://www.erlang-factory.com/

YOW! 2011: Steve Vinoski – Riak Core, Erlang and Frisbee Freestyle
http://channel9.msdn.com/Blogs/Charles/YOW-2011-Steve-Vinoski-Riak-Core-Erlang-and-Frisbee-Freestyle

josevalim/elixir – GitHub
https://github.com/josevalim/elixir
Elixir is a programming language built on top of Erlang. As Erlang, it is a functional language with strict evaluation and dynamic typing built to support distributed, fault-tolerant, non-stop applications with hot swapping.

LFE – Lisp Flavoured Erlang
http://forum.trapexit.org/viewtopic.php?p=43950
This is LFE, Lisp Flavoured Erlang, which is a lisp syntax front-end to the Erlang compiler. Code produced with it is compatible with “normal” Erlang code. Most things seem to work but some things have not been done yet..

Erlang Programming for Multicore
http://ulf.wiger.net/weblog/2009/01/23/erlang-programming-for-multicore/

The cutting edge of VM design
http://www.unlimitednovelty.com/2009/01/cutting-edge-of-vm-design.html

The Trouble with Erlang (or Erlang is a ghetto)
http://www.unlimitednovelty.com/2011/07/trouble-with-erlang-or-erlang-is-ghetto.html

The Trouble with Erlang
http://lambda-the-ultimate.org/node/4350

Reia
http://reia-lang.org/
Reia is a Ruby-like scripting language for the Erlang virtual machine.

Erlang actors – some newbie thoughts/doubts.
https://plus.google.com/u/0/109924404877416820675/posts/5Fn5iBuqwvg

ferd / erlang-history
https://github.com/ferd/erlang-history
Hacks to add shell history to Erlang’s shell

Erlang, the big switch in social games
http://www.slideshare.net/wooga/erlang-the-big-switch-in-social-games

Dart: An Erlanger’s Reflections
http://dartinside.com/2011/dart-an-erlangers-reflections/

Functional Programming Doesn’t Work (and what to do about it)
http://prog21.dadgum.com/54.html

Mike Williams on the History of Erlang, Modeling and Large Scale Design
http://www.infoq.com/interviews/williams-erlang
Mike Williams, co-creator of Erlang discusses the history of and influences on Erlang as well as languages and paradigms used at Ericsson for large scale development and embedded programming.

One million!
http://blog.whatsapp.com/index.php/2011/09/one-million/
We usually don’t use this blog to talk about the technology stack behind WhatsApp, but today we wanted to share with you an awesome milestone we have reached…
…For those curious how we did it, the technology on the backend is simple: FreeBSD + Erlang

Let It Crash … Except When You Shouldn’t
http://www.infoq.com/presentations/Let-It-Crash
Steve Vinoski explains how to avoid some of the Erlang errors that can bring down a system starting from the premise that not all the crashes are welcome as the “Let It Crash” philosophy might suggest.

Simon Thompson and Huiquing Li on Refactoring in Functional Languages Like Haskell or Erlang
http://www.infoq.com/interviews/thompson-li-refactoring
Simon Thompson and Huiqing Li explain refactoring with functional languages and Wrangler (Erlang) and HaRe (Haskell). Also: how Wrangler’s ad-hoc mode allows everyone to write custom refactorings.

Functional Programming at
Facebook
http://cufp.galois.com/2009/slides/PiroLetuchy.pdf
Erlang
▪ Chat backend (channel servers)
▪ Chat Jabber interface (ejabberd)
▪ AIM presence: a JSONP validato
Spooky
https://github.com/flashingpumpkin/spooky
Minimum viable Erlang web framework

Contrasting Performance : Languages, Styles and VMs – Java, Scala, Python, Comments: True Erlang, Clojure, Ruby, Groovy, Javascript
http://blog.dhananjaynene.com/2011/08/cperformance-comparison-languages-styles-and-vms-java-scala-python-erlang-clojure-ruby-groovy-javascript/

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

More links about Erlang, functional programming, and programming languages, are coming.

Keep tuned!

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

March 13, 2012

Acquarella Syntax Highlighter

Filed under: .NET, Acquarella, C Sharp, Open Source Projects — ajlopez @ 2:15 pm

Past weekend, I was coding a simple and configurable syntax highlighter, in C#, named Acquarella. You can see the result at:

https://github.com/ajlopez/Acquarella

The current solution has a class library project, a console program and a test project:

The idea is to have a library you can reference and use from your projects, in case you need some syntax highlighting functionality. The library takes a text (an string) and, giving the source code language and style name, transform it to another text, using configuration files. There is a more detailes information at project README.md.

Dog fooding, the Token.cs class transformed by Acquarella:

namespace Acquarella.Lexers
{
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    public class Token
    {
        private string text;
        private int start;
        private int length;
        private TokenType type;

        public Token(TokenType type, string text, int start, int length)
        {
            this.type = type;
            this.text = text;
            this.start = start;
            this.length = length;
        }

        public string Value
        {
            get
            {
                return this.text.Substring(this.start, this.length);
            }
        }

        public TokenType Type { get { return this.type; } }

        public int Start { get { return this.start; } }

        public int Length { get { return this.length; } }
    }
}

Nice :-)

Pending work: Recognize comments, more styles (maybe using css files), more language configurations, extending Lexer (maybe RubyLexer, CSharpLexer, etc.)

Keep tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

March 12, 2012

CQRS: Links, News And Resources (3)

Filed under: CQRS, Links, Software Architecture, Software Development — ajlopez @ 5:23 pm

Previous Post

The third installment of this link series. This time, tutorial resources.

CQRS Starting Page
http://abdullin.com/cqrs/
This page lists learning materials, documents, videos, tips and reference implementations about getting started with Command and Query Responsibility Segregation.

Clarified CQRS
http://www.udidahan.com/2009/12/09/clarified-cqrs/

Towards an immutable domain model – introduction (part 1)
http://blog.zilverline.com/2011/02/01/towards-an-immutable-domain-model-introduction-part-1/

Aclarando CQRS (traducción)
https://docs.google.com/document/d/1-5rmzY48aXZp3A-uaULnwU0gV7r1E1ZkEV1i5YBn-LI/edit?pli=1

CQRS Documents by Greg Young
http://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf

In The Brain of Udi Dahan: CQRS, race conditions, and sagas – oh my!
http://skillsmatter.com/podcast/open-source-dot-net/udi-dahan-cqrs-race-conditions-and-sagas

CQRS
http://martinfowler.com/bliki/CQRS.html

Why I Still Love CQRS (and Messaging and Event Sourcing)
http://blog.jonathanoliver.com/2011/05/why-i-still-love-cqrs-and-messaging-and-event-sourcing/

CQRS, Task Based UIs, Event Sourcing agh!
http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/

cqrs for dummies – an interlude – has it all been a waste of time?
http://www.blogcoward.com/archive/2011/04/24/cqrs-for-dummiesndashan-interlude-ndash-has-it-all-been-a.aspx

Use CQRS When Constrained on Developers and Time
http://abdullin.com/journal/2011/4/23/use-cqrs-when-constrained-on-developers-and-time.html

Event Sourcing and CQRS, Let’s use it.
http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it

DDDD: Why I Love CQRS
http://blog.jonathanoliver.com/2009/10/dddd-why-i-love-cqrs/

CQRS – The Domain Events
http://elegantcode.com/2009/11/20/cqrs-the-domain-events/

Command / Query service in WCF
http://www.codinginstinct.com/2010/11/command-query-service-in-wcf.html

Theory of CQRS Command Handlers: Sagas, ARs and Event Subscriptions
http://abdullin.com/journal/2010/9/26/theory-of-cqrs-command-handlers-sagas-ars-and-event-subscrip.html

Race Conditions Don’t Exist
http://www.udidahan.com/2010/08/31/race-conditions-dont-exist/

Event Sourcing
http://martinfowler.com/eaaDev/EventSourcing.html

My Links
http://delicious.com/ajlopez/cqrs+tutorial+toblog

More links are coming.

Keep tuned!

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

CQRS: Links, News And Resources (3)

Filed under: CQRS, Links, Software Architecture, Software Development — ajlopez @ 5:21 pm

Previous Post
Next Post

The third installment of this link series. This time, tutorial resources.

CQRS Starting Page
http://abdullin.com/cqrs/
This page lists learning materials, documents, videos, tips and reference implementations about getting started with Command and Query Responsibility Segregation.

Clarified CQRS
http://www.udidahan.com/2009/12/09/clarified-cqrs/

Towards an immutable domain model – introduction (part 1)
http://blog.zilverline.com/2011/02/01/towards-an-immutable-domain-model-introduction-part-1/

Aclarando CQRS (traducción)
https://docs.google.com/document/d/1-5rmzY48aXZp3A-uaULnwU0gV7r1E1ZkEV1i5YBn-LI/edit?pli=1

CQRS Documents by Greg Young
http://cqrs.files.wordpress.com/2010/11/cqrs_documents.pdf

In The Brain of Udi Dahan: CQRS, race conditions, and sagas – oh my!
http://skillsmatter.com/podcast/open-source-dot-net/udi-dahan-cqrs-race-conditions-and-sagas

CQRS
http://martinfowler.com/bliki/CQRS.html

Why I Still Love CQRS (and Messaging and Event Sourcing)
http://blog.jonathanoliver.com/2011/05/why-i-still-love-cqrs-and-messaging-and-event-sourcing/

CQRS, Task Based UIs, Event Sourcing agh!
http://codebetter.com/gregyoung/2010/02/16/cqrs-task-based-uis-event-sourcing-agh/

cqrs for dummies – an interlude – has it all been a waste of time?
http://www.blogcoward.com/archive/2011/04/24/cqrs-for-dummiesndashan-interlude-ndash-has-it-all-been-a.aspx

Use CQRS When Constrained on Developers and Time
http://abdullin.com/journal/2011/4/23/use-cqrs-when-constrained-on-developers-and-time.html

Event Sourcing and CQRS, Let’s use it.
http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it

DDDD: Why I Love CQRS
http://blog.jonathanoliver.com/2009/10/dddd-why-i-love-cqrs/

CQRS – The Domain Events
http://elegantcode.com/2009/11/20/cqrs-the-domain-events/

Command / Query service in WCF
http://www.codinginstinct.com/2010/11/command-query-service-in-wcf.html

Theory of CQRS Command Handlers: Sagas, ARs and Event Subscriptions
http://abdullin.com/journal/2010/9/26/theory-of-cqrs-command-handlers-sagas-ars-and-event-subscrip.html

Race Conditions Don’t Exist
http://www.udidahan.com/2010/08/31/race-conditions-dont-exist/

Event Sourcing
http://martinfowler.com/eaaDev/EventSourcing.html

My Links
http://delicious.com/ajlopez/cqrs+tutorial+toblog

More links are coming.

Keep tuned!

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

March 8, 2012

CQRS: Links, News And Resources (2)

Filed under: CQRS, Links, Software Architecture, Software Development — ajlopez @ 3:59 pm

Previous Post
Next Post

More CQRS links, this time oriented to examples:

Greg Young Simple CQRS Sample
https://github.com/gregoryyoung/m-r/

Command-Query Separation on Windows Azure
http://ntotten.com/2011/10/command-query-separation-on-windows-azure/

jamuhl / nodeCQRS
https://github.com/jamuhl/nodeCQRS
CQRS Sample in node.js

CQRS and Event Sourcing with NCQRS
http://www.nicholascloud.com/2011/09/cqrs-and-event-sourcing-with-ncqrs/

ddd-cqrs-sample
http://code.google.com/p/ddd-cqrs-sample/
Domain Driven Design & Command-query Responsibility Segregation sample project – Java, Spring, JPA

archfirst
https://code.google.com/p/archfirst/
Sharing software best practices through real-world examples

Case Study CQRS
http://abstractiondev.wordpress.com/case-study-cqrs/

Scalable and Simple CQRS Views in the Cloud
http://abdullin.com/journal/2011/1/19/scalable-and-simple-cqrs-views-in-the-cloud.html

Eventual Consistency and Set Validation
http://codebetter.com/gregyoung/2010/08/12/eventual-consistency-and-set-validation/

Event Sourcing and CQRS, Let’s use it.
http://thinkbeforecoding.com/post/2009/11/02/Event-Sourcing-and-CQRS-Lets-use-it

Event Sourcing and Read Model generation
http://stackoverflow.com/questions/4064067/event-sourcing-and-read-model-generation

tyronegroves / SimpleCQRS
https://github.com/tyronegroves/SimpleCQRS
A framework for building applications using the CQRS and Event Sourcing patterns

CQRS Starting Page
http://abdullin.com/cqrs/
This page lists learning materials, documents, videos, tips and reference implementations about getting started with Command and Query Responsibility Segregation.

Command / Query service in WCF
http://www.codinginstinct.com/2010/11/command-query-service-in-wcf.html

Release of Lokad-CQRS for Windows Azure, Community Credits.
http://abdullin.com/journal/2010/10/15/release-of-lokad-cqrs-for-windows-azure-community-credits.html

Teach Visual Studio Your Own Language – Easy!
http://abdullin.com/journal/2010/10/12/teach-visual-studio-your-own-language-easy.html

EDA CQRS Betting Sample
http://fornax-sculptor.blogspot.com/2010/09/eda-cqrs-betting-sample.html

Simple CQRS + NHibernate event store
http://jasondentler.com/blog/2010/10/simple-cqrs-nhibernate-event-store/

jhicks / EventSourcing
https://github.com/jhicks/EventSourcing
The event sourcing piece of a CQRS framework

Lokad CQRS
http://lokad.github.com/lokad-cqrs/
Lokad.CQRS is a .NET framework and a set of guidance materials for building distributed and scalable applications to be run on-premises or in the cloud. This project helps to design and develop decoupled systems locally and bring them to the distributed environments

Ncqrs Framework
http://ncqrs.org/
Ncqrs is a framework for .NET helps build scalable, extensible and maintainable applications by supporting developers apply the CQRS architectural pattern.
https://github.com/ncqrs/ncqrs

CQRS and Event Sourcing
http://codebetter.com/gregyoung/2010/02/13/cqrs-and-event-sourcing/

Recording of Mark Nijhof on CQRS @ E-VAN 18 November 2009
http://europevan.blogspot.com/2009/11/recording-of-mark-nijhof-on-cqrs-e-van.html

MarkNijhof / Fohjin
https://github.com/MarkNijhof/Fohjin

My Links
http://delicious.com/ajlopez/cqrs+example

Older Posts »

The Shocking Blue Green Theme Blog at WordPress.com.

Follow

Get every new post delivered to your Inbox.

Join 56 other followers