Skip to content

Cedilha no Ubuntu em Inglês

19-May-07

Dica antiga mas vai lá….

Para aqueles que como eu, utilizam o Ubuntu em inglês, e estavam tendo problemas com a Cedilha, existem duas soluções práticas:

Primeiro: Apertar ALT + , e depois apertar a tecla c

Pessoalmente, eu acho isso muito um pouco prático.

Outra solução que encontrei na internet foi a de editar um arquivo de configuração GTK. Pode ser feito executando o seguinte comando:

sudo sed -i 's/^\("cedilla.*locale"\) "\(.*\)"/\1 "\2:en"/g' /etc/gtk-2.0/gtk.immodules

Complicado? Não é… Basta procurar a classe Cedilla e adicionar o :en no final… =)

[]’s

ps.: Antes de tentarem isto, façam backup do gtk.immodules

Porque leio blogs?

15-May-07

Certa vez fui flagrado na faculdade lendo um post de um blog cujo feed que assino e ouvi o seguinte comentário: “Você lê blogs? Gosta de ler sobre probleminhas adolescentes?

Achei engraçado o comentário pois algumas pessoas não conseguem diferenciar os blogs técnicos; Logo vou postar aqui a lista dos “blogs adolescentes” que costumo ler:

Br-linux.org – Creio que todo nerd linux deva ler o Br-linux, não precisa falar muito sobre ele.

Planeta Gnu-linux Brasil – Muita gente está inscrita no planeta gnu-linux brasil. Geralmente tem uns posts interessantes por lá. De cabeça posso citar hamacker, TuxVermelho, Cesar Cardoso, Vinícius Depizzol, Verde, entre vários outros

Planeta Ubuntu Brasil – Contém vários dos blogs acima, além de alguns outros. A diferença deste planetário para o anterior, é que aqui o conteúdo é mais técnico e voltado ao Ubuntu, a distribuição que adotei a um tempo atrás.

Pythonologia – Excelentes comentários sobre Python feitos por Osvaldo Santana. Figura simpática a quem tive o prazer de conhecer durante o BossaConference.

Codare – Várias pessoas postam aqui. O conteúdo varia entre várias linguagens de programação. Geralmente dicas rápidas e muito práticas.

Marcelo e Lauro Moura – Estes dois caras ai do lado são estudantes da Ufpe e estagiários no INdT. Os textos do Marcelo sobre GTK e do Lauro sobre DBus são excelentes. Por sinal, o Marcelo escreveu, com a ajuda do Lauro, um how-to de GTK+ muito bom.

Eduardo Habkost – Conheci esta figura no curto período em que trabalhei na mandriva conectiva. O trabalho dele é fantástico. Atualmente trocou de chapéu

PlanetaPythonBrasil – Este estou assinando a bem pouco tempo, não preciso nem dizer do que se trata né?!

Garotasemfio – Beatriz Kunze é bastante conhecida e reconhecida quando o assunto é mobilidade. Apesar de não trabalhar desenvolvendo tecnologia, ela está sempre antenada com o que rola de novo por ai. Não é sem motivos que ficou entre os blogs mais lidos do concurso no Br-Linux.

Arthur Furlan – Esse cara trabalhou comigo na Mandriva e atualmente na MPS. De vez enquando discutimos coisas interessantes.

Daniele Silva, webdesigner com um portfolio excelente e dicas de design. Um dia deixo meu layout bonito como o dela. =)
Vale a assinatura.

FechaTag – Desenvolvimento web, Django, Ubuntu, entre várias outros temas. Tivemos uma discussão interessante há um tempo atrás…

Outros sites que visito constantemente

MeioBit – Não assino o feed deles, mas sempre entro lá. Sempre tem uns posts bacanas sobre tecnologia.

CC.net – Inclui os dois blogs do Cardoso. Ele nem sempre/quase nunca fala de coisas técnicas aqui, mas é bom pra descontrair.

Planet.maemo.org, Planet.gnome.org – Conteúdo sobre Maemo e Gnome, respectivamente.

É isso. Espero não ter esquecido ninguém. Caso aconteça, eu atualizo aqui depois.

E você? quais os feeds que mais costuma ler?

Windows? Nem de graça….

14-May-07

O que causou muito fusuê no último dia foi o comentário feito pelo Sr. José Luiz de Aquino, da assessoria especial da Presidência em relação ao Windows nos programas de inclusão digital: “Vieram aqui e chegaram a oferecer o Windows até de graça. Mas essa possibilidade não existe. Só usaremos software livre.

