terça-feira, 6 de dezembro de 2011

Managing SQLite Database - SQLite Expert Personal

This is a free and a great SQLite database manager. It also manages the Android SQLite database easily.

SQLite Expert Personal
http://www.sqliteexpert.com/









segunda-feira, 5 de dezembro de 2011

JBoss Envers and Temporal Databases

It can be used in need of Temporal Databases[1]... It is a great option for historic data!

Envers: Easy Entity Auditing
"The Envers project aims to enable easy auditing/versioning of persistent classes. All that you have to do is annotate your persistent class or some of its properties, that you want to audit, with @Audited. For each audited entity, a table will be created, which will hold the history of changes made to the entity. You can then retrieve and query historical data without much effort." [2]

[1] http://en.wikipedia.org/wiki/Temporal_database
[2] http://www.jboss.org/envers

Hibernate - the best choice

Ok, Hibernate [1] is the best choice for design applications!

"Hibernate is best used to leverage end-to-end OR mapping. It provides a complete ORM solution, but leaves you no control over queries. Hibernate is an ideal solution for situations where you have complete control over both the application and the database design. In such cases you may modify the application to suit the database, or vice versa. In these cases you could use Hibernate to build a fully object-relational application. Hibernate is the best option for object-oriented programmers who are less familiar with SQL." [2]

[1] Hibernate Documentation
http://www.hibernate.org/docs

[2] Comparison of iBatis, Hibernate and JPA
http://www.narendranaidu.com/2008/07/comparison-of-ibatis-hibernate-and-jpa.html

terça-feira, 25 de outubro de 2011

Onde cada Managed Bean entra na arquitetura MVC

Onde cada Managed Bean entra na arquitetura MVC (Model-View-Controller)

[1] mostra as diferenças entre os MBs:
  • Model Managed Bean
  • Backing Managed Bean
  • Controller Managed Bean
  • Support Managed Bean
  • Utility Managed Bean

É muito importante ler esse link abaixo, entendendo o o baixo acoplamento e a alta coesão entre os MBs e a utilização real do MVC e seus benefícios.

[1] http://blog.icefaces.org/blojsom/blog/default/2009/04/23/Making-distinctions-between-different-kinds-of-JSF-managed-beans/

E aproveitando...
http://www.rponte.com.br/2009/08/27/managed-beans-nao-complique-simplifique/

sexta-feira, 21 de outubro de 2011

Baixo Acoplamento e Alta Coesão - Regras que valem ouro!

Use e abuse dos melhores tipos de acoplamento e coesão!

Acoplamento
  • Inter-dependência entre módulos
  • Tipos (do melhor ao pior)
    • Mensagem: interface pública para troca de mensagens
    • Dados: módulos compartilham dados via parâmetros
    • Selo: dados estruturados subutilizados
    • Controle: módulo envia comandos para o outro
    • Externo: compartilham um formato de dados externo, protocolo de comunicação ou interface de dispositivo
    • Comum: dados globais
    • Conteúdo: um módulo depende da funcionalidade interna do outro, um muda o outro tem que mudar também
Coesão
  • Princípio de ouro para ser mantido no projeto
  • Tipos (do melhor ao pior)
    • Funcional: única tarefa
    • Sequencial: saída de um módulo é entrada em outro módulo
    • De comunicação: operações unidas sobre os dados
    • Procedural: procedimentos de algoritmos
    • Temporal: dependência de tempo
    • Lógico: depende de variáveis de condições lógicas
    • Coincidente/acidental: nada 
Referências
http://c2.com/cgi/wiki?CouplingAndCohesion

domingo, 16 de outubro de 2011

"Primefaces is not defined" error

At starting with Primefaces, the error "Primefaces is not defined" happens. It's because Primefaces needs h:head JSF tag in the page.

To fix, just do that:

  1. How can I fix the "PrimeFaces not found" javascript error? Make sure to have h:head tag in your page.

http://www.primefaces.org/faq.html

Using Facelets and CSS

Start rightly:


Facelets fits JSF like a glove
http://www.ibm.com/developerworks/java/library/j-facelets/

30 CSS Best Practices for Beginners

http://net.tutsplus.com/tutorials/html-css-techniques/30-css-best-practices-for-beginners/

sábado, 15 de outubro de 2011

Configurando Tomcat 7 no Eclipse Indigo

  • Baixe o Tomcat em
  • Em Server Locations
    • Selecione a opção para que o Eclipse controle o Tomcat
      • "Use Tomcat instalattion (takes control of Tomcat installation)
  • Altere o Deploy Path para o diretório webapps dentro da instalação do Tomcat, assim o projeto vai corretamente para a pasta de auto deploy do Tomcat. 
  • Caso seu projeto seja em JSF, garanta que os diretórios estejam de acordo
    • Pasta do Projeto
      • WEB-INF
        • lib
          • (jars e afins da aplicação)
        • faces-config.xml
        • web.xml
      • index.jsp (na pasta raiz)



