A visualizar apenas posts colocados no ano de 2010

Hoje foi um dia de novidades para os lados da Noruega. Foi anunciada a versão Alpha do Opera 11 com suporte a extensões e finalmente o Opera Mobile será lançado publicamente no espaço de um mês.

Estatísticas

A única coisa que sinto falta no Android é o Opera Mobile a que tinha acesso no Windows Mobile. De momento uso o Opera Mini por ser o único disponível. Confuso? Vejam as diferenças entre o Mobile e Mini.

O Opera Mobile para Android já estava disponível à muito tempo, mas limitado a OEM’s. Agora irá ficar disponível no Market e finalmente será possível navegar com o Opera num Android com aceleração por hardware, pinch-to-zoom e uma experiência de uma web igual ao desktop, ao contrário do que acontece com o Opera Mini.

Se as suas funcionalidades forem iguais às do Windows Mobile (devem ser certamente) continuará a existir o Opera Turbo que permite um download mais rápido da página e menos tráfego graças à compressão efectuada nos servidores Opera, tal como já acontece com o Opera Mini. O download pode ser feito no local do costume.

Mais um trimestre, mais um post com gráficos engraçados. Estes são os dados estatísticos de utilização de Browsers, Sistemas Operativos e Resoluções de Ecrã a nível nacional para o terceiro trimestre de 2010.

Estatísticas

 

Browsers
Browsers

O Internet Explorer continua a perder utilizadores para o Google Chrome. O Firefox, Safari e Opera sem alterações de maior.

O número de utilizadores com o Internet Explorer 6 continua em queda, estando mais de 75% dos utilizadores deste browser na versão 8.0. A versão 9.0, que se encontra ainda em fase de testes, tem menos de 0.5% dos utilizadores.

Sistemas Operativos
Sistemas Operativos

Nos sistemas operativos encontra-se praticamente tudo inalterado, com mais de 93% dos utilizadores a escolherem o Windows. O XP continua a ser utilizado por quase 50% dos utilizadores Windows, o que poderá ser um entrave à adopção do Internet Explorer 9.

Resoluções
Resoluções

A resolução de 1024×768 continua em queda, tendo perdido 2% a favor de outras resoluções superiores e de aspecto 16:9. A fragmentação nas resoluções é grande e ainda é aconselhável desenvolver a pensar num mínimo de 1024×768.

Foi ontem anunciado no blog dos developers do Android que o market pago vai finalmente estar disponível em Portugal, assim como noutros países.

Market pago do Android em Portugal

Dentro das próximas duas semanas os utilizadores do Android em Portugal vão ter acesso às aplicações pagas no Market, entre outros países. Esta sempre foi uma das grandes falhas do Android por ter um acesso limitado por país às aplicações pagas. Foram também adicionados vários países nos quais os developers podem agora publicar aplicações pagas.

Cheguei mesmo a fazer root ao meu Nexus One para ter acesso ao Market pago, e com o recente update do Android (2.2.1) o método que utilizei para root deixou de ser suportado. Agora que tenho o WaveSecure instalado como aplicação de sistema e o Market pago está a caminho já não faz sentido fazer root ao telemóvel. Bem jogado! ;)

Não é novidade, mas algumas pessoas ainda não conhecem este easter egg. É possível jogar Snake no Youtube enquanto vemos um vídeo.

Se o Youtube já era uma quebra de produtividade, com o Snake ainda pior :lol:

Snake no Youtube

Para jogar Snake no Youtube basta abrir um vídeo e carregar durante 2 a 3 segundos na tecla para a esquerda no teclado. O jogo irá começar e podemos jogar enquanto um vídeo está a decorrer ou com ele em pausa.

A razão que leva alguém a jogar Snake enquanto está a ver um vídeo ultrapassa-me, mas é engraçado este easter egg. Claro que não está disponível no player HTML5, apenas em Flash.

Ontem ficou finalmente disponível a versão Beta do Angry Birds para Android. O interesse neste jogo era tão grande que a Rovio decidiu fornecer a Beta publicamente para que todos pudessem testar.

Angry Birds para Android

Para quem não conhece o jogo, temos à nossa disposição alguns pássaros suicida (e muito zangados :lol: ) que se catapultam através de uma fisga para destruir estruturas de madeira, vidro ou metal de forma a eliminar os porcos maquiavélicos que lhes roubaram os ovos.

O Angry Birds já rendeu mais de 3 milhões de dólares à firma finlandesa, o que é considerável para um jogo para telemóvel.

O jogo está com uns gráficos porreiros e no meu Nexus One corre bem, apesar de ter uns bugs com o multitasking (acho que andaram a inventar no AndroidManifest.xml), mas não nos podemos esquecer que estamos a falar de uma versão de testes. No Optimus Boston ainda não o consegui instalar porque não aparece no Market, mas existem mais pessoas a queixarem-se do mesmo, no Twitter da Rovio dizem estar a par da situação.

Infelizmente já acabei todos os níveis disponíveis na versão Beta, fico agora a aguardar pela versão completa e lá terei que usar um Market Enabler para ter acesso às aplicações pagas, já que em Portugal ainda não é possível comprar aplicações pelo Android Market.

