Sadek Drobi’s Blog

March 8, 2011

Trying tumblr!

Filed under: Uncategorized — Sadache @ 10:55 pm

Won’t be much active here, I am trying to do some micro blogging on tumblr. That may require less efforts from me so that I can write more often.

http://sadache.tumblr.com

November 16, 2010

Functional Web: Functional Programing for Web Integration and Mashups

Filed under: Architecture, Erlang, F#, Haskell — Tags: , , , , , , — Sadache @ 10:17 pm

Functional programming is often perceived as being good for either mathematics or multi-core programming. As for its huge benefits for modern web architecture and development, they are not really known. This video gives a few arguments about why functional programming matters for today’s and tomorrow’s web.

http://www.zengularity.com/item/1519646134/functional-web-functional-programing-for-web

December 7, 2009

My Computation Abstraction Talk Slides for Functional Exchange

Computation Abstraction: Going beyond programming language control syntax, or what we’ve missed from FP for so long in mainstream

For a long time, and due to the lack of main FP concepts in most mainstream languages, we missed opportunities to abstraction and code expressiveness and conciseness. With today’s democratization of FP, Computational Abstraction is what will enable us to be less dependent on specific programming language syntax offering; creating libraries of control structures and composition forms that help find concise and expresive solutions to enterprise programming challenges (null, lists treatment, error handling), capturing elegantly important business concepts in code, and programming at the right level of abstraction.For a long time, and due to the lack of main FP concepts in most mainstream languages, we missed opportunities to abstraction and code expressiveness and conciseness. With today’s democratization of FP, Computational Abstraction is what will enable us to be less dependent on specific programming language syntax offering; creating libraries of control structures and composition forms that help find concise and expresive solutions to enterprise programming challenges (null, lists treatment, error handling), capturing elegantly important business concepts in code, and programming at the right level of abstraction.

Slides:  http://sadekdrobi.com/wp-content/uploads/2009/12/Computation-Abstraction666iiioii6jjjjjjhjj-5.pdf

Google wave:  https://wave.google.com/wave/#restored:wave:googlewave.com!w%252BPgcakhgiA

November 15, 2009

Where are my Beans, Contracts and workflows? WOA and Rest: An enterprise mindset shift

Filed under: Uncategorized — Tags: , , , , , , — Sadache @ 6:27 pm

I’ll be presenting (in french) with Jean-Laurent de Morlhon at ValtechDays 2009 on November 17th a talk titled “Where are my Beans, Contracts and workflows? WOA and Rest: An enterprise mindset shift”

Jean-Laurent did a brief introduction to the talk on his blog.

“With the rise of web 2.0, Rest and Web Oriented Architecture emerged as inevitable solutions to today’s business challenges. However, to realize the benefits of this approach requires a comprehensive look at the whole model together with its composing technologies, design patterns and best practices. In this talk, we will go with you discovering this approach, highlighting its principal elements (standard Web technologies, linked data, Mashups…) helping you finding architecture values you care about in a dynamic, extremely extensible model, hoping you get an “AHA!” moment by the end of the day.”

If you’re a JavaScript hater, a SOA lord or a GWT geek come in to exchange with us on the differents views to solve a common problem

And yes there is one slide about functional programming with JS )

November 6, 2009

Side Effects

Most of my Erlang programming is side effect free. I think I probably write very unusual Erlang programs that look a lot like Haskell ones. Now and then, I do write side effecting code. For example, when I use the random number generation libraries that comes with Erlang, it has a side effecting interface. It’s very tempting when you are building something on top of the library with a stateful interface to build code on top of that that also has a stateful interface.

That’s what I did the first time I tried to use it. That has caused me so much trouble. I think every single bug that I spent hours trying to track down has been caused by a side effect. In a way, I’ve been programming Haskell for so many years, that I’d forgotten just how devastating side effects are and just how difficult they make debugging. I’ve learnt that lesson again and nowadays, if I want to use a stateful library, I usually build a side effect free interface on top of it, so that I can then use it safely in the rest of my code.

from my interview with John Hughes at Erlang Factory

October 18, 2009

Wave: What I miss in F# when developing with Scala and what I misss in Scala when developing with F#

