Nov 8

Durante a SACE 2008 (Semana de Arte, Cultura e Esportes) do CEFET-PB, fui chamado para desenvolver um simples quadro de medalhas. A SACE foi modelada de uma forma que cada curso do CEFET representava algo como um país nas olimpíadas, e ai as medalhas iam sendo acumuladas nas diversas modalidades.

hmm… revisando o post pra publicar, pensei em você que buscou no google por como fazer essa transformação de CDR -> SVG e ia ter que ler esses vários parágrafos inúteis abaixo. Assim, se você é um desses, pule diretamente para o 7º parágrafo, considerando esse como o segundo. :)

A parte de desenvolvimento foi rapidamente desenvolvida usando PSP (Python Server Pages) - iih, que Igor não leia isso - e nem banco de dados em si eu precisei usar (pela simplicidade do quadro, optei por persistir e serializar objetos com pickle mesmo). Um (simples também) painel de controle pra o pessoal do DCE adicionar as medalhas, e uma função de comparação dos atributos do objeto Curso para ajudar o sort() do python a ordenar eles direitinho.

Mas, como esse post não é dedicado a python ou a que tecnologias\idéias foram necessárias para desenvolver o quadro (apesar de que vou adicionar a etiqueta Python nas categorias desse post :D) eu encontrei um problema que julguei mais complicado, a logomarca do Cefet-PB que estava em formato .cdr.

Uso Inkscape para fazer (as poucas) artes que preciso (e só realmente quando preciso meeesmo!), e apesar do Corel Draw e do Inkscape trabalharem com imagens vetoriais, o Corel tem um formato proprietário de arquivos enquanto o Inkscape basicamente gera um .svg, um arquivo XML que descreve as formas bidimensionais desenhadas no editor. Se você não sabe se uma imagem é ou não um desenho vetorial basta dar um zoom nele e ver se os pixels ficam mais aparentes ou se tudo continua com qualidade perfeita. Esse é o principal indicio de que seu desenho é vetorial.

Assim, pensei em refazer a logomarca no Inkscape, tarefa que ia levar um tempinho mas que ia valer a pena, afinal não ia usar essa logomarca apenas nesse quadro de medalhas (hmm será que o simbolo formado por árvores, rios ou coisa assim vai me ajudar no trabalho de Ciências do Ambiente?) e enquanto tentava desenhar a elipse que envolve a logomarca resolvi procurar no Google se existia uma outra maneira de pegar aquele maldito .cdr e trabalhar com ele no Inkscape.

Foi ai que achei o ator principal desse post, o Uniconvertor, ferramenta desenvolvida pela sk1project e que funcionou muito bem aqui. Feita em Python e com muito código (tem um modulo pra cada tipo de desenho, como de gradientes, elipses, retangulos, espiral e etc) bastou eu baixar aqui e usar o easy_install que ela já estava pronta pra ser usada:

flavio@doritos:~$ uniconv
UniConvertor 1.1.3

USAGE: uniconv [INPUT FILE] [OUTPUT FILE]

