Feeds:
Posts
Comentários

JBoss e JSF (MyFaces)

A partir da versao 4 traz as bibliotecas JSF por default, por tanto, quanto utilizado alguma biblioteca JSF, como MyFaces ou ICEFaces dentro do arquivo .war, quando o deploy é feito alguns problemas podem acontecer informando:
[JBossJSFConfigureListener] MyFaces JSF implementation found! This version of JBoss AS ships with the java.net implementation of JSF. There are known issues when mixing JSF implementations. This warning does not apply to MyFaces component libraries such as Tomahawk. However, myfaces-impl.jar and myfaces-api.jar should not be used without disabling the built-in JSF implementation. See the JBoss wiki for more details.

Para resolver este problema, altere o arquivo web.xml da aplicacao, incluindo o trecho:

<web-app>
<description>description…</description>
.
.
<context-param>
<param-name>org.jboss.jbossfaces.WAR_BUNDLES_JSF_IMPL</param-name>
<param-value>true</param-value>
</context-param>
.
.
.
</web-app>

Ambiente:
JBoss 4.2.1-GA
JDK:1.5
MyFaces: 1.1.1

Source: JBoss/Jira

Meu ultimo pedido no China In Box

Esta noite (09/11/2007) liguei na loja de moema (Av.Pavao) as 22:07 para fazer um pedido.
Ha muito tempo eu faco pedidos no China In Box, e sempre peco o mesmo prato, da mesma maneira: Carne com Batata Imperial, caixinha GRANDE e SEM arroz.
Há tempos deixei de pedir no LigLig pois a carne deles nao é muito boa.
Esta noite consegui convencer minha esposa de que comida chinesa é gostosa, e ela pediu Yakisoba, um Yakisiba pequeno.
O pedido ficou em R$29,30 segundo o Sr. Willian.
Por volta das 22:53, chegou o pedido aqui em casa, PAGUEI e subi o elevador, pois já sao quase 23 horas e preciso jantar.
Minha surpresa foi que veio duas caixinha pequenas, pensei: “Erraram o pedido, mas tudo bem, já é tarde e
faz bem comer muito a noite.”
Abri a caixinha de yakisoba, coloquei no prato para a minha esposa, quando abri a caixinha da carne com batata, a minha surpresa, seguido de ira, a caixinha grande de carne com batatas que eu PEDI, chegou como uma caixinha PEQUENA COM ARROZ!!!
Eu ODEIO arroz, eu NAO COMO ARROZ!!
Peguei o telefone e liguei novamente para o China In Box, com uma (falsa) esperanca que no mínimo eu fosse bem atendido,
e que em 10 minutos no máximo (afinal eu moro na Av.Jacutinga, mais ou menos 5 quarteiroes da Av Pavao, onde fica o China In Box)
o meu pedido fosse entregue corretamente.
Falei com uma garota e expliquei a cituação, ela me disse que ia passar para o gerente para ele resolver.
5 minutos de espera o Sr. William pega o telefone e disse:
“Sr., o sr. pediu uma batata imperial Jr. Executivo e um Yakisoba Jr, Executivo”
Na mesma hora respondi a ele:
“Willian, eu ainda estou calmo e vou explicar pela ultima vez: Eu pedi uma carne com batata imperial grande e sem arroz, e um yakissoba pequeno,
nao sei se é Jr ou nao, o que eu sei é isso, carne com batata grande sem arroz, e um yakissoba pequeno”.
Ele disse:
“Nao Sr, o sr pediu um box executivo jr, e ainda confirmou”
Eu retruquei:
“Willian, abra o seu sistema e veja todas as minhas compras, eu SO compro Carne com batata imperial SEM ARROZ!! EU NUNCA COMPREI UM PRATO COM ARROZ!”
Mais uma vez ele disse que confirmou o pedido, eu perdi a paciencia, disse boa noite e que ia procurar com quem reclamar, e aqui estou, escrevendo
este email para vc’s, e mais, por causa da má
qualidade no atendimento, estou publicando este mesmo email no meu blog para que todos que passem por ele possa constatar a excelente qualidade do
China In Box de moema, e para todos os demais meios (ABF, Procon, etc) que eu achar conveniente.

Sem mais,

Marcio M Garcia

