Últimos posts


Previsto para ser lançado em maio, o Fedora 19 vai usar o MariaDB em vez do MySQL para aplicações que requerem MySQL. Isso significa que o fork do MySQL vai substituir o projeto original em outra distribuição, já que a versão 2 do Mageia já fez a troca.

Fedora 19 troca MySQL por MariaDB

A mudança não vai afetar os usuários, porque as versões atuais do MariaDB são completamente compatíveis com a original da mesma geração.

A troca para o MariaDB é apenas uma das várias solicitações dos desenvolvedores que o Fedora Engineering Steering Committee (FESCo) aprovou em um encontro no IRC nesta semana. Também foi aprovada a proposta de o udev atribuir, ele mesmo, nomes de dispositivos de redes em novas instalações, em vez de chamar o biosdevname por padrão. (mais…)


Foi disponibilizada uma nova versão estável do framework para desenvolvimento de aplicativos web Ruby on Rails (RoR). Com 189 commits na árvore de desenvolvimento, a versão 3.2.9 consiste basicamente de correções, com destaque para pequenas mudanças no ActiveRecord, ActionPack, ActiveModel, ActiveSupport, ActionMailer e Railties.

No anúncio de lançamento do RoR 3.2.9, há um alerta sobre uma brecha para ataques do tipo DoS encontrada recentemente no Ruby. A recomendação é o Ruby para a versão 1.9.3 patchlevel 327 ou configurar o servidor web para limitar o tamanho da requisição HTTP. O Nginx já faz isso por padrão, e o Apache precisa ser configurado usando a diretiva LimitRequestBody.

O RoR enfatiza o uso de padrões de projetos conhecidos, como Active Record, DRY (Don’t Repeat Yourself) e arquitetura MVC (Model-View-Controller), e é utilizado por grandes sites como Software Livre Brasil (Noosfero), Github, Diaspora, Scribd e Groupon.

A série estável 3.2.x do Ruby on Rails será a última a suportar o Ruby 1.8.7. A próxima versão do Rails (4.0) terá como requisito a versão 1.9.3 ou superior do Ruby, que traz como vantagem uma grande melhoria no desempenho e na escalabilidade. (mais…)


A Fundação Apache anunciou o lançamento do Apache TomEE 1.5, sua versão do Tomcat com certificação Java EE 6 Web Profile. O pulo no número da versão reflete o grande numero de correções e atualizações incluídas.

A versão 1.5 traz mudanças significativas em seus recursos de pools de conexão. Foi adicionado suporte a transações aos pools nativos do Tomcat e do BoneCP, além do suporte ao Commons-DBCP que já existia. Além disso, todos os pools agora são monitorados através de instrumentação do JMX.

O produto também ganhou funcionalidades de automação/scripting via um plugin do Maven, disponível antes apenas experimentalmente em um arquivo zip. O plugin pode, entre outras coisas, ser usado para provisionar servidores, instalar bibliotecas e publicar aplicações web.

O TomEE combina o Tomcat (que suporta Servlets, JSP e JSTL) com vários outros projetos conhecidos da Apache. É oferecido em três versões: TomEE, TomEE JAX-RS (novo na versão 1.5) e TomEE+. O TomEE adiciona ao Tomcat os seguintes projetos da Fundação:

  • CDI, do OpenWebBeans
  • EJB, do OpenEJB
  • JPA, do OpenJPA
  • JSF, do MyFaces
  • JTA, do Geronimo Transaction
  • JavaMail, do Geronimo JavaMail
  • Bean Validation, do BVal

A versão TomEE JAX-RS adiciona, ainda, o Apache CXF para prover suporte a JAX-RS. O TomEE+ inclui suporte a JAX-WS (também usando CXF), JMS (via ActiveMQ) e JCA (com o Geronimo Connector). As três distribuições são licenciadas sob a versão 2.0 da licença Apache.

O TomEE tem ganho rapidamente a atenção dos desenvolvedores. Isso tem se refletido na atenção que o produto começa a receber de fornecedores de ferramentas. Por exemplo, no futuro IntelliJ IDEA 12, atualmente em early access, a JetBrains inclui suporte direto ao TomEE; a ZeroTurnaround adicionou esse suporte à versão 5.0.1 do JRebel, em julho. (mais…)


O HTML5 Boilerplate (H5BP) fornece um template inicial para o desenvolvimento em HTML5 e CSS. Contém um conjunto de boas práticas para o front-end no desenvolvimento web, incluindo configurações recomendadas de servidores web. Conheça as novidades do H5BP versão 4.

Melhorias na configuração da compressão do Apache

O Apache 2.4 mudou a sintaxe do FilterProvider, que agora usa uma expressão booleana para determinar se um filtro deve ser aplicado. O Boilerplate 4 não usa mais o FilterProvider; em vez disso, emprega uma configuração simples de compressão com gzip que funciona nas versões do Apache de 2 até o 2.4. Essa configuração pode ser encontrada no arquivo .htaccess do Boilerplate.

HiDPI media query

O H5BP 4 adicionou um exemplo de media query para resoluções HiDPI (Retina); o exemplo está disponível no main.css. (mais…)


Em um mundo cada dia mais dinâmico, nada pior do que ter que esperar as coisas. Isso tem que ser levado muito em conta quando se trata de sites na Internet, principalmente os que vendem online. Esse é o motivo pelo qual você deve se preocupar, e muito, com a performance do seu site.

De acordo com a Forrester Consulting, em 2006, compradores online esperavam que uma página web carregasse em até 4 segundos e, hoje, esse mesmo cliente espera que essa página carregue em 2 segundos ou menos. A Amazon, pouco tempo atrás, descobriu que aumentou sua receita em 1% a cada 100 milisegundos de ganho em performance, e um estudo comprovou que cada segundo gasto na abertura de uma página pode representar 5% a menos de conversão para a sua loja.

Mas, agora, vamos deixar de conversa e ir ao que nos interessa. O Apache, hoje, é o webserver mais utilizado do mundo, usado por cerca de 60% dos sites, com suporte para todos os sistemas operacionais e centenas de módulos disponíveis. Além disso, é um servidor muito estável e open source.

Quando se trata de Apache, a memória é o recurso mais importante para ele. Mensurar mal a quantidade de memória que será utilizada pode significar usar a swap, ou seja, muitos processos para pouca memória, ou gerar uma lentidão no sistema, que acontece quando se tem poucos processos e muita memória sobrando. Dessa forma, a memória tem que ser muito bem mensurada para não se ter nenhum tipo de problemas.

Outra coisa que pode ajudar muito quando se trata de Apache é o uso de MPM (Multi-processing Modules), que são responsáveis por manipular as requisições concorrentemente e a escolha certa desses módulos pode fazer grande diferença na performance, escalabilidade, consumo de memória e consumo de CPU do seus sistema. Os MPMs mais comuns hoje são:

Worker

Cada request neste módulo é tratado por uma thread diferente, o que o torna ideal para tráfego muito alto, com mais de 3 mil requests simultâneos. Uma vantagem dele em relação ao prefork é o uso de memória menor e a velocidade maior. Porém, ele é menos estável, muito difícil de debuggar, tem problemas ao trabalhar com módulos não thread-safe e, se algum problema acontecer na thread, esse problema pode influenciar no processo pai.

Prefork

Neste módulo, cada request é tratado por um processo separado e, dessa forma, um problema no processo filho não implica no processo pai. É muito tolerante a falhas e, por causa disso, muito estável e pode ser utilizado com módulos não thread-safe. Falando pelo lado do desenvolvedor, ele é ideal para módulos monolíticos (PHP), muito fácil de debuggar e efetua pooling de processos. Mas, como nem tudo são flores, ele utiliza mais memória do que o Worker e criar um processo nele é muito custoso e demorado.

Dessa forma, você deve analisar o seguinte antes de implementar algum deles: Prefork é mais estável; Worker requer menos hardware.

Vamos ver agora como configurar cada um deles:

Configurando o Prefork

No arquivo httpd.conf
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule>

StartServers: O número de processos que serão criados quando o Apache for iniciado.

MinSpareServers: Número mínimo de processos que ficarão esperando por requisições.

MaxSpareServers: Número máximo de processos que ficarão esperando por requisições.

MaxClients: Número máximo de requisições atendidas simultâneamente.

ServerLimit: Número mais alto que o MaxClients pode chegar.

MaxRequestsPerChild: Quantas vezes um mesmo processo será reutilizado.

Dicas

Nos valores de StartServers, MaxSpareServers e MinSpareServers, números muito grandes podem consumir memória desnecessária, dependendo do tamanho médio do seu processo. A sugestão é que trabalhe com os seguintes valores:

  • MinSpareServers entre 10 e 20.
  • MaxSpareServers entre 20 e 30.
  • StartServers igual a MinSpareServers.

No caso do valor de ServerLimit, caso o seu MaxClients seja maior do que 256, é obrigatório que você configure maior ou igual a ele. A sugestão é que o ServerLimit seja sempre igual ao MaxClients.

Vamos exemplificar isso melhor:

Identifique o tamanho médio dos seus processos apache, vamos usar como exemplo o valor 7800 kb. Identifique o tanto de memória RAM disponível sem o apache rodando(deixe uns 20% sobrando), por exemplo, 2GB(2097152 kb). Dessa forma, 2097152 / 7800 = 268 processos. Isso significa que as suas configurações manipulam 268 conexões simultâneas.

Caso isso não seja suficiente para o seus sistema a sugestão é aumentar a memória e calcular novamente e/ou adicionar uma outra máquina e fazer um load balance.

Configurando o Worker

No arquivo httpd.conf
<IfModule prefork.c>
StartServers 10
MinSpareServers 10
MaxSpareServers 25
ServerLimit 350
MaxClients 350
MaxRequestsPerChild 5
</IfModule>

Ele tem a mesma abordagem do Prefork!

No próximo artigo vamos tratar de otimização nas requisições do browser, reduzindo o número de requests que sua página faz ao servidor.