Filed under: Uncategorized — Tags: , , , , , , , — Sadache @ 10:03 pm

This was a not satisfying test of integrating a google wave in the blog. I’ll make a summary of the wave later.
I’ll remove the wave for now from the blog because 1: It is not viewable by eveyone 2: It takes quite some time to load.
Sorry for inconvinience…

September 27, 2009

A piece of wisdom by Joe Armstrong

Filed under: Uncategorized — Sadache @ 7:52 pm

DSC_6746

 

If you look at Haskell, Erlang, Scala and F#, what do you see? If you look at Haskell, you see something which, within its context, within the little framework it sets up for its sandbox, it’s very consistent, it’s very beautiful. You look at Erlang, it kind of fits, the bits fit together nicely. Of course, they don’t fit together nicely with the JVM or with .NET or anything like that. If you want to use all the nice things that are there, you can’t use them, or you can use them, but it’s difficult. So the other approach is, you say “Let’s use the JVM and target lots of different languages, so that the different languages can use each other” or you can do that within the .NET framework, you get Scala and you get F#.
The benefit there is you can use all these other things that are available, but in order to do them, you have to break them, massively corrupt and break these abstraction boundaries and I don’t like that. I think you are breaking abstraction boundaries in the wrong place. How I would like to see systems built is through communicating back boxes. And I would like to see the type systems applied to the definition of the protocols themselves and I haven’t seen that done.

                                                      Joe Armstrong from http://www.infoq.com/interviews/armstrong-peyton-jones-erlang-haskell

 

ps: reminds me of “And you get all the VM libraries for free! Is it actually what I want when I switch languages?

June 26, 2009

A monad in C# for simplifying WPF multi-threading for a more responsive GUI

Code included here is over simplified for clarity, I hosted a better implementation code on CodePlex. These modifications change strictly nothing for the client code and are only an implementation detail. I use a continuation rather than a delay, and I chose to design a custom continuation class rather than using a delegate because of a type system limitations.

DSC_2468Most GUI frameworks, including Silverlight and WPF, are shipped with a fundamental problem: long use of the main thread causes the Window to blackout, and using different threads requires you to get your hands dirty with the Dispatcher stuff and freezable objects. Worse, you wont learn the necessity to do so until you get a surprise of “The calling thread cannot access this object because a different thread owns it.” exception when all what you were doing is to use available methods on an object that seemed you have access to, at lease it seemed until runtime! This post illustrates a solution based on Monads abstraction and LinQ syntax.
(more…)

June 25, 2009

Ian Robinson and Jim Webber on Web-based Integration

Filed under: Architecture, Rest — Tags: — Sadache @ 12:06 am

Jim Webber from http://www.infoq.com/interviews/robinson-webber-rest 00:37:08:

We did put abstraction after abstraction onto our distributed system infrastructure and you know what: it hasn’t worked out that well for us. Some of the largest and most sophisticated distributed systems on the planet haven’t been all that large or sophisticated and then this kind of crappy protocol comes along that insists on being synchronous, and insists on being text-driven and it scales globally. That’s shocking and does not make sense to us as engineers. That’s the web paradox – it’s the rubbishest thing on the planet, but it scaled and for me that is what’s hit the reset button because I was totally up for XML-based protocols that do all sorts of funky stuff.

June 10, 2009

DCI in Real World: Domain Context and Interaction with Scala in a Real World Project

Those that follow my twitter @sadache , me @infoQ or my blog have certainly already noticed that I am quite interested in Scala on languages’ axis and in Domain Context Interaction DCI pattern on architecture axis. I always search new ways for delivering quality code which is modular and concise. Modularity offers the opportunity to think about the problem in parts, which is typical of the way brains work, whereas conciseness makes use of imaginary system (reading code blocks like images).

Recently, I’ve been working on a Web Api system where, thanks to support of @jeanlaurent http://morlhon.net/blog/, I used Scala applying DCI architecture in a real world project. This post is about reporting benefits of using this approach. Other posts will follow that will be more focused on the use of Scala and Functional Programming in that project. Code included is a bit simplified and parts of the system that are not of interest are omitted.

(more…)

Older Posts »

Powered by WordPress