Geralmente não entro nestas brigas de SoftwareLivre, mas depois de ler algumas críticas tive que comentar.

Óbvio que a medida foi dramática, mas o governo brasileiro não é o primeiro a adota-la. E não é incentivo ao Linux; É incentivo ao não-monopólio. E se hoje o mercado de trabalho é apenas “10% linux”, é porque não foram tomadas medidas como estas antes, pois a MS era a única opção. Hoje não é mais.

O governo escolheu a opção mais barata a curto, médio e longo prazo. Treinar os jovens em linux ao invés de windows, significa uma redução de custos enorme daqui a 10 anos, pois a aceitação de mercado será muito maior, e o número de profissionais qualificados também.

O problema todo é que a MS dá windows de graça em projetos sociais, mas ela não dá o windows de graça para as empresas (ou governo) que irão contratar essa galera. E isso vai sai caro. Muito caro.

Creio que não foi uma decisão ideológica, mas sim estratégica.

Espero que tenha passado minha opinião.

Update

Vejo os comentários da galera em outros Blogs falando sobre “essa tal liberdade”. Vamos por no papel: Windows e Linux de graça. O governo teve a liberdade de escolher entre um e outro. E optou por Linux. Por que é o mais conveniente. Acho que o público deve entender que financiamento do governo não é caridade. O governo espera alguma coisa com isso. Quer ver resultado, quer ver crescimento. E infelizmente não é possível conseguir crescer tecnologicamente pagando 600 reais por cada licença do Sistema Operacional, mais 1200 no pacote Office.

De que adianta Windows de graça em computadores baratos para não ter praticamente nenhum retorno depois?

Acho que a questão é esta. A liberdade não foi comprometida. A liberdade está ali, na escolha do governo, por linux! 

Permissões em partições SSHFS

12-May-07

Há muito tempo atrás fiz um POST aqui explicando sobre como montar uma partição por SSH. Depois deste tempo, descobri algumas coisas a mais. A minha motivação foi que ao tentar montar a partição / do meu N800, eu conseguia ler/escrever em arquivos sem problema, mas dentro do GEDIT isto não era possível, visto que dava sempre um erro de permissão.

Pois bem, dei um ls -la na pasta, e vi que os arquivos não pertenciam a mim, e sim ao root do N800. Então é óbvio que eu não conseguiria salvar. A solução foi passar um uid para o sshfs; o meu, é óbvio =)

sshfs root@192.168.0.15:/ N800 -o idmap=user -o uid=`id -u`

E resolvido o problema! Agora o GEDIT irá editar e salvar os arquivos numa boa.

Uma solução também seria usar o umask=000, mas esta não me agrada muito.

Analisando ações da Bovespa no Linux com QtStalker

28-Apr-07

Creio que muitos dos leitores aqui tenham interesse em Mercado de Ações. Com certeza, muitos compram e vendem ações, e uma pequena porcentagem destes deve fazer análise técnica antes de opera-las

Como este é um assunto que me interessa bastante, estava à procura de um software que me ajudasse na construção dos gráficos. E encontrei o QtStalker.

Instalação

A instalação do software é feita, nas distribuições debian’s like, da seguinte forma:

sudo apt-get install qtstalker

Ou se preferir, pode puxar a última versão aqui.

Primeira impressões do Software

O programa pare ser em si bastante completo.

ScreenShot QtStalker

Não chega a ser um home broker profissional, mas para o pequeno e médio investidor, creio que está ótimo.

Potêncial do Programa: No que ele me ajuda?

O QtStalker possui uma série de opções afim de ajudar o investidor no controle de suas ações. Além do software fazer a sincronização online dos dados das ações (valor de abertura, fechamento, volume, máximo, mínimo, entre outros), ele mostra sempre o gráfico histórico de preços das ações. As opções mais interessantes de gráfico são:

  1. Gráfico de Linhas
  2. Gráfico de Barras
  3. Candle Stick

CandleStick

(gráfico CandleStick e outras opções)

A sincronização dos valores das ações pode ser feito de várias formas, mas no caso da Bovespa (Bolsa de São Paulo) precisamos usar a API do Yahoo (A única forma que encontrei foi esta). O que acarreta em um atraso de 15 minutos na atualização. Mas para quem não faz DayTrade, creio que não seja muito.

Outra ferramenta bastante interessante do QtStalker é o BackTester:

