<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-820374494956679050</atom:id><lastBuildDate>Wed, 06 Nov 2024 02:52:17 +0000</lastBuildDate><category>tips</category><category>libertà</category><category>variopinte ed eventuali</category><category>apps</category><category>ubuntu</category><category>linux</category><category>cultura</category><category>google</category><category>web-services</category><category>security</category><category>fesserie</category><category>projects</category><category>Design</category><category>ubuntu bulletin</category><category>Illustration</category><category>Open Source</category><category>video</category><category>whitepaper</category><category>writings</category><category>.NET</category><category>interoperability</category><category>Eclipse</category><category>arch</category><category>firefox</category><category>music</category><category>FreeRTOS</category><category>PDF</category><category>RSS feeds</category><category>links</category><category>mysql</category><category>Java</category><category>environment</category><category>microsoft bulletin</category><category>Afterhours</category><category>TMIG</category><category>awn</category><category>development</category><category>git</category><category>gnome</category><category>ios</category><category>italia.it</category><category>javascript</category><category>nodejs</category><category>python</category><category>rants</category><category>thunderbird</category><category>tibet</category><category>190.it</category><category>AI</category><category>Artificial Intelligence</category><category>Blog Action Day</category><category>Debian</category><category>EMF</category><category>Gimp</category><category>Issue trackers</category><category>Picture</category><category>SKP</category><category>TV</category><category>The &quot;Random thoughts&quot; series</category><category>VT</category><category>Voice XML</category><category>Zeroes</category><category>adrive.com</category><category>ambiente</category><category>analytics</category><category>android</category><category>apache</category><category>awoken</category><category>bagarino</category><category>bjork</category><category>black era</category><category>c++</category><category>css</category><category>digital publishing</category><category>ecomafie</category><category>elegant</category><category>embedded</category><category>emergency</category><category>epub</category><category>expressjs</category><category>frade</category><category>github</category><category>gmail</category><category>grid</category><category>habitat</category><category>home entertainment</category><category>html</category><category>html5</category><category>idea</category><category>inkling</category><category>jquery</category><category>last.fm</category><category>ma andate a cagare</category><category>mani pulite</category><category>nedb</category><category>php</category><category>postgresql</category><category>prese per il culo</category><category>redhat</category><category>redis</category><category>robert kennedy</category><category>ruby</category><category>ruby-gems</category><category>sardegna</category><category>simpatici scherzi di sisal</category><category>skype</category><category>tasse</category><category>tools</category><category>udev</category><category>ux</category><category>vala</category><category>virtual box</category><category>windows 8</category><category>wtf-of-the-day</category><category>xaml</category><category>xorovo</category><category>youtube remote</category><title>Feeling Black</title><description></description><link>http://feelingblack.blogspot.com/</link><managingEditor>noreply@blogger.com (Anonymous)</managingEditor><generator>Blogger</generator><openSearch:totalResults>195</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-4597016923854619969</guid><pubDate>Mon, 27 Jan 2014 16:02:00 +0000</pubDate><atom:updated>2014-02-06T11:14:22.786+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ios</category><category domain="http://www.blogger.com/atom/ns#">jquery</category><category domain="http://www.blogger.com/atom/ns#">wtf-of-the-day</category><title>WTF-of-the-day: jQuery + iOS + click event</title><description>According to &lt;a href=&quot;http://bugs.jquery.com/ticket/5677#comment:7&quot;&gt;this discussion&lt;/a&gt;&amp;nbsp;jQuery won&#39;t detect click events on iOS until a &quot;pointer&quot; cursor is applied to the clickable elements via CSS.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;a href=&quot;https://raw.github.com/jglovier/gifs/gh-pages/wtf/enough-internet.gif&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://raw.github.com/jglovier/gifs/gh-pages/wtf/enough-internet.gif&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;</description><link>http://feelingblack.blogspot.com/2014/01/wtf-of-day-jquery-ios-click-event.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-6657542452495622850</guid><pubDate>Sat, 04 Jan 2014 11:45:00 +0000</pubDate><atom:updated>2014-01-04T12:45:36.641+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">css</category><category domain="http://www.blogger.com/atom/ns#">html</category><title>CSS cursor property &quot;not working&quot;</title><description>If the CSS &lt;a href=&quot;https://developer.mozilla.org/en-US/docs/Web/CSS/cursor&quot;&gt;&lt;i&gt;cursor&lt;/i&gt;&lt;/a&gt; property isn&#39;t working it might be not your fault.&lt;br /&gt;
Check instead whether you have opened your browser&#39;s developer tools, because when viewing the page with them switched on the cursor shown is always the default one.&lt;br /&gt;
&lt;br /&gt;
This little issue had me scratch my head for some minutes with Chrome.</description><link>http://feelingblack.blogspot.com/2014/01/css-cursor-property-not-working.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-452664076146063854</guid><pubDate>Mon, 30 Dec 2013 10:11:00 +0000</pubDate><atom:updated>2013-12-30T11:15:00.574+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">ambiente</category><category domain="http://www.blogger.com/atom/ns#">sardegna</category><title>Da piccoli c&#39;era la giornata degli alberi</title><description>&lt;br /&gt;
La Sardegna, la mia e la tua terra, è la regione più inquinata d&#39;Italia.&lt;br /&gt;
Non è più tempo di tentennare e dire l&#39;ennesimo &quot;non è colpa mia&quot;.&lt;br /&gt;
È colpa prima di tutto di noi Sardi che non abbiamo vigilato (o che, peggio, siamo stati spesso conniventi) e solo dopo è colpa di chi ci ha avvelenato con i suoi rifiuti, le sue scorie, il suo cemento, il suo amianto.&lt;br /&gt;
Ecco perchè tocca a noi iniziare il cambiamento. E dobbiamo iniziare da noi stessi, dal nostro popolo.&lt;br /&gt;
Solo dopo aver cambiato noi stessi potremo chiedere conto a chi ha approfittato della nostra incapacità di vigilare. E state tranquilli: &lt;b&gt;sarà un conto salato&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
Ma prima di questo, molto prima della giustizia delle aule di tribunale e delle Istituzioni, prima è necessario ristabilire la cultura dell&#39;Ambiente e della sua salvaguardia, partendo fin dalle scuole per arrivare fino alle associazioni e passando, ovviamente, per la politica.&lt;br /&gt;
È necessario impartire a noi stessi, quotidianamente, la lezione del vero Ambientalismo, vale a dire quello delle piccole cose che noi tutti possiamo fare, ogni giorno. Quello che sfrutta i piccoli contributi di tutti per arrivare al risultato più grande.&lt;br /&gt;
&lt;br /&gt;
È per questo necessario per ciascuno di noi imparare cosa sia il rispetto verso l&#39;Ambiente e la Natura, in tutte le loro incarnazioni.&lt;br /&gt;
È necessario investire nelle economie Green: quelle vere, non quelle della speculazione e dell&#39;opportunismo dei grandi interessi che tutto sono salvo che interessi dei Sardi e della Sardegna.&lt;br /&gt;
&lt;br /&gt;
È necessario vigilare e insegnarci l&#39;un l&#39;altro quello che sappiamo: come si fa la raccolta differenziata, cosa fare con i propri rifiuti quando si è al mare, in montagna, nella propria &lt;i&gt;tanca&lt;/i&gt;, Come comportarsi quando si ha in mano una sigaretta, una busta di plastica vuota, una lattina, l&#39;olio esausto della propria automobile, persino come si cura un giardino.&lt;br /&gt;
&lt;br /&gt;
È necessario diventare delle persone migliori per poterci meritare delle Istituzioni migliori, una terra migliore, un turismo migliore, un&#39;economia migliore.&lt;br /&gt;
È necessario impegnarsi e fare impegnare gli altri.&lt;br /&gt;
&lt;br /&gt;
Quando ci guarderemo indietro, quando avremo fatto questi piccoli passi e terminato questo grande viaggio sarà tutto diverso. E migliore. Noi Sardi per primi e la nostra Sardegna insieme a noi.</description><link>http://feelingblack.blogspot.com/2013/12/da-piccoli-cera-la-giornata-degli-alberi.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-3599815725518095557</guid><pubDate>Thu, 17 Oct 2013 08:29:00 +0000</pubDate><atom:updated>2013-10-17T10:29:54.185+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">nedb</category><category domain="http://www.blogger.com/atom/ns#">nodejs</category><category domain="http://www.blogger.com/atom/ns#">Open Source</category><title>Pulsarjs</title><description>Here&#39;s my new pet project: &lt;b&gt;&lt;a href=&quot;https://github.com/NicolaOrritos/pulsarjs&quot;&gt;Pulsarjs&lt;/a&gt;&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I realized it to solve a simple problem: scheduling recurrent javascript functions can already be achieved with &quot;setTimeout()/setInterval()&quot; but this way the code becomes a mess very quickly.&lt;br /&gt;
Functions and the timers that schedule them get tossed around your code-base and self-imposed conventions aren&#39;t too much of an help.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Pulsarjs is a centralized organizer for your functions that stores them across restarts of your app, thanks to &lt;a href=&quot;https://github.com/louischatriot/nedb/&quot;&gt;nedb&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I&#39;m done implementing the main features of the module and some &quot;getting-started&quot; documentation. Next steps are intensive testing and more docs.&lt;br /&gt;
&lt;br /&gt;
Pulsarjs is already listed as an &lt;a href=&quot;https://npmjs.org/package/pulsarjs&quot;&gt;NPM package&lt;/a&gt;.</description><link>http://feelingblack.blogspot.com/2013/10/pulsarjs.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-8588014440166039084</guid><pubDate>Tue, 16 Jul 2013 23:11:00 +0000</pubDate><atom:updated>2013-07-17T01:11:45.475+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">bagarino</category><category domain="http://www.blogger.com/atom/ns#">expressjs</category><category domain="http://www.blogger.com/atom/ns#">github</category><category domain="http://www.blogger.com/atom/ns#">javascript</category><category domain="http://www.blogger.com/atom/ns#">nodejs</category><category domain="http://www.blogger.com/atom/ns#">projects</category><category domain="http://www.blogger.com/atom/ns#">redis</category><title>Bagarino: what is it good for?</title><description>&lt;a href=&quot;http://www.flickr.com/photos/aloha75/8461776489/&quot; title=&quot;Tickets by Sam Howzit, on Flickr&quot;&gt;&lt;img alt=&quot;Tickets&quot; height=&quot;333&quot; src=&quot;http://farm9.staticflickr.com/8380/8461776489_987d3e2fc1.jpg&quot; width=&quot;500&quot; /&gt;&lt;/a&gt; Have I ever told you about&amp;nbsp;&lt;a href=&quot;https://github.com/NicolaOrritos/bagarino&quot;&gt;&lt;i&gt;bagarino&lt;/i&gt;&lt;/a&gt;, a ticketing system I created?&lt;br /&gt;
Last time I wrote some code for it I added multi-CPU support to its existing nodejs-, expressjs-powered core.&lt;br /&gt;
It uses Redis as its backend store and sports some simple Javascript code I wrote during a few sleepless nights.&lt;br /&gt;
&lt;br /&gt;
But, &lt;a href=&quot;http://www.youtube.com/watch?v=r-bA9FYB8HY&quot;&gt;&quot;what is it good for?&quot;&lt;/a&gt;&lt;br /&gt;
Well, let&#39;s pretend you want to &lt;b&gt;grant&lt;/b&gt;, &lt;b&gt;secure&lt;/b&gt; and &lt;b&gt;govern&lt;/b&gt; access to a certain content one of your users rented/bought/subscribed-to/won on your system (e.g. a game item, or a picture, an illustration, a book or even an entire movie hosted on a CDN).&lt;br /&gt;
&lt;br /&gt;
You may need to establish how many times (or how long) that good can be accessed by that user.&lt;br /&gt;
You may also need to enforce these rules in a simple, predictable manner.&lt;br /&gt;
&lt;br /&gt;
Unique, alphanumerical, tickets that &lt;i&gt;&quot;mark&quot;&lt;/i&gt; your content come to the rescue.&lt;br /&gt;
And bagarino allows you to manage them using different policies that establish &lt;b&gt;when&lt;/b&gt; exactly a ticket expires.&lt;br /&gt;
Some of these policies are as simple as time-based counters. Some of them are a bit more complicated (but not too much, don&#39;t worry).&lt;br /&gt;
&lt;br /&gt;
Give it a try and let me know.&lt;br /&gt;
&lt;br /&gt;
... By the way, after &lt;i&gt;&quot;what is it good for?&quot;&lt;/i&gt; I hope you didn&#39;t jump right to the &lt;i&gt;&quot;absolutely nothing&quot;&lt;/i&gt; line ;-)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Photo courtesy of &lt;a href=&quot;http://www.flickr.com/photos/aloha75/8461776489/&quot;&gt;Sam Howzit&lt;/a&gt;&lt;/i&gt;</description><link>http://feelingblack.blogspot.com/2013/07/bagarino-what-is-it-good-for.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-4662218355043068159</guid><pubDate>Sat, 20 Apr 2013 12:22:00 +0000</pubDate><atom:updated>2013-04-20T14:26:43.714+02:00</atom:updated><title>RIP. Di sicuro.</title><description>Con Bersani si chiude l&#39;era delle buone intenzioni condite da &lt;b&gt;nessuna azione&lt;/b&gt;. A volte persino da azioni stupidamente e volutamente cattive ed autolesioniste.&lt;br /&gt;Di sicuro si chiude un ciclo disastroso per il PD, un partito ormai in cenere.&lt;br /&gt;Un partito che avrebbe dovuto &lt;i&gt;&quot;salvare&quot;&lt;/i&gt; l&#39;Italia e che invece ha contribuito in maniera preponderante all&#39;immobilità che ci sta oggi condannando.&lt;br /&gt;Di sicuro per il PD non c&#39;è un futuro in Renzi, nè nell&#39;attuale dirigenza.&lt;br /&gt;Di sicuro l&#39;unico partito italiano che non aveva intenti palesemente truffaldini (ma che in compenso aveva cento altri difetti) è da reinventare totalmente, da zero.&lt;br /&gt;&lt;br /&gt;Di sicuro chi oggi sorride felice delle disavventure del PD non ha ben capito che, insieme al PD, ieri è stata anche la Democrazia italiana a subire l&#39;ennesimo, disastroso colpo.&lt;br /&gt;Chi oggi ride felice delle disavventure di Bersani e di Prodi è peggio di quel furbacchione di Renzi che ieri avrà pure guadagnato un partito, ma di sicuro ha perso un altro pezzo di Paese.&lt;br /&gt;Chi oggi ride felice neppure immagina che ha contribuito ad arrecare altri terribili danni al Paese.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Nel bene, ma soprattutto nel male, il PD si è dimostrato uno specchio impietoso e quantomai accurato dei peggiori mali e difetti dell&#39;Italia tutta.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;RIP PD. RIP Italia.</description><link>http://feelingblack.blogspot.com/2013/04/rip-di-sicuro.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-8922646897417395508</guid><pubDate>Tue, 12 Feb 2013 23:24:00 +0000</pubDate><atom:updated>2013-02-13T00:24:17.464+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">digital publishing</category><category domain="http://www.blogger.com/atom/ns#">epub</category><category domain="http://www.blogger.com/atom/ns#">habitat</category><category domain="http://www.blogger.com/atom/ns#">html5</category><category domain="http://www.blogger.com/atom/ns#">inkling</category><title>Dreams of the perfect habitat</title><description>&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px; text-align: justify;&quot;&gt;The product I&#39;ve always dreamed on realizing came true thanks to &lt;/span&gt;&lt;a href=&quot;https://www.inkling.com/habitat&quot; style=&quot;font-family: Arial, sans-serif; line-height: 18px; text-align: justify;&quot;&gt;&lt;b&gt;Inkling Habitat&lt;/b&gt;&lt;/a&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px; text-align: justify;&quot;&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px; text-align: justify;&quot;&gt;And you still don&#39;t know the best part: they are also making it public!&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;img border=&quot;0&quot; height=&quot;200&quot; src=&quot;https://d3qs6zg0j7jfu9.cloudfront.net/static_assets/20130212.004609z.f9bbad68/images/marketing/feature/codeview.png?version=1360630010&quot; style=&quot;margin-bottom: 10px; margin-top: 6px;&quot; width=&quot;320&quot; /&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;Habitat is a digital publishing platform based on standards and hosted on the cloud.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;Starting Tuesday (today n.d.r) &lt;a href=&quot;http://paidcontent.org/2013/02/12/inkling-makes-its-google-friendly-digital-publishing-tools-free-to-everyone/&quot;&gt;they are releasing it for public access&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;They are proposing legacy contents import, the possibility of a full Google indexing of the books created with their platform, the ability to export as EPUB and a bunch of big names of the industry as their partners (O&#39;Reilly, Pearson, Time Inc. and Lonely Planet, just to name a few).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: large; line-height: 18px;&quot;&gt;I&#39;m both sad and happy about it: sad because I was starting to design a similar solution; happy because now I know I took the right path in designing it. It&#39;s the path of open-standards and the path of the better web.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: 13px; text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 18px;&quot;&gt;It&#39;s like Inkling is really creating a completely new &lt;i&gt;&lt;b&gt;habitat&lt;/b&gt;&lt;/i&gt; for digital publishing, by &lt;i&gt;simply&lt;/i&gt; using the foundations of the World Wide Web (HTML and its complimentary technologies) and finally detaching the digital publishing from the old, paper-based, publishing industry (that&#39;s still only able to mimic the paper magazines on an electronic device and propose them as &quot;the future&quot;).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: large; line-height: 18px;&quot;&gt;Well, Inkling, with Habitat, &lt;b&gt;built&lt;/b&gt; that digital publishing of the future and they did it powerful, standards-based, open and beautiful.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;They didn&#39;t kill paper. They simply extended it until it reached the web and the mobile world.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</description><link>http://feelingblack.blogspot.com/2013/02/dreams-of-perfect-habitat.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5473694851842059201</guid><pubDate>Wed, 05 Dec 2012 11:42:00 +0000</pubDate><atom:updated>2012-12-05T12:42:14.953+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">windows 8</category><category domain="http://www.blogger.com/atom/ns#">xaml</category><title>Ignore single-tap before double-tap on Windows 8 apps</title><description>&lt;br /&gt;
The new development platform for Windows 8 has been released too early. The number of dirty tricks I had to resort to in just a few months working with it made it pretty clear to me.&lt;br /&gt;
&lt;br /&gt;
One of the most infamous bugs I found affects all the versions of the platform (x86, x64 and ARM) and it&#39;s an erroneous sequence of events that is propagated after a double-tap. I found it propagating from a ScrollViewer control, but I&#39;m pretty sure other controls may behave this way as well.&lt;br /&gt;
&lt;br /&gt;
When a user double-tapped on the screen I was expecting a single call to my double-tap event handler to be made, but with a bit of sadness a single-tap event was called immediately before it... with no fucking reason, if you ask me.&lt;br /&gt;
My code needs to be certain about which one of the two is called, because I need to react in two different, alternative ways to them. So I was stuck, trying to find a clever way to figure out when a single tap erroneously fired by the framework. And obviously when it&#39;s not.&lt;br /&gt;
&lt;br /&gt;
With the help of my collegues we found a really simplicistic way of dealing with it, but it&#39;s actually a trick that mitigates the issue, not a definitive cure.&lt;br /&gt;
&lt;br /&gt;
Here it is:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;// Here&#39;s the part I hate the most: heuristics...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;private const int DOUBLETAP_DELAY_MILLIS = 190;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;private DateTime singleTapTime;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;private bool singleTapCancelled;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;private async void scrollViewer_Tapped(object sender,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;TappedRoutedEventArgs args)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // Save the moment the single tap&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // has been detected...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; this.singleTapTime = DateTime.Now;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // ... but wait some time to be sure&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // that no double-tap event follows&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; await Task.Delay(Viewer.DOUBLETAP_DELAY_MILLIS + 10);&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // A double-tap event will cancel our single- one&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // before we reach this point...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; if (!this.singleTapCancelled)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; // ...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; this.singleTapCancelled = false;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;private void scrollViewer_DoubleTapped(object sender,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DoubleTappedRoutedEventArgs args)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;{&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; TimeSpan tapsDelay =&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; DateTime.Now - this.singleTapTime;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // If we are between the configured timespan,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // we cancel the previously fired single-tap event&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; this.singleTapCancelled =&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;(tapsDelay &amp;lt;= TimeSpan.FromMilliseconds(Viewer.DOUBLETAP_DELAY_MILLIS));&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&amp;nbsp; &amp;nbsp; // ...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
An improvement would be protecting the boolean variable with a lock.&lt;br /&gt;
Also would be better to be tolerant on the number of milliseconds we wait. E.g. we could wait Viewer.DOUBLETAP_DELAY_MILLIS +/- some time.&lt;br /&gt;
&lt;br /&gt;
But the only improvement should be done by Microsoft I guess...&lt;br /&gt;
</description><link>http://feelingblack.blogspot.com/2012/12/ignore-single-tap-before-double-tap-on.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-6761898325672081012</guid><pubDate>Thu, 15 Nov 2012 18:58:00 +0000</pubDate><atom:updated>2012-11-15T19:58:12.465+01:00</atom:updated><title>Dead On Arrival</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/Dissent_develops_democracy_sticker.jpg/1024px-Dissent_develops_democracy_sticker.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;http://upload.wikimedia.org/wikipedia/commons/thumb/2/2a/Dissent_develops_democracy_sticker.jpg/1024px-Dissent_develops_democracy_sticker.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;
Riassumendo cosa ne penso, vorrei mettere una pietra tombale sui miei commenti alle recenti vicende del Movimento 5 Stelle e del suo lider maximo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Procedo.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Il Movimento 5 Stelle mi è sempre stato più che simpatico ma ultimamente lo vedo purtroppo ostaggio di un vecchietto con le solite manie di potere e dei suoi scaltri amici.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Mi spiace per tutte quelle persone che ci hanno creduto (e continuano a crederci), che gli hanno dato l&#39;anima e il proprio impegno, che lo hanno sostenuto, accolto o anche solo ascoltato (oggigiorno non è poco).&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ma la sostanza è che Grillo sta rovinando una speranza di rinnovamento (il M5S) come ce n&#39;erano state veramente poche finora.&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: justify;&quot;&gt;
Ideali splendidi e pessima sostanza dietro. Connubio forse nato sano, ma arrivato già morto al pronto soccorso della &lt;i&gt;&quot;Democrazia dal basso&quot;&lt;/i&gt;.&lt;/div&gt;
&lt;br /&gt; &lt;br /&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt; [Photo courtesy of Wikimedia &lt;a href=&quot;http://en.wikipedia.org/wiki/File:Dissent_develops_democracy_sticker.jpg&quot;&gt;http://en.wikipedia.org/wiki/File:Dissent_develops_democracy_sticker.jpg&lt;/a&gt; [Which in turn credits Jason Wilson &lt;a href=&quot;http://www.flickr.com/people/hive/&quot;&gt;http://www.flickr.com/people/hive/&lt;/a&gt; ]]&lt;/span&gt;</description><link>http://feelingblack.blogspot.com/2012/11/dead-on-arrival.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5765685328882150890</guid><pubDate>Thu, 09 Aug 2012 16:31:00 +0000</pubDate><atom:updated>2012-08-09T18:41:50.838+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">.NET</category><title>A tale of two twins</title><description>&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;&lt;span style=&quot;font-size: x-large;&quot;&gt;&quot;O&lt;/span&gt;nce upon a time an unfortunate poor design decision in Windows Metro class library had two brave classes named the same: &quot;Uri&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Times, Times New Roman, serif;&quot;&gt;One of them lived in the village of &quot;System&quot; while the other had a gracious hut in the &quot;Windows.Foundation&quot; hood.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Wait! What?!?&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Does it mean that there are two different classes both named &quot;Uri&quot; classes in two basic namespaces?&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
Do I look like one old mage that goes&amp;nbsp;around&amp;nbsp;mumbling some non-sense fairy-tale? No; hence this is exactly what I meant: two classes, same name, same job, two different basic namespaces, both have an one-argument constructor with the same parameter type&amp;nbsp;(string).&lt;br /&gt;
&lt;br /&gt;
No need to say that you&#39;ll eventually end up using&amp;nbsp;System.Uri instead of Windows.Foundation.Uri or viceversa (like &lt;b&gt;I&lt;/b&gt; did).&lt;br /&gt;
And you can trust this old man when I say that&amp;nbsp;&lt;b&gt;you will &lt;/b&gt;(&quot;Metro-style .NET application&quot;... does it ring any bell?).&lt;br /&gt;
&lt;br /&gt;
Now, this wouldn&#39;t be such a big issue and I will be no putting such a scene up since they are in two &lt;b&gt;different &lt;/b&gt;namespaces.&lt;br /&gt;
After all namespaces are supposed to be born in this era to support exactly this behavior.&lt;br /&gt;
At least to support classes named the same way but that perform &lt;b&gt;different tasks&lt;/b&gt;.&lt;br /&gt;
But that&#39;s not the case:&lt;b&gt; the do exactly the same things&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Well, the story has a happy ending, you know: you end up on this post, know that the world is full of tricky tricks in the shape of class named the same and you return to your code sound and safe.&lt;br /&gt;
&lt;br /&gt;
But I&#39;d like to add an epilogue.&lt;br /&gt;
Please, dear Microsoft architect, consider the following two options:&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Either provide ONLY ONE class to perform the same job&lt;/li&gt;
&lt;li&gt;Or provide ONLY ONE class to perform the very same job&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Choose one.&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-size: large;&quot;&gt;The End&lt;/span&gt;&lt;/i&gt;&lt;/div&gt;</description><link>http://feelingblack.blogspot.com/2012/08/a-tale-of-two-twins.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-7413467712770796148</guid><pubDate>Tue, 07 Aug 2012 15:53:00 +0000</pubDate><atom:updated>2012-08-07T17:53:52.176+02:00</atom:updated><title>Migliori e peggiori</title><description>&lt;br /&gt;Ma lasciarlo in pace Schwazer, no? Ha sbagliato, è distrutto e sicuramente la pagherà molto più cara di tanti degli ipocriti che fanno come lui ogni giorno (in tanti ambiti diversi) e la fanno invariabilmente franca.&lt;br /&gt;Gli stessi che adesso lo condannano senza se e senza ma.&lt;br /&gt;&lt;br /&gt;Se mai leggerà questo messaggio: &quot;Da oggi cerca di essere solo migliore di te stesso. Non degli altri.&quot; &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;P.S. Il Codacons, nella persona del suo presidente Carlo Rienzi, si infili la sua causa legale su per quel culo flaccido che non pensa mai a denunciare chi davvero denigra e fa sfigurare l&#39;Italia.</description><link>http://feelingblack.blogspot.com/2012/08/migliori-e-peggiori.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5708162511988408542</guid><pubDate>Tue, 31 Jul 2012 07:34:00 +0000</pubDate><atom:updated>2012-07-31T09:34:46.822+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">android</category><category domain="http://www.blogger.com/atom/ns#">development</category><category domain="http://www.blogger.com/atom/ns#">ios</category><category domain="http://www.blogger.com/atom/ns#">rants</category><title>E&#39; il mercato, baby</title><description>Ai millantatori che scrivono che sviluppare su Android rende meno... faccio 
umilmente notare che&lt;b&gt; siete a corto di cose interessanti da dire&lt;/b&gt; che 
non siano già state dette da almeno 2 anni e, per vostra sfortuna, già estese a &lt;b&gt;tutte&lt;/b&gt; le piattaforme Store-based.&lt;br /&gt;
In soldoni: o le vostre apps sono basate sull&#39;in-app purchase o 
rischiano &lt;b&gt;fortemente&lt;/b&gt; di finire nel gruppone di quelli che non rientrano nemmeno 
dalle spese di sviluppo e marketing.&lt;br /&gt;
Questo vale per tutti.&lt;br /&gt;
&lt;br /&gt;
Si chiama &lt;i&gt;Mercato&lt;/i&gt;, e non ti chiede se sei figo o nerd. &lt;i&gt;Lui&lt;/i&gt; ti schiaccia, ti mastica e ti risputa. E dopo ti schiaccia di nuovo. Non ti rimastica perchè è schizzinoso.&lt;br /&gt;
&lt;br /&gt;
Ah... e non lo dico solo io:&lt;br /&gt;
&lt;a href=&quot;http://arstechnica.com/apple/2012/05/ios-app-success-is-a-lottery-and-60-of-developers-dont-break-even/&quot;&gt;http://arstechnica.com/apple/2012/05/ios-app-success-is-a-lottery-and-60-of-developers-dont-break-even/&lt;/a&gt;</description><link>http://feelingblack.blogspot.com/2012/07/e-il-mercato-baby.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5397579745405827934</guid><pubDate>Thu, 16 Feb 2012 21:28:00 +0000</pubDate><atom:updated>2012-02-16T22:30:25.042+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">home entertainment</category><category domain="http://www.blogger.com/atom/ns#">TV</category><category domain="http://www.blogger.com/atom/ns#">youtube remote</category><title>Youtube Remote</title><description>La &quot;nuova&quot; GoogleTV che in questi giorni in molti hanno atteso potrebbe essere stata anticipata, e purtroppo ignorata, già da un pò. &lt;br /&gt;
Esiste infatti qualcosa che già oggi può trasformare qualsiasi apparecchiatura dotata di browser e uscita video in una Internet TV. &lt;br /&gt;
Si tratta di &lt;a href=&quot;https://market.android.com/details?id=com.google.android.ytremote&quot;&gt;Youtube Remote&lt;/a&gt;, un applicativo che promette di portare una GoogleTV o, meglio, una &quot;YoutubeTV&quot; dentro le nostre case. &lt;br /&gt;
Oggi. &lt;br /&gt;
E senza che sia necessario acquistare nuovo hardware. &lt;br /&gt;
&lt;br /&gt;
Basta collegare il proprio pc/portatile alla TV, aprire un browser e andare alla seguente pagina: &lt;a href=&quot;http://www.youtube.com/leanback&quot;&gt;http://www.youtube.com/leanback&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhhLpQxs1N44wfnAVZ0943EljKLq5Z8Yfofv92MFu98Ums6woOkOtbSfCryy1jErOG42Flx7gFFjE-93svtQwUq7q5CWnC2KC1rzmNC_trx7VO3FtfHG-HJmKhDkkj_AJWQf8tvEDQ72c/s1600/Leanback.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;223&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhhLpQxs1N44wfnAVZ0943EljKLq5Z8Yfofv92MFu98Ums6woOkOtbSfCryy1jErOG42Flx7gFFjE-93svtQwUq7q5CWnC2KC1rzmNC_trx7VO3FtfHG-HJmKhDkkj_AJWQf8tvEDQ72c/s400/Leanback.png&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Usando il vostro tablet Android potete procedere a fare il pairing tra quest&#39;ultimo e la pagina &quot;leanback&quot;. &lt;br /&gt;
Sul mio tablet il pairing ha richiesto 1 minuto (grazie a &lt;a href=&quot;https://market.android.com/details?id=com.google.android.apps.unveil&quot;&gt;Google Goggles&lt;/a&gt;). &lt;br /&gt;
&lt;br /&gt;
Dopo questo, utilizzare il tablet per comandare a distanza la mia &quot;nuova&quot; TV è stato semplice: &lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://3.bp.blogspot.com/dK6GhNtgrT74xqVrK771FObk39doUgntseyE_PTOfP37DUMkTZBAqg07aX7j1tKttg&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;250&quot; src=&quot;http://3.bp.blogspot.com/dK6GhNtgrT74xqVrK771FObk39doUgntseyE_PTOfP37DUMkTZBAqg07aX7j1tKttg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Il messaggio che passa è piacere digitale allo stato puro: &lt;br /&gt;
&lt;ol&gt;
&lt;li&gt;Ho in casa un prodotto nuovo e innovativo, che non sapevo di avere &lt;/li&gt;
&lt;li&gt;I contenuti disponibili sono... ehm, parecchi. E Youtube non ha certo problemi a proporne di nuovi ogni giorno/ora/minuto &lt;/li&gt;
&lt;li&gt;Il tablet o lo smartphone Android permettono un controllo remoto completo ed evoluto &lt;/li&gt;
&lt;/ol&gt;
&lt;br /&gt;
Dal punto di vista dello sviluppatore sono poi rimasto favorevolmente colpito dall&#39;intelligente mix di tecnologie pre-esistenti e standard, &lt;br /&gt;
cosa che implica che un qualsiasi hardware (anche di basso profilo) potrebbe offrire la medesima esperienza, preconfezionata in un set-top box a basso prezzo e di facile realizzazione. &lt;br /&gt;
&lt;br /&gt;
Riassumendo questa analisi possiamo porci la domanda &quot;Perchè è una buona idea Youtube Remote?&quot; e (marzullamente) risponderci: &lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Di sicuro perchè non ha bisogno di nuovo hardware: nella maggior parte delle nostre case sono già presenti un PC e uno smartphone/tablet &lt;/li&gt;
&lt;li&gt;Qualora così non fosse i produttori di hardware non dovranno realizzare dispositivi costosi e complicati, nè implementare nuovi standard, ma solo un set-top box contenente un browser di buona qualità e poco altro &lt;/li&gt;
&lt;li&gt;Non dover installare niente sul PC (nemmeno un&#39;estensione del browser!)... non ha prezzo. &lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Fatemi sapere cosa ne pensate.&lt;br /&gt;
&lt;br /&gt;</description><link>http://feelingblack.blogspot.com/2012/02/youtube-remote.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhhLpQxs1N44wfnAVZ0943EljKLq5Z8Yfofv92MFu98Ums6woOkOtbSfCryy1jErOG42Flx7gFFjE-93svtQwUq7q5CWnC2KC1rzmNC_trx7VO3FtfHG-HJmKhDkkj_AJWQf8tvEDQ72c/s72-c/Leanback.png" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-1923558381991909929</guid><pubDate>Mon, 06 Feb 2012 14:38:00 +0000</pubDate><atom:updated>2012-02-06T15:38:12.179+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">idea</category><category domain="http://www.blogger.com/atom/ns#">Illustration</category><title>Illustrazione per far riflettere</title><description>Causa poco tempo a disposizione vi lascio l&#39;idea, se ci fossero illustratori disposti ad usarla:&lt;br /&gt;
Una serie di strati geologici mostra al suo interno alcuni scheletri 
umani sedimentati accanto a uno o più strumenti teconlogici odierni 
(pensavo a un tablet e a un&#39;automobile).&lt;br /&gt;
Dall&#39;alto, fuori campo, in contrasto con l&#39;aridità e il grigio delle 
rocce sedimentate e degli scheletri al loro interno, scendono uno o più 
rampicanti con fiori dai colori sgargianti, ma &quot;diversi&quot; dai fiori 
odierni (avevo pensato di realizzare un fiore con dei denti bianchi al 
centro).&lt;br /&gt;
I rampicanti fanno ombra agli strati, ma li lasciano scoperti abbastanza
 da lasciar intravvedere sia le ossa che i manufatti tecnologici.&lt;br /&gt;
&lt;br /&gt;
La scritta, al di sotto, è breve e in un font essenziale (stile Arial):&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot; style=&quot;font-family: Arial,Helvetica,sans-serif;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Our planet will last long. &lt;b&gt;Will we?&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;
In grassetto la frase &quot;Will we?&quot;.&lt;br /&gt;
&lt;br /&gt;
L&#39;immagine deve avere caratteristiche di fotorealismo spinto tali che mi
 hanno fatto desistere dal proposito di realizzarla con software tipo 
Illustrator/Inkscape.&lt;br /&gt;
&lt;br /&gt;
L&#39;ideale sarebbe partire da foto vere, da ritoccare con Photoshop/Gimp.&lt;br /&gt;
&lt;br /&gt;
Se qualcuno fosse in possesso di queste foto potrei anche trovare il tempo di realizzare l&#39;illustrazione.&lt;br /&gt;
&lt;br /&gt;
Altrimenti beccatevi l&#39;idea e, se vi piace, sfruttatela e fatemi sapere :-)</description><link>http://feelingblack.blogspot.com/2012/02/illustrazione-per-far-riflettere.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-884553147282341118</guid><pubDate>Mon, 06 Feb 2012 09:25:00 +0000</pubDate><atom:updated>2012-02-06T10:27:00.976+01:00</atom:updated><title></title><description>&lt;span style=&quot;font-size: large;&quot;&gt;Simple as it is:&lt;/span&gt;&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;The earth will survive pollution, global warming and so on.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: x-large;&quot;&gt;&lt;b&gt;We won&#39;t.&lt;/b&gt;&lt;/span&gt;&lt;/blockquote&gt;</description><link>http://feelingblack.blogspot.com/2012/02/simple-as-it-is-earth-will-survive.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-201713625539205558</guid><pubDate>Tue, 24 Jan 2012 23:34:00 +0000</pubDate><atom:updated>2012-01-25T00:34:20.344+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">AI</category><category domain="http://www.blogger.com/atom/ns#">Artificial Intelligence</category><category domain="http://www.blogger.com/atom/ns#">rants</category><title>AI. At least.</title><description>Last night I had time to focus my thoughts on a topic somewhat forgotten nowadays: &lt;b&gt;Artificial Intelligence&lt;/b&gt;.&lt;br /&gt;
&lt;br /&gt;
I found myself more and more concerned about &lt;b&gt;not&lt;/b&gt; being literally surrounded by AIs that help and assist us on doing all sort of everyday tasks. &lt;br /&gt;
If you ask I would have expected for the AIs to be a constant and common presence at least in technology-related areas of the society such as IT, energy companies, transportation and military, healthcare, banks and trading, education and... well, almost everywere an AI with just a grain of intelligence could automate, manage and help men perform complex and/or repetitive tasks.&lt;br /&gt;
&lt;b&gt;At least.&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
What we got instead? Zero-intelligence systems that would be dead after 5 minutes without a man supervising and managing them.&lt;br /&gt;
Even worse: systems that put man &lt;b&gt;as the main information-processing unit&lt;/b&gt;.&lt;br /&gt;
I.e. applications that beautifully display bars, pies and reports that will be read, judged (and finally forgotten) by a human that will then formulate one or more possible actions to take as a consequence of those data.&lt;br /&gt;
Let alone the possibility to completely erase the human from that process, why not at least let the AI analyze the data and formulate possible scenarios to be judged by a human?&lt;br /&gt;
&lt;br /&gt;
And what about an AI that asks me which author I&#39;d like to read these month and then begins fetching data, ordering the books, paying them using my credit card, waiting for them to be shipped (eventually triggering an alert to me and/or the shipping AI in case the delivery is taking too much time) and putting together a brief introduction to that author so I could then enjoy a more complete experience from reading his/her books?&lt;br /&gt;
&lt;br /&gt;
I don&#39;t feel like fearing (much) more intelligent systems as dangerous nor I think pleople would lose their jobs to an AI.&lt;br /&gt;
Nor man will get any lazy than he actually is... &lt;br /&gt;
Simply there would be more people doing different jobs that need no automation but a great amount of creativity instead.&lt;br /&gt;
By the way I think mankind may actually benefit of such a shift &lt;i&gt;from automation to creation&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
But aside from that there is a fact that bothers me: the technology for these kind of intelligent systems was ready a long time ago (let&#39;s see months and years from the technology perspective). I mean, we have multi-core processing since the early 1990s and AIs are one of the most &lt;i&gt;ancient&lt;/i&gt; and studied topics of the Computer Science. We now have cloud-computing for exploiting even more computational power and we sure as hell don&#39;t lack minds that can design these &lt;i&gt;&lt;b&gt;Everyday AIs&lt;/b&gt;&lt;/i&gt;.&lt;br /&gt;
&lt;br /&gt;
Thus I&#39;m utterly disappointed that we still lack them.&lt;br /&gt;
They would make life easier and let people focus their lives on more meaningful activities (living their life above all...).&lt;br /&gt;
But I&#39;m disappointed that I can&#39;t comprehend &lt;b&gt;why&lt;/b&gt; they are not here yet.&lt;br /&gt;
I also thought of giving my contribute but it would seem that people and market are simply &quot;not interested&quot; in it.&lt;br /&gt;
Did I missed something? Am I drawing a wrong scenario when reality is much more promising instead?&lt;br /&gt;
Are we already there and I didn&#39;t notice?&lt;br /&gt;
&lt;br /&gt;
I&#39;ll send a link to the new Megaupload to the first ones who answer my questions.</description><link>http://feelingblack.blogspot.com/2012/01/ai-at-least.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-2000060781125594684</guid><pubDate>Wed, 30 Nov 2011 23:03:00 +0000</pubDate><atom:updated>2011-12-01T00:07:35.764+01:00</atom:updated><title>Integrating HTML5 and UPnP</title><description>I posted a really good link I found about integrating HTML5 and UPnP:&lt;br /&gt;
&lt;a href=&quot;https://plus.google.com/u/0/112160333465217123290/posts/EKYW1wh8Wwd&quot;&gt;https://plus.google.com/u/0/112160333465217123290/posts/EKYW1wh8Wwd&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Altough it seems still a bit rough this is a good idea.&lt;br /&gt;
If interested leave comments here or on my Google+ account.&lt;br /&gt;
I&#39;m definitely studying it and I hope it will evolve and be implemented.</description><link>http://feelingblack.blogspot.com/2011/12/integrating-html5-and-upnp.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-1075572198668428046</guid><pubDate>Mon, 07 Nov 2011 00:20:00 +0000</pubDate><atom:updated>2011-11-07T01:23:14.265+01:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">tips</category><category domain="http://www.blogger.com/atom/ns#">vala</category><title>Vala compile error: cannot infer generic type argument for type parameter `GLib.Thread.create.T&#39;</title><description>Today I tried to work with Vala and threads.&lt;br /&gt;
Turned out that documentation, even the official sources, is still sketchy and young.&lt;br /&gt;
E.g. I tried to build the following, taken from &lt;a href=&quot;https://live.gnome.org/Vala/Tutorial#Multi-Threading&quot;&gt;here&lt;/a&gt;:&lt;br /&gt;
&lt;pre&gt;void* thread_func()
{
    stdout.printf(&quot;Thread running.\n&quot;);
    return null;
}

int main(string[] args)
{
    if (!Thread.supported())
    {
        stderr.printf(&quot;Cannot run without threads.\n&quot;);
        return 1;
    }

    try
    {
        &lt;b&gt;Thread.create(thread_func, false);&lt;/b&gt;
    }
    catch (ThreadError exc)
    {
        return 1;
    }  

    return 0;
}&lt;/pre&gt;It will give up compiling with the following error:&lt;br /&gt;
&lt;pre&gt;$ valac --thread main.vala
 main.vala:19.9-19.21: error:
 &lt;b&gt;cannot infer generic type argument
  for type parameter `GLib.Thread.create.T&#39;&lt;/b&gt;
        Thread.create(thread_func, false);
        ^^^^^^^^^^^^^
 Compilation failed: 1 error(s), 0 warning(s)&amp;nbsp;&lt;/pre&gt;The compiler does complain about an actual lack in my code. Infact the declaration of &quot;Thread.create()&quot; is:&lt;br /&gt;
&lt;pre&gt;Thread&amp;lt;T&amp;gt; create&lt;b&gt;&amp;lt;T&amp;gt;&lt;/b&gt;(ThreadFunc&amp;lt;T&amp;gt; func, bool joinable)&lt;/pre&gt;The culprit is the generic type &quot;T&quot; to be passed to the create method.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;But the type of &lt;b&gt;what&lt;/b&gt; I need to provide?&lt;/u&gt;&lt;br /&gt;
&lt;pre&gt;Thread.create&lt;b&gt;&amp;lt;?&amp;gt;&lt;/b&gt;(thread_func, false)&lt;/pre&gt;It&#39;s the return type of the thread function &quot;thread_func&quot; passed as the first parameter to the create method.&lt;br /&gt;
Hence I need to call it this way instead:&lt;br /&gt;
&lt;pre&gt;Thread.create&lt;b&gt;&amp;lt;void*&amp;gt;&lt;/b&gt;(thread_func, false)&lt;/pre&gt;In the case thread_func had returned &lt;code&gt;bool&lt;/code&gt;:&lt;br /&gt;
&lt;pre&gt;Thread.create&lt;b&gt;&amp;lt;bool&amp;gt;&lt;/b&gt;(thread_func, false)&lt;/pre&gt;And so on.&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.valadoc.org/glib-2.0/GLib.Thread.create.html&quot;&gt;Here&lt;/a&gt;&#39;s the incomplete documentation for the create method that led me to the initial impasse.&lt;br /&gt;
&lt;a href=&quot;http://mail.gnome.org/archives/vala-list/2010-December/msg00119.html&quot;&gt;Here&lt;/a&gt; is where I found the solution (thanks to Abderrahim Kitouni) instead.&lt;br /&gt;
Yeah, a bit of Googling helped me as well.</description><link>http://feelingblack.blogspot.com/2011/11/vala-compile-error-cannot-infer-generic.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-711549613675864778</guid><pubDate>Tue, 04 Oct 2011 15:25:00 +0000</pubDate><atom:updated>2011-10-04T17:25:25.174+02:00</atom:updated><title>MAC to IP address resolution</title><description>Today I couldn&#39;t find a way to resolve an host&#39;s IP starting from its MAC address, without using RARP (which isn&#39;t supported by some kernels (&lt;i&gt;&quot;This kernel does not support RARP&quot;&lt;/i&gt;...)).&lt;br /&gt;
The solution I came up with is the following: &lt;b&gt;given that two hosts already &quot;know&quot; (i.e. pinged) each other at least once&lt;/b&gt; you can perform the command&lt;br /&gt;
&lt;code&gt;ping `arp -n | grep -i 00:17:C8:3B:81:94 | grep -o -E &quot;\b[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\b&quot;`&lt;/code&gt;&lt;br /&gt;
&lt;br /&gt;
The only issue here is that the two hosts MUST have already &quot;met&quot; at least once.&lt;br /&gt;
This is because of the kernel ARP cache used by the &quot;arp&quot; command.&lt;br /&gt;
&lt;br /&gt;
Useful?</description><link>http://feelingblack.blogspot.com/2011/10/mac-to-ip-address-resolution.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-6781595713558645721</guid><pubDate>Fri, 30 Sep 2011 14:21:00 +0000</pubDate><atom:updated>2011-10-10T10:33:07.819+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">c++</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Suppress &quot;unused parameter&quot; warnings</title><description>Here&#39;s a way to suppress the annoying &quot;unused parameter&quot; warning given by the following code:&lt;br /&gt;
&lt;code&gt;void aFunction(int unusedParameter)&lt;br /&gt;
{&lt;br /&gt;
&amp;nbsp; &amp;nbsp; // Do something but ignore the &#39;unusedParameter&#39; &lt;br /&gt;
}&lt;/code&gt;
&lt;br /&gt;
I use this define:&lt;br /&gt;
&lt;code&gt;
#define CHECKED_UNUSED(x) (void)x&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
And then I surround unused parameter with it, right after the opening bracket of the function (so I can easy find and modify the parameter if I start using it):&lt;br /&gt;
&lt;code&gt;
#define CHECKED_UNUSED(x) (void)x&lt;br /&gt;&lt;br /&gt;void aFunction(int unusedParameter)&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CHECKED_UNUSED(unusedParameter);&lt;br /&gt;} &lt;br /&gt;
&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
I looked at the generated assembly before and after and it didn&#39;t change:&lt;br /&gt;
&lt;code&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; aFunction(int):&lt;br /&gt;
00000000004007d4:&amp;nbsp;&amp;nbsp; push %rbp&lt;br /&gt;
00000000004007d5:&amp;nbsp;&amp;nbsp; mov %rsp,%rbp&lt;br /&gt;
00000000004007d8:&amp;nbsp;&amp;nbsp; mov %edi,-0x4(%rbp)&lt;br /&gt;
15&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;br /&gt;
00000000004007db:&amp;nbsp;&amp;nbsp; pop %rbp&lt;br /&gt;
00000000004007dc:&amp;nbsp;&amp;nbsp; retq &lt;br /&gt;
18&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Disclaimer: use it only after you carefully checked that you really not need to use that parameter.&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;Unused parameters (and all the warnings in general) could really lead to a bug (or simple misunderstandings) in your code.&lt;/b&gt;</description><link>http://feelingblack.blogspot.com/2011/09/suppress-unused-parameter-warnings.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5965511169031443341</guid><pubDate>Sun, 11 Sep 2011 09:48:00 +0000</pubDate><atom:updated>2011-09-11T11:48:36.991+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">arch</category><category domain="http://www.blogger.com/atom/ns#">gnome</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">Open Source</category><title>Gnome3 e GnomeShell. I miei due centesimi.</title><description>&lt;span class=&quot;zj&quot;&gt;Uso Gnome3 e la Shell da quando è uscito dalla fase di testing in Arch 
Linux. Effettivamente l&#39;inizio è stato un pò ostico perchè molte cose sono cambiate, ma
 successivamente ho apprezzato il design tutto sommato lineare e pulito:
 sembra fatto bene e, soprattutto, &lt;b&gt;pensato bene&lt;/b&gt;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;&lt;br /&gt;Ok, la status-bar è 
stata pensata male e realizzata peggio, ma tutto il resto se la cava 
piuttosto bene, tranne che per l&#39;aspetto &quot;configurazione&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;Su quel versante Gnome3 mostra molto il fianco; in particolare è davvero troppo poco
 configurabile (sembra un prodotto Apple) e le extensions sono ancora troppo poco diffuse e, spesso,  realizzate male.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;Ma ciò che mi spaventa di più è che la 
configurazione del sistema sembra essere stata realizzata in modo così 
spartano e semplice &lt;b&gt;di proposito&lt;/b&gt;. Se così fosse allora Gnome avrebbe perso un&#39;occasione di quelle d&#39;oro. Diciamo solo che hanno tempo di recuperare e spero sinceramente che lo facciano. Per loro.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;&lt;br /&gt;Vogliamo
 parlare poi di stabilità? Stabilissimo e anche molto reattivo. Anche 
qua traspare l&#39;impressione di buona realizzazione e buon design 
iniziale e, come bonus, i crash e i difetti sono lontani da un ambiente pulito e funzionante giusto un &quot;ALT+F2 r&quot;.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;In definitiva sono molto soddisfatto e propenso a credere che 
successivi rilasci portino ulteriori miglioramenti anche sotto questo 
aspetto.&lt;/span&gt;&lt;br /&gt;
&lt;span class=&quot;zj&quot;&gt;&lt;br /&gt;Vorrei infine porre l&#39;accento ancora una volta sulle extensions, stavolta con una nota &lt;b&gt;molto&lt;/b&gt;
 positiva: sono realizzabili in Javascript... cosa mai avrei potuto 
desiderare di più (se non un&#39;Aston Martin la mattina di Natale).&lt;/span&gt;</description><link>http://feelingblack.blogspot.com/2011/09/gnome3-e-gnomeshell-i-miei-due.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total><georss:featurename>Via Istria, 09127 Cagliari, Italy</georss:featurename><georss:point>39.2302397 9.1149989</georss:point><georss:box>39.2287022 9.1125314 39.231777199999996 9.1174664</georss:box></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-7953293628867649407</guid><pubDate>Fri, 02 Sep 2011 10:32:00 +0000</pubDate><atom:updated>2011-09-02T12:32:04.536+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">arch</category><category domain="http://www.blogger.com/atom/ns#">linux</category><category domain="http://www.blogger.com/atom/ns#">ruby</category><category domain="http://www.blogger.com/atom/ns#">ruby-gems</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>Bug after updating to ruby 1.9.2 on Arch Linux</title><description>If you ever encountered the following error in your ArchLinux box:&lt;br /&gt;
&lt;div style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;
$ gem install &amp;lt;your_gem_name_here&amp;gt;&lt;/div&gt;
&lt;pre&gt;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;code&gt;/usr/lib/ruby/site_ruby/1.9.1/rubygems/source_index.rb:62:in `installed_spec_directories&#39;:
  undefined method `path&#39; for Gem:Module (NoMethodError)
from /usr/lib/ruby/site_ruby/1.9.1/rubygems/&lt;/code&gt;&lt;code&gt;source_index.rb:52:in `from_installed_gems&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:914:&lt;/code&gt;&lt;code&gt;in `source_index&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems/&lt;/code&gt;&lt;code&gt;gem_path_searcher.rb:83:in `init_gemspecs&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems/&lt;/code&gt;&lt;code&gt;gem_path_searcher.rb:13:in `initialize&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:873:in `new&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:873:in `searcher&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:495:in `find_files&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems.rb:1034:&lt;/code&gt;&lt;code&gt;in `load_plugins&#39;
from /usr/lib/ruby/site_ruby/1.9.1/rubygems/gem_runner.rb:84:&lt;/code&gt;&lt;code&gt;in `&amp;lt;top (required)&amp;gt;&#39;
from &amp;lt;internal:lib/rubygems/custom_require&amp;gt;:29:in `require&#39;
from &amp;lt;internal:lib/rubygems/custom_require&amp;gt;:29:in `require&#39;
from /usr/bin/gem:9:in `&amp;lt;main&amp;gt;&#39;&lt;/code&gt;&lt;/span&gt;&lt;/pre&gt;
You can use these commands to solve the issue:&lt;br /&gt;
&lt;code&gt;$ sudo pacman -U /var/cache/pacman/pkg/ruby-1.9.1_p429-1-x86_64.pkg.tar.xz
&lt;/code&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;[or equivalent 1.9.1 version]&lt;code&gt;&lt;/code&gt;&lt;/span&gt;&lt;br /&gt;
&lt;code&gt;$ sudo gem update --system&lt;br /&gt;
$ sudo pacman -S ruby
&lt;/code&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;[to return to the new ruby (1.9.2 in my case)]&lt;/span&gt;</description><link>http://feelingblack.blogspot.com/2011/09/bug-after-updating-to-ruby-192-on-arch.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-5634881184966199122</guid><pubDate>Thu, 04 Aug 2011 11:13:00 +0000</pubDate><atom:updated>2011-08-04T13:13:53.200+02:00</atom:updated><title>Cronaca nera</title><description>Oggigiorno in Italia molti giornalisti non si lamentano (anzi!) di esser proni al potere. Va bene così un po a tutti.&lt;br /&gt;
&lt;br /&gt;
Per tanti scrivono anche troppo. Suvvia, qualche bella foto dalle spiagge dei VIP! Che l&#39;estate è calda e non mi va di sudare freddo per qualche brutto editoriale che predica austerità.&lt;br /&gt;
L&#39;aria condizionata è mia e ci faccio quello che voglio io! &lt;br /&gt;
Molta gente poi li vorrebbe placidi racconta-favole, che non venga disturbata l&#39;&lt;i&gt;immagine del Paese&lt;/i&gt; con ritratti poco lusinghieri dei suoi massimi (!) esponenti, dei suoi apparati e dei vari famosi da copertina.&lt;br /&gt;
&lt;br /&gt;
I potenti? Loro in fondo chiedono poco: un giornalista dovrebbe essere solo la grancassa della loro opulenza.&lt;br /&gt;
Poche parole di elogio quanto basta, diciamo una pagina di sperticate lodi al giorno (e poesie per i dotati del raro dono della rima baciata).&lt;br /&gt;
D&#39;altronde che li paghiamo a fare questi benedetti concentrati di fogli se poi non li si riempie di buone notizie e di faccioni truccati e sorridenti?&lt;br /&gt;
&lt;br /&gt;
Loro, i giornalisti? Beh, molti di se pensano di fare un gran bel lavoro. I miei articoli/editoriali/tweets vengono elogiati pubblicamente a più riprese.&lt;br /&gt;
Elogiato ergo sum.&lt;br /&gt;
Alcuni altri, musoni, non dicono niente: per loro è pur sempre un bel lavoro. Ma meno semplice di quanto lo dipingano quelli di prima. Certa gente proprio non si sa divertire...&lt;br /&gt;
&lt;br /&gt;
Io? Guardate, non saprei proprio che dire. Io sono un po musone, ma non faccio il giornalista. Mi basterebbe che lo facesse chi lo deve fare. E bene. Che facesse il suo lavoro insomma.&lt;br /&gt;
Che andasse anche un po meno in televisione, magari.&lt;br /&gt;
Che scrivesse; giornale o web per molti ha poca importanza.&lt;br /&gt;
Ma, come dicevo, sono un musone. Sicuramente mi sbaglio.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;E poi, detto fra noi, di che mi lamento? Alla fine della fiera, qui in Italia è da un pezzo che, in generale, siamo in pochi a fare il nostro lavoro.&lt;br /&gt;
Perchè dovrei iniziare proprio io o qualche altro povero Cristo?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Buona giornata gente, finchè dura.</description><link>http://feelingblack.blogspot.com/2011/08/cronaca-nera.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-946123495960920525</guid><pubDate>Tue, 19 Jul 2011 07:25:00 +0000</pubDate><atom:updated>2011-07-19T09:27:04.674+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">variopinte ed eventuali</category><title>SpiderTruman ed esperimenti di cross-posting</title><description>Sperimento una forma di cross-post:&lt;br /&gt;
&lt;a href=&quot;https://plus.google.com/112160333465217123290/posts/26V2XpnXjSp&quot;&gt;https://plus.google.com/112160333465217123290/posts/26V2XpnXjSp&lt;/a&gt;</description><link>http://feelingblack.blogspot.com/2011/07/spidertruman-ed-esperimenti-di-cross.html</link><author>noreply@blogger.com (Anonymous)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-820374494956679050.post-6447411110385734179</guid><pubDate>Tue, 12 Jul 2011 08:46:00 +0000</pubDate><atom:updated>2011-07-12T10:48:00.182+02:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">analytics</category><category domain="http://www.blogger.com/atom/ns#">google</category><category domain="http://www.blogger.com/atom/ns#">PDF</category><category domain="http://www.blogger.com/atom/ns#">tools</category><title>Google Analytics PDF Reports</title><description>&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: justify;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyZY74KF2X_IsjBrjP-6uPvof51-Fu2SPYm2XY8xNYVrtpPz2aAX1Eo5p8maour1HyrOc9xGSArFWSk5rkoavnfzc-y99L9_E_htYxxtJi8gWw-mO4Js6rBzP44b1MIeCJQ8c8No5PpjY/s1600/GoogleAnalytics.png&quot; imageanchor=&quot;1&quot; style=&quot;clear: left; float: left; margin-bottom: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyZY74KF2X_IsjBrjP-6uPvof51-Fu2SPYm2XY8xNYVrtpPz2aAX1Eo5p8maour1HyrOc9xGSArFWSk5rkoavnfzc-y99L9_E_htYxxtJi8gWw-mO4Js6rBzP44b1MIeCJQ8c8No5PpjY/s1600/GoogleAnalytics.png&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;a href=&quot;https://docs.google.com/viewer?a=v&amp;amp;pid=explorer&amp;amp;chrome=true&amp;amp;srcid=0B7AU2dKN2xzWYzQwN2NhNjctMmJiZi00Njg0LWJkZGItN2NiOTkzNDNhZDQ2&amp;amp;hl=en_GB&quot;&gt;This&lt;/a&gt; is how a &lt;a href=&quot;http://www.google.com/analytics/&quot;&gt;Google Analytics&lt;/a&gt; report looks like. This one is from this very blog and gets sent to me via mail as a PDF.&lt;br /&gt;
Powerful enough, easy to use and with tons of customizations possible, it is so far the best analytics tool I&#39;ve seen. Well, it&#39;s free too.</description><link>http://feelingblack.blogspot.com/2011/07/this-is-how-google-analytics-report.html</link><author>noreply@blogger.com (Anonymous)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyZY74KF2X_IsjBrjP-6uPvof51-Fu2SPYm2XY8xNYVrtpPz2aAX1Eo5p8maour1HyrOc9xGSArFWSk5rkoavnfzc-y99L9_E_htYxxtJi8gWw-mO4Js6rBzP44b1MIeCJQ8c8No5PpjY/s72-c/GoogleAnalytics.png" height="72" width="72"/><thr:total>0</thr:total></item></channel></rss>