<?xml version="1.0" encoding="UTF-8" ?><rss version="2.0"><channel><title>ChannelWeb | Blog</title><link>https://www.channelweb.it/</link><description /><language>ita</language><item><title>Video sul web, CoDec e Container</title><description>Alcune note sulla digitalizzazione dei media, in particolare sulla distribuzione dei materiali video.&lt;br /&gt;&lt;br /&gt;&lt;hr/&gt;&lt;p&gt;In questo documento si elencano le opzioni disponibili e consigliate su quali Container e CoDecadottare per la creazione dei file da pubblicare online e distribuire attraverso supporti digitali di contenuti audio/video (AV)&lt;/p&gt;&lt;hr/&gt;&lt;p&gt;&lt;strong&gt;CoDec e Container&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Le tecnologie di codifica e archiviazione dei contenuti multimediali sono in continua trasformazione.&lt;br /&gt;&lt;span style=&quot;text-decoration: underline;&quot;&gt;Non esiste al momento e non è prevista per il futuro prossimo un’unica combinazione di Container e CoDec supportata dalle diverse piattaforme tecnologiche (OS+player o browser).&lt;/span&gt;&lt;br /&gt;Per rendere contemporaneamente disponibile un contenuto AV a tutti i device e piattaforme, è necessario creare molteplici versioni del contenuto codificate in file diversi.&lt;/p&gt;
&lt;p&gt;Fatta eccezione per i video eseguiti tramite Adobe Flash™ (che può eseguire la combinazione H262/AAC/MP4 dalla versione 9.0.60.184), per cui è richiesta l’installazione di un plugin o di un software apposito (per esempio YouTube x iPhone), questa è la tabella di compatibilità per browser e device disponibili nel futuro prossimo:&lt;/p&gt;
&lt;p&gt; &lt;/p&gt;
&lt;table style=&quot;text-align: center; width: 550px;&quot; border=&quot;1&quot; cellspacing=&quot;1&quot; cellpadding=&quot;1&quot;&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;th&gt;Codec/Container&lt;/th&gt; &lt;th&gt;IE&lt;/th&gt; &lt;th&gt;FIREFOX&lt;/th&gt; &lt;th&gt;SAFARI&lt;/th&gt; &lt;th&gt;CHROME&lt;/th&gt; &lt;th&gt;OPERA&lt;/th&gt; &lt;th&gt;IPHONE&lt;/th&gt; &lt;th&gt;ANDROID&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Theora+Vorbis+Ogg&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;3.5+&lt;/td&gt;
&lt;td&gt;†&lt;/td&gt;
&lt;td&gt;5.0+&lt;/td&gt;
&lt;td&gt;10.5+&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;H.264+AAC+MP4&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;9.0+&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;3.0+&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;3.0+&lt;/td&gt;
&lt;td&gt;2.0+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;WebM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;9.0+*&lt;/td&gt;
&lt;td&gt;4.0+&lt;/td&gt;
&lt;td&gt;†&lt;/td&gt;
&lt;td&gt;6.0+&lt;/td&gt;
&lt;td&gt;10.6+&lt;/td&gt;
&lt;td&gt;·&lt;/td&gt;
&lt;td&gt;2.3&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;* Internet Explorer 9 supporterà WebM solo con un’installazione a parte del CoDec (Microsoft non distribuirà il CoDec con l’OS o il browser) &lt;br /&gt;† Safari interpreta correttamente quello che QuickTime è in grado di riprodurre: QuickTime ha il supporto nativo soltanto per H.264/AAC in MP4.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;In definitiva, per compatibilità sono necessari:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una versione container &lt;strong&gt;WebM&lt;/strong&gt;, video &lt;strong&gt;VP8 &lt;/strong&gt;e audio &lt;strong&gt;Vorbis&lt;/strong&gt;;&lt;/li&gt;
&lt;li&gt;una versione container &lt;strong&gt;MP4&lt;/strong&gt;, video &lt;strong&gt;H264 &lt;/strong&gt;baseline video e audio &lt;strong&gt;AAC &lt;/strong&gt;“low complexity”;&lt;/li&gt;
&lt;li&gt;una versione container &lt;strong&gt;OGG&lt;/strong&gt;, video &lt;strong&gt;Theora &lt;/strong&gt;e audio &lt;strong&gt;Vorbis&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Con questa combinazione è possibile supportare tutti i moderni browser e device tramite un meccanismo di fallback a catena fino al video player basato su Adobe Flash™.&lt;br /&gt;Per i contenuti “solo audio”, basta derivare un subset di quanto elencato sopra:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;una versione Vorbis;&lt;/li&gt;
&lt;li&gt;una versione AAC “low complexity”;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt; &lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Costi di licenza&lt;/strong&gt;&lt;br /&gt;Licenze e brevetti per H264 e AAC (coperti da brevetti internazionali).&lt;br /&gt;Il consorzio MPEG-LA è titolare della gestione della licenza del CoDec H264 - &lt;a href=&quot;http://www.mpegla.com&quot;&gt;http://www.mpegla.com&lt;/a&gt;&lt;br /&gt;MPEG-LA ha un portfolio complesso per la licenza d’uso del CoDec e distingue in due categorie i produttori di strumenti di codifica/decodifica e i distributori di contenuti: per entrambe le categorie sono previsti costi annuali e per pezzo/contenuto.&lt;br /&gt;Gli gli altri contenitori citati, WebM, OGG e codec Theora, Vorbis sono invece open source e non ci sono problemi di patent pending.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Per ulteriori informazioni&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;sezione sul sito ufficiale di Mpeg-LA - &lt;a href=&quot;http://www.mpegla.com/main/programs/AVC/Pages/Intro.aspx&quot; target=&quot;_blank&quot;&gt;http://www.mpegla.com/main/programs/AVC/Pages/Intro.aspx&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;articolo su StreamingMedia.com a proposito del sistema di licenza di Mpeg-LA;&lt;a href=&quot;http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/The-H.264-Licensing-Labyrinth-65403.aspx&quot; target=&quot;_blank&quot;&gt; http://www.streamingmedia.com/Articles/Editorial/Featured-Articles/The-H.264-Licensing-Labyrinth-65403.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Anche per l’uso del CoDec audio AAC – anch’esso coperto da brevetto internazionale – sono previsti costi di licenza, ma con una tabella più semplice da interpretare.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt; &lt;/strong&gt;pagina specifica sul sito di VIA Licensing - &lt;a href=&quot;http://www.vialicensing.com/licensing/aac-fees.aspx&quot;&gt;http://www.vialicensing.com/licensing/aac-fees.aspx&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description><pubDate>Thu, 28 Apr 2011 13:35:23 +0200</pubDate><link>https://www.channelweb.it/video-sul-web-codec-e-container</link><guid>https://www.channelweb.it/video-sul-web-codec-e-container</guid></item><item><title>BEdita, semantic content managment framework</title><description>Prima beta scaricabile del nostro progetto &lt;hr/&gt;&lt;p&gt;Dopo due anni di duro lavoro (in collaborazione con &lt;a title=&quot;Chia lab Srl&quot; href=&quot;http://www.chialab.it&quot; target=&quot;_blank&quot;&gt;Chialab&lt;/a&gt;) abbiamo finalmente pubblicato e rilascato la prima &lt;em&gt;beta &lt;/em&gt;pubblica con licenza open source del progetto &lt;a title=&quot;BEdita.com&quot; href=&quot;http://www.bedita.com&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;BEdita&lt;/strong&gt;&lt;/a&gt;: un framework per creare applicazioni Web pensato per il Web2.0, che ambisce a diventare uno strumento di riferimento per &lt;a title=&quot;Web 3.0&quot; href=&quot;http://www.scribd.com/doc/2021419/A-More-Revolutionary-Web-Print-Version-International-Herald-Tribune&quot; target=&quot;_blank&quot;&gt;il prossimo Web3.0&lt;/a&gt; e per il futuro &lt;a title=&quot;Semantic Web&quot; href=&quot;http://www.w3.org/2001/sw/&quot; target=&quot;_blank&quot;&gt;Web Semantico&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;La beta scaricabile la trovate su &lt;a title=&quot;BEdita 3.0 - latest release&quot; href=&quot;http://www.bedita.com/be-download&quot; target=&quot;_self&quot;&gt;http://www.bedita.com/be-download&lt;/a&gt;&lt;/p&gt;
&lt;h3&gt;&lt;strong&gt;Framework o CMS?&lt;/strong&gt;&lt;br /&gt;&lt;/h3&gt;
&lt;p&gt;&lt;a title=&quot;BEdita.com&quot; href=&quot;http://www.bedita.com&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;BEdita&lt;/strong&gt;&lt;/a&gt; presenta molte analogie con i cosiddetti &lt;a title=&quot;CMS&quot; href=&quot;http://www.contentmanager.eu.com/history.htm&quot; target=&quot;_blank&quot;&gt;CMS (Content Management Systems)&lt;/a&gt; e spesso &amp;egrave; presentato cos&amp;igrave; per semplicit&amp;agrave;, ne rispetta infatti (almeno in parte) la definizione: &lt;em&gt;a tool that enables technical and non technical staff to create, edit, manage and finally publish a variety of content (such as text, graphics, video, documents etc). &lt;/em&gt;Con la differenza che lato &lt;em&gt;publishing&lt;/em&gt; non fornisce volutamente una soluzione di default finita e univoca.&lt;/p&gt;
&lt;p&gt;Una buona definizione &lt;a title=&quot;what is a framework?&quot; href=&quot;http://blog.newtonicaonline.com/2008/12/06/what-is-framework&quot; target=&quot;_blank&quot;&gt;di framework software&lt;/a&gt; ci pu&amp;ograve; aiutare a capire meglio: a &lt;em&gt;framework is &lt;/em&gt;&lt;em&gt;&lt;strong&gt;incomplete, though concrete, driving solution to recurring high-value problem. &lt;/strong&gt;&lt;/em&gt;In questo senso BEdita &amp;egrave;:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;em&gt;incomplete &lt;/em&gt;&amp;ndash; non &amp;egrave; uno software che da solo risolve un problema/bisogno di un utente; piuttosto &amp;egrave; un potente strumento per 	[web]designer/[web]developer che vogliono creare applicazioni frontend; &lt;/li&gt;
&lt;li&gt;&lt;em&gt;driving 	solution to recurring high-value problem&lt;/em&gt; &amp;ndash; &amp;egrave; utile in tutte le situazioni in cui debba costruire 	un&#039;applicazione (&lt;em&gt;frontend&lt;/em&gt;)&lt;em&gt; &lt;/em&gt;in cui &amp;egrave; necessario gestire 	contenuti complessi e multimediali, e le loro relazioni semantiche; 	evita a un designer/developer di dover affrontare e risolvere tutte 	le tipiche problematiche correlate. &lt;/li&gt;
&lt;/ol&gt;
&lt;h3&gt;&lt;strong&gt;Architettura e principali features&lt;/strong&gt;&lt;/h3&gt;
&lt;p&gt;A livello architetturale gli elementi fondamentali del &lt;em&gt;semantic framework &lt;/em&gt;sono due:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;un&#039;applicazione 	Web di backend per la redazione dei contenuti e delle loro propriet&amp;agrave; 	e relazioni semantiche, con un&#039;interfaccia utente innovativa per 	l&#039;ergonomia tramite l&#039;associazione cromatica fra tipologie di 	oggetti, l&#039;uso estensivo del drag&#039;n&#039;drop e altre tecniche AJAX; &lt;/li&gt;
&lt;li&gt;un API di 	frontend, servizi e specifiche per creare applicazioni frontend; con 	interfaccia Web in prima battuta, ma anche desktop/mobili 	sfruttando, per esempio, l&#039;interfaccia nativa REST/XML. &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;L&#039;applicazione &lt;strong&gt;backend&lt;/strong&gt; &amp;egrave; unica ed &amp;egrave; la medesima per ogni installazione del sistema o istanza, le applicazioni &lt;strong&gt;frontend &lt;/strong&gt;sono costruite tramite un&#039;&lt;strong&gt;API &lt;/strong&gt;ed ereditano dal core del sistema&lt;strong&gt; classi Model e business logic&lt;/strong&gt;: possono essere poche linee di codice PHP o strutture pi&amp;ugrave; complesse. Questa separazione &amp;egrave; una scelta fatta per ragioni di sicurezza, efficienza, scalabilit&amp;agrave; e per lasciare maggiore libert&amp;agrave; possibile al lavoro del designer/developer.&lt;/p&gt;
&lt;p&gt;Riassiumiamo di seguito le caratteristiche/features pi&amp;ugrave; interessanti del sistema nel suo complesso:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;internazionalizzazione&lt;/strong&gt; completa: gestione di contenuti e interfaccia utente in qualunque 	lingua (tutte le lingue definite dallo standard ISO-693-3 sono in 	teoria supportate) &amp;ndash; lato UI &amp;egrave; utilizzato il formato gettext, 	mentre per oggetti/contenuti &amp;egrave; stata creata una struttura dati 	dedicata; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;sistema a&lt;strong&gt; oggetti&lt;/strong&gt;: 	ogni tipo di contenuto dentro BEdita &amp;egrave; un oggetto, che pu&amp;ograve; essere 	taggato, categorizzato, tradotto, geolocalizzato; quindi non solo 	documenti, ma anche immagini, video, eventi, schede anagrafiche, 	gallerie multimediali, newsletter... &lt;/li&gt;
&lt;li&gt;estensione &lt;strong&gt;oggetti: &lt;/strong&gt;possibilit&amp;agrave; 	di creare nuovi tipi di oggetti, possibilit&amp;agrave; di aggiungere 	propriet&amp;agrave; custom tipizzate agli oggetti stessi; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;modularit&amp;agrave;&lt;/strong&gt;: 	moduli software specifici per task e tipi di contenuti differenti 	(cio&amp;egrave; &lt;em&gt;multimedia, events, 	news, administration, publishing, addressbook, newsletter&lt;/em&gt;,...) &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; posibilit&amp;agrave; 	di creare &lt;strong&gt;relazioni 	semantiche libere&lt;/strong&gt; fra 	oggetti; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;sistemi di &lt;strong&gt;autenticazione&lt;/strong&gt; interno o esterno/pluggable tipo LDAP o OpenID; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;gestione integrata di sistema di &lt;strong&gt;newsletter&lt;/strong&gt; (modulo dedicato); &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;statistiche&lt;/strong&gt; redazionali, integrazione di statistiche con sistemi come Google 	analytics, Piwik e log del web server (apache logs); &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;granularit&amp;agrave;&lt;/strong&gt; di accesso: definizione dinamica di gruppi di utenti con accesso in 	lettura/scrittura ai singoli moduli software; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt; &lt;strong&gt;interfaccia XML/REST&lt;/strong&gt; e JSON nativa per gli oggetti pubblicati; &lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;ogni oggetto &amp;egrave; identificato 	da un nome proprio alfanumerico detto&lt;strong&gt;&lt;em&gt; nickname&lt;/em&gt;&lt;/strong&gt;&lt;em&gt; &lt;/em&gt;che pu&amp;ograve; essere usato 	nelle URL e applicazioni frontend per referenziarlo; &amp;egrave; l&#039;equivalente &lt;em&gt;semantico&lt;/em&gt; dell&#039;ID; &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description><pubDate>Wed, 13 May 2009 15:04:00 +0200</pubDate><link>https://www.channelweb.it/bedita-semantic-content-managment-framework</link><guid>https://www.channelweb.it/bedita-semantic-content-managment-framework</guid></item><item><title>Il Web compie 20 anni, e non li dimostra</title><description>&lt;p&gt;Nel marzo del 1989 a Tim Berners Lee venne un&#039;idea...&lt;/p&gt;
&lt;hr/&gt;&lt;p&gt;Sembra passato veramente tanto tempo dal &lt;a href=&quot;http://info.cern.ch/www20/&quot; target=&quot;_blank&quot; title=&quot;CERN 20 years WWW&quot;&gt;marzo 1989&lt;/a&gt; quando un ricercatore del &lt;a href=&quot;http://cern.ch&quot; target=&quot;_blank&quot; title=&quot;CERN website&quot;&gt;CERN &lt;/a&gt;di Ginevra propose un documento intititolato: &lt;span style=&quot;text-decoration: underline;&quot;&gt;&lt;em&gt;Information Management : a Proposal&lt;/em&gt;&lt;/span&gt;.&lt;/p&gt;