Converts one vector graphics format to another using sK1 engine.
sK1 Team (http://sk1project.org), copyright (C) 2007,2008 by Igor E. Novikov

Allowed input formats:
AI  - Adobe Illustrator files (postscript based)
CDR - CorelDRAW Graphics files (7-X3,X4 versions)
CDT - CorelDRAW templates files (7-X3,X4 versions)
CCX - Corel Compressed Exchange files
CMX - Corel Presentation Exchange files (CMX1 format)
SVG - Scalable Vector Graphics files
FIG - XFig files
CGM - Computer Graphics Metafile files
AFF - Draw files
WMF - Windows Metafile files
SK  - Sketch/Skencil files
SK1 - sK1 vector graphics files

Allowed output formats:
AI  - Adobe Illustrator files (postscript based)
SVG - Scalable Vector Graphics files
CGM - Computer Graphics Metafile files
WMF - Windows Metafile files
SK  - Sketch/Skencil files
SK1 - sK1 vector graphics files
PDF - Portable Document Format
PS  - PostScript

Example: uniconv drawing.cdr drawing.svg

flavio@doritos:~$

Aí foi fácil. Olha só o exemplo? uniconv logomarca_cefetpb.cdr logocefetpb.svg e txã, a logomarca estava gerada em formato svg. Tudo bem que precisei fazer algumas alterações (a elipse veio preenchida, e alguns pontos foram tratados como linhas ao invés de figuras mesmo) mas funcionou que foi uma beleza.

Nov 6
Tirinha #03
Posted by Flávio Ribeiro in Tirinhas on 11 6th, 2008| icon3No Comments »

huahuauhauhahuahu pego do xkcd.com, mas visto nos itens compartilhados do Google Reader!

Nov 4
Alterando o MOTD do Ubuntu Server
Posted by Flávio Ribeiro in Linux on 11 4th, 2008| icon3No Comments »

Pra quem não sabe o que é, o MOTD (Message of the day) é aquela mensagenzinha que aparece sempre que você se loga no SSH ou faz login no modo texto. É algo mais ou menos assim:

flavio@localhost’s password:
Linux doritos 2.6.24-21-generic #1 SMP Tue Oct 21 23:43:45 UTC 2008 i686

The programs included with the Ubuntu system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by
applicable law.

To access official Ubuntu documentation, please visit:
http://help.ubuntu.com/
Last login: Tue Nov  4 16:05:15 2008 from localhost
flavio@doritos:~$

Para alterar esses textos, não basta editar o /etc/motd (isso no Ubuntu Server). Fiz algumas mudanças nele e essas alterações foram resetadas ao reiniciar o servidor. Foi ai que vi que o /etc/motd é apenas um link para /var/run/motd. Então, para alterar de verdade o MOTD no Ubuntu Server você precisa editar é o /var/run/motd.

Mas se você quiser tirar a linha Last Login, já é nas configurações do ssh:

flavio@doritos:/var/www$ cat /etc/ssh/sshd_config | grep PrintLastLog
PrintLastLog yes
flavio@doritos:/var/www$

Pronto, trocou nessa linha yes por no e a linha Last Login ao logar por SSH não vai aparecer mais, apesar de eu recomendar deixar ela sempre aparente.

Recomendo também um ASCII Generator pra você fazer firulas no MOTD: http://www.network-science.de/ascii/

Oct 11
Mudança nas Diversões
Posted by Flávio Ribeiro in Pessoal on 10 11th, 2008| icon31 Comment »

Depois que passei da etapa 3º-ano-vestibular e vim morar em João Pessoa, muitas coisas mudaram na minha vida. Algumas pessoais, outras profissionais, meus interesses, minhas diversões… e é sobre as mudanças na forma como me divirto que venho falar nesse post.

Quando menor, fui uma pessoa muito ativa, que sempre gosta muito de esportes e pouco de tv, videogame e jogos de computador. Preferia passar dias e mais dias jogando tênis, futebol, viajando pra campeonatos, etc. Achava que assistir televisão era uma perca preciosa de tempo, e o espirito de competição sempre me acompanhava, os desafios me divertiam bastante.

Aos poucos fui me apegando mais ao computador e a forma como as novidades tecnologicas aconteciam, e após o vestibular entrei ainda mais nesse mundo. Foi ai que notei a mudança.

Ainda não sou fã de televisão, assisto cerca de 10 a 20 minutos a noite que é pra me dar sono. Mas, em compensação, meu Transmission (programinha de torrents nativo do ubuntu) passa quase que 24hrs/7dias ativo baixando filmes e… desenhos animados. É, depois de velho, agora que comecei a curtir desenhos. A propósito, vocês já assistiram Afro Samurai? Assisti um pedacinho na Mtv e no instante que acabou corri pra baixar todos os episódios! Recomendo! :) (agora deixa eu passar pro próximo paragrafo, esse ta muito nerd.)

Quando novo também tinha videogame, tive um Master System e logo depois um Mega Drive III, que custou todas as minhas economias e as do meu irmão também. Mas…. a diversão não se compara aos campeonatos de Winning Eleven (tá.. não é winning eleven mesmo, é Bomba Patch, um “fork” piratão do Winning Eleven com o Galvão Bueno transmitindo tudo.. ÊÊÊ \o/) que acontecem aqui frequentemente.  Antigamente preferia uma partida de tênis de mesa. Viu como as coisas mudam?

Isso sem falar das excelentes partidas de Counter-Strike no final do expediente no trabalho! :)

