Olá pessoal,

Hoje venho aqui apresentar-lhes meu mais novo jogo para a plataforma iOS: Ship Hunt.

O objetivo do jogo é simples, você é um navio e tem que atingir outro navio afundado com um missíl. O míssil a ser disparado deverá ser controlado por você pelo acelerômetro do dispositivo, desviando dos obstáculos para acertar o alvo.

O jogo está disponível em uma versão gratuita com 1 capítulo e 10 fases jogáveis, e uma versão paga com 4 capítulos e 40 fases.

Download na Apple app store: 

Free version: http://bit.ly/1whDGVj
Full version: http://bit.ly/1wdDYME

 Confiram o trailer e algumas imagens do jogo:


Olá!

Hoje falarei um pouco sobre um assunto abordado nas provas de certificação de programador Java: Classes Internas (Inner Class). O conteúdo a ser abordado aqui não é nem de longe completo, já que este assunto é bem extenso. No entanto, o propósito deste post é ser um guia rápido para sanar eventuais dúvidas sobre o assunto ou simplesmente introduzir novos programadores ao tema.

Existem três razões pelas quais é interessante o uso de classes internas:

  1. Organização: principalmente quando a classe não irá ser usada em muitos contextos.
  2. Acesso: uma vez que classes internas podem acessar variáveis do classes externa.
  3. Conveniência: ter que criar um arquivo para cada classe as vezes é desnecessário.

As classes internas são dividas em duas categorias: estáticas e não estáticas. Dessas categorias, separamos em quatro tipos de classes internas:

  1. Classes internas estáticas: declaradas como membros estáticos de outra classe.
  2. Classes internas de instância: declaradas como membros de instância de outra classe.
  3. Classes internas locais: declaradas dentro de métodos de outras classes.
  4. Classes internas anônimas: são como classes internas locais, porém, escritas de outra forma.

Vamos nos aprofundar melhor em cada variância das classes internas.


Olá!

Hoje irei falar sobre um tema simples mas que surgiu durante um dia normal de desenvolvimento de software no serviço.

O que fazer quando o navegador salva informações para preencher formulários automaticamente e não queremos esse comportamento em nossos forms?

Para resolver isso temos uma propriedade chamada autocomplete que pode ser colocada como On ou Off. No caso, para evitar que o navegador preencha os campos do nosso formulário automaticamente utilizamos da seguinte forma a propriedade:
<input name="name" type="text" autocomplete="off" />
A propriedade também pode ser utilizada no formulário inteiro. Neste caso, ficaria da seguinte forma:
<form action="demo.php" method="post" autocomplete="off">
Por padrão, o autocomplete é On, portanto, não é necessário fazer nada se desejar que o navegador memorize os campos automaticamente.

Por fim, é importante salientar que essa propriedade tem suporte nos navegadores IE, Firefox, Chrome e Safari (para autocomplete no form) e IE, Firefox, Chrome, Safari e Opera (para autocomplete em campos).

Curta a fan page do site e receba atualizações antes de todo mundo!
Até a próxima :)


Olá!

Hoje falarei um pouco sobre os métodos equals() e hashCode(), assunto que não é novo mas ainda é muito utilizado e também é tratado na prova de certificação OCJP 6. 

Por mais que pareça estranho, ambos os métodos caminham juntos quando tratamos de Collections, e portanto, devem ser perfeitamente compreendidos para saber quando e como usá-los de forma eficiente.

equals()

Esse método é utilizado para verificar se dois objetos são significativamente iguais. Diferente do sinal "==" que verifica os bits do objeto (em outras palavras, se duas referências de objeto apontam para o mesmo objeto), o método equals() verifica o valor do objeto.

Esse método vem da classe Object, e na classe Object sua função é a mesma do sinal "==". As classes String e os Wrappers por sua vez já implementam sua sobrescrita afim de validar o valor significativo carregado no objeto.

Nota 1: É importante implementar sua sobrescrita em suas próprias classes justamente para verificar se dois objetos da classe em questão são iguais, do contrário, ele terá a mesma função do sinal "=="e dois objetos só serão considerados iguais se duas referências apontarem para o mesmo objeto.


A PHP Conference Brasil que acontecerá este ano de 4 a 7 de Dezembro na UNIFIEO - Centro Universitário Fieo, em Osasco(SP), contará com a participação de nada menos que Rasmus Lerdorf. O criado do PHP irá participar da conferência como Keynote Speaker.
Além disso, a conferência tratará de alguns temas escolhidos pelo público, que são:

  • Frameworks & Ferramentas 
  • APIs & Webservices 
  • Desafios e Tendências 
  • Estudos de Caso e Casos de Sucesso 
  • Segurança 
  • Mercado de Trabalho