&lt;p&gt;In &lt;a href=&quot;http://info.cern.ch/Proposal.html&quot; target=&quot;_blank&quot; title=&quot;Berners Lee Proposal&quot;&gt;questo documento&lt;/a&gt; proponeva &lt;em&gt;&quot;a large hypertext database with typed links&quot;&lt;/em&gt;, e non riscosse un grande successo all&#039;epoca (beh, capita spesso alle buone idee).&lt;/p&gt;

&lt;p&gt;Per il primo sistema Web funzionante bisognerà aspettare la fine del 1990 quando Berners Lee mise in piedi: un Web server, un browser, il prodocollo HTTP e le prime pagine HTML che descrivevano il progetto stesso....&lt;/p&gt;

&lt;p&gt;Qui troverai approfondimenti sul &lt;a href=&quot;http://info.cern.ch&quot; target=&quot;_blank&quot; title=&quot;CERN: the First Web Server&quot;&gt;primo server Web&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Ora il Web è diventato uno strumento importante nella vita di tutti i giorni per moltissime persone: ma è ancora sottoutilizzato, usato male e fondamentalmente non compreso appieno .... insomma c&#039;è ancora davvero tanto da fare.... siamo solo all&#039;inizio! :-)&lt;/p&gt;

&lt;p&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Nota&lt;/strong&gt;: &lt;em&gt;è bello notare come una figura come Berners Lee non sia poi diventata una specie di popstar, è sempre rimasto dietro le quinte a lavorare e ha preso la parola solo su argomenti veramente importanti (vedi &lt;a href=&quot;http://en.wikipedia.org/wiki/Net_Neutrality&quot; target=&quot;_blank&quot; title=&quot;Net Neutrality&quot;&gt;Net Neutrality&lt;/a&gt; e &lt;a href=&quot;http://www.w3.org/2001/sw/SW-FAQ&quot; target=&quot;_blank&quot; title=&quot;W3C: Semantic web FAQ&quot;&gt;Semantic Web&lt;/a&gt;). E proprio in questi giorni si è espresso chiaramente &lt;a href=&quot;http://punto-informatico.it/2574193/PI/News/berners-lee-non-spiate-rete.aspx&quot; target=&quot;_blank&quot; title=&quot;Berners-Lee: non spiate la rete &quot;&gt;in difesa della privacy sul Web&lt;/a&gt;. &lt;/em&gt;Grazie Tim!!&lt;/p&gt;
</description><pubDate>Sun, 15 Mar 2009 12:24:59 +0100</pubDate><link>https://www.channelweb.it/il-web-compie-20-anni-e-non-li-dimostra</link><guid>https://www.channelweb.it/il-web-compie-20-anni-e-non-li-dimostra</guid></item><item><title>Quante licenze Open Source? Ne bastano 4</title><description>Anzi due. Parola di Bruce Perens.&lt;hr/&gt;&lt;p&gt;In un &lt;a title=&quot;Perens Open Source Licenses&quot; href=&quot;http://itmanagement.earthweb.com/osrc/article.php/12068_3803101_3/Bruce-Perens-How-Many-Open-Source-Licenses-Do-You-Need.htm&quot; target=&quot;_blank&quot;&gt;bell&#039;articolo&lt;/a&gt; che invito tutti a leggere &lt;a title=&quot;Bruce Perens&quot; href=&quot;http://perens.com/&quot; target=&quot;_blank&quot;&gt;Bruce Perens&lt;/a&gt; affronta il classico problema di quale licenza &lt;a title=&quot;Free/Open Source&quot; href=&quot;http://en.wikipedia.org/wiki/Free_and_Open_Source_Software&quot; target=&quot;_blank&quot;&gt;Free/Open Source&lt;/a&gt; scegliere per il proprio progetto.&lt;/p&gt;
&lt;p&gt;Esprime bene quello che penso da parecchio tempo, ovviamente lo fa molto meglio di quanto potrei fare io...&lt;/p&gt;
&lt;p&gt;In breve il problema &amp;egrave; questo: ci sono tante licenze Free/Open Source (pi&amp;ugrave; di 70) nate per scopi differenti; tutte rispettano i principi del &lt;a title=&quot;Free Software Foundation&quot; href=&quot;http://www.fsf.org/&quot; target=&quot;_blank&quot;&gt;Free Software&lt;/a&gt; e dell&#039;&lt;a title=&quot;Open Source Initiative&quot; href=&quot;http://www.opensource.org&quot; target=&quot;_blank&quot;&gt;Open Source&lt;/a&gt;; non tutte sono &lt;em&gt;della stessa qualit&amp;agrave;&lt;/em&gt;; molte possono creare conflitti: se devo combinare pi&amp;ugrave; software con licenze differenti potrei semplicemente non farcela o complicarmi parecchio la vita. Che fare?&lt;/p&gt;
&lt;p&gt;Semplice. Per chi fa &lt;em&gt;business&lt;/em&gt; con il software Free/Open Source Perens individua due obiettivi tipici:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; &lt;em&gt;to get everyone possible to use &lt;/em&gt;&lt;em&gt;your software to do things the same way &lt;/em&gt;(per esempio, se vuoi promuovere un formato/protocollo affinch&amp;egrave; diventi uno &lt;em&gt;standard&lt;/em&gt;) &lt;/li&gt;
&lt;li&gt; &lt;em&gt;to create a partnership for software development, where everybody shares in the work&lt;/em&gt; (cio&amp;egrave; creare un &lt;em&gt;ecosistema collaborativo&lt;/em&gt; attorno al tuo progetto/prodotto e far si che un possibile concorrente se ne possa anche avvantaggiare ma sia costretto a condividere miglioramenti e correzioni apportate al software) &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Per raggiungere al meglio questi obiettivi i consigli sono:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt; una licenza &lt;em&gt;permissiva&lt;/em&gt; come &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot;&gt;The Apache License 2.0&lt;/a&gt; simile alle licenze MIT e BSD, ma con una protezione migliore dai brevetti (obiettivo: maggiore uso/penetrazione del software); &lt;/li&gt;
&lt;li&gt;una licenza per &lt;em&gt;condividere con delle regole&lt;/em&gt; come la &lt;a href=&quot;http://www.fsf.org/licensing/licenses/gpl.html&quot;&gt;GPL 3&lt;/a&gt;, evoluzione delle licenza GPL, criticata per delle clausole anti-DRM che per Perens sono invece fra i suoi punti di forza (obiettivo: permettere un ampio uso ma &lt;em&gt;costringere a collaborare&lt;/em&gt; sull&#039;evoluzione del software);&lt;br /&gt;&lt;/li&gt;
&lt;li&gt;una licenza &lt;em&gt;via di mezzo &lt;/em&gt;come &lt;a href=&quot;http://www.fsf.org/licensing/licenses/lgpl.html&quot;&gt;LGPL 3&lt;/a&gt; che consente di creare soluzioni proprietarie, ma richiede di rendere &lt;em&gt;disponibili &lt;/em&gt;eventuali migliorie/correzioni;&lt;/li&gt;
&lt;li&gt;una licenza &lt;a href=&quot;http://www.fsf.org/licensing/licenses/agpl.html&quot;&gt;Affero GPL3&lt;/a&gt; pensata per condividere con delle regole (&lt;em&gt;sharing-with-rules&lt;/em&gt;) anche il software tipicamente usato via rete: vedi applicazioni Web (ma non solo) in primis. &lt;br /&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Quest&#039;ultima licenza vuole evitare che il &lt;strong&gt;&lt;em&gt;Google&lt;/em&gt; &lt;em&gt;di turno&lt;/em&gt;&lt;/strong&gt; si prenda il tuo software e lo usi senza condividere le modifiche: la &lt;strong&gt;GPL&lt;/strong&gt; classica richiede la &lt;em&gt;condivisione&lt;/em&gt; del codice &lt;em&gt;unicamente &lt;/em&gt;quando il codice &amp;egrave; distribuito, ma il &lt;strong&gt;&lt;em&gt;Google di turno&lt;/em&gt;&lt;/strong&gt; non redistribuisce software, pubblica servizi. Questa licenza equipara l&#039;utilizzo di un servizio via rete (vedi: usare una Web application come GMail) alla &lt;em&gt;distribuzione&lt;/em&gt; del software: il &lt;strong&gt;&lt;em&gt;Google di turno&lt;/em&gt;&lt;/strong&gt; &amp;egrave; obbligato a &lt;em&gt;rendere disponibili &lt;/em&gt;le sue modifiche per il solo fatto di pubblicare sui suoi server un servizio basato su quel software.&lt;/p&gt;
&lt;p&gt;E&#039; la stessa licenza che abbiamo scelto per il nostro Semantic Content Management Framework &lt;a title=&quot;BEdita&quot; href=&quot;http://www.bedita.com&quot; target=&quot;_blank&quot;&gt;&lt;strong&gt;BEdita&lt;/strong&gt;&lt;/a&gt;, fa piacere notare che Perens avrebbe preso la stessa decisione.....&lt;/p&gt;
&lt;p&gt;Per concludere le licenze consigliate sono di fatto solo due: &lt;a href=&quot;http://www.apache.org/licenses/LICENSE-2.0&quot;&gt;The Apache License 2.0&lt;/a&gt; e &lt;a href=&quot;http://www.fsf.org/licensing/licenses/gpl.html&quot;&gt;GPL 3 &lt;/a&gt;. Le altre due (LGPL3 e Affero GPL3) sono solo variazioni della GPL3.&lt;/p&gt;
&lt;p&gt;Sono tutte licenze &lt;em&gt;compatibili &lt;/em&gt;fra loro e (SOPRATTUTTO) sono state studiate e revisionate &lt;strong&gt;parola per parola&lt;/strong&gt; da &lt;em&gt;decine e decine di avvocati&lt;/em&gt; delle aziende pi&amp;ugrave; grandi al mondo.&lt;em&gt; &lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;em&gt;&quot;No license anywhere has had 1/10 of the legal review that went into GPL3&lt;/em&gt;.&quot;&lt;/p&gt;
&lt;p&gt;Quindi perch&amp;egrave; non usarle? E perch&amp;egrave; mai inventarsene di nuove?&lt;/p&gt;</description><pubDate>Tue, 17 Feb 2009 01:06:52 +0100</pubDate><link>https://www.channelweb.it/quante-licenze-ne-bastano-4</link><guid>https://www.channelweb.it/quante-licenze-ne-bastano-4</guid></item><item><title>XPS, attacco all&#039;altro monopolio, part 1</title><description>Ovvero quando Microsoft decide di entrare nei terreni consolidati e presidiati da Adobe Corporation.&lt;hr/&gt;&lt;p&gt;Con il lancio di Vista&amp;trade;, la Microsoft (MS, ma quella &#039;mmericana) ha presentato due nuovi &quot;standard suoi&quot;: Silverlight per la pubblicazione di contenuti multimediali e vettoriali su Web e XPS per la fruizione di contenuti paginati orientati alla stampa.&lt;/p&gt;
&lt;p&gt;Perch&amp;eacute; Silverlight&amp;trade; e XPS sono i concorrenti diretti di due &quot;standard&quot; &lt;em&gt;de facto&lt;/em&gt;: il formato di file SWF (Adobe Flash&amp;trade;, Flex&amp;trade;, ecc&amp;hellip;) e il formato PDF (Adobe Acrobat&amp;trade; e tante altre robe).  Oggi tocca a...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;!--more--&gt;
&lt;h3&gt;XPS&lt;/h3&gt;
&lt;p&gt;La MS ha sviluppato XPS (&lt;strong&gt;X&lt;/strong&gt;ML &lt;strong&gt;P&lt;/strong&gt;aper &lt;strong&gt;S&lt;/strong&gt;pecification, nome in codice &amp;ldquo;metro&amp;rdquo;) in cooperazione con altre &lt;em&gt;IT companies&lt;/em&gt;: come in parte recita il nome, &amp;ldquo;specifiche per la carta in XML&amp;rdquo;, &amp;egrave; il set di specifiche tecniche di un linguaggio basato su XML per documenti paginati (cartacei e non), indipendenti da piattaforme software e periferiche I/O: le pagine del documento possono contenere testo e grafica, e il loro aspetto &amp;egrave; consistente qualunque sia la stampante o il software di visualizzazione utilizzato.  In pratica, un file XPS &amp;egrave; un archivio &lt;em&gt;zip&lt;/em&gt; contenente tutti i file di cui si compone il documento: un file XML per ciascuna pagina, il testo, i font, le immagini bitmap, grafica vettoriale 2D e le informazioni DRM (&lt;em&gt;Digital Rights Management&lt;/em&gt;).  In MS Vista&amp;trade; il supporto a XPS &amp;egrave; nativo: &amp;egrave; utilizzato come formato di &lt;em&gt;spool&lt;/em&gt; per la stampa, si possono creare documenti XPS tramite una apposita stampante virtuale (&lt;em&gt;virtual XPS printer driver&lt;/em&gt;) ed &amp;egrave; pre-installato un programma di visualizzazione come estensione del &lt;em&gt;browser&lt;/em&gt; Internet Explorer 7 (&lt;em&gt;XPS Viewer&lt;/em&gt;). Il &lt;em&gt;viewer&lt;/em&gt; e il &lt;em&gt;driver&lt;/em&gt; sono disponibili agli utenti di Windows XP tramite l&#039;installazione di .Net Framework 3.0.  Non riassumo le specifiche della tecnologia XPS, che potete &lt;a title=&quot;XML Specs su Wikipedia (en)&quot; href=&quot;http://en.wikipedia.org/wiki/XML_Paper_Specification&quot; target=&quot;_blank&quot;&gt;naturalmente leggere altrove&lt;/a&gt;. Sta di fatto che la MS ha sottoposto dette specifiche al ECMA International per ottenere il riconoscimento dello &lt;em&gt;standard&lt;/em&gt; internazionale (committee TC46).  E poi la licenza &amp;egrave; un capolavoro di comunitarismo gi&amp;agrave; nel nome, &lt;em&gt;Community Promise for XPS,&lt;/em&gt; e dispone che sia &lt;em&gt;royalty free&lt;/em&gt; e liberamente ridistribuibil&lt;em&gt;e.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3&gt;XML VS PDF&lt;/h3&gt;
&lt;p&gt;Il formato PDF (Portable Document Format) non bisogna certo di presentazioni. Certo XPS nasce come suo concorrente diretto:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Sia XPS che PDF possono essere usati come formato di visualizzazione, scambio e stampa di documenti.&lt;/li&gt;
&lt;li&gt;Entrambi mirano a descrivere pagine fisse, ovvero di precise dimensioni e il cui contenuto non cambia aspetto e disposizione con la piattaforma di visualizzazione.&lt;/li&gt;
&lt;li&gt;Sia XPS che PDF possono essere usati come linguaggi di descrizione della stampa e comunicazione con le macchine stampanti. Per esempio, cos&amp;igrave; come a PDF si accompagna il formato JDF (Job Definition Format) per la descrizione del flusso di lavoro, XPS &amp;egrave; dotato dei &amp;ldquo;Print Tickets&amp;rdquo; che, seppure con qualche differenza, implementano un&#039;applicazione simile.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Certo, PDF ha i vantaggi di&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;essere da anni uno standard di mercato, soprattutto nella grafica;&lt;/li&gt;
&lt;li&gt;essere molto conosciuto e largamente utilizzato;&lt;/li&gt;
&lt;li&gt;avere una enorme libreria di software dedicato;&lt;/li&gt;
&lt;li&gt;essere davvero &lt;em&gt;cross-platform&lt;/em&gt;, dal momento che &amp;egrave; utilizzabile su qualsiasi sistema, dai grossi server ai palmari&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ma &amp;egrave; vero anche che XPS&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;egrave; realmente completamente gratuito;&lt;/li&gt;
&lt;li&gt;&amp;egrave; basato su XML e compressione zip, quindi &amp;egrave; facile e poco dispendioso implementare software dedicato;&lt;/li&gt;
&lt;li&gt;&amp;egrave; distribuito con il sistema operativo pi&amp;ugrave; diffuso del pianeta;&lt;/li&gt;
&lt;li&gt;anche se Adobe Corporation &amp;egrave; una gigantesca holding potente ed influente, la Microsoft &amp;egrave; ancora pi&amp;ugrave; grande, pi&amp;ugrave; potente e, &lt;em&gt;&amp;ccedil;a va de soi&lt;/em&gt;, pi&amp;ugrave; influente.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Continua...&lt;/p&gt;
&lt;p&gt;(con Silverlight&amp;trade;, attacco all&#039;altro monopolio - parte II)&lt;/p&gt;</description><pubDate>Fri, 14 Nov 2008 14:22:36 +0100</pubDate><link>https://www.channelweb.it/xps-attacco-all-altro-monopolio-part-1-1</link><guid>https://www.channelweb.it/xps-attacco-all-altro-monopolio-part-1-1</guid></item><item><title>Nomi di dominio “internazionalizzati”</title><description>L&#039;internazionalizzazione dei nomi di dominio in 6 mosse (o poco più)&lt;hr/&gt;&lt;p&gt;La questione se la sono posta i non occidentali (naturalmente) gi&amp;agrave; una decina di anni fa.&lt;/p&gt;
&lt;p&gt;Dunque da allora ad oggi:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Il principale problema consisteva nell&#039;impossibilit&amp;agrave; pratica di riprogettare l&#039;intera struttura dei DNS;&lt;/li&gt;
&lt;li&gt;Dopo qualche anno di dibattiti, nel 2003 &amp;egrave; stato definito lo standard &quot;&lt;em&gt;backward compatible&lt;/em&gt;&quot; &lt;strong&gt;IDNA&lt;/strong&gt; (&lt;strong&gt;I&lt;/strong&gt;nternationalizing &lt;strong&gt;D&lt;/strong&gt;omain &lt;strong&gt;N&lt;/strong&gt;ames in &lt;strong&gt;A&lt;/strong&gt;pplications): un&#039;applicazione &lt;em&gt;IDNA compatible&lt;/em&gt; &amp;egrave; in grado di effettuare conversioni dalla rappresentazione &quot;restricted ASCII&quot; a quella &quot;non-ASCII&quot; e viceversa (per es. un  browser Web usa la versione restricted-ASCII per interrogare il DNS, ma presenta l&#039;URL in lingua madre nella barra degli indirizzi);&lt;/li&gt;
&lt;li&gt;Da allora sono accettati i domini &lt;strong&gt;IDN&lt;/strong&gt; (&lt;strong&gt;I&lt;/strong&gt;nternationalized &lt;strong&gt;D&lt;/strong&gt;omain &lt;strong&gt;N&lt;/strong&gt;ames), che sono tutti quelli composti esclusivamente da &lt;em&gt;labels&lt;/em&gt;&amp;nbsp;a cui si pu&amp;ograve; applicare con successo l&#039;algoritmo IDNA di conversione &quot;ToASCII&quot;;&lt;/li&gt;
&lt;li&gt;Dal 2004 gi&amp;agrave; in Giappone si potevano registrare nomi di dominio internazionalizzati con estenzione .jp, successivamente anche i .info;&lt;/li&gt;
&lt;li&gt;Solo nel novembre 2007 un gruppo di lavoro dell&#039;ICANN ha iniziato a lavorare agli altri TLD delle varie nazioni;&lt;/li&gt;
&lt;li&gt;Nel marzo 2008 infine l&#039;IETF ha fondato un gruppo di lavoro per aggiornare il protocollo IDNA.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Detto questo resta che:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Tutti i moderni browser fanno la traduzione tramite l&#039;algoritmo IDNA citato e sono dunque compatibili: Mozilla 1.4 (con Firefox), Netscape 7.1, Opera 7.11 e Safari.Internet Explorer 7.0 e le URL APIs di Windows Vista offrono supporto nativo agli IDN; non &amp;egrave; compatibile Internet Explorer 6 (ma esiste un  &lt;em&gt;plugin&lt;/em&gt;).&lt;/li&gt;
&lt;li&gt;C&#039;&amp;egrave; un &lt;strong&gt;grosso problema di sicurezza&lt;/strong&gt;&amp;nbsp;legato all&#039;uso di omografi/omoglifi in situazioni di &lt;em&gt;phishing&lt;/em&gt; o, meglio, per quello che &amp;egrave; chiamato &quot;&lt;em&gt;homograph spoofing attack&lt;/em&gt;&quot;.Per esempio questo link che segue &lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://www.xn--pypal-4ve.com/&quot;&gt;http://www.pаypal.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;non vi porta al sito di paypal, perch&amp;eacute; al posto del carattere latin 1 &quot;a&quot; (Unicode U+0061) &amp;egrave; stato usato il carattere cirillico &quot;а&quot; (Unicode U+0430), visivamente uguale. &lt;br /&gt; L&#039;esempio vale per tutti i numerosi casi di somiglianza tra lettere o ideogrammi, etc...&lt;br /&gt; L&#039;esempio citato &amp;egrave; stato fatto dal gruppo Shmoo alla conferenza hacker Shmoocon, &lt;a href=&quot;http://www.shmoo.com/idn/&quot;&gt;http://www.shmoo.com/idn/&lt;/a&gt;.
&lt;p&gt;(NB: dal novembre 2005, per sicurezza, Firefox riporta nell&#039;URL il risultato della traduzione tramite l&#039;algoritmo citato ToASCII)&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Per finire:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Si possono usare domini internazionalizzati, ma la comunicazione avviene attraverso l&#039;uso dei relativi convertiti tramite l&#039;algoritmo citato IDNA ToASCII e succede tutto a livello di browser (o in generale di applicazione &lt;em&gt;client&lt;/em&gt;, ovvero il server manco lo sa che a lui &amp;egrave; associato un nome Unicod-izzato/Internazionalizzato, perch&amp;eacute; lui &amp;egrave; configurato per funzionare con la versione ASCII del medesimo dominio);&lt;/li&gt;
&lt;li&gt;Niente &amp;egrave; definitivo, se ne discute ancora e il protocollo sar&amp;agrave; aggiornato; ma sicuramente non si abbandoner&amp;agrave; la compatibilit&amp;agrave; verso il basso.&lt;/li&gt;
&lt;/ol&gt;</description><pubDate>Mon, 10 Nov 2008 11:22:56 +0100</pubDate><link>https://www.channelweb.it/nomi-di-dominio-internazionalizzati</link><guid>https://www.channelweb.it/nomi-di-dominio-internazionalizzati</guid></item><item><title>~/.bash_history</title><description>Introduzione all&#039;uso dell&#039;history in Bourne Shell&lt;hr/&gt;&lt;p&gt;Ho appena letto di M.F. - utente Linux - che, avendo creato un programmino per inviare SMS da &lt;em&gt;shell&lt;/em&gt;, ha poi trovato prova inconfutabile delle proprie corna in &lt;code&gt;~/.bash_history&lt;/code&gt;: una relazione di sei anni, con tanto di promessa di matrimonio e progetti prolifici (by etimo), si frantumava contro un &lt;code&gt;|less&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Pare poi che M.F. non possa vivere senza di lei e dunque, avendo letto tutti gli espliciti sessuali negli SMS inviati dalla fedifraga a terzo, ha scambiato un newsgroup di Gentoo per &quot;La posta del cuore&quot; e ha - seriamente, miseramente, pateticamente - chiesto consiglio a una manica di smanettoni menefreghisti. E mi sa tanto che non &amp;egrave; colpa della tipa...&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Ma se l&#039;&lt;code&gt;history&lt;/code&gt; ha portato tanto dispiacere a M.F., pu&amp;ograve; portare altrettanto e pi&amp;ugrave; diletto a tutti noi. Vi mostro come.&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; history&lt;/pre&gt;
&lt;p&gt;Vi mena gi&amp;ugrave; tutti i comandi salvati automaticamente in &lt;code&gt;~/bash_history&lt;/code&gt;, preceduti da un numero progressivo di riga.&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; history 10&lt;/pre&gt;
&lt;p&gt;Vi tira fuori gli ultimi 10. 	Ok, ma che me ne faccio dei numeri di riga? E&#039; presto detto:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; !101&lt;/pre&gt;
&lt;p&gt;Esegue il comando alla posizione 101.&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; !-3&lt;/pre&gt;
&lt;p&gt;Esegue il comando che compare 3 posizioni indietro partendo dal basso (conta a partire da 1, non da 0 come si aspetterebbe qualche esploratore di &lt;em&gt;array&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;).&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; !!&lt;/pre&gt;
&lt;p&gt;Richiama l&#039;ultimo comando inserito, sinonimo di &lt;code&gt;!-1&lt;/code&gt;. 	Poi ancora:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; !wh&lt;/pre&gt;
&lt;p&gt;Richiama l&#039;ultimo comando che inizia per &quot;wh...&quot;. 	Se non dovessi ricordare se l&#039;ultimo era un &lt;code&gt;who&lt;/code&gt; oppure un &lt;code&gt;which&lt;/code&gt;, puoi sempre digitare &lt;code&gt;CTRL+r&lt;/code&gt; e iniziare a scrivere una qualunque porzione del comando: mano mano che scrivi, per magia, si materializzer&amp;agrave; l&#039;intera riga.&lt;/p&gt;
&lt;!--more--&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Pausa. 	Vi siete scaldati? Perch&amp;eacute; ora arriva la parte divertente.&lt;/p&gt;
&lt;p&gt;Innanzitutto una sostituzione veloce sull&#039;ultimo comando eseguito, &lt;code&gt;^string1^string2^&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Per esempio:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; find . -anme &quot;*php&quot; | wc -l&lt;br /&gt;	find: invalid predicate &#039;-anme&#039;        [cazzarola!]&lt;br /&gt;	&amp;gt; ^an^na^&lt;br /&gt;	find . -name &quot;*.php&quot; | wc -l&lt;br /&gt;	361&lt;/pre&gt;
&lt;p&gt;Il comando &lt;strong&gt;&lt;code&gt;!&lt;/code&gt;&lt;/strong&gt;, che da inizio ad una (cosiddetta) &lt;em&gt;history expansion&lt;/em&gt;, supporta alcune opzioni precedute da &lt;strong&gt;&lt;code&gt;:&lt;/code&gt;&lt;/strong&gt; (due punti).&lt;/p&gt;
&lt;p&gt;Si possono usare numeri interi per richiamare la n-esima parola nella riga richiesta. Per esempio:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; !cp:2&lt;/pre&gt;
&lt;p&gt;designa il secondo argomento dell&#039;ultimo comando eseguito che inizia con &quot;cp&quot;.&lt;/p&gt;
&lt;p&gt;Al posto del numero, si pu&amp;ograve; usare &lt;code&gt;^&lt;/code&gt; per riferirsi al primo argomento, oppure &lt;code&gt;$&lt;/code&gt; per l&#039;ultimo (&lt;code&gt;!!:$&lt;/code&gt; si pu&amp;ograve; accorciare in &lt;code&gt;!$&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;Oppure ancora &lt;strong&gt;&lt;code&gt;*&lt;/code&gt;&lt;/strong&gt; per richiamare tutti gli argomenti.&lt;/p&gt;
&lt;p&gt;Poi ci sono i &lt;em&gt;modificatori&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Tra i pi&amp;ugrave; utilizzati: &lt;code&gt;:p&lt;/code&gt; stampa il comando senza eseguirlo, &lt;code&gt;:t&lt;/code&gt; se l&#039;argomento &amp;egrave; un lungo &lt;em&gt;path&lt;/em&gt; prende solo la parte finale, &lt;code&gt;:h&lt;/code&gt;, al contrario, rimuove solo la parte finale e prende il resto del &lt;em&gt;path&lt;/em&gt; (&quot;p&quot; sta per &lt;em&gt;print&lt;/em&gt;, &quot;t&quot; sta per &lt;em&gt;tail&lt;/em&gt;, &quot;h&quot; sta per &lt;em&gt;head&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Infine per evitare di conservare inutile ciarpame:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; export HISTIGNORE=&quot;&amp;amp;:ls:[bf]g:exit&amp;rdquo;&lt;/pre&gt;
&lt;p&gt;[non verranno conservati comandi duplicati, &lt;code&gt;ls&lt;/code&gt;, &lt;code&gt;fg&lt;/code&gt;, &lt;code&gt;bg&lt;/code&gt; e &lt;code&gt;exit&lt;/code&gt;].&lt;/p&gt;
&lt;p&gt;Vi sembra troppo? State l&amp;igrave; scettici a dire &quot;ma chist&#039;&amp;egrave; scem&#039;... chi caz se li ricorda?!&quot;. 	A mio immodesto parere, se li usate per un po&#039;, non ci rinunciate pi&amp;ugrave;.&lt;/p&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Famo un esempio pratico articolato:&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;gt; cp ~/mytemplate.php /var/www/mysite/newfile.php&lt;br /&gt;	&amp;gt; vi !$&lt;br /&gt;	&amp;gt; cat ~/myfooter.txt &amp;gt;&amp;gt; !$&lt;br /&gt;	&amp;gt; cd !$:h&lt;br /&gt;	&amp;gt; svn ci !-2:$:t:p&lt;br /&gt;	&amp;gt; !!&lt;br /&gt;	&lt;/pre&gt;
&lt;p&gt;Ve lo spiego?&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La prima &amp;egrave; facile, copia quello da la&#039; (la mia home) a la&#039; (un&#039;altra directory);&lt;/li&gt;
&lt;li&gt;&lt;code&gt;vi /var/www/mysite/newfile.php&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cat ~/myfooter.txt &amp;gt;&amp;gt; /var/www/mysite/newfile.php&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;cd /var/www/mysite/&lt;/code&gt;;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;svn ci newfile.php&lt;/code&gt; [ma stampa solo, non eseguire, ch&amp;eacute; non sono tanto sicuro...];&lt;/li&gt;
&lt;li&gt;&lt;code&gt;svn ci newfile.php&lt;/code&gt; [era giusto e lo eseguo davvero]&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;.&lt;/p&gt;
&lt;p&gt;Bene.&lt;br /&gt; Pu&amp;ograve; bastare.&lt;br /&gt; Anzi tre cose ancora:&lt;/p&gt;
&lt;ol style=&quot;list-style-type: lower-roman;&quot;&gt;
&lt;li&gt;rientra nell&#039;uso dell&#039;&lt;code&gt;history&lt;/code&gt; anche &lt;code&gt;cd -&lt;/code&gt;, che vi permette di saltare alla directory in cui eravate prima di un &lt;code&gt;cd&lt;/code&gt; (comodo per fare avanti e&#039;ndr&amp;eacute;).&lt;/li&gt;
&lt;li&gt;l&#039;&lt;em&gt;history&lt;/em&gt; pu&amp;ograve; costituire una falla nella sicurezza sotto molteplici aspetti (non solo per questioni di corna) e in particolare su sistemi multi-utente, ma la cosa va al di la&#039; degli scopi di questo articolo.&lt;/li&gt;
&lt;li&gt;un consiglio alla morosa di M.F.: un&#039;altra volta, prima di lasciare zozzerie nel pc, lancia &quot;unset HISTFILE&quot; e la lista dei comandi inseriti sar&amp;agrave; eliminata al &lt;em&gt;logout&lt;/em&gt;. 	Poi &lt;strong&gt;MI &lt;/strong&gt;puoi mandare tutti i messaggi che ti pare...&lt;/li&gt;
&lt;/ol&gt;</description><pubDate>Mon, 10 Nov 2008 04:30:44 +0100</pubDate><link>https://www.channelweb.it/bash_history</link><guid>https://www.channelweb.it/bash_history</guid></item><item><title>PHP debug con Xdebug/Eclipse/PDT</title><description>cinque semplici istruzioni per non perdersi nella configurazione di Xdebug/Eclipse/PDT&lt;hr/&gt;&lt;p&gt;Tutti quelli che lavorano sul Web lo sanno: lo sviluppatore PHP &amp;egrave; abituato (&lt;em&gt;male&lt;/em&gt;) a debuggare a colpi di print/echo e compagnia, e talvolta gli piace anche! :-)&lt;/p&gt;
&lt;p&gt;Ok, non &amp;egrave; solo colpa del povero web developer, debuggare non &amp;egrave; &lt;strong&gt;out-of-the-box&lt;/strong&gt; come su altri linguaggi o piattaforme... (a meno di non usare IDE proprietari tipo Zend Studio)... ma ora.... siamo nel &lt;strong&gt;2008&lt;/strong&gt;, ci sar&amp;agrave; un modo semplice per farlo usando strumenti open source? O vogliamo farci abbattere dalla frustrazione del print/echo/log e continuare a perdere un sacco di tempo???&lt;/p&gt;
&lt;p&gt;Una soluzione integrata, efficace e libera &amp;egrave; usare la combinazione Xdebug + Eclipse + PDT (il plugin per sviluppare in PHP che supporta anche il debugger Zend). In rete troverete un bel p&amp;ograve; di materiale su come fare. In fondo al post troverete un paio di link utili. Non sto a riscrivere howto/tutorial gi&amp;agrave; ben fatti, leggeteli... di seguito riassumo il tutto in 5 passi, con alcuni problemi comuni (e relative soluzioni) che tipicamente incontrerete. (ah... Eclipse+PDT li dovete gi&amp;agrave; avere)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;1. installate l&#039;entensione Xdebug&lt;/strong&gt;, su linux troverete qualcosa tipo &lt;em&gt;php5-xdebug&lt;/em&gt; nel gestore di pacchetti, per win ci sono binari, per mac non so...per chi ha tempo e voglia si pu&amp;ograve; sempre ricompilare; se avete installato il debugger Zend rimuovetelo, va in conflitto con Xdebug, quindi se pensavate di installarlo non fatelo! chiaro il concetto?.... e non dimenticate la cartolina! ;-)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;2. configurate il modulo&lt;/strong&gt;, prendete il php.ini che vi serve guardando la voce &quot;Configuration File&quot; nell&#039;output di &lt;em&gt;phpinfo()&lt;/em&gt; per script web o con &lt;em&gt;php -i | grep &quot;Configuration File&quot;&lt;/em&gt; per script commandline CLI. Una configurazione di esempio &amp;egrave;:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;[XDebug]&lt;br /&gt;zend_extension=/usr/lib/php5/extensions/xdebug.so&lt;br /&gt;xdebug.remote_enable=true&lt;br /&gt;xdebug.remote_host=127.0.0.1&lt;br /&gt;xdebug.remote_port=9000&lt;br /&gt;xdebug.remote_handler=dbgp&lt;br /&gt;xdebug.profiler_output_dir=/tmp&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;ATTENZIONE&lt;/strong&gt; per la voce &lt;em&gt;zend_extension &lt;/em&gt;usate &lt;strong&gt;pathnames assoluti&lt;/strong&gt;, ma soprattutto la voce da abilitare potrebbe non essere &lt;em&gt;zend_extension&lt;/em&gt; ma &lt;em&gt;zend_extension_debug &lt;/em&gt;o &lt;em&gt;zend_extension_ts &lt;/em&gt;o ancora &lt;em&gt;zend_extension_debug_ts; &lt;/em&gt;per capirlo guardate in phpinfo() o php -i le voci &lt;em&gt;Debug Build&lt;/em&gt; e &lt;em&gt;Thread Safety&lt;/em&gt;, quindi partire da &lt;em&gt;zend_extension&lt;/em&gt;:&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt;
&lt;li&gt;se &lt;em&gt;Debug Build =&amp;gt; yes&lt;/em&gt; , aggiungete &lt;em&gt;_debug&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;se &lt;em&gt;Thread Safety =&amp;gt; enabled&lt;/em&gt; , aggiungete &lt;em&gt;_ts&lt;/em&gt; &lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;&lt;strong&gt;3. riavviate il web server e controllate &lt;/strong&gt;l&#039;output di&amp;nbsp;&lt;strong&gt; &lt;em&gt;phpinfo()&lt;/em&gt;&lt;/strong&gt;, troverete &lt;em&gt;&quot;Zend Scripting Language Engine...with Xdebug 2. ...&quot;&lt;/em&gt;. Analogamente verificate sulla command line con &lt;em&gt;php -i | grep &quot;Xdebug&quot;&lt;/em&gt; , gia&#039; che ci siete verificate i moduli con &lt;em&gt;php -m&lt;/em&gt; (no zend debugger, only xdebug!)&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;4. configurazione di eclipse PDT:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Window/Preferences/PHP/PHP executables&lt;/em&gt;: aggiungete una voce con path completo dell&#039;eseguibile php CLI con php.ini relativo&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Window/Preferences/PHP/Debug:&lt;/em&gt;Xdebug come debugger predefinito, come eseguibile quello definito sopra, e abilitate anche &lt;em&gt;&quot;Open in Browser&quot;&lt;/em&gt; fra le workbench options&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;strong&gt;5. esegui il debugger, &lt;/strong&gt;&amp;egrave; arrivato il grande momento....&lt;strong&gt; &lt;/strong&gt;andate in &lt;em&gt;&quot;Run/Open Debug Dialog...&quot; &lt;/em&gt;create nuove voci sul vostro progetto&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;PHP Script (solo PHP CLI): impostate Debugger (Xdebug), eseguibile PHP e file .php da debuggare (relativamente al worskpace); &amp;egrave; comodo impostare &lt;em&gt;&quot;Break at first line&quot;&lt;/em&gt; se non siete strasicuri del flusso di esecuzione, avrete un breakpoint alla prima riga&lt;/li&gt;
&lt;li&gt;PHP Web Page: impostate Server Debugger (Xdebug), il file iniziale o principale della sessione (non sar&amp;agrave; l&#039;unico debuggabile ovviamente), &lt;em&gt;&quot;Break at first line&quot;&lt;/em&gt; se preferite e &lt;strong&gt;attenzione: non usate &lt;em&gt;URL Auto generate&lt;/em&gt;&lt;/strong&gt; tipicamente Eclipse non conosce la vostra configurazione del web server... impostate a mano l&#039;url principale del progetto&lt;/li&gt;
&lt;li&gt;premete &lt;em&gt;Apply&lt;/em&gt; e poi &lt;em&gt;Debug&lt;/em&gt;...&lt;/li&gt;
&lt;/ul&gt;
&lt;ol&gt; &lt;/ol&gt;
&lt;p&gt;A questo punto breakpoints, variabili, espressioni..... e mai pi&amp;ugrave; echo/print.. promesso?&lt;/p&gt;</description><pubDate>Wed, 08 Oct 2008 18:22:18 +0200</pubDate><link>https://www.channelweb.it/php-debug-con-xdebug-eclipse-pdt</link><guid>https://www.channelweb.it/php-debug-con-xdebug-eclipse-pdt</guid></item></channel></rss>