Curso de Desenvolvedor de Relatórios Java em Londrina

jsem4

Veja a grade – JSE M4- Desenvolvedor de Relatórios

“Para que o nome de nosso SENHOR Jesus Cristo seja em vós glorificado, e vós nele, segundo a graça de nosso Deus e do Senhor Jesus Cristo”. 2 Tessalonicenses 1:12

Lubrificando as rodas do java

Hoje eu começo a lubrificação desse carro chamado Java… vamos ai?

20150723_172041

“A terra, SENHOR, está cheia da tua bondade; ensina-me os teus decretos.” Salmos 119:64

Zero-Downtime Deploy com Tomcat

247O termo “downtime”é usado na engenharia de software para referir-se a períodos em que um sistema não está disponível. O tempo de inatividade ou duração da interrupção refere-se a um período de tempo que um sistema não fornece ou executa sua função principal. A indisponibilidade é a proporção de um período de tempo que um sistema não está disponível ou off-line. Isso geralmente é um resultado do sistema deixando de funcionar por causa de um evento não planejado, ou por causa da manutenção de rotina (um evento planejado). O termo é geralmente aplicado a redes e servidores. Os motivos mais comuns para interrupções não planejadas são falhas do sistema (como um acidente) ou falhas de comunicações (vulgarmente conhecido como falha de rede). Foi então que se criou-se o tempo “Zerodowntime deploy” que é ato de se atualizar um nova versão de um sistema sem interromper o serviço.

Como usar no Tomcat?

Desde a versão do tomcat7x existe esse recurso disponível para se atualizar um novo war, sem parar e atrapalhar as pessoas que estão naquele exato momento penduras em sessões HTTP. O tomcat gerencia as versões através do próprio nome do arquivo usando a seguinte sintaxe: “##001″. Muito fácil, ao invés de fazer o deploy um “sistema.war”, faça como “sistema##001.war”. O contexto de acesso na URL vai continuar o mesmo, ou seja, tudo que estiver depois do ## não sera considerado como parte da nomeação, mas internamente o tomcat estará gerenciando as versões.

É ai que vem a mágica, quando chegar a hora de atualizar uma nova versão da solução, faça o deploy usando a versão 2: “sistema##002.war” e assim sucessivamente. O tomcat vai subir a versão 2 da solução simultaneamente a versão 1. Todos os clientes que partir desse momento, acessar a solução, sera automaticamente redirecionado para a nova versão, e todos os clientes que estavam pendurados na versão 1 vão continuar usando como se nada tivesse acontecido. A medida que esses clientes pendurados na versão 1 tem sua sessão HTTP encerradas, eles irão automaticamente sendo redirecionados para a versão 2. Seguindo este modelo, é só uma questão de tempo para a versão 1 ir perdendo sessões ativas, e a versão 2 ir assumindo toda a demanda. Depois que esse tempo passar e a versão 1 estiver sem nenhuma sessão, você já pode parar e remover a versão 1, deletando o “sistema##001.war” diretamente da pasta ou parando o contexto via manager mesmo. Veja alguns artigos sobre:

Como o tomcat controla isso?

Quando é feito o deploy de uma solução gerenciado versões com #00x, o tomcat vai acrescentar o novo  header HTTP em todas as requisições chamado de VERSION que indicará qual é a versão da sessão pendurada. Podemos ter quantas versões simultâneas de war for necessário, desde que os wars estejam devidamente versionadas e o tomcat tenha recursos para rodar todas.

Dicas de Otimização

Já faz um tempo que tenho usado esse recurso em ambiente de produção com sucesso e assim desenvolvi algumas manhas bem interessantes para melhorar e otimizar todo o processo. Veja a seguir:

1. Global DataSource

Não use DataSource local, pois a cada deploy de uma nova versão de war, sera criado um novo DataSource a toa, gastando memoria desnecessariamente. Para contornar isso, use DataSource globais que são criados e carregados apenas 1 vez, reusando dentro de todas as versões que venham a ser simultaneamente executados.

2. Global Classpath

Não use jars de terceiros na lib do projeto, pois a cada deploy de uma nova versão de war, todos os jars serão recarregados a toa, gastando memoria desnecessariamente. Para contornar isso, coloque todos os jars que a solução na lib global do tomcat no qual sera carregado apenas 1 vez e reutilizado dentro de todas as versões que venham a ser simultaneamente executados.

3. Semáforo nos Jobs

Caso a solução tenha jobs java e venha a ter versões sendo executados simultaneamente, isso resultara em processamento duplicado. Para contornar isso, é necessário implementar um algoritmo de semáforo responsável por impedir processamento de jobs simultâneas. Existem 3 opções:

1. Look SGBD: use bloqueio pessimistas de banco de dados.

2. Look de Arquivo: use bloqueio de arquivos.

3. Look de Objeto: use bloqueio de objetos JNDI.

Depois de usar todos, a melhor opção para mim foi a 2, usando NIO o código funciona super rápido e é portável para qualquer servidor. A opção 1 é legal, mas tem o round-trip no banco que apresenta um tempo maior de processamento, a opção 3 é muito boa, mas você acaba tendo que registrar os beans no JNDI que tem uma implementação diferente para cada servidor.

