Pré requisitos de um curso são uma das partes mais importantes do curso, lembrar de colocar isto em contrato para o próximo curso.
Colocar em contrato também o tamanho máximo de turma para cursos com “turma fechada”.
Vivendo e aprendendo.
Tags: Trabalho
O blog vai ficar meio quieto neste fim de semana, segunda feira eu posto mais …
20 horas de viajem (10 de ida e 10 de volta) Poa/Pato Branco/Poa, curso o dia inteiro, e sem internet no hotel …
Até segunda galera
PS.: o pessoal que participou do curso, ou ainda esta participando, por favor poste aqui as suas impressões, o que acharam do curso?
Bom, os que prestaram atenção, viram que a caixinha do infoblogs sumiu novamente dos posts aqui do blog.
Desta vez vou demorar para colocar de volta, por que quando o infoblogs cai, fica impossivel de ver as páginas aqui do blog.
Acho a ideia do site espetacular, mas o link para votação eu não vou colocar mais aqui no blog apenas por que esta muito frequente este essquema de não ser possivel ver as páginas do blog por causa de algum problema no servidor deles, vou apenas colocar um link no roda pé dos posts para quando alguem quiser votar por la
Valeus galera.
Acho que mais alguem alem de mim ja teve problemas para testar aplicações que utilizam JavaMail …
Bom, quando eu precisei disto, não encontrei nenhum tipo de mock, e o que consegui fazer foi criar um monte de contas fake em um servidor de e-mails local …
Mas agora ja existe o Mock Java Mail que permite o envio/recebimento de mensagens para uma caixa postal “in memory”, graças a plugabilidade da API Java Mail.
Basta adicionar o jar do Mock Java Mail no classpath e começar a brincar …
Por exemplo, este código que normalmente envia e-mails “de verdade”, para um servidor “de verdade” vai apenas enviar os e-mails para esta caixa postal “fake”.
MimeMessage msg = new MimeMessage(); ... msg.setRecipients(TO,"kohsuke.kawaguchi@sun.com"); Transport.send(msg);
E você pode ler estes e-mails programaticamente assim:
Listinbox = Mailbox.get("kohsuke.kawaguchi@sun.com"); assertEquals(inbox.size(),1); // o e-mail foi enviado realmente?
Ou então utilizando a API do próprio JavaMail para receber os e-mails.
Session session = ...;
Store store = session.getStore("pop3"); // poderia ser imap também
// conectar a caixa postal
store.connect("sun.com","kohsuke.kawaguchi","anything");
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_WRITE);
Message[] msgs = folder.getMessages();
Vou dar mais uma pesquisada, mas só isto ja esta perfeito!!
Só falta ter uma forma de testar envios com erro também, por exemplo simular uma caixa postal inválida
Estou baixando os fontes e o jar para dar uma olhada na API, mas fica a dica, a proxima aplicação que fizerem que utilizar JavaMail, ja não precisa mais ser tão complicada assim de testar …
Tags: Java
O Curso vai ser próximo dia 12, então corram para se inscrever e não perderem esta oportunidade.
O Curso vai ser realizado pela Tech Office IT, eu preparei o material e sou o instrutor do curso.
|
||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Bom galera, este fim de semana estarei ministrando um curso de Servlets e Java Server Pages pelo NTI e ACEPB em Pato Branco. (Não achei o link do blog do NTI se alguem quiser me passar ele atualizo o POST).
Então até sabado para quem vai fazer o curso, e se alguem que mora em Pato Branco ler isto antes de sabado a noite, entre em contato para tomarmos uma cerveja
Bom, não costumo fazer isto, mas a noticia vale o quote!
O Flex da adobe acaba de ser liberado como open source, li neste blog.
Pronto!
Não deram tempo para a Microsoft respirar com o Silverlight , e a Adobe acaba de anunciar a liberação do FLEX SDK sobe a licença Mozilla Public Licence.A equipe do Flex disse que abrindo o código fonte de vários projetos incentivaram eles a criar o labs da Adobe, e assim foi um grande sucesso. Segundo eles, no estágio que o Flex 2 se encontra e sabendo de muitas atividades acontecendo em volta, resolveram liberar o código fonte das seguintes features:
* Compiladores do Flex (mxmlc, compc, asc) – por linha de comando
* Debugger por linha de comando
* Utilitários para visualização do código fonte
* Framework para atualizatizar testes
* Flex core component library – Isto está incluso os compontes do Apollo
* Build ScriptsEntre outras, confira na integra nos seguintes links:
http://blogs.zdnet.com/Stewart/?p=353
http://scobleizer.com/2007/04/25/adobe-opensources-flex/
http://www.onflex.org/ted/2007/04/flex-goes-open-source-mpl.php
http://labs.adobe.com/wiki/index.php/Flex_Open_Source_FAQ
Welcome to the Bazaar! =D
Grande abraço!
Bom, só pra não parecer que eu abandonei o blog.
Tenho 5 cursos para ministrar no próximo mes, e não terminei o material de todos ainda, por isto não tenho escrito muita coisa por aqui (hoje a noite um post de pura propaganda sobre o próximo curso da Tech Office em Porto Alegre
)
Mas voltando ao assunto, olhem esta imagem:
O Eclipse 3.3, finalmente resolver agrupar todos aqueles jars que adicionamos no classpath do projeto dentro de um único container …
O que deixa muito mais limpo o ambiente, e pelo menos na minha opinião, mais fácil de trabalhar …
Ja estava na hora mesmo, o NetBeans e o IDEA ja trabalham assim há bastante tempo.
Tags: Eclipse
Bom, eu retiro o que eu disse neste post.
ICEFaces é um lixo!!!
Escrevi aquele post maravilhado com a facilidade de utilizar o tal do ICEFaces …
e nos ultimos tempos, todos os comentários diziam que o exemplo não funcionava, resolvi então baixar o ICEFaces novamente e testar tudo, ja que fazia muito tempo que eu não o utilizava, e o post foi escrito enquanto eu estava testando opções para um projeto, por tanto, nunca cheguei a utiliza-lo em produção …
Bom, baixei a versão de desenvolvimento 1.6.x e realmente nada funcionou …
baixei a ultima versão estável, e novamente, nada funcionou …
mas como eu tinha certeza absoluta que o exemplo funcionava quando eu postei no blog …
tentei me lembrar qual a versão utilizada no exemplo, e foi a 1.5.0 …
baixei esta versão, e como mágica tudo passou a funcionar …
Agora veja, que lixo de framework …
um exemplo extremamente simples, utiliza 3 componentes, e eu testei eles de forma individual, mas não funciona nem colocando apenas o selectText se não estiver utilizando a versão 1.5.0, se rodar com a 1.5.1 quebra tudo …
Imagina o quanto os clientes destes caras não xingaram eles …
Mas resumindo, atualizei o zip com o exemplo para vocês brincarem um pouquinho, mas a partir de hoje, a minha posição para com o ICEFaces é: NÃO USE, A NÃO SER QUE QUEIRA SE INCOMODAR NO FUTURO!!!
Tags: Java
Bom, não sei se alguem mais ja teve problemas com isto …
mas eu estava desenvolvendo um wizard em uma aplicação web, onde por diversos motivos, o wizard todo precisava utilizar a mesma sessão do hibernate …
O problema é que o hibernate tem mania de quando se altera algum objeto, e a sessão ainda estiver aberta, ele persiste as propriedades alteradas mesmo que você não chame um update …
Neste caso especifico, eu tinha ja montado relacionamentos entre objetos persistentes (que vieram do banco), e objetos ainda não existentes no banco, e que ainda não estavam prontos para serem persistidos …
Existiam diversas transações durante este wizard, e em algum momento ele fazia um flush antes de iniciar uma transação e por causa do “persistence by reachability”, ele tentava salvar também os objetos que ainda não existiam no banco de dados, mas ja estavam associados a um objeto que havia sido lido do banco de dados …
e como este objeto tinha algumas propriedades not null, que ainda não haviam sido setadas, estourava um erro …
este erro até que não foi ruim, eu perdi o dia inteiro para resolver este erro chato, mas seria pior ainda se ele inserisse os dados no banco antes de eu manda-lo fazer isto …
pois seguindo com a dica: se algum de vocês estiver em uma situação parecida com esta, a solução é mais fácil do que parece, considerando que o Hibernate não tem uma chave que permita desabilitar esta “feature” de salvar as coisas antes de você mandar ele fazer isto …
Foi só garantir que todos os metodos de leitura fossem executados dentro de uma transação “read-only”
se o spring estiver gerenciando as transações para vocês, é só colocar um:
@Transactional(readOnly=true)
nos metodos de leitura …
se for a API nativa do Hibernate ai a unica forma que encontrei foi setar o flushMode da session para NEVER ja que é exatamente esta a implementação do spring …
aparentemente isto solucionou o meu problema ![]()
Espero que a dica ajude alguem a perder menos tempo com isto do que eu perdi …
Tags: Java, Spring Framework
Uma das coisas mais chatas hoje para desenvolver aplicações Java é a necessidade de configuração.
E não me entendam errado, eu acho que a possibilidade de configuração é uma coisa excelente …
Acho que estou batendo demais nesta tecla, mas isto não é culpa apenas da plataforma …
Vejam o seguinte exemplo …
Alguem chega para você e diz que tem uma solução para persistência automática dos objetos, mas a aplicação precisa seguir alguns padrões para isto funcionar …
Bom, este é só um exemplo, o padrão adotado poderia ser qualquer um …
Qual seria a sua reação para com este framework de persistência?
…
Bom, eu fiz um teste e apresentei esta solução a algumas pessoas e a reação foi exatamente a mesma em todos os casos …
…
Todos disseram algo semelhante com:
Ahh, mas eu não gosto deste padrão, o framework suporta o padrão de nomes XYZ que eu criei para usarmos na empresa?
…
Eu respondia: não, o padrão precisa ser este, caso contrario precisa-se configurar a classe inteira ou classe por classe.
Ahh, então o framework é ruim, não serve, ainda esta muito no inicio, ….
Por que eu quero um framework para configurar automaticamente se eu vou precisar configurar manualmente?
Agora a mesma situação com o Ruby on Rails por exemplo, a grande maior parte dos desenvolvedores RoR que conheço, simplesmente aceita o padrão de nomenclatura do RoR, pelo menos para aplicações novas (claro que este tipo de solução não se encaixa para problemas legados) …
Ou seja, sera que sou só eu que acho que as coisas deveriam ter uma configuração padrão, e só nos obrigar a configurar quando quisermos fugir deste padrão?
e principalmente, se quisermos alterar apenas um pequeno pedaço da aplicação, por exemplo, apenas uma das entidades quer seguir outro nome, só configurar aquela entidade, e não a aplicação toda por causa disto …
Levando isto ao extremo, coisas como a API de Servlets, deveria permitir que frameworks se auto configurassem …
que deveriamos ser obrigados a fazer menos coisas repetidas, e utilizar menos código repetido, por que por exemplo, o web.xml que utilizo é identico em 90% das aplicações …
e sou obrigado a copiar e colar ele sempre …
e no dia que eu descobrir um bug nele, precisarei alterar todas as minhas aplicações …
qual é o problema com facilitar a vida do usuário/desenvolvedor?
Ai alguem vai dizer, mas as ferramentas deveriam fazer isto para você …
Bom, ai temos alguns outros argumentos …
EJBs estão esperando uma ferramenta para facilitar o trabalho desde a versão 1.0
JSF ainda esta esperando uma ferramenta a altura do Visual Studio (este é o caso que chegou mais proximo de conseguir algo na minha opinião, o que estragou foi a mania que temos de “quero fazer do meu jeito”, inclusive foi esta mania que fez eu não gostar da primeira versão do Java Studio Creator, o meu argumento era que a aplicação ficava muito engessada, o que não era realmente tão verdade assim, ele só não deixava eu trabalhar da forma como eu queria, eu não aceitei os padrões dele)
SWING ainda esta esperando uma ferramenta …
E por que as coisas não poderiam simplesmente ser amigáveis ao desenvolvedor, e permitir a utilização de ferramentas também?
(Alguem lembra do Delphi? É perfeitamente possível e fácil criar formulários 100% via código na mão, e mesmo assim tem um editor de formulários espetacular … )
e por ultimo …
Estas ferramentas não são criadas simplesmente por que não é possível, ou por que não aceitamos elas por estarmos mal acostumados?
Sera que nenhuma empresa investe em criar estas ferramentas por que desenvolvedores java estão tão acostumados a passar trabalho que gostam disto? mesmo que em algum nível inconsciente?
PS.: acho que escrevi praticamente a mesma coisa ja, só não lembro se foi aqui no blog ou em algum forum por ai
Tags: Java
Tudo beleza galera?
bom, eu sei que este não é exatamente o propósito do blog, mas acho que muitos de vocês ja tem alguma experiência em desenvolvimento …
Primeiro, não se assustem, eu não estou largando Java, e continuo utilizando java como linguagem principal de desenvolvimento …
Mas na próxima semana eu preciso desenvolver um sistema de cadastros (uns 4 cadastros) e 5 ou 6 relatórios …
Obrigatoriamente desktop …
Ai a dúvida, eu tenho muito pouca experiência em desenvolvimento java desktop, trabalho praticamente só com Java EE.
Ja trabalhei algum tempo com Delphi (3 ou 4 anos, mesmo fazendo uns 4 pelo menos que eu não mexo com Delphi).
E estudei um pouco C# e achei bem legal …
ai fica a duvida, vocês utilizariam Java, Delphi ou C# para desenvolver um sistema destes com muito pouco tempo?
Estou bastante inclinado a fazer em Delphi, mas ainda tenho algumas duvidas …
Tags: Trabalho
Andei olhando alguns videos por ai …
Le Parkour é muito legal de se ver ![]()
Estou começando a ficar interessado em tentar começar a brincar …
Encontrei inclusive este blog sobre um pessoal que esta praticando aqui em porto alegre
(more…)
Tags: Diversão
Falar ingles ou não?
bom, este é um assunto bastante discutido por ai …
Inclusive fui criticado semana passada por traduzir alguns artigos que eu acho legais aqui no blog.
Vejam bem, estas traduções tem três objetivos simples, nenhum deles é incentivar pessoas a não aprender ingles, por que como eu ja falei antes, acho imprescindivel para qualquer um que queira trabalhar com informatica, saber no minimo ler e escrever em ingles.
Estas traduções tem por objetivo exatamente nesta ordem: (more…)