Com esta ferramenta é possível criar regras de negócio para compra e venda de ações baseada nos sinais dos indicadores (Veremos o que são indicadores em breve). Após criar estas regras, você pode fazer simulações do tipo “E se X acontecer?” Ai o sistema vai te retornar informações sobre este cenário e como suas regras sairíam.

Bovespa: E como analizar as ações na bovespa com o QtStalker?

Eu me bati um pouco para descobrir como fazer isto, até que através de um link no google descobri como fazer: Basta por .SA no fim do nome da ação. Então vamos lá!

Primeiramente vá no meu Tools/Quotes

Selecione como Quote Plugins o Yahoo e clique no ícone de configurações ao lado.

Atualizando para Bovespa

Clique em New Symbol, e adicione as ações que você deseja observar. Lembre-se de que elas devem estar separadas por espaço, e ao fim delas deve conter o símbolo “.SA”. Por exemplo, se você deseja observar os valores da VALE e da Petrobrás, adicione a seguinte string: VALE3.SA PETR4.SA
Selecione também o method “Auto-History”, e dê um OK.

Clique agora em Update!

Você deverá receber uma confirmação da seguinte forma:

Quotes-Confirmação

Se tudo correu bem, suas ações deverão estar listadas à direita.

Adicionando Indicadores.

Não vou aqui dar um curso sobre bolsa de valores nem sobre indicadores. Mas vou explicar resumidamente que indicadores são fórmulas calculadas para tentar descobrir a tendência do movimento de uma ação. Cada trader usa os indicadores que mais lhe agradam. Os indicadores que eu costumo usar são:

  1. Force Index
  2. MACD
  3. Médias Móveis
  4. OBV
  5. Estocástico
  6. Suporte/Resistência

Todos estes indicadores podem ser retornados de forma fácil pelo QtStalker. Apenas o suporte e resistência que não tem, mas de qualquer forma prefiro calcular eu mesmo. Abaixo segue uma ScreenShot do gráfico MACD da Saraiva:

MACD-Saraiva

O QtStalker possui uma série muito grande de indicadores. A lista completa pode ser encontrada aqui.

Considerações Finais.

Bom, nem tudo é perfeito né.

O primeiro problema é que é necessário que os valores sejam pegos do site do yahoo. O fato do download não ser feito diretamente da Bovespa me incomoda um pouco pois os valores podem ser manipulados.

