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

<channel>
	<title>iLinux.it</title>
	<atom:link href="http://www.ilinux.it/content/feed" rel="self" type="application/rss+xml" />
	<link>http://www.ilinux.it/content</link>
	<description>Crossreference Linux - OSX</description>
	<lastBuildDate>Tue, 27 Sep 2011 09:24:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Monitor Network Traffic in Linux</title>
		<link>http://www.ilinux.it/content/monitor-network-traffic-in-linux.html</link>
		<comments>http://www.ilinux.it/content/monitor-network-traffic-in-linux.html#comments</comments>
		<pubDate>Tue, 27 Sep 2011 09:23:50 +0000</pubDate>
		<dc:creator>giampanov</dc:creator>
				<category><![CDATA[Redazionale]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[tcpip]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=202</guid>
		<description><![CDATA[Della serie: le performance sotto controllo. Un altro articolo dello stesso autore del precedente nel quale vengono evidenziate le caratteristiche di alcuni tool specifici per il monitoring della rete. Anche in questo caso i tool sono per piattaforma Linux in genere, quindi non ci sono limitazioni di tipologia. Se abbiamo quindi l&#8217;obiettivo di verificare cosa [...]]]></description>
			<content:encoded><![CDATA[<p>Della serie: le performance sotto controllo. Un altro articolo dello stesso autore del precedente nel quale<span id="more-202"></span> vengono evidenziate le caratteristiche di alcuni tool specifici per il monitoring della rete.</p>
<p>Anche in questo caso i tool sono per piattaforma Linux in genere, quindi non ci sono limitazioni di tipologia.</p>
<p>Se abbiamo quindi l&#8217;obiettivo di verificare <em><strong>cosa e quanto</strong></em> inviamo sulla rete, diamo una letta al link che segue e ci faremo una chiara idea.</p>
<p>Buona lettura.</p>
<p><a href="http://techthrob.com/2010/07/26/how-to-monitor-network-traffic-in-linux/">How to Monitor Network Traffic in Linux | Techthrob.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/monitor-network-traffic-in-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Monitoring delle Performance In Linux</title>
		<link>http://www.ilinux.it/content/monitoring-delle-performance-in-linux.html</link>
		<comments>http://www.ilinux.it/content/monitoring-delle-performance-in-linux.html#comments</comments>
		<pubDate>Tue, 27 Sep 2011 09:14:22 +0000</pubDate>
		<dc:creator>giampanov</dc:creator>
				<category><![CDATA[Redazionale]]></category>
		<category><![CDATA[device]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[network]]></category>
		<category><![CDATA[tcp]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=199</guid>
		<description><![CDATA[Questo articolo suggerisce alcuni strumenti utili per la gestione delle performance in Linux. Ci sono indicazione per l&#8217;installazione su macchine Linux Fedora-like e Ubuntu-like. Chi non ha mai avuto bisogno di controllare il flusso di dati verso destinazioni di rete o da applicazioni attive o verso i device interni? Bene, in questo articolo vengono trattati [...]]]></description>
			<content:encoded><![CDATA[<p>Questo articolo suggerisce alcuni strumenti utili per la gestione delle performance in Linux. Ci sono indicazione per l&#8217;installazione su macchine Linux Fedora-like e Ubuntu-like.</p>
<p>Chi non ha mai avuto bisogno di controllare <span id="more-199"></span>il flusso di dati verso destinazioni di rete o da applicazioni attive o verso i device interni?</p>
<p>Bene, in questo articolo vengono trattati tools utili a queste attività.</p>
<p>Buona lettura</p>
<p><a href="http://techthrob.com/2010/07/21/three-apps-for-monitoring-performance-in-linux/">Three Apps For Monitoring Performance In Linux | Techthrob.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/monitoring-delle-performance-in-linux.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ksplice, no reboot!</title>
		<link>http://www.ilinux.it/content/ksplice-no-reboot.html</link>
		<comments>http://www.ilinux.it/content/ksplice-no-reboot.html#comments</comments>
		<pubDate>Thu, 02 Sep 2010 11:52:27 +0000</pubDate>
		<dc:creator>giampanov</dc:creator>
				<category><![CDATA[Sistemi]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[ksplice]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=156</guid>
		<description><![CDATA[Non è una novità assoluta, visto che è già da qualche tempo che viene prodotto e utilizzato: ksplice è un servizio (a pagamento) offerto da ksplice.com che permette di tenere aggiornato il proprio kernel con l&#8217;ultimissima release (si parla di ore non giorni) senza, e sottolineo SENZA, la necessita del reboot. La cosa doppiamente interessante [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/09/ksplice-logo.png"><img class="alignright size-full wp-image-159" title="ksplice-logo" src="http://www.ilinux.it/content/wp-content/uploads/2010/09/ksplice-logo-e1283428112938.png" alt="" width="181" height="58" /></a>Non è una novità assoluta, visto che è già da qualche tempo che viene prodotto e utilizzato: ksplice è un servizio (a pagamento) offerto da <a href="http://www.ksplice.com" target="_blank">ksplice.com</a> che permette di tenere aggiornato il proprio kernel con <span id="more-156"></span>l&#8217;ultimissima release (si parla di ore non giorni) senza, e sottolineo SENZA, la necessita del reboot.</p>
<p>La cosa doppiamente interessante è che per Ubuntu tale servizio è gratuito ( da oggi è gratuito anche per Fedora 13 ).</p>
<p>Questo meccanismo consente di eliminare uno degli ultimi retaggi negli aggiornamenti windowsiani: aggiornamento = riavvio!</p>
<p>La quasi totalità degli update di sistema viene fatta ormai senza la necessità del riavvio e questo servizio consente di eliminare quindi l&#8217;ultimo ostacolo: l&#8217;aggiornamento del kernel.</p>
<p>Ora, a parte l&#8217;eliminazione del retaggio, quando è utile? Quando è necessario avere il server on-line costantemente, evitando disservizi ma soprattutto evitando che il riavvio provochi conseguenze su server terzi collegati, in qualche modo, a quello in aggiornamento.</p>
<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/09/ksplice-pricing.png"><img class="aligncenter size-medium wp-image-160" title="ksplice-pricing" src="http://www.ilinux.it/content/wp-content/uploads/2010/09/ksplice-pricing-300x177.png" alt="" width="300" height="177" /></a>I prezzi sono abbastanza contenuti ed il sito aiuta a valutare l&#8217;impatto della spesa con un&#8217;analisi chiara di costi/benefici.</p>
<p>Siamo vicini oramai ai server ever-on-line?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/ksplice-no-reboot.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ho visto cose &#8230;</title>
		<link>http://www.ilinux.it/content/ho-visto-cose.html</link>
		<comments>http://www.ilinux.it/content/ho-visto-cose.html#comments</comments>
		<pubDate>Tue, 31 Aug 2010 09:28:24 +0000</pubDate>
		<dc:creator>giampanov</dc:creator>
				<category><![CDATA[Social Life]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=149</guid>
		<description><![CDATA[&#8220;&#8230;che voi umani&#8230;&#8221;, frase nella storia del cinema (Blade Runner) che riprendo per lo stupore suscitatomi dallo scoprire che c&#8217;è qualcuno &#8220;normale&#8221; che usa Linux. Non è più (lo so, tutti dicono così, ma non ci credo &#8230;) un sistema operativo per i &#8216;Server&#8217; o per il &#8216;Network Service&#8217;. Lo usa anche un tizio per [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/blade_runner_1_17.jpg"><img class="alignright size-thumbnail wp-image-150" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/blade_runner_1_17-150x150.jpg" alt="" width="150" height="150" /></a>&#8220;&#8230;che voi umani&#8230;&#8221;, frase nella storia del cinema (Blade Runner) che riprendo per lo stupore suscitatomi dallo scoprire che c&#8217;è qualcuno &#8220;normale&#8221; che usa Linux.</p>
<p><span id="more-149"></span>Non è più (lo so, tutti dicono così, ma non ci credo &#8230;) un sistema operativo per i &#8216;Server&#8217; o per il &#8216;Network Service&#8217;. Lo usa anche un tizio per la riproduzione di tracce audio di uno spettacolo teatrale amatoriale. Quindi parlo di un &#8216;non tecnico&#8217;. Almeno dal punto di vista informatico (e forse anche in altro,  <img src='http://www.ilinux.it/content/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  &#8230; comunque &#8230;) . E&#8217; vero però che trattasi di una persona abbastanza giovane. Ma nemmeno tanto. Comunque sono rimasto stupito.</p>
<p>La cosa, almeno per come la vedo io, ha numerosi risvolti. Uno è che il &#8220;Player Audio&#8221; del notebook non è più un applicazione di Windows. Il &#8220;Player Audio&#8221; è una cosa indipendente dal sistema operativo. Ed è una vittoria. Il secondo, ovvio, risvolto è che sui notebook gira anche (ed in genere più velocemente) anche qualcosa che è diverso da Windows. Ed è un&#8217;altra vittoria.</p>
<p>Lo so che queste belle cose sono di pubblico dominio. Ma non ci credo. Non credo che tutta questa diffusione di Linux sui notebook, sui desktop, sui palmari (?!?) sia così capillarmente vera. Raramente le persone con cui ho contatti non lavorativi usano Linux al di fuori dell&#8217;ufficio, ammesso che sia consentito/autorizzato/richiesto tale uso lì. <a href="http://www.heatandcool.com/Ductless-Air-Conditioner-Mini-Split-Air-Conditioning-s/338.htm" rel="dofollow">Mini Split</a> . Continua ad apparire un ripiego. Ti dicono: &#8220;Ah, Linux. No, sul mio PC non gira. Poi perderei la garanzia.&#8221; Oppure: &#8220;Ma a te ci gira Premiere?&#8221;. Come se fossero tecnici di post-produzione della Warner Bros.</p>
<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/ubuntu-aqua-dreams-400x300.jpg"><img class="alignleft size-medium wp-image-151" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/ubuntu-aqua-dreams-400x300-300x225.jpg" alt="" width="300" height="225" /></a>La &#8220;disinformazione misculturale&#8221; informatica regna ancora sovrana sulla maggior parte della gente comune. E&#8217; ancora un target pubblicitario di Microsoft il far credere che Windows &#8220;è&#8221; il PC: il resto è, passatemi il termine,  una castrazione.</p>
<p>Quindi, pensate la sorpresa nel vedere tale innovazione. Come se dei tabù ancestrali d&#8217;un tratto cadessero senza motivo. Beh, certamente c&#8217;è una soddisfazione: pensare che ci sarà una persona di meno che domani mi chiamerà dicendo che il computer si è bloccato mentra navigava su Internet e chiedendomi &#8220;cosa devo fare?&#8221;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/ho-visto-cose.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ancora sulla competenza</title>
		<link>http://www.ilinux.it/content/ancora-sulla-competenza.html</link>
		<comments>http://www.ilinux.it/content/ancora-sulla-competenza.html#comments</comments>
		<pubDate>Fri, 27 Aug 2010 12:41:31 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Social Life]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=131</guid>
		<description><![CDATA[Lâutente Macintosh acquisisce il concetto di âintegrazioneâ sin da âpiccoloâ; ne beve assieme al latte. Ma lâutente medio Ã¨ stato cresciuto allâopposto di questo concetto, in un mondo in cui per avere qualcosa di piÃ¹ si deve cambiare, e non creare sinergie ed integrazioni.Abbiamo giÃ  accennato della âconfusione da iPodâ, di quella distorsione della comprensione [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/iphone-nero.png"><img class="alignleft size-full wp-image-140" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/iphone-nero.png" alt="" width="171" height="195" /></a></p>
<p><span style="font-size: medium"><em>Lâutente Macintosh acquisisce il concetto di âintegrazioneâ sin da âpiccoloâ; ne beve assieme al latte.</em></span></p>
<p><span style="font-size: medium"><em>Ma lâutente medio Ã¨ stato cresciuto allâopposto di questo concetto, in un mondo in cui per avere qualcosa di piÃ¹ si deve cambiare, e non creare sinergie ed integrazioni.<span id="more-131"></span></em>Abbiamo giÃ  accennato della âconfusione da iPodâ, di quella distorsione della comprensione che capita al neo possessore di iPod che non sia un Mac-user. (cfr. âSiamo davvero competentiâ)</span></p>
<p><span style="font-size: medium">Ma per quei non Mac-user neo possessori di iPhone (Grazie Babbo Natale !) si puÃ² parlare di âpanico da iPhoneâ. La canzone non cambia se si parla di iPad.</span></p>
<p><span style="font-size: medium">Per tutti questi nuovi possessori di questi apparati le prime ore di vita del proprio gioiello tecnologico devono essere un vero e proprio âinfernoâ, tale da farli prendere dal suddetto panico e voler correre urgentemente dal rivenditore o allâApple Store piÃ¹ vicino (!)</span></p>
<p><span style="font-size: medium">Contrariamente a qualsiasi altro âmobileâ, lâiPhone non Ã¨ un cellulare con funzioni avanzate, ma Ã¨ un Mac con funzioni âmobileâ e questo non Ã¨ un concetto facile da digerire.</span></p>
<p><span style="font-size: medium">Non Ã¨ facile da capire come mai dunque lâiPhone non si attiva semplicemente inserendo la scheda SIM e accendendolo. Non si capisce poi perchÃ© sia âvuotoâ di immagini e musica e suonerie musicanti (!). Non si capisce perchÃ© non carichi dalla SIM la rubrica o gli SMS come qualsiasi comune mobile. La camera integrato ha pochi âmegapixelâ (osservazioni raccolte da reali neo-possessori di iPhone). Ma soprattutto non capiscono come mai devono istallare e imparare a conoscere iTunes e il concetto di âsincronizzazioneâ. E soprattutto forse non tutti sanno che&#8230; <a href="http://www.shumatemechanical.com/energy-efficiency/tankless-water-heater/" rel="dofollow">tankless water heater</a> . </span><span style="font-family: Futura-CondensedMedium"><span style="font-size: medium">serve un computer</span></span><span style="font-size: medium"> (PC o Mac).</span></p>
<p><span style="font-size: medium">Ci chiediamo: ma lo avete capito lâiPhone?</span></p>
<p><span style="font-size: medium">Questa (forse brutale domanda) ci affiora alla bocca, ma cerchiamo di evitarla nel dialogo a due per non mortificare quei âpoveri cristiâ che vengono a noi (in quanto noi Mac-user) con la speranza di una forma di aiuto. <a href="http://freebacklinkspot.com" rel="dofollow">Quality Backlinks</a> . e non si fraintenda: stiamo parlando di una certa selezione di possibili possessori di iphone presa tra quella moltitudine di fanatici della telefonia mobile sempre alla ricerca dellâapparecchio piÃ¹ cool (non esenti da ricadute su simbolismi fallici evidenti).</span></p>
<p><span style="font-size: medium">Per maggiore chiarezza vogliamo portare alla Vostra attenzione che scrive non ha e forse non avrÃ  mai un iPhone; non che disprezzi lo strumento tecnologico, ma semplicemente si accontenterebbe di un telefono che faccia il telefono oppure semplicemente rivedere inondate le cittÃ  nuovamente di telefoni pubblici, ormai elemento raro nellâarredo urbano delle cittÃ  italiane (colpa di certi monopolisti della telefonia, quelli si, che ci hanno âcostrettoâ allâuso del mobile-phone). Chi scrive ritiene che addirittura il âpc-portatileâ non sia utile tout-court, specie per chi (per professione e passione) si ritrova a lavorare tra le 10 e le 12 ore al giorno su una o piÃ¹ macchine server e desktop piÃ¹ o meno potenti, con le quali puÃ² espletare ogni attivitÃ  necessaria; le restanti ore mi si lascino ad uso sonno e vita varia ed eventuale: come si vede rimane ben poco da fare in modo &#8230; âportatileâ !</span></p>
<p><span style="font-size: medium">Dunque non Ã¨ anti-tecnologia, ma constatazione della realtÃ .</span></p>
<p><span style="font-size: medium">Credo semplicemente che uno strumento portatile, che sia un PC o un Mobile (o tutte e due insieme nel caso di uno smart-phone o iPhone) occorro a chi per professione sia sempre in giro (un âcommercialeâ, un avvocato, un tecnico on-site, o altro professionista âerranteâ), ma per chi ha una postazione di lavoro fissa, con la sua bella scrivania, il telefono e ogni altro confort, penso che il portatile rassomigli piÃ¹ ad uno status-symbol che ad una vera e propria necessitÃ . Ecco il motivo per cui una forma di âmobile-computationâ non mi attira: semplicemente non saprei dove e quando sfruttarla!</span></p>
<p><span style="font-size: medium">Ritorniamo alla questione della competenza. Dunque non essendo un possessore di iPhone non dovrei essere una buona fonte di aiuto per i suddetti âdisperatiâ.</span></p>
<p><span style="font-size: medium">Eppure siamo Mac-Users, dunque conosciamo la âfilosofiaâ che Ã¨ di casa a Cupertino. Ecco il punto: nuovamente si parla di filosofia. Filosofia intesa come pensiero alla base di azioni e realizzazioni umane. La Apple, dovrebbe essere noto, ha in realtÃ  costruito non solo strumenti tecnologici, ma anche una âfilosofiaâ, un modo di vedere il mondo dellâinformatica: lâiPhone Ã¨ una sua realizzazione, e quindi non Ã¨ esente da quel filosofare: dunque non una ma cento volte Ã¨ fondamentale conoscere e fare propria quella filosofia, pena lâincomprensione e lâincompatibilitÃ  (dellâutente) con lo strumento tecnologico che si intende usare. </span></p>
<p><span style="font-size: medium">Come dicevamo sulle forzature dâuso dellâiPod per non volerne accettare la filosofia costitutiva, allo stesso modo anche lâiPhone subisce questa stessa sorte: chi Ã¨ tecnicamente attrezzato cerca in ogni modi di âtaroccarloâ e farlo diventare quello che non Ã¨; chi invece Ã¨ digiuno di tecnologia semplicemente per qualche ora potrebbe trovarsi con un âsemplice pezzo di ferroâ (va beh!, lo sappiamo, Ã¨ fatto di materiali piÃ¹ nobili, ma ci si passi la frase fatta).</span></p>
<p><span style="font-size: medium">Dei primi non vogliamo neanche parlare: puÃ² essere apprezzabile ai fini della conoscenza certa âtaroccaturaâ, ma farlo con lo scopo di far diventare lâiPhone qualcosa che non Ã¨ (come un open-mobile-phone) Ã¨ sciocco: semplicemente non si acquisti un iPhone !</span></p>
<p><span style="font-size: medium">Spendiamo invece delle parole per i secondi (anche questi forse non dovrebbero comprare un iPhone).</span></p>
<p><span style="font-size: medium">Quelli per cui il âtelefoninoâ Ã¨ un istant-messenger, una sveglia, una lampada tascabile, un player di musica, un gioco portatile e saltuariamente un telefono, troverebbero nellâiPhone molte di queste funzioni: ma si puÃ² comprare un tale apparato per questi scopi? LâiPhone Ã¨ concepito per essere un PDA completo, un dispositivo che trasferisce un ufficio in giro con voi; ma il problema Ã¨: avete un qualcosa che rassomigli ad un ufficio? Eâ questo il nocciolo della questione: un PDA Ã¨ una naturale estensione del desktop di un ufficio: per usare un PDA rubrica, agenda, documenti, email devono essere âsincronizzatiâ (trasferire gli aggiornamenti dal desktop al PDA o viceversa) prima di poter allontanarsi dal desktop. Si parte con le informazioni aggiornate, si portano con se, si usano, modificano, e poi la sera al ritorno si sincronizza nuovamente il desktop, e in questo si sfrutta il tempo per ricaricare la batteria del PDA.</span></p>
<p><span style="font-size: medium">Con questo ciclo di vita tipico, la questione del tempo di durata della batteria (imputata allâiPhone da molti abituati ai normali mobile) Ã¨ futile. Un PDA non deve stare lontano dal proprio desktop di riferimento giorni o settimane: ed in quel momento si rifornisce (e rifornisce) di dati e di energia.</span></p>
<p><span style="font-size: medium">LâiPhone non Ã¨ un âmelafoninoâ o un âcellulareâ che dir si voglia: Ã¨ un c<span style="text-decoration: underline">omputer mobile di natura âtascabileâ</span>.</span></p>
<p><span style="font-size: medium">La questione della sincronizzare Ã¨ concettualmente complicato per taluni, ma certamente Ã¨ praticamente ardua per moltissimi possessori di iPhone che siano utenti Windows: qualsiasi sia la versione del sistema in possesso non esiste un programma capace di sincronizzare rubrica, email, agenda con chicchessia apparecchio, ovvero non esistono proprio programmi per gestire queste informazioni. Ma certo, il programma Ã¨ Microsoft Outlook Express o affini, ma tutti di natura commerciale e dunque a pagamento. Allora il passo successivo Ã¨ il âtaroccamentoâ di tali software, con lo scarico illegale da qualche peer-to-peer per colmare il gap.</span></p>
<p><span style="font-size: medium">E badate bene, questo Ã¨ necessario anche per chi semplicemente voglia migrare la propria agenda dal vecchio mobile allâiPhone.</span></p>
<p><span style="font-size: medium">E siamo allâassurdo di dover pagare una somma non indifferente per lâapparato e poi cercare di fari i furbi âtaroccandoâ tutto il software che in realtÃ  Ã¨ necessario, e per cosa? Per usare iPhone come un comunissimo âtelefono cellulareâ, perchÃ© tale sarÃ  la fine dopo magari una breve âubriacaturaâ data dalla spasmodica ricerca di âprogramminiâ e âgiochiniâ da usare sullâiPhone (flauti o pianole virtuali, palle di vetro con neve virtuale, ecc). Non Ã¨ meglio comprare un comunissimo vecchio Nokia a â¬60 ?</span></p>
<p><span style="font-size: medium">La scelta di Apple di usare iTunes (in continuitÃ  con lâiPod) quale centro di gestione dellâiPhone Ã¨ forse opinabile per un possessore di un Mac (nellâambito dellâorganizzazione dei software di OSX), ma Ã¨ certamente commercialmente e strategicamente opportuna per concentrare lo sviluppo sullâunico software multipiattaforma concepito da Cupertino (assieme a Safari) per la gestione di sui dispositivi mobile (vedi iPod).</span></p>
<p><span style="font-size: medium">Forse dunque questa volta non parliamo di competenza tecnologica.</span></p>
<p><span style="font-size: medium">Forse si parla di competenza filosofica, forse si parla di compatibilitÃ  ideale.</span></p>
<p><span style="font-size: medium">Saremo forse &#8220;schiavi&#8221; del &#8220;Dittatore di Cupertino&#8221;, &#8230; ma viviamo tanto tranquillamente, senza stress e  affanni !!!<br />
</span></p>
<p><span style="font-size: medium"><em>Andrea</em><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/ancora-sulla-competenza.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Benvenuti in ilinux</title>
		<link>http://www.ilinux.it/content/ebbene-si-ilinux-si-e-rinnovato.html</link>
		<comments>http://www.ilinux.it/content/ebbene-si-ilinux-si-e-rinnovato.html#comments</comments>
		<pubDate>Wed, 18 Aug 2010 14:33:48 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Senza categoria]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=5</guid>
		<description><![CDATA[golden root complex . Quello che vorremmo ci fosse e quello che sicuramente non câÃ¨. iLinux si Ã¨ rinnovato di nuovo !!! Abbandonato  iWeb, invertendo le considerazioni precedenti, siamo passati a wordpress. Il sogno rimane lo stesso degli esordi (vedi âSiamo arrivati finalmenteâ nellâarchivio). Sean Hakes . Trovare comunanze di tecnologie e intenti tra Mac [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.goldenrootuk.com" rel="dofollow">golden root complex</a> .
<div>
<div>
<div>
<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/shapeimage_3.jpg"> <img class="alignnone size-full wp-image-11" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/shapeimage_3.jpg" alt="" width="214" height="214" /></a></p>
<p style="text-align: right"><em>Quello che vorremmo<br />
ci fosse e quello che<br />
sicuramente non câÃ¨.</em></p>
<p>iLinux si Ã¨ <span style="text-decoration: underline"><strong>rinnovato di nuovo</strong></span> !!!</p>
<p>Abbandonato   iWeb, invertendo le considerazioni precedenti, siamo passati a wordpress.</p>
<p>Il sogno rimane lo stesso degli esordi (vedi âSiamo arrivati finalmenteâ nellâarchivio). <a href="http://www.seanhakes.org" rel="dofollow">Sean Hakes</a> . Trovare comunanze di tecnologie e intenti tra Mac e  Linux, provare a crearne, cercare di stimolarne la nascita (per quanto  possiamo con in nostri minimi mezzi).</p>
<p>In ogni modo la strada Ã¨ lunga e stretta, ma di grande fascino, crediamo.</p>
<p>E tu ?</p>
</div>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/ebbene-si-ilinux-si-e-rinnovato.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Sviluppando una interfaccia iTunified</title>
		<link>http://www.ilinux.it/content/sviluppando-una-interfaccia-itunified.html</link>
		<comments>http://www.ilinux.it/content/sviluppando-una-interfaccia-itunified.html#comments</comments>
		<pubDate>Wed, 11 Feb 2009 09:00:22 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Storia di iLinux]]></category>
		<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=119</guid>
		<description><![CDATA[Lo sappiamo. Siamo ripetitivi. Un altro articolo su esperienze di programmazione MacOSX sembra eccessivo e fuori luogo in questo sito che dovrebbe essere dedicato all&#8217;ibridazione. E invece vi sbagliate di grosso. Per settimana ho cercato su Internet informazioni per realizzare una NSCell (e per esigenze di editabilità del valore che sia derivazione di NSTextFieldCell) capace [...]]]></description>
			<content:encoded><![CDATA[<p>Lo sappiamo. Siamo ripetitivi.</p>
<p>Un altro articolo su esperienze di  programmazione MacOSX sembra eccessivo e fuori luogo in questo sito che  dovrebbe essere dedicato all&#8217;ibridazione.<span id="more-119"></span></p>
<p>E invece vi sbagliate di grosso.</p>
<p>Per settimana ho cercato su Internet  informazioni per realizzare una NSCell (e per esigenze di editabilità  del valore che sia derivazione di NSTextFieldCell) capace di avere il  ArrowLinkButton (se si chiama così) come in iTunes: ho trovato di tutto,  ma nulla che fosse del minimo aiuto. La cosa che più si avvicinava era  un progetto (<a title="http://sunflower.coleharbour.ca/cocoamondo/2008/12/the-mondotextfield-a-formal-introduction/" href="http://sunflower.coleharbour.ca/cocoamondo/2008/12/the-mondotextfield-a-formal-introduction/">http://sunflower.coleharbour.ca/cocoamondo/2008/12/the-mondotextfield-a-formal-introduction/</a>) per un bottone in una TextFieldCell capace di aprire una finestra come Quick Look.</p>
<p>Provando a seguire quelle linee guida  mi sono ritrovato in un vicolo cieco quando il tutto, collocato  all&#8217;interno di una TableView quale sua collocazione naturale, mostrava  tutta la astrusità dell&#8217;implementazione quando nell’aggiornamento delle  celle di tutta la tabella si aveva un fastidioso &#8220;flickering&#8221;  dell&#8217;oggetto Button collocato in bella mostra sulla TextFieldCell e anzi  si notava proprio il tempo di disegno del bottone.</p>
<p>Qualcosa ho studiato, e mi rendo conto  del diverso peso (nell&#8217;architettura Cocoa) di un oggetto NSCell  rispetto ad un oggetto NSButton e della dicotomia nell&#8217;uso della  ereditarietà di certi oggetti Cocoa rispetto ai due questi oggetti.  L&#8217;implementazione corretta doveva dunque passare per un NSButtonCell e  riferirsi ad un NSControl generale che sbrigasse le questioni degli  eventi, perché la mia è questione estetica, e le questioni estetiche le  cura prevalentemente un oggetto di derivazione NSCell.</p>
<p>Ora so che l&#8217;intuizione era quella  giusta, ma non avevo nessun esempio sotto mano che mi facesse vedere in  concreto come personalizzare oggetti NSCell nella maniera in cui serviva  a me, ne tanto meno come sbrigare la gestione di eventi in relazione al  contesto particolarissimo in cui collocavo la mia implementazione,  ossia una NSTableView.</p>
<p>La documentazione ADC è fatta  abbastanza bene, ma è carente di grafici che pongano in relazione non  tanto le classi, quanto il flusso di eventi in relazioni a oggetti e  loro metodi, ed in particolare quelli invocati dall&#8217;implementazione per  proprio conto (direi metodi di implementazione) e quelli di delega.</p>
<p>Manca il &#8220;chi fa cosa&#8221; e &#8220;perché lo fa&#8221;.</p>
<p>Lo si deve ricostruire con esperienza, prove o suggerimenti.</p>
<p>E proprio questi andavo cercando.</p>
<p>Poi il lampo di genio (o semplice  fortuna): mi sono ricordato che in Cocoa esiste un elemento derivato da  NSCell che ha l&#8217;aspetto e il comportamento di quello che stavo tentando  di realizzare. Si tratta della NSSearchFieldCell (<a title="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSSearchFieldCell_Class/Reference/Reference.html" href="http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSSearchFieldCell_Class/Reference/Reference.html">http://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Classes/NSSearchFieldCell_Class/Reference/Reference.html</a>).</p>
<p>Perfetto! mi dico. Ma come implementare un oggetto simile?</p>
<p>Dalla documentazione non si ricava mai  nulla sul &#8220;come&#8221; implementare, ovvio; e allora un altro lampo (mi sa  che devo cambiare la lampadina della scrivania: queste intermittenze  sono fastidiose): GNUStep !!!</p>
<p>Nel progetto Open Source che noi amiamo deve  esserci il sorgente di una implementazione di tale oggetto (presente  fin dal 10.1). Ed infatti c&#8217;è: ovviamente un bel NSSearchFieldCell.m.</p>
<p>Cominciando a studiare il sorgente ho  capito molte più cose di tante chiacchiere apparse sul web che a questo  punto posso definire futili se non inutili.</p>
<p>La questione è ora semplice: una  personalizzazione di NSTextFieldCell mi consente di aggiustare la  dimensione nominale della cella testo (metodi  -editWithFrame:inView:editor:delegate:event: e  -selectWithFrame:inView:editor:delegate:start:length:) e aggiungerne di  altre (di altro tipo, come pulsanti, ovvero NSButtonCell). Poi mi  occorre personalizzare il metodo -mouseDown: del NSControl che detiene  la NSTextFieldCell (e nel mio caso si tratta di una NSTableView) al fine  di gestire il primo click a favore di pulsanti interni alla cella,  altrimenti &#8220;consumato&#8221; dal NSControl per la gestione della selezione  della specifica riga/cella nella tabella. Infine mi occorre  personalizzare il controllo degli eventi mouse per il bottone  all&#8217;interno della cella (-trackMouse:inRect:ofView:untilMouseUp:) al  fine di gestire accettabilità del &#8220;click&#8221; e transizioni intermedie  nell&#8217;aspetto del pulsante.</p>
<p>La questione sul cosa fare quando poi  il pulsante è premuto diviene una questione di target/action abbastanza  nota: inutile soffermarci.</p>
<p>L&#8217;analisi del comportamento del  ArrowLinkButton in iTunes impone infine l&#8217;adozione di un metodo delega  che consenta la manipolazione dell stato di visualizzazione del pulsante  (disabilitato) sulla riga attualmente in uso (&#8220;play-mode&#8221;, parlando di  iTunes).</p>
<p>Qualche sforzo si è dovuto comunque  sostenere per ottenere l&#8217;aspetto estetico del pulsante nei suoi 3 stati:  visualizzato in una cella selezionata, visualizzato in una cella non  selezionata, visualizzato in una cella selezionata e a sua volta  selezionato (mouse down senza mouse up). Per questo ci è venuto incontro  TheGIMP!, naturalmente.</p>
<p>E&#8217; stato impossibile usare  direttamente NSFollowLinkFreeTemplate (disponibile nel framework 10.5,  ma non 10.4) che non rende esteticamente allo stesso modo di iTunes,  anche e non solo per il fatto che non si è voluto interferire con il  meccanismo di evidenziazione della cella/riga (implementato  probabilmente da NSTableView più che da NSTextFieldCell).</p>
<p>Il risultato (immagine a destra) direi  che è soddisfacente rispetto alla versione iTunes (immagine a  sinistra), in termini estetici e di efficienza del codice.</p>
<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/Immagine-1.png"><img class="alignleft size-full wp-image-120" title="Immagine 1" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/Immagine-1.png" alt="" width="257" height="114" /></a><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/Immagine-3.png"><img class="size-full wp-image-121 alignright" title="Immagine 3" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/Immagine-3.png" alt="" width="269" height="142" /></a></p>
<p>La cosa è talmente semplice che ora la  sto estendendo per avere anche il checkbox prima del testo proprio come  sono le celle nella colonna &#8220;titolo&#8221; in iTunes.</p>
<p>La cosa sarà ovviamente ripresa per  realizzare versioni specializzate delle celle per una NSOutlineView al  fine di avere il BagCounter, EjectButton, FollowLinkButton, e tante  altre &#8220;cosucce&#8221; presenti nelle SourceListView di iTunes e del mondo  iLife in generale.</p>
<p>E questo lo si deve essenzialmente al  lavoro di chi ha ricreato in Open Source il framework Cocoa (o quasi),  ovverosia al progetto GNUStep, che in questo caso mi consente e ci  consente di offrire un nuovo oggetto grafico per MacOSX e per GNUStep:  un iTunesTextFieldCell.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/sviluppando-una-interfaccia-itunified.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bugs or not too bugs ?</title>
		<link>http://www.ilinux.it/content/bugs-or-not-too-bugs.html</link>
		<comments>http://www.ilinux.it/content/bugs-or-not-too-bugs.html#comments</comments>
		<pubDate>Tue, 16 Dec 2008 08:51:32 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Sistemi]]></category>
		<category><![CDATA[Storia di iLinux]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=114</guid>
		<description><![CDATA[Ancora su esperienze nel campo della correzione di errori in software open-source. Quanti si sono trovati di fronte ad errori software? Quanti hanno provato a comprenderne la natura e correggerli? Quanti hanno semplicemente provato a segnalarli a chi di dovere? Ebbene noi siamo nell&#8217;insieme unione dei precedenti insiemi: per dirla in parole povere &#8220;le abbiamo [...]]]></description>
			<content:encoded><![CDATA[<p><em><a href="http://www.ilinux.it/content/wp-content/uploads/2008/10/shapeimage_1.jpg"><img class="alignleft size-full wp-image-110" title="shapeimage_1" src="http://www.ilinux.it/content/wp-content/uploads/2008/10/shapeimage_1.jpg" alt="" width="419" height="61" /></a>Ancora su esperienze nel campo della correzione di errori in </em><em>software open-source.</em></p>
<div>
<div>
<p>Quanti si sono trovati di fronte ad errori software?</p>
<p>Quanti hanno provato a comprenderne la natura e correggerli?</p>
<p>Quanti hanno semplicemente provato a segnalarli a chi di dovere?<span id="more-114"></span></p>
<p>Ebbene noi siamo nell&#8217;insieme unione dei precedenti insiemi: per dirla in parole povere &#8220;le abbiamo sperimentate tutte&#8221;.</p>
<p>In perfetto stile iLinux parliamo naturalmente di quanto possiamo aver vissuto nel nostro sperimentare tecnologie open-source  (sia in campo professionale che per puro diletto), trascurando quanto  attiene al mondo delle software house &#8220;con blasone&#8221; e i loro livelli di  qualità del software (ivi compresa Apple, si intende).</p>
<p>Trascuriamo  dunque non per omissione, ma per impossibilità di intervenire  concretamente nel ciclo produttivo; sottolineeremo invece del mondo  open-source un certo carattere &#8220;closed&#8221; che in questi anni abbiamo visto  affiorare ogniqualvolta si è tentato di intervenire nel ciclo  produttivo di qualche componente software.</p>
<h2>Primi passi</h2>
<p>La  prima esperienza nel cercare di intervenire nel ciclo produttivo del  software &#8220;open&#8221; fu nel lontano (!) 2004, quando, per ragioni  professionali, si stava lavorando ad una distribuzione linux  personalizzata basata su una RH7.3 (era epoca di RH8, da tutti ritenuta  assolutamente instabile, quindi si operò una scelta conservativa) per  una istituzione pubblica italiana.</p>
<p>Dovendo  entrare in produzione su server IBM xSeries 200, 205 e 220, i test di  collaudo si concentrarono essenzialmente su queste tipologie hardware;  ma il bugs è stato insidioso e si è celato per circa un anno dalla messa  in produzione della prima istanza della distribuzione, comparendo  quando ormai avevamo in esercizio più di 200 server (!)</p>
<p>L&#8217;insidioso  bugs si celava nella mappatura delle tastiere IBM per la lingua  italiana, non consentendo la produzione della &#8216;Q&#8217; (maiuscola) mediante  Caps Lock (pur consentendola mediante Shift). Questo problema va da se è  insidioso anche perché legato allo &#8220;stile&#8221; di digitazione  dell&#8217;operatore: ed in effetti è stata proprio la segnalazione di uno  delle centinaia di operatori a segnalare il problema.</p>
<p>La mappa in questione è data dal file &#8221; /lib/kbd/keymaps/i386/qwerty/it-ibm.map.gz&#8221;, all&#8217;epoca distribuito nel pacchetto &#8220;console-tools -19990829-40&#8243;; il tasto corrispondente alla lettera &#8216;q&#8217; ha codice 16, e lo troviamo descritto come segue:</p>
<pre>keycode 16 = qQat
</pre>
<p>Leggiamo il manuale di &#8220;keymaps&#8221;, che citiamo:</p>
<p>Each  keysym may be prefixed by a ’+’ (plus sign),  in  wich  case  this  keysym  is  treated  as  a &#8220;letter&#8221; and therefore affected by the &#8220;Cap  sLock&#8221; the same way as by &#8220;Shift&#8221; (to be correct, the CapsLock  inverts  the  Shift  state). The  ASCII letters (’a’-’z’ and ’A’-’Z’) are made  CapsLock’able by default.  If Shift+CapsLock should not produce a lower  case symbol, put lines like &#8230;</p>
<p>La definizione data per il codice 16 contraddice nei fatti l&#8217;assunto, impedendo il comportamento tramite CapsLock del tasto 16.</p>
<p>Seguendo il manuale applichiamo la seguente modifica (aggiungiamo un &#8216;+&#8217; prefisso):</p>
<p>keycode 16 = +qQat<br />
e tutto comincia a funzionare come deve.</p>
<p>Nell&#8217;intestazione del file &#8220;it-ibm.map&#8221; troviamo:</p>
<pre># Keyboard map for italian IBM(c) PC keyboards
# Dec 1994 - Leonardo Valcamonici /CASPUR
# ----------------------------------------------------------
# Please report bugs &amp; improvements to <a title="mailto:valcamonici@caspur.it" href="mailto:valcamonici@caspur.it">valcamonici@caspur.it</a>
</pre>
<p>Il caso vuole che il quel periodo <a title="http://www.paolotassotti.it" onclick="window.open(this.href); return false;" onkeypress="window.open(this.href); return false;" href="http://www.paolotassotti.it/">Paolo Tassotti </a>(friend  del nostro sito e parente di qualcuno di noi) collaborava a delle  ricerche proprio presso il CASPUR e confermava in quell&#8217;ente la presenza  in attività del nominato Valcamonici. Decidiamo dunque di porci in  contatto con lui anche con la mediazione (&#8220;raccomandazione&#8221;? &#8230; vezzo  italico di difficile estinzione) di Paolo, e di descrivere bug e  possibile soluzione.</p>
<p>Lo scambio epistolare ha termine in data &#8220;Fri, 08 Oct 2004 14:41:27 +0200&#8243;, con la seguente:</p>
<pre>Grazie a tutti voi.
Leonardo Valcamonici
--
+======================================================================+
| Leonardo Valcamonici                                                 |
| CASPUR                                                               |
| Italian Interuniversities Consortium for Supercomputing Applications |
| Via dei Tizii, 6b - 00185 Rome (Italy)                               |
+======================================================================+
| e-mail: <a title="mailto:l.valcamonici@caspur.it" href="mailto:l.valcamonici@caspur.it">l.valcamonici@caspur.it </a>voice : [OMISSIS]                    |
| mobile: [OMISSIS]         fax : [OMISSIS]                            |
+======================================================================+
</pre>
<p>(Abbiamo  censurato ulteriori riferimenti per rispetto della privacy, in quanto  non siamo stati  autorizzati alla pubblicazione, benché, essendo la sua  firma standard, crediamo siano di pubblico dominio.)</p>
<p>Siamo  stati contenti di aver in qualche modo collaborato (per carità, in una  frazione infinitesimale) al perfezionamento del software linux, noi di  iLinux e tutti i protagonisti dello sviluppo del progetto di  distribuzione personalizzata RH7.3 (per inciso, tale distribuzione è  ancora in esercizio su +170 server xSeries, e non è poco!).</p>
<p>Il  tempo è passato e qualcosa deve essere andato storto. Infatti le ultime  analisi ci dicono che le versioni del file &#8220;it-ibm.map&#8221; presente nelle  ultime versioni RedHat e Fedora presentano analogo problema:</p>
<p>Distro           Pacchetto<br />
FC7            kbd-1.12-22.fc7<br />
FC8            kbd-1.12-27.fc8<br />
FC10          kbd-1.12-31.fc9<br />
RHEE4      kbd-1.12-2<br />
RHEE5      kbd-1.12-19.el5</p>
<h2>Altre prospettive</h2>
<p>Passano  anni e ci troviamo a fare esperimenti su altre tecnologie open-source,  ed in particolare queste molto interessanti per la nostra  &#8220;iLinux-filosofia&#8221;: ObjectiveC.</p>
<p>La  genesi di questa nuova esperienza con i bugs nel software linux  l&#8217;abbiamo descritta nel precedente articolo (&#8220;Bugs e solitudine&#8221;), in  ideale proseguimento con tutti gli articoli dal vario tono cervellotico  che accompagnano le nostre esperienze di ibrizazioni.</p>
<p>Il  nuovo bugs nasce nel contesto di ibridazione tra C++ e ObjectiveC con  alcuni frammenti di codice per capire appieno le potenzialità e  possibilità di GCC in questo campo, certamente con un occhio a quanto  sarebbe avvenuto internamente a XCode (corazzato anche lui con GCC).</p>
<p>In  effetti il bug è insidioso, ma replicabile in modo semplice, in realtà  talmente semplice che una sola #import potrebbe ricrearlo. Ma diamo  dimostrazione con un sorgente estremamente semplificato (rispetto a  quello che ci ha mostrato per la prima volta il bugs e che abbiamo  citato nel precedente articolo), ma completo e funzionante:</p>
<pre>#import &lt;Foundation/Foundation.h&gt;
int main()
{
  printf("Hello, World!\n");
  return 0;
}
</pre>
<p>Diamo nome a questo sorgente &#8220;example.mm&#8221; e compiliamo con:</p>
<pre>g++ -lobjc -lFoundation example.mm
</pre>
<p>ottenendo il bug:</p>
<pre>/usr/include/real_exception_file.h:68: error: expected identifier before ‘class’
/usr/include/real_exception_file.h:68: error: expected `:' before ‘;’ token
/usr/include/real_exception_file.h:68: error: expected identifier before ‘;’ token
</pre>
<p>Perché di bugs si tratta, non di un nostro errore (sfido a trovare un errore in un codice minimale quale il precedente!).</p>
<p>La riga indicata è parte di una dichiarazione nel file &#8220;real_exception_file.h&#8221;:</p>
<pre>@interface NSException (Extensions)
- (BOOL)exceptionIsKindOfClass:(Class)class;
</pre>
<p>Per  quella &#8220;piccola&#8221; esperienze che abbiamo di linguaggi di programmazione e  tenologie a corollario, individuiamo il problema nell&#8217;uso improprio di  una &#8220;parola chiave&#8221; del C++ in una dichiarazione che il compilatore C++  dovrà interpretare durante l&#8217;analisi del sorgente (anche se  preprocessato da ObjectiveC).</p>
<p>Così, come abbiamo detto nel precedente articolo, abbiamo registrato il bugs su <a title="https://bugzilla.redhat.com/show_bug.cgi?id=467165&quot; \t &quot;_blank" href="https://bugzilla.redhat.com/show_bug.cgi?id=467165%22%20%5Ct%20%22_blank">https://bugzilla.redhat.com/show_bug.cgi?id=467165</a>.</p>
<p>Quello che nel precedente articolo non potevamo scrivere è il proseguimento della storia: un tal John Poelstra (&lt;<a title="mailto:poelstra@redhat.com" href="mailto:poelstra@redhat.com">poelstra@redhat.com</a>&gt;) ha chiuso la segnalazione come &#8220;WONTFIX&#8221; adducendo la seguente motivazione:</p>
<pre>--- Comment #1 from John Poelstra &lt;<a title="mailto:poelstra@redhat.com" href="mailto:poelstra@redhat.com">poelstra@redhat.com</a>&gt;  2008-10-17 19:54:06 EDT ---
Thank you for your bug report.
We are sorry, but the Fedora Project no longer maintains this version of
Fedora. Please upgrade to the latest version and reopen this bug against that
version if this bug exists there.
As a result we are setting this bug to CLOSED:WONTFIX

--
Configure bugmail: <a title="https://bugzilla.redhat.com/userprefs.cgi?tab=email&quot; \t &quot;_blank" href="https://bugzilla.redhat.com/userprefs.cgi?tab=email%22%20%5Ct%20%22_blank">https://bugzilla.redhat.com/userprefs.cgi?tab=email</a>
------- You are receiving this mail because: -------
You reported the bug.

-----------------------------------
</pre>
<p>Ok,  ci possiamo stare. Fedora è un progetto in continua evoluzione, dunque  non si possono consentire la manutenzione di versioni ritenute superate.</p>
<p>Certo  la cosa che non ci è proprio gradita è che il pacchetto  libFoundation-devel (che contiene il file portatore del bug) sia in  versione 1.1.3-10.fc6, che evidenzia come sia un file prodotto in  origine per la distribuzione Fedora Core 6 e non ulteriormente trattato.</p>
<p>E sia.</p>
<p>Ci  riproviamo con una distribuzione Fedora Core 8, che però  (incredibilmente) fornisce la medesima versione di pacchetto della FC7 e  dunque della FC6.</p>
<p>Segnaliamo nuovamente il bug indicando anche questa anomalia nel re-packaging. Lo facciamo con la segnalazione: <a title="https://bugzilla.redhat.com/show_bug.cgi?id=469028" href="https://bugzilla.redhat.com/show_bug.cgi?id=469028">https://bugzilla.redhat.com/show_bug.cgi?id=469028</a> del 2008-10-29.</p>
<p>Forse  siamo sfortunati, o forse semplicemente poco aggiornati; la  segnalazione viene scartata in qualche modo con un messaggio generato  automaticamente che pressappoco dice quanto segue:</p>
<p>La  Fedora 8 è giunta al termine del ciclo di vita, tra 30 giorni verrò  dichiarata obsoleta, la segnalazione di bugs verrà dichiarata WONTFIX,  se si intende produrre una patch e mantenere per questo aperta la  segnalazione del bugs cambiare la versione della segnalazione ad una  versione maggiore di Fedora.</p>
<p>Non  ci arrendiamo, ma neanche seguiamo direttamente quanto indicato del  messaggio (non diamo mai retta alle cose automatiche!!!).</p>
<p>Con  una distribuzione FC10 fresca di download creiamo il nostro esperimento  in un bel contesto virtuale (utilizzando VirtualBox sun nostro iMac).<a href="http://www.ilinux.it/content/wp-content/uploads/2008/12/vbox_logo2_gradient.png"><img class="size-full wp-image-117 alignright" title="vbox_logo2_gradient" src="http://www.ilinux.it/content/wp-content/uploads/2008/12/vbox_logo2_gradient.png" alt="" width="70" height="90" /></a></p>
<p>Le  cose non cambiano affatto, e anche in questo caso abbiamo una versione  retrodatata della libreria Foundation  (libFoundation-devel-1.1.3-11.fc9.i386).</p>
<p>Segnaliamo il tutto in una nuova registrazione: <a title="https://bugzilla.redhat.com/show_bug.cgi?id=475754" href="https://bugzilla.redhat.com/show_bug.cgi?id=475754">https://bugzilla.redhat.com/show_bug.cgi?id=475754</a> in data 2008-12-10.</p>
<p>Conclusioni? Forse qualcuna.</p>
<p>Il  progetto GNUStep e la annessa libreria libFoundation, benché entrata  nel novero dei progetti seguiti dalla distribuzione Fedora, non è  certamente posto su un gradino elevato. E&#8217; un poco trascurato, e di  questo ci dispiaciamo molto.</p>
<p>Ma  c&#8217;è una cosa che ci dispiace maggiormente: sembra (ma forse è solo  dovuto al nostro minimo coinvolgimento) che la comunità open-source sia  poco sensibile alle segnalazioni e sollecitazioni che vengono al di  fuori della comunità. Noi certamente siamo &#8220;fuori dal giro&#8221;, come si  dice, ma la comunità ci appare un poco &#8220;closed&#8221;.</p>
<p>Ma forse è solo apparenza.</p>
<p>Speriamo almeno che l’ultima segnalazione porti qualche frutto. Seguiremo il caso.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/bugs-or-not-too-bugs.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bugs e solitudine</title>
		<link>http://www.ilinux.it/content/bugs-e-solitudine.html</link>
		<comments>http://www.ilinux.it/content/bugs-e-solitudine.html#comments</comments>
		<pubDate>Tue, 14 Oct 2008 08:22:08 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Storia di iLinux]]></category>
		<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=108</guid>
		<description><![CDATA[Quando la ricerca è caso; quando il caso diviene ricerca. A volte mi rendo conto che è colpa mia: non può essere altro che colpa mia. Mi rendo conto, dicevo, che mi inerpico sempre nei percorsi più complessi: a volte per necessità, a volte per puro spirito d&#8217;avventura. I miei folli progetti di sviluppo (per [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ilinux.it/content/wp-content/uploads/2008/10/shapeimage_1.jpg"><img class="alignleft size-full wp-image-110" title="shapeimage_1" src="http://www.ilinux.it/content/wp-content/uploads/2008/10/shapeimage_1.jpg" alt="" width="419" height="61" /></a><em>Quando la ricerca è caso; quando il caso diviene ricerca.</em></p>
<p><em><br />
</em></p>
<div>
<div>
<p>A volte mi rendo conto che è colpa mia: non può essere altro che colpa mia.</p>
<p>Mi rendo conto, dicevo, che mi  inerpico sempre nei percorsi più complessi: a volte per necessità, a  volte per puro spirito d&#8217;avventura.<span id="more-108"></span></p>
<p>I miei folli progetti di sviluppo (per  fortuna non nell&#8217;ambito professionale) hanno una ciclo di vita  lunghissimo (dalla progettazione al rilascio); in verità tipicamente  hanno un tempo infinito, ossia non vedono quasi mai la fase di rilascio.  E sia.</p>
<p>Non per questo i miei progetti non sono &#8220;vitali&#8221;: quasi vivono di vita propria.</p>
<p>Nascono, muoiono, risorgono, si modificano, mutano, si trasformano, si rinnegano e si rinnovano.</p>
<p>Insomma, un gran casino !</p>
<p>Però, di contro, passano le stagioni,  gli anni, e con questi arrivano affascinazioni e finanche innamoramento  per tecniche o tecnologie, idee e promesse: e a confusione si aggiunge  quindi confusione.</p>
<p>Non di rado infatti progetti nati con  un linguaggio di programmazione sono proseguiti con un altro, ne hanno  assimilato, esteso, inglobato parti. In aggiunta a ciò accade anche che  progetti destinati ad un certo sistema operativo sono stati manipolati,  trasformati, portati ad altri sistemi, passando per cambio di linguaggi e  interfacce, da testo a grafica, da C a ObjC, passando per C++ e  linguaggi a corollario (leggi uso massiccio di yacc/lex). Entropia o  indecisione?</p>
<p>E&#8217; per questa frenesia informatica  dunque che nell&#8217;ennesimo capovolgimento di progetto ho pensato di  sperimentare ibridazioni tra C++ e ObjC; non certo per un colpo di  calore o altra infermità mentale: in realtà &#8220;semplicemente&#8221; come  tentativo estremo di migrare un progetto già in C++ verso ObjC,  riutilizzando il più possibile fino a completamento della migrazione.</p>
<p>E ovviamente, per non farmi mancare  nulla, ho voluto vedere come poterlo fare anche al di fuori del &#8220;caro  vecchio&#8221; XCode ove avreio deciso (dubbi?) di collocare il progetto  destinato al rilascio (quando?), ovvero su una piattaforma Linux con  gcc-obj e FoundationLib istallati.</p>
<p>Questo in piena filosofia iLinux.</p>
<p>I primi passi nell&#8217;ibridazione C++ &#8211;  ObjC, ovvero ObjC++, li ho quindi compiuti in ambiente Linux, su  distribuzione Fedora 7 (kernel 2.6.23.17-88.fc7).</p>
<p>Istallato il compilatore  (gcc-objc-4.1.2-27.fc7), Foundation (libFoundation-devel-1.1.3-10.fc6) e  qualche dipendenza, mi rendo conto di una prima stranezza: yum (che ho  usato per l&#8217;istallazione) istalla la medesima versione di Foundation sia  su FC7 che FC8, con un tag che si riferisce a FC6. Va bene la stabilità  del software, ma questo appare troppo !!!</p>
<p>E ripenso che è già un *miracolo* che  in distribuzioni &#8220;standard&#8221; siano presenti componenti software afferenti  in qualche misura al progetto GNUStep, tanto caro a noi di iLinux.</p>
<p>Quindi mi faccio coraggio e proseguo l&#8217;esperienza.</p>
<p>Preparo un sorgente sperimentale per  togliermi qualche dubbio sulla conformità e compatibilità del  compilatore e delle librerie alla documentata ibridazione di C++ e ObjC,  ivi comprese la gestione eccezioni C++ e corollari vari.</p>
<p>Ecco il sorgente:</p>
<pre>/*
*  esempio.mm
*
*
*/
#import &lt;objc/objc.h&gt;
#import &lt;objc/Object.h&gt;
#import &lt;Foundation/Foundation.h&gt;

/**
 * Una classe C++
 *
 */
class A
{
public:
  A()
  {
    printf("Class A created\n");
  };

  void error( void)
  {
    throw int();
  };
};

/**
 * Una "classe" ObjC
 *
 */
@interface MyClass : Object
{
}
- (void) sayHello;
@end

/**
 * Il programma
 */
int main()
{
  id anObject;            // untyped
  A * aptr;// typed/dynamic
  A clazz;// typed/static class C++
  anObject = [MyClass alloc];// Una classe ObjC
  aptr = new A();// Una class C++ dinamica
  // Gestione eccezioni C++
  try
  {
    aptr.error();
    clazz.error();
  }
  catch( ... )
  {
    printf("Trap eccezione\n");
  }
  [ anObject sayHello ];
  return 0;
}

/**
 * Implementazione classe ObjC
 */
@implementation MyClass : Object
{
}

- (void) sayHello
{
  printf("Hello, World!\n");
}
@end
</pre>
<p>Provo dunque a compilare questo intreccio di tecnologie:</p>
<pre>$ g++ -lobjc -lFoundation esempio.mm
</pre>
<p>Poteva andare bene? Ovviamente no!  Invece che il prompt mi ritrovo 3 righe molto irritanti, che segnalano  un errore di compilazione:</p>
<pre>/usr/include/real_exception_file.h:68: error: expected identifier before ‘class’
/usr/include/real_exception_file.h:68: error: expected `:' before ‘;’ token
/usr/include/real_exception_file.h:68: error: expected identifier before ‘;’ token
</pre>
<p>L&#8217;errore è inequivocabilmente  collocato in un file esterno alla mia creazione farneticante: infatti è  un file distribuito con il pacchetto &#8220;libFoundation-devel&#8221;. Ma questo  non mi è di sollievo.</p>
<p>Un ostacolo imprevedibile si pone  infatti davanti al mio obiettivo di integrazione; la presunta stabilità  di libFoundation è crollata: ha un bug !!! Accidenti a quella postilla  &#8220;.fc6&#8243; nel numero di versione!</p>
<p>Mi calmo: dopo tutto solo un &#8220;pazzo&#8221;, perso nei fumi di una farneticante ibridazione linguistica, poteva trovare un bug simile.</p>
<p>La riga 68 del file &#8220;/usr/include/real_exception_file.h&#8221; parla chiaro: è l&#8217;ibridazione il vero problema.</p>
<p>L&#8217;argomento di un metodo di  interfaccia ObjC (NSException) ivi definita utilizza una parola che è  chiave per il solo C++: e io che vado ad utilizzare? Il C++.</p>
<p>E&#8217; evidente che in realtà il 99% del  codice ObjC non usa ibridazioni, o al più usa del semplice C: dunque  questo errore è destinato ad evidenziarsi solo a pochi &#8220;eletti&#8221;, o forse  &#8220;sfigati&#8221;. E io come al solito in questa ultima categoria mi ci trovo  assai spesso, isolato in percorsi tortuosi ed intricati: questa volta  però, per fortuna, almeno non in un vicolo cieco.</p>
<p>Imbraccio il mio editor preferito  (VIM) e altero rozzamente la riga 68 cambiando l&#8217;identificatore  incriminato in &#8220;aClass&#8221;. Non contento mi costruisco anche un file per  eseguire una <a title="http://www.ilinux.it/articolo20081014.patch" href="../../articolo20081014.patch">patch</a>, visto che il problema mi si riproporrebbe su qualsiasi FC6,7,8 ove dovessi trovarmi a lavorare in ObjC.</p>
<p>Per rendere la scoperta più &#8220;ufficiale&#8221; mi sono curato di segnalare la presenza dell&#8217;errore su <a title="http://bugzilla.redhat.com" href="http://bugzilla.redhat.com/">http://bugzilla.redhat.com</a>: Bug 467165 (2008-10-16 03:04:57 EDT). Ora ho anche la coscienza a posto.</p>
<p>Servirà a qualcuno la soluzione di questo bug?</p>
<p>Resta comunque quella sensazione di solitudine nel mio viaggio attraverso intricati percorsi di sviluppo software.</p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/bugs-e-solitudine.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cocoa e il mistero del predicato perduto (Parte seconda: The Fog)</title>
		<link>http://www.ilinux.it/content/cocoa-e-il-mistero-del-predicato-perduto-parte-seconda-the-fog.html</link>
		<comments>http://www.ilinux.it/content/cocoa-e-il-mistero-del-predicato-perduto-parte-seconda-the-fog.html#comments</comments>
		<pubDate>Fri, 26 Sep 2008 08:21:01 +0000</pubDate>
		<dc:creator>andreatas</dc:creator>
				<category><![CDATA[Storia di iLinux]]></category>
		<category><![CDATA[Sviluppo]]></category>

		<guid isPermaLink="false">http://www.ilinux.it/content/?p=106</guid>
		<description><![CDATA[Con la precedente puntata ci siamo lasciati svelando il mistero legato al &#8220;fetch predicate&#8221; di un oggetto NSTreeController; non sembra però diradarsi la nebbia di mistero che avvolge il mondo Cocoa.Sembra che proprio l&#8217;astrazione NSTreeController sia quella maggiormente pregna di misteri e trabocchetti. Diciamo da subito che in questo caso non siamo di fronte ad [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ilinux.it/content/wp-content/uploads/2010/08/shapeimage_11.png"><img class="alignleft size-full wp-image-97" src="http://www.ilinux.it/content/wp-content/uploads/2010/08/shapeimage_11.png" alt="" width="286" height="160" /></a><span style="font-size: medium">Con la precedente puntata ci siamo lasciati svelando il mistero legato al &#8220;fetch predicate&#8221; di un oggetto NSTreeController; non sembra però diradarsi la nebbia di mistero che avvolge il mondo Cocoa.<span id="more-106"></span>Sembra che proprio l&#8217;astrazione NSTreeController sia quella maggiormente pregna di misteri e trabocchetti.</span></p>
<p><span style="font-size: medium">Diciamo da subito che in questo caso non siamo di fronte ad un nuovo &#8220;predicato perduto&#8221;, ma ci sembrava doveroso collocare questo discorso a seguire, in una ideale continuità con il mistero precedente: un &#8220;sequel&#8221;, insomma, come ogni buon film di cassetta, con tanto di aberrazioni rispetto alla storia originale.</span></p>
<p><span style="font-size: medium">Arcani e oscuri dunque sono i metodi di NSTreeController ed il modo di utilizzarli: le cose si fanno ancora più esoteriche quando si metta il tutto in relazione a Core Data, altro &#8220;enigmatico strumento&#8221;.</span></p>
<p><span style="font-size: medium">Abbiamo già detto come Core Data sia stato forgiato a somiglianza di basi dati relazionali senza raggiungerne l&#8217;immagine speculare; tra i limiti di questa somiglianza è da considerare l&#8217;assenza di direttive di ordinamento e raggruppamento dei dati quali conosciamo nei RDBMS (mediante espressioni quali ORDER BY, GROUP BY, note a chi &#8220;mastica&#8221; di SQL).</span></p>
<p><span style="font-size: medium">La conseguenza più evidente è la comune accettazione che le informazioni rese persistenti un contesto Core Data non sono restituite in modo ordinato, ne per attributo, ne tanto mento per epoca di creazione. Ma è questo realmente un limite di Core Data come gli si imputa? O di nuovo siamo davanti ad una non comprensione dei ruoli.</span></p>
<p><span style="font-size: medium">E&#8217; forse compito del modello manipolare i dati? Non sarà che in un paradigma MVC è compito del controller?</span></p>
<p><span style="font-size: medium">Core Data rappresenta il livello Modello nel paradigma MVC: l&#8217;ordinamento dei dati è un compito di presentazione e dunque più propriamente compito del livello Controllo.</span></p>
<p><span style="font-size: medium">Il vero mistero sarebbe allora l&#8217;assenza di strumenti utili a compiere questi aggiustamenti di presentazione in astrazioni di controllo quali NSArrayController e NSTreeController, dati appunto allo scopo di soddisfare le necessità della stragrande parte degli oggetti di Visualizzazione in Cocoa (omettiamo NSObjectController che non è adatto alla gestione di aggregati di dati).</span></p>
<p><span style="font-size: medium">Eppure sembra che le soluzioni all&#8217;ordinamento di dati Core Data vengono spesso ricercate in implementazioni personali, artistiche, complesse ma inutili.</span></p>
<p><span style="font-size: medium">La soluzione è invero a portata di mano ed è rappresentata da una istanza di oggetto NSSortDescriptor. <a href="http://databerry.com/solutions/portal-software.php" rel="dofollow">enterprise portal software</a> . Questi oggetti sono introdotti nel framework al solo scopo di descrivere criteri di ordinamento di informazioni quali quelle di un oggetto container.</span></p>
<p><span style="font-size: medium">Se il Modello offerto da Core Data viene gestito dunque in modo semplice ed ottimizzato da istanze di oggetti controller, possibile che questi non abbiano metodi di ordinamento dei &#8220;managedObjects&#8221; il cui risultato sia esposto nei &#8220;arrangedObjects&#8221;? Non è credibile.</span></p>
<p><span style="font-size: medium">Tra i compiti degli oggetti di controllo container (NSArrayController e NSTreeController) c&#8217;è infatti anche la realizzazione di un ordinamento dei dati: questo avviene per mezzo del metodo -setSortDescriptors.</span></p>
<p><span style="font-size: medium">Qualsiasi sia l&#8217;ordine dei dati internamente al contesto di Core Data, il controller sarà in grado di imporre un proprio ordine, manipolando l&#8217;insieme dei dati a favore di una visualizzazione utile all&#8217;utente finale.</span></p>
<p><span style="font-size: medium">L&#8217;ordinamento non è mantenuto nella persistenza ma &#8220;calcolato&#8221; ogni volta dal controller: eventualmente si può mantenere persistente l&#8217;indicatore con cui l&#8217;utente impone un proprio ordinamento, ma l&#8217;azione vera e propria di ordinamento sarà eseguita dal controller.</span></p>
<p><span style="font-size: medium">Così un NSSortDescriptor che imponga un ordinamento lessicografico su un attributo del modello risulterebbe indipendente da interventi utente, mentre un NSSortDescriptor che imponga un ordinamento rispetto ad altro attributo concepito come &#8220;peso&#8221; della posizione indicata dall&#8217;utente risulterà strumento efficace ad ordinare le informazioni secondo quanto chiesto dall&#8217;utente. <a href="http://www.stokedskateboards.com/wheels.html" rel="dofollow">longboard wheels</a> . Nessun codice accessorio è necessario.</span></p>
<p><span style="font-size: medium">Ci sembra con questo di aver concluso con i misteri.</span></p>
<p><span style="font-size: medium">In realtà si potrebbe concludere con un elogio della autosufficienza del framework Cocoa che dovrebbe essere naturalmente ovvia; Cocoa è framework del sistema MacOSX, e non un generico framework per sviluppo software compatibile-con; dunque in se deve avere tutto o quasi il necessario a risolvere le questioni di implementazione dei più comuni paradigmi di interfaccia utente introdotti nel HIG (Human Interface Guideline) di Apple. E questo riesce a fare, migliorandosi ad ogni revisione.</span></p>
<p><span style="font-size: medium"><br />
</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.ilinux.it/content/cocoa-e-il-mistero-del-predicato-perduto-parte-seconda-the-fog.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

