setembro 12, 2012

Primeiro teste...

Como primeiro teste com o android estou fazendo este post do app do blogger para android. Este aplicativo pode ser baixado pela google play.
Aproveito aqui para relatar um teste, acessei a google play do pc, naveguei até a página do aplicativo, como eu já havia instalado outros e já estava com minha conta aberta, apareceu uma mensagem de que o software era compatível com o meu celular e um botão para instalar.
Pensei, por que não tentar? Clique  no botão, e como o cel estava conectado na internet o aplicativo logo começou a ser baixado e instalado, e cá estou utilizando.

Android... Ah o android!

Me rendi ao android, ainda não aposentei definitivamente o meu N900, na verdade quero utilizá-lo para algum desenvolvimento mais perto do hardware, tentarei fazer alguma comunicação com um algum microcontrolador, mas relatarei as tentativas.

Agora com um dispositivo android na mão tentarei desenvolver alguns aplicativos para ele, os próximos post devem ser relacionados a isto.

Ainda não terminei de escrever os posts sobre postfix, mas ficarão para depois na fila.

Criando e aplicando um Patch no svn

Algumas vezes há a necessidade de enviar as modificações do nosso código para outro lugar, para isto pode-se utilizar um patch do svn, caso nosso código esteja sobre este controle de versão.
Um patch nada mais é que um arquivo texto contendo todas as alterações , como por exemplo linhas adicionadas ou removidas. Este patch pode ser relacionado a um ou mais arquivos, em em diferentes pastas, desde que estejam no mesmo checkout do svn.

Criando um Path
Para criar um arquivo path, deve-se ir até a pasta raiz do checkout, onde encontram-se as modificações, e executar o comando abaixo:

svn diff > ~/patch_my_project.diff

Um arquivo com a extensão diff será gerado. Esta extensão é reconhecida por muitos editores de texto e também pela versão gráfica para windows do svn, o tortoise.

Aplicando um patch
Antes de se aplicar um patch, deve-se abrir em um editor de textos e ler as modificações existentes, para que se tenha certeza do que estará sendo aplicado. Após aplicar o patch, as modificações devem ser testadas e verificadas novamente antes de um commit ser realizado.
Para aplicar o patch utilizamos o comando abaixo, novamente na pasta raiz do checkout.

patch -p0 -i ~/patch_my_project.diff

A opção -p0 garante que todos os arquivos sejam achados corretamente. A opção -i informa que o parâmetro a seguir será utilizado como entrada para o patch.

Para aplicar pelo tortoise, de dentro da pasta raiz do checkout  acessa-se o menu de contexto "TortoiseSVN", e em seguida o menu "Apply patch...", uma tela onde as diferenças serão mostradas é aberta, além de uma caixa de diálogo para se escolher o arquivo de diferença. Após o arquivo ser escolhido, uma lista dos arquivos contidos no patch será mostrada, onde pode-se escolher o arquivo para verificar as modificações, além de aplicar o patch.

Após este comando a aplicação pode ser compilada, testada e então o commit pode ser realizado.

setembro 05, 2012

Instalando Python e PyQT no Windows

Em alguns passos será demonstrado como instalar, criar e rodar um simples programa em PyQT.

Primeiro é necessário instalar o Python, utilizaremos a versão 2.7.3:
1 - Vá em python.org/download e faça o download do instalador para windows (Python 2.7.3 Windows Installer);
2 -  Rode o instalador e siga as instruções em tela.

Após a instalação do Python, é necessária a instalação do PyQT, utilizaremos a versão 4.9.4:
1 - Vá em riverbankcomputing.co.uk/software/pyqt/download e faça o download do arquivo PyQt-Py2.7-x86-gpl-4.9.4-1.exe;
2 - Rode o instalador e siga as instruções em tela. (A instalação deve ser feita no mesmo diretório em que o Python foi instalado).

 Com estes dois aplicativos instalados, o ambiente para desenvolvimento com PyQT já está pronto, para criar uma aplicação deve-se acessar o menu "Iniciar" >> "Todos os programas" >> "Python 2.7" >> "IDLE (Python GUI)".
Nesta tela serão exibidas algumas informações referentes ao script que será criado.
Acesse o menu "File" e em seguida "New Window", digite o seguinte código e para rodar aperte F5, uma janela simples com um botão deve aparecer.

