<?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>coder . cl &#187; rants</title>
	<atom:link href="http://coder.cl/category/rants/feed/" rel="self" type="application/rss+xml" />
	<link>http://coder.cl</link>
	<description>system programmer &#38; web developer</description>
	<lastBuildDate>Thu, 29 Jul 2010 21:52:47 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>ramblings on email formalization</title>
		<link>http://coder.cl/2010/02/ramblings-on-email-formalization/</link>
		<comments>http://coder.cl/2010/02/ramblings-on-email-formalization/#comments</comments>
		<pubDate>Sun, 07 Feb 2010 15:13:14 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[development]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=619</guid>
		<description><![CDATA[Netiquette (RFC1855) is a set of standard rules on writing electronic mail. Many of those conventions appears to be lost in time, and bad practices on writing emails are more popular around the Internet. I agree with those rules, but I think that some additional stuff can be used to get more organized electronic mail. [...]]]></description>
			<content:encoded><![CDATA[<p><a href='http://tools.ietf.org/html/rfc1855'><i>Netiquette (RFC1855)</i></a> is a set of standard rules on writing electronic mail. Many of those conventions appears to be lost in time, and bad practices on writing emails are more popular around the Internet. I agree with those rules, but I think that some additional stuff can be used to get more organized electronic mail. Here are some rules, some of them extracted from the netiquette used on mailing lists and Usenet.</p>
<p><span id="more-619"></span></p>
<p><br/></p>
<h3>the subject matters</h3>
<p>Sure, a good subject can be used to index properly your emails. For example try to use some kind of convention, do not throw the subject as a previously known conversation. For many years I&#8217;ve been using my own convention on electronic mail subjects for my projects. Generally I use the form: <i>&quot;Client, Project, Real Subject&quot;</i> or <i>&quot;Project, Real Subject&quot;</i>. So you can easily find your messages related to each project just by looking on the subject. The proper subject is a good introduction to the email that you will write or read.</p>
<p><br/></p>
<h3>the format matters</h3>
<p>Plain text (text/plain), wrapped on column 76 or 64 &mdash; it depends on your taste &mdash; with well formed paragraphs and using the proper mime encoding for localization &mdash; on Usenet and some mailing lists is useful to use US-ASCII as encoding. Many companies are using <b>HTML</b> formatted mail with those gif images as company logos attached, and sometimes a huge disclaimer as email footer, and many replying on top of the previous message. Well, your fancy looks ugly here. I use <i>Kontact</i>, hence I use <i>Kmail</i> and a great feature of <i>Kmail</i> is the fact that it do not opens HTML formatted mails immediately, it regards my preference and ask me if I want to open it. Do you remember the <i>I love you</i> virus which was spreading through electronic mail?. Fancy colors and pictures leave your mail looking as <b>SPAM</b>, overfilled with <i>propaganda</i>, and those huge disclaimers for me are a disrespect to me, since it is like to send a real mail, and mail service opens the envelope and attach another document into it.</p>
<p>A possible solution is to standardize the proper E-Mail header for those bring that information without modifying the content of the original message:</p>
<ul>
<li><strong>X-Company-Logo</strong>, should contain an URL to the company logo. I hope that it should reside under HTTPS protocol.</li>
<li><strong>X-Disclaimer</strong>, should contain an URL to the company disclaimer of the electronic mail.</li>
<li><strong>X-Sender-Identity</strong>, should contain an URL to the sender contact information, possibly a vCard or a plain text signature.</li>
</ul>
<p>Sending that information &mdash; since most SMTP email is authenticated &mdash; can be easyly inserted on the electronic mail and it will become a part of the envelope, not the original message.</p>
<p><br/></p>
<h3>labeling for indexing</h3>
<p>Many mail clients are using <i>labels</i> to create additional indexes on the electronic mail, but seems that is not standardized. Here an additional mail header should be useful &mdash; I hope that most companies will agree. <strong>X-Labels</strong> should be used to add labels to the electronic mail, it can be delimited with the <i>;;</i> string. So, it will become standardized for most clients, including on sending mail, so the mail client can receive them and ask the user if he wants to add the label.</p>
<p><br/></p>
<h3>conclusions</h3>
<p>Read some mailing lists or Usenet newsgroups to get introduced on how to write and read electronic mail. Read the RFC 1855 to get the <i>real rules</i> on formal electronic mail. Stop sending that fancy electronic mail, it has no sense, your company will not be more respected by sending those mails, for many people it has the opposed effect.</p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;title=ramblings%20on%20email%20formalization&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Netiquette%20%28RFC1855%29%20is%20a%20set%20of%20standard%20rules%20on%20writing%20electronic%20mail.%20Many%20of%20those%20conventions%20appears%20to%20be%20lost%20in%20time%2C%20and%20bad%20practices%20on%20writing%20emails%20are%20more%20popular%20around%20the%20Internet.%20I%20agree%20with%20those%20rules%2C%20but%20I%20think%20that%20som" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;title=ramblings%20on%20email%20formalization&amp;notes=Netiquette%20%28RFC1855%29%20is%20a%20set%20of%20standard%20rules%20on%20writing%20electronic%20mail.%20Many%20of%20those%20conventions%20appears%20to%20be%20lost%20in%20time%2C%20and%20bad%20practices%20on%20writing%20emails%20are%20more%20popular%20around%20the%20Internet.%20I%20agree%20with%20those%20rules%2C%20but%20I%20think%20that%20som" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;title=ramblings%20on%20email%20formalization&amp;bodytext=Netiquette%20%28RFC1855%29%20is%20a%20set%20of%20standard%20rules%20on%20writing%20electronic%20mail.%20Many%20of%20those%20conventions%20appears%20to%20be%20lost%20in%20time%2C%20and%20bad%20practices%20on%20writing%20emails%20are%20more%20popular%20around%20the%20Internet.%20I%20agree%20with%20those%20rules%2C%20but%20I%20think%20that%20som" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;title=ramblings%20on%20email%20formalization" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;t=ramblings%20on%20email%20formalization" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=ramblings%20on%20email%20formalization%20-%20http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2010%2F02%2Framblings-on-email-formalization%2F&amp;title=ramblings%20on%20email%20formalization&amp;annotation=Netiquette%20%28RFC1855%29%20is%20a%20set%20of%20standard%20rules%20on%20writing%20electronic%20mail.%20Many%20of%20those%20conventions%20appears%20to%20be%20lost%20in%20time%2C%20and%20bad%20practices%20on%20writing%20emails%20are%20more%20popular%20around%20the%20Internet.%20I%20agree%20with%20those%20rules%2C%20but%20I%20think%20that%20som" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2010 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2010. | <a href="http://coder.cl/2010/02/ramblings-on-email-formalization/">Permalink</a> | <a href="http://coder.cl/2010/02/ramblings-on-email-formalization/#comments">No comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2010/02/ramblings-on-email-formalization/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>identifying phishing email</title>
		<link>http://coder.cl/2009/09/identifying-phishing-email/</link>
		<comments>http://coder.cl/2009/09/identifying-phishing-email/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 02:49:34 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=234</guid>
		<description><![CDATA[Phishing is a criminal activity. I&#8217;ve recently received an electronic mail with one of those phishing attempts. Surely I&#8217;ve ignored since I know how to read the electronic mail headers and some other useful information that comes in electronic mails. The Wikipedia refers to it as: In the field of computer security, phishing is the [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p><i>Phishing</i> is a criminal activity. I&#8217;ve recently received an electronic mail with one of those <i>phishing</i> attempts. Surely I&#8217;ve ignored since I know how to read the electronic mail headers and some other useful information that comes in electronic mails. The Wikipedia refers to it as:</p>
<blockquote><p>
In the field of computer security, phishing is the criminally fraudulent process of attempting to acquire sensitive information such as usernames, passwords and credit card details by masquerading as a trustworthy entity in an electronic communication.
</p></blockquote>
<p><!--:--><span id="more-234"></span><!--:en--></p>
<p>This time &mdash; I usually receive those electronic mails &mdash; I&#8217;ve received an <i>important announcement</i> from a Chilean bank, but really it was a <i>phishing attempt</i>. How do I know that? It appears to be quiet real, but what is behind all those pretty and trustful words?</p>
<div style="text-align:center;">
<img src="http://coder.cl/uploads//2009/09/phishing-mail.png" alt="phishing message" title="phishing message" style="border:2px solid #000;" />
</div>
<p>The electronic have a <i>plain text format</i>. Yes! is not a binary format like <i>Micro$oft Word</i> or another kind of electronic format. This format has standard basis from the <a href="http://tools.ietf.org/html/rfc5322">RFC 5322</a>, and looks pretty similar on every message you sent and you receive. As the RFC 5322 standarizes the message format, the message format is as follows:</p>
<blockquote><p>
A message consists of header fields, optionally followed by a message body.  Lines in a message MUST be a maximum of 998 characters excluding the CRLF, but it is RECOMMENDED that lines be limited to 78 characters excluding the CRLF.  (See section 2.1.1 for explanation.) In a message body, though all of the characters listed in the text rule MAY be used, the use of US-ASCII control characters (values 1 through 8, 11, 12, and 14 through 31) is discouraged since their interpretation by receivers for display is not guaranteed.
</p></blockquote>
<p>Well, <i>message headers</i> are an important task while we are examining the message. You can view the original message by saving your email as plain text and looking at it with any text editor. Find a menu with <i>View Source</i>, <i>View Message Source</i>, <i>View Raw Message</i>, <i>Save As (&#8230;plain text)</i>, and similar options to take a look on the message source. Well, this <i>phishing</i> mail has some interesting headers, such as the <b>Received</b> header, which indicates how the mail message was received by <b>MX servers</b> or <b>mail servers</b>:</p>
<pre><code>
Received: (qmail 12145 invoked by uid 1552); 14 Sep 2009 08:38:10 -0000
Received: from virtual1.webair.com (virtual1.webair.com [216.130.161.111])
    by mail07.ifxnetworks.com with SMTP id 9f9zhdib52zaavt9vaiekajna6;
    for dmw@unete.cl;
    Mon, 14 Sep 2009 08:38:10 +0000 (GMT)
    (envelope-from monitor@santander.cl)
Received-SPF: None; receiver=mail07.ifxnetworks.com;
    client-ip=216.130.161.111; envelope-from=&lt;monitor@santander.cl&gt;;
    helo=virtual1.webair.com
X-Avenger: version=0.7.9; receiver=mail07.ifxnetworks.com;
    client-ip=216.130.161.111; client-port=2914;
    syn-fingerprint=32768:58:1:60:M1380,N,W0,N,N,T FreeBSD 4.8-5.1 (or MacOS
    X); data-bytes=0
</code></pre>
<p>My electronic mail address which received the <i>phishing mail</i>, is hosted at <i>IFX Networks</i>, so the final receiver &mdash; from top to bottom &mdash; was the <i>****.ifxnetworks.com</i> server. Electronic mail routes can be longer that this one, but you can read as final receiver from top to the initial receiver to bottom. WOW! What a surprise!, the initial client is <i>216.130.161.111</i>, let see from where comes that IP address&#8230;</p>
<pre><code>
[www@quake ~]$ geoiplookup 216.130.161.111
GeoIP Country Edition: US, United States

[www@quake ~]$ nslookup 216.130.161.111
Server:         200.62.2.180
Address:        200.62.2.180#53

Non-authoritative answer:
111.161.130.216.in-addr.arpa    name = virtual1.webair.com.
</code></pre>
<p>WOW!, the client comes from <b>USA</b>, not a Chilean sender! and matches with <i>Spam Filter</i> receiver at IFX: <i>helo=virtual1.webair.com</i>. Why a Chilean bank wants to send an important advice from foreign servers? it smells like pure <i>phishing</i>. Now let me see what are indicating the NIC servers from that domain:</p>
<pre><code>
[www@quake ~]$ whois webair.com

Whois Server Version 2.0

Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.

WEBAIR.COM.<b>BR</b>.GAROTAEXECUTIVO.COM
WEBAIR.COM

</code></pre>
<p>Hhhmmm&#8230; looks like a Brazilian domain <img src='http://coder.cl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> . Looking at the real entry: <i>GAROTAEXECUTIVO.COM</i>.</p>
<pre><code>
Registrant:
   Executivo
   Rua: Executivo 3333
   Sao Paulo, Sao Paulo  01313000
   BR

   Registrar: DOTSTER
   Domain Name: GAROTAEXECUTIVO.COM
      Created on: 24-OCT-07
      Expires on: 24-OCT-09
      Last Updated on: 04-OCT-08

   Administrative, Technical Contact:
      Club, Executivo  postmaster@postmaster.com
      Executivo
      Rua: Executivo 3333
      Sao Paulo, Sao Paulo  01313000
      BR
      551122334455
</code></pre>
<p>Yeah! it&#8217;s a Brazilian one! Now, looking for all those URLs to make me fall in the fraudulent activity of <i>phishing</i>, where I&#8217;ve found three interesting URLs:</p>
<ul>
<li><b>hxxp://www.santander.cl/estilos/2008_08/bitmaps/santander.gif</b><br/>WOW!, it points to an image at the Chilean bank &mdash; I&#8217;ve replaced the t for x intentionally &mdash; and surely this will make some believe some people that the electronic mail is quiet real.</li>
<li><b>hxxps://www.officebanking.cl/images/porque.gif</b><br/>WOW!, it points to an URL of the same bank but using the HTTPS protocol, this will make a possible client to believe that is pointing to the real bank, since many email clients asks for the site certificate. Interesting.</li>
<li><b>hxxp://www.fpfa.esp.br/imagens/campeoes/st2.php</b><br/>WOW!, the full URL to the phishing site! I&#8217;ve not opened the URL, and I don&#8217;t know what is behind it :B</li>
</ul>
<p>The piece of code with the link to the phishing web site in the body of the message:</p>
<pre><code>
&lt;span class=&quot;style10&quot;&gt;
                                            &lt;a target=&quot;_blank&quot;
href=&quot;http://www.fpfa.esp.br/imagens/campeoes/st2.php&quot;&gt;
                        &lt;img
src=&quot;https://www.officebanking.cl/images/ingresar.gif&quot;
align=&quot;middle&quot; border=&quot;0&quot; width=&quot;65&quot;
height=&quot;21&quot;&gt;&lt;/a&gt;&lt;/span&gt;
</code></pre>
<h3>conclusions</h3>
<ul>
<li>You can not trust in banking electronic mail until you strongly verify the electronic mail.</li>
<li>You can not enter any site with your financial institution logos without verifying the URL bar.</li>
<li>Google permits to download the message source.</li>
<li>Use a good electronic mail client, for example <a href="http://www.mozillamessaging.com/en-US/thunderbird/">Thunderbird</a> has good advices on <i>spam</i> and <i>phishing</i>.</li>
<li>Certainly the <i>www.fpfa.esp.br</i> site was <a href="http://www.ccil.org/jargon/jargon_18.html#TAG365">cracked</a>, and was used for phishing activities, and I&#8217;ve blocked it in my browser.</li>
<li>Those <i>virtual1.webair.com</i> servers are widely opened to be used by <a href="http://en.wikipedia.org/wiki/E-mail_spam">spammers</a>, and I&#8217;ve added them to my blacklist.</li>
</ul>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;title=identifying%20phishing%20email&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Phishing%20is%20a%20criminal%20activity.%20I%27ve%20recently%20received%20an%20electronic%20mail%20with%20one%20of%20those%20phishing%20attempts.%20Surely%20I%27ve%20ignored%20since%20I%20know%20how%20to%20read%20the%20electronic%20mail%20headers%20and%20some%20other%20useful%20information%20that%20comes%20in%20electronic%20mails." title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;title=identifying%20phishing%20email&amp;notes=Phishing%20is%20a%20criminal%20activity.%20I%27ve%20recently%20received%20an%20electronic%20mail%20with%20one%20of%20those%20phishing%20attempts.%20Surely%20I%27ve%20ignored%20since%20I%20know%20how%20to%20read%20the%20electronic%20mail%20headers%20and%20some%20other%20useful%20information%20that%20comes%20in%20electronic%20mails." title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;title=identifying%20phishing%20email&amp;bodytext=Phishing%20is%20a%20criminal%20activity.%20I%27ve%20recently%20received%20an%20electronic%20mail%20with%20one%20of%20those%20phishing%20attempts.%20Surely%20I%27ve%20ignored%20since%20I%20know%20how%20to%20read%20the%20electronic%20mail%20headers%20and%20some%20other%20useful%20information%20that%20comes%20in%20electronic%20mails." title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;title=identifying%20phishing%20email" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;t=identifying%20phishing%20email" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=identifying%20phishing%20email%20-%20http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fidentifying-phishing-email%2F&amp;title=identifying%20phishing%20email&amp;annotation=Phishing%20is%20a%20criminal%20activity.%20I%27ve%20recently%20received%20an%20electronic%20mail%20with%20one%20of%20those%20phishing%20attempts.%20Surely%20I%27ve%20ignored%20since%20I%20know%20how%20to%20read%20the%20electronic%20mail%20headers%20and%20some%20other%20useful%20information%20that%20comes%20in%20electronic%20mails." title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2009 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2009. | <a href="http://coder.cl/2009/09/identifying-phishing-email/">Permalink</a> | <a href="http://coder.cl/2009/09/identifying-phishing-email/#comments">One comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2009/09/identifying-phishing-email/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>microsoft moves on foss</title>
		<link>http://coder.cl/2009/09/microsoft-moves-on-foss/</link>
		<comments>http://coder.cl/2009/09/microsoft-moves-on-foss/#comments</comments>
		<pubDate>Tue, 15 Sep 2009 22:40:47 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[projects]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=229</guid>
		<description><![CDATA[Recently, Micro$oft has launched a new open source collaborative platform called CodePlex. From its announcement: Microsoft&#8217;s strategy with open source has evolved over the past several years as we strive to make Windows the platform of choice for customers. My team has participated in that process first hand, we&#8217;ve worked hard with the PHP community [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>Recently, Micro$oft has launched a new open source collaborative platform called <i>CodePlex</i>. From its <a href="http://blogs.iis.net/bills/archive/2009/09/10/microsoft-launches-new-open-source-codeplex-foundation.aspx">announcement</a>:</p>
<blockquote><p>
Microsoft&#8217;s strategy with open source has evolved over the past several years as we strive to make Windows the platform of choice for customers.  My team has participated in that process first hand, we&#8217;ve worked hard with the PHP community to ensure PHP runs great on Windows, integrated PHP installation into the Microsoft Web Platform Installer, and engaged some of the most popular PHP applications like WordPress, Drupal, and SugarCRM to ensure customers have a great experience running these applications on Windows and IIS.  We&#8217;ve also worked closely with the jQuery project to make it a natural part of building applications with ASP.NET.
</p></blockquote>
<p><!--:--><span id="more-229"></span><!--:en--></p>
<p>If really their strategy is to allow their customers to continue using their platform, another <i>hidden</i> issue about the CodePlex Foundation are the terms under the code is shared &mdash; just take a look on the allowed licenses &mdash; and their contributor agreement, where <i>Josh Berkus</i> spotted the problem with it in his article titled <a href="http://it.toolbox.com/blogs/database-soup/codeplex-stay-away-34128"><i>&quot;Codeplex: Stay Away&quot;</i></a>. A point on the agreement mentions:</p>
<blockquote><p>
You grant Foundation a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute the Submission and such derivative works, and to sublicense those rights to third parties.
</p></blockquote>
<p>Which is interpreted by Josh Berkus as:</p>
<blockquote><p>
You grant Codeplex the right to give, for free, forever, under any license they please, your work to Microsoft and its partner corporations.
</p></blockquote>
<p>Damn!, I think that I must not put ever my source code on CodePlex!. I&#8217;m not a lawyer expert, but seems that Josh have the true in his interpretation. The full agreement is placed <a href="http://www.codeplex.org/docs/Codeplex_Foundation_Contribution_Agreement.pdf">here</a>. Also, in the announcement comment responses, they ensure that there is no relationship between CodePlex Foundation and CodePlex.com:</p>
<blockquote><p>
There is no other formal relationship between the CodePlex Foundation and CodePlex.com run by Microsoft. I anticipate the foundation will accept projects hosted on CodePlex.com or any other project hosting site. For more information on common questions like this one, see the FAQ posted on codeplex.org/faq-mission.aspx.
</p></blockquote>
<p>In the FAQ they are refering to their mission, and the FAQ have a question on it: <i>&quot;Why is Microsoft involved in the creation of an open source foundation?&quot;,</i> they mention the fact that Micro$oft is <a href="http://arstechnica.com/open-source/news/2008/07/microsoft-to-sponsor-of-the-apache-software-foundation.ars">supporting the Apache Foundation</a> and similar recently made moves from Micro$oft. But what is behind?, a recent move was the release of FOSS drivers for the linux kernel with up to <tt>20000</tt> lines of code &mdash; me as a single developer have contributed with a similar amount of lines of code &mdash; but, have they really release the code to contribute to the community?. Seem that the answer is not. In a recent article titled <a href='http://www.theregister.co.uk/2009/07/23/microsoft_hyperv_gpl_violation/'><i>&quot;Microsoft opened Linux-driver code after &#8216;violating&#8217; GPL&quot;</i></a>, we can find Micro$oft releasing the just after some discussions, and the real intentions behind that are not yet clear.</p>
<blockquote><p>
We don&#8217;t know why Microsoft positioned the news as something it was not. Maybe it was because of the strategic and political importance of Hyper-V to the company, the unmissable kudos of embracing GPL and helping Linux on Windows, and how such an act could finally silence doubters.
</p></blockquote>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;title=microsoft%20moves%20on%20foss&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Recently%2C%20Micro%24oft%20has%20launched%20a%20new%20open%20source%20collaborative%20platform%20called%20CodePlex.%20From%20its%20announcement%3A%0D%0A%0D%0A%0D%0AMicrosoft%27s%20strategy%20with%20open%20source%20has%20evolved%20over%20the%20past%20several%20years%20as%20we%20strive%20to%20make%20Windows%20the%20platform%20of%20choice%20f" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;title=microsoft%20moves%20on%20foss&amp;notes=Recently%2C%20Micro%24oft%20has%20launched%20a%20new%20open%20source%20collaborative%20platform%20called%20CodePlex.%20From%20its%20announcement%3A%0D%0A%0D%0A%0D%0AMicrosoft%27s%20strategy%20with%20open%20source%20has%20evolved%20over%20the%20past%20several%20years%20as%20we%20strive%20to%20make%20Windows%20the%20platform%20of%20choice%20f" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;title=microsoft%20moves%20on%20foss&amp;bodytext=Recently%2C%20Micro%24oft%20has%20launched%20a%20new%20open%20source%20collaborative%20platform%20called%20CodePlex.%20From%20its%20announcement%3A%0D%0A%0D%0A%0D%0AMicrosoft%27s%20strategy%20with%20open%20source%20has%20evolved%20over%20the%20past%20several%20years%20as%20we%20strive%20to%20make%20Windows%20the%20platform%20of%20choice%20f" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;title=microsoft%20moves%20on%20foss" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;t=microsoft%20moves%20on%20foss" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=microsoft%20moves%20on%20foss%20-%20http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2009%2F09%2Fmicrosoft-moves-on-foss%2F&amp;title=microsoft%20moves%20on%20foss&amp;annotation=Recently%2C%20Micro%24oft%20has%20launched%20a%20new%20open%20source%20collaborative%20platform%20called%20CodePlex.%20From%20its%20announcement%3A%0D%0A%0D%0A%0D%0AMicrosoft%27s%20strategy%20with%20open%20source%20has%20evolved%20over%20the%20past%20several%20years%20as%20we%20strive%20to%20make%20Windows%20the%20platform%20of%20choice%20f" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2009 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2009. | <a href="http://coder.cl/2009/09/microsoft-moves-on-foss/">Permalink</a> | <a href="http://coder.cl/2009/09/microsoft-moves-on-foss/#comments">No comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2009/09/microsoft-moves-on-foss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>catching memory leaks</title>
		<link>http://coder.cl/2009/07/catching-memory-leaks/</link>
		<comments>http://coder.cl/2009/07/catching-memory-leaks/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 01:22:42 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=80</guid>
		<description><![CDATA[A memory leak regards the concept of &#34;non released and unused memory, an unintentional failure that makes your program hold memory when is not longer needed&#34;. This means that even you create a new instance of an object &#8212; in C++ &#8212; without releasing it&#8217;s memory; you request a memory block &#8212; in C &#8212; [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>A <i>memory leak</i> regards the concept of <i>&quot;non released and unused memory, an unintentional failure that makes your program hold memory when is not longer needed&quot;</i>. This means that even you create a new instance of an object &mdash; in <b>C++</b> &mdash; without releasing it&#8217;s memory; you request a memory block &mdash; in <b>C</b> &mdash; with <b>malloc(3)</b>, <b>mmap(2)</b> or <b>sbrk(2)</b> families of functions and similar tasks; or simply you setup an <i>object reference</i> without releasing the <i>reference</i>, when you left the object usage in your code logic and the <i>reference is kept</i> without letting the interpreter or garbage collector destroy it &mdash; as in <i>dynamic</i> and <i>virtual machine</i> based languages.</p>
<p><!--:--><span id="more-80"></span><!--:en--></p>
<blockquote><p>
A memory leak is the gradual loss of available computer memory when a program (an application or part of the operating system) repeatedly fails to return memory that it has obtained for temporary use. As a result, the available memory for that application or that part of the operating system becomes exhausted and the program can no longer function. For a program that is frequently opened or called or that runs continuously, even a very small memory leak can eventually cause the program or the system to terminate. A memory leak is the result of a program bug.<br />
<span style="text-align: right;"><i><a href="http://whatis.techtarget.com/">Source: WhatIs.com</a></i></span>
</p></blockquote>
<p>From the basics, we will review single tasks on <b>C</b>, to more complex tasks on dynamic languages, such as <b>JavaScript</b>. My apologies to all those people that thinks that <i>&quot;memory does not matter&quot;</i> and saw you <i>&quot;don&#8217;t worry about memory if you are using a language with a garbage collector&quot;</i> and even saw you <i>&quot; don&#8217;t worry about memory if you are using a dynamic language&quot;</i>, but certainly all those people are <b>wrong</b>. Releasing memory and kind resources is an important task. Just take a look on the Internet and search about <i>System.OutOfMemoryException</i> for <b>C#</b>, <i>java.lang.OutOfMemoryException</i> for <b>Java</b>, <i>&quot;PHP Fatal error: Allowed memory size of NNNNNNN bytes exhausted&quot;</i> for <b>PHP</b>, and some other <i>well known issues</i>. Isn&#8217;t strange that you will find some of those errors currently running on Web Servers. Usually it have a <b>common, quick and dirty</b> solution: <i>&quot;just increase the memory limit, stack size or the amount of memory available for your program&quot;</i>.</p>
<p></p>
<h3>the basics with c</h3>
<p>On <b>C</b>, every <i>reserved block must be released</i>. The <i>standard library</i> way to allocate memory is the <b>malloc(3)</b> family of functions. Also, there are many programs and languages too which are using it&#8217;s own <i>memory allocator</i>&nbsp; through system calls such as <b>mmap(2)</b> and <b>sbrk(2)</b>. If you are using an <b>Open Source</b> operating system, such as <i>Linux</i> or <i>FreeBSD</i>, you can take a look on your system wide memory allocator implementation. Dynamic allocations, given by this kind of calls, allocate memory on the <b>heap</b>, which can grow until it reaches the memory limit given by the system that are running on.</p>
<p>A single way to track the memory used by your program can have the form of the next piece of code:</p>
<pre name="code" class="c" cols="80" rows="43">
#ifdef CUSTOM_MEMORY_TRACK
#define malloc(s)       my_malloc(s);
#define free(p)         my_free(p);
#endif /* !CUSTOM_MEMORY_TRACK */

int total_allocation_calls = 0;

void *my_malloc(size_t sz) {
    total_allocation_calls++;
    return malloc(sz);
}

void *my_free(void *p) {
    total_allocation_calls--;
    free(p);
}

/* to use with as:
      atexit(my_display_allocations);
   in main() */
void my_display_allocations (void) {
    printf("Total Allocations: %d\n",
           total_allocation_calls);
}
</pre>
<p>Then, if you use this piece of code and setup an <b>atexit(3)</b> call in main, you can get a message like: <i>&quot;Total Allocations: 0&quot;</i>, only if your program does not have <i>memory leaks</i>. And <i>&quot;Total Allocations: n&quot;</i>, with <i>n</i> greater or equal to one, if your program have memory leaks. Be careful with that! There are many functions or systems calls that are allocating memory!, in example the <b>strdup(3)</b> family of functions, and those functions requires that the allocated memory must be released (deallocated) after they are used. For <b>C</b> programmers, it&#8217;s known that there are a lot of <i>nice tools</i> to detect <i>memory errors</i>, such as <i>memory leaks</i> and <i>invalid memory access (write/read)</i>. Surely you know about <b>valgrind</b>! <img src='http://coder.cl/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Do you understand the <b>valgrind</b> output?.</p>
<p>First of all, change your mind, resolve <i>compile time errors</i>. Try compiling your programs with <b><i>-Wall -Wextra -Wshadow -pedantic -std=c99</i></b>&nbsp; flags. They will show you how portable is your code. Let&#8217;s go with <b>valgrind</b> now, where the error format have the form: <i>&quot;Error Message\n&#8230;backtrace&#8230;&quot;</i></p>
<h4>Address 0&#215;0000000 is <i>n</i> bytes inside a block of size <i>m</i> free&#8217;d</h4>
<pre><code>
==28023==  Address 0x42d4010 is 8 bytes inside a block of size 100 free'd
==28023==    at 0x40270FC: realloc (vg_replace_malloc.c:429)
</code></pre>
<p>The given address have an incomplete memory release operation, where it holds <i>n</i> bytes of <i>m</i> free&#8217;d and occurs at memory address <i>0x40270FC</i>, in the function <b>realloc(3)</b> on the file <i>vg_replace_malloc.c</i> at line <i>429</i>. Since it is a <i>system wide</i> function and it is not a part of your program, usually the system do no have a <i>bug</i>, and you must look on the entire <i>backtrace</i> until you reach your code in the backtrace. When you don&#8217;t have errors, you may look a message like this:</p>
<pre><code>
==21624==
==21624== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
==21624== malloc/free: in use at exit: 15646 bytes in 13 blocks.
</code></pre>
<p style="border: 1px solid red;">I will try to explain more <i>valgrind messages</i> in other post.</p>
<p></p>
<h3>dynamic languages</h3>
<p>When <i>reference counts</i> marks the object as <i>being used</i>, and you don&#8217;t really are using it, you have a memory leak. The common way of execution for <b>PHP</b> scripts is that they are always holding more and more memory. Usually the common solution for <b>PHP</b> scripts is that you increase the runtime <i>memory limit</i> for the scripts on the server by changing the value of <i>memory_limit</i> configuration variable. Certainly you are wrong. You can avoid the extra memory usage by releasing <i>resources</i>, such as unused <i>objects</i> and variables. A good side of <b>PHP</b> is that it have an <b>unset()</b> function, that let&#8217;s you release allocated resources &mdash; some special resources needs to be deallocated using special functions, such as <b>imagedestroy()</b>. And really, <b>PHP</b> do not have a any kind of <i>garbage collector</i>, it just releases the allocated memory when the script have finished it&#8217;s execution. Some extensions would help, such as <a href="http://xdebug.org/">xdebug</a>.</p>
<p><b>Python</b> have a small implementation of <i>garbage collector</i> and really I have not seen mistakes in it like <b>PHP</b> about memory leaks. Only some extensions &mdash; written in <b>C</b> and <b>C++</b> have some memory leaks. Here applies the same logic, you must reach a <i>reference count of zero</i> to let the objects being released. <b>Python</b> have a well documented <a href="http://docs.python.org/c-api/memory.html">Memory Management</a> implementation.</p>
<p>Not much to say, just be careful with dynamic languages and it&#8217;s implementations, because many of them are extensible, many of their extensions would have memory leaks. <b>PHP</b> is a separate case&#8230; many people do not call it <i>a language</i>.</p>
<p></p>
<h3>vm driven languages</h3>
<p>Most of them have a <a href="http://en.wikipedia.org/wiki/Garbage_collection_(computer_science)">garbage collector</a> implementation. Do not tell me that <b>Java</b> is safe on this topic, or <b>C# .NET</b> is safe too. Just look at one of my <a href="http://coder.cl/2008/05/30/bring-me-a-real-garbage-collector/">previous posts</a>, and then think a little. If <b>Java</b>, and other languages having a <i>garbage collector</i> implementation are really safe, why you can look live errors on the Internet as the <b>OutOfMemoryException</b>&#8230; The reason is simple: <i>they have memory leaks</i>, but not they really. Instead we have developers that have trusted the slogan that says <i>&quot;programming in vm driven languages is safe, don&#8217;t worry about memory&quot;</i>. And then you have your <b>JEE server</b> or <b>Application Server</b> running the famous <b>OutOfMemoryException</b>, and you nearly to the <i>quick and dirty</i> solution like <i>increasing the memory limits</i> for your server.</p>
<p>Usually, more honest providers, let you know that the best way to mark an object as <i>eligible</i> to release it&#8217;s memory, is to set the object value to <b>null</b>. Then, the object reference count would reach zero, and the object will be released by the garbage collector. <b>Java</b>, <b>Mono</b> (use the source Luke!) and <b>.NET</b> have a well documented <i>garbage collectors</i>. Just learn how are made! And you will avoid common mistakes on this topic.</p>
<p></p>
<h3>finally</h3>
<p>Do not forget to release the unused resources&#8230;</p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;title=catching%20memory%20leaks&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=A%20memory%20leak%20regards%20the%20concept%20of%20%26quot%3Bnon%20released%20and%20unused%20memory%2C%20an%20unintentional%20failure%20that%20makes%20your%20program%20hold%20memory%20when%20is%20not%20longer%20needed%26quot%3B.%20This%20means%20that%20even%20you%20create%20a%20new%20instance%20of%20an%20object%20%26mdash%3B%20in%20C%2B%2B%20%26mdash" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;title=catching%20memory%20leaks&amp;notes=A%20memory%20leak%20regards%20the%20concept%20of%20%26quot%3Bnon%20released%20and%20unused%20memory%2C%20an%20unintentional%20failure%20that%20makes%20your%20program%20hold%20memory%20when%20is%20not%20longer%20needed%26quot%3B.%20This%20means%20that%20even%20you%20create%20a%20new%20instance%20of%20an%20object%20%26mdash%3B%20in%20C%2B%2B%20%26mdash" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;title=catching%20memory%20leaks&amp;bodytext=A%20memory%20leak%20regards%20the%20concept%20of%20%26quot%3Bnon%20released%20and%20unused%20memory%2C%20an%20unintentional%20failure%20that%20makes%20your%20program%20hold%20memory%20when%20is%20not%20longer%20needed%26quot%3B.%20This%20means%20that%20even%20you%20create%20a%20new%20instance%20of%20an%20object%20%26mdash%3B%20in%20C%2B%2B%20%26mdash" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;title=catching%20memory%20leaks" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;t=catching%20memory%20leaks" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=catching%20memory%20leaks%20-%20http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2009%2F07%2Fcatching-memory-leaks%2F&amp;title=catching%20memory%20leaks&amp;annotation=A%20memory%20leak%20regards%20the%20concept%20of%20%26quot%3Bnon%20released%20and%20unused%20memory%2C%20an%20unintentional%20failure%20that%20makes%20your%20program%20hold%20memory%20when%20is%20not%20longer%20needed%26quot%3B.%20This%20means%20that%20even%20you%20create%20a%20new%20instance%20of%20an%20object%20%26mdash%3B%20in%20C%2B%2B%20%26mdash" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2009 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2009. | <a href="http://coder.cl/2009/07/catching-memory-leaks/">Permalink</a> | <a href="http://coder.cl/2009/07/catching-memory-leaks/#comments">No comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2009/07/catching-memory-leaks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>css2: my first impression</title>
		<link>http://coder.cl/2009/01/css2-my-first-impression/</link>
		<comments>http://coder.cl/2009/01/css2-my-first-impression/#comments</comments>
		<pubDate>Sat, 31 Jan 2009 02:10:56 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[programming]]></category>
		<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=58</guid>
		<description><![CDATA[A long time ago I was wondering how to learn CSS2. Not as a professional target to apply all this knowledge in a professional way as web designer. The main reason was to be more conscious about what a good web design means. Standards basis are important, but I&#8217;ve found some modifications that are applied [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>A long time ago I was wondering how to learn <i>CSS2</i>. Not as a professional target to apply all this knowledge in a professional way as <i>web designer</i>. The main reason was to be more conscious about what a <i>good web design means</i>. Standards basis are important, but I&#8217;ve found some modifications that are applied to <i>Internet Explorer</i> and related browsers.</p>
<p><!--:--><span id="more-58"></span><!--:en--></p>
<p>Errors on <i>Internet Explorer</i> aren&#8217;t a strange behavior. Also common modifications are well known to web designers. I&#8217;ve started this <i>wordpress theme</i> from scratch. I&#8217;ve found that it was have the target <i>look and feel</i> that I was seeking for. Everything was going right until I&#8217;ve taken a look in <i>Internet Explorer</i> versions <b>6</b> and <b>7</b>. The result was horrible. Seeking for some <i>modifications</i> to apply in my <i>wordpress theme</i>, I&#8217;ve found everything I wanted, but horrible ones too and I&#8217;m not sure about the standard basis on them.</p>
<p>From the <i>Internet Explorer Blog</i>, they are exposing excuses about the <i>Internet Explorer</i> rendering <i>mistakes</i>:</p>
<blockquote><p>
If you open the newly redesigned whitehouse.gov in Internet Explorer 8 on Windows 7 Beta, you&#8217;ll notice that the dropdown menus don&#8217;t hide correctly when you hover over other menu items.
</p></blockquote>
<blockquote><p>
This is because the version of IE8 in Windows 7 Beta is somewhat older than the Internet Explorer 8 Release Candidate (IE8 RC1) that we&#8217;re about to release for Windows Vista and Windows XP. Internet Explorer 8 RC1 displays whitehouse.gov correctly &mdash; without this menu issue, as does most recent internal Win7 build.
</p></blockquote>
<p>Just two paragraphs and I can take the idea that <i>ie-sucks.css</i>. Yeah!, I&#8217;ve joined the campaing <i>ie-sucks.css</i> and the common <i>IE modification</i> of:</p>
<pre><code>
&lt;!--[if IE]&gt;
&lt;link rel=&quot;stylesheet&quot;
      href=&quot;/ie-sucks.css&quot;
      type=&quot;text/css&quot; media=&quot;screen&quot; /&gt;
&lt;![endif]--&gt;
</code></pre>
<p>And created a <i>special cascading stylesheet</i> for this <i>particular browser</i>, since it doesn&#8217;t support the <a href='http://www.w3.org/TR/CSS2/'>CSS 2 Standard</a> and do not pass the <a href='http://www.webstandards.org/action/acid2/'>Acid 2 Test</a>. Now I&#8217;m more conscious about the effort that <i>web designers</i> must do to mantain a <i>standard cascading stylesheet</i>. From the start that was my target, understand <i>CSS2</i> as technology and to talk a common language with <i>web designers</i> in what <i>CSS2</i> refers. My special thanks to <i>Ricardo Osorio</i> for the recomended book, <i>Diego Diaz</i> and <i>Jonathan Ramirez</i> for the given <i>css modification</i>, and <i>Claudio Zelada</i> for his expert opinion. Also I must thank to <i>Gonzalo Diaz</i> for the IE Blog link.</p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;title=css2%3A%20my%20first%20impression&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=A%20long%20time%20ago%20I%20was%20wondering%20how%20to%20learn%20CSS2.%20Not%20as%20a%20professional%20target%20to%20apply%20all%20this%20knowledge%20in%20a%20professional%20way%20as%20web%20designer.%20The%20main%20reason%20was%20to%20be%20more%20conscious%20about%20what%20a%20good%20web%20design%20means.%20Standards%20basis%20are%20import" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;title=css2%3A%20my%20first%20impression&amp;notes=A%20long%20time%20ago%20I%20was%20wondering%20how%20to%20learn%20CSS2.%20Not%20as%20a%20professional%20target%20to%20apply%20all%20this%20knowledge%20in%20a%20professional%20way%20as%20web%20designer.%20The%20main%20reason%20was%20to%20be%20more%20conscious%20about%20what%20a%20good%20web%20design%20means.%20Standards%20basis%20are%20import" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;title=css2%3A%20my%20first%20impression&amp;bodytext=A%20long%20time%20ago%20I%20was%20wondering%20how%20to%20learn%20CSS2.%20Not%20as%20a%20professional%20target%20to%20apply%20all%20this%20knowledge%20in%20a%20professional%20way%20as%20web%20designer.%20The%20main%20reason%20was%20to%20be%20more%20conscious%20about%20what%20a%20good%20web%20design%20means.%20Standards%20basis%20are%20import" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;title=css2%3A%20my%20first%20impression" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;t=css2%3A%20my%20first%20impression" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=css2%3A%20my%20first%20impression%20-%20http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2009%2F01%2Fcss2-my-first-impression%2F&amp;title=css2%3A%20my%20first%20impression&amp;annotation=A%20long%20time%20ago%20I%20was%20wondering%20how%20to%20learn%20CSS2.%20Not%20as%20a%20professional%20target%20to%20apply%20all%20this%20knowledge%20in%20a%20professional%20way%20as%20web%20designer.%20The%20main%20reason%20was%20to%20be%20more%20conscious%20about%20what%20a%20good%20web%20design%20means.%20Standards%20basis%20are%20import" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2009 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2009. | <a href="http://coder.cl/2009/01/css2-my-first-impression/">Permalink</a> | <a href="http://coder.cl/2009/01/css2-my-first-impression/#comments">No comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2009/01/css2-my-first-impression/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>desktop != web based</title>
		<link>http://coder.cl/2008/08/desktop-web-based/</link>
		<comments>http://coder.cl/2008/08/desktop-web-based/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 17:01:11 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=42</guid>
		<description><![CDATA[Sometimes is painfull and others funny to look at Web Application Requeriments made across the time. While the time pass through a thin line of evolution on the flexibility on Web Based Applications, more complex are the requirements made to developers, sometimes imposible to handle and unconscious of what a Web Based Application means. Many [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>Sometimes is <i>painfull</i> and others <i>funny</i> to look at <b>Web Application Requeriments</b> made across the time. While the time pass through a thin line of evolution on the flexibility on <b>Web Based Applications</b>, more complex are the requirements made to developers, sometimes imposible to handle and unconscious of what a <b>Web Based Application</b> means.</p>
<p><!--:--><span id="more-42"></span><!--:en--></p>
<p>Many times we reach the point of unconscious requirements on <b>WBA</b>s on <i>what is</i> and <i>what we can do</i> with these applications, people that doesn&#8217;t <del>thikn</del> think these applications as client/server applications, where the client have only one interface to make the content dynamic, and not intended to access system specific facilities: the embeded scripting language &mdash; usually JavaScript &mdash; and some people still think that JavaScript will allow some controll over the computer, and outside of the Web Browser. Since I know that these things only happens with viruses &mdash; which affects only certain operating systems &mdash; I personally try to avoid the usage of certain operating systems and browsers.</p>
<h4>The point on Portability</h4>
<p>There are a lot of common examples, with the mainstream of <i>special device</i> handling, whereas the goal of the <b>WBA</b> is to handle and manage the given device. Then we get responses as &quot;<i>implement an ActiveX control</i>&quot; or &quot;<i>implement a Java Applet</i>&quot;. Both answers remains under platform dependant solutions, and both require complex user interactions. First, an <i>ActiveX</i> control is a <i>Micro$oft</i> dependant solution, works only under <i>Inernet Explorer</i> and needs the user acceptance to certainly get access to the desired device, such as a special printer, smart card device or other kind of special device, then, the user must modify the browser policies &mdash; in this case <i>Internet Explorer</i> &mdash; to access the device allowing the installation of the needed ActiveX control. At the other hand, <i>Java Applets</i> needing access to hardware devices, must implement wrapper classes through <b>JNI</b> interfaces &mdash; these interfaces are written in <b>C</b> or <b>C++</b>, where both languages are completly native &mdash; and again we are on platform dependant solutions. Also, we need to modify the <i>Java Security Policies</i> to grant access to hardware devices, special files or other kind of system wide resources. Then I can think with strong arguments that these kind of <b>Web Based Applications</b> are not portable and can&#8217;t be considered as <b>Desktop Applications</b>, but largely used by the implementation costs.</p>
<p>Both solutions require the user intervention. You can&#8217;t overwrite the <i>.java.policy</i> created by the user and Java do not allow through the proper and protected <b>API</b> to modify the <i>.java.policy</i> file. At the other side, <b>ActiveX</b> controls reach the same situation, needs the user intervention to allow the <b>Web Browser</b> to instantiate and run these software components, you need to grant certain access to some site in your browser to allow them, but when it is a <i>Virus</i> or <del>antoher</del> another kind of <i>Malware</i> you get infected instead of getting your browser applying the security policies&#8230;</p>
<p>Also we can look at Web Designers how they are implementing portable CSS&#8230; always they need ugly hacks because most browsers don&#8217;t implement the right behavior by interpreting the CSS and many times getting CSS out of known standards.</p>
<h4>The point Realibility</h4>
<p>One particular case &mdash; to which a was in front off &mdash; was a managed printing through a <b>WBA</b> under <i>Micro$oft Wintendo</i> as client. I&#8217;ve made an <i>ActiveX</i> control that was using &mdash; not directly &mdash; the hardware driver to print a <b>PDF</b> file. The printing process was required as <i>silent</i> and without the user intervention, <i>directly to printer</i>. This means no prompts, no dialogs, no download window&#8230; really a trouble without an ActiveX control. Then we get a requirement of <i>silent</i> install for the ActiveX control, this means no user interaction installing and allowing the ActiveX control &mdash; again no prompts, no dialogs, no progress <del>diaglos</del> dialogs &mdash; to be installed and instantiated through the <b>WBA</b> in the client browser.</p>
<p>A Web Browser is a client, a single process and a single thread per page/site that it&#8217;s opened. Under this criteria, you can&#8217;t expect any process control or thread control under the Web Browser. Since JavaScript is a single-threaded scripting language, and you can&#8217;t create more threads than the current execution thread for the site that it&#8217;s visited by the browser, you can&#8217;t expect to control animations and wait loops while you are executing JavaScript &mdash; as result of sequential <del>interpration</del> interpretation of the scripts &mdash; where one of the given requirements was to animate the web page while the ActiveX control was working. The result was that the animation is freezed until the printing process was is finished. Meanwhile the JavaScript that is controlling the ActiveX component was running, the GIF animation in the web page was freezed&#8230; With a <i>Real Desktop Application</i> certainly we get more control over these requirements, but most of them aren&#8217;t implemented because these application means a cost that companies that don&#8217;t wan&#8217;t to pay &mdash; it&#8217;s easier to get a Good Web Developer rather than a Good Desktop/System Application developer.</p>
<p>By allowing <i>ActiveX Controls</i> or <i>Java Applets</i>, you are opening more posibilities to reach a <i>malware infections</i>.</p>
<h4>The point on Standards</h4>
<p>We constantly reach a common advertising behavior instead of rock solid behavior in matter of standards. All the effort that W3C makes to bring orientation on how to construct web pages can be broken by another <i>commercial</i> rather than <i>real standards</i> based proposal: &quot;<i>The Web [0-9]+\.[0-9]+</i>&quot;. Where many of the proposed technologies in this <i>pesudo-standard</i> proposal uses most proprietary technologies, and allows web applications to implement many of the right and clear standard based behavior under proprietary technologies such as <i>Silverlight</i> or <i>Flash</i> &mdash; where the last one was now have an <i>open specifications</i> but without <i>full open standard support</i> &mdash; have an underlying lie and it&#8217;s proposed by some companies rather than known and respected institutions.</p>
<p>The most live example is how Web Designers deal with different behaviors on different browsers regarding the CSS features. Every browser has it&#8217;s own rendering engine, some of them with short modified engines, and every browser has it own <i>custom styling behavior</i>. Common behavior is limited to certain basic styling notation and elements. The main conflict on that, appear on <i>floating divs</i> and similar tasks, fulfilled of CSS tricks.</p>
<p>Another mistake is JavaScript handling. Since some highly used browsers such as <i>Internet Explorer</i> different ways to handle the same <i>events</i> and <i>objetcs</i>, and one clear example is how are handled AJAX requests by this browser &mdash; without the standard XMLHttpRequest object. Instead, you must use an ActiveX Control, and the same ActiveX control can have multiple versions on the same machine&#8230;</p>
<h4>The point on Security</h4>
<p>Many times we think that our applications are safe behind a browser, but what about <i>malware</i> kind of software?. You can get easily infected if you don&#8217;t have the right policies and you are doing something wrong as user, such as navigating as <i>super user</i> in your machine.</p>
<p>Some platforms, simply can&#8217;t get infected, otherwise by weak implementations, you can get infected by <del>suppliying</del> supplying a few clicks on some sites. If you don&#8217;t run as <i>super user</i> in your machine, you can get infected with <i>malware</i> by <i>user specific installers</i>, without the need to be a super user and having administrative priviledges. The <i>malware</i> in this case, can modify the per user &mdash; in this case the current user &mdash; specific security policies for his browser, allowing more <i>malware</i> to infect your computer.</p>
<p>What about these applications that access special devices or have access to special files, such as client certificates. Imagine a spyware specially made to handle certain company specific component. The weakness of obtaining certain keys or passwords through sniffing techniques, or keylogging and sending compressed packets UDP packets of what are you typing are some possibilities in many others.</p>
<p>Some browsers and platforms are a <i>backdoor</i> itself. Other case are signed mails, can you trust in a company &mdash; such as <i>Google</i> or <i>Micro$oft</i> &mdash; to send your personal certificate or GnuPG keys to sign your mail? Certainly is ridiculous to think in that idea, mainly if they don&#8217;t provide any kind of warranty on what your personal or private data regards, just take a good reading on the policies that provide these companies.</p>
<h4>Realize what is a WBA</h4>
<p>Be careful with the proposed standards, read about which protocols, formats and, in general, is conceived as Open Standards for Web Based Applications. There are a lot of materials to read, from public Open Standards to well formed books. Start with the basis, the HTTP/1.1 RFC, and finish with theorical books, mainly about usability. Building <b>WBA</b> professionally isn&#8217;t an easy job, and mostly require a good knowledge on the kind of software you are building. If you work on WBAs, there are a lot of <i>must read</i> documentation available on the Internet and &mdash; certainly &mdash; if you fall under proprietary WBA development &mdash; I mean WBA development under <i>NOT-Open Standards</i> &mdash; you will need to know a lot of the WBA environment&#8230;</p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;title=desktop%20%21%3D%20web%20based&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Sometimes%20is%20painfull%20and%20others%20funny%20to%20look%20at%20Web%20Application%20Requeriments%20made%20across%20the%20time.%20While%20the%20time%20pass%20through%20a%20thin%20line%20of%20evolution%20on%20the%20flexibility%20on%20Web%20Based%20Applications%2C%20more%20complex%20are%20the%20requirements%20made%20to%20develope" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;title=desktop%20%21%3D%20web%20based&amp;notes=Sometimes%20is%20painfull%20and%20others%20funny%20to%20look%20at%20Web%20Application%20Requeriments%20made%20across%20the%20time.%20While%20the%20time%20pass%20through%20a%20thin%20line%20of%20evolution%20on%20the%20flexibility%20on%20Web%20Based%20Applications%2C%20more%20complex%20are%20the%20requirements%20made%20to%20develope" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;title=desktop%20%21%3D%20web%20based&amp;bodytext=Sometimes%20is%20painfull%20and%20others%20funny%20to%20look%20at%20Web%20Application%20Requeriments%20made%20across%20the%20time.%20While%20the%20time%20pass%20through%20a%20thin%20line%20of%20evolution%20on%20the%20flexibility%20on%20Web%20Based%20Applications%2C%20more%20complex%20are%20the%20requirements%20made%20to%20develope" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;title=desktop%20%21%3D%20web%20based" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;t=desktop%20%21%3D%20web%20based" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=desktop%20%21%3D%20web%20based%20-%20http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fdesktop-web-based%2F&amp;title=desktop%20%21%3D%20web%20based&amp;annotation=Sometimes%20is%20painfull%20and%20others%20funny%20to%20look%20at%20Web%20Application%20Requeriments%20made%20across%20the%20time.%20While%20the%20time%20pass%20through%20a%20thin%20line%20of%20evolution%20on%20the%20flexibility%20on%20Web%20Based%20Applications%2C%20more%20complex%20are%20the%20requirements%20made%20to%20develope" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2008 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2008. | <a href="http://coder.cl/2008/08/desktop-web-based/">Permalink</a> | <a href="http://coder.cl/2008/08/desktop-web-based/#comments">3 comments</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2008/08/desktop-web-based/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>where is the Inernet?</title>
		<link>http://coder.cl/2008/08/where-is-the-inernet/</link>
		<comments>http://coder.cl/2008/08/where-is-the-inernet/#comments</comments>
		<pubDate>Sat, 16 Aug 2008 22:59:21 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=41</guid>
		<description><![CDATA[By &#34;where is the Internet?&#34; I mean the Internet that have conceived Jon Postel and others kind him. Now everything seems to be a giant web based application. But there are many thing that you can&#8217;t do through a web interfaces. I remember that in earlier years, I was able to connect to NNTP servers [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>By &quot;<i>where is the Internet?</i>&quot; I mean the <b>Internet</b> that have conceived <i>Jon Postel</i> and others kind him. Now everything seems to be a <i>giant web based application</i>. But there are many thing that <i>you can&#8217;t do</i> through a web interfaces. I remember that in earlier years, I was able to connect to <b>NNTP</b> servers running <i>Usenet</i> news. Sharing, commenting and helping other people was granted by <i>netiquete</i> rules. Now seems to be ignored and everyone is going with <b>HTML</b> messages, sometimes with ugly implemented <b>MUAs</b> or <b>NUAs</b>, that uncover the right behavior of these kind of software tools.</p>
<p><!--:--><span id="more-41"></span><!--:en--></p>
<p>Also, I&#8217;ve tried using <i>Google Groups</i> few days, but there I can&#8217;t sing my messages through <i>GnuPG</i>. The same happens on my <i>Gmail Account</i>. I hate the <b>HTML</b> messages, everything seems to be an <i>unordered soup of html tags</i> from many people as the mail has been replied or forwarded the original message. You loose levels of quotes and it&#8217;s hard to understand the unclear messages in a <i>tag soup stack</i>.</p>
<p>I prefer plain text messages, more sane and clear to read.</p>
<pre><code>

&gt; I am trying to test if a character gets into an integer field and
&gt; found no solution. Even just a single character has no way to test
&gt; when the field is an int.

First of all, all input is done in the form of characters.
The thing is that some sequences of characters can be interpreted as
representing an integer and some can't.
</code></pre>
<p>For me is more clear the replies for each paragraph, than reading the message at the top of the original message, it the real sense of a <i>conversation</i> rather than a competition to get known <i>who has the last word and better style</i>. You can get really loosed on the conversation if you try to read a really old message and sometimes, if you have some kind of <i>ordered notes</i> somewhere, you can store a complete thread in a single message with the complete conversation without loosing sense of the <i>topic</i> that involves the message.</p>
<p>Some forums are able to <i>quote</i> previous messages. But if my <i>Internet connection</i> fails &mdash; here in Chile is common to get a failing connection from any ISP, because most of them s**ks &mdash; I will not be able to read offline the messages I want.</p>
<p>Most people now think that Internet it&#8217;s about <i>Web Sites</i> and <i>Instant Messaging</i> &mdash; aka Messenger, Google Talk and Yahoo! IM &mdash; and don&#8217;t know other kind of services such as <b>NNTP</b>, <b>IRC</b> or <b>Telnet</b> and everything seems to fulfilled of <i>advertising messages</i>. Sometimes I think that the <i>netiquete</i> is completely <del>loosed</del> lost and nobody is making some guidance on that to the <i>n00bs</i> that enters the Internet. I frequently see unindented code in some forums and newsgroups, and who owns these messages is praying for help, then I can&#8217;t help someone without <i>netiquete criteria</i>.</p>
<p>My current <b>ISP</b> I think is planning to close the <b>NNTP</b> service. The <b>NNTP</b> server that connects me to <i>Usenet</i> isn&#8217;t updated and I can&#8217;t see <b>none</b> of the groups I was visiting frequently and I&#8217;ve been force to pay to access <i>Usenet</i> to another provider. Also I see clear that many messages on the <i>newsgroups</i> are <i>advertising messages</i>.</p>
<p>Instead of creating new specialized services, everything is going to be <i>Web Based</i> and considering how was designed the <b>HTTP</b> protocol, most communications can&#8217;t be reached seriously. I just can&#8217;t imagine a <i>security advisory</i> announcing a <i>high impact bug</i> though a <i>Web Interface</i> without any proper signature to validate the authenticity&#8230;</p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;title=where%20is%20the%20Inernet%3F&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=By%20%26quot%3Bwhere%20is%20the%20Internet%3F%26quot%3B%20I%20mean%20the%20Internet%20that%20have%20conceived%20Jon%20Postel%20and%20others%20kind%20him.%20Now%20everything%20seems%20to%20be%20a%20giant%20web%20based%20application.%20But%20there%20are%20many%20thing%20that%20you%20can%27t%20do%20through%20a%20web%20interfaces.%20I%20remember%20th" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;title=where%20is%20the%20Inernet%3F&amp;notes=By%20%26quot%3Bwhere%20is%20the%20Internet%3F%26quot%3B%20I%20mean%20the%20Internet%20that%20have%20conceived%20Jon%20Postel%20and%20others%20kind%20him.%20Now%20everything%20seems%20to%20be%20a%20giant%20web%20based%20application.%20But%20there%20are%20many%20thing%20that%20you%20can%27t%20do%20through%20a%20web%20interfaces.%20I%20remember%20th" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;title=where%20is%20the%20Inernet%3F&amp;bodytext=By%20%26quot%3Bwhere%20is%20the%20Internet%3F%26quot%3B%20I%20mean%20the%20Internet%20that%20have%20conceived%20Jon%20Postel%20and%20others%20kind%20him.%20Now%20everything%20seems%20to%20be%20a%20giant%20web%20based%20application.%20But%20there%20are%20many%20thing%20that%20you%20can%27t%20do%20through%20a%20web%20interfaces.%20I%20remember%20th" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;title=where%20is%20the%20Inernet%3F" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;t=where%20is%20the%20Inernet%3F" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=where%20is%20the%20Inernet%3F%20-%20http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2008%2F08%2Fwhere-is-the-inernet%2F&amp;title=where%20is%20the%20Inernet%3F&amp;annotation=By%20%26quot%3Bwhere%20is%20the%20Internet%3F%26quot%3B%20I%20mean%20the%20Internet%20that%20have%20conceived%20Jon%20Postel%20and%20others%20kind%20him.%20Now%20everything%20seems%20to%20be%20a%20giant%20web%20based%20application.%20But%20there%20are%20many%20thing%20that%20you%20can%27t%20do%20through%20a%20web%20interfaces.%20I%20remember%20th" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2008 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2008. | <a href="http://coder.cl/2008/08/where-is-the-inernet/">Permalink</a> | <a href="http://coder.cl/2008/08/where-is-the-inernet/#comments">2 comments</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2008/08/where-is-the-inernet/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>i catch you n00b h4x0r&#8230;</title>
		<link>http://coder.cl/2008/07/i-catch-you-n00b-h4x0r/</link>
		<comments>http://coder.cl/2008/07/i-catch-you-n00b-h4x0r/#comments</comments>
		<pubDate>Sat, 26 Jul 2008 19:15:26 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=40</guid>
		<description><![CDATA[Recently I&#8217;ve discovered a spyware infecting computers though the weak autoplay implementation. I was looking for the connections at one notebooks that I use frequently &#8212; but many of them I don&#8217;t own &#8212; and I look a strange connection to some irc ports. Since I don&#8217;t enter to IRC servers while I&#8217;m under Wintendo, [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>Recently I&#8217;ve discovered a <a href='http://en.wikipedia.org/wiki/Spyware'>spyware</a> infecting computers though the weak <a href='http://en.wikipedia.org/wiki/Autoplay##AutoPlay'>autoplay</a> implementation.</p>
<p><!--:--><span id="more-40"></span><!--:en--></p>
<p>I was looking for the connections at one notebooks that I use frequently &mdash; but many of them I don&#8217;t own &mdash; and I look a strange connection to some <a href='http://en.wikipedia.org/wiki/Irc'>irc ports</a>. Since I don&#8217;t enter to <i>IRC</i> servers while I&#8217;m under <i>Wintendo</i>, it was completely strange. Using the <i>third party</i> <del>sysinternalls</del> <a href='http://technet.microsoft.com/en-us/sysinternals/default.aspx'>sysinternals</a> tools from <i>Micro$oft</i>, I&#8217;ve pointed to the process that were making these strange connections. I&#8217;ve examined the processes with <a href='http://coder.cl/2007/10/27/procinfo-01-win32-process-information/'>procinfo</a>, killed them with the same tool, and moved the files outside of the system, compressed and carried out to my <b>FreeBSD</b> workstation.</p>
<pre><code>

C:\WINTENDO\&gt; procinfo -p &quot;\\system32\\explorer.exe&quot; -dk
[16] C:\WINTENDO\system32\explorer.exe
	Base Addr   : 0x7E340000
	Entry Point : 0x00000000
	Image Size  : 53248.00 bytes
[16] Killing process... done!
All actions over 10 done!
C:\WINTENDO\&gt; procinfo -p &quot;\\system32\\ctfmonv.exe&quot; -dk
[12] C:\WINTENDO\system32\ctfmonv.exe
	Base Addr   : 0x75546000
	Entry Point : 0x00345634
	Image Size  : 53248.00 bytes
[12] Killing process... done!
All actions over 9 done!

</code></pre>
<p>Inside <b>FreeBSD</b>, I&#8217;ve installed a disassembler, and looking at the assembler code, linked libraries, I&#8217;ve seen that the <i>spyware/troyan</i> was linked against <i>Visual Basic Runtime Libraries</i>, ugly implementation for a virus. Also, I&#8217;ve seen some messages sent to the <i>IRC</i> channel where it connects, some typical signature as:</p>
<pre><code>

Welcom to Sun@w0rm.a You are the rOot <img src='http://coder.cl/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  sL#>
www.xxxxxx.cl | www.xxxxxx.cl/foro

</code></pre>
<p>I&#8217;ve tested at least three <a href='http://es.wikipedia.org/wiki/Antivirus'>antiviral</a> solutions. None of them have detected anything, and also the installed antiviral solution have not detected it. Just the <i>McAfee</i> virus research center have detected it as <i>w32/autorun.worm.bo</i>. This means just that the <i>last antiviral solution</i> of some providers can detect it. Imagine <i>how weak</i> is <i>Wintendo</i> and <i>how big</i> is the <i>antivirus business</i>. Then I&#8217;ve tried creating <i>security policies</i> under Wintendo, but it didn&#8217;t work. Only deactivating the <i>autoplay</i> feature I was able to stop the <i>spyware</i> &mdash; <i>Wintendo</i> does not comes with a tool to do that, you must download the <a href='http://download.microsoft.com/download/f/c/a/fca6767b-9ed9-45a6-b352-839afb2a2679/TweakUiPowertoySetup.exe'>TweakUI powertoy</a>.</p>
<p>Now, based on the disassembled code, I know the server, channel and nick that is using this guy. Also, the <a href='http://en.wikipedia.org/wiki/Backdoor_(computing)'>backdoor</a> creates a file called &quot;<i>c:\file.txt</i>&quot; that is readed by <b>cmd.exe</b>. The commands are given from the <i>IRC</i> chat as messages and the <i>commands output</i> is sent as message back to the attacker. If you have <i>Wintendo XP</i>, you may be asked by the <i>Wintendo Firewall</i> to allow or deny the access to the <i>Internet</i> for both <b>Windows Library</b> and <b>Messenger</b> programs to communicate outside. Since both programs have <i>concurrent names</i>, you will allow them. Check your registry for the <a href='http://support.microsoft.com/kb/179365'>Run, RunOnce, RunServices, RunServicesOnce and Startup</a> registry keys for the <b>string values</b> &quot;Messenger&quot; &mdash; pointing to &quot;<i>C:\WINTENDO\system32\ctfmonv.exe</i> &mdash; and &quot;WinXP&quot;, &quot;Windows XP&quot; or &quot;winxp&quot; &mdash; pointing to &quot;<i>C:\WINTENDO\system32\explorer.exe</i>&quot; and use <i>procinfo</i> tool to kill the processes pointing to these executable files, then remove the registry entries.</p>
<p>Not because I&#8217;ve made it, but <a href='http://coder.cl/2007/10/27/procinfo-01-win32-process-information/'>procinfo</a> is a nice tool, you can kill a process that have a <i>lock</i> on some <a href='http://en.wikipedia.org/wiki/Dynamic-link_library'>DLL</a> that is infected, and then remove the referred <i>DLL</i>, just by running:</p>
<pre><code>

C:\WINTENDO\&gt; procinfo -m &quot;\\s345dfg.dll&quot; -dk
[16] C:\WINTENDO\explorer.exe
	Base Addr   : 0x7E340000
	Entry Point : 0x00000000
	Image Size  : 53248.00 bytes
[16] Killing process... done!
All actions over 10 done!

</code></pre>
<p>Well, as <i>weak</i> as is <b>Wintendo</b>, I <b>hate</b> to use it&#8230; And I ask my self for &quot;<i>how many unknown viruses are infecting computers running Wintendo right now?</i>&quot;. <i>Too weak for my taste&#8230;</i></p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;title=i%20catch%20you%20n00b%20h4x0r...&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Recently%20I%27ve%20discovered%20a%20spyware%20infecting%20computers%20though%20the%20weak%20autoplay%20implementation.%0D%0A%0D%0AI%20was%20looking%20for%20the%20connections%20at%20one%20notebooks%20that%20I%20use%20frequently%20%26mdash%3B%20but%20many%20of%20them%20I%20don%27t%20own%20%26mdash%3B%20and%20I%20look%20a%20strange%20connection%20t" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;title=i%20catch%20you%20n00b%20h4x0r...&amp;notes=Recently%20I%27ve%20discovered%20a%20spyware%20infecting%20computers%20though%20the%20weak%20autoplay%20implementation.%0D%0A%0D%0AI%20was%20looking%20for%20the%20connections%20at%20one%20notebooks%20that%20I%20use%20frequently%20%26mdash%3B%20but%20many%20of%20them%20I%20don%27t%20own%20%26mdash%3B%20and%20I%20look%20a%20strange%20connection%20t" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;title=i%20catch%20you%20n00b%20h4x0r...&amp;bodytext=Recently%20I%27ve%20discovered%20a%20spyware%20infecting%20computers%20though%20the%20weak%20autoplay%20implementation.%0D%0A%0D%0AI%20was%20looking%20for%20the%20connections%20at%20one%20notebooks%20that%20I%20use%20frequently%20%26mdash%3B%20but%20many%20of%20them%20I%20don%27t%20own%20%26mdash%3B%20and%20I%20look%20a%20strange%20connection%20t" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;title=i%20catch%20you%20n00b%20h4x0r..." title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;t=i%20catch%20you%20n00b%20h4x0r..." title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=i%20catch%20you%20n00b%20h4x0r...%20-%20http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2008%2F07%2Fi-catch-you-n00b-h4x0r%2F&amp;title=i%20catch%20you%20n00b%20h4x0r...&amp;annotation=Recently%20I%27ve%20discovered%20a%20spyware%20infecting%20computers%20though%20the%20weak%20autoplay%20implementation.%0D%0A%0D%0AI%20was%20looking%20for%20the%20connections%20at%20one%20notebooks%20that%20I%20use%20frequently%20%26mdash%3B%20but%20many%20of%20them%20I%20don%27t%20own%20%26mdash%3B%20and%20I%20look%20a%20strange%20connection%20t" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2008 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2008. | <a href="http://coder.cl/2008/07/i-catch-you-n00b-h4x0r/">Permalink</a> | <a href="http://coder.cl/2008/07/i-catch-you-n00b-h4x0r/#comments">2 comments</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2008/07/i-catch-you-n00b-h4x0r/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>the wrong way to run&#8230;</title>
		<link>http://coder.cl/2008/06/the-wrong-way-to-run/</link>
		<comments>http://coder.cl/2008/06/the-wrong-way-to-run/#comments</comments>
		<pubDate>Thu, 26 Jun 2008 03:05:24 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=39</guid>
		<description><![CDATA[Today was another development nightmare day, everything seems to be cloaked in wrong events. Me under pressure and Winbloat &#8212; call it Micro$oft Windows &#8212; fails everywhere I need it working. In the company where I work we use some tools to validate the source that is given to the clients and coding IDEs to [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->
<p>Today was another development nightmare day, everything seems to be cloaked in wrong events. Me under pressure and <b>Winbloat</b> &mdash; call it <i>Micro$oft Windows</i> &mdash; fails everywhere I need it working.</p>
<p><!--:--><span id="more-39"></span><!--:en--></p>
<p>
<img style="width: 480px;" src='http://coder.cl/img/ridiculous-file-locks.png' alt='WTF!' />
</p>
<p>In the company where I work we use some tools to validate the source that is given to the clients and coding IDEs to work around languages such as Java and <b>.RETARD</b> &mdash; call it <b>.NET</b> if you want &mdash; including <b>Eclipse</b> and <b>Visual Studio</b>. Also, there are some <i>proprietary validation tools</i> to use with <i>proprietary structured text</i> file formats <i>out of known standards</i>.</p>
<p>Events related to <b>eclipse</b> were things like <i>loosing library references</i> &mdash; jar files &mdash; and slow project compiling tasks and <i>non-writable</i> files after <i>file locking</i> actions given by the operating system &mdash; do you know I work with <i>Micro$oft Wintendo</i>? &mdash; and then a reboot is the only solution &mdash; I know the <i>unlocker</i> program, but I don&#8217;t have it installed and also I prefer a solution given from the <i>product manufacturer</i>. Well, the project is huge, a lot of lines of code and classes to compile and really can&#8217;t imagine a <b>.RETARD</b> project with similar to this, I think that is possible to get a half day compiling a <b>.RETARD</b> project with all those lines of code.</p>
<p>Looking at the <i>proprietary validation</i> tool, from the <i>Yoyodine</i> company, I get &quot;<i>everything is working</i>&quot; messages. Since I know a little about <a href='http://en.wikipedia.org/wiki/Perl'>Perl</a> and I&#8217;ve prototyped some of my work under <b>Perl</b> &mdash; such as <a href='http://coder.cl/download/grped.pl.txt' title='This is just an example'>acl-user-tools</a>, a small <a href='http://en.wikipedia.org/wiki/C_%28programming_language%29'>C</a> language project to manage users around a <a href='http://en.wikipedia.org/wiki/Web_hosting'>web hosting</a> environment &mdash; and, just for fun, some <a href='http://www.irssi.org/'>Irssi</a> scripts, such as <a href='http://coder.cl/download/irssi-exp.tgz'>Irssi Exp</a>. I use <i>terminal based</i> <a href='http://en.wikipedia.org/wiki/Internet_Relay_Chat'>IRC</a> clients, since while I&#8217;m working under <a href='http://www.freebsd.org/doc/en/books/handbook/current-stable.html'>FreeBSD-CURRENT</a> I need lightweight software.</p>
<p>Here the point turns black. Since <i>Micro$soft Wintendo</i> has an <i>association registry</i> between the file extensions and the <i>script interpreter</i>, I was completely wrong about calling scripts directly from the command line without giving the path to the interpreter under the non-user-friendly <i>Wintendo Command Interpreter</i> known as <b>cmd.exe</b>.</p>
<pre><code>

C:\somewhere\in\the\disk &gt; yoyodine-validator.pl &lt; file-to-validate.txt
There isn't problems in the given file
</code></pre>
<p><i>Everything is OK</i> and I&#8217;ve sent the software parts to the company client. The response was clear &quot;<i>have you validated the software?</i>&quot;. Nothing working in the <i>Wintendo Non-Operating System</i>, and I get this response, since I have lunched in 20 minutes to get software validated and working <i>at time</i> for two weeks and two days, I was hating the <i>non-operating system</i> for a while with the fixed idea of <i>kicking off</i> my workstation.</p>
<p>Looking at the <i>file association registry</i>, the way by I was running the <i>yoyodine-validator.pl</i> isn&#8217;t wrong for someone who knows about scripting languages such as <b>Perl</b>. Under <b>*NIX</b> operating systems &mdash; call it <b>*BSD</b> or <b>Linux</b> &mdash; scripting languages runs using <i>magic strings</i> and <i>file permissions</i>. The magic string isn&#8217;t so different from the form &quot;<i>#!/path/to/interpreter</i>&quot; at the beginning of the script and the file permissions are <i>execution permissions</i> to the user that is running the script. <i>Micro$oft Wintendo</i> have a different way to make a script <i>runnable</i>.</p>
<p>
<img src='http://coder.cl/img/perl-asociation.png' alt='WTF!' />
</p>
<p>I have associated the <i>perl extension</i> and the running statement is:</p>
<p>
<img src='http://coder.cl/img/perl-execution.png' alt='WTF!' />
</p>
<p>Since a <i>perl script</i> can have many arguments, the first thing wrong in the calling statement is number of arguments, passing just the first argument &mdash; anyone knows if the <b>cmd.exe</b> command line interpreter is well documented anywhere? &mdash; and the rest of the argument aren&#8217;t present in the calling statement.</p>
<p>If you remember the script was called using <i>I/O redirection</i>, inherited from <b>*NIX</b> systems, and these arguments aren&#8217;t passed directly to the interpreter, instead are handled by <i>command interpreter</i>. Since the registry calls the native <i>Wintendo</i> shell &mdash; known as <i>Wintendo Explorer</i> &mdash; it ignores the <i>input redirection</i> given from the command line. The result, is an <i>input stream</i> completely loosed. Then I think &quot;<b>wintendo command line shell cmd.exe and windows shell explorer.exe aren&#8217;t integrated</b>&quot; since you can not pass an input stream from the command line to the program launched from the <i>Wintendo shell</i>. Another <i>non-documented</i> and <i>buggy behavior</i> of this non-operating system.</p>
<p>The solution to work with similar tasks is calling the programs directly from the command line, overriding the <b>cmd.exe</b> pass-through-the-real-shell <b>explorer.exe</b> calling statements. Then we can&#8217;t emulate the <b>*NIX</b> magic strings and file permissions to get a script working as a native command. Somewhere I&#8217;ve seen a <i>magic string</i> to work with script interpreters, but &quot;<i>where is documented?</i>&quot; and &quot;<i>does the system comes with the proper documentation to work on these kind of tasks?</i>&quot;.</p>
<pre><code>

C:\path\to\anywhere &gt; C:\path\to\perl.exe yoyodine-script.pl &lt; to-validate.txt

</code></pre>
<p>A single line of code changes the behavior of a script program completely. If you ask me, <i>Micro$oft Wintendo</i> is thinked to work with games, word processors and spreadsheets. Wasn&#8217;t thinked as <b>*NIX</b> as we see in &quot;<a href='http://harmful.cat-v.org/cat-v/unix_prog_design.pdf'>Program design in the UNIX&copy; environment</a>&quot; and do not have in any manner a consideration on integration between streams connectivity. If you want to integrate any component of the non-operating system, you must write an <i>Active X</i> object or write similar things &mdash; a high-cost implementation for a small task &mdash; then I think that <i>Micro$oft Wintendo</i> isn&#8217;t an <b>harmoniously developed</b> operating system.</p>
<p>The possible reason about this behavior it&#8217;s that <b>cmd.exe</b> is using the <a href='http://msdn.microsoft.com/en-us/library/bb762153(VS.85).aspx'>ShellExecute</a> <i>system call</i>, instead of using a proper way to handle <i>I/O redirection</i> or <i>piping</i> functions. If I&#8217;m true, you can&#8217;t expect the right behavior on scripts if your trying to run them under <b>cmd.exe</b> by using <i>registry associations</i> on the scripts files. Then, you must <i>research</i> about possible <i>magic strings</i> in batch commands and use the script under these terms. Meanwhile isn&#8217;t a <i>well documented</i> way to use language interpreters under windows, you will not be able to run scripts directly&#8230;</p>
<p><!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;title=the%20wrong%20way%20to%20run...&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=Today%20was%20another%20development%20nightmare%20day%2C%20everything%20seems%20to%20be%20cloaked%20in%20wrong%20events.%20Me%20under%20pressure%20and%20Winbloat%20%26mdash%3B%20call%20it%20Micro%24oft%20Windows%20%26mdash%3B%20fails%20everywhere%20I%20need%20it%20working.%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0AIn%20the%20company%20where%20I%20work%20we%20use%20so" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;title=the%20wrong%20way%20to%20run...&amp;notes=Today%20was%20another%20development%20nightmare%20day%2C%20everything%20seems%20to%20be%20cloaked%20in%20wrong%20events.%20Me%20under%20pressure%20and%20Winbloat%20%26mdash%3B%20call%20it%20Micro%24oft%20Windows%20%26mdash%3B%20fails%20everywhere%20I%20need%20it%20working.%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0AIn%20the%20company%20where%20I%20work%20we%20use%20so" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;title=the%20wrong%20way%20to%20run...&amp;bodytext=Today%20was%20another%20development%20nightmare%20day%2C%20everything%20seems%20to%20be%20cloaked%20in%20wrong%20events.%20Me%20under%20pressure%20and%20Winbloat%20%26mdash%3B%20call%20it%20Micro%24oft%20Windows%20%26mdash%3B%20fails%20everywhere%20I%20need%20it%20working.%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0AIn%20the%20company%20where%20I%20work%20we%20use%20so" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;title=the%20wrong%20way%20to%20run..." title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;t=the%20wrong%20way%20to%20run..." title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=the%20wrong%20way%20to%20run...%20-%20http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Fthe-wrong-way-to-run%2F&amp;title=the%20wrong%20way%20to%20run...&amp;annotation=Today%20was%20another%20development%20nightmare%20day%2C%20everything%20seems%20to%20be%20cloaked%20in%20wrong%20events.%20Me%20under%20pressure%20and%20Winbloat%20%26mdash%3B%20call%20it%20Micro%24oft%20Windows%20%26mdash%3B%20fails%20everywhere%20I%20need%20it%20working.%0D%0A%0D%0A%0D%0A%0D%0A%0D%0A%0D%0AIn%20the%20company%20where%20I%20work%20we%20use%20so" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2008 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2008. | <a href="http://coder.cl/2008/06/the-wrong-way-to-run/">Permalink</a> | <a href="http://coder.cl/2008/06/the-wrong-way-to-run/#comments">No comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2008/06/the-wrong-way-to-run/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>elegant bug reports</title>
		<link>http://coder.cl/2008/06/elegant-bug-reports/</link>
		<comments>http://coder.cl/2008/06/elegant-bug-reports/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 02:07:32 +0000</pubDate>
		<dc:creator>Daniel Molina Wegener</dc:creator>
				<category><![CDATA[rants]]></category>

		<guid isPermaLink="false">http://coder.cl/?p=38</guid>
		<description><![CDATA[As software developers we reach bugs many times. In Open Standards, bug reports reach a common point: &#8220;every bug report has a reasonable description and have attached the proper backtrace or debug examples to reproduce the target bug&#8220;. Writing a good bug report implies a good written problem description. Many FOSS software have embeded an [...]]]></description>
			<content:encoded><![CDATA[<p><!--:en-->As <em>software developers</em> we reach <strong>bugs</strong> many times. In <strong>Open Standards</strong>, bug reports reach a common point: &#8220;<em>every bug report has a reasonable description and have attached the proper backtrace or debug examples to reproduce the target bug</em>&#8220;. Writing a good <strong>bug report</strong> implies a good written problem description. Many <strong>FOSS</strong> software have embeded an automatic <strong>bug report generator</strong>, but also many developers are helping with complex <em>bug reports</em> that aren&#8217;t handled by these systems.<!--:--><span id="more-38"></span><!--:en--></p>
<p>Mandatory development tools in any project are <strong>bug tracking systems</strong> and <strong>version control systems</strong>. Commercial side of software developemnt knows <strong>bug tracking systems</strong> as <strong>ticket systems</strong>, but don&#8217;t have another meaning. Who says that <em>isn&#8217;t making any mistake</em> on software development is wrong. We have clear examples on huge companies with <strong>known bugs</strong> issues.</p>
<h4>The Dark Side</h4>
<p>From the <a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B326549&amp;x=16&amp;y=13">Microsoft NON-WORKING Knewledege Base</a> we get a message like this.</p>
<blockquote><p>As a result, Windows Explorer does not allow you to view or change the Read-only or System attributes of folders. When a folder has the Read-Only attribute set it causes Explorer to request the Desktop.ini of that folder to see if any special folder settings need to be set. It has been seen where if a network share that has a large amount of folders set to Read-only, it can cause Explorer to take longer then what is expected to render the contents of that share while it waits on the retrieval of the Desktop.ini files.</p></blockquote>
<p>Obviously, this message tell us about a <strong>known bug</strong> — if you work with software that isn&#8217;t enable to write forcibly the files, you will not be able to save your work — but hidding by commercial targets. Seems like <strong>Micro$osft</strong> is making <em>perfect software</em>, you can&#8217;t report a bug anywhere. The worst philosphy on software developemnt. Also, the <em>knowledge base</em> is closed to the users — nobody can contribute with it.</p>
<p>Also, if I try to report a bug on <em>Micro$oft</em> products, and I <a href="http://www.google.cl/search?hl=es&amp;q=microsoft+submit+a+bug+problem&amp;btnG=Buscar&amp;meta=">search where to submit the problem</a>, I get poor results. I ask if <em>Micro$osft</em> can handle an <em>Open Source Model</em> bug reporting system, how many errors would be reported by the users, remembering that the common <em>Windows</em> user have no knowledge on <em>how to submit a probem report</em> because they think that everything with their systems is <strong>OK</strong>.</p>
<h4>The Force</h4>
<p>In <a href="http://en.wikipedia.org/wiki/Free_and_open-source_software">FOSS</a> software, we get elegant ways to report bugs. We have have the direct feedback from the developers. But we must do the proper <em>bug report</em>.</p>
<p>Known ways to report a bug is using <a href="http://en.wikipedia.org/wiki/GNU_Debugger">gdb backtraces</a> and <strong>bug unit testing</strong>. A well <a href="http://en.wikipedia.org/wiki/Software_release_life_cycle">betatester</a> know how to compile the code and store the debugging symbols of the tested software — that&#8217;s the advanced way, a non-interrumping-performance way to get the debugging version — and the other way is pytting directly the debugging symbols in the software:</p>
<pre><code>

# the same flags applies to CPPFLAGS or CXXFLAGS
# configuring with debugging flags
env CFLAGS="-g3" ./configure --the-configure-options

# configuring with debugging and profiling flags
env CFLAGS="-g3" ./configure --the-configure-options

# do "man env" if you don't know env(1)

</code></pre>
<p>The, we begin our software testing, if we get a <a href="http://en.wikipedia.org/wiki/Core_dump">core dump</a>, we can get the origin of the problem. After getting <em>core dump</em> images, we must set out <em>core</em> limit with <strong>ulimit</strong> built-in command — this command is common to the most shells available.</p>
<pre><code>

# start our backtrace
gdb /path/to/our/program /path/to/the/core.image

# then, inside gdb we get the backtrace by using the backtrace
(gdb) backtrace

</code></pre>
<p>A common way to get backtraces and report bugs to the <strong>FOSS</strong> developers. Then, we reach the <a href="http://en.wikipedia.org/wiki/Bug_tracking_system">Bug Tracking Systems</a> and <a href="http://en.wikipedia.org/wiki/Issue_tracking_system">Issue Tracking Systems</a>. The intersting part of this, is that the language used to report bugs is <em>almost right</em>, the common <strong>FOSS</strong> user knows how to describe the <strong>bug</strong>, from what was doing the user to problem it self — when the user have a well knowledege on what is reporing.</p>
<p>Keeping the software controlled is a <em>hard task</em>. Now we have a lot of tools on <em>Version Control</em>, <em>Issue Tracking</em> and <em>Bug Reporting</em>. Also the mailing lists helps a lot — the communication way of most <strong>FOSS</strong> projects — on solving problems as teams.</p>
<p>Every <strong>FOSS</strong> project has a <em>bug report writing guidelines</em>, the language must be clear and consistent, also can have attached the propper patch. The real <em>nice thing</em> of this: <em>if the bug report is clear and points to the real problem, you quickly will get feedback from the developers</em> — depending on how seriously is it. On commercial software, is hard to get a <em>core image</em> and then report a bug correctly. Some <em>Micro$oft</em> products are sending these images — recently added to their products — but you need to mount a development environment before.</p>
<p>I know people <del>aged from</del> with ages between 14 to 16 years old writing good <strong>PR&#8217;s</strong> or <strong>bug reports</strong>, I belive that they will be good <strong>FOSS</strong> software writters too, someday. They know the <strong>FOSS</strong> rules, such as <strong>RTFM</strong>. The <strong>FOSS</strong> community appears to be more motivated and dedicated to the software development than <em>closed software</em> developers. Every <em>Windows</em> user, aged from 14 to 16 years that I know, is always thinking on games, loosing time, then are asking about how to remove certaing virus from his computer or how to overclock his machine. I&#8217;ve seen some of these guys saying <em>I will be a computer engineer</em>, but not worried on what is learning really. How many hours doing nothing?. I disagree on games for <em>younglins</em>, I agree only if they have trained correctly <strong>xD</strong>.<!--:--></p>



share this article at: 


	<a rel="nofollow"  target="_blank" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;title=elegant%20bug%20reports&amp;source=coder+.+cl+system+programmer+%26amp%3B+web+developer&amp;summary=As%20software%20developers%20we%20reach%20bugs%20many%20times.%20In%20Open%20Standards%2C%20bug%20reports%20reach%20a%20common%20point%3A%20%22every%20bug%20report%20has%20a%20reasonable%20description%20and%20have%20attached%20the%20proper%20backtrace%20or%20debug%20examples%20to%20reproduce%20the%20target%20bug%22.%20Writing%20a%20good" title="LinkedIn"><img src="http://coder.cl/wp-content/plugins/sociable/images/linkedin.png" title="LinkedIn" alt="LinkedIn" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://delicious.com/post?url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;title=elegant%20bug%20reports&amp;notes=As%20software%20developers%20we%20reach%20bugs%20many%20times.%20In%20Open%20Standards%2C%20bug%20reports%20reach%20a%20common%20point%3A%20%22every%20bug%20report%20has%20a%20reasonable%20description%20and%20have%20attached%20the%20proper%20backtrace%20or%20debug%20examples%20to%20reproduce%20the%20target%20bug%22.%20Writing%20a%20good" title="del.icio.us"><img src="http://coder.cl/wp-content/plugins/sociable/images/delicious.png" title="del.icio.us" alt="del.icio.us" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;title=elegant%20bug%20reports&amp;bodytext=As%20software%20developers%20we%20reach%20bugs%20many%20times.%20In%20Open%20Standards%2C%20bug%20reports%20reach%20a%20common%20point%3A%20%22every%20bug%20report%20has%20a%20reasonable%20description%20and%20have%20attached%20the%20proper%20backtrace%20or%20debug%20examples%20to%20reproduce%20the%20target%20bug%22.%20Writing%20a%20good" title="Digg"><img src="http://coder.cl/wp-content/plugins/sociable/images/digg.png" title="Digg" alt="Digg" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://reddit.com/submit?url=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;title=elegant%20bug%20reports" title="Reddit"><img src="http://coder.cl/wp-content/plugins/sociable/images/reddit.png" title="Reddit" alt="Reddit" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.facebook.com/share.php?u=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;t=elegant%20bug%20reports" title="Facebook"><img src="http://coder.cl/wp-content/plugins/sociable/images/facebook.png" title="Facebook" alt="Facebook" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://twitter.com/home?status=elegant%20bug%20reports%20-%20http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F" title="Twitter"><img src="http://coder.cl/wp-content/plugins/sociable/images/twitter.png" title="Twitter" alt="Twitter" class="sociable-hovers" /></a>
	<a rel="nofollow"  target="_blank" href="http://www.google.com/bookmarks/mark?op=edit&amp;bkmk=http%3A%2F%2Fcoder.cl%2F2008%2F06%2Felegant-bug-reports%2F&amp;title=elegant%20bug%20reports&amp;annotation=As%20software%20developers%20we%20reach%20bugs%20many%20times.%20In%20Open%20Standards%2C%20bug%20reports%20reach%20a%20common%20point%3A%20%22every%20bug%20report%20has%20a%20reasonable%20description%20and%20have%20attached%20the%20proper%20backtrace%20or%20debug%20examples%20to%20reproduce%20the%20target%20bug%22.%20Writing%20a%20good" title="Google Bookmarks"><img src="http://coder.cl/wp-content/plugins/sociable/images/googlebookmark.png" title="Google Bookmarks" alt="Google Bookmarks" class="sociable-hovers" /></a>


<br/><br/><br/><hr height="1px" width="50%" />
<div style='text-align: center !important;'><b>Copyright © 2008 Daniel Molina Wegener</b><br/><b>Atribución-No Comercial-Sin Derivadas 2.0 Chile</b><br/><a target='_new' rel="license" href="http://creativecommons.org/licenses/by-nc-nd/2.0/cl/"><img alt="Creative Commons License" style="border-width:0" src="/cc88x31.png" /></a></div>
<br/><hr height="1px" width="100%" />
<p><small>© Daniel Molina Wegener for <a href="http://coder.cl">coder . cl</a>, 2008. | <a href="http://coder.cl/2008/06/elegant-bug-reports/">Permalink</a> | <a href="http://coder.cl/2008/06/elegant-bug-reports/#comments">One comment</a><br/>Post tags: <br/></small></p>
]]></content:encoded>
			<wfw:commentRss>http://coder.cl/2008/06/elegant-bug-reports/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
