Skip to content

DBDesigner e Ubuntu: Resolvendo problemas…

28-Dec-06

Um post super rápido:

Eu precisava de uma aplicação gráfica para trabalhar com um banco MySQL bastante grande. Não queria fazer as coisas na mão.

Qual foi a minha primeira opção? DBDesigner óbvio. Um exelente editor, com uma GUI de altíssima qualidade.

Creio que todos os que já usaram o DBDesigner no linux passaram por vários problemas durante a instalação. E mesmo depois de instalado, passaram por outros milhares de problemas.

Os dois problemas que mais me incomodaram foram: Não conseguir conectar em um banco MySQL e as fontes estavam horríveis. Como não estava com muita paciência para ficar copiando arquivo, instalando uma série de bibliotecas e testando, resolvi seguir a sugestão do 21croissants: Instalar via Wine!

E o detalhe: Funcionou perfeitamente, criou ícone no desktop, tudo perfeitinho.

Antes que chova críticas, essa é uma solução rápida e não definitiva. Serve apenas para resolver rapidamente um certo problema para o qual não disponho de muito tempo para resolver da forma convencional.

Segue algumas SS:

DBDesigner rodando via wine

DBDesigner via Wine

Como é possível ver, as fontes ficaram bem definidas, e o libmysql funcionou sem problemas!

DBDesigner rodando nativamente

DBDesigner nativo

Infelizmente hove um problema com as fontes, e mesmo trocando a fonte e o tamanho ainda não fica OK. Sem contar o fato que se leva um tempão para deixar o MySQL funcionando corretamente.

O que fazer durante a atualização do seu DNS?

20-Dec-06

Olá pessoas,

Hoje venho escrever sobre uma idéia que tive para solucionar um certo problema.

A algum tempo atrás necessitei trocar um site de um servidor para o outro, mas como este site servia algumas aplicações críticas (é, talvez nem tão críticas), o mesmo não poderia sair em nenhum momento do ar. Ou seja, deveria estar rodando perfeitamente tanto em um host quanto em outro.

Mas, como testar um sistema em um novo servidor? Substituindo as informações de DNS. Mas, no melhor dos casos demora uma hora. E se der errado? Substitui de volta? São pelo menos 3 horas de um sistema off-line. Acho que não é uma solução interessante para aplicações críticas né?

Solução inteligente.

Adicionar nova entrada no /etc/hosts. Simples assim.
Desta forma, você poderá testar sua aplicação no seu novo servidor, e todos os seus clientes continuarão acessando no antigo! Assim, quando você tiver certeza de que tudo está funcionando, você substitui oficialmente o DNS no seu registro de domínios. Legal né?

Passo a Passo

1) Primeiro pegue as informações de DNS de seu novo host.
Um exemplo seria o dreamhost: ns1.dreamhost.com

2) Com o comando ping, descubra qual o IP do servidor DNS

$ ping ns1.dreamhost.com
PING ns1.dreamhost.com (66.33.206.206) 56(84) bytes of data.
64 bytes from ns1.dreamhost.com (66.33.206.206): icmp_seq=1 ttl=44 time=233 ms

--- ns1.dreamhost.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms

rtt min/avg/max/mdev = 233.172/233.172/233.172/0.000 ms

O Ip do servidor aqui é: 66.33.206.206

3) Abra o arquivo /etc/hosts (como root é claro), e adicione a linha

66.33.206.206 seu_site.com.br www.seu_site.com.br

4) Agora, no seu browser acesse o seu_site.com.br, e perceba que você estará acessando no novo servidor, e não mais no oficial.
Agora você pode testar a sua aplicação online, corretamente, sem colocar em risco a continuidade do seu serviço oficial. =)

Qualquer dúvida estamos ae!

Acho que esta solução não funciona para quem usa servidores proxy’s

[]’s
Danilo Cesar

Search Engine Optimization ou SPAM nos meus Feeds?

11-Dec-06

Ae pessoal,

Estive estudando sobre estratégias de SEO nos últimos dias, e vendo o que eu poderia mudar para deixar meu blog mais bem colocado nos ranks do google. Mudei algumas coisas, coloquei uns meta-tags a mais. Bom, enfim, tentei arrumar meu blog para que o google indexe-o melhor.