Confiabilidade, disponibilidade, recuperação e indisponibilidade são conceitos relacionados aos eventos “não planejados” que eu deixarei de fora, uma vez que o foco do post é a atualização da solução, sendo um “evento planejado”.

Conclusão

Mesmo se você precisar alterar seu produto para se adaptar a essa operação, eu tenho certeza que valerá a pena. Experiência própria! Imagine você dizendo ao seus clientes e ou seu gestor que o serviço da solução não sera mais interrompido por atualização de novas versões? Bem conversado, fazendo um bom marketing, é motivo de um bom aumento de salário da equipe.

“Assim diz o SENHOR, o teu Redentor, o Santo de Israel: Eu sou o SENHOR, o teu Deus, que te ensina o que é útil e te guia pelo caminho em que deves andar.” Isaías 48:17

Mude a cara do seu eclipse

A partir da versão Luna do eclipse é possível você alterar o tema da IDE. Siga o menu: Window->Preferences. Selecione a opção: General->Appearance->Color Theme. Ali você vai encontrar muitas opções de temas super interessantes e alguns bem extravagantes. Faz um tempinho que eu comecei a usar esse aqui, que foi apelidado pela equipe de “Restart”.

Sem título

Outros temas também podem ser baixados no site oficial dos temas: http://eclipsecolorthemes.org/ .

“buscai, pois, em primeiro lugar, o seu reino e a sua justiça, e todas estas coisas vos serão acrescentadas.”Mateus 6:33

Curso de Desenvolvedor de Relatórios Java em Londrina

jsem4

Veja a grade – JSE M4- Desenvolvedor de Relatórios

“Para que o nome de nosso SENHOR Jesus Cristo seja em vós glorificado, e vós nele, segundo a graça de nosso Deus e do Senhor Jesus Cristo”. 2 Tessalonicenses 1:12

Por que o seu sistema é uma porcaria?

morra de rir“A história é sempre a mesma: uma empresa que deseja revolucionar a maneira com que se comunica pela internet, compreende a importância de estar bem posicionado no mercado digital, mas não quer gastar mais do que cinco mil reais com isso.

Basta dar uma navegada no Google em busca de bancas de jornais para que você perceba um padrão: elas costumam valer entre 200 mil a 1 milhão de reais e a sua função por lucro líquido não costuma exceder 1.5% do valor do investimento. Ou seja: uma banca de 200 mil reais acaba lhe remunerando, ao mês, algo em torno de 3 mil na mão. Isso caso você não tenha que pagar por segurança, um funcionário, ou fique doente de vez em quando e não posso abri-la. O fato é que muita gente está disposta a manter um desses negócios, ainda que haja tanta dificuldade envolvendo o processo.

Poderíamos usar aqui outro exemplo; poderíamos falar sobre restaurantes, estacionamentos, lojas de material de construção e até mesmo imóveis. Ninguém aqui espera conseguir um retorno muito maior do que 2.5% ao mês, mesmo que isso implique trabalhar todos os dias — nos feriados, inclusive. Não há almoço grátis, lembra? A realidade é dura e você precisa por o seu dinheiro para trabalhar para você. Bom, no mercado digital isso muda muito.

Imagine que você está pensando em substituir o seu ponto de vendas físico por algo digital. Está afim de acabar de vez com essa necessidade de trabalhar em um shopping, com uma série de funcionários; está cansado de ir ao ministério do trabalho todo mês e estar sempre administrando esse fluxo rotativo de funcionários. Pra você chega! Decidiu-se, enfim, por passar o seu negócio para o digital e existem várias razões para isso.

Depois de muita conversa com a sua esposa e de muita conta feita, alguns vídeos e palestras assistidos, você consolidou essa decisão na sua cabeça. Irá fazer! Será mais um desses tantos empreendedores digitais. As vantagens? Redução de custo, diminuição do fator de aquisição e manutenção do cliente, chega daquelas reservas de caixa obrigatórias para natal e final de ano…chega disso tudo! Agora é você e esse site incrível, que será montado para a sua empresa.

“Trinta mil reais por um sistema?! Você está maluco?!” — é isso que sai da sua garganta, após o primeiro orçamento. Seus ouvidos se fecham para qualquer explicação ou justificativa. Aquele garoto de tatuagens engraçadas só pode estar brincando. Trinta mil por um simples sistema? O seu amigo iria cobrar dois, três, no máximo e capaz de aceitar alguns produtos como permuta!

O sujeito tenta lhe explicar que um bom trabalho custa caro, que envolve uma série de bons profissionais, mas você não escuta. Bloqueia. Ele deve estar mentindo e vai tudo para agência dele. Vai direto para o bolso do patrão dele e que é por isso que o mundo é uma merda. A publicidade te enrola na cara dura e ninguém faz nada em relação a isso.”