Para maiores informações, acesse o site do evento em http://www.phpconference.com.br/


Este free PDF book é destinado a programadores PHP que desenvolvem aplicações para banco de dados Oracle.

Este book é interessante para:
    - Quem está começando a aprender PHP com Oracle;
    - Quem é um programador PHP e deseja aprender Oracle;
    - Quem está inseguro sobre como instalar o PHP, ou Oracle;
    - Quem pretende apenas saber as boas práticas de PHP e Oracle.

Este livro dá-lhe a base fundamental e necessária para criar aplicações web de alta performance com PHP e Oracle.


Olá pessoal,

Hoje falarei um pouco de um problema relativamente comum entre os atuantes da área de desenvolvimento: acentuação.

Este tutorial foi testado no seguinte ambiente/situação:

- S.O.: CentOS 5.2
- PHP : 5.2
- OCI : Oracle Instant Client 10g

Ao tentar acessar (de outro servidor) uma view de um banco de dados Oracle, os caracteres especiais eram exibidos com '?' (interrogação).


Recentemente tive um problema de conexão com banco de dados em localhost usando CodeIgniter e Doctrine.

Se você já usou Doctrine, sabe que ele se conecta ao banco de dados por PDO.

O erro apresentado era este: PDO::__construct() [pdo.--construct]: [2002] Invalid argument


Em vários servidores web (geralmente Apache), existe um arquivo de configuração a nível de diretório chamado .htaccess. A utilização deste arquivo permite o gerenciamento descentralizado do seu servidor, permitindo que se aplique configurações personalizadas a nível de servidor para cada diretório (site) do seu server.

Em outras palavras...

Você pode colocar configurações do Apache dentro deste arquivo para que somente o site em questão "entenda" essas configurações.


Olá, hoje registrarei uma dica de como resolver um probleminha chato que pode ocorrer durante o desenvolvimento de uma aplicação Flex + PHP.

O erro descrito na imagem abaixo, ocorreu quando o Flex se comunicava com o PHP através do AMFPHP.

O erro nos diz que não foi possível fazer a inclusão de uma classe (PHP) embora ela exista.


Hoje mostrarei uma forma extremamente fácil e rápida de criar uma navegação por abas em páginas web.

Veja aqui como vai ficar o exemplo do tutorial finalizado (caso as abas não apareçam, é algum problema com esse servidor gratuito que eu arranjei, rs).

Printscreen das abas:


Utilizaremos neste tutorial jQuery UI. O jQuery UI fornece abstrações de baixo nível de interação e animação, efeitos avançados de alto nível, widgets personalizáveis, construídos em cima da jQuery JavaScript Library, que você pode usar para construir aplicações web altamente interativas (jQuery UI).

Para realizar este tutorial precisaremos da lib jQuery versão 1.4.2, jQuery UI versão 1.8.2 e do css da jQuery UI para montar as abas.

Todos estes arquivos e o projeto realizado neste tutorial, você pode baixar aqui.

