Angel \”Java\” Lopez on Blog

February 29, 2012

AjBase (1) Implementing an In-Memory Database

Filed under: .NET, AjBase, C Sharp, Open Source Projects — ajlopez @ 8:29 pm

In mid 2009, I started to write an in-memory database, as a coding exercise in C#. These days, I resumed work on that project. Now the code resides in my GitHub repository:

https://github.com/ajlopez/AjBase

Nice history image at Github:

The current solution:

As usual, it was developed using Test-Driven Development. All tests in green:

The key implemented elements are:

Engine: It has a list of created databases (in memory, there is no persistence).

Database: It is the container for tables.

Table: A table has rows, and a RowDefinition.

RowDefinition: it manages the list of columns in a table.

Row: it keeps the values of the table columns, in an object array.

I have a doubt: to keep the schema (RowDefinition) per table, or go for a schema-less (free columns) per row. Now, I will keep the schema approach.

This year, I started to parse SQL statements. SQL is not my preferred languages (too many quirks, etc…), but the project can parse the simplest commands:

I want to add an ADO.NET provider, see the Data namespace:

I have a simple ADO.NET DbConnection, with some very basic (incomplete) ExecuteQuery, ExecuteNonQuery support.

Next steps: complete ADO.NET provider, more SQL parse support, concurrency and transaction support (big challenges! :-).

Next posts: examples for creating a database, creating a table, inserting data, selecting data, by code and by SQL statements. Meanwhile, you can explore the tests code, to see how to code those examples.

Keep tuned!

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

February 28, 2012

Ruby On Rails (2): Links, News and resources

Filed under: Links, Rails, Ruby, Ruby on Rails, Web Development — ajlopez @ 10:33 am

Previous Post

More links about this popular Ruby web framework (and some discussions):

Crazy, Heretical, and Awesome: The Way I Write Rails Apps
http://jamesgolick.com/2010/3/14/crazy-heretical-and-awesome-the-way-i-write-rails-apps.html

Rails Went Off The Rails: Why I’m Rebuilding Archaeopteryx In CoffeeScript
http://gilesbowkett.blogspot.in/2012/02/rails-went-off-rails-why-im-rebuilding.html

Frontend Code Doesn’t Have to Suck: 5 Tips for Rails Developers
http://starrhorne.com/2012/02/16/building-front-ends-that-dont-suck-five-tips-for-rails-developers.html

Moving from Sinatra to Rails
http://blog.steveklabnik.com/posts/2012-01-17-moving-from-sinatra-to-rails

ruby-debug in 30 seconds (we don’t need no stinkin’ GUI!)
http://pivotallabs.com/users/chad/blog/articles/366-ruby-debug-in-30-seconds-we-don-t-need-no-stinkin-gui-

What programming language is GitHub written in?
http://www.quora.com/What-programming-language-is-GitHub-written-in

Rails: Presenter Pattern
http://blog.jayfields.com/2007/03/rails-presenter-pattern.html

Ruby/Sinatra/Rails failing at Start
http://support.cloudfoundry.com/entries/515384-ruby-sinatra-rails-failing-at-start

Sinatra vs. Rails
http://stackoverflow.com/questions/3989438/sinatra-vs-rails

Rails Caching Benchmarked: MongoDB, Redis, Memcached
http://nosql.mypopescu.com/post/13493023635/rails-caching-benchmarked-mongodb-redis-memcached

r/CircleJerk
http://lostechies.com/ryanrauh/2012/01/04/circlejerk/
Lately there has been a lot posts about how Ruby on Rails might not follow the best practices.

ActiveRecord (and Rails) Considered Harmful
http://blog.steveklabnik.com/posts/2011-12-30-active-record-considered-harmful

Composition Of Responsibility vs Interface Implementation
http://lostechies.com/derickbailey/2012/01/03/composition-of-responsibility-vs-interface-implementation/
ActiveRecord might truly be a horrible beast with far too many concerns in one given place. I haven’t dug into that source code very much. From what I remember of it, it’s huge and difficult for me to understand (but then, it does a metric-ton-squared of meta-programming, so I guess I’m not surprised that it’s hard for me to understand).

Rails Has Turned Me Into a Cannibalizing Idiot
http://wekeroad.com/2012/01/03/rails-has-turned-me-into-a-cannibalizing-idiot/
Some interesting posts flying around about how ActiveRecord is rotting people’s brains and how Rails is "pants on head retarded". I figured I might as well respond.

spree / spree
https://github.com/spree/spree
Spree is a complete open source e-commerce solution for Ruby on Rails
http://spreecommerce.com

Is it better to use routes or mod_rewrite to forward old URLs?
http://stackoverflow.com/questions/1876843/is-it-better-to-use-routes-or-mod-rewrite-to-forward-old-urls

How to make Rails do not ignore trailing slashes in the routes?
http://stackoverflow.com/questions/6486758/how-to-make-rails-do-not-ignore-trailing-slashes-in-the-routes

SEO, Heroku, Ruby on Rails and removing those darn trailing slashes
http://nanceskitchen.com/2010/05/19/seo-heroku-ruby-on-rails-and-removing-those-darn-trailing-slashes/

El maldito libro de los descarrilados
http://emanuelpeg.blogspot.com/2011/02/el-maldito-libro-de-los-descarrilados.html
Tutorial de Ruby on Rails en castellano

Using Redis with Ruby on Rails
http://jimneath.org/2011/03/24/using-redis-with-ruby-on-rails.html

To Redis or Not To Redis? (Key-Value Stores Part 4)
http://www.engineyard.com/blog/2009/key-value-stores-for-ruby-part-4-to-redis-or-not-to-redis/

Delivering email with Amazon SES in a Rails 3 app
http://robots.thoughtbot.com/post/3105121049/delivering-email-with-amazon-ses-in-a-rails-3-app

Activity Logs and Friend Feeds on Rails & pfeed
http://www.travisdunn.com/activity-logs-and-friend-feeds-on-rails-pfeed

Ruby On Rails español
http://www.youtube.com/cspmoreno

