<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2italianfull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>pensando.it</title><link>http://www.pensando.it/wp</link><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Pensandoit" /><description>etrusco's tech, photo and ideas</description><language>it-IT</language><lastBuildDate>Sun, 19 May 2013 23:00:44 PDT</lastBuildDate><generator>http://wordpress.org/?v=3.5.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Pensandoit" /><feedburner:info uri="pensandoit" /><thespringbox:skin xmlns:thespringbox="http://www.thespringbox.com/dtds/thespringbox-1.0.dtd">http://feeds.feedburner.com/Pensandoit?format=skin</thespringbox:skin><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><itunes:explicit>no</itunes:explicit><itunes:subtitle>etrusco's tech, photo and ideas</itunes:subtitle><creativeCommons:license>http://creativecommons.org/licenses/by-nc-sa/3.0/</creativeCommons:license><image><link>http://creativecommons.org/licenses/by-nc-sa/3.0/</link><url>http://creativecommons.org/images/public/somerights20.gif</url><title>Some Rights Reserved</title></image><feedburner:emailServiceId>Pensandoit</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><feedburner:feedFlare href="http://add.my.yahoo.com/content?lg=it&amp;url=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://eur.i1.yimg.com/eur.yimg.com/i/it/my/mioya1.gif">Subscribe with Mio Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/Pensandoit" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><feedburner:feedFlare href="http://mix.excite.eu/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://image.excite.co.uk/mix/addtomix.gif">Subscribe with Excite MIX</feedburner:feedFlare><feedburner:feedFlare href="http://www.wikio.com/subscribe?url=http%3A%2F%2Ffeeds.feedburner.com%2FPensandoit" src="http://www.wikio.com/shared/img/add2wikio.gif">Subscribe with Wikio</feedburner:feedFlare><feedburner:browserFriendly>Benvenuto, &#xD;
in questa sezione potrai sottoscrivere i contenuti del blog Pensando.it, etrusco's tech, photo and ideas&#xD;
&#xD;
A presto&#xD;
Etrusco</feedburner:browserFriendly><item><title>Bitcoin, moneta del futuro o bolla speculativa? 15 Risorse utili per capirlo da soli.</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/V4NFp2Ly6pQ/bitcoin-moneta-del-futuro-o-bolla-speculativa-15-risorse-utili-per-capirlo-da-soli</link><category>bitcoin</category><category>societa'</category><category>tech</category><category>mining</category><category>peer-to-peer</category><category>tecnologia</category><category>wallet</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Sun, 19 May 2013 23:00:44 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3475</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Oggi vorrei parlarvi di bitcoin o meglio del &#8220;<strong>fenomeno</strong>&#8221; bitcoin che tanto sta impazzando in questo periodo.</p>
<p>Lo scopo di questo articolo è fornire al lettore quindici risorse (link) utili per comprendere meglio il bitcoin e tutto quello che vi ruota attorno.</p>
<p>Farò solo una piccola premessa su cosa è un <strong>bitcoin</strong>, su cosa è una bitcoin <strong>wallet</strong> e su cosa si intende per bitcoin <strong>mining.</strong><strong><br />
</strong></p>
<h4>Cosa è il bitcoin?</h4>
<p>Ho trovato un&#8217;ottima definizione sul sito <a href="http://www.pokerlistings.it/tutto-quello-che-non-vi-hanno-ancora-raccontato-su-bitcoin-75568" target="_blank">pokerlistings.it</a> che vi ripropongo :</p>
<p><span id="more-3475"></span></p>
<p>&#8220;<strong>u</strong><b>na moneta globale </b>pensata per Internet, <b>non controllata/regolata</b> da alcuna banca centrale e che <b>non ha bisogno di banche</b> per esistere&#8221;</p>
<p>Si avete capito bene, bitcoin è una moneta nata dal web per il web, non controllata e non regolata da nessuno e che per esistere non necessita di una banca.</p>
<h4>Cosa si intende per bitcoin wallet?</h4>
<p>Il bitcoin <strong>wallet </strong>altro non è che la vostra banca personale.</p>
<p>Per dirla in termini semplici è un software che potete scaricare sul vostro pc o che potrete trovare online (cloud wallet) per &#8220;aprire&#8221; un conto bitcoin (sarebbe più corretto parlare di banca bitcoin).</p>
<p>Una volta aperto un wallet avrete un indirizzo che potrete utilizzare per inviare e ricevere pagamenti via bitcoin su internet (simile a paypal).</p>
<p>L&#8217;indirizzo è <strong>modificabile</strong> ad ogni transazione, anzi è vivamente consigliato farlo per ovvi motivi di <strong>sicurezza</strong>. Tenete conto che se qualcuno riuscisse ad hackerare il vostro pc è come se fosse entrato nella vostra banca a vostro nome, avrebbe semplicemente <strong>tutto</strong>. Spaventoso vero?</p>
<p>Comunque è possibile acquistare bitcoin in maniera molto semplice, esattamente come potreste fare per acquistare altra moneta (cambio).</p>
<p>Ad oggi un bitcoin equivale a circa <strong>80 euro</strong>, si avete capito bene, per acquistare un bitcoin servono circa 80 euro, se avete un bitcoin potete rivenderlo per 80 euro o acquistare un oggetto del valore di 80 euro (solo online ovviamente)</p>
<h4>Cosa si intende per bitcoin mining?</h4>
<p>Arriviamo al bello, il <strong>bitcoin mining</strong> ovvero quell&#8217;operazione attraverso la quale si cerca di reperire &#8220;monete&#8221; sfruttando le potenzialità del proprio pc ovvero della propria CPU &#8230; lo scopo è diventare dei minatori di monete virtuali!</p>
<p>Quanti di voi conoscono i prodotti di peer-to-peer usati per scaricare file? Ad esempio emule? Credo molti (se non tutti) &#8230; Bene, il software di bitcoin mining è molto simile ad emule, il principio è lo stesso, &#8220;condividere&#8221; non file ma &#8220;potenza di elaborazione&#8221; con altri utenti facendo &#8220;network&#8221;.</p>
<p>Cosa dovremmo fare con la nostra CPU? Semplicemente condividerla per elaborare complessi algoritmi matematici, la cui elaborazione pian piano crea bitcoin (monete)</p>
<p>In molti si chiedono se realmente il bitcoin mining possa realmente fruttare &#8220;<strong>soldi</strong>&#8220;, fatto sta che la corrente di casa costa e i pc &#8220;domestici&#8221; non sono super attrezzati, per cui spesso e volentieri l&#8217;operazione è più dispendiosa che altro.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h4>Le quindici risorse (link) indispensabili per comprendere il fenomeno bitcoin.</h4>
<p>Fatta questa breve panoramica vi lascio decidere da soli se il bitcoin sarà realmente il futuro della moneta o se invece sarà solo una delle tante bolle speculative nate sul web. Come? attraverso la consultazione di questi quindici link che sono nei miei &#8220;<strong>bitcoin bookmark</strong>&#8220;.</p>
<p>1. sito ufficiale in lingua inglese<br />
<a href="http://bitcoin.org/en/" target="_blank">http://bitcoin.org/en/</a></p>
<p>2. wiki<br />
<a href="http://it.wikipedia.org/wiki/Bitcoin" target="_blank">http://it.wikipedia.org/wiki/Bitcoin</a></p>
<p>3. ottima guida in italiano<br />
<a href="http://www.pokerlistings.it/tutorial-guida-completa-a-bitcoin-in-italiano">http://www.pokerlistings.it/tutorial-guida-completa-a-bitcoin-in-italiano</a></p>
<p>4. ottima guida in inglese<br />
<a href="https://www.weusecoins.com/en/getting-started">https://www.weusecoins.com/en/getting-started</a></p>
<p>5. <span style="line-height: 1.714285714; font-size: 1rem;">wallet online<br />
<a href="https://coinbase.com/">https://coinbase.com/</a><br />
</span></p>
<p>6. altro wallet online<br />
<a href="https://blockchain.info/wallet">https://blockchain.info/wallet</a></p>
<p dir="ltr">7. lista dei siti di trading online<br />
<a href="https://en.bitcoin.it/wiki/Trade">https://en.bitcoin.it/wiki/Trade</a></p>
<p dir="ltr">8. mercatino in italiano (tipo ebay)<br />
<a href="http://www.bitmit.net/it/local">http://www.bitmit.net/it/local</a></p>
<p dir="ltr">9. leader mondiale per trading<br />
<a href="https://mtgox.com/">https://mtgox.com/</a></p>
<p dir="ltr">10. altro sito per trading<br />
<a href="https://www.bitstamp.net/">https://www.bitstamp.net/</a></p>
<p dir="ltr">11. ancora trading<br />
<a href="https://www.therocktrading.com/">https://www.therocktrading.com/</a></p>
<p dir="ltr">12. bitcoiners vicino a te?<br />
<a href="https://localbitcoins.com/">https://localbitcoins.com/</a></p>
<p dir="ltr"><span style="line-height: 1.714285714; font-size: 1rem;">13. grafici in tempo reale sui prezzi (chart market)<br />
<a href="http://bitcoincharts.com/markets/">http://bitcoincharts.com/markets/</a></span></p>
<p>14. forum<br />
<a href="https://bitcointalk.org/index.php?board=28.0">https://bitcointalk.org/index.php?board=28.0</a></p>
<p dir="ltr">15. forum italiano<br />
<a href="https://www.bitcoin-italia.org/forum/index.php">https://www.bitcoin-italia.org/forum/index.php</a></p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/societa/finalmente-mutuo-a-tasso-fisso' rel='bookmark' title='Finalmente mutuo a tasso fisso'>Finalmente mutuo a tasso fisso</a></li>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/online-il-photoblog-www-renatogiustini-it-second-edition' rel='bookmark' title='online il photoblog www.renatogiustini.it second edition'>online il photoblog www.renatogiustini.it second edition</a></li>
<li><a href='http://www.pensando.it/wp/index.php/fotografia/nikon-f3-hp-un-salto-nel-passato-per-comprendere-il-futuro' rel='bookmark' title='Nikon F3 HP, un salto nel passato per comprendere il futuro'>Nikon F3 HP, un salto nel passato per comprendere il futuro</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=V4NFp2Ly6pQ:y87U5TaR5s8:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=V4NFp2Ly6pQ:y87U5TaR5s8:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=V4NFp2Ly6pQ:y87U5TaR5s8:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=V4NFp2Ly6pQ:y87U5TaR5s8:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=V4NFp2Ly6pQ:y87U5TaR5s8:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=V4NFp2Ly6pQ:y87U5TaR5s8:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=V4NFp2Ly6pQ:y87U5TaR5s8:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Oggi vorrei parlarvi di bitcoin o meglio del &amp;#8220;fenomeno&amp;#8221; bitcoin che tanto sta impazzando in questo periodo. Lo scopo di questo articolo è fornire al lettore quindici risorse (link) utili per comprendere meglio il bitcoin e tutto quello che vi ruota attorno. Farò solo una piccola premessa su cosa è un bitcoin, su cosa è una [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/societa/finalmente-mutuo-a-tasso-fisso' rel='bookmark' title='Finalmente mutuo a tasso fisso'&gt;Finalmente mutuo a tasso fisso&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/online-il-photoblog-www-renatogiustini-it-second-edition' rel='bookmark' title='online il photoblog www.renatogiustini.it second edition'&gt;online il photoblog www.renatogiustini.it second edition&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/fotografia/nikon-f3-hp-un-salto-nel-passato-per-comprendere-il-futuro' rel='bookmark' title='Nikon F3 HP, un salto nel passato per comprendere il futuro'&gt;Nikon F3 HP, un salto nel passato per comprendere il futuro&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/societa/bitcoin-moneta-del-futuro-o-bolla-speculativa-15-risorse-utili-per-capirlo-da-soli/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/societa/bitcoin-moneta-del-futuro-o-bolla-speculativa-15-risorse-utili-per-capirlo-da-soli</feedburner:origLink></item><item><title>nodejitsu alza i prezzi per l’hosting di individual plan su piattaforma cloud</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/I2y1Pgj65fk/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud</link><category>node.js</category><category>tech</category><category>cloud</category><category>nodejitsu</category><category>tecnologia</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Tue, 14 May 2013 23:00:42 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3472</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Il 13 maggio <a href="https://blog.nodejitsu.com/changes-in-nodejitsu-public-cloud" target="_blank">nodejitsu</a> ha comunicato un incremento dei prezzi per i piani individuali su hosting cloud di applicazioni <a href="http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js" target="_blank">node.js</a>.</p>
<p>Il nuovo listino prezzi sarà attivo dal <strong>22 Maggio 2013</strong>.</p>
<h4>Come giustificano questo incremento dei prezzi?</h4>
<p>Lo giustificano in relazione all&#8217;incremento esponenziale di app node.js, considerando ormai matura questa tecnologia e soprattutto perché dopo un solo anno dal lancio della piattaforma beta <strong>nodejitsu</strong> è ormai diventato un punto di riferimento globale per app basate su stack node.js, pertanto i prezzi fatti fino ad oggi non sono più sostenibili.</p>
<p>Questo l&#8217;incremento dei prezzi :</p>
<ul>
<li>Micro (1 drone): da <strong>$3</strong> / mese a<strong> $9</strong> / mese</li>
<li>Small (3 drones): da<strong> $7</strong> / mese a<strong> $33</strong> / mese</li>
<li>Regular (5 drones): da <strong>$11</strong> / mese a <strong>$50</strong> / mese</li>
<li>Large: da infiniti droni con costo <strong>0,0042$ </strong>/ ora / drone a <strong>$90</strong> / mese con limite massimo di 10 droni</li>
</ul>
<p>Di certo un aumento non da poco &#8230;</p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Questo il comunicato ufficiale, in lingua inglese.</span></p>
<p><span id="more-3472"></span></p>
<blockquote><p>Hey there,</p>
<p>On April 30th, Nodejitsu <a href="http://nodejitsu.us2.list-manage.com/track/click?u=e4a7e45f759ae0d449c3ba923&amp;id=4edda1c956&amp;e=c210ea671a" target="_blank">announced</a> price increases to the <a href="http://nodejitsu.us2.list-manage1.com/track/click?u=e4a7e45f759ae0d449c3ba923&amp;id=c58c3b914d&amp;e=c210ea671a" target="_blank">Individual Plans</a> offered on our public cloud. This email details these changes and provides some context. We originally scheduled pricing changes to take effect on Wednesday May 15th, but we have chosen to delay the changes another week based on your feedback. <b>These new prices for Individual Plans will now take effect on Wednesday May 22nd.</b></p>
<p>Here are the specifics:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p><b>New Prices</b></p>
<ul>
<li>Micro (1 drone): $9 / month</li>
<li>Small (3 drones): $33 / month</li>
<li>Regular (5 drones): $50 / month</li>
<li>Large (10 drones): $90 / month</li>
</ul>
<p><b>We have also clarified some limitations for applications running on Individual Plans:</b></p>
<ul>
<li><b>3 drone limit:</b> If you’re on an Individual Plan, the maximum number of running drones you will be able to set for a single application will be three.</li>
<li><b>10 drones max:</b> If you’re on an Individual Plan, you will be able to run a total of 10 drones maximum. If you need more than that, we recommend you upgrade to a Business Plan.</li>
<li><b>One-day retention for Metrics:</b> When our metrics are rolled out, customers running on an Individual Plan will have a default retention of one day.</li>
<li><b>One-day retention for Logs:</b> As we improve our logging capabilities for Business Plans, Individual plans will be limited to one day of logs retention.</li>
<li><b>Designated support hours:</b> The <a href="http://nodejitsu.us2.list-manage1.com/track/click?u=e4a7e45f759ae0d449c3ba923&amp;id=1b3ab32985&amp;e=c210ea671a" target="_blank">#nodejitsu</a> channel on irc.freenode.net will now be staffed by Nodejitsu Support Engineers from 9am &#8211; 8pm ET, Monday &#8211; Friday, and during these hours you can rely on live help from Nodejitsu.</li>
</ul>
<p>&nbsp;</p>
<p><b>Why are we doing this?</b> As Nodejitsu and the node.js community have matured, we&#8217;ve realized that the pricing on our Individual Plans is not sustainable and that we were operating at a loss. Since introducing our Individual Plans, we&#8217;ve carefully monitored the cost of running our business. These changes will allow our PaaS to grow in the years to come, to deal more quickly with production incidents, to fix underlying issues, and to continue to improve the platform as a whole.</p>
<p>Nodejitsu has grown as the Node.js community has grown, and we owe our success thus far entirely to our membership in this community. We understand these changes have upset some community members, but they allow us to continue to do what we do best: provide our hosting service and contribute to open source Node software. We are continuing our current program of offering 1 free drone for open source apps at<a href="http://nodejitsu.us2.list-manage.com/track/click?u=e4a7e45f759ae0d449c3ba923&amp;id=04c171fa10&amp;e=c210ea671a" target="_blank">opensource.jit.su</a>.</p>
<p>We&#8217;re excited to move forward and work with you towards a bright future for node. If you have questions or further thoughts, we encourage you to join us in <a href="http://nodejitsu.us2.list-manage1.com/track/click?u=e4a7e45f759ae0d449c3ba923&amp;id=f8e6921219&amp;e=c210ea671a" target="_blank">#nodejitsu</a> on irc.freenode.net. Our always excellent support team is standing by.</p>
<p>Sincerely,</p>
<p>— The Nodejitsu Team</p></blockquote>
<p>&nbsp;</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'>joyent, il perfetto cloud per il deploy di app basate su stack node.js</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js'>nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu' rel='bookmark' title='Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu'>Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=I2y1Pgj65fk:8dKZZC-qn-E:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=I2y1Pgj65fk:8dKZZC-qn-E:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=I2y1Pgj65fk:8dKZZC-qn-E:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=I2y1Pgj65fk:8dKZZC-qn-E:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=I2y1Pgj65fk:8dKZZC-qn-E:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=I2y1Pgj65fk:8dKZZC-qn-E:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=I2y1Pgj65fk:8dKZZC-qn-E:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Il 13 maggio nodejitsu ha comunicato un incremento dei prezzi per i piani individuali su hosting cloud di applicazioni node.js. Il nuovo listino prezzi sarà attivo dal 22 Maggio 2013. Come giustificano questo incremento dei prezzi? Lo giustificano in relazione all&amp;#8217;incremento esponenziale di app node.js, considerando ormai matura questa tecnologia e soprattutto perché dopo un [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'&gt;joyent, il perfetto cloud per il deploy di app basate su stack node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js'&gt;nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu' rel='bookmark' title='Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu'&gt;Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud</feedburner:origLink></item><item><title>MongoDB 2.4 ed errore “Can’t extract geo keys from object, malformed geometry?”</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/tI-GONkzR64/mongodb-ed-errore-cant-extract-geo-keys-from-object-malformed-geometry</link><category>mongoDB</category><category>node.js</category><category>tech</category><category>error</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Wed, 17 Apr 2013 23:00:30 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3455</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>In questi giorni ho riscontrato un problema con <a href="http://docs.mongodb.org/manual/release-notes/2.4/#release-geospatial" target="_blank">mongoDB </a>versione 2.4 ed i nuovi oggetti geometrici ovvero con l&#8217;indice <strong>2dsphere</strong> e l&#8217;oggetto geometrico &#8220;<strong>LineString</strong>&#8220;.</p>
<p>Avevo parlato di <strong>mongoDB 2.4</strong> e nuove funzionalità sugli oggetti geometrici in questo <a href="http://www.pensando.it/wp/index.php/tech/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici" target="_blank">post</a>.</p>
<h2>Descrizione del problema</h2>
<p><span style="line-height: 1.714285714; font-size: 1rem;">In locale prendo le </span><strong style="line-height: 1.714285714; font-size: 1rem;">coordinate gps</strong><span style="line-height: 1.714285714; font-size: 1rem;"> e le invio poi ad un rest webservice </span><strong style="line-height: 1.714285714; font-size: 1rem;">node.js</strong><span style="line-height: 1.714285714; font-size: 1rem;"> che fa la insert in mongoDB delle coordinate sotto forma di linestring (spezzata), strutturate secondo le specifiche mongoDB 2.4 per gli oggetti geometrici ovvero</span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span> loc : <span class="br0">&#123;</span> type : &quot;LineString&quot; ,
          coordinates : <span class="br0">&#91;</span> <span class="br0">&#91;</span><span style="">12.0991736</span>,<span style="">42.4245143</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991226</span>,<span style="">42.42456500000001</span><span class="br0">&#93;</span> <span class="br0">&#93;</span>