sexta-feira, 14 de outubro de 2011

Configurando as Tags JSF 2.0 em arquivos .XHTML com Facelets no Eclipse


Ao utilizar .JSPX e .XHTML para JSF 2.0, o Facelets obriga que seja utilizado o .XHTML [1], porém o Eclipse não completa as Tags JSF no .XHTML. Mesmo com a tentativa em [2], configurando no Eclipse que .XHTML deve informar as Tags JSF, não deu certo. Um bug no Eclipse foi aberto para isso [3], e num comentário havia uma solução [4]. E finalmente consegui utilizar as Tags JSF em arquivos XHTML! Utilizei o Eclipse Indigo 3.7.1.


Steps overview: [4]
[...]
2) Create a Dynamic Web Project. Apply the JSF 2.0 facet.
3) Create a XHTML page. Open it in the Web Page Editor (optional)
4) Use content assist to add the namespace to the JSF 2.0 libs. See attachment,
CA-Namespace.png 
5) Use  content assist to add a JSF tag.[...]
[1] Facelets Tag Completion in Eclipse
http://www.mojavelinux.com/blog/archives/2006/12/facelets_tag_completion_in_eclipse/
[2] Eclipse Galileo - JSF Content Assist for xhtml files
http://www-02.imixs.com/roller/ralphsjavablog/entry/eclipse_galileo_jsf_content_assist
[3] Bug 314098 - JSF Content Assist for xhtml files
https://bugs.eclipse.org/bugs/show_bug.cgi?id=314098
[4] Bug 314098 - JSF Content Assist for xhtml files - Comment 4
https://bugs.eclipse.org/bugs/show_bug.cgi?id=314098#c4

segunda-feira, 10 de outubro de 2011

quarta-feira, 5 de outubro de 2011

Just one cup of coffee a day

Praticamente impossível não referenciar o café...



terça-feira, 4 de outubro de 2011

JSF 1.2 and JSF 2.0 Tag Library and API - Javadoc

It's useful for JSF development:

Javadoc - JSF 1.2 Tag Library
http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/1.2_MR1/docs/tlddocs/index.html

Javadoc - JavaServer Faces API
http://download.oracle.com/docs/cd/E17802_01/j2ee/javaee/javaserverfaces/1.2_MR1/docs/api/index.html

Javadoc - JSF 2.0 Tag Library
http://download.oracle.com/javaee/6/javaserverfaces/2.0/docs/pdldocs/facelets/

Tags from the book Core JavaServer Faces by David Geary and Cay Horstmann
http://www.horstmann.com/corejsf/jsf-tags.html

Interaction Design Pattern Library

Diversos padrões de interfação de interfaces web/desktop, muito interessante!

Interaction Design Pattern Library
http://www.welie.com/patterns/

segunda-feira, 3 de outubro de 2011

Web Interfaces Patterns

Material muito interessante sobre padrões Web de Interfaces de Usuário.

12 Standard Screen Patterns
http://designingwebinterfaces.com/designing-web-interfaces-12-screen-patterns

Logo Designing Web Interfaces
http://designingwebinterfaces.com/explore

30 Essential Controls
http://designingwebinterfaces.com/essential_controls

15 Common Component Patterns
http://designingwebinterfaces.com/15-common-components

Apesar desse material de outro livro, irei ler o livro
Designing Web Navigation - Optimizing the User Experience
http://shop.oreilly.com/product/9780596528102.do

domingo, 2 de outubro de 2011

JUnit 4 vsTestNG


Creio que é hora de começar a usar TestNG...

JUnit 4 Vs TestNG – Comparison

In pursuit of code quality: JUnit 4 vs. TestNG

7+-2 - Sete Mais ou Menos Dois não se deve utilizar como regra em menus!

Já ouviram falar na regra 7+-2? Principalmente para a organização de menus...

Pois bem, eu também.

Além de ouvir há uns anos atrás, li novamente no livro e-Usabilidade(1) de Simone Bacellar Leal Ferreira e Ricardo Rodrigues Nunes.

George Armitage Miller foi quem sugeriu que a mente humana memoriza 7 +- 2 segmentos de informação(2), e isso não tem a ver com organização de menus! Isso é um engano mantido por tempos, pois os usuários não precisam memorizar todas as opções contidas em cada menu!

Qualquer dúvida a essa relação incorreta, leia no livro Design de Interação: Além da Interação Homem-Computador (3) (título original: Interaction Design: beyond human-computer interaction). Lá tem uma página completa falando sobre essa relação 7+-2.

(1) http://www.ltceditora.com.br/e-Usabilidade/
(2) http://www.psych.utoronto.ca/users/peterson/psy430s2001/Miller GA Magical Seven Psych Review 1955.pdf
(3) http://www.id-book.com/