<?xml version="1.0" encoding="ISO-8859-1" ?>
<rss version="2.0">
<channel>
<title>RodrigoStrauss::WebLog();</title>
<language>pt-br</language>
<link>http://www.1bit.com.br/content.1bit/weblog</link>
<description>Rodrigo Strauss - WebLog</description>
<webMaster>weblog@1bit.com.br</webMaster>
<managingEditor>weblog@1bit.com.br</managingEditor>
<item><title>Sexto Encontro de Programadores C++</title><link>http://www.1bit.com.br/content.1bit/weblog/ccppbr_sexto</link><guid isPermaLink="true">http://www.1bit.com.br/content.1bit/weblog/ccppbr_sexto</guid><comments>http://www.1bit.com.br/content.1bit/weblog/ccppbr_sexto#comments</comments><description>&lt;p&gt;O grupo C&amp;C++ Brasil (ccppbrasil) tem o imenso orgulhar em anunciar (agora oficialmente) o nosso sexto encontro. Detalhes:

&lt;ul&gt;
&lt;li&gt;Sexto Encontro de Programadores C &amp; C++
&lt;li&gt;em São Paulo, SP, na Avenida Paulista núemro 1439, 6º andar
&lt;li&gt;5 palestras. Já temos propostas suficientes, falta a confirmação dos palestrantes e a ordem das palestras
&lt;li&gt;&lt;a href=&quot;http://www.temporealeventos.com.br/inscricoes/inscricoes.php?area=95&amp;form=367&quot;&gt;As inscrição já estão abertas&lt;/a&gt;
&lt;/ul&gt;

&lt;p&gt;A página oficial está em &lt;a href=&quot;http://ccppbrasil.org/wiki/Grupo:Encontro_VI&quot;&gt;http://ccppbrasil.org/wiki/Grupo:Encontro_VI&lt;/a&gt;.&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.1bit.com.br/content.1bit/weblog/ccppbr_sexto#comments&quot;&gt;0 comentário(s)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description><pubDate>Sun, 24 Jan 2010 14:25:29 GMT</pubDate></item><item><title>Vou fazer uma palestra sobre Python na Campus Party</title><link>http://www.1bit.com.br/content.1bit/weblog/python_campus_party</link><guid isPermaLink="true">http://www.1bit.com.br/content.1bit/weblog/python_campus_party</guid><comments>http://www.1bit.com.br/content.1bit/weblog/python_campus_party#comments</comments><description>&lt;ul&gt;
&lt;li&gt;Título: Seja dinâmico com Python
&lt;li&gt;Descrição: Vou falar sobre quase todas as gambiarras e coisas maravilhosas que um programador pode fazer com os recursos &quot;dinâmicos&quot; do Python. Criar membros e métodos em runtime, usar o reflection mais simples do planeta, responder por métodos que não existem na hora em que são chamados. Métodos __MAGICOS__ e seus correlatos. Como transformar um registro de um banco de dados em um objeto (quase um ORM) com duas linhas de código (ou três). E as piadas quase-engraçadas de sempre
&lt;li&gt;Data e hora: 26 de janeiro (terça-feira), 09:00hs da matina. Para quem vai acampar lá é uma boa maneira de começar a semana :-)
&lt;li&gt;Links: &lt;a href=&quot;http://www.campus-party.com.br/&quot;&gt;Campus Party&lt;/a&gt;, &lt;a href=&quot;http://www.campus-party.com.br/agenda.html&quot;&gt;agenda do evento&lt;/a&gt;, &lt;a href=&quot;http://twitter.com/rodrigostrauss&quot;&gt;meu twitter&lt;/a&gt;
&lt;/ul&gt;

