quinta-feira, 5 de julho de 2007

Respostas Claras

Em exemplo interessante de falta de atenção (inspirado em casos reais):

Nome
Idade
Opinião

quarta-feira, 4 de julho de 2007

Curiosidade

Desde que comecei com este blog, não imaginei que receberia visitas do Vietnã e do Hawaii (graças ao Google Analytics).

Aos visitantes de tão longe, assim como os de tão perto, um grande abraço!

terça-feira, 3 de julho de 2007

Linux Ubuntu

Houve um tempo que usar linux era coisa de louco. Era difícil de instalar, as interfaces gráficas eram pobres, poucos programas... era o sistema ideial para programadores e nerds. Quem precisa de Word quando tem o Vi e o LaTeX? Quem precisa de Excel quando tem AWK? Ora... é uma questão de escolha, simples assim.

O que era um projeto de nerds virou um modelo de negócios. Surgiram boas distribuições, inovações como o Linux Mandrake (nunca a instalação de um sistema foi tão fácil e bonita), o StarOffice, o WindowMaker, KDE...

Pois bem, eis que surgiu o Ubuntu Linux. Criado pelo programador E turista espacial Mark Shuttleworth, o Ubuntu é um sistema inteligente, projetado para ser utilizado com simplicidade por qualquer pessoa. O resultado foi uma distribuição extremamente popular, bonita e intuitiva.

Fica ai a dica: façam um test-drive com um LiveCD do Ubuntu (vcs podem pedir CDs de graça no site oficial -- eles entregam no brasil).

A seguir uma breve entrevista do Mark Shuttleworth:

Oportunidades de Emprego (Porto Alegre)

Tens experiência em Java / Oracle / .Net / C / C++ / Javascript / Teste de Software / Gerência de Projetos /Cobol ou Clipper?

Procurando emprego na região de Porto Alegre?


  • Desenvolvedor C# (2 vagas)

  • Desenvolvedor de Testes

  • Analista de Suporte Java

  • Integrador de Sistemas

  • Analista de Sistemas

  • Lider Técnico - Java (mínimo 3 anos de experiência)

  • Desenvolvedor Java/Oracle (4 anos experiência)

  • Desenvolvedor Oracle Developer (Forms/Report) (3 anos de experiência)


Não perca tempo, envie o seu curriculo atualizado para mim informando, principalmente, tempo de experiência, certificações e nível de inglês.

Sugiro também a leitura deste post do blog pythonologia. Muito interessante na hora de redigir um currículo ou email para alguma vaga.

segunda-feira, 2 de julho de 2007

Parâmetros em Shell Script

Meu primeiro artigo, resultado de uma boa noite de insônia.

Direto do CentOSBR: Parâmetros no Shell.

Estou enrolando outros textos tem tempo: vamos ver se agora eu continuo.

Conheça o Incrível Ruby on Rails



Ruby é uma linguagem interpretada orientada à objetos que vem aparecendo no mercado faz tempo. Sua popularidade vem subindo graças ao framework on Rails, que pode acelerar, e muito, o desenvolvimento de aplicações para a web.

Gostou da demonstração? O ponto de partida para um entusiasta pode ser o Ruby on Br, com alguns bons artigos e um forum que une os melhores profissionais no ramo.

Dê uma olhada nos tutoriais do Taq e, se gostar, compre o livro (é muito bom, recomendo). Outro livro muito bom é o do Akita (responsável pela tradução do livro Getting Real by 37 Signals para pt_BR).

Embarque nessa vc também!

Rogue: Muita Ação em 1980

No fim da década de 90, fui o feliz proprietário de um PC 286 dotado de monitor CGA monocromático. Rodando DOS 5.0 no disquete maior, esta pontente maquina possibilitou que eu aprendesse Pascal para a faculdade, alem de testar centenas de sharewares baixados do Sintel.net.

A vontade de jogar era maior do que tudo, obviamente. As limitações do Hardware, entretanto, só foram eliminadas com um jogo extremamente simples, datado da década de 80: Rogue (uma breve história do jogo pode ser encontrada aqui).



Rogue é um jogo simples: tu és um guerreiro (ou alguma coisa parecida) representado por uma carinha ascii (ou uma @, dependendo da versão). Navegando por labirintos cheios de itens mágicos, armas e monstros, vais descendo até encontrar o temível Dragão (representado pela letra D -- após algumas horas de jogo, o alfabeto torna-se incrivelmente ameaçador!).

