Jul 11 2016

Turbinando seu App com Realm Parte 2 / Android

Joel

Como já mostramos em outros post no blog que pode ser visto clicando aqui,  o Realm é uma nova opção para persistirmos dados em aplicativos mobile de maneira rápida e segura. Por sua alta performance e facilidade o mesmo vem ganhando espaço a cada dia. Hoje vamos demonstrar como utilizar o Realm em sua aplicação Android.  No primeiro post falamos mais sobre como ele funciona e como utiliza-lo em projetos para Iphone. Mas hoje vamos demonstrar que seu uso no Android é tão fácil como no Iphone.

Site Oficial do Realm

Código fonte desse projeto no GitHub

Primeiro vídeo com a versão para IOS


Apr 4 2016

Turbinando seu App com o Realm

Joel

Já faz alguns anos que eu desenvolvo projetos em mobile seja no Android ou no IOS. Já fiz projetos utilizando recursos nativos como também recursos utilizando HTML5. Mas uma coisa  que nunca me agradou quando se trata de desenvolvimento mobile é a questão da persistência. Seja SQL Lite, Core Data ou outras apis para esse fim, sempre achei o processo rústico que demandavam muito trabalho para realizar operações simples. Então  para aliviar um pouco desse trabalho manual criei pequenos frameworks que me ajudaram muito a criar toda a camada de persistência de um modo mais rápido e eficiente. Mas a pouco mais de um mês me deparei com uma nova ferramenta para persistir meus dados que funciona tanto no Android como no IOS e também com React. O Realm é um banco de dados MVCC  que oferece uma maneira rápida, não burocrática e efciente de persistir os seus dados. Com a necessidade de pouquissima configuração tem uma baixa curva de aprendizado baixa e com uma performance que deixa qualquer Core Data com inveja. Basicamente é a primeira api de persistência que utilizo que não sinto a real necessidade de ter um framework para acelerar meu trabalho. Então no vídeo de hoje quero compartilhar de vocês sobre seu funcionamento e como utilizado em seu projeto.

Se beneficiando dessa arquitetura que se beneficia de algoritmos de controle de origem como o Git.

Download do código


Feb 1 2016

Side Out Menu IOS

Joel

Boa noite pessoal, hoje estou aqui para falar num recurso que já existe nativo a um certo tempo em aplicações nativas Android o Side Out Menu. Para aqueles que não reconhecem o recurso pelo nome ele é o menu lateral de aplicativos como o Youtube e o Google.

YouTube-Uploads

Para ser sincero na realidade nem eu sei o nome do recurso direito rs…

Digo isso porque já vi o mesmo recurso em vários sites diferentes sendo referenciados com nomes diferentes.

De qualquer maneira hoje vamos implementar o mesmo recurso no IOS e em Swift.

Para facilitar nossa tarefa pois tanta animação e controle exigem realmente muita programação vamos usar uma api desenvolvida por John Lluch o SWRevealViewController.

Espero que gostem!

Código fonte.


Dec 14 2015

Micro Services com Wildfly Swarm

Joel

Atualmente um conceito que vem sendo bem difundido quando falamos sobre arquitetura para aplicações web e mobile são os micro services. A pouco tempo atrás quando falávamos sobre servidores de produção para grandes portais ou aplicações web que possuem um número elevado de acessos, pensávamos em servidores com configurações robustas prontos para aguentar uma alta taxa de acessos. Isso sem falar claro de toda redundância e esquemas de fail over.

Então anteriormente tínhamos uma única aplicação fechada que funcionava  como um único bloco sendo responsável por todas as funcionalidades da aplicação em um só local. Com a ideia de micro serviços construímos uma única aplicação como anteriormente, mas agora divida em um conjunto de pequenos serviços apartados uns dos outros que se comunicam entre si através de recursos HTTP por exemplo.

Martin Fowler aborda esse tema de um ponto de vista imparcial mostrando suas vantagens ,como por exemplo, o fato de qualquer alteração em uma determinada parte da aplicação, não mais  requer o deploy dela como um todo. A exposição de uma maneira mais clara das interfaces públicas também é um fator favorável a esse tipo de abordagem. Mas, a aplicação dessa nova metodologia não traz só pontos positivos, pois lidamos com mais chamadas remotas que as vezes tornam nossos processos mais custozos. Caso queira saber mais sobre o estudo realizado por Fowler você pode clicar aqui para ver a matéria na integra.