import sys
from PyQt4.QtGui import *
app = QApplication(sys.argv)
button = QPushButton("Hello World", None)
button.show()
app.exec_()

A partir deste momento já há uma aplicação em PyQT rodando na sua máquina.

agosto 09, 2012

Redirecionando a saída do console para arquivo

As vezes a saída de texto de algum programa é grande de mais, e precisamos analisar o início, a melhor maneira seria se tivéssemos esta saída em um arquivo.
Existem 3 tipos de streams de dados

STDIN
  • Entrada padrão de dados
STDOUT
  • Saída padrão de dados
STDERR
  • Saída padrão de erro

Os programas podem receber dados do STDIN através do pipe ( comando | segundo_comando) ou através de um direcionamento de conteúdo de um arquivo (comando < arquivo.log).
Geralmente a saída dos programas é direcionada para o STDOUT, e a saída de erro para o STDERR. Estas duas saídas mostram no mesmo local (tela), porém são direcionadas por canais diferentes, e portanto se utilizarmos o pipe para direcionar esta saída para outro programa, ou então para um arquivo utilizando ">", somente a saída STDOUT será redirecionada, e a STDERR será apresentada na tela.
Esta maneira é boa caso a necessidade de log se baseie somente na saída padrão. Para adicionar a saída de erro para o arquivo podemos utilizar os seguintes comandos:

comando < arquivo.log Redireciona do arquivo para STDIN
comando > arquivo.log Redireciona STDOUT para arquivo
comando 2>&1 Redireciona STDERR para STDOUT
comando 2>&1 > arquivo.log Redireciona STDERR para STDOUT e depois para arquivo
comando &> arquivo.log Redireciona STDOUT e STDERR direto para arquivo

julho 10, 2012

Adicionando um botão reboot

As vezes precisamos dar um reboot no celular, e não queremos desligar e depois ter que ligar novamente, não queremos também entrar no console em modo root e digitar reboot.
O N900 já possui um botão de reboot implementado, mas por razões obscuras ele está escondido da UI.
Tudo o que precisamos fazer é editar o arquivo de configuração da ui do sistema para mostrar o botão.
Primeiro temos que ganhar permissão de root, e então vamos criar um arquivo de backup, e então editar o arquivo:
sudo gainroot
cp /etc/systemui/systemui.xml /etc/systemui/systemui.xml.bak
vi /etc/systemui/systemui.xml
Vamos até a linha onde tem o comentário "<!--" antes de "<menuitem>", apagamos este comentário, e inserimos ele após a linha "</menuitem>".
Este pedaço do arquivo deve ficar assim:
<menuitem priority="20" name="Reboot">
<return>6</return>
<po>osso-powerup-shutdown</po>
</menuitem>
<!--
<menuitem priority="10" name="Soft poweroff">
Saímos salvando (:wq ou :x) o arquivo, e após um reboot, o botão estará visível.

março 12, 2012

Criando uma máquina Debian e configurando o postfix - Página 2 de ?

Vamos agora configurar o sistema de atualização e instalação do debian. Tudo que precisamos fazer, podemos fazer por linha de comando através do comando apt-get. Para isso temos que indicar ao programa onde ele deve procurar os pacotes de instalação, portanto editamos o arquivo em /etc/apt/sources.list adicionando algumas entradas de repositorios e comentando a entrada do CD/DVD com #
# deb cdrom:[Debian GNU/Linux 6.0.2.1 _Squeeze_ - Official i386 DVD Binary-1 20110626-15:45]/ squeeze contrib main

deb http://ftp.br.debian.org/debian/ squeeze main non-free contrib
deb-src http://ftp.br.debian.org/ squeeze main

deb http://security.debian.org/ squeeze/updates main non-free contrib
deb-src http://security.debian.org/ squeeze/updates main

deb http://backports.debian.org/debian-backports squeeze-backports main
Agora devemos atualizar a lista de fontes com
apt-get update

Como o sistema operacional acabou de ser instalado, possivelmente existam alguns upgrades para o sistema, para instalarmos, utilizamos
apt-get upgrade

Estas instalações podem demorar, mas devemos instalar, pois alem de aplicativos mais atualizados, existem também atualizações de segurança. Após as atualizações serem instaladas, vamos fazer um reboot no sistema. Quando o servidor é desligado ou reiniciado, a conexão SSH é perdida, portanto devemos fechar ela um pouco antes da conexão ser perdida para que ela nao fique pendurada. Fazemos isso com os dois comandos um em seguida do outro.
reboot
exit
Esperamos em torno de 3 minutos e iniciamos novamente a conexão através do PuTTY.

