quarta-feira, 22 de março de 2017

Java 9 trará ajustes de limite de memória em containers Docker

O Java 9 ganhou uma mudança experimental para que a JVM consiga perceber que está rodando dentro de um container e ajuste os limites de memória de forma apropriada. Apesar do aumento da popularidade dos containers nos últimos anos, muitas ferramentas, incluindo a JVM, ainda dependem dos parâmetros do host para avaliar os recursos disponíveis, muitas vezes ficando sem memória com mensagens de erro desconcertantes. Essa mudança, que pode estar disponível para o público assim que o Java 9 for lançado, tenta prevenir vários destes cenários.

Tecnologias Container como Docker, Heroku ou Kubernetes são uma forma de máquinas virtuais leves baseadas no sistema operacional Linux. Assim, elas podem fornecer uma funcionalidade muito parecida com as máquinas virtuais mais rápidas e consumindo menos recursos, mas existem algumas desvantagens: enquanto as máquinas virtuais completas simulam uma pilha inteira de hardware dedicado, o que significa que o software existente funciona principalmente como esperado, as tecnologias de containers usam o hardware e o sistema operacional do host, o que significa que o software que se baseia em informações do host pode ignorar as restrições extras que os containers impõem.

Na JVM, se o limite máximo da memória é definido com -Xmx, ela irá configurá-lo como uma fração da memória física (tipicamente ¼, mas pode variar), e isso pode não levar em conta os limites impostos pelo container. A mudança proposta tenta prevenir esse problema ao verificar se a JVM está rodando dentro de um Control Group ou cgroup, uma tecnologia Linux como a maioria das tecnologias de container usadas para impor limites no uso de hardware e outros recursos. Se a JVM detecta que está dentro de um cgroup, ela tentará encontrar o limite de memória definido no container e considerará esse limite como a memória física disponível. Como ainda é experimental, a novidade somente será aplicada se ativada com a opção -XX:+UseCGroupMemoryLimitForHeap.

Incorporado ao Kernel do Linux em 2008 e redesenhado em 2013, o cgroups isola o uso de recursos e permite que aplicações controlem o acesso a memória, CPU, IO e rede, entre outros. Diferentes aplicações podem criar sua própria hierarquia de cgroups com limites diferentes por grupos, o que significa que uma aplicação não conhece, a priori, o grupo que a mesma irá executar. É por isso que a JVM só pode fazer uma suposição sobre cgroups e o limite de memória, divulgou o site InfoQ.

Fonte: Imasters

Google lança primeiro developer preview do Android O

Já faz um ano que o Google anunciou o primeiro preview do Android Nougat. Hoje, a empresa lançou o primeiro developer preview da próxima versão do seu sistema operacional móvel, atualmente batizado de Android O.

“Para este lançamento, queríamos nos concentrar em dar aos desenvolvedores tempo para testar compatibilidade, explorar novos recursos e enviar comentários que ajudarão a fazer do Android O uma ótima plataforma”, disse um porta-voz do Google ao site TechCrunch.

Entre as novidades do Android O estão:

Notificações: o Android O adicionou um novo recurso chamado de notification channels. Isso vai dar aos desenvolvedores a capacidade de agrupar notificações de seus aplicativos em grupos (digamos que você tem um aplicativo de notícias e deseja agrupar notificações por “política” ou “tecnologia”, por exemplo). Os usuários serão capazes de gerenciar essas notificações com base nesses canais.

Picture in Picture: os aplicativos de vídeo do Android O poderão se colocar em um modo Picture in Picture para que o vídeo continue sendo reproduzido depois de alternar para um aplicativo diferente.

Suporte para multitela: esse recurso parece estar voltados tanto para novos tipos de dispositivos quanto para Android no Chrome OS. Com isso, os desenvolvedores poderão lançar uma atividade em uma tela remota.

Navegação por teclado: esse recurso é voltado para Android Apps no Chrome OS e permitirá aos desenvolvedores dar melhor suporte para a navegação por seta e aba em seus aplicativos. “Com o advento do Android Apps no Chrome OS, estamos vendo um ressurgimento do uso de navegação por teclado em aplicativos Android”, diz o Google no anúncio de hoje.

