<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Com'è dura la professione!</title>
	<atom:link href="http://lbell.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://lbell.wordpress.com</link>
	<description>Programmare, programmare, programmare !!!</description>
	<lastBuildDate>Mon, 21 Nov 2011 22:17:12 +0000</lastBuildDate>
	<language>it</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='lbell.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Com'è dura la professione!</title>
		<link>http://lbell.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://lbell.wordpress.com/osd.xml" title="Com&#039;è dura la professione!" />
	<atom:link rel='hub' href='http://lbell.wordpress.com/?pushpress=hub'/>
		<item>
		<title>QXmlEdit 0.5.3 released</title>
		<link>http://lbell.wordpress.com/2011/10/23/qxmledit-0-5-3-released/</link>
		<comments>http://lbell.wordpress.com/2011/10/23/qxmledit-0-5-3-released/#comments</comments>
		<pubDate>Sun, 23 Oct 2011 15:14:15 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[qxmledit]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=237</guid>
		<description><![CDATA[QXmlEdit, a simple XML editor, is born to explore Qt libraries and then gradually added features becoming a sort of swiss army knife. In its latest release, 0.5.3, there is a tool to split XML files of any size in smaller fragments. It is also possible to examine a fragment at time in the user [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=237&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="margin-bottom:0;font-style:normal;" lang="en-US">QXmlEdit, a simple XML editor, is born to explore Qt libraries and then gradually added features becoming a sort of swiss army knife.</p>
<p style="margin-bottom:0;font-style:normal;" lang="en-US">In its latest release, 0.5.3, there is a tool to split XML files of any size in smaller fragments. It is also possible to examine a fragment at time in the user interface, without loading it completely in memory.</p>
<p style="margin-bottom:0;font-style:normal;" lang="it-IT">You can download QXmlEdit at the following link: <a href="http://code.google.com/p/qxmledit/downloads">http://code.google.com/p/qxmledit/downloads</a></p>
<p style="margin-bottom:0;font-style:normal;" lang="en-US">This little tutorial, extracted from the manual, shows how to use the file splitter in details:</p>
<p style="margin-bottom:0;font-style:normal;" lang="en-US"><a href="http://lbell.files.wordpress.com/2011/10/uno.png"><img class="aligncenter size-medium wp-image-238" title="welcome dialog" src="http://lbell.files.wordpress.com/2011/10/uno.png?w=300&#038;h=232" alt="" width="300" height="232" /></a></p>
<p>When starting, the program will open a welcome dialog leading to the most common operations. Choose “<strong>Split a file</strong>”. If you choose to hide the dialog next time the program restart and change your mind, you can reactivate it in the configuration panel. You can access this feature also from the menu <strong>Tools</strong>.</p>
<p><span id="more-237"></span></p>
<p><a href="http://lbell.files.wordpress.com/2011/10/due.png"><img class="aligncenter size-medium wp-image-239" title="options" src="http://lbell.files.wordpress.com/2011/10/due.png?w=300&#038;h=75" alt="" width="300" height="75" /></a></p>
<h4 class="western">Decide if you want to extract the information or navigate them</h4>
<p lang="en-US">If you want only navigate the data without creating any files, uncheck &#8216;<strong>Extract Documents</strong>&#8216;. Even if you don&#8217;t extract the XML fragments into smaller file, QXmlEdit scans the file and records the fragments for a review.</p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2011/10/tre.png"><img class="aligncenter size-medium wp-image-240" title="parameters" src="http://lbell.files.wordpress.com/2011/10/tre.png?w=300&#038;h=51" alt="" width="300" height="51" /></a></p>
<h4 class="western">Choose the file and how to fragment it</h4>
<p lang="en-US">Browse to the file to examine, the insert the XPath that identifies a fragment. Insert a string of the form /ROOT/DATA and so on.</p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2011/10/4.png"><img class="aligncenter size-medium wp-image-241" title="documents range" src="http://lbell.files.wordpress.com/2011/10/4.png?w=300&#038;h=69" alt="" width="300" height="69" /></a></p>
<h4 class="western">Limit the extracted fragments number</h4>
<p lang="en-US">Selecting a range permits to extract only a small subset of the original file. You are not obliged to waste space on your disk if you want only a single fragment.</p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2011/10/5.png"><img class="aligncenter size-medium wp-image-242" title="naming" src="http://lbell.files.wordpress.com/2011/10/5.png?w=300&#038;h=102" alt="" width="300" height="102" /></a></p>
<h4 class="western">Decide the output folder and the naming</h4>
<p lang="en-US">Enter the location where write the extracted fragments and decide if you want to create a folder each N files. Decide also how to name the files and the folders. The combo boxes have some predefined values to ease the task, like a timestamp, or a progressive counter.</p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2011/10/6.png"><img class="aligncenter size-medium wp-image-243" title="examine data" src="http://lbell.files.wordpress.com/2011/10/6.png?w=169&#038;h=300" alt="" width="169" height="300" /></a></p>
<h4 class="western">Go and examine data</h4>
<p lang="en-US"><em>After the start of the operation, in the the main window a navigation box appears. The XML fragments found in the input file are accessible directly with a random access using the information collected in the previous phases. If you choose to split the file in fragments, you can examine them in the extraction directory.</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/237/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/237/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/237/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=237&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/10/23/qxmledit-0-5-3-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/uno.png?w=300" medium="image">
			<media:title type="html">welcome dialog</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/due.png?w=300" medium="image">
			<media:title type="html">options</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/tre.png?w=300" medium="image">
			<media:title type="html">parameters</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/4.png?w=300" medium="image">
			<media:title type="html">documents range</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/5.png?w=300" medium="image">
			<media:title type="html">naming</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/10/6.png?w=169" medium="image">
			<media:title type="html">examine data</media:title>
		</media:content>
	</item>
		<item>
		<title>Se ne va il bello del computer</title>
		<link>http://lbell.wordpress.com/2011/10/03/se-ne-va-il-bello-del-computer/</link>
		<comments>http://lbell.wordpress.com/2011/10/03/se-ne-va-il-bello-del-computer/#comments</comments>
		<pubDate>Mon, 03 Oct 2011 20:43:10 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[cosi' va il mondo]]></category>
		<category><![CDATA[Mac]]></category>
		<category><![CDATA[Vaneggiamenti]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=229</guid>
		<description><![CDATA[Steve Jobs si è dimesso da CEO di Apple. Il cambio di un dirigente di una ditta non ha solitamente grosse ricadute sugli utenti ed in certi casi neppure sulla vita della ditta stessa, ed il fatto che le ditte sopravvivano ai propri amministratori ne è una prova. Steve Jobs è stato un&#8217;eccezione e con [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=229&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Steve Jobs si è dimesso da CEO di Apple.</p>
<p>Il cambio di un dirigente di una ditta non ha solitamente grosse ricadute sugli utenti ed in certi casi neppure sulla vita della ditta stessa, ed il fatto che le ditte sopravvivano ai propri amministratori ne è una prova.</p>
<p>Steve Jobs è stato un&#8217;eccezione e con lui rischia di scomparire un parte di quello che ha reso il personal computer affascinante, almeno per chi è appassionato di tecnologia.</p>
<p>Chi ha iniziato ad usare i personal computer da piccolo, ha vissuto l&#8217;epoca degli 8 e dei 16 bit, con macchine che pur differenziandosi per potenza, dal mondo dell&#8217;hobbistico al professionale, si assomigliavano tutte nel modello di utilizzo e di programmazione. La differenza la facevano le periferiche disponibili ed il software per gestirle (chiamarli driver sarebbe forse troppo). Un hard disk ed un buon alimentatore differenziava le macchine di fascia alta da quelle di uso casalingo.</p>
<p>Era possibile scrivere simulazioni, risoluzioni di problemi matematici, piccoli database in Assembler, Basic o Pascal. All&#8217;uscita di un nuovo modello ci si procurava i manuali del relativo microporcessore e dell&#8217;immancabile versione di Basic per poter programmare, come quando dovendosi recare in un Paese straniero, ci si premura di procurarsi un dizionario ed un manuale di conversazione.</p>
<p>L&#8217;avvento dei sistemi ideati da Jobs ha cambiato tutto.</p>
<p>All&#8217;uscita del Macintosh in Italia, cercando i manuali del suo Basic, per capire come fosse possibile realizzare un programma come Mac Paint, restai allibito davanti ai volumi di Inside Macintosh.</p>
<p>Non si trattava solo di un sistema con un&#8217;interfaccia utente mai vista prima, di una grafica che sembrava uscita da una tipografia, ma anche dell&#8217;organizzazione della documentazione, finalmente fuori dai binari di una raccolta di trucchetti, e di come veniva teorizzata la via per scrivere i programmi, del primo tentativo di programmazione object oriented diffusa al di fuori dell&#8217;accademia.</p>
<p>Si trattava di tutto quanto assieme, un salto di una decina di anni avanti a tutto quello che era apparso fino a quel momento, quasi in ogni particolare della macchina, ahimè anche nel prezzo, decisamente fuori portata per le tasche di molti, me compreso.</p>
<p>Più tardi appresi che la macchina era curata anche al suo interno, in luoghi che l&#8217;utente non avrebbe mai raggiunto (si veda la storia su <a href="http://folklore.org/StoryView.py?project=Macintosh&amp;story=PC_Board_Esthetics.txt">http://folklore.org/StoryView.py?project=Macintosh&amp;story=PC_Board_Esthetics.txt</a>).</p>
<p>Qualche tempo più tardi, al mio primo lavoro, parlando dell&#8217;argomento, un ingegnere mi disse letteralmente “real programmers don&#8217;t use icons”. Oggi tutti i sistemi sono essenzialmente dei Macintosh, perfino i telefoni.</p>
<p>Quando uscì il NeXT, forse il capolavoro di Jobs, abituato ai sistemi che le altre ditte comunemente costruivano per il mercato professionale, mi chiesi come fosse possibile avere pensato così in grande nel produrre qualcosa che comunque era soggetto alle regole di mercato e come mai nessun altro lo avesse fatto.</p>
<p>Il NeXT era esagerato in tutto e, come al solito, anni avanti agli altri sistemi, soprattutto nel software. Il Macintosh di oggi non è che la sua evoluzione adattata ai tempi.</p>
<p>I sistemi progettati da Jobs sono sempre stati innovativi e curati con perfezione maniacale. Se pure Jobs non ha scritto una riga di codice, la sua mano si vede in ogni prodotto che è sempre un piccolo gioiello.</p>
<p>Jobs è stato non solo geniale, ma ha segnato il proprio tempo con visioni che andavano al di là del presente. Come lui, nel suo campo sono stati, ognuno a modo suo ed in misura diversa, pochi altri: Clive Sinclair, Richard Stallman, Linus Torvalds, Alan Kay, Jay Miner fra quelli che conosco.</p>
<p>Quello che Jobs ci ha insegnato è che anche nel mondo del lavoro, a volte così concreto da sfiorare la grettezza, è possibile realizzare qualcosa di solido e di elegante, che va al di là di quello che sembra possibile quando ci si accontenta di fare quello che si è sempre fatto, perché si è sempre fatto così.</p>
<p lang="it-IT">A proposito di Jobs mi sembra giusto chiudere con una citazione da “Cena ad Audoghast” di B. Sterling:</p>
<p lang="it-IT"> “<em>Non mi fiderei di nessun indovino del commercio. Per conoscere il mercato bisogna conoscere il cuore della gente, e per questo occorre un buon poeta.”</em></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/229/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/229/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/229/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=229&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/10/03/se-ne-va-il-bello-del-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>
	</item>
		<item>
		<title>QXmlEdit gains a brand new navigator</title>
		<link>http://lbell.wordpress.com/2011/09/04/qxmledit-gains-a-brand-new-navigator/</link>
		<comments>http://lbell.wordpress.com/2011/09/04/qxmledit-gains-a-brand-new-navigator/#comments</comments>
		<pubDate>Sun, 04 Sep 2011 19:52:31 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[qxmledit]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=220</guid>
		<description><![CDATA[The 0.5.1 release of QXmlEdit brings a XSD types navigator. An index panel with the recap of types and root elements and attributes and navigation items is a great helper when browsing complex schema. The navigation is possible in two ways: Double clicking an item on the types list centers the relative item in the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=220&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-US">The 0.5.1 release of QXmlEdit brings a XSD types navigator. An index panel with the recap of types and root elements and attributes and navigation items is a great helper when browsing complex schema.</p>
<p>The navigation is possible in two ways:</p>
<ul>
<li>
<p lang="en-US">Double clicking an item on the types list centers the relative item in the graphics view.</p>
</li>
<li>Selecting an item with a reference to a type in the graphics view and using the context menu.</li>
</ul>
<p lang="en-US">While jumping from a type to another one, the previous item is remembered and it possible to return to it as is usual with Internet browsers.</p>
<p lang="en-US">A bonus of the navigator is the possibility to export the graphical view in SVG or PDF format.</p>
<p lang="en-US">The types and elements can be searched and the navigation panel can be hidden to leave all the available space to the schema representation.</p>
<p lang="en-US">The navigator is now accessible directly from the main window if the content declares itself as a XML Schema type file.</p>
<div id="attachment_223" class="wp-caption aligncenter" style="width: 310px"><a href="http://lbell.files.wordpress.com/2011/09/xsd_scalata.png"><img class="size-medium wp-image-223" title="xsd_scalata" src="http://lbell.files.wordpress.com/2011/09/xsd_scalata.png?w=300&#038;h=277" alt="" width="300" height="277" /></a><p class="wp-caption-text">XSD viewer screenshot</p></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/220/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/220/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/220/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=220&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/09/04/qxmledit-gains-a-brand-new-navigator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/09/xsd_scalata.png?w=300" medium="image">
			<media:title type="html">xsd_scalata</media:title>
		</media:content>
	</item>
		<item>
		<title>QXmlEdit 0.5.0: YAXV (Yet Another XSD Viewer)</title>
		<link>http://lbell.wordpress.com/2011/07/25/qxmledit-0-5-0-yaxv-yet-another-xsd-viewer/</link>
		<comments>http://lbell.wordpress.com/2011/07/25/qxmledit-0-5-0-yaxv-yet-another-xsd-viewer/#comments</comments>
		<pubDate>Mon, 25 Jul 2011 20:24:43 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[qxmledit]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=215</guid>
		<description><![CDATA[If it is true that a complex idea can be examined under different prospectives, then a XML Schema viewer can be useful. XML Schema concepts can be modeled with a plain text editor, but QXmlEdit in the 0.5 version can help with a new graphical plugin. What&#8217;s really difficult in such a program is to [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=215&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p lang="en-US">If it is true that a complex idea can be examined under different prospectives, then a XML Schema viewer can be useful. XML Schema concepts can be modeled with a plain text editor, but QXmlEdit in the 0.5 version can help with a new graphical plugin.</p>
<p lang="en-US"><a name="result_box3"></a>What&#8217;s really difficult in such a program is to establish a mapping between the images that the program provides and the concepts that the user has in mind when interacting with them. This mapping is even more difficult if the viewer will be transformed in an editor in some future.</p>
<p lang="en-US"><a name="result_box4"></a>The program needs a cut, it is important to determine which are the main concepts to show and what needs to be removed from the scene. If all the objects defined by the language have the same importance, the scene will be filled with a lot of informations, hiding the basic concepts that the user is trying to model, making the visual editor almost useless compared to a text-based editor.</p>
<p lang="en-US"><a name="result_box5"></a>To achieve this goal, some information, especially those relating to the elements and the types must be automatically and silently changed as the user decides to change the relationship graphically.</p>
<p lang="en-US"><a name="result_box6"></a>A small change in terms of visual representation, such as adding an attribute to an element, has great implications in terms of XSD syntax. When the user decides that an element can have an attribute, the semantic change is very small, but for the scheme it may involve the transformation of a simple type in a complex one.</p>
<p lang="en-US">To access the XSD Viewer in QXmlEdit, load a XSD Schema file in the editor, then use the Tools &gt; Plugins &gt; XSD Viewer menu.<a href="http://lbell.files.wordpress.com/2011/07/xsd.png"><img class="aligncenter size-medium wp-image-216" title="xsd viewer" src="http://lbell.files.wordpress.com/2011/07/xsd.png?w=300&#038;h=219" alt="" width="300" height="219" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/215/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/215/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/215/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=215&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/07/25/qxmledit-0-5-0-yaxv-yet-another-xsd-viewer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2011/07/xsd.png?w=300" medium="image">
			<media:title type="html">xsd viewer</media:title>
		</media:content>
	</item>
		<item>
		<title>Delegate a delegate in a Qt View</title>
		<link>http://lbell.wordpress.com/2011/04/11/delegate-a-delegate-in-a-qt-view/</link>
		<comments>http://lbell.wordpress.com/2011/04/11/delegate-a-delegate-in-a-qt-view/#comments</comments>
		<pubDate>Mon, 11 Apr 2011 20:59:42 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=210</guid>
		<description><![CDATA[The data presentation in a Qt Item View like a TreeView or a TableView is made by means of components that implement a QAbstractItemDelegate interface. Write a custom delegate to gain full control on how the data are rendered forces us to face all the subtle details and intricacy of the measuring and styling of [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=210&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } --></p>
<p lang="en-US">The data presentation in a Qt Item View like a TreeView or a TableView is made by means of components that implement a QAbstractItemDelegate interface.</p>
<p lang="en-US">Write a custom delegate to gain full control on how the data are rendered forces us to face all the subtle details and intricacy of the measuring and styling of graphics items with the risk of producing a component that does not fit well with the style used in the host system. Moreover, speaking in a C++ term, we don&#8217;t know what is the base class that a particular view is using, so we can&#8217;t subclassing it to alter its behavior.</p>
<p lang="en-US">If our needs are limited, for example, to display a decoration over a read only standard item, a simple solution can be to use the existing view delegate to do the hard work, then render the decoration over the painted surface.</p>
<p>We can create a delegate deriving from QAbstractItemDelegate class, inquire the view that we want to manipulate about its actual delegate and store it as an internal variable of the new delegate. Our class can act as a bridge, implementing all the interface functions and the slots of a delegate and redirect incoming calls to the old delegate.</p>
<p lang="en-US">Our class will look like this (some code omitted for clarity)</p>
<p><!-- 		@page { margin: 2cm } 		PRE.cjk { font-family: "DejaVu Sans", monospace } 		P { margin-bottom: 0.21cm } --></p>
<pre><span style="color:#808000;">class</span><span style="color:#c0c0c0;"> </span>ElementItemDelegate<span style="color:#c0c0c0;"> </span><span style="color:#000000;">:</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">public</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QAbstractItemDelegate</span>
<span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">    </span><span style="color:#800080;">Q_OBJECT</span>
<span style="color:#c0c0c0;">    </span><span style="color:#800080;">QAbstractItemDelegate</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>baseDelegate<span style="color:#000000;">;</span>
<span style="color:#808000;">public</span><span style="color:#000000;">:</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">explicit</span><span style="color:#c0c0c0;"> </span>ElementItemDelegate<span style="color:#000000;">(</span><span style="color:#800080;">QAbstractItemDelegate</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>newBaseDelegate<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QObject</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>parent<span style="color:#c0c0c0;"> </span><span style="color:#000000;">=</span><span style="color:#c0c0c0;"> </span><span style="color:#000080;">0</span><span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">virtual</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">~</span>ElementItemDelegate<span style="color:#000000;">();</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">virtual</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QWidget</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span><span style="color:#c0c0c0;"> </span>createEditor<span style="color:#c0c0c0;"> </span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> … </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">const</span><span style="color:#000000;">;</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">virtual</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">bool</span><span style="color:#c0c0c0;"> </span>editorEvent<span style="color:#c0c0c0;"> </span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">virtual</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">void</span><span style="color:#c0c0c0;"> </span>paint<span style="color:#c0c0c0;"> </span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> ... </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">const</span><span style="color:#000000;">;</span>
<span style="color:#000000;">...</span>
<span style="color:#000000;">};

</span><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->At the window creation we can retrieve the actual delegate from e. g. a tree widget and pass it to our delegate:
<span style="color:#808000;">
void</span><span style="color:#c0c0c0;"> </span>MainWindow<span style="color:#000000;">::</span>setUpDelegates<span style="color:#000000;">()</span>
<span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">    </span><span style="color:#800080;">QAbstractItemDelegate</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>oldDelegate<span style="color:#c0c0c0;"> </span><span style="color:#000000;">=</span><span style="color:#c0c0c0;"> </span>treeWidget<span style="color:#000000;">-&gt;</span>itemDelegate<span style="color:#000000;">();</span>
<span style="color:#c0c0c0;">    </span><span style="color:#000000;">...</span>
<span style="color:#c0c0c0;">    </span>ElementItemDelegate<span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>newDelegate<span style="color:#c0c0c0;"> </span><span style="color:#000000;">=</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">new</span><span style="color:#c0c0c0;"> </span>ElementItemDelegate<span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span>oldDelegate<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">this</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">);</span>
<span style="color:#000000;">    ...</span>
<span style="color:#c0c0c0;">    </span>treeWidget<span style="color:#000000;">-&gt;</span>setItemDelegateForColumn<span style="color:#000000;">(</span><span style="color:#000080;">0</span><span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>newDelegate<span style="color:#000000;">);</span>
<span style="color:#000000;">}</span>

Each incoming call to our delegate is then redirected to the existing delegate.
The only method we are interested about is the paint() one. We let the old delegate do the hard work, then we paint:
<!-- 		@page { margin: 2cm } 		PRE.cjk { font-family: "DejaVu Sans", monospace } 		P { margin-bottom: 0.21cm } --><span style="color:#808000;">
void</span><span style="color:#c0c0c0;"> </span>ElementItemDelegate<span style="color:#000000;">::</span>paint<span style="color:#c0c0c0;"> </span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QPainter</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span>painter<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">const</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QStyleOptionViewItem</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">&amp;</span><span style="color:#c0c0c0;"> </span>option<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>
<span style="color:#c0c0c0;">   </span><span style="color:#808000;">const</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QModelIndex</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">&amp;</span><span style="color:#c0c0c0;"> </span>index<span style="color:#c0c0c0;"> </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">const</span>
<span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">    </span><span style="color:#800080;">QStyleOptionViewItemV4</span><span style="color:#c0c0c0;"> </span>option4<span style="color:#000000;">(</span>option<span style="color:#000000;">);</span>
<span style="color:#000000;">    </span><span style="color:#008000;">// </span><span style="color:#008000;">call the default delegate</span>
<span style="color:#c0c0c0;">    </span>baseDelegate<span style="color:#000000;">-&gt;</span>paint<span style="color:#000000;">(</span>painter<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>option<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>index<span style="color:#c0c0c0;"> </span><span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">    </span>Element<span style="color:#c0c0c0;"> </span><span style="color:#000000;">*</span><span style="color:#c0c0c0;"> </span>element<span style="color:#c0c0c0;"> </span><span style="color:#000000;">=</span><span style="color:#c0c0c0;"> </span>Element<span style="color:#000000;">::</span>fromModelIndex<span style="color:#000000;">(</span>index<span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">    </span><span style="color:#808000;">if</span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span>NULL<span style="color:#c0c0c0;"> </span><span style="color:#000000;">!=</span><span style="color:#c0c0c0;"> </span>element<span style="color:#c0c0c0;"> </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">        </span><span style="color:#800080;">QRect</span><span style="color:#c0c0c0;"> </span>markRect<span style="color:#c0c0c0;"> </span><span style="color:#000000;">=</span><span style="color:#c0c0c0;"> </span>option<span style="color:#000000;">.</span>rect<span style="color:#000000;">;</span>
<span style="color:#c0c0c0;">        </span><span style="color:#808000;">if</span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span>option4<span style="color:#000000;">.</span>viewItemPosition<span style="color:#c0c0c0;"> </span><span style="color:#000000;">==</span><span style="color:#c0c0c0;"> </span><span style="color:#800080;">QStyleOptionViewItemV4</span><span style="color:#000000;">::</span>Beginning<span style="color:#c0c0c0;"> </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">            </span>markRect<span style="color:#000000;">.</span>setLeft<span style="color:#000000;">(</span><span style="color:#000080;">0</span><span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">        </span><span style="color:#000000;">}</span>
<span style="color:#c0c0c0;">        </span>markRect<span style="color:#000000;">.</span>setWidth<span style="color:#000000;">(</span>WIDTH_BAND<span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">        </span><span style="color:#808000;">if</span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span>element<span style="color:#000000;">-&gt;</span>saved<span style="color:#000000;">()</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">            </span>painter<span style="color:#000000;">-&gt;</span>fillRect<span style="color:#000000;">(</span>markRect<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>savedBrush<span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">        </span><span style="color:#000000;">}</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">else</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">if</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">(</span><span style="color:#c0c0c0;"> </span>element<span style="color:#000000;">-&gt;</span>edited<span style="color:#000000;">()</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">)</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">            </span>painter<span style="color:#000000;">-&gt;</span>fillRect<span style="color:#000000;">(</span>markRect<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>editedBrush<span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">        </span><span style="color:#000000;">}</span><span style="color:#c0c0c0;"> </span><span style="color:#808000;">else</span><span style="color:#c0c0c0;"> </span><span style="color:#000000;">{</span>
<span style="color:#c0c0c0;">            </span>painter<span style="color:#000000;">-&gt;</span>fillRect<span style="color:#000000;">(</span>markRect<span style="color:#000000;">,</span><span style="color:#c0c0c0;"> </span>normalBrush<span style="color:#000000;">);</span>
<span style="color:#c0c0c0;">        </span><span style="color:#000000;">}</span>
<span style="color:#c0c0c0;">    </span><span style="color:#000000;">}</span>
<span style="color:#000000;">}</span></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/210/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/210/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/210/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=210&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/04/11/delegate-a-delegate-in-a-qt-view/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>
	</item>
		<item>
		<title>In difesa della scuola pubblica italiana</title>
		<link>http://lbell.wordpress.com/2011/03/13/in-difesa-della-scuola-pubblica-italiana/</link>
		<comments>http://lbell.wordpress.com/2011/03/13/in-difesa-della-scuola-pubblica-italiana/#comments</comments>
		<pubDate>Sun, 13 Mar 2011 22:00:03 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=203</guid>
		<description><![CDATA[Un politico influente, attualmente in crisi, ha cercato di ingraziarsi i propri sostenitori attaccando la scuola pubblica italiana. Non si può tacere di fronte ad una cosa del genere; la convinzione che la scuola pubblica appartenga ad una parte politica e come tale vada combattuta, è preoccupante. Per fortuna sabato si è tenuta una manifestazione [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=203&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="it-IT">Un politico influente, attualmente in crisi, ha cercato di ingraziarsi i propri sostenitori attaccando la scuola pubblica italiana.</p>
<p lang="it-IT">Non si può tacere di fronte ad una cosa del genere; la convinzione che la scuola pubblica appartenga ad una parte politica e come tale vada combattuta, è preoccupante.</p>
<p lang="it-IT">Per fortuna sabato si è tenuta una manifestazione in favore della scuola pubblica in diverse città italiane</p>
<p lang="it-IT">Alla manifestazione cui ho assistito ho visto solo presone che sembravano appartenere alla categoria dei docenti e mi sono chiesto dove fossero gli altri e perché la cosa non interessasse tutti.</p>
<p lang="it-IT">La vista dei professori che indossavano sulle spalle la bandiera italiana mi ha fatto ricordare di quando da piccolo vedevo i lavoratori vestire nello stesso modo la bandiera rossa, ed ho realizzato quanto abbiamo perso in questi anni se la bandiera nazionale è diventata solo uno stendardo di parte.</p>
<p lang="it-IT">Ma solo ai docenti deve interessare questo argomento?</p>
<p lang="it-IT">Fra i primi danneggiati da una scuola elitaria ci sono gli imprenditori che vedranno ridotto, ad esempio, il numero di ingegneri bravi e motivati tra cui reclutare i nuovi assunti dato che si restringerà la base di chi può permettersi di frequentare l&#8217;università. Saranno costretti a reclutare gli ingegneri all&#8217;estero, in Paesi (Cina, &#8230;) in cui comunque la formazione è delegata alla scuola pubblica.</p>
<p lang="it-IT">L&#8217;idea della scuola pubblica sopravvisse perfino alla restaurazione sopraggiunta alla fine del periodo napoleonico, perché ci si accorse che è un valore.</p>
<p lang="it-IT">La scuola pubblica è una conquista e non un danno per il Paese.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/203/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/203/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/203/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=203&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2011/03/13/in-difesa-della-scuola-pubblica-italiana/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>
	</item>
		<item>
		<title>Explore a XML file structure with QXmlEdit</title>
		<link>http://lbell.wordpress.com/2010/12/22/explore-a-xml-file-structure-with-qxmledit/</link>
		<comments>http://lbell.wordpress.com/2010/12/22/explore-a-xml-file-structure-with-qxmledit/#comments</comments>
		<pubDate>Wed, 22 Dec 2010 22:08:41 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>
		<category><![CDATA[qxmledit]]></category>
		<category><![CDATA[xml]]></category>
		<category><![CDATA[qt]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=191</guid>
		<description><![CDATA[One of QXmlEdit peculiar characteristics is the possibility to change the quantity and the type of informations shown on a XML file to examine it from various prospectives. If the XML file is very large and complex it happens to focus on some details missing the big picture. Let us take for example a Qt [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=191&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">One of QXmlEdit peculiar characteristics is the possibility to change the quantity and the type of informations shown on a XML file to examine it from various prospectives.</span></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">If the XML file is very large and complex it happens to focus on some details missing the big picture. Let us take for example a Qt user interface file, we can face the following situation:</span></p>
<p lang="en-US"><span style="font-family:Arial,sans-serif;"><br />
</span></p>
<p><img class="aligncenter size-full wp-image-193" title="ii1" src="http://lbell.files.wordpress.com/2010/12/ii1.png?w=544&#038;h=712" alt="" width="544" height="712" /></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US">&nbsp;</p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">it is very difficult, at least for me, to follow the widgets&#8217;s structure or differentiate between them. As a first help we can activate a display style that can list in the space reserved to element tag name, the value of one or more attributes that can characterize the element itself. The predefined style provided with QXmlEdit installer displays near to the element tag, the value of &#8216;name&#8217;, &#8216;id&#8217; or &#8216;build&#8217; attributes, if any. The styles can be created and installed by the end users; they can be applied using the &#8216;paint can&#8217; icon button at the bottom right of the data tree.</span></p>
<p lang="en-US"><span style="font-family:Arial,sans-serif;"><br />
</span></p>
<p><img class="aligncenter size-full wp-image-194" title="ii2" src="http://lbell.files.wordpress.com/2010/12/ii2.png?w=203&#038;h=134" alt="" width="203" height="134" /></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">The style makes the visualization more intuitive and the data structure stand out very quickly.</span></p>
<p><img class="aligncenter size-full wp-image-195" title="ii3" src="http://lbell.files.wordpress.com/2010/12/ii3.png?w=554&#038;h=727" alt="" width="554" height="727" /></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US">&nbsp;</p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">To solve the problem of seeing the element text together with his tag, we can activate the compact view visualization as shown in the following screenshot. The text, if present and if no attributes exist, appears in the column reserved to the attributes  with a different color.</span></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;"><br />
</span></p>
<p><img class="aligncenter size-full wp-image-196" title="ii4" src="http://lbell.files.wordpress.com/2010/12/ii4.png?w=340&#038;h=292" alt="" width="340" height="292" /></p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US">&nbsp;</p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US"><span style="font-family:Verdana,sans-serif;">We can have an overview of the XML file while maintaining the desired level of detail.</span></p>
<p lang="en-US"><span style="font-family:Arial,sans-serif;"><br />
</span></p>
<p><img class="aligncenter size-full wp-image-197" title="ii5" src="http://lbell.files.wordpress.com/2010/12/ii5.png?w=545&#038;h=719" alt="" width="545" height="719" /></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/191/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/191/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/191/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=191&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2010/12/22/explore-a-xml-file-structure-with-qxmledit/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/12/ii1.png" medium="image">
			<media:title type="html">ii1</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/12/ii2.png" medium="image">
			<media:title type="html">ii2</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/12/ii3.png" medium="image">
			<media:title type="html">ii3</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/12/ii4.png" medium="image">
			<media:title type="html">ii4</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/12/ii5.png" medium="image">
			<media:title type="html">ii5</media:title>
		</media:content>
	</item>
		<item>
		<title>Generate Flex Code from Balsamiq Mockup Sources</title>
		<link>http://lbell.wordpress.com/2010/09/24/generate-flex-code-from-balsamiq-mockup-sources/</link>
		<comments>http://lbell.wordpress.com/2010/09/24/generate-flex-code-from-balsamiq-mockup-sources/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 22:07:25 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=182</guid>
		<description><![CDATA[Having the need to generate an application skeleton after having created the mockup using Balsamiq (http://www.balsamiq.com), and to poke into its file format, as explained in the page http://balsamiq.com/products/mockups/help/bmml, I wrote a plugin for my Open Source project QXmlEdit. It is very easy to use, but you should remember that it is a very simple [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=182&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- p { margin-bottom: 0.21cm; }a:link {  } -->Having the need to generate an application skeleton after having created the mockup using Balsamiq (<a href="http://www.balsamiq.com/">http://www.balsamiq.com</a>), and to poke into its file format, as explained in the page <a href="http://balsamiq.com/products/mockups/help/bmml">http://balsamiq.com/products/mockups/help/bmml</a>, I wrote a plugin for my Open Source project QXmlEdit.</p>
<p>It is very easy to use, but you should remember that it is a very simple tool and not a full fledged IDE.</p>
<p lang="en-US">The plugin can be activated via  &#8216;Tools&#8217; menu, as in the following screenshot:</p>
<p lang="en-US">﻿</p>
<p><!-- p { margin-bottom: 0.21cm; } --></p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2010/09/balsamiq1.png"></a><a href="http://lbell.files.wordpress.com/2010/09/balsamiq11.png"><img class="aligncenter size-full wp-image-186" title="balsamiq1" src="http://lbell.files.wordpress.com/2010/09/balsamiq11.png?w=483&#038;h=375" alt="" width="483" height="375" /></a></p>
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2010/09/balsamiq1.png"></a>The plugin window is divided in two: the upper part is dedicated to the Balsamiq sources to translate, the bottom one contains the destination directory where a MXML Application file is generated for each selected source file.</p>
<p lang="en-US">
<p lang="en-US"><a href="http://lbell.files.wordpress.com/2010/09/balsamiq2.png"><img class="aligncenter size-full wp-image-184" title="balsamiq2" src="http://lbell.files.wordpress.com/2010/09/balsamiq2.png?w=526&#038;h=511" alt="" width="526" height="511" /></a></p>
<p>The translation is done by transforming the source using templates that can refer original attributes or calculated fields.</p>
<p lang="en-US">Data bound controls are supported by generating data sources as mx:Array containing mx:Object in a global section.</p>
<p lang="en-US">Not all Balsamiq controls are supported, only a subset of most commonly used ones, controls not supported are converted to mx:Label</p>
<p lang="en-US">
<p lang="en-US">List of supported controls:</p>
<ul>
<li>
<p lang="en-US">Button</p>
</li>
<li>
<p lang="en-US">Label</p>
</li>
<li>
<p lang="en-US">LinkBar</p>
</li>
<li>
<p lang="en-US">DataGrid</p>
</li>
<li>
<p lang="en-US">List</p>
</li>
<li>
<p lang="en-US">TabBar</p>
</li>
<li>
<p lang="en-US">VRule</p>
</li>
<li>
<p lang="en-US">HRule</p>
</li>
<li>
<p lang="en-US">TextInput</p>
</li>
<li>
<p lang="en-US">ComboBox</p>
</li>
<li>
<p lang="en-US">TextArea</p>
</li>
<li>
<p lang="en-US">Paragraph</p>
</li>
<li>
<p lang="en-US">CheckBox</p>
</li>
<li>
<p lang="en-US">RadioButton</p>
</li>
<li>
<p lang="en-US">Tree</p>
</li>
</ul>
<p lang="en-US">
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/182/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/182/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/182/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=182&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2010/09/24/generate-flex-code-from-balsamiq-mockup-sources/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/09/balsamiq11.png" medium="image">
			<media:title type="html">balsamiq1</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2010/09/balsamiq2.png" medium="image">
			<media:title type="html">balsamiq2</media:title>
		</media:content>
	</item>
		<item>
		<title>Sfruttare il system tray per controllare i job di KDE</title>
		<link>http://lbell.wordpress.com/2009/11/16/sfruttare-il-system-tray-per-controllare-i-job-di-kde/</link>
		<comments>http://lbell.wordpress.com/2009/11/16/sfruttare-il-system-tray-per-controllare-i-job-di-kde/#comments</comments>
		<pubDate>Mon, 16 Nov 2009 22:07:47 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[kde4]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[Programmazione]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=169</guid>
		<description><![CDATA[Una delle funzionalità offerte da KDE4 a sviluppatori ed utenti è quella di gestire i lavori a lungo termine delle applicazioni mediante un componente del vassoio di sistema. L&#8217;infrastruttura mette a disposizione dell&#8217;utente un unica locazione dalla quale può controllare l&#8217;andamento delle operazioni, opzionalmente sospenderle, sbloccarle o controllarne l&#8217;esito anche dopo il loro termine. Si [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=169&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		TT { font-family: "DejaVu Sans Mono", monospace } -->Una delle funzionalità offerte da KDE4 a sviluppatori ed utenti è quella di gestire i lavori a lungo termine delle applicazioni mediante un componente del vassoio di sistema. L&#8217;infrastruttura mette a disposizione dell&#8217;utente un unica locazione dalla quale può controllare l&#8217;andamento delle operazioni, opzionalmente sospenderle, sbloccarle o controllarne l&#8217;esito anche dopo il loro termine. Si evita così che ogni applicazione che intende avvalersi di questa funzionalità debba implementare una interfaccia di controllo. Dal punto di vista del programmatore, la fatica di imparare una nuova serie di API è ripagato dal fatto che è l&#8217;ambiente a prendersi in carico il compito di interagire con l&#8217;utilizzatore, sia per quello che riguarda l&#8217;aspetto funzionale, sia per l&#8217;interfaccia utente. Ovviamente i soli lavori di cui dovrà essere notificato lo stato di avanzamento mediante questa caratteristica sono solo quelli a lungo termine, per evitare di confondere l&#8217;utente con una miriade di messaggi irrilevanti.</p>
<p style="text-align:center;"><a href="http://lbell.files.wordpress.com/2009/11/screenshot_0041.png"><img class="aligncenter size-medium wp-image-174" title="system tray" src="http://lbell.files.wordpress.com/2009/11/screenshot_0041.png?w=300&#038;h=211" alt="" width="300" height="211" /></a></p>
<p style="text-align:center;">
<p>Vediamo ora come si può sfruttare questa funzionalità:</p>
<p>Le applicazioni che intendono sfruttare il sistema di notifica devono incapsulare direttamente o indirettamente l&#8217;attività in una struttura KIO::Job, ad esempio derivando da essa la nostra classe di esempio <tt>KJobTest</tt>.</p>
<pre><tt>	#include &lt;kjob.h&gt;</tt>
<tt>	class KJobTest : public KIO::Job</tt></pre>
<p>Se si desidera che l&#8217;utente, una volta comparsa la notifica, possa mettere i lavori in pausa, riprenderli o annullarli occorre, nella nostra classe, chiamare la funzione</p>
<pre>    setCapabilities()</pre>
<p>cui va passato come argomento un insieme di flag che ne determinano il comportamento. Con il valori <tt>Kjob::Suspendable</tt> si concede all&#8217;utente la possibilità di sospendere un lavoro, con <tt>KJob::Killable</tt> anche di terminarlo. Per abilitare entrambe le funzionalità, scriveremo:</p>
<pre>    setCapabilities(KJob::Killable|KJob::Suspendable);</pre>
<p>Quando si è pronti per presentare il job all&#8217;utente, lo si deve registrare presso una struttura globale:</p>
<pre>	KIO::getJobTracker()-&gt;registerJob(m_jobTest);</pre>
<p>Da questo punto in poi il job è visibile all&#8217;utente. Emettendo il segnale &#8216;<tt>infoMessage</tt>&#8216; si può forzare il pannello a mostrare la descrizione desiderata per indicare il proprio job.</p>
<p>Il job può essere attivato in modalità sincrona o asincrona. Nel primo caso tutto quello che dovrà fare l&#8217;applicazione per gestire il job sarà richiamarne il metodo &#8216;<tt>exec</tt>&#8216;, definito nella classe base, che restituirà l&#8217;esito mediante un valore booleano. Dietro le quinte verrà attivato un loop di messaggi nascosto. Riporto l&#8217;esempio di utilizzo definito nella documentazione KDE:</p>
<pre>void SomeClass::methodWithSynchronousJobCall()
 {
   KJob *job = someoperation( some parameters );
   if ( !job-&gt;exec() )
   {
       // An error occurred
   }
   else
   {
       // Do something
   }
 }</pre>
<p>Nel caso si intenda utilizzare il job in modo asincrono, metodo preferito per la gestione di operazioni a lungo termine, occorre attivare il job attraverso il metodo start(), richiamato in modo nascosto anche nel caso sincrono, e mettersi in attesa dei risultati collegando il segnale &#8216;<tt>result</tt>&#8216; ad uno slot. Ecco l&#8217;esempio relativo, sempre tratto dalla documentazione KDE:</p>
<pre> void SomeClass::methodWithAsynchronousJobCall()
 {
   KJob * job = someoperation( some parameters );
   connect( job, SIGNAL(result(KJob*)), this, SLOT(handleResult(KJob*)) );
   job-&gt;start();
 }
 void SomeClass::handleResult( KJob *job )
 {
   if ( job-&gt;error() )
       doSomething();
 }</pre>
<p>Nel metodo start(), da reimplementare nella nostra classe derivata da KJob, occorre utilizzare un meccanismo asincrono, come ad esempio un timer di tipo oneShot, per innescare il job, per evitare che un&#8217;attivazione direttamente nella funzione start() provochi un malfunzionamento della gestione sincrona del job attraverso la funzione exec(), per motivi derivanti dall&#8217;implementazione della funzione exec stessa. Se abbiamo deciso di non utilizzare mai l&#8217;interfaccia sincrona potrebbe sembrare una precauzione inutile, ma scrivendo codice che si deve integrare in un ambiente, occorre sempre rispettarne i dettami.</p>
<p>Quando l&#8217;utente decide di intervenire nella vita del job cambiandone lo stato, il pannello  del vassoio di sistema richiamerà metodi <tt>doSuspend()</tt>, <tt>doResume()</tt> e <tt>doKill()</tt> del nostro job, mediante i quali si potranno realizzare le dovute azioni.</p>
<p>Durante il suo ciclo di vita, il job può inviare al pannello segnali riguardo il proprio stato o la percentuale di avanzamento.</p>
<p>Emettendo il seguente segnale:</p>
<pre>emit infoMessage(job, messageText, messageRichText );</pre>
<p>si può provocare la comparsa della scritta relativa allo stato puntuale del job. Allo stesso modo è possibile inviare informazioni relative alla velocità attuale ed alla unità di misura utilizzata, nel caso sia compresa tra quelle dell&#8217;enumeratore &#8216;Unit&#8217; di KJob.</p>
<p>Come esempio di utilizzo possiamo utilizzare un semplice programma, jobsample, mediante il quale è possibile provare le tecniche esposte, configurare i parametri principali a disposizione di un job ed osservare i risultati.</p>
<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } -->I sorgenti di jobsample sono disponibili a questo indirizzo:</p>
<p><a href="http://www.tsc4.com/lbell/presentazioni/src/jobsample.tgz">http://www.tsc4.com/lbell/presentazioni/src/jobsample.tgz</a></p>
<p>Finestra principale di jobsample:</p>
<p><img class="aligncenter size-medium wp-image-171" title="jobsample" src="http://lbell.files.wordpress.com/2009/11/screenshot_005.png?w=300&#038;h=241" alt="" width="300" height="241" /></p>
<p>job sample in esecuzione:</p>
<p><a href="http://lbell.files.wordpress.com/2009/11/screenshot_006.png"><img class="aligncenter size-medium wp-image-172" title="system tray" src="http://lbell.files.wordpress.com/2009/11/screenshot_006.png?w=282&#038;h=300" alt="" width="282" height="300" /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/169/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/169/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/169/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=169&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2009/11/16/sfruttare-il-system-tray-per-controllare-i-job-di-kde/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2009/11/screenshot_0041.png?w=300" medium="image">
			<media:title type="html">system tray</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2009/11/screenshot_005.png?w=300" medium="image">
			<media:title type="html">jobsample</media:title>
		</media:content>

		<media:content url="http://lbell.files.wordpress.com/2009/11/screenshot_006.png?w=282" medium="image">
			<media:title type="html">system tray</media:title>
		</media:content>
	</item>
		<item>
		<title>Compilare KDE 4.4 con Qt4.6 e kdesvn-build</title>
		<link>http://lbell.wordpress.com/2009/10/26/compilare-kde-4-4-con-qt4-6-e-kdesvn-build/</link>
		<comments>http://lbell.wordpress.com/2009/10/26/compilare-kde-4-4-con-qt4-6-e-kdesvn-build/#comments</comments>
		<pubDate>Mon, 26 Oct 2009 21:55:20 +0000</pubDate>
		<dc:creator>lbell</dc:creator>
				<category><![CDATA[kde4]]></category>
		<category><![CDATA[Open Source]]></category>
		<category><![CDATA[QT]]></category>

		<guid isPermaLink="false">http://lbell.wordpress.com/?p=165</guid>
		<description><![CDATA[Con il passaggio del trunk di KDE a Qt4.6 avvenuto il 10 ottobre non è più possibile utilizzare il sistema di build basato su kdesvn-build 1.9.1, dato che i sorgenti delle librerie Qt sono affidati a git e kdesvn-build si interfaccia con Subversion, occorrerebbe gestire manualmente il modulo qt-copy. Occorrerebbe, perché è appena stata rilasciata [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=165&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><!-- 		@page { margin: 2cm } 		P { margin-bottom: 0.21cm } 		A:link { so-language: zxx } -->Con il passaggio del trunk di KDE a Qt4.6 avvenuto il 10 ottobre non è più possibile utilizzare il sistema di build basato su kdesvn-build 1.9.1, dato che i sorgenti delle librerie Qt sono affidati a git e kdesvn-build si interfaccia con Subversion, occorrerebbe gestire manualmente il modulo qt-copy. Occorrerebbe, perché è appena stata rilasciata la versione 1.10, che è in grado di gestire git per il solo  modulo qt-copy. E&#8217; disponibile nel sito ufficiale da un paio di giorni e nel repository svn di KDE in branches/work/kdesvn-build-1.10. Per usarlo, occorre modificare la sezione relativa al modulo qt-copy nel file .kdesvn-build.rc nel modo seguente nella sezione dedicata a git:</p>
<pre>module qt-copy
	#opzioni di compilazione
	configure-flags -system-zlib -qt-gif -system-libjpeg -system-libpng \
			-no-exceptions -fast -debug -dbus \
	            -no-phonon # Phonon built separately
	make-options -j2

	# opzioni di gestione git
	branch 4.6-stable-patched
	repository http://git.gitorious.org/+kde-developers/qt/kde-qt.git
end module</pre>
<p>Sito di kdesvn-build:</p>
<p><a href="http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php">http://kdesvn-build.kde.org/releases/kdesvn-build-1.10.php</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/lbell.wordpress.com/165/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/lbell.wordpress.com/165/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/lbell.wordpress.com/165/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=lbell.wordpress.com&amp;blog=63255&amp;post=165&amp;subd=lbell&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://lbell.wordpress.com/2009/10/26/compilare-kde-4-4-con-qt4-6-e-kdesvn-build/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/92ab5e92e556e729accbe3b435f54462?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">lbell</media:title>
		</media:content>
	</item>
	</channel>
</rss>