Lendo alguns artigos na internet, percebi que a melhor maneira para seu site ser bem indexado é que outros sites linkem pra ele. Qual a maneira ética de fazer isto? Muito estudo afim de produzir artigos de boa qualidade para que seja comentado em outros sites.

Pois bem, percebi que existe uma estratégia “mais fácil“.

Nos feeds e planetas que assino, percebi hoje que existe uma enorme quantidade de POST’s referenciando uma certa promoção da VISIE. Basicamente você faz um comentário no seu site, linkando para a promoção (Concorra a dois cursos de natal se você fizer um trackback), e automaticamente você está concorrendo aos dois cursos.

Bom, não tenho nenhum interesse em fazer os cursos da VISIE, mas a idéia é muito boa. O SEO que pensou nisto deve ganhar um aumento. Eles vão deixar de ganhar uns 200 reais (2 cursos), mas vão ganhar uns 200 links para o site deles, ganhando muitos pontos de referência no google rank, coisa que dinheiro nenhum paga (não com facilidade). Parabéns estrategistas da VISIE!

Agora vejamos o outro lado

Mas a que preço os bloggers fazem isto? Os leitores não tem nada com isto. Não estão interessados se você está dentro da tal promoção!
Hoje eu me senti recebendo SPAM através de meus Feeds! Recebi propaganda que não pedi. Mas tudo bem, A VISIE ganhou uns referers a mais. E você, spammer, provavelmente não ganhe nada. Mas de qualquer forma foi bom, fiz uma limpeza dos feeds que assino.

Mas, como diz o Cardoso: “seu blog pode ser rentável”, mas agora VALE TUDO para lucrar com ele, nem que seja preciso fazer propaganda para TENTAR ganhar uns cursinhos online, ou dizer algumas mentirinhas.

Acho que é só isso. Chega da minha indignação! Agora vou continuar estudando aqui para escrever alguma coisa útil.
Seguindo a mesma ideologia, agora vou lançar a campanha:
“Concorra a um pacote de Freegels por cada trackback a este post”


UPDATE:

Encontrei nas palavras da Daniele Silva a definição exata do que eu penso:

No entanto, pra mim, pagerank significa relevância, e ponto.
Se o seu site tem um bom conteúdo outras pessoas vão falar dele, e seu pagerank aumenta. É assim que deve funcionar. Antiético pra mim é tentar forçar o aumento sem relevância.

Antigamente, nos buscadores, quem pagava mais aparecia na frente, com o tempo ficou claro que era absurdo pq as pessoas buscam informação, e nem sempre quem paga mais tem muito a oferecer.

Hoje em dia, uma parte importante do bom posicionamento vem de um bom pagerank, tentar forçar o aumento sem oferecer conteúdo de qualidade é o mesmo que voltar aos tempos dos pagantes…

E também reforço o comentário que fiz para o Marcos.

Veja Marcos, entenda como quiser. Mas com certeza não foi inveja.
Eu tenho um blog e escrevo nele porque gosto. Quem quiser ler lê, quem não quiser não lê. Simples assim. Quero sim que meu site esteja na frente nas pesquisas do google, mas quero que isso aconteça pela qualidade do meu conteúdo, não por estar pagando à outros usuários faze-lo.

A Daniele deu um exemplo exelente. Sites como o Reviewme que tiveram a mesma idéia foram punidos pelo Rank por iniciativas desonestas como estas.

Logo minha consciência está limpa. Não imaginei que o post fosse fazer tanto barulho, mas que bom que fez, pois percebi (pelo fecha tag do Elcio) que várias outras pessoas concordam comigo.

E se eu me dei bem? Talvez. Mas não me interessa este tipo de publicidade. Como eu disse, quero ser conhecido pela qualidade do meu conteúdo técnico.
Mas Obrigado pelo seu comentário

Logo Ubuntu-br

06-Dec-06

Ae gente…

Este é um post rapidinho….
Para aqueles que estão usando a logo que eu criei: Eu tinha atualizado ela a algum tempo atrás e esqueci de colocar no wiki artwork do Ubuntu.

Pois bem, como eu andei vendo que o povo está usando, atualizei a imagem lá. Acho que ficou muito melhor…

Sugestões são bem vindas
logo

