Workshop Tchelinux em POA

Tags: , , — May 16, 2009 @ 1:44 pm

Além dos já divulgados eventos oficiais do Tchelinux, (a serem) realizados este ano. O grupo está promovendo, juntamente com o Curso Superior de Tecnologia em Análise e Desenvolvimento de Sistemas da FTEC Porto Alegre, 12 workshops e tutoriais sobre linguagens de programação e ferramentas para desenvolvimento e colaboração, a serem realizados no próximo dia 30.

http://www.tchelinux.org/2009/workshop/

Diferente das palestras geralmente realizadas nos eventos do Tchelinux, estes Workshops terão mais de três horas de duração cada um, serão voltados exclusivamente para a área de Desenvolvimento de Software, e requerem pelo menos um mínimo de conhecimento sobre lógica de programação por parte dos participantes. Uma ótima oportunidade para conhecer novas linguagens e ferramentas.

Como nos eventos, a participação é gratuíta, exigindo apenas a doação de dois quilos de alimentos não perecíveis.

Maiores informações, programação, localização e inscrições disponíveis na página do evento.

Tchelinux 2009 – Gravataí

Tags: , , — March 19, 2009 @ 10:26 pm

Bem, pessoal, sei que o blog ficou bastante tempo abandonado, e que fazem poucos posts que falei sobre o último Tchelinux de 2008. Pois bem, mesmo assim, a temporada Tchelinux 2009 já está aí, e o primeiro evento será na ULBRA de Gravataí.

Este ano, o evento terá 9 edições, em diversas cidades do estado. Segue a lista:

  • 28/03 – ULBRA em Gravataí
  • 25/04 – URISAN em Santo Ângelo
  • 23/05 – URCAMP em Bagé
  • 13/06 – FTEC em Caxias do Sul
  • 04/07 – ULBRA em São Jerônimo
  • 15/08 – UCPel em Pelotas
  • 12/09 – UNIFRA em Santa Maria
  • 10/10 – FAE em Erechim
  • 07/11 – PUC em Porto Alegre

Para incrementar mais um pouco, serão realizados 4 eventos temáticos no auditório da Livraria Cultura, em Porto Alegre:

  • 05/04 – “Do UNIX ao Linux: a história do Software Livre”
  • 21/06 – “Vídeo e Fotografia Digital, da Captura a Edição com Software Livre”
  • 30/08 – “Desenvolvendo aplicações para o Google Android”
  • 18/10 – “IPTables: entenda como funciona o Firewall no Linux”

Como já disse, o primeiro Tchelinux de 2009 será na ULBRA de Gravataí, e as inscrições já estão abertas.

Meus planos são de participar, pelo menos, deste primeiro e do último, em POA, além dos eventos sobre “Do UNIX ao Linux” e “IPTables”, na Livraria da Cultura.

Nos encontramos lá…

Read more…

Debian GNU/Linux 5.0 lançado

Tags: , — March 16, 2009 @ 11:20 pm

O Debian GNU/Linux 5.0, codinome Lenny, foi finalmente lançado no dia 14 de Fevereiro de 2009. Sim, eu sei que estou bastante atrasado com o post, mas antes tarde do que nunca.

Com o lançamento, o Debian Lenny passa a ser a atual versão stable, e a nova versão testing tem o codinome Squeeze (os ETs do filme/desenho Toy Story, seguindo a tradição).

Como novidades nesta versão, temos suporte completo a sistemas de arquivos NTFS (boa notícia para usuários de meio-expediente Windows® / Linux) , PHP 5.2.6, Iceweasel 3.0.6 (uma versão livre do Mozilla Firefox), a adição do LXDE (um desktop leve, vindo no mesmo CD1 que tem o XFCE, recomentado para PCs com poucos recursos de hardware) como opção de ambiente desktop e melhor suporte para notebooks, incluindo o Asus EeePC, entre outras melhorias.

Pessoalmente, acho que esta versão está um pacote cheio, tanto para servidores como para desktops, sem precisr colocar mais nada. Para mais informações e detalhes sobre as novidades, leia a notícia oficial em http://www.debian.org/News/2009/20090214.

Quanto mais simples melhor

Tags: , — January 20, 2009 @ 9:08 pm

Fazendo manutenção em um script hoje no trabalho (código legado), me deparei com um código mais ou menos assim:

$condicao = !($var == 0);

Devo ter levado cerca de uns 5 minutos para entender o que a maldita expressão retornava. Pelo menos ela rendeu algumas risadas minhas e de meus colegas.

Acontece que, em programação, quanto mais simples e fácil de entender se deixar uma expressão melhor. Mesmo que você seja o único a ter acesso ao fontes posteriormente.

Não quero criticar o autor do código que eu estava mantendo (até porque não sei quem é), mas apenas estou usando o (mau) código acima para exemplificar o tema do tópico.

Falando de boas práticas de programação, não se nega uma comparação deste jeito. O correto seria usar o operador NOT EQUAL (diferente):

$condicao = ($var != 0);

E se considerarmos as facilidades de conversão de tipos do PHP, podemos simplificar ainda mais, bastanto usar um cast:

$condicao = (bool) $var;

Explicando…
A expressão acima (primeiro exemplo) compara se a variável é igual a 0 (zero) e depois nega o resultado, assim se a variável for igual a zero, a comparação retornará true (verdadeiro), que se tornará false (falso) devido a negação (!), o que dá o mesmo resultado que comparar se a variável é diferente de 0 (zero)(segundo exemplo). Como em PHP 0 (zero) é validado com false (falso) e qualquer outro valor como true (verdadeiro), o resultado é o mesmo que simplesmente converter a variável para booleano (terceiro exemplo).

Resumindo, sempre mantenha as linhas de código o mais claras e simples o possível.
Seguem algumas dicas:

  • Evite expressões difíceis de entender, como a do exemplo deste post. Verifique há um modo mais simples de obter o mesmo resultado com código mais claro e/ou menor, se não encontrar, adicione comentário para tornar a expressão mais clara;
  • use nomes de variáveis que exemplifiquem sua finalidade. Prefira usar $cor, ao invés de $c ou $x;
  • sempre indente corretamente seu código, deixando os bloco {} bem visíveis. Use linhas em branco entre blocos de comandos diferentes. Prefira usar espaços ao invés de tabs para indentação, assim o código fica com o mesmo visual em qualquer editor;
  • evite blocos vazios, como um if ou loop sem corpo, é comum encontrarmos blocos como:
    if ($valor == true) {
     
    } else {
        $var = 'constante';
    }
  • utilize phpdoc
    /**
     * Descrição da classe, método ou função
     *
     *@param tipo [variável [descrição]]
     *@return tipo [descrição]
     */

    para definir classes, interfaces, métodos, propriedades e funções. Este é o método de documentação padrão do PHP e auxilia no uso de IDEs especializadas (Eclipse PDT, Zend Studio, etc.);

  • comente TODA linha de código sempre que possível.

Com estas boas práticas, seus códigos deverão ter uma vida útil muito mais longa (sim, código fonte tem validade, e a clareza e documentação destes serve de embalagem).

Só pra concluir, vou colocar uma tabelinha de comparações básicas em PHP aqui, do tipo que a gente sempre fica em dúvida quando usa um if($var) :

//array vazio, string vazia, 0 com ou sem aspas e null
//são todos avaliados como FALSE (falso)
array() == "" == '' == '0' == 0 == null == false;
//se usados operadores de comparação explícita,
//que também comparam os tipos (=== e !==)
//APENAS valores IDÊNTICOS são avaliados
//como TRUE (verdadeiro)
0 === 0;
'abc' === 'abc';
 
//todos diferentes se comparados também em seus tipos
array() !== "" !== '' !== '0' !== 0 !== null !== false;
<<< Previous Page - Next Page >>>