O programa é feito em QT e se encontra em sua versão 0.33, mas o desenvolvedor está meio sem tempo para continuar contribuindo. Procurei alguma coisa feita em GTK+ (com python tudo seria muito mais portável), mas infelizmente não encontrei nenhuma… =(

Mas mesmo com todos estes problemas, creio que é um exelente programa. Estou com eles a alguns dias, e estou bastante contente com os resultados.

Segue abaixo alguns links que acho importante para quem deseja conhecer mais sobre análise técnica ou o QTStalker.

  1. Folhainvest em Ação
  2. InfoMoney
  3. Curso de Introducao ao Investimento na Bovespa
  4. Tutorial do QtStalker
  5. Aprendendo com gráficos
  6. Nelogica – Tecnologia e Informação para o Mercado Financeiro

Estes 2 últimos muito bons para quem está iniciando.

É isso ai! Aguardo comentários!

[]’s, bons negócios e um bom Feriado!

Notebook e Gnome, está tendo problemas com som?

22-Apr-07

Este é apenas um POST rápido sobre um pequeno problema que eu estava tendo com o Gnome.

Em meu HP Pavillon DV4000, o Ubuntu (tanto o 6.XX como o 7.04) funcionava corretamente. Mas eu estava enfrentando alguns problemas com o controle de volume. O problema era o seguinte:

– Quando aumentava o volume pelos botões multimedia ou pelo controle remoto, tudo funcionava perfeitamente. Mas não funcionava quando eu estava ligado a uma caixa de som ou um fone de ouvido. Isto acontecia porque a faixa “mestre” não controla (ou não tem efeito) sobre a faixa headphone como podem ver na imagem abaixo:

Controlador de som do Gnome

Qual a solução para isto?

No menu Sistema/Preferência/Som é possível escolher qual o dispositivo que será controlado pelo teclado-multimedia/controle remoto. É útil saber que a faixa “PCM” controla tanto o som da saída de fone de ouvido quando do próprio computador. Então é só mudar para PCM que tudo irá funcionar corretamente.

Caixa de preferências de som do Gnome

Você ainda usa a “tabela admin”? Você pode estar correndo riscos…

08-Apr-07

Creio que seja “procedimento padrão” dos programadores PHP, ao desenvolver sistemas de login, criar uma tabela admin com um campo username e outro campo password, e quando o usuário realiza o login, o sistema executa uma query mais ou menos do tipo: $sql = 'SELECT * FROM admin WHERE user=' . $user . ' AND password = "' . $password . '";

Claro, pode haver variações de segurança como “escapestring” e md5 na senha. Mas a idéia é basicamente esta. Vejamos agora porque eu acho este tipo de procedimento inseguro.

1 – Todos os “usuários” do sistema executam com o mesmo usuário no banco de dados. Como o sistema deve ter um “super-usuário” que poderá fazer tudo no sgdb, todos os usuários do sistema poderão fazer tudo. O que quero dizer é que, em qualquer brecha mínima no sistema, um usuário comum (mas mal intencionado) poderá fazer drop em uma tabela inteira.

2 – A senha do usuário do banco de dados deverá ficar em um arquivo .php legível. Há um tempo atrás, eu utilizava um servidorzinho destes de 9,90 por mês para hospedar meu site. Um dia tive a curiosidade de saber o que tinha no /tmp do servidor. Então fiz uma página que recebia uma string, que se esta fosse um arquivo executava um system(“cat $valor”), e se esta fosse um diretório, executava um system(“ls -ls $valor”). O que eu percebi: Todos os usuários do servidor executavam na web com o mesmo usuário (normalmente o www). Logo o www deverá ter permissão para ler todos os arquivos. Então tive a curiosidade de listar o /home. E depois o /etc/.alias do apache. Indo desta forma, consegui observar o arquivo de configuração de banco de dados de um dos usuários. E depois disto, entrar no php MyAdmin.
Com isto, vocês já imaginam o tamanho potencial da catástrofe né?
Deixei este servidor e migrei para a dreamhost pois após enviar um e-mail alertando os administradores do servidor sobre falha, fui respondido com algo como: “Estamos cientes, mas você tem alguma dica de como resolver?”.

Tá tá, realmente a falha 1 pode ser resolvida se você for um programador extremamente observador e não deixar passar absolutamente nada. Sinceramente, acho isto quase impossível. E também se você gostar de re-inventar a roda, re-desenvolvendo todo um sistema de segurança em cima da aplicação, quando poderia ser usado o que “já vem pronto” do banco de dados.

Solução: Por a lógica de segurança em cima do banco de dados. Porquê? Porque ela já está implementada e tende a ser mais segura.

Explicação:

A idéia toda é, ao invés de fazer o “login” usando seleção você atrela o usuário ao banco de dados. Ao invés de “criar um usuário” na tabela admin, você cria um usuário no banco de dados e loga-se com ele. Entendeu?

No PHP ficaria algo assim:

mysql_connect($usuario,$senha,$database);

Após isto, em banco de dados de verdade (digo PostGress, Oracle e afins), basta você gerenciar as permissões (select, insert, drop´s, etc…) dos usuário em tabelas específicas. Por exemplo: Não faz sentido um usuário comum ter acesso à tabela de configuração, ou o mesmo poder dar drop em uma tabela qualquer.

Também utilizar Stored Procedures e Views ajudam bastante. Exige um pouco de conhecimento de DBA, mas deixa sua aplicação mais robusta, além de ser um procedimento muito mais seguro.

Sei que aplicações comerciais de grande porte trabalham desta forma. Mas a grande maioria dos programadores (principalmente web) nunca viram ou trabalharam com este tipo de abordagem. A intenção deste post é apenas dar uma idéia de uma forma diferente, e mais segura, de trabalhar.

Espero que este post incite uma discussão sobre esta e outras abordagem. E você, leitor, como trabalha?

Comentem!

[]’s e Feliz Páscoa.

BossaConference: Como foi

21-Mar-07

Depois de um longo chá de aeroporto em Curitiba e Guarulhos, finalmente cheguei em Recife.
Como o vôo acabou chegando mais cedo, tive que ficar esperar o transfer por mais de uma hora no Aeroporto Internacional de Guararapes (Recife – Pe)

Por sinal, no aeroporto, conheci um funcionário do INdT (Rodrigo?), que me apresentou para a galera nas festas por lá.
Gostei bastante do povo que conheci.

Quanto às palestras, achei algumas muito interessantes, e outras nem tanto. Mas vamos por partes:

As que eu gostei foram

1 – PyS60
Participei da palestra do Jukka sobre o PyS60, mas infelizmente não pude ficar para o Hand’s On.
Conversando com o Jukka Laurila, percebi que o PyS60 está em pleno vapor.
Mas o que eu achei mais legal foi o que ele me contou no ônibus: A Nokia está pagando funcionários para desenvolver exclusivamente SoftwareLivre (no caso do Jukka com o Python).
E agora eu entendi e aceitei os motivos pelos quais eles abandonaram os Symbian 1st Edition.
2 – PyPy
Sempre achei idiota/inútil a idéia de manter um interpretador python escrito em python.
Mas o Santagada me convenceu que não é bem assim. Além de otimizar a linguagem, ele comentou que seria possível, com PyPy, escrever um interpretador javascript em python, e até converter (forçando um pouco a barra) código python em javascript. Isto sim é útil.
Durante a festa da terça-feira, quando já estávamos “altos”, comentamos em fazer a mesma coisa com o projeto BrainFuck, em BrainFuck. Mas alguém já pensou nisto! =).
3 – GStreammer
O Wim mandou muito bem em sua palestra do Gstreammer. Deu pra ter uma noção geral do FrameWork e a que ponto anda o desenvolvimento. Gostei bastante.