<span class="br0">&#125;</span> <span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Il problema è che a volte la insert va a buon fine altre volte ritorna il seguente errore:</p>
<p>&#8220;<strong>Can&#8217;t extract geo keys from object, malformed geometry?</strong>&#8221;</p>
<p>Sembrerebbe che mongoDB non riconosca i valori inseriti come coordinate corrette o comunque non riconosca l&#8217;oggetto &#8220;LineString&#8221;.</p>
<p><span id="more-3455"></span></p>
<p>Ho cercato un pochino sul web ma non ho trovato nulla, probabilmente è troppo &#8220;giovane&#8221; la funzionalità spaziale con il nuovo indice <strong>2dsphere</strong> per avere sufficiente letteratura.</p>
<h2><strong>Il sorgente mongoDB</strong></h2>
<p>Sono quindi arrivato al <strong>sorgente</strong> di mongoDB per cercare di capire qualcosa.</p>
<p><a href="https://github.com/mongodb/mongo/blob/master/src/mongo/db/geo/s2index.cpp" target="_blank">https://github.com/mongodb/mongo/blob/master/src/mongo/db/geo/s2index.cpp</a></p>
<p>alla riga 281 (del sorgente git) c&#8217;è la stringa dell&#8217;errore che mi esce quando faccio la &#8220;insert&#8221;.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="" style="font-family:monospace;">// We only support GeoJSON polygons.  Why?:
// <span style="">1</span>. we don't automagically do WGS84/flat -&amp;gt; WGS84, and
// <span style="">2</span>. the old polygon format must die.
if <span class="br0">&#40;</span>GeoParser::isGeoJSONPolygon<span class="br0">&#40;</span>obj<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	S2Polygon polygon;
	GeoParser::parseGeoJSONPolygon<span class="br0">&#40;</span>obj, &amp;amp;polygon<span class="br0">&#41;</span>;
	keysFromRegion<span class="br0">&#40;</span>&amp;amp;coverer, polygon, &amp;amp;cells<span class="br0">&#41;</span>;
