<?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-23294469</id><updated>2011-07-07T20:35:19.463-03:00</updated><title type='text'>Godoy's Blog</title><subtitle type='html'>Ideas about everything...  And about nothing at all.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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>42</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-23294469.post-114446913092119811</id><published>2006-04-08T01:03:00.000-03:00</published><updated>2006-04-08T01:05:30.933-03:00</updated><title type='text'>To investigate, definitely.</title><content type='html'>One thing that is worth investigating is CatWalk.  I really need to see how I can use it inside my apps to make my life easier...  and I also should take a look at its code and templates to see what I can mimic on my systems.&lt;br /&gt;&lt;br /&gt;After it was revamped it got incredibly beautiful and pleasant to work with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114446913092119811?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114446913092119811/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114446913092119811' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446913092119811'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446913092119811'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/04/to-investigate-definitely.html' title='To investigate, definitely.'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114446719624635148</id><published>2006-04-07T23:53:00.000-03:00</published><updated>2006-04-08T00:37:53.450-03:00</updated><title type='text'>So, what's up doc?</title><content type='html'>I've been somewhat busy lately.  Fixing a lot of things in NeoLab and this week I played with a new application - &lt;span style="font-style: italic;"&gt;Market Watch&lt;/span&gt; -, for doing some basic market analysis. I also used it to review some approaches and make some tests for improving NeoLab. I found some new bugs in TurboGears (I'm becoming a professional bug finder :-)) and fixed a patch I've sent them about validating "money" fields, of course with I18N in mind.&lt;br /&gt;&lt;br /&gt;Here are some screenshots of it.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/login.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/login.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/principal.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/principal.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/generos.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/generos.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/fornecedores_edicao.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/fornecedores_edicao.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/fornecedores_grid.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/fornecedores_grid.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/inflacao_ajuda.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/inflacao_ajuda.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/inflacao_edicao.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/inflacao_edicao.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/fornecedores_edicao.0.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/compras_entrada_dados.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/compras_entrada_dados.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114446719624635148?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114446719624635148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114446719624635148' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446719624635148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446719624635148'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/04/so-whats-up-doc.html' title='So, what&apos;s up doc?'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114446481286767591</id><published>2006-04-07T23:49:00.000-03:00</published><updated>2006-04-07T23:53:32.866-03:00</updated><title type='text'>Coming back...</title><content type='html'>I was thinking about abandoning this because of the several problems I had here publishing my blog...  I am doing nothing to push it to its limits, but it has already blocked for a few times.  I think the system is too fragile...  And, without any reason, it unblocks.&lt;br /&gt;&lt;br /&gt;I believe that there's something on their  Java code...  Anyway, I think I'll try a bit more...  I am not happy with this interface.  I believe, for example, that multiply's interface is much better, but then, it is an "unknown" place for the blogging activity...  :-&lt;br /&gt;Too bad...  And there there are some restrictions about the number of pictures per post, besides it being less flexible.  It is really hard to find somewhere to blog to without using your own server.  Who knows I'll just install WordPress or something like that at Wintermute (my server) and blog there...  It is more to me than anything else...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114446481286767591?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114446481286767591/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114446481286767591' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446481286767591'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114446481286767591'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/04/coming-back.html' title='Coming back...'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114277427516261070</id><published>2006-03-19T10:09:00.000-03:00</published><updated>2006-04-07T23:40:16.446-03:00</updated><title type='text'>Going deeper into the database</title><content type='html'>Sometimes we need less abstraction and a more direct access to the database.  Doing that when using something like TurboGears + SQLObject means that you have to either access the driver you're using directly -- and get worried with portability -- or to find out how to extract the driver and connection names directly from there.&lt;br /&gt;&lt;br /&gt;When would you want that?  I have two cases here:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;one generic decorator that traps database failure or success and generates a message&lt;/li&gt;&lt;li&gt;some specific methods where I'm using features unsupported by SQLObject (such as array columns)&lt;/li&gt;&lt;/ul&gt;The first one can be easily solved with:&lt;br /&gt;&lt;pre&gt;from siteamostras import model&lt;br /&gt;driver = model.hub.getConnection()._dbConnection.module&lt;/pre&gt;&lt;br /&gt;While the second requires a bit more digging:&lt;br /&gt;&lt;pre&gt;from siteamostras import model&lt;br /&gt;conn = model.hub.getConnection()&lt;br /&gt;conn.query("""insert into neolab.curvas_calibracao (concentracao, leitura,&lt;br /&gt;                                                  incluido_por_id, incluido_em,&lt;br /&gt;                                                  alterado_por_id, alterado_em)&lt;br /&gt;             values ('{1, 3, 5}','{2, 7, 15}', 1, now(), 1, now())""")&lt;br /&gt;hub.commit()  # Because I'm at the interactive prompt!&lt;br /&gt;conn.queryAll('select concentracao[2] from neolab.curvas_calibracao')&lt;br /&gt;# Output: [(Decimal("2.000000"),), (Decimal("2.000000"),), (Decimal("3.000000"),)]&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that's it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114277427516261070?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114277427516261070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114277427516261070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114277427516261070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114277427516261070'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/going-deeper-into-database.html' title='Going deeper into the database'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114273258348178063</id><published>2006-03-18T22:43:00.000-03:00</published><updated>2006-03-18T22:43:03.563-03:00</updated><title type='text'>SIC - Serviço de Informação da Carne</title><content type='html'>&lt;a href="http://www.sic.org.br/informacoes.asp"&gt;SIC - Serviço de Informação da Carne (pt_BR)&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;OK.  You've bought that amazing piece of meat...  How to cook it right?  How to cook it so that it doesn't get hard to eat?  Here's a page that contains some hints on that.  For you that doesn't speak Brazilian Portuguese this won't be all that useful, but you can always try passing it through some translation services...  (We have a lot of cuts of meat here and I don't remember seeing all that many around in other places....)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114273258348178063?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114273258348178063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114273258348178063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114273258348178063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114273258348178063'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/sic-servio-de-informao-da-carne.html' title='SIC - Serviço de Informação da Carne'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114263993433331743</id><published>2006-03-17T20:51:00.000-03:00</published><updated>2006-03-17T20:58:54.333-03:00</updated><title type='text'>There's the cleanest and easiest way and... there's IE's way.</title><content type='html'>I wrote the AJAX that showed the graphics I talked about &lt;a href="http://jlgodoyf.blogspot.com/2006/03/my-first-complex-ajax-page.html"&gt;here&lt;/a&gt;, and then I uploaded it to my client to be able to use.  Everything went OK and fast while he was using Linux, but when he opened IE...  The graphic simply didn's show up.&lt;br /&gt;&lt;br /&gt;The code for inserting the results for &lt;span style="font-weight: bold;"&gt;A&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;B&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;R²&lt;/span&gt; are the same that I used for the graphic, but I had to change the graphics part to be a DOM replacement instead of inserting the result as "innerHTML".  So, I had to create the DOM for the image, get the element that is going to be its parent, insert the image as its child, replace the original parent with the new one that contains the image.  The process is simple, but the complexity can be noticed from the description of what happens.&lt;br /&gt;&lt;br /&gt;What were the collateral effects?  The operation is slower, half the speed it was before.&lt;br /&gt;&lt;br /&gt;So, if you want fast code you should take care with IE 'cause your code might not work...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114263993433331743?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114263993433331743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114263993433331743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114263993433331743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114263993433331743'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/theres-cleanest-and-easiest-way-and.html' title='There&apos;s the cleanest and easiest way and... there&apos;s IE&apos;s way.'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114254023492775850</id><published>2006-03-16T17:05:00.000-03:00</published><updated>2006-03-16T17:17:14.940-03:00</updated><title type='text'>My first "complex" AJAX page</title><content type='html'>Today I finished developing my first complex AJAX page.  It has three actions:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;list all samples without a result for each selected analysis&lt;/li&gt;&lt;li&gt;creates a table to accept calibration readings and concentrations for the given analysis&lt;/li&gt;&lt;li&gt;calculates a curve adjusting it with minimum square fit for the given data on the calibration routine and also plot a graphic from this data&lt;/li&gt;&lt;/ul&gt;I found the resulting screen very pleasant and clean, and the results and graphic load very fast, but there's a message informing the user about what is happening if he's on a slow machine or slow link :-)&lt;br /&gt;&lt;br /&gt;Here's a screenshot.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/snapshot3.jpg"&gt;&lt;img style="cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/snapshot3.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Later, this courve will be used to correct readings from samples.  It is getting really nice and I'll see what else can I do to make things easier.  I'm very pleased with this for now, and it came out exactly as I wanted it to be.&lt;br /&gt;&lt;br /&gt;Now, I gotta go back and work with the part that will save all that into the database.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114254023492775850?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114254023492775850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114254023492775850' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114254023492775850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114254023492775850'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/my-first-complex-ajax-page.html' title='My first &quot;complex&quot; AJAX page'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114251515847075743</id><published>2006-03-16T10:13:00.000-03:00</published><updated>2006-03-16T10:19:18.493-03:00</updated><title type='text'>Very simple and useful widget</title><content type='html'>I was needing a widget that presented data just like TableForm does, but without a form or a submit button, so that I could plug just JavaScript actions to it -- I have some "forms" that prepare the page for data input or do some data manipulation... -- and then, I had the idea: why not just changing TableForm to TableList? :-)  Here's the new template.  It derives from turbogears.widgets.Form.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;class TableList(widgets.Form):&lt;br /&gt;    template = """&lt;br /&gt;    &amp;lt;div xmlns:py="http://purl.org/kid/ns#"&lt;br /&gt;        name="list_${name}"&lt;br /&gt;        py:attrs="form_attrs"&lt;br /&gt;    &gt;&lt;br /&gt;        &amp;lt;div py:for="field in hidden_fields"&lt;br /&gt;            py:replace="field.display(value_for(field), **options_for(field))"&lt;br /&gt;        /&gt;&lt;br /&gt;        &amp;lt;table border="0"&gt;&lt;br /&gt;            &amp;lt;tr py:for="field in fields"&gt;&lt;br /&gt;                &amp;lt;td&gt;&lt;br /&gt;                    &amp;lt;label class="fieldlabel" for="${field.field_id}" py:content="field.label" /&gt;&lt;br /&gt;                &amp;lt;/td&gt;&lt;br /&gt;                &amp;lt;td&gt;&lt;br /&gt;                    &amp;lt;span py:replace="field.display(value_for(field), **options_for(field))" /&gt;&lt;br /&gt;                    &amp;lt;span py:if="error_for(field)" class="fielderror" py:content="error_for(field)" /&gt;&lt;br /&gt;                    &amp;lt;span py:if="field.help_text" class="fieldhelp" py:content="field.help_text" /&gt;&lt;br /&gt;                &amp;lt;/td&gt;&lt;br /&gt;            &amp;lt;/tr&gt;&lt;br /&gt;        &amp;lt;/table&gt;&lt;br /&gt;    &amp;lt;/div&gt;&lt;br /&gt;    """ &lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114251515847075743?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114251515847075743/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114251515847075743' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114251515847075743'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114251515847075743'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/very-simple-and-useful-widget.html' title='Very simple and useful widget'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114239509366848517</id><published>2006-03-15T00:58:00.000-03:00</published><updated>2006-03-15T00:58:13.680-03:00</updated><title type='text'>24 ways</title><content type='html'>&lt;a href="http://24ways.org/"&gt;24 ways&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Some interesting -- and not so interesting -- stuff that can be done with (x)HTML, CSS and JavaScript.  It is worth some time and investigation.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114239509366848517?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114239509366848517/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114239509366848517' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114239509366848517'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114239509366848517'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/24-ways.html' title='24 ways'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114236814961177331</id><published>2006-03-14T17:25:00.000-03:00</published><updated>2006-03-17T21:10:22.026-03:00</updated><title type='text'>JavaScript Events and where they can be used</title><content type='html'>Here is a list of commonly used event handlers in JavaScript:&lt;br /&gt;&lt;br /&gt;&lt;dl&gt;&lt;br /&gt;&lt;dt&gt;onAbort&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&amp;lt;img&gt; tags&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onBlur&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;window object, all form objects (ie: &amp;lt;input&gt;), and &amp;lt;frame&gt;.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onClick&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Most visible elements such as &amp;lt;a&gt;, &amp;lt;div&gt;,   &amp;lt;body&gt;, etc.&lt;/dd&gt;&lt;br /&gt;&lt;dl&gt;onChange&lt;/dl&gt;&lt;br /&gt;&lt;dd&gt;Use this to invoke JavaScript if the mouse goes pass some link&lt;/dd&gt;&lt;br /&gt;&lt;dl&gt;onError&lt;/dl&gt;&lt;br /&gt;&lt;dd&gt;Text fields, textareas, and select lists.&lt;/dd&gt;&lt;br /&gt;&lt;dl&gt;onFocus&lt;/dl&gt;&lt;br /&gt;&lt;dd&gt;Most visible elements such as &amp;lt;a&gt;, &amp;lt;div&gt;,   &amp;lt;body&gt;, etc.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onLoad&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&amp;lt;body&gt;, &amp;lt;img&gt;, and &amp;lt;frame&gt;&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onMouseover&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Most visible elements such as &amp;lt;a&gt;, &amp;lt;div&gt;, &amp;lt;body&gt;, etc.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onMouseout&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Most visible elements such as &amp;lt;a&gt;, &amp;lt;div&gt;, &amp;lt;body&gt; etc.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onReset&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&amp;lt;form&gt; tag, triggered when the form is reset via &amp;lt;input type="reset"&gt;.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onSelect&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;Elements with textual content. Most commonly used inside text fields and textareas.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onSubmit&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&amp;lt;form&gt; tag, triggered when the form is submitted.&lt;/dd&gt;&lt;br /&gt;&lt;dt&gt;onUnload&lt;/dt&gt;&lt;br /&gt;&lt;dd&gt;&amp;lt;body&gt;&lt;/dd&gt;&lt;br /&gt;&lt;/dl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114236814961177331?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114236814961177331/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114236814961177331' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114236814961177331'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114236814961177331'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/javascript-events-and-where-they-can.html' title='JavaScript Events and where they can be used'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114236777390146677</id><published>2006-03-14T17:22:00.000-03:00</published><updated>2006-03-14T17:22:53.983-03:00</updated><title type='text'>DHTML JavaScript Tooltips</title><content type='html'>&lt;a href="http://www.walterzorn.com/tooltip/tooltip_e.htm"&gt;DHTML JavaScript Tooltips&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a nice tooltip library that allows adding tooltips to links and other objects.  One interesting thing is that it allows placing arbitrary HTML into de tooltip and this could be used to insert "previews" using some AJAX...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114236777390146677?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114236777390146677/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114236777390146677' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114236777390146677'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114236777390146677'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/dhtml-javascript-tooltips.html' title='DHTML JavaScript Tooltips'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114231131731789934</id><published>2006-03-14T01:41:00.000-03:00</published><updated>2006-03-14T01:41:57.330-03:00</updated><title type='text'>stock.xchng - the leading free stock photography site</title><content type='html'>&lt;a href="http://www.sxc.hu/"&gt;stock.xchng - the leading free stock photography site&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a very nice repository of photographies that can be used in a variety of places.  Some have no use restrictions at all, while other have some restrictions.  Checking the license for each picture is always needed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114231131731789934?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114231131731789934/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114231131731789934' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114231131731789934'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114231131731789934'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/stockxchng-leading-free-stock.html' title='stock.xchng - the leading free stock photography site'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114231017370676111</id><published>2006-03-14T01:22:00.000-03:00</published><updated>2006-03-14T01:22:53.706-03:00</updated><title type='text'>the occasional occurrence � Blog Archive � CherryPy and WSGI</title><content type='html'>&lt;a href="http://blog.dowski.com/2006/03/08/cherrypy-and-wsgi-can-play-nice/"&gt;the occasional occurrence � Blog Archive � CherryPy and WSGI&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;So, here it is something to start with WSGI.  Since TurboGears uses CherryPy (and &lt;a href="http://pythonpaste.org/"&gt;Paste&lt;/a&gt;), this is something to start and that might become a part of TurboGears soon.&lt;br /&gt;&lt;br /&gt;There are, on the other hand, several people working with what is called FirstClass, a WSGI version of TurboGears that should be what TurboGears 1.0 (or 1.1) will be when released.  This is really the way to go for future compatibility, but anyway, I need to learn more about WSGI and how it can be useful to me. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114231017370676111?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114231017370676111/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114231017370676111' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114231017370676111'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114231017370676111'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/occasional-occurrence-blog-archive.html' title='the occasional occurrence � Blog Archive � CherryPy and WSGI'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114230967785880405</id><published>2006-03-14T01:12:00.000-03:00</published><updated>2006-03-14T01:29:49.330-03:00</updated><title type='text'>New G2C website</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/novo_site_g2c.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/400/novo_site_g2c.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;I've published about the &lt;a href="http://jlgodoyf.blogspot.com/2006/03/creating-new-website-for-us.html"&gt;old G2C website&lt;/a&gt; but I haven't put up any new pictures of the design we chose.  So, here it is ;-)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE:.&lt;/span&gt; The green above is a courtesy of Blogger.com...  Maximize the picture for the correct color set.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114230967785880405?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114230967785880405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114230967785880405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230967785880405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230967785880405'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/new-g2c-website.html' title='New G2C website'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114230936982209864</id><published>2006-03-14T01:06:00.000-03:00</published><updated>2006-03-14T01:10:26.406-03:00</updated><title type='text'>TurboGears + WSGI</title><content type='html'>I definitely have to study more of that combination.  It  looks like &lt;a href="http://www.python.org/doc/peps/pep-0333/"&gt;WSGI&lt;/a&gt; + TurboGears will be something that will make a lot of code reusable very fast and will also make things easier.  Gotta find some time for that, though...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114230936982209864?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114230936982209864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114230936982209864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230936982209864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230936982209864'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/turbogears-wsgi.html' title='TurboGears + WSGI'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114230901140362236</id><published>2006-03-14T01:03:00.000-03:00</published><updated>2006-04-07T22:44:41.510-03:00</updated><title type='text'>She's gone :-(</title><content type='html'>&lt;p class="mobile-post"&gt;&lt;br /&gt;Flávia was here for the last four days.  It was nice having her around, going out with her, dating, doing things specially to see her smile...  But today, in fact yesterday -- two hours ago --, she went back to Bauru and Unesp... :-(&lt;/p&gt;&lt;p class="mobile-post"&gt;Flá, I'll miss you.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114230901140362236?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114230901140362236/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114230901140362236' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230901140362236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230901140362236'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/shes-gone.html' title='She&apos;s gone :-('/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114230820208707895</id><published>2006-03-14T00:50:00.000-03:00</published><updated>2006-03-14T01:00:18.680-03:00</updated><title type='text'>Inserting data as HTML code inside a Zope page template</title><content type='html'>&lt;p class="mobile-post"&gt;&lt;br /&gt;So, having skimmed through the docs and not being able to find anything, I decided asking in a mailing list that I've been barely reading for the last "N" months: Zope-PT.&lt;/p&gt;&lt;p class="mobile-post"&gt;I am thinking about providing my users the ability to edit data using some kind of WYSIWYG web editor and then being able to format the way data appears on the web, but for that I needed to find some way to insert (x)HTML code at my template.&lt;/p&gt;&lt;p class="mobile-post"&gt;The answer?  Instead of using tal:replace or tal:content I had to use tal:structure :-)  Simple as that.&lt;/p&gt;&lt;p class="mobile-post"&gt;This makes it very cool...  And after reading the answer I remembered that a long time ago I've tested this markup and it worked (but my memory was not good enough to remember it before).&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114230820208707895?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114230820208707895/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114230820208707895' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230820208707895'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114230820208707895'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/inserting-data-as-html-code-inside.html' title='Inserting data as HTML code inside a Zope page template'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114194391062106737</id><published>2006-03-09T19:38:00.000-03:00</published><updated>2006-03-09T19:38:30.663-03:00</updated><title type='text'>Web 2.0</title><content type='html'>&lt;a href="http://www.paulgraham.com/web20.html"&gt;Web 2.0&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Paul Graham's opinion on Web2.0.  A very interesting post on the subject.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114194391062106737?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114194391062106737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114194391062106737' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114194391062106737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114194391062106737'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/web-20.html' title='Web 2.0'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114183965262070908</id><published>2006-03-08T14:29:00.000-03:00</published><updated>2006-03-14T00:35:58.286-03:00</updated><title type='text'>Playing with R, rpy, statistics and plotting serious graphics</title><content type='html'>&lt;p&gt;&lt;a href="http://photos1.blogger.com/blogger/1444/2382/1600/acido_fenilglioxilico.jpg"&gt;&lt;img style="align: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/200/acido_fenilglioxilico.jpg" alt="" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/1444/2382/1600/acido_mandelico.jpg"&gt;&lt;img style="align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/200/acido_mandelico.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/1444/2382/1600/acido_metil_hipurico.jpg"&gt;&lt;img style="align:center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/200/acido_metil_hipurico.jpg" alt="" border="0" /&gt;&lt;/a&gt;&amp;nbsp;&lt;br /&gt;&lt;a href="http://photos1.blogger.com/blogger/1444/2382/1600/acido_hipurico.jpg"&gt;&lt;img style="align: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/200/acido_hipurico.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Last week I found an implementation that allows me using everything from &lt;a href="http://www.r-project.org/"&gt;R&lt;/a&gt; with Python: &lt;a href="http://rpy.sf.net/"&gt;rpy&lt;/a&gt;. This is a wrapper  that exposes everything, including graphics :-)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The nice part is that it allowed be to help the laboratory for which I'm developing a system to get results faster and seeing how good is both their data and calibration courve.  The code I used is very simple and here's an example of it with some real data:&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;import rpy&lt;br /&gt;&lt;br /&gt;def calcular_curva(concentracoes = [], resultados = []):&lt;br /&gt;    rpy.set_default_mode(rpy.NO_CONVERSION)&lt;br /&gt;    linear_model = rpy.r.lm(rpy.r("y ~ x"), data = rpy.r.data_frame(x = concentracoes, y = resultados))&lt;br /&gt;    rpy.set_default_mode(rpy.BASIC_CONVERSION)&lt;br /&gt;    r2 = rpy.r.summary(linear_model)['r.squared']&lt;br /&gt;    b = linear_model.as_py()['coefficients']['x']&lt;br /&gt;    a = linear_model.as_py()['coefficients']['(Intercept)']&lt;br /&gt;    return dict(a = a, b = b, r2 = r2)&lt;br /&gt;&lt;br /&gt;def plotar_curva(concentracoes = [], resultados = [], nome = "", arquivo = ""):&lt;br /&gt;    linear_model = rpy.r.lm(rpy.r("y ~ x"), data = rpy.r.data_frame(x = concentracoes, y = resultados))&lt;br /&gt;    gradient = linear_model['coefficients']['x']&lt;br /&gt;    yintercept= linear_model['coefficients']['(Intercept)']&lt;br /&gt;    rpy.r.png(arquivo, width=400, height=350)&lt;br /&gt;    rpy.r.plot(x = concentracoes, y = resultados, xlab = "Concentrações", ylab = "Resultados",&lt;br /&gt;               main = nome)&lt;br /&gt;    rpy.r.abline(a = yintercept, b = gradient, col = "red")&lt;br /&gt;    rpy.r.dev_off()&lt;br /&gt;&lt;br /&gt;conc1 = [0.15, 0.30, 0.45, 0.90, 1.80, 3.00]&lt;br /&gt;res1 = [1591.52,  2814.94,  3401.72,  8688.14,  15231.72,  19490.96]&lt;br /&gt;&lt;br /&gt;conc2 = [0.3, 0.6, 0.9, 1.8, 3.6, 6.0]&lt;br /&gt;res2 = [4850.10, 8372.14, 10353.47, 26153.44, 40808.95, 58253.38]&lt;br /&gt;&lt;br /&gt;conc3 = [0.1, 0.2, 0.3, 0.6, 1.2, 2.0]&lt;br /&gt;res3 = [324.60, 749.26, 1110.53, 1499.41, 4218.34, 4836.81]&lt;br /&gt;&lt;br /&gt;conc4 = [100, 200, 300, 600, 1200, 2000]&lt;br /&gt;res4 = [2362.24, 4537.41, 5983.17, 8830.44, 23481.62, 16654.07]&lt;br /&gt;&lt;br /&gt;acido_hipurico = calcular_curva(conc1, res1)&lt;br /&gt;acido_metil_hipurico = calcular_curva(conc2, res2)&lt;br /&gt;acido_mandelico = calcular_curva(conc3, res3)&lt;br /&gt;acido_fenilglioxilico = calcular_curva(conc4, res4)&lt;br /&gt;&lt;br /&gt;print "Ácido Hipúrico:", acido_hipurico&lt;br /&gt;print "Ácido Metil Hipúrico:", acido_metil_hipurico&lt;br /&gt;print "Ácido Mandélico:", acido_mandelico&lt;br /&gt;print "Ácido Fenilglioxílico:", acido_fenilglioxilico&lt;br /&gt;&lt;br /&gt;plotar_curva(conc1, res1, "Ácido Hipúrico", "acido_hipurico.png")&lt;br /&gt;plotar_curva(conc2, res2, "Ácido Metil Hipúrico", "acido_metil_hipurico.png")&lt;br /&gt;plotar_curva(conc3, res3, "Ácido Mandélico", "acido_mandelico.png")&lt;br /&gt;plotar_curva(conc4, res4, "Ácido Fenilglioxílico", "acido_fenilglioxilico.png")&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Here I have four calibration courves for four different exams.  One of them even has expurious data, so that we can test and see how to deal with that.  This is raw data read from their equipment and I just changed it to be python lists.  ;-)&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;The answer pops out instantly (R is very fast!) and the graphics too.  I'm saving them to files, so that I can load them with my web interface and display this right after they've entered all concentrations (&lt;span style="font-family:courier new;"&gt;concentracoes&lt;/span&gt;) and the results they've read from the equipament (&lt;span style="font-family:courier new;"&gt;resultados&lt;/span&gt;).&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;This was my first experience with R and rpy, and this was the first snippet of code I've written with it and this is why this is very raw. :-)  Oh!  I haven't translated the code from portuguese just to show that R works perfectly with accents.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114183965262070908?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114183965262070908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114183965262070908' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114183965262070908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114183965262070908'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/playing-with-r-rpy-statistics-and.html' title='Playing with R, rpy, statistics and plotting serious graphics'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114179373487680440</id><published>2006-03-08T01:55:00.000-03:00</published><updated>2006-03-08T01:55:34.906-03:00</updated><title type='text'>reStructuredText</title><content type='html'>&lt;a href="http://docutils.sourceforge.net/rst.html"&gt;reStructuredText&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm always missing this documentation! :-)  So, here it is a link to it.  Now, for some redundancy, I'm also adding it to my del.icio.us account. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114179373487680440?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114179373487680440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114179373487680440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114179373487680440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114179373487680440'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/restructuredtext.html' title='reStructuredText'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114167264098263252</id><published>2006-03-06T16:16:00.000-03:00</published><updated>2006-03-06T16:17:20.983-03:00</updated><title type='text'>Just a curiosity...</title><content type='html'>Have you noticed that all of my browser screenshots have two tabs open on Orkut? :-)&lt;br /&gt;&lt;br /&gt;My girlfriend is an Orkut addicted so I always have her and mine scrapbooks open here... :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114167264098263252?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114167264098263252/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114167264098263252' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167264098263252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167264098263252'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/just-curiosity.html' title='Just a curiosity...'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114167249455459149</id><published>2006-03-06T16:08:00.000-03:00</published><updated>2006-03-06T16:14:54.556-03:00</updated><title type='text'>Creating a new website for us!</title><content type='html'>It's been sometime since we created G2C Tech's website and we're now creating a new one.  From Juliano's mouth (my brother and partner): "This site looks like crap!  Why did it look good 3 years ago?"&lt;br /&gt;&lt;br /&gt;And he's right...  In 3 years web has evolved a lot, but our website never had too many things or was too polluted.  I've always liked simple things, but G2C Tech's website could be a lot better even by the time we first published it...&lt;br /&gt;&lt;br /&gt;Anyway, it shold be replaced soon.  A new website is coming and we'll have a more modern look and feel. :-)&lt;br /&gt;&lt;br /&gt;Just to save it for the future, here's how it looks like now:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/g2ctech-old-website.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/g2ctech-old-website.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;There are 10 CSS errors there.  All related to some bells and whistles that were available under Internet Explorer (Juliano's a Windows user, and he's our webdesigner...). :-)&lt;br /&gt;&lt;br /&gt;I'm starting to get sentimental about it.  Three and a half years now, with this website. :-)  Bye, bye, old site! :-)  Soon there'll be a new look for you. ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114167249455459149?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114167249455459149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114167249455459149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167249455459149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167249455459149'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/creating-new-website-for-us.html' title='Creating a new website for us!'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114167174523536332</id><published>2006-03-06T16:02:00.000-03:00</published><updated>2006-03-06T16:02:25.236-03:00</updated><title type='text'>Zope.org - TutorialPart1</title><content type='html'>&lt;a href="http://www.zope.org/Wikis/DevSite/Projects/ZPT/TutorialPart1"&gt;Zope.org - TutorialPart1&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is a valuable tutorial for beginners on Zope Page Templates.  It serves as a nice "quickstart" guide as well (or something to remember you the syntax of things after a long time since you've last used it ;-))&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114167174523536332?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114167174523536332/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114167174523536332' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167174523536332'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167174523536332'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/zopeorg-tutorialpart1.html' title='Zope.org - TutorialPart1'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114167162696613361</id><published>2006-03-06T16:00:00.000-03:00</published><updated>2006-03-06T16:04:30.273-03:00</updated><title type='text'>Criando Formulários no Zope/Plone utilizando o banco de dados MySQL — fabiorizzo.com - PZP Rocks!!!</title><content type='html'>&lt;a href="http://www.fabiorizzo.com/plone/criando-formularios-no-zope-plone-utilizando-o-banco-de-dados-mysql/"&gt;Criando Formulários no Zope/Plone utilizando o banco de dados MySQL&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Simple yet objective website for creating forms within Plone and making them interact with a RDBMS database.&lt;br /&gt;&lt;br /&gt;This is in Brazilian Portuguese as you might have guessed from the title...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114167162696613361?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114167162696613361/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114167162696613361' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167162696613361'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167162696613361'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/criando-formulrios-no-zopeplone.html' title='Criando Formulários no Zope/Plone utilizando o banco de dados MySQL — fabiorizzo.com - PZP Rocks!!!'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114167040367423078</id><published>2006-03-06T15:09:00.000-03:00</published><updated>2006-03-06T15:41:29.206-03:00</updated><title type='text'>Showing RDBMS query results on a Plone site</title><content type='html'>&lt;span style="font-family:verdana;"&gt; I always forget how to do that and always lose one morning looking for it in Google &amp; cia.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;So, here it is the recipe.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;To create a new page template that will appear in Plone, you have to get into  ZMI (Zope Management Interface),  get into the place where you want your page to be and create a new Page Template.  Then,  on the new  page,  you must be sure  to have the bold parts there, so that we can inherit the site layout:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;html &lt;span style="font-weight: bold;font-family:courier new;" &gt;metal:use-macro="here/main_template/macros/master"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &amp;lt;title content="template/title"&amp;gt;The title&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &amp;lt;div slot="main"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;     &amp;lt;!-- Our contents will be here --&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;Now we can fill the main slot with our contents.  For this example, the query will return three fields from our table: &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;id&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;, &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;field1&lt;/span&gt;&lt;span style="font-family:verdana;"&gt; and &lt;/span&gt;&lt;span style="font-style: italic;font-family:verdana;" &gt;field2&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;.  Will create an hyperlink from this first page to the second page where we will be showing some details for this specific selected record.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;After editing the above template, our code will look like this:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;html &lt;span style="font-weight: bold;font-family:courier new;" &gt;metal:use-macro="here/main_template/macros/master"&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;    &amp;lt;title content="template/title"&amp;gt;The title&amp;lt;/title&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;/head&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  &amp;lt;body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;    &amp;lt;div slot="main"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 255, 51);font-family:courier new;" &gt;        &amp;lt;ul repeat="result context/my_zsql_method"&amp;gt;&lt;br /&gt;       &amp;lt;li&amp;gt;&amp;lt;a attributes="href string:show?id=${result/id}" content="string:${result/field1} - ${result/field2}"&amp;gt;&amp;lt;/a&amp;gt;&amp;tt;/li&amp;gt;&lt;br /&gt;     &amp;lt;/ul&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family:courier new;" &gt;    &amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;  &amp;lt;/body&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;" &gt;&amp;lt;/html&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:verdana;"&gt;As for my_zsql_method, it is a standard SQL query, and looks like thid:&lt;br /&gt;&lt;br /&gt;SELECT id, field1, field2 FROM table WHERE condition ORDER BY field1;&lt;br /&gt;&lt;br /&gt;Note that the names "selected" are the variable names we use in our Template.&lt;br /&gt;&lt;br /&gt;To capture the 'id' sent to the second page, to perform a kind of 'drill-down' view, you can capture it as 'request/id' or 'request.id', the later for Python code.&lt;br /&gt;&lt;br /&gt;And here it is, how to perform a query and show its results in a Plone website.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114167040367423078?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114167040367423078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114167040367423078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167040367423078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114167040367423078'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/showing-rdbms-query-results-on-plone.html' title='Showing RDBMS query results on a Plone site'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114164728704724405</id><published>2006-03-06T09:14:00.000-03:00</published><updated>2006-03-06T09:14:47.073-03:00</updated><title type='text'>Musings from Mars � Ajax/DHTML Library Scorecard:How Cross Platform Are They?</title><content type='html'>&lt;a href="http://www.musingsfrommars.org/2006/03/ajax-dhtml-library-scorecard.html"&gt;Musings from Mars � Ajax/DHTML Library Scorecard:How Cross Platform Are They?&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A very interesting history background for what is becoming web2.0 and what are the risks it is facing.&lt;br /&gt;&lt;br /&gt;I agree with the OS-agnostic worriness, and I also believe the it is developer's fault that IE is so dominant.  Most of these developers doesn't know anything about security, logic or even programming: they simply point to components, click, drag them together and say "that's it!  if it works for me, then it should work for everyone that matters".  When you send them a bug report or suggest supporting more browsers they simply say: "it can't be done, you browser answer for less than X % of all access to our website and the cost of changing the code isnt' worth it".  As if they knew how to change the code...&lt;br /&gt;&lt;br /&gt;Once I even sent a patch to the website and the guy "Wow!  Just this to make it compatible?  Thanks!  I didn't knew that!".  I started another (unsent) message asking: "If you didn't knew that, how did you say that costs were prohibitive?"...&lt;br /&gt;&lt;br /&gt;At least here in Brasil it is a problem with some government and bank websites.  For the bank you can try fighting by sending them suggestions all the time, making them use more human resources in their offices by going there to do operations that could be done through Internet -- and saying all the time to your manager that their website still doesn't support your browser / OS and ask for them to fix it -- and things like that.  For government we don't have much to do since it usually is something you're forced by law to use.  You can pester them as well, but it is harder... &lt;br /&gt;&lt;br /&gt;Anyway, everytime you see a website that doesn't work, try sending the "webmaster" (who isn't a master of anything but a bunch of drag and drop tools, usually) a complaint.  If he answers with the statistics of access, question him: "Isn't it because your website doesn't work?  For example, you won't ever get my 'hit' again...".&lt;br /&gt;&lt;br /&gt;If one cares for one thing, he/she should fight for it.  I stop buying from some sites if I can't complete the process.  And I let their webmaster / public relations know that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114164728704724405?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114164728704724405/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114164728704724405' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114164728704724405'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114164728704724405'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/musings-from-mars-ajaxdhtml-library.html' title='Musings from Mars � Ajax/DHTML Library Scorecard:How Cross Platform Are They?'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114162275211184605</id><published>2006-03-06T02:23:00.000-03:00</published><updated>2006-03-06T02:25:52.120-03:00</updated><title type='text'>Making Zope + Plone access a PostgreSQL database</title><content type='html'>This has always bothered me...  Every time I have to work with that something makes me sigh and puts me down.  Dunno why, but I believe that the fact that it is very hard to get it right, it is very hard to get it producing what I want, etc.&lt;br /&gt;&lt;br /&gt;Now, I have to make some simple things but here is that feeling again...  And I thought I'd be free from it. :-(&lt;br /&gt;&lt;br /&gt;It is late in the night, maybe I should sleep (damned insomnia!)...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114162275211184605?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114162275211184605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114162275211184605' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162275211184605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162275211184605'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/making-zope-plone-access-postgresql.html' title='Making Zope + Plone access a PostgreSQL database'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114162198655931274</id><published>2006-03-06T02:07:00.000-03:00</published><updated>2006-03-06T02:13:06.560-03:00</updated><title type='text'>Lost afternoon</title><content type='html'>This afternoon -- actually yesterday, since it is already March 6th --, my brother got some visit here.  It was an ex-colleague from his company and she had problems with her computer.  So, there came the girl and her aunt.&lt;br /&gt;&lt;br /&gt;The aunt was comfortably "dismissed" by then and left on the TV room, watching it (by the way, we have something like 50 channels and I still don't know why some people prefer the silly Sunday afternoon programs on open TV instead of the less-silly-but-still-silly programs on cable...) and both them went to the office to fix her computer.&lt;br /&gt;&lt;br /&gt;I was just hearing things, waiting to see if he needed some help and called me, but everything went fine and he fixed it by himself.&lt;br /&gt;&lt;br /&gt;One thing that amazed me was when he said "You had more than 40 viruses here."  I just smiled and remembered that it is going to be 9 years since I don't use Windows at home in July and 7 years that I don't use it to work in December. ;-)&lt;br /&gt;&lt;br /&gt;I'm blessed :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114162198655931274?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114162198655931274/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114162198655931274' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162198655931274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162198655931274'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/lost-afternoon.html' title='Lost afternoon'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114162116728607298</id><published>2006-03-06T01:55:00.000-03:00</published><updated>2006-03-06T01:59:27.286-03:00</updated><title type='text'>Super Fast development!</title><content type='html'>I liked it!  I've sent a patch yesterday removing an annoying thing at CalendarDatePicker template: it used a button tag instead of an input tag with type button.  The difference?  The button tag made the calendar pop up whenever one pressed ENTER while filling the form.  The later sends the form, as expected. ;-)&lt;br /&gt;&lt;br /&gt;But what I liked?  The speed of the accepting and applying the patch.  In fact, I had to dig &lt;a href="http://trac.turbogears.org/"&gt;TurboGears Trac&lt;/a&gt; to see what became of the tickect, since I didn't remember if I had sent it and I didn't remember seeing it being closed. ;-)&lt;br /&gt;&lt;br /&gt;TurboGears, faster than your eyes can see! :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114162116728607298?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114162116728607298/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114162116728607298' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162116728607298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162116728607298'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/super-fast-development.html' title='Super Fast development!'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114162015936247991</id><published>2006-03-06T01:42:00.000-03:00</published><updated>2006-03-06T01:42:39.386-03:00</updated><title type='text'>Continuing Intermittent Incoherency � Comet: Low Latency Data for the Browser</title><content type='html'>&lt;a href="http://alex.dojotoolkit.org/?p=545"&gt;Continuing Intermittent Incoherency � Comet: Low Latency Data for the Browser&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;This is something that people working with web apps should keep an eye on.  It is an alternativa to AJAX where instead of making the client pull information from the server we make the server push information to the client.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114162015936247991?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114162015936247991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114162015936247991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162015936247991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114162015936247991'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/continuing-intermittent-incoherency.html' title='Continuing Intermittent Incoherency � Comet: Low Latency Data for the Browser'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114158155519567001</id><published>2006-03-05T14:51:00.000-03:00</published><updated>2006-03-05T14:59:15.196-03:00</updated><title type='text'>Starting some docs on using Subversion</title><content type='html'>I've written some documents about using CVS and best practices with it.  But for something like 3 years now I've been using &lt;a href="http://subversion.tigris.org/"&gt;Subversion&lt;/a&gt; for my own projects and I think it would be interesting to share how I am working and what I think is an interesting method to work.&lt;br /&gt;&lt;br /&gt;Wait and see. ;-)  Either a bunch of posts will appear os a link to somewhere.  I'm planning on doing the first version in Brazilian Portuguese for a friend of mine that is willing to switch from CVS to Subversion but later there will be an English version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114158155519567001?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114158155519567001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114158155519567001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158155519567001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158155519567001'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/starting-some-docs-on-using-subversion.html' title='Starting some docs on using Subversion'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114158066132112842</id><published>2006-03-05T14:42:00.000-03:00</published><updated>2006-03-05T15:02:56.993-03:00</updated><title type='text'>Status letters for 'svn status'</title><content type='html'>&lt;blockquote&gt;&lt;pre  class="screen" style="font-family:courier new;"&gt;&lt;span style="font-size:85%;"&gt;L       some_dir            &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# svn left a lock in the .svn area of some_dir&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;M       bar.c               &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# the content in bar.c has local modifications&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;M       baz.c               &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# baz.c has property but no content modifications&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;X       3rd_party           &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# dir is part of an externals definition&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;?       foo.o               &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# svn doesn't manage foo.o&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;!       some_dir            &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# svn manages this, but it's missing or incomplete&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;~       qux                 &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# versioned as file/dir/link, but type has changed&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;I       .screenrc           &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# svn doesn't manage this, and is set to ignore it&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;A  +    moved_dir           &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# added with history of where it came from&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;M  +    moved_dir/README    &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# added with history and has local modifications&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;D       stuff/fish.c        &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is scheduled for deletion&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;A       stuff/loot/bloo.h   &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is scheduled for addition&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;C       stuff/loot/lump.c   &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file has textual conflicts from an update&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;C       stuff/loot/glub.c   &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file has property conflicts from an update&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;R       xyz.c               &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is scheduled for replacement&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt; S     stuff/squawk        &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file or dir has been switched to a branch&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;   K   dog.jpg             &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is locked locally; lock-token present&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;   O   cat.jpg             &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is locked in the repository by other user&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;   B   bird.jpg            &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is locked locally, but lock has been broken&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;   T   fish.jpg            &lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;# file is locked locally, but lock has been stolen&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114158066132112842?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114158066132112842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114158066132112842' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158066132112842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158066132112842'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/status-letters-for-svn-status.html' title='Status letters for &apos;svn status&apos;'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114158039596201458</id><published>2006-03-05T13:48:00.000-03:00</published><updated>2006-03-05T14:39:55.976-03:00</updated><title type='text'>Curiosity about Subversion status letters on update</title><content type='html'>I've been curious about the meaning of letters when we do 'svn up' on a working copy and I've also tried finding out but it was buried too deep in the manual.  :-)  I've finally found it and so that I don't forget it, I'm posting it here.  My main concern was with 'G' status, since I always end up with some local changes to projects to make them suit better my needs. :-)  Anyway, here are the status letters for Subversion 1.2 from the manual:&lt;br /&gt;&lt;div class="variablelist"&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;/dl&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;div class="variablelist"&gt;&lt;dl&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;U      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File &lt;tt class="filename"&gt;foo&lt;/tt&gt; was               &lt;tt class="computeroutput"&gt;U&lt;/tt&gt;pdated (received changes               from the server).&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;A      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File or directory &lt;tt class="filename"&gt;foo&lt;/tt&gt; was               &lt;tt class="computeroutput"&gt;A&lt;/tt&gt;dded to your working               copy.&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;D      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File or directory &lt;tt class="filename"&gt;foo&lt;/tt&gt; was               &lt;tt class="computeroutput"&gt;D&lt;/tt&gt;eleted from your working               copy.&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;R      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File or directory &lt;tt class="filename"&gt;foo&lt;/tt&gt; was               &lt;tt class="computeroutput"&gt;R&lt;/tt&gt;eplaced in your working               copy; that is, &lt;tt class="filename"&gt;foo&lt;/tt&gt; was deleted, and a               new item with the same name was added.  While they may have               the same name, the repository considers them to be distinct               objects with distinct histories.&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;G      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File &lt;tt class="filename"&gt;foo&lt;/tt&gt; received new changes               from the repository, but your local copy of the file had               your modifications.  Either the changes did not intersect,               or the changes were exactly the same as your local               modifications, so Subversion has successfully               mer&lt;tt class="computeroutput"&gt;G&lt;/tt&gt;ed the repository's               changes into the file without a problem.&lt;/p&gt;&lt;/dd&gt;&lt;dt&gt;&lt;span class="term"&gt;&lt;tt class="computeroutput"&gt;C      foo&lt;/tt&gt;&lt;/span&gt;&lt;/dt&gt;&lt;dd&gt;&lt;p&gt;File &lt;tt class="filename"&gt;foo&lt;/tt&gt; received               &lt;tt class="computeroutput"&gt;C&lt;/tt&gt;onflicting changes from               the server.  The changes from the server directly overlap               your own changes to the file.  No need to panic, though.               This overlap needs to be resolved by a human (you); we               discuss this situation later in this chapter.&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114158039596201458?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114158039596201458/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114158039596201458' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158039596201458'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114158039596201458'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/curiosity-about-subversion-status.html' title='Curiosity about Subversion status letters on update'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114138840968857478</id><published>2006-03-03T09:15:00.000-03:00</published><updated>2006-03-03T09:20:09.700-03:00</updated><title type='text'>Apache versus Pound</title><content type='html'>I was "benchmarking" (actually "feeling") the time it takes to load a page using both Pound and Apache.  The difference is amazing.  Apache is something like 10x faster than Pound.&lt;br /&gt;&lt;br /&gt;I believe that is because Apache does some caching while Pound doesn't.  In my case, I'm trying &lt;a href="http://jlgodoyf.blogspot.com/2006/03/application-deployment.html"&gt;the setup I described before&lt;/a&gt;, just replacing Pound by Apache and vice-versa.  My contents are still on TurboGears and Zope.&lt;br /&gt;&lt;br /&gt;This makes it much better using Apache on my case...  Too bad, since I really liked Pound and its simplicity, but I need to deliver the best performance I can since their link isn't all that big and we plan on having a bit of traffic before upgrading it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114138840968857478?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114138840968857478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114138840968857478' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114138840968857478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114138840968857478'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/apache-versus-pound.html' title='Apache versus Pound'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114136061125370009</id><published>2006-03-03T01:05:00.000-03:00</published><updated>2006-03-03T01:36:51.263-03:00</updated><title type='text'>Application Deployment</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/estrutura_implementada.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/estrutura_implementada.jpg" alt="" border="0" /&gt;&lt;/a&gt;I've just deployed the application at the production server and wanted to make a small deployment diagram.&lt;br /&gt;&lt;br /&gt;The idea is allowing any kind of client connecting to the application and corporative website.  &lt;a href="http://www.apsis.ch/pound/"&gt;Pound&lt;/a&gt; is an HTTP / HTTPS proxy that is in front of my TurboGears application or Zope website.  The idea is letting it decide where should packages be sent and saving server resources from running &lt;a href="http://httpd.apache.org/"&gt;Apache&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;TurboGears is using &lt;a href="http://www.postgresql.org"&gt;PostgreSQL&lt;/a&gt; as its RDBMS, and Zope will be consulting some data from PostgreSQL to complement information that should be more static at the website.&lt;br /&gt;&lt;br /&gt;This is a simple structure but it is a very effective one.  It is really nice seeing all this working and seeing that it all required very little configuration.  Tomorrow, at the client, it will pass for its first heavy test.  I'm confident that it will perform better than the client was expecting.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114136061125370009?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114136061125370009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114136061125370009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114136061125370009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114136061125370009'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/application-deployment.html' title='Application Deployment'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114135427854665990</id><published>2006-03-02T23:45:00.000-03:00</published><updated>2006-03-02T23:51:18.546-03:00</updated><title type='text'>One more step done!</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/snapshot9.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/snapshot9.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;OK.  I finally finished the last thing I had to do for now.  It is working and I just need to polish some things before the first delivery (actually, it is already running at the production server).&lt;br /&gt;&lt;br /&gt;Here it is a screenshot of the page that allows associating clients with price lists.  These are a few of my clients and I used them for testing the application so this table has nothing to do with reality.&lt;br /&gt;&lt;br /&gt;One thing I have to say: it is a fast interface, very efficient and the mix of &lt;a href="http://www.zope.org/"&gt;Zope&lt;/a&gt; + &lt;a href="http://www.plone.org/"&gt;Plone&lt;/a&gt; for the website with TurboGears for this application made it easy to maintain a consistent layout.&lt;br /&gt;&lt;br /&gt;In fact, this is one of the things that attracted me the most to this solution: the easiness to skin and reuse layouts.&lt;span class="" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114135427854665990?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114135427854665990/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114135427854665990' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114135427854665990'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114135427854665990'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/one-more-step-done.html' title='One more step done!'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114134905361480481</id><published>2006-03-02T22:21:00.000-03:00</published><updated>2006-03-03T10:40:56.686-03:00</updated><title type='text'>(Not) Seeing the Obvious</title><content type='html'>Sometimes we get blinded and try solving problems the hardest way.  I was creating a view and later looking for information on how to do something that I needed because of the view when I already had planned one of the tables with the information I was needing.&lt;br /&gt;&lt;br /&gt;I really should stop more and read my own code (I'm lucky that I decided changing my model before spending too much time with this new view... ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114134905361480481?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114134905361480481/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114134905361480481' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114134905361480481'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114134905361480481'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/not-seeing-obvious.html' title='(Not) Seeing the Obvious'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114134613421875730</id><published>2006-03-02T21:29:00.000-03:00</published><updated>2006-03-02T21:35:34.230-03:00</updated><title type='text'>Debugging Kid templates</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-family: verdana;"&gt;So far the worst part of development is when something goes wrong and you have to debug &lt;/span&gt;&lt;a style="font-family: verdana;" href="http://kid.lesscode.org/"&gt;kid&lt;/a&gt; templates...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: verdana;"&gt;They aren't easily debuggable and even the Python code you can generate with &lt;/span&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;span style="font-family: courier new;"&gt;kidc&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: verdana;"&gt;isn't always helpful&lt;/span&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: verdana;"&gt;Things get a bit worse with unhelpful error messages or messages referencing internal structures that have the minimum possibility of being the problem cause...  Anyway, doing experimentation with Python using print et al. is good enough since kid allows using almost everything Python have within its templates...&lt;br /&gt;&lt;br /&gt;But, it is still a PITA.&lt;/span&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-family: verdana;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114134613421875730?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114134613421875730/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114134613421875730' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114134613421875730'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114134613421875730'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/debugging-kid-templates.html' title='Debugging Kid templates'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114133400799092356</id><published>2006-03-02T18:00:00.000-03:00</published><updated>2006-03-02T18:41:10.976-03:00</updated><title type='text'>Finishing something that was hard to rework</title><content type='html'>&lt;div style="text-align: justify;"&gt;I used to have part of my application working in a &lt;span style="font-style: italic;"&gt;recursive&lt;/span&gt; manner, where I relied on  the name of the widget -- and I was overriding it at display-time -- to find out to what analysis I was referring to while inserting their cost in the database.  Then, there were some changes in TurboGears that made this stop and I had to rework my application to make it work again.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;My first idea was creating the fields I needed with JavaScript, but then I took some time to think and I saw that this was not the best approach to what I wanted.&lt;br /&gt;&lt;br /&gt;Then, I have changed the application layout so that it was more clear that I was willing the user to fill in prices for each analysis and that I was processing them individually.&lt;br /&gt;&lt;br /&gt;As a benefit, I could again use widgets, validators, error_handling and even use my custom "tg_flash" function when something worked or not.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger/1444/2382/1600/snapshot7.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer;" src="http://photos1.blogger.com/blogger/1444/2382/320/snapshot7.jpg" alt="" border="0" /&gt;&lt;/a&gt;My next step is to abstract the error handling I used here so that I can convert it into a decorator and make it an alternative error handler, as I do with standard error_handling system.&lt;br /&gt;&lt;br /&gt;I believe that I might have some complaints if there are too many analysis in some category due to the size of the page, but lets make things work first.&lt;br /&gt;&lt;br /&gt;Oh, yes...  Another problem is that the error handling system isn't smart enough -- and I believe it doesn't have enough resources -- to put the error message on the form that was submitted instead of putting it in every form...  Another minor problem I'll handle later.&lt;br /&gt;&lt;br /&gt;The good thing is: another feature is back and the code got smaller.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114133400799092356?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114133400799092356/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114133400799092356' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114133400799092356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114133400799092356'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/finishing-something-that-was-hard-to.html' title='Finishing something that was hard to rework'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114131819937946608</id><published>2006-03-02T13:49:00.000-03:00</published><updated>2006-03-02T13:49:59.386-03:00</updated><title type='text'>Quick tips</title><content type='html'>&lt;a href="http://ipython.scipy.org/doc/manual/node4.html"&gt;Quick tips on ipython&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Here are some interesting tips on using ipython more efficiently.  I really like it, and it proves to be a huge time-saver when dealing with more complex structures or figuring out how something works.&lt;br /&gt;&lt;br /&gt;ipython is also a huge helper to optimize algorithms ;-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114131819937946608?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114131819937946608/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114131819937946608' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131819937946608'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131819937946608'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/quick-tips.html' title='Quick tips'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114131560900621758</id><published>2006-03-02T13:00:00.000-03:00</published><updated>2006-03-02T13:06:49.016-03:00</updated><title type='text'>My biggest TurboGears project</title><content type='html'>&lt;div style="text-align: justify;"&gt;I've started with a big project for a client of mine.  And I got a lot of the development of  &lt;a href="http://www.turbogears.org/"&gt;TurboGears&lt;/a&gt; what has delayed my delivery considerably.  On the other hand, two weeks ago, I've factored out more than 1K LOC from my code because of the use of widgets and decorators.&lt;br /&gt;&lt;br /&gt;It is really a more productive environment, but you have to resist the temptation to try all the new and exciting stuff ;-)&lt;br /&gt;&lt;br /&gt;On the other hand, this one project can be used in a lot of other clients and I believe it will be the main part of several other that I have in mind.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114131560900621758?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114131560900621758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114131560900621758' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131560900621758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131560900621758'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/my-biggest-turbogears-project.html' title='My biggest TurboGears project'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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-23294469.post-114131438069756370</id><published>2006-03-02T12:43:00.000-03:00</published><updated>2006-03-02T12:46:20.706-03:00</updated><title type='text'>Starting a blog</title><content type='html'>&lt;div style="text-align: justify;"&gt;OK, I finally decided to start a blog...  I hope I can keep on updating it and that I don't leave it out there as a bunch of lost and lose text...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;This first post is here more for getting the feeling and seeing how things will look like when published.&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/23294469-114131438069756370?l=jlgodoyf.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jlgodoyf.blogspot.com/feeds/114131438069756370/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=23294469&amp;postID=114131438069756370' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131438069756370'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/23294469/posts/default/114131438069756370'/><link rel='alternate' type='text/html' href='http://jlgodoyf.blogspot.com/2006/03/starting-blog.html' title='Starting a blog'/><author><name>Jorge Godoy</name><uri>http://www.blogger.com/profile/11803771138220817617</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></feed>
