Saturday, December 6, 2008

New music for december

Oh yes, the Crazy Dutchman is at it again! Download the brand-new december mix here:

Crazy Dutchman - December 2008 (mp3)

A couple of classics in this one ;-) Check that 40:00min marker....yumm!
Tracklist will be posted shortly!

Saturday, September 20, 2008

Harmonics of House music

Some close friends have heard it already, but there's a new mix out! For the latest live recording of a great set of dancefloor music, check my September 2008 Mix. It has some great vibes to it, but I saved the well-known commercial hits for the end ;-).



The Crazy Dutchman - Mix Of September 2008:
1. [0:00] Get This Party Started (Max K. Remix) – Dan Winter
2. [3:07] Been A Long Time (Laidback Luke Remix) – Tv Rock ft. Rudy
3. [7:00] Aura (Dirty Channels Remix) – Danny Minkella, Aura Simone Giudici & Leme
4. [10:45] All Up To You (Flipside & Parsberg rmx) – Mista Diff
5. [13:14] Attention Whore (Original Mix) – Mellefresh & Deadmau5
6. [17:00] Ice Ice Baby 2008 (Mondo Electro Remix) – Reanimator ft. Vanilla Ice
7. [19:15] The Groove (Chris Montana and Niq Mix) – Chriss Ortega & Christian Hinzer
8. [24:22] Addicted (R.O.R. Lose Control Dub) – The Camel Rider
9. [26:08] Turn The Tide (R.I.O. Remix) – Manian
10. [30:42] Call My Name (Thomas Gold Remix) – Morgan Page
11. [34:12] The Journey Continues (Riley & Durrant Vocal Mix) – Mark Brown ft. Sarah Cracknell
12. [39:05] What A Wonderful World (Original Mix) – Axwell & Bob Sinclar ft. Ron Caroll
13. [43:21] C'est La Revolution (Houseshaker Remix) – DJ Antoine
14. [45:33] Silence 2008 (Niels van Gogh vs. Thomas Gold Remix) – Delerium ft. Sarah McLachlan
15. [50:10] Where's Your Head At (Original Mix) – Jean Elan
16. [52:25] Freak (DJ Neros Remix) – Blackjack DJ
17. [56:37] Weep (Original Mix) – Richard Durand
18. [1:01:50] Love Is Gone (Fred Rister & Joachim Garraud Remix) – David Guetta
19. [1:05:10] Move Your Body (Jesse Garcia Remix) – The Grower ft. Corey Andrew
20. [1:09:17] Push The Feeling On 2008 (Eric Smax Ultrashall Rmx) – Nightcrawlers
21. [1:11:05] Delirious (Laidback Luke Remix) – David Guetta
22. [1:14:23] Ulysse (Laurent Wolf & Anton Wick Remix) – Chris Kaeser ft. Max C

My favorite tracks in this one? Hard to pick, but 17 & 21 are keepers for sure!

- The Crazy Dutchman

Wednesday, September 17, 2008

Capgemini Java Night - Links

Tonight is the Capgemini Java Night 2008! I'll be presenting an introductory session on Groovy, starting at 18:00. If you're taking part in this session, you'll find the following links of interest:
Happy Groovying! Feel free to contact me at jan.ypmacapgemini.com . A good set of books to look at for learning Groovy:
  • "Programming Groovy", Venkat Subramaniam, The Pragmatic Programmers
  • "Groovy in Action", Dierk Koenig, Manning

Thursday, August 7, 2008

A groovy Summer


Ahhh, the feeling of summer: vacation, freedom, no traffic jams, and the realization that global warming amounts to local warming: finally some good weather over here. Also there's lots of new toys to choose from: will my savings go into paying for the (contract of the) new iPhone 3G, or shall I save up to get the OTUS when it's finally launched? Choices, choices...

However in Groovy land the summer also has arrived. I finally took up the DSL idea I wrote about earlier. Possible application ideas keep coming, but right now I'm in the middle of getting the core framework ready. The data modeling part is in, next is validation modeling and graphics/UI binding, both of which I hope to do in a simplified, declarative manner. Stay tuned!

Monday, June 30, 2008

The Creative Generation

Imagine combining the stimulating English landscape of Cambridge, with a collection of the world's brightest IT code generation minds. Have them exchange thoughts in creative sessions and tutorial, and you'll find that innovation will take on a completely new dimension. Yes, I'm talking about the Code Generation 2008 conference, which was held in Cambridge June 25-27.

Raising the abstraction level
The common theme amongst the sessions resolved around raising the level of abstraction, either by modeling in UML or a (oh no, save me from the buzzword) DSL. Everybody seems to agree that raising the abstraction level is a good thing. What's not always clear however is, what to raise the abstraction level to. Keeping a constant level of modeling, without sneaking in too many details of your concrete platform, remains the challenge. And for people still looking for the ultimate ride on "round-tripping": well there's a reason the term ends with "tripping".