<span class="br0">&#125;</span> else if <span class="br0">&#40;</span>GeoParser::parseLineString<span class="br0">&#40;</span>obj, &amp;amp;line<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	keysFromRegion<span class="br0">&#40;</span>&amp;amp;coverer, line, &amp;amp;cells<span class="br0">&#41;</span>;
<span class="br0">&#125;</span> else if <span class="br0">&#40;</span>GeoParser::parsePoint<span class="br0">&#40;</span>obj, &amp;amp;point<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
	S2CellId parent<span class="br0">&#40;</span>point.id<span class="br0">&#40;</span><span class="br0">&#41;</span>.parent<span class="br0">&#40;</span>_params.finestIndexedLevel<span class="br0">&#41;</span><span class="br0">&#41;</span>;
	cells.push_back<span class="br0">&#40;</span>parent.toString<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span> else <span class="br0">&#123;</span>
	uasserted<span class="br0">&#40;</span><span style="">16572</span>, &quot;&lt;span style=&quot;color: #ff0000;&quot;&gt;Can't extract geo keys from object, malformed geometry?&lt;/span&gt;:&quot;
					 + obj.toString<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Il metodo è il seguente:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="" style="font-family:monospace;">GeoParser::parseLineString<span class="br0">&#40;</span>obj, &amp;amp;line<span class="br0">&#41;</span></pre></td></tr></table></div>

<p>che si trova in</p>
<p><a href="https://github.com/mongodb/mongo/blob/master/src/mongo/db/geo/geoparser.cpp" target="_blank">https://github.com/mongodb/mongo/blob/master/src/mongo/db/geo/geoparser.cpp</a></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
</pre></td><td class="code"><pre class="" style="font-family:monospace;">bool GeoParser::parseLineString<span class="br0">&#40;</span>const BSONObj &amp;amp;obj, S2Polyline *out<span class="br0">&#41;</span> <span class="br0">&#123;</span>
	if <span class="br0">&#40;</span>!isGeoJSONLineString<span class="br0">&#40;</span>obj<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
	parseGeoJSONLineString<span class="br0">&#40;</span>obj, out<span class="br0">&#41;</span>;
	return true;
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>che a sua volta richiama &#8220;<strong>isGeoJSONLineString</strong>&#8221;</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="" style="font-family:monospace;">bool GeoParser::isGeoJSONLineString<span class="br0">&#40;</span>const BSONObj&amp;amp; obj<span class="br0">&#41;</span> <span class="br0">&#123;</span>
	BSONElement type = obj.getFieldDotted<span class="br0">&#40;</span>GEOJSON_TYPE<span class="br0">&#41;</span>;
	if <span class="br0">&#40;</span>type.eoo<span class="br0">&#40;</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span>String != type.type<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
	if <span class="br0">&#40;</span>GEOJSON_TYPE_LINESTRING != type.String<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
&nbsp;
	if <span class="br0">&#40;</span>!crsIsOK<span class="br0">&#40;</span>obj<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
		warning<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;lt;&amp;lt; &quot;Invalid CRS: &quot; &amp;lt;&amp;lt; obj.toString<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;lt;&amp;lt; endl;
		return false;
	<span class="br0">&#125;</span>
&nbsp;
	BSONElement coordElt = obj.getFieldDotted<span class="br0">&#40;</span>GEOJSON_COORDINATES<span class="br0">&#41;</span>;
	if <span class="br0">&#40;</span>coordElt.eoo<span class="br0">&#40;</span><span class="br0">&#41;</span> || <span class="br0">&#40;</span>Array != coordElt.type<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
&nbsp;
	const vector&amp;amp; coordinateArray = coordElt.Array<span class="br0">&#40;</span><span class="br0">&#41;</span>;
	if <span class="br0">&#40;</span>coordinateArray.size<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;lt; <span style="">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
	if <span class="br0">&#40;</span>!isArrayOfCoordinates<span class="br0">&#40;</span>coordinateArray<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> return false; <span class="br0">&#125;</span>
	vector vertices;
	parsePoints<span class="br0">&#40;</span>obj.getFieldDotted<span class="br0">&#40;</span>GEOJSON_COORDINATES<span class="br0">&#41;</span>.Array<span class="br0">&#40;</span><span class="br0">&#41;</span>, &amp;amp;vertices<span class="br0">&#41;</span>;
	return S2Polyline::IsValid<span class="br0">&#40;</span>vertices<span class="br0">&#41;</span>;
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Analizzando questo metodo si nota subito come ci siano moltissimi controlli sulla correttezza della &#8220;LineString&#8221; ossia dell&#8217;insieme di punti che compongono la spezzata.</p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Questo un esempio di json reale che ritorna l&#8217;errore</span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span> loc : <span class="br0">&#123;</span> type : &quot;LineString&quot; ,
          coordinates : <span class="br0">&#91;</span> <span class="br0">&#91;</span><span style="">12.0991736</span>,<span style="">42.4245143</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991226</span>,<span style="">42.42456500000001</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991525</span>,<span style="">42.42452249999999</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991435</span>,<span style="">42.4244968</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991489</span>,<span style="">42.4245177</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991439</span>,<span style="">42.4245229</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991472</span>,<span style="">42.4245192</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991503</span>,<span style="">42.42452180000001</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991484</span>,<span style="">42.4245192</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991351</span>,<span style="">42.4244986</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.099134</span>,<span style="">42.4244971</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991409</span>,<span style="">42.4245173</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991409</span>,<span style="">42.4245173</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991423</span>,<span style="">42.424527</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991347</span>,<span style="">42.4244803</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991462</span>,<span style="">42.42451519999999</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991441</span>,<span style="">42.4245188</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991435</span>,<span style="">42.4245191</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991442</span>,<span style="">42.42451519999999</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991452</span>,<span style="">42.424515</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991433</span>,<span style="">42.4245182</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991429</span>,<span style="">42.4245156</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991463</span>,<span style="">42.424517</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991086</span>,<span style="">42.4245464</span><span class="br0">&#93;</span> <span class="br0">&#93;</span>
<span class="br0">&#125;</span> <span class="br0">&#125;</span></pre></td></tr></table></div>

<p>I punti sono, o almeno sembrano, essere corretti. Sono espressi in coordinate standard <strong>WGS84</strong> lette direttamente dal <strong>GPS</strong> e correttamente strutturati secondo lo standard mongoDB 2.4.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<h2><strong>Dove sta quindi l&#8217;errore?</strong></h2>
<p>Dopo molto &#8220;spippolamento&#8221; e confrontandomi con i ragazzi della community G+ &#8220;<a href="https://plus.google.com/communities/108809018737113333182" target="_blank">Italian Developers</a>&#8221; sono arrivato a capire che per mongoDB quell&#8217;insieme di coordinate non è una &#8220;<strong>LineString</strong>&#8221; corretta perché ad un certo punto dell&#8217;array ci sono<strong> due coppie di coordinate uguali</strong>.</p>
<p>Queste le due coppie incriminate:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#91;</span><span style="">12.0991409</span>,<span style="">42.4245173</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="">12.0991409</span>,<span style="">42.4245173</span><span class="br0">&#93;</span></pre></td></tr></table></div>

<p>Le coordinate, ovvio, me le ha date il GPS per cui il problema potrebbe essere molto più frequente del previsto qualora si tracciassero coordinate stando fermi.</p>
<h2><strong>La soluzione</strong></h2>
<p>Per risolvere basta verificare che una qualsiasi coppia n-1 sia diversa dalla coppia n, nel caso siano uguali non inserire nell&#8217;array la seconda coppia n ( o togliere la n-1 già inserita ).</p>
<p>Ho verificato che il problema si verifichi solo per le coppie contigue, se ci sono coppie uguali non contigue il problema non si presenta.</p>
<p>Il controllo è fatto dal seguente metodo (generico per ogni polilinea):</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="" style="font-family:monospace;">S2Polyline::isValid<span class="br0">&#40;</span>vertices<span class="br0">&#41;</span></pre></td></tr></table></div>

<p>Una polyline in coordinate sferiche non ammette archi di lunghezza zero e orientamento 180°, che si traduce in due punti consecutivi sovrapposti.</p>
<p>Questo il codice :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
</pre></td><td class="code"><pre class="" style="font-family:monospace;">bool S2Polyline::IsValid<span class="br0">&#40;</span>vector const&amp;amp; v<span class="br0">&#41;</span> <span class="br0">&#123;</span>
  // All vertices must be unit length.
  int n = v.size<span class="br0">&#40;</span><span class="br0">&#41;</span>;
  for <span class="br0">&#40;</span>int i = <span style="">0</span>; i &amp;lt; n; ++i<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    if <span class="br0">&#40;</span>!S2::IsUnitLength<span class="br0">&#40;</span>v<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      S2LOG<span class="br0">&#40;</span>INFO<span class="br0">&#41;</span> &amp;lt;&amp;lt; &quot;Vertex &quot; &amp;lt;&amp;lt; i &amp;lt;&amp;lt; &quot; is not unit length&quot;;
      return false;
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
&nbsp;
  // Adjacent vertices must not be identical or antipodal.
  for <span class="br0">&#40;</span>int i = <span style="">1</span>; i &amp;lt; n; ++i<span class="br0">&#41;</span> <span class="br0">&#123;</span>
    if <span class="br0">&#40;</span>v<span class="br0">&#91;</span>i-<span style="">1</span><span class="br0">&#93;</span> == v<span class="br0">&#91;</span>i<span class="br0">&#93;</span> || v<span class="br0">&#91;</span>i-<span style="">1</span><span class="br0">&#93;</span> == -v<span class="br0">&#91;</span>i<span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      S2LOG<span class="br0">&#40;</span>INFO<span class="br0">&#41;</span> &amp;lt;&amp;lt; &quot;Vertices &quot; &amp;lt;&amp;lt; <span class="br0">&#40;</span>i - <span style="">1</span><span class="br0">&#41;</span> &amp;lt;&amp;lt; &quot; and &quot; &amp;lt;&amp;lt; i
                &amp;lt;&amp;lt; &quot; are identical or antipodal&quot;;
      return false;
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
  return true;
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Come si vede è espressamente commentato che &#8220;<strong>Vertici adiacenti non devono essere identici o agli antipodi</strong>&#8221;</p>
<h2><strong>Conclusioni</strong></h2>
<p>Va benissimo l&#8217;errore perché effettivamente da specifiche la linestring non era corretta, però perché non dettagliare meglio il messaggio?</p>
<p>C&#8217;è una bella differenza tra :</p>
<p><strong>&#8220;Can&#8217;t extract geo keys from object, malformed geometry?&#8221;</strong></p>
<p>e</p>
<p><strong>&#8220;Adjacent vertices must not be identical or antipodal&#8221;</strong></p>
<p>Magari mi sarei risparmiato tutto questo tempo per cercare di risolvere il problema.</p>
<p>Ho pensato di farci un post perché potrebbe capitare anche ad altri sviluppatori non appena la nuova release di mongoDB 2.4 diverrà ufficiale sulle varie piattafome cloud.</p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Che te ne pare dell&#8217;articolo? Ti era mai capitata una cosa simile? Pensi che ti potrebbe essere di aiuto?</span></p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/tech/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici' rel='bookmark' title='Rilasciata la versione 2.4 di mongoDB con nuove ed interessanti caratteristiche sugli oggetti geometrici'>Rilasciata la versione 2.4 di mongoDB con nuove ed interessanti caratteristiche sugli oggetti geometrici</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'>joyent, il perfetto cloud per il deploy di app basate su stack node.js</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js'>nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=tI-GONkzR64:KPniL2Q_9fs:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=tI-GONkzR64:KPniL2Q_9fs:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=tI-GONkzR64:KPniL2Q_9fs:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=tI-GONkzR64:KPniL2Q_9fs:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=tI-GONkzR64:KPniL2Q_9fs:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=tI-GONkzR64:KPniL2Q_9fs:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=tI-GONkzR64:KPniL2Q_9fs:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>In questi giorni ho riscontrato un problema con mongoDB versione 2.4 ed i nuovi oggetti geometrici ovvero con l&amp;#8217;indice 2dsphere e l&amp;#8217;oggetto geometrico &amp;#8220;LineString&amp;#8220;. Avevo parlato di mongoDB 2.4 e nuove funzionalità sugli oggetti geometrici in questo post. Descrizione del problema In locale prendo le coordinate gps e le invio poi ad un rest webservice [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici' rel='bookmark' title='Rilasciata la versione 2.4 di mongoDB con nuove ed interessanti caratteristiche sugli oggetti geometrici'&gt;Rilasciata la versione 2.4 di mongoDB con nuove ed interessanti caratteristiche sugli oggetti geometrici&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'&gt;joyent, il perfetto cloud per il deploy di app basate su stack node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js'&gt;nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/mongodb-ed-errore-cant-extract-geo-keys-from-object-malformed-geometry/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/mongodb-ed-errore-cant-extract-geo-keys-from-object-malformed-geometry</feedburner:origLink></item><item><title>Medioera, il festival di cultura digitale Viterbese, quest’anno gioca d’anticipo.</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/hDwA--8Ljk0/medioera-il-festival-di-cultura-digitale-viterbese-questanno-gioca-danticipo</link><category>tech</category><category>tuscia e pensiero</category><category>caffeina</category><category>caffeina cultura</category><category>festival di cultura digitale</category><category>medioera</category><category>viterbo</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Sun, 14 Apr 2013 23:00:50 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3437</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Per il quarto anno consecutivo, nella mia città natale <strong>Viterbo</strong>, verrà organizzato <strong>Medioera , il festival di cultura digitale</strong>.</p>
<p>Quest&#8217;anno però si gioca di anticipo e non si aspetterà Luglio e la fine di <a href="http://www.pensando.it/wp/index.php/societa/caffeina-cultura-2012-al-via-il-29-giugno" target="_blank">Caffeina Cultura</a></p>
<p>Riporto più dettagli dal sito ufficiale della manifestazione <a href="http://www.medioera.it/" target="_blank">http://www.medioera.it</a><span id="more-3437"></span></p>
<blockquote><p><strong>Medioera </strong>guarda avanti e gioca d’anticipo. Facile per un’iniziativa che in quattro anni ha saputo parlare da Viterbo di nuove tecnologie e le loro possibilità anche nel settore del turismo.<br />
Stavolta non si aspetta l’estate. La nuova edizione è in programma dal <strong>30 aprile al 4 maggio</strong>. Non più in piazza, ma alla<strong> sala Regia di palazzo dei Priori</strong>, con un’appendice anche nei giardini sottostanti.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div></blockquote>
<p>Ma cosa è di preciso medioera?</p>
<blockquote><p>Medioera vuole essere il momento d’incontro ed approfondimento sulle tematiche legate all’uso delle <strong>nuove tecnologie</strong> nei più diversi ambiti della vita.<br />
Una riflessione da compiere con lo sguardo obliquo e crossmediale di chi è abituato a leggere la rete per quello che è: una struttura non gerarchica di nodi attraverso cui navigare alla ricerca di opportunità nuove, di stili contaminanti, di idee che non hanno timore di pensare in grande anche quando parlano a pochi o pochissimi.</p></blockquote>
<p>E quali obiettivi si pone medioera?</p>
<blockquote>
<ul>
<li><span style="line-height: 1.714285714; font-size: 1rem;">essere<strong> momento d’incontro</strong> e approfondimento su tematiche legate all’uso delle nuove tecnologie nei più diversi ambiti della vita</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">fornire al pubblico gli strumenti necessari per cogliere al meglio le opportunità offerte dalla Rete e dalla cosiddetta “<strong>rivoluzione digitale</strong>”</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;">disegnare gli scenari prossimi venturi nella loro dimensione necessariamente <strong>g-local</strong>, dove le micro esigenze locali si legano alle macro mutazioni globali in un processo di interazione  cooperativa sconosciuto fino a pochi anni fa. Una riflessione da compiere con lo sguardo obliquo e crossmediale di chi è abituato a leggere la rete come una struttura non gerarchica di nodi attraverso cui navigare alla ricerca di opportunità nuove, di stili contaminanti, di idee che non hanno timore di pensare in grande anche quando parlano a pochi</span></li>
<li><span style="line-height: 1.714285714; font-size: 1rem;"><strong>raggiungere le persone</strong> interessate ai temi trattati dal Festival e coinvolgerli nelle iniziative organizzate costantemente dall’organizzazione nel corso di tutto l’anno</span></li>
</ul>
</blockquote>
<p>Aspettiamo quindi il programma dettagliato per l&#8217;anno 2013.</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/societa/caffeina-cultura-2012-al-via-il-29-giugno' rel='bookmark' title='Caffeina Cultura 2012, al via il 29 Giugno'>Caffeina Cultura 2012, al via il 29 Giugno</a></li>
<li><a href='http://www.pensando.it/wp/index.php/fotografia/reflex-meccanica-35mm-o-reflex-digitale' rel='bookmark' title='Reflex meccanica 35mm o Reflex digitale?'>Reflex meccanica 35mm o Reflex digitale?</a></li>
<li><a href='http://www.pensando.it/wp/index.php/pensieri/sullessere-digitale' rel='bookmark' title='Sull&#8217;essere digitale'>Sull&#8217;essere digitale</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hDwA--8Ljk0:5x5hIluEzxc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hDwA--8Ljk0:5x5hIluEzxc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=hDwA--8Ljk0:5x5hIluEzxc:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hDwA--8Ljk0:5x5hIluEzxc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hDwA--8Ljk0:5x5hIluEzxc:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hDwA--8Ljk0:5x5hIluEzxc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=hDwA--8Ljk0:5x5hIluEzxc:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Per il quarto anno consecutivo, nella mia città natale Viterbo, verrà organizzato Medioera , il festival di cultura digitale. Quest&amp;#8217;anno però si gioca di anticipo e non si aspetterà Luglio e la fine di Caffeina Cultura Riporto più dettagli dal sito ufficiale della manifestazione http://www.medioera.it Medioera guarda avanti e gioca d’anticipo. Facile per un’iniziativa che in quattro anni ha [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/societa/caffeina-cultura-2012-al-via-il-29-giugno' rel='bookmark' title='Caffeina Cultura 2012, al via il 29 Giugno'&gt;Caffeina Cultura 2012, al via il 29 Giugno&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/fotografia/reflex-meccanica-35mm-o-reflex-digitale' rel='bookmark' title='Reflex meccanica 35mm o Reflex digitale?'&gt;Reflex meccanica 35mm o Reflex digitale?&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/pensieri/sullessere-digitale' rel='bookmark' title='Sull&amp;#8217;essere digitale'&gt;Sull&amp;#8217;essere digitale&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/medioera-il-festival-di-cultura-digitale-viterbese-questanno-gioca-danticipo/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/medioera-il-festival-di-cultura-digitale-viterbese-questanno-gioca-danticipo</feedburner:origLink></item><item><title>Probabile attacco mondiale tipo bruteforce per siti basati su wordpress</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/gYpzAGmnzNA/probabile-attacco-mondiale-tipo-bruteforce-per-siti-basati-su-wordpress</link><category>tech</category><category>wordpress</category><category>wp template</category><category>attacco</category><category>bruteforce</category><category>Stealth Login Page</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Fri, 12 Apr 2013 08:16:24 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3444</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Rigiro un alert che ha diramato <a href="http://www.netsons.com/aff.php?aff=340" target="_blank">netsons</a> sulla sua pagina ufficiale facebook.</p>
<blockquote><p>1) Non fatevi prendere dal panico, per ora è solo un consiglio</p>
<p>2) Circola voce in rete (fonti affidabili) che un attacco mondiale tipo bruteforce sta prendendo di mira siti web basati su WordPress, installate plugin tipo <a href="http://wordpress.org/extend/plugins/stealth-login-page/" target="_blank">Stealth Login Page</a> se non avete protetto il login in altri modi e cambiate la password di WordPress se l&#8217;avete messa estremamente semplice</p></blockquote>
<p>Io per non saper ne leggere ne scrivere ho<strong> installato il plugin</strong> e cambiato la password amministrativa del blog.</p>
<p><span id="more-3444"></span></p>
<p>Il plugin nasconde di login amministrativo e crea un nuovo link alla pagina, il nuovo link potete crearlo a vostro piacimento e sarà del tipo :</p>
<p>[TUOSITO]/wp/wp-login.php?[DOMANDA]=[RISPOSTA]</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>Dovete fornire anche un link per la error page, nel caso in cui qualcuno provasse ad accedere al vecchio link.</p>
<p>Fate una prova, accedete alla mia vecchia pagina di login amministrativo :</p>
<p><a href="http://www.pensando.it/wp/wp-admin/">http://www.pensando.it/wp/wp-admin/</a></p>
<p>La pagina non c&#8217;è più!</p>
<p>Fonti:<br />
<a href="http://www.bigwetfish.co.uk/whmcs/announcements.php?id=188" target="_blank" rel="nofollow nofollow">http://www.bigwetfish.co.uk/<wbr />whmcs/announcements.php?id=188</a><br />
<a href="http://blog.hostgator.com/2013/04/11/global-wordpress-brute-force-flood/" target="_blank" rel="nofollow nofollow">http://blog.hostgator.com/<wbr />2013/04/11/<wbr />global-wordpress-brute-force-fl<wbr />ood/</a><br />
<a href="http://www.hostdime.com/blog/2013/04/brute-force-attack-affecting-global-wordpress-installations/" target="_blank" rel="nofollow nofollow">http://www.hostdime.com/blog/<wbr />2013/04/<wbr />brute-force-attack-affecting-gl<wbr />obal-wordpress-installations/</a><br />
<a href="http://www.heartinternet.co.uk/blog/2013/04/important-information-for-wordpress-users/" target="_blank" rel="nofollow nofollow">http://<wbr />www.heartinternet.co.uk/blog/<wbr />2013/04/<wbr />important-information-for-wordp<wbr />ress-users/</a></p>
<p>&nbsp;</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/wordpress-la-lista-dei-plugin-installati-sul-mio-blog' rel='bookmark' title='wordpress, la lista dei plugin installati sul mio blog.'>wordpress, la lista dei plugin installati sul mio blog.</a></li>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/i-dieci-passi-per-creare-un-blog-con-wordpress' rel='bookmark' title='I dieci passi per creare un blog con wordpress'>I dieci passi per creare un blog con wordpress</a></li>
<li><a href='http://www.pensando.it/wp/index.php/plugin/pensandoit-attaccato-da-spammer' rel='bookmark' title='pensando.it attaccato da spammer'>pensando.it attaccato da spammer</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=gYpzAGmnzNA:Pnc_SEN1owI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=gYpzAGmnzNA:Pnc_SEN1owI:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=gYpzAGmnzNA:Pnc_SEN1owI:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=gYpzAGmnzNA:Pnc_SEN1owI:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=gYpzAGmnzNA:Pnc_SEN1owI:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=gYpzAGmnzNA:Pnc_SEN1owI:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=gYpzAGmnzNA:Pnc_SEN1owI:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Rigiro un alert che ha diramato netsons sulla sua pagina ufficiale facebook. 1) Non fatevi prendere dal panico, per ora è solo un consiglio 2) Circola voce in rete (fonti affidabili) che un attacco mondiale tipo bruteforce sta prendendo di mira siti web basati su WordPress, installate plugin tipo Stealth Login Page se non avete protetto [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/wordpress-la-lista-dei-plugin-installati-sul-mio-blog' rel='bookmark' title='wordpress, la lista dei plugin installati sul mio blog.'&gt;wordpress, la lista dei plugin installati sul mio blog.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/i-dieci-passi-per-creare-un-blog-con-wordpress' rel='bookmark' title='I dieci passi per creare un blog con wordpress'&gt;I dieci passi per creare un blog con wordpress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/plugin/pensandoit-attaccato-da-spammer' rel='bookmark' title='pensando.it attaccato da spammer'&gt;pensando.it attaccato da spammer&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/wordpress/probabile-attacco-mondiale-tipo-bruteforce-per-siti-basati-su-wordpress/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/wordpress/probabile-attacco-mondiale-tipo-bruteforce-per-siti-basati-su-wordpress</feedburner:origLink></item><item><title>“etruscosphoto.it” diventa “photo.pensando.it”</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/kJr_h7yIhBY/www-etruscosphoto-it-diventa-photo-pensando-it</link><category>photoblog</category><category>tech</category><category>etruscosphoto</category><category>photo</category><category>template</category><category>wordpress</category><category>YAPB</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Tue, 09 Apr 2013 23:00:24 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3421</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Ebbene si, la crisi si fa sentire anche per quanto riguarda i domini registrati.</p>
<p>Ecco perché  il mio photoblog personale <a href="http://www.etruscosphoto.it" target="_blank">http://www.etruscosphoto.it</a> è stato migrato sul dominio di secondo livello <a href="http://photo.pensando.it" target="_blank">http://photo.pensando.it</a></p>
<p>I due <a href="http://www.pensando.it/wp/?s=photoblog" target="_blank">photoblog</a> per un breve periodo saranno attivi entrambi, poi dal <strong>primo maggio</strong> il vecchio etrusco&#8217;s photo verrà definitivamente <strong>spento</strong>.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>Vi ricordo che oltre ad essere il mio photoblog personale rappresenta anche l&#8217;anteprima per chi volesse scaricare il tema <a href="http://www.pensando.it/wp/index.php/template" target="_blank">theWorldIn35mm</a> per <a href="http://www.pensando.it/wp/?s=wordpress" target="_blank">wordpress</a> e <a href="http://www.pensando.it/wp/?s=YAPB" target="_blank">YAPB</a> da me realizzato.</p>
<p>&nbsp;</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/template' rel='bookmark' title='Template'>Template</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/pixelpost-la-piattaforma-di-ideale-per-il-photoblogging-professionale' rel='bookmark' title='Pixelpost, la piattaforma ideale per il photoblogging professionale'>Pixelpost, la piattaforma ideale per il photoblogging professionale</a></li>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/online-il-photoblog-www-renatogiustini-it-second-edition' rel='bookmark' title='online il photoblog www.renatogiustini.it second edition'>online il photoblog www.renatogiustini.it second edition</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=kJr_h7yIhBY:kuojC5hTby4:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=kJr_h7yIhBY:kuojC5hTby4:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=kJr_h7yIhBY:kuojC5hTby4:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=kJr_h7yIhBY:kuojC5hTby4:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=kJr_h7yIhBY:kuojC5hTby4:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=kJr_h7yIhBY:kuojC5hTby4:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=kJr_h7yIhBY:kuojC5hTby4:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Ebbene si, la crisi si fa sentire anche per quanto riguarda i domini registrati. Ecco perché  il mio photoblog personale http://www.etruscosphoto.it è stato migrato sul dominio di secondo livello http://photo.pensando.it I due photoblog per un breve periodo saranno attivi entrambi, poi dal primo maggio il vecchio etrusco&amp;#8217;s photo verrà definitivamente spento. Vi ricordo che oltre ad essere il [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/template' rel='bookmark' title='Template'&gt;Template&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/pixelpost-la-piattaforma-di-ideale-per-il-photoblogging-professionale' rel='bookmark' title='Pixelpost, la piattaforma ideale per il photoblogging professionale'&gt;Pixelpost, la piattaforma ideale per il photoblogging professionale&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/online-il-photoblog-www-renatogiustini-it-second-edition' rel='bookmark' title='online il photoblog www.renatogiustini.it second edition'&gt;online il photoblog www.renatogiustini.it second edition&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/www-etruscosphoto-it-diventa-photo-pensando-it/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">2</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/www-etruscosphoto-it-diventa-photo-pensando-it</feedburner:origLink></item><item><title>Rilasciata la versione 2.4 di mongoDB con nuove ed interessanti caratteristiche sugli oggetti geometrici</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/9GVyB-34xB0/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici</link><category>gis</category><category>google maps</category><category>mongoDB</category><category>tech</category><category>$geometry</category><category>oracle locator</category><category>oracle spatial</category><category>spatial data</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Thu, 21 Mar 2013 00:30:36 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3394</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Il 19 Marzo 2013 è stata rilasciata la versione 2.4 di <a href="http://www.mongodb.org/" target="_blank">MongoDB</a>, un data base <a href="http://it.wikipedia.org/wiki/NoSQL" target="_blank">noSQL </a>dalle enormi potenzialità.</p>
<p>Questo la nota di rilascio ufficiale</p>
<p><a href="http://docs.mongodb.org/manual/release-notes/2.4/" target="_blank">http://docs.mongodb.org/manual/release-notes/2.4/</a></p>
<p>E&#8217; da segnalare la nuova feature sugli oggetti geometrici che, da questa versione, supporta i tipi complessi (<a href="http://geojson.org/geojson-spec.html" target="_blank">geoJSON</a>) e pertanto consente di rappresentarli geometricamente nel formato <strong>WGS84</strong>.</p>
<p><span id="more-3394"></span><span style="line-height: 1.714285714; font-size: 1rem;">I tipi supportati sono </span><strong style="line-height: 1.714285714; font-size: 1rem;">punto</strong><span style="line-height: 1.714285714; font-size: 1rem;">, </span><strong style="line-height: 1.714285714; font-size: 1rem;">linea</strong><span style="line-height: 1.714285714; font-size: 1rem;"> e </span><strong style="line-height: 1.714285714; font-size: 1rem;">poligono</strong><span style="line-height: 1.714285714; font-size: 1rem;"> da associare al nuovo indice spaziale &#8220;</span><a href="http://docs.mongodb.org/manual/applications/2dsphere/" target="_blank"><strong style="line-height: 1.714285714; font-size: 1rem;">2dsphere</strong></a><span style="line-height: 1.714285714; font-size: 1rem;">&#8220;.</span></p>
<p>Con la precedente versione questo non era possibile in quanto era supportato solo l&#8217;oggetto semplice &#8220;<strong>punto</strong>&#8221; su piano <strong>euclideo</strong> (coppia di lat/lon senza sistema di riferimento) associato all&#8217;indice spaziale semplice &#8220;<a href="http://docs.mongodb.org/manual/applications/2d/" target="_blank"><strong>2d</strong></a>&#8220;.</p>
<p><strong>Che differenza c&#8217;è tra un semplice punto su piano euclideo ed un oggetto geometrico complesso?</strong></p>
<p>Tutta la differenza del mondo!</p>
<p>Mentre il primo è solo una <strong>coppia di coordinate</strong> rappresentata su un semplice piano <strong>Euclideo</strong> ossia su un piano &#8220;<strong>piatto</strong>&#8221; (non sferico come invece è in realtà la terra), del tipo:</p>
<p>{lon, lat}</p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Il secondo è un oggetto geometrico complesso </span><strong style="line-height: 1.714285714; font-size: 1rem;">($geometry</strong><span style="line-height: 1.714285714; font-size: 1rem;">) che oltre alle informazioni su latitudine e longitudine, ha informazioni sul tipo di oggetto geometrico (punto, linea, poligono) e soprattutto sul</span><strong style="line-height: 1.714285714; font-size: 1rem;"> sistema di riferimento delle coordinate</strong><span style="line-height: 1.714285714; font-size: 1rem;"> usato.</span></p>
<p>E&#8217; proprio il sistema di riferimento delle coordinate a caratterizzarne la composizione &#8220;sferica&#8221; e  quindi la sua rappresentabilità su sistemi GIS di tipo &#8220;<strong>Earth-like</strong>&#8220;.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>Le query spaziali disponibili associate a questo nuovo oggetto di tipo $geometry sono :</p>
<ul>
<li><strong style="line-height: 1.714285714; font-size: 1rem;">Inclusione</strong><span style="line-height: 1.714285714; font-size: 1rem;"> attraverso l&#8217;operatore<strong> $geoWithin</strong><br />
</span></li>
<li><strong style="line-height: 1.714285714; font-size: 1rem;">Intersezione</strong><span style="line-height: 1.714285714; font-size: 1rem;"> attraverso l&#8217;operatore <strong>$geoIntersects</strong><br />
</span></li>
<li><strong style="line-height: 1.714285714; font-size: 1rem;">Prossimità</strong><span style="line-height: 1.714285714; font-size: 1rem;"> attraverso l&#8217;operatore <strong>$near</strong></span></li>
</ul>
<p><span style="line-height: 1.714285714; font-size: 1rem;">Questa invece la struttura (json) degli oggetti geometrici complessi:</span></p>
<p>Punto:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span>
  loc : <span class="br0">&#123;</span> 
         type : &quot;Point&quot; ,
         coordinates : <span class="br0">&#91;</span> <span style="">40</span>, <span style="">5</span> <span class="br0">&#93;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Linea:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span>
    loc : <span class="br0">&#123;</span>
           type : &quot;LineString&quot; ,
           coordinates : <span class="br0">&#91;</span> <span class="br0">&#91;</span> <span style="">40</span> , <span style="">5</span> <span class="br0">&#93;</span> , <span class="br0">&#91;</span> <span style="">41</span> , <span style="">6</span> <span class="br0">&#93;</span> <span class="br0">&#93;</span>
    <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Poligono:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span>
  loc : <span class="br0">&#123;</span> 
         type : &quot;Polygon&quot; ,
         coordinates : <span class="br0">&#91;</span> <span class="br0">&#91;</span> <span class="br0">&#91;</span> <span style="">0</span> , <span style="">0</span> <span class="br0">&#93;</span> , <span class="br0">&#91;</span> <span style="">3</span> , <span style="">6</span> <span class="br0">&#93;</span> , <span class="br0">&#91;</span> <span style="">6</span> , <span style="">1</span> <span class="br0">&#93;</span> , <span class="br0">&#91;</span> <span style="">0</span> , <span style="">0</span> <span class="br0">&#93;</span> <span class="br0">&#93;</span> <span class="br0">&#93;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>

<p>Il sistema di riferimento di default per gli oggetti $geometry è <strong>WGS84</strong>.</p>
<p>Questo invece l&#8217;indice da creare sulla collection geometrica:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="" style="font-family:monospace;">db.collection.ensureIndex<span class="br0">&#40;</span> <span class="br0">&#123;</span> loc : &quot;2dsphere&quot; <span class="br0">&#125;</span> <span class="br0">&#41;</span></pre></td></tr></table></div>

<p>Certo siamo ancora molto lontani dalle potenzialità dell&#8217;oggetto geometrico<strong> SDO_GEOMETRY</strong> di <a href="http://docs.oracle.com/cd/B19306_01/appdev.102/b14255/sdo_objrelschema.htm" target="_blank">Oracle</a>, però è certamente un buon inizio.</p>
<p>Che ve ne pare? Usate oggetti geometrici con data base noSQL? Vi interessa questo argomento?</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/rilasciata-la-versione-3-1-di-wordpress' rel='bookmark' title='Rilasciata la versione 3.1 di WordPress'>Rilasciata la versione 3.1 di WordPress</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/mongodb-ed-errore-cant-extract-geo-keys-from-object-malformed-geometry' rel='bookmark' title='MongoDB 2.4 ed errore &#8220;Can&#8217;t extract geo keys from object, malformed geometry?&#8221;'>MongoDB 2.4 ed errore &#8220;Can&#8217;t extract geo keys from object, malformed geometry?&#8221;</a></li>
<li><a href='http://www.pensando.it/wp/index.php/wordpress/3165' rel='bookmark' title='Rilasciata la versione 3.5 di wordpress'>Rilasciata la versione 3.5 di wordpress</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=9GVyB-34xB0:mmHRhXrJyZU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=9GVyB-34xB0:mmHRhXrJyZU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=9GVyB-34xB0:mmHRhXrJyZU:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=9GVyB-34xB0:mmHRhXrJyZU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=9GVyB-34xB0:mmHRhXrJyZU:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=9GVyB-34xB0:mmHRhXrJyZU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=9GVyB-34xB0:mmHRhXrJyZU:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Il 19 Marzo 2013 è stata rilasciata la versione 2.4 di MongoDB, un data base noSQL dalle enormi potenzialità. Questo la nota di rilascio ufficiale http://docs.mongodb.org/manual/release-notes/2.4/ E&amp;#8217; da segnalare la nuova feature sugli oggetti geometrici che, da questa versione, supporta i tipi complessi (geoJSON) e pertanto consente di rappresentarli geometricamente nel formato WGS84. I tipi [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/rilasciata-la-versione-3-1-di-wordpress' rel='bookmark' title='Rilasciata la versione 3.1 di WordPress'&gt;Rilasciata la versione 3.1 di WordPress&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/mongodb-ed-errore-cant-extract-geo-keys-from-object-malformed-geometry' rel='bookmark' title='MongoDB 2.4 ed errore &amp;#8220;Can&amp;#8217;t extract geo keys from object, malformed geometry?&amp;#8221;'&gt;MongoDB 2.4 ed errore &amp;#8220;Can&amp;#8217;t extract geo keys from object, malformed geometry?&amp;#8221;&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/wordpress/3165' rel='bookmark' title='Rilasciata la versione 3.5 di wordpress'&gt;Rilasciata la versione 3.5 di wordpress&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/rilasciata-la-versione-2-4-di-mongodb-con-nuove-ed-interessanti-caratteristiche-sugli-oggetti-geometrici</feedburner:origLink></item><item><title>Codemotion, l’evento aperto a tutti i linguaggi e tecnologie, si terrà a Roma il 22-23 Marzo</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/hD7cGA15_Ks/codemotion-levento-aperto-a-tutti-i-linguaggi-e-tecnologie-si-terra-a-roma-il-22-23-marzo</link><category>tech</category><category>codemotion</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Tue, 19 Mar 2013 00:00:35 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3384</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<address><strong>Programmare</strong> è un’arte e occorre una grande esperienza per creare codice di qualità. Sbaglia chi pensa che sviluppare software sia un’attività meccanica, sempre uguale, senza stimoli o fantasia.</address>
<p>22 e 23 marzo ecco che arriva la nuova edizione del <strong>Codemotion Roma</strong>, l’evento dedicato a tutti i linguaggi e tecnologie.</p>
<p><span id="more-3384"></span></p>
<p>Codemotion Roma 2013 è caratterizzato da una massiccia presenza di ospiti internazionali. Arrivano dagli Stati Uniti, Europa e Canada, tutti accorsi per la maratona informatica che unisce il codice, all’emozione e innovazione.</p>
<p><!--more--></p>
<p>Ci saranno ospiti da <strong>Facebook</strong>, <strong>Google</strong>, <strong>SoudCloud</strong> ma anche tanti relatori riconosciuti come veri e propri guro esperti in tecnologie specifiche.</p>
<p>La conferenza sarà una maratona informatica di due giorni continuativi,<strong> 36 ore non stop</strong> di talk, hackathon, laboratori, contest, networking ma soprattutto tanta condivisione di idee e energia.</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>Nelle parallele tematiche si parlerà di:<strong> web, Big Data, maker, sviluppo Gaming, Mobile, Enterprise, Javascript, Cloud, Linguaggi, Metodi, Innovazione e OpenSource</strong>. Ci sarà anche spazio per interventi meno tecnici rivolti alle esperienze di vita degli sviluppatori.</p>
<p><strong>L’hackathon</strong> sarà il momento più sperimentale del Codemotion dove si potrà mixare, osare e dare vita ad ogni sorta di contaminazione tecnologica.</p>
<p>I <strong>Maker</strong> avranno un posto speciale con una parallela di talk tecnici e un’area dove potranno esporre le proprie creazioni e progetti di artigiano tecnologico. Inoltre  il Codemotion sarà l’anteprima della Maker Faire Rome (dal 3 al 6 ottobre). La Maker Faire è l’evento di riferimento mondiale del movimento maker. L’edizione di Roma avrà 4 giorni dedicati all’inventiva, alla creatività e all’intraprendenza, per famiglie e amanti del “fai da te” tecnologico</p>
<p>Il contest <strong>Startup in Action</strong> permetterà a giovani e valorose startup di incontrare sviluppatori e creare così sinergie favorevoli per l’innovazione.</p>
<p>Il Codemotion Roma si terrà a <strong>Roma</strong> il 22 e 23 marzo e verrà ospitato dalla Facoltà di Ingegneria di Roma Tre.</p>
<p>La partecipazione è gratuita ma occorre registrarsi.<br />
Per ogni informazione <a href="http://rome.codemotionworld.com/">http://rome.codemotionworld.com/</a><br />
email: info@codemotion.it</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/bufale/11-maggio-2011-terremoto-a-roma-ma-de-che' rel='bookmark' title='11 Maggio 2011, terremoto a Roma? Ma de che!'>11 Maggio 2011, terremoto a Roma? Ma de che!</a></li>
<li><a href='http://www.pensando.it/wp/index.php/fotografia/aiutateci-a-non-eliminare-il-festival-della-fotografia-di-roma-firmate-la-petizione' rel='bookmark' title='AIUTATECI A NON ELIMINARE IL FESTIVAL DELLA FOTOGRAFIA DI ROMA!! FIRMATE LA PETIZIONE!'>AIUTATECI A NON ELIMINARE IL FESTIVAL DELLA FOTOGRAFIA DI ROMA!! FIRMATE LA PETIZIONE!</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/come-rendere-responsive-il-nostro-google-adsense-code' rel='bookmark' title='Come rendere Responsive il nostro Google Adsense Code'>Come rendere Responsive il nostro Google Adsense Code</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hD7cGA15_Ks:5FvuKv3jwcA:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hD7cGA15_Ks:5FvuKv3jwcA:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=hD7cGA15_Ks:5FvuKv3jwcA:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hD7cGA15_Ks:5FvuKv3jwcA:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hD7cGA15_Ks:5FvuKv3jwcA:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=hD7cGA15_Ks:5FvuKv3jwcA:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=hD7cGA15_Ks:5FvuKv3jwcA:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Programmare è un’arte e occorre una grande esperienza per creare codice di qualità. Sbaglia chi pensa che sviluppare software sia un’attività meccanica, sempre uguale, senza stimoli o fantasia. 22 e 23 marzo ecco che arriva la nuova edizione del Codemotion Roma, l’evento dedicato a tutti i linguaggi e tecnologie. Codemotion Roma 2013 è caratterizzato da [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/bufale/11-maggio-2011-terremoto-a-roma-ma-de-che' rel='bookmark' title='11 Maggio 2011, terremoto a Roma? Ma de che!'&gt;11 Maggio 2011, terremoto a Roma? Ma de che!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/fotografia/aiutateci-a-non-eliminare-il-festival-della-fotografia-di-roma-firmate-la-petizione' rel='bookmark' title='AIUTATECI A NON ELIMINARE IL FESTIVAL DELLA FOTOGRAFIA DI ROMA!! FIRMATE LA PETIZIONE!'&gt;AIUTATECI A NON ELIMINARE IL FESTIVAL DELLA FOTOGRAFIA DI ROMA!! FIRMATE LA PETIZIONE!&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/come-rendere-responsive-il-nostro-google-adsense-code' rel='bookmark' title='Come rendere Responsive il nostro Google Adsense Code'&gt;Come rendere Responsive il nostro Google Adsense Code&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/codemotion-levento-aperto-a-tutti-i-linguaggi-e-tecnologie-si-terra-a-roma-il-22-23-marzo/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/codemotion-levento-aperto-a-tutti-i-linguaggi-e-tecnologie-si-terra-a-roma-il-22-23-marzo</feedburner:origLink></item><item><title>Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/Yf5DLNcmk6Y/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu</link><category>node.js</category><category>tech</category><category>nodejitsu</category><category>record DNS tipo A</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Mon, 11 Mar 2013 00:00:48 PDT</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3353</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Oggi vediamo come configurare un<strong> dominio di primo livello</strong> per una webapp <strong>node.js</strong> rilasciata su provider <strong>nodejitsu</strong>.</p>
<p>Per maggiori dettagli su cosa è <a href="http://nodejitsu.com/" target="_blank">nodejitsu</a> o su come deployare una app <a href="http://nodejs.org/" target="_blank">node.js</a> su nodejitsu si faccia riferimento a <a href="http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js" target="_blank">questo articolo</a>.</p>
<p>Una volta rilasciata una app node.js su nodejitsu questa sarà visibile al link :</p>
<p><strong>tuapp.jit.su</strong></p>
<p>oppure</p>
<p><strong>tuapp.nodejitsu.com</strong></p>
<p>Noi invece vogliamo configurare il tutto per avere un link del tipo :</p>
<p><strong>www.tuapp.com</strong> (oppure .it, .net, .org, … )</p>
<p>Cosa ci serve per fare questo?</p>
<p><span id="more-3353"></span></p>
<p>- Una <strong>webapp</strong> node.js pubblicata e funzionante su nodejitsu</p>
<p>- Un file <strong>package.json</strong> per la nostra webapp node.js</p>
<p>- Un <strong>nome dominio</strong> &#8220;www.tuapp.com&#8221; registrato e disponibile su un <a href="http://www.netsons.com/aff.php?aff=340" target="_blank">provider</a> che permetta la modifica dei record DNS di tipo A.</p>
<p>Vediamo nel dettaglio cosa fare, iniziando dalla nostra webapp.</p>
<h3>Modifica del file package.json</h3>
<p>Il file <strong>package.json</strong> di una webapp node.js è un file molto importante perché contiene informazioni su :</p>
<p>- nome, versione ed autore della webapp</p>
<p>- dipendenze applicative tra la webapp ed i vari npm installati (<a href="https://npmjs.org/" target="_blank">node package manager</a>)</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>
<p>- versioni software dei vari npm e dello stesso node.js</p>
<p>- altre informazioni generiche dell&#8217;applicazione e sull&#8217;ambiente (<a href="http://package.json.nodejitsu.com/" target="_blank">http://package.json.nodejitsu.com/</a>)</p>
<p>Nodejitsu sfrutta questo file per capire la <strong>configurazione</strong> dell&#8217;applicazione,  compreso il dominio di primo e secondo livello.</p>
<p>Pertanto è fondamentale impostare almeno i seguenti valori :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
</pre></td><td class="code"><pre class="" style="font-family:monospace;"><span class="br0">&#123;</span>
  &quot;name&quot;: &quot;tuapp.com&quot;,
  &quot;subdomain&quot;: &quot;tuapp&quot;,
  &quot;domains&quot;: <span class="br0">&#91;</span>
    &quot;tuapp.com&quot;,
    &quot;www.tuapp.com&quot;
  <span class="br0">&#93;</span>,
  &quot;scripts&quot;: <span class="br0">&#123;</span>
    &quot;start&quot;: &quot;./server.js&quot;
  <span class="br0">&#125;</span>,
  &quot;version&quot;: &quot;0.0.1&quot;,
  &quot;engines&quot;: <span class="br0">&#123;</span>
    &quot;node&quot;: &quot;<span style="">0.6</span>.x&quot;
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></div>

<h3>Pubblicare le modifiche</h3>
<p>Una volta modificato il file package.json sarà necessario <strong>pubblicarlo</strong>, per rilasciare solo questo file basta lanciare il comando:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="" style="font-family:monospace;"> jitsu apps update</pre></td></tr></table></div>

<h3>Impostare i record DNS di tipo A</h3>
<p>Una volta modificato e rilasciato il file package.json dobbiamo impostare i parametri corretti per far puntare il dominio da noi acquistato all&#8217;applicazione pubblicata su nodejitsu.</p>
<p>Ho fatto questa cosa tramite il pannello di controllo dei domini <a href="http://www.netsons.com/aff.php?aff=340" target="_blank">netsons</a>, ma la configurazione sarà la medesima qualunque sia il vostro <strong>service provider</strong>, purché vi permetta di impostare manualmente i <a href="http://it.wikipedia.org/wiki/Tipi_di_record_DNS" target="_blank">record DNS di tipo A</a> ovvero purché vi permetta di registrare un nome a dominio e successivamente &#8220;istruire&#8221; il web per far si che qualsiasi richiesta http del tipo www.tuapp.com venga indirizzata verso gli ip address nodejitsu.</p>
<p>Gli IP, ad oggi, sono i seguenti (<a href="http://dns.jit.su/" target="_blank">qui la guida in inglese</a>) :</p>
<p><span style="line-height: 1.714285714; font-size: 1rem;">165.225.129.253</span><br />
165.225.130.235<br />
165.225.130.237<br />
165.225.130.238<br />
165.225.130.239<br />
165.225.130.240<br />
165.225.130.241<br />
165.225.131.4<br />
165.225.131.5</p>
<p>Per cui dovrete impostare manualmente i seguenti <strong>record DNS di tipo A</strong>, per le richieste del tipo <strong>http://tuapp.com</strong></p>
<p><a href="http://www.pensando.it/wp/?attachment_id=3360" rel="attachment wp-att-3360"><img class="size-full wp-image-3360 alignnone" alt="Schermata 2013-03-05 alle 16.37.17" src="http://www.pensando.it/wp/wp-content/uploads/2013/03/Schermata-2013-03-05-alle-16.37.17.png" width="406" height="488" /></a></p>
<p>E questi per le richieste del tipo <strong>http://www.tuapp.com</strong></p>
<p><a href="http://www.pensando.it/wp/?attachment_id=3361" rel="attachment wp-att-3361"><img class="size-full wp-image-3361 alignnone" alt="Schermata 2013-03-05 alle 16.39.11" src="http://www.pensando.it/wp/wp-content/uploads/2013/03/Schermata-2013-03-05-alle-16.39.11.png" width="366" height="451" /></a></p>
<p>Fatto questo basterà attendere <strong>24/48 ore</strong> affinché le modifiche vengano propagate dopodiché tutte le richieste verranno correttamente indirizzate verso la webapp nodejitsu.</p>
<p>Semplice no?</p>
<p>Che te ne pare? Ritieni utile questa guida?</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js'>nodejitsu, l&#8217;hosting semplice e professionale per applicazioni node.js</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud' rel='bookmark' title='nodejitsu alza i prezzi per l&#8217;hosting di individual plan su piattaforma cloud'>nodejitsu alza i prezzi per l&#8217;hosting di individual plan su piattaforma cloud</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'>joyent, il perfetto cloud per il deploy di app basate su stack node.js</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=Yf5DLNcmk6Y:p_iHfugQ63o:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=Yf5DLNcmk6Y:p_iHfugQ63o:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=Yf5DLNcmk6Y:p_iHfugQ63o:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=Yf5DLNcmk6Y:p_iHfugQ63o:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=Yf5DLNcmk6Y:p_iHfugQ63o:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=Yf5DLNcmk6Y:p_iHfugQ63o:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=Yf5DLNcmk6Y:p_iHfugQ63o:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Oggi vediamo come configurare un dominio di primo livello per una webapp node.js rilasciata su provider nodejitsu. Per maggiori dettagli su cosa è nodejitsu o su come deployare una app node.js su nodejitsu si faccia riferimento a questo articolo. Una volta rilasciata una app node.js su nodejitsu questa sarà visibile al link : tuapp.jit.su oppure [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js' rel='bookmark' title='nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js'&gt;nodejitsu, l&amp;#8217;hosting semplice e professionale per applicazioni node.js&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud' rel='bookmark' title='nodejitsu alza i prezzi per l&amp;#8217;hosting di individual plan su piattaforma cloud'&gt;nodejitsu alza i prezzi per l&amp;#8217;hosting di individual plan su piattaforma cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'&gt;joyent, il perfetto cloud per il deploy di app basate su stack node.js&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu</feedburner:origLink></item><item><title>nodejitsu, l’hosting semplice e professionale per applicazioni node.js</title><link>http://feedproxy.google.com/~r/Pensandoit/~3/EnPhLrLSzGY/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js</link><category>mongoDB</category><category>node.js</category><category>tech</category><category>nodejitsu</category><category>web app</category><category>web hosting</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">etrusco</dc:creator><pubDate>Sun, 03 Mar 2013 23:00:34 PST</pubDate><guid isPermaLink="false">http://www.pensando.it/wp/?p=3341</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Oggi vi presento <a href="https://www.nodejitsu.com" target="_blank">nodejitsu</a>, un hosting provider semplice, di qualità ed altamente performante per app basate su stack <a href="http://nodejs.org/" target="_blank">node.js</a>, tecnicamente sarebbe più corretto chiamarlo <strong>PaaS</strong> ovvero Platform as a Service.</p>
<p>Supponiamo abbiate realizzato una semplice app in node.js, a questo punto per pubblicarla sul web avete a disposizione (in linea di massima) due soluzioni alternative:</p>
<p><span id="more-3341"></span></p>
<p>- Optate per una soluzione <strong>cloud server</strong> che supporti lo stack node.js nativamente o che vi permetta di installarlo, ad esempio <a href="http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js" target="_blank">joyent</a> (Win Azure, Amazon WS, Aruba Cloud, &#8230; )</p>
<p>- Oppure optate per un <strong>hosting</strong> di qualità come ad esempio <a href="http://www.nodejitsu.com" target="_blank">nodejitsu</a></p>
<p>In circolazione ci sono molti altri service provider che fanno hosting di app basate su stack node.js, soprattutto all&#8217;estero perché in Italia siamo ancora lontani da questa tecnologia che i provider sembrano, erroneamente, snobbare.</p>
<p>Per una lista completa di tutti i <strong>provider</strong> e <strong>cloud server</strong> vi rimando a questo link: <a href="https://github.com/joyent/node/wiki/Node-Hosting" target="_blank">nodewiki</a></p>
<p>Torniamo a <strong>nodejitsu</strong>, abbiamo detto che abbiamo creato la nostra prima app in node.js, supponiamo sempre per semplificare che l&#8217;abbiamo creata usando <a href="http://www.pensando.it/wp/index.php/tech/c9-io-il-cloud-ide-gratuito-per-lo-sviluppo-collaborativo-di-applicazioni-web-in-node-js-php-phyton-ruby" target="_blank">l&#8217;IDE C9.io</a></p>
<p>Supponiamo che l&#8217;app sia questa:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #006600; font-style: italic;">// requires node's http module</span>
  <span style="color: #000066; font-weight: bold;">var</span> http <span style="color: #339933;">=</span> require<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'http'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
  <span style="color: #006600; font-style: italic;">// creates a new httpServer instance</span>
  http.<span style="color: #660066;">createServer</span><span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">function</span> <span style="color: #009900;">&#40;</span>req<span style="color: #339933;">,</span> res<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
    <span style="color: #006600; font-style: italic;">// this is the callback, or request handler for the httpServer</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// respond to the browser, write some headers so the </span>
    <span style="color: #006600; font-style: italic;">// browser knows what type of content we are sending</span>
    res.<span style="color: #660066;">writeHead</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">200</span><span style="color: #339933;">,</span> <span style="color: #009900;">&#123;</span><span style="color: #3366CC;">'Content-Type'</span><span style="color: #339933;">:</span> <span style="color: #3366CC;">'text/html'</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
    <span style="color: #006600; font-style: italic;">// write some content to the browser that your user will see</span>
    res.<span style="color: #660066;">write</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'hello, i know nodejitsu.'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #006600; font-style: italic;">// close the response </span>
res.<span style="color: #660066;">end</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">listen</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">8080</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #006600; font-style: italic;">// the server will listen on port 8080</span></pre></td></tr></table></div>

<p>A questo punto sarà necessario aprire un terminale da C9.io ed installare nodejitsu con il comando:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">npm install jitsu <span style="color: #339933;">-</span>g</pre></td></tr></table></div>

<p>Questo comando installa il <strong>node package</strong> jitsu (https://npmjs.org/) attraverso il quale faremo il deploy dell&#8217;app, il verbo -g serve per rendere globale l&#8217;installazione.</p>
<p>A questo punto possiamo tranquillamente lanciare, sempre da riga di comando, il comando :</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">jitsu</pre></td></tr></table></div>

<p>Se è la prima volta che lanciamo nodejitsu ci verrà chiesto di creare una utenza o loggarci qualora l&#8217;avessimo già creata dal sito.</p>
<p>Una volta loggati da riga di comando potremmo eseguire il <strong>deploy</strong> dell&#8217;app semplicemente digitando:</p><div class="wpInsert wpInsertInPostAd wpInsertMiddle" style="margin: 5px;padding: 0px;"><script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_inmezzo_728x90 */
google_ad_slot = "4301512476";
google_ad_width = 728;
google_ad_height = 90;
//-->

} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
} else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script></div>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">jitsu deploy</pre></td></tr></table></div>

<p>Il gioco è fatto, dovremo fornire il nome dell&#8217;app, il sotto dominio nodejitsu e lo starting point dell&#8217; app dopodichè la nostra app sarà visibile sul web al link:</p>
<p>http://tuapp.nodejitsu.com</p>
<p>oppure</p>
<p>http://tuapp.jit.su</p>
<p>A questo punto possiamo tranquillamente impostare un nostro DNS per avere un link del tipo :</p>
<p>www.tuapp.it</p>
<p>seguendo queste semplicissime <a href="http://dns.nodejitsu.com/" target="_blank">regole</a>.</p>
<p>Ovvio che dobbiamo aver acquistato il nome a dominio da qualcun&#8217;altro, nodejitsu non fa vendita di nomi a dominio, es su <a href="http://www.netsons.com/aff.php?aff=340" target="_blank">netsons</a></p>
<p>Il prezzo? Si parte con una sandbox gratuita per 30 giorni, scaduto il tempo si potrà rinnovare l&#8217;hosting per 3 dollari / mese nella versione entry level.</p>
<p>A questo link tutto quello che offre questo hosting : <a href="https://www.nodejitsu.com/paas" target="_blank">https://www.nodejitsu.com/paas</a></p>
<p>E qua i costi : <a href="https://www.nodejitsu.com/paas/pricing" target="_blank">https://www.nodejitsu.com/paas/pricing</a></p>
<p>Dimenticavo, vuoi usare anche un &#8220;data base as a service&#8221; (Es mongoDB)? Fatto : <a href="https://www.nodejitsu.com/paas/addons" target="_blank">https://www.nodejitsu.com/paas/addons</a></p>
<p>Che te ne pare? Hai mai usato un hosting node.js? Sei interessato a questa piattaforma? Conosci altri hosting di qualità per node.js?</p>
<div class="wpInsert wpInsertInPostAd wpInsertBelow" style="margin: 5px;padding: 0px;"><h3><a href="http://feedburner.google.com/fb/a/mailverify?uri=Pensandoit&loc=en_US">Vuoi rimanere <font color="#cc3300">aggiornato</font> ogni volta che pubblico un <font color="#cc3300">nuovo articolo</font>?</a></h3>
<br />
<script type="text/javascript">
if (window.innerWidth >= 800) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_illustrati_sotto_728x90 */
google_ad_slot = "0861439931";
google_ad_width = 728;
google_ad_height = 90;
//-->
} else if (window.innerWidth < 400) {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_responsive_300_250 */
google_ad_slot = "7568279132";
google_ad_width = 300;
google_ad_height = 250;
//-->
}  else {
<!--
google_ad_client = "ca-pub-0964520775271077";
/* pensando_post_testo_468x60 */
google_ad_slot = "9087133809";
google_ad_width = 468;
google_ad_height = 60;
//-->
}
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
<br /></div><div class='yarpp-related-rss'>
<p>Articoli correlati:<ol>
<li><a href='http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu' rel='bookmark' title='Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu'>Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud' rel='bookmark' title='nodejitsu alza i prezzi per l&#8217;hosting di individual plan su piattaforma cloud'>nodejitsu alza i prezzi per l&#8217;hosting di individual plan su piattaforma cloud</a></li>
<li><a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'>joyent, il perfetto cloud per il deploy di app basate su stack node.js</a></li>
</ol></p>
<img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/>
</div>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pensandoit?a=EnPhLrLSzGY:giJT3ukNypQ:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=EnPhLrLSzGY:giJT3ukNypQ:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=EnPhLrLSzGY:giJT3ukNypQ:D7DqB2pKExk" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=EnPhLrLSzGY:giJT3ukNypQ:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=EnPhLrLSzGY:giJT3ukNypQ:7Q72WNTAKBA"><img src="http://feeds.feedburner.com/~ff/Pensandoit?d=7Q72WNTAKBA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/Pensandoit?a=EnPhLrLSzGY:giJT3ukNypQ:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/Pensandoit?i=EnPhLrLSzGY:giJT3ukNypQ:F7zBnMyn0Lo" border="0"></img></a>
</div>]]></content:encoded><description>Oggi vi presento nodejitsu, un hosting provider semplice, di qualità ed altamente performante per app basate su stack node.js, tecnicamente sarebbe più corretto chiamarlo PaaS ovvero Platform as a Service. Supponiamo abbiate realizzato una semplice app in node.js, a questo punto per pubblicarla sul web avete a disposizione (in linea di massima) due soluzioni alternative: [...]&lt;div class='yarpp-related-rss'&gt;

Articoli correlati:&lt;ol&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/come-configurare-un-dominio-di-primo-livello-per-una-webapp-node-js-rilasciata-su-nodejitsu' rel='bookmark' title='Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu'&gt;Come configurare un dominio di primo livello per una webapp node.js rilasciata su nodejitsu&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/nodejitsu-alza-i-prezzi-per-lhosting-di-individual-plan-su-piattaforma-cloud' rel='bookmark' title='nodejitsu alza i prezzi per l&amp;#8217;hosting di individual plan su piattaforma cloud'&gt;nodejitsu alza i prezzi per l&amp;#8217;hosting di individual plan su piattaforma cloud&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href='http://www.pensando.it/wp/index.php/tech/joyent-il-perfetto-cloud-per-il-deploy-di-app-basate-su-stack-node-js' rel='bookmark' title='joyent, il perfetto cloud per il deploy di app basate su stack node.js'&gt;joyent, il perfetto cloud per il deploy di app basate su stack node.js&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;img src='http://yarpp.org/pixels/bf8e7266f12cc470d5a0dda3cdbf5cae'/&gt;
&lt;/div&gt;</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js/feed</wfw:commentRss><slash:comments xmlns:slash="http://purl.org/rss/1.0/modules/slash/">0</slash:comments><feedburner:origLink>http://www.pensando.it/wp/index.php/tech/nodejitsu-lhosting-semplice-e-professionale-per-applicazioni-node-js</feedburner:origLink></item><media:rating>nonadult</media:rating></channel></rss>