Limites de background: os últimos lançamentos do Android colocaram uma ênfase pesada em melhorar a vida da bateria. O Android O coloca limites automáticos sobre o que um aplicativo pode fazer enquanto está no segundo plano. Esses limites se concentram em três áreas: transmissões implícitas, serviços em background e atualizações de localização. Para os desenvolvedores, isso pode realmente ser o mais abrangente dos novos recursos no Android O.

Novos recursos Wi-Fi: o Android O está adicionando suporte para alguns (relativamente) novos recursos de conectividade. O sistema operacional atualizado oferecerá suporte para mais recursos Wi-Fi Aware, como Neighborhood Aware Networking (NAN). NAN facilita a comunicação entre aplicativos e dispositivos sem um ponto de acesso à Internet no meio (ou qualquer conexão à Internet). O Google diz que está trabalhando com parceiros para oferecer suporte para NAN nos dispositivos “o mais rápido possível”.

Melhor interoperabilidade para aplicativos de chamada: o Android O facilitará a chamada de aplicativos para conversarem entre si e fazer chamadas pela rede de operadoras. Os desenvolvedores agora serão capazes de usar o novo framework Telecom para construir sua própria interface de usuário para fazer chamadas, e as chamadas serão exibidas e controláveis através de dispositivos Bluetooth com telas, como você encontraria em um carro.

Existem outros novos recursos e ajustes, que incluem ícones adaptáveis, suporte para monitores de cores amplas, suporte para codecs de áudio Bluetooth de alta qualidade, uma nova API de áudio nativa, melhor suporte para fontes e um WebView aprimorado que tem o modo multiprocesso habilitado por padrão.

O Google também observa que o Android O irá suportar uma série de novas APIs Java e que o Android Runtime agora é significativamente mais rápido, com alguns benchmarks registrando uma melhoria de 2x.

Como no ano passado, o Google promete que vai dar detalhes sobre o Android O na conferência de desenvolvedores I/O em maio. Se a empresa seguir o mesmo cronograma de lançamento do ano passado, provavelmente veremos os primeiros dispositivos com o Android O em um evento de hardware do Google em outubro.

Fonte: Imasters

Android ganha suporte para recursos de linguagem do Java 8

A equipe de desenvolvimento do Android revelou nesta semana que decidiu adicionar suporte para recursos de linguagem do Java 8 diretamente ao conjunto de ferramentas atual javac e dx e depreciar a toolchain Jack. Com essa mudança, as ferramentas existentes e os plugins dependentes do formato de arquivo de classe Java devem continuar a funcionar. Além disso, os recursos de linguagem do Java 8 serão nativamente suportados pelo sistema de build do Android. A equipe pretende lançar isso como parte do Android Studio nas próximas semanas.

Inicialmente, os devs do Android testaram a adição de suporte para Java 8 através da toolchain Jack. Com o tempo, eles perceberam que o custo de mudar para Jack era muito alto para a comunidade, quando eles consideraram os processadores de anotação, analisadores de bytecode e rewriters impactados.

A equipe espera que o novo plano possa fazer com que todos aproveitem os recursos da linguagem Java 8 no Android.

Fonte: Imasters

terça-feira, 14 de março de 2017

Java EE 8, Quando mesmo?

No blog da oracle, foi anunciada as datas do cronograma de lançamento do JAVA EE 8, segue abaixo:

Apesar do mês de fevereiro ser curto, para o Java foi um mês de muito trabalho

A programação da plataforma Java EE 8 (JSR 366) foi atualizada da seguinte forma:

Revisão Pública - Abr / Mai 2017
Projeto Final Proposto - Junho de 2017
Versão Final - Julho de 2017 (!)

O período de revisão pública do CDI 2.0 está quase concluído, portanto, certifique-se de fornecer seu feedback para o JSR 365 ,ou seja, ... agora!

O JAX-RS 2.1 Early Draft está quase pronto; Veja aqui para obter um detalhe maior. Neste projeto, a API de eventos enviados pelo servidor mudou bastante. Para mais detalhes, verifique aqui e aqui (JAX-RS 2.1 m04).

