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.

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”