Logo sob a lincença Creative Commons Attribution-ShareAlike 2.5 license.

Esta imagem era para logo de um blog sobre ubuntu que seria construido com meus amigos Alan Fischer e Arthur Furlan. Só que ele que ainda não saiu…

Smartphones: aonde podemos parar?

03-Dec-06

Tive o prazer de ter em minhas mãos um Nokia 6681 a alguns dias atrás, e tive uma idéia:

Imagine uma touchscreen. Agora imagine uma touchscreen sem uma touch-screen =).
Imagine poder “simular” uma touchscreen no ar usando apenas a camera do seu celular.

Pode ser um brinquedo muito interessante não?

Pensando nisso fiz um pequeno aplicativo em Python (pyS60) que localiza um objeto e segue-o. Como se fosse um mouse pointer seguindo uma caneta.

Este aplicativo na verdade é apenas uma prova de conceito demonstrando que pode ser feito. Quando tivermos celulares melhores, algo como 1GHz (O 6681 possui um processador de 220Mhz), e cameras próprias para este tipo de aplicação, talvez tenhamos softwares e smartphones com este conceito em funcionamento.
Seria muito bacana ver soluções assim aplicadas em desktops 3D.

Segue um vídeo de demonstração do aplicativo. Como disse, é apenas uma prova de conceito. Python ainda não é uma linguagem muito rápida quando estamos em celulares. Mas é muito mais fácil programar e testar do que se fosse feito em native symbian, e ainda por cima posso programar em linux =).

Leitores de RSS podem ver o vídeo aqui

Código fonte


##############################################
# Produzido por Danilo Cesar [http://www.danilocesar.com]
# Inspirado por: http://www.bigbold.com/snippets/posts/show/636
# Agradecimento a Enrico Batista
##############################################
from appuifw import *
from graphics import Image
import camera, e32
#import miso # don't dim the light

app.body = c = Canvas()

running = 1
def quit():
global running
running = 0

app.exit_key_handler=quit
app.title = u"O controle"
app.screen = 'full' # or 'normal', 'large'

def getdata(im, bpp=24):
import struct, zlib
im.save('D:\\pixels.png', bpp=bpp, compression='no')
f = open('D:\\pixels.png', 'rb')
f.seek(8 +8+13+4)
chunk = []
while 1:
n = struct.unpack('>L', f.read(4))[0]
if n==0: break # 'IEND' chunk
f.read(4) # 'IDAT'
chunk.append(f.read(n))
f.read(4) # CRC
f.close()
return zlib.decompress(''.join(chunk)) # '\x00' prefix each line

X = 80
Y = 60
while running:
if X < 0: X = 0 if Y< 0: Y = 0 if X > 160 - 30: X = 160 - 30
if Y > 120 - 30: Y = 120-30
im = camera.take_photo('RGB', (160,120))
im.rectangle([(X,Y),(X+30,Y+30)], 0xff0000) # red outline
# check hot spot whether active
box = Image.new((30,30), 'L') # gray scale
box.blit(im, (X,Y,X+30,Y+30))
data = getdata(box, 8)

# check black
for i in range(len(data)):
if ord(data[i]) < 30 and ord(data[i]) > 0:
X += i%31 - 15
Y += int(i/31) - 15
break
# Posso passar de 3 em 3 pixels. O código fica mais rápido e a perda
# de precisão é insignificante
i = i + 2

c.blit(im, (0,0), (8,12)) # show camera

#miso.reset_inactivity_time()

Facilidade para aplicações gráficas com J2ME

02-Dec-06

Como já tinha comentado em alguns posts antigos meus, desenvolver aplicações JAVA para dispositivos móveis pode ser uma brincadeira muito bacana. Mas, se alguém tentou faze-lo, também deve ter percebido que desenvolver aplicativos gráficos com várias telas é uma tarefa extremamente chata.Neste post vou comentar o que achei do Netbeans e do add-on Netbeans Mobility Pack.

Não sou nenhum especialista em JAVA, e não entro em discuções Eclipse x Netbeans, mas me agradou muito a facilidade com que se é possível criar aplicações gráficas J2ME com o mobility pack.

Instalação
Primeiramente deve-se ter o Netbeans instalado. O Download pode ser feito aqui.
Após isto deve-se obter o mobility pack, que pode ser pego aqui