Nosso servidor não vai ser utilizado para compartilhamento de diretórios, por isso vamos eliminar dois pacotes por motivo de segurança.
apt-get remove nfs-common portmap

Na página anterior ajustamos a data e hora, mas estes dados podem ser desincronizados com o tempo, para impedir isto, vamos atualizalos uma vez por dia, para tanto precisamos criar uma tarefa no cron, que é um agendador de tarefas.
Com o comando a seguir, vamos abrir o VIM para inserir algumas informações sobre a tarefa.
contrab -e
Na primeira linha livre colocamos o seguinte, lembrando que podemos utilizar "o" para entrar no modo edição pulando para a próxima linha dentro do VIM.
11 22 * * * /etc/init.d/hwclock.sh reload >/dev/null
Esta linha indica que todos os dias as 11 Horas e 22 minutos o script /etc/init.d/hwclock.sh reload será executado. Para modificarmos o horário da tarefa, podemos trocar o 11 por qualquer número entre 0 e 59, e o 22 por qualquer número entre 0 e 23.

março 08, 2012

Criando uma máquina Debian e configurando o postfix - Página 1 de ?

Vou postar algumas páginas com os passos para criar um servidor Debian, versão 6, configurar vários pontos, e fazer uso do postfix.

Depois de instalar o sistema operacional (o google pode te mostrar como fazer isso melhor que eu), começamos a instalar alguns programas para começar a preparação do ambiente. Como root execute o comando abaixo para instalar. Caso seja pedido para inserir o CD/DVD de instalação, insira o mesmo e tire depois da instalação.
apt-get install rdate ssh vim

Vamos instalar o SSH no início para que possamos fazer as configurações de uma máquina remota, sendo via linux por ssh propriamente dito, ou por uma máquina windows através do putty, que é minha escolha para este tutorial.
Ainda no debian, rode o comando ifconfig e anote o IP do servidor.
ifconfig
A partir deste ponto, podemos deixar a máquina do servidor de lado e nos concentrar somente na máquina remota.
Abra o putty, coloque o IP anotado no campo Host name (or IP address), mantenha a porta 22, confira se o campo SSH está selecionado em Connection type e dê um nome de conexão no campo Saved Sessions.
Agora clique no menu lateral em Terminal/Features e marque a opção Disable application keypad mode, para quando utilizarmos o VI, aceite as teclas do teclado numérico como números e não como comandos (PgUp, PgDn...). Ainda no menu lateral escolha Window e mude o campo lines of scrollback de 200 para 1000, com isto ganhamos muito espaço na tela para rever o que foi feito ou o resultado de algum comando.
Finalmente volte a tela inicial (Session) e clique em save.
Temos agora uma conexão configurada e para acessá-la, precisamos somente dar dois cliques no nome que demos. Para sair do putty, devemos fechar todos os programas que abrimos, e dar o comando logout ou Ctrl+D.

Acessamos agora o servidor clicando duas vezes na sessão salva no putty, ele agora vai pedir login e senha, vamos entrar como root.

Vamos acertar o horário do servidor, para isto utilizamos os comandos a seguir
/etc/init.d/hwclock.sh reload
rdate -ncv clock.fmt.he.net
rdate -ncv ntp1.tummy.com
/etc/init.d/hwclock.sh reload

Em seguida vamos configurar o charset da máquina.
dpkg-reconfigure locales
Para navegar nesta tela utilizamos as teclas [PgUp] [PgDn] [seta-subir] [seta-descer] [tab] e para selecionar a tecla [barra de espaço].
A instalação padrão deve ter selecionado pt_BR UTF8, vamos adicionar pt_BR ISO-8859-1 e selecioná-lo como default.

Como visto na linha de instalação que utilizamos logo após subir o sistema, instalamos o editor de textos VIM.
Sugiro novamente o google para alguma dúvida com relação aos comandos, mas os principais:
i - para entrar no modo edição
[Esc] - Para sair de qualquer modo
:w - Para salvar
:q - Para sair do editor
:wq - Para salvar e sair (igual :x)
:q! - Para sair sem salvar
/[algumacoisa] - Para procurar o "algumacoisa"
n - Para o proximo resultado da busca

