<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.vampiroz.org/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.vampiroz.org/~d/styles/itemcontent.css" type="text/css" media="screen"?><!-- generator="wordpress/2.1.3" --><rss 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/" version="2.0">

<channel>
	<title>VampiroZ</title>
	<link>http://vampiroz.org</link>
	<description>Comentarios y reflexiones de Pablo Hoffman</description>
	<pubDate>Mon, 07 Jul 2008 03:29:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.1.3</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.vampiroz.org/vampiroz" type="application/rss+xml" /><item>
		<title>How Privnote really works</title>
		<link>http://vampiroz.org/2008/07/how-privnote-really-works.html</link>
		<comments>http://vampiroz.org/2008/07/how-privnote-really-works.html#comments</comments>
		<pubDate>Mon, 07 Jul 2008 01:51:28 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Privnote]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/07/how-privnote-really-works.html</guid>
		<description><![CDATA[Given the recent popularity of Privnote as consequence of appearing in ReadWriteWeb and the front-page of Digg, a rather heated discussion has arisen about whether notes send through Privnote are really protected against someone with access to the Privnote database.
We believe it is, and I&#8217;ll explain the reasons here by detailing the exact process used [...]]]></description>
			<content:encoded><![CDATA[<p>Given the recent popularity of <a href="https://privnote.com">Privnote</a> as consequence of appearing in <a href="http://www.readwriteweb.com/archives/send_messages_that_self-destruct_with_privnote.php">ReadWriteWeb</a> and the front-page of <a href="http://digg.com/tech_news/Send_Messages_That_Self_Destruct_With_Privnote">Digg</a>, a rather heated discussion has arisen about whether notes send through Privnote are really protected against someone with access to the Privnote database.</p>
<p>We believe it is, and I&#8217;ll explain the reasons here by detailing the exact process used to store the notes in the database. I did try to explain it before in <a href="http://vampiroz.org/2008/06/sending-private-notes-using-privnote.html">this post</a> but unfortunately the explanation was obfuscated at best, and incorrect at worst.</p>
<p>So here&#8217;s what happens when you <b>create a note in Privnote</b>:</p>
<ol>
<li>You write the note and click the POST button</li>
<li>The server generates a random note id, let&#8217;s call it the <em>NoteID</em>. This is the 16 chars ID you see in the note link</li>
<li>The server hashes the note ID and gets a <em>HashedNoteID = Hash(NoteID)</em>. We&#8217;re currently using SHA-1 as the hashing algorithm, but the particular algorithm is not very important here</li>
<li>The server encrypts the note contents (and also the email and reference, if there is any) using the <em>NoteID</em>, and stores the encrypted version in the database using the <em>HashedNoteID</em> as the <em>database primary key</em></li>
</ol>
<p>If someone with access to the database would like to read the note she would be unable because she doesn&#8217;t have the key to decrypt it (<em>NoteID</em>), only the database primary key (<em>HashedNoteID</em>). The <em>HashedNoteID</em> cannot be used to &#8220;go back&#8221; to the <em>NoteID</em> because hashes are &#8220;one-way&#8221;. So the only person who can actually decrypt (and thus see) the note is the one who has the original <em>NoteID</em> or, in other words, the one who has the link to the note.</p>
<p>For completeness, this is what happens when you <b>view a note in Privnote</b>:</p>
<ol>
<li>The server extracts the <em>NoteID</em> from the URL</li>
<li>The server hashes the <em>NoteID</em> and gets the <em>HashedNoteID</em>. This is the same <em>HashedNoteID</em> used when generating the note, since the <em>NoteID</em> used to make the hash is the same in both cases</li>
<li>The server retrieves the note from the database using <em>HashedNoteID</em> as the <em>database primary key</em> and decrypts its contents using <em>NoteID</em> as the encryption key</li>
<li>The server shows the page with the decrypted note</li>
<li>The server permanently deletes the note from the database, keeping only a record of the <em>HashedNoteID</em>, the time when it was read, and the IP address where it was read from, to show it when someone tries to see the note again</li>
</ol>
<p>I apologize for not being clear in my original explanation, and hope to have explained myself better this time. Thanks to everyone who corrected me and provided a better explanation, both here and in other blogs.</p>
<p>Finally, I must say that we have received a lot of great feedback these days, and that motivates us to keep improving Privnote as well as making it available in more languages.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/328471965" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/07/how-privnote-really-works.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Privnote and Google App Engine</title>
		<link>http://vampiroz.org/2008/06/privnote-and-google-app-engine.html</link>
		<comments>http://vampiroz.org/2008/06/privnote-and-google-app-engine.html#comments</comments>
		<pubDate>Sun, 29 Jun 2008 20:14:52 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Privnote]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/06/privnote-and-google-app-engine.html</guid>
		<description><![CDATA[At first,  Privnote looked like an ideal application for porting to Google App Engine because:

it&#8217;s already written in the &#8220;official&#8221; App Engine platform (Python+Django)
it&#8217;s entirely based on a request/response mechanism
we would forget about scalability problems forever

So we give it a try and implemented a prototype, just to see how it goes, but, in the [...]]]></description>
			<content:encoded><![CDATA[<p>At first,  <a href="https://privnote.com">Privnote</a> looked like an ideal application for porting to Google App Engine because:</p>
<ul>
<li>it&#8217;s already written in the &#8220;official&#8221; App Engine platform (Python+Django)</li>
<li>it&#8217;s entirely based on a request/response mechanism</li>
<li>we would forget about scalability problems forever</li>
</ul>
<p>So we give it a try and implemented a prototype, just to see how it goes, but, in the end, GAE didn&#8217;t work because:</p>
<ul>
<li>it doesn&#8217;t have support for SSL, which is mandatory for Privnote</li>
<li>it doesn&#8217;t support third-party Python C extensions (which we use in Privnote) unless they&#8217;re pure-python modules</li>
</ul>
<p>As for scaling Privnote, we&#8221;ll have to try other alternatives, but it was a good experience to gain some knowledge about Google App Engine and cloud computing, which are very hot topic these days.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/322761279" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/06/privnote-and-google-app-engine.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Corporate blog or personal blog?</title>
		<link>http://vampiroz.org/2008/06/corporate-blog-or-personal-blog.html</link>
		<comments>http://vampiroz.org/2008/06/corporate-blog-or-personal-blog.html#comments</comments>
		<pubDate>Sun, 29 Jun 2008 19:34:02 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[Blogs]]></category>

		<category><![CDATA[English]]></category>

		<category><![CDATA[Insophia]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/06/corporate-blog-or-personal-blog.html</guid>
		<description><![CDATA[When I launched Insophia, about a year ago, I wanted it to have a blog, right from the beginning. So I chose Wordpress as the platform for the site. However, in many occasions, when going to write something, I faced the question of where to post it. Should I post it in the Insophia (corporate) [...]]]></description>
			<content:encoded><![CDATA[<p>When I launched Insophia, about a year ago, I wanted it to have <a href="http://insophia.com/blog/">a blog</a>, right from the beginning. So I chose Wordpress as the platform for <a href="http://insophia.com">the site</a>. However, in many occasions, when going to write something, I faced the question of where to post it. Should I post it in the Insophia (corporate) blog or here, at my (personal) blog?. And, even thought it may not seem that important at first, several articles never saw the light because that uncertainty prevented me from going on.</p>
<p>So I&#8217;m happy that I finally made a choice. From now on, <em>I&#8217;ll write everything here</em>. I can always aggregate the articles in the Insophia blog, if I see the need. My original idea with the Insophia blog was to be written by all Insophia people but, after a year, there are only 3 articles and all of them written by myself. Why did this happened?. Not much bloggers at Insophia, I guess. In any case, the &#8220;new&#8221; Insophia blog will be more like a &#8220;News&#8221; section (with quick short posts) and all articles (well, at least mine) will be published here.</p>
<p>In the future, if some people at Insophia become interested in blogging (blogging should be encouraged, but never -ever- enforced) we could aggregate all their blogs into the Insophia blog.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/322747214" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/06/corporate-blog-or-personal-blog.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Sending private notes using Privnote</title>
		<link>http://vampiroz.org/2008/06/sending-private-notes-using-privnote.html</link>
		<comments>http://vampiroz.org/2008/06/sending-private-notes-using-privnote.html#comments</comments>
		<pubDate>Sun, 29 Jun 2008 18:29:58 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Insophia]]></category>

		<category><![CDATA[Privnote]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/06/sending-private-notes-using-privnote.html</guid>
		<description><![CDATA[Have you ever wanted to send some highly confidential information (like credit card information or root passwords) over the Internet and were afraid others could be sniffing your traffic?. Well, I have, all the time. I&#8217;ve always being paranoid about this, so that&#8217;s why we, at Insophia, came up with Privnote, a tool for sending [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever wanted to send some highly confidential information (like credit card information or root passwords) over the Internet and were afraid others could be sniffing your traffic?. Well, I have, all the time. I&#8217;ve always being paranoid about this, so that&#8217;s why we, at <a href="http://insophia.com">Insophia</a>, came up with <a href="https://privnote.com">Privnote</a>, a tool for sending private notes over the net in a very easy and secure way. </p>
<p>All you have to do is enter the site, write the note and click Post. Then you get a link that you can send to the only person you want to read it. </p>
<p>What makes it so secure then?. </p>
<p>Two things mostly:</p>
<ul>
<li>SSL encryption makes sure the note contents never leaves your browser (neither arrives at the recipient browser) in plain text </li>
<li>When the note is read (by clicking the link) it automatically self-destructs so no one else who clicks the link could read it. If the note was not read by the intended recipient, at least he/she will known that someone else did it and that the content was compromised</li>
</ul>
<p>What about the site administrators, you may ask, those ones who always seem to have &#8220;full power&#8221; over your data. Well, with Privnote, those cannot read your note either. The explanation is a bit more technical, but here it goes:  When the note is received by the server, a note ID is created (the same ID you see in the link to read the note). The note contents is then encrypted and saved in the database but (and here&#8217;s the magic) the <a href="http://en.wikipedia.org/wiki/Salt_(cryptography)">salt</a> to encrypt the note is not the note ID but <b>a hash of the note ID</b>. Hashes &#8220;one way&#8221; so you cannot go back to the note ID from the hash. So the note gets stored in the DB encrypted with a token that only the person which has the note link can read it. Oh, and we also have web server access logs disabled which makes impossible for any administrator to decrypt the note contents. So, as you can see, the only person who has the key to decrypt it is the one who has the link to the note.</p>
<p>As an additional feature, you can get notified when your note gets read, something that (even today) is not possible with any email or instant messaging software.</p>
<p>Also, I want to mention that the application is available in English and Spanish. By default, it works in the language of your browser, but you can change it using the language selector in the top right corner.</p>
<p>I would like to hear your thoughts about it, feel free to post any comment, criticisms and suggestions.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/322719457" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/06/sending-private-notes-using-privnote.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>¡Google me copió el favicon!</title>
		<link>http://vampiroz.org/2008/06/%c2%a1google-me-copio-el-favicon.html</link>
		<comments>http://vampiroz.org/2008/06/%c2%a1google-me-copio-el-favicon.html#comments</comments>
		<pubDate>Sun, 01 Jun 2008 08:09:59 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[Google]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/06/%c2%a1google-me-copio-el-favicon.html</guid>
		<description><![CDATA[Yo sabía que de algún lado me sonaba el &#8220;look&#8221; del nuevo favicon de Google&#8230;
 favicon de pablohoffman.com (desde 2004)
 nuevo favicon google.com
Voy a contar los pixeles iguales y si superan el 50% los demando! 
]]></description>
			<content:encoded><![CDATA[<p>Yo sabía que de algún lado me sonaba el &#8220;look&#8221; del nuevo favicon de Google&#8230;</p>
<p><img src="http://vampiroz.org/wp-content/pablohoffman-favicon.png"/> favicon de pablohoffman.com (desde 2004)</p>
<p><img src="http://vampiroz.org/wp-content/google-favicon.png"/> nuevo favicon google.com</p>
<p>Voy a contar los pixeles iguales y si superan el 50% los demando! <img src='http://vampiroz.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/302260033" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/06/%c2%a1google-me-copio-el-favicon.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Connect to VirtualBox guest PCs via ssh without using bridge-utils</title>
		<link>http://vampiroz.org/2008/05/connect-to-virtualbox-guest-pcs-via-ssh-without-bridge-utils.html</link>
		<comments>http://vampiroz.org/2008/05/connect-to-virtualbox-guest-pcs-via-ssh-without-bridge-utils.html#comments</comments>
		<pubDate>Wed, 07 May 2008 02:53:01 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[VirtualBox]]></category>

		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/05/connect-to-virtualbox-guest-pcs-via-ssh-without-bridge-utils.html</guid>
		<description><![CDATA[I needed a virtual machine for debugging some Python memory leaking software without risking the health of my Ubuntu system. VirtualBox was my first choice because of its ease of install (just &#8220;apt-get install virtualbox&#8221;). Since I wanted to access the VM via ssh (instead of using the VirtualBox console) I found a bit annoying [...]]]></description>
			<content:encoded><![CDATA[<p>I needed a virtual machine for debugging some Python memory leaking software without risking the health of my Ubuntu system. VirtualBox was my first choice because of its ease of install (just &#8220;apt-get install virtualbox&#8221;). Since I wanted to access the VM via ssh (instead of using the VirtualBox console) I found a bit annoying not being able to access the guest PC from my host PC. This is because VirtualBox does user-level NATing for providing connectivity to the guest PC. Although you can change the default virtual networking method, and use bridging instead of NAT, that requires installing bridge-utils and <a href="https://help.ubuntu.com/community/VirtualBox">some networking configuration changes</a>). I wanted something simpler, which didn&#8217;t involve installing additional software or modifying my network settings. After all, that&#8217;s the reason why I installed VirtualBox in the first place: to leave my system untouched. So after peaking at the manual, I found VirtualBox supports port forwarding between the host and guest PCs.</p>
<p>You have to run the following commands with the guest PC turned off:</p>
<pre><code>
VBoxManage setextradata "Guest PC" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP
VBoxManage setextradata "Guest PC" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22
VBoxManage setextradata "Guest PC" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222
</code></pre>
<p>Where &#8220;Guest PC&#8221; is the virtual machine name, the same name you see in the machines list (in the VirtualBox main window). Those commands add a local forward from TCP port 2222 (on the host) to TCP port 22 on the guest.</p>
<p>So now you can access the guest PC via ssh by running &#8220;ssh localhost -p 2222&#8243;</p>
<p>If you want to make it even simpler you can provide a quick shortcut by adding these lines to your ~/.ssh/config:</p>
<pre><code>
Host guestpc
    Hostname localhost
    Port 2222
</code></pre>
<p>After that, you can connect by just typing &#8220;ssh guestpc&#8221;</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/285064859" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/05/connect-to-virtualbox-guest-pcs-via-ssh-without-bridge-utils.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Google launches Google App Engine</title>
		<link>http://vampiroz.org/2008/04/google-launches-google-app-engine.html</link>
		<comments>http://vampiroz.org/2008/04/google-launches-google-app-engine.html#comments</comments>
		<pubDate>Tue, 08 Apr 2008 13:59:02 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Google]]></category>

		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2008/04/google-launches-google-app-engine.html</guid>
		<description><![CDATA[Google has just launched AppEngine, a new hosting service with &#8220;all the Google infrastructure&#8221; available for you. For now, it only supports my favorite language, but they may add more languages in the future.
A couple of things that come to my mind now:

If you&#8217;re running a hosting company, you should re-consider your business, specially if [...]]]></description>
			<content:encoded><![CDATA[<p>Google has just launched <a href="http://google-code-updates.blogspot.com/2008/04/google-app-engine-at-campfire-one.html">AppEngine</a>, a new hosting service with &#8220;all the Google infrastructure&#8221; available for you. For now, it only supports my <a href="http://www.python.org">favorite language</a>, but they may add more languages in the future.</p>
<p>A couple of things that come to my mind now:</p>
<ul>
<li>If you&#8217;re running a hosting company, you should re-consider your business, specially if it&#8217;s a python/django one</li>
<li>This is a huge booster for Django and, at the same time, a big blow for Rails</li>
<li>Guido joining Google was a good idea</li>
</ul>
<p>Let&#8217;s see how it goes, but I foresee a promising future for this one.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/266372942" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2008/04/google-launches-google-app-engine.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Mounting FreeBSD UFS2 partitions on Linux</title>
		<link>http://vampiroz.org/2007/12/mounting-freebsd-ufs2-partitions-on-linux.html</link>
		<comments>http://vampiroz.org/2007/12/mounting-freebsd-ufs2-partitions-on-linux.html#comments</comments>
		<pubDate>Sun, 30 Dec 2007 21:42:24 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[English]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[FreeBSD]]></category>

		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2007/12/mounting-freebsd-ufs2-partitions-on-linux.html</guid>
		<description><![CDATA[It took me some time to find out how to do this, so I&#8217;ll post it here hoping that someone will find it useful.
First of all, &#8220;fidsk -l&#8221; won&#8217;t show all your FreeBSD disklabels, you&#8217;ll have to do &#8220;cat /proc/partitions&#8221; to find the partition you wan&#8217;t to mount. If the Kernel has support for disklabels [...]]]></description>
			<content:encoded><![CDATA[<p>It took me some time to find out how to do this, so I&#8217;ll post it here hoping that someone will find it useful.</p>
<p>First of all, &#8220;fidsk -l&#8221; won&#8217;t show all your FreeBSD disklabels, you&#8217;ll have to do &#8220;cat /proc/partitions&#8221; to find the partition you wan&#8217;t to mount. If the Kernel has support for disklabels (it comes by default on modern Kernels) you will see all your BSD disklabels.</p>
<p>Example:</p>
<pre><code>
# cat /proc/partitions
major minor  #blocks  name

   8     0  195360984 sda
   8     1     104391 sda1
   8     2    1044225 sda2
   8     3  194209785 sda3
   8    16   78184008 sdb
   8    17   78180291 sdb1
   8    32  117220824 sdc
   8    33  117218241 sdc1
   8    37    1048576 sdc5
   8    38    2097152 sdc6
   8    39    3145728 sdc7
   8    40    1048576 sdc8
   8    41  109878209 sdc9
</code></pre>
<p>Suppose I want to mount /dev/sdc9 (it was /usr in my old FreeBSD) on /mnt. This is the command to do it:</p>
<pre><code>
mount -r -t ufs -o ufstype=ufs2 /dev/sdc9 /mnt
</code></pre>
<p>Support for UFS2 is read-only.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/208642126" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2007/12/mounting-freebsd-ufs2-partitions-on-linux.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Managing your configuration files using Subversion</title>
		<link>http://vampiroz.org/2007/12/managing-your-configuration-files-using-subversion.html</link>
		<comments>http://vampiroz.org/2007/12/managing-your-configuration-files-using-subversion.html#comments</comments>
		<pubDate>Sat, 22 Dec 2007 06:12:04 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[English]]></category>

		<category><![CDATA[Subversion]]></category>

		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2007/12/managing-your-configuration-files-using-subversion.html</guid>
		<description><![CDATA[
When you have accounts in dozens and dozens of servers, it could be hard to replicate and keep track of all your configuration files (aka. rc files). To be honest, that&#8217;s the reason why I never used rc files in the past, and always tried to stick with the default behavior of programs. But, for [...]]]></description>
			<content:encoded><![CDATA[<p><img width="250" height="34" style="margin: 7pt; padding: 0pt; float: right" alt="Subversion logo" src="http://vampiroz.org/wp-content/subversion.png" /></p>
<p>When you have accounts in dozens and dozens of servers, it could be hard to replicate and keep track of all your configuration files (aka. rc files). To be honest, that&#8217;s the reason why I never used rc files in the past, and always tried to stick with the default behavior of programs. But, for some time now, I&#8217;ve been using <a href="http://subversion.tigris.org/">Subversion</a> to keep and manage my <a href="https://svn.insophia.com/rcfiles/pablo">personal rc files</a> and it has proven extremely useful. If you don&#8217;t know Subversion I recommend you to read about it, even if you don&#8217;t plan to use it for development. It&#8217;s a great tool for keeping track of files, not necessarily source code. The <a href="http://svnbook.red-bean.com/">Subversion book</a> is the reference, but you can also find plenty of tutorials online.</p>
<p>So the idea is simple: just use Subversion (SVN) to keep track of your configuration files, like you would use it to keep track of source code.</p>
<p>To <b>create a repository</b> for your personal rc files you would do something like this:</p>
<pre><code>
cd ~
svn mkdir -m "adding pablo rcfiles" https://svn.insophia.com/rcfiles/pablo
svn co https://svn.insophia.com/rcfiles/pablo .
</code></pre>
<p>Then, when you want to <b>add some configuration files</b> to revision control you would do:</p>
<pre><code>
cd ~
svn add .vimrc
svn ci -m "added vimrc to rcfiles"
</code></pre>
<p>Finally, when you edit some configuration files you can commit in one server and then run &#8220;svn up&#8221; in the all rest to synchronize to the last version, so you only need to modify your configuration files once, which is great. Also, if by some reason you broke a configuration file you could always revert to any prior version of the file (SVN provides this functionality). So, this is useful even if you don&#8217;t have accounts in multiple servers.</p>
<p>We also use this approach at <a href="http://insophia.com">Insophia</a> to manage the configuration files of our servers, and it has proven equally useful.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/204466335" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2007/12/managing-your-configuration-files-using-subversion.html/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Transparent connection proxies through SSH</title>
		<link>http://vampiroz.org/2007/12/transparent-connection-proxies-through-ssh.html</link>
		<comments>http://vampiroz.org/2007/12/transparent-connection-proxies-through-ssh.html#comments</comments>
		<pubDate>Sat, 22 Dec 2007 05:22:37 +0000</pubDate>
		<dc:creator>Pablo Hoffman</dc:creator>
		
		<category><![CDATA[General]]></category>

		<category><![CDATA[Sysadmin]]></category>

		<category><![CDATA[English]]></category>

		<category><![CDATA[Linux]]></category>

		<category><![CDATA[Tech Tips]]></category>

		<guid isPermaLink="false">http://vampiroz.org/2007/12/transparent-connection-proxies-through-ssh.html</guid>
		<description><![CDATA[Have you ever ssh&#8217;ed into a remote server and wondered if you could run a program using the connection from that remote server in a transparent and easy way?
Well, you can and it&#8217;s quite simple. Here&#8217;s the recipe for Linux.
1. Install tsocks using your Linux distribution package manager (preferably) or compiling from source.
2. Add a [...]]]></description>
			<content:encoded><![CDATA[<p>Have you ever ssh&#8217;ed into a remote server and wondered if you could run a program using the connection from that remote server in a transparent and easy way?</p>
<p>Well, you can and it&#8217;s quite simple. Here&#8217;s the recipe for Linux.</p>
<p><b>1</b>. Install <a href="http://tsocks.sourceforge.net/">tsocks</a> using your Linux distribution package manager (preferably) or compiling from source.</p>
<p><b>2</b>. Add a file <code>~/.tsocksrc</code> with this content:</p>
<pre><code>
server = 127.0.0.1
server_type = 5
server_port = 9999
</code></pre>
<p><b>3</b>. add this to your environment variables: </p>
<p><code>TSOCKS_CONF_FILE=~/.tsocksrc</code></p>
<p><b>4</b>. ssh&#8217;d into the remote server by typing: </p>
<p><code>ssh -D 9999 user@server</code></p>
<p><b>5</b>. launch the application using tsocks. For example, if you want to run Firefox using the remote server connection, type:</p>
<p><code>tsocks firefox</code></p>
<p>There you go. The program will run using the connection from the remote server (where you have ssh&#8217;ed) in a complete transparent way, no matter which ports the program uses.  An alternative way is to run the programs with this environment variable set:  </p>
<p><code>LD_PRELOAD=/usr/lib/libtsocks.so</code></p>
<p>That would use the tsocks library always, even if you don&#8217;t run the program with tsocks.</p>
<p>If tsocks is not available you still can do this if the application can be configured to use a <a href="http://en.wikipedia.org/wiki/SOCKS">SOCKS5</a> server (localhost:9999 in this case). For example, in Firefox you would have to go to: Preferences - Advanced - Network - Connect - Settings, and enter SOCKS Host: localhost, Port: 9999.</p>
<img src="http://feeds.vampiroz.org/~r/vampiroz/~4/204447997" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://vampiroz.org/2007/12/transparent-connection-proxies-through-ssh.html/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
