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?”
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.
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.
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.
Você deverá receber uma confirmação da seguinte forma:
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:
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:
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:
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 . '";
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.
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.
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 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… =(
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.
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.
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:
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.
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).
<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.
# 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'
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 chamadodevils-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?
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.
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.