quarta-feira, 13 de março de 2013

Previsto para abril de 2013, a nova versão do JavaEE vem com atualizações para as principais especificações, além da adição de várias outras focadas em facilitar o desenvolvimento de aplicações para nuvem no modelo PAAS.

Screen Shot 2013-03-11 at 7.03.58 PM

Vejamos as principais novidades:

JPA 2.1 (JSR-338)
Agora a JPA irá suportar chamadas a procedures de maneira transparente, sem a necessidade de usar código específico de nenhuma implementação:
 
//prepara a procedure
StoredProcedureQuery query = EntityManager.createStoredProcedureQuery("processaBoletos");
//registra os parametros da procedure
query.registerStoredProcedureParameter(1, String.class, ParameterMode.OUT); //saída
query.registerStoredProcedureParameter(2, Integer.class, ParameterMode.IN); //entrada
query.setParameter(2, 001); //seta o parametro
query.execute();
String resposta= query.getOutputParameterValue(1);

Podemos também invocar qualquer função que esteja disponível no banco de dados, através do novo comando FUNCTION da JPQL:
 
SELECT c
FROM Cliente c
WHERE FUNCTION(‘EhClienteEspecial’, c.id)

Os EntityListeners da JPA agora também estão integrados com o CDI, permitindo receber por injeção qualquer dependência usando o @Inject:
 
class PedidoListener{
  @Inject
  private GeredorDeNumero gerador;
 
  @PrePersist
  public void geraNumero (Object o){
    Pedido p = (Pedido) o;
    P.setNumero(gerador.novoNumero());
  }
}

Também foi incluído o suporte a operações de update e delete em lote usando criteria, além de outras funcionalidades.

CDI 1.1 (JSR-346)
Apenas pequenas mudanças e melhorias serão incluídas nessa versão. Entre algumas das novidades esperadas estão permitir a ordenação de Interceptors e Decorators, uma API para criação de contextos personalizados, injeção de objetos estáticos e criação de eventos relacionados a API de Servlets, como inicio/fim de um HTTPServletRequest por exemplo.

EJB 3.2 (JSR-345)
Aqui o foco é continuar facilitando cada vez mais a configuração e o uso de EJBs. Agora teremos suporte a transações dentro de callbacks do ciclo de vida dos beans:
 
@Stateful
public class CarrinhoBean{
  @PersistenceContext
  private EntityManager em;
 
  @TransactionAttribute
  @PrePassivate
  public void armazenaNoBanco(){
     // algum código transacional
  }
     ...
}

As configurações sobre quais interfaces serão expostas nos beans também foram simplificadas:
 
public interface Agendador{}
public interface Executador{}
  //todas as interfaces são locais
  @Stateless
  public class AgendadorBean implements Executador, Agendador{
  ...
}
 
//todas as interfaces são remotas
@Remote
@Stateless
public class AgendadorBean implements Executador, Agendador{
  ...
}

Caso deseje que apenas uma das interfaces seja exposta, é só adicionar a anotação desejada:
 
@Remote
public interface Agendador{}
 
//apenas a interface Agendador é exposta como remota
@Stateless
public class AgendadorBean implements Executador, Agendador{
  ...
}

JSF 2.2 (JSR-344)
 Algumas features que antes só estavam disponíveis através do Seam3 agora fazem parte da especificação. Isso acontece com a tag viewAction e a possibilidade de receber injeção de dependências via CDI em qualquer componente do JSF, como Validator, Converters e até mesmo em componentes customizados.
Uma nova annotation @ViewScoped foi criada em substituição a atual para permitir integração do CDI com ManagedBeans neste escopo. E falando em escopos, o @FlowScoped foi adicionado para ajudar na criação de fluxos pré-definidos, como wizards, sequências de passos em algum fluxo de negócio, etc.
Além destas, ainda há uma integração melhor com HTML5, suporte a configuração programática, um novo componente para upload de arquivos usando ajax, e muitas outras, como é possível ver na lista de novidades no JSF 2.2