Com um sistema muito simples, é possível ligar telas entre si, programar botões… Basta clicar e arrastar!
Vale a pena para quem quer programar em JAVA para dispositivos móveis.

Segue algumas screen shots.

Criação para GUI's

Criação de GUI’s

Ligações de várias telas

Modelando telas

Tela do Programa

Interface do projeto

Novo Projeto
Opções para novo projeto

Anjuta1.2.4 e Edgy; Resolvendo problemas

15-Nov-06

Ubuntu-br
Olá,

Recebi um e-mail a alguns dias atrás do Lucas Galete e Muxecoid informando sobre um bug do Anjuta1.2.4 que está em meu repositório.

Basicamente não é possível criar com sucesso um projeto (eu não cheguei a testar esta função pois crio meus makefiles no braço), e o anjuta retorna uma porção de erros:

configure.in 7: possibly undefined macro: AM_INIT_AUTOMAKE
configure.in 7: possibly undefined macro: AM_CONFIG_HEADER
configure.in 7: possibly undefined macro: AM_PROG_CC_STDC
configure.in 7: possibly undefined macro: AM_MAINTENER_MODE

Anjuta Error

Analizando o ocorrido, percebi que era um problema do automake. Mesmo tendo o automake instalado, vi que o problema persistia.

Dando uma googlada, percebi que a solução era instalar o automake1.9.

Para nós, Ubunteros, ou todas as outras distros Debian like:

apt-get install automake1.9

E o problema está resolvido!

Qualquer coisa estamos ae!

[]’s

Danilo Cesar

Ubuntu, wireless e WPA

11-Nov-06

Ubuntu-br
Olá,

Venho falar hoje um pouco sobre Wireless, WPA e Linux.
Como algumas pessoas podem saber, manter uma rede wireless pode ser um problema. Qualquer pessoa na esquina da sua casa ou empresa pode estar tentando “hackea-la”. E, diferente do que muita gente pensa, o protocolo WEP não é alias de segurança, pois o mesmo pode ser quebrado com um pouco de conhecimento em menos de uma hora.

Solução: WPA

WPA é um protocolo de segurança criado pela Wireless Aliance para acabar com as enormes falhas de segurança do WEP. E conseguiram (digamos que apenas em partes, pois já saiu o WPA2).

Tudo muito lindo e muito bacana, mas como fazer minha rede rodar com WPA?
Existe um tutorial de como rodar WPA no linux neste site, mas é extremamente complexo: roda wpa_suplicant, copia deste conf para este, vai pra cá, vai lá… copia configuração…. etc etc etc…

Maneira Humana:

apt-get install network-manager-gnome

Este programa gera um applet, que ficará em seu systemTray mostrando o sinal da rede. Clicando sobre ele, é possível ver quais as redes disponíveis. Clicando sobre ela, ele tentará autenticar. Caso tenha encriptação, ele pedirá a senha e o tipo de autenticação, sendo esta WEP, WAP ou WPA2. O que facilita extremamente o gerenciamente de redes no Ubuntu.

Lembrem-se: Wireless? Use WPA2 sempre que possível!

Algumas ScreenShots:

Opções
Opções de encriptação disponíveis

Abrindo Wireless
Redes disponíveis

Para aqueles que tiveram problemas do programa simplismente não localizar rede nenhuma, abra o network-admin, vá para conexões wireless, remova todas as informações e reinicie o Ubuntu.

Anjuta1.2.4 on Edgy: Its possible

07-Nov-06

Hello everybody!
I’m writing this post on English because I’m having a lot of visits of people who want a easy solution to install Anjuta1.2.4 on Ubuntu Edgy.

Basically, I dont know why, but some guy put anjuta 2.0.2 on Ubuntu Edgy, but its a alpha version: nothing works, random crashes, and a lot of other problems.
So I solve it downloading anjuta1.2.4 from dapper repositories, editing some depends and creating some symbolic links.

With help of my friend Bruno Ribas (Russo), I create a deb repository to make a process to install it more easy.
Now you can install anjuta1.2.4 with three easy steps:

echo "deb http://www.danilocesar.com/ubuntu debs/" >> /etc/apt/sources.list
apt-get update
apt-get install anjuta1.2.4

Use this repository for Ubuntu Edgy only.

So, if you have any problem with this, please let me know!

[]’s

Danilo Cesar

Análise do Ubuntu 6.10 e Notebook HP Pavilion dv4000

24-Oct-06

Hoje não vou escrever nada muito técnico, mas sim farei uma breve (ou seria brevíssima?) análise do Ubuntu EDGY rodando sobre um notebook HP Pavilion DV4000.

Introdução: Porque não Debian?

Como muitos devem saber, instalar linux em um notebook selado com o famoso “Designed For Microsoft Windows” pode não ser uma tarefa muito fácil.

Como aqueles que me conhecem também sabem, sou fã do debian, e por isso é óbvio que coloquei debian no notebook. Mas esta opção teve vários problemas, dos quais com um pouco de esforço consegui resolver grande maioria, e até botar a placa 3D pra rodar.

Os problemas que encontrei foram:

  1. Não consegui colocar a placa wireless 100%.
  2. A placa 3D não ficou 100%. Sempre dava um erro, e alguns programas não abriam.
  3. Botões multimidia não funcionaram logo de cara
  4. O Scroll do touchpad não estava funcionando corretamente

1) A placa wireless dos centrinos geralmente rodam com o firmware ipw2200, mas o debian por algum motivo (não deixar carregar os drivers proprietários do mal, como disse ironicamente o Morimotto) não inclui alguns componentes necessários para isso, sendo necessário puxar o código fonte do udev e instalar um componente. [1]
Além disto, não foi possível colocar a placa wireless em modo promíscuo.

2) Como faz muito tempo que eu instalei, não lembro exatamente os erros que davam. Mas precisei instalar alguns módulos do X pelos fontes que puxei da internet. E não ficou 100% pois sempre dava alguns erros.

3) Utilizando do hotkeys e um teclado multimedia da HP, consegui colocar os botões multimedia para funcionar.

4) O touchpad funcionava, menos o scroll. Copiando as linhas do xorg.conf do mandriva, consegui coloca-lo para funcionar.

Ubuntu? Mais um derivado do Debian??? Credo…

Sempre preguei a seguinte idéia: “Kurumin, knoppix e outros derivados são lixo! Bom é usar o debian puro!”, mas esta minha idéia mudou depois que conheci o Ubuntu.

Depois de muito resistir em mudar de distribuição, fui convencido pelo meu amigo Arthur Furlan a experimentar o Ubuntu. Como um dia acabei precisando re-instalar o debian da minha máquina, resolvi testar antes o tal do Ubuntu.

Ubuntu: Primeiras impressões.

A primeira impressão que eu tive do Ubuntu (começei pelo 5, mas como vi que estava legal instalei o 6.6 logo em seguida) foi muito boa. Uma interface amigável, e a instalação extremamente simples. Para os fãs de Debian como eu, estavam lá todas as ferramentas padrão do debian e todos os pacotes disponíveis (e mais alguns).

Agora, o que mais me impressionou foi quando eu experimentei o tal do glxgears (testador da placa 3D), quando percebi que sem nenhuma configuração adicional, a placa 3D já estava funcionando sem nenhum problema.

glxgears

O Scroll também já estava funcionando, e a placa wireless também.

Sem contar que os pacotes do Ubuntu estão sempre novos. Na versão 6.10 temos gaim2, firefox 2 e gnome 2.16.

Conclusão.

Hoje posso dizer que “estou migrado” para ubuntu. Uma distribuição que é extremamente simples para instalar e usar (qualquer um consegue), e ao mesmo tempo possui todas as ferramentas mais “geeks” do Debian.
[]’s

Danilo Cesar

Montar disco remoto com SSH

09-Jun-06

Fala ae de novo…

Essa aqui é nova, pelo menos pra mim…. =)

Descrição do Problema:

Na UFPR onde eu estudo, o departamento de informática junto do C3SL disponibiliza aos alunos uma conta nos seus servidores Linux. O espaço é mais ou menos bacana (200 MB), dá pra fazer trabalho tudo lá… E, eles também disponibilizam um SSH pra gente, e um VNC pra quem for mais “espertinho” e souber configurar =)