O Bean Validation 2.0 (JSR 380) EG lançou um Early Draft. Para saber mais sobre o BV 2.0, você pode querer ouvir este episódio do JBoss Community Asylum.

Servlet 4.0 (JSR 369) passou com êxito a sua votação de renovação e, entretanto, o Servlet EG está evoluindo em relação ao seu Early Draft.

A API de Segurança (JSR 375) EG também está na etapa de preparar seu Rascunho Inicial.

Também foi anunciado que há a intenção de fazer uma Release JPA Maintenance para Java EE 8.

JSF 2.3 e JSON-P 1.1 já entraram no período da Balança de Revisão Pública. Isso significa que essas 2 especificações estão ficando muito perto de ser finalizado!

Finalmente e se você quiser contribuir, certifique-se de assistir ao 2o Webcast Adopt-A-JSR que foi recentemente publicado pelo JCP.

Fonte: Oracle´s Blog

quarta-feira, 22 de fevereiro de 2017

Java EE 8 finalmente vai sair, revela Oracle

Depois de oito meses de atraso, a Oracle finalmente colocou data para lançar o Java Enterprise Edition 8: julho de 2017. O Java EE 8 deveria ter aparecido no JavaOne 2016, em setembro, mas uma pausa no desenvolvimento do software o empurrou para o "primeiro semestre" deste ano.

A chefe da Oracle para o Java EE, Linda DeMichiel, estabeleceu a nova meta e revelou que um public review do EE 8 vai ser lançado em maio ou abril, com o beta final chegando em junho. "Estas são as principais datas com as quais estamos trabalhando", disse. 

A atualização provavelmente virá como um alívio para os desenvolvedores que dependem da plataforma da Oracle. O Java vem melhorando graças à sua comunidade, mas mesmo assim, a maioria dos engenheiros que se empenham no código trabalha na empresa.

O atraso começou quando a equipe de desenvolvimento da Oracle inexplicavelmente se ausentou em 2016, sem permissão, provavelmente devido a um mal-entendido entre os engenheiros de software, que se dedicaram a trabalhar na nuvem própria da empresa. 

Fonte: Canaltech

sexta-feira, 17 de fevereiro de 2017

Eclipse IoT anuncia suporte para OMA LightweightM2M 1.0 Device Management Standard

O Eclipse IoT Working Group, um grupo de trabalho colaborativo da Eclipse Foundation, anunciou nesta semana que o projeto open source Eclipse Leshan apoiará o padrão de gerenciamento de dispositivos LightweightM2M (LwM2M) 1.0 da Open Mobile Alliance (OMA), recentemente ratificado. O LwM2M tornou-se um importante padrão de Internet de Coisas (IoT) para gerenciar dispositivos de baixa potência e leves que são comuns para as soluções de IoT.

Eclipse Leshan é uma implementação baseada em Java do padrão LwM2M. Ele fornece uma implementação de servidor LwM2M que pode ser incorporada em qualquer plataforma ou solução de IoT. O Eclipse Leshan inclui algumas das funcionalidades de núcleo IoT necessárias para o gerenciamento de dispositivos, incluindo controle de acesso, conectividade de dispositivo, atualização de firmware, localização e estatísticas de conectividade.

Fonte: Imasters

Formatação de data e hora no Java 9 vai se aproximar dos Unicode Locale Standards

Uma série de alterações de formatação e análise foram incorporadas ao Java 9 para levar a Unicode Locale Data Markup Language (LDML) à linguagem. Essas mudanças foram supervisionadas por Stephen Colebourne, criador da popular biblioteca de data e hora JodaTime, precursora do novo componente java.time no Java 8. Respeitar o padrão Unicode proporcionará melhor interoperabilidade com outros sistemas não-Java.

LDML é a linguagem utilizada pelo Unicode Common Locale Data Repository (CLDR), um projeto do Unicode Consortium para coletar e armazenar dados de localidades de diferentes partes do mundo, permitindo aos desenvolvedores de aplicativos adaptar melhor seus programas a diferentes culturas. Entre outras coisas, o LDML lida com datas, horários, fusos horários, e com a formatação e análise de datas.

Fonte: Imasters