<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;C0IHSXw7fCp7ImA9WhRbFUU.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243</id><updated>2012-02-06T18:25:38.204-08:00</updated><title>gulden-pt</title><subtitle type="html">Gulden as a blogger</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://gulden-pt.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>29</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/Gulden-pt" /><feedburner:info uri="gulden-pt" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;DEEMQHw8cSp7ImA9Wx9aF0o.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-1260229517437349815</id><published>2011-03-10T05:23:00.000-08:00</published><updated>2011-03-10T09:04:41.279-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-03-10T09:04:41.279-08:00</app:edited><title>How to collect CPU values from WMI. #perl #win32 #wmi</title><content type="html">This program will demonstrate how easy it is to obtain data from Windows Management Instrumentation (&lt;a href="http://en.wikipedia.org/wiki/Windows_Management_Instrumentation"&gt;WMI&lt;/a&gt;), using a perl script. By analogy other information may be collected from WMI.&lt;br /&gt;&lt;br /&gt;To obtain these data, I used the WMI Performance Counter class "&lt;a href="http://msdn.microsoft.com/en-us/library/aa394317(v=vs.85).aspx"&gt;Win32_PerfRawData_PerfOS_Processor&lt;/a&gt;" , which provides me the counters that measure aspects of processor(s) activity.&lt;br /&gt;&lt;br /&gt;Since the data collected via WMI are percentages. I just needed to calculate the percentage of time used for each counter, depending on the time interval between measurements.&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;use warnings;&lt;br /&gt;&lt;br /&gt;use Win32::OLE;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;my $interval = 1;&lt;br /&gt;my $key = 'Name';&lt;br /&gt;my @properties = qw(PercentIdleTime PercentProcessorTime PercentPrivilegedTime PercentUserTime PercentInterruptTime TimeStamp_Sys100NS);&lt;br /&gt;&lt;br /&gt;my $hash1 = {};&lt;br /&gt;&lt;br /&gt;my $wmi = Win32::OLE-&gt;GetObject("winmgmts://./root/cimv2")&lt;br /&gt; or die "Failed to get object\n";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;my $list = $wmi-&gt;InstancesOf('Win32_PerfRawData_PerfOS_Processor')&lt;br /&gt; or die "Failed to get instance object\n";&lt;br /&gt;&lt;br /&gt;my $v; &lt;br /&gt;foreach $v (in $list) {   &lt;br /&gt;  map{$hash1-&gt;{$v-&gt;{$key}}-&gt;{$_}  = $v-&gt;{$_} }@properties;&lt;br /&gt;}&lt;br /&gt; &lt;br /&gt;while(sleep 1){&lt;br /&gt;&lt;br /&gt; $list = $wmi-&gt;InstancesOf('Win32_PerfRawData_PerfOS_Processor')&lt;br /&gt;  or die "Failed to get instance object\n";&lt;br /&gt; &lt;br /&gt; my $hash = {};&lt;br /&gt; foreach $v (in $list) {   &lt;br /&gt;  map{$hash-&gt;{$v-&gt;{$key}}-&gt;{$_}  = $v-&gt;{$_} }@properties;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt; my $cpu_time = sprintf("%.2f", (1 - get_value($hash1-&gt;{'_Total'}, $hash-&gt;{'_Total'}, 'PercentProcessorTime' )) * 100);&lt;br /&gt; my $cpu_idle = sprintf("%.2f", 100-$cpu_time);&lt;br /&gt; my $cpu_user = sprintf("%.2f", get_value($hash1-&gt;{'_Total'}, $hash-&gt;{'_Total'}, 'PercentUserTime' )* 100);&lt;br /&gt; my $cpu_priv = sprintf("%.2f", get_value($hash1-&gt;{'_Total'}, $hash-&gt;{'_Total'}, 'PercentPrivilegedTime' )* 100);&lt;br /&gt; my $cpu_int = sprintf("%.2f", get_value($hash1-&gt;{'_Total'}, $hash-&gt;{'_Total'}, 'PercentInterruptTime' )* 100);  &lt;br /&gt; printf "CPU Time %s %% , privileged %s %% , user %s %%, interrupt %s %%\n", $cpu_time,$cpu_priv,$cpu_user,$cpu_int;&lt;br /&gt;&lt;br /&gt; $hash1 = $hash;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;exit;&lt;br /&gt;&lt;br /&gt;sub get_value {&lt;br /&gt; my $h1 = shift;&lt;br /&gt; my $h2 = shift;&lt;br /&gt; my $property = shift;&lt;br /&gt; return (($h2-&gt;{$property} - $h1-&gt;{$property})/($h2-&gt;{'TimeStamp_Sys100NS'}-$h1-&gt;{'TimeStamp_Sys100NS'}));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Output sample:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;CPU Time 2.03 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 1.87 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 2.16 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 1.76 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 2.19 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 1.77 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 1.98 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 1.93 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 2.08 % , privileged 1.96 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;CPU Time 2.84 % , privileged 2.94 % , user 0.00 %, interrupt 0.00 %&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-1260229517437349815?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/51n3DkXPwuXfLkieUBbIyiLCwwg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/51n3DkXPwuXfLkieUBbIyiLCwwg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/51n3DkXPwuXfLkieUBbIyiLCwwg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/51n3DkXPwuXfLkieUBbIyiLCwwg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/LzgvFRRVCxs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/1260229517437349815/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=1260229517437349815" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/1260229517437349815?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/1260229517437349815?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/LzgvFRRVCxs/how-to-collect-cpu-values-from-wmi-perl.html" title="How to collect CPU values from WMI. #perl #win32 #wmi" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2011/03/how-to-collect-cpu-values-from-wmi-perl.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0IFRns-cCp7ImA9Wx5XEUU.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3812566495379751221</id><published>2010-09-08T10:23:00.000-07:00</published><updated>2010-09-10T22:05:17.558-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-10T22:05:17.558-07:00</app:edited><title>Diff between two files (unordered and with different number of lines)</title><content type="html">This program will find the differences between two files, and should be applied in the following situations:&lt;br /&gt;&lt;ul&gt; &lt;li&gt;The files have different number of lines&lt;/li&gt; &lt;li&gt;The files are unordered.&lt;/li&gt;&lt;li&gt;`diff` fails to get the differences&lt;/li&gt;&lt;li&gt;Large files (the reason to use shell `sort` function)&lt;/li&gt;&lt;li&gt;Single record per line&lt;/li&gt;&lt;/ul&gt;For example: Imagine you have two files with a list of users, and these listings were taken from a database at different time instants. These listings will be different because users have been added and removed from the database. This script will help you to find the differences when `diff` can't resolve it.&lt;br /&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 13px; white-space: pre;"&gt;&lt;span class="Apple-style-span"&gt;&lt;span class="Apple-style-span" style="font-size: 16px; white-space: normal;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;pre name="code" class="ruby"&gt;#!/usr/bin/perl -w&lt;br /&gt;&lt;br /&gt;use strict;&lt;br /&gt;&lt;br /&gt;my $file1= $ARGV[0];&lt;br /&gt;my $file2= $ARGV[1];&lt;br /&gt;&lt;br /&gt;unless($file1 and $file2){&lt;br /&gt;print "Usage: $0 &amp;lt;file1&amp;gt; &amp;lt;file2&amp;gt;\n\n";&lt;br /&gt;exit;&lt;br /&gt;}&lt;br /&gt;unless( -f $file1){&lt;br /&gt;print "File 1 does not exist: [$file1]\n\n";&lt;br /&gt;exit;&lt;br /&gt;}&lt;br /&gt;unless( -f $file2){&lt;br /&gt;print "File 2 does not exist: [$file2]\n\n";&lt;br /&gt;exit;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;my $tmp_file1 = '/tmp/f1.tmp';&lt;br /&gt;my $tmp_file2 = '/tmp/f2.tmp';&lt;br /&gt;&lt;br /&gt;`sort $file1 &amp;gt; $tmp_file1`;&lt;br /&gt;`sort $file2 &amp;gt; $tmp_file2`;&lt;br /&gt;&lt;br /&gt;open(F1, $tmp_file1) or die "$!";&lt;br /&gt;open(F2, $tmp_file2) or die "$!";&lt;br /&gt;&lt;br /&gt;my $read_f1 = 1;&lt;br /&gt;my $read_f2 = 1;&lt;br /&gt;&lt;br /&gt;my $s1;&lt;br /&gt;my $s2;&lt;br /&gt;while(1){&lt;br /&gt;&lt;br /&gt;if (eof(F1)){print "&amp;gt;&amp;gt;$_" while &amp;lt;F2&amp;gt;;}&lt;br /&gt;if(eof(F2)){print "&amp;lt;&amp;lt;$_" while &amp;lt;F1&amp;gt;;}&lt;br /&gt;&lt;br /&gt;if($read_f1){$s1 = &amp;lt;F1&amp;gt;;}&lt;br /&gt;if($read_f2){$s2 = &amp;lt;F2&amp;gt;;}&lt;br /&gt;&lt;br /&gt;last unless $s1 and $s2;&lt;br /&gt;&lt;br /&gt;$read_f1 = 1;&lt;br /&gt;$read_f2 = 1;&lt;br /&gt;&lt;br /&gt;next if ( lc($s1) eq lc($s2) );&lt;br /&gt;&lt;br /&gt;if(lc($s1) gt lc($s2)){&lt;br /&gt;print "&amp;gt;$s2";&lt;br /&gt;$read_f1 = 0;&lt;br /&gt;}else{&lt;br /&gt;print "&amp;lt;$s1";&lt;br /&gt;$read_f2 = 0;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;unlink $tmp_file1 or die "$!";&lt;br /&gt;unlink $tmp_file2 or die "$!";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3812566495379751221?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/skwrERvgQgLUl4z9_0brGx41b_Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/skwrERvgQgLUl4z9_0brGx41b_Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/skwrERvgQgLUl4z9_0brGx41b_Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/skwrERvgQgLUl4z9_0brGx41b_Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/41OUI8DQ918" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3812566495379751221/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3812566495379751221" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3812566495379751221?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3812566495379751221?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/41OUI8DQ918/diff-between-two-files-unordered-and.html" title="Diff between two files (unordered and with different number of lines)" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2010/09/diff-between-two-files-unordered-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUIBSXk9eip7ImA9WxFQFkU.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-8683310787264977210</id><published>2010-05-12T09:46:00.000-07:00</published><updated>2010-05-12T09:59:18.762-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-12T09:59:18.762-07:00</app:edited><title>How to kill TCP client connections</title><content type="html">Several times we are faced with a large number of TCP connections from the same source IP.&lt;br /&gt;How to kill that connections?&lt;br /&gt;&lt;br /&gt;This is an easy way:&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ for i in `lsof -i tcp@client_ip_address| awk '{print $2}'`; do kill -9 $i; done &lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;See also : &lt;i&gt;&lt;a href="http://en.wikipedia.org/wiki/Tcpkill"&gt;tcpkill&lt;/a&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-8683310787264977210?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/C9cU4SWKCkcHJVsCA9sH5cmgEkw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C9cU4SWKCkcHJVsCA9sH5cmgEkw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/C9cU4SWKCkcHJVsCA9sH5cmgEkw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/C9cU4SWKCkcHJVsCA9sH5cmgEkw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/t-Vrqu-4xyw" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/8683310787264977210/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=8683310787264977210" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/8683310787264977210?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/8683310787264977210?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/t-Vrqu-4xyw/how-to-kill-tcp-client-connections.html" title="How to kill TCP client connections" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2010/05/how-to-kill-tcp-client-connections.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEACSHk_eyp7ImA9WxNUEko.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-4748351648475643439</id><published>2009-11-02T06:18:00.000-08:00</published><updated>2009-11-03T10:26:09.743-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-03T10:26:09.743-08:00</app:edited><title>Solaris: analyze a core dump file</title><content type="html">Whenever there is a coredump, the task of uncovering the source of the problem may not be easy. In Solaris we have some tools that will give us clues in order to solve the problem.&lt;br /&gt;&lt;br /&gt;Coredump files on Solaris are generated in the directory:&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;/var/core/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Once in that directory, find your file core. Then run the following commands:&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ pstack &lt;core_filename&gt;&lt;br /&gt;core 'core_host_progname_1001_1_1256228346_13885' of 13885: /opt/coolstack/bin/perl -w /export/home/user/bin/progname&lt;br /&gt;-----------------  lwp# 1 / thread# 1  --------------------&lt;br /&gt; fede5d77 lwp_yield (fed32a00) + 7&lt;br /&gt; feddfa66 mutex_unlock (fee5c5d0) + 133&lt;br /&gt; fed846ce malloc   (15, 8be8ed0, 8dcf888, 80cf342) + 3e&lt;br /&gt; 080c20ac Perl_safesysmalloc () + 2c&lt;br /&gt;-----------------  lwp# 2 / thread# 2  --------------------&lt;br /&gt; fede5ceb __lwp_park (87a93c8, 87a9398, 0) + b&lt;br /&gt; fede04f0 cond_wait_queue (87a93c8, 87a9398, 0) + 5e&lt;br /&gt; fede09c4 _cond_wait (87a93c8, 87a9398) + 64&lt;br /&gt; fede0a06 cond_wait (87a93c8, 87a9398) + 21&lt;br /&gt; fede0a3f pthread_cond_wait (87a93c8, 87a9398, 1, fe7a8108) + 1b&lt;br /&gt; fe7a82a8 XS_threads__shared_cond_wait (0, 0, 0, 0, 0, 0) + 1ac&lt;br /&gt; 4d580000 ???????? ()&lt;br /&gt;-----------------  lwp# 3 / thread# 3  --------------------&lt;br /&gt; feabf697 add_collation (fe71bc28, feaf49b7, 1a, feaf49b7) + 54b&lt;br /&gt; feac939b cs_leave (fe71bca0, fe71bd28, 1a, 0, fe71b0c0, fefd261b) + 83&lt;br /&gt; feada60d my_xml_leave (0, fe71b160, fe71b178, feada92b) + 141&lt;br /&gt; feadac9a my_xml_parse (fe71bca0, 8dee0e8, 4755, 0, 0, 0) + 662&lt;br /&gt; feac9ae7 my_parse_charset_xml (8dee0e8, 4755, feabf14c, 0, feffdd28, 4755) + 77&lt;br /&gt; feabf7d5 my_read_charset_file (fe71bf88, fe71bf00, fe71bf50, feffb818, fe71bf14, fefce6f6) + dd&lt;br /&gt; feac01f2 get_charset_by_csname (8dd0a08, 20, 10, 0) + 16a&lt;br /&gt; feadcbab mysql_init_character_set (8b00598, 8d01a8b, c, 2) + 5f&lt;br /&gt; feaddcb5 mysql_real_connect (8b00598, 8af44a8, 89ab6f8, 89b28a0, 8afa190, cea) + 6cd&lt;br /&gt; fec24031 mysql_dr_connect () + 1add&lt;br /&gt;-----------------  lwp# 4 / thread# 4  --------------------&lt;br /&gt; feabf697 add_collation (fe65cc28, feaf49b7, 1a, feaf49b7) + 54b&lt;br /&gt; feac939b cs_leave (fe65cca0, fe65cd28, 1a, 0, feaaed64, feffb104) + 83&lt;br /&gt; feada60d my_xml_leave (0, fe65c160, fe65c178, feada92b) + 141&lt;br /&gt; feadac9a my_xml_parse (fe65cca0, 8df2848, 4755, 0, 0, 0) + 662&lt;br /&gt; feac9ae7 my_parse_charset_xml (8df2848, 4755, feabf14c, 0, fee5c5d0, 4755) + 77&lt;br /&gt; feabf7d5 my_read_charset_file (0, 0, 0, 0, 0, 0) + dd&lt;br /&gt; feac01f2 get_charset_by_csname (8dd0a18, 20, 10, 0) + 16a&lt;br /&gt; feadcbab mysql_init_character_set (8bfd4c0, 8d03a9b, c, 2) + 5f&lt;br /&gt; feaddcb5 mysql_real_connect (8bfd4c0, 8bf1bf8, 8bf2380, 8bf23c8, 8bf2440, cea) + 6cd&lt;br /&gt; fec24031 mysql_dr_connect () + 1add&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;The command above shows the last state of the stack for each thread (lwp) of the program.&lt;br /&gt;That isn't enough we need to know in each thread the problem have occurred. There is another command that lets us know that, the "pflags" command.&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ pflags &lt;core_filename&gt;&lt;br /&gt;core 'core_host_progname_1001_1_1256228346_13885' of 13885: /opt/coolstack/bin/perl -w /export/home/user/bin/progname&lt;br /&gt;        data model = _ILP32  flags = MSACCT|MSFORK&lt;br /&gt; /1:    flags = STOPPED  yield()&lt;br /&gt;        why = PR_SUSPENDED&lt;br /&gt;        sigmask = 0xffbff8f7,0x0000fff7&lt;br /&gt; /2:    flags = STOPPED  lwp_park(0x0,0x0,0x0)&lt;br /&gt;        why = PR_SUSPENDED&lt;br /&gt; /3:    flags = STOPPED&lt;br /&gt;        why = PR_SUSPENDED&lt;br /&gt;        lwppend = 0x00000400,0x00000000&lt;br /&gt; /4:    flags = 0&lt;br /&gt;        sigmask = 0xffffbefc,0x0000ffff  cursig = SIGSEGV&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Now we know know that thread 4 have received the SIGNAL "SIGSEGV" (Segmentation Fault).&lt;br /&gt;So, the SIGSEGV was generated in Thread 4 when using a MySQL function "add_collation".&lt;br /&gt;&lt;br /&gt;With that information isn't easy to know the reason of the coredump. Lets use another command, the "pmap".&lt;br /&gt;The "pmap" command display information about the address space of a process, in this case the program that causes the coredump.&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ pmap &lt;core_filename&gt;| less&lt;br /&gt;core 'core_host_progname_1001_1_1256228346_13885' of 13885: /opt/coolstack/bin/perl -w /export/home/user/bin/progname&lt;br /&gt;08042000      24K rw---    [ stack ]&lt;br /&gt;08050000    1128K r-x--  /opt/coolstack/bin/perl&lt;br /&gt;08179000      52K rwx--  /opt/coolstack/bin/perl&lt;br /&gt;08186000   12752K rwx--    [ heap ]&lt;br /&gt;FE65A000      20K rw---    [ stack tid=4 ]&lt;br /&gt;FE660000      12K r-x--  /lib/nss_dns.so.1&lt;br /&gt;FE673000       4K rw---  /lib/nss_dns.so.1&lt;br /&gt;FE680000      24K r-x--  /lib/nss_files.so.1&lt;br /&gt;FE696000       4K rw---  /lib/nss_files.so.1&lt;br /&gt;FE6A0000      64K rwx--&lt;br /&gt;FE6C0000      64K rwx--&lt;br /&gt;FE719000      20K rw---    [ stack tid=3 ]&lt;br /&gt;FE75E000       4K rw---    [ stack tid=2 ]&lt;br /&gt;FE760000      64K rw---&lt;br /&gt;FE780000      64K rw---&lt;br /&gt;FE7A0000      44K r-x--  /opt/coolstack/lib/perl5/5.8.8/i86pc-solaris-thread-multi/auto/threads/shared/shared.so&lt;br /&gt;FE7BA000       8K rwx--  /opt/coolstack/lib/perl5/5.8.8/i86pc-solaris-thread-multi/auto/threads/shared/shared.so&lt;br /&gt;FE7C0000       8K r-x--  /opt/coolstack/lib/perl5/5.8.8/i86pc-solaris-thread-multi/auto/Cwd/Cwd.so&lt;br /&gt;FE7D1000       4K rwx--  /opt/coolstack/lib/perl5/5.8.8/i86pc-solaris-thread-multi/auto/Cwd/Cwd.so&lt;br /&gt;FE7E0000      64K rwx--&lt;br /&gt;FE800000      40K r-x--  /usr/sfw/lib/libcrypto_extra.so.0.9.7&lt;br /&gt;FE81A000       4K rw---  /usr/sfw/lib/libcrypto_extra.so.0.9.7&lt;br /&gt;FE820000      36K r-x--  /usr/sfw/lib/libssl_extra.so.0.9.7&lt;br /&gt;FE839000       4K rw---  /usr/sfw/lib/libssl_extra.so.0.9.7&lt;br /&gt;FE840000      56K r-x--  /lib/libmd.so.1&lt;br /&gt;FE85E000       4K rw---  /lib/libmd.so.1&lt;br /&gt;FE860000      28K r-x--  /lib/libaio.so.1&lt;br /&gt;FE877000       4K rw---  /lib/libaio.so.1&lt;br /&gt;FE878000       4K rw---  /lib/libaio.so.1&lt;br /&gt;FE880000     936K r-x--  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE97A000      84K rw---  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE98F000       8K rw---  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE9A0000     200K r-x--  /usr/sfw/lib/libssl.so.0.9.7&lt;br /&gt;FE9E2000      12K rw---  /usr/sfw/lib/libssl.so.0.9.7&lt;br /&gt;FE9F0000      24K r-x--  /lib/libgen.so.1&lt;br /&gt;FEA06000       4K rw---  /lib/libgen.so.1&lt;br /&gt;FEA10000     216K r-x--  /lib/libresolv.so.2&lt;br /&gt;FEA56000       8K rw---  /lib/libresolv.so.2&lt;br /&gt;FEA60000      24K r-x--  /lib/librt.so.1&lt;br /&gt;FEA76000       4K rw---  /lib/librt.so.1&lt;br /&gt;FE878000       4K rw---  /lib/libaio.so.1&lt;br /&gt;FE880000     936K r-x--  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE97A000      84K rw---  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE98F000       8K rw---  /usr/sfw/lib/libcrypto.so.0.9.7&lt;br /&gt;FE9A0000     200K r-x--  /usr/sfw/lib/libssl.so.0.9.7&lt;br /&gt;FE9E2000      12K rw---  /usr/sfw/lib/libssl.so.0.9.7&lt;br /&gt;FE9F0000      24K r-x--  /lib/libgen.so.1&lt;br /&gt;FEA06000       4K rw---  /lib/libgen.so.1&lt;br /&gt;FEA10000     216K r-x--  /lib/libresolv.so.2&lt;br /&gt;FEA56000       8K rw---  /lib/libresolv.so.2&lt;br /&gt;FEA60000      24K r-x--  /lib/librt.so.1&lt;br /&gt;FEA76000       4K rw---  /lib/librt.so.1&lt;br /&gt;FEA80000      60K r-x--  /usr/lib/libz.so.1&lt;br /&gt;FEA9E000       4K rwx--  /usr/lib/libz.so.1&lt;br /&gt;FEAA0000     352K r-x--  /opt/coolstack/mysql_32bit/lib/mysql/libmysqlclient.so.16.0.0&lt;br /&gt;FEB00000       4K rwx--&lt;br /&gt;FEB07000    1040K rwx--  /opt/coolstack/mysql_32bit/lib/mysql/libmysqlclient.so.16.0.0&lt;br /&gt;FEC0B000       4K rwx--  /opt/coolstack/mysql_32bit/lib/mysql/libmysqlclient.so.16.0.0&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Since the problem occurred in the invocation of a MySQL function, with the "pmap" command, I've  detected that my Perl used a DBD:: mysql library which was linked with a  32-bit MySQL library. My OS is 64 bits, however that is not a problem since 32 Bits libmysqlclient_32_bits is compatible with 64 bits MySQL DB's.&lt;br /&gt;Despite all efforts to detect the problem in the program that I was developing, it was found that the problem was in the instance of a 64 bits MySQL DB  that was using 32 bits libraries.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-4748351648475643439?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gPHElAEyoIV1eNaJhPKc6Z5iacI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gPHElAEyoIV1eNaJhPKc6Z5iacI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gPHElAEyoIV1eNaJhPKc6Z5iacI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gPHElAEyoIV1eNaJhPKc6Z5iacI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/uB8pZyXP1W0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/4748351648475643439/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=4748351648475643439" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4748351648475643439?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4748351648475643439?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/uB8pZyXP1W0/solaris-analyze-core-dump-file.html" title="Solaris: analyze a core dump file" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/11/solaris-analyze-core-dump-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkINRnc6fip7ImA9WxNUEUo.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-7014442831625438552</id><published>2009-10-29T08:43:00.000-07:00</published><updated>2009-11-02T08:16:37.916-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-02T08:16:37.916-08:00</app:edited><title>QMAIL + detect SMTP Attacks from the same IP</title><content type="html">A simple way to detect SMTP attacks from a single source IP can be achieved using the following command:&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ fgrep "tcpserver: pid"   "/var/log/qmail/smtp/current" | awk {'print $6'}| sort | uniq -c| sort  -rn |less&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;The output will be similar to:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;     59 72.15.222.65&lt;br /&gt;     42 63.251.135.109&lt;br /&gt;     38 66.211.168.231&lt;br /&gt;     33 63.251.135.115&lt;br /&gt;     29 63.251.135.74&lt;br /&gt;     25 213.63.26.144&lt;br /&gt;     25 194.65.138.99&lt;br /&gt;     23 63.251.135.75&lt;br /&gt;     16 194.65.5.228&lt;br /&gt;     15 93.102.93.77&lt;br /&gt;     15 195.23.124.22&lt;br /&gt;     13 212.55.154.23&lt;br /&gt;     12 213.91.163.191&lt;br /&gt;     12 212.55.154.24&lt;br /&gt;     11 212.55.154.21&lt;br /&gt;     11 198.31.62.64&lt;br /&gt;     10 208.65.131.106&lt;br /&gt;     9 98.244.216.176&lt;br /&gt;     9 85.243.160.139&lt;br /&gt;...&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-7014442831625438552?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/AmLRr2e00EBveNSOfaFEhjSSRPM/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AmLRr2e00EBveNSOfaFEhjSSRPM/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/AmLRr2e00EBveNSOfaFEhjSSRPM/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/AmLRr2e00EBveNSOfaFEhjSSRPM/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/BMtu8ptgdH8" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/7014442831625438552/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=7014442831625438552" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7014442831625438552?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7014442831625438552?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/BMtu8ptgdH8/qmail-detect-smtp-attacks-from-same-ip.html" title="QMAIL + detect SMTP Attacks from the same IP" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/10/qmail-detect-smtp-attacks-from-same-ip.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQCQ3g7eSp7ImA9WxNQFU4.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-1744829985344574676</id><published>2009-09-21T03:59:00.000-07:00</published><updated>2009-09-21T04:26:02.601-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-09-21T04:26:02.601-07:00</app:edited><title>How to recover a corrupted  gzip file.</title><content type="html">Sometimes we are faced with a corrupted ".gz" file, with important information and we must recover it at any cost. Fortunately there is a tool able to recover these files in an efficient manner, the &lt;a href="http://www.urbanophile.com/arenn/coding/gzrt/gzrt.html"&gt;gzip Recovery Toolkit&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The installation process is very easy:&lt;br /&gt;&lt;br /&gt;$ wget http://www.urbanophile.com/arenn/coding/gzrt/gzrt-0.5.tar.gz&lt;br /&gt;$ tar -xzvf gzrt-0.5.tar.gz&lt;br /&gt;$ cd gzrt-0.5&lt;br /&gt;$ make&lt;br /&gt;&lt;br /&gt;And that's it.&lt;br /&gt;&lt;br /&gt;To start using it just do:&lt;br /&gt;&lt;br /&gt;$ ./gzrecover file_to_recover.gz&lt;br /&gt;&lt;br /&gt;then it will create a new filename called "file_to_recover.recovered"&lt;br /&gt;&lt;br /&gt;You must also read the "&lt;span style="font-weight: bold;"&gt;Disclaimer and Warnings&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;«This program is provided AS IS with absolutely NO WARRANTY. It is not guaranteed to recover anything from your file, nor is what it does recover guaranteed to be good data. The bigger your file, the more likely that something will be extracted from it. Also keep in mind that this program gets faked out and is likely to "recover" some bad data. &lt;span style="font-weight: bold;"&gt;Everything should be manually verified&lt;/span&gt;. &lt;/span&gt;»&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-1744829985344574676?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eTlnNu_gJc4VweiupSDpvAIz4-4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eTlnNu_gJc4VweiupSDpvAIz4-4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eTlnNu_gJc4VweiupSDpvAIz4-4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eTlnNu_gJc4VweiupSDpvAIz4-4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/tqbbTgIwa28" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/1744829985344574676/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=1744829985344574676" title="2 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/1744829985344574676?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/1744829985344574676?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/tqbbTgIwa28/how-to-recover-corrupted-gzip-file.html" title="How to recover a corrupted  gzip file." /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>2</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/09/how-to-recover-corrupted-gzip-file.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0MCRns4eyp7ImA9WxJXF08.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3422942708489920555</id><published>2009-06-11T05:54:00.000-07:00</published><updated>2009-06-11T06:04:27.533-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-06-11T06:04:27.533-07:00</app:edited><title>Abimago - Image Bank</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.abimago.com"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 286px;" src="http://2.bp.blogspot.com/_DITeB0LSylc/SjD_IeKyQiI/AAAAAAAAAEI/KEwH9v-BPnA/s320/Abimago.jpg" alt="" id="BLOGGER_PHOTO_ID_5346053278691115554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.abimago.com/"&gt;Abimago&lt;/a&gt; is a versatile Image Bank, although especially aimed at responding to detailed and specific demands from expert professionals in areas such as advertising, marketing or press.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3422942708489920555?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/EjCFCAtnO6oPEfwfnwJAyEdtkbQ/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EjCFCAtnO6oPEfwfnwJAyEdtkbQ/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/EjCFCAtnO6oPEfwfnwJAyEdtkbQ/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/EjCFCAtnO6oPEfwfnwJAyEdtkbQ/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/tH34O4-Ut8c" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3422942708489920555/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3422942708489920555" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3422942708489920555?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3422942708489920555?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/tH34O4-Ut8c/abimago-image-bank.html" title="Abimago - Image Bank" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://2.bp.blogspot.com/_DITeB0LSylc/SjD_IeKyQiI/AAAAAAAAAEI/KEwH9v-BPnA/s72-c/Abimago.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/06/abimago-image-bank.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0EDRn4yfSp7ImA9WxVaE04.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3809427987075370187</id><published>2009-04-09T20:42:00.000-07:00</published><updated>2009-04-09T20:54:37.095-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-04-09T20:54:37.095-07:00</app:edited><title>HOWTO : SVN over HTTPS</title><content type="html">Create the repository&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ svnadmin create /home/svn/repo/svn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Install RPM mod_dav_svn&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ yum install mod_dav_svn&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Config who can access the repository and their permissions (r or w) /home/svn/conf/users-access-file&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;[/]&lt;br /&gt;gulden = rw&lt;br /&gt;other = r&lt;br /&gt;[/privaterepo]&lt;br /&gt;*=&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;"&lt;span style="font-weight: bold;"&gt;gulden&lt;/span&gt;" user can access the the "/" repository with read and wright (rw) permissions&lt;/li&gt;&lt;li&gt;"&lt;span style="font-weight: bold;"&gt;other&lt;/span&gt;" can access the the "/" repository with read (r) permission&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;No one&lt;/span&gt; can access the "/privaterepo" repository&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Create the Users password file&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ htpasswd /home/svn/conf/passwd gulden&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Edit Apache configuration file:  /etc/httpd/conf.d/subversion.conf&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;LoadModule dav_svn_module     modules/mod_dav_svn.so&lt;br /&gt;LoadModule authz_svn_module   modules/mod_authz_svn.so&lt;br /&gt;&lt;br /&gt;&lt;virtualhost 443=""&gt;&lt;br /&gt;ServerName myhost.com&lt;br /&gt;ServerAlias svn.myhost.com&lt;br /&gt;&lt;location&gt;&lt;br /&gt; Order allow,deny&lt;br /&gt; Allow from all&lt;br /&gt; DAV svn&lt;br /&gt; SVNParentPath /home/svn/repo&lt;br /&gt; # our access control policy&lt;br /&gt; AuthzSVNAccessFile /home/svn/conf/users-access-file&lt;br /&gt; # try anonymous access first, resort to real&lt;br /&gt; # authentication if necessary.&lt;br /&gt; Satisfy Any&lt;br /&gt; Require valid-user&lt;br /&gt; #  how to authenticate a user&lt;br /&gt; AuthType Basic&lt;br /&gt; AuthName "My Subversion repository"&lt;br /&gt; AuthUserFile /home/svn/conf/passwd&lt;br /&gt;&lt;/location&gt;&lt;br /&gt;&lt;/virtualhost&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Checkout a project&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt; $ svn co https://svn.myhost.com/svn/foo/trunk&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3809427987075370187?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/o_QjBsX0ghQIgg4vuwS4KQnR6ws/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o_QjBsX0ghQIgg4vuwS4KQnR6ws/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/o_QjBsX0ghQIgg4vuwS4KQnR6ws/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/o_QjBsX0ghQIgg4vuwS4KQnR6ws/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/Jmg9j3tUWlU" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3809427987075370187/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3809427987075370187" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3809427987075370187?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3809427987075370187?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/Jmg9j3tUWlU/howto-svn-over-https.html" title="HOWTO : SVN over HTTPS" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/04/howto-svn-over-https.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0IDRn08eSp7ImA9WxVVFk4.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-6909722869205253677</id><published>2009-03-09T15:52:00.000-07:00</published><updated>2009-03-09T15:59:37.371-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-09T15:59:37.371-07:00</app:edited><title>HOW TO syntax highlight blogger : widget</title><content type="html">For those who need syntax highlight in their blog, to several programming languages, can use the widget "&lt;a href="http://fazibear.googlepages.com/blogger.html"&gt;Blogger Widget SyntaxHighlighter&lt;/a&gt;" and is powered by &lt;a href="http://code.google.com/p/syntaxhighlighter/"&gt;SyntaxHighlighter 1.5.1&lt;/a&gt;&lt;br /&gt;Give it a try.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-6909722869205253677?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/gS-TkeQZCvVBGpsC3o3hVaQcMho/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gS-TkeQZCvVBGpsC3o3hVaQcMho/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/gS-TkeQZCvVBGpsC3o3hVaQcMho/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/gS-TkeQZCvVBGpsC3o3hVaQcMho/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/L_E1-pq3AKQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/6909722869205253677/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=6909722869205253677" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6909722869205253677?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6909722869205253677?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/L_E1-pq3AKQ/how-to-syntax-highlight-blogger-widget.html" title="HOW TO syntax highlight blogger : widget" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/03/how-to-syntax-highlight-blogger-widget.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkADQnw-fyp7ImA9WxVVFk4.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-8811532623853191151</id><published>2009-03-07T19:15:00.000-08:00</published><updated>2009-03-09T15:46:13.257-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-09T15:46:13.257-07:00</app:edited><title>Rails: Where to put our initialization stuff</title><content type="html">In our applications we sometimes need to initialize  global vars or rails predefined values. Whenever we want to do that, we just need to create files in the directory&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;config/initializers/&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;instead of messing with the environment.rb file.&lt;br /&gt;&lt;br /&gt;Source:&lt;a href="http://ryandaigle.com/articles/2007/2/23/what-s-new-in-edge-rails-stop-littering-your-evnrionment-rb-with-custom-initializations"&gt; Ryan's Scraps: What's New in Edge Rails: Stop Littering In Your Environment File&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-8811532623853191151?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/87Y9paFikK6oC4cQOsQyTmSmY3s/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/87Y9paFikK6oC4cQOsQyTmSmY3s/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/87Y9paFikK6oC4cQOsQyTmSmY3s/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/87Y9paFikK6oC4cQOsQyTmSmY3s/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/PsmxA0wVB7w" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/8811532623853191151/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=8811532623853191151" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/8811532623853191151?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/8811532623853191151?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/PsmxA0wVB7w/rails-where-to-put-our-initialization.html" title="Rails: Where to put our initialization stuff" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/03/rails-where-to-put-our-initialization.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Ak8AQnc7fSp7ImA9WxVWFE0.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-6182070603163365902</id><published>2009-02-23T09:03:00.000-08:00</published><updated>2009-02-23T09:07:23.905-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-23T09:07:23.905-08:00</app:edited><title>Top 10 best and worst of MWC 2009 - vnunet.com</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mobileworldcongress.com/images/mwc_logo2.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 98px;" src="http://www.mobileworldcongress.com/images/mwc_logo2.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.vnunet.com/vnunet/news/2236937/top-ten-best-worst-mwc-2009?page=5"&gt;Top 10 best and worst of MWC 2009 - vnunet.com&lt;/a&gt;: "Top 10 best and worst of MWC 2009"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-6182070603163365902?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NVe5IIKCOtKLqMXymWez-kQ-jro/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NVe5IIKCOtKLqMXymWez-kQ-jro/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NVe5IIKCOtKLqMXymWez-kQ-jro/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NVe5IIKCOtKLqMXymWez-kQ-jro/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/SOVwVm5FbFM" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/6182070603163365902/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=6182070603163365902" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6182070603163365902?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6182070603163365902?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/SOVwVm5FbFM/top-10-best-and-worst-of-mwc-2009.html" title="Top 10 best and worst of MWC 2009 - vnunet.com" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/top-10-best-and-worst-of-mwc-2009.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0ADSHYyfyp7ImA9WxVXGUQ.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-6909801002853480230</id><published>2009-02-18T13:08:00.000-08:00</published><updated>2009-02-18T13:16:19.897-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-18T13:16:19.897-08:00</app:edited><title>Check out the new outstanding  web site of MentesVirtuais</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mentesvirtuais.com"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 360px; height: 65px;" src="http://www.mentesvirtuais.com/images/logo.gif" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The new web site of &lt;a href="http://www.mentesvirtuais.com/"&gt;mentesvirtuais &lt;/a&gt; it's really nice and causes a great impact.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mentesvirtuais.com/"&gt;Mentes Virtuais&lt;/a&gt; creates and develops solutions and products of excellence for an increasingly global and competitive market, on the areas of Telecommunications and Information Technology.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.mentesvirtuais.com"&gt;&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-6909801002853480230?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Wq0PtKiB7EEDG7vPHDeXoUNywF4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wq0PtKiB7EEDG7vPHDeXoUNywF4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Wq0PtKiB7EEDG7vPHDeXoUNywF4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Wq0PtKiB7EEDG7vPHDeXoUNywF4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/Wp6mGu3Ucx0" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/6909801002853480230/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=6909801002853480230" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6909801002853480230?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/6909801002853480230?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/Wp6mGu3Ucx0/check-out-new-outstanding-web-site-of.html" title="Check out the new outstanding  web site of MentesVirtuais" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/check-out-new-outstanding-web-site-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkAFQH0yfip7ImA9WxVVFk4.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-5465031881617243461</id><published>2009-02-12T15:23:00.000-08:00</published><updated>2009-03-09T15:45:11.396-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-09T15:45:11.396-07:00</app:edited><title>qmail-toaster + spamdyke: test behaviour</title><content type="html">If you want to test or check the spamdyke behaviour you only need to activate the debug:&lt;br /&gt;&lt;br /&gt;Edit /etc/spamdyke/spamdyke.conf&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;log-level=debug&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then run the following command&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ /usr/local/bin/spamdyke --config-file /etc/spamdyke/spamdyke.conf /var/qmail/bin/qmail-smtpd /home/vpopmail/bin/vchkpw /bin/true&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;To send an email enter the SMTP commands:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;mail from: youremail@mail.com&lt;br /&gt;rcpt to: to_address@mail.com&lt;br /&gt;data&lt;br /&gt;subject: TEST MESSAGE&lt;br /&gt;data&lt;br /&gt;Put some content here...&lt;br /&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;You will see debug lines that shows you all the steps of spamdyke.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-5465031881617243461?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/pgFljbsmXN0VmUXBD036LuI7Sfg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pgFljbsmXN0VmUXBD036LuI7Sfg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/pgFljbsmXN0VmUXBD036LuI7Sfg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/pgFljbsmXN0VmUXBD036LuI7Sfg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/zl_Hox5AkGQ" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/5465031881617243461/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=5465031881617243461" title="3 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5465031881617243461?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5465031881617243461?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/zl_Hox5AkGQ/qmail-toaster-spamdyke-test-behaviour.html" title="qmail-toaster + spamdyke: test behaviour" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>3</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/qmail-toaster-spamdyke-test-behaviour.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEAHQns6eip7ImA9WxVUE0w.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-7735355724450650378</id><published>2009-02-11T11:21:00.000-08:00</published><updated>2009-03-17T12:05:33.512-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-03-17T12:05:33.512-07:00</app:edited><title>RubyonRails: How to Integrate Comatose CMS &amp; FCKEditor tutorial in your rails application</title><content type="html">&lt;span style="font-weight:bold;"&gt;Steps&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Install CMS Comatose plugin &lt;/span&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ script/plugin install http://comatose-plugin.googlecode.com/svn/trunk/comatose&lt;br /&gt;$ script/plugin install git://github.com/darthapo/comatose.git (For Rails 2.X)&lt;br /&gt;&lt;br /&gt;$ script/generate comatose_migration&lt;br /&gt;$ rake db:migrate&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Dependencias &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ ruby script/plugin install git://github.com/rails/acts_as_list&lt;br /&gt;$ ruby script/plugin install git://github.com/rails/acts_as_tree&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Install FCKEditor Plugin &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ script/plugin install git://github.com/davividal/fckeditor.git&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Install views in our project&lt;/span&gt; &lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;$ rake comatose:admin:customize&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Edit "app/views/comatose_admin/_form.rhtml" &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;replace:&lt;br /&gt;&lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;&lt;%= f.text_area :body, :rows=&gt;20, :tabindex=&gt;2 %&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;with:&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;&lt;%= fckeditor_textarea('page', 'body', :width =&gt; '100%', :height =&gt; '500px') %&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Add FCKEditor javascript file to&lt;/span&gt; &lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;app/views/layouts/comatose_admin.rhtml &lt;br /&gt;&lt;br /&gt;&lt;%= javascript_include_tag :fckeditor %&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Configure FCKEditor to accept other other Files Types like "PDF".&lt;/span&gt; &lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;/vendor/plugins/fckeditor/app/controllers/fckeditor_controller.rb&lt;br /&gt; MIME_TYPES = [&lt;br /&gt;   "image/jpg",&lt;br /&gt;   "image/jpeg",&lt;br /&gt;   "image/pjpeg",&lt;br /&gt;   "image/gif",&lt;br /&gt;   "image/png",&lt;br /&gt;   "application/x-shockwave-flash"&lt;br /&gt; ]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Comatose Configurations in config/initializers/comatose.rb&lt;/span&gt; &lt;br /&gt;&lt;pre name="code" class="ruby"&gt;&lt;br /&gt;Comatose.configure do |config|&lt;br /&gt;&lt;br /&gt; config.admin_title          = 'Administration'&lt;br /&gt; config.admin_helpers        = []&lt;br /&gt; config.admin_sub_title      = 'Administration Pages'&lt;br /&gt; config.content_type         = 'utf-8'&lt;br /&gt; config.default_filter       = ''&lt;br /&gt; config.default_processor    = :liquid&lt;br /&gt; config.default_tree_level   = 3&lt;br /&gt; config.disable_caching      = false&lt;br /&gt; config.hidden_meta_fields   = 'filter'&lt;br /&gt; config.helpers              = []&lt;br /&gt; config.includes             = []&lt;br /&gt;&lt;br /&gt; # These are 'blockable' settings&lt;br /&gt; config.authorization        = Proc.new { true }&lt;br /&gt; config.admin_get_author     = Proc.new { request.env['REMOTE_ADDR'] }&lt;br /&gt; config.after_setup          = Proc.new { true }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;  # Includes AuthenticationSystem in the ComatoseAdminController&lt;br /&gt;  #config.admin_includes &lt;&lt; :authenticated_system&lt;br /&gt;&lt;br /&gt;  # Calls :login_required as a before_filter&lt;br /&gt;  #config.admin_authorization = :login_required&lt;br /&gt;&lt;br /&gt;end&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-7735355724450650378?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/r7t0tI9rOMEoqMm1JwlplkXexNo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r7t0tI9rOMEoqMm1JwlplkXexNo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/r7t0tI9rOMEoqMm1JwlplkXexNo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/r7t0tI9rOMEoqMm1JwlplkXexNo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/OOCY6n_sTEc" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/7735355724450650378/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=7735355724450650378" title="1 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7735355724450650378?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7735355724450650378?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/OOCY6n_sTEc/rubyonrails-how-to-integrate-comatose.html" title="RubyonRails: How to Integrate Comatose CMS &amp; FCKEditor tutorial in your rails application" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>1</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/rubyonrails-how-to-integrate-comatose.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEADQXo9cCp7ImA9WxVXE0g.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3495825040371270239</id><published>2009-02-11T03:51:00.000-08:00</published><updated>2009-02-11T04:52:50.468-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-11T04:52:50.468-08:00</app:edited><title>Java Tools - Finding bugs, optimization and profiling</title><content type="html">There a few tools for Java developers that can help us to be "better" programmers, (a bad programmer will allows be bad...).  Finding bugs, optimization and profiling make part of a programmer day life,  and why not using tools like these ones:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://findbugs.sourceforge.net/"&gt;FindBugs&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;«FindBugs, a program wich uses static analysis to look for bugs in Java code»&lt;br /&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://www.yourkit.com/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://findbugs.sourceforge.net/"&gt;http://findbugs.sourceforge.net/&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://findbugs.sourceforge.net/"&gt;«&lt;/a&gt;&lt;a href="http://pmd.sourceforge.net/"&gt;PMD &lt;/a&gt;scans Java source code and looks for potential problems like:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Possible bugs - empty try/catch/finally/switch statements&lt;/li&gt;&lt;li&gt;Dead code - unused local variables, parameters and private methods&lt;/li&gt;&lt;li&gt;Suboptimal code - wasteful String/StringBuffer usage&lt;/li&gt;&lt;li&gt;Overcomplicated expressions - unnecessary if statements, for loops that could be while loops&lt;/li&gt;&lt;li&gt;Duplicate code - copied/pasted code means copied/pasted bugs&lt;/li&gt;&lt;/ul&gt;  &lt;p class="MsoNormal"&gt;&lt;a href="http://pmd.sourceforge.net/"&gt;PMD is &lt;/a&gt;&lt;a href="http://pmd.sourceforge.net/integrations.html"&gt;integrated&lt;/a&gt; with JDeveloper, Eclipse, JEdit, JBuilder, BlueJ, CodeGuide, NetBeans/Sun Java Studio Enterprise/Creator, IntelliJ IDEA, TextPad, Maven, Ant, Gel, JCreator, and Emacs.»&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://pmd.sourceforge.net/"&gt;&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="MsoNormal"&gt;&lt;a href="http://pmd.sourceforge.net/"&gt;http://pmd.sourceforge.net/&lt;/a&gt;&lt;/p&gt; &lt;br /&gt;&lt;p&gt;   «&lt;a href="http://www.yourkit.com/"&gt;YourKit&lt;/a&gt;, LLC is a technology leader, creator of the most innovative and intelligent tools   for profiling Java &amp;amp; .NET applications. The YourKit Java Profiler has been already recognized by   the IT professionals and analysts as the best profiling tool. &lt;/p&gt;  &lt;p&gt;   With YourKit solutions, both CPU and memory profiling have come to the highest professional level,   where one can profile even huge applications with maximum productivity and zero overhead. &lt;/p&gt;  &lt;p&gt; There are several, recent innovations to profiling that have gained well-deserved popularity among professional Java developers, both in big and small companies. &lt;/p&gt;  &lt;p&gt;   YourKit is the standard-setter in the evolution of profiling tools.»&lt;/p&gt;&lt;a href="http://www.yourkit.com/"&gt;http://www.yourkit.com/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3495825040371270239?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/NzMrRYo2XEr2eS9yWX1kGObmk4E/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzMrRYo2XEr2eS9yWX1kGObmk4E/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/NzMrRYo2XEr2eS9yWX1kGObmk4E/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/NzMrRYo2XEr2eS9yWX1kGObmk4E/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/gL4Ecnieh6I" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3495825040371270239/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3495825040371270239" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3495825040371270239?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3495825040371270239?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/gL4Ecnieh6I/java-tools.html" title="Java Tools - Finding bugs, optimization and profiling" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/java-tools.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQDSH49cCp7ImA9WxVQF0Q.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-7554132438675588719</id><published>2009-02-04T14:52:00.000-08:00</published><updated>2009-02-04T16:06:19.068-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-02-04T16:06:19.068-08:00</app:edited><title>Ajaxian » ECMA What? Harmony Who? TC39? Tamarin? JavaScript!</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ecma-international.org/images/logo_top.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 149px; height: 62px;" src="http://www.ecma-international.org/images/logo_top.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There's a lot of misunderstanding among "javascript" and what it really means. I found an article that clarify it in a simply and direct way .&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ajaxian.com/archives/ecma-what-harmony-who-tc39-tamarin-javascript"&gt;Ajaxian » ECMA What? &lt;layer id="google-toolbar-hilite-1" style="background-color: Fuchsia; color: black;"&gt;Harmony&lt;/layer&gt; Who? TC39? Tamarin? JavaScript!&lt;/a&gt;: "from the world."&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm not a fan of ECMA and other standardization comities like &lt;layer id="google-toolbar-hilite-0" style="background-color: Cyan; color: black;"&gt;ISO&lt;/layer&gt;, and the last issue about OOXML and ODF was a clear example, since they were very criticized and their decision was not well aceppted by all the user community.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-7554132438675588719?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/oUEzBsNepImCOlJyMAXVu8KwKK4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oUEzBsNepImCOlJyMAXVu8KwKK4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/oUEzBsNepImCOlJyMAXVu8KwKK4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/oUEzBsNepImCOlJyMAXVu8KwKK4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/QJLNfEla960" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/7554132438675588719/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=7554132438675588719" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7554132438675588719?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/7554132438675588719?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/QJLNfEla960/ajaxian-ecma-what-harmony-who-tc39.html" title="Ajaxian » ECMA What? Harmony Who? TC39? Tamarin? JavaScript!" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/02/ajaxian-ecma-what-harmony-who-tc39.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUECQXk-eSp7ImA9WxVQEkk.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-5811489762361989560</id><published>2009-01-29T08:47:00.000-08:00</published><updated>2009-01-29T08:47:40.751-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-01-29T08:47:40.751-08:00</app:edited><title>Offline Gmail</title><content type="html">It starts  to be a reality using the Gmail in off-line mode. Gmail uses Google Gears to store the relevant information synchronizing the information whenever we have an Internet connection. This allows us to do simple things  such as reading the mail and sending emails. Of course, the effective sending of the mail will only be made from the moment we have a valid Internet connection. I can only say that this new feature will be very useful, the only penalty for now, is the fact that it is  not available in Portugal. It's only available in the U.S. and UK.&lt;br /&gt;&lt;br /&gt;See more at&lt;span style="text-decoration: underline;"&gt; &lt;/span&gt;&lt;a href="http://gmailblog.blogspot.com/2009/01/new-in-labs-offline-gmail.html"&gt;Official Gmail Blog: New in Labs: Offline Gmail.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-5811489762361989560?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/cnzkrfv-ToD_8j4HphLS5wknmuI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cnzkrfv-ToD_8j4HphLS5wknmuI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/cnzkrfv-ToD_8j4HphLS5wknmuI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/cnzkrfv-ToD_8j4HphLS5wknmuI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/zxvIRVY36r4" height="1" width="1"/&gt;</content><link rel="related" href="http://gmailblog.blogspot.com/2009/01/new-in-labs-offline-gmail.html" title="Offline Gmail" /><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/5811489762361989560/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=5811489762361989560" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5811489762361989560?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5811489762361989560?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/zxvIRVY36r4/offline-gmail.html" title="Offline Gmail" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2009/01/offline-gmail.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEYDRXwzeCp7ImA9WxdaGEo.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-2011693254635331080</id><published>2008-08-27T14:21:00.000-07:00</published><updated>2008-08-27T14:22:54.280-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-27T14:22:54.280-07:00</app:edited><title>Envy Casts - Screencasts to make your friends envious.</title><content type="html">Rails Videos became profitable and  Gregg &amp;amp; Jason are the stars on  &lt;a href="http://envycasts.com/"&gt;Envy Casts - Screencasts to make your friends envious.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-2011693254635331080?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eK5fS6_ZYzR_6CR26MWyRrUX_60/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eK5fS6_ZYzR_6CR26MWyRrUX_60/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eK5fS6_ZYzR_6CR26MWyRrUX_60/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eK5fS6_ZYzR_6CR26MWyRrUX_60/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/IM41vKe1qSs" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/2011693254635331080/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=2011693254635331080" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/2011693254635331080?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/2011693254635331080?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/IM41vKe1qSs/envy-casts-screencasts-to-make-your.html" title="Envy Casts - Screencasts to make your friends envious." /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2008/08/envy-casts-screencasts-to-make-your.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0UBQnY6fCp7ImA9WxdaGEo.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-9177616919176297548</id><published>2008-08-27T14:07:00.000-07:00</published><updated>2008-08-27T14:07:33.814-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-08-27T14:07:33.814-07:00</app:edited><title>Web events in Portugal</title><content type="html">Web events in Portugal check this link:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://bpedro.wevel.com/archives/2008/08/eventos_relacionados_com_a_web_em_portugal.html"&gt;Vida colectiva: Eventos relacionados com a Web em Portugal&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-9177616919176297548?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/yrsjS9M6QpXevdg_gGRQhrOqvE8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yrsjS9M6QpXevdg_gGRQhrOqvE8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/yrsjS9M6QpXevdg_gGRQhrOqvE8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/yrsjS9M6QpXevdg_gGRQhrOqvE8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/rH2B2e9lwqc" height="1" width="1"/&gt;</content><link rel="related" href="http://bpedro.wevel.com/archives/2008/08/eventos_relacionados_com_a_web_em_portugal.html" title="Web events in Portugal" /><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/9177616919176297548/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=9177616919176297548" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/9177616919176297548?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/9177616919176297548?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/rH2B2e9lwqc/web-events-in-portugal.html" title="Web events in Portugal" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2008/08/web-events-in-portugal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;Dk4EQHkyfCp7ImA9WxZREUg.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3323867697365092694</id><published>2008-02-04T11:37:00.000-08:00</published><updated>2008-02-04T11:55:01.794-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-02-04T11:55:01.794-08:00</app:edited><title>Software Projects Cycle</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_DITeB0LSylc/R6dqtsKvqNI/AAAAAAAAACw/bsmXXnqSUV4/s1600-h/software-project.0.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_DITeB0LSylc/R6dqtsKvqNI/AAAAAAAAACw/bsmXXnqSUV4/s320/software-project.0.jpg" alt="" id="BLOGGER_PHOTO_ID_5163212830986447058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Software projects and all the processes involved are getting more and more predictable, I've found a picture (not new),  that exposes all the cycle in a clear and simple way.  Do you have a better way to described it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3323867697365092694?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Qz2wnpoBF4LGD1MUrpKGvBJv-30/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qz2wnpoBF4LGD1MUrpKGvBJv-30/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Qz2wnpoBF4LGD1MUrpKGvBJv-30/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Qz2wnpoBF4LGD1MUrpKGvBJv-30/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/pQWFbvjC17A" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3323867697365092694/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3323867697365092694" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3323867697365092694?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3323867697365092694?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/pQWFbvjC17A/software-projects-cycle.html" title="Software Projects Cycle" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://3.bp.blogspot.com/_DITeB0LSylc/R6dqtsKvqNI/AAAAAAAAACw/bsmXXnqSUV4/s72-c/software-project.0.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2008/02/software-projects-cycle.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QBSHc4fip7ImA9WB9VEE4.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-521396547207683443</id><published>2007-11-24T16:41:00.000-08:00</published><updated>2007-11-25T16:02:39.936-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-25T16:02:39.936-08:00</app:edited><title>Books &amp; Newspapers of the future</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://g-ecx.images-amazon.com/images/G/01/digital/fiona/dp/product-descr-book._V4948744_.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://g-ecx.images-amazon.com/images/G/01/digital/fiona/dp/product-descr-book._V4948744_.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://amazon.com/gp/product/B000FI73MA"&gt;Amazon.com: Kindle: Amazon's New Wireless Reading Device: Kindle Store&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The world is changing very quickly and everyday something new appears. Today I found &lt;a href="http://amazon.com/gp/product/B000FI73MA"&gt;kindle&lt;/a&gt; a new approach in the way we read books and newspapers, it seems to me that it haves potential  to be the substitute of books, magazines and newspapers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-521396547207683443?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/L_7rpi1nXNWyio_jnxC5efkT5zY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_7rpi1nXNWyio_jnxC5efkT5zY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/L_7rpi1nXNWyio_jnxC5efkT5zY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/L_7rpi1nXNWyio_jnxC5efkT5zY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/JGOqFEORNww" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/521396547207683443/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=521396547207683443" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/521396547207683443?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/521396547207683443?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/JGOqFEORNww/books-newspappers-of-future.html" title="Books &amp; Newspapers of the future" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2007/11/books-newspappers-of-future.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4HR3c9eip7ImA9WB9XGUQ.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-3199642635120739467</id><published>2007-11-13T14:41:00.000-08:00</published><updated>2007-11-13T14:45:36.962-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-11-13T14:45:36.962-08:00</app:edited><title>gPhone its out there!!</title><content type="html">&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_DITeB0LSylc/Rzoo7PGAgoI/AAAAAAAAACo/QmXnM9uoX-I/s1600-h/gphone_02-edit.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_DITeB0LSylc/Rzoo7PGAgoI/AAAAAAAAACo/QmXnM9uoX-I/s320/gphone_02-edit.jpg" alt="" id="BLOGGER_PHOTO_ID_5132459723471225474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;gPhone its out there but instead of a mobile phone , "gPhone" is a OS and development environment for developing mobile phone applications.  Most of us were waiting for a mobile phone, however this new approach it's more interesting since there is a new competitor in the market that consequently will bring us more exciting "gPhones" with more open and widely spread  mobile applications.&lt;br /&gt;&lt;br /&gt;See this link for more information on "gPhone" or Android:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.onlamp.com/pub/a/onlamp/2007/11/12/google-calling-inside-the-gphone-sdk.html"&gt;ONLamp.com -- Google Calling: Inside Android, the gPhone SDK&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-3199642635120739467?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/KZPm1BDEnHhVFA77sxyu1lG54jw/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KZPm1BDEnHhVFA77sxyu1lG54jw/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/KZPm1BDEnHhVFA77sxyu1lG54jw/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/KZPm1BDEnHhVFA77sxyu1lG54jw/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/mjN5v9FWaZY" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/3199642635120739467/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=3199642635120739467" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3199642635120739467?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/3199642635120739467?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/mjN5v9FWaZY/gphone-its-out-there.html" title="gPhone its out there!!" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://1.bp.blogspot.com/_DITeB0LSylc/Rzoo7PGAgoI/AAAAAAAAACo/QmXnM9uoX-I/s72-c/gphone_02-edit.jpg" height="72" width="72" /><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2007/11/gphone-its-out-there.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C08NR3w6fCp7ImA9WB9QGEQ.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-5568719169255716910</id><published>2007-10-31T21:25:00.000-07:00</published><updated>2007-10-31T21:38:16.214-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-31T21:38:16.214-07:00</app:edited><title>Forget iTunes</title><content type="html">&lt;a href="http://songbirdnest.com/"&gt;&lt;img src="http://songbirdnest.com/files/images/button_guitar.png" alt="Get Songbird" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;For the music lovers  &lt;a href="http://songbirdnest.com/"&gt;Songbird&lt;/a&gt; it's an amazing desktop media player since it's mash up with the web and allows us to discover and organize local musics or even remote links/sites.  It's only on a beta version but it promises to be the iTunes killer application. On this release I'm missing an export feature or even an distributed place to place my playlists and bookmarks.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Download it and you won't regret it:&lt;a style="color: rgb(204, 204, 204);" href="http://www.songbirdnest.com/"&gt; Songbirdnest.com | Songbird Media Player&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-5568719169255716910?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/B251AnkE3AvNvweQz0KcOXxGMJU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B251AnkE3AvNvweQz0KcOXxGMJU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/B251AnkE3AvNvweQz0KcOXxGMJU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/B251AnkE3AvNvweQz0KcOXxGMJU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/nupu23qD6cE" height="1" width="1"/&gt;</content><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/5568719169255716910/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=5568719169255716910" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5568719169255716910?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/5568719169255716910?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/nupu23qD6cE/forget-itunes.html" title="Forget iTunes" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2007/10/forget-itunes.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUDQno4eyp7ImA9WB9QGEo.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-4362974181699528867</id><published>2007-10-31T17:34:00.000-07:00</published><updated>2007-10-31T17:34:33.433-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-31T17:34:33.433-07:00</app:edited><title>Jabber Transports (or How to Connect Google Talk with Any IM)</title><content type="html">Google Talk allows us to connect to others IM networks, but with a drawback, Google Talk doesn't include a place to configure transports (i.e. the ability to provide a username and password for the IM network of choice). So one has to &lt;strong&gt;install another Jabber client in order to configure that transports.&lt;/strong&gt;&lt;span style="text-decoration: underline;"&gt;&lt;/span&gt;&lt;br /&gt;After that you can use Google Talk to talk to all of your IM network friends.&lt;br /&gt;&lt;br /&gt;For more information see:&lt;br /&gt;&lt;a href="http://blogoscoped.com/archive/2006-05-02-n79.html"&gt;Jabber Transports (or How to Connect Google Talk with Any IM)&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-4362974181699528867?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/TjNl_eYvHleoKHCB_8lZ-VyVre4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TjNl_eYvHleoKHCB_8lZ-VyVre4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/TjNl_eYvHleoKHCB_8lZ-VyVre4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/TjNl_eYvHleoKHCB_8lZ-VyVre4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/4KrZ9MtTJGM" height="1" width="1"/&gt;</content><link rel="related" href="http://blogoscoped.com/archive/2006-05-02-n79.html" title="Jabber Transports (or How to Connect Google Talk with Any IM)" /><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/4362974181699528867/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=4362974181699528867" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4362974181699528867?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4362974181699528867?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/4KrZ9MtTJGM/jabber-transports-or-how-to-connect.html" title="Jabber Transports (or How to Connect Google Talk with Any IM)" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2007/10/jabber-transports-or-how-to-connect.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQMSH8ycCp7ImA9WB9QGEo.&quot;"><id>tag:blogger.com,1999:blog-5045585014779378243.post-4162470013205486342</id><published>2007-10-31T17:19:00.000-07:00</published><updated>2007-10-31T17:19:49.198-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2007-10-31T17:19:49.198-07:00</app:edited><title>OpenSocial, Google's APIs for Social Applications</title><content type="html">&lt;a href="http://googlesystem.blogspot.com/2007/10/opensocial-googles-apis-for-social.html"&gt;OpenSocial, Google's APIs for Social Applications&lt;/a&gt;: "Google will launch tomorrow OpenSocial"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5045585014779378243-4162470013205486342?l=gulden-pt.blogspot.com' alt='' /&gt;&lt;/div&gt;
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9tvWgB-CDppfZPfPKKL6C-v7Bt4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9tvWgB-CDppfZPfPKKL6C-v7Bt4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9tvWgB-CDppfZPfPKKL6C-v7Bt4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9tvWgB-CDppfZPfPKKL6C-v7Bt4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/Gulden-pt/~4/lEZQ3yVLx30" height="1" width="1"/&gt;</content><link rel="related" href="http://googlesystem.blogspot.com/2007/10/opensocial-googles-apis-for-social.html" title="OpenSocial, Google's APIs for Social Applications" /><link rel="replies" type="application/atom+xml" href="http://gulden-pt.blogspot.com/feeds/4162470013205486342/comments/default" title="Post Comments" /><link rel="replies" type="text/html" href="http://www.blogger.com/comment.g?blogID=5045585014779378243&amp;postID=4162470013205486342" title="0 Comments" /><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4162470013205486342?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/5045585014779378243/posts/default/4162470013205486342?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/Gulden-pt/~3/lEZQ3yVLx30/opensocial-googles-apis-for-social.html" title="OpenSocial, Google's APIs for Social Applications" /><author><name>Gulden PT</name><uri>https://profiles.google.com/100382608158873287460</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="32" height="32" src="//lh4.googleusercontent.com/-eHGkm6OvAyI/AAAAAAAAAAI/AAAAAAAAALE/XyrgO9yCYP4/s512-c/photo.jpg" /></author><thr:total>0</thr:total><feedburner:origLink>http://gulden-pt.blogspot.com/2007/10/opensocial-googles-apis-for-social.html</feedburner:origLink></entry></feed>

