terça-feira, fevereiro 19, 2008

Dev-PT - Desenvolvimento de Software em Português

Nasceu o Dev-PT.net, um blog de programadores para programadores, onde serão abordados temas relacionados com a Engenharia de Software. Se estão interessados no tema, visitem e dêem o vosso feedback.

Aproveito para relembrar que este blog já mudou de endereço para blog.rogeriopvl.com !

terça-feira, fevereiro 12, 2008

New Home

O blog mudou de endereço para http://blog.rogeriopvl.com, mais informações no endereço indicado. Actualizem os vossos bookmarks please :) e feeds também.

quarta-feira, fevereiro 06, 2008

terça-feira, fevereiro 05, 2008

Mudanças II

Com isto das mudanças acabei por ter mais trabalho do que o esperado. No novo alojamento vou utilizar Wordpress como plataforma para o blog.

Acontece que os posts importados directamente do blogger não respeitam os standards W3C. Pode parecer preciosismo da minha parte, mas é importante para mim que o blog tenha o XHTML e o CSS válidos, por motivos que não vou agora descrever (leiam este artigo e este para perceberem).

E devido a isto vou acabar por demorar um pouco mais do que o esperado a repor o blog em actividade na sua nova casa, pois irei fazer uma selecção dos posts mais relevantes e editá-los manualmente de modo a retirar todas as tags xhtml / html inválidas colocadas pelo editor de posts do blogger.

segunda-feira, fevereiro 04, 2008

Mudanças


De momento o open core encontra-se em mudanças para um domínio e alojamento dedicado. Por isso os posts vão ser poucos, mas brevemente haverá novidades.

quinta-feira, janeiro 31, 2008

Controlar as portas abertas no sistema

Para controlar as ligações que o computador estabelece e/ou saber as portas que estão a escutar por ligações num sistema Linux:

sudo netstat -tulp

Com este comando obtemos uma listagem das ligações. Este comando já é conhecido pelos utilizadores de windows (não sei se os argumentos serão os mesmos).

Existe outro comando mais complexo mas bastante poderoso na informação que oferece:

sudo lsof -i -n | egrep 'COMMAND|LISTEN|UDP'

Com este conjunto de comandos a informação é mais detalhada e melhor organizada. O comando principal é o lsof. O egrep apenas serve de filtro para o output conter apenas a informação que nos interessa. Este é o meu favorito juntamente com este:

sudo nmap -vO localhost

Este comando é nada mais nada menos que um port scanning à própria máquina. Provavelmente uma das melhores maneiras de saber que portas a máquina tem abertas. O parâmetro O é para tentar adivinhar o sistema operativo que está a correr na máquina, o que é sempre interessante. Além de localhost podem fornecer como argumento o IP da rede interna, se estiverem numa, ou também fornecer o IP externo. De notar que se puserem localhost  ou endereço interno poderão ver portas que externamente não se encontram abertas.

Nota: como já devem ter reparado pelo sudo, todos estes comandos para funcionarem na totalidade necessitam de privilégios root na máquina onde são executados.

quarta-feira, janeiro 30, 2008

Comunicar através do proxy no terminal

Quando uma máquina se encontra atrás de um proxy e é necessário utilizar o terminal para aceder a comandos que utilizam a rede (o apt por exemplo) faz-se o seguinte no mesmo terminal:

export http_proxy="http://username:password@endereco_proxy:porta"
export https_proxy="http://username:password@endereco_proxy:porta"
export ftp_proxy="http://username:password@endereco_proxy:porta"

Esta configuração apenas ficará válidade para a sessão corrente. Assim que o terminal for fechado as configurações perdem-se. Para o caso de necessitarem de manter  essas configurações basta adicionar estas linhas ao ficheiro .bashrc e reiniciar a consola.

segunda-feira, janeiro 28, 2008

Cores no vim em Mac OS X

Para habilitarem as cores do vim (syntax highlighting) no terminal do Mac OS X (qualquer versão deverá funcionar), basta criar na vossa home o ficheiro .vimrc e inserir o seguinte no mesmo:

syntax on

Para mudar o tipo cores (existem cores para fundo escuro e fundo claro, facilitando a visibilidade das mesmas de acordo com o fundo) basta adicionar a seguinte linha ao ficheiro:

set background=dark

Aqui podem colocar dark ou light ao vosso gosto. E finalmente se gostam de programar com o vim podem também habilitar a opção para indentar código:

set autoindent

Agora basta gravarem o ficheiro e abrir o vim no terminal, ele vai ler o ficheiro ao iniciar, e efectuar as configurações definidas :)

PS. Isto também funciona para qualquer sistema *nix.

Mais informação:

domingo, janeiro 27, 2008