JAX-RS 2.0 (JSR-339)
Agora com suporte a uma API de cliente, é possível implementar chamadas a um serviço rest de maneira portável entre os servidores sem a necessidade de bibliotecas externas:
 
Client client = ClientFactory.newClient();
 
//Dispara uma requisição GET para a url http://.../produtos?nome=Caneta
Produto p = client.target("http://.../produtos")
                  .queryParam("nome", "Caneta")
                  .request().get(Produto.class);

Outras novidades são a integração com Bean Validation, suporte a requisições assíncronas tanto na API cliente quanto na servidor, filtros e interceptors.

JMS 2.0 (JSR-343)
JMS foi uma das especificações que mais sofreram alterações, removendo a maior parte do código desnecessário para enviar mensagens:
 
@Stateless
public class EnviadorDeMensagens
  @Resource(lookup = "jms/connectionFactory")
  ConnectionFactory connectionFactory;
 
  @Resource(lookup="jms/fila")
  Queue fila;
 
  public void sendMessageNew (String msg) {
    try (JMSContext context = connectionFactory.createContext();){
      context.send(fila,msg);
    }
  }
}

Além de outras alterações e novas funcionalidades, como o suporte a Paas, melhorias nos Message Driven Beans e envio de mensagens com hora marcada.

Bean Validation 1.1 (JSR-349)
As anotações de validação agora podem ser utilizadas em parametros de métodos:
 
public void login (@NotNull String login, @NotNull String pass){
  ...
}

Componentes como ConstraintValidator agora são integrados ao CDI, além de outras pequenas mudanças.

Outras especificações foram adicionadas ao JavaEE, como JCACHE para gerenciamento de cache de objetos, Batch para execução de tarefas em lote, similar ao Spring Batch, JSON-P com as mesmas funcionalidades do JAX-B, mas para Json. Na lista completa de funcionalidades do JavaEE 7 você pode acompanhar todas as JSRs e conhecer mais sobre as novas especificações e evoluções da plataforma Java.

Fonte: Mário Amaral - Caelum

quinta-feira, 28 de fevereiro de 2013

CAMPUS MOBILE


SOBRE O CAMPUS MOBILE

O Programa Campus Mobile foi criado em 2011 e tem como principal objetivo estimular a formação de jovens talentos universitários para atuação no desenvolvimento de conteúdos e novos serviços de telefonia móvel que contribuam com o desenvolvimento social do Brasil. Uma iniciativa do Instituto Claro em parceria com a Associação do Laboratório de Sistemas Integráveis Tecnológico (LSI-TEC), o Programa entra em sua segunda edição com a missão de estimular a criação de soluções em dois eixos: Tecnologias Sociais e Empreendedorismo. A categoria Tecnologias Sociais tem foco em produtos ou serviços para dispositivos móveis aplicados no contexto de um benefício social, voltados para a educação, cidadania, o meio ambiente e saúde. Na categoria Empreendedorismo, serão contemplados produtos ou serviços inovadores, que facilitem a vida das comunidades.

Premiação


Categoria Tecnologias Sociais
3 Viagens ao Media Lab (MIT)

Categoria Empreendedorismo
R$ 5 mil para o 1º lugar
R$ 3 mil para o 2º lugar
R$ 2 mil para o 3º lugar

Mais informações no site:


https://www.institutoclaro.org.br/app/webroot/campusmobile/index.php

Zuckerberg e Gates querem que estudantes aprendam a programar

Executivos gravaram depoimentos de apoio ao vídeo lançado pela ONG Code.Org


Code.Org
Bill Gates
Programar é uma habilidade extremamente importante e que está sendo cada vez mais exigida. Para conscientizar as pessoas quanto à necessidade deste conhecimento, os investidores e irmãos Ali e Hadi Partovi criaram no último mês a Code.Org, ONG que incentiva a programação.

Nesta terça-feira, 26, os dois lançaram no YouTube um vídeo com depoimentos de personalidades do mundo da tecnologia comentando sobre quão essencial é a arte de dominar os códigos.

