<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sadek Drobi's Blog &#187; QCon</title>
	<atom:link href="http://sadekdrobi.com/category/qcon/feed/" rel="self" type="application/rss+xml" />
	<link>http://sadekdrobi.com</link>
	<description>Sadek Drobi</description>
	<lastBuildDate>Tue, 08 Mar 2011 22:56:51 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Imperative Programming vs. Functional Programming</title>
		<link>http://sadekdrobi.com/2009/03/29/imperative-programming-vs-functional-programming/</link>
		<comments>http://sadekdrobi.com/2009/03/29/imperative-programming-vs-functional-programming/#comments</comments>
		<pubDate>Sun, 29 Mar 2009 23:18:14 +0000</pubDate>
		<dc:creator>Sadache</dc:creator>
				<category><![CDATA[Conferences]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Mutability]]></category>
		<category><![CDATA[QCon]]></category>

		<guid isPermaLink="false">http://sadekdrobi.com/2009/03/29/imperative-programming-vs-functional-programming/</guid>
		<description><![CDATA[&#160; 
From my QCon09 London presentation slides.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://sadekdrobi.com/wp-content/uploads/2009/03/image.png"></a><a href="http://sadekdrobi.com/wp-content/uploads/2009/03/image2.png"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="image" src="http://sadekdrobi.com/wp-content/uploads/2009/03/image-thumb1.png" width="525" height="396"></a>&nbsp; </p>
<p>From my QCon09 London presentation slides.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadekdrobi.com/2009/03/29/imperative-programming-vs-functional-programming/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>I am speaking at QCon</title>
		<link>http://sadekdrobi.com/2009/02/18/i-am-speaking-at-qcon/</link>
		<comments>http://sadekdrobi.com/2009/02/18/i-am-speaking-at-qcon/#comments</comments>
		<pubDate>Wed, 18 Feb 2009 18:00:06 +0000</pubDate>
		<dc:creator>Sadache</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[F#]]></category>
		<category><![CDATA[Functional Programming]]></category>
		<category><![CDATA[Haskell]]></category>
		<category><![CDATA[InfoQ]]></category>
		<category><![CDATA[LinQ]]></category>
		<category><![CDATA[Multi-Paradigm Design]]></category>
		<category><![CDATA[QCon]]></category>

		<guid isPermaLink="false">http://sadekdrobi.com/2009/02/18/i-am-speaking-at-qcon/</guid>
		<description><![CDATA[
 
&#160;

Programming with a Mainstream Language
Track: Functional and Concurrent Programming Languages Applied
Time: Thursday 17:15 &#8211; 18:15
Location: Abbey Room
Abstract:
Using functional programming (FP) in enterprise software development is often quite a challenge. In this presentation, Sadek Drobi will talk about his experience of applying functional programming principles on a real-world project in relation with existing non-functional frameworks.
In [...]]]></description>
			<content:encoded><![CDATA[</p>
<p><a href="http://qconlondon.com/london-2009/presentation/Functional+Programming+with+a+Mainstream+Language"><img style="border-bottom: 0px; border-left: 0px; border-top: 0px; border-right: 0px" border="0" alt="download (1)" src="http://sadekdrobi.com/wp-content/uploads/2009/02/download-1.jpg" width="547" height="196"></a> </p>
<p>&nbsp;</p>
<p><span id="more-590"></span></p>
<p><strong><a href="http://qconlondon.com/london-2009/presentation/Functional+Programming+with+a+Mainstream+Language">Programming with a Mainstream Language</a></strong></p>
<p><strong>Track</strong>: <a href="http://qconlondon.com/london-2009/tracks/show_track.jsp?trackOID=225">Functional and Concurrent Programming Languages Applied</a>
<p><strong>Time</strong>: Thursday 17:15 &#8211; 18:15
<p><strong>Location</strong>: Abbey Room
<p><strong>Abstract</strong>:
<p>Using functional programming (FP) in enterprise software development is often quite a challenge. In this presentation, Sadek Drobi will talk about his experience of applying functional programming principles on a real-world project in relation with existing non-functional frameworks.
<p>In the year 2008 and just on the release of C# 3.0 and Linq, which is basically several FP concepts implemented on C# language, Sadek Drobi worked as a tech lead on a project where functional programming approach was used to meet performance requirements and to achieve desired response time. Facing similar issues, a mainstream architect would strive to instantiate less objects and to use mutation for optimization. Considering the big amount of data that had to be processed on each request, Sadek chose to do it otherwise: no mutation, used memorization, laziness, recursion, functions, curry, monads, list comprehensions and, then, parallelization to yield an almost purely functional core domain model.
<p>Sadek Drobi will talk more about this experience and elaborate on the good and the bad of going almost extreme through a functional programming approach from different perspectives.
<p>Participants don&#8217;t need to be functional programming experts even if having some knowledge about LinQ will spare you too much hard thinking during the session. Each new concept will be briefly introduced and the structure of the talk will be as non-sequential as possible so that its parts can be understood and analyzed separately.</p>
]]></content:encoded>
			<wfw:commentRss>http://sadekdrobi.com/2009/02/18/i-am-speaking-at-qcon/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&quot;Null References: The Billion Dollar Mistake&quot;</title>
		<link>http://sadekdrobi.com/2008/12/22/null-references-the-billion-dollar-mistake/</link>
		<comments>http://sadekdrobi.com/2008/12/22/null-references-the-billion-dollar-mistake/#comments</comments>
		<pubDate>Mon, 22 Dec 2008 22:11:58 +0000</pubDate>
		<dc:creator>Sadache</dc:creator>
				<category><![CDATA[InfoQ]]></category>
		<category><![CDATA[QCon]]></category>

		<guid isPermaLink="false">http://sadekdrobi.com/2008/12/22/null-references-the-billion-dollar-mistake/</guid>
		<description><![CDATA[Tony Hoare, Inventor of QuickSort, Turing Award Winner
I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://qconlondon.com/london-2009/speaker/Tony+Hoare">Tony Hoare, Inventor of QuickSort, Turing Award Winner</a></p>
<blockquote><p>I call it my billion-dollar mistake. It was the invention of the null reference in 1965. At that time, I was designing the first comprehensive type system for references in an object oriented language (ALGOL W). My goal was to ensure that all use of references should be absolutely safe, with checking performed automatically by the compiler. But I couldn&#8217;t resist the temptation to put in a null reference, simply because it was so easy to implement. This has led to innumerable errors, vulnerabilities, and system crashes, which have probably caused a billion dollars of pain and damage in the last forty years. In recent years, a number of program analysers like PREfix and PREfast in Microsoft have been used to check references, and give warnings if there is a risk they may be non-null. More recent programming languages like Spec# have introduced declarations for non-null references. This is the solution, which I rejected in 1965.</p>
</blockquote>
]]></content:encoded>
			<wfw:commentRss>http://sadekdrobi.com/2008/12/22/null-references-the-billion-dollar-mistake/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>RefX :: Innovation is often not at your expectations or knowledge level !</title>
		<link>http://sadekdrobi.com/2008/12/15/refx-innovation-is-often-not-at-your-expectations-or-knowledge-level/</link>
		<comments>http://sadekdrobi.com/2008/12/15/refx-innovation-is-often-not-at-your-expectations-or-knowledge-level/#comments</comments>
		<pubDate>Mon, 15 Dec 2008 00:08:24 +0000</pubDate>
		<dc:creator>Sadache</dc:creator>
				<category><![CDATA[Architecture]]></category>
		<category><![CDATA[Conferences]]></category>
		<category><![CDATA[D90]]></category>
		<category><![CDATA[LinQ]]></category>
		<category><![CDATA[QCon]]></category>
		<category><![CDATA[Security]]></category>
		<category><![CDATA[Volta]]></category>
		<category><![CDATA[ajax]]></category>
		<category><![CDATA[gwt]]></category>
		<category><![CDATA[microsoft]]></category>
		<category><![CDATA[web 2.0]]></category>

		<guid isPermaLink="false">http://sadekdrobi.com/2008/12/15/refx-innovation-is-often-not-at-your-expectations-or-knowledge-level/</guid>
		<description><![CDATA[
&#160; &#160;  
@QCon SF, I attended a presentation of Erik Meijer in which he talked about research projects he is involved in, including the Volta project. He talked about an interesting problem that is ignored when we talk about Ajax application and especially when we talk about solutions like GWT that make you feel [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2064.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="DSC_2064" src="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2064-thumb.jpg" width="559" height="375" /></a></p>
<p>&#160;<a href="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2073.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="DSC_2073" src="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2073-thumb.jpg" width="133" height="93" /></a> <a href="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2065.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="DSC_2065" src="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2065-thumb.jpg" width="134" height="93" /></a>&#160; <a href="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2071.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="DSC_2071" src="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2071-thumb.jpg" width="133" height="93" /></a> <a href="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2068.jpg"><img style="border-right-width: 0px; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" border="0" alt="DSC_2068" src="http://sadekdrobi.com/wp-content/uploads/2008/12/dsc-2068-thumb.jpg" width="134" height="93" /></a></p>
<p>@QCon SF, I attended a presentation of Erik Meijer in which he talked about research projects he is involved in, including the Volta project. He talked about an interesting problem that is ignored when we talk about Ajax application and especially when we talk about solutions like GWT that make you feel home while programming for the web. In such an experience, and before splitting your application and deploying it on the web, you feel quite secured. Anyway, often, it is not so important to look for securing inner computer guts communication when there is no network involved. Evil shows up when it is time to go live, to the clouds. There you are not communicating through inner channels but rather through public Internet network.</p>
</p>
<p><span id="more-558"></span></p>
<p>Now, &quot;evil&quot; seems like exaggerating. But with rich ajaxified web applications, there is a part of the business logic that is done at the client side. If you are designing a &quot;Web 2.0&quot; application you have indeed to do some work at the client side to keep your application responsive. This gives even more chance and time for malware to play and mess around. The page is not anymore returned by the server but rather dynamically constructed using javascript after some asynchronous web calls to the server. User&#8217;s session got longer, giving more opportunities for evil (not thinking of invocation of some javascript that is supposed to be returned from the server!).</p>
<p>Erik, while talking about Volta project, seemed very concerned about this security hole that everyone ignored when talking about splitting an application into two parts or about RIA applications. During this interesting presentation, he suggested a solution to this problem: a low level channel that transmits user&#8217;s key interactions to the server in a secured way to be replayed to verify the request sent through http. This mechanism is introduced through a plugin or so. This suggestion triggered negative reaction in the audience, people seemed not to like the idea for several reasons. Some people thought that it is bad for confidentiality reasons. I guess the server anyway knows about what the user does through the http requests, so I guess there is no harm in this channel.</p>
<p>But what really drew my attention is that a lot of people thought it is a bad idea because it &quot;breaks web rules&quot;, or &quot;breaks the web&#8217;s architecture&quot;, or &quot;introduces a whole new concept that people will certainly reject&quot;. Well here, I feel to clear out some points.</p>
<p>Firstly, this is Microsoft that is in act. Back when Microsoft introduced Xml request into their browser for outlook&#8217;s web interface, everyone felt it like a bad idea and that they are breaking the rules. Later on, that became a standard and an essential part of the Web 2.0 enabler that is called AJAX. Examples like this are numerous but this one is sufficient.</p>
<p>Secondly, as the title of this post says, innovations do not come often at our knowledge or expectation level. I mean, who could ever imagine that the Web will have the shape it has today, or that it will even exist.</p>
<p>Last but not least, Erik and his team are trying to find a solution to an ignored unsolved, yet very dangerous, problem. This solution, if it works, can save us from a lot of malware, spam and other kinds of evil on the web. With Microsoft behind it, I guess people will have no problem adopting the solution when it is integrated in the next browser, the most used browser for far. And, think about it, a lot of big companies solutions became standards. Maybe that is Microsoft&#8217;s way back to the WWWeb!</p>
<div style="padding-bottom: 0px; margin: 0px; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:15d53752-2382-4fa9-bd97-3df251b1c33a" class="wlWriterSmartContent">Mots cl&#233;s Technorati : <a href="http://technorati.com/tags/volta" rel="tag">volta</a>,<a href="http://technorati.com/tags/web" rel="tag">web</a>,<a href="http://technorati.com/tags/security" rel="tag">security</a>,<a href="http://technorati.com/tags/microsoft" rel="tag">microsoft</a>,<a href="http://technorati.com/tags/safety" rel="tag">safety</a>,<a href="http://technorati.com/tags/ajax" rel="tag">ajax</a>,<a href="http://technorati.com/tags/gwt" rel="tag">gwt</a>,<a href="http://technorati.com/tags/programming" rel="tag">programming</a>,<a href="http://technorati.com/tags/qcon" rel="tag">qcon</a>,<a href="http://technorati.com/tags/research" rel="tag">research</a>,<a href="http://technorati.com/tags/standards" rel="tag">standards</a>,<a href="http://technorati.com/tags/spam" rel="tag">spam</a></div>
]]></content:encoded>
			<wfw:commentRss>http://sadekdrobi.com/2008/12/15/refx-innovation-is-often-not-at-your-expectations-or-knowledge-level/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