Vamos então alterar o editor padrão do debian, que é o nano, para o VIM.
vim /root/.profile
Após a linha "fi" vamos inserir a seguinte linha:
export EDITOR=/usr/bin/vim.basic
Saia salvando (:wq ou :x).

janeiro 27, 2012

Reinstalação de aplicativos

Optei por não fazer backup da lista de aplicativos instalados, para reinstalar somente aqueles que realmente sejam interessantes.

Primeiramente verificamos se há atualização do maemo, e caso haja, instalamos a mesma.
Em seguida instalamos o aplicativo rootsh pelo gerenciador de aplicativos. Este app serve para liberar o comando sudo no console, com ele instalado podemos entrar com o comando apt-get seguido da lista de aplicativos a serem instalados.

Abaixo temos uma lista de aplicativos com sua funcionalidade e o nome do pacote a ser instalado:

AplicativoNome pacoteDescrição
App Search Widget app-search-widget Buscador de aplicativos para acesso rápido
Battery Widget battery Widget ajustável que mostra o nivel de bateria
Battery Eye battery-eye Ferramenta gráfica de consumo da bateria com estatísticas
Battery Graph batterygraph Outra ferramenta gráfica de consumo da bateria
Camera Lens Launcher cl-launcher Habilita escolher qual aplicação executar ao abrir a lente da câmera
D-Theme BlackAndRed d-theme-blackandred Tema para desktop
Extend Contacts search feature extended-contacts-search Adiciona funcionalidades para o algoritmo de busca na lista de contatos
Fcamera fcamera Aplicativo para tirar fotos RAW com controles manuais
Faster Application Manager fapman Um gerenciador de aplicações mais rápido e melhorado
File Transfers monorail Envia arquivos para os contatos
Flashlight flashlight-applet Utiliza o flash como lanterna
ForecaWeather widget Utilizar o instalador já disponível Previsões meteorológicas no desktop
Fuelpad fuelpad Histórico de consumo de combustível
HDR capture hdrcapture Captura fotos em HDR
Load Applet load-applet Mostra uso de CPU e memória, tira screenshotse e grava screencasts
Maetronome maetronome Metronomo
N900-i18n-pt-br n900-i18n-pt-br Tradução pra português brasileiro
Nelisquare nelisquare Foursquare para N900
OpenSSH Openssh SSH client e server
SSH Status and Switcher ssh-status Permite habilitar e desabilitar o SSH facilmente
Personal Dataplan Monitor personal-gprs-mon Mostra o uso de dados GPRS no desktop
Personal IP Address personal-ip-address Mostra o endereço IP no desktop
SeriesFinale seriesfinale Gerenciador de episódios de séries
Simple Brightness Applet simple-brightness-applet Controlador de brilho da tela
Sociality sociality Cliente para Facebook
Storage Usage storageusage Mostra o uso do disco
Ttf-nokiapure ttf-nokiapure Nova fonte da Nokia
Tweakr tweakr Controle para ajustes finos em configurações
uRemote uremote Cliente remoto para µTorrent
Vim vim VIM Console editor


Alguns outros ainda interessantes:

CSSU features
callbloker
catorise
catorise gui
community ssu enabler
EasyList
Extend call log
Extra protocol plugins for conversation and contacts
FM Radio Player
FileBox
FreOffice
LedPatternEditor
MSN protocol plugin for Conversations and Contacts
mp-fremantle-community-pr
Ogg Support
Panorama
People Nearby plugin for Conversation and Contacts
Pidgin Extra Protocols
Pidgin protocols plugin
QCPUFreq
PyQT4 Full Install
Theme Customizer

janeiro 25, 2012

Utilizando o Flasher

Deve-se fazer o download do programa através deste link, aceite a licença e escolha o sistema operacional que será utilizado. (Este post será focado em Windows XP 32 bits)

Deve-se também fazer o download do firmware em si através deste link. Para acessar a lista de downloads, é necessário entrar com o IMEI do aparelho (pode ser visto atrás do aparelho em baixo da bateria, ou então pelo menu "Settings" na opção "About product").
Na lista de downloads deve-se escolher o firmware que se aplica ao celular.
No caso tem-se um celular vindo dos EUA, com PR 1.3, portanto foi escolhido o seguinte firmware:
RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin
PR 1.3 version 20.2010.36-2
Latest Maemo 5 USA release for Nokia N900
Salva-se este arquivo na mesma pasta de instalação do flasher por comodidade, que no caso é:
C:\Arquivos de programas\maemo\flasher-3.5

