 |
CHAT
- Thin Feeder
com Fabiano Franz
Guapo> Bom, o pessoal já está por aqui e
acho que podemos iniciar a conversa sobre o
Thin-Feeder. Fabiano, algum comentário
inicial?
fabianofranz> olha só... fiz uma trabalho
de buscar uma relação de sites que
relacionaram o ThinFeeder nos últimos
tempos...
fabianofranz> Está aqui:
http://thinfeeder.sourceforge.net/promote.php
fabianofranz> um local particularmente me
chamou a atenção:
fabianofranz>
http://blog.9zi.com/index.php?op=ViewArticle&articleId=368&blogId=1
fabianofranz> é um blog de um cara que
utiliza o ThinFeeder em chinês
fabianofranz> não faço a mínima idéia
do que ele esteja falando no site, mas
descobri que funciona!
fredson_to> aki no tocantins estamos
engatinhando com java... não ficou mto claro
a arquitetura MVC q vc utilizou no
ThinFeeder... teria algum artigo melhor
explicando?
fabianofranz> na verdade não utilizei nada
pronto pra MVC... desenvolvi um modelo
próprio
convidado185842> Ola Fabiano, como voce
gera os .xml pro Thinlet? Usa alguma
ferramenta visual ou gera na "unha"?
fabianofranz> os xml? na unha... até
existe uma ferramenta visual chamada
"Theodore" (http://www.carlsbadcubes.com/theodore/)
fabianofranz> podes testar
convidado190529> Quanto tempo foi para
desenvolver essa ferramenta?
fabianofranz> a primeira versão (beta 1)
levou 3 semanas
Guapo> essa é uma prova de que o
desenvolvimento Java pode ser bem produtivo!!
fabianofranz> o projeto existe desde 22/07,
desde então houveram 5 releases, sendo que
atualmente estamos em uma versão
"não-beta" (estável)
fabianofranz> o desenvolvimento de
interfaces em Java com Thinlet é
particularmente interessante, porque mesmo que
vc desenvolva "na unha", o fato de
trabalhar com simples parametrização de xml
é um grande ganho
convidado190529> Bacana! Te ocupou muito
dos teus finais de semana ou foi um prazer ter
programado ela?
fabianofranz> desenvolvi só nas
"horas extras" mesmo. mas foi um
prazer
fabianofranz> na verdade um projeto desse
tipo, open-source, que não lhe traz nenhum
retorno financeiro, acaba sendo uma
"escola". aprendi bastante com o
projeto.
convidado190529> Isso é legal.
Soma um dali, outro daqui, no final dá um
montão.
convidado190529> Já tem muita proposta de
gente querendo melhorá-la contigo?
fabianofranz> tem algumas pessoas sim. um
dos pontos que estou tendo maior dificuldade
em resolver é o suporte a HTML e há algumas
pessoas tentando soluções
fabianofranz> porque, uma vez que Thinlet
é baseado em AWT, vc não tem suporte a HTML
de forma nativa...
Guapo> suporte HTML nas mensagens?
Guapo> não havia pensado nisso, é verdade
fabianofranz> isso, HTML nas mensagens
(conteúdo) das notícias
fabianofranz> o que existe atualmente, no
ThinFeeder, é um simples "parser"
de html, que um fonte HTML em um "plain
text" com alguma formatação
fabianofranz> por exemplo, onde houver <br>
adiciona nova linha, onde houver <li> adiciona um "-", etc. mas o mais
interessante seria suportar html mesmo, com links,
imagens, etc
fabianofranz> algumas pessoas estão testando
alternativas nesse sentido
convidado190529> Tenho que ir. Parabéns Cara! Tá
muito boa a tua ferramenta.
fabianofranz> valeu, um abraço! qualquer dúvida é
só contactar
Guapo> e não é possível fazer alguma integração
com os browsers?
fabianofranz> é uma das alternativas que está sendo
testada hoje. estamos testando, por exemplo, o jdic (http://jdic.dev.java.net)
fabianofranz> O Mark Conlin, um colega da Inglaterra,
está testando essa alternativa. mas vamos testar bem,
uma vez que não quero perder a característica
"thin" da aplicação
Guapo> Fabiano, de todas as escolhas que vc teve que
fazer para implementar o thinfeeder, teria alguma que vc
mudaria?
fabianofranz> tenho duas considerações acerca da
escolha das tecnologias:
fabianofranz> 1. pretendo ainda seguir com os testes
com Prevayler na camada de persistência. é uma
alternativa interessante
fabianofranz> 2. se fosse hoje, talvez não
utilizasse a Informa (http://informa.sf.net) para o
"parse" dos RSS. a biblioteca andou
adicionando muitas dependências ultimamente...
fabianofranz> o que aumenta o tamanho do
"pacote". e no ThinFeeder utilizamos apenas o
mecanismo de parse da Informa, a persistência, threads
de atualização, etc, não são utilizados. quanto
menos melhor.
Guapo> Quais são as próximas features do
thinfeeder?
fabianofranz> existe um planejamento referente às
futuras features:
fabianofranz>
http://thinfeeder.sourceforge.net/features.php
fabianofranz> ou seja, atualmente estamos no
"Milestone 1"
fabianofranz> para os próximos milestones, serão
adicionadas coisas como busca no histórico,
atualização automática por intervalos de tempo,
edição de skins....
fabianofranz> e mais algumas idéias mais
"mirabolantes", talvez o suporte a
"podcasting" (conteúdo "falado", de
forma a transformar o ThinFeeder em uma verdadeira
rádio de notícias)
fabianofranz> tenho uma idéia que tb acho muito
interessante que são as "views"
fabianofranz> digamos que você tenha interesse por
determinados assuntos, por exemplo, "java",
"aquarismo", "pára-quedismo" e
"música"
fabianofranz> a funcionalidade seria você criar
canais que fossem "filtros" para news de todos
os outros canais, mas só com os assuntos de seu
interesse!
Guapo> interessante, isso é bastante útil
ultimamente com a enchurrada de notícias a que estamos
espostos
Guapo> e porte para celulares e pequenos
dispositivos, é possível?
fabianofranz> não é atualmente uma das prioridades.
mas já pensei em desenvolver algo nesse sentido, uma
vez que o Thinlet (http://thinlet.sf.net) roda no
"J9", JVM da IBM para dispositivos
dausech> Fabiano, parece que nao tem os fontes do
Thinfeeder no CVS do sf.net....
fabianofranz> não, os fontes estão disponíveis,
por enquanto, apenas na distribuição "SRC"
da aplicação
dausech> ok
fabianofranz> ainda não coloquei no CVS, até porque
à exceção da internacionalização e das imagens, o
resto foi desenvolvido só por mim
fabianofranz> mas vou fazer isso em seguida, mais
pessoas já me pediram
fabianofranz> sobre o suporte a
"podcasting" que citei lá em cima:
fabianofranz> imagine transformar o ThinFeeder em uma
estação de rádio?
fabianofranz> onde você ficasse onvindo as notícias
assim que fossem publicadas
Guapo> o grande desafio aí é transformar os textos
em uma voz "entendível", certo?
fabianofranz> exatamente. e existem alguns projetos
bem avançados nesse sentido, em java
fabianofranz> a citar, por exemplo, o FreeTTS
(http://freetts.sf.net)
fabianofranz> atualmente, o melhor suporte é pra
inglês. mas os resultados já são bem impressionantes
Guapo> open-source? geralmente ferramentas assim
custam muito caro
fabianofranz> sim, licença BSD
convidado193528> Oi, cheguei agora... Mais uma vez,
parabéns pelo programa!!!
CKNPassos> Já pensou em criar um filtro para nao
mostrar news duplicadas, por exemplo, um determinado
site temos sai a notícia do lançamento do JAVA 1.5 e
em outro site também, não seria interessant suprimir a
segunda e mostrar apenas a primeira?
CKNPassos> Afim de não "poluir" o monitor
do usuário?
fabianofranz> não é uma prioridade. mas pensei sim
fabianofranz> na verdade, todo o tipo de filtros são
bem-vindos
fabianofranz> por exemplo, tenho aqui 400 canais rss
no ThinFeeder
fabianofranz> um filtro seria interessante
CKNPassos> Quais as principais diferenças entre a
ferramenta ThinFeeder e seus concorrentes?
CKNPassos> Algo como
CKNPassos> porque eu devo utilizar o ThinFeede e não
um de seus concorrentes?
CKNPassos> ou seja, quais as vantagens sobre os
outros.
fabianofranz> tenho algumas premissas básicas para o
desenvolvimento. por exemplo, o suporte a skins, a
característica "thin" e o
"multi-plataforma"
fabianofranz> mas algumas funcionalidades como views,
entre outras, são novidade
fabianofranz> não conta pra ninguèm :-)
Guapo> e além de tudo é feito em Java!!
fabianofranz> exatamente! aliás, o ThinFeeder tem
sido referenciado em vários sites como sendo a melhor
ferramenta RSS para Linux
Tony_Lampada> Onde posso ver alguns screenshots do
ThinFeeder?
fabianofranz>
http://thinfeeder.sourceforge.net/screenshots.php
Tony_Lampada> Qual a biblioteca grafica usada no
ThinFeeder? Swing? SWT, JGoodies?
Tony_Lampada> Tah com cara de JGoodies..
fabianofranz> trata-se do Thinlet (http://thinlet.sf.net), que é baseada em AWT
fabianofranz> funciona através da parametrização
de arquivos XML... vale a pena dar uma olhada!
Tony_Lampada> Essa eu nao conhecia... vou dar uma
olhada (mas que tem cara de JGoodies tem)
fabianofranz> dá uma olhada. a vantagem de ser
baseado em AWT é que é bem mais leve (desde que bem
escrita)
fabianofranz> entre outras coisas, o fato de ser
"peered", etc
fabianofranz> no artigo coloquei alguns "pós e
contras"
Guapo> Fabiano e sobre o HSQLDB, alguma
consideração?
fabianofranz> tche, gostei muito do HSQLDB. o banco
é desenvolvido em Java e, na minha opinião, perfeito
pra ser "empacotado" junto com a aplicação
fabianofranz> http://hsqldb.sf.net
fabianofranz> 100 Kb, se não me engano, com suporte
a transactions, etc, etc
fabianofranz> desenvolvido em java mesmo, ou seja,
multi-plataforma
Tony_Lampada> Concordo, uso o HSQL e nao tenho do que
reclamar.
Guapo> Mas é um banco de pequeno porte certo?
Tony_Lampada> (Tem ateh um benchmark que mostra que
em modo "memory-only" ele chaga a ser 9000
vezes mais rapido que o Oracle! hehehehe
fabianofranz> podes utilizar as tabelas na memória,
em arquivos texto (por exemplo CSV) e em arquivos
formato sei lá o que, do próprio hsqldb
dausech> Dai tambem é covardia né Tony....
Tony_Lampada> dausech, eh vero
fabianofranz> claro, creio que não tenha muita
escalabilidade, etc
fabianofranz> mas nunca utilizei em grandes projetos.
fabianofranz> sei que ele tem um modo servidor
também
Tony_Lampada> soh pra complementar: um "Sei la o
que"-format do HSQL é armazenar os comandos insert
em modo texto
fabianofranz> isso!
dausech> Fabiano, voce acha viavel uma aplicacao em 3
camadas usando Thinlet na View? Conhece alguma aplicacao
com essa arquitetura?
fabianofranz> com certeza sim! veja o site:
http://thinlet.sourceforge.net/showcase.html
fabianofranz> relata alguns "cases"
desenvolvidos com Thinlet
fabianofranz> existem aplicações de todo o tipo em
Thinlet, applets, aplicações desktop,
cliente-servidor...
Tony_Lampada> Voltando ao ThinFeeder entao: Por acaso
o ThinFeeder tem alguma facilidade pra quem usa 2
monitores? (ie. dock/undock de tabs - como existe em
algumas ferramentas de desenv// por aih)
fabianofranz> boa questão, Tony! nunca testei com 2
monitores
fabianofranz> não desenvolvi nada pensando nesse
sentido, mas lançastes uma questão interessante...
Tony_Lampada> hehehe... poucas GUI's pensam nessa
minoria excluida... rsrs
prireis> o thinfeeder funciona em palm também?
fabianofranz> ainda não funciona em palm. mas dado o
fato de Thinlet suportar a JVM J9 da IBM, creio que com
algumas adaptações já funcione...
fabianofranz> em dispositivos que suportem essa JVM
fabianofranz> esses tempos recebi uma "feature
request" de um camarada sugerindo a funcionalidade
de parametrizar a localização do banco de dados
fabianofranz> qual a vantagem disso?
fabianofranz> poderias levar tua coleção de feeds
no chaveirinho USB, colocar na rede, etc...
fabianofranz> achei interessante, estou estudando
essa possibilidade
Guapo> interessantíssimo!!
fabianofranz> daria até pra deixar uma base de dados
de notícias distribuída
fabianofranz> falando nisso...
fabianofranz> uma feature planejada é uma versão
"client-server" da aplicação
fabianofranz> onde você teria a base de dados de
notícias, atualização, etc, em um sevidor, e somente
a interface nas estações
fabianofranz> ou seja, "só um" precisa
utilizar banda pra acessar os sites
fabianofranz> imagine uma empresa onde 30 pessoas
utilizem o ThinFeeder, e todo mundo decida dar um
"Atualizar Tudo" na mesma hora
fabianofranz> um servidor central funcionaria como um
"repositório de notícias"
fabianofranz> também! o site BlogLines (http://www.bloglines.com/) tem algumas funcionalidades
interessantes nesse sentido
fabianofranz> faz um "cache" das feeds, uma
vez que muitos usuários têm uma mesma feed cadastrada
Tony_Lampada> Desculpa fugir do assunto de novo... Eu
fui ver o site do Thinlet e fiquei impressionado. Agora,
vc sabe se existe alguma ferramenta gráfica pra gerar o
tal do XML?
fabianofranz> sim, existe o Theodore
fabianofranz> http://www.carlsbadcubes.com/theodore
fabianofranz> plugin do eclipse (infelizmente) ainda
não tem
Tony_Lampada> legal.. to indo la
fabianofranz> instale e faça suas próprias
avalizações
Guapo> OK, bom pessoal nossa hora está terminando
Guapo> Fabiano e participantes, mais alguma
consideração ou pergunta?
fabianofranz> tenho alguns links interessantes pra
indicar:
fabianofranz> são projetos que procuram melhorar o
Thinlet de alguma forma:
fabianofranz> http://www.realchat.com/thinlet
fabianofranz>
http://perso.club-internet.fr/sjobic/thinlet/
fabianofranz> http://thinlet-contrib.sourceforge.net/
fabianofranz> é isso. o primeiro é o
"Skinlet", que busca melhorar a interface do
Thinlet. Depois, o "Scriptable Thinlet", vale
a pena dar uma olhada. e por fim, o "Thinlet
Contrib", uma "comunidade" que busca
agregar pessoas que estejam fazendo coisas para o
Thinlet
fabianofranz> vale a pena dar uma olhada nesses links
fabianofranz> é isso!
Guapo> Alguma outra pergunta para o Fabiano?
Tony_Lampada> legal, brigado
Tony_Lampada> soh + uma
fabianofranz> vai lá!
Tony_Lampada> vc sabe se dizer quem eh mais rapido:
Thinlet ou SWT?
fabianofranz> não tenho um benchmark pra te
passar... em ambos há vantagens e desvantagens. no
penúltimo parágrafo do arquivo citei o seguinte:
fabianofranz> "Em aplicações desktop, a
aplicação excessiva de patterns que venham em
detrimento de performance é um grande risco."
Tony_Lampada> certo...
fabianofranz> ou seja, em aplicações desktop uma
das grandes preocupações é a performance. assim,
sugiro (MESMO) fazer testes com toddas as
possibilidades!
fabianofranz> beleza!
Tony_Lampada> concordo
Tony_Lampada> brigadao
fabianofranz> falou!
Guapo> Pessoal, então é isso!!
Guapo> Obrigado pela participação de todos
Guapo> Fabiano, obrigado por participar e tirar
dúvidas dos leitores
fabianofranz> obrigado pessoal! quam ainda não leu o
artigo, compre a revista e leia!
fabianofranz> são 6 páginas de uma análise
aprofundada sobre a escolha de cada tecnologia
fabianofranz> até mais!
Guapo> Oficialmente o chat está encerrado, as
pessoas que quiserem ainda continuar conversando, fiquem
a vontade!!!
|
 |