<?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-5834376057481827382</id><updated>2012-01-20T12:22:04.243-08:00</updated><category term='kow'/><category term='dev'/><category term='trac'/><category term='galaxy'/><category term='celular'/><category term='android'/><category term='redmine'/><category term='adaworks'/><category term='framework'/><category term='ada'/><category term='samsung'/><title type='text'>ogro</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Marcelo C. F.</name><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>19</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5834376057481827382.post-3470559023870059797</id><published>2012-01-20T12:17:00.000-08:00</published><updated>2012-01-20T12:17:46.835-08:00</updated><title type='text'>Thank you AdaCore</title><content type='html'>My last post was about the attack method described in 28c3 conference and how it affected AWS servers.&lt;br /&gt;&lt;br /&gt;Quickly the folks at AdaCore picked up this issue and in the same day they already had it fixed on their repository. Now they are making public releases with the fix.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;It's amazing how quickly they fixed this. And they where really kind on keeping me up to date with the situation.&lt;br /&gt;&lt;br /&gt;If you compare this response with the one of larger teams such as Tomcat and PHP I'd say it's a huge win to AdaCore and the Ada community in general.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;T&lt;/b&gt;&lt;b&gt;hanks AdaCore&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-3470559023870059797?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/3470559023870059797/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=3470559023870059797' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3470559023870059797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3470559023870059797'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2012/01/thank-you-adacore.html' title='Thank you AdaCore'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-6251643252838713878</id><published>2012-01-17T15:32:00.000-08:00</published><updated>2012-01-20T12:20:02.516-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='kow'/><category scheme='http://www.blogger.com/atom/ns#' term='ada'/><title type='text'>28c3: Effective Denial of Service attacks against web application platforms :: AWS round</title><content type='html'>&lt;b&gt;Update:&lt;/b&gt;&amp;nbsp; as of 2011-01-19, AdaCore is aware of the situation and is already working on a fix to this problem.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 2:&lt;/b&gt;&amp;nbsp; as of 2011-01-19 (yes, the same day), the problem is fixed in the repository (revision 9f1405).&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 3:&lt;/b&gt; AdaCore changed it's name from ACT several years ago. Changed all references to that name accordingly. Sorry about that. :)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Update 4:&lt;/b&gt; as Pascal Obry informed in his comment on this post, the updated version is available to all AdaCore customers and the GPL version has been updated at &lt;a href="https://forge.open-do.org/projects/aws"&gt;Open-DO forge&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A few weeks ago, the following video has been released:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://3.gvt0.com/vi/R2Cq3CLI6H8/0.jpg" height="266" width="320"&gt;&lt;param name="movie" value="http://www.youtube.com/v/R2Cq3CLI6H8&amp;fs=1&amp;source=uds" /&gt;&lt;param name="bgcolor" value="#FFFFFF" /&gt;&lt;embed width="320" height="266"  src="http://www.youtube.com/v/R2Cq3CLI6H8&amp;fs=1&amp;source=uds" type="application/x-shockwave-flash"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Well, those guys did a great job not only studying this vulnerability but also spreading the news. Then the question arose: is Ada Web Server vulnerable to this sort of attack?&lt;br /&gt;&lt;br /&gt;The short answer is: sadly yes. This post tries to explain how we have tested this issue.&lt;br /&gt;&lt;br /&gt;Keep in mind that only if a few hours I managed to get this code working and managed to keep my server at 100% for over 3 minutes with only 46656 variables in my post request.&lt;br /&gt;&lt;br /&gt;The compiler used was GNAT GPL 2011. The AWS version is 2.10.0. And the operating system is Sabayon Linux.&lt;br /&gt;&lt;h3&gt;Introduction&lt;/h3&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;It all started at the #ada IRC channel at freenode. As I am used to run AWS servers all around I was curious if my servers were vulnerable or not.&lt;br /&gt;&lt;br /&gt;After some research on the web I realized there wasn't any official report on the issue and I couldn't find anything useful. So, I went to the chat room and started talking to jesselang.&lt;br /&gt;&lt;br /&gt;He discovered the AWS uses the Ada.Strings.Hash function internally. As it isn't really complex I realized we where not safe.&lt;br /&gt;This is the actual implementation of this function (which is actually inside the file &lt;i&gt;s-strhas.adb&lt;/i&gt; in your GNAT distribution):&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;------------------------------------------------------------------------------&lt;br /&gt;--                                                                          --&lt;br /&gt;--                         GNAT COMPILER COMPONENTS                         --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                    S Y S T E M . S T R I N G _ H A S H                   --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                                 S p e c                                  --&lt;br /&gt;--                                                                          --&lt;br /&gt;--             Copyright (C) 2009, Free Software Foundation, Inc.           --&lt;br /&gt;--                                                                          --&lt;br /&gt;-- GNAT is free software;  you can  redistribute it  and/or modify it under --&lt;br /&gt;-- terms of the  GNU General Public License as published  by the Free Soft- --&lt;br /&gt;-- ware  Foundation;  either version 3,  or (at your option) any later ver- --&lt;br /&gt;-- sion.  GNAT is distributed in the hope that it will be useful, but WITH- --&lt;br /&gt;-- OUT ANY WARRANTY;  without even the  implied warranty of MERCHANTABILITY --&lt;br /&gt;-- or FITNESS FOR A PARTICULAR PURPOSE.                                     --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                                                                          --&lt;br /&gt;--                                                                          --&lt;br /&gt;-- You should have received a copy of the GNU General Public License and    --&lt;br /&gt;-- a copy of the GCC Runtime Library Exception along with this program;     --&lt;br /&gt;-- see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see    --&lt;br /&gt;--                                                                          --&lt;br /&gt;-- GNAT was originally developed  by the GNAT team at  New York University. --&lt;br /&gt;-- Extensive contributions were provided by Ada Core Technologies Inc.      --&lt;br /&gt;--                                                                          --&lt;br /&gt;------------------------------------------------------------------------------&lt;br /&gt;&lt;br /&gt;pragma Compiler_Unit;&lt;br /&gt;&lt;br /&gt;package body System.String_Hash is&lt;br /&gt;&lt;br /&gt;   --  Compute a hash value for a key. The approach here is follows the&lt;br /&gt;   --  algorithm used in GNU Awk and the ndbm substitute SDBM by Ozan Yigit.&lt;br /&gt;&lt;br /&gt;   ----------&lt;br /&gt;   -- Hash --&lt;br /&gt;   ----------&lt;br /&gt;&lt;br /&gt;   function Hash (Key : Key_Type) return Hash_Type is&lt;br /&gt;&lt;br /&gt;      pragma Compile_Time_Error&lt;br /&gt;        (Hash_Type'Modulus /= 2 ** 32&lt;br /&gt;          or else Hash_Type'First /= 0&lt;br /&gt;          or else Hash_Type'Last /= 2 ** 32 - 1,&lt;br /&gt;         "Hash_Type must be 32-bit modular with range 0 .. 2**32-1");&lt;br /&gt;&lt;br /&gt;      function Shift_Left&lt;br /&gt;        (Value  : Hash_Type;&lt;br /&gt;         Amount : Natural) return Hash_Type;&lt;br /&gt;      pragma Import (Intrinsic, Shift_Left);&lt;br /&gt;&lt;br /&gt;      H : Hash_Type;&lt;br /&gt;&lt;br /&gt;   begin&lt;br /&gt;      H := 0;&lt;br /&gt;      for J in Key'Range loop&lt;br /&gt;         H := Char_Type'Pos (Key (J))&lt;br /&gt;                + Shift_Left (H, 6) + Shift_Left (H, 16) - H;&lt;br /&gt;      end loop;&lt;br /&gt;&lt;br /&gt;      return H;&lt;br /&gt;   end Hash;&lt;br /&gt;&lt;br /&gt;end System.String_Hash;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Turns out this is a linear hash function. It should easy to come up with a reverse algorithm, but ...&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Generating Strings with Colliding Hash&lt;/h3&gt;&lt;br /&gt;Generating a code for this should be hard. I haven't got lazy right from the start; I spent like 20 minutes trying to crack this up but as I have no previous experience in doing such thing and binary arithmetic isn't really my thing I decide to go for the brutal force approach. :)&lt;br /&gt;&lt;br /&gt;So I generated a short string. Something arbitrary, such as "ccc" (that's actually what I used). And I implemented a dirty loop to generate substrings with 6 characters each with the same has. Bingo! I found out 12 strings but I decided to use only 8 of them for they only had alphanumeric characters.&lt;br /&gt;&lt;br /&gt;And here is the pretty thing: as this hash function is linear all I had to do is to combine all those strings. I came up with 46656 combinations in total - only because I didn't want big variable names in my post requests.&lt;br /&gt;&lt;br /&gt;Another thing I found out is that it seems to be quite more likely to have collisions in bigger strings. First I tested against "tt" I and came up with only 4 usable collisions. Adding another character gave me twice as much. I haven't really tested this though.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The attack&lt;/h3&gt;I decided to use AWS.Client to implement my attack on AWS.Server. Ironic, isn't it?&lt;br /&gt;&lt;br /&gt;The code is really simple. Using unbounded string as a buffer I generated a string containing all the post data I needed. And then I invoked the AWS.Client.Post function. The client code is quite fast (really, less than 1 second).&lt;br /&gt;&lt;br /&gt;Now the server code. I just implemented a hello world. Simply as that. It's actually a slightly changed version of the code listed in &lt;a href="http://www.adacore.com/2008/03/31/gem-29/"&gt;Gem #29&lt;/a&gt; AdaCore have published. The changes where just to check if I was calling AWS.Client right, before I did the not-so-tricky part of generating the post data. Of course.&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;The results&lt;/h3&gt;&lt;br /&gt;I ran both client and server in a computer with AMD Athlon(tm) II X4 640 Processor and 4gB ram. The client being small I see no problem. :)&lt;br /&gt;&lt;br /&gt;As expected, the client kept my server using 100% of one core. It stayed that way until the process completion, which took well over 3 minutes.&lt;br /&gt;&lt;br /&gt;Firing up 5 client instances managed to get a DoS.&lt;br /&gt;&lt;br /&gt;Both brutal force, client and server codes have been forwarded to jesselang's email address who kindly will report back to Ada Core Technologies. With any luck we will be seeing a patch for this in the near future.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h3&gt;Conclusion&lt;/h3&gt;&lt;br /&gt;It was a really bad surprise finding any information about this issue online. I don't know if Ada Core has been working on it already of they have ignored it completely. Until there is a fix for this available, let's hope no one uses this to damage running systems.&lt;br /&gt;&amp;nbsp; &lt;br /&gt;Even more astonishing is that the development community (with the exception of perl community) assumed plain Hash tables are great for everything. I've avoided it in the past for security reasons myself. After seeing anyone using hash table I decided to use it a lot.... and now I've been using Hash table myself to represent json data and key/value pairs from configuration files. Time to review all my code. :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-6251643252838713878?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/6251643252838713878/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=6251643252838713878' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6251643252838713878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6251643252838713878'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2012/01/28c3-effective-denial-of-service.html' title='28c3: Effective Denial of Service attacks against web application platforms :: AWS round'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-15722574607619298</id><published>2011-11-04T11:55:00.000-07:00</published><updated>2011-11-04T13:24:50.468-07:00</updated><title type='text'>FreeBSD :: Dicas para usuários Linux</title><content type='html'>&lt;p&gt;&lt;br /&gt;Sou usuário Linux desde a época do Conectiva Linux (versão 6 acho); cheguei a usar Mandrake 9, Slackare 7 e quando conheci o Gentoo minha vida mudou completamente.&lt;/p&gt;&lt;div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Posso dizer que desde o final da década de 90 (não me recordo o ano exatamente) sou usuário exclusivamente Linux, metendo as caras em Windows e mais recentemente MacOS X somente em ocasiões isoladas por trabalho.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Durante esse tempo diversas vezes eu acabei me aventurando no FreeBSD mas sempre desisti - bem rápido, aliás. Mas isso foi até eu conhecer o ZFS e decidir que quero isso em meus servidores. Dominar o FreeBSD passou a ser uma missão e aprendi o caminho das pedras.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Esse post é uma coleção de dicas para usuários experientes no mundo Linux. Se você é um novato pode pescar varias dicas também, mas não vou ficar explicando coisas do Linux.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Sistema de Arquivos&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Por padrão o FreeBSD usa UFS2. Manda bala com esse; esquece ext3, reiserfs ou qualquer outra coisa que esteja acostumado a usar. Não suporta Journaling, mas no lugar implementa outra estratégia que no final garante o mesmo tipo de resultado.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Recomendo começar com o layout de partição recomendado pela instalação; analise-o e crie um equivalente, com uma quantidade generosa de espaço livre para ser usado pelo ZFS mais tarde. Primeiro domine o sistema para depois usar as opções avançadas, mas faça isso de forma planejada.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Ports&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;O FreeBSD é baseado no excelente ports (que, de fato, inspirou o portage do gentoo). O ports é uma coleção de makefiles localizados em /usr/ports. A primeira reação de um novo usuário é localizar o pacote dentro da arvore de diretórios e mandar ver no &lt;i&gt;make instal clean&lt;/i&gt;, por exemplo:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;# cd /usr/ports/net/mediatomb &amp;amp;&amp;amp; make install clean&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Isso funciona, mas o que você vai perceber é que a instalação para no meio a toda hora para configurar alguma dependência; convenhamos que é muito chato ficar horas na frente do computador esperando o gerenciador baixar e instalar tudo só para responder determinados prompts de configuração; mala d+! O processo fica muito mais simples usando o portinstall. O comando equivalente ajuda bastante:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;portinstall -c mediatomb&lt;/blockquote&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;A opção &lt;b&gt;-c&lt;/b&gt; do portinstall faz com que todos os prompts de configuração sejam apresentados no começo do processo. Isso acelera bastante e torna a administração do sistema muito mais prazerosa (e nesse ponto eu pessoalmente acho que acaba ganhando das USE flags do gentoo, já que você é forçado a ler as opções na hora de instalar e a configuração é por pacote, não system-wide).&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Embora isso permita um controle absoluto sob como cada pacote se comporta, cada pacote é compilado a partir dos fontes; se você está em uma máquina antiga e não tem muito saco para esperar compilar tudo, não vale a pena. A opção é usar os pacotes binários.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Pacotes Binários&lt;/h2&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Pacotes binários com configuração padrão existem. São vários e podem ser baixados via ftp e então instalados com o pkg_add. Mas uma coisa que não tem o destaque merecido é a opção -r dessa ferramenta. Com ela o pkg_add se comporta como o equo ou o apt-get se comporta por padrão. Baixa e instala todas as dependências de acordo. Por exemplo, para instalar o KDE 4 com todas suas dependências basta chamar:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;pkg_add -r kde4&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;Initscripts&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Eu, como todo bom Gentooer, estou super acostumado com a excelente ferramenta &lt;b&gt;rc-update&lt;/b&gt;. Infelizmente ela não existe, mas algo bem inteligente foi bolado. O arquivo /etc/rc.conf. Basicamente, nesse exemplo do mediatomb, basta colocar a linha:&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;mediatomb_enable="YES"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Outra opções interessantes existem nesse arquivo; vale a pena dar uma olhada.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2&gt;Kernel modules&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;Módulos do kernel podem ser carregados manualmente pela ferramenta &lt;i&gt;kldload&lt;/i&gt;. E para módulos específicos, como o ZFS, existem initiscripts.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;O que mais?&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;A primeira fonte de informação deve ser o FreeBSD handbook, que pode ser encontrado &lt;a href="http://www.freebsd.org/doc/handbook/"&gt;aqui&lt;/a&gt;. De resto, use o google e sempre que precisar o canal IRC ##freebsd no servidor freenode.org está cheio de desenvolvedores prestativos.&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-15722574607619298?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/15722574607619298/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=15722574607619298' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/15722574607619298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/15722574607619298'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2011/11/freebsd-dicas-para-usuarios-linux.html' title='FreeBSD :: Dicas para usuários Linux'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-4880563566802476413</id><published>2010-05-17T12:55:00.000-07:00</published><updated>2010-08-23T09:45:26.424-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='kow'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ada'/><title type='text'>KOW Framework still on the works...</title><content type='html'>I have been working on the KOW framework for a couple of years now. So much we have accomplished, and then rewritten and finally we are really close of a public release with some tutorials and stuff like that.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So, in order to celebrate that I decided to write a simple overview on the framework and what it is all about. So, here it is.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;The framework was designed with simplicity and modularity in mind. Once you have your application up and running it should be straightforward to extend and maintain it. You shouldn't have to worry about versioning much (well, you need some sort of versioning but not as grained as "take the revision #1012023".... a simple "use the release 2.0" should be enough).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Also, memory management is a big concern (after all it is a server based framework.. all users will be using the same memory space on the server).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We did our best to make it robust, fast and small. Yes, being small is actually a good thing. The framework has no tool for handling complex scripts. Neither for processing images or any of the sorts. If you need something that does that you should by all means use GNAT.Expect package for calling other process (which can be considered an ugly workaround but works like magic) or implement your own (or even find a 3rd party) package. You can put this package inside your app folder and you will be just fine.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;A more detailed post about the framework and how to use it is yet to be written. Actually, our biggest issue right now is not having a decent set of introduction documentation. It's quite easy to use the framework after you got yourself used to the main libraries (only tree are quite important here: kowconfig, kowview and kowent) but there is no "make a blog in 2 minutes" kind of documentation (which I think is quite possible and easy to do... but I tend to get busy with other things easily).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/5834376057481827382-4880563566802476413?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/4880563566802476413/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=4880563566802476413' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4880563566802476413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4880563566802476413'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/05/kow-framework-still-on-works.html' title='KOW Framework still on the works...'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-2310039853039831202</id><published>2010-04-20T15:32:00.000-07:00</published><updated>2010-04-20T15:36:53.509-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='galaxy'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='celular'/><title type='text'>Samsung Galaxy receberá Upgrade no Brasil</title><content type='html'>Após muita reclamação por parte dos usuários (incluindo esse que escreve, veja &lt;a href="http://ogrod2.blogspot.com/search/label/galaxy"&gt;posts relacionados&lt;/a&gt;) a &lt;a href="http://www.twitter.com/SamsungBrasil"&gt;@SamsungBrasil&lt;/a&gt; anunciou que está trabalhando na correção dos bugs encontrados na versão da FW distribuída com o aparelho no Brasil.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Do twitter:&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(102, 102, 102); line-height: 16px; font-family:'Lucida Grande', sans-serif;font-size:14px;"&gt;Temos desenvolvido melhorias para o Galaxy.Pontos citados na web foram trabalhados na atualização do SW p/ Sistema Operacional 1.5&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(102, 102, 102); line-height: 16px; font-family:'Lucida Grande', sans-serif;font-size:14px;"&gt;Após conclusão desse desenvolvimento e homologação nas operadoras,a atualização do firmware será disponibilizada gratuitamente&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(102, 102, 102); line-height: 16px; font-family:'Lucida Grande', sans-serif;font-size:14px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="  color: rgb(102, 102, 102); line-height: 16px; font-family:'Lucida Grande', sans-serif;font-size:14px;"&gt;&lt;span class="Apple-style-span"   style="color: rgb(0, 0, 0);  line-height: normal;  font-family:Georgia, serif;font-size:16px;"&gt;Agora só nos resta esperar e torcer para que os bugs sejam realmente resolvidos.&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/5834376057481827382-2310039853039831202?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/2310039853039831202/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=2310039853039831202' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2310039853039831202'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2310039853039831202'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/04/samsung-galaxy-recebera-upgrade-no.html' title='Samsung Galaxy receberá Upgrade no Brasil'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-1597111875848580404</id><published>2010-04-01T15:34:00.001-07:00</published><updated>2010-04-20T15:37:38.812-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='galaxy'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='celular'/><title type='text'>Samsung Galaxy e @SamsungBrasil no twitter :: Resposta</title><content type='html'>&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Foi rápido! Já recebi a resposta... pontinho positivo por isso. Primeiro a mensagem, depois meus comentários&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Prezado Sr. Marcelo Coraça&lt;br /&gt;Agradecemoso seu contato e informamos que conforme exposto,&lt;br /&gt;compreendemos seu descontentamento quanto ao fato ocorrido, desde já, a&lt;br /&gt;gradecemos sua mensagem e ressaltamos que a mesma é muito importante para que o crescimento da marca, bem como, para o desenvolvimen&lt;br /&gt;to dos produtos Samsung.&lt;br /&gt;A Samsung busca sempre, melhorar sua imagem junto às sugestões e&lt;br /&gt;reclamações recebidas dos nossos clientes.&lt;br /&gt;&lt;br /&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;------------&lt;br /&gt;&lt;br /&gt;Se você tiver perguntas adicionais ou qualquer outro comentário, por&lt;br /&gt;favor não hesite em nos contatar novamente.&lt;br /&gt;&lt;br /&gt;Samsung Eletronics&lt;br /&gt;Serviço de Atendimento ao Consumidor&lt;br /&gt;Telefone: 4004-0000&lt;br /&gt;&lt;br /&gt;Atenciosamente,&lt;br /&gt;Nome: Ana , Paula nery rosmaninho&lt;br /&gt;Designação: SAC&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;Bom, típica mensagem se desviando do assunto.. aliás, tem muita cara de resposta automática para reclamações...&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;O problema persiste, a Samsung continua se desviando... vamos ver o q rola daqui pra frente...&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-family:georgia;"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"   style="font-family:arial, sans-serif;font-size:100%;"&gt;&lt;span class="Apple-style-span"  style="font-size:13px;"&gt;&lt;br /&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/5834376057481827382-1597111875848580404?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/1597111875848580404/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=1597111875848580404' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/1597111875848580404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/1597111875848580404'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/04/samsung-galaxy-e-samsungbrasil-no_01.html' title='Samsung Galaxy e @SamsungBrasil no twitter :: Resposta'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-4693876984697211868</id><published>2010-04-01T14:45:00.000-07:00</published><updated>2010-04-20T15:37:34.190-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='galaxy'/><category scheme='http://www.blogger.com/atom/ns#' term='samsung'/><category scheme='http://www.blogger.com/atom/ns#' term='android'/><category scheme='http://www.blogger.com/atom/ns#' term='celular'/><title type='text'>Samsung Galaxy e @SamsungBrasil no twitter... vergonha!</title><content type='html'>&lt;div&gt;&lt;b&gt;É foda...&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;eu comprei um samsung galaxy.. o hardware do aparelho é simplesmente fenomenal. Ele é leve, a tela tem um brilho maravilhoso (da pra usar sem problemas em baixo de um sol de 40 graus de Guarujá) mas a versão do sistema que vem nele é antiga; e o pior: bugada pra burro!&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Cansado disso e cansado de levar olé da @SamsungBrasil (que decidiu simplesmente ignorar quem reclama do Galaxy... nem respondem mais a perguntas, mesmo quando feitas de forma educada e bibibi bóbóbó) eu resolvi enviar um email reclamando (pelo "fale conosco" do site deles).&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Aqui vai a mensagem na íntegra. Pretendo publicar a resposta caso receba alguma também.&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;Olá,&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Comprei o celular Samsung Galaxy contando que o celular de ponta da Samsung fosse realmente um celular de ponta.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Para meu desgosto, fiquei sabendo depois que o sistema instalado é o Android 1.5, uma versão com mais de dois anos de idade (e o modelo ACABOU de ser lançado no Brasil) e não há atualização alguma. Se fosse somente isso estaria bom.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Há diversos bugs. Entre eles a duração da bateria é ridícula, pra não dizer outra coisa. O botão de bloqueio passa a somente desligar o monitor (que é religado quando qualquer outra tecla é pressionada) quando faço uma ligação usando 0DDDNUMERO (como 01140047777). E isso é sempre! Ou seja, tenho que mudar todos os números da minha agenda para prender o número da operadora (ridículo, já que a agenda fica online nos servidores do google e eu posso querer sincronizar com outro aparelho/operadora ao mesmo tempo.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     E por mais absurdo que pareça, para todos esses problemas já existe correção; há relatos pela internet que todos esses problemas foram resolvidos em upgrades liberados na europa. Mas o sistema da Samsung nem reconhece meu aparelho como sendo válido na hora de buscar upgrades!&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Indignado com a situação eu fiz como outros usuários: entrei em contato via twitter. A primeira resposta foi "se houver upgrade avisamos". Comecei a insistir em uma resposta mais concreta e sabe o que aconteceu? O representante da samsung no twitter passou a simplesmente me ignorar! Fez isso com os outros usuários que reclamaram.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     A indignação pela posição de não liberar upgrades (ao contrário da Motorola e HTC) que a Samsung tomou tem gerado indignação de usuários pelo mundo inteiro e irá, sem sombra de dúvidas, refletir negativamente nas vendas de smart phones (em especial com Android) da empresa. Esse desrespeito todo com o consumidor, no final das contas, está me levando a nunca mais querer comprar aparelhos da Samsung.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Possuo um Home Theater, uma TV de 32 polegadas e dois monitores (um de 19 e outro de 21 polegadas) da Samsung. Eu era um cliente fiel e recomendava para todos meus amigos. Agora minha recomendação tem sido: comprem qualquer marca, menos Samsung por que se você precisar de algo após a venda eles vão te deixar na mão.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     O upgrade é possível e é barato para uma empresa com o porte da Samsung. Prova disso são usuários que vêm desenvolvendo versões não oficiais de releases mais recentes do Android para o Galaxy. Entre eles existem o Galaxo ( http://www.uht.me/galaxo/ ), que fornece Android 1.6 e o Mustymod ( http://mustymod.forumotion.com/ ) implementação 100% opensource para suportar o 2.1... já suporta quase tudo, exceto a camera.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     Eu ainda não fiz o upgrade do firmware para não perder a garantia; vai que da algum pau de hardware em coisa de 1 mês eu acabo perdendo um aparelho de 1600 reais.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;     O fato é: estou indignado com essa posição da Samsung. Mais ainda com a decisão de ignorar publicamente seus clientes quando eles não estão satisfeitos. Não compro de quem me desrespeita.&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;Grato (se é que vão ler esse email...)&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="color:#666666;"&gt;Marcelo&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-4693876984697211868?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/4693876984697211868/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=4693876984697211868' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4693876984697211868'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4693876984697211868'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/04/samsung-galaxy-e-samsungbrasil-no.html' title='Samsung Galaxy e @SamsungBrasil no twitter... vergonha!'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-2481279867824328464</id><published>2010-01-21T19:42:00.000-08:00</published><updated>2010-01-21T20:07:26.104-08:00</updated><title type='text'>KOW Framework :: CLI for helping you</title><content type='html'>Hey there!&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the last post I have commented about the KOW Framework status, but I haven't actually given any more details on what I am really doing... we are getting into alpha stages, with some documentation being written and some bugs being fixed and I think it's time to give you all a brief description of what is going on.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We (I am working alone now.. have been for the past 10 months but I have received some really appreciated help) have create quite a few packages with some interesting features focused on helping the creation of multi platform web applications with a database backend. There are a few of those frameworks, but this one brings something new to the table: it is written in a 100% compiled language called Ada (the 2005 version of the language, to be more precise). This language have several advantages over other ones (you should google for it and find it out by yourself) as it has been designed from ground up to be really safe and powerful.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Here is a small list of features we have implemented:&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;file system abstraction (some things are implemented in a way it can work both on windows and linux without problem at all)&lt;/li&gt;&lt;li&gt;configuration files abstraction (you care about the meaning of the data, not about the syntax or where it is stored)&lt;/li&gt;&lt;li&gt;database integration (actually, all we have done is a little clean up and reorganization of the APQ code with the original author's bless)&lt;/li&gt;&lt;li&gt;database abstraction using OOP (you can deal with Ada types and the framework deals with the SQL for you)&lt;/li&gt;&lt;li&gt;web framework based on services (pretty much like java servlets), modules (small web page elements) and components (singleton factories for services and modules)&lt;/li&gt;&lt;li&gt;authentication, authorization and, at some level, accounting &lt;/li&gt;&lt;li&gt;logging&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;We also have worked on other features, but those implementation are somewhat incomplete and.. well.. shouldn't be used right now (except for kowplug, which is a quite simple API for helping the developer to create a plugin enabled application in both windows and linux using Ada.. but this is not being used by ourselves, hence I can't guarantee it's going to work at all in production).&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;As you can see, we have put a lot of effort in this project. Thousand of hours have been spent on designing and coding; we have redesigned some of the packages; I actually have some redesigns in mind just waiting for more time for doing it... but I haven't done a decent public release yet.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Why is that? Well, first off the framework is still in early stages. It is a quite big project and some of the code was done in a hurry (mainly the kowview page module/servide and the kowview-entities package), we have learned a lot (yeas, a LOT) while coding and we thought we whould go a determined direction but things changed and moved us otherwise.. well, some things were simply adapted... others just went into a halt stage and need to be completed now (such as kowplug).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Secondly, there is no introduction material (it's quite easy to use the framework once you have learned the basics using only the specification files) and working with your projects (specially managing the application user accounts, entities and default/user data files) used to be a pain!&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Use to be because there are lots of repetitive tasks.. and kowview needed a redesign on how to reach for the component's data.... well, long story short I've developed a simple Command Line Tool called kvdriver.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;This tool will help you out in&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;initializing your project environment, creating all the build scripts needed&lt;/li&gt;&lt;li&gt;automatically generating some of your source code based on what applications you want to use&lt;/li&gt;&lt;li&gt;the more tedious entity code is now managed automatically&lt;/li&gt;&lt;li&gt;useradd and groupadd methods for your project&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;I also plan to implement dependency management and a complete web application distribution system.. it's gonna be pretty much a multi platform packaging system such as Gentoo's portage.. but idk when and not even if I am going to implement it.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am now writing some documentation, and improving the kvdriver tool. There is a long way to go before I can say "alright, go ahead and use our code" but it is already available at &lt;a href="http://framework.kow.com.br"&gt;http://framework.kow.com.br&lt;/a&gt; ... it is open source, you can clone our git repositories and try it out...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I am really glad how fast I am evolving right now. I am really focused and the result as it is right now is.. well... let's say now I can create a blog system in Ada in 12 minutes :D&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-2481279867824328464?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/2481279867824328464/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=2481279867824328464' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2481279867824328464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2481279867824328464'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/01/kow-framework-cli-for-helping-you.html' title='KOW Framework :: CLI for helping you'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-9091863929327448304</id><published>2010-01-05T09:15:00.000-08:00</published><updated>2010-01-05T09:23:12.398-08:00</updated><title type='text'>KOW Framework :: Current Status</title><content type='html'>Well,&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I know I need to update this blog more often... it's just I've been too busy with my personal life...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;First off, I've been through a painful divorce process.. we weren't actually married, but we have bought a house... and until we don't sell it I'm still attached somehow to my ex... which is painful enough by itself, but it get worst... and I'm not talking about this right. :)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;I want to summarize the current KOW Framework development status. I don't want to sound miraculous or anything, but I think I might be able to say right now the framework can be compared to django or tapestry... but with all the advantages of the Ada programming language.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;There is a long way to go (mainly in fixing bugs and writing documentation) but I strongly feel we are getting somewhere...&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/5834376057481827382-9091863929327448304?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/9091863929327448304/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=9091863929327448304' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/9091863929327448304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/9091863929327448304'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2010/01/kow-framework-current-status.html' title='KOW Framework :: Current Status'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-8695884036127496424</id><published>2009-09-15T13:19:00.000-07:00</published><updated>2010-05-16T07:57:25.221-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='kow'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='ada'/><title type='text'>KOW Framework :: ERP in the works</title><content type='html'>Howdy all.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm the developer for the not-so-known KOW Framework. I'm also the current maintainer for the APQ database bindings for Ada (which is now part of the framework).&lt;br /&gt;&lt;br /&gt;I started up codding this framework for developing business applications (both web and desktop) easily. As things have evolved, our focus has changed several times and now we are back to the original idea. :)&lt;br /&gt;&lt;br /&gt;Right now we are working with complex Web Applications. KOW Framework has a powerful and high scalable modular architecture. One module can depend on other directly (ie, including the module specification), but you can develop using IoC (Inversion of Control). It allows you to use some MVC principles even though we haven't built it thinking about any of those concepts.&lt;br /&gt;&lt;br /&gt;The idea is to make a framework that easy our work for some tedious tasks (such as database interaction, configuration files and page construction). Even though I think we have achieved some of these goals there is a long way to go before we can say it's ready for the general public.&lt;br /&gt;&lt;br /&gt;Well, I started using the framework in heavy duty tasks a couple of weeks ago. I'm listing some of it's problems and I intend to fix them ASAP (and then write some decent documentation about it and make a decent public release). But the thing is I'm quite happy with the current status. Even though I've been working all alone and thing has progressed pretty fast. Hopefully we'll have a decent set of Ada libraries for building complex business applications in a short period of time.&lt;br /&gt;&lt;br /&gt;For the ones who might ask: I call "business applications" those  applications someone who isn't a coder would "implement" using Microsoft Access, or some initial (or lazy) programmers would do in PHP.&lt;br /&gt;&lt;br /&gt;The vast majority of programmers would usually go to Java or .NET, which I believe not to be fit to any real life application at all (but that's a totally different topic and I'm not messing with it right now).&lt;br /&gt;&lt;br /&gt;ERP and CMS are excellent examples of what I call business applications.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-8695884036127496424?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/8695884036127496424/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=8695884036127496424' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/8695884036127496424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/8695884036127496424'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/09/kow-framework-erp-in-works.html' title='KOW Framework :: ERP in the works'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-6102752404534557399</id><published>2009-09-03T11:41:00.000-07:00</published><updated>2009-09-03T11:47:37.388-07:00</updated><title type='text'>final-no-meio-de-semana :D</title><content type='html'>Opa&lt;br /&gt;&lt;br /&gt;Trabalhei pra kct (kct MESMO, tipo umas 15 horas por dia) nos últimos dias (incluindo sábado e doming0). Decidi me dar folga hoje! Mas quem diz que meu trabalho concordou com minha folga? rs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bom, tive que ligar o PC pra trabalhar nem que seja só por duas horas. Tudo bem, amo o que eu faço mesmo.&lt;br /&gt;&lt;br /&gt;Mas resolvi aproveitar para falar sobre um trabalho meu livre, sem ligação com nada que me de dinheiro etc etc etc. Sim, trabalhei de gratiz! :D Mas por uma boa causa.&lt;br /&gt;&lt;br /&gt;Tem um pessoa desenvolvendo um sistema operacional/distribuição opensolaris chamada AuroraUX (#auroraux@freenode). Estou escrevendo a biblioteca base para a construção da interface "gráfica" (modo texto) para o instalador (chamei o projeto de sunrise).&lt;br /&gt;&lt;br /&gt;Fotos do que já funciona estão aqui:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.twitpic.com/fdqws"&gt;http://www.twitpic.com/fdqws&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.twitpic.com/ff5z6"&gt;http://www.twitpic.com/ff5z6&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Por enquanto só existe o conceito de retangulo, janela e screen (area básica onde os componentes escrevem coisas).&lt;br /&gt;&lt;br /&gt;Não tem nada de eventos e talz...&lt;br /&gt;&lt;br /&gt;mas eu curti 1 coisa sobre essa lib: é MUITO fácil criar uma interface em Ada em minutos! Nem precisa de construtor de interface. uhu :D&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bom, depois espero ter tempo/saco pra publicar algo nesse blog tão abandonado meu com mais detalhes.. e ainda não me decidi se escrevo meus posts em en ou pt... oh dúvida!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-6102752404534557399?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/6102752404534557399/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=6102752404534557399' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6102752404534557399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6102752404534557399'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/09/final-no-meio-de-semana-d.html' title='final-no-meio-de-semana :D'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-6877305745297732189</id><published>2009-09-02T11:33:00.001-07:00</published><updated>2009-09-02T11:34:40.681-07:00</updated><title type='text'>Redmine vs Trac vs ??</title><content type='html'>Resumindo a história: migrei do trac pro redmine. Curti... mas... unh.... sei lá.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Não me senti 100% confortável com nenhuma das ferramentas, então...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;bom, sendo o OgRo que sou melhor coisa é fazer uma outra do zero. :D E em Ada, claro. \\o/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-6877305745297732189?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/6877305745297732189/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=6877305745297732189' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6877305745297732189'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/6877305745297732189'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/09/redmine-vs-trac-vs.html' title='Redmine vs Trac vs ??'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-7247034756534846230</id><published>2009-08-28T21:58:00.000-07:00</published><updated>2009-08-28T22:04:47.041-07:00</updated><title type='text'>Minha experiência com o redmine</title><content type='html'>Caramba..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;puta ferramenta boa.. mas eu me sinto meio perdido ainda..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;pq?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;bom, pra começar o esquema de tickets dele é muito mais complicado que o do trac... essa complicação não é a toa (é muito mais complet0), mas estou demorando um pouco para me acostumar com tanta informação em tão pouco espaço....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Estou curtindo, mas não o bastante; sinto falta de coisas do trac, mas ao mesmo tempo trac não suporta git decentemente nem multiplos projetos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Conheço um pessoal doido para fazer um framework em Ada usando o KOW Framework que eu desenvolvo. Bom, idéia interessante e bate com uns projetos que eu tenho... vou tocar..&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Já tinha decidido isso, mas hoje eu vi algo que me deixou completamente boquiaberto.&lt;br /&gt;&lt;br /&gt;Bom, vou resumir numa frase: um looping com regexp em Ada é 8 (OITO) vezes mais rápido que o mesmo looping em python....&lt;br /&gt;&lt;br /&gt;isso mesmo...&lt;br /&gt;&lt;br /&gt;É esperado ser mais rápido já que python é quase tão lerdo qt java (ou jaba .. hehe), mas kct! :-O OITO vezes mais rápido!&lt;br /&gt;&lt;br /&gt;PQP!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Numa outra hora posto um benchmark... agora estou ocupado varando a noite pra reimplementar as coisas python em Ada. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-7247034756534846230?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/7247034756534846230/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=7247034756534846230' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/7247034756534846230'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/7247034756534846230'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/08/minha-experiencia-com-o-redmine.html' title='Minha experiência com o redmine'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-4662962174923361949</id><published>2009-08-17T16:16:00.000-07:00</published><updated>2009-08-20T09:19:34.857-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dev'/><category scheme='http://www.blogger.com/atom/ns#' term='adaworks'/><category scheme='http://www.blogger.com/atom/ns#' term='redmine'/><category scheme='http://www.blogger.com/atom/ns#' term='kow'/><category scheme='http://www.blogger.com/atom/ns#' term='framework'/><category scheme='http://www.blogger.com/atom/ns#' term='trac'/><title type='text'>Trac vs Redmine</title><content type='html'>Tenho usado o trac por um baita tempo... muito contente com ele até que eu decidi mudar meus repositórios de svn para git.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Vi que não fazia sentido manter os módulos do KOW Framework (antigo AdaWorks) em um mesmo repositório git. O subversion é muito legal no lance de ser orientado a pastas, mas o git não segue essa idéia.&lt;br /&gt;&lt;br /&gt;Além de me oferecer opção de um download muito menor por repositório, sem incluir módulos legados nem código não suportado, essa abordagem do git também me oferece maior segurança. Posso escolher quem faz o que e aonde; sendo assim, posso misturar repositórios públicos e privados em um mesmo servidor, sem muito trabalho.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Migrei e amei o git; rápido, super fácil de entender, completinho.. só que... bom... agora meu trac não consegue mais listar meus repositórios... . Nunca pensei que isso me faria TANTA falta!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Googlei, googlei e o que eu acho? Redmine! Já tinha esbarrado nele antes, mas ele tem 2 coisas que me deixaram bem contentes: suporte a git e multiplos projetos! Tudo o que eu precisava!&lt;br /&gt;&lt;br /&gt;Vou instalar o redmine correndo no meu servidor e ver se me dou bem com ele... sendo o caso migro tudo para ele e, finalmente, concluo a mudança do AdaWorks para KOW Framework! :)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-4662962174923361949?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/4662962174923361949/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=4662962174923361949' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4662962174923361949'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4662962174923361949'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/08/trac-vs-redmine.html' title='Trac vs Redmine'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-3917193008434264119</id><published>2009-02-21T07:00:00.000-08:00</published><updated>2009-02-21T07:13:26.030-08:00</updated><title type='text'>Carnaval! Uepaa! :D</title><content type='html'>Carnaval é uma data que significa tanta coisa.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Significa a vagabundagem brasileira. A criatividade também, claro. Mas por que não ser criativo fazendo filmes ou teatro porra? Tem que colocar umas gostosas rebolando e ficar atolando a cabeça de cerveja para chamar a criatividade à tona? :/&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bom, tem gente que gosta... e blz, vou "respeitar" o gosto alheio. hehe&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Mas no final carnaval é bom! Por que eu brasileiro também e como todo bom BRASILEIRO adoro ficar coçando meu saco tomando uma gelada! :D&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;(quem me dera, TCC lascado do kct :/)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&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/5834376057481827382-3917193008434264119?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/3917193008434264119/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=3917193008434264119' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3917193008434264119'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3917193008434264119'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2009/02/carnaval-uepaa-d.html' title='Carnaval! Uepaa! :D'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-3004519394756961286</id><published>2008-12-29T13:08:00.001-08:00</published><updated>2008-12-29T13:16:02.283-08:00</updated><title type='text'>Sem tempo para pensar</title><content type='html'>Caramba!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Mais um ano passou... e não tive tempo de pensar em quem sou, no que quero e muito menos em como faze-lo. Simplesmente deixei a maré me levar e veja onde cheguei: exatamente onde eu queria chegar há uns 2 ou 3 anos atrás; e isso me assusta.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Se eu cheguei aqui após pensar onde ir e não penso mais onde quero ir.... pra onde vou? Porra, preciso de muita cerveja e muito tempo pra filosofia de bebado nessas férias!&lt;br /&gt;&lt;br /&gt;(sim, estou de férias.... 1 vez em mais de ano)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-3004519394756961286?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/3004519394756961286/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=3004519394756961286' title='0 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3004519394756961286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/3004519394756961286'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2008/12/sem-tempo-para-pensar.html' title='Sem tempo para pensar'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-4497336120551306576</id><published>2008-07-24T06:58:00.001-07:00</published><updated>2008-07-24T07:08:43.111-07:00</updated><title type='text'>Sobrevivendo... ainda</title><content type='html'>Caramba!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Já faz quase um ano que eu postei o 1o artigo sobre Tapestry e nem dei continuidade a série!&lt;br /&gt;&lt;br /&gt;Queria mesmo continuar.. mas, como eu mesmo previ.. acabei abandonando. :/&lt;br /&gt;&lt;br /&gt;Bom, coisas que eu faço atualmente:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;trabalho duro no &lt;a href="http://www.adaworks.net/adaworks"&gt;AdaWors&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;AwEnt =&gt; gerenciamento de entidades em Ada... ainda no projeto....&lt;/li&gt;&lt;li&gt;AwSec =&gt; autorização, autenticação e accounting&lt;/li&gt;&lt;li&gt;APQ =&gt; diversos bindings de banco de dados pra Ada... atualmente penso em implementar a camada TDS (SQL Server e Sybase) 100% em Ada.. mas só de ver as 21653 linhas de código da camada de protocolo do FreeTDS eu já desanimo (talvez o jTDS seja mais modesto?)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;AwConfig =&gt; framework de configuração de aplicativos&lt;/li&gt;&lt;li&gt;AwLog =&gt; embora não tenha dedicado meu tempo nesse projeto, pretendo faze-lo em breve&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;trabalho ainda mais duro (também com Ada) na &lt;a href="http://www.ydeasolutions.com.br"&gt;Ydea&lt;/a&gt; (esse eu não posso detalhar ainda)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;A parte que mais deu dor de cabeça por hora foi os bindigs... linkar com códigos dos outros é foda.. principalmente se a dll do windows vem zuada (o Alex que o diga). MySQL e PostgreSQL não foram tão trabalhosos.. mas já o maledeto sql server... afffe.. que dor de cabeça! Por isso implementar o TDS em Ada - o que não me parece um desafio maior do que simplesmente fazer o binding. Só que é MUITO trabalhoso...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;O trabalho nunca acaba mesmo... e acho que não terei como continuar a série de artigos sobre o Tapestry mesmo...&lt;br /&gt;&lt;br /&gt;ah, mais uma coisa que me manteve muito ocupado nos últimos meses: casei! :D hehe&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;bom.. assim não tem mesmo como escrever algo....&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;oops, hora de cozinhar... logo+ a patroa chega faminta. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-4497336120551306576?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/4497336120551306576/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=4497336120551306576' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4497336120551306576'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4497336120551306576'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2008/07/sobrevivendo-ainda.html' title='Sobrevivendo... ainda'/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-2848772897506985299</id><published>2007-09-07T11:39:00.000-07:00</published><updated>2007-09-07T14:31:47.951-07:00</updated><title type='text'></title><content type='html'>Tapestry :: O básico 1&lt;br /&gt;&lt;p&gt;Estou faz alguns dias - ok, alguns meses -trabalhando com o &lt;a href="http://tapestry.apache.org/tapestry4.1/"&gt;Tapestry 4.1&lt;/a&gt; e notei que não existem muitos tutoriais desse framework em português. Decidi então colocar algumas coisas nesse blog pra dar uma turbinada na comunidade tap brasuca.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Começo então dando uma introdução sobre como o Tapestry funfa e depois eu vou entrar em detalhes mais práticos (tutoriais propriamente dito). Tanto por que estou com preguiça de abrir o eclipse e talz (feriado, uhu!). :D&lt;/p&gt;&lt;p&gt;&lt;br /&gt;O Tapestry é um framework web feito em Java que faz uso extenso de &lt;a href="http://java.sun.com/docs/books/tutorial/reflect/index.html"&gt;reflection&lt;/a&gt;. É um framework focado em componentes - tão focado que até as páginas são componentes. De forma resumida, um componente é constituído por uma classe Java, um arquivo descritor XML e um arquivo HTML. Em determinadas ocasiões cada um desses elementos pode ser omitido (o comportamento do framework em cada caso é específico e eu devo entrar em mais detalhes em um artigo futuro; isso se eu continuar essa série).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Outra característica chave do Tapestry é o uso extensivo de expressões OGNL (&lt;a href="http://www.ognl.org/"&gt;Object-Graph Navigation Language&lt;/a&gt;). Essa linguagem permite embutir expressões complexas dentro de seu código HTML.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Uma aplicação Tapestry interage com um container web convencional (como o &lt;a href="http://tomcat.apache.org/"&gt;Apache Tomcat&lt;/a&gt;) por meio de um servlet(&lt;a href="http://tapestry.apache.org/tapestry4.1/apidocs/org/apache/tapestry/ApplicationServlet.html"&gt;org.apache.tapestry.ApplicationServlet&lt;/a&gt;). Esse servlet é responsável por interpretar a chamada HTTP e transferir para um &lt;a href="http://hivemind.apache.org/hivemind1/services.html"&gt;serviço&lt;/a&gt; &lt;a href="http://hivemind.apache.org/hivemind1/"&gt;hivemind&lt;/a&gt; apropriado (normalmente o serviço Page).&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Bom, estou entrando em muita complicação para o que interessa agora; o importante é saber que, assim como um endereço HTTP pode representar uma página, ele também pode representar uma classe Java arbitrária que pode implementar, por exemplo, um repositório de imagens geradas automaticamente.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;O serviço de páginas é responsável por criar cache e fazer chamada para as páginas corretas (a localização das mesmas será descrita em um outro post). Cada página tem sua gerência de estado própria e acesso aos objetos compartilhados de sessão.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Enfatizo objetos aqui pois o Tapestry toma conta de converter tipos dinamicamente conforme necessário. Embora isso torne as coisas um pouco nebulosas no começo, sem dúvida facilita no futuro. Em um artigo mais adiante eu pretendo explicar como implementar tais conversores de tipo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Bom, por hora é só.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-2848772897506985299?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/2848772897506985299/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=2848772897506985299' title='2 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2848772897506985299'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/2848772897506985299'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2007/09/tapestry-o-bsico-1-estou-faz-alguns.html' title=''/><author><name>Marcelo C. F.</name><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-5834376057481827382.post-4794142483420968320</id><published>2007-08-02T06:08:00.000-07:00</published><updated>2007-08-02T20:45:57.479-07:00</updated><title type='text'>odeio java, mas...</title><content type='html'>Quem me conhece sabe que eu tenho pavor da palavra &lt;span style="font-weight: bold;"&gt;Java&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para mim essa linguagem é um band-aid code em cima de outro band-aid code.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Fazendo uma analogia mais simples, digamos que você queira uma casa. Digamos que existam, entre várias opções, uma casa feita com vigas de concreto super sólidas, um ótimo telhado, ... (uma casa como a gente conhece, vai), que demora meses para ser construída. Suponha agora que existe uma outra opção, de uma casa feita de isopor.&lt;br /&gt;&lt;br /&gt;Ela só funciona direito se o clima for ideal. Se bater um vendaval ela desmpenca toda. E não tem fundação, então ela pode começar a sair do lugar do nada. Só que essa casa de isopor já está pronta. Existem milhares de modelos, todos com comunidades enormes de proprietários. Algumas casas de isopor até falam com você, mas isso implica que menos gente pode entrar na tal casa.. ou que você vai gastar muito mais dinheiro comprando um terreno maior para ela.&lt;br /&gt;&lt;br /&gt;Java é assim. São tanto band-aids grudados um no outro q vc tem uma casa de band-aid (ou de isopor).&lt;br /&gt;&lt;br /&gt;E o mais bizarro: justamente por ser um band-aidão, por tirar da costas do programador o compromisso com um código realmente eficiente e controle de memória (coisas técnicas "malas"; não vou entrar muito pra esse lado), jogando o compromisso por uma máquina "parruda" pro cliente (geralmente o ser que rodará o programa), que Java é tão usado.&lt;br /&gt;&lt;br /&gt;Calma calma! Não estou falando que java é usado pq é pesado e nem que programador java não sabe lidar com esses problemas!&lt;br /&gt;&lt;br /&gt;Estou vivendo um problema agora. Ou eu escolho algo que seja bom por ser bom. Ou escolho algo pela velocidade em fazer algo que funcione.&lt;br /&gt;&lt;br /&gt;Ambos os lados são importantes. Mas, voltando aos band-aids, até q existem curativos limpinhos. :P&lt;br /&gt;&lt;br /&gt;É o caso do Tapestry.&lt;br /&gt;&lt;br /&gt;Estou usando esse treco. Fui contra à recomendação de que "eu preciso de vários programadores já treinados" e adotei uma ferramenta nem tão usada. O tempo passou, aprendi mais sobre a ferramenta.. entrei em contato com a comunidade de usuários.. e.. uau!! Eu realmente curti esse band-aid! rs&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;resumindo, odeio java mas tapestry é legal. :D&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5834376057481827382-4794142483420968320?l=ogrod2.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://ogrod2.blogspot.com/feeds/4794142483420968320/comments/default' title='Postar comentários'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5834376057481827382&amp;postID=4794142483420968320' title='1 Comentários'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4794142483420968320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5834376057481827382/posts/default/4794142483420968320'/><link rel='alternate' type='text/html' href='http://ogrod2.blogspot.com/2007/08/odeio-java-mas.html' title='odeio java, mas...'/><author><name>Marcelo C. F.</name><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></feed>