Como se trata de um download relativamente grande, deve-se validar o mesmo. É comum em sites de distribuições linux e firmwares disponibilizares o checksum do arquivo. Neste caso este arquivo é o MD5SUM, que contém o MD5 de todos os firmwares do site. Para validar, gera-se o MD5 do download realizado e compara-se com o correspondente ao firmware que está dentro do arquivo. Tem-se certeza de que o download não foi corrompido quando o resultado do arquivo de download bate com o valor do arquivo disponibilizado, pois um único bit diferente modifica o resultado.
Para gerar o MD5, utiliza-se o programa MD5sum através do comando:
md5sum RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin
Se os valores não baterem, deve-se fazer novamente o download, pois ele está corrompido.

Com todos estes passos prontos, podemos iniciar a instalação do firmware no aparelho.

Abre-se o prompt do DOS (menu iniciar -> executar -> cmd) e se dirige ao diretório de instalação do flasher(o arquivo do firmware deve ter sido copiado para este diretório):
cd "C:\Arquivos de programas\maemo\flasher-3.5"
Digita-se o comando a seguir para iniciar a instalação (mantendo as letras maiúsculas e minúsculas como descrito):
flasher-3.5.exe -F RX-51_2009SE_20.2010.36-2.002_PR_COMBINED_002_ARM.bin -f -R

Após algum tempo a mensagem a seguir aparecerá, informando que não foi informado um equipamento USB correspondente, e ficará aguardando.
Suitable USB device not found, waiting.
Conecta-se agora o cabo USB somente no computador. Deve-se então desligar o N900, abrir o teclado, apertar a tecla "U" e sem soltá-la ligar o cabo USB no aparelho. (Não deve-se ligar o aparelho)

Uma imagem aparecerá e permanecerá na tela, deve-se notar o símbolo de conexão USB no canto superior direito, caso este símbolo esteja lá, pode-se soltar a tecla, caso contrário, deve-se retirar o cabo USB e começar o processo novamente.

Neste momento o firmware está sendo transferido para o celular, assim que o processo terminar, ele será reiniciado sozinho, e, se o processo tiver sido executado com sucesso, após algum tempo as opções para as configurações iniciais do celular serão mostradas.


Pronto, tem-se um celular como saído de fabrica!
Este procedimento também é eficiente caso o N900 esteja com problemas.

Agora deve-se copiar novamente para o celular os arquivos de backup e restaurar o mesmo.

Backup do N900

Antes de fazer o reflash do N900, um backup dos dados do celular deve ser feito.
Através do menu principal seleciona-se a ferramenta "backup", dentro dela "New backup", neste ponto é indicado o nome para o backup, e em seguida pode-se selecionar as opções que serão incluidas no backup, como calendário, lista de aplicações, etc. Pode-se também proteger o mesmo com senha.

Após alguns momentos, o backup estará pronto, e poderá ser acessado via usb na pasta backup. O backup em si é criado como uma pasta com o nome que foi indicado acima, com vários arquivos compactados dentro. Deve-se salvar a pasta toda.

Alguns softwares não terão seus dados salvos no backup, como o seriesfinale, para estes casos devemos copiar os arquivos necessários através do "X Terminal" com o comando de cópia do linux.
Aqui por exemplo fizemos a cópia do banco de dados do seriesfinale e fuelpad:
cp /home/user/.osso/seriesfinale/series.db MyDocs
cp /home/user/fuelpad.db MyDocs

Caso tenha sido criado algum arquivo via console, devemos copiá-lo também para que não seja perdido posteriormente.

Com todos os arquivos copiados para a pasta MyDocs, conectamos o celular à usb no modo armazenamento de massa, e copiamos os arquivos para o PC.

janeiro 19, 2012

Um ano depois

Hoje faz exatamente um ano que não posto nada neste blog.
Pelo visto o mote do blog não deu certo, a preguiça ganhou de mim.
Estou agora juntando informações para fazer o reflash do meu N900.
Algumas coisas pararam de funcionar nele sem explicação, como o bluetooth. Eu já devia ter feito esse reflash a muito tempo, mas... a preguiça, sempre ela, ganhou.