Não levem tão a sério esse post, só quis deixar registrado aqui a reflexão que fiz assim que acordei hoje e ainda me lembrei que perdi a final do ultimo campeonato de Bomba Patch antes de ontem.

Acho que o espirito de desafios ainda me acompanha, são os desafios em si que mudaram.

Ps: Pronto Raissa, atualizei. :)

Sep 21
@pyconbrasil: 3º Dia
Posted by Flávio Ribeiro in Eventos, Programação on 09 21st, 2008| icon3No Comments »

Já mais de 24 horas que acabou a pyconbrasil e só consegui conexão agora :(

Python e Lego Mindstorms Programando robôs : Excelente! a Tatiana Al-Chueyr é bem engraçada e conseguiu demonstrar alguns scripts em python que interagia com o robôzinho da lego. Eu quero um!

ODFmobile - Leitor ODF desenvolvido na na Arena de Programação do FISL9: Massa a sacada que deram pra fazer o leitor funcionar com tão pouco tempo. Eu e meu grupo não tivemos a mesma sacada no evento e tentamos parsear os arquivos odf no braço! :(

Criando bindings e extensões com Cython: Após ver a palestra soube de uma solução rapida, prática e bonita de fazer as aplicações python funcionarem mais rápidamente. Parabéns ao Luiz Carlos pela apresentação!

Pra finalizar, gostaria de parabenizar o pessoal que trabalhou na organização, tudo realmente funcionou bem. Valeu a pena de verdade e espero estar na 5ª edição! :) 

Sep 20
@pyconbrasil: 2º Dia
Posted by Flávio Ribeiro in Eventos, Programação on 09 20th, 2008| icon3No Comments »

Já está quase acabando o 3º e último dia da PyConBrasil e agora que consegui um tempinho pra falar de ontem aqui no blog, o segundo dia da PyConBrasil. É que hoje ajudei na construção de alguns desafios para a 1ª Maratona de Programação que vai rolar no Cefet-PB na semana que vem.

A Evolução do Lua: Palestrada pelo principal criador e mantenedor da linguagem de programação Lua, linguagem que nasceu aqui no Brasil, mais precisamente na PUC-Rio. Já tinha lido alguma coisa sobre a linguagem e com o conteúdo da palestra me interessei ainda mais em Lua. Uma curiosidade que ele frisou é que World of WarCraft usa *muito* Lua no desenvolvimento do jogo, e isso junto com o GINGA-NCL (que integra NCL\Lua no Padrão Brasileiro de TV Digital) impulsionou a linguagem.

Python em Todos os lugares: Muito boa palestra do Osvaldo Santana, que contou do caso de sucesso do port do interpretador python para os internet tablets da nokia. Mostrou como fazer o port de duas maneiras, entrou também no processo de cross-compiling (assunto esse que tenho bastante interesse e pretendo um dia fazer um post sobre esse processo).

Amora: A mobile remote assistant: Palestra sobre uma aplicação para celulares s60 que já venho acompanhando há algum tempo. Quem tiver um smartphone desse recomendo a instalação, ele realmente funciona muito bem. Espero também poder contribuir para esse projeto assim que tiver um tempinho.

Durante a tarde estava cansado e não prestei muita atenção nas palestras. Também não vou falar porque várias apresentações objetivavam o pessoal de python pra web (que com certeza é o nicho maior e mais ativo da linguagem).

Até amanhã! :)

Sep 19
@pyconbrasil: 1º Dia
Posted by Flávio Ribeiro in Eventos, Programação on 09 19th, 2008| icon3No Comments »

Acabou de chegar no segundo dia da PyconBrasil, e hoje o dia está ensolarado (graças! :D). Mas como esse blog não é de meterologia, vamos ao mini-review das palestras que julguei mais interessantes de ontem, o primeiro dia.

Busca visual de imagens para todos: Muito boa palestra, falando de uma aplicação que faz buscas de imagens baseadas em exemplos. Ele mostrou a aplicação funcionando com alguns exemplos, e aí fez buscas no banco do flickr mostrando resultados semelhantes ao da foto submetida como exemplo.

Decorando ambientes com bom gosto -Python decorators: O Dorneles mostrou como funcionam os decorators em python. Achei bastante útil a palestra, aprendi algumas coisas e consegui absorver tudo que a palestra tinha para passar.