Rise of the model-driven tools
Model-driven architecture has been around since the 2000's. Well, the theory has been, and depending on specific architect's diligence and guidelines, it has also worked brilliantly in practice. In order to become mainstream however, a better tool support was required. It's just too easy to mix concerns or hack some quick changes into a system, when code generation is a part of your process. Looking at 2008, this tool support is finally coming. The pattern / template / marking distinction is more and more explicitly available in tools, led by open architecture ware. Even the Microsoft DSL tools manage to grasp the concept, although their template and pattern implementation will face the same challenges EMF/Java have seen over the last several years. It seems a standard pattern that every framework hurdle needs to be dealt with at least twice.

Personally I can say that this has been probably one of the most inspiring conferences I've been to. The unique combination of a beautiful surrounding with highly intellectual people, created a steady flow of ideas. The one thing I brought home is that my own views on MDA, which I've always considered somewhat straightforward and general, are not that mainstream after all. A lot of MDA's "traps" and pitfalls still catch developers. Let's broaden conferences like this, and spread the word further: domain-driven modeling is here to stay!

Thursday, June 12, 2008

SpringOne presentation

As it turned out, I'm not the only one doing MDA with Spring after all :-). A nice bunch of people came and listened to my SpringOne 2008 presentation. Incidentally, the presentation is available for download. We had some great discussions about various ways to apply MDA, and the various tooling options.

The SpringOne organizers of BeJUG have informed me that the video transcript of the presentation will be available at the start of September, on parleys.com.

Tuesday, June 10, 2008

Model-Driven Architecture and Spring

The place to be in order to find out the latest hot developments in the Spring community, without doubt is the SpringOne conference in Antwerp. This year it will take place on June 11-12. I will deliver a session on how the Spring frameworks play ball in a Model-Driven environment. I hope you'll visit me on June 12th, on 12:00 in room 2.

You might wonder, why the choice of a framework is so important when you're doing MDA. Isn't the point of code generation to hide all that boring boiler-plate code from the developer? Indeed, that is the case. However, an MDA application still is an application, and so the number of lines of (xml or java) code is still important. On top of that, distribution of this code over files, and maintainability of those files, is equally relevant. In my opinion, whether some of those files are generated or not, should be of no concern.

As it turns out, the Spring frameworks do help a lot when doing MDA. They don't "sit in your way", but actually help in getting responsibilities distributed over several files; especially the IoC concept helps in that.

Watch this blog for an update with links to the SpringOne session transcript and video

Thursday, May 22, 2008

The dance of the frameworks

Take a couple of hot buzzwords, such as groovy, builder, swing, and graphics. Creating some random combinations of those surprisingly results in some very interesting frameworks.

You might have heard of the Groovy language. Whether it's because you can write a webservice client with Swing user interface in just 20 lines, because you can create pleasing DSL's, or just because it's plain cool, more and more people are leaning towards dynamic languages.