&lt;p&gt;Além disso, devo ficar lá o dia inteiro. Essa palestra está sendo organizada pelo &lt;a href=&quot;http://www.python.org.br/wiki/GrupySP&quot;&gt;GruPy-SP&lt;/a&gt;, o Grupo de Usuários Python do Estado de São Paulo.&lt;/p&gt;&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.1bit.com.br/content.1bit/weblog/python_campus_party#comments&quot;&gt;1 comentário(s)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description><pubDate>Fri, 22 Jan 2010 18:59:20 GMT</pubDate></item><item><title>Lendo e medindo o tempo em C e C++: função time()</title><link>http://www.1bit.com.br/content.1bit/weblog/ccpp_medindo_tempo_time</link><guid isPermaLink="true">http://www.1bit.com.br/content.1bit/weblog/ccpp_medindo_tempo_time</guid><comments>http://www.1bit.com.br/content.1bit/weblog/ccpp_medindo_tempo_time#comments</comments><description>&lt;p&gt;Bom, chega de teoria e encheção de lingüiça e vamos para o código de uma vez por todas. A função mais conhecida para pegar a data e hora é a função time() da C runtime, que retorna quantidade de segundos desde o &lt;a href=&quot;http://en.wikipedia.org/wiki/Unix_time&quot;&gt;&quot;Unix Epoch&quot;&lt;/a&gt;, que é meia noite (00:00:00) de 1 de Janeiro de 1970. 

&lt;p&gt;Características da função time():

&lt;ul&gt;
&lt;li&gt;Retorna a quantidade de segundos desde 1 de Janeiro de 1970. Ou seja, a sua precisão máxima é de um segundo. Ou seja, não serve para medir performance. (ou seja, vou explicar mais sobre isso depois)
&lt;li&gt;O horário retornado é &lt;a href=&quot;http://en.wikipedia.org/wiki/Gmt&quot;&gt;GMT&lt;/a&gt;, para pegar o horário local é necessário fazer manualmente o cálculo para ajuste de fuso horário. Para usar o horário local é necessário usar a função get_timezone (ou _tzset no Visual C++) para ler a diferença do fuso que você usará para fazer o cálculo depois
&lt;li&gt;Como o retorno da função é um número inteiro, é muito fácil fazer contas com ele. Para avançar a data em dois dias, por exemplo, é só somar [60 * 60 * 24 * 2]. 
&lt;li&gt;Durante o inicio dos tempos do unix o retorno era do tipo int de 32 bits. Fazendo uma conta simples com os limites de um inteiro, vemos que o limite de medição é algum dia no ano de 2038, criando uma nova e repaginada versão do bug do milênio. Nas versões mais atuais dessa função o retorno é um int64, o que empurra o limite para uma data bem longínqua, quando provavelmente não haverá mais programadores vivos no universo.
&lt;li&gt;Por ser uma função da C runtime, está disponível em qualquer compilador C e C++ (qualquer == qualquer compilador não-exótico para plataformas não-exóticas). É provavelmente a função mais multiplataforma de todas que eu vou mostrar
&lt;/ul&gt;

&lt;p&gt;Como um trecho de código vale mais do que 0xFFFFFFFFFFFFFFFF palavras, here we go:

&lt;div class=&quot;code&quot;&gt;
&lt;pre&gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;stdio.h&amp;gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;tchar.h&amp;gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;time.h&amp;gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;iostream&amp;gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;iomanip&amp;gt;
&lt;span class=&quot;keyword&quot;&gt;#include&lt;/span&gt; &amp;lt;string&amp;gt;

&lt;span class=&quot;keyword&quot;&gt;using namespace&lt;/span&gt; std;

&lt;span class=&quot;keyword&quot;&gt;void&lt;/span&gt; print_time(time_t t)
{
  tm* formatted_time;

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// essa função &quot;quebra&quot; essa quantidade de segundos e dia, mês, ano, etc&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  formatted_time = gmtime(&amp;t);

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// isso vai mostrar algo como &quot;2009/12/07 14:42:57&quot;&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// note que é necessário somar 1900 na data para pegar o ano corrente&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  cout &lt;&lt; setfill('0') &lt;&lt; 
    setw(4) &lt;&lt; formatted_time-&gt;tm_year+1900 &lt;&lt; &quot;/&quot; &lt;&lt;
    setw(2) &lt;&lt; formatted_time-&gt;tm_mon+1 &lt;&lt; &quot;/&quot; &lt;&lt;
    setw(2) &lt;&lt; formatted_time-&gt;tm_mday &lt;&lt; &quot; &quot; &lt;&lt;
    setw(2) &lt;&lt; formatted_time-&gt;tm_hour &lt;&lt; &quot;:&quot; &lt;&lt; 
    setw(2) &lt;&lt; formatted_time-&gt;tm_min &lt;&lt; &quot;:&quot; &lt;&lt; 
    setw(2) &lt;&lt; formatted_time-&gt;tm_sec &lt;&lt; endl;
}