Introdução ao Google App Engine: Palestrada por Ricardo Bittencourt, um dos funcionários do google, mostrou qual a principal funcionalidade do Google App Engine (não se preocupe com escalonamento, múltiplos acessos, o google toma conta de tudo!) e no fim a palestra terminou virando um bate-papo e a platéia fez algumas perguntas sobre como é trabalhar no Google, e etc. Uma coisa que me chamou atenção é que no Google se usa um sistema de arquivos chamado GFS, onde todos os registros de arquivos são replicados para no mínimo 3 servidores, tudo isso de maneira transparente para o usuário final, e isso garante que seus dados nunca irão pro espaço.

Why I love Python: Palestrada por Bruce Eckel, um dos gringos que o congresso conseguiu trazer, autor de 2 livros (Thinking in C++ e Thinking in Java) mostrou que toda sua experiência com programação fez com que ele visse python como uma das linguagens mais bem arquitetadas e legiveis. Foi bom ouvir elogios sobre a linguagem de alguem que programou e escreveu livros sobre 2 outras grandes linguagens.

Orientação a Objetos em Python: Uma verdadeira aula sobre como funciona a orientação a objetos de python sem esconder as coisas que deveriam ser um pouco mais elegantes. Achei fantástica a didática do Luciano Ramalho! :)

Todas as palestras estão sendo gravadas, e em tese deveriam estar passando ao vivo em http://www.pyconbrasil.com.br mas pelo que tentei e vi o pessoal tentando por aqui não tá funcionando não. Enfim, é esperar cair no YouTube.

Até amanhã!

PS: Importante o bom tratamento da organização com os congressistas. Enquanto escrevia esse post um dos organizadores veio me perguntar se o wireless estava funcionando bem e tal. Essa não foi a primeira vez que aconteceu, e esse cuidado da organização acho muito legal.

Sep 18
@pyconbrasil: Cheguei!
Posted by Flávio Ribeiro in Eventos on 09 18th, 2008| icon3No Comments »

Olá,

Acabo de chegar a UVA (Universidade Veiga de Almeida) local sede pra PyconBrasil 2008. Até agora tudo muito organizado, e o material impresso ficou muito bom.

Em instantes comecará a abertura, e pretendo fazer pequenos reviews das palestras que eu julgar mais interessantes aqui no blog.

Em tempo; O Rio tá frio e chuvoso.

Sep 13
Woopra - Estatísticas pro seu blog
Posted by Flávio Ribeiro in Tecnologia on 09 13th, 2008| icon3No Comments »

Olá,
Faltando apenas 4 dias pra PyConBrasil venho postar aqui sobre um plugin que instalei no meu blog, o Woopra. Já uso o Google Analytics pra analisar o tráfego daqui, mas resolvi instalar ele também até porque o woopra promete gerar estatísticas em tempo real, e também pra comparar as análises dos dois.

Na verdade achei o processo meio chato, você tem que se cadastrar em woopra.com, depois cadastrar seu blog e esperar que eles aceitem você por lá. No meu caso demorou vários dias, eu confesso até que já tinha esquecido que tinha cadastrado lá. Instalei o plugin no blog, adicionei a tag que o woopra.com me passou no footer do blog, peguei o Site ID que também estava no woopra.com, vim aqui no painel de administração do site (settings -> woopra settings) e coloquei lá.

Agora é esperar ele comecar a funcionar pra analisar os gráficos e comparar com o analytics! ;)

Sep 5
PyconBrasil 2008, eu vou!
Posted by Flávio Ribeiro in Eventos, Python on 09 5th, 2008| icon3No Comments »

A comunidade python brasileira (pythonbrasil) estará realizando nesse mês a 4ª edição da PyconBrasil (Python Conference Brasil) nos dias 18,19 e 20, no Rio de Janeiro, E EU VOU! :D Pelo que vi na programação muitas palestras irão me interessar, como Desenvolvimento de Jogos em Python , Comunicação Bluetooth entre Python/PyS60 , Integrando Python, C e C++ - Técnicas e
métodos de acessar código em C++
usando Python
, Python e Lego Mindstorms
Programando robôs
e Python em Todos os lugares.

Para os que também vão espero encontrar e conhecer vocês programadores e intusiastas python, e para os que não vão eu prometo fazer um review de tudo que com certeza vou ver de legal por lá! :D

« Previous Entries