Mac OS 10.5 Leopard - Os bugs encontrados


Estes foram os bugs que encontrei ao fim de uma semana de utilização do recente Mac OS 10.5 Leopard, para o qual a Apple já tem previsto um update (10.5.2) com cerca de 450Mb.
  • O primeiro foi logo encontrado na segunda vez que descarreguei por completo a bateria. O Macbook em vez de fazer sleep quando a bateria descarregou, fez shutdown forçado, fazendo-me perder tudo o que estava a fazer. Isto aconteceu cerca de 3 vezes. A partir daí quis poupar a máquina de shutdowns forçados e passei a ligar o carregador assim que o aviso de bateria fraca aparecia. Por mais estranho que pareça, testei um dia mais tarde e não voltou a acontecer até hoje...
  • O segundo, que provavelmente é relacionado com o primeiro, o sistema que indica a carga da bateria não acerta nem por sombras do tempo restante de bateria nem o tempo restante para carregar por completo a bateria. Má gestão de energia por parte do Leopard? Checked. Digo isto porque depois de uma pesquisa encontrei pessoas a queixarem-se do mesmo, tendo apenas acontecido após o upgrade do Tiger para o Leopard.
  • Terceiro, no Thunderbird e Firefox, o ponteiro do rato tem um comportamento estranho ao passar repetidamente por texto. Fica durante uns milisegundos com o dobro do tamanho e desfocado. Além de que o Firefox por si só tem um comportamento pouco fluído, o que para já me faz utilizar o Safari como browser de eleição em Mac OS.
  • Quarto e último, o problema que já tinha referido sobre os ficheiros .dmg não ejectarem e misteriosamente não volta mais a acontecer depois de um reboot.

Este foram os únicos bugs com que me deparei até agora, não são muitos mas os primeiros que mencionei são um pouco graves (mas habituais?) quando se fala de um produto vindo da Apple.

Em relação aos problemas com a bateria no Leopard também existe a possibilidade de o problema ser mesmo da bateria e não do sistema operativo, e por esse mesmo motivo vou estar atento, para no caso de essa possibilidade se confirmar ir direito à loja :)

De resto posso dizer que o Leopard tem coisas muito boas como por exemplo as Stacks, que a vida sem elas já parece mais complicada :D, a Time Machine que apesar de ainda não a ter usado parece-me muito bem conseguida, o Spaces que era algo que eu já procurava à muito no Mac OS (no Tiger tinha uma aplicação parecida, mas esta é muito melhor), e a rapidez de resposta geral do OS. Entretanto também já me habituei à transparência da menu bar e à dock 3D.

Venha de lá esse update!

Irssi + Screen + SSH = IRC em todo o lado

O Irssi é um cliente de IRC open source que corre em modo de texto e consequentemente bastante leve no sistema. Como tal tem sido muito utilizado para ficar a correr 24h por dia numa máquina e acessível exteriormente por SSH.

Como é possível aceder exteriormente ao irssi que temos a correr naquele momento na máquina? Utilizando o comando Screen. O Screen quando chamado com um programa como argumento faz com que esse programa possa ser passado na íntegra para uma sessão remota. Quando digo na íntegra quero dizer que o que fizermos e escrevermos remotamente, está a ser escrito na máquina que corre o programa e pode mesmo ser visto em tempo real.

Mas isto apenas é possível se tiverem instalado um servidor SSH e fizerem port-forwarding da porta no router. Brevemente também irei falar sobre configurar de modo seguro o SSH server.

Passando à prática, o que precisamos então é de ter o screen instalado (já vem por omissão no Ubuntu Gutsy 7.10), precisamos também do irssi e do servidor SSH a correr (como já referi, sobre este falarei noutro post).

Depois de tudo instalado fazemos na linha de comandos:

screen irssi


O programa abre e a partir de agora passa a ser possível aceder à sua utilização remotamente, para isso basta fazermos SSH à máquina e depois assim que aparecer a shell, escrever:

screen -x


E agora sim, estão a ver o irssi tal e qual como ele está a correr no vosso servidor, podendo utilizá-lo. Isto tem várias utilidades e uma delas é poderem utilizar o IRC no trabalho ou na faculdade caso o protocolo seja bloqueado :)

Precisam de correr irssi de forma anónima (como já foi falado para o x-chat no post sobre o tor)? O irssi não suporta proxies SOCKS, mas o tor tem uma ferramenta que resolve o problema:

screen torify irssi


O torify é um simples wrapper que faz com que as comunicações do irssi passem pelo proxy anónimo do tor.

Have "phun"!

sábado, janeiro 26, 2008

Arte para geeks