&lt;span class=&quot;keyword&quot;&gt;int&lt;/span&gt; main()
{
  time_t t;

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// pega o número de segundos desde 1970&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  t = time(NULL);

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// mostra na tela, formatado&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  print_time(t);

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// pega o fuso horário da máquina para pegar o horário local&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// ao invés de GMT. &lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  long timezone;

  _tzset(); &lt;span class=&quot;comment&quot;&gt;// carrega as configurações de fuso&lt;/span&gt;

  _get_timezone(&amp;timezone); &lt;span class=&quot;comment&quot;&gt;// lê a diferença do fuso&lt;/span&gt;

  cout &lt;&lt; timezone &lt;&lt; endl;

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// ajusta o horário pelo fuso&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  t -= timezone;

  print_time(t);

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// avança da data em 2 dias&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  t += 48 * 60 * 60;

  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;// mostra novamente&lt;/span&gt;
  &lt;span class=&quot;comment&quot;&gt;//&lt;/span&gt;
  print_time(t);

  &lt;span class=&quot;keyword&quot;&gt;return&lt;/span&gt; 0;
}



&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Esse código foi feito no Visual C++ (Windows). Existem pequenas diferenças nos nomes das funções no Linux, mas o conceito é o mesmo. Consulte sua documentação preferida para detalhes específicos.&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.1bit.com.br/content.1bit/weblog/ccpp_medindo_tempo_time#comments&quot;&gt;1 comentário(s)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description><pubDate>Wed, 16 Dec 2009 19:09:33 GMT</pubDate></item><item><title>Liga dos Programadores Independentes: primeira reunião</title><link>http://www.1bit.com.br/content.1bit/weblog/liga_encontro_1</link><guid isPermaLink="true">http://www.1bit.com.br/content.1bit/weblog/liga_encontro_1</guid><comments>http://www.1bit.com.br/content.1bit/weblog/liga_encontro_1#comments</comments><description>&lt;p&gt;Como temos quorum suficiente, está confirmada a primeira reunião para dia 2 de dezembro, quarta-feira, no &lt;a href=&quot;http://www.omalleysbar.net/&quot;&gt;O'Malleys&lt;/a&gt;, a partir das 19 horas. Com não sei exatamente quantas pessoas irão aparecer, vou reservar mesas para 10 pessoas. Como eu já tinha dito, lá as comandas são individuais e cada um paga sua própria conta. Chegando pergunte onde ficam as mesas e tenha certeza que um monte de programadores reunidos é algo bem fácil de achar.

&lt;p&gt;Só para esclarecer o debate do post anterior: você faz parte do público alvo do encontro se você é programador e tem uma idéia (implementada ou não) para fazer um software (produto ou serviço) para vender e ganhar dinheiro, não importa o motivo. Você pode estar puto com seu chefe e odiar trabalhar das 9 às 6 ou simplesmente ter vontade de abrir sua própria empresa. O encontro é para que programadores solitários e independentes tenham pessoas para discutir a viabilidade das suas idéias, e para discutir também métodos para colocá-las em prática. Para discutir métodos de desenvolvimento para transformar suas idéias em produtos e serviços e viver disso.

