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;

Emprego Novo – Vida Nova

Tags: — @ 7:46 pm

Pois é… quem acompanha o blog (imagino que não seja muitos) deve ter notado que eu alterei os dizeres da página about a cerca de dois meses, com o nome da nova empresa onde trabalho.

Acabei trocando de emprego e também me mudando de cidade, devido a uma série de fatores que não vou listar aqui, mas entre os quais está a proximidade com a Universidade onde pretendo voltar a estudar (estou com a matricula trancada na ULBRA a cerca de um ano), e a outras empresas de TI, além de ser perto da capital, ampliando consideralmente as minhas possibilidades.

Como falei, agora estou morando em São Leopoldo – RS, a apenas 30Km da Capital, e é devido a recente mudança (procura de Ap, compras, reformas e sem internet até pouco tempo) que o blog ficou abandonado por tanto tempo. Mas devo voltar a postar a partir de hoje… ;)

Aliás, um ponto negativo (mas nem tanto) do meu novo trabalho é que não tenho acesso a internet full-time :(, Mas fora isso estou muito contente.

Tchelinux 2008 em Porto Alegre

Tags: , — November 9, 2008 @ 12:56 pm

Como prometido anteriormente, estive participando do TchêLinux na PUCRS ontem. Fui ao evento com um amigo (na verdade meu sócio) daqui de Tramandaí e, apesar da distância, valeu a pena cada Quilômetro percorrido.

O Evento contou com um total de 31 palestras e uma painel sobre temas diversos, abrangendo Software Livre, Novas Tecnologia e Internet. As apresentações e conteúdo complementar das palestras estarão logo disponíveis no website oficial da comunidade (atualizo aqui quando estiverem).

Destas palestras, as que mais me interessaram foram uma sobre RAID e LVM, pelo palestrante Oscar Luis da Silva Neto, uma sobre Técnicas para Alta Disponibilidade, por Marcos Lucas, que serviu quase que como uma continuação da anterior, e a palestra sobre “Hacking Linux“, da Bruna Griebeler, depois da qual fui logo aumentar a segurança de meu Note, colocando uma senha no GRUB (mentira, ainda não fiz isso porque não lembro os comandos, e estou com preguiça de pesquisar (é domingo, gente), mas assim que o pessoal do grupo divulgar as apresentações vou fazê-lo :D).

[updated]  Se alguém desejar ver os slides das palestras, estes estão disponíveis no website do evento, em http://www.tchelinux.org/2008/portoalegre/slides/.

Prova de participação, ^^ hehe NOTA: prometo umas fotos do evento, assim que conseguir…

[updated] Aqui estão os links para alguns álbuns de fotos, tiradas pelos participantes:

http://picasaweb.google.com/thiago.becker/TcheLinux2008
http://picasaweb.google.com/tiagoloppes/TchLinux2008
http://www.flickr.com/photos/penkala/sets/72157608775996605/

Este evento serviu também para me incentivar a ajudar nos proximos eventos de SL. Inclusive já estou pensando em organizar um evento sobre PHP aqui no sul.

Recomendo para qualquer um que trabalhe com TI participar do máximo possível de eventos que conseguir. Próximo sábado estarei na Seminfo em Torres.

PS: Não encontrei os websites dos outros dois palestrantes que mensionei, se alguém souber favor, deixe um comentário com o link que atualizo aqui.

<<< Previous Page - Next Page >>>