Participam do material Mark Zuckerberg (criador do Facebook) Bill Gates (fundador da Microsoft), Jack Dorsey (inventor do Twitter) e outros nomes, como o jogador de basquete Chris Bosh, que estudava programação antes de entrar na NBA, e Will.i.am, músico do Black Eyed Peas e estudante de códigos.

O vídeo será exibido em salas de aula de universidades norte-americanas com a intenção de despertar o interesse nas pessoas. Quem quiser aprender a programar deve acessar a página da Code.Org, onde irá encontrar sites de ensino gratuito ou poderá cadastrar-se para saber de escolas próximas à sua residência.

Assista:


1 milhão de vagas disponíveis

Segundo a Code.Org, em 2020 haverá 1,4 milhão de novas vagas para programadores nos Estados Unidos, enquanto a expectativa é que apenas 400 mil profissionais se formem na área. Ou seja, este segmento será promissor.

Ainda segundo os dados do instituto, o profissional de ciência da computação é o segundo mais bem pago do mercado.

Fonte: Olhar Digital

segunda-feira, 25 de fevereiro de 2013

JMeter - Teste de Stress

Apache JMeter - The basics tutorial from Jörg Erdmenger on Vimeo.

Apache JMeter Getting Started Tutorial from Jörg Erdmenger on Vimeo.

Apache Jmeter with some added realism from Jörg Erdmenger on Vimeo.

Apache Jmeter with a simulated login from Jörg Erdmenger on Vimeo.

Replicação Síncrona e Alta-Disponibilidade com PostgreSQL


Replicacaoo Sincrona e Alta-Disponibilidade com PostgreSQL from Dickson S. Guedes

What is pgpool-II?

pgpool-II is a middleware that works between PostgreSQL servers and a PostgreSQL database client. It is licensed under BSD license. It provides the following features.
  • Connection Pooling
pgpool-II saves connections to the PostgreSQL servers, and reuse them whenever a new connection with the same properties (i.e. username, database, protocol version) comes in. It reduces connection overhead, and improves system's overall throughput.
  • Replication
pgpool-II can manage multiple PostgreSQL servers. Using the replication function enables creating a realtime backup on 2 or more physical disks, so that the service can continue without stopping servers in case of a disk failure.
  • Load Balance
If a database is replicated, executing a SELECT query on any server will return the same result. pgpool-II takes an advantage of the replication feature to reduce the load on each PostgreSQL server by distributing SELECT queries among multiple servers, improving system's overall throughput. At best, performance improves proportionally to the number of PostgreSQL servers. Load balance works best in a situation where there are a lot of users executing many queries at the same time.
  • Limiting Exceeding Connections
There is a limit on the maximum number of concurrent connections with PostgreSQL, and connections are rejected after this many connections. Setting the maximum number of connections, however, increases resource consumption and affect system performance. pgpool-II also has a limit on the maximum number of connections, but extra connections will be queued instead of returning an error immediately.
  • Parallel Query
Using the parallel query function, data can be divided among the multiple servers, so that a query can be executed on all the servers concurrently to reduce the overall execution time. Parallel query works the best when searching large-scale data.
pgpool-II talks PostgreSQL's backend and frontend protocol, and relays a connection between them. Therefore, a database application (frontend) thinks that pgpool-II is the actual PostgreSQL server, and the server (backend) sees pgpool-II as one of its clients. Because pgpool-II is transparent to both the server and the client, an existing database application can be used with pgpool-II almost without a change to its sources.

http://www.pgpool.net/mediawiki/index.php/Main_Page

pgpool-II Tutorial

  • http://pgpool.projects.pgfoundry.org/pgpool-II/doc/tutorial-en.html 
  • http://blogs.dextra.com.br/bdextra/2011/alta-disponibilidade-e-alta-performance-com-postgresql-9-0-pgpool-ii/
 

sábado, 2 de fevereiro de 2013

Os empreendedores (malucos) é que mudam o mundo

Maluco! Eu?
Todo mundo está careca de saber que empreendedores são sonhadores, mas ao mesmo tempo realizadores, ou seja, eles sonham com uma nova realidade e, a partir daí, começam a sair do lugar para transformar as coisas ao seu redor.