Google PageSpeed Insights 2.0 O Google anunciou a segunda versão da sua ferramenta open source de análise de páginas, rebatizada de PageSpeed Insights. Além de existirem extensões para o Chrome e para o Firefox, as páginas podem ser analisadas também pela ferramenta PageSpeedInsights Online. As páginas e seus recursos podem ser automaticamente otimizados utilizando o PageSpeed Service (em beta) ou utilizando o Optimization SDK, um conjunto de bibliotecas C++ que oferece a mesma otimização que o serviço online. Outra solução é usar o módulo para Servidor Web Apache mod_pagespeed.

Quando utilizado via serviço online, uma cópia das páginas otimizadas e seus recursos ficam armazenados nos servidores do Google e são disponibilizados a partir de lá. O serviço não deve ser utilizado para páginas privadas, como páginas de intranets corporativas, ou páginas que necessitam de autenticação para acesso. A solução nesses casos é utilizar os plugins para os navegadores. O serviço e as extensões vêm com mecanismo de renderização e user agents diferentes, resultando em uma pequena diferença na pontuação calculada para a página. (mais…)


A SpringSource lançouSpring for Android 1.0, uma extensão do Spring Framework que simplifica o desenvolvimento de aplicativos nativos para Android. A nova versão inclui um cliente REST (RestTemplate) e suporte ao padrão OAuth (Spring Social) com implementação para conexão a redes sociais.

Spring for AndroidSpring for Android

Uma das principais funcionalidades do Spring for Android 1.0 é o cliente REST. Agora é possível usar uma versão do Spring RestTemplate para consumir serviços RESTful dentro de um aplicativo Android nativo. Com base nas recomendações do Google, o RestTemplate usa bibliotecas de cliente HTTP do Java SE para o Android 2.3+, e o Apache HttpClient para Android 2.2 e versões anteriores. Há suporte a diferentes conversores de mensagens HTTP, uso de Jackson ou Google Gson para processamento de JSON, Simple XML Serializer para XML e Android ROME para RSS/Atom. O RestTemplate também suporta a compressão gzip. (mais…)


O XAMPP é um pacote com os principais servidores de código aberto do mercado, incluindo FTP, banco de dados MySQL e Apache com suporte as linguagens PHP e Perl.

Com ele, é possível rodar sistemas como WordPress e Drupal localmente, o que facilita e agiliza o desenvolvimento. Como o conteúdo estará armazenado numa rede local, o acesso aos arquivos é realizado instantaneamente. O pacote de servidores é baixado cerca de 600 mil vezes por mês, de acordo com dados do SourceForge.

Atualmente, o XAMPP está disponível para quatro sistemas operacionais: Windows, Linux, Mac OS X e Solaris. Não é necessário instalá-lo: basta extrair o arquivo compactado (de preferência para a pasta raiz do seu disco rígido ou um local de fácil acesso) e executar o aplicativo que inicia os servidores. No Windows, o executável possui o nome xampp_start.exe. Um painel de controle (xampp-control-3-beta.exe) também fica disponível e permite iniciar ou parar servidores individuais.

Painel de controle do XAMPP (Foto: Reprodução/Paulo Higa)

Painel de controle do XAMPP (Foto: Reprodução/Paulo Higa)

Após iniciar os servidores do XAMPP, seu servidor web local estará disponível no endereço http://127.0.0.1. Para armazenar arquivos, procure pela pasta htdocs no diretório que você extraiu os arquivos do XAMPP. Todos os arquivos salvos neste local estarão disponíveis pelo endereço acima. Uma pasta chamada “wordpress”, por exemplo, estará acessível em http://127.0.0.1/wordpress. (mais…)


Planos para tornar mais modular a plataforma, além do seu esquema de licenciamento, têm gerado preocupações entre várias entidades de mercado.

Oracle Java Treinamento em Porto Alegre

A Oracle assumiu oficialmente a responsabilidade sobre os destinos da linguagem Java há cerca de dois anos e tem percorrido recentemente caminhos difíceis: os seus planos de licenciamento para uso da tecnologia e para tornar mais modular a plataforma levantam algumas preocupações entre fornecedores e usuários. As implicações de segurança associadas são um dos principais fatores para esta atitude.

Os planos do fabricante sobre a versão 8 da Java Platform Standard Edition, com lançamento previsto para o próximo ano, envolvem a inclusão do Jigsaw Project, conferindo modularidade à Java. Mas algumas organizações estão preocupadas com a forma como os planos da Oracle podem entrar em conflito com o sistema de módulos OSGi já orientada para Java.

No campo do licenciamento, a Canonical, fabricante do sistema operativo Ubuntu (Linux), queixa-se da nova atitude da Oracle. Considera que o fabricante já não permitirá aos fornecedores de sistemas baseados em Linux redistribuir as suas versões comerciais de Java, causando-lhes dificuldades. (mais…)


Curso de Administração de Serviços Linux para Web

Neste curso será apresentado os conceitos e as boas práticas de instalação, configuração e gerenciamento dos seguintes serviços: DNS, Web, FTP e E-mail.

Objetivos

- Configurar e gerenciar o servidor de DNS
- Configurar e gerenciar o servidor Web
- Configurar e gerenciar o servidor FTP
- Configurar e gerenciar o servidor de E-mail (mais…)