Juntamente com o conceito várias novas tecnologias têm sido criadas ou adaptadas para atender essa necessidade. No mundo Javascript temos o Nodejs, em Java temos o Spring Boot. Percebendo a inclinação do mercado para essa nova abordagem, a Red Hat não podia ficar de fora e com isso agora temos mais uma opção, o Widlfy Swarm. Desde o lançamento do JBOSS AS 7 em 2011 o mesmo vem se reinventado buscando atender as necessidades dos desenvolvedores. Seja componentizando o container ou refazendo todas as suas estruturas de gerenciamento. O pessoal do JBOSS não parou por ai e criou a partir da base do AS 7  uma implementação mantida com a ajuda de toda a grande comunidade que gira em torno da Red Hat e assim nasceu o projeto Wildfly. E em sua mais nova versão um dos novos recursos é o Swarm, que oferece a capacidade de criarmos uma pequena instância do Wildfly utilizando somente os recursos necessários. Assim para cada pequena instância, utilizamos somente as apis que iremos usufruir em determinada parte da aplicação.

Nesse video vamos ver como montar um pqueno webserver utilizando o Swarm.

Material sobre micro services

Página oficial do projeto Swarm.

Código fonte


Nov 24 2015

Redis no Azure

Joel

Olá meus amigos.

Para quem ainda não me conhece meu nome é joel Backschat, sou arquiteto de Software da Fcamara nas divisão portuária e da divisão de inovação. Possuo um site chamado cafecomjava.com.br onde sempre estou buscando compartilhar um pouco de conhecimento sobre desenvolvimento.

E nesse video a ideia é entendermos o básico de uma ferramenta quem vem sendo agregada em vários portais de grande porte no Brasil e no mundo devido sua grande velocidade e baixo consumo.

O Redis.

Escrito em c++ possibilita seu seu uso em qualquer ambiente seja ele Linux, Windows ou Mac. Em ambientes Windows o pessoal da antiga Microsoft Open Tech vem sendo responsável por por migrar as últimas versões para Windows sendo que para ambientes Windows a última versão migrada é a versão 2.5. Atualmente o Redis em sua versão Stable está na versão 3.0.5.

É difícil classificar exatamente o que é o Redis. Mas existe uma vertente forte para o uso do Redis como uma ferramenta de cache. Grandes arquitetos de software brasileiros como Roberto Marin que exemplifica em sua palestra no site da InfoQ como o seu pessoal vem usando o Redis com sucesso hoje no portal Viva Real, onde o mesmo atua.

Apesar de implementado em C o Redis possui clients para um grande número de linguagens como por exemplo

ActionScript
Java
Javascript
node
Objective-C
Swift
Ruby
Scala
PHP
Python

Todos os clients disponíveis podem ser vistos direto no site do Redis. O que vamos utilizar hoje é o Jedis que é uma implementação do mesmo para Java. Vamos criar um serviço do Redis no Azure e consultar através e uma aplicação Java que vamos criar localmente.


Nov 16 2015

Entropia

Joel

Post criado pelo amigo Davidson Sestaro.

    Hoje famos falar sobre dois assuntos muito importantes dentro do Aprendizado de Máquina (Machine Learning), Entropia e Ganho de Informação. Antes de começarmos a ver como eles funcionam, precisamos primeiramente entender qual a funcionalidade de cada uma deles:

 

Entropia: A entropia da informação, no caso do aprendizado de máquina, visto que ela pode e é usada em outras áreas, mede a impureza de um determinado conjunto de dados. Em outras palavras mede a dificuldade que se tem para saber qual a classificação de cada registro dentro do meu conjunto de dados. O valor da entropia da informação varia de 0 até 1

 

 

    Este seria o gráfico da entropia para uma base de dados em que a classificação é binária, ou seja possui apenas dois valores possíveis. O valor da coluna da esquerda, eixo Y, é o resultado da entropia do conjunto de dados, e o valor da linha de baixo, eixo X, é a probabilidade de uma das classes ocorrer no conjunto de dados.
Vale a pena notar que apesar do exemplo ter apenas dois possíveis valores para a classificação do conjunto de dados, a entropia pode ser cálculada para qualquer quantidade de valores.

 

Ganho de Informação: O ganho de informação ao contrário da entropia mede a pureza de um determinado conjunto de dados, essa definição nada mais é do que a quantidade de informação que se tem ao tentar se classificar um determinado conjunto de dados a partir de um atributo.