Veja o artigo completo aqui – https://medium.com/@carvalho.icaro/porque-o-seu-site-%C3%A9-uma-merda-7e083bf818d7

“Estai, pois, firmes na liberdade com que Cristo nos libertou, e não torneis a colocar-vos debaixo do jugo da servidão”. Gálatas 5:1

TDD – Revolução na Engenharia de Software

tddmeme

A criação de testes automatizados foi uma das mais significantes revoluções que resultou em
melhorias na qualidade e produtividade nos últimos 20 anos de engenharia de software. Testes de unidades automatizados, rodando com parte do processo de build, é fácil de configurar, filtra qualquer problema rapidamente, encaminha a arquitetura para o melhor do design OO, da a liberdade para refatorar e evoluir a solução de forma segura, sem se preocupar em introduzir bugs retroativos. É inquestionável dizer que hoje, no mercado de trabalho, quanto melhor e mais capaz um desenvolver se torna, mais focado ele fica em testes de unidade. E você? Já usa TDD na sua plataforma? Nem sabe o que é isso? Se você é um desenvolvedor de software que por ventura não tem noção do que seja, me desculpe em dizer, você esta “bemmm” atrasadinho, totalmente fora da realidade do mercado. Para aqueles interessados em aprender essa revolução, temos nosso curso TDD com Java disponível para aqueles que desejam se tornar verdadeiros desenvolvedores de software.

“Tu, Senhor, guardarás em perfeita paz aquele cujo propósito está firme, porque em ti confia.” Isaías 26:3

Curso JSE M4 – Desenvolvedor de Relatório Java – Niciole 09/07/15

IMG-20150710-WA0000

JSE M4 Desenvolvedor de Relatórios Java

“Ó terra, terra, terra! Ouve a palavra do SENHOR.” Jeremias 22:29

Programação Funcional: Por que importa?

Sem título

Veja nessa palestra de Diego Pacheco as vantagens da programação funcional, bem como as novas oportunidades no mercado de trabalho para essa nova geração de linguagens.

“Vinde, meninos, ouvi-me; eu vos ensinarei o temor do SENHOR”. Salmos 34:11

JSE M4 – Desenvolvedor de Relatórios Java

img-rapidoObjetivos

Este curso tem objetivo de oferecer aos participantes conhecimentos referente ao desenvolvimento de relatórios utilizando a tecnologia Java voltados para aplicações comerciais. Oferecer ao candidato conhecimentos conceituais, ferramentais e práticos na utilização das ferramentas open-source iReport, Jaspersoft StudioiText na construção de relatórios simples e avançados.

Pré-requisitos

Tem feito ambos os cursos JSE M1 – Programador Básico e JSE M2 – Programador Avançado ou possuir sólidos conhecimentos relacionados ao conteúdo deles.

Duração: 24 hs
Valor R$  410,00

CONTEÚDO PROGRAMÁTICO

Importância dos Relatórios

  • Conceitualização.

Frameworks de Relatórios Java

  • Overview geral.
  • Opções de ferramentas.

iReport/Jaspersoft Studio

  • Arquitetura.
  • Fonte de dados.
  • Conversão para formato padrões.

Ambiente de Desenvolvimento – Jaspersoft Studio

  • Download e Instalação do Jaspersoft Studio.
  • Configuração do ambiente.

Componentes iReport

  • Menus.
  • Componentes.
  • Básicos.
  • Barra de Ferramentas

Construindo Relatórios

  • Relatório simples.
  • Fonte de dados JDBC.
  • Bandas.
  • Mecânica de criação e design.
  • Mecânica de execução e teste.
  • Visualizador JasperView
  • Exercícios gerais.
  • Diversos arquivos.

Relatório com Wizard

  • Ferramenta  Jaspersoft Studio Wizard.
  • Exercícios.

Relatórios Avançados

  • Utilização de máscaras.
  • Soma de valores.
  • Exercícios.
  • Relatórios com Pojos, collections e máscaras.
  • Conceitualização de relatórios com Connection, Resultset e CashRowset.
  • CrossTab.
  • Charts.

Relatórios com Agrupamentos

  • Mestre/Detalhe.
  • Totalização.
  • Manipulação de imagens.

iText

  • Conceitualização
  • O que é ?
  • Pra que serve?
  • Quando usar?

Ambiente de Desenvolvimento – iText

  • Download e Instalação.
  • Configuração do ambiente.

Exercícios de Relatórios com iText

  • Página retrato.
  • Pagina paisagem.
  • Configuração de parágrafos.
  • Configuração de margens.
  • Configuração de estilos de fontes.
  • Configuração de alinhamento de textos e pulo de linhas.
  • Configuração de controle de páginas.
  • Configuração de tabelas, tamanhos e alinhamentos.
  • Configuração de imagens.
  • Configurando numeração em páginas.
  • Relatório simples com bando de dados.

Os interessados em participar deste curso pode nos enviar sua solicitação detalhada de interesse através desse cadastro e ou apenas a seguir a nossa página do facebook : https://www.facebook.com/forjtreinamentos .

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.

Junte-se a 563 outros seguidores