É claro que esse não é o caminho mais fácil. Na teoria, o caminho mais fácil é você trabalhar na empresa dos outros.

No entanto, faz parte da natureza do empreendedor querer construir o próprio caminho e a própria realidade o que, obviamente, envolve (possivelmente) mais riscos, desafios e dificuldades.

Pessoas que não possuem o espírito empreendedor não conseguem entender o porquê fazemos o que fazemos e talvez, por isso, gostem de dizer que somos malucos e que o que queremos fazer (quase sempre) é uma loucura. Mas a questão aqui é a seguinte: ser maluco é bom. Afinal de contas, se não fossem os malucos nós ainda viveríamos em cavernas, não é mesmo?

O que quero dizer com isso é que para alguém utilizar um produto ou serviço que facilite e/ou melhore sua vida (independente do que seja), outro alguém teve que imaginar esse produto ou serviço e é justamente aí que o empreendedor entra na história.

Está mais do que claro que empreendedores transformam o ambiente ao seu redor. Transformam a vida das pessoas. E cá entre nós… só mesmo os malucos para quererem fazer algo assim. Para quererem e gostarem de encarar os desafios que envolvem fazer algo acontecer.

Os empreendedores (malucos) mudam o mundo e eu tenho certeza que, assim como eu, você tem muito orgulho de fazer parte desse grupo. Não tem?

Fonte: Saia do Lugar

quarta-feira, 16 de janeiro de 2013

Confessions of a New ScrumMaster


Artigo interessante de Natalie Warnert sobre os desafios de um ScrumMaster em seu primeiro projeto.

 

So, you just got out of your CSM class, overflowing with your newfound Scrum knowledge and renewed faith in software development practices. You're ecstatic to share your new view of the world and show how Agile can benefit your organization, and you can't wait to get started. But, in your first Agile project, you meet resistance, opposition, and worst of all, modified Scrum practices. What's a ScrumMaster to do?
Don't lose hope! You're definitely not the first ScrumMaster to meet these barriers, and you're not alone. I've encountered these situations in projects and have some tips to make the transition to Scrum easier on the team, the leadership, and you. Learning to overcome these problems will make you a better ScrumMaster and will help lead the team to the high performance levels you know it's capable of.

1. Start slowly.
Agile/Scrum is a big change for most teams, companies (especially large corporations), and cultures. Just because you're confident about the wonders of Scrum and Agile doesn't necessarily guarantee that everyone else will feel the same way at first. Trying to implement everything at once can sometimes work, but only if you have the right team. If you're at an organization where you can handpick your team, great. But if you're like the rest of us, you get a team handed to you, and Scrum adoption can be hit or miss. So start slowly, address team concerns, build trust, and . . .

2. Be patient.
I can't stress this enough. The team will not self-organize the first day, nor likely not even the first iteration. Agile tools likely won't be updated daily by everyone to begin with. Stand-ups may go over 15 minutes or stray off the three-question format. Try to remain patient and coach your team by gently reminding them of Scrum principles. They'll get there in their own time. Remember, the team needs to learn to work together, trust each other, trust the process, and trust you.

3. Stick to Scrum.
When the team is allowed (or urged, perhaps by management) to stray from Scrum practices, you'll see an addition of unnecessary complexity. Your job is to coach the team in the fundamentals of Scrum, which have been proven to be successful, and protect the team from outside influences. As tough as it is, try your best to keep everyone on board and avoid modifying Scrum. If people and management are insisting that things in this project are different and Scrum practices need to be modified . . .

4. Ask, "Why?"
This simple word can yield big realizations about how things are done. Often the stated reason for straying from Scrum isn't actually the underlying problem. By asking why, you can find the root cause and start to solve the real problem. And if you don't get a good answer, keep asking; sometimes it takes a few "whys" to get to the bottom of things.

5. Explain.
When you let the team know the reasons you're doing things, or the reasons they're being asked to do things (note: I say asked, not told), they're much more likely to do them for you. By confirming that the team understands why things are being done a certain way, they'll feel more empowered because they have a clearly defined purpose and understanding.

