sábado, 15 de novembro de 2008

SPAM


fonte: http://www.explosm.net/comics/1444/

segunda-feira, 10 de novembro de 2008

5 Dicas (básicas) para desenvolvedores

1. Nomear coerentemente as variáveis
Pode parecer o mais batido de todos, mas é um dos menos seguidos; as variáveis temporárias geralmente tem os piores nomes possíveis, pois ou são muito compridos ou então muito genéricos; nomear essas variáveis é uma arte. Vale lembrar que usar as mesmas variáveis temporárias pode melhorar o desempenho, mas deixa o código menos legível, então deve-se analisar o que é melhor em dado caso. Pode-se colocar um indicativo do tipo de variável em linguagens fortemente tipadas, por exemplo, o inteiro ponto poderia ser iPonto, e se fosse um float poderia ser fPonto.

2. Identar o código
A identação de um código pode ser feita com espaços em branco ou com tabs; a grande maioria dos programadores preferem com tabs, portanto tente sempre usá-las. Algumas aplicações transformam todos os seus tabs em espaço em branco, como o Dev-C++; evite usá-las. Uma das grandes vantagens de se usar tabs é que cada programador pode gostar de diferentes níveis de identação, isso é, com mais ou menos espaços, e boa parte das ferramentas de programação permitem você decidir quantos espaços você quer ver no lugar de um TAB, dando mais flexibilidade para a visualização do código. Quanto menos níveis de identação tem um programa, mais ele se torna legível; veja a próxima dica

3. Module o seu código
Uma grande invenção na programação foram as subrotinas, então use-as! Elas servem para muitas coisas, como para a abstração de partes do código irrelevantes para o programador em dado momento. Por exemplo, se o seu programa abre um arquivo para pegar os dados, aplica uma função e retorna um resultado, e o objetivo do programador é modificar a função, pode ser interessante apenas assumir que os dados já foram pegos posteriormente, sem se importar como eles foram pegos; Se for necessário saber o formato em que os dados são retornados, deve-se olhar a documentação da função (que deve existir, olhe a dica 5). Outra grande utilidade das subrotinas é a capacidade de tirar vários níveis de identação, pois na subrotina a identação começa novamente do primeiro nível.

4. Use constantes
Muito importante para a portabilidade e o possível reaproveitamento do código que muitos programadores simplesmente esquecem. Declarar constantes o bastante pode magicamente poupar uma tarde de trabalho e vários ctrl+f em um código. Note que constantes do tipo TRES para o numero 3 são inúteis, já constantes do tipo NUM_THREADS para um programa multithread é muito útil.

5. Comente e documente
Quanto maior/mais complexo for ficando o código, maior deve ser o cuidado com a documentação. Ela ajuda a relembrar como foi programado, a entender o que uma determinada função faz, ou ainda onde se muda algumas constantes do programa. Um exemplo negativo dessa vez: quando não temos uma documentação de como os dados são tratados por certa função, o único modo de descobrir é olhando o código da função, trabalho que pode levar muito tempo e que poderia ser resumido a 5 minutos, lendo um parágrafo de documentação. Acredite, mesmo que seja você quem tenha escrito a função, pode acabar esquecendo como formatou dos dados.

sábado, 8 de novembro de 2008

Acabou o dia de Tchê Linux...

Passei hoje no evento Tchê Linux (http://tchelinux.org/blog/), para quem não conhece, um evento relativamente jovem sobre, bem, linux, que passa por várias cidades do Rio Grande do Sul (só esse ano foram 8 eventos!!); apesar de ser o terceiro ano de vida desse evento, pela organização parecer ter muitos; incrivel como a comunidade cresceu rápido.



Engraçado(na realidade, nem tanto), depois desse Tchê Linux me deu uma vontade de montar um datacenter pessoal. Mas falta dinheiro E tempo, e conforme o Fernando Massen, que deu uma palestra, só falta eu não ter espaço para estar tudo contra mim agora.

GCC no Windows

Tem alguma coisa que dá mais raiva do que programar em C/C++ no dev-C++, desenvolvido pela Bloodshed? Ou então procurar outro compilador de C e só conseguir achar as mesmas referências para o mesmo programa? Por que esse programa é tão idolatrado assim? quer dizer, obviamente não é pela identação; a propósito, preferia que não tivesse. O highlight de sintaxe é simplesmente horrível. É praticamente impossível desenvolver um código bonito no dev. Eu sempre fazia o código no notepad e passava para o dev apenas para compilar; apesar de nenhum highlight, ao menos ele ficava bem formatado e eu não perdia preciosos minutos arrumando a identação quando resolvia colocar um if a mais no meio do código.


Então minha vida mudou. Foi então que achei o minGW: minimalist GNU for Windows, no site http://www.mingw.org/. Apesar de não ter modo gráfico, o que pode ser incômodo para os desenvolvedores Windows, é uma boa chance de seu código ficar legível / debugável / modificável. Em conjunto com o editor de código certo, como o clássico SciTE ( http://www.scintilla.org/SciTE.html ), ou o notepad++ ( http://notepad-plus.sourceforge.net/br/site.htm ), torna-se, na minha opinião, o conjunto perfeito para programadores C no Windows. Se você ficou empolgado e decidiu testar, então aí vai um tutorial rápido para sair colocando a mão na massa:

  • Instalando e configurando o MinGW
1. Baixe e instale o MinGW do link acima; como todo bom instalador de Windows, pode ser apenas
um NNF.

2. Configure a variável de ambiente PATH para poder rodar ele de qualquer pasta; Para fazer isso,
vá em Iniciar->Painel de Controle->Sistema->Avançado, em Variáveis do Sistema Selecione PATH
e clique em editar, e acrescente
";caminho-do-MinGW/bin", sem aspas. Caso o terminal esteja
aberto será necessário fechar e abrir de novo para ter efeito;

3. Baixe um dos editores e dê mais um NNF; utilizando eles para escrever seu código
ele ficará mais bonitinho :)
4 Abra o terminal e vá para a pasta onde salvou seu primeiro código (provavelmente
um
"hello world"), e digite "gcc nome-do-arquivo" para compilar; o arquivo compilado
terá o nome de a.exe ; se você quiser compilar com um nome específico pode usar direto
"gcc codigo.c -o nome_da_saida.exe".