Este profile do flickr dedica-se a fazer montagens de obras de arte mundialmente conhecidas de modo que sejam facilmente compreendida pelos geeks.
Algumas delas estão hilariantes e até mesmo compreensíveis por non-geeks.

Aqui fica o link para a galeria:
- http://smallr.net/artforgeeks

sexta-feira, janeiro 25, 2008

Ficheiros .dmg que não ejectam no OS X Leopard

Não conseguem ejectar um ficheiro .dmg no Leopard por muito que tentem? Este é um dos muitos bugs do Leopard, e niguém sabe como nem porquê, mas este bug só acontece uma vez e depois desaparece por completo... pelo menos até agora.
Se por muito que cliquem no eject para desmontar um .dmg, ele insiste em ficar no ambiente de trabalho e no Finder basta abrirem um terminal e fazer:

hdiutil detach /Volumes/nome_do_dmg/


E pronto, mais uma vez a linha de comandos resolve :) Assim que tiver tempo vou postar uma "pequena" lista de bugs que tenho encontrado até agora no Mac OS X Leopard (10.5).

Nota: Nalguns casos um reboot também resolve o problema, mas caso não tenham paciência para reboots nem queiram perder muito tempo, a linha de comandos is the way to go!

quarta-feira, janeiro 23, 2008

Gravar CD/DVD na linha de comandos em Linux

Em continuação do post anterior, se quisermos gravar a imagem criada para um CD ou DVD, basta então executar o seguinte comando no terminal:

cdrecord -v -pad speed=1 dev=0,0,0 imagem.iso


Podem omitir o parâmetro dev. Nesse caso é utilizado como destino da gravação o device que estiver na variável ambiente CDR_DEVICE.

segunda-feira, janeiro 21, 2008

Criar e montar ISO's em Linux / Unix

Não esperem que vos vá falar de um programa todo bonitinho clone do Nero que vos faça a papinha toda.
Criar ISO's em Linux é muito mais simples e eficaz utilizando a linha de comandos.

Basta para isso abrir então o dito terminal e utilizar o comando dd. Assim desta forma:

dd if=/dev/dvd of=ficheiro.iso


Mais simples que isto é impossível. O if significa o input file. Em Linux / Unix tudo é considerado um ficheiro, incluindo um cd-rom ou uma impressora. Por isso no parâmetro if é só por o que desejam copiar. O of significa output file ou seja, será a imagem criada do input file. O /dev/dvd é o caminho para o ficheiro que representa a drive de DVD's, isto é se tiverem uma instalada. Poderão também usar /dev/cdrom ou /dev/sda1 (disco), podem ser inúmeras opções.
Com esta simplicidade é possível fazer backups de discos inteiros utilizando este comando.

De seguida podem fazer o mount dessa ISO como se de um CD se tratasse, sem precisarem de gastar um CD. Basta para isso fazer:

mount -o loop -t iso9660 ficheiro.iso /pasta_do_mount


É preciso ter em atenção que a pasta onde vão fazer o mount da ISO tem de existir, caso contrário o comando não funcionará.

sábado, janeiro 19, 2008

Nova aquisição - Macbook Black


Foi desta que fiz o upgrade ao meu iBook G4, que apesar de não ser muito velho (2 anos) já estava a precisar de reforma. Colocar mais memória era uma boa hipótese, mas dada a dificuldade para encontrar memória para um Mac com PowerPC (processador IBM), os seus preços absurdos e também o facto de os novos Macbooks serem máquinas com bons processadores e bastante atraentes, não hesitei muito na altura de comprar.

Depois veio a parte difícil. Escolher a cor do Macbook. Passado muito tempo a decidir e com algum incentivo da minha menina, acabei por escolher a versão em preto, pois já estava farto do branco ao fim de 2 anos a usar o iBook. A diferença de preços só pela cor não se justifica (a versão em preto tem mais 40Gb de disco), mas para a Apple a tinta preta paga-se mais caro :P


Falando da máquina, é bastante boa, o processador core 2 duo 2.2Ghz deixa os G4 a comer pó e 1Gb de ram para já é mais que suficiente para o Leopard deslizar à vontade, mesmo cedendo 144Mb para a gráfica (partilhada). No entanto acho que a Apple podia muito bem deixar de ser "comilona" e colocar os 2Gb por defeito.



Este post já foi escrito no novo brinquedo, e ainda estou em processo de descoberta do Leopard (aquela menu bar transparente... sucks!) e nos próximos dias vai ser para reposição do software que já tinha no iBook.

Nota: curiosamente fiquei a saber que sem o Quicksilver fico um pouco à nora em Mac OS, logo foi a primeira app a ser instalada :)

Mais fotos no meu Flickr: http://flickr.com/photos/rogeriopvl/