Entrenando con Ruby y RoR
http://recorriendootrosrumbos.blogspot.com/2011/12/entrenando-con-ruby-y-ror.html

Learning how to Learn Rails
http://rails.nuvvo.com/lesson/543-learning-how-to-learn-rails

nicksieger / refactoring-to-rails
https://github.com/nicksieger/refactoring-to-rails
Example of refactoring a Spring/Hibernate application to Rails

Configuration for Rails, the Right Way
http://blog.carbonfive.com/2011/11/23/configuration-for-rails-the-right-way/

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

Memcached Internals: Memory Allocation, Eviction Policy, Consistent Hashing
http://nosql.mypopescu.com/post/13506116892/memcached-internals-memory-allocation-eviction

Heroku and Rails 3.1
http://bostonrb.org/presentations/heroku-and-rails-31

Ruby on Rails 3.0 Release Notes
http://edgeguides.rubyonrails.org/3_0_release_notes.html

Instalar Ruby on Rails 3 en Windows
http://www.developeando.com/2010/12/instalar-ruby-on-rails-3-en-windows.html

Rails QRCode Generator
http://qrcode.heroku.com/

How do I add a field in Ruby on Rails?
http://stackoverflow.com/questions/1608751/how-do-i-add-a-field-in-ruby-on-rails

Why Bother With Cucumber Testing?
http://www.jackkinsella.ie/2011/09/26/why-bother-with-cucumber-testing.html

Mini reviews of 19 Ruby template engines
http://www.hokstad.com/mini-reviews-of-19-ruby-template-engines.html

Ruby on Rails Tutorial
http://ruby.railstutorial.org/chapters/beginning

Rails Searchable API Doc
http://railsapi.com/

Bundler
http://gembundler.com/
Bundler manages an application’s dependencies through its entire life across many machines systematically and repeatably.

Getting Started with Rails
http://guides.rubyonrails.org/getting_started.html

Updating Ruby / Rails
http://allaboutruby.wordpress.com/2009/08/30/updating-ruby-rails/

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

More links about Ruby, Ruby web development, Sinatra, etc… are coming.

Keep tuned!

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

February 25, 2012

AjRools (1) Rule Engine in C#

Filed under: .NET, AjRools, Open Source Projects, Rule Engine — ajlopez @ 6:50 pm

Since last year, I was conducting a bit of research about rule engines, specially in Java:

http://delicious.com/ajlopez/ruleengine