A complexidade do jogo não é pequena: vc pode usar um anel amaldiçoado (cursed) que te teleporte aleatoriamente até que vc consiga remove-lo com a mágica certa. Um dos monstros pode remover níveis do seu personagem, involuindo-o (letra X se não me engano -- alias esse foi o único jogo que apresentava esse tipo de desafio). Cada jogo é diferente do outro, o que representa centenas de horas de diversão. Para saber mais, começe aqui.

Jogos em modo texto, com este tipo de interface gráfica ou os mais simples como Zork ou Colossal Caves representam um excelente desafio: jogos cujo impacto seja a sua estória, suas possibilidades e a criatividade do autor. Qualquer um que pense em criar jogos (mirabolantes ou não) deveria conhecer estes vovôs dos jogos atuais, e tentar fazer um, inclusive.

Existe espaço até para jogos multiplayers, como no caso dos MUDs. Tem gente jogando a mais de uma década o que os mais novos descobriram no WoW.

ps: eu SEMPRE joguei em modo "Fast Play" (Scroll Lock!), exceto em ambientes grandes e escuros.

O melhor de dois mundos: C e Fortran

C é uma ótima linguagem de programação, simples e clara.
Fortran, para problemas matemáticos, é imbativel!

Que tal usar o melhor dos dois mundos com este tutorial?

Vejamos o exemplo abaixo:

Arquivo testC.cpp

#include 

using namespace std;

extern"C" {
void fortfunc_(int *ii, float *ff);
}

main()
{

int ii=5;
float ff=5.5;

fortfunc_(&ii, &ff);

return 0;
}


Arquivo testF.f
      subroutine fortfunc(ii,ff)
integer ii
real*4 ff

write(6,100) ii, ff
100 format('ii=',i2,' ff=',f6.3)

return
end


Compilando

$ f77 -c testF.f
$ g++ -c testC.cpp
$ g++ -o test testF.o testC.o -lg2c


Executando

$ ./test
ii= 5 ff= 5.500


Aceito sugestões, agora que não tenho muita coisa para fazer em Fortran.

Mono: C# no Linux

Considere este simples código:

using System;

class MainClass {

public static void Main() {
Console.WriteLine("Eu sou um programa feito em C#");
Console.ReadLine();
}
}


Tcharam: um hello world que, no mundo MS, seria compilado no Visual Studio após alguns segundos de espera. Para plataformas abertas, podemos usar o Mono:

$ uname
Linux
$ mcs Example.cs # Mono Compiler Suite
$ mono Example.exe # Mono's ECMA-CLI native code generator
Eu sou um programa feito em C#
[enter]
$


Independente de Ideologias, C# é uma linguagem interessante e seu uso está cada vez mais comum. Para quem não quer ficar fora do mercado de trabalho, o mono pode ser uma ótima oportunidade para praticar. O site java2s possui um tutorial interessante para os curiosos.

Youtube Downloader

Cerca de um ano atras eu pesquisei uma forma de fazer o download automatico de videos do youtube informando o id ou a url inteira. Ele é bem didático, basta ser um pouco nerd e conhecer um pouco de expressões regulares (alias o livro do Aurelio está em promoção).

Minha inspiração para postar este script veio desta notícia, onde Warren Harding baixou um vídeo usando o Lynx e usou o Mplayer para exibir o vídeo no modo ASCII. O resultado é insano, porém divertido.

#!/bin/bash
# youtube downloader
# usage: script
# YouTube URL: http://www.youtube.com/watch?v=[video_id]

[ -z "${1}" ] && { echo 'Error! Missing url or video_id!' ; exit 1 ; }

URL="http://www.youtube.com"

# download link: http://youtube.com/get_video?video_id=[video_id]&t=[t_id]&...

DOWNLOAD=`wget -qO - "${URL}/watch?v=${1/*=}" | grep -oE 'video_id=.*&t=[^\"&]*' | head -1`

wget -O "${1/*=}.flv" "${URL}/get_video?${DOWNLOAD}"


Eu poderia ter feito tudo em uma unica linha usando xargs, porém ficaria um pouco poluído para publicar neste humilde blog, mas fica aí a dica.