On the topic of Groovy, I've recently come across several very interesting concepts. Groovy's builder pattern (which probably applies to other dynamic languages as well, of which I'm completely oblivious) just applies to so many different domains. Creating XML, creating user interfaces, and creating graphics really becomes a breeze. I'm currently in the middle of applying all of this in the context of a earlier post of me: creating a graphical DSL framework. More on that in due time.

Monday, May 19, 2008

An inspiring weekend

As any artist can tell you, you're never sure when suddenly inspiration decides to hit. This weekend, I was jamming a bit on mixing some new music, which resulted in me hitting "Record" at some point. The result is a cool new mix of about 45 minutes of upbeat house music :-). I'll post a full track listing later. For now, just listen and enjoy:

The hymns of house – 2008-05-19 (mp3)
The above mix is recorded live and performed using Traktor DJ Studio 3.3, without any post-processing.

Wednesday, May 7, 2008

C.324 survives first challenge

Last weekend I performed all day during a gig at the hockey club. I brought my full DJ equipment stack, using my Macbook Pro and Behringer controllers as main source, and my Stanton C.324 CD player as backup. Although troubled with some start-up issues, it performed great! All in all, providing the demanding crowd of hockey players with uplifting music throughout a day with of 27ÂșC, was a blast. It is truly invigorating to get so much positive feedback. Thanks, guys!
Anyway, my feelings about the C.324 are now, just like my music usually is, "mixed":
  • The vinyl platter's feeling is just superb. It's sturdy and heavy, and accurate enough for my (starting) scratching needs. Back- and forward spins are rather tricky, though: gradual speed spin-down only occurs if the platter is spun over 200%. If I spin it slower, speed returns to normal immediately after the patter is released. I can't imagine what disturbed technician at Stanton came up with that.
  • The four samplers, combined with memo function (remembering cue punts/loops), are fantastic for creativity. Having the "Everybody dance now", "Yeah!", or other well-known sounds directly under control, just, ROCKS.
  • 100% pitch adjust, with master tempo, is very useful and works reliably and quick. The downside is that 100% pitch control without master tempo has a very electronic sound to it, when changing speeds rapidly. It just doesn't sound like an analog turntable when "starting" playback by sliding from 0% to 100%.
Let's keep on rocking!

Monday, April 21, 2008

Stanton C.324: First impressions


As one of the first lucky people in the Netherlands, I am now the proud owner of the new 'flagship' CD player of Stanton, the C.324. With it's big platter (no motor, but touch-sensitive), automatic 4-bar loop, and 4 samplers with a sequencer, it offers some unique features.

I had limited time to play around with it over the weekend, but first impressions are very promising. Some cool features to take note of:
  • Touch rewind is a very useful feature. I'm still learning the whole scratching thing, but having the loop/track start at exactly the same point whenever you touch it, is just heaven. Having only scratched with vinyl a while back, this will be a new world to me.
  • The four sampler pads actually can be played simultaneously with the rest of the track, or even another CD! Don't know how common this is with other sampler/CD players, but it just sounds sooo cool.
  • The platter is very responsive, and has a nice, durable feel to it.
More detailed impressions coming up shortly!

Wednesday, March 19, 2008

The delirious producer

Imagine being an aspiring DJ, ample musical talent, mixing some tracks left and right, with a slowly growing network of gigs. Add to that a demanding job requiring a considerable time investment. Now suppose a radio station is writing out a competition of re-mixing a certain song... then you know what I did instead of sleeping over the past few days: I just had to send in my version.

So without further ado: David Guetta - Delerious [The Dutchman Sessions].mp3

Monday, March 17, 2008

Conflicting spam messages

I'm fighting an inner conflict when looking at my spam inbox. From time to time, i scan through it to make sure my filter isn't too greedy. But I'm not sure what it is these spammers would like me to do to my body: I just can't choose between

[Dave Small] Lose 20 pounds in 3 weeks

or

[Brandy Henderson] Add three inches to yours now

What would three inches weigh?

Tuesday, March 11, 2008

Real-time collaborative DSL editing

When being involved with exciting technologies like DSLs, meta-models, dynamic languages but also focus every-day IT issues, the mind tends to wander. I came across an interesting article on a RAM-based database storage approach, which triggered memories of the Naked Objects book and the Prevayler pattern, when put into the perspective of DSLs. This thought adventure has lead to the following train of ideas. for a graphical DSL approach. Bear with me.

A domain-specific language is based on a meta-model. Imagine the meta-model being defined in a dynamic language, so that it need not be fixed, and could be extended even at run-time. Furthermore, say that all mutations on the model shall be performed through a Command pattern: this is part of the Prevailer approach to handling object graph persistence. Basically, we consider the model as a graph of objects, whose classes are allowed to change at runtime, but can be prevayled. But let's extend the Command paradigm, in that a concrete Command has the responsibility of indicating which objects within the model are changed after having executed.

Since the goal is to create a graphical DSL, just a data-defining meta-model is not enough. Visual representations of meta-attributes are needed. Let's introduce an editor concept: an editor binds UI capabilities to a metaclass. Concretely, this means a graphical manifestation, behaviour responding to events, but (this is important) no state information. If an editor needs state information that's not in the meta-class, introduce a meta-class specifically for the symbol that the editor is managing. The behaviour of the editor translates UI events into Command objects, which can update the meta-model.

The magic now is, to put a network (JINI-like) layer between the meta-model and its editors. Access to the meta-model will be a single-threaded queue of Commands. After a command executes, a list of changed objects is broadcasted to all editors across the network, so they may update their visual display accordingly. I reckon some versioning/OOL might me needed to iron out synchronization issues.

Implemented correctly, this might give you:
  • Real-time collaboration on large models, without direct need for locking. If you're about to change a diagram somebody else is working on, you would see the diagram change in real-time.
  • Flexible realization of MDA's marking model concept: just dynamically extend the meta-model, defining metaclasses divided into architectural layers you want to elaborate on. Dynamic methods might assist in filling in default values for the markings.
  • Real-time editing of a rule engine: just hook into the server's object model and execute it; clients could dynamically change the rules or even the metamodel of the rules, without ever bring down the system (hmm, we'd have to elaborate on this one ;-)
I'm about to put my modest Groovy skills to work. Obviously the GraphicsBuilder is a prime candidate for this kind of work. However, private time for this is limited, as always.

Concept established... creativity coming

So there you have it. My life's been taking off lately, like a whirlwind through wonderland, blowing leaves, moving trees left and right. Looking over my left shoulder, I see creativity, art, music, photography, video, but language as well... which describes the right shoulder, on which intellect, commitment, IT and abstractions form a complex model.

Both of these forests have been growing dense as of lately. Now what better way of untangling some of those branches, than structuring my thoughts in a blog? Let's roll, and find out how deep the rabbit hole goes!