I reviewed JBoss Drools Expert (see http://delicious.com/ajlopez/drools). Past December, I assisted to Buenos Aires JBoss Meetup (see Spanish post)

In the old eighties, I met Rete Algorithm (see The Rete Matching Algorithm, Dr.Dobb’s). After all that, I decide to implement my own rule engine, in C#. You can check my progress at:

https://github.com/ajlopez/AjRools

This is the current solution:

As usual, it was coded using TDD.

I have facts, that are asserted, like Temperature = 38. And rules, that based on the asserted facts, produce other asserted facts (I plan to add actions, too, beyond fact assertions). A rule example:

# Rules example
rules
# Rule for Child Fever
rule
	when
		Temperature > 38
		Age <= 12
	then
		HasFever is true
end
# Rule for Adult Fever
rule
	when
		Temperature > 37
		Age > 12
	then
		HasFever is true
end
end

I have ideas to extend the rule engine to support objects with properties, not only variables:

rule
when
	p is_a Patient
	p.Temperature is 39
then
	p.HasFever is true
end

but this feature is still in progress. I didn't adopt the Rete algorithm, yet, or something similar. I want to have a running implementation, with tests. Then, changing internal algorithm is like an exercise on refactoring.

Pending work: more object+properties support, session (client use of the internal implementation), etc.

Keep tuned!

Angel “Java” Lopez

http://www.ajlopez.com

http://twitter.com/ajlopez

February 24, 2012

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

Filed under: JavaScript, Links, NodeJs — ajlopez @ 12:50 pm

Previous Post
Next Post

More collected links about Node.js and its ecosystem, modules, critics, reviews, tutorial and samples.

The rise of Node.js: JavaScript graduates to the server
http://www.infoworld.com/d/application-development/the-rise-of-nodejs-javascript-graduates-the-server-185554
Microsoft and others have already adopted this technology to extend JavaScript beyond the browser — but it has limits developers must beware

tjanczuk / arrjs
https://github.com/tjanczuk/arrjs
HTTP and WebSocket application routing

Solving the upload progress bar problem–The History of Node.js
http://elegantcode.com/2012/02/06/solving-the-upload-progress-bar-problemthe-history-of-node-js/
If you would have asked me how Node.js came to be I probably would have guessed something along the lines of a Stanford research lab. That is, until I stumbled across this youtube video ‘Ryan Dahl – History of Node.js’ from a Pheonix user group back in Oct 11. I intended to watch just a few minutes, but it was really interesting and I ended up watching the whole thing. If you are into Node I recommend you check it out too.

Node.js Cluster
http://nodejs.org/docs/latest/api/cluster.html
A single instance of Node runs in a single thread. To take advantage of multi-core systems the user will sometimes want to launch a cluster of Node processes to handle the load.
The cluster module allows you to easily create a network of processes that all share server ports.

If you’re using Node.js, you’re doing life wrong
http://codeslinger.posterous.com/if-youre-using-nodejs-youre-doing-life-wrong

Patio
http://pollenware.github.com/patio/index.html
Patio-query is a Sequel inspired query engine.

Matador
http://obvious.github.com/matador/
An Obvious MVC Framework for Node.js

New Electronic Check-in System
http://www.cht.nhs.uk/news/news-item/article/new-electronic-check-in-system/
It uses Node.js

ShareJS – Live concurrent editing in your app.
http://sharejs.org/
ShareJS is an Operational Transform library for NodeJS & browsers. It lets you easily do live concurrent editing in your app.

Video Processing in node.js
http://fabric-engine.com/2012/01/video-processing-in-node-js/

Node.js Kansas City
http://nodekc.org/

Heroku, mongo, node.js – a problem
http://swizec.com/blog/heroku-mongo-node-js-a-problem/swizec/3565

visionmedia / jade
https://github.com/visionmedia/jade
Jade – robust, elegant, feature rich template engine for nodejs

The Reality of HTML5 Game Development and making money from it
http://www.photonstorm.com/archives/2759/the-reality-of-html5-game-development-and-making-money-from-it

Seriously.js: A Realtime, Node-Based Video Compositor for the Web
http://badassjs.com/post/16583192105/seriously-js-a-realtime-node-based-video-compositor

About restify
http://mcavage.github.com/node-restify/
restify is a node.js module built specifically to enable you to build correct REST web services. It borrows heavily from express (intentionally) as that is more or less the de facto API for writing web applications on top of node.js.

marcello3d / node-mongolian
https://github.com/marcello3d/node-mongolian
Mongo DB driver for node.js

benmills / robotskirt
https://github.com/benmills/robotskirt
A node wrapper for the C markdown parser, sundown.

bleakgadfly / node-irc
https://github.com/bleakgadfly/node-irc
Node.js socket wrapper for the IRC protocol (client-side)

evantahler / actionHero
https://github.com/evantahler/actionHero
node.js API framework for both tcp sockets and http clients

Node.js Web Application with Storage on MongoDB
https://www.windowsazure.com/en-us/develop/nodejs/tutorials/web-app-with-mongodb/
This tutorial describes how to use MongoDB to store and access data from a Windows Azure application written in Node.js.

Using the Windows Azure SDK for Node.js on Heroku
http://nodeblog.cloudapp.net/using-the-windows-azure-sdk-for-nodejs-on-heroku

omerucel / node-restapi
https://github.com/omerucel/node-restapi
node-restapi is a restful service creator

Benvie / Node.js-Ultra-REPL
https://github.com/Benvie/Node.js-Ultra-REPL
Starting with Node’s built in REPL, add in a completely redone inspect formatter, actual functioning separate V8 contexts, keybindings to create, switch, and delete between them, combine it with a bunch of color. ULTRA REPL

xxoo / node-fsWin
https://github.com/xxoo/node-fsWin
windows fs extensions for nodejs

einaros / GitAzure
https://github.com/einaros/GitAzure
Git hook for node.js apps running in Azure

Node.js Selected by InfoWorld for 2012 Technology of the Year Award
http://www.marketwatch.com/story/nodejs-selected-by-infoworld-for-2012-technology-of-the-year-award-2012-01-11

Meet Diego Araos, the winner of Geekli.st sponsored Hackathon, Santiago, Chile (Dec 2011)
http://andesbeat.com/2012/01/10/meet-diego-araos-the-winner-of-geekli-st-sponsored-hackathon-santiago-chile-dec-2011/
As an open source community contributor and fervient enthusiast in bleeding edge tech, in my inaugural post I decided to cover the story behind the team that won, and also, give them props for developing in Node.js.

Running socket.io on Windows Azure Web and Worker roles
http://nodeblog.cloudapp.net/running-socket-io-on-windows-azure-web-and-worker-roles

WindowsAzure / azure-sdk-tools
https://github.com/WindowsAzure/azure-sdk-tools

Tools for developing applications for Windows Azure
http://www.windowsazure.com/en-us/develop/overview/

Node.js Web Application using Express
https://www.windowsazure.com/en-us/develop/nodejs/tutorials/web-app-with-express/
Node.js includes a minimal set of functionality in the core runtime. Developers often use 3rd party modules to provide additional functionality when developing a Node.js application. In this tutorial you will extend the application created in the Node.js Web Application tutorial by using modules.

Node.js Web Application
https://www.windowsazure.com/en-us/develop/nodejs/tutorials/getting-started/

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

More links about Node.js, server-side javascript, and general use of javascript are comint.

Keep tuned!

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

February 22, 2012

Clojure: Links, News And Resources (4)

Filed under: Clojure, Java, Links, Lisp, Programming Languages — ajlopez @ 4:02 pm

Previous Post
Next Post

More links about Clojure programming languages:

Event-Driven Programming in Clojure
http://www.infoq.com/presentations/Event-Driven-Programming-in-Clojure

Beginning with Clojure
http://clojurelx.blogspot.com/2012/01/beginning-with-clojure.html

The Making of Typkov
http://www.youtube.com/watch?v=uTwnoZEw7FE&feature=youtu.be
Build a little webapp in Clojure/Noir from scratch

Clojure GUI Demo of Planetary Orbitals
http://juliangamble.com/blog/2012/01/23/clojure-gui-demo-of-planetary-orbitals/

Metaweblog API
https://github.com/brehaut/necessary-evil/wiki/Metaweblog-API

Backlog: Ola Bini on Clojure/conj
http://www.leonardoborges.com/writings/2012/01/22/backlog-ola-bini-on-clojure-conj/

Why Jark
http://icylisper.in/jark/
Startup time of the Java Virtual Machine(JVM) is quite slow and thereby command-line applications on the JVM are sluggish and very painful to use. Jark is an attempt to run a persistent JVM daemon and provide a set of utilities to interact with it.

All Your HBase Are Belong to Clojure
http://twitch.nervestaple.com/2012/01/12/clojure-hbase/

Introducing ClojureScript One
http://clojure.com/blog/2012/01/11/announcing-clojurescript-one.html
Here at Relevance, we spent some time recently looking at the ClojureScript experience. We were specifically concerned with finding the pain points in ClojureScript development. To make the experience as real as possible, we chose to rewrite a client application which had been written in CoffeeScript.

ClojureScript One
http://clojurescriptone.com/
ClojureScript One shows you how to use ClojureScript to build single-page, single-language applications in a productive, effective and fun way.

Object-oriented Clojure
http://css.dzone.com/articles/object-oriented-clojure

Web application in Clojure: the starting poin
http://css.dzone.com/articles/web-application-clojure

Some Thoughts on Classes After 18 Months of Clojure
http://vimeo.com/34522837

Create a basic web application in clojure
http://www.agilogy.com/blog/create-a-basic-web-application-in-clojure.html

fogus / fojure
https://github.com/fogus/fojure
a dumb little fp language written in Clojure

Immutant
http://immutant.org/
Immutant is an application server for Clojure built on top of JBoss AS7. It is a new project, but we already support Ring handlers and asynchronous messaging, and we are working on additional features.

My Clojure Adventure
http://www.myclojureadventure.com/

ClojureCLR
http://clojureclr.blogspot.com/

Getting Started with Clojure-clr
http://www.myclojureadventure.com/2011/10/getting-started-with-clojure-clr.html

roman / clj-stream
https://github.com/roman/clj-stream
Oleg’s Iteratees in Clojure

Road-map – or n+1 steps to enlightenment (or loonybind)
http://clojurelx.blogspot.com/2011/11/road-map-or-n1-steps-to-enlightenment.html

geoffsalmon / bytebuffer
https://github.com/geoffsalmon/bytebuffer
Clojure lib for packing and unpacking binary data using a java.util.ByteBuffer

Survey says: viability is number one
http://clojureclr.blogspot.com/2011/11/survey-says-viability-is-number-one.html

ClojureCLR has a new home
http://clojureclr.blogspot.com/2011/11/clojureclr-has-new-home.html

Clojure
http://groups.google.com/group/clojure/msg/d52aff66b951b460?pli=1

What is a multimethod?
http://krisjordan.com/multimethod-js

4Clojure
http://www.4clojure.com/
4Clojure is a resource to help fledgling clojurians learn the language through interactive problems. The first few problems are easy enough that even someone with no prior experience should find the learning curve forgiving.

Testing Storm Topologies (in Clojure)
http://www.pixelmachine.org/2011/12/17/Testing-Storm-Topologies.html

Maven Settings and Repositories
http://dev.clojure.org/display/doc/Maven+Settings+and+Repositories

dmansen / boggle
https://github.com/dmansen/boggle
A boggle solver, in clojure

Fractals in Clojure – Distributed Buddhabrot Fractal Using ClojureScript
http://nakkaya.com/2011/12/15/fractals-in-clojure-distributed-buddhabrot-fractal-using-clojurescript/

marick / Midje
https://github.com/marick/Midje
Midje provides a migration path from clojure.test to a more flexible, readable, abstract, and gracious style of testing

The Barbarians are at the Gates
http://blog.8thlight.com/uncle-bob/2011/12/11/The-Barbarians-are-at-the-Gates.html
By @unclebob

(take 6 carin-meier)
http://clojure.com/blog/2011/12/12/take6-carin-meier.html
Carin Meier is a veteran of the Clojure Conj scene having attended both installments and a true asset to both the Ruby and Clojure communities.

Tips for using marginalia
http://www.lispcast.com/tips-for-marginalia

Converting Command Line String Integers To Integers
http://drknucklehead.wordpress.com/2011/12/08/converting-command-line-string-integers-to-integers/

bitsai / clojure-actors
https://github.com/bitsai/clojure-actors
Actors implemented on top of Clojure agents

Erlang style actors implemented using clojure agents
https://github.com/bertschi/clojure-stuff/blob/master/src/stuff/actors.clj

stathissideris / clarity
https://github.com/stathissideris/clarity
A wrapper for Swing aiming to provide more concise syntax and extra functionality. Still in heavy development, syntax may change radically.

Introducing Clarity: Swing application development for Clojure
http://skillsmatter.com/podcast/scala/lightening-talk-clarity-a-wrapper-for-swing

A Refreshed View on Community : Clojure Conj 2011
http://www.uiandtherest.com/ui/index.php/2011/11/11/a-refreshed-view-on-community-clojure-conj-2011/

Clojure: STMs vs Locks
http://www.azulsystems.com/blog/cliff/2008-05-27-clojure-stms-vs-locks

Clojure for dummies: a kata
http://java.dzone.com/articles/clojure-dummies-kata-0

Introducing Avout: Distributed State in Clojure
http://clojure.com/blog/2011/11/29/avout.html

The Clojure Community and Me
http://blog.raynes.me/blog/2011/11/27/the-clojure-community-and-me/

Clojure’s protocols influences?
http://stackoverflow.com/questions/3682011/clojures-protocols-influences

Evangelizing Clojure
http://rhebus.posterous.com/79870335

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

More links about Clojure, Lisp, Functional Programming and Languages are coming.

Keep tuned!

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

February 19, 2012

Scala: Links, News and Resources (1)

Filed under: .NET, Functional Programming, Java, Links, Programming Languages, Scala — ajlopez @ 7:43 pm

Next Post

These are my first Scala programming language links.

http://en.wikipedia.org/wiki/Scala_%28programming_language%29

Scala (play /ˈskɑːlə/ skah-lə) is a multi-paradigm programming language designed to integrate features of object-oriented programming and functional programming.[3] The name Scala is aportmanteau of “scalable” and “language”, signifying that it is designed to grow with the demands of its users. James Strachan, the creator of Groovy, described Scala as a possible successor to Java.[4]

The design of Scala started in 2001 at the École Polytechnique Fédérale de Lausanne (EPFL) by Martin Odersky, following on from work on Funnel, a programming language combining ideas from functional programming and Petri nets.[5][not in citation given] Odersky had previously worked on Generic Java and javac, Sun’s Java compiler.[5]

Scala was released late 2003 / early 2004 on the Java platform, and on the .NET platform in June 2004.[3][5][6] A second version of the language, v2.0, was released in March 2006.[3]

On 17 January 2011 the Scala team won a 5 year research grant of over €2.3 million from the European Research Council.[7] On 12 May 2011, Odersky and collaborators launched Typesafe, a company to provide commercial support, training, and services for Scala. Typesafe received $3 million investment from Greylock Partners.[8][9][10][11]

Scala comes to .Net | The Scala Programming Language
http://www.scala-lang.org/node/10299

Scala In 5 Years – My Prediction « GridGain – High Performance Cloud Computing
http://gridgaintech.wordpress.com/2011/06/28/scala-in-5-years-my-prediction/

Why Java Folks Should Look Forward to Scala | Javalobby
http://java.dzone.com/articles/why-java-folks-should-look

Scala eXchange opening
http://www.slideshare.net/Odersky/scala-exchange-opening

Ruminations of a Programmer: Composing Heterogeneous DSLs in Scala
http://debasishg.blogspot.com/2011/06/composing-heterogeneous-dsls-in-scala.html

Scala Labs – Home
http://scala-labs.github.com/

Spark Cluster Computing Framework
http://www.spark-project.org/
Spark is an open source cluster computing system that aims to make data analytics fast — both fast to run and fast to write.

Along Came Betty » Clojure and Akka: A match made in …
http://blog.darevay.com/2011/06/clojure-and-akka-a-match-made-in/?utm_source=twitterfeed&utm_medium=twitter

Scala: The Static Language that Feels Dynamic
http://www.artima.com/weblogs/viewpost.jsp?thread=328540

Compiling Scala to LLVM
https://days2011.scala-lang.org/sites/days2011/files/ws3-2-scalallvm.pdf

Why Java folks should look forward to Scala | /var/log/mind
http://blog.dhananjaynene.com/2011/05/why-java-folks-should-look-forward-to-scala/

Functional Languages will Rule (but not this year) – Good Stuff
http://goodstuff.im/functional-languages-will-rule-but-not-this-y

Scala: A Better Java for Android
http://robots.thoughtbot.com/post/5836463058/scala-a-better-java-for-android

Ruminations of a Programmer: Combinators as the sublanguage of DSL syntax
http://debasishg.blogspot.com/2011/05/combinators-as-sublanguage-of-dsl.html

Typesafe
http://typesafe.com/
Typesafe makes it easy to build web-scale software based on the open source Scala programming language and Akka middleware. From multicore to cloud computing, it’s purpose built for scale.

The Pragmatic Bookshelf | Programming Concurrency on the JVM
http://pragprog.com/titles/vspcon/programming-concurrency-on-the-jvm

InfoQ: Actor Thinking
http://www.infoq.com/presentations/Actor-Thinking

Clojure or Scala for bioinformatics/biostatistics/medical research – Stack Overflow
http://stackoverflow.com/questions/5250459/clojure-or-scala-for-bioinformatics-biostatistics-medical-research

InfoQ: Guardian.co.uk Switching from Java to Scala
http://www.infoq.com/articles/guardian_scala

Asynchronous Event Sourcing using Actors
http://jonasboner.com/2009/02/12/event-sourcing-using-actors.html

Functional Scala: Expressions, Extensions and Extractors « brain driven development
http://gleichmann.wordpress.com/2011/03/13/functional-scala-expressions-extensions-and-extractors/

iWork.com – JVM Languages
http://public.iwork.com/document/?d=JVM_Languages.key&a=p1045023190

Scala Team Wins ERC Grant | The Scala Programming Language
http://www.scala-lang.org/node/8579

Ruminations of a Programmer: Monads – Another way to abstract computations in Scala
http://debasishg.blogspot.com/2008/03/monads-another-way-to-abstract.html

Monads Are Not Metaphors – Code Commit
http://www.codecommit.com/blog/ruby/monads-are-not-metaphors

Algorithmically challenged: Sieve of Eratosthenes (the real one) Scala One-Liner
http://dcsobral.blogspot.com/2010/12/sieve-of-eratosthenes-real-one-scala.html

Code Monkeyism: Singletons without Singletons: Scala Type Classes
http://codemonkeyism.com/singletons-singletons-scala-type-classes/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+stephansblog+%28Code+Monkeyism+%7C+Stephans+Blog%29

Erik Engbrecht’s Blog: Higher-Level versus Higher-Order Abstraction
http://erikengbrecht.blogspot.com/2010/07/higher-level-versus-higher-order.html

Ruminations of a Programmer: Scala – To DI or not to DI
http://debasishg.blogspot.com/2008/02/scala-to-di-or-not-to-di.html

Real-World Scala: Introduction
http://jonasboner.com/2008/10/01/real-world-scala-introduction.html

Tom Morris’ wiki » Scala for Hackers
http://tommorris.org/wiki/Scala_for_Hackers

Scala Style Guide
http://davetron5000.github.com/scala-style/

Monads in Scala
http://lamp.epfl.ch/~emir/bqbase/2005/01/20/monad.html

Building Distributed Systems in Scala
http://www.slideshare.net/al3x/building-distributed-systems-in-scala

James Carr » Blog Archive » Learning Scala: Factorials and foldRight
http://blog.james-carr.org/2010/05/31/learning-scala-factorials-and-foldright/

Scala Beauty – Fun with Logic « Thinkmeta
http://thinkmeta.wordpress.com/2010/03/25/scala-beauty-fun-with-logic/

Beyond Mere Actors
http://docs.google.com/present/view?id=ddmk3f43_63zpg3jcgz&ncl=true

My Links
http://www.delicious.com/ajlopez/scala
http://www.delicious.com/ajlopez/scala+tutorial
http://www.delicious.com/ajlopez/scala+presentation
http://www.delicious.com/ajlopez/scala+video

More Scala links are coming.

Keep tuned!

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

February 16, 2012

Smalltalk: Links, News And Resources (3)

Filed under: Links, Programming Languages, Smalltalk — ajlopez @ 8:09 pm

Previous Post
Next Post

10 reasons why I’m using Smalltalk for airflowing
http://www.reddit.com/r/programming/comments/ofwnc/10_reasons_why_im_using_smalltalk_for_airflowing

10 razones por las cuales estoy usando Smalltalk para airflowing
http://sebastianconcept.com/brandIt/10-razones-por-las-cuales-estoy-usando-smalltalk-para-airflowing

S8 – Smalltalk on the “Invisible Machine”
http://forum.world.st/S8-Smalltalk-on-the-quot-Invisible-Machine-quot-td3802015.html

Squeak VM: Compiling for Xcode
http://seandenigris.com/blog/?p=945

dbxtalk
http://code.google.com/p/dbxtalk/
The complete and open-source solution to relational database access.

S8 Release Candidate – Smalltalk on JS
http://www.nycsmalltalk.org/2012/01/10/s8-release-candidate-smalltalk-on-js/

Some Resources for People Who Want to Learn Smalltalk
http://patmaddox.com/blog/some-resources-for-people-who-want-to-learn-smalltalk.html

History of ObjectsAsMethods?
http://tech.groups.yahoo.com/group/squeak/message/164132

RE: U8 Release – Beta Testing
http://lists.squeakfoundation.org/pipermail/squeak-dev/2011-December/162491.html

[squeak-dev] Clamato
http://lists.squeakfoundation.org/pipermail/squeak-dev/2009-September/139299.html

Curso S8 – “Release Candidate”
http://www.smalltalking.net/Events/2011/Diciembre/curso_s8.htm

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

Smalltalk Directions
http://www.stic.st/about/academic-advisory-council/smalltalk-directions/

the true power of pair programming
http://forum.world.st/the-true-power-of-pair-programming-td4084637.html

Smalltalk with Style
http://stephane.ducasse.free.fr/FreeBooks/WithStyle/SmalltalkWithStyle.pdf

Kaliningrad: Developing with Amber, Seaside and Monticello
http://gemstonesoup.wordpress.com/2011/10/08/kaliningrad-developing-with-amber-seaside-and-monticello/

Smalltalks 2011
https://plus.google.com/photos/100710351159005018378/albums/5671140029661302929?authkey=COGRjfninqK6Fg&banner=pwa

Coral: Pharo Smalltalk for scripting
http://rmod.lille.inria.fr/coral/

Fuel
http://rmod.lille.inria.fr/web/pier/software/Fuel
Fuel is an open-source general purpose framework to serialize and deserialize objects based on a pickling algorithm.

Opal Compiler
http://www.slideshare.net/jressia/opal-compiler

Athens vector graphics API
http://code.google.com/p/pharo/wiki/Athens

Amber Smalltalk Documentation
http://nicolaspetton.github.com/amber/documentation.html

Canvas and JTalk
http://i.imgur.com/dZuJO.jpg

PetitParser
http://source.lukas-renggli.ch/petit/

Clamato
http://clamato.net/
Clamato is a Smalltalk dialect that is designed to operate within the JavaScript runtime. (For non-Canadians: “clamato” is what you get when you add clams to tomato juice. Some consider this an unholy mixture; others, a tasty treat.)

Implementing Smalltalk-80 on the ICL PERQ
http://www.wolczko.com/msc-abstract.html

The Blue Book VM
http://www.wolczko.com/st80/

Lanzamiento de S8 en Smalltalking
http://leodemarco.blogspot.com/2011/09/lanzamiento-de-s8-en-smalltalking.html

ST2JS – Smalltalk to Javascript translator
http://www.squeaksource.com/ST2JS/

The first time I met Steve Jobs
http://tech.fortune.cnn.com/2011/08/28/the-first-time-i-met-steve-jobs/
I was a reporter-researcher at Time magazine on a 12-month probationary writer’s trial. I’d heard that the Lisa had something to do with work done at Xerox’s (XRX) Palo Alto Research Center, and to prep for the meeting I had read and re-read the only substantive story I could find about Xerox PARC — a long article in Byte magazine on Smalltalk.

ESUG 2011, Edinburgh
http://www.flickr.com/photos/damienpollet/sets/72157627452303791/

ALAN KAY ON LISP AND FEXPRS.
http://kazimirmajorinc.blogspot.com/2010/02/alan-kay-on-fexprs.html

Presently
http://esug.org/data/ESUG2011/Slides/22-Monday/05-22-ESUG-Presenty.pdf
User Interface Framework

The Pharo Roadmap
http://esug.org/data/ESUG2011/Slides/22-Monday/03-22-ESUG-PharoRoadmap.pdf

Lisp vs Smalltalk vs Ruby
http://kresimirbojcic.com/2011/07/31/lisp-vs-smalltalk-vs-ruby.html

Who looks at Smalltalk?
http://openskills.blogspot.com/2011/07/who-looks-at-smalltalk.html

Can Smalltalk blocks be better than Lisp Macros?
http://www.cincomsmalltalk.com/userblogs/mls/blogView?entry=3289922530

Object Spaces for Safe Image Surgery
http://www.marcusdenker.de/publications/Casa09aObjectSpaces.pdf

gnu smalltalk koans
http://skim.la/2011/06/21/gnu-smalltalk-koans/

Types are Anti-Modular
http://gbracha.blogspot.com/2011/06/types-are-anti-modular.html

IM 31: Seaside and Rails (AAC)
http://www.jarober.com/blog/blogView?entry=3484152524

Mariano Martinez Peck
http://marianopeck.wordpress.com/

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

More links and resources are coming.

Keep tuned!

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

February 14, 2012

TDD: Links, News and Resources (2)

Previous Post
Next Post

If TDD is about design why do I need it?
http://programmers.stackexchange.com/questions/102649/if-tdd-is-about-design-why-do-i-need-it/103276#103276

How to Introduce a Test Driven Mindset
http://www.agileadvice.com/2011/09/07/uncategorized/how-to-introduce-a-test-driven-mindset/

Better is Better
http://www.infoq.com/presentations/Better-is-Better

Karate Chop Kata in C#
http://www.youtube.com/watch?v=D3BbjRo2MxY&feature=related

caolan / nodeunit
https://github.com/caolan/nodeunit
Easy unit testing in node.js and the browser, based on the assert module.

mfncooper / mockery
https://github.com/mfncooper/mockery
Simplifying the use of mocks with Node.js

On The Testing In Clojure Debate
http://philcalcado.com/2011/10/08/on_the_testing_in_clojure_debate.html
Recently, Rich Hickey said something at the Strange Loop conference comparing Test-Driven Development to driving a car around banging into the guard rails…

Simple Made Easy
http://www.infoq.com/presentations/Simple-Made-Easy

Vows
http://vowsjs.org/
Asynchronous behaviour driven development for Node.

qmock
http://code.google.com/p/qmock/
A JavaScript mocking library

Writing a Business-Oriented JavaScript Web Application
http://msdn.microsoft.com/en-gb/magazine/hh475811.aspx

Tests Unitarios. Cuándo usarlos y pistas para conseguir un sistema robusto
http://www.etnassoft.com/category/tdd-2/

Clean Code Episode VI – TDD – Part 1
http://www.cleancoders.com/codecast/clean-code-episode-6-part-1/show

How to write and unit-test universal JavaScript modules (browser, Node.js)
http://www.2ality.com/2011/08/universal-modules.html

Bridging the module gap between Node.js and browsers
http://www.2ality.com/2011/11/module-gap.html

Science or Snake Oil: Empirical software engineering
http://se9book.wordpress.com/2011/08/29/science-or-snake-oil-empirical-software-engineering/

How do I Jasmine: a tutorial
http://evanhahn.com/?p=181
Jasmine is a unit testing framework for JavaScript.

BDD and TDD for node.js?
http://stackoverflow.com/questions/4706020/bdd-and-tdd-for-node-js

Testing Backbone applications with Jasmine and Sinon – Part 1
http://tinnedfruit.com/2011/03/03/testing-backbone-apps-with-jasmine-sinon.html

Continuos Tests
http://www.continuoustests.com/

The Land that Scrum Forgot
http://scrumalliance.org/articles/300-the-land-that-scrum-forgot
We need to go fast, and we need to stay clean so we can keep going fast.  How can we incent the team to achieve both goals?  Simple.  We measure both and reward them equally…
We can measure messes by implementing engineering disciplines and practices like Test Driven Development (TDD), Continuous Integration, Pair Programming, Collective Ownership, and Refactoring; i.e. the engineering practices of eXtreme Programming (XP)

TDD 101 Learning Series – Beginning Test-Driven Development in a Legacy System Webinar Recording
http://blogs.seapine.com/2011/08/tdd-101-learning-series-%E2%80%93-beginning-test-driven-development-in-a-legacy-system-webinar-recording/

Practical Testing Techniques for Windows Azure Applications
http://www.devproconnections.com/article/cloud-computing2/cloud-test-windows-azure-136179
How to use unit testing and mocking to build tests for an Azure-hosted website

Clojure FizzBuzz
http://tech.puredanger.com/2011/06/30/clojure-fizzbuzz/

The powershell continuously watch for file changes in a directory, then it executes PhantomJs with the Run-Qunit.js attached to your htm qunit test harness
https://gist.github.com/1125265

Growing instant legacy code with TDD and Mocks
http://theitriskmanager.wordpress.com/2011/07/05/growing-instant-legacy-code-with-tdd-and-mocks/

Test Driven Development (TDD) and Windows Phone 7
http://simonguest.com/2010/10/18/test-driven-development-tdd-and-windows-phone-7/

Test-Driven Development Is Not Slower
http://trycatchfail.com/blog/post/Test-Driven-Development-Is-Not-Slower.aspx

TDD: Keeping test intent when using test builders
http://www.markhneedham.com/blog/2009/09/20/tdd-keeping-test-intent-when-using-test-builders/

C#: Builder pattern still useful for test data
http://www.markhneedham.com/blog/2009/01/21/c-builder-pattern-still-useful-for-test-data/

TDD Kata in C++: String Calculator – Interactions
http://vimeo.com/26177491

TDD Kata 2 – Interactions
http://osherove.com/tdd-kata-2/

The thing about TDD and pretty pictures
http://looseneurons.com/2011/06/25/the-thing-about-tdd-and-pretty-pictures/

How We Built the Software that Processes Billions in Payments
http://www.braintreepayments.com/inside-braintree/how-we-built-the-software-that-processes-billions-in-payments

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

More links about agile, TDD, XP, software development, programming languages are coming.

Keep tuned!

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

February 13, 2012

Azure: Links, News and Resources (3)

Filed under: .NET, Azure, Cloud Computing, Links — ajlopez @ 1:54 pm

Previous Post

More links I collected during my work and research.

Cyan – Simpler than Azure
http://cyannet.codeplex.com/
Cyan is a .NET dynamic client for the Azure Table Storage REST API.

Azure Table Storage & Dynamic TableServiceEntity
http://stackoverflow.com/questions/7522235/azure-table-storage-dynamic-tableserviceentity

richorama / AzureSugar
https://github.com/richorama/AzureSugar
Syntactic sugar to make Azure development a little sweeter
Support is also available for using dynamic types (or dictionaries) to insert and query table storage.

Azure Table Storage with dynamic entities objects
http://ruiromanoblog.wordpress.com/2009/05/15/azure-table-storage-with-dynamic-entities-objects/

WindowsAzure / azure-sdk-for-node
https://github.com/WindowsAzure/azure-sdk-for-node/tree/dev/examples/myevents

Accessing Azure Role Environment information from NodeJS
http://nodeblog.cloudapp.net/accessing-azure-role-environment-information-from-node

Windows Azure Startup task to run npm install to avoid deploying node modules
http://nodeblog.cloudapp.net/startup-task-to-run-npm-in-azure

Leveraging Node.js’ libuv in Windows Azure
http://msdn.microsoft.com/en-us/library/hh527737(v=VS.103).aspx

Getting the samples to work on the Azure Node.js SDK
http://coderead.wordpress.com/2012/01/03/getting-the-samples-to-work-on-the-azure-node-js-sdk/

Microsoft will add Linux virtual machines to Windows Azure
http://arstechnica.com/business/news/2012/01/microsoft-will-add-linux-virtual-machines-to-windows-azure.ars

Create Hosted Service using Windows Azure Management API
http://debugmode.net/2012/01/02/create-hosted-service-using-windows-azure-management-api/

Microsoft Windows Azure PaaS Gets Node.js Update
http://www.talkincloud.com/microsoft-windows-azure-paas-gets-node-js-update/

How to deploy WordPress using the Windows Azure SDK for PHP WordPress scaffold
http://azurephp.interoperabilitybridges.com/articles/how-to-deploy-wordpress-using-the-windows-azure-sdk-for-php-wordpress-scaffold

Advertising Company Adopts Cloud Computing, Gets 400 Percent Improvement
http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000008145

Kobojo
Game Developer Meets Demand and Prepares for Success with Scalable Cloud Solution
http://www.microsoft.com/casestudies/Case_Study_Detail.aspx?CaseStudyID=4000008216

What is Windows Azure?
http://www.youtube.com/watch?feature=player_embedded&v=poDRw_Xi3Aw

Azure On GitHub
https://github.com/blog/1010-azure-on-github

Azure: Running Multiple Web Sites in a Single WebRole
http://blog.elastacloud.com/2011/01/11/azure-running-multiple-web-sites-in-a-single-webrole/

Deploying independent web applications to Windows Azure using single web role
http://weblogs.asp.net/gunnarpeipman/archive/2011/12/29/deploying-independent-web-applications-to-windows-azure-using-single-web-role.aspx

Modificar el tiempo de vida del token proporcionado por Windows Azure AppFabric Access Control
http://www.returngis.net/2011/12/modificar-el-tiempo-de-vida-del-token-proporcionado-por-windows-azure-appfabric-access-control/

Windows Azure Multi Application
http://azuremultiapp.codeplex.com/
Windows Azure Multi Application is a complete sample solution that allow deploy dinamically aplications to existing role instance.
After deploy admin tool new application can be deployed, without modify initial azure deployment. Each application can be deployed independently and can be of different types; ASP.NET WebForms, ASP.NET MVC, Windows Service, Console Application…

How to combine a Worker Role and an MVC4 Web Role into a single Azure instance
http://blog.liamcavanagh.com/2011/12/how-to-combine-a-worker-role-with-a-mvc4-web-role-into-a-single-instance/

Hadoop Streaming and F# MapReduce
http://blogs.msdn.com/b/carlnol/archive/2011/12/16/hadoop-streaming-and-f-mapreduce.aspx

Windows Azure Architecture Guide – Part 2 – Code Samples
http://www.microsoft.com/download/en/details.aspx?id=27878

Windows Azure + a pinch of UK
http://paper.li/ericnel/1314797915

Using Amazon and Azure Cloud Services in your Delphi XE2 and C++Builder XE2 Applications
http://www.youtube.com/watch?v=BRFbiRcLtkc&feature=player_embedded

What’s new in Windows Azure
http://www.infoworld.com/d/microsoft-windows/whats-new-in-windows-azure-181578

Microsoft Azure gets an open source rival
http://www.infoworld.com/d/open-source-software/microsoft-azure-gets-open-source-rival-181845

Introduction to the Hadoop on Azure Interactive JavaScript Console
http://www.youtube.com/watch?v=alPMYcomUEs

Node.JS in Windows Azure
http://channel9.msdn.com/Events/windowsazure/learn/Node-JS-in-Windows-Azure

Azure price cuts, bigger databases, now with node.js and MongoDB support, Hadoop on its way
http://arstechnica.com/microsoft/news/2011/12/azure-price-cuts-bigger-databases-now-with-nodejs-and-mongodb-support-hadoop-on-its-way.ars?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed:+arstechnica/index+(Ars+Technica+-+Featured+Content)

Improved Developer Experience, Interoperability, and Scalability on Windows Azure
http://blogs.msdn.com/b/windowsazure/archive/2011/12/12/improved-developer-experience-interoperability-and-scalability-on-windows-azure.aspx

Azure Node.js Developer Center
https://www.windowsazure.com/en-us/develop/nodejs/

Deploying Node.js Applications to Windows Azure via Blobs or Git Sync
http://blog.smarx.com/posts/deploying-node-js-applications-to-windows-azure-via-blobs-or-git-sync

Ten Basic Troubleshooting Tips for Windows Azure
http://www.davidaiken.com/2011/11/15/ten-basic-troubleshooting-tips-for-windows-azure/

Now Available! Updated Windows Azure SDK & Windows Azure HPC Scheduler SDK
http://blogs.msdn.com/b/windowsazure/archive/2011/11/14/updated-windows-azure-sdk-amp-windows-azure-hpc-scheduler-sdk.aspx

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

February 7, 2012

Ruby on Rails, Demo Application (1) Creating the Application

Filed under: Ruby, Ruby on Rails, Web Development — ajlopez @ 11:25 am

I wrote a post series about my experience at the past Ruby Fun Day at Buenos Aires, in Spanish:

Mi Día en el Ruby Fun Day with @bendycode

Now, I want to write my learning steps following the chapter 2 of Michael Hartl book Ruby on Rails 3 Tutorial: Learn from Example.

I installed Ruby on my Windows box, using http://rubyinstaller.org/ (more options at http://www.ruby-lang.org/en/downloads/). In Windows, you should install DevKit (a minimalist GNU for windows (mingw)). See Ruby Installer page for link download. The instructions to install it are at http://github.com/oneclick/rubyinstaller/wiki/Development-Kit. (some details in Spanish).

Then, I executed the command (at any command prompt)

gem install rails

that installs Ruby on Rails, a web framework for Ruby. Go to a working directory (in my case c:\Git), and execute

rails

Output:

Then I executed

rails new RailsDemoApp

with output:

Change to the new directory:

cd RailsDemoApp

Now, you have a folder tree like:

Ruby manages gems (package to install and use). Rails itself is a gem. And Rails application have a GemFile that list the gems our new application will use. Just in case we have a new gem to install, execute:

bundle install

Bundle is the new package installer used in Ruby on Rails 3. It reads the GemFile and installs (in Ruby gem directory, in our machine, it’s not per application) the needed gems. Then, you can execute:

bundle show

I configured the current directory (Git\RailsDemoApp) to be a Git repo:

git init
git add .
git commit –m “Initial Commit”

I added a new repository in my GitHub Account using https://github.com/repositories/new:

The new repo: https://github.com/ajlopez/RailsDemoApp

I added and pushed to the remote repo:

git remote add origin git@github.com:ajlopez/RailsDemoApp.git
git push origin master

You can launch the initial server with

rails server

or its shortcut

rails s

See the result at http://localhost:3000

Next steps: adding a simple model (users, micropost), database, views, controllers, scaffolding, and Heroku deploy. Scaffolding (quick CRUD code generation) will be the approach to use in this series, but in a following post series I want to show (and learn ;-) the making of a Rails application, step by step, as in Hartl book.

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 65 other followers