JSF and Bootstrap form modal

Na atualização de versão do software twarehouse além da migração do Tomcat para o Wildfly, a correção de alguns bugs, o refatoramento das classes e outras melhorias resolvi alterar o framework front-end do primefaces para o bootstrap (Twitter).

Tenho enfrentado muitos desafios neste processo já que é grande o trabalho para configurar templates htmls criados com bootstrap.

Somado a isso ainda há algumas incompatibilidades de design e comportamento entre o framework e o JSF, que consomem bastante tempo e neurônios.

Uma dessas dificuldades que enfrentei foi quando surgiu a necessidade de um mensagem de confirmação na exclusão de registros:

Controle na pesquisa dos registro.s

Controle na pesquisa dos registro.

Os “botões” do controle na verdade correspondem ao atributo <a> do html com o atributo jsfc que permite a utilização dos atributos do componente aninhado à tag html, no caso o <a>. Segue abaixo:


<a class="btn btn-danger" 
 jsfc="h:commandLink"
 type="button"
 action="#{pesquisaSubgrupoBean.setSubgrupoSelecionado(subgrupo)}"
 immediate="true">
 <f:setPropertyActionListener 
 value="#{subgrupo}" 
 target="#{pesquisaSubgrupoBean.subgrupoSelecionado}"/>
 
 <f:passThroughAttribute name="data-toggle" value="modal" />
 <f:passThroughAttribute name="data-target" value="#myModal" />
 <f:ajax/>

 <i class="icon_close_alt2"></i>
</a>

Até ai tudo bem. O problema mesmo era fazer com que o form modal fosse chamado ao clicar no botão. Segue o código do form:


<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModal" aria-hidden="true" data-keyboard="false" data-backdrop="static">
 <div class="modal-dialog modal-sm">
 <div class="modal-content">
 <h:form id="myForm">
 <div class="modal-header">
 <button aria-hidden="true" data-dismiss="modal" class="close" type="button">×</button>
 <h4 class="modal-title">Confirmação de exclusão</h4>
 </div>
 <div class="modal-body">
 <h:panelGroup 
 layout="block" 
 id="panelDescricao">
 
 Deseja realmente excluir o registro selecionado?
 
 <a type="submit"
 class="btn btn-warning btn-sm"
 jsfc="h:commandLink"
 action="#{pesquisaSubgrupoBean.excluir()}">
 Sim
 <f:passThroughAttribute name="data-dismiss" value="modal" />
 <f:ajax
 execute="@this"
 render="@form"/>
 </a>
 
 <button 
 id="close"
 type="submit" 
 class="btn btn-info btn-sm">Não</button>
 </h:panelGroup>
 </div>

 </h:form>
 </div>
 </div>
</div> 

Após muitas falhas, como Edson, só precisei acertar uma vez. Com a adição dos atributos no código do botão o form passou a ser chamado, mas instantaneamente era fechado:


 <f:passThroughAttribute name="data-toggle" value="modal" />
 <f:passThroughAttribute name="data-target" value="#myModal" />
 

Form modal chamado pelo botão excluir.

Form modal chamado pelo botão excluir.

Espero que tenha contribuído e ajudado alguém, já que vi algumas tantas dúvidas ainda não respondidas ou que a solução fosse diferente e ineficaz.

Em tempo: ainda tem um pequeno problema. Não consegui a descrição das instância selecionada na mensagem de exclusão. O componente seta a propriedade mas o valor não é exibido. Vou debugar utilizando alguns phaseListeners para identificar o momento de cada ação.

Até!


Site institucional tetra TI no ar.

tetrati-desenvolvimento

Voltando aos posts depois de algum muito tempo, aproveito para lançar o site institucional da empresa tetra TI.

A criação deste site representa dois marcos: a criação do nome, já que o domínio era sidroniolima.com.br, que passará a corresponder a este blog. E a tendência e consolidação do desenvolvimento Web, estático ou dinâmico.

