The way of thinking back

Guys,
I am writing this post to share with all my visitor, that were and are a lot, that I am living, working, learning about new technologies in other country. For everyone, that came from I came, this is a big challenge, a big opportunity, for me this moment is like a new phase of my life, where I am trying to understand and improve my carrear. Is it easy? No, isn’t!

Be far of our families, friends and culture is very hard, but we need figure out a best to do this. I found a way, I am accepting that everything that I am living is a conquest, sometimes small, sometimes more small, but sometimes huge.

Those changes on my life put me so far of my blog, but I never forget it.

Today, I was applying, or sharing my professional information with a big company, there I did to put my personal blog, and was on this moment that I figured out that my blog is outdated, and the last post was more than a year ago, but its needs to be alive.

To be more objective, I am trying to bring out the knowledge that I gained on the last years to the blog again. This time joining the challenges and solutions, the learning and motivations, the weakness and strength.

On the last year I was involved with java, javascript, service bus, Elasticsearch, Logstash, Linux, integrations, containerization and since on the last month I am doing a Blockchain Developer course on Udacity.

I am trying to get another opportunities that I can work with more technologies and good challenges.

Let’s do it.

Anúncios

Treinamento Java Beans e CDI

Treinamento ministrado na Secretária da Fazenda do Estado do Ceará sobre Java Beans e CDI.

Espero que gostem do material. Não existe restrição quanto ao uso em outras palestras. Lembre-se apenas de comentar a fonte (https://yross.wordpress.com)

Até a próxima.

Palestra Angular.js e Node.js

Olá pessoal,

Hoje compartilho os slides que utilizei na palestra que ministrei na Faculdade Católica Rainha do Sertão.

A palestra foi introdutória sobre o framework Javascript Angular.js.

O fontes do projeto estão no Github:

https://github.com/ythalorossy/js_angular_do_zero

Espero que gostem do material. Não existe restrição quanto ao uso em outras palestras. Lembre-se apenas de comentar a fonte (https://yross.wordpress.com)

Até a próxima.

AngularJS – HTML mais dinâmico

O desenvolvimento de aplicações web durante muito tempo foi estático“. As possibilidades disponíveis para expôr documentos eram estáticas, as imagens, que logo se tornaram o grande diferencial, eram estáticas. O HTML foi um dos grandes percussores da internet, foi um dos primeiros dialeto que de forma estática expôs documentos, informações e imagens ao mundo através da rede.

O HTML, por sua vez,  não foi desenvolvido para dar dinamicidade, foi desenvolvido para suprir a necessidade de expôr informações através da internet, semelhantes ao que temos em livros, onde o leitor não pode alterar a posição dos parágrafos enquanto ler, apenas pode, ou deve, lê-los.

HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.

O Javascript é utilizado para suprir essa necessidade, essa carência de dinamicidade. Desde o seu lançamento em 1995 foram desenvolvidas soluções, ou frameworks, para permitir via scripts a interação do usuário com o HTML, o controle de características dos navegadores, a comunicação assíncrona com servidores remotos e a alteração de informações mostradas na tela. A maioria desses frameworks possibilitavam a interação com as informações, com os dados apresentados, abstraindo alterações de estilo através do CSS, encapsulando funcionalidade com javascript e apenas alterando a  estrutura do documento.

Other frameworks deal with HTML’s shortcomings by either abstracting away HTML, CSS, and/or JavaScript or by providing an imperative way for manipulating the DOM. Neither of these address the root problem that HTML was not designed for dynamic views.

Continue lendo “AngularJS – HTML mais dinâmico”

Nova categoria no blog – Web Apps

A categoria Web Apps foi adicionada visando o constante crescimento no desenvolvimento de aplicações com modelo que rodam diretamente no lado cliente, ou em browsers/navegadores, ou em simuladores web.

Com o passar do tempo o desenvolvimento de aplicações desenvolvidas principalmente em HTML(5), javascript (e seus frameworks) e CSS(3) passaram a chamar a atenção das empresas de desenvolvimento de sistemas e aplicações, tomando o lugar das que rodavam de “forma estática“, como nos desktop que precisavam de instaladores e compiladores para rodar.

Novas tendências indicam que em um futuro próximo o desenvolvimento de aplicações será totalmente em HTML5 e javascript, dominando o mercado desde desktops, passando por laptops e terminado em dispositivos móveis, tais como: tablets e smarthphones. O conceito de Cloud Phone Plataform está ai para mostrar que as grandes empresas estão investindo forte neste cenário.

Desta forma, exemplificarei o desenvolvimento destas aplicações utilizando o que mais atual estive próximo de minhas mãos, ou teclas.

Vamos… ver até onde vamos.

Transações em JEE

Há algum tempo atrás escrevi um post  falando sobre a utilização da anotação @TransactionAttribute, mas não detalhei suficientemente através de exemplos a utilização de transações dentro do contexto JEE. Pensando nisso, resolvi ampliar o post, criando outro, explanando e exemplificando.

1. Conceitos de transação

In a Java EE application, a transaction is a series of actions that must all complete successfully, or else all the changes in each action are backed out. Transactions end in either a commit or a rollback.

Uma transação é composta por uma serie de ações subsequentes que serão executadas uma após a outra até que todas estejam concluídas. O resultado do processamento deve ser interpretado de duas forma:

  1. Processo efetuado com sucesso. Isso acontecerá quando todas as ações ocorreram perfeitamente.
  2. Desfazer todo o processo. Este resultado acontecerá quando uma ou todas as ações evolvidas no processo represente uma instabilidade nos dados, ou no estado dos dados.

Um exemplo comumente utilizado para expressar uma transações é o carrinho de compras. O usuário seleciona vários itens e adiciona ao carrinho, no final, antes de encerrar, ou efetuar a compra, é necessário validar o cadastro, endereço, escolher a forma de pagamento, aguardar liberação do pagamento, encerramento da compra e, caso pagamento esteja correto, efetuar o pedido.

Avaliando o exemplo é possível observar a criações de uma transação (processo de validação, pagamento e despacho dos itens). Está transação terá duas saídas validas:

  1. Sucesso: Validação e pagamento corretos, gerá o fechamento da compra e despacho dos itens para o usuário.
  2. Erro: Por conter erros na validação dos dados ou na forma de pagamento. Neste ponto o sistema não encerrará a compra e o usuário não receberá os itens.

Continue lendo “Transações em JEE”

Concorrência em JEE Schedule

Imagem

Mais um compartilhamento de experiência positiva, desta vez usando os temporizadores automáticos do EJB Container. Seguindo a especificação JEE 6 percebemos a introdução do “Automatic Timers” que disponibiliza duas novas anotações para utilização.

Automatic timers are created by the EJB container when an enterprise bean that contains methods annotated with the @Schedule or @Schedules annotations is deployed. The Java EE 7 Tutorial – Release 7 for Java EE Platform. 28.4.3 Automatic Timers

As anotações @Schedule e @Schedules permitem ao desenvolvedor delimitar um método para executar automaticamente após a implantação da aplicação no servidor. @Schedule recebe um grupo de elementos que juntos formam uma expressão e informam o momento exato em que o temporizador deve executar o método.

Timers can be set according to a calendar-based schedule, expressed using a syntax similar to the UNIX cron utility. Both programmatic and automatic timers can use calendar-based timer expressions. Table 28–1shows the calendar-based timer attributes. The Java EE  7 Tutorial – Release 7 for Java EE Platform. 28.4.1 Creating Calendar-Based Timer Expressions

Continue lendo “Concorrência em JEE Schedule”