Esta carta de reclamação foi enviada para a Folha (http://www1.folha.uol.com.br/folha/cotidiano/acidadeesua/) , ABF (Associação Brasileira de Franshising) e para a propria China In Box.

  • 13/11/2007

Na última terça feira(13/11) o Sr. Roger proprietário da loja de Moema, entrou em contato se explicando a respeito do problema.

Muito gentil, reconheceu o erro ocorrido, e pelo mal atendimento do funcionario, relatou que o erro ocorreu com dois funcionarios e ambos já foram encaminhados para treinamento, uma vez que a matriz do ChinaInBox preve treinamento aos frranqueados.

Disse ainda que o valor cobrado estava errado, que eu tenho um credito que R$4.

We are uncovering better ways of developing software by doing it and helping others do it.

Through this work we have come to value:

Individuals and interactions over processes and tools
Working software over comprehensive documentation
Customer collaboration over contract negotiation
Responding to change over following a plan

That is, while there is value in the items on
the right, we value the items on the left more.

Site: http://www.agilemanifesto.org/

Algumas vezes é interessante criar arquivos de log distintos para a mesma aplicação, por exemplo: módulos diferentes, front-end e back-end…..

O Log4J é uma lib muito flexível quanto a isso, vejamos as configurações necessários no log4j.properties :

  • Configuração inicial

# Configuração dos logs
log4j.rootLogger=DEBUG, defualtconfig
log4j.logger.br.com.mangar.app01.module01=DEBUG, module1log
log4j.logger.br.com.mangar.app01.module02=DEBUG, module2log
#
log4j.additivity.br.com.mangar.app01.module01=false
log4j.additivity.br.com.mangar.app01.module02=false

  • Appender geral, para todas as classes:

# Appender geral
log4j.appender.defaultconfig=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileglobal.File=${app01_home}\log\app01-geral.log
log4j.appender.fileglobal.DatePattern='.'dd-mm-yyyy
log4j.appender.fileglobal.layout=org.apache.log4j.PatternLayout
log4j.appender.fileglobal.layout.ConversionPattern=%5p %d{dd MMM HH:mm:ss} [%t] %c - %m%n

  • Appender para o Módulo 1

# Appender para o Módulo 1
log4j.appender.fileconpool=org.apache.log4j.DailyRollingFileAppender
log4j.appender.fileconpool.File=${app_home}\log\app01-module01.log
log4j.appender.fileconpool.DatePattern='.'dd-MM-yyyy
log4j.appender.fileconpool.layout=org.apache.log4j.PatternLayout
log4j.appender.fileconpool.layout.ConversionPattern=%5p %d{dd MMM HH:mm:ss} [%t] %c - %m%n

  • Appender para o Módulo 2

# Appender para o Modulo 2
log4j.appender.filexptolog=org.apache.log4j.DailyRollingFileAppender
log4j.appender.filexptolog.File=${app_home}\log\app01-module02.log
log4j.appender.filexptolog.DatePattern='.'dd-MM-yyyy
log4j.appender.filexptolog.layout=org.apache.log4j.PatternLayout
log4j.appender.filexptolog.layout.ConversionPattern=%5p %d{dd MMM HH:mm:ss} [%t] %c - %m%n

Log4J – log diário

Muito útil (e muito simples) de ser configurado, é muito útil principalmente em ambientes de produção, onde os logs serão utilizados para análise e futuras correções de problemas na aplicação.

O mecanismos é o seguinte: o log é gerado em um arquivo durante todo o dia, pode exemplo: app.log, quando o dia é mudado, à 00:00:00 o próximo evento de log, fará com que o arquivo atual (app.log) seja renomeado para o padrão definido na configuração do log, por exemplo: app-dd-mm-yyyy.log e um novo arquivo de log será gerado com o nome de app.log.

# log4j.appender.fileglobal=org.apache.log4j.DailyRollingFileAppender
# log4j.appender.fileglobal.File=${app_home}/log/app.log
# log4j.appender.fileglobal.DatePattern='.'yyyy-MM-dd
# log4j.appender.fileglobal.layout=org.apache.log4j.PatternLayout
# log4j.appender.fileglobal.layout.ConversionPattern=%5p %d{dd MMM HH:mm:ss} [%t] %c - %m%n
>

${app_home} é uma variável de ambiente apontando para o diretorio home da App.

Desde quando a Oracle lançou o Oracle Express Edition muitos desenvolvedores ficaram tentados a instalar em suas próprias maquinas o banco de dados “leve” da Oracle.

Muito legal, muito bacana, praticamente todas as funcionalidades do Oracle Enterprise estavam presentes naquela “Edição Expressa, como diria o Tio Ben: “… grandes poderes trazem grandes responsabilidades…”.

Pois bem, no mundo de DBA as grandes responsabilidades são: criar tablespaces, regras, contrants, objetos, queryes mal feitas, usuarios, hum, usuários, isso é um problema, ainda mais se vc se depara com uma instalação antiga do banco de dados, onde o “instalador” não está mais na empresa, vem aquela terrivel duvida: “Será que alguém mais que o ex-dono dessa máquina sabe a senha do system?

Como era de se esperar claro que não!

Só nos resta remover e instalar novamente o banco de dados, uma vez que este nao permite que seja instalada mais de uma instance na mesma maquina (esta é uma das limitações do XE).

Ok, baixado o isntalador do XE, vamos comecar a remoção, mas espere………… eis que uma mensagem aparece na tela, informando que não consegue remover pois o arquivo de clean nao está presente, eis que vc vai dar uma olhada no diretorio de binario e encontra apenas uma DLL.

Logo vem aquele pensamento: “alguém fez merda!”

Mais uma alternativa, se nao pode remover, entao ao menos instale por cima (terríveis experiencias com o windows!)

Uma nova mensagem é mostrada: “Não é possível instalar enquanto o serviço do oracle estiver instalado”.

Para resolver o problema de re-instalação do OracleXE capenga, eu recorri ao método: “brute force”, que é mais ou menos assim:

  1. Altere o registro do Windows
    1. Abra o RegEdt32 e vá em: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Service localize a entrada do oracle e (sem dó nem piedade) remova!Altere o registro do Windows
  2. Reinicie a máquina (lembre-se estamos lidando com o bicho Windows)

Pronto, agora vc pode reinstalar o Oracle Express Edition, não esqueça de anotar a senha do System!

Continuar Lendo »

Bope.class

/**
 * O Bope foi criado para atuar quando a policia perde o controle
 * E no rio de janeiro isso acontece com bastante frequencia
 */

class Bope{

	private String nome;
	private int qtdeVitimas = 1; // ja começa bem!
	public Bope(String nome){
		this.nome = nome;

	}

	// sobrecarga do método ondeTaOBaiano
	public void ondeTaOBaiano(Estudante e){
		e.sabeVoarEstudante();
	}

	public void ondeTaOBaiano(Traficante t){
		t.levaSacoNaCabeca();
	}

	// exemplo de método final!

	public final Doze encontreiOBaiano(Baiano b){
		return b.naCaraNaoQueEhPraNaoEstragarVelorio();
	}

}
public class Treinamento{

	public void missao(CapitaoNascimento cn){
		cn.sentaOdedoNessaPorra();
	} // Sugestão do leitor Luciano Silva

	public static void main(String [] xxx){
//Apresento o capitão nascimento

	Bope capitao = new Bope(”01″); //Capitao Nascimento
	try{

//de cada 100 policiais que fazem o curso do Bope,
//so se formam 5, e eu, quando me formei parceiro,
//eramos apenas 3.

	Turma.tentaFazerCursoBopeCom(capitao);

while(aluno.count >= 3){
	aluno.pedePraSair();
	   if(aluno istanceof Cafetao){
		 capitao.say(”Pede pra sair!”);
		 capitao.say(”Seu Lugar Eh Com Puta!”);
	   }
	   if(aluno istanceof PorraLoka){
		   capitao.say(”Tira essa farda preta!”);
		   capitao.say(”Voce nao eh cavera. voce eh MULEQUE!”);
	   }
	   if( aluno.isXerife() ) aluno.desiste();
}
} catch (PolicialCorruptoEncontrado pce){
} catch (PolicialFracoEncontrado pfe){
} catch (PolicialSemABandoleiraNessaAlturadoCampeonato e) {
}
}
}

SCRUM

Origem

  • Inicialmente para fabricação de carros e produtos de consumo.
  • Equipes pequenas e multidisciplinares (cross-functional)
  • Desenvolvimento Iterativo

Características

  • Backlog vivo de trabalho
  • Entrega de um conjunto fixo do backlog com iterações curtas (sprints)
  • Breve reunião diária de alinhamento e evolução (scrum)
  • Breve sessão de planejamento para futuros sprints
  • Retrospectiva onde os membros refletem sobre o sprint passado

Scrum Master = Facilitador, não é necessariamente o líder da equipe e sim a pessoa que facilitará o trabalho das demais.

Alertar que o problema não pode ser totalmente entendido ou definido, focando maximizar as habilidades da equipe para responder de forma ágil.
Simplificando

  • Agende a demo do software 1 mês antes com o cliente
  • Tome 1 mês para deixar o software pronto
  • Use o feedback para conduzir os próximos sprints

Práticas

  • Clientes se tornam parte da equipe de desenvolvimento
  • Entregas freqüentes
  • Discussões diárias com a equipe buscando responder as perguntas:
    • O que fez desde ontem?
    • O que planejo fazer até amanha?
    • Algo impeditivo para atingir o objetivo?
  • Reuniões com os stakeholders
  • Ninguém é penalizado por descobrir um problema
  • Locais e horas de trabalhos devem ser energizados, nem sempre “hora extra” significa “maior produtividade”.

Obtidos em: Wikipedia

Resources

Livro sobre Scrum escrito por Ken Schwaber

Ferramenta: ScrumWorks

Tropa de Elite – RingTone

Toques disponiveis para instalar no celular:

1 – Rap das Armas

2 – Tropa de Elite – Tihuana

Tropa

Enjoy!

Nota Fiscal Paulista

Nota Fiscal Paulista

Muito legal a iniciativa e o melhor, o site funciona bem, a nao ser alguns
problemas menores com o Firefox, mas no IE vai bem.

O que é?
Agora em São Paulo é assim: até 30% do ICMS recolhido pelo estabelecimento comercial será devolvido ao consumidor. Isso vai reduzir, de fato, a carga tributária individual dos cidadãos. O Governo do Estado de São Paulo instituiu a lei que cria o Programa de Estímulo à Cidadania Fiscal e vai implantar o projeto da Nota Fiscal Paulista a partir de 1° de outubro 2007. O projeto da Nota Fiscal Paulista vai devolver dinheiro para os consumidores. Ele será um incentivo para que os cidadãos que adquirem mercadorias exijam do estabelecimento comercial o documento fiscal. Os consumidores identificados pelo CPF ou CNPJ no momento da compra, vão receber créditos e ainda vão se habilitar a concorrer a prêmios. O objetivo é incentivar nos cidadãos o hábito de exigir a nota ou o cupom fiscal.

Como funciona?
1 – Em cada compra, o consumidor solicita sua Nota Fiscal/Cupom Fiscal ou Nota Fiscal on-line e informa seu CPF/CNPJ.
2 – O vendedor registra o CPF/CNPJ do comprador. Ele emite o Cupom Fiscal, a Nota Fiscal tradicional ou gera, no site, a Nota on-line.
3 – Após o recolhimento do ICMS pelo estabelecimento, a Secretaria da Fazenda creditará ao consumidor a parcela do imposto a que ele tem direito, proporcional ao valor da compra.
4 – O crédito poderá, dentro de cinco anos, ser utilizado para reduzir o valor do débito do IPVA, transferido para a conta corrente, poupança, creditado em cartão de crédito, transferido para outra pessoa ou devolvido em prêmios.

Problemas?
Nao funciona muito bem com o Firefox, no entanto, funcionará (espero) muito bem para o bolso!

Estabelecimentos em que já é possivel conseguir o crédito?
http://www.nfp.fazenda.sp.gov.br/lista.shtm
(ainda nao tem nenhum estabelecimento)

Como me cadastrar?
Acesse e informe os dados iniciais, lembre-se que os dados para o primeiro acesso sao os constantes na sua declaração do IR: https://www.nfp.fazenda.sp.gov.br/login.aspx?ReturnUrl=%2fPrincipal.aspx

Endereço: http://www.nfp.fazenda.sp.gov.br/

« Novos Posts - Postagens Antigas »