Com isso surge então o tetrati.com.br com a apresentação de 3 principais projetos:

  • O software PCP que está em desenvolvimento;
  • O software Twarehouse (foto), já comercializado, para controle de almoxarifado e estoque;
  • Dashboard do Twarehouse.

    Dashboard do Twarehouse.

  • E o software ERP para micro e pequena empresas que será lançado em breve.
  • Para conhecer o Twarehouse basta acessar aqui.

    Em breve novas atualizações!


    Os números de 2012

    Os duendes de estatísticas do WordPress.com prepararam um relatório para o ano de 2012 deste blog.

    Aqui está um resumo:

    600 pessoas chegaram ao topo do Monte Everest em 2012. Este blog tem cerca de 2.100 visualizações em 2012. Se cada pessoa que chegou ao topo do Monte Everest visitasse este blog, levaria 4 anos para ter este tanto de visitação.

    Clique aqui para ver o relatório completo


    Backup Schedule no MySql – Resolvendo

    Saudações!

    Em uma aplicação que estou desenvolvendo me deparei com erro ao criar um backup agendado (Schedule backup) no MySql Administrator.

    Pesquisando eu observei a quantidade de desenvolvedores com o mesmo problema. Algumas soluções propostas não funcionaram e como eu consegui, resolvi postar a solução, que é simples.

    Ao criar um projeto de backup e defini-lo como agendado, o MySql cria um task no windows, mas o problema é que ele não executa e gera o seguinte erro no log de tarefas do windows, o arquivo SchedLgU.Txt:

    (MySQLAdministrator.exe) 12/1/2013 10:10:00 ** ERRO **
    A tentativa de recuperar informações da conta para a tarefa especificada falhou. A tarefa não foi executada. Ocorreu um erro ou não existiam informações de conta para a tarefa.
    O erro específico é:

    0x8004130f: Não foi possível encontrar informações de conta no banco de dados de segurança do agendador de tarefas para a tarefa indicada.

    Cheguei a solução que é necessário marcar a opção Executar somente se conectado nas opções da tarefa (task) criada pelo MySql. Só isso e funcionou.

    Espero ajudar aos muitos que passaram por esse problema.

    Até!

     


    As maiores falhas em softwares

    Esse post vai como curiosidade sobre erros ou falhas em softwares que não foram detectadas ou corrigidas a tempo e que provocaram desastres humanos e prejuízos bilionários.

    Uma dessas falhas é citada em Sommerville 8a Ed., em um dos capítulos sobre Teste de Software.

    O vídeo relata 2 falhas, primeiro sobre o desastre no lançamento do Ariane 5 e depois sobre o PATRIOT, sistema de defasa anti-aérea dos EUA.

    As duas falhas foram provocadas por um erro conhecido como erro de arredondamento, ou roundoff error, onde números infinitos, como dízimas periódicas, são impossíveis de se representar utilizando base binária. E, conforme a quantidade de bits usados para representar esse número são feitos arredondamentos, e dependendo da utilização pode levar a diferença de cálculo.

    O segundo vídeo ajuda a explicar isso, e esse link http://en.wikipedia.org/wiki/Round-off_error também traz uma explicação.

     


    COBIT – Negócio + TI

    Nesse post vamos tratar do alinhamento estratégico da TI, seu papel dentro do ambiente e governança empresarial, seus desafios e uma introdução ao COBIT.

    É comum na realidade empresarial atual tratarmos constantemente da preocupação quanto ao alinhamento estratégico de todas as áreas de negócio. Porém a TI vem se destacando como principal fonte de agregação de valor e posicionamento estratégico.

    A TI evolui de um cenário meramente participativo, fornecendo e suportando processos operacionais, através do puro emprego da tecnologia, para uma função de parceiro estratégico. Hoje, ela proporciona o crescimento do negócio, é inseparável, justifica seus gastos através de investimentos. Enfim, suporta além da tecnologia, o negócio.

    Para garantir que a TI esteja alinhada aos objetivos estratégicos, as diretrizes e ao futuro empresarial faz-se uso de uma camada de união entre negócio e tecnologia, a Governança de TI. Através do COBIT, Control Objectives of Information and Related Techonology, suas áreas de foco e seus processos isso se torna possível.

    As áreas de foco da Governança de TI, no COBIT são 5:

    • Alinhamento estratégico
    • Entrega de valor
    • Gerenciamento de riscos
    • Gerenciamento de recursos
    • Mensuração de Desempenho

    É imprescindível o uso dos processos dentro dessas áreas de foco da Governança de TI para o sucesso do negócio. Os desafios da TI como parceira, através do posicionamento estratégico, são muitos, porém suportados pelo COBIT.

    Em outros tópicos vamos expandir os conceitos do COBIT, suas áreas e processos. Sempre voltado para o conceito de Governança e TI com comprometimento estratégico.

     

     


    Gestão por Processos, um esboço

    O foco atual das organizações sobre a agregação de valores aos clientes pode ser encarado como a principal meta da Gestão por Processos. O cliente já não paga pelo produto ou tão somente por ele, mas sim por uma série de valores intrínsecos e inter-relacionados. Uma softwarehouse não fornece programas de computador a seus clientes, viabiliza soluções e contribui para vantagens competitivas.

    Identificar como esses valores são acrescidos à organização é possível através da otimização contínua dos processos operacionais e estratégicos. Daí a gestão por processos.

    O que são processos?

    Toda organização é uma coleção de processos, ou seja, é um composto de atividades de trabalho logicamente inter-relacionadas, executadas para atingir objetivos de negócios. São compostos por pessoas, instalações de apoio, procedimentos, informações e bens facilitadores, de maneira organizada. Na hierarquia de processos temos o processo em si, os subprocessos, as atividades e as tarefas. Podem ainda, ser classificados em primários, ou chaves, e de suporte, ou apoio.

    Processos chaves

    Estão ligados diretamente à produção do produto que a organização tem por objetivo disponibilizar para seus clientes. São todos os que compõem o conjunto de atividades realizadas para projetar, produzir, comercializar e disponibilizar esse produto. Dentro de uma empresa de software, o levantamento de requisitos pode ser considerado como processo chave, pois é a base para todo o projeto. É através deles que chegaremos a um produto de software condizente com a necessidade do cliente, a custos e esforços compatíveis e de interesse competitivo.

    É importante ressaltar que processos críticos são produzidos sob uma perspectiva do cliente sobre a organização, a partir de resultados insatisfatórios e seu grau de impacto.

    Vantagens do Gerenciamento pro processos

    É possível identificar algumas vantagens na adoção do gerenciamento por processos:

    • Alinhamento estratégico;
    • Foco no cliente;
    • Desempenho controlado;
    • Força de trabalho alinhada aos processos;
    • Maior disponibilidade de recursos;
    • Execução eficiente dos processos;
    • Eliminação de duplicidade;
    • Simplificação;
    • Padronização;
    • Automação e/ou mecanização.

    Para que se faça uso dessa gestão, algumas ações devem ser tomadas: os processos devem ser identificados e mapeados, e controlados, através de indicadores.

    Mapeamento de processos

    A identificação e o desenho do processo é executada aqui. É através dela que objetivos, clientes, fornecedores e resultados esperados são definidos e a documentação e a representação visual são criadas. Desta forma o mapeamento se torna a principal ferramenta de entendimento de um processo.

    Algumas perguntas se tornam importantes no processo de modelagem:

    • O que: o que se faz e qual o objetivo.
    • Por quê ou para quê: questiona-se a validade de cada etapa.
    • Quem: autoridade e responsabilidade de cada etapa.
    • Onde: qual o local e se esse é o mais indicado.
    • Quando: sequência, o momento e a ordem correta.
    • Como: execução das tarefas.

    Indicadores

    De nada adianta identificar se não se pode medir. Os indicadores devem focalizar as questões críticas do negócio da empresa e estão diretamente relacionados com o que o cliente espera (valor) e o que é feito para se atingir isso.

    Representam uma ferramenta para suporte a tomada de decisão gerencial e operacional, utilizada para acompanhar e melhorar os resultados ao longo do tempo.

    Porém, é preciso discernimento na escolha dos indicadores. Mas importante de como medir é o que medir. Fazer uso indiscriminado, ou seja, sem priorização ou hierarquia, ou medir apenas para controle de metas ao invés de enfoque na melhoria, ou apenas para cortar custos, ao invés de melhorar o desempenho e qualidade, pode se tornar um entrave à gestão.

    Os indicadores devem proporcionar aumento no desempenho, na eficiência e eficácia dos processos. E nada mais.

    Voltando ao exemplo do levantamento de requisitos, em uma empresa de software, um exemplo de indicador seria a quantidade de requisitos falhos. Através da análise desse, seria possível identificar falhas na execução do processo e oportunidades de melhorias.

    Otimização

    Significa empregar os resultados dos indicadores na busca pela melhoria contínua dos processos, a fim de torná-los uma vantagem competitiva para a organização. Processos otimizados significam qualidade, que impactarão de forma positiva na expectativa de valor para o cliente. A otimização está presente em termos da TI, como ITIL e Cobit, além de claro no PMBOK, na gestão de projetos.

    Com este pequeno esboço, foi tratado alguns pontos da gestão por processos. A definição de processos de negócio, as três etapas, mapeamento, controle e otimização, que estão interligadas e que são cruciais para o alavancamento da agregação de valor aos produtos.  Também foi demonstrado algumas das vantagens na adoção desse tipo de gestão.

    Em um próximo post espero demonstrar o mapeamento de um processo através do Enterprise Architect, utilizando BPMN.

    Não deixe de comentar.

    Até.


    Da crise a Engenharia de Software

    A engenharia de software surgiu em meados da década de 1970 no então momento que ficou conhecido como a crise do software. O cenário da época não é muito diferente do que hoje vivenciamos: a necessidade de software eficiente, com baixo custo e dentro do prazo. O que traduz a tríplice restrição da gerência de projetos, do PMBOK:

    Pela definição, segundo Friedrich Ludwig Bauer, “engenharia de software é a criação e a utilização de sólidos princípios de engenharia a fim de obter software de maneira econômica, que seja confiável e que trabalhe eficientemente em máquinas reais”.

    Para que possamos entender essa definição é necessário antes compreender o que é engenharia. Ao imaginarmos um engenheiro visualizamos a figura de um profissional dentro de uma construção civil, como o famoso capacete de segurança, segurando em uma das mãos um metro e na outra uma planta. Essa visão se adapta inteiramente ao cenário do desenvolvimento de software. Através do metro, retomamos a ideia de medição, indicadores. Através da planta, o projeto. E dentre as preocupações em construir um software de acordo com as necessidades do cliente, a custo e tempo reduzidos está a medição e o projeto.

    Imagine a criação de um edifício com 100 andares de salas comerciais, que abrigarão dezenas de empresas e milhares de funcionários sem um projeto. Agora imagine um software para controle do espaço aéreo de um país sem as mesmas preocupações com o projeto. As consequências seriam desastrosas em ambos os casos.

    Através dessas preocupações e do histórico de insucessos no desenvolvimento de software, surgiu a necessidade de uma disciplina que contornasse o atual cenário e fornecesse estratégias, metodologias, indicadores, ferramentas e processos para a criação de software eficiente. A essa disciplina denominou-se engenharia de software.

    Nos próximos post a ES será abordada de maneira mais técnica e menos ampla: o cenário de desenvolvimento de software no Brasil, as metodologias, o profissional, a combinação de outras disciplinas, como o PMBOK, e várias outros assuntos.

    Fonte: http://pt.wikipedia.org/wiki/Engenharia_de_software


    See What You Print (SWYP)

     

    Através da combinação de fatores de design, inovação, praticidade e interatividade surge um novo conceito de impressora. Estamos acostumados com a acelerada inovação de eletrônicos, surgimento de necessidade desnecessárias, seja Tablets, Smartphones, TVs inteligentes e mais uma infinidade de Gadgets. Mas a diferença é que ao conhecer essa maravilha tecnológica não nos perguntamos se precisamos mas já nos imaginamos uma em nossas mesas.

    Nada melhor do que um vídeo para descrever o que as palavras não conseguem, se é que isso é possível…

    E você achando que sua multifuncional de 1 metro quadrado era o ápice da tecnologia…

     


    Temas Windows 7

    Se vc procura diversificar sua área de trabalho com temas fantásticos, ta ai o link certo!

    http://windows.microsoft.com/pt-BR/windows/downloads/personalize/themes

    São dezenas de temas oficiais Microsoft para o Windows 7. Tem de tudo, desde temas relacionados a marcas até paisagens surreais.

    As categorias são:

    • Animais
    • Arte
    • Automóveis
    • Temas de marcas
    • Jogos
    • Feriados e estações
    • Filmes
    • Natureza
    • Lugares e paisagens
    E pra quem quer apenas papéis-de-parede confere a página do blog primeiro, é claro, e depois dá uma olhada nesse link:
    http://windows.microsoft.com/pt-BR/windows/downloads/personalize/wallpaper-desktop-background