<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-406543361514572104</id><updated>2012-02-16T13:45:13.139-03:00</updated><title type='text'>Pildoras computinas</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default?start-index=101&amp;max-results=100'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>131</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7433096080768222815</id><published>2011-06-03T09:03:00.001-04:00</published><updated>2011-06-03T09:05:05.750-04:00</updated><title type='text'>How-To copy column values from a table to another in MySQL</title><summary type='text'>Imagine table A and B like:SELECT * FROM A WHERE (...) LIMIT 3id, a, x, c__________2, 5, 1, 67, 2, 6, 19, 8, 2, 2SELECT * FROM B WHERE (...) LIMIT 3id, x, b, c__________1, NULL, 3, 35, NULL, 0, 43, NULL, 2, 7You want to copy x column values from A (i.e. 1,6,2) to B (all NULL).Solution:SELECT @i:=0;SELECT @j:=0;UPDATE BJOIN (SELECT @i:=@i+1 AS tid, B.id FROM B WHERE (...) LIMIT 3) Bt ON (Bt.id=</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7433096080768222815/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7433096080768222815' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7433096080768222815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7433096080768222815'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/06/how-to-copy-column-values-from-table-to.html' title='How-To copy column values from a table to another in MySQL'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4234995168549363049</id><published>2011-05-23T15:49:00.002-04:00</published><updated>2011-06-08T10:35:14.411-04:00</updated><title type='text'>Linux command line python pretty print</title><summary type='text'>cat somexmlfile.xml | python -c "import sys;import lxml.etree as etree;x = etree.parse(sys.stdin);print etree.tostring(x, pretty_print = True)"alias pp='python -mjson.tool'cat somexmlfile.json | pp</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4234995168549363049/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4234995168549363049' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4234995168549363049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4234995168549363049'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/05/linux-command-line-python-pretty-print.html' title='Linux command line python pretty print'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4080899253930696424</id><published>2011-03-28T15:26:00.004-03:00</published><updated>2011-03-28T15:27:50.504-03:00</updated><title type='text'>How to open port 80 for out connections to a specific user</title><summary type='text'>sudo iptables -A ufw-user-output -p tcp --dport 80 -m owner \ --uid-owner pepito -j ACCEPT </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4080899253930696424/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4080899253930696424' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4080899253930696424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4080899253930696424'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/03/how-to-open-port-80-for-out-connections.html' title='How to open port 80 for out connections to a specific user'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8458229747817171715</id><published>2011-03-17T15:48:00.001-03:00</published><updated>2011-03-17T15:50:19.728-03:00</updated><title type='text'>Apache RewriteRule to Forbid (403) unknown URL requests</title><summary type='text'>Write as the last rule:# Everything else is forbiddenRewriteRule (.*)          - [F,L]</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8458229747817171715/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8458229747817171715' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8458229747817171715'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8458229747817171715'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/03/apache-rewriterule-to-forbid-403.html' title='Apache RewriteRule to Forbid (403) unknown URL requests'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-575497378632347217</id><published>2011-02-24T08:27:00.001-03:00</published><updated>2011-02-24T08:29:04.226-03:00</updated><title type='text'>usermod example - Add a existing user to existing group</title><summary type='text'>usermod -a -G sysadmins tony</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/575497378632347217/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=575497378632347217' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/575497378632347217'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/575497378632347217'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/02/usermod-example-add-existing-user-to.html' title='usermod example - Add a existing user to existing group'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2205151825282867452</id><published>2011-02-15T08:46:00.002-03:00</published><updated>2011-02-15T08:50:03.336-03:00</updated><title type='text'>PAM authentication in PHP</title><summary type='text'>sudo aptitude install php5-auth-pamsudo cp /usr/share/doc/php5-auth-pam/examples/php /etc/pam.d/phpPHP example:$error = 0;if(pam_auth("zappedy", "XXXX", &amp;$error)) echo "bien";else echo "mal $error";Ref:http://www.dokuwiki.org/auth:pam</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2205151825282867452/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2205151825282867452' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2205151825282867452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2205151825282867452'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/02/pam-authentication-in-php.html' title='PAM authentication in PHP'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-432014974582593575</id><published>2011-01-19T17:40:00.002-03:00</published><updated>2011-01-19T17:42:47.122-03:00</updated><title type='text'>MySQL slow queries</title><summary type='text'>sudo mysqld_safe --timezone=+0:00 --long_query_time=1 --log-slow-queries=/tmp/slow.log --log-queries-not-using-indexesSort by Rows_examined:grep Query_time /tmp/slow.log |sort -n -k9# Query_time: 0.007019  Lock_time: 0.000098 Rows_sent: 0  Rows_examined: 65# Query_time: 0.001595  Lock_time: 0.000042 Rows_sent: 0  Rows_examined: 66# Query_time: 0.002316  Lock_time: 0.000101 Rows_sent: 0  </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/432014974582593575/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=432014974582593575' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/432014974582593575'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/432014974582593575'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/01/mysql-slow-queries.html' title='MySQL slow queries'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4015059974945499050</id><published>2011-01-13T09:18:00.002-03:00</published><updated>2011-01-13T09:21:30.653-03:00</updated><title type='text'>Unit Tests' value in TDD</title><summary type='text'>Hierarchy of tests:Acceptance: Does the whole system work?Integration: Does our code work against code we can't change?Unit: Do our objects do the right thing, are they convenient to work with?Unit Tests' value in TDD:Write loosely coupled componentsDetect errors while the context is fresh in our mindAdd an executable description of what the code does (documentation)Focus: discouraging </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4015059974945499050/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4015059974945499050' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4015059974945499050'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4015059974945499050'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2011/01/unit-tests-value.html' title='Unit Tests&apos; value in TDD'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-947961652534289280</id><published>2010-09-01T09:05:00.000-04:00</published><updated>2010-09-01T09:06:09.545-04:00</updated><title type='text'>Brooks's law</title><summary type='text'>adding manpower to a late software project makes it later</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/947961652534289280/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=947961652534289280' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/947961652534289280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/947961652534289280'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/09/brookss-law.html' title='Brooks&apos;s law'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5692486043443236022</id><published>2010-09-01T08:26:00.002-04:00</published><updated>2010-09-01T08:30:22.811-04:00</updated><title type='text'>How to vanish terror of deadlines and expectations</title><summary type='text'>It's not my job to “manage” someone else's expectations. It's their job to manage their own expectations. It's my job to do my best and to communicate clearly.Kent BeckExtreme Programming Explained</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5692486043443236022/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5692486043443236022' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5692486043443236022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5692486043443236022'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/09/how-to-vanish-terror-of-deadlines-and.html' title='How to vanish terror of deadlines and expectations'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5435079052403738303</id><published>2010-08-06T12:00:00.003-04:00</published><updated>2010-08-06T12:23:47.312-04:00</updated><title type='text'>JavaScript Class using JSON prototype</title><summary type='text'>/// &lt;summary&gt;/// Class that represents a customer of our store./// The constructor receives the name of the customer/// &lt;/summary&gt;/// &lt;param name="firstName"&gt; First name of the customer./// &lt;param name="lastName"&gt; Last name of the customer.function Customer(firstName, lastName){ // Properties this.FirstName = firstName; this.LastName = lastName;}Customer.prototype = { /// &lt;summary&gt; /// Returns </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5435079052403738303/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5435079052403738303' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5435079052403738303'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5435079052403738303'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/08/javascript-class.html' title='JavaScript Class using JSON prototype'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3718444023521239318</id><published>2010-08-06T11:47:00.000-04:00</published><updated>2010-08-06T11:49:05.547-04:00</updated><title type='text'>Good programmers</title><summary type='text'>Any fool can write code that a computer can understand. Good programmers write code that humans can understand.Refactoring: Improving the Design of Existing Code by Martin Fowler</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3718444023521239318/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3718444023521239318' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3718444023521239318'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3718444023521239318'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/08/good-programmers.html' title='Good programmers'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7486266521495590401</id><published>2010-07-08T10:15:00.000-04:00</published><updated>2010-07-08T10:19:25.880-04:00</updated><title type='text'>Refactoring: Extract Method using Eclipse</title><summary type='text'>Result:</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7486266521495590401/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7486266521495590401' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7486266521495590401'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7486266521495590401'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/07/refactoring-extract-method-using.html' title='Refactoring: Extract Method using Eclipse'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1Rl9o2l3oA4/TDXd8_M5ZKI/AAAAAAAAAsM/BjyAM6ont8U/s72-c/extractMethod1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8709447046469253960</id><published>2010-07-07T10:27:00.001-04:00</published><updated>2010-07-07T10:27:25.353-04:00</updated><title type='text'>Buenos videos de Uncle Bob (Robert Martin, autor de Clean Code)</title><summary type='text'>http://www.objectmentor.com/videos/video_index.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8709447046469253960/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8709447046469253960' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8709447046469253960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8709447046469253960'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/07/buenos-videos-de-uncle-bob-robert.html' title='Buenos videos de Uncle Bob (Robert Martin, autor de Clean Code)'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6007501881000197797</id><published>2010-07-05T10:16:00.000-04:00</published><updated>2010-07-05T10:19:53.959-04:00</updated><title type='text'>Exceptions de jetty para retornar http status codes</title><summary type='text'>Usando jetty, puedes arrojar un status code, con mensaje incluido, de la sgte manera:@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp)  throws ServletException, IOException { throw new HttpException(404, "not found jeje");}</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6007501881000197797/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6007501881000197797' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6007501881000197797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6007501881000197797'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/07/exceptions-de-jetty-para-retornar-http.html' title='Exceptions de jetty para retornar http status codes'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4559951896727039273</id><published>2010-07-01T10:21:00.000-04:00</published><updated>2010-07-01T10:25:40.647-04:00</updated><title type='text'>Wrap your Exception as a RuntimeException when it is not of your method's business</title><summary type='text'>A method is not required to declare in its throws clause any subclasses of RuntimeException that might be thrown during the execution of the method but not caught.package exceptions;public class RuntimeExceptionTest { public class TestException extends Exception {   }  public static void main(String[] args) {  RuntimeExceptionTest test = new RuntimeExceptionTest();  try {   </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4559951896727039273/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4559951896727039273' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4559951896727039273'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4559951896727039273'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/07/wrap-your-exception-as-runtimeexception.html' title='Wrap your Exception as a RuntimeException when it is not of your method&apos;s business'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7692501840119058374</id><published>2010-07-01T09:53:00.000-04:00</published><updated>2010-07-01T10:13:48.365-04:00</updated><title type='text'>Notification rather than logging</title><summary type='text'>¿Te ha pasado que el log ensucia?:Location location = tracker.getCurrentLocation();for (Filter filter : filters) { filter. selectFor(location); if (logger. isInfoEnabled()) {   logger. info("Filter " + filter.getName() + ", " + filter.getDate()                + " selected for " + location.getName()                + ", is current: " + tracker.isCurrent(location)); }}Solución:Location location = </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7692501840119058374/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7692501840119058374' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7692501840119058374'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7692501840119058374'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/07/notification-rather-than-logging.html' title='Notification rather than logging'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7453780781819321610</id><published>2010-06-21T08:55:00.000-04:00</published><updated>2010-06-21T09:31:10.975-04:00</updated><title type='text'>Cómo convertir encoding en java tipo iconv, ej: UTF-8 a latin1</title><summary type='text'>import org.apache.commons.io.IOUtils;public class Iconv { public static void iconv(InputStream in, OutputStream out, Charset inCharset, Charset outCharset) throws IOException {  InputStreamReader reader = new InputStreamReader(in,inCharset);  OutputStreamWriter writer = new OutputStreamWriter(out,outCharset);  IOUtils.copy(reader,writer);  writer.close(); }Cómo se usa: public static void main(</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7453780781819321610/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7453780781819321610' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7453780781819321610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7453780781819321610'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/06/como-convertir-encoding-en-java-tipo.html' title='Cómo convertir encoding en java tipo iconv, ej: UTF-8 a latin1'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3538005506150842815</id><published>2010-06-15T08:33:00.000-04:00</published><updated>2010-06-15T08:34:28.209-04:00</updated><title type='text'>Cómo ver el contenido de un jar para saber donde esta una clase que se deba incluir</title><summary type='text'>pablo@pablo-desktop:~/bea/user_projects/workspaces/workSpaceStudio/TimerService$ jar -tf /home/pablo/bea/wlserver_10.0/server/lib/weblogic.jar | grep ApplicationExceptioncom/sun/java/xml/ns/javaee/ApplicationExceptionType$1.classcom/sun/java/xml/ns/javaee/ApplicationExceptionType$Factory.classcom/sun/java/xml/ns/javaee/ApplicationExceptionType.classcom/sun/java/xml/ns/javaee/impl/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3538005506150842815/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3538005506150842815' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3538005506150842815'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3538005506150842815'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/06/como-ver-el-contenido-de-un-jar-para.html' title='Cómo ver el contenido de un jar para saber donde esta una clase que se deba incluir'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6738602858223015693</id><published>2010-06-07T08:44:00.000-04:00</published><updated>2010-06-07T08:48:22.395-04:00</updated><title type='text'>Difference between XML and HTML encoding</title><summary type='text'>Ref: http://en.wikipedia.org/wiki/Character_encodings_in_HTML#XML_character_references</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6738602858223015693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6738602858223015693' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6738602858223015693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6738602858223015693'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/06/difference-between-xml-and-html.html' title='Difference between XML and HTML encoding'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2415365159130519889</id><published>2010-05-24T12:56:00.000-04:00</published><updated>2010-05-24T13:01:49.144-04:00</updated><title type='text'>Proxy en apache</title><summary type='text'>no recuerdo si sirven estos 2 comandos:sudo apt-get install libapache2-mod-proxy-htmlsudo a2enmod proxypero bueno, lo que sí servía:sudo vim /etc/apache2/sites-available/defaultOrder deny,allowAllow from allProxyPass /google http://www.google.cl/ProxyPassReverse /google http://www.google.cl/sudo /etc/init.d/apache2 restart</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2415365159130519889/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2415365159130519889' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2415365159130519889'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2415365159130519889'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/05/proxy-en-apache.html' title='Proxy en apache'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3669144475963455623</id><published>2010-05-18T12:14:00.000-04:00</published><updated>2010-05-18T12:16:36.737-04:00</updated><title type='text'>Cómo iterar e imprimir enums en Java</title><summary type='text'>private enum stats { pings, opened, closed, queueEmpty, gets, releases, timeouts; private int count=0; public void add() {  count++; }};private String getStatsString() { EnumSet set = EnumSet.allOf(stats.class); HashMap map = new HashMap(); for (stats stat : set) {  map.put(stat.toString(), stat.count); } return map.toString();}private void logStats() { log.info("stats del pool: "+getStatsString(</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3669144475963455623/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3669144475963455623' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3669144475963455623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3669144475963455623'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/05/como-iterar-e-imprimir-enums-en-java.html' title='Cómo iterar e imprimir enums en Java'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6997265779349977466</id><published>2010-05-18T12:06:00.000-04:00</published><updated>2010-05-18T12:12:40.978-04:00</updated><title type='text'>sprintf a la Java con String.format</title><summary type='text'>Si bien es cosa de gustos, creo que se ve más ordenado usar String.format en caso de grandes concatenaciones:public class Sprintf { public static void main(String[] args) {  String nombre = "Juan";  String apellido = "Riquelme";  int edad = 54;    String concatenacion;    concatenacion = "nombre: "+nombre+", apellido: "+                   apellido+", edad: "+edad;  System.out.println(</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6997265779349977466/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6997265779349977466' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6997265779349977466'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6997265779349977466'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/05/sprintf-la-java-con-stringformat.html' title='sprintf a la Java con String.format'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4407250987857015412</id><published>2010-05-03T15:40:00.001-04:00</published><updated>2010-05-03T15:41:14.024-04:00</updated><title type='text'>Mysql 5.0.3 acepta varchars de mas de 255 caracteres</title><summary type='text'>Para los que seguían pensando lo contrario:Values in VARCHAR columns are         variable-length strings. The length can be specified as a value         from 0 to 255 before MySQL 5.0.3, and 0 to 65,535 in 5.0.3 and         later versions.http://dev.mysql.com/doc/refman/5.0/en/char.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4407250987857015412/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4407250987857015412' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4407250987857015412'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4407250987857015412'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/05/mysql-503-acepta-varchars-de-mas-de-255.html' title='Mysql 5.0.3 acepta varchars de mas de 255 caracteres'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8213164289524634067</id><published>2010-04-29T11:50:00.000-04:00</published><updated>2010-04-29T12:03:18.135-04:00</updated><title type='text'>Google translator para language detection</title><summary type='text'>Ref: google apisPrueba con inglés:pablo@pablo-desktop:~$ curl -e http://www.fcwm.cl \'http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&amp;q=hello%20world'{"responseData": {"language":"en","isReliable":false,"confidence":0.114892714}, "responseDetails": null, "responseStatus": 200}Prueba con italiano:pablo@pablo-desktop:~$ curl -e http://www.fcwm.cl \'http://ajax.googleapis.com/ajax/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8213164289524634067/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8213164289524634067' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8213164289524634067'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8213164289524634067'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/04/google-translator-para-language.html' title='Google translator para language detection'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8538829611043639531</id><published>2010-04-29T10:00:00.000-04:00</published><updated>2010-04-29T10:03:03.960-04:00</updated><title type='text'>Cómo setear el content-type y el charset en la respuesta de un restlet</title><summary type='text'>Papita:@Overridepublic Representation getRepresentation(Variant variant) { if (MediaType.TEXT_XML.equals(variant.getMediaType())) {  ...  StringRepresentation representation = new StringRepresentation(xmlText,    MediaType.TEXT_XML, Language.ENGLISH, CharacterSet.UTF_8);  return representation; }}</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8538829611043639531/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8538829611043639531' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8538829611043639531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8538829611043639531'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/04/como-setear-el-content-type-y-el.html' title='Cómo setear el content-type y el charset en la respuesta de un restlet'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8494517833118495808</id><published>2010-04-22T08:56:00.000-04:00</published><updated>2010-04-22T08:59:37.619-04:00</updated><title type='text'>Whole word search en java usando regex</title><summary type='text'>Pattern myPattern = Pattern.compile("\\bSebastián Piñera\\b",  Pattern.CASE_INSENSITIVE | Pattern.DOTALL | Pattern.MULTILINE  | Pattern.UNICODE_CASE | Pattern.CANON_EQ);String text;Matcher matcher;text = "de la pradera camión\nSebastián Piñera";matcher = myPattern.matcher(text);System.out.println(matcher.find());text = "clorox de la pradera Sebastián Piñera jaja";matcher.reset(text);</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8494517833118495808/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8494517833118495808' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8494517833118495808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8494517833118495808'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/04/whole-word-search-en-java-usando-regex.html' title='Whole word search en java usando regex'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6626552357976461738</id><published>2010-04-12T15:09:00.000-04:00</published><updated>2010-04-12T15:10:44.954-04:00</updated><title type='text'>Export en shell para que java tenga output en UTF8</title><summary type='text'>Hay que hacer un declare de LANG, para que aparezca en el export de la sgte manera:$ export...declare -x LANG="en_US.UTF-8"</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6626552357976461738/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6626552357976461738' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6626552357976461738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6626552357976461738'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/04/export-en-shell-para-que-java-tenga.html' title='Export en shell para que java tenga output en UTF8'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6428733286979892234</id><published>2010-03-31T14:36:00.000-03:00</published><updated>2010-03-31T14:38:01.302-03:00</updated><title type='text'>PHP - cómo darse cuenta de un error de insert por duplicate key</title><summary type='text'>$result = mysql_query($query);if (!$result) {  if (mysql_errno()==1062) { //Duplicate entry    log_info("user already created");  }  else {    throw new Exception("Invalid query, error: " . mysql_error(),$query);  }}</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6428733286979892234/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6428733286979892234' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6428733286979892234'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6428733286979892234'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/03/php-como-darse-cuenta-de-un-error-de.html' title='PHP - cómo darse cuenta de un error de insert por duplicate key'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2376762217467475721</id><published>2010-03-24T15:31:00.001-03:00</published><updated>2010-03-24T15:31:53.334-03:00</updated><title type='text'>Cómo generar un jar de json</title><summary type='text'>1.  Download http://www.json.org/java/json.zip from json.org.  Save it in a some directory, which I'll call %DOWNLOAD_HOME%.2.  Unzip it.  Be sure you preserve the archive's directory structure (/org/json/) when you unzip the file. 3.  Change directory into %DOWNLOAD_HOME%\org\json4.  Compile the files by running “javac *.java”.  At least, this worked for me.  There is no build.xml or anything, </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2376762217467475721/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2376762217467475721' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2376762217467475721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2376762217467475721'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/03/como-generar-un-jar-de-json.html' title='Cómo generar un jar de json'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-672182590593661132</id><published>2010-03-10T09:15:00.001-03:00</published><updated>2010-03-10T09:17:12.948-03:00</updated><title type='text'>SQL - cómo separar las condiciones de join de las condiciones de negocio</title><summary type='text'>Típica consulta:SELECT r.nombre, c.nombre FROM Region r, Ciudad c WHERE r.idregion=c.idregion AND c.fechafundacion&gt;='1810-01-01'En ella, el where mezcla condiciones de join (r.idregion=c.idregion) y de negocio (c.fechafundacion&gt;='1810-01-01'):En la sgte consulta, en el join+using aislamos las condiciones de join. En el where aislamos las condiciones de negocio:SELECT r.nombre, c.nombre FROM </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/672182590593661132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=672182590593661132' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/672182590593661132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/672182590593661132'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/03/sql-como-separar-las-condiciones-de.html' title='SQL - cómo separar las condiciones de join de las condiciones de negocio'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-277482870762402494</id><published>2010-02-02T12:39:00.000-03:00</published><updated>2010-02-02T12:40:59.657-03:00</updated><title type='text'>Buscador de texto tipo google en MySQL</title><summary type='text'>Se puede usar el feature de FULLTEXT Indexing and Searching de mysql:http://www.petefreitag.com/item/477.cfm</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/277482870762402494/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=277482870762402494' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/277482870762402494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/277482870762402494'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/02/buscador-de-texto-tipo-google-en-mysql.html' title='Buscador de texto tipo google en MySQL'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3689722746624657679</id><published>2010-02-02T11:45:00.000-03:00</published><updated>2010-02-02T11:48:16.100-03:00</updated><title type='text'>Pool de threads nativo en java</title><summary type='text'>LinkedBlockingQueue queue = new LinkedBlockingQueue();pool = new ThreadPoolExecutor(corePoolSize,maximumPoolSize,keepAliveTimeMs,TimeUnit.MILLISECONDS,queue);CandidateFetcher fetcher = new CandidateFetcher(candidate); //implements Runnablepool.execute(fetcher);while(pool.getActiveCount()&gt;0){    log.info("pool.getActiveCount(): "+pool.getActiveCount()+", waitUntilAllFetchesAreDone, go to sleep");</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3689722746624657679/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3689722746624657679' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3689722746624657679'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3689722746624657679'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/02/pool-de-threads-nativo-en-java.html' title='Pool de threads nativo en java'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8328851483200975907</id><published>2010-01-28T17:28:00.001-03:00</published><updated>2010-02-02T11:49:56.637-03:00</updated><title type='text'>Cómo no olvidar implementar un método en java</title><summary type='text'>Usar UnsupportedOperationException, ej:private String fetchHtmlDePagina(int pagina) { // TODO Auto-generated method stub throw new UnsupportedOperationException("TODO"); //return null;}</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8328851483200975907/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8328851483200975907' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8328851483200975907'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8328851483200975907'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/01/como-no-olvidar-implementar-un-metodo.html' title='Cómo no olvidar implementar un método en java'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7846761878613613653</id><published>2010-01-19T17:14:00.000-03:00</published><updated>2010-01-19T17:16:11.903-03:00</updated><title type='text'>Zend Class Type Hints</title><summary type='text'>Usar comentarios de la sgte manera: /* @var $myVar Test */$myVar = getClass();$myVar-&gt;</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7846761878613613653/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7846761878613613653' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7846761878613613653'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7846761878613613653'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/01/zend-class-type-hints.html' title='Zend Class Type Hints'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8709272108446774396</id><published>2010-01-12T14:14:00.001-03:00</published><updated>2010-01-12T14:14:49.628-03:00</updated><title type='text'>Bash - Aliases within a script</title><summary type='text'>#!/bin/bash# alias.shshopt -s expand_aliases# Must set this option, else script will not expand aliases.# First, some fun.alias Jesse_James='echo "\"Alias Jesse James\" was a 1959 comedy starring Bob Hope."'Jesse_JamesRef: http://tldp.org/LDP/abs/html/aliases.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8709272108446774396/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8709272108446774396' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8709272108446774396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8709272108446774396'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2010/01/bash-aliases-within-script.html' title='Bash - Aliases within a script'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2004232442459791774</id><published>2009-12-04T11:06:00.000-03:00</published><updated>2009-12-04T11:07:25.301-03:00</updated><title type='text'>bash: ejecutar un comando sólo si el anterior fue exitoso</title><summary type='text'>An and list has the form      command1 &amp;&amp; command2    command2 is executed if, and only if, command1 returns an exit status of zero.ref: Bash Reference Manual</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2004232442459791774/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2004232442459791774' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2004232442459791774'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2004232442459791774'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/12/bash-ejecutar-un-comando-solo-si-el.html' title='bash: ejecutar un comando sólo si el anterior fue exitoso'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2115604971881365713</id><published>2009-12-01T17:28:00.000-03:00</published><updated>2009-12-01T17:29:00.105-03:00</updated><title type='text'>Cuenta SSH enjaulada: scponly</title><summary type='text'>  What is scponly?  scponly is an alternative 'shell' (of sorts) for system administrators who would like to provide access to remote users to both read and write local files without providing any remote execution priviledges. Functionally, it is best described as a wrapper to the tried and true ssh suite of applications.http://www.amadourias.com/?p=94</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2115604971881365713/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2115604971881365713' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2115604971881365713'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2115604971881365713'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/12/cuenta-ssh-enjaulada-scponly.html' title='Cuenta SSH enjaulada: scponly'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5339349468337210400</id><published>2009-10-22T16:40:00.001-03:00</published><updated>2009-10-22T16:40:55.433-03:00</updated><title type='text'>DELETE de múltiples tablas con ORDER BY o LIMIT</title><summary type='text'>Puede especificar múltiples tablas en un comando DELETE para borrar registros de una o más tablas dependiendo de una condición particular en múltiples tablas. Sin embargo, no puede usar ORDER BY o LIMIT en un DELETE de múltiples tablas.Ref: http://dev.mysql.com/doc/refman/5.0/es/delete.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5339349468337210400/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5339349468337210400' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5339349468337210400'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5339349468337210400'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/10/delete-de-multiples-tablas-con-order-by.html' title='DELETE de múltiples tablas con ORDER BY o LIMIT'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4745324438081540171</id><published>2009-10-17T21:07:00.000-03:00</published><updated>2009-10-17T21:08:39.407-03:00</updated><title type='text'>png to ico online converter</title><summary type='text'>ConvertICO  is a Free Online Converter - fast (you don't need to register or to install software) and easy to use (you need only 3 clicks to convert the PNG or ICO file) - able to convert PNG to ICO (Windows Vista compatible icons) and ICO to PNG format files.Ref: http://www.convertico.com/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4745324438081540171/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4745324438081540171' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4745324438081540171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4745324438081540171'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/10/png-to-ico-online-converter.html' title='png to ico online converter'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8656233902936875773</id><published>2009-09-08T20:16:00.000-04:00</published><updated>2009-09-08T20:17:20.548-04:00</updated><title type='text'>Subversion vs. Git</title><summary type='text'>When deciding on the best repository type for your team, there are a number of important factors. Subversion has become the de facto standard in our industry for the past several years, however, there is a new and very powerful version control system: Git.  Git is a distributed version control system, originally developed by Linus Torvalds for Linux kernel development. It has grown over the years</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8656233902936875773/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8656233902936875773' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8656233902936875773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8656233902936875773'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/09/subversion-vs-git.html' title='Subversion vs. Git'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5014455280884729468</id><published>2009-09-03T16:01:00.000-04:00</published><updated>2009-09-03T16:04:03.282-04:00</updated><title type='text'>find para mover archivos antiguos</title><summary type='text'>El sgte comando mueve los archivos (no directorios) de la carpeta en donde se encuentra (sin acceder a subdirectorios) accedidos hace más de 10mins a la carpeta "carpeta"find . -maxdepth 1 -type f -amin +10 -exec mv '{}' carpeta/ \;</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5014455280884729468/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5014455280884729468' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5014455280884729468'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5014455280884729468'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/09/find-para-mover-archivos-antiguos.html' title='find para mover archivos antiguos'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4941257055260701386</id><published>2009-09-02T08:30:00.000-04:00</published><updated>2009-09-02T08:39:22.812-04:00</updated><title type='text'>Interface Hall of Shame</title><summary type='text'>Ref: http://homepage.mac.com/bradster/iarchitect/shame.htm</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4941257055260701386/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4941257055260701386' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4941257055260701386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4941257055260701386'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/09/interface-hall-of-shame.html' title='Interface Hall of Shame'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1301989147039146158</id><published>2009-09-02T08:26:00.001-04:00</published><updated>2009-09-02T08:26:57.743-04:00</updated><title type='text'>How to test an SMTP server using telnet</title><summary type='text'>ref: http://www.anta.net/misc/telnet-troubleshooting/smtp.shtmltelnet: &gt; telnet mx1.example.com smtptelnet: Trying 192.0.2.2...telnet: Connected to mx1.example.com.telnet: Escape character is '^]'.server: 220 mx1.example.com ESMTP server ready Tue, 20 Jan 2004 22:33:36 +0200client: HELO client.example.comserver: 250 mx1.example.comclient: MAIL from: server: 250 Sender  Okclient: RCPT to: server: </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1301989147039146158/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1301989147039146158' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1301989147039146158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1301989147039146158'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/09/how-to-test-smtp-server-using-telnet.html' title='How to test an SMTP server using telnet'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4879096496144586186</id><published>2009-08-16T16:53:00.001-04:00</published><updated>2009-08-16T16:53:57.545-04:00</updated><title type='text'>Linux - Add a existing user to existing group</title><summary type='text'>Add existing user tony to ftp supplementary/secondary group with usermod command using -a option ~ i.e. add the user to the supplemental group(s). Use only with -G option:# usermod -a -G ftp tonyChange existing user tony primary group to www:# usermod -g www tony</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4879096496144586186/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4879096496144586186' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4879096496144586186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4879096496144586186'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/08/linux-add-existing-user-to-existing.html' title='Linux - Add a existing user to existing group'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-687895951596366879</id><published>2009-08-08T12:58:00.000-04:00</published><updated>2009-08-08T13:40:23.570-04:00</updated><title type='text'>Instalar D-Link DWA-110 en debian lenny</title><summary type='text'>Instalar drivers:http://wiki.debian.org/WiFi/rt73#LennyInstalar wpa_supplicant:http://wiki.debian.org/WiFi/HowToUse#wpasupplicant</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/687895951596366879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=687895951596366879' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/687895951596366879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/687895951596366879'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/08/instalar-d-link-dwa-110-en-debian-lenny.html' title='Instalar D-Link DWA-110 en debian lenny'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3367889670509705818</id><published>2009-08-07T18:52:00.001-04:00</published><updated>2009-08-07T18:59:38.648-04:00</updated><title type='text'>Instalación de debian 5.02 desde el disco duro teniendo otro debian ya instalado</title><summary type='text'>Obtener desde:ftp://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/hd-media/Los sgtes archivos:boot.img.gz initrd.gz vmlinuzObtener desde www.debian.org el "Network install from a minimal CD":debian-502-i386-netinst.isoEn el debian ya instalado:mkdir /boot/newinstallcopiar en ese directorio los sgtes archivos:boot.img.gzinitrd.gzvmlinuzdebian-502-i386-netinst.isoAgregar al </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3367889670509705818/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3367889670509705818' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3367889670509705818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3367889670509705818'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/08/instalacion-de-debian-502-desde-el.html' title='Instalación de debian 5.02 desde el disco duro teniendo otro debian ya instalado'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4659597292832082873</id><published>2009-08-06T16:54:00.000-04:00</published><updated>2009-08-06T16:55:40.494-04:00</updated><title type='text'>Obtención del nombre de la máquina en PHP</title><summary type='text'>Si no resulta $_SERVER['SERVER_NAME'], usar:php_uname('n');</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4659597292832082873/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4659597292832082873' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4659597292832082873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4659597292832082873'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/08/obtencion-del-nombre-de-la-maquina-en.html' title='Obtención del nombre de la máquina en PHP'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1305732181655083698</id><published>2009-07-22T08:00:00.000-04:00</published><updated>2009-07-22T08:15:36.310-04:00</updated><title type='text'>Logs tipo Apache NCSA en framework Restlet... y con DailyRollingFileAppender</title><summary type='text'>El servidor web (ej: jetty) del framework Restlet arroja logs de los requests en formato Apache (NCSA) al logging estándar del JDK.Para capturar esos logs, colocar en el main de la aplicación:     java.util.logging.Handler fh = new NCSAFileHandler();     java.util.logging.Logger.getLogger("").addHandler(fh);    La clase NCSAFileHandler es sencilla, sólo sobreescribe 1 método de su padre Handler:</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1305732181655083698/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1305732181655083698' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1305732181655083698'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1305732181655083698'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/07/logs-tipo-apache-ncsa-en-framework.html' title='Logs tipo Apache NCSA en framework Restlet... y con DailyRollingFileAppender'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7612143500408320523</id><published>2009-07-04T21:56:00.001-04:00</published><updated>2009-07-04T22:02:43.900-04:00</updated><title type='text'>No me hagas pensar - ¿Cómo usamos realmente la web?</title><summary type='text'>No leemos las páginas, las hojeamosTenemos prisaSabemos que no hay que leerlo todoSomos buenos para hojear (ej: periódicos)Satisficing: No tomamos decisiones óptimas, es suficienteTenemos prisaErrar -&gt; AtrásAdivinar es más divertidoNo leemos el manual, nos las arreglamosNo nos importa Si funciona, seguimos con elloEj: docenas de personas escriben las url en la búsqueda de yahoo. "Yahoo es la </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7612143500408320523/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7612143500408320523' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7612143500408320523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7612143500408320523'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/07/no-me-hagas-pensar-como-usamos.html' title='No me hagas pensar - ¿Cómo usamos realmente la web?'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8199522295282317337</id><published>2009-07-03T17:57:00.001-04:00</published><updated>2009-07-03T18:00:14.677-04:00</updated><title type='text'>No me hagas pensar - Clics evidentes</title><summary type='text'>¿Dónde harías clic para ver detalles de la oferta de compras de 3 a 12 cuotas que aparece en el banner?Al colocar el ratón, sólo se podía hacer clic en la zona en verde oscuro...Otro caso de facebook:Al colocar el ratón encima de "Name", cambia el puntero, ¿A dónde me lleva?, no aparece nada abajo en el status bar del browser, al presionarlo me di cuenta de que lleva al mismo lado que al hacer </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8199522295282317337/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8199522295282317337' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8199522295282317337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8199522295282317337'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/07/no-me-hagas-pensar-clics-evidentes.html' title='No me hagas pensar - Clics evidentes'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1Rl9o2l3oA4/Sk5-67pduuI/AAAAAAAAAr4/Dnmoz9flPFo/s72-c/edwards_clics.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3440776003658319051</id><published>2009-06-29T11:11:00.000-04:00</published><updated>2009-06-29T11:40:18.433-04:00</updated><title type='text'>No me hagas pensar - Primera norma de la usabilidad de Krug</title><summary type='text'>"Si algo es complicado de utilizar, simplemente no lo uso demasiado" (esposa del autor)Facilidad de uso no es:2 clics de distancia usar el lenguaje del usuario ser coherentesino:¡No me hagas pensar!Usuario sin pensar:Esto es...Y eso es ...Y eso es lo que quiero!Usuario pensando:¿Por dónde empiezo?¿Por qué esto se llama así?¿Puedo hacer clic en esto?¿Puedo navegar por aquí o me llevará a otro </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3440776003658319051/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3440776003658319051' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3440776003658319051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3440776003658319051'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/06/no-me-hagas-pensar-primera-norma-de-la.html' title='No me hagas pensar - Primera norma de la usabilidad de Krug'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1Rl9o2l3oA4/SkjcYA800HI/AAAAAAAAAro/7AfL4035utY/s72-c/deremate.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-301015936170320383</id><published>2009-06-01T15:04:00.000-04:00</published><updated>2009-06-01T15:55:54.440-04:00</updated><title type='text'>Tiempo (temperaturas) de Chile en el celular</title><summary type='text'>Para construir una página WAP para revisar el tiempo de Santiago, se puede obtener datos desde la sgte url:http://www.meteochile.cl/js/reg05m.jsy luego Parsear las sgtes líneas:temperaturas['Santiago Sector Oriente']='/24|7/18|9/15|6/14|4/16';pronosticos['Santiago Sector Oriente']='Despejado|Escasa nubosidad|Nublado|Nublado variando a escasa nubosidad|Despejado';iconos['Santiago Sector Oriente']=</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/301015936170320383/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=301015936170320383' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/301015936170320383'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/301015936170320383'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/06/tiempo-temperaturas-de-chile-en-el.html' title='Tiempo (temperaturas) de Chile en el celular'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3137743471095896467</id><published>2009-05-27T09:34:00.000-04:00</published><updated>2009-05-27T09:36:35.313-04:00</updated><title type='text'>OpenOffice - Readonly Content Cannot Be Changed</title><summary type='text'>Ir a editar el Indice de Contenidos, on the first tab you have an option "protected against manual changes". When you disable it, (save and reopen) the document becomes read/write again.</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3137743471095896467/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3137743471095896467' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3137743471095896467'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3137743471095896467'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/05/openoffice-readonly-content-cannot-be.html' title='OpenOffice - Readonly Content Cannot Be Changed'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3894119831425051692</id><published>2009-05-26T17:32:00.000-04:00</published><updated>2009-05-26T17:34:01.272-04:00</updated><title type='text'>Cómo iniciar DHCP en arranque, no luego del login</title><summary type='text'>pablo@pablo-desktop:~$ more /etc/network/interfacesauto lo eth0iface lo inet loopbackiface eth0 inet dhcp</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3894119831425051692/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3894119831425051692' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3894119831425051692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3894119831425051692'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/05/como-iniciar-dhcp-en-arranque-no-luego.html' title='Cómo iniciar DHCP en arranque, no luego del login'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1314294296063382796</id><published>2009-03-19T19:26:00.000-04:00</published><updated>2009-03-19T19:29:17.002-04:00</updated><title type='text'>mv (rename) de varios archivos</title><summary type='text'>En el sgte ejemplo, el comando rename renombra *.jpg para cambiarles la extensión "jpg" por "jpeg"rename -n 's/jpg$/jpeg/' *.jpgref: https://answers.launchpad.net/ubuntu/+source/nautilus/+question/2309</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1314294296063382796/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1314294296063382796' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1314294296063382796'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1314294296063382796'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/mv-rename-de-varios-archivos.html' title='mv (rename) de varios archivos'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4377966160613387772</id><published>2009-03-17T15:38:00.000-04:00</published><updated>2009-03-17T15:44:00.078-04:00</updated><title type='text'>Los elementos XML no pueden comenzar con números</title><summary type='text'>Definition: A Name is an Nmtoken with a restricted set of initial characters. Disallowed initial characters for Names include digits...Ref: http://www.w3.org/TR/REC-xml/#NT-NameStartChar</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4377966160613387772/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4377966160613387772' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4377966160613387772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4377966160613387772'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/los-elementos-xml-no-pueden-comenzar.html' title='Los elementos XML no pueden comenzar con números'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-744187282425628427</id><published>2009-03-12T10:45:00.000-03:00</published><updated>2009-03-12T10:47:42.315-03:00</updated><title type='text'>Si a PHP llegan datos en utf8 de una BD mysql en latin1</title><summary type='text'>Si a PHP llegan datos en utf8 de una BD mysql que en realidad está en latin1, la solución es luego de llamar a mysql_connect, llamar a:mysql_set_charset("latin1");De esta manera llegarán al PHP los datos en latin1 (que es como realmente están en BD).</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/744187282425628427/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=744187282425628427' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/744187282425628427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/744187282425628427'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/si-php-llegan-datos-en-utf8-de-una-bd.html' title='Si a PHP llegan datos en utf8 de una BD mysql en latin1'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4492518010297328165</id><published>2009-03-12T10:17:00.000-03:00</published><updated>2009-03-12T10:21:11.332-03:00</updated><title type='text'>Encoding de vim</title><summary type='text'>Si se tienen archivos encodeados en latin1 y al hacerles "more" en una shell (ej: putty) configurada con latin1 y se ve todo bien, pero vim no hace bien el print de los caracteres con acento en latin1, revisar que exista la sgte configuración en el bash_profile:$ more .bash_profile...export LANG=en_US.iso88591Con lo último, vim atina a hacer print en latin1 de los caracteres en latin1.</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4492518010297328165/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4492518010297328165' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4492518010297328165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4492518010297328165'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/encoding-de-vim.html' title='Encoding de vim'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7286930608060210086</id><published>2009-03-11T08:57:00.000-03:00</published><updated>2009-03-11T10:42:55.768-03:00</updated><title type='text'>ps + grep = pgrep</title><summary type='text'>En vez de escribir el largo comando:[pablo@mipc ~]$ ps -fea --cols=400| grep tunapara obtener todos los procesos ejecutándose que tengan en su línea de comandos la palabra "tuna", mejor usar el comando pgrep:[pablo@mipc~]$ pgrep -fl tuna31591 /bin/bash /home/pablo/tuna/dist/tuna_startup.sh 808331594 java -Djava.library.path=:/home/pablo/tuna/lib tuna.Tuna -p 8083 -profiles /home/pablo/tuna/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7286930608060210086/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7286930608060210086' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7286930608060210086'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7286930608060210086'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/ps-grep-pgrep.html' title='ps + grep = pgrep'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5098347026847934135</id><published>2009-03-10T21:48:00.000-03:00</published><updated>2009-03-10T21:49:47.159-03:00</updated><title type='text'>Google Static Maps API</title><summary type='text'>The Google Static  Maps API lets you embed a Google Maps image on your webpage without requiring JavaScript or  any dynamic page loading. The Google Static Map service creates your map based on URL  parameters sent through a standard HTTP request and returns the map as an image you can  display on your web page.staticmaps</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5098347026847934135/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5098347026847934135' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5098347026847934135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5098347026847934135'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/google-static-maps-api.html' title='Google Static Maps API'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6394730046559442019</id><published>2009-03-05T10:35:00.000-03:00</published><updated>2009-03-05T10:45:47.049-03:00</updated><title type='text'>Free Online Photo Editors</title><summary type='text'>http://www.cellsea.com/media/Otros:http://www.pixlr.com/editor/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6394730046559442019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6394730046559442019' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6394730046559442019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6394730046559442019'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/cellsea-free-online-photo-editor.html' title='Free Online Photo Editors'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1Rl9o2l3oA4/Sa_VZlwoyGI/AAAAAAAAArg/6EUOiQgCzyI/s72-c/chellsea%282%29.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3058817289293614531</id><published>2009-03-03T12:16:00.000-03:00</published><updated>2009-03-03T12:19:49.832-03:00</updated><title type='text'>cómo insertar datos utf8, encodeados en utf8 en BD usando java</title><summary type='text'>Supuesto: /tmp/test.txt es un archivo con varias "ñ" y letras con tilde, encodeado en utf8.FileInputStream fis = new FileInputStream("/tmp/test.txt");       byte[] buffer = new byte[10];       fis.read(buffer);       String titulo = new String(buffer,"UTF-8");       titulo = new String(titulo.getBytes("UTF-8"),"ISO-8859-1");El truco es la última línea (por si uno está en otro caso en que el </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3058817289293614531/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3058817289293614531' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3058817289293614531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3058817289293614531'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/03/como-insertar-datos-utf8-encodeados-en.html' title='cómo insertar datos utf8, encodeados en utf8 en BD usando java'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7467657893611062614</id><published>2009-02-02T12:40:00.000-03:00</published><updated>2009-02-02T12:45:33.046-03:00</updated><title type='text'>Clean Code: Open-Closed Principle</title><summary type='text'>"Classes should be open for extension but closed for modification."Un programa no debiere estar preparado para ser modificado, sino, para ser extendido, ej: usando subclases o nuevos métodos que usen a los existentes.De esa manera, nuevas funcionalidades tienen menos riesgo de afectar a funcionalidades antiguas.Ref:Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7467657893611062614/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7467657893611062614' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7467657893611062614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7467657893611062614'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/02/clean-code-open-closed-principle.html' title='Clean Code: Open-Closed Principle'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2143770092596545068</id><published>2009-01-29T16:50:00.000-03:00</published><updated>2009-01-29T17:00:50.222-03:00</updated><title type='text'>Clean Code: Cohesión en clases</title><summary type='text'>Alta cohesión en una clases se ve reflejada en:Bajo número de atributos. Si se usa la estrategia de funciones pequeñas y con pocos argumentos, los atributos subirán en número. Cuando esto pasa es porque la clase se debiera dividir en más clases.Cada método usa muchos (ojalá todos) los atributos de la clase. Utopía: todos los métodos usan cada uno de los atributos de la clase.Ref:Clean Code: A </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2143770092596545068/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2143770092596545068' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2143770092596545068'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2143770092596545068'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/clean-code-cohesion-en-clases.html' title='Clean Code: Cohesión en clases'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8498002609536219986</id><published>2009-01-28T16:44:00.000-03:00</published><updated>2009-01-28T16:47:44.270-03:00</updated><title type='text'>SQL para obtener datetime pasado que sea multiplo de 5</title><summary type='text'>Con este input:set @a = '2009-01-28 16:57:50';el sgte sql:SELECT    DATE_SUB(DATE_SUB(@a, INTERVAL (MINUTE(@a) MOD 5) MINUTE), INTERVAL SECOND(@a) SECOND)produce como resultado:2009-01-28 16:55:00</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8498002609536219986/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8498002609536219986' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8498002609536219986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8498002609536219986'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/sql-para-obtener-datetime-pasado-que.html' title='SQL para obtener datetime pasado que sea multiplo de 5'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1704025554680059992</id><published>2009-01-27T16:25:00.000-03:00</published><updated>2009-01-27T16:37:57.229-03:00</updated><title type='text'>Clean Code: Single Responsibility Principle</title><summary type='text'>Single Responsibility Principle: a class or module should have one, and only one reason to change.Los componentes grandes o con varias responsabilidades tienen varias razones para cambiar: cambios en cualquiera de sus responsabilidades.Si un componente cambia, hay que probarlo entero. Si el componente es grande, eso es costoso.Ref:Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1704025554680059992/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1704025554680059992' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1704025554680059992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1704025554680059992'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/clean-code-single-responsibility.html' title='Clean Code: Single Responsibility Principle'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-9007944739391441378</id><published>2009-01-27T15:58:00.000-03:00</published><updated>2009-01-27T16:18:49.557-03:00</updated><title type='text'>Clean Code: Class Organization - Java convention</title><summary type='text'>To read a class like a newspaper article:class Example { public static constant; private static variable; public static instanceVariable; public publicVariable; //there is seldom good reason for this public method1(){ ... } private method2(){ ... }}Ref:Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)Publisher: Prentice Hall PTR; 1 edition (August 11, 2008)ISBN-10: </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/9007944739391441378/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=9007944739391441378' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/9007944739391441378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/9007944739391441378'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/clean-code-class-organization-java.html' title='Clean Code: Class Organization - Java convention'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4504007257342057306</id><published>2009-01-26T14:34:00.000-03:00</published><updated>2009-01-26T14:41:09.111-03:00</updated><title type='text'>Manejo de strings en java provenientes de BD en utf8</title><summary type='text'>Si en una BD tengo string encodeados en utf8, al obtenerlos en un programa java, el java no les hace un decode de utf8, sino que los trata con el encoding default de la jvm (lo cual es indeterminado). Por lo tanto, cualquier tilde en utf8 si se imprime desde el java, se verá como un garabato.La solución es obtener los bytes que vienen de BD encodeados en latin1 y luego hacerles un decode </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4504007257342057306/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4504007257342057306' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4504007257342057306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4504007257342057306'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/manejo-de-strings-en-java-provenientes.html' title='Manejo de strings en java provenientes de BD en utf8'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2130279396699801104</id><published>2009-01-19T17:55:00.000-03:00</published><updated>2009-01-19T18:07:20.478-03:00</updated><title type='text'>Clean Code: Using Third-Party Code</title><summary type='text'>Hay clases en las librerías hechas por externos que ofrecen muchas funcionalidades.Si se pasan objetos de ese tipo de clases entre métodos de la aplicación, se corre el riesgo de que en algún lado se usen de manera indebida.Ej: si en java se usa un Map y ese Map es usado en varios métodos (se retorna o se pasa como argumento), se corre el riesgo de que en alguna parte se le haga un delete o un </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2130279396699801104/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2130279396699801104' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2130279396699801104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2130279396699801104'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/clean-code-using-third-party-code.html' title='Clean Code: Using Third-Party Code'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3223211201777494868</id><published>2009-01-15T21:18:00.000-03:00</published><updated>2009-01-19T18:07:58.936-03:00</updated><title type='text'>CleanCode: Don't Pass Null</title><summary type='text'>Pasar nulls como argumentos a los métodos provoca que los métodos que se construyen tengan que preocuparse de esos casos. Es un lastre que tendrá que tener todo método que reciba como argumento un objeto.Mejor acostumbrarse a que si llega un null como argumento, es un error de programación.Ref:Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)Publisher: Prentice Hall</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3223211201777494868/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3223211201777494868' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3223211201777494868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3223211201777494868'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/cleancode-dont-pass-null.html' title='CleanCode: Don&apos;t Pass Null'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2379357550875492194</id><published>2009-01-15T21:15:00.001-03:00</published><updated>2009-01-19T18:08:20.247-03:00</updated><title type='text'>CleanCode: Don't Return Null</title><summary type='text'>Evitar retornar nulls en los métodos.Esto porque requiere que quien lo llama se preocupe de manejar ese caso especial con un if fácilmente olvidable.Mejor, arrojar una excepción o si no es el caso, retornar algún objeto que permita salir del paso, ej: Collections.emptyList()Ref:Clean Code: A Handbook of Agile Software Craftsmanship (Robert C. Martin Series)Publisher: Prentice Hall PTR; 1 edition </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2379357550875492194/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2379357550875492194' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2379357550875492194'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2379357550875492194'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/cleancode-dont-return-null.html' title='CleanCode: Don&apos;t Return Null'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4503743500372112932</id><published>2009-01-15T08:00:00.000-03:00</published><updated>2009-01-15T08:01:19.267-03:00</updated><title type='text'>EXT4 filesystem in Ubuntu 9.04</title><summary type='text'>the EXT4 filesystem was implemented in the upcoming Ubuntu 9.04 Alpha 3 a couple of days ago and it will be available in the Ubuntu Installer, if you choose manual partitioning.Ref</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4503743500372112932/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4503743500372112932' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4503743500372112932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4503743500372112932'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/ext4-filesystem-in-ubuntu-904.html' title='EXT4 filesystem in Ubuntu 9.04'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5514869987455205221</id><published>2009-01-14T15:33:00.000-03:00</published><updated>2009-01-14T15:34:45.653-03:00</updated><title type='text'>Accessing GET-parameters with Restlet</title><summary type='text'>Today, I needed to read HTTP-GET parameters in a restlet, e.g. http://localhost/restlet?someParam=foo, and came up with:request.getResourceRef().getQueryAsForm().getFirstValue("someParam");Referencia aqui</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5514869987455205221/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5514869987455205221' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5514869987455205221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5514869987455205221'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/accessing-get-parameters-with-restlet.html' title='Accessing GET-parameters with Restlet'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5851650185585561980</id><published>2009-01-14T14:18:00.000-03:00</published><updated>2009-01-14T14:22:04.245-03:00</updated><title type='text'>How to export environment variables for a java Runtime.exec in Linux</title><summary type='text'>Usar el comando linux "env", luego de él van las variables a exportar y al final el comando que se quiere ejecutar dentro del nuevo environment.Ej: para ejecutar test.sh con la variable LOG_DIR=/home/pablo/logs:env LOG_DIR=/home/pablo/logs /home/pablo/test.sh</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5851650185585561980/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5851650185585561980' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5851650185585561980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5851650185585561980'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2009/01/how-to-export-environment-variables-for.html' title='How to export environment variables for a java Runtime.exec in Linux'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5836834510539967882</id><published>2008-12-29T17:28:00.000-03:00</published><updated>2008-12-29T17:32:42.934-03:00</updated><title type='text'>levantar IP que apunte a la loopback interface en ubuntu</title><summary type='text'>Comandos mágicos para que las IPs 10.1.0.2 y 10.1.0.3 apunten a la loopback interface:sudo ifconfig lo up sudo ifconfig lo 127.0.0.1sudo ifconfig lo:0 10.1.0.2sudo ifconfig lo:1 10.1.0.3sudo route add -host 127.0.0.1 losudo route add -host 10.1.0.2 lo:0sudo route add -host 10.1.0.3 lo:1y así sucesivamente para agregar las IPs que se quiera</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5836834510539967882/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5836834510539967882' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5836834510539967882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5836834510539967882'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/12/levantar-ip-que-apunte-la-loopback.html' title='levantar IP que apunte a la loopback interface en ubuntu'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6789358946787768780</id><published>2008-12-10T11:20:00.000-03:00</published><updated>2008-12-10T11:24:05.483-03:00</updated><title type='text'>Cuidado con acceder a BD dentro un rowhandler ibatis</title><summary type='text'>IDbConnection documentation says:Note that while a DataReader is open, the Connection is in use exclusively by that DataReader. You will not be able to execute any commands for the Connection, including creating another DataReader, until the original DataReader is closed</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6789358946787768780/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6789358946787768780' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6789358946787768780'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6789358946787768780'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/12/cuidado-con-acceder-bd-dentro-un.html' title='Cuidado con acceder a BD dentro un rowhandler ibatis'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4094770872274569714</id><published>2008-11-27T09:10:00.000-03:00</published><updated>2008-11-27T09:20:03.102-03:00</updated><title type='text'>variable++ o ++variable?</title><summary type='text'>Por fin me topé con un caso real en que cometí el error de usar variable++ sin pensar en las fatales consecuencias.Lo siguiente deja siempre a c con el valor 0:        int c = 0;        for (int i = 0;true; i++) {            c =(c++)%1000;            ...        }Eso porque c++ quiere decir que justo luego de evaluar la expresión de la derecha, c debe incrementarse en 1. Entonces, la expresión se </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4094770872274569714/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4094770872274569714' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4094770872274569714'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4094770872274569714'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/variable-o-variable.html' title='variable++ o ++variable?'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-7454678919893945270</id><published>2008-11-22T17:04:00.000-03:00</published><updated>2009-05-26T17:38:18.459-04:00</updated><title type='text'>Cómo dejar a Tuna como demonio en init.d</title><summary type='text'>Copiar o mover el archivo:dist/tuna_in_init.den la ruta:/etc/init.d/tunaTiene la siguiente estructura:pablo@pablo-desktop:~$ more /etc/init.d/tuna #!/bin/sh## chkconfig: - 90 90### BEGIN INIT INFO# Provides: tuna # Description: SSH-Tunnel Administrator### END INIT INFOcase "$1" in'start')COMANDO PARA INICIAR;;'stop')COMANDO PARA DETENER;;*)echo "Usage: $0 { start | stop }";;esacexit 0Finalmente, </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/7454678919893945270/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=7454678919893945270' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7454678919893945270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/7454678919893945270'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/cmo-dejar-tuna-como-demonio-en-initd.html' title='Cómo dejar a Tuna como demonio en init.d'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1482475408125425394</id><published>2008-11-20T15:43:00.000-03:00</published><updated>2008-11-20T15:46:18.671-03:00</updated><title type='text'>Cómo setear encoding ISO a sitio web alojado en apache UTF8</title><summary type='text'>Simplemente escribir en la raiz del sitio un .htaccess:[pablo@pc mipaginaweb]# more .htaccessAddDefaultCharset ISO-8859-1</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1482475408125425394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1482475408125425394' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1482475408125425394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1482475408125425394'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/cmo-setear-encoding-iso-sitio-web.html' title='Cómo setear encoding ISO a sitio web alojado en apache UTF8'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3555920898182154488</id><published>2008-11-18T17:23:00.000-03:00</published><updated>2008-11-18T17:24:25.641-03:00</updated><title type='text'>Google Apps Gets a 99.9% Guarantee</title><summary type='text'>David Gerard passes along a posting on Google's official blog announcing that they have extended the three-nines SLA for the Premier Edition of Google Apps from Gmail alone to also cover the Calendar, Docs, Sites, and Google Talk services. 99.9% uptime translates to 45 minutes a month of downtime, and the blog post puts this in context with Gmail's historical reliability, which has been between </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3555920898182154488/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3555920898182154488' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3555920898182154488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3555920898182154488'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/google-apps-gets-999-guarantee.html' title='Google Apps Gets a 99.9% Guarantee'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5732867545588981297</id><published>2008-11-14T18:49:00.001-03:00</published><updated>2008-11-14T18:50:42.359-03:00</updated><title type='text'>Comando linux para eliminar archivos que cumplan una regex</title><summary type='text'>Ejemplo, eliminar todos los archivos (incluyendo subdirectorios) que contengan la palabra "200":find . -regex ".*200.*" -exec rm {} \;Nota: {} es tomado como el nombre del archivo encontrado por find.</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5732867545588981297/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5732867545588981297' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5732867545588981297'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5732867545588981297'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/comando-linux-para-eliminar-archivos.html' title='Comando linux para eliminar archivos que cumplan una regex'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6012812063189051904</id><published>2008-11-14T17:50:00.001-03:00</published><updated>2008-11-14T17:57:56.601-03:00</updated><title type='text'>Comando linux para contar cada tipo de linea de un archivo</title><summary type='text'>Si tengo un archivo archivo con lineas iguales agrupadas (lo que se puede crear con sort), como el sgte contenido:hola como estashola como estashola como estasHola, como has estado?Hola, como has estado?Yo estoy bienYo estoy bienYo estoy bienYo estoy bienYo estoy bien   y quiero un conteo de cada tipo de línea, como el sgte ejemplo:hola como estas =&gt; 3Hola, como has estado? =&gt; 2Yo estoy bien =&gt; </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6012812063189051904/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6012812063189051904' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6012812063189051904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6012812063189051904'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/comando-linux-para-contar-cada-tipo-de.html' title='Comando linux para contar cada tipo de linea de un archivo'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3889708965535115010</id><published>2008-11-10T13:57:00.000-03:00</published><updated>2008-11-10T14:00:58.385-03:00</updated><title type='text'>xrdp: remote desktop server para linux</title><summary type='text'>Based on the work of rdesktop,     xrdp uses the remote desktop protocol to present a GUI to the     user.Unlike Windows NT/2000/2003/2008 server, xrdp will not display a     Windows desktop but an X window desktop to the user.http://xrdp.sourceforge.net/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3889708965535115010/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3889708965535115010' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3889708965535115010'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3889708965535115010'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/xrdp-remote-desktop-server-para-linux.html' title='xrdp: remote desktop server para linux'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1Rl9o2l3oA4/SRhoirZyrHI/AAAAAAAAArY/l8zR9BcphAI/s72-c/screenshot.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-3122738471964947405</id><published>2008-11-10T13:42:00.000-03:00</published><updated>2008-11-10T13:44:47.535-03:00</updated><title type='text'>Google Chart API</title><summary type='text'>The Google Chart API lets you dynamically generate charts. To see the Chart API in action, open up a browser window and copy the following URL into it:  http://chart.apis.google.com/chart?cht=p3&amp;chd=t:60,40&amp;chs=250x100&amp;chl=Hello|World  Press the Enter or Return key and - presto! - you should see the following image:  http://code.google.com/apis/chart/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/3122738471964947405/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=3122738471964947405' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3122738471964947405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/3122738471964947405'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/google-chart-api.html' title='Google Chart API'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5151103933567636487</id><published>2008-11-05T10:37:00.000-03:00</published><updated>2008-11-05T10:42:29.295-03:00</updated><title type='text'>Evitar escribir passwords ssh con sshpass</title><summary type='text'>No sólo se puede con putty en windows, también en linux con sshpass.En ubuntu se instala como se intuiría:sudo apt-get install sshpassEntonces, para crear una conexión ssh con la password (ej: dIjfl3nSS) en la línea de comandos:sshpass -p dIjfl3nSS ssh algunhost.cl -lpablo</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5151103933567636487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5151103933567636487' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5151103933567636487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5151103933567636487'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/evitar-escribir-passwords-ssh-con.html' title='Evitar escribir passwords ssh con sshpass'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-9059010155422139236</id><published>2008-11-05T09:54:00.000-03:00</published><updated>2008-11-05T10:04:25.123-03:00</updated><title type='text'>Gnome Launch Box en xubuntu</title><summary type='text'>El katapult o launchy o quicksilver para gnome, llamado Gnome Launch Box funciona en xubuntu.Instalación:sudo apt-get install gnome-launch-boxConfigurar el clásico space:"Xfce Menu"-&gt; Settings -&gt; Keyboard Settings, hacer una asociación entre gnome-launch-box y gnome-launch-box.Logout, login en el Xfce, tipear space y algo como "spread" para que encuentre el SpreadSheet de OpenOffice.Probado en </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/9059010155422139236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=9059010155422139236' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/9059010155422139236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/9059010155422139236'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/11/gnome-launch-box-en-xubuntu.html' title='Gnome Launch Box en xubuntu'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2247859656171747361</id><published>2008-10-30T23:21:00.000-03:00</published><updated>2008-10-30T23:26:21.979-03:00</updated><title type='text'>Encodings: Strings "Windows-1252" en python</title><summary type='text'>Me topé en:http://noticias.iglesia.cl/noticia.php?id=7946con un texto que tenía un guión misterioso que en el browser se ve como un guión un poco más largo que lo normal.Descubrí que ese guión venía encodeado en "Windows-1252".Al obtener el texto de esa página en un string en python, me fue deseable reemplazar ese guión por el guión normal.Para ello, tuve primero que leer bien el string recibido </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2247859656171747361/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2247859656171747361' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2247859656171747361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2247859656171747361'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/encodings-strings-windows-1252-en.html' title='Encodings: Strings &quot;Windows-1252&quot; en python'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4472855545322386576</id><published>2008-10-29T17:24:00.000-03:00</published><updated>2008-10-29T17:37:13.637-03:00</updated><title type='text'>Sólo un login, con OpenID</title><summary type='text'>SourceForge ofrece login usando OpenID, teniendo asociado, entre varios sistemas de login, el de blogspot.Yo tengo login en blogspot, por este sitio de pildorascomputinas, por lo que lo ingreso en el login de sourceforge:y como ya estoy logueado en blogspot, SourceForge usa esa sesión para validar el inicio de sesión en su sitio y me da la bienvenida!Nota: La primera vez que me logueo de sea </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4472855545322386576/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4472855545322386576' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4472855545322386576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4472855545322386576'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/slo-un-login-con-openid.html' title='Sólo un login, con OpenID'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1Rl9o2l3oA4/SQjHFSr0MEI/AAAAAAAAArI/PvH_0bug1Zo/s72-c/openid.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-640455702686507978</id><published>2008-10-29T17:22:00.000-03:00</published><updated>2008-10-29T17:23:55.274-03:00</updated><title type='text'>Tuna news: Download History Statistics</title><summary type='text'>No está mal...</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/640455702686507978/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=640455702686507978' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/640455702686507978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/640455702686507978'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/tuna-news-download-history-statistics.html' title='Tuna news: Download History Statistics'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_1Rl9o2l3oA4/SQjGRaYUloI/AAAAAAAAArA/idd-M3QFhD8/s72-c/tuna.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-74562790990478313</id><published>2008-10-17T16:45:00.000-03:00</published><updated>2008-10-17T17:00:29.756-03:00</updated><title type='text'>SQL update para convertir data latin1 a utf8</title><summary type='text'>En SQLyog, si queremos ver los datos de una tabla en latin1, ejecutar el sgte SQL:SET NAMES 'utf8';Ese comando se ejecuta por defecto al abrir una conexión en SQLyog.Luego, para cambiar de latin1 a utf8 la data de un campo de una tabla:update TablaTest set campotest=convert(CONVERT(CONVERT(campotest USING utf8) USING binary) using latin1)Si vemos ahora los datos de la tabla veremos garabatos, </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/74562790990478313/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=74562790990478313' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/74562790990478313'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/74562790990478313'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/sql-update-para-convertir-data-latin1.html' title='SQL update para convertir data latin1 a utf8'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-2255654663905159994</id><published>2008-10-17T14:41:00.000-03:00</published><updated>2008-10-17T14:43:48.852-03:00</updated><title type='text'>Cómo montar un directorio remoto por ssh en linux con fuse</title><summary type='text'>Instalación de fuse y sshfs:sudo apt-get install fuse-utilssudo apt-get install sshfsmkdir mihostmontadosudo gpasswd -a pablo fusedesloguearse y loguearse nuevamenteRef:http://ubuntu.wordpress.com/2005/10/28/how-to-mount-a-remote-ssh-filesystem-using-sshfs/Ejemplo para montar:sshfs mihost.cl:/var/www/html/misitio/ mihostmontado/para desmontar:fusermount -u mihostmontado/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/2255654663905159994/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=2255654663905159994' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2255654663905159994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/2255654663905159994'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/cmo-montar-un-directorio-remoto-por-ssh.html' title='Cómo montar un directorio remoto por ssh en linux con fuse'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1155072449649767610</id><published>2008-10-17T08:54:00.000-03:00</published><updated>2008-10-17T09:00:25.467-03:00</updated><title type='text'>Cómo hacer que SQLyog me hable en latin1 y a la BD en utf8</title><summary type='text'>La magia es ejecutar en la ventana de Query de SQLyog el sgte comando:SET NAMES 'latin1';luego refrescar cualquier resultado que SQLyog haya entregado antes.</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1155072449649767610/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1155072449649767610' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1155072449649767610'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1155072449649767610'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/cmo-hacer-que-sqlyog-me-hable-en-latin1.html' title='Cómo hacer que SQLyog me hable en latin1 y a la BD en utf8'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6801928908199986623</id><published>2008-10-16T21:57:00.000-03:00</published><updated>2008-10-16T22:02:42.055-03:00</updated><title type='text'>Plugins en Java</title><summary type='text'>Java 6 ofrece la clase ServiceLoader, que permite cargar plugins en tiempo de ejecución.Los plugins son objetos que implementan cierta interfaz. Por ejemplo, la sgte interfaz :package plugintest;public interface Saludador {    public abstract void saludar(String name);}Esa interfaz la podemos compilar en un .jar, para ser incluído en el proyecto principal y en el proyecto del plugin.Entonces, en </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6801928908199986623/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6801928908199986623' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6801928908199986623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6801928908199986623'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/plugins-en-java.html' title='Plugins en Java'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-4087506546518868368</id><published>2008-10-15T19:46:00.000-03:00</published><updated>2008-10-15T19:48:19.513-03:00</updated><title type='text'>RAE Simple: Mi primera aplicación en Google App Engine</title><summary type='text'>Mi primera aplicación para GAE la subí a:"http://rae.appspot.com"Sirve para consultar en la RAE por los significados de palabras.Por ejemplo, para obtener el significado de la palabra "diéresis", se puede acceder al link:http://rae.appspot.com/diéresis¿Cuál es la gracia?1.- Entrega los significados de la palabra en un formato html simplificado, esto para ahorrar plata si se accede con un celular </summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/4087506546518868368/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=4087506546518868368' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4087506546518868368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/4087506546518868368'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/rae-simple-mi-primera-aplicacin-en.html' title='RAE Simple: Mi primera aplicación en Google App Engine'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6875009002068132053</id><published>2008-10-13T18:31:00.001-03:00</published><updated>2008-10-13T18:34:26.173-03:00</updated><title type='text'>Cómo saber y cambiar el charset de un archivo en linux</title><summary type='text'>Con el comando file y la opción mime se puede saber el charset de un archivo:[pablo@mipc admin]$ file --mime test.htmltest.html: text/plain; charset=iso-8859-1Para cambiar el charset, con el comando iconv:[pablo@mipc admin]$ iconv --from-code=iso-8859-1 --to-code=utf-8 test.html &gt; test_new.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6875009002068132053/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6875009002068132053' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6875009002068132053'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6875009002068132053'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/cmo-saber-y-cambiar-el-charset-de-un.html' title='Cómo saber y cambiar el charset de un archivo en linux'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-8132498134631009733</id><published>2008-10-09T17:12:00.000-04:00</published><updated>2008-10-09T17:18:23.383-04:00</updated><title type='text'>GAE soporta minidom para parseo de xml</title><summary type='text'>En el sgte post se alerta que GAE soporta minidom para parseo de xml:http://groups.google.com/group/google-appengine/browse_thread/thread/85b7d03ff0d4ff2b/9fdfec112a4c051a?pli=1Acá la documentación de minidom:http://www.python.org/doc/2.5.2/lib/module-xml.dom.minidom.htmlThe Document Object Model API:http://www.python.org/doc/2.5.2/lib/module-xml.dom.html</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/8132498134631009733/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=8132498134631009733' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8132498134631009733'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/8132498134631009733'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/gae-soporta-minidom-para-parseo-de-xml.html' title='GAE soporta minidom para parseo de xml'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-5819406439863601879</id><published>2008-10-08T11:34:00.000-04:00</published><updated>2008-10-08T11:36:24.119-04:00</updated><title type='text'>SQL select con count-if</title><summary type='text'>By embedding an IF() function within a COUNT() function, you can gather several counts on the same table at once.If you use an IF() function to evaluate the condition, and return NULL if it's false, you can collect both totals in a single query:     SELECT COUNT(IF(something="this",1, NULL)) AS somethingcount, COUNT(*) AS total FROM mytable;http://dev.mysql.com/doc/refman/5.0/en/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/5819406439863601879/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=5819406439863601879' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5819406439863601879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/5819406439863601879'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/sql-select-con-count-if.html' title='SQL select con count-if'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-6229250291965785654</id><published>2008-10-07T16:53:00.001-04:00</published><updated>2008-10-07T16:55:16.873-04:00</updated><title type='text'>Browser Market Share</title><summary type='text'>A Septiembre de 2008:http://marketshare.hitslink.com/report.aspx?qprid=0</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/6229250291965785654/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=6229250291965785654' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6229250291965785654'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/6229250291965785654'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/browser-market-share.html' title='Browser Market Share'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_1Rl9o2l3oA4/SOvMTTbGd3I/AAAAAAAAAq4/f0Q4E-z_72Y/s72-c/CFT1007_0450171D4E7.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-406543361514572104.post-1315698901274052093</id><published>2008-10-06T08:57:00.000-04:00</published><updated>2008-10-06T09:01:39.726-04:00</updated><title type='text'>Tuna news: ahora se visualiza bien en chrome</title><summary type='text'>Ahora se puede usar chrome, además de Firefox3, para visualizar Tuna.Una foto:Tuna is a SSH-Tunnel Administrator to configure port forwardings, for Linux, Windows, and Mac. It has a web GUI for local or remote (if installed on server) management, on-hot setup and description of each forwarding, loopback IP support, encrypted passwords storage.http://tunadmin.sourceforge.net/</summary><link rel='replies' type='application/atom+xml' href='http://pildorascomputinas.blogspot.com/feeds/1315698901274052093/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=406543361514572104&amp;postID=1315698901274052093' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1315698901274052093'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/406543361514572104/posts/default/1315698901274052093'/><link rel='alternate' type='text/html' href='http://pildorascomputinas.blogspot.com/2008/10/tuna-news-ahora-se-visualiza-bien-en.html' title='Tuna news: ahora se visualiza bien en chrome'/><author><name>pbustos</name><uri>http://www.blogger.com/profile/10099011661269023099</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_1Rl9o2l3oA4/SOoMDZPN1NI/AAAAAAAAAqw/WoY0iBwP1pk/s72-c/tuna_chrome.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