6. Empower the team and yourself.
By empowering the team, you're giving them the power to empower themselves. This is the first step to self-organization. By empowering yourself, you're showing and encouraging the team to follow suit. Teams learn by action; when you eat, breathe, and live Agile, they'll notice. Also, with self-empowerment you'll feel better about what you're doing and will be a better ScrumMaster.

7. Ask for help.
Let's face it, the CSM course didn't teach you how to handle every situation. There are going to be complications with the team, the stakeholders, and management. Don't try to handle everything on your own. You expect the team to come to you for help removing roadblocks, and you should demonstrate your ability to bring up problems as well. By waiting too long to ask for help, you can put the team in jeopardy — the opposite of what a ScrumMaster is supposed to do.

8. Ask for and give feedback.
This goes back to the "inspect and adapt" principle. Feedback doesn't need to be saved for the retrospective at the end of each iteration. If you see something that can be improved, bring it up in a constructive way so you can help correct it early. Ask the team to give you feedback as well. By showing them that you welcome their views, you're creating an open culture and a great environment for continuous improvement.

9. Trust the team.
I've talked about trust a few times already, but it's so important that it needs to be discussed separately as well. Trust is one of the most important elements, if not the most important element, that the team needs. Team members need to trust you, know you trust them, and trust one another. A team that has trust can deliver great things even while dealing with some of the obstacles discussed above. They trust that they'll be led in the right direction, will develop the right things, will add business value, and will be successful. Most important, they trust that failure isn't bad; they trust that they'll do better and won't make the same mistake again.

10. Get comfortable being uncomfortable.
Scrum is going to be uncomfortable at first. Things aren't going to be perfect right away: Team velocity will be messy, team dynamics will take a while to develop, and executive support won't always be there. As a ScrumMaster, you'll run into a lot of unknowns, and it's normal to feel uneasy. Furthermore, when a team is allowed to self-organize, it must be given control. Especially if you're a traditional project manager-turned-ScrumMaster, this may make you anxious.
Additionally, it's uncomfortable to tell people "no." You need to be comfortable telling outsiders when they can and can't participate. You need to direct superiors to the product owner to get things added to the backlog, and not let them add elements smack in the current iteration. You need to disagree with changes to the Scrum process, and you need to block non-Agile methods. Part of protecting the team is all about saying "no."
Look back on all the previous tips to help combat this discomfort. Keep trusting yourself, Scrum practices, and the team to continue in the right direction: striving for high performance and delivering business value.

Author

Natalie

Natalie Warnert CSM


quarta-feira, 5 de dezembro de 2012

Zappos: Satisfação garantida

Estudo de caso da Zappos.com, empresa conhecida por "entregar felicidade", examinando as práticas que Tony Hsieh e sua equipe utilizaram para sucesso.

quarta-feira, 28 de novembro de 2012

Acredite no impossível: Romero Rodrigues, fundador do Buscapé

Quando dizem que algo é impossível, Romero Rodrigues vai atrás de provar o contrário. O fundador do Buscapé conta nesse vídeo como se fortalecer para enfrentar os obstáculos no caminho. Nunca deixou de acreditar no modelo do Buscapé que, recentemente, foi envolvido em uma das maiores transações de negócios digitais da história do Brasil.

Inspire-se com seu Day1, uma grande dose de motivação para empreendedores.

Versão compacta (5 minutos):

Versão completa (25 minutos):

terça-feira, 27 de novembro de 2012

Técnicas de motivação de times em projetos Agile - Michel Goldenberg

Pessoal, fiz o curso de scrum master com o Michel e realmente a qualidade do treinamento foi excepcional.A experiência passada baseada nos projetos internacionais é o mais interessante ao meu ver.

Nesse vídeo, o assunto é "Técnicas de motivação de times em projetos Agile"

quarta-feira, 21 de novembro de 2012

YoLab s01e03 - 24/11/2012

Galera, há algum tempo começamos a reunir o pessoal de software para fazermos um micro-evento, onde três integrantes, da nossa própria comunidade, nos trás alguma novidade.

Sábado (24/11/2012), teremos nosso terceiro episódio e o convite fica a todos os interessados por desenvolvimento de software e áreas afins.