Boa diversão, e adeus DEV-C++!!

quinta-feira, 6 de novembro de 2008

Instalando o Slackware 12.1 no Acer Aspire 5520 - 5912

Como narrado no meu ultimo post, decidi instalar o slackware no meu pc. Dei uma pesquisada na internet e tudo, e como levou algum tempo, eu resolvi blogar para alguém que possa querer instalar (talvez até pelo mesmo motivo :D ). Pois bem, vamos lá:

  • Passo 1: Baixar a imagem do Slackware e bootando

Para comecar precisamos baixar a imagem do slackware, disponível no site http://www.slackware.org/getslack/. A duas opcões para baixar, via torrent ou direto de página. Eu baixei o DVD direto de página, mas você baixa o que/de onde quiser :) Após baixar, é necessário gravar a imagem em um DVD / alguns CDs e usar eles para bootar. Para bootar com o CD não esqueca de setar a ordem de boot no setup caso necessário. Durante o boot ele vai perguntar qual o kernel que você quer usar; como você está usando um computador "moderninho" é só dar enter; logue com o root sem senha e vamos para o próximo passo

  • Passo 2: Particionando o disco

Para particionar o disco pode-se usar o fdisk ou o cfdisk; com o cfdisk é mais facil. Inicie o cfdisk digitando "cfdisk /dev/sdx", onde x corresponde a letra do HD que você quer instalar (tipicamente "a"); o particionador é simples, apesar de não ser gráfico, e acredito que você vai se dar bem com ele :) Vamos precisar de duas particões: Um sistema de arquivos linux e uma particao de swap, idealmente com o dobro da memoria RAM, pois mais seria inutil já que o computador teria entrado em trashing. Não esqueca de setar a particão do linux como bootável; quando terminar, escreva no disco a nova tabela de particões; caso você tenha windows instalado, o particionador irá lhe avisar que o loader do windows não vai conseguir mais bootar, pois a duas particões bootáveis, apenas ignore; caso desista do slackware apenas não se esqueca de dar o boot e deixar apenas sua particao windows com a flag de bootavel (ou reparticionar mais um pouco :)

  • Passo 3: Instalando

Saindo do particionador, digite setup para a instalacao comecar. Se quiser, de uma lida do help, senão entre direto no passo dois, que é a configuracão do teclado; depois disso os passos vao ser feitos automáticamente, então será somente responder as perguntas que forem feitas; o instalador é bem explicativo. Só vai uma dica: escolher full install é uma boa idéia... Uma vez instalado ele vai lhe pedir para reiniciar o computador, então reinicie e vá embora.

  • Passo 4: Comandos Básicos e Internet

Finalmente temos nosso lindo sisteminha instalado :) agora podemos comecar a configurar. A placa de rede será reconhecida automaticamente. agora alguns comandos básicos: startx inicia o modo gráfico, xwmconfig seleciona a interface gráfica que você vai querer usar (se não sabe qual usar, aconcelho comecar com KDE). Você pode usar o comando dhclient para se conectar caso use IP dinamico, ou então "ifconfig eth0 up x.x.x.x" para usar um ip fixo; nesse caso, para acesso a internet você também precisará configurar o seu gateway com o comando "route add default gw x.x.x.x", sendo x.x.x.x o IP do seu modem.

  • Passo 5: Configuracoes