Como nem tudo são flores…

OpenC
Fiquei decepcionado com a palestra e com o OpenC em si.
Fiquei decepcionado com a API pois esta só irá rodar nos Symbian 3th Edition.
É uma limitação muito forte. O OpenC no Brasil não terá efeito nenhum, pois o número de celulares assim no Brasil tende a zero.
Mas de qualquer forma a idéia é boa e não tiro o mérito dela! Ter uma API POSIX para celulares é uma coisa muito boa.
Wireless
Como disse o Osvaldo, realmente o Wireless falhou em vários momentos. Foi uma pena. Aqueles que levaram seus notebook’s sentiram-se frustrados em alguns momentos.
Comigo mesmo
Fiz um “fuzuê” danado pra conseguir levar minha camera para Recife, mas apenas no aeroporto de São Paulo, chengando em casa, foi que percebi que não tinha tirado uma única foto… =(

Além das palestras, o evento contou com muita gente bacana. Além dos que eu citei no post anterior, finalmente conheci o Marcelo e o Lauro. Também conversei bastante com o Ulisses do BB Brasília sobre a Mandriva Conectiva. Ele contou-me “causos” muito interessantes sobre ela.

Também vi o tal do OLPC. A idéia é muito boa! A criança que souber aproveitar poderá crescer bastante. Mas infelizmente vivemos em uma realidade aonde nem livro didático sobrevive por muito tempo. Logo eu tenho meus receios.
O Marcelo citou uma frase muito interessante sobre o assunto: “Antes de inclusão Digital, precisamos de inclusão Social!”.

Bom, estão ai meus comentários atrasados sobre o Bossa. O Evento foi muito bom, em um lugar excelente. Fomos muito bem cuidados pelo INdT. Se houver próximas edições, recomendo ir.

BossaConference, ai vou eu!

23-Feb-07

Finalmente tudo certo para a minha participação no BossaConference.

Para quem não sabe, BossaConference é um evento que está sendo promovido pelo Instituto Nokia de Tecnologia, e tratará sobre mobilidade, multimedia e opensource.

Estarão presentes grandes nomes, falando sobre vários assuntos relacionados a mobilidade. Destaque pra Mika Rytkonen do Open C, Jurgen Scheible e Jukka Laurila com Python S60, Marcel Holtmann do Bluez, sem contar a presença de nomes nacionais como Marcelo Eduardo e Osvaldo Santana do Pythonologia.

É isso ae, agora é só esperar dia 12 de março.

Mas e ae? Alguém mais vai?

ps.: O evento será em Porto de Galinhas – PE

IP x CEP, como saber de quem é este IP?

15-Feb-07

Aos administradores de sites: Quantas vezes já não pensamos/precisamos saber em que cidade mora um indivíduo dono de um certo IP?

Eu pessoalmente já precisei desta informação muitas vezes, mas infelizmente nunca encontrei um lugar aonde pudesse fazer esta pesquisa.

Até hoje!

Navegando na internet descobri um site chamado http://www.ipgeo.com.br/, aonde eu dou a ele um endereço IP no Brasil e o sistema retorna pra mim, com uma precisão muito grande, a cidade aonde este indivíduo reside.
Também existe a opção de localizar CEP pelo IP, que é um resultado obtido por aproximação, mas também é muito interessante.

O sistema funciona com endereços IP’s fixos ou dinâmicos. Muito interessante! Vale a pena conferir!

[]’s

Danilo Cesar

Gdesklets, um pouco mais que o basicão

11-Feb-07

Hoje vou apresentar o aplicativo Gdesklets.

Para quem não sabe, este aplicativo permite que o usuário rode pequenas aplicações “applets” diretamente no desktop. Possui por padrão vários applets prontos, como relógios, monitores de desempenho de hardware, previsão do tempo, entre outras coisas. Segue uma screenshot do meu desktop:

Gdesklets Desktop

Tá tá! Você usuário linux mediano provavelmente já saiba disso: Já conhecia o Gdesklets, e muito provavelmente também já usava, certo? Então o que esse post tem de diferente?

Como desenvolver seus próprios Applets

Para iniciar, digo que é muito fácil desenvolver aplicativos para o Gdesklet. Para quem está acostumado com HTML, vai lembrar de alguns conceitos como posicionamento, tags, ID’s, etc…

O que vou passar aqui pra vocês é o que eu aprendi sobre gdesklets nesta semana.

Cada parte do Gdesklets

Cada applet consiste em:

  • Uma janela, definida em um arquivo.display, que é, na verdade, um xml.
  • Um sensor, que é responsável por controlar e retornar dados para o display

Primeiros Passos com o Display

Inicialmente vamos chamar nosso aplicativo de PrimeirosPassos (Sugestivo não?)
Crie uma pasta com ~/mkdir .gdesklets/Displays/PrimeirosPassos

Dentro desta pasta, crie um arquivo chamado PrimeirosPassos.display com o seguinte conteúdo


< ?xml version="1.0" encoding="UTF-8" ?>


E esta aí a estrutura básica de um Display no Gdesklets. Resumidamente, tudo o que você quiser colocar na sua tela você deverá colocar dentro da Tag display

Para incrementar um pouco mais, vamos fazer o clássico HelloWorld

< ?xml version="1.0" encoding="UTF-8"?>


Aprendemos então uma nova Tag no Desklet: A Tag Label, que possui as seguintes propriedades:

color, Permite escolher a cor

font, Permite escolher a fonte

value, Define o conteúdo que o label terá na tela.

Agora vamos ver como o Desklet aparece na tela.
Ola mundo em gdesklets

Agrupamentos

Na estrutura XML do Desklet, existe também a TAG Group, que é utilizada para agruar elementos da estrutura. Um exemplo seria:



Dentro da tag group, vemos também as propriedades X e Y, que logicamente definem o posicionamento X Y do elemento na tela.

Posicionamento relativo e âncoras

A estrutura desklet permite a existencia do chamado posicionamento relativo.
Posicionamento relativo nada mais é do que o posicionamento XY relativo ao um outro objeto

Por exemplo: o usuário quer que o segundo elemento label fique ao lado do primeiro elemento:

A propriedade relative-to dos elementos recebem dois parametros: O primeiro é o Identificador do objetivo, e o segundo é a que propriedade queremos esta relatividade. Este valor pode ser X, Y ou XY.

Podemos também definir aonde queremos esta relatividade através da propriedade anchor. O valor default é NW (superior esquerdo). Os outros valores são:

  • nw – Topo esquerdo
  • n – Meio do topo
  • ne – Topo Direito
  • e – Meio do canto direito
  • se – Canto inferior direito
  • s – Meio de baixo
  • sw -Canto inferior esquerdo
  • w – Meio da lateral direita
  • center – Centro

Fase dois

Bem, precisamos de uma aplicação descente para fazermos nossos testes, certo? Como não quero fazer um applet de previsão do tempo (pois já existem muitos), resolvi fazer um para receber dados de ações diretamente da Bovespa! O nome do projeto será Bovespa (lembre-se de utlizar o nome das pastas como Bovespa).

Interface

O código da interface é o seguinte:


< ?xml version="1.0" encoding="UTF-8"?>








Aqui nós temos duas coisas novas:
A primeira é a tag sensor, que possui 2 argumentos:
id: Que será como o sensor será referenciado pelo display.
module: Que define qual sensor deverá ser utilizado. Queremos o sensor Bovespa, e seu argumento será posi3 (código da positivo informática na Bolsa de São Paulo).

A outra informação nova é parâmetro watch nos labels, que é um receptor de dados do sensor. Vamos dar um exemplo:

<label watch=”color=sens:cor”
Significa que o parâmetro Color do Label será preenchido pela propriedade “cor” do sensor “sens”. Simples não?

Programação do sensor

Os sensores são arquivos criados com o nome __init__.py. No caso do nosso exemplo, criemos um arquivo chamado: ~/.gdesklets/Sensors/Bovespa/__init__.py . O arquivo mais básico para um sensor deve conter pelo menos o seguinte conteúdo:


from sensor.Sensor import Sensor

class Bovespa(Sensor):
def __init__(self, *args):
Sensor.__init__(self)

def new_sensor(args): return Bovespa(*args)

A Classe Bovespa extende a classe sensor, por isso dentro dela podemos chamar algumas funções especiais. Listo algumas abaixo:

self._add_timer(tempo,funcao,parametros) nos permite executar uma função funcao e seus paremetros a cada tempo milisegundos. A função executada deverá retornar sempre true,e caso retorne false, a função deixará de ser executada.

output = self._new_output() cria uma porta de saída para o display. É a forma que o python tem de enviar seus dados para o display. O objeto output possui um método importante: output.set(‘nome’, ‘valor’), que grava o argumento ‘nome’ com o valor ‘nome’.

self._send_output(output), que é o método responsável em enviar uma lista de output’s para o display.

Com estes conhecimentos poderemos agora desenvolver nosso sensor. Que ficará da seguinte forma:


from sensor.Sensor import Sensor
from utils.datatypes import *
import re
import urllib

class Bovespa(Sensor):

def __init__(self, acoes = 'posi3'):

# call the constructor of the super class
Sensor.__init__(self)

self.acoes = acoes[0]

# Atualização do tipo ONLOAD, que ocorre apenas
# uma vez pois retorna um False
self._add_timer(0, self.refresh, False)

# Atualizações do sistema a cada 60 segundos
self._add_timer(60000, self.refresh, True)

def refresh(self, FT):

f = urllib.urlopen ('http://www.bovespa.com.br/Cotacoes2000/CotacaoRapidaHome.Asp?PaginaReferente=home_right.Asp&txtCodigo=' +self.acoes)
self._text = contents = f.read()
f.close()

self._text = self._text.replace(' ', ' ')

# Definindo variáveis para enviar ao Display
output = self._new_output()
output.set('nome', self.acoes.upper())
output.set('oscilacao', self.get_oscilacao())
output.set('price', self.get_price())
output.set('color', self.get_color())

self._send_output(output)

return FT

# Procura por expressao regular a string com o preco da acao
def get_price(self):
ips = re.search('R\$ [0-9][0-9]{0,3},[0-9]{1,2}',self._text)
if ips <> None:
return ips.group(0)
else:
return 'Erro!'
#Procura por ER a string com a ascilacao da acao
def get_oscilacao(self):
ips = re.search('(-|\+)?[0-9][0-9]?,[0-9][0-9]%',self._text)
if ips <> None:
return ips.group(0)
else:
return 'Erro!'
# Escolhe a cor para mostrar a acao.
# Vermelhor para erro ou acao negativa
# verde para acao positiva
def get_color(self):
ips = self.get_oscilacao();
if (ips[0] == '-' or ips == 'Erro!'):
return 'red'
else:
return 'green'

def new_sensor(args): return Bovespa(args)

Nosso applet ficará assim:
Aplicativo Bovespa

Não citei como fazer as seções de configuração e algumas outras coisas porque também ainda não tive tempo de ver.
Aos interessados, podem fazer aqui o download completo do applet Bovespa aqui

Alguns links interessantes são:

E é isso. Espero que vocês tenham boa sorte com seus applets, e melhor sorte do que eu em suas ações!

Lançado oficialmente o Anjuta 2.1.0

18-Jan-07

Foi lançado hoje oficialmente a versão 2.1.0 do Anjuta: The Wind.

Para quem não sabe o Anjuta é, na minha opinião, a melhor IDE de programação para Linux feita em GTK.

Possui uma exelente integração com o Glade que é o construtor de interfaces gráficas em GTK+.

Nesta nova versão foram corrigidos uma série de erros que aconteciam com a versão 2.0.2, que ainda era versão alpha  mas por algum motivo (?!?!?!) estava nos pacotes oficiais do Ubuntu Edgy. Como esta versão estava extremamente instável e não era possível instalar a versão anterior devido a uma série de incompatibilidade de bibliotecas, criei um repositório não oficial para a versão do anjuta1.2.4.

Também adicionaram uma série de funcionalidades. As que mais me chamaram a atenção foram o gerenciador de debug e plugins gdb, e uma janela de disasembly no debuger.
Ainda não instalei em minha máquina, mas se tiver um tempinho hoje ainda compilo, instalo e comento alguma coisa aqui. Mas realmente espero que os MOTU Oficiais do Ubuntu removam logo o pacote 2.0 e coloque o 2.1 em seus repositórios.

Parabéns ao Naba e seus colaboradores.

DBDesigner, Wine e janelas que não ganham foco.

13-Jan-07

Hi!

Para aqueles que seguiram minha dica do DBDesigner sob o wine, perceberam que quando tentamos abrir novas janelas (opções, propriedades, etc), estas novas janelas ficam muitas vezes em baixo da janela principal. Ou seja, não recebem foco.

Isto deve-se a um bug no Wine de criar as janelas todas da mesma forma, e a uma funcionalidade do Gnome que não permite que uma aplicação roube o foco da outra. Esta união de eventos acarretam em um problema muito chato.

A solução para isto está em um pequeno programa chamado devils-pie.

O devilspie procura pela instanciação de novas janelas e as compara com um padrão. Caso este padrão seja encontrado, o devilspie executa uma ação. Logo, o que eu fiz foi muito simples: Procuro pela string “DBDesigner” no nome da aplicação dona da janela. Se eu encontro, dou foco para ela. Simples não?

Getting the code:

O código de instalação e configuração do programa é muito simples:

sudo apt-get install devilspie
echo '(if(contains (application_name) "DBDesigner") (focus))' > $HOME/.devilspie/wine.ds
devilspie

O Código acima possui 3 linhas. Talvez em alguns browsers apareçam 4.

E você nunca mais terá problemas de novo com o DBDesigner emulado pelo Wine.

Links para programação no devilspie

  1. http://wiki.foosel.net/linux/devilspie
  2. http://live.gnome.org/DevilsPie

Cicarelli: Será outro golpe do cocadaboa?

10-Jan-07

Peço desculpas hoje aos meus leitores.

O que era pra ser um blog de conteúdo técnico, acabou virando blog de conteúdo nulo. Prometo que isto não será constante! Mas de qualquer forma, inaugurei de vez a seção /dev/null. Ou seja, conteúdo desta seção deve ser lido apenas em casos de puro tédio.

Agora, quanto ao título do Post: É óbvio que todo o bafafá Cicarelli foi apenas outro golpe do famoso Mr. Manson e em breve será desmascarado em seu site humorístico Cocadaboa.

Em um país democrático, isto com certeza não iria acontecer. Com certeza é uma piada.

Mr. Manson é conhecido por pregar várias peças na imprensa brasileira. Dentre elas está o sexkut, o atentado de 11 de setembro, e o traficante Xaxim, que ficou famoso defendendo o desarmamento.
Mas é isso. Chega de intrigas agora, voltemos aos técnicos.

Estou preparando uma novidade. Semana que vem teremos algo muito mais útil!

Justiça ao Youtube, você perdeu Cicarelli!

09-Jan-07

Só pra registrar a minha indignação

Pois é….
Depois de todo o barulho, agora a Cicarelli quer apagar a sua imagem e se fazer de santa…

Só falta dizer que ainda é virgem…

Merece uma represária especial na internet…. Eu já mandei meus emails pra MTV, e vc?

Update: A gerra acabou! Perdeu Cicarelli! Mas creio que os Internautas brasileiros devam ficar de olho, pois o precedente já foi aberto.

Veja o comentário do desembargador Ênio que tomou demagogicamente a decisão de bloquear o Youtube:

O incidente serviu para confirmar que a Justiça poderá determinar medidas restritivas, com sucesso, contra as empresas, nacionais e estrangeiras, que desrespeitarem…

Precisamos ficar de olho! Meu caro Ênio: medidas restritivas deste tipo não irão nunca mais acontecer! E se isto aconcer de novo tenha certeza, a voz do povo não se calará assim tão fácil!

Update2:

Depois de quase 20 mil emails, a emissora soltou uma nota em seu blog explicando que não: Daniella não teve nada no processo e este foi movido pelo seu namorado, o tal do homem beringela. Enfim, tiraram o dela da reta.

Mas como o nosso amigo Cardoso é um camarada antenado, encontrou no site Consultor Jurídico o texto da procuração, citando claramente o nome de Daniela Cirarelli Lemos como uma das partes que entraram com o processo.

Enfim: MTV, vocês acham o internalta com cara de idiota?