Nesse sábado teremos os seguintes palestrantes e temas:

Henrique Ribeiro: SignalR: Funcionalidades Web em tempo real;
Lauro Ojeda: Startup;
Guilherme Cardoso: OOmelete (OO, Clean Code, Testes);

Infos:  yodojo@googlegroups.com

quinta-feira, 15 de novembro de 2012

Software: Produto ou Serviço ?

Esse é o segundo vídeo da série Batata Quente de Software idealizada pelo Klaus Wuestefeld (@klauswuestefeld) que tem por objetivo a produção de vídeos de 2 minutos tratando de assuntos relacionados ao desenvolvimento de software e estrelados por profissionais de destaque a cada episódio.

Ao final de cada vídeo a batata quente é passada para o próximo: o autor desafia quem ele quiser a falar sobre algum assunto específico.

Neste vídeo Rodrigo Toledo fala sobre "Software: Produto ou Serviço?"



Mais infos:

terça-feira, 13 de novembro de 2012

2º Congresso Anual do Grupo de Profissionais de Tecnologia da Informação das Empresas do Mato Grosso




Programação

13:00 - Entrega dos crachás aos participantes
13:30 - Grupo de TI_MT - Abertura do Evento & Divulgação das Ações do Grupo
13:50 - Totvs - Cloud Computing
14:20 - TDS Tecnologia - SQL Server BI & Capacitação em TI
15:00 - Razões para Investir em Segurança da informação
15:50 - Intervalo para o café
16:10 - 3RM Technologies - Informações sob demanda Tecnoloiga, Simplicidade e Negócio
17:00 - Bamo IT Service & Networking - Cloud Privada - Servidores Blade Cisco e Virtualização de desktop via Citrix
17:50 - Prodama & Service TI - Smart Planet - Tecnologia para um Mundo Mais Inteligente
18:30 - Grupo de TI_MT - Encerramento
19:00 - Jantar de Confraternização

Informações: http://www.grupotimt.org

quarta-feira, 31 de outubro de 2012

Consumidor poderá exigir velocidade de internet contratada a partir de amanhã

Entram em vigor a partir desta quinta-feira as novas regras de qualidade da internet fixa no país estabelecidas pela Agência Nacional de Telecomunicações (Anatel). Os consumidores poderão exigir uma velocidade instantânea da internet, que não poderá ser menor do que 20% da contratada pelo usuário, em 95% das medições realizadas.

Até agora, as empresas não tinham nenhuma obrigação. Caso o usuário contratasse 1 mega de velocidade, não significava que ele realmente estava recebendo esta velocidade no seu computador.

No primeiro ano, a velocidade instantânea é de 20 %. Nos doze meses seguintes, será de 30% e, a partir de então, é de 40%.

As empresas também são obrigadas a ter uma velocidade média da banda larga fixa. Ela é o resultado da média de todas as medições realizadas no mês. A meta a partir de agora é de 60%, nos doze primeiros meses. A partir de novembro de 2013, será de 70% e, a partir de então, sempre de 80%.

As empresas tiveram um ano para adaptar os seus equipamentos as novas regras de qualidade da Anatel estabelecidas no Regulamento de Gestão da Qualidade do Serviço de Comunicação Multimídia. Aquelas que não cumprirem as metas de qualidade poderão ser punidas pela agência.

Fonte: O Globo

Existe uma entidade oficial criada justamente para o acompanhamento da qualidade dos serviços de banda larga, é a EAQ.

A Entidade Aferidora da Qualidade (EAQ) foi criada em atendimento à Resolução Anatel n.º 574, de 28 de outubro de 2011, como parte do processo de aferição dos indicadores de qualidade das redes de telecomunicações que suportam o acesso à Internet em banda larga no Brasil.

No link abaixo você pode efetuar o teste de velocidade de sua banda larga:

Infelizmente o percentual entregue será apenas de 20% do contratado, depois 30% no segundo ano e 40% a partir disso. Eu discordo, se contrato um serviço e pago por ele, quero 100% do serviço prestado.

terça-feira, 30 de outubro de 2012