&lt;p&gt;Você não faz parte do público alvo se você tem a idéia para um software mas não consegue escrever o software sozinho. Esse encontro especificamente não é um bom lugar para encontrar um programador para implementar a sua idéia. Para isso tente a &lt;a href=&quot;http://www.apinfo.com&quot;&gt;apinfo&lt;/a&gt;. Talvez isso mude se o grupo crescer e se organizar, seria ótimo um encontro para juntar pessoas com boas idéias com pessoas com conhecimento técnico para executá-las. Não é (preconceito|elitismo|frescura|complexo de superioridade), é só questão de foco e redução de pauta para tentar fazer desse encontro o primeiro de muitos. &lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.1bit.com.br/content.1bit/weblog/liga_encontro_1#comments&quot;&gt;8 comentário(s)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description><pubDate>Mon, 30 Nov 2009 19:32:12 GMT</pubDate></item><item><title>A Liga dos Programadores Independentes</title><link>http://www.1bit.com.br/content.1bit/weblog/programadores_independentes</link><guid isPermaLink="true">http://www.1bit.com.br/content.1bit/weblog/programadores_independentes</guid><comments>http://www.1bit.com.br/content.1bit/weblog/programadores_independentes#comments</comments><description>&lt;p&gt;Eu tenho certeza que não sou o único programador com ideias mirabolantes para dominar o mundo. Seja um projeto de software para ficar bilionário ou um simples serviço online para ajudar o ego (com Google Adwords para ajudar mais ainda o ego), já ouvi várias boas ideias de várias pessoas com quem trabalhei e convivi. O grande problema é que ninguém tem a organização e foco necessários para tocar um projeto desses. Eu também não, mas estou tentando chegar lá. E depois de aproximadamente 17 candidatos a sócio (sócio-programador, não o financeiro), eu desisti de tentar apoio nas minhas empreitadas. Sou agora um programador independente.

&lt;p&gt;Lendo o Twitter do Rafael Beckel vi que ele também estava com ideias para dominar o mundo, então liguei pra ele para marcarmos um chopp e conversar. Nenhum chopp depois (acabamos indo para o McDonalds) pensamos em montar um grupo de programadores malucos com ideias malucas, para termos com quem discutir nossas maluquices. Não é algo para discutir como montar um plano de negócio ou como conseguir dinheiro para financiar uma empresa. É para conversar sobre software. E sobre como manter o foco em um projeto quando você trabalha nele sozinho. E, claro, para ter pessoas para discutir suas ideias. &lt;a href=&quot;http://dozeroaomestre.blogspot.com/2009/11/ressurgindo-das-cinzas.html&quot;&gt;O Rafael também escreveu sobre a conversa que tivemos&lt;/a&gt;.

&lt;p&gt;Como eu já disse, o foco é software. Pode ser indelicadeza da minha parte (sendo &quot;indelicadeza&quot; um puta de um eufemismo), mas pessoas que não sabem programar e não são da área de software não seriam bem vindas nesse suposto grupo (não queremos montar um sebrae). O foco é software, o publico alvo são pessoas que sabem fazer software. Com as próprias mãos. Pessoas que querem discutir organização e método para terminar seu software, já que não adianta ter um plano de negócio ou zilhares de pesquisas de sei-lá-o-que se você não tem software para o usuário interagir.

&lt;p&gt;Minha idéia é um primeiro encontro de buteco para discutirmos o formato do grupo. Dia 2 de dezembro, quarta-feira, no &lt;a href=&quot;http://www.omalleysbar.net/&quot;&gt;O'Malleys&lt;/a&gt; que fica perto da Paulista. Além de ser um lugar onde é possível conversar, a comanda é individual e não tem 10%. Quem não quiser me acompanhar me acompanhar no pint de Guinness pode tomar um refrigerante e não dividir a conta com os &lt;a href=&quot;http://malditoprogramadorbebado.blogspot.com&quot;&gt;malditos programadores bêbados&lt;/a&gt;. Comentem sobre a data e hora e farei um outro post semana que vem confirmando o horário e local.



&lt;p&gt;&lt;b&gt;&lt;a href=&quot;http://www.1bit.com.br/content.1bit/weblog/programadores_independentes#comments&quot;&gt;23 comentário(s)&lt;/a&gt;&lt;/b&gt;&lt;/p&gt;</description><pubDate>Wed, 25 Nov 2009 10:22:20 GMT</pubDate></item></channel>
</rss>