Caso prefira fazer os passos do tutorial, baixe o arquivo do projeto e separe em um diretório os arquivos:

  • jquery-1.4.2.min.js
  • jquery-ui-1.8.2.custom.min.js
  • css/smoothness/*


Já vi vários programadores PHP apanhando para fazer um simples envio de valores via checkbox, portanto, vou deixar registrado aqui a simplicidade de se implementar esta funcionalidade.

Crie uma página HTML com alguns checkbox. Coloque a propriedade "name" dos checkbox com o nome de chk[]. Na propriedade "value" coloque qualquer valor.


Olá!

Este é o segundo de dois tutoriais destinados a iniciantes na tecnologia Java para web.

Os tutoriais que compõe esta série estão a seguir:


Este tutorial irá mostrar como criar o famoso “Hello World” em JSF e RichFaces. Partirei do ponto que você já tem o ambiente de desenvolvimento configurado corretamente, conforme o tutorial que precede este: Iniciando em JSF e RichFaces – Instalação e Configuração do Ambiente (Parte I).


Olá!

Este é o primeiro de dois tutoriais destinados a iniciantes na tecnologia Java para web.

Os tutoriais que compõe esta série estão a seguir:


Antes de começarmos, vamos dar uma breve definição sobre o que é JSF e RichFaces.

  • JavaServer Faces (JSF) é um framework  MVC para o desenvolvimento de aplicações Web, que permite o desenvolvimento de aplicações para a internet de forma visual, ou seja, arrastando e soltando os componentes na tela (JSP), definindo propriedades dos mesmos, etc. Mais informações no Wikipédia.
  • RichFaces é uma biblioteca de componentes open source para aplicações web que trabalha com a framework JSF. Com ela, podemos fazer uma fácil integração de Ajax com as aplicações. Mais informações no Wikipédia.

Para este tutorial, utilizaremos os seguintes programas/ferramentas:

Nota: As versões dos programas abaixo listados, foram testados e são compatíveis entre si. Caso venha a instalar uma outra versão, verifique se existe compatibilidade entre as ferramentas.


Primeiramente baixe o eclipse e descompacte o arquivo no seu computador. Em seguida, acesse o diretório e execute o eclipse.

img1


tomcat0

Se você pretende rodar aplicações web feitas em Java, um servidor que “entenda” a linguagem é necessário, e este tutorial visa justamente ajudar os iniciantes que desejam se aventurar nesta área.

O Tomcat é um servidor web Java, mais especificamente, um container de servlets. Embora o Tomcat possua características de um servidor de aplicação, não pode ser considerado um, já que não preenche alguns requisitos específicos. Para maiores informações, consulte o Wiki.


Fica registrado aqui mais uma dica encontrada durante o processo de desenvolvimento de sites.

Este dica é referente a um erro encontrado e solucionado por Neil Tanaka, coordenador chefe da equipe de desenvolvimento do local onde trabalho, durante análises a um antigo site.

Descrição do problema: Em um site comum (PHP), existe um painel de login dentro de um iframe. Este arquivo que faz o login do usuário é chamado dentro do iframe, e ele envia para si mesmo, os dados do formulário de login. Ao validar um usuário, o arquivo abre uma janela popup. Esta janela popup, verifica se existe uma sessão em PHP antes de exibir o conteúdo. Caso não encontre nenhuma sessão ativa, ela exibe o texto "acesso restrito".
Em navegadores Internet Explorer, a sessão funcionava corretamente. Porém nos navegadores Mozilla Firefox e Google Chrome, a mensagem "acesso restrito" era exibida, indicando que a sessão não foi gravada. No entanto, o fato do Firefox e do Chrome não gravarem a sessão, não era uma regra. Em alguns computadores, a janela popup exibia o conteúdo corretamente, em outro computadores, "acesso restrito".


Se você trabalha com desenvolvimento web ou cuida de servidores com suporte a PHP, é importante que saiba os passos para habilitar ou desabilitar a exibição de erros e warnings para os desenvolvedores.

Os 4 passos para habilitar ou desabilitar a exibição de erros são os mesmos tanto no Windows como no Linux.


Se você trabalha com desenvolvimento de sites, saber como trocar a porta de operação do Apache é essencial, pois além de ser muito simples, pode nos evitar algumas dores de cabeça como conflito de portas na máquina.

Vamos imaginar a seguinte situação: Você está desenvolvendo um site no seu computador pessoal (Windows) e possui instalado e rodando o Skype (programa de comunicação via internet). O Skype é um programa que opera por padrão na porta 80 (a mesma do Apache) ou na 443. Supondo que você não soubesse que o Skype opera na mesma porta que o Apache e tentasse iniciar o Apache, este emitiria um erro, informado que a porta está em uso.

Ao invés de você sair vasculhando seu computador todo, em busca de um programa que esteja rodando da porta 80, você poderia simplesmente trocar a porta de operação do Apache para a 8080! Simples não?!

Este foi só um exemplo, mas é um exemplo real.

Os passos para trocar a porta do Apache são os mesmos tanto no Windows como no Linux.


Você já se deparou com a seguinte situação e ficou se perguntando como fazer isso?

"Queria que quando um usuário entrasse no meu site, fosse redirecionado para meu novo site"

Sim, esta é uma perguntando que acompanha vários desenvolvedores! Nem sempre queremos redirecionar usuários para outros sites, mas as vezes, temos a necessidade de redirecioná-lo para outra página do nosso site.

Outra situação muito comum (embora existam outras formas mais adequadas), é colocar uma página "index.html" dentro de um diretório no servidor para fazer o redirecionamento dos usuários que tentarem acessar essa pasta, não permitindo que seja listado o conteúdo do diretório.


Mas como redirecionar o usuário usando somente HTML?

Utilizaremos a tag META dentro das tags HEAD do nosso HTML, dessa forma:


Olá,

Hoje falarei um pouco sobre como trabalhar com arquivos no PHP.

Para trabalhar com arquivos, precisamos primeiramente abrir um arquivo ou então criá-lo (caso ainda não exista). Para abrir um arquivo, utilizamos o comando fopen(), seguido da letra que representa a opção do modo de abertura (leitura, escrita, leitura e escrita, etc).

A seguir, uma tabela com as opções do modo de abertura de arquivo: