<?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>alvarezp &#187; English</title>
	<atom:link href="http://blog.alvarezp.org/categorias/por-idioma/english/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.alvarezp.org</link>
	<description>cat &#62;&#62; /dev/blog</description>
	<lastBuildDate>Sun, 28 Feb 2010 08:16:50 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>felipec&#8217;s msn-pecan 0.1.0 released</title>
		<link>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/</link>
		<comments>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/#comments</comments>
		<pubDate>Sun, 28 Feb 2010 01:57:37 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Desarrollos]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Software libre]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=986</guid>
		<description><![CDATA[So that&#8217;s the news: msn-pecan 0.1.0 is released! And I&#8217;m glad.
To directly quote from Felipec&#8217;s post in his blog:

After a bit more than two years of development we are proud to announce the first stable release of msn-pecan. The project started as a “fork” of libpurple’s msn protocol (read below why it’s not really a [...]]]></description>
			<content:encoded><![CDATA[<p>So that&#8217;s the news: <a href="http://code.google.com/p/msn-pecan/">msn-pecan</a> 0.1.0 is released! And I&#8217;m glad.</p>
<p>To directly quote from Felipec&#8217;s <a href="http://felipec.wordpress.com/2010/02/27/msn-pecan-0-1-released-the-best-option-for-pidginlibpurple/">post</a> in his <a href="http://felipec.wordpress.com/">blog</a>:</p>
<blockquote><p>
After a bit more than two years of development we are proud to announce the first stable release of msn-pecan. The project started as a “fork” of libpurple’s msn protocol (read below why it’s not really a fork), but it has grown and soon will become a standalone library with support for Telepathy too.
</p></blockquote>
<p><span id="more-986"></span>Even though I have only 3 of the 1009 patches and although I don&#8217;t understand any of the code itself, I gotta admit I really feel like I&#8217;m part of the project.</p>
<p>7 years ago I started a project to write a text mode, ncurses-based MSN client for Linux. The project is still registered on Sourceforge as <a href="http://msnclient.sourceforge.net/">msnclient</a>. It was my first attempt at writing <a href="http://en.wikipedia.org/wiki/Free_software">free software</a>. However, the challenge was too much for me and the project quickly died. I never got further than logging in and sending a single-worded message to another contact.</p>
<p>I eventually started to learn how to use Pidgin and got my self good hardware and my need of a personalized MSN client was no more. I still think, however, that msnclient is a good concept to try to bring to life. Maybe some day it will be an interface based on the msn-pecan functions.</p>
<p>That said, in mid 2009, when I started learning Git, felipec provided me a branch from his repository to test the direct connection feature (better known as &#8220;fast file transfers&#8221; or &#8220;p2p file transfers&#8221;). It didn&#8217;t work that time.</p>
<p>6 months went by and lot of commits over his master branch were too. 0.1.0-rc1 came out and directconn was still not working but the dc-test branch was relly old now. I had learned enough about Git and I though that I was better enough to try fixing the DC code. However I really knew nothing about the MSN functionality and I really didn&#8217;t understand the code. Well, at least I knew what the first step was: I had to rebase it anyway. So I tried to bring that old branch to the new code base so it could be (at least) useful to the developers. So war was lost for me, but perhaps felipec would get encouraged enough to restart working over this part of msn-pecan (but you&#8217;re not supposed to say that, right?). That&#8217;s how I saw it and how I got my motivation to do it; also, I would be my first actual real-world git rebase.</p>
<p>The main problem was that felipec had done a lot of relevant code reorganization, renaming and splitting in July (some done good, some done badly). Using some C experience I managed to rebase it and sent it in as a couple of patches.</p>
<p>Suddenly, felipec continued work on directconn. I don&#8217;t know if it was because of the patches or not; that doesn&#8217;t matter. The important thing is that in msn-pecan 0.1.0, direct connections now work and are stable. Even if not in all cases, it is a great step.</p>
<p>Now I think it went beyond learning how to rebase: I actually learned how to <em>contribute</em> using Git, just like the big boys do in the <a href="http://www.kernel.org/">Linux Kernel</a> project. I still don&#8217;t understand the code and the inner workings of the project but those two patches allowed me to learn a lot about software collaboration and review. This was particularly helpful for <a href="http://sourceforge.net/apps/mediawiki/superkb/">Superkb</a> which is also written in <a href="http://en.wikipedia.org/wiki/C_(programming_language)">C</a> and its source code managed in <a href="http://git-scm.com/">Git</a>.</p>
<p>So, thanks again felipec, congratulations and we all should have a drink for the project, even if on different parts of the world! Let&#8217;s party and spread the word.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/02/27/felipecs-msn-pecan-0-1-0-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Video favorito: Saturday Morning Science</title>
		<link>http://blog.alvarezp.org/2010/01/30/video-favorito-saturday-morning-science/</link>
		<comments>http://blog.alvarezp.org/2010/01/30/video-favorito-saturday-morning-science/#comments</comments>
		<pubDate>Sun, 31 Jan 2010 05:37:51 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Videos]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=970</guid>
		<description><![CDATA[Justo cuando creí haberlo visto todo encuentro este video titulado Saturday Morning Science.
Es un video con los experimentos realizados por el Dr. Donald Pettit, astronauta, Ingeniero de Vuelo y Oficial de Ciencias de la expedición 6 a bordo de la Estación Espacial Internacional.
Según la página de Saturday Morning Science, &#8220;hasta en su tiempo libre, los [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.youtube.com/watch?v=jXYlrw2JQwo"><img src="http://blog.alvarezp.org/imagenes/saturday-morning-science/saturday-morning-science.png" alt="Cristales crecidos en agua" class="float_left" /></a>Justo cuando creí haberlo visto todo encuentro este video titulado <a href="http://www.youtube.com/watch?v=jXYlrw2JQwo">Saturday Morning Science</a>.</p>
<p>Es un video con los experimentos realizados por el <a href="http://en.wikipedia.org/wiki/Donald_Pettit">Dr. Donald Pettit</a>, astronauta, Ingeniero de Vuelo y Oficial de Ciencias de la <a href="http://spaceflight.nasa.gov/station/crew/exp6/">expedición 6</a> a bordo de la <a href="http://es.wikipedia.org/wiki/Estación_Espacial_Internacional">Estación Espacial Internacional</a>.</p>
<p>Según la página de <a href="http://science.nasa.gov/headlines/y2003/25feb_nosoap.htm">Saturday Morning Science</a>, &#8220;hasta en su tiempo libre, los astronautas a bordo de la ISS están descubriendo cosas nuevas y sorprendentes sobre la naturaleza&#8221;. Según Don Pettit, estos experimentos no se tenían programados como parte de la misión; no eran ciencia &#8220;programada&#8221; sino ciencia &#8220;de oportunidad&#8221;.</p>
<p>Este video es un video crudo y directo al grano; tal vez sea una versión compilada; pero hay otras versiones en YouTube y la <a href="http://spaceflight.nasa.gov/gallery/video/station/expedition6/ndxpage1.html">galería de videos de la expedición</a> donde están editadas a modo de entrevista con un poco más de explicación.</p>
<p>Espero que los disfruten tanto como yo y se sorprendan tanto como los astronautas.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/01/30/video-favorito-saturday-morning-science/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Superkb brand new Wiki</title>
		<link>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/</link>
		<comments>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 09:38:43 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Software libre]]></category>
		<category><![CDATA[Superkb]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=965</guid>
		<description><![CDATA[Thanks to SourceForge and its MediaWiki implementation, the Superkb project now has its own Wiki.
For now, it is only in English. I&#8217;m really looking forward to adding a full Spanish equivalent.
I think this will make it a lot easier to keep the documentation up to date.
The SourceForge Wiki doesn&#8217;t allow anonymous contributions, so an SF [...]]]></description>
			<content:encoded><![CDATA[<p>Thanks to <a href="http://www.sourceforge.net/">SourceForge</a> and its <a href="http://www.mediawiki.org/">MediaWiki</a> implementation, the <a href="http://superkb.sourceforge.net/">Superkb</a> project now has its own <a href="https://sourceforge.net/apps/mediawiki/superkb/">Wiki</a>.</p>
<p>For now, it is only in English. I&#8217;m really looking forward to adding a full Spanish equivalent.</p>
<p>I think this will make it a lot easier to keep the documentation up to date.</p>
<p>The SourceForge Wiki doesn&#8217;t allow anonymous contributions, so an SF account is needed to include the people in the editors group.</p>
<p>Suggestions and contributions are welcome.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/01/26/superkb-brand-new-wiki/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian Bridge</title>
		<link>http://blog.alvarezp.org/2010/01/18/debian-bridge/</link>
		<comments>http://blog.alvarezp.org/2010/01/18/debian-bridge/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 23:55:05 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Español]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=958</guid>
		<description><![CDATA[/etc/network/interfaces:
auto br0
iface br0 net dhcp
   bridge_ports eth0 eth1
   bridge_stp off
   bridge_fd 3

]]></description>
			<content:encoded><![CDATA[<p>/etc/network/interfaces:</p>
<pre class="code"><code>auto br0
iface br0 net dhcp
   bridge_ports eth0 eth1
   bridge_stp off
   bridge_fd 3
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2010/01/18/debian-bridge/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meaning of the default EIGRP metric</title>
		<link>http://blog.alvarezp.org/2009/12/26/meaning-of-the-default-eigrp-metric/</link>
		<comments>http://blog.alvarezp.org/2009/12/26/meaning-of-the-default-eigrp-metric/#comments</comments>
		<pubDate>Sat, 26 Dec 2009 23:46:59 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Ensayos]]></category>
		<category><![CDATA[Net-admin]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=892</guid>
		<description><![CDATA[Introduction and motivation
I have always felt the EIGRP metric as being really overwhelming. I see values like &#8220;2820096&#8243; and instead of understanding it, I always end up asking what the hell does that number mean.
For example, in RIP:
R    192.168.0.0/24 [120/3] via 172.16.1.1, 00:00:15, FastEthernet0/0
Just by looking at the metric of &#8220;3&#8243; I [...]]]></description>
			<content:encoded><![CDATA[<h3>Introduction and motivation</h3>
<p>I have always felt the EIGRP metric as being really overwhelming. I see values like &#8220;2820096&#8243; and instead of understanding it, I always end up asking what the hell does that number mean.</p>
<p>For example, in RIP:</p>
<pre class="code">R    192.168.0.0/24 [120/3] via 172.16.1.1, 00:00:15, FastEthernet0/0</pre>
<p>Just by looking at the metric of &#8220;3&#8243; I immediately know what is means: there are three steps between the announced network and the router receiving the advertisement. Easy, right? &#8220;Understanding the number&#8221; makes it easy for me to manage and diagnose it.</p>
<p>In OSPF, the metric (cost) is still not as cumbersome as EIGRP&#8217;s. However, in the following example, can you identify what does &#8220;66&#8243; mean? For you, is it &#8220;just a number&#8221; that won over another because of its numerical value being lower? How do you know if the number is right or not?</p>
<pre class="code">O   192.168.0.0/24 [110/66] via 172.16.1.1, 00:00:82, FastEthernet0/0</pre>
<p><span id="more-892"></span>The EIGRP metric formula is better, functionally speaking. It is calculated from various components. As a result, it is more complex. Furthermore, the resulting value is bigger. When you try to read the number in the route table, it is no longer obvious.</p>
<pre class="code">D   192.168.0.0/24 [90/2820096] via 172.16.1.1, 00:00:12, FastEthernet0/0</pre>
<p>So, what does &#8220;2820096&#8243; mean? Well, it&#8217;s pretty simple. Take 2820096 and divide it by / 25600 and you get the estimated travel time in milliseconds: <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_fe151cd7ae1c16721ee58e661b8e7039.png" style="vertical-align:-16px; display: inline-block ;" alt="2820096 / 25600 = 110.16 ms" title="2820096 / 25600 = 110.16 ms"/>.</p>
<p>The EIGRP metric is an approach to calculating the total travel time. By default, EIGRP calculates the packet travel time like is: take the transmission delay in all hops in the path (the famous &#8220;delay&#8221; part) and &mdash;instead of adding all of the serialization delays&mdash; add only that of the bottleneck bandwidth for a 100 Kilobit sample.</p>
<p>The goal of this article is to show you how to mathematically get to that conclusion in the particular case of the default K values. This will allow the article to be much shorter and understandable, because the rest of the terms that compose the complete EIGRP metric are more complex and there is less on-line documentation reference for those. Also, Cisco doesn&#8217;t recommend changing the K values by default unless you REALLY know what you are doing. </p>
<p>Besides, we can get our engines started and warmed up for a later article with an analysis for the whole formula, don&#8217;t we?</p>
<h3>Step 0: Starting to think</h3>
<p>To put a &#8220;meaning&#8221; to this number, I will first ask you: if you designed your own &#8220;perfect&#8221; routing protocol, what would you use as a metric? What formula do you think would provide the routers with the best and closest to reality information in order to always take the most optimal routing decisions, at all times, and whatever the network circumstance is? It is not an easy question, though it is one that any protocol designer will never be able to escape. Think about this for a moment.</p>
<p>When I asked myself this question, my answer was: I think everybody wants the packets to get to its destination (unmodified, of course) as quickly as possible. I would like all participating routers to know the exact time it will take a packet to get to router B. Travel time should be used as *the* metric. In my &#8220;perfect&#8221; routing protocol, the metric would be measured in some submultiple of seconds. Even the Internet would be better if this were true, except that it&#8217;s way too expensive, complex, and difficult to manually control if done this way (that&#8217;s were BGP jumps in).</p>
<p>The EIGRP protocol gives it a shot at this approach.</p>
<h3>Quoting complete the EIGRP metric formula, by Cisco</h3>
<p>To analyze the default metric behavior I will start by quoting the complete EIGRP metric formula specified by Cisco<sup><a href="#reference-eigrp">1</a></sup>:</p>
<blockquote><p>
<img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_376332fb80739bec2be9c41ad7b2067c.png" style="vertical-align:-24px; display: inline-block ;" alt="metric = [K_1 * bandwidth + {K_2 * bandwidth} / {256 - load} + K_3 * delay] * [K_5 / {reliability + K_4}]" title="metric = [K_1 * bandwidth + {K_2 * bandwidth} / {256 - load} + K_3 * delay] * [K_5 / {reliability + K_4}]"/></p>
<p>where:</p>
<ul>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_975.5_9bcc4e08bbf462b3f4b8f108149384c3.png" style="vertical-align:-24.5px; display: inline-block ;" alt="bandwidth = (10000000/{bandwidth(i)}) * 256" title="bandwidth = (10000000/{bandwidth(i)}) * 256"/>
<ul>
<li>where <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_991.5_1b4e0643e2b5d0b450ed9295a7d72b7b.png" style="vertical-align:-8.5px; display: inline-block ;" alt="bandwidth(i)" title="bandwidth(i)"/> is the least bandwidth of all outgoing interfaces on the route to the destination network represented in kilobits.</li>
</ul>
</li>
<li> <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_991.5_d01af6959c23697d28dbd916d7fc0dd5.png" style="vertical-align:-8.5px; display: inline-block ;" alt="delay = delay(i) * 256" title="delay = delay(i) * 256"/>
<ul>
<li>where <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_991.5_52d54ae10289acdb87fdd551dcfcc9b4.png" style="vertical-align:-8.5px; display: inline-block ;" alt="delay(i)" title="delay(i)"/> is the sum of the delays configured on the interfaces, on the route to the destination network, in tens of microseconds. The delay as shown in the <strong>show ip eigrp topology</strong> or <strong>show interface commands</strong> is in microseconds, so you must divide by 10 before you use it in this formula. Throughout this paper, we use delay as it is configured and shown on the interface.</li>
</ul>
</li>
<li>If <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_1819bec75cb2651a6339e253b6f64f4e.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_5 = 0" title="K_5 = 0"/>, the formula reduces to <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_4046116e4ccf2fb30ba06d9403deb05a.png" style="vertical-align:-16px; display: inline-block ;" alt="metric = K_1 * bandwidth + {K_2 * bandwidth}/{256 - load} + K_3 * delay" title="metric = K_1 * bandwidth + {K_2 * bandwidth}/{256 - load} + K_3 * delay"/>.</li>
<li>Cisco routers do not perform floating point math, so at each stage in the calculation, you need to round down to the nearest integer to properly calculate the metrics.</li>
<li>The default values for K are:
<ul>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_4b70092d664a9159afb8d9a7a4592275.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_1 = 1" title="K_1 = 1"/></li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_43f3b406b35471fa55e9028cd602e28f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_2 = 0" title="K_2 = 0"/></li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_cb547fa56be176041412dea775eb0925.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_3 = 1" title="K_3 = 1"/></li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_f11f9ce463756e243c5f9ae7152f9147.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_4 = 0" title="K_4 = 0"/></li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_1819bec75cb2651a6339e253b6f64f4e.png" style="vertical-align:-14.5px; display: inline-block ;" alt="K_5 = 0" title="K_5 = 0"/></li>
</ul>
</li>
</ul>
<p>For default behavior, you can simplify the formula as follows:<br />
<img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_f4cd09b3e2eb252e11af7e5821191e64.png" style="vertical-align:-6.5px; display: inline-block ;" alt="metric = bandwidth + delay" title="metric = bandwidth + delay"/>
</p></blockquote>
<p>I found out that sentence to be a source of confusion for myself. Even the simplified, default-behavior metric formula is expressed in a way that assumes we can add apples and oranges, though this is impossible. Cisco wants us to add &#8220;bandwidth&#8221; with &#8220;delay&#8221;. So, how do they actually do it? How much is &#8220;10 bps + 10 s&#8221;?</p>
<h3>Step 1: Arranging the mathematical expression in its default K values</h3>
<p>Let&#8217;s try to state the formula in its default behavior. I will use the following symbols:</p>
<ul>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_e9b2ff641da23037adec56684fb7552b.png" style="vertical-align:-6.5px; display: inline-block ;" alt="M" title="M"/>: metric.</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_8acfe827853aff5217d7ef210177df96.png" style="vertical-align:-6.5px; display: inline-block ;" alt="B" title="B"/>: resulting scaled bandwidth.[/pmath]</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_71a27f48cb3f8458093be05225f435cd.png" style="vertical-align:-14.5px; display: inline-block ;" alt="B_min" title="B_min"/>: bandwidth(i), the least bandwidth of all outgoing interfaces on the route to the destination network represented in kilobits.</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_75b573a2a80f7d1f54f711b89d1a80fa.png" style="vertical-align:-6.5px; display: inline-block ;" alt="D" title="D"/>: resulting scaled delay.[/pmath]</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_990.5_e05eb093ab6836b9b83181a25baf2d22.png" style="vertical-align:-9.5px; display: inline-block ;" alt="sum{}{}{d}" title="sum{}{}{d}"/>: delay(i), the sum of the delays configured on the interfaces, on the route to the destination network, in tens of microseconds.</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_211bca6f8a55723b6c5c2ce4a5b504a1.png" style="vertical-align:-6.5px; display: inline-block ;" alt="10 * 10^6" title="10 * 10^6"/>: 1000000 (as in 10 Mega-something).</li>
</ul>
<p>Let&#8217;s arrange the formula in a way it really looks like a mathematical equation:</p>
<blockquote><p>
<img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_18f2f570d13dc9223d4ab667a0aea29e.png" style="vertical-align:-6.5px; display: inline-block ;" alt="M = B + D" title="M = B + D"/></p>
<p>where:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_bd73bdd880261665cef62b6fa6ab5ece.png" style="vertical-align:-24px; display: inline-block ;" alt="B = 256 10 * 10^6 / {B_min}" title="B = 256 10 * 10^6 / {B_min}"/><br />
<img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_990.5_7bb547c14ef3d36efc09455c490fb9b2.png" style="vertical-align:-9.5px; display: inline-block ;" alt="D = 256 sum{}{}{d}" title="D = 256 sum{}{}{d}"/>
</p></blockquote>
<h3>Step 2: moving the &#8220;256&#8243; out of the way and getting to the original IGRP metric formula</h3>
<p>EIGRP metric is 256 times that of IGRP<sup><a href="#reference-256igrp">2</a></sup>. This is easily provable: as both, B and D are a multiple of 256, we can divide by it. The result is the exact original IGRP formula<a href="#reference-igrp">3</a>. (Though this is also true in the complete formula, please remember we are only working with the particular case of the default metric behavior.)</p>
<p>This means that the EIGRP metric will be always inflated and will be a multiple of 256.</p>
<p>Let&#8217;s do the procedure. First, lets get all into one big formula. Let&#8217;s replace B and D for their corresponding formulas:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_322fb3711d461985bdb0bf3dea6093cb.png" style="vertical-align:-24px; display: inline-block ;" alt="M = 256 10 * 10^6 / {B_min} + 256 sum{}{}{d}" title="M = 256 10 * 10^6 / {B_min} + 256 sum{}{}{d}"/></p>
<p>There we can see how the 256 factor is present in the two terms. We could factor it out but for convenience I will divide everything by 256.</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_02cbf59d8580cbeee82cddecb181dacb.png" style="vertical-align:-24px; display: inline-block ;" alt="M / 256 = 10 * 10^6 / {B_min} + sum{}{}{d}" title="M / 256 = 10 * 10^6 / {B_min} + sum{}{}{d}"/></p>
<p>The right side is the default metric for IGRP.</p>
<h3>Step 3: Unit analysis and T<sub>3</sub></h3>
<p>Or put another way: what is the resulting value measured in, is it Kilobits, seconds, hops, packets&#8230;?</p>
<p>The last formula from step 2 has the following form:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_96e184a0accbd2658cac3adb1b15a69b.png" style="vertical-align:-16px; display: inline-block ;" alt="{M / 256} = T_1 + T_3" title="{M / 256} = T_1 + T_3"/></p>
<p>where:</p>
<ul>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_e9b2ff641da23037adec56684fb7552b.png" style="vertical-align:-6.5px; display: inline-block ;" alt="M" title="M"/> (metric)</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_6d49a55de5600d1cb163574427c44646.png" style="vertical-align:-24px; display: inline-block ;" alt="T_1 = 10 * 10^6 / {B_min}" title="T_1 = 10 * 10^6 / {B_min}"/></li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_e9d964f9f2d7b111da97ee0432fd5c9c.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3 = sum{}{}{d}" title="T_3 = sum{}{}{d}"/></li>
</ul>
<p>The terms <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> and <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_da2d64dcacd2e1a44ec409563d302173.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3" title="T_3"/> must have the same units. Otherwise, addition couldn&#8217;t be possible.</p>
<p>The easiest term to analyze is <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_da2d64dcacd2e1a44ec409563d302173.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3" title="T_3"/>. According to Cisco <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_990.5_e05eb093ab6836b9b83181a25baf2d22.png" style="vertical-align:-9.5px; display: inline-block ;" alt="sum{}{}{d}" title="sum{}{}{d}"/> must be in tens of microsegundos. Therefore:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_c6c4fe34d5cdaed3d40c7640e324cc3e.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3: 10 {mu}s" title="T_3: 10 {mu}s"/></p>
<p>And thus, <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> units (and therefore the whole M units) must be tens of microseconds, also.</p>
<p>So:</p>
<ul>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_1a813378d8f0b19ef674b959cf055ddb.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1: 10 {mu}s" title="T_1: 10 {mu}s"/> (time)</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_c6c4fe34d5cdaed3d40c7640e324cc3e.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3: 10 {mu}s" title="T_3: 10 {mu}s"/> (time)</li>
<li><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_917e81831d91cdb10364f4760cae4f18.png" style="vertical-align:-6.5px; display: inline-block ;" alt="M: 10 {mu}s" title="M: 10 {mu}s"/> (time)</li>
</ul>
<p>So, given <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_da2d64dcacd2e1a44ec409563d302173.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_3" title="T_3"/> is a delay, the other term and the total metric must be a delay too in the same scale. Remember what I said at the beginning about using travel time as my &#8220;perfect&#8221; metric for a routing protocol? EIGRP is actually giving it a shot.</p>
<h3>Step 4: Analyzing T<sub>1</sub></h3>
<p>In step 3 we let <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> be defined as:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_6d49a55de5600d1cb163574427c44646.png" style="vertical-align:-24px; display: inline-block ;" alt="T_1 = 10 * 10^6 / {B_min}" title="T_1 = 10 * 10^6 / {B_min}"/></p>
<p>And also that <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> must be in tens of microseconds.</p>
<p>We know the units for <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> and <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_71a27f48cb3f8458093be05225f435cd.png" style="vertical-align:-14.5px; display: inline-block ;" alt="B_min" title="B_min"/>, but what are the units for <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_211bca6f8a55723b6c5c2ce4a5b504a1.png" style="vertical-align:-6.5px; display: inline-block ;" alt="10 * 10^6" title="10 * 10^6"/>?</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_965_c1ca2595f9564fb1856c5a61548d18d1.png" style="vertical-align:-35px; display: inline-block ;" alt="10 {mu}s = x / {kilobit/s} doubleleftright x = {10 {mu}s} {k bit/s} = {10 * 10^{-6} * 10^3 bit s}/s = 10 * 10^{-3} bit" title="10 {mu}s = x / {kilobit/s} doubleleftright x = {10 {mu}s} {k bit/s} = {10 * 10^{-6} * 10^3 bit s}/s = 10 * 10^{-3} bit"/>: tens of millibit</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_965_732c952d2ceb11ad919f69df31f9eee9.png" style="vertical-align:-35px; display: inline-block ;" alt="{10 milibit} / {k bit/s} = {10 * 10^{-3} bit} / {10^3 bit/s} = 10 / { 10^{-6} } s = 10 {mu}s" title="{10 milibit} / {k bit/s} = {10 * 10^{-3} bit} / {10^3 bit/s} = 10 / { 10^{-6} } s = 10 {mu}s"/></p>
<p>How many bits are <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_75c792bd251a7e3fc65f431249678344.png" style="vertical-align:-17px; display: inline-block ;" alt="(10 * 10^6) (10 milibit)" title="(10 * 10^6) (10 milibit)"/>?</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_983_2deed1e1f19940f9635e74e9bd26328b.png" style="vertical-align:-17px; display: inline-block ;" alt="(10 * 10^6) (10 milibit) = (10 * 10 * 10^6 * 10^-3 * bit) = 100 * 10^3 * bit = 100 Kilobit" title="(10 * 10^6) (10 milibit) = (10 * 10 * 10^6 * 10^-3 * bit) = 100 * 10^3 * bit = 100 Kilobit"/></p>
<p>So finally, <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_985.5_de8060c956be7be96980a5c3f6dec32f.png" style="vertical-align:-14.5px; display: inline-block ;" alt="T_1" title="T_1"/> is like this:</p>
<p><img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_af968d550ce51f252136ad603b26f6b3.png" style="vertical-align:-24px; display: inline-block ;" alt="T_1 = {100 Kbits} / B_min" title="T_1 = {100 Kbits} / B_min"/></p>
<p>Just like <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_af937e5c92408ab4d1624ac8667e1edc.png" style="vertical-align:-16px; display: inline-block ;" alt="time = distance / speed" title="time = distance / speed"/>, also <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_b63eb32e63a20751f9722ee340b0b408.png" style="vertical-align:-16px; display: inline-block ;" alt="serialization delay = bits / bandwidth" title="serialization delay = bits / bandwidth"/>, so <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_976_93c9ec332e889620893530bcd1014bc6.png" style="vertical-align:-24px; display: inline-block ;" alt="{100 Kbits} / {B_min}" title="{100 Kbits} / {B_min}"/> means &#8220;serialization delay for 100 Kbits under that bandwidth B<sub>min</sub>&#8220;.</p>
<h3>Conclusion and interpretation</h3>
<pre class="code">D   192.168.0.0/24 [90/2820096] via 172.16.1.1, 00:00:12, FastEthernet1/1</pre>
<p>We know that 2820096 is given in <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_2f6e8751c1a6a0c20a78e9dfdafaa287.png" style="vertical-align:-6.5px; display: inline-block ;" alt="10 {mu}s" title="10 {mu}s"/> and multiplied by 256.</p>
<p>So we take 2820096 / 256 = 11016.</p>
<p>To convert it to <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_993.5_01127c284b667954cef2c9101fd8cb84.png" style="vertical-align:-6.5px; display: inline-block ;" alt="{mu}s" title="{mu}s"/> instead, divide the metric / 25.6: <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_ac1b6e974c7fefe2802e00ec168398fc.png" style="vertical-align:-16px; display: inline-block ;" alt="2820096 / 25.6 = 110160 {mu}s" title="2820096 / 25.6 = 110160 {mu}s"/></p>
<p>Or to milliseconds, divide it by / 25600: <img src="http://blog.alvarezp.org/wp-content/plugins/wpmathpub/phpmathpublisher/img/math_984_fe151cd7ae1c16721ee58e661b8e7039.png" style="vertical-align:-16px; display: inline-block ;" alt="2820096 / 25600 = 110.16 ms" title="2820096 / 25600 = 110.16 ms"/></p>
<p>As I said, the EIGRP default metric is an approach to calculating the total travel time. By default, EIGRP calculates the packet travel time like is: take the transmission delay in all hops in the path (the famous &#8220;delay&#8221; part) and &mdash;instead of adding all of the serialization delays&mdash; add only that of the bottleneck bandwidth for a 100 Kilobit sample.</p>
<h3>References</h3>
<p id="reference-eigrp"><sup>1</sup> Cisco Document ID 16406, actualizado: Sep 09, 2005. Enhanced Interior Gateway Routing Protocol: http://www.cisco.com/en/US/tech/tk365/technologies_white_paper09186a0080094cb7.shtml</p>
<p id="reference-256igrp"><sup>2</sup> IP Routing, by Ravi Malhotra, January 2002. Chapter 4: Enhanced Interior Gateway Routing Protocol (EIGRP) http://oreilly.com/catalog/iprouting/chapter/ch04.html#45434</p>
<p id="reference-eigrp"><sup>3</sup> Cisco Document ID 13678, actualizado: Aug 10, 2005. IGRP Metric [IP Routing], http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a008009405c.shtml</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/12/26/meaning-of-the-default-eigrp-metric/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Etiquette in e-mail message quoting</title>
		<link>http://blog.alvarezp.org/2009/12/24/etiquette-in-e-mail-message-quoting/</link>
		<comments>http://blog.alvarezp.org/2009/12/24/etiquette-in-e-mail-message-quoting/#comments</comments>
		<pubDate>Thu, 24 Dec 2009 20:55:59 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=888</guid>
		<description><![CDATA[This is a translation of my previous post Etiqueta en el citado de mensajes de e-mail.
Introduction
The most ignored Internet Etiquette rule is that of the posting style when replying to an e-mail message.
By &#8220;quoting&#8221; I mean the inclusion of a previous message in a new one (for example, a reply) with the intent of stating [...]]]></description>
			<content:encoded><![CDATA[<p>This is a translation of my previous post <a href="http://blog.alvarezp.org/2009/12/15/etiqueta-en-el-citado-de-mensajes-de-e-mail/">Etiqueta en el citado de mensajes de e-mail</a>.</p>
<h3>Introduction</h3>
<p>The most ignored <a href="http://en.wikipedia.org/wiki/Netiquette">Internet Etiquette</a> rule is that of the <a href="http://en.wikipedia.org/wiki/Posting_style">posting style</a> when replying to an e-mail message.</p>
<p>By &#8220;quoting&#8221; I mean the inclusion of a previous message in a new one (for example, a reply) with the intent of stating the relevance of the answer itself in the original context. I would say &#8220;Dan, I don&#8217;t know what are you talking about. Please quote the original e-mail in your reply next time in order to know what were you replying to.&#8221;</p>
<p>Almost every <a href="http://en.wikipedia.org/wiki/Email_client">e-mail client</a> do quote the original message in the reply, at least by default. That is good, and it contributes to the &#8220;netiquette&#8221;, but its abuse has made it completely useless.</p>
<p><span id="more-888"></span>By saying that the rule is &#8220;ignored&#8221;, I mean that the common user doesn&#8217;t edit the text put by the e-mail client as the quote. It leaves the quoted message as is, simply ignoring the resulting text. After three iterations of the answer, the &#8220;original message&#8221; carries more garbage than relevant content.</p>
<p>Common e-mail clients &mdash;like Outlook y Thunderbird&mdash; don&#8217;t help either; those are pretty stupid. They quote whatever they find. Even when the original goal is to place the original message in the editor ready for its editing while replying, it is also true that signatures and those hideous legal disclaimers are stupidly included also.</p>
<p>Ok. Beyond the rant, the main purpose of this article is to show the current quoting and reply techniques, but more important, to yearn for a style / technique used more than 15 years ago, even before Internet started to be popular in the city where I live.</p>
<p>A correctly applied etiquette to an e-mail reply allows a well-organized message. This etiquette is mainly formed by two elements: (a) the correct placement of the answer in relation to the quoted message and (b) the correct editing of the quoted message.</p>
<h3>Reply text placement against the quoted text</h3>
<p>The best way to explain this is to mention the three different styles and the difference between them: top-posting, bottom-posting and interposting (or in-line posting). It refers to the placement of the answer before, after or inserted into the original text.</p>
<h5>Example A: top-posting</h5>
<blockquote><pre>
Yes, and I'm going to do it.

On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?
>
> Who's going to execute the changes?
>
> Regards.
>
> ---
> Hitsuo Tikashi.
> Infrastructure Services Manager.
> Integrated Systems, Inc.
> T. +1 (619) 555-1234
> E. hitsuo.tikashi@sistint.com.mx
</pre>
</blockquote>
<h5>Example B: bottom-posting</h5>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?
>
> Who's going to execute the changes?
>
> Regards.
>
> ---
> Hitsuo Tikashi.
> Infrastructure Services Manager.
> Integrated Systems, Inc.
> T. +1 (619) 555-1234
> E. hitsuo.tikashi@sistint.com.mx

Yes, and I'm going to do it.
</pre>
</blockquote>
<h5>Example C: interposting (or inline-posting)</h5>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?

Yes.

>
> Who's going to execute the changes?

I am.

> Regards.
>
> ---
> Hitsuo Tikashi.
> Infrastructure Services Manager.
> Integrated Systems, Inc.
> T. +1 (619) 555-1234
> E. hitsuo.tikashi@sistint.com.mx
</pre>
</blockquote>
<p>Which one do you think is the best? All of them has pros and cons, so the answer may be different in each environment. What do you think are the pros and cons of each?</p>
<p>For instance, In some mailing lists, top-posting is more than prohibited. Either you do bottom-posting or, better yet, interposting. This has been used since before the existence of e-mail as is known today.</p>
<p>However, in businesses and common use, the most popular style is top-posting, due to the easiness of just &#8220;writing and sending&#8221; without worrying for anything else; this has moved the MUAs (e-mail clients) to be configured for top-posting out of the box. This, in turn, makes it even more popular.</p>
<h3>Proper editing of the quoted text</h3>
<p>The last example of interposting made it easy to show how a great part of the reply text is just useless. It is considered that the quoted text is part of the reply, as it occupies disk space as part of the reply.</p>
<p>I&#8217;ll use that interposting example as the case to analyze, but the following applies to either of the three quoting styles.</p>
<p>From the word &#8220;regards&#8221; on, the text is irrelevant, and thus, useless. Maybe we could say that the line &#8220;Octavio:&#8221; is also irrelevant, but let us not be so picky at the moment. In numbers, 8 out of 21 lines (38%) are useless; so are 25 of the 59 words (42%); and so are 161 of the 373 characters (43%). We still have to take into account that mi reply signature is not there, so that will slightly lower those ratios.</p>
<h5>Example D: Proper quoting in top-posting</h5>
<blockquote><pre>
Yes, and I'm going to do it.

On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?
>
> Who's going to execute the changes?
>
</pre>
</blockquote>
<h5>Example E: Proper quoting in bottom-posting</h5>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?
>
> Who's going to execute the changes?
>

Yes, and I'm going to do it.
</pre>
</blockquote>
<h5>Example F: Proper quoting in interposting (or in-line posting)</h5>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> Octavio:
>
> Is the maintenance window on next Thursday?

Yes.

> Who's going to execute the changes?

I am.
</pre>
</blockquote>
<p>The main argument for not editing the quoted text would be that it takes a long time to do it and it is done inefficiently. At home, this is called &#8220;lazyness&#8221;.</p>
<p>This will be the argument for those that don&#8217;t know the keyboard shortcuts for text editing, in particular the use of the Shift key as a non-written standard to select text. Using Shift and the arrow keys, followed by &#8220;Delete&#8221;, is extremely easy to select and erase useless text.</p>
<h3>Yearning for Blue Wave and FidoNet</h3>
<p>Before going into user interfaces and mobile devices, I&#8217;d like to take a momento to show my yearning feeling for the times where I wrote in <a href="http://en.wikipedia.org/wiki/FidoNet">FidoNet</a>, even before the Internet started to be popular in Tijuana (1994 to 1996).</p>
<p>In FidoNet, it was common to do this a little different. I used a popular shareware named <a href="http://en.wikipedia.org/wiki/Blue_Wave">Blue Wave Offline Reader</a>. Many of us used Blue Wave, which had a particular way of preparing the quoted text before putting it into the editor:</p>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi said:
 HT> Octavio:
 HT>
 HT> Is the maintenance window on next Thursday?
 HT>
 HT> Who's going to execute the changes?
 HT>
 HT> Regards.
 HT>
 HT> ---
 HT> Hitsuo Tikashi.
 HT> Infrastructure Services Manager.
 HT> Integrated Systems, Inc.
 HT> T. +1 (619) 555-1234
 HT> E. hitsuo.tikashi@sistint.com.mx
</pre>
</blockquote>
<p>The interesting thing is not in the inline replying. Same as today, a couple of Enters in the right place allowed me to reply in-line.</p>
<p>To erase from &#8220;Regards&#8221; on, still same as today: I place the cursor in the &#8220;R&#8221; from &#8220;Regards&#8221; and Shift+Ctrl+End, Delete and voilà: message is clean.</p>
<p>And so was my answer:</p>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi said:
 HT> Octavio:
 HT>
 HT> Is the maintenance window on next Thursday?

 Yes. Even thought the changes are not considered to be critical, in case
 of a possible failure we will affect our service level agreements,
 because less than 30 days ago our carriers suffered an outage.

 HT> Who's going to execute the changes?

 I am.
</pre>
</blockquote>
<p>What is really interesting is that when the original sender tried to reply me back, the text would be automatically adjusted to the line length (properly word wrapped) and quoted in the following way:</p>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Octavio Alvarez said:
 HT> Octavio:
 HT>
 HT> Is the maintenance window on next Thursday?
 OA>
 OA> Yes. Even thought the changes are not considered to be critial, in
 OA> case of a possible failure we will affect our service level
 OA> agreements, because less than 30 days ago our carriers suffered an
 OA> outage.

 Acknowledged. I leave it in your hands and keep me informed.

 HT> Who's going to execute the changes?
 OA>
 OA> I am.

 BTW, who will monitor and operate the services the next day?
</pre>
</blockquote>
<p>In the example, the user interleaved its answers to me.</p>
<p>Notice how the quoted lines don&#8217;t exactly match the original lines. those were modified intelligently, being considered as a paragraph and adjusted to keep a solid and consistent text block.</p>
<p>Also, notice how the text is clear enough and easy to follow; even more if the reader and editor software puts the different authors in different colors.</p>
<p>This style, beyond organized is scalable. After multiple iterations, the format and the text are kept organized.</p>
<blockquote><pre>
On Fri, Jun 26 2009 17:42:34 -0700, Octavio Alvarez said:
 HT> Octavio:
 HT>
 HT> Is the maintenance window on next Thursday?
 OA>
 OA> Yes. Even thought the changes are not considered to be critial, in
 OA> case of a possible failure we will affect our service level
 OA> agreements, because less than 30 days ago our carriers suffered an
 OA> outage.
 HT>
 HT> Acknowledged. I leave it in your hands and keep me informed.
 OA>
 OA> Ok, I'll send you an SMS, according to the procedure.

 And please send it to me via e-mail, also.

 HT> Who's going to execute the changes?
 OA>
 OA> I am.
 HT>
 HT> BTW, who will monitor and operate the services the next day?
 OA>
 OA> It would be the new team member, but we have already asked everyone
 OA> else to be alert and ready in case of any eventuality.

 Have you exchanged phone numbers yet?
</pre>
</blockquote>
<p>From my point of view, this is much more intelligent than its popular counterpart:</p>
<blockquote><pre>
On Mon, Jun 29 2009 17:42:34 -0700, Octavio Alvarez &lt;alvarezp@alvarezp.ods.org> said:
> On Sun, Jun 28 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> > On Sat, Jun 27 2009 17:42:34 -0700, Octavio Alvarez &lt;alvarezp@alvarezp.ods.org> said:
> > > On Fri, Jun 26 2009 17:42:34 -0700, Hitsuo Tikashi &lt;hitsuo.tikashi@sistint.com.mx> said:
> > > > Octavio:
> > > >
> > > > Is the maintenance window on next Thursday?
> > >
> > > Yes. Even thought the changes are not considered to be critial, in
> > > case of a possible failure we will affect our service level
> > > agreements, because less than 30 days ago our carriers suffered an
> > > outage.
> >
> > Acknowledged. I leave it in your hands and keep me informed.
>
> Ok, I'll send you an SMS, according to the procedure.

And please send it to me via e-mail, also.

> > > > Who's going to execute the changes?
> > >
> > > I am.
> >
> > BTW, who will monitor and operate the services the next day?
>
> It would be the new team member, but we have already asked everyone else
> to be alert and ready in case of any eventuality.

Have you exchanged phone numbers yet?
</pre>
</blockquote>
<p>This is the best the current e-mail practices can get us. It is not bad, but only if the authors and client software follow the etiquette.</p>
<p>If not, we get:</p>
<ul>
<li>Badly nested quoting prefixes like: > >> > >>> ></li>
<li>Badly split lines for exceeding a line length.</li>
<li>Fully quoted messages, including irrelevant paragraphs.</li>
<li>HTML garbage from improper tag handling.</li>
<li>Messages full of signatures and legal texts (sometimes in more than one language per message).</li>
</ul>
<p>Even though a message from an author that followed the etiquette is a lot better than what we see in a day-to-day basis, i feel it far from the comfort of working in the Blue Wave / FidoNet style.</p>
<h3>About user interfaces</h3>
<p>E-mail clients fail in promoting the etiquette culture in e-mail messaging.</p>
<p>I think there could be a signature detection mechanism and automatically exclude it from the quoted text. This would save us from getting three copies of the same bulk after three replies:</p>
<blockquote><pre>
> ---
> Hitsuo Tikashi.
> Infrastructure Services Manager.
> Integrated Systems, Inc.
> T. +1 (619) 555-1234
> E. hitsuo.tikashi@sistint.com.mx
>
> The content of this e-mail message and its attachments is confidential
> and may be protected by Copyright law. It is intended exclusively to the
> addressees and them only. If you have received it by mistake, you must
> eliminate it from your system. In this case you are not allowed to copy,
> print or distribute this e-mail or its attachments nor use them for any
> purpose of allowing its contents to be known by any person. The here
> included information is not necesarily backed up by [CORPORATION NAME]
> or any of its subsidiaries or strategic alliances.
>
> Please consider the environment before printing this message.
</pre>
</blockquote>
<p>Note: I&#8217;ve seen that last line in some messages. I included it because I just couldn&#8217;t help myself from using my poor sarcasm after seeing that call for the ecology right after that waste of electricity and disk space (that is usually in HTML format).</p>
<h3>Mobile devices</h3>
<p>In a 160&#215;320 screen and an itsy bitsy teenie weenie keyboard one could argue that is difficult to do all of this editing in a practical way. However, in the same way new mobile devices present the user an appropriate interface to do other common tasks in a different way, it is the UI that holds how easy or impossible the editing would be.</p>
<p>If in-line posting were popular, a mobile device would have a function or command to &#8220;answer below this paragraph&#8221; or &#8220;navigate by paragraph&#8221; and choose &#8220;reply, leave or snip&#8221; each of them and maybe even an option to &#8220;erase the rest of the text&#8221;.</p>
<p>If the UI doesn&#8217;t have it, it is because in-line posting has not been that popular and not requested enough. It is still a deficiency, though.</p>
<h3>Conclusions</h3>
<p>I&#8217;ve tried to show show the style in example F is the most organized and scalable among all possible, based on previous experience from Blue Wave and FidoNet.</p>
<p>Personally, I try to go with the same style that most of the people use in the same context. It&#8217;s the best. A people replying with interposting in a mailing list where everybody top-post (for example, at work) will only confuse for everybody.</p>
<p>I have nothing else to say than to throw a call to those that participate in discussion groups, mailing lists (and, in particular those in technical areas) that at least we observe this etiquette guides among ourselves:</p>
<ul>
<li>Reply in line to the topics in the original answer.</li>
<li>Eliminate irrelevant parts of the quoted message. Signatures and legal texts in particular.</li>
<li>Rearrange illegible paragraphs (word wrapping, for example).</li>
<li>Use correct spelling and grammar.</li>
<li>Back our text up with emoticons if confusion might arise.</li>
</ul>
<p>Thank for the patience to read all the way to here.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/12/24/etiquette-in-e-mail-message-quoting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Bell on new line</title>
		<link>http://blog.alvarezp.org/2009/09/28/bell-on-new-line/</link>
		<comments>http://blog.alvarezp.org/2009/09/28/bell-on-new-line/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 20:10:21 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Computación]]></category>
		<category><![CDATA[Código]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Planeta Linux]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=725</guid>
		<description><![CDATA[To have a Linux beep each time a new line is printed on standard output, just filter your output through the following code:
gawk '{print "\007" $0 }'
This will effectively &#8220;prepend&#8221; a bell to each line.
You can convert this into an alias or a command (say /usr/local/bin/line-beep.gawk):
#!/usr/bin/gawk -f

{ print "\007" $0; }
So it can be used [...]]]></description>
			<content:encoded><![CDATA[<p>To have a Linux beep each time a new line is printed on standard output, just filter your output through the following code:</p>
<pre class="code"><code>gawk '{print "\007" $0 }'</code></pre>
<p>This will effectively &#8220;prepend&#8221; a bell to each line.</p>
<p>You can convert this into an alias or a command (say /usr/local/bin/line-beep.gawk):</p>
<pre class="code"><code>#!/usr/bin/gawk -f

{ print "\007" $0; }</code></pre>
<p>So it can be used in a code like the following:</p>
<pre class="code"><code>tail -f /var/log/messages | grep --line-buffered dhcpd | line-beep.bash
</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/09/28/bell-on-new-line/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Opera and mysterious font aliasing problem in Ubuntu and Debian</title>
		<link>http://blog.alvarezp.org/2009/09/20/opera-and-mysterious-font-aliasing-in-ubuntu-and-debian/</link>
		<comments>http://blog.alvarezp.org/2009/09/20/opera-and-mysterious-font-aliasing-in-ubuntu-and-debian/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 05:04:43 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[Diseño web]]></category>
		<category><![CDATA[English]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Opera browser]]></category>
		<category><![CDATA[Planet Gultij]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=517</guid>
		<description><![CDATA[Opera renders text without antialiasing under Ubuntu and Debian when a value in the font-family CSS property matches a &#8220;Core X&#8221; font before an Xft font.
That&#8217;s why Opera can be set to ignore core X fonts, by unchecking the Enable Core X fonts configuration option. You can use this as a workaround.
So, the result of [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://en.wikipedia.org/wiki/Opera_(web_browser)">Opera</a> renders text without <a href="http://en.wikipedia.org/wiki/Antialiasing">antialiasing</a> under Ubuntu and Debian when a value in the <a href="http://www.w3.org/TR/CSS2/fonts.html#font-family-prop">font-family</a> CSS property matches a &#8220;Core <a href="http://en.wikipedia.org/wiki/X_Window_System">X</a>&#8221; font before an <a href="http://en.wikipedia.org/wiki/Xft">Xft</a> font.</p>
<p>That&#8217;s why Opera can be set to ignore core X fonts, by unchecking the <a href="opera:config#UserPrefs|EnableCoreXFonts">Enable Core X fonts</a> configuration option. You can use this as a workaround.</p>
<p><span id="more-517"></span>So, the result of having this option enabled can be compared in the following images. The first image shows the rendering when the <code>font-family: "Deja Vu Sans", sans-serif</code> directive is used. The second image shows the same page when the &#8220;Deja Vu Sans&#8221; option is removed from the directive. In this second case, Opera renders the text using the &#8220;sans-serif&#8221; font, whatever it matches.</p>
<p style="text-align: center">
<img style="padding: 5px; margin: 10px; border: 1px solid black" src="http://blog.alvarezp.org/imagenes/opera-antialias/aliased.png"/><br />
<img style="padding: 5px; margin: 10px; border: 1px solid black" src="http://blog.alvarezp.org/imagenes/opera-antialias/antialiased.png"/>
</p>
<p>Seen from a different perpective, it appears to be that when Opera asks X for a font, X returns an antialised core font. Does this happen on other distributions too?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/09/20/opera-and-mysterious-font-aliasing-in-ubuntu-and-debian/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Making Opera work with Cisco Secure ACS 4.1.</title>
		<link>http://blog.alvarezp.org/2009/09/18/making-opera-work-with-cisco-secure-acs-41/</link>
		<comments>http://blog.alvarezp.org/2009/09/18/making-opera-work-with-cisco-secure-acs-41/#comments</comments>
		<pubDate>Sat, 19 Sep 2009 06:25:18 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Opera browser]]></category>
		<category><![CDATA[Planet Gultij]]></category>

		<guid isPermaLink="false">http://blog.alvarezp.org/?p=649</guid>
		<description><![CDATA[This post should be called instead &#8220;Making Opera work around a Cisco Secure ACS 4.1 interoperability bug&#8221;.
Continuing with the stream of web browser interoperability issues I recently found how to make Opera 10 work with a Cisco Secure Access Control Server 4.1.
The problem I experienced is briefly described as, clicking any option in the menu [...]]]></description>
			<content:encoded><![CDATA[<p>This post should be called instead &#8220;Making Opera work around a Cisco Secure ACS 4.1 interoperability bug&#8221;.</p>
<p>Continuing with the stream of web browser interoperability issues I recently found how to make <a href="http://www.opera.com/browser/features/">Opera 10</a> work with a <a href="http://www.cisco.com/">Cisco</a> <a href="http://www.cisco.com/en/US/products/sw/secursw/ps2086/">Secure Access Control Server</a> 4.1.</p>
<p>The problem I experienced is briefly described as, clicking any option in the menu (in the left frame) will open the menu again in the right frame, instead of actually showing the selected option.</p>
<p><span id="more-649"></span>The answer is simple: set Opera to identify as <a href="http://www.mozilla.com/en-US/firefox/features/">Firefox</a> for that domain or IP. This is located under Tools » Preferences » Advanced » Content » Manage Site Preferences. Add the site and under Network, change &#8220;Browser identification&#8221; to &#8220;Identify as Firefox&#8221;.</p>
<p><a href="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs-image.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs-image.png" alt="opera-cisco-acs-image" title="opera-cisco-acs-image" class="aligncenter size-full wp-image-652" style="max-width: 100%" /></a></p>
<p>Here are the screenshots. Click on them.</p>
<div id="attachment_656" class="wp-caption alignleft" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs-300x217.png" alt="Opera identified as such." title="opera-cisco-acs" width="300" height="217" class="size-medium wp-image-656" /></a><p class="wp-caption-text">Opera identified as such.</p></div>
<div id="attachment_658" class="wp-caption alignleft" style="width: 310px"><a href="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs-2.png"><img src="http://blog.alvarezp.org/wp-content/uploads/2009/09/opera-cisco-acs-2-300x217.png" alt="Opera identified as Firefox." title="opera-cisco-acs-2" width="300" height="217" class="size-medium wp-image-658" /></a><p class="wp-caption-text">Opera identified as Firefox.</p></div>
<p style="clear: both">
<p>The analysis narrows down to this code in the menu:</p>
<pre class="code">// unfortunately the Object model in IE doesn't match the Netscape one so we have to check the browser...
if( "Netscape" == navigator.appName )
{
	obj.href=sequence_url;
}
else
{
	ua=navigator.userAgent;
	v=navigator.appVersion.substring(0,1);
	if ((ua.lastIndexOf("MSIE")!=-1) &#038;&#038; (v!='1') &#038;&#038; (v!='2') &#038;&#038; (v!='3'))
	{
		// MSIE 4.0 and later.
		obj.href=sequence_url;
	}
	else
	{
		parent.parent.R.location=sequence_url;
	}
}

(some code snipped)

&lt;A HREF="" TARGET=R onClick="getURL( this , 'setup.exe?action=make_r_fs&#038;option=users' )" >
&lt;IMG SRC="images/cisco_buttons/user-up.gif" BORDER=1 ALT="User Setup">&lt;/A>
</pre>
<p>So Cisco is actually trying to detect the UA, but instead of assuming a standards-complaint browser and applying special fixes for IE, it assumes IE and applies a special fix for Mozilla (Netscape).</p>
<p>That&#8217;s why changing the identifier for that site actually works. Now the JavaScript code correctly detects the UA and performs the correct action of loading the page in the &#8220;R&#8221; frame.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/09/18/making-opera-work-with-cisco-secure-acs-41/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CCNA revalidation</title>
		<link>http://blog.alvarezp.org/2009/06/15/ccna-revalidation/</link>
		<comments>http://blog.alvarezp.org/2009/06/15/ccna-revalidation/#comments</comments>
		<pubDate>Tue, 16 Jun 2009 05:25:54 +0000</pubDate>
		<dc:creator>alvarezp</dc:creator>
				<category><![CDATA[English]]></category>
		<category><![CDATA[Net-admin]]></category>
		<category><![CDATA[Tenía que ser un geek.]]></category>

		<guid isPermaLink="false">http://alvarezp.ods.org/blog/?p=417</guid>
		<description><![CDATA[Today I passed the Cisco Composite exam, which extends my CCNA certification for three more years, and is a great leap towards certification in the CCNP program.
I just have to wait for Cisco to mark my exam as &#8220;valid&#8221;. I don&#8217;t find any reason for them not to.
I gotta take some rest for a few [...]]]></description>
			<content:encoded><![CDATA[<p>Today I passed the Cisco <a href="http://www.cisco.com/web/learning/le3/current_exams/642-892.html">Composite</a> exam, which extends my <a href="http://www.cisco.com/web/learning/le3/le2/le0/le9/learning_certification_type_home.html">CCNA</a> certification for three more years, and is a great leap towards certification in the <a href="http://www.cisco.com/web/learning/le3/le2/le37/le10/learning_certification_type_home.html">CCNP</a> program.</p>
<p>I just have to wait for Cisco to mark my exam as &#8220;valid&#8221;. I don&#8217;t find any reason for them not to.</p>
<p>I gotta take some rest for a few days. Next stop: <a href="http://www.cisco.com/web/learning/le3/current_exams/642-825.html">ISCW</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.alvarezp.org/2009/06/15/ccna-revalidation/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
