<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.3.1" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>
<channel>
	<title>Commenti per Franco Lombardo</title>
	<link>http://www.francolombardo.net</link>
	<description>Linguaggio Scala, Java, AS400 e...cose più serie</description>
	<pubDate>Thu, 11 Mar 2010 01:46:47 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.3.1</generator>
		<item>
		<title>Commenti su Fantom vs Scala: semicolon inference and something more di Franco Lombardo</title>
		<link>http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html#comment-8146</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Tue, 05 Jan 2010 22:55:30 +0000</pubDate>
		<guid>http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html#comment-8146</guid>
		<description>Klaus,

another great comment! 
You say "expectations for some reason go higher when it starts looking like a real programming language construct, which perhaps is unreasonable." 
You're right, but I think also that if you give more power you need more safety too. Scala is like a Ferrari race car: as it can run so much, I expect it has good brakes too!!!</description>
		<content:encoded><![CDATA[<p>Klaus,</p>
<p>another great comment!<br />
You say &#8220;expectations for some reason go higher when it starts looking like a real programming language construct, which perhaps is unreasonable.&#8221;<br />
You&#8217;re right, but I think also that if you give more power you need more safety too. Scala is like a Ferrari race car: as it can run so much, I expect it has good brakes too!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Fantom vs Scala: semicolon inference and something more di Klaus</title>
		<link>http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html#comment-8051</link>
		<dc:creator>Klaus</dc:creator>
		<pubDate>Mon, 04 Jan 2010 23:55:44 +0000</pubDate>
		<guid>http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html#comment-8051</guid>
		<description>Yes, the period helps in the sense that:

&lt;code&gt;
  .unless &#124;-&#62;Bool&#124; {i == 0} 
&lt;/code&gt;

can occur on a line for itself. This is also the case in Scala if one uses the dot notation. 

Below is the example in Scala with several uses, so one can see the different scenarios.

First the definition of the loop construct:

&lt;pre lang="scala"&gt;
object Loop {
  def loop(stmt : =&#62; Unit) : Unless = {
    new Unless(stmt)
  }

  protected class Unless(stmt : =&#62; Unit) {
    def unless(cond : =&#62; Boolean) {
      stmt
      if(!cond)unless(cond)
    }
  }
}

import Loop._
&lt;/pre&gt;

Then the calls:

&lt;pre lang= "scala"&gt;
// call 1 (using mixfix notation - works):                                                                                        

var i : Int = 10;
loop {
  println(i)
  i = i - 1
} unless (i == 0)

// call 2 (also using mixfix notation, but with unless on a line for itself - gives a compile time error):                                                                           

i = 10;
loop {
  println(i)
  i = i - 1
}
unless (i == 0) // occurs on a line for itself - does not work

// Also, if this last line is left out, no error message is given.
// This is how other OO languages work. Not a problem as such in OO languages,
// but it does reduce the value of this mixfix notation for writing DSLs. It makes a DSL unsafe to use.

//  call 3 (using dot notation - works as expected):                                                                                          

i = 10;
loop {
  println(i)
  i = i - 1
}.unless(i == 0)

// call 4 (using dot notation, with unless on a line for itself - works):                                                                                           

i = 10;
loop {
  println(i)
  i = i - 1
}.
unless(i == 0) // occurs on a line for itself     
&lt;/pre&gt;

Scala offers this mixfix notation for defining DSLs, and it looks very appealing. However, one can 
provide only a partial instantiation of a DSL construct and the Scala compiler will be happy. We normally accept this in the case of dot-notation (that's how it is in Java and Python) but our expectations for some reason go higher when it starts looking like a real programming language construct, which perhaps is unreasonable.
Something to think about. Could one think of imposing "static liveness" constraints? Like: 'this intermediate object shouldnever be the result of a statement'.

Note that this problem can be avoided if instead we define the loop-unless construct as a curried function:

&lt;pre lang="scala"&gt;
def loop_unless(stmt : =&#62; Unit)(cond : =&#62; Boolean) {
  stmt
  if(!cond)loop_unless(stmt)(cond)
}
&lt;/pre&gt;

Then one can write:                                                                                                                 

&lt;pre lang="scala"&gt;
i = 20;
loop_unless {
  println(i)
  i = i - 1
} (i == 0)
&lt;/pre&gt;

However, if we write:

&lt;pre lang="scala"&gt;
i = 20;
loop_unless {
  println(i)
  i = i - 1
} 
&lt;/pre&gt;

leaving out the second parameter, the compiler will complain. This approach currently seems the safest way to
define DSLs in Scala.</description>
		<content:encoded><![CDATA[<p>Yes, the period helps in the sense that:</p>
<p><code><br />
  .unless |-&gt;Bool| {i == 0}<br />
</code></p>
<p>can occur on a line for itself. This is also the case in Scala if one uses the dot notation. </p>
<p>Below is the example in Scala with several uses, so one can see the different scenarios.</p>
<p>First the definition of the loop construct:</p>
<pre lang="scala">
object Loop {
  def loop(stmt : =&gt; Unit) : Unless = {
    new Unless(stmt)
  }

  protected class Unless(stmt : =&gt; Unit) {
    def unless(cond : =&gt; Boolean) {
      stmt
      if(!cond)unless(cond)
    }
  }
}

import Loop._
</pre>
<p>Then the calls:</p>
<pre lang= "scala">
// call 1 (using mixfix notation - works):                                                                                        

var i : Int = 10;
loop {
  println(i)
  i = i - 1
} unless (i == 0)

// call 2 (also using mixfix notation, but with unless on a line for itself - gives a compile time error):                                                                           

i = 10;
loop {
  println(i)
  i = i - 1
}
unless (i == 0) // occurs on a line for itself - does not work

// Also, if this last line is left out, no error message is given.
// This is how other OO languages work. Not a problem as such in OO languages,
// but it does reduce the value of this mixfix notation for writing DSLs. It makes a DSL unsafe to use.

//  call 3 (using dot notation - works as expected):                                                                                          

i = 10;
loop {
  println(i)
  i = i - 1
}.unless(i == 0)

// call 4 (using dot notation, with unless on a line for itself - works):                                                                                           

i = 10;
loop {
  println(i)
  i = i - 1
}.
unless(i == 0) // occurs on a line for itself
</pre>
<p>Scala offers this mixfix notation for defining DSLs, and it looks very appealing. However, one can<br />
provide only a partial instantiation of a DSL construct and the Scala compiler will be happy. We normally accept this in the case of dot-notation (that&#8217;s how it is in Java and Python) but our expectations for some reason go higher when it starts looking like a real programming language construct, which perhaps is unreasonable.<br />
Something to think about. Could one think of imposing &#8220;static liveness&#8221; constraints? Like: &#8216;this intermediate object shouldnever be the result of a statement&#8217;.</p>
<p>Note that this problem can be avoided if instead we define the loop-unless construct as a curried function:</p>
<pre lang="scala">
def loop_unless(stmt : =&gt; Unit)(cond : =&gt; Boolean) {
  stmt
  if(!cond)loop_unless(stmt)(cond)
}
</pre>
<p>Then one can write:                                                                                                                 </p>
<pre lang="scala">
i = 20;
loop_unless {
  println(i)
  i = i - 1
} (i == 0)
</pre>
<p>However, if we write:</p>
<pre lang="scala">
i = 20;
loop_unless {
  println(i)
  i = i - 1
}
</pre>
<p>leaving out the second parameter, the compiler will complain. This approach currently seems the safest way to<br />
define DSLs in Scala.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Things I do not like in Scala di Franco Lombardo</title>
		<link>http://www.francolombardo.net/things-i-do-not-like-in-scala_post-69.html#comment-8047</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Mon, 04 Jan 2010 22:07:43 +0000</pubDate>
		<guid>http://www.francolombardo.net/things-i-do-not-like-in-scala_post-69.html#comment-8047</guid>
		<description>Klauss,

thanks for your very good comment, that made me write my latest post: http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html</description>
		<content:encoded><![CDATA[<p>Klauss,</p>
<p>thanks for your very good comment, that made me write my latest post: <a href="http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html" rel="nofollow">http://www.francolombardo.net/fantom-vs-scala-semicolon-inference-and-something-more_post-98.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Things I do not like in Scala di Klaus</title>
		<link>http://www.francolombardo.net/things-i-do-not-like-in-scala_post-69.html#comment-7939</link>
		<dc:creator>Klaus</dc:creator>
		<pubDate>Thu, 31 Dec 2009 19:08:10 +0000</pubDate>
		<guid>http://www.francolombardo.net/things-i-do-not-like-in-scala_post-69.html#comment-7939</guid>
		<description>Both issues seem somewhat problematic, agree.

Concerning the semicolon inference issue I have specifically seen it come up in the context
of definition of domain specific languages (DSLs). Several Scala features can be used to define
such DSLs, specifically "Automatic Type-Dependent Closure Construction", see :

   http://www.scala-lang.org/node/138

The idea is very! appealing. However, there seems to be three problems
with this approach in Scala, which I would like to see comments on.

 Problem 1 - "the eager semicolon":
 automated inference of semicolon causes DSL constructs to be only
 partially parsed leaving the rest unparsed as a DSL construct

 Problem 2 - "the satisfied semicolon":
 partially written (incomplete) DSL constructs are accepted

 Problem 3 - "the lazy semicolon":
 one has to write a semilon to end a call of a method that takes () as argument,
 otherwise the Scala parser will complain about subsequent text as supurfluous arguments

Let me illustrate the first two problems with (a slight modification
of) the example on the page: http://www.scala-lang.org/node/138.

&lt;pre&gt;
// Suppose we define a loop construct as follows:

object Loop {
 def loop(body: =&#62; Unit): LoopUnlessCond =
  new LoopUnlessCond(body)

 protected class LoopUnlessCond(body: =&#62; Unit) {
  def unless(cond: =&#62; Boolean) {
    body
    if (!cond) unless(cond)
  }
 }
}

// We can now use this as follows (use 1):

import Loop._

var i = 10
loop {
 println("i = " + i)
 i -= 1
} unless (i == 0)

// The above compiles and runs correctly. So far so good.

// Problem 1 : the eager semicolon.
// The following use (use 2) gives a compile time error:

i = 10
loop {
 println("i = " + i)
 i -= 1
}
unless (i == 0)

// This is because the unless method call is on a line for itself.
// Scala will at the '}' infer a semicolon too early. Hence the unless
// will no longer be a call of the method in class LoopUnlessCond.
// This is an example of Problem 1.

// Problem 2 : the satisfied semicolon.
// An example of Problem 2 is the following, which is missing the
// call of unless:

i = 10
loop {
 println("i = " + i)
 i -= 1
}

// this compiles correctly, but does not execute correctly. Nothing is printed.

// Problem 3 : the lazy semicolon.
// Suppose a constructs ends with a keyword, for example 'return' with
no arguments.
// Then one may want to write a class like:

class Return {
 def return() {...}
}
&lt;/pre&gt;

and have a construct like:

&lt;pre&gt;
... return
somethingelse
&lt;/pre&gt;

The compiler will look for an argument to return and will find
'somethingelse' and
will complain that return has too many arguments. So one has to insert
a semicolon to
make it work:

&lt;pre&gt;
... return; // inserted semicolon here
somethingelse
&lt;/pre&gt;

// which is a pitty

Any opinions about these observations?

Regards,

Klaus</description>
		<content:encoded><![CDATA[<p>Both issues seem somewhat problematic, agree.</p>
<p>Concerning the semicolon inference issue I have specifically seen it come up in the context<br />
of definition of domain specific languages (DSLs). Several Scala features can be used to define<br />
such DSLs, specifically &#8220;Automatic Type-Dependent Closure Construction&#8221;, see :</p>
<p>   <a href="http://www.scala-lang.org/node/138" rel="nofollow">http://www.scala-lang.org/node/138</a></p>
<p>The idea is very! appealing. However, there seems to be three problems<br />
with this approach in Scala, which I would like to see comments on.</p>
<p> Problem 1 - &#8220;the eager semicolon&#8221;:<br />
 automated inference of semicolon causes DSL constructs to be only<br />
 partially parsed leaving the rest unparsed as a DSL construct</p>
<p> Problem 2 - &#8220;the satisfied semicolon&#8221;:<br />
 partially written (incomplete) DSL constructs are accepted</p>
<p> Problem 3 - &#8220;the lazy semicolon&#8221;:<br />
 one has to write a semilon to end a call of a method that takes () as argument,<br />
 otherwise the Scala parser will complain about subsequent text as supurfluous arguments</p>
<p>Let me illustrate the first two problems with (a slight modification<br />
of) the example on the page: <a href="http://www.scala-lang.org/node/138." rel="nofollow">http://www.scala-lang.org/node/138.</a></p>
<pre>
// Suppose we define a loop construct as follows:

object Loop {
 def loop(body: =&gt; Unit): LoopUnlessCond =
  new LoopUnlessCond(body)

 protected class LoopUnlessCond(body: =&gt; Unit) {
  def unless(cond: =&gt; Boolean) {
    body
    if (!cond) unless(cond)
  }
 }
}

// We can now use this as follows (use 1):

import Loop._

var i = 10
loop {
 println("i = " + i)
 i -= 1
} unless (i == 0)

// The above compiles and runs correctly. So far so good.

// Problem 1 : the eager semicolon.
// The following use (use 2) gives a compile time error:

i = 10
loop {
 println("i = " + i)
 i -= 1
}
unless (i == 0)

// This is because the unless method call is on a line for itself.
// Scala will at the '}' infer a semicolon too early. Hence the unless
// will no longer be a call of the method in class LoopUnlessCond.
// This is an example of Problem 1.

// Problem 2 : the satisfied semicolon.
// An example of Problem 2 is the following, which is missing the
// call of unless:

i = 10
loop {
 println("i = " + i)
 i -= 1
}

// this compiles correctly, but does not execute correctly. Nothing is printed.

// Problem 3 : the lazy semicolon.
// Suppose a constructs ends with a keyword, for example 'return' with
no arguments.
// Then one may want to write a class like:

class Return {
 def return() {...}
}
</pre>
<p>and have a construct like:</p>
<pre>
... return
somethingelse
</pre>
<p>The compiler will look for an argument to return and will find<br />
&#8217;somethingelse&#8217; and<br />
will complain that return has too many arguments. So one has to insert<br />
a semicolon to<br />
make it work:</p>
<pre>
... return; // inserted semicolon here
somethingelse
</pre>
<p>// which is a pitty</p>
<p>Any opinions about these observations?</p>
<p>Regards,</p>
<p>Klaus</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Italian Agile Day 2009 - Le mie impressioni di pino</title>
		<link>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7580</link>
		<dc:creator>pino</dc:creator>
		<pubDate>Tue, 24 Nov 2009 23:27:52 +0000</pubDate>
		<guid>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7580</guid>
		<description>Grazie Franco per questo riassunto...mi fai sembrare di esserci stato ;-)</description>
		<content:encoded><![CDATA[<p>Grazie Franco per questo riassunto&#8230;mi fai sembrare di esserci stato <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Italian Agile Day 2009 - Le mie impressioni di Franco Lombardo</title>
		<link>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7575</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Tue, 24 Nov 2009 08:59:09 +0000</pubDate>
		<guid>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7575</guid>
		<description>Per chi volesse maggiori informazioni sulla presentazione di Alberto Quario, &lt;a href="http://www.slideshare.net/realbot/scenario-testing " rel="nofollow"&gt;ecco le slide&lt;/a&gt; e due articoli: &lt;i&gt;&lt;a href="http://www.agilealliance.org/show/910" rel="nofollow"&gt;Object Mother: Easing Test Object Creation in XP&lt;/a&gt;&lt;/i&gt; e &lt;i&gt;&lt;a href="http://nat.truemesh.com/archives/000714.html" rel="nofollow"&gt;Test Data Builders: an alternative to the Object Mother pattern&lt;/a&gt;&lt;/i&gt;

Grazie ad Alberto per la segnalazione.

@Andrea. Sono contento che il post ti sia piacuto. Spero di incontrarti di persona a qualche meeting dell XPUG di Milano.</description>
		<content:encoded><![CDATA[<p>Per chi volesse maggiori informazioni sulla presentazione di Alberto Quario, <a href="http://www.slideshare.net/realbot/scenario-testing " rel="nofollow">ecco le slide</a> e due articoli: <i><a href="http://www.agilealliance.org/show/910" rel="nofollow">Object Mother: Easing Test Object Creation in XP</a></i> e <i><a href="http://nat.truemesh.com/archives/000714.html" rel="nofollow">Test Data Builders: an alternative to the Object Mother pattern</a></i></p>
<p>Grazie ad Alberto per la segnalazione.</p>
<p>@Andrea. Sono contento che il post ti sia piacuto. Spero di incontrarti di persona a qualche meeting dell XPUG di Milano.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Italian Agile Day 2009 - Le mie impressioni di Andrea Cerisara</title>
		<link>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7574</link>
		<dc:creator>Andrea Cerisara</dc:creator>
		<pubDate>Tue, 24 Nov 2009 07:19:19 +0000</pubDate>
		<guid>http://www.francolombardo.net/italian-agile-day-2009-le-mie-impressioni_post-96.html#comment-7574</guid>
		<description>Grazie Franco per aver condiviso la tua esperienza, bel sunto :-)</description>
		<content:encoded><![CDATA[<p>Grazie Franco per aver condiviso la tua esperienza, bel sunto <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Il miglioramento delle nostre capacità non è previsto di Pietro F. Maggi</title>
		<link>http://www.francolombardo.net/il-miglioramento-delle-nostre-capacita-non-e-previsto_post-95.html#comment-7540</link>
		<dc:creator>Pietro F. Maggi</dc:creator>
		<pubDate>Fri, 13 Nov 2009 08:31:38 +0000</pubDate>
		<guid>http://www.francolombardo.net/il-miglioramento-delle-nostre-capacita-non-e-previsto_post-95.html#comment-7540</guid>
		<description>Quale ricerca e sviluppo?
La maggior parte delle realtà tecnologiche in Italia si occupano di rivendere/distribuire prodotti sviluppati da altri o seguire mercati di nicchia su clienti locali facendo taglia e cuci di soluzioni precotte. In nessuno dei casi la ricerca e sviluppo entra nell'ottica di chi ha creato quel business...

Poi ci sono le eccezioni che hanno una visione globale del mercato, ma sono le stesse eccezioni che in questo periodo stanno incrementando o almeno mantenendo, gli investimenti in R&#38;D.

Come sempre, pare che la "ricerca e sviluppo" sia lasciata all'iniziativa del singolo :-/

Saluti
Pietro</description>
		<content:encoded><![CDATA[<p>Quale ricerca e sviluppo?<br />
La maggior parte delle realtà tecnologiche in Italia si occupano di rivendere/distribuire prodotti sviluppati da altri o seguire mercati di nicchia su clienti locali facendo taglia e cuci di soluzioni precotte. In nessuno dei casi la ricerca e sviluppo entra nell&#8217;ottica di chi ha creato quel business&#8230;</p>
<p>Poi ci sono le eccezioni che hanno una visione globale del mercato, ma sono le stesse eccezioni che in questo periodo stanno incrementando o almeno mantenendo, gli investimenti in R&amp;D.</p>
<p>Come sempre, pare che la &#8220;ricerca e sviluppo&#8221; sia lasciata all&#8217;iniziativa del singolo :-/</p>
<p>Saluti<br />
Pietro</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Come spostare una LAN Console di Franco Lombardo</title>
		<link>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7539</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Fri, 13 Nov 2009 07:52:38 +0000</pubDate>
		<guid>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7539</guid>
		<description>@Paolo

Una &lt;a href="http://bit.ly/1POnno" rel="nofollow"&gt;ricerca su Google&lt;/a&gt; riporta brutte notizie: scheda madre bruciata. Vedi anche &lt;a href="http://bit.ly/4avuQu" rel="nofollow"&gt;questo post&lt;/a&gt;, ed il &lt;a href="http://as400bks.rochester.ibm.com/html/as400/v4r5/ic2924/v4r5hwpdf/pdf/y4459653.pdf" rel="nofollow"&gt; citato manuale IBM&lt;/A&gt;.
In effetti anche da &lt;a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzahb/srclist.htm" rel="nofollow"&gt;questo altro sito IBM&lt;/a&gt; si vede che i codici inizianti per B42 non sono di buon auspicio.</description>
		<content:encoded><![CDATA[<p>@Paolo</p>
<p>Una <a href="http://bit.ly/1POnno" rel="nofollow">ricerca su Google</a> riporta brutte notizie: scheda madre bruciata. Vedi anche <a href="http://bit.ly/4avuQu" rel="nofollow">questo post</a>, ed il <a href="http://as400bks.rochester.ibm.com/html/as400/v4r5/ic2924/v4r5hwpdf/pdf/y4459653.pdf" rel="nofollow"> citato manuale IBM</a>.<br />
In effetti anche da <a href="http://publib.boulder.ibm.com/infocenter/iseries/v5r3/index.jsp?topic=/rzahb/srclist.htm" rel="nofollow">questo altro sito IBM</a> si vede che i codici inizianti per B42 non sono di buon auspicio.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Come spostare una LAN Console di Paolo</title>
		<link>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7535</link>
		<dc:creator>Paolo</dc:creator>
		<pubDate>Thu, 12 Nov 2009 21:52:14 +0000</pubDate>
		<guid>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7535</guid>
		<description>ho un problea con as400 faccio partire con 02 - BM ma dopo pochi minuti si blocca su B4244200 mi sai dire che messaggio di errore è?</description>
		<content:encoded><![CDATA[<p>ho un problea con as400 faccio partire con 02 - BM ma dopo pochi minuti si blocca su B4244200 mi sai dire che messaggio di errore è?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Il miglioramento delle nostre capacità non è previsto di Massimo Fanti</title>
		<link>http://www.francolombardo.net/il-miglioramento-delle-nostre-capacita-non-e-previsto_post-95.html#comment-7533</link>
		<dc:creator>Massimo Fanti</dc:creator>
		<pubDate>Wed, 11 Nov 2009 16:30:58 +0000</pubDate>
		<guid>http://www.francolombardo.net/il-miglioramento-delle-nostre-capacita-non-e-previsto_post-95.html#comment-7533</guid>
		<description>Probabilmente conosco perfettamente il mercato; conosci qualche azienda che sta investendo in ricerca e sviluppo?</description>
		<content:encoded><![CDATA[<p>Probabilmente conosco perfettamente il mercato; conosci qualche azienda che sta investendo in ricerca e sviluppo?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Come spostare una LAN Console di Franco Lombardo</title>
		<link>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7526</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Tue, 10 Nov 2009 13:11:21 +0000</pubDate>
		<guid>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7526</guid>
		<description>Gabriele,

sono contento di esserle stato d'aiuto in qualche modo. Vorrebbe magare condividere la sua esperienza dandoci maggiori dettagli?</description>
		<content:encoded><![CDATA[<p>Gabriele,</p>
<p>sono contento di esserle stato d&#8217;aiuto in qualche modo. Vorrebbe magare condividere la sua esperienza dandoci maggiori dettagli?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Come spostare una LAN Console di Gabriele</title>
		<link>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7525</link>
		<dc:creator>Gabriele</dc:creator>
		<pubDate>Tue, 10 Nov 2009 11:28:17 +0000</pubDate>
		<guid>http://www.francolombardo.net/come-spostare-una-lan-console_post-85.html#comment-7525</guid>
		<description>Grazie per il suo suggerimento...mi sono risparmiato una chiamata a mamma IBM!!!

...cmq con un po' di applicazione siamo riusciti a chiarire il corretto funzionamento della LAN Console; adesso possiamo averla su più PC, non contemporaneamente (ovviamente), e senza bisogno di smanettare forsennatamente sul pannellino ogni volta.... evviva il progresso!!!!</description>
		<content:encoded><![CDATA[<p>Grazie per il suo suggerimento&#8230;mi sono risparmiato una chiamata a mamma IBM!!!</p>
<p>&#8230;cmq con un po&#8217; di applicazione siamo riusciti a chiarire il corretto funzionamento della LAN Console; adesso possiamo averla su più PC, non contemporaneamente (ovviamente), e senza bisogno di smanettare forsennatamente sul pannellino ogni volta&#8230;. evviva il progresso!!!!</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Functional setter Java idiom di alepuzio</title>
		<link>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7449</link>
		<dc:creator>alepuzio</dc:creator>
		<pubDate>Thu, 05 Nov 2009 08:40:08 +0000</pubDate>
		<guid>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7449</guid>
		<description>I agree, then do you think that the change of "convention" not create problems in web apps "old style"? :)

My doubt is about the manutenibility when you code from "JavaBean world" to "Fluent Interface world"

&#62;DSL-like manner
It's better ;)</description>
		<content:encoded><![CDATA[<p>I agree, then do you think that the change of &#8220;convention&#8221; not create problems in web apps &#8220;old style&#8221;? <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>My doubt is about the manutenibility when you code from &#8220;JavaBean world&#8221; to &#8220;Fluent Interface world&#8221;</p>
<p>&gt;DSL-like manner<br />
It&#8217;s better <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Functional setter Java idiom di Franco Lombardo</title>
		<link>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7447</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Wed, 04 Nov 2009 13:58:15 +0000</pubDate>
		<guid>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7447</guid>
		<description>@alepuzio

There is no problem, because I don't use Struts :-)
More seriously, obviously in this particular case, fluent interfaces (or functional setters as I love to call them :-) ) are just setters that return the object itself, so I think they should work even with Struts.
Anyway, fluent interfaces are intended to develop in a DSL-like manner, not in the "old JavaBeans" standard.</description>
		<content:encoded><![CDATA[<p>@alepuzio</p>
<p>There is no problem, because I don&#8217;t use Struts <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /><br />
More seriously, obviously in this particular case, fluent interfaces (or functional setters as I love to call them <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) are just setters that return the object itself, so I think they should work even with Struts.<br />
Anyway, fluent interfaces are intended to develop in a DSL-like manner, not in the &#8220;old JavaBeans&#8221; standard.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Functional setter Java idiom di alepuzio</title>
		<link>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7444</link>
		<dc:creator>alepuzio</dc:creator>
		<pubDate>Wed, 04 Nov 2009 12:52:33 +0000</pubDate>
		<guid>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7444</guid>
		<description>Hi,
It'a good systems: the only problem, in my opinion, is that some framwork (as Struts) work with the hypothesis that the developer is coding with JavaBean's standards ( void setAttribute(XXX xxx) ).
Coding in Fluent Interface's way, dont you break this hypothesis ?

Bye</description>
		<content:encoded><![CDATA[<p>Hi,<br />
It&#8217;a good systems: the only problem, in my opinion, is that some framwork (as Struts) work with the hypothesis that the developer is coding with JavaBean&#8217;s standards ( void setAttribute(XXX xxx) ).<br />
Coding in Fluent Interface&#8217;s way, dont you break this hypothesis ?</p>
<p>Bye</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Disattivazione del mirroring su AS400 di Franco Lombardo</title>
		<link>http://www.francolombardo.net/disattivazione-del-mirroring-su-as400_post-37.html#comment-7250</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Fri, 02 Oct 2009 12:45:37 +0000</pubDate>
		<guid>http://www.francolombardo.net/disattivazione-del-mirroring-su-as400_post-37.html#comment-7250</guid>
		<description>Ho sperimentato l'aumento di prestazioni ottenuto dalla disattivazione del mirroring nella realtà dei fatti. Ciò è dato da due fattori. In primo luogo le prestazioni generali del sistema sono funzione del numero dei braccetti dei dischi (vedi per esempio http://www.ibmsystemsmag.com/ibmi/september02/enewsletterexclusive/8071p1.aspx). In secondo luogo il sistema su cui ho disattivato il mirror aveva quasi esaurito lo spazio disponibile su disco, ed anche questo ha ovviamente un effetto negativo sulla velocita della macchina.
Detto questo, devo ricordare che in almeno un paio di situazioni il mirroring mi ha "salvato la pelle" in occasione di fulminee rotture di dischi.
Il mio modesto consiglio è quindi quello di disattivarlo solo quando è proprio l'ultima possibilità per rendere accettabili le prestazioni di un sistema vicino ai suoi limiti.</description>
		<content:encoded><![CDATA[<p>Ho sperimentato l&#8217;aumento di prestazioni ottenuto dalla disattivazione del mirroring nella realtà dei fatti. Ciò è dato da due fattori. In primo luogo le prestazioni generali del sistema sono funzione del numero dei braccetti dei dischi (vedi per esempio <a href="http://www.ibmsystemsmag.com/ibmi/september02/enewsletterexclusive/8071p1.aspx" rel="nofollow">http://www.ibmsystemsmag.com/ibmi/september02/enewsletterexclusive/8071p1.aspx</a>). In secondo luogo il sistema su cui ho disattivato il mirror aveva quasi esaurito lo spazio disponibile su disco, ed anche questo ha ovviamente un effetto negativo sulla velocita della macchina.<br />
Detto questo, devo ricordare che in almeno un paio di situazioni il mirroring mi ha &#8220;salvato la pelle&#8221; in occasione di fulminee rotture di dischi.<br />
Il mio modesto consiglio è quindi quello di disattivarlo solo quando è proprio l&#8217;ultima possibilità per rendere accettabili le prestazioni di un sistema vicino ai suoi limiti.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Disattivazione del mirroring su AS400 di Francesco Cioffi</title>
		<link>http://www.francolombardo.net/disattivazione-del-mirroring-su-as400_post-37.html#comment-7249</link>
		<dc:creator>Francesco Cioffi</dc:creator>
		<pubDate>Fri, 02 Oct 2009 09:32:55 +0000</pubDate>
		<guid>http://www.francolombardo.net/disattivazione-del-mirroring-su-as400_post-37.html#comment-7249</guid>
		<description>Logicamente non fatelo mai... la rottura di un disco causerebbe il fault la perdita della macchina e di tutti i dati. Non è proprio vero che l\'accesso sia più lento. Infatti in fase di accessi contemporanei in lettura il mirror è 2 volte più veloce del raid 0, gestisce un grado di parallelismo doppio ed un doppio transfer rate. in scrittura l\'as400 è soprattutto una macchina transazionale quindi non vedo particolari efficienze prodotte dal raid 0
Considerando comunque la impagabilità della sicurezza offerta dal raid 1, lascio a chi legge le conclusioni.
Saluti
Francesco</description>
		<content:encoded><![CDATA[<p>Logicamente non fatelo mai&#8230; la rottura di un disco causerebbe il fault la perdita della macchina e di tutti i dati. Non è proprio vero che l\&#8217;accesso sia più lento. Infatti in fase di accessi contemporanei in lettura il mirror è 2 volte più veloce del raid 0, gestisce un grado di parallelismo doppio ed un doppio transfer rate. in scrittura l\&#8217;as400 è soprattutto una macchina transazionale quindi non vedo particolari efficienze prodotte dal raid 0<br />
Considerando comunque la impagabilità della sicurezza offerta dal raid 1, lascio a chi legge le conclusioni.<br />
Saluti<br />
Francesco</p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Functional setter Java idiom di Franco Lombardo</title>
		<link>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7188</link>
		<dc:creator>Franco Lombardo</dc:creator>
		<pubDate>Sun, 27 Sep 2009 19:38:31 +0000</pubDate>
		<guid>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7188</guid>
		<description>Oh, good pointer Gabriele: I need to read more next time! :-)</description>
		<content:encoded><![CDATA[<p>Oh, good pointer Gabriele: I need to read more next time! <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
	<item>
		<title>Commenti su Functional setter Java idiom di gabriele renzi</title>
		<link>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7184</link>
		<dc:creator>gabriele renzi</dc:creator>
		<pubDate>Sun, 27 Sep 2009 11:41:52 +0000</pubDate>
		<guid>http://www.francolombardo.net/functional-setter-java-idiom_post-92.html#comment-7184</guid>
		<description>I believe this is what is usually called a fulent interface http://en.wikipedia.org/wiki/Fluent_interface
And yes, it is a nice idea :)</description>
		<content:encoded><![CDATA[<p>I believe this is what is usually called a fulent interface <a href="http://en.wikipedia.org/wiki/Fluent_interface" rel="nofollow">http://en.wikipedia.org/wiki/Fluent_interface</a><br />
And yes, it is a nice idea <img src='http://www.francolombardo.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
	</item>
</channel>
</rss>