Placa de video: Acesse o site http://www.nvidia.com/Download/index.aspx?lang=en-us, escolha a placa de video (dica: a série da placa de video 7000M, que é a que tem nesse modelo de Acer, é GeForce 7 series). quando baixar o driver, saia do modo gráfico e vá para o terminal. entre na pasta em que está o driver da placa de video e digite "chmod +x nome-do-arquivo" para tornar ele executável; logo em seguida digite "./nome-do-arquivo" para executar o script de instalacão. Apenas siga o script; ele provavelmente terá que recompilar o kernel, apenas aceite. No final, escolha sobreescrever o arquivo xorg.conf com as novas configuracões. Entre no modo grafico para ver se funcionou; deve aparecer uma splash screen da nVidia.

Mouse com scroll ("rodinha") e Resolução: No modo texto, digite xorgsetup; reponda as perguntas e no final sobreescreva o xorg.conf (dica: escolha a opcao de internacionalizacão (dead keys) para acentuar normalmente depois. Ao iniciar a interface gráfica tudo deve estar certo já.

Modem wireless: Para instalar o modem wireless usaremos um site muito bom, o http://slackbuilds.org/. procure por ndiswrapper, que é um programa que utilizando um driver de windows gera um modulo para o slackware. baixe os dois pacotes, o slackbuild tar.gz e o cdigo fonte. Não precisamos do .asc. pode ser no modo gráfico mesmo, mas precisamos de um terminal; sinta-se a vontade para sair do modo gráfico quando quiser, ou para emular um terminal no modo gráfico. No terminal, na pasta onde baixou os pacotes, digite "tar -xvvf pacote-do-slackbuild.tar.gz"; isso vai criar uma pasta ndiswrapper. digite "cp arquivo-codigo-fonte.tar.gz ndiswrapper/", para copiar o código fonte para dentro da pasta. entre na pasta e use o mesmo comando que usamos na placa de video, o chmod, com a linha "chmod +x ndiswrapper.SlackBuild" para dar permissão de execucão para o arquivo; logo em seguida, execute ele com "./ndiswrapper.SlackBuild". Ele vai compilar o codigo fonte e no final ele vai gerar um arquivo (ele vai lhe informar o nome no terminal) na pasta /tmp; esse arquivo é o pacote compilado do programa. Digite "installpkg /tmp/nomedoarquivo.tgz" para instalar o pacote. pronto, agora você está com o programa que gera o módulo da palca wireless compilado. Pegue o arquivo .inf do driver (que deve estar no CD que veio junto com o notebook, ou então pode pegar na internet). Vá até a pasta dele e escreva "ndiswrapper -i nomedoarquivo.inf". logo em seguida escreva "ndiswrapper -m", "ndiswrapper -ma" e "ndiswrapper -mi". Reinicie o computador para carregar o módulo e utilize o comando iwconfig para verificar se foi bem sucedido.

ACPI: Abra o arquivo /etc/rc.d/rc.modules e descomente as linhas que incluem "/sbin/modprobe ac" , "/sbin/modprobe battery", "/sbin/modprobe thermal" e "/sbin/modprobe processor".

Pronto, as configuracões básicas estão feitas! divirta-se :)

Decepção com Ubuntu 8.10

Nessa semana tive uma grande decepção, que me incentivou a abrir esse blog de uma vez por todas. uso Ubuntu desde a edição 6 (eu acho), e sempre fiquei muito feliz com ele; ele nunca foi a distribuição mais estável, mas como é extremamente simples de configurar e de usar no dia-a-dia eu comecei a usar, até mesmo porque não tinha tempo para instalar outra distro. Eu estava atualmente usando a versão 8.04, e quando saiu a 8.10 resolvi formatar o meu PC e instalar do zero ao invés de atualizar. Ok, tudo tranquilo, a instalação ficou (ainda) mais bonita. So far so good.

Reiniciei o PC e entrei no Ubuntu para começar a configurar ele. Passei a minha home para ele, e então fui verificar os drivers restritos. Para minha surpresa, O Ubuntu reconheceu meu driver de rede wireless atheros e ativou o driver restrito; fiquei impressionado e feliz ao mesmo tempo, faltava apenas o da placa de vídeo. Quando tentei ativar, ele pediu a senha. Digitei, e começou a baixar o driver. Ok, fui fazer outras coisas na minha nova instalação e quando voltei no gerenciador de driver restrito, ele ainda estava em 0%! Fui conferir a Internet e estava conectado, fiz alguns testes e a velocidade da minha Internet estava boa. "Vou entrar em uma rede wireless pra ver se é a rede cabeada" , pensei; só se fosse em sonho. Apesar de ele reconhecer a minha placa de rede e acusar o driver restrito estar funcional, ele não me dava a opção para conectar em uma rede wireless como ele normalmente dava! fucei e não achei como conectar wireless. Com toda a boa vontade e acostumado com Windows da vida, tentei reiniciar o computador pra ver se "pegava no tranco"; infelizmente o mesmo problema continuou. Passei a noite toda em cima e não consegui resolver. Resultado: Fiquei de cara e instalei o Slackware 12.1.

Primeiro post

Oi, me chamo Felipe e esse vai ser o meu blog. Aqui pretendo falar sobre coisas que gosto e/ou acho úteis. Esse é o primeiro post, então não tem nada de útil :)