#dijonjs demo included in todomvc labs section

Last week my demo for Dijon (an IOC/DI javascript framework I created) was included in the labs section of TodoMVC, a hugely popular common learning application for JavaScript MV* frameworks.

So what does it do?

In the demo Dijon is used on top of JQuery to provide structure and dependency injection for the app. It allows you to decouple several functional units and let them work together and communicate.

Even though Dijon does not impose a typical MV* structure in any way, it allows you to easily do so w/o forcing you to use any specific paradigm.

Read more

A plugin for #gruntjs to run #jasmine specs: grunt-jasmine-task

grunt-jasmine-task

I wrote a plugin to run jasmine specs with grunt.
It should be stable and is available through npm.

Installation

Install this grunt plugin next to your project’s grunt.js gruntfile with:

npm install grunt-jasmine-task

Note: it’s best to install it as a local node module, not global.

Then add this to your project’s grunt.js gruntfile, inside the grunt.initConfig object:

    jasmine: {
      index: ['specs/index.html']
    },

replace specs/index.html obviously with the location of your jasmine spec running html file.

and at the bottom of your grunt.js gruntfile add:

grunt.loadNpmTasks('grunt-jasmine-task'); 

now you can run the jasmine task with:

grunt jasmine

Source

Source can be found in the grunt-jasmine-task github project

Feedback

Issues can be posted in the issue queue, all other feedback is welcome here in the comments, or on twitter: @camillereynders

#Dijonjs – An IOC/DI #javascript micro-framework inspired by #robotlegs

Dijon

[update 28/04/2012]The dijon demo app was included in TodoMVC’s labs section[/update]

Dijon is an IOC and DI micro-framework for Javascript. Originally it was meant to be a port of Robotlegs, but deviated to something quite different. It remains however heavily inspired by Robotlegs, and more specifically Swiftsuspenders.

Basically it’s an object registry, that allows you to define how and when objects are instantiated, functions and handlers are called and what objects should be passed on to other objects (that’s the injection thingy).

Status

Dijon is not v1.x yet, but it is stable to use.

Read more

#Demiurgejs: 3 types of Javascript inheritance

Demiurge

I’ve jumped into the rabbit hole and have been digging through the various types of inheritance possible in JavaScript.
Not really original, I know, but in a project I’m working on I needed to mix various types of inheritance, so I created a small utility lib to help doing just this: let objects inherit members from another object.

Source

The lib’s called demiurge and can be found in the demiurge github repository.

It’s based on a gist I created a few days ago and already tweeted about, it can be found here.

Read more

#JSFSA: A Finite State Automaton in #JavaScript

JSFSA

JSFSA is a small javascript lib I wrote that allows for the creation of asynchronous, hierarchical, non-deterministic finite-state automata (more popularly called finite-state machines, but doesn’t ‘automaton’ sound infinitely more cool?)

Features

  • Hierarchical states: states can be configured to have an unlimited number of substates, an unlimited number of levels deep.
  • Guards: an unlimited amount of callbacks can be set to guard both entry and exit of states.
  • Listeners: an unlimited amount of callbacks can be executed on both entry and exit of states.
  • Named transitions: switching of states happens through named transitions.
  • Asynchronous transitioning: transitioning from one state to the other can be paused/resumed.
  • Framework independent: doesn’t rely on any other 3rd party frameworks.

Quick Example

var offState = new jsfsa.State( 'off' )
    .addTransition( 'ignite', 'on' )
    .isInitial = true
;
var onState = new jsfsa.State( 'on' )
    .addTransition( 'shutdown', 'off' )
;

var fsm = new jsfsa.Automaton()
    .addState( offState )
    .addState( onState )
    .doTransition( 'ignite' )
;
console.log( fsm.getCurrentState().name );//outputs 'on'

Code and examples

For source code, a more extensive explanation and examples head on over to the github project

Automating JavaScript builds

Automating JavaScript builds

– UPDATE (20/04/2012) –

This is an update to my original post on how to automate javascript builds using ant and a number of other tools, however, for most of my projects I’ve switched over to gruntjs. It’s far easier to use than Ant since it uses javascript and integrates most of my build tools pretty easily. Granted, it’s a little more limited than Ant, for instance: you can’t invoke shell commands from gruntjs (except the ones that have grunt tasks).
I also wrote a gruntjs plugin for running jasmine specs: grunt-jasmine-task.

Forget Ant, use gruntjs instead. :)

Below is the original post, just for sake of reference, but I consider it outdated, since I no longer use Ant, but Grunt instead.

– ORIGINAL POST (14/03/2012)–

What?

Sometimes even for smaller javascript projects it’s interesting to create an automated build process. From the moment there’s a few steps you need to take every time you want to release your application/library it’s beneficial to automate this process not only because it will save you time, but also because it will save you the headache of remembering to do every step every time.

Read more

RelaxedSignals

RelaxedSignals

What?

RelaxedSignals are an addition to the popular signals library of Robert Penner.

It’s still in pull-request state, and hopefully it will make it into the official lib sometime soon.
In the meantime you can download it here:

https://github.com/creynders/as3-signals

Why?

Signals are great but there’s one feature that’s really missing: the ability to subscribe to a signal, after it has been dispatched.

Read more

SignalResponder

SignalResponder

What?

I wanted to create an easy-to-use helper class that can deal with async process state changes in AS3.
A SignalResponder allows you to easily respond to start, progress, success and failure signals.
It’s meant to be a versatile class, that can be used in many different ways, allowing to use them
in any way you see fit.

Read more

Fabulatoriers flyer and poster

 

Wim Geysen Producties

‘t Werkhuys

De Huiskamer

Apollon Project Video

Apollon project video from IBBT on Vimeo.

Follow

Get every new post delivered to your Inbox.

Join 402 other followers