Essa é a parte boa. A parte ruim: Só podemos utilizar ferramentas que já estão lá.
Por exemplo: se o usuário se conectar por SSH, ele terá o vim ou emacs para editar código… Claro que ele pode, se tiver um bom espaço, instalar o Eclipse ou outra IDE bacana para desenvolvimento e roda-la graficamente com -X. Bom, alguém já tentou abrir o eclipse com a opção -X do ssh? Demora muito!

Solução 2: VNC Server

Também é possível utilizar o VNC server. Não vou explicar agora como é que se faz, mas tem um linkzinho de como utilizar o VNC server no departamento de estatística (?!?) da UFPR.
VNC é uma solução bacana, mas você, caro leitor, já experimentou ter um VNC 1280×700 com o skype aberto? É terrivelmente lento! E, pelo menos na minha opinião, não existe boas ferramentas gráficas para desenvolvimento nos Labs da UFPR, a não ser que você goste de desenvolver softwares utilizando o Gedit. =)

Solução bacana: SSHFS

More…

GPRS e Bluetooth: Linux em qualquer lugar

22-May-06

Olá pessoal…

Bom, depois de muito tempo sem postar aqui, estou voltando à ativa.
Irei falar hoje sobre como configurar seu GPRS via Bluetooth no Linux…

Instalando pacotes necessários

Executei estas operações com a instalação simples do Debian Etch, um celular 6600 da TIM, e um dongle bluetooth simples, creio que ninguém terá problema em reproduzi-lo.

Vamos por a mão na massa
More…

/me spider-man

28-Feb-06

Your results:
You are Spider-Man

Spider-Man
80%
Green Lantern
80%
Supergirl
57%
Superman
55%
Batman
50%
Hulk
50%
The Flash
50%
Iron Man
50%
Wonder Woman
47%
Catwoman
40%
Robin
37%
You are intelligent, witty,
a bit geeky and have great
power and responsibility.


Click here to take the “Which Superhero am I?” quiz…

Seguindo a sugestão do Lira

HTTP Headers, HTTP por força bruta…

19-Feb-06

Olá pessoal…

Hoje deixei o aiBur Framework de lado para fazer algumas coisas divertidas… =)

Um antigo camarada de programação ASP que está fazendo algumas brincadeiras com linux e SQUID me perguntou esses dias como ele poderia fazer um POST via linha de comando… Eu que não sabia exatamente o que ele queria indiquei:


echo "nome=danilo&idade=20" | lynx --post-data http://www.meusite.com.br/meu_post.php

Como muitos devem saber, este comando funciona perfeitamente para enviar POSTs via linha de comando. Mas meu amigo precisava de algo mais “bruto”. Ele precisava fazer, por exemplo, POST de um arquivo… Lá vai o Danilo arranjar uma solução…

Aqui vou conciliar uma dica que escrevi a muito tempo atrás para o vivaolinux, e a idéia sobre Headers HTTP que vi no BrunoTorres.net.

Ferramentas que vamos utilizar:

TCPUTILs -> Tcputils é um pacote que contém um conjunto de ferramentas para utilizar sockets diretamente pelo Shell… Na verdade é um servidor e cliente de echo… Quase como um telnet. Mas dá pra fazer algumas coisas bacanas com ele, que nós veremos agora…. =)

HTTP -> Hypertext Transfer Protocol ou Protocolo de transferência de hipertexto: é o formato da comunicação entre o Browser e o servidor. Por exemplo, é o cliente que envia cookies, o servidor que grava sessions, redireciona, etc etc etc… Seu padrão é definido pela W3C

LivehttpHeaders Extension: Extenção do Firefox que visualiza todos os headers de uma requisição http.

More…

Python for S60… Programar celulares nunca foi tão fácil!

25-Jan-06

A alguns dias atrás estava procurando outros métodos de programação para celulares…

Eu já conhecia o famoso J2ME (JAVA micro edition), também já conhecia o Native Symbian C++. Mas procurava algo mais dinâmico… Mais prático….

Numa viagem que fiz pra londrina, brincando com meu celular (Nokia 6600) começei a pensar em como seria útil uma linguagem rodando por script, pra realizar tarefas simples, como por exemplo o BASH no linux….. Foi ai que eu conheci o Python for S60.

Pra começar: Porque Python?
Pythonis a simple, consistent and effective programming language. [Manual Getting Started With Pyton]

More…