Nem todos os programadores de PHP desenvolvem a pensar no futuro. Quer estejam a desenvolver sozinhos ou em equipa é sempre bom obedecer a algumas regras que se devem manter em todo o projecto, assim como documentar o nosso código.

Aqui ficam algumas dicas que actualmente aplico em todos os meus projectos.

Portátil na relva

Indentação do código
Se não temos código legível como o vamos alterar no futuro? É por isso que a indentação é muito importante.

1
<?php if (empty($var)) {echo 'Está vazio';} ?>

No exemplo acima temos tudo numa linha de código apenas. Com pouco texto é perceptível, mas com uma função mais complexa seria o caos. Se utilizarmos indentação o código fica perceptível quer por nós quer por quem visualize o código posteriormente.

1
2
3
4
5
<?php
  if (empty($var)) {
    echo 'Está vazio';
  }
?>

Pessoalmente não aconselho a efectuar a indentação com espaços, é preferível usar tabulações pois o seu tamanho pode ser definido directamente na aplicação que estamos a usar para editar o código. O número de tabulações entre linhas de código fica ao vosso critério, mas seja qual for lembrem-se de o utilizarem sempre para que o código fique igual em todo o projecto.

Nomes de funções e variáveis
O PHP é uma óptima linguagem pois deixa-nos programar da forma a que mais nos adaptamos. Isto tem um custo associado, e por vezes as nossas escolhas nos nomes de funções e variáveis podem não ser as mais correctas.

1
2
3
4
$variable_name
$VariableName
$variableName
$variablename

As primeiras três linhas são bons exemplos de como dar um nome a uma variável ou função. A primeira é normalmente a mais utilizada, usando um underscore (_) em substituição de um espaço.

A quarta linha é um mau exemplo porque o nome da variável fica mais confuso e torna-se mais difícil ler o seu nome.

Eu opto sempre por colocar o nome de variáveis e funções na forma CamelCase com a primeira letra minúscula (mixedCase) tal como na terceira linha do exemplo acima.

Números mágicos
Guardar um número como ID em vez de uma palavra numa base de dados torna a indexação mais rápida e ocupa menos espaço em disco, tornando a base de dados mais eficiente. Fazer o mesmo em programação é o oposto.

1
2
3
4
5
<?php
  if ($var == 3) {
    // Corre função
  }
?>

Visualizando o código ficamos sem saber a que corresponde o algarismo 3, um número mágico. Se definirmos uma palavra ao nosso algarismo tornamos o código mais perceptível e fácil de manter caso o valor deste algarismo altere.

1
2
3
4
5
6
<?php
  define('ACTIVO', '3');
  if ($var == ACTIVO) {
    // Corre função
  }
?>

Podemos assim definir uma palavra que corresponde ao algarismo, e se desejarmos basta alterar num local o algarismo correspondente e todo o nosso código vai saber que ACTIVO para a corresponder a um novo número.

Comentários
Colocar comentários no código a documentar o que cada função faz é crucial. Não apenas para quando trabalhamos em grupo mas também quando são projectos individuais. Certamente com o código fresco na cabeça se lembram do que cada pedaço de código faz, mas se necessitarem de alterar algo após 6 meses ou 1 ano certamente vão agradecer que o código esteja devidamente documentado.

Sempre que declararem uma função é bom explicar o que ela faz e explicar o que cada argumento recebe.

Existem países onde a tentativa de ataque a servidores e o envio de spam é superior aos restantes. Um desses países é a China, o qual decidi bloquear.

Após vários meses de teste decidi partilhar convosco os resultados.

China bloqueada

Preocupo-me bastante com a segurança dos servidores onde tenho os meus sites alojados. Aliás, programo sempre com a segurança em mente, colocando os mecanismos de defesa do servidor activos como último recurso. Existem programadores que o fazem ao contrário, não se preocupam com a segurança porque o servidor deve efectuar a protecção, acabando com os seus sites atacados por malware, muitas vezes a enviar spam do seu próprio domínio.

Sempre que analisava os logs de servidor ou era notificado de um bloqueio os países eram sempre os mesmos. Decidi analisar o tráfego de todos os sites que possuo, e apenas um destes países que me atacava não produzia visitas válidas.

Estou a falar da China, obviamente. Decidi então cortar o mal pela raiz e bloquear este país. Podem sempre usar proxys doutros locais, é certo, mas as notificações eram de IP’s associados à China.

No caso do CPanel com a firewall CSF basta adicionar a entrada CN para bloquear os IP’s provenientes deste país. Noutros sistemas podem ser utilizar uma das muitas listas existentes e adicionar as entradas ao iptables.

Resultados
Quando efectuei esta operação estava apreensivo pois tinha ideia que o load da máquina iria subir. Felizmente tal não aconteceu e as tentativas de ataque daquele país assim como o envio de spam acabaram.

Passei a ter menos alertas de tentativa de ataque e o número de mensagens de spam desceu consideravelmente. Tendo em conta que no meu caso não existe tráfego real vindo da China esta é uma medida interessante para aumentar a segurança de um servidor.

 
Copyright © 1985 - 2017 Eduardo Maio. Alguns direitos reservados.
eduardomaio.net - Às vezes mais valia ser Agricultor do que Programador
Ao navegar no blog eduardomaio.net está a concordar com os termos legais e de privacidade.