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

<channel>
	<title>NewInstance &#187; Internet</title>
	<atom:link href="http://en.newinstance.it/category/internet/feed/" rel="self" type="application/rss+xml" />
	<link>http://en.newinstance.it</link>
	<description>Welcome to the official blog of Luigi R. Viggiano. Beware of imitations.</description>
	<lastBuildDate>Mon, 09 Jan 2012 20:29:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Spam defeated</title>
		<link>http://en.newinstance.it/2011/07/29/spam-defeated/</link>
		<comments>http://en.newinstance.it/2011/07/29/spam-defeated/#comments</comments>
		<pubDate>Fri, 29 Jul 2011 14:14:37 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life, universe and everything]]></category>
		<category><![CDATA[Lifehacks]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[akismet]]></category>
		<category><![CDATA[bad behavior]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[captcha]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[moderation]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/?p=1182</guid>
		<description><![CDATA[Looks like with the plugins I installed recently on my blog, the spam is completely gone away. I didn&#8217;t want to install captcha, since they are quite annoying. But it looks like they are effective against spam. I found &#8220;Conditional CAPTCHA&#8221; which works in the correct way: the user insert the comment, if the bayesian [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><img src="http://en.newinstance.it/wp-content/uploads/2011/07/spam-defeated.png" alt="" title="spam-defeated" width="289" height="369" class="alignnone size-full wp-image-1184" /><br />
<img src="http://en.newinstance.it/wp-content/uploads/2011/07/bad-behavior.png" alt="" title="bad-behavior" width="355" height="27" class="alignnone size-full wp-image-1188" /></p>
<p>Looks like with the plugins I installed recently on my blog, the spam is completely gone away.</p>
<p>I didn&#8217;t want to install captcha, since they are quite annoying. But it looks like they are effective against spam. I found &#8220;Conditional CAPTCHA&#8221; which works in the correct way: the user insert the comment, if the bayesian filter identify the comment as spam, then a <u><em>very simple</em></u> captcha is displayed, so the user can prove that is a human being or a spam bot. If the captcha test fails, the comment is deleted definitively.<br />
Additionally I am using &#8220;Bad Behavior&#8221; which checks the ip address against an online black list, and prevents suspicious ones to even connect to your site.</p>
<p>So, this is my list of WordPress plugins that have proven to be effective against spam:</p>
<ol>
<li><a href="http://akismet.com/">Akismet</a></li>
<li><a href="http://www.bad-behavior.ioerror.us/">Bad Behavior</a></li>
<li><a href="http://rayofsolaris.net/code/conditional-captcha-for-wordpress">Conditional Captcha</a></li>
</ol>
<p>So far, so good.</p>
<p>I still moderate comments manually, approving/trashing them one by one, since I don&#8217;t receive many comments, it is feasible. But if this plugin team works so well, I might stop moderating the comments and let it run completely automatic.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2005/06/13/anti-spam-email-hiding-techniques/" rel="bookmark" class="crp_title">Anti spam email hiding techniques</a></li>
<li><a href="http://en.newinstance.it/2011/05/25/fan-control-for-macbook/" rel="bookmark" class="crp_title">Fan Control for MacBook</a></li>
<li><a href="http://en.newinstance.it/2011/02/10/eclipse-save-actions/" rel="bookmark" class="crp_title">Eclipse Save Actions</a></li>
<li><a href="http://en.newinstance.it/2011/08/25/superdrive-not-working-anymore/" rel="bookmark" class="crp_title">Superdrive not working anymore</a></li>
<li><a href="http://en.newinstance.it/2010/05/23/git-autocompletion-and-enhanced-bash-prompt/" rel="bookmark" class="crp_title">GIT autocompletion and enhanced bash prompt</a></li>
</ul>
</div>
<div class="shr-publisher-1182"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F07%2F29%2Fspam-defeated%2F' data-shr_title='Spam+defeated'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F07%2F29%2Fspam-defeated%2F' data-shr_title='Spam+defeated'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F07%2F29%2Fspam-defeated%2F' data-shr_title='Spam+defeated'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2011/07/29/spam-defeated/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AppStore, Playstation Store and the forced language</title>
		<link>http://en.newinstance.it/2011/01/13/appstore-playstation-store-and-the-forced-language/</link>
		<comments>http://en.newinstance.it/2011/01/13/appstore-playstation-store-and-the-forced-language/#comments</comments>
		<pubDate>Thu, 13 Jan 2011 13:03:34 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[appstore]]></category>
		<category><![CDATA[playstation]]></category>
		<category><![CDATA[playstation network]]></category>
		<category><![CDATA[playstation store]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[sony]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/?p=934</guid>
		<description><![CDATA[Dear Apple, dear Sony, dear stupid "international" company willing to sell me stuff through internet... the fact that, in this period of my life, I am living in Germany and I own a German credit card, doesn't mean that I can perfectly understand German. So why there is no way to change the language in [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->Dear Apple, dear Sony, dear stupid "international" company willing to sell me stuff through internet...</p>
<p>the fact that, in this period of my life, I am living in Germany and I own a German credit card, doesn't mean that I can perfectly understand German. So why there is no way to change the language in your store applications to English or Italian?<br />
It's so difficult to understand?</p>
<p>I bought my Mac in Germany and I requested an international keyboard. And I also use English on my laptop, because even if I am Italian native speaker, I prefer to use English on my computer. And... I was doing the same when I was living in Italy and Switzerland. The same question may be posed to the laptop sellers: why, if I buy a laptop in Germany I have to stick to local Windows language and keyboard layout? What is so difficult to understand in the fact that users may like to choose the language to use for programs and hardware they buy?</p>
<p>How am I supposed to buy anything from a website which doesn't speak my language? Even living in Germany I can use my internet banking in English: does this sounds strange to your company? In which century are you guys living? May I expect that an internet service speaks a second language despite <em>where</em> I live, or from <em>where</em> I pay?</p>
<p>Thanks.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2008/10/14/how-to-save-70-euro-booking-your-flight-with-lufthansa/" rel="bookmark" class="crp_title">How to save 70 euro booking your flight with Lufthansa</a></li>
<li><a href="http://en.newinstance.it/2007/08/06/in-needing-of-dictionaries-for-reading-blogs/" rel="bookmark" class="crp_title">In needing of dictionaries for reading blogs</a></li>
<li><a href="http://en.newinstance.it/2008/06/18/a-calculator-at-the-command-line/" rel="bookmark" class="crp_title">A calculator at the command line</a></li>
<li><a href="http://en.newinstance.it/2005/06/16/joel-on-software-book/" rel="bookmark" class="crp_title">Joel on Software Book</a></li>
<li><a href="http://en.newinstance.it/2010/10/03/working-in-zurich/" rel="bookmark" class="crp_title">Working in Zürich</a></li>
</ul>
</div>
<div class="shr-publisher-934"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F01%2F13%2Fappstore-playstation-store-and-the-forced-language%2F' data-shr_title='AppStore%2C+Playstation+Store+and+the+forced+language'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F01%2F13%2Fappstore-playstation-store-and-the-forced-language%2F' data-shr_title='AppStore%2C+Playstation+Store+and+the+forced+language'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2011%2F01%2F13%2Fappstore-playstation-store-and-the-forced-language%2F' data-shr_title='AppStore%2C+Playstation+Store+and+the+forced+language'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2011/01/13/appstore-playstation-store-and-the-forced-language/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Google Font API</title>
		<link>http://en.newinstance.it/2010/05/19/google-font-api/</link>
		<comments>http://en.newinstance.it/2010/05/19/google-font-api/#comments</comments>
		<pubDate>Wed, 19 May 2010 19:38:19 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Font]]></category>
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2010/05/19/google-font-api/</guid>
		<description><![CDATA[Google just announced the Google Font API. This allows to include quality fonts in HTML pages, as easy as you were doing before with the "web-safe" fonts. You specify a css link, and the Google Font API will produce on the fly the CSS for your browser. Then you are ready to use any font [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->Google just announced the <a href="http://code.google.com/apis/webfonts/">Google Font API</a>. This allows to include quality fonts in HTML pages, as easy as you were doing before with the "web-safe" fonts. </p>
<p>You specify a css link, and the Google Font API will produce on the fly the CSS for your browser. Then you are ready to use any font from the <a href="http://code.google.com/webfonts">Google Font Directory</a>, that currently is very little but it is easy to predict it will grow up very fast. Nevertheless, the few available Fonts looks pretty good!</p>
<p>Here an example:</p>
<pre class="brush: html">
&lt;link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'&gt;

&lt;div style="font-family: 'Lobster', arial, serif; font-size: xx-large; text-shadow: 4px 4px 4px rgb(170, 170, 170); text-align: center"&gt;
The quick brown fox jumps over the lazy dog.
&lt;/div&gt;
</pre>
<p>And here, what you get:</p>
<link href='http://fonts.googleapis.com/css?family=Lobster' rel='stylesheet' type='text/css'>
<div style="font-family: 'Lobster', arial, serif; font-size: x-large; text-shadow: 4px 4px 4px rgb(170, 170, 170); text-align: center">
The quick brown fox jumps over the lazy dog.
</div>
<p>Beautiful uh?</p>
<p>To make things even easier, the Google Font Directory also includes a <a href="http://code.google.com/webfonts/family?family=Lobster#code">code generator</a> that produces samples that can be grabbed and included in your HTML pages.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2006/02/01/font-size-problem-with-gnome-using-motif-applications/" rel="bookmark" class="crp_title">Font size problem with Gnome using Motif applications</a></li>
<li><a href="http://en.newinstance.it/2006/10/31/email-url-encoder-tool/" rel="bookmark" class="crp_title">Email URL Encoder Tool</a></li>
<li><a href="http://en.newinstance.it/2005/06/17/adding-hidden-fields-to-a-form/" rel="bookmark" class="crp_title">Adding hidden fields to a Form</a></li>
<li><a href="http://en.newinstance.it/2005/06/13/anti-spam-email-hiding-techniques/" rel="bookmark" class="crp_title">Anti spam email hiding techniques</a></li>
<li><a href="http://en.newinstance.it/2005/07/11/webwork-package-configuration-problem/" rel="bookmark" class="crp_title">Webwork Package Configuration Problem</a></li>
</ul>
</div>
<div class="shr-publisher-428"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F05%2F19%2Fgoogle-font-api%2F' data-shr_title='Google+Font+API'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F05%2F19%2Fgoogle-font-api%2F' data-shr_title='Google+Font+API'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F05%2F19%2Fgoogle-font-api%2F' data-shr_title='Google+Font+API'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2010/05/19/google-font-api/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>3G USB Stick on Ubuntu</title>
		<link>http://en.newinstance.it/2010/01/08/3g-usb-stick-on-ubuntu/</link>
		<comments>http://en.newinstance.it/2010/01/08/3g-usb-stick-on-ubuntu/#comments</comments>
		<pubDate>Thu, 07 Jan 2010 23:22:33 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[How-To]]></category>
		<category><![CDATA[Tricks]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2010/01/08/3g-usb-stick-on-ubuntu/</guid>
		<description><![CDATA[I am in London for work, and my hotel wants me to pay £ 17 per day for accessing internet. But I found an internet café which is offering Internet connection on a 3G USB stick for £ 19.99 per week ( reload.com 197 Praed Street, Paddington ). The USB stick is from Three, like [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->I am in London for work, and my hotel wants me to pay £ 17 per day for accessing internet. But I found an internet café which is offering Internet connection on a 3G USB stick for £ 19.99 per week ( reload.com 197 Praed Street, Paddington ). The USB stick is from <a href="http://three.co.uk">Three</a>, like the one that can be found <a href="http://threestore.three.co.uk/dealsummary.aspx?offercode=24MB1GD029&#038;id=1397">here</a>.<br />
When you plug it in, Linux will mount a storage device which contains the drivers for OSX/Windows/Linux. The ones for Linux, of course, do not work: there are some files (zte drivers) precompiled for some version of Fedora, and other stuff which doesn't compile on Ubuntu.<br />
The good news is that you don't need any driver in Linux; just some hacking. The kernel of Ubuntu is built with support of the most common 3G drivers.</p>
<p>Below I explain how to make it work.</p>
<h4>Disable the USB storage</h4>
<p>When the USB stick is behaving as USB storage it won't work as 3G modem. The first thing to do is to disable that.</p>
<p>Locate the device assigned to the USB stick:</p>
<pre>
luigi@hal9000:~$ df
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda3            199024992 113153688  75761392  60% /
udev                   2018164       296   2017868   1% /dev
none                   2018164       340   2017824   1% /dev/shm
none                   2018164       324   2017840   1% /var/run
none                   2018164         0   2018164   0% /var/lock
none                   2018164         0   2018164   0% /lib/init/rw
/dev/sr1                 26330     26330         0 100% /media/3Connect
</pre>
<p>The 3Connect one is the USB stick, so let's unmount it, to be able - later - to unload the usb_storage kernel module.</p>
<pre>
luigi@hal9000:~$ sudo eject /dev/sr1
[sudo] password for luigi: *****
</pre>
<p>now let's unload the usb_storage kernel module.</p>
<pre>
luigi@hal9000:~$ lsmod | grep usb_storage
usb_storage            66016  0
luigi@hal9000:~$ sudo rmmod usb_storage
luigi@hal9000:~$ lsmod | grep usb_storage
</pre>
<p>The first command (lsmod) checks that usb_storage is loaded, and see if there are other modules depending on it. There aren't, so we can remove the module (rmmod command). Last command (lsmod) is to verify that the module is successfully unloaded; if it doesn't display anything means that the usb_storage module is gone, so it's ok! </p>
<h4>Load the usbserial kernel module</h4>
<p>Now we can load the usbserial kernel module and we can associate that to the USB stick.</p>
<p>First of all, let's check how the module is loaded:</p>
<pre>
luigi@hal9000:~$ lsmod | grep usbserial
usbserial              43248  1 option
</pre>
<p>We see that there's the "option" module depending on the usbserial, so we need to first unload option then usbserial.<br />
Let's do that with rmmod command.</p>
<pre>
luigi@hal9000:~$ sudo rmmod option usbserial
luigi@hal9000:~$ lsmod | grep usbserial
</pre>
<p>The lsmod at the end is just to ensure that usbserial is successfully unloaded. This time it should not display anything.</p>
<p>Now we need to know the manufacturer id and the product id of the usb device. Let's do that with lsusb command:</p>
<pre>
luigi@hal9000:~$ lsusb
Bus 004 Device 003: ID 05ac:8213 Apple, Inc.
Bus 004 Device 002: ID 0a5c:4500 Broadcom Corp.
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 05ac:8507 Apple, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 003: ID 05ac:0237 Apple, Inc.
Bus 003 Device 002: ID 05ac:8242 Apple, Inc.
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 006: ID 19d2:0031 ONDA Communication S.p.A.
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
</pre>
<p>Our device is the 19d2:0031 ONDA Communication S.p.A. I found that after some tries, pluggin and unplugging the USB stick and checking the differences printed by lsmod. Notice that if the usb_storage module is active the product id will be different, while the manufacturer id will be the same. The output of lsmod is not very informative and helping to understand the nature of the usb device, unfortunately. </p>
<p>Now we can load the usbserial device specifying the vendor id and product id of the USB stick.</p>
<pre>
luigi@hal9000:~$ sudo modprobe usbserial vendor=0x19d2 product=0x0031
</pre>
<p>If there are no error displayed, and the command ends silently, then it means that the module is loaded successfully.</p>
<h4>Configuring the 3G connection</h4>
<p>Clicking on the NetworkManager we should now be able to see the New Mobile BroadBand (GSM) Connection:<br />
<img id="image405" src="http://en.newinstance.it/wp-content/uploads/2010/01/new-mobile-broadband.png" alt="new-mobile-broadband.png" /> </p>
<p>Click on it to configure. It will result in a Wizard dialog that will ask you information to "Set up a Mobile Broadband Connection". In my case I filled following information:<br />
Country: I selected "Britain (UK)" ... I took some time to find it: I was looking for "UK" or "United Kingdom" or "England" or some other name...<br />
Select your provider form a list: 3<br />
Select your plan: Internet<br />
Confirm.</p>
<p>After that, the connection is ready and you should be able to browse the internet. Clicking on the NetworkManager tray icon you'll see that you are now connected through it:<br />
<img id="image406" src="http://en.newinstance.it/wp-content/uploads/2010/01/3-internet.png" alt="3-internet.png" /></p>
<h4>Improving the connection reliability</h4>
<p>The connection is quite bad through the 3 network. Sometime you keep being connected but internet stops working. I thought to DNS problem so I set up OpenDNS following <a href="https://store.opendns.com/setup/operatingsystem/ubuntu">these instructions</a>, and now it seems more reliable and usable, but still sometime the connection stops working, and you need to unplug the stick and restart from with the procedure described above.<br />
I don't know why... if somebody knows, please leave a comment.</p>
<p>I'd like to buy a 3G USB Stick or 3G modem; if somebody have some hints on a good supported device, and stable, (easier to set up), please leave a comment.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2009/08/28/linux-ram-disks/" rel="bookmark" class="crp_title">Linux RAM Disks</a></li>
<li><a href="http://en.newinstance.it/2005/12/23/ubuntu-on-my-laptop/" rel="bookmark" class="crp_title">Ubuntu on my laptop</a></li>
<li><a href="http://en.newinstance.it/2009/05/13/making-eclipse-javahl-working-recompiling-subversion-from-the-sources/" rel="bookmark" class="crp_title">Making Eclipse JavaHL working, recompiling Subversion from the sources</a></li>
<li><a href="http://en.newinstance.it/2009/08/31/skype-21047-beta-released-and-amd64-packages-available/" rel="bookmark" class="crp_title">Skype 2.1.0.47 beta released, and  amd64 packages available!</a></li>
<li><a href="http://en.newinstance.it/2005/12/07/aboutabout/" rel="bookmark" class="crp_title">About:About</a></li>
</ul>
</div>
<div class="shr-publisher-404"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F01%2F08%2F3g-usb-stick-on-ubuntu%2F' data-shr_title='3G+USB+Stick+on+Ubuntu'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F01%2F08%2F3g-usb-stick-on-ubuntu%2F' data-shr_title='3G+USB+Stick+on+Ubuntu'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2010%2F01%2F08%2F3g-usb-stick-on-ubuntu%2F' data-shr_title='3G+USB+Stick+on+Ubuntu'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2010/01/08/3g-usb-stick-on-ubuntu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Install Tutorial: Ubuntu 9.04, Apache with SSL, Subversion over HTTP / HTTPs, and Trac</title>
		<link>http://en.newinstance.it/2009/08/27/tutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac/</link>
		<comments>http://en.newinstance.it/2009/08/27/tutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac/#comments</comments>
		<pubDate>Thu, 27 Aug 2009 01:25:54 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2009/08/27/tutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac/</guid>
		<description><![CDATA[This tutorial will guide you through installation of Apache, HTTPS, Subversion and Trac, in order to have an (almost) complete development environment for your team. This article is divided in following steps 1. Installing Subversion 2. Installing Apache 3. Configuring Apache with SSL 4. Configuring Subversion with Apache (and SSL) 5. Installing Trac You may [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->This tutorial will guide you through installation of Apache, HTTPS, Subversion and Trac, in order to have an (almost) complete development environment for your team.</p>
<p>This article is divided in following steps </p>
<p>1. Installing Subversion<br />
2. Installing Apache<br />
3. Configuring Apache with SSL<br />
4. Configuring Subversion with Apache (and SSL)<br />
5. Installing Trac</p>
<p>You may choose for example to see how to install Apache and SSL, or having Apache plus subversion without Trac.<br />
Steps are voluntary isolated, and will require more operations than, for instance, issuing an &quot;apt-get install trac&quot; that will download and install all the packages in one step; but this will hopefully allow the readers to choose picking one section and forget about unneeded  components.<br />
I'll not explain what Subversion is, or what SSL is, etc. Ask google, for this info: I just say that for your software project you may need a server with those tools ready for your team.</p>
<h3>Requirements</h3>
<p> You need Ubuntu 9.04, in my case I used the &quot;server edition&quot; 64bit, while installing I used the minimal server mode pressing F4 to have a system as lighter as possible. But possibly this tutorial should be valid for Debian and previous Ubuntu version; but I have not verified that: if you do, post a comment to report your experience.</p>
<h3>Preparation</h3>
<p> After installing your server you have to ensure that apt system is up to date with available software on the repositories.  Type the following command:</p>
<pre>$ sudo apt-get update</pre>
<p>upgrading installed packages may be a good idea to do now:</p>
<pre>$ sudo apt-get upgrade</pre>
<p>Answer Yes if asked to download and install the upgrades.</p>
<h3>1. Installing Subversion</h3>
<p> From the command line type the command:</p>
<pre>$ sudo apt-get install subversion</pre>
<p>If everything went fine you should able to verify the Subversion version installed with following command:</p>
<pre>$ svn --version
svn, version 1.5.4 (r33841)
   compiled Aug  7 2009, 02:02:06

Copyright (C) 2000-2008 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme</pre>
<p>For now, let's stop here: how to create the Subversion repository, configure the users etc. Will be explained later in conjunction with Apache2 configuration. Maybe I'll write something on how to deal with svnserve, svnadmin, and user access control, in another article. </p>
<p>Later we will see how to create a repository, configure it with apache and HTTP basic authentication.</p>
<h3>2. Installing Apache</h3>
<p> To install apache 2 type the command:</p>
<pre>$ sudo apt-get install apache2</pre>
<p>When finished you should be able to connect with the browser at http://localhost and see the message &quot;It works!&quot;. Or you may verify that at the command line installing and using curl:</p>
<pre>$ sudo apt-get install curl
$ curl http://localhost
&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</pre>
<h3>3. Configuring Apache with SSL</h3>
<p> Now we want to configure apache to run HTTPs.<br />
Following command will enable ssl Apache2 module with a2enmod (cryptic name for &quot;Apache2 enable module&quot;:</p>
<pre>$ sudo a2enmod ssl</pre>
<p>The previous command will suggest you to restart apache to let it to reload the configuration; ignore that message for now.</p>
<p>We need to enable the HTTPS port (443). Edit /etc/apache2/ports.conf and ensure that port 443 is defined as follows:</p>
<pre>$ sudo vi /etc/apache2/ports.conf</pre>
<pre># If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default
# This is also true if you have upgraded from before 2.2.9-3 (i.e. from
# Debian etch). See /usr/share/doc/apache2.2-common/NEWS.Debian.gz and
# README.Debian.gz

NameVirtualHost *:80
Listen 80

&lt;IfModule mod_ssl.c&gt;
    # SSL name based virtual hosts are not yet supported, therefore no
    # NameVirtualHost statement here
    NameVirtualHost *:443
    Listen 443
&lt;/IfModule&gt;</pre>
<p>I added the clause NameVirtualHost *:443 in the for SSL; this is not strictly necessary but it will be useful later if you want to have a VirtualHost for trac and other development services.</p>
<p>Now we need to configure the SSL site. Fortunately we have already the configuration file for that, we just need to enable it with a2ensite (cryptic name for &quot;apache2 enable site&quot;)</p>
<pre>$ sudo a2ensite default-ssl</pre>
<p>Again, the above command will suggest to reload apache configuration to activate the changes. This time the suggestion is almost right. As we made several changes I prefer to restart apache with following command:</p>
<pre>$ sudo /etc/init.d/apache2 restart
 * Restarting web server apache2                                                                                              apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 ... waiting apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName</pre>
<p>If everything went fine you should see the above warning. You can ignore it, unless you want to configure the ServerName for your server. But this is out of scope, so do a search on Google, or consult an Apache expert.</p>
<p>So, if everything went fine, now we should be able to connect to our server through SSL.<br />
You can use firefox or curl, as before, but this time the URL will be https://localhost </p>
<pre>$ curl -k https://localhost
&lt;html&gt;&lt;body&gt;&lt;h1&gt;It works!&lt;/h1&gt;&lt;/body&gt;&lt;/html&gt;</pre>
<p>the -k option is to ignore certification validation. Also firefox will complain that our certificate is invalid, but you can add it to exceptions and it will nomore bug you with those messages.</p>
<p>If everything went fine, now we should have Apache2, HTTP and HTTPs ready. </p>
<h3>4. Configuring Subversion with Apache (and SSL)</h3>
<p> First of all, we need to install the Subversion modules for Apache2.</p>
<pre>$ sudo apt-get install libapache2-svn</pre>
<p>They will be enabled by default. So you don't need to run a2enmod.</p>
<p>We only need to configure a repository. Let' say our project is called 'myproject'.</p>
<p>First of all, let's decide where our svn repositories will be created. I like /var/local/svn :</p>
<pre>$ sudo mkdir /var/local/svn</pre>
<p>Then let's create the repository using following procedure:</p>
<pre>$ sudo mkdir /var/local/svn/myproject
$ sudo chown www-data:www-data /var/local/svn/myproject
$ sudo -u www-data svnadmin create /var/local/svn/myproject</pre>
<p>Above commands will ensure that the user www-data (which is the apache user) can fully access the repository for reading and updating it.</p>
<p>We need to configure the repository in Apache. Edit /etc/apache2/mods-available/dav_svn.conf using:</p>
<pre>$ sudo vi /etc/apache2/mods-available/dav_svn.conf</pre>
<p>And add a section like the following one:</p>
<pre>&lt;Location /svn/myproject&gt;
  DAV svn
  SVNPath /var/local/svn/myproject
  AuthType Basic
  AuthName &quot;My Project Subversion Repository&quot;
  AuthUserFile /etc/subversion/myproject.passwd
  &lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
    Require valid-user
  &lt;/LimitExcept&gt;
&lt;/Location&gt;</pre>
<p>In the above file we indicated that, at the location svn our repository should respond. And for updating the repository we want a valid user. As per above configuration anonymous consultation is allowed; but you can disable it commenting with a leading '#' the lines &lt;LimitExcept ... and &lt;/LimitExcept&gt; or just removing them as in following example:</p>
<pre>&lt;Location /svn/myproject&gt;
  DAV svn
  SVNPath /var/local/svn/myproject
  AuthType Basic
  AuthName &quot;My Project Subversion Repository&quot;
  AuthUserFile /etc/subversion/myproject.passwd
  #&lt;LimitExcept GET PROPFIND OPTIONS REPORT&gt;
    Require valid-user
  #&lt;/LimitExcept&gt;
&lt;/Location&gt;</pre>
<p>The above configuration indicates to Apache that even for consulting the repository we want a valid user.<br />
But valid users need a password, and in fact we indicated a password file for our repository called /etc/subversion/myproject.passwd. So let's create a password file with a couple of users:</p>
<pre>$ sudo htpasswd -c /etc/subversion/myproject.passwd luigi
$ sudo htpasswd /etc/subversion/myproject.passwd mario</pre>
<p>The -c option indicates that the password file should be created as new; and it is only necessary for the first user. Be aware of the fact that -c overwrites the existing password file without asking anything. Personally I think this is a quite stupid behavior, but that's the way it is.</p>
<p>Now we should be ready.</p>
<p>Let's reload apache configuration to make the changes effective:</p>
<pre>$ sudo /etc/init.d/apache2 reload</pre>
<p>and let's test with the browser that our svn repository is now accessible through HTTP and HTTPs at following urls:</p>
<p>http://localhost/svn/myproject/</p>
<p>https://localhost/svn/myproject/</p>
<p>We can also use curl to verify it is working:</p>
<pre>$ curl http://username:password@localhost/svn/myproject/
&lt;html&gt;&lt;head&gt;&lt;title&gt;myproject - Revision 0: /&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
 &lt;h2&gt;myproject - Revision 0: /&lt;/h2&gt;
 &lt;ul&gt;
 &lt;/ul&gt;
 &lt;hr noshade&gt;&lt;em&gt;Powered by &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; version 1.5.4 (r33841).&lt;/em&gt;
&lt;/body&gt;&lt;/html&gt;</pre>
<pre>$ curl -k https://username:password@localhost/svn/myproject/
&lt;html&gt;&lt;head&gt;&lt;title&gt;myproject - Revision 0: /&lt;/title&gt;&lt;/head&gt;
&lt;body&gt;
 &lt;h2&gt;myproject - Revision 0: /&lt;/h2&gt;
 &lt;ul&gt;
 &lt;/ul&gt;
 &lt;hr noshade&gt;&lt;em&gt;Powered by &lt;a href=&quot;http://subversion.tigris.org/&quot;&gt;Subversion&lt;/a&gt; version 1.5.4 (r33841).&lt;/em&gt;
&lt;/body&gt;&lt;/html&gt;</pre>
<p>Now we can also download our project using svn</p>
<pre>$ svn co https://localhost/svn/myproject myproject --username luigi</pre>
<p>"luigi" is obviously my username, substitute it with yours.<br />
The first time it will prompt for accepting the SSL certificate, answer to accept it permanently (p). Then it will optionally ask you for the password, type it.<br />
We can also test that modifying the remote repository is working with:</p>
<pre>$ svn mkdir -m &quot;created the trunk for the project&quot; https://localhost/svn/myproject/trunk --username luigi</pre>
<p>It will answer: Committed revision 1.  If so, we've done.</p>
<h3>5. Installing Trac</h3>
<p>To install trac files and required dependencies, type the following command:</p>
<pre>
$ sudo apt-get install trac
$ sudo apt-get install libapache2-mod-python
</pre>
<p>Let's create the directories for trac web folder:</p>
<pre>
$ sudo mkdir /var/local/trac
$ sudo chown www-data:www-data /var/local/trac
</pre>
<p>edit Apache configuration file for one of your enabled sites (in this example I modify the default http one, but you can choose to put trac on HTTPS modifying default-ssl) </p>
<pre>
$ sudo vi /etc/apache2/sites-enabled/000-default
</pre>
<p>and add the following lines at the end of the file, before the &lt;/VirtualHost&gt; tag:</p>
<pre>
        &lt;Location /projects&gt;
                SetHandler mod_python
                PythonInterpreter main_interpreter
                PythonHandler trac.web.modpython_frontend
                PythonOption TracEnvParentDir /var/local/trac
                PythonOption TracUriRoot /projects
                PythonOption PYTHON_EGG_CACHE /tmp
        &lt;/Location&gt;

        # use the following for one authorization for all projects
        # (names containing &quot;-&quot; are not detected):
        &lt;LocationMatch &quot;/projects/[[:alnum:]]+/login&quot;&gt;
            AuthType Basic
            AuthName &quot;trac&quot;
            AuthUserFile /etc/trac/trac.passwd
            Require valid-user
        &lt;/LocationMatch&gt;
</pre>
<p>Create a password file for trac users (if you want you can reuse or link the passwd file used for subversion  repositories)</p>
<pre>
$ sudo htpasswd -c /etc/trac/trac.passwd luigi
$ sudo htpasswd  /etc/trac/trac.passwd mario
... continue this way for all your users.
</pre>
<p>Create the trac environment for your project:</p>
<pre>
$ sudo -u www-data trac-admin /var/local/trac/myproject initenv
</pre>
<p>It will ask you some questions related to your project. Here's my answers in blue</p>
<pre>
Project Name [My Project]&gt; <span style="color:blue">My Project</span>
Database connection string [sqlite:db/trac.db]&gt; <span style="color:blue">[Just press Enter to accept the default]</span>
Repository type [svn]&gt;  <span style="color:blue">[Just press Enter to accept the default]</span>
Path to repository [/path/to/repos]&gt; <span style="color:blue">/var/local/svn/myproject</span>
</pre>
<p>Now let's restart apache:</p>
<pre>
$ sudo /etc/init.d/apache2 restart
</pre>
<p>Check that trac works properly connecting the browser to http://localhost/projects or use curl to verify that the url is responding properly as we did before. This url should display a link to &quot;My Project&quot;, click on it and you should see the project home page. Clicking on login the browser should ask you to provide username and password as recently defined with htpasswd command.</p>
<p>Last thing to do: add yourself as administrator for Trac. This will enable the Admin menu and allow to do much of the administration operations from the web, that you could also do at the command line with trac-admin tool.<br />
Execute the following command:</p>
<pre>
$ sudo -u www-data trac-admin /var/local/trac/myproject permission add luigi TRAC_ADMIN
</pre>
<p>This will make the username 'luigi' administrator for the project.</p>
<p>You can tune additional configuration settings in Trac to enable email notification, change the project logo, etc. Everything you need to know is on Trac <a href="http://trac.edgewall.org/wiki/TracGuide">website</a>. For the configuration check here: <a href="http://trac.edgewall.org/wiki/TracIni">http://trac.edgewall.org/wiki/TracIni</a></p>
<p>Hope everything went fine. Enjoy your development!
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2009/05/13/making-eclipse-javahl-working-recompiling-subversion-from-the-sources/" rel="bookmark" class="crp_title">Making Eclipse JavaHL working, recompiling Subversion from the sources</a></li>
<li><a href="http://en.newinstance.it/2010/08/03/maven-local-repository-modules/" rel="bookmark" class="crp_title">Maven Local Repository Modules</a></li>
<li><a href="http://en.newinstance.it/2005/06/11/automatic-proxy-switching/" rel="bookmark" class="crp_title">Automatic Proxy Switching</a></li>
<li><a href="http://en.newinstance.it/2008/06/17/maven-class-orgapachemavenartifactrepositoryartifactrepository-cannot-be-instantiated/" rel="bookmark" class="crp_title">Maven: Class  &#8216;org.apache.maven.artifact.repository.ArtifactRepository&#8217; cannot be   instantiated</a></li>
<li><a href="http://en.newinstance.it/2009/03/05/ant-macrodefs/" rel="bookmark" class="crp_title">Ant macrodefs</a></li>
</ul>
</div>
<div class="shr-publisher-381"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2009%2F08%2F27%2Ftutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac%2F' data-shr_title='Install+Tutorial%3A+Ubuntu+9.04%2C+Apache+with+SSL%2C+Subversion+over+HTTP+%2F+HTTPs%2C+and+Trac'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2009%2F08%2F27%2Ftutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac%2F' data-shr_title='Install+Tutorial%3A+Ubuntu+9.04%2C+Apache+with+SSL%2C+Subversion+over+HTTP+%2F+HTTPs%2C+and+Trac'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2009%2F08%2F27%2Ftutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac%2F' data-shr_title='Install+Tutorial%3A+Ubuntu+9.04%2C+Apache+with+SSL%2C+Subversion+over+HTTP+%2F+HTTPs%2C+and+Trac'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2009/08/27/tutorial-ubuntu-904-apache-with-ssl-subversion-over-http-https-and-trac/feed/</wfw:commentRss>
		<slash:comments>50</slash:comments>
		</item>
		<item>
		<title>False alarm: Actns/Swif.T Virus in embedded Youtube videos?</title>
		<link>http://en.newinstance.it/2008/12/03/false-alarm-actnsswift-virus-in-embedded-youtube-videos/</link>
		<comments>http://en.newinstance.it/2008/12/03/false-alarm-actnsswift-virus-in-embedded-youtube-videos/#comments</comments>
		<pubDate>Tue, 02 Dec 2008 23:05:39 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2008/12/03/false-alarm-actnsswift-virus-in-embedded-youtube-videos/</guid>
		<description><![CDATA[A reader of a well known blog, that I help to admin for a friend, today wrote me saying that his antivirus was warning him accessing the website and some other blogs about similar topics. I quickly checked it worried by cracker intrusions, but I found nothing strange. Searching the Internet, at the beginning it [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->A reader of a well known blog, that I help to admin for a friend, today wrote me saying that his antivirus was warning him accessing the website and some other blogs about similar topics. I quickly checked it worried by cracker intrusions, but I found nothing strange. Searching the Internet, at the beginning it seemed that a new, and never seen before type of virus was spreading itself around using YouTube! Called <a href="http://www.google.com/search?q=Actns/Swif.T">Actns/Swif.T</a> and being able to infect flash files seemed also to be incline to hardly damage the host operating system. Quite scary... </p>
<p>I was astonished to learn that flash videos on YouTube could become vehicle of computer virus infections, meaning a security hole in YouTube. Or some other obscure phishing technique that can trick so many users to embed videos from a fake YouTube site which could spread the infection... Or, even more incredibly, a virus able to reproduce over blogs linked together using flash videos as vehicle. Can you imagine  what kind of plague a virus like that could it be?<br />
Finally the mystery was undiscovered: <strong>it was a false positive enlightened by the Computer Associates Antivirus</strong>. Thankfully, a false alarm.</p>
<p>Linux or Mac could be a solution to forget about computer viruses. But if I were still using Windows I would at least avoid using Internet Explorer, as there are many better and more secure alternatives: Firefox, Chrome, Opera... and always, surfing the internet: caution!
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2008/07/17/secure-storage-in-ganymede-is-forced-paranoia/" rel="bookmark" class="crp_title">&#8220;Secure Storage&#8221; in Ganymede is forced paranoia</a></li>
<li><a href="http://en.newinstance.it/2008/11/10/wassup-yesterday-and-today/" rel="bookmark" class="crp_title">Wassup yesterday and today</a></li>
<li><a href="http://en.newinstance.it/2006/08/11/portable-apps-to-the-rescue/" rel="bookmark" class="crp_title">Portable apps to the rescue!</a></li>
<li><a href="http://en.newinstance.it/2010/05/03/sharing-keyboard-and-mouse-on-multiple-computers/" rel="bookmark" class="crp_title">Sharing keyboard and mouse on multiple computers</a></li>
<li><a href="http://en.newinstance.it/2007/07/11/free-speech-not-in-italy-piero-riccas-blog-censored/" rel="bookmark" class="crp_title">Free speech? Not in Italy: Piero Ricca&#8217;s Blog censored.</a></li>
</ul>
</div>
<div class="shr-publisher-345"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F12%2F03%2Ffalse-alarm-actnsswift-virus-in-embedded-youtube-videos%2F' data-shr_title='False+alarm%3A+Actns%2FSwif.T+Virus+in+embedded+Youtube+videos%3F'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F12%2F03%2Ffalse-alarm-actnsswift-virus-in-embedded-youtube-videos%2F' data-shr_title='False+alarm%3A+Actns%2FSwif.T+Virus+in+embedded+Youtube+videos%3F'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F12%2F03%2Ffalse-alarm-actnsswift-virus-in-embedded-youtube-videos%2F' data-shr_title='False+alarm%3A+Actns%2FSwif.T+Virus+in+embedded+Youtube+videos%3F'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2008/12/03/false-alarm-actnsswift-virus-in-embedded-youtube-videos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The passwords hell</title>
		<link>http://en.newinstance.it/2008/06/27/the-passwords-hell/</link>
		<comments>http://en.newinstance.it/2008/06/27/the-passwords-hell/#comments</comments>
		<pubDate>Fri, 27 Jun 2008 18:03:48 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2008/06/27/the-passwords-hell/</guid>
		<description><![CDATA[Registration/Login is the #1 usability problem on websites. I hate security paranoia when it is not needed (ok, I can understand a bank&#8230;) My suggestions to avoid boring the people using our software: Let the user choose the preferred password. Don&#8217;t assign it your own (especially with random chars!!!). User will forget it and abandon [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->Registration/Login is the #1 usability problem on websites.<br />
I hate security paranoia when it is not needed (ok, I can understand a bank&#8230;)</p>
<p>My suggestions to avoid boring the people using our software:</p>
<ol>
<li> Let the user choose the preferred password. Don&#8217;t assign it your own (especially with random chars!!!). User will forget it and abandon the damn website. If your ego wants you to write a very cool password generator, provide it as an option in alternative to pick their own, for the eternal undecided. Mailing the password (choosen by you) is boring enough to let the user go away, at least the time to check the email&#8230; and it may be too late.</li>
<li> Don&#8217;t require the user to change the password on first login.</li>
<li> Implement a good and safe &#8220;remember me&#8221; feature. </li>
<li> Don&#8217;t impose restriction rules on user passwords: don&#8217;t ask for special chars, don&#8217;t require a minimum lenght, don&#8217;t mandate periodical password changes, don&#8217;t memorize the password history to prevent password repetitions. User will use password like &#8220;a1111111$&#8221; and periodically change it to &#8220;a2222222$&#8221;, or attach a post-it on the monitor,  just to be able to remind it: you think that is more secure? Just warn that short password=low security, or provide a measure to tell the user how strong is his chosen password.</li>
<li> When the user writes wrong user name or password, don&#8217;t say &#8220;the password is wrong&#8221; and &#8220;username not registered&#8221; or more idiocy: implement a mastermind if you like video games leaving your job to a smart guy, and don&#8217;t help crackers to guess.</li>
<li> Don&#8217;t lock the account when the user is logged in. This is also known as &#8220;single session per user&#8221;. It&#8217; just insanity.</li>
<li> Don&#8217;t require the user to remember the email with which he subscribed. Allow the user to retrieve the password by user name, email address, or just his name, and send it by mail. Remember the CAPTCHA, to avoid mailbox flooding.</li>
<li>The &#8220;secret question&#8221; test to permit the user to recover a &#8220;lost password&#8221; situation is good option, but may be risky because the answer can be guessed: use smart questions. Example: not the birth date that could be on user skype profile; nor the car number plate that is publicly visible. Allow the user to write his secret question. You can allow the user to access the website and change the password without using emails (sometime people changes/abandon mailboxes): when the user correctly responds to a &#8220;secret question&#8221; test, don&#8217;t send him any email: let him log in without the password, and give him the chance to change it.</li>
<li>Don&#8217;t require the user to register. If possible, offer a &#8220;guest experience&#8221;, and suggest the user to subscribe only when he feels it worths the pain or if your application need to store information specific to the user. An option could be to create a temporary guest account when a new user visit the site, warning the user that guest accounts are periodically cleaned up and he risks to loose the work done. On cleaning up, remove before the guests that don&#8217;t login after much time and keep the others.</li>
<li>To protect against password guessers I would lock the account after a certain number (enough high) of tries. When the lock happens automatically send the mail to the account owner with the &#8220;password reset link&#8221; and the &#8220;user unlock&#8221; link. This feature may be configurable: user may not like this.</li>
<li>Displaying the &#8220;last login&#8221; information to the user can help the user to detect if someone not authorized is using his account.</li>
</ol>
<p>Of course those suggestions are not valid for websites that require a strong security, but they can provide enough security for 99% of the site we daily use.<br />
Let the users be responsible of their security, and if they choose a stupid password, worse for them! Against stupidity the gods themselves struggle in vain.</p>
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2008/07/17/secure-storage-in-ganymede-is-forced-paranoia/" rel="bookmark" class="crp_title">&#8220;Secure Storage&#8221; in Ganymede is forced paranoia</a></li>
<li><a href="http://en.newinstance.it/2005/07/28/bug-parade/" rel="bookmark" class="crp_title">Bug Parade</a></li>
<li><a href="http://en.newinstance.it/2008/04/01/remote-desktop-and-the-black-screen/" rel="bookmark" class="crp_title">Remote Desktop and the Black Screen</a></li>
<li><a href="http://en.newinstance.it/2009/11/26/karmic-and-luks-usb-drive-encryption-made-almost-easy/" rel="bookmark" class="crp_title">Karmic and Luks: USB drive encryption made (almost) easy</a></li>
<li><a href="http://en.newinstance.it/2005/08/31/security-paranoia-restricting-ssh-access/" rel="bookmark" class="crp_title">Security paranoia: restricting ssh access</a></li>
</ul>
</div>
<div class="shr-publisher-299"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F06%2F27%2Fthe-passwords-hell%2F' data-shr_title='The+passwords+hell'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F06%2F27%2Fthe-passwords-hell%2F' data-shr_title='The+passwords+hell'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2008%2F06%2F27%2Fthe-passwords-hell%2F' data-shr_title='The+passwords+hell'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2008/06/27/the-passwords-hell/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Multiple IP on a single network interface</title>
		<link>http://en.newinstance.it/2007/08/09/multiple-ip-on-a-single-network-interface/</link>
		<comments>http://en.newinstance.it/2007/08/09/multiple-ip-on-a-single-network-interface/#comments</comments>
		<pubDate>Thu, 09 Aug 2007 10:28:30 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2007/08/09/multiple-ip-on-a-single-network-interface/</guid>
		<description><![CDATA[If you use tools like netswitcher to configure on the fly more profiles for accessing the networks from home / office / Internet Cafe you may have a look at netsh command line provided by Windows, that can do this and more weird things, like binding more IP addresses to your network interface. For example, [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->If you use tools like <a href="http://www.netswitcher.com/">netswitcher</a> to configure on the fly more profiles for accessing the networks from home / office / Internet Cafe you may have a look at <a href="http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/netsh.mspx?mfr=true">netsh</a> command line provided by Windows, that can do this and more weird things, like binding more IP addresses to your network interface.</p>
<p>For example, at home I have a WIFI access point and I don&#8217;t use DHCP. But I don&#8217;t want to expose the administration console of the access point to Internet, so I put the administration console on a different subnet that is only accessible by air if you are around it. On my laptop then I need to access the Internet subnet (192.168.125.*) routed by the access point and the Intranet subnet (10.21.35.*) to access the access-point administration console, using only my WIFI network card.<br />
This is the script &#8220;WIFI Home Static IP.nsh&#8221; to do that:</p>
<pre>
interface ip
set address name="Wireless Network Connection" source=static addr=192.168.125.77 mask=255.255.255.0 gateway=192.168.125.1 gwmetric=0
add address name="Wireless Network Connection" addr=10.21.35.2  mask=255.255.255.0
set dns name="Wireless Network Connection" source=static addr=192.168.178.1
</pre>
<p>The above script sets two IP addresses and related subnets details for the interface called &#8220;Wireless Network Connection&#8221;. The interface name comes from the Network Connections dialog of Windows.</p>
<p>To execute the script you use the command:<br />
<code>netsh -f "WIFI Home Static IP.nsh"</code></p>
<p>Executing that, this is my ipconfig output</p>
<pre>
Scheda Ethernet Wireless Network Connection:

        Suffisso DNS specifico per connessione:
        Indirizzo IP. . . . . . . . . . . . . : 10.21.35.2
        Subnet mask . . . . . . . . . . . . . : 255.255.255.0
        Indirizzo IP. . . . . . . . . . . . . : 192.168.125.77
        Subnet mask . . . . . . . . . . . . . : 255.255.255.0
        Gateway predefinito . . . . . . . . . : 192.168.125.1
</pre>
<p>And to restore the default IP settings for other networks (using DHCP for obtaining single IP and DNS) I use this other script called &#8220;WI-FI DHCP.nsh&#8221;:</p>
<pre>
interface ip
set address name="Wireless Network Connection" source=dhcp
set dns name="Wireless Network Connection" source=dhcp
</pre>
<p>The above lines sets IP and DNS address to be obtained automatically from the DHCP (that is the default behavior), for my Wireless Network Connection.</p>
<p>To do things quickly I associated the <code>.nsh</code> file extension to the command <code>netsh -f "%1"</code> and now I can switch network settings just clicking on an icon.</p>
<p>Learning to create netsh scripts can help much if you bring your laptop in different networks.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2008/03/05/changing-the-mac-address-on-linux-and-windows/" rel="bookmark" class="crp_title">Changing the MAC Address on Linux and Windows</a></li>
<li><a href="http://en.newinstance.it/2005/06/11/automatic-proxy-switching/" rel="bookmark" class="crp_title">Automatic Proxy Switching</a></li>
<li><a href="http://en.newinstance.it/2008/04/25/wine-excel-error-accessing-file-network-connection-may-have-been-lost/" rel="bookmark" class="crp_title">Wine &#038; Excel: Error accessing file. Network connection may have been lost</a></li>
<li><a href="http://en.newinstance.it/2009/12/03/ipod-touch-with-linux/" rel="bookmark" class="crp_title">Ipod touch with Linux</a></li>
<li><a href="http://en.newinstance.it/2010/04/30/wake-on-lan/" rel="bookmark" class="crp_title">Wake on LAN</a></li>
</ul>
</div>
<div class="shr-publisher-257"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F08%2F09%2Fmultiple-ip-on-a-single-network-interface%2F' data-shr_title='Multiple+IP+on+a+single+network+interface'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F08%2F09%2Fmultiple-ip-on-a-single-network-interface%2F' data-shr_title='Multiple+IP+on+a+single+network+interface'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F08%2F09%2Fmultiple-ip-on-a-single-network-interface%2F' data-shr_title='Multiple+IP+on+a+single+network+interface'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2007/08/09/multiple-ip-on-a-single-network-interface/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Free speech? Not in Italy: Piero Ricca&#8217;s Blog censored.</title>
		<link>http://en.newinstance.it/2007/07/11/free-speech-not-in-italy-piero-riccas-blog-censored/</link>
		<comments>http://en.newinstance.it/2007/07/11/free-speech-not-in-italy-piero-riccas-blog-censored/#comments</comments>
		<pubDate>Wed, 11 Jul 2007 09:16:44 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Life, universe and everything]]></category>
		<category><![CDATA[Opinions]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2007/07/11/free-speech-not-in-italy-piero-riccas-blog-censored/</guid>
		<description><![CDATA[Piero Ricca, is an Italian citizen owning a blog in which he speaks about politics and justice. A sort of Italian Michael Moore, I would say. Yesterday, the blog of my friend Piero Ricca has been censored. Blocked actually, as Italian police has changed passwords, blocked posts and comments on that site, deleted articles. You [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><img src="http://www.alkemik.com/alkemik/pieroricca.jpg" /></p>
<p>Piero Ricca, is an Italian citizen owning a blog in which he speaks about politics and justice. A sort of Italian Michael Moore, I would say.</p>
<p>Yesterday, the <a href="http://www.pieroricca.org">blog of my friend Piero Ricca</a> has been censored. Blocked actually, as Italian police has changed passwords, blocked posts and comments on that site, deleted articles.</p>
<p>You can see automated translation of the deleted articles, from google cache: <a href="http://www.google.com/translate?u=http%3A%2F%2F64.233.183.104%2Fsearch%3Fq%3Dcache%3Awc911Myjjw8J%3Awww.pieroricca.org%2F2007%2F04%2F17%2Femilio-fede%2F%2Bsite%3Apieroricca.org%2Bfede%26hl%3Dit%26ct%3Dclnk%26cd%3D2%26gl%3Dit%26amp&#038;langpair=it%7Cen&#038;hl=en&#038;ie=UTF8">Emilio Fede</a>; <a href="http://www.google.com/translate?u=http%3A%2F%2F64.233.183.104%2Fsearch%3Fq%3Dcache%3Aqt6KA5pOpBQJ%3Awww.pieroricca.org%2F2007%2F04%2F28%2Femilio-fede-2lo-sputo%2F%2Bsite%3Apieroricca.org%2Bfede%26hl%3Dit%26ct%3Dclnk%26cd%3D1%26gl%3Dit%26amp&#038;langpair=it%7Cen&#038;hl=en&#038;ie=UTF8">Emilio Fede: the spit</a>. Original italian version here: <a href="http://64.233.183.104/search?q=cache:wc911Myjjw8J:www.pieroricca.org/2007/04/17/emilio-fede/+site:pieroricca.org+fede&amp;hl=it&amp;ct=clnk&amp;cd=2&amp;gl=it&amp;amp" target="_blank">Emilio Fede</a>, <a href="http://64.233.183.104/search?q=cache:qt6KA5pOpBQJ:www.pieroricca.org/2007/04/28/emilio-fede-2lo-sputo/+site:pieroricca.org+fede&amp;hl=it&amp;ct=clnk&amp;cd=1&amp;gl=it&amp;amp" target="_blank">Emilio Fede: lo sputo</a></p>
<p>What happened? Why this blog has been banned? I explain it briefly.</p>
<p>Some days ago, Piero met Emilio Fede, a &#8220;journalist&#8221;, director of TG4, of Rete4 (Berlusconi&#8217;s TV network) and asked him about how it is possible that Rete4 continues to transmit using abusive TV frequencies: there&#8217;s a sentence of the Constitutional Court that was assigning those frequencies to &#8220;Europa 7&#8243;, but Rete4 continues to transmit despite the law.<br />
In response to that question Piero received insults and a spittle, and when Piero answered to the journalist, he got intimidating menaces and also law actions menaces.<br />
There&#8217;s a video on youtube of the episode: <a href="http://www.youtube.com/watch?v=5KbGNQwO7es">Piero Ricca vs Emilio Fede</a>.</p>
<p>Yesterday, his blog has been preventatively seized.</p>
<p>So a pirate TV owned by the ex-prime minister Silvio Berlusconi, can continue to work for years, but if a citizen asks for explanations gets banned from internet. Usual stuff for Italian Justice: strong with common citizen, weak with potents.</p>
<p>Here, the post from beppegrillo.it: <a href="http://www.beppegrillo.it/eng/2007/07/v_as_in_emilio_fede.html">V as in Emilio Fede</a>.</p>
<p><a href="http://www.technorati.com/blogs/pieroricca.org?reactions">Every blog in Italy is echoing the news</a>. </p>
<p>The message from Piero Ricca in the comments of his last blog post:</p>
<blockquote><p>
I am Piero Ricca.</p>
<p>DEAR FRIENDS, I CANNOT UPDATE THE BLOG. It has been closed by an act of the Rome Prosecutors’ office, a “preventative removal” that I was notified of at 2:00pm today by two officers of the Finance Police of the “special unit against ICT frauds” who came from Rome. The action has happened as a result of an action for defamation presented by Emilio Fede against myself for the famous confrontation at the Press Circle. With the same measure they have deleted one of my posts relating to the Fede affair and the related comments. For technical reasons, they have not been able to remove the video from YouTube.<br />
Naturally I will immediately ask for the reversal of the action. In the meantime I can just write these lines here. In a short while, I will send a communication to the sites of friends, and I’m asking you now to distribute it.<br />
With Fede there’ll be an encounter in the tribunal, perhaps even in front of one of the magistrates who has been defamed and spied upon during the years of the government of his employer.<br />
And we will continue to criticise him and those like him in public places, in new displays of dissent.<br />
No one will manage to remove the freedom of expression from me and from the friends of Qui Milano Libera and of the blog: this is certain.<br />
Thanks to all.” </p>
<p>Piero Ricca
</p></blockquote>
<p>Now Piero is evaluating to move his blog outside Italy, to avoid censor for the future. It seems that the website <a href="http://www.quimilanolibera.net/">Qui Milano Libera</a> will host Piero&#8217;s voice while his blog is under block.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2007/02/05/interview-on-java-journal/" rel="bookmark" class="crp_title">Interview on Java Journal</a></li>
<li><a href="http://en.newinstance.it/2008/12/03/false-alarm-actnsswift-virus-in-embedded-youtube-videos/" rel="bookmark" class="crp_title">False alarm: Actns/Swif.T Virus in embedded Youtube videos?</a></li>
<li><a href="http://en.newinstance.it/2005/06/16/joel-on-software-book/" rel="bookmark" class="crp_title">Joel on Software Book</a></li>
<li><a href="http://en.newinstance.it/2008/11/14/italian-politicians-against-bloggers-again/" rel="bookmark" class="crp_title">Italian politicians against bloggers, again&#8230;</a></li>
<li><a href="http://en.newinstance.it/2010/12/01/android-sdk-2-2_r2-sources/" rel="bookmark" class="crp_title">Android sdk 2.2_r2 sources</a></li>
</ul>
</div>
<div class="shr-publisher-246"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F07%2F11%2Ffree-speech-not-in-italy-piero-riccas-blog-censored%2F' data-shr_title='Free+speech%3F+Not+in+Italy%3A+Piero+Ricca%27s+Blog+censored.'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F07%2F11%2Ffree-speech-not-in-italy-piero-riccas-blog-censored%2F' data-shr_title='Free+speech%3F+Not+in+Italy%3A+Piero+Ricca%27s+Blog+censored.'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F07%2F11%2Ffree-speech-not-in-italy-piero-riccas-blog-censored%2F' data-shr_title='Free+speech%3F+Not+in+Italy%3A+Piero+Ricca%27s+Blog+censored.'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2007/07/11/free-speech-not-in-italy-piero-riccas-blog-censored/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JRainbow, the (unknown) online source code colorer, now supports XML</title>
		<link>http://en.newinstance.it/2007/06/15/jrainbow-the-unknown-online-source-code-colorer-now-supports-xml/</link>
		<comments>http://en.newinstance.it/2007/06/15/jrainbow-the-unknown-online-source-code-colorer-now-supports-xml/#comments</comments>
		<pubDate>Fri, 15 Jun 2007 13:38:19 +0000</pubDate>
		<dc:creator>Luigi</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://en.newinstance.it/2007/06/15/jrainbow-the-unknown-online-source-code-colorer-now-supports-xml/</guid>
		<description><![CDATA[I&#8217;ve made some refactoring to make JRainbow support several languages. The result is that now JRainbow supports XML coloring. To learn more about JRainbow source code colorer, check the JRainbow Project Website. Here you can try it right now: XML sintax coloring is almost complete, just need some improvement to support inline DTDs. Related Posts: [...]]]></description>
			<content:encoded><![CDATA[<p><!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic -->I&#8217;ve made some refactoring to make JRainbow support several languages. The result is that now JRainbow supports XML coloring. </p>
<p>To learn more about JRainbow source code colorer, check the <a href="http://jrainbow.newinstance.it/">JRainbow Project Website</a>.</p>
<p>Here you can try it right now:</p>
<p><iframe height="430" width="500" scrolling="no" src="http://newinstance.s42.eatj.com/jrainbow/"  frameborder="0"></iframe><br />
XML sintax coloring is almost complete, just need some improvement to support inline DTDs.
<div id="crp_related">
<h4>Related Posts:</h4>
<ul>
<li><a href="http://en.newinstance.it/2006/12/02/give-color-to-your-code/" rel="bookmark" class="crp_title">Give color to your code!</a></li>
<li><a href="http://en.newinstance.it/2007/08/24/building/" rel="bookmark" class="crp_title">Building&#8230;</a></li>
<li><a href="http://en.newinstance.it/2006/07/08/javaday06-torino-photoreport/" rel="bookmark" class="crp_title">JavaDay&#8217;06 @Torino, Photoreport</a></li>
<li><a href="http://en.newinstance.it/2006/06/24/gtalk-jabber-and-other-im-protocols/" rel="bookmark" class="crp_title">GTalk, Jabber and other IM protocols</a></li>
<li><a href="http://en.newinstance.it/2005/09/21/better-html-buttons-with-images/" rel="bookmark" class="crp_title">Better HTML Buttons&#8230; with images</a></li>
</ul>
</div>
<div class="shr-publisher-237"></div>
<p><!-- Start Shareaholic LikeButtonSetBottom Automatic -->
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<div class='shareaholic-like-buttonset' style='float:none;height:30px;'><a class='shareaholic-fblike' data-shr_layout='button_count' data-shr_showfaces='false' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F06%2F15%2Fjrainbow-the-unknown-online-source-code-colorer-now-supports-xml%2F' data-shr_title='JRainbow%2C+the+%28unknown%29+online+source+code+colorer%2C+now+supports+XML'></a><a class='shareaholic-googleplusone' data-shr_size='medium' data-shr_count='true' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F06%2F15%2Fjrainbow-the-unknown-online-source-code-colorer-now-supports-xml%2F' data-shr_title='JRainbow%2C+the+%28unknown%29+online+source+code+colorer%2C+now+supports+XML'></a><a class='shareaholic-tweetbutton' data-shr_count='none' data-shr_href='http%3A%2F%2Fen.newinstance.it%2F2007%2F06%2F15%2Fjrainbow-the-unknown-online-source-code-colorer-now-supports-xml%2F' data-shr_title='JRainbow%2C+the+%28unknown%29+online+source+code+colorer%2C+now+supports+XML'></a></div>
<div style="clear: both; min-height: 1px; height: 3px; width: 100%;"></div>
<p><!-- End Shareaholic LikeButtonSetBottom Automatic --></p>
]]></content:encoded>
			<wfw:commentRss>http://en.newinstance.it/2007/06/15/jrainbow-the-unknown-online-source-code-colorer-now-supports-xml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

