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!!!






 
© 2003 - MundoJava - Todos os direitos reservados <design: www.id-art.com.br >