sexta-feira, 26 de dezembro de 2008

Curso Desenvolvedor Web, do 180graus!

Antes mesmo de chegar ao fim, o curso de Desenvolvedor Web em PHP/MySQL do 180graus já é um sucesso. Vários alunos já foram impactados pelo mercado e outros conseguiram colocação profissional em importantes portais do Piauí!

terça-feira, 2 de setembro de 2008

Utilização das estruturas de controles IF e ELSE no PHP

Veja no site http://www.phppiaui.com.br um excelente tutorial sobre como utilizar na prática as estruturas de controle IF e ELSE no PHP, o link da matéria é esse: http://www.phppiaui.com.br/php/utilizacao-das-estruturas-de-controles-if-e-else-no-php-6.html.

Todos os tutoriais desde blog, apontarão para o http://www.phppiaui.com.br que é o site oficial deste blog. Visite-nos!

terça-feira, 19 de agosto de 2008

Hielbert Ferreira, no stand da Google, no SMXSP08


Hielbert Ferreira, gerente de TI do http://180graus.brasilportais.com.br, após conversa sobre conversões e relanvância de conteúdo com o pessoal da Google Brasil, no SMXSP-2008, um evento que reuniu analistas de sistemas, programadores, web desiners, publicitários e otimizadores de web sites - SEO, de toda America Latina e Central, para treinamento sobre otimização de web sites no buscadores, e troca de informações referente a área.

Alexandre A. Tokoyama, Senior Sales Rep, GBS do Google, e Hielbert Ferreira, gerente de tecnologia do http://180graus.brasilportais.combr, no SMXSP-2008, após conversa sobre Google Adsense e Google Adwords e novas tecnologias que o Google esta testando, para implementar no mercado!

domingo, 10 de agosto de 2008

Fotos de Hielbert Ferreira no SMX São Paulo 2008, Brasil - Search Marketing Expo


Hielbert Ferreira, analista de sistemas e gerente de TI e SEO do http://180graus.brasilportais.com.br, em visita a Locaweb-IDC em São Paulo-SP, na Av. Presidente Juscelino Kubitschek, 1830 - 10º andar - Torre 1 - Vila Nova Conceição. Ao lado o gerente do departamento comercial da Locaweb-IDC, João Smith.

Dr. Barney Pell
Fundador e Chief Technology Officer da Powerset, negócio recém incorporado pela Microsoft.

Por mais de quinze anos, Barney tem construído técnicas inovadoras no setor de buscas para web e inovação comercial em TI como um investigador, gerente de investigação de empresas e estrategista empresário. Ele passou 2005, como Empreendedor em Residence Mayfield, para avaliar muitos estágios de TI e muitas empresas baseadas em TI. Antes de ingressar na Mayfield, Barney trabalhou para NASA Ames Research Center em duas ocasiões: a partir de 1993-1998 como Projeto Chumbo para o Executivo componente do ganhador de prêmio Remote Agent Experiment, e de 2002-2005 como Gerente de Área responsável pela investigação em agentes inteligentes, arquitetura de software, centrada no homem de computação, pesquisa, conhecimentos de gestão colaborativa, distribuídos de bases de dados, informações de integração, sistemas de diálogo falado, e da web semântica. Entre 1998 e 2002, trabalhou na Barney técnicos em fase de arranque: ele serviu como Estrategista Chefe e Vice-Presidente de Desenvolvimento de Negócios em StockMaster.com, um provedor de internet baseado em stock-mercado de ferramentas de análise e, posteriormente, como Vice President da Estratégia para a Whizbang! Labs, um prestador de transformação e de texto avançado motor de pesquisa de software. Barney também serve como um conselheiro ou membro do conselho de várias empresas iniciantes e educacionais nonprofits. Barney tem Ph.D. em Ciência da Computação pela Universidade de Cambridge. Ao lado Hielbert Ferreira, analista de sistemas e gerente de TI e SEO do http://180graus.brasilportais.com.br


Susan Humphries
Diretora, Ásia e Pacífico, América Latina em vendas de produto e operações
Google

Susan Humphries entrou no Google em fevereiro de 2007 para gerir a Ásia, o Pacífico, a América Latina em Vendas de Produtos de Operações grupo em sede do Google em Mountain View, Califórnia. Este grupo impulsiona as vendas e na inovação de produto e operações principais, dos produtos do Google, monetização (AdWords, o AdSense, YouTube) para a América Latina e Ásia Pacífico.

Antes de entrar no Google, Susan foi o diretora de vendas da Japão Consumidor e Pequenas Empresas em Dell em Dalian, na China foi supervisora de todas as vendas, inclusive as vendas on-line de apoio, para a Japão Consumer Business, canal de vendas on-line e suporte para o Japão Pequenas Empresas canal. Anteriormente, ela foi o Vice Presidente Fabricante de Vendas e Marketing da Catalina Marketing Japão, em Tóquio, Japão supervisionando todos os esforços de vendas e marketing para o Japão.

Susan's educativa inclui um fundo B.A. em Estudos da Ásia Oriental de McGill University (Canadá), um MBA da Escola Anderson na UCLA (E.U.A.), bem como estudos em língua Ritsumeikan University (Japão) e a Universidade de Línguas e Cultura Pequim (China). Susan é fluente em japonês e chinês e seu próximo objetivo pessoal é a fluência em Português brasileiro , Espanhol e Português!

Ao seu lado, Hielbert Ferreira, analista de sistemas e gerente de TI e SEO do http://180graus.brasilportais.com.br, ambos no SMX-SP/08.

segunda-feira, 4 de agosto de 2008

Conceitos gerais de Orientação a Objetos: Modelagem de Sitemas

2) Modelagem de sistemas

Vamos pensar então o que é desenvolver orientação a objetos? Alguns poderiam dizer que é programar com classes ou criar diagramas UML. Estas respostas não estão erradas, porém o conceito é mais amplo. Modelar e projetar sistemas com essa metodologia é abstrair problemas da realidade cotidiana para modelos computacionais com base em padrões organizados, sendo que a base dessa modelagem é o que conhecemos como objeto onde está definida a estrutura de dados e comportamentos do mesmo. Estes modelos orientados a objetos facilitam o entendimento de todo o ciclo de desenvolvimento, desde a idéia do funcionamento do negócio, contato com o cliente (entrevista, levantamento de requisitos), comunicação das partes, entendimento dos processos de negócios, especificação das classes e banco de dados.

A tradução de todo esse processo de negócio para termos técnicos ficaria como um ciclo com as seguintes etapas: análise, projeto e implementação (codificação e testes).

Bom, o que podemos salientar teórica e resumidamente sobre modelagem de sistemas é isso, no próximo artigo daremos continuidade a esse assunto detalhando as etapas do processo de modelagem de sistemas, um abraço a todos e até a próxima.

quinta-feira, 31 de julho de 2008

Conceitos gerais de Orientação a Objetos


1) Introdução

O conceito geral de orientação a objetos não é novo. Desde a década de 1960 já existiam linguagens que davam suporte a essa metodologia; contudo essas linguagens bem como a metodologia de orientação a objetos eram geralmente restritas ao meio acadêmico. Porém nos últimos anos, a indústria de software tem-se esmerado em tornar essa metodologia cada vez mais presente no cotidiano dos profissionais/estudantes do setor, seja através da criação ou evolução de linguagens de programação como JAVA, C++, DELPHI, e PHP (efetivamente desde a versão 5) etc., até a criação de novas ferramentas para modelagem de sistemas onde a UML tem se destacado como padrão.

A OO – orientação a objetos – é também um termo geral que inclui qualquer estilo de desenvolvimento que seja baseado no conceito de “objeto” – uma entidade que exibe características e comportamentos. Essa metodologia é o refinamento de vários anos de pesquisa da indústria/academia, uma evolução da técnica de programação modular/procedural, sendo que a programação orientada a objetos – POO se vale dessa evolução para resolver problemas de modelagem de software, dividindo estes problemas não mais em módulos e rotinas para dirigir o fluxo do sistema, mas em objetos que interagem entre si para atingir esse objetivo.

No próximo artigo falaremos um pouco sobre modelagem de sistemas, um abraço a todos e até a próxima.

quinta-feira, 10 de julho de 2008

Marketing em Sites de Busca - SMX São Paulo 2008, Brasil - Search Marketing Expo 7 e 8 de Agosto de 2008

"Pela primeira vez no Brasil, chega a São Paulo o evento de Search Engine Marketing (Marketing em Sites de Busca) mais importante do mundo, com edições nos Estados Unidos, Europa, Austrália, América Latina e China.

O mercado está cada vez mais competitivo e somente as empresas com as melhores estratégias poderão sobreviver à evolução dos algoritmos dos sites de busca – no posicionamento da busca orgânica – e à crescente competitividade das campanhas de Links Patrocinados.

Além disso, Google, Yahoo! e Microsoft continuam expandindo seus negócios e criam cada vez mais oportunidades. O SMX São Paulo servirá para explorar essas oportunidades e analisar as previsões para o futuro, oferecendo painéis com os melhores experts dos Estados Unidos, Brasil e Europa."


São poucas as oportunidades que temos aqui no Brasil, de participarmos de grandes eventos com peso internacional, na área SEO e Marketing em Sites de Busca, e o Search Marketing Expo - São Paulo é uma grande oportunidade para desenvolvedores e publicitários Brasileiros e principalmente Piauienses desenvolverem seus conhecimentos para que possamos efetivamente colocar os sites aqui desenvolvidos no topo das pesquisas referentes.

Outro ponto importante é sem dúvida a experiência que é adquirida quando temos a oportunidade de ouvir pessoas que participaram e participam efetivamente do desenvolvimento desse mercado novo, concorrido, atraente e promissor. Que é o Web Marketing em Sistemas de Buscas.

Eu, com o apoio do BrasilPortais - http://180graus.brasilportais.com.br, já confirmei minha participação nesse evento que provavelmente será o maior evento na área de Marketing em Sistemas de Buscas na Web do ano.

Eu gostaria de encontrar uma grande comunidade de desenvolvedores piauienses lá! Valeu, um abraço a todos, e muito em breve vou voltar a postar artigos e dicas que vão contribuir muito para o conhecimento de todos, e gostaria que todos os leitores deste blog, deixassem seus comentários, pois a melhor maneira de aprendermos é com a troca de experiência e o debate!

sexta-feira, 27 de junho de 2008

PHP - Principais características

A linguagem PHP é uma linguagem de programação de domínio específico, ou seja, seu escopo se estende a um campo de atuação que é o desenvolvimento web, embora tenha variantes como o PHP-GTK. Seu propósito principal é de implementar soluções web velozes, simples e eficientes.
Características:

• Velocidade e robustez
• Estruturado e orientação a objeto
• Portabilidade - independência de plataforma - escreva uma vez, rode em qualquer lugar;
• Tipagem fraca
• Sintaxe similar a Linguagem C/C++ e o PERL

Exemplo da sintaxe

"2") // se a variavel $x igual a 2 OU maior que 2
{
echo 'Olá mundo!'; // escreve "Olá mundo!"
} else { // Se não.
print('Adeus mundo!'); // escreve 'Adeus mundo!', print pode ser usado com ou sem parênteses.
}

?>

PHP 5

Em junho de 2004 foi lançada a versão 5 do PHP, introduzindo um novo modelo de orientação a objeto, como por exemplo:

• Reformulação dos Construtores e adição de Destrutores

O construtor



O destrutor



• Visibilidade de acesso
• Abstração de objeto
• Interfaces de objetos

O tratamento de objetos do PHP foi completamente reescrito, permitindo um desempenho melhor e mais vantagens. Enquanto na versão anterior era preciso muito esforço para atender à orientação a objetos e aos padrões de projectos (alguns não eram possíveis), o PHP 5 veio para sanar essa deficiência. Ainda sofre nesse sentido, contudo, por problemas devido a ser uma linguagem de tipagem fraca.

Indução de tipo

Nesse sentido, foi adicionada uma característica chamada de indução de tipo, de acordo com a qual podemos ter uma certa tipagem quando passamos objetos aos parâmetros de uma função (ou método), algo inconcebível na versão anterior.

Por exemplo:



Visibilidade

A visibilidade de uma propriedade ou método pode ser definida com os seguintes modificadores de acesso: public, protected ou private. Itens declarados como públicos podem ser acessados pelo objeto (instância da classe). Membros protegidos estão acessíveis às classes filhas (herdadas). A visibilidade privada limita a apenas a classe que define o atributo ou método.

Por exemplo:

class ClassePai
{
private $atributoPrivado;
protected $atributoProtegido;

public function imprimePai()
{
$this->atributoPrivado = 'Privado';
echo $this->atributoPrivado;
}
}

class ClasseFilha extends ClassePai
{
public $atributoPublico;

public function imprimeFilho()
{
$this->atributoProtegido = 'Protegido';
echo $this->atributoProtegido;

}
}

$obj = new ClasseFilha();// Estanciando a classe
echo $obj->imprimePai(); // Exibe na tela 'Privado'
echo $obj->imprimeFilho(); // Exibe na tela 'Protegido'

// É permitido o acesso pelo objeto aos atributos públicos:
$obj->atributoPublico = 'Sobrenome: Muzzy';
echo $obj->atributoPublico; // Exibe na tela 'Sobrenome: Muzzy'

Outros exemplos

Ler dois valores registrados em variáveis e indicar o maior

$valor2) {
echo "A variável $valor1 é maior que a variável $valor2";
} else if ($valor2 > $valor1) {
echo "A variável $valor2 é maior que a variável $valor1";
} else {
echo "A variável $valor1 é igual à variável $valor2";
}
?>

Mostrar na página os dez primeiros números

PHP – Linguagem de Programação

Histórico

A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdof, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL.

Mais tarde, Zeev Suraski desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientação a objetos, que dava poder de alcançar alguns pacotes, tinha herança e dava aos desenvolvedores somente a possibilidade de implementar propriedades e métodos.

Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder à máquina da linguagem e maior número de recursos de orientação a objetos. O problema sério que apresentou o PHP 4 foi a criação de cópias de objetos, pois a linguagem ainda não trabalhava com apontadores ou handlers, como é a linguagem Java.

O problema fora resolvido na versão atual do PHP, a versão 5, que já trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um apontador, pois, caso haja alguma mudança na versão original do objeto, todas as outras também sofrem a alteração, o que não acontecia na PHP 4.

Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP Extension Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da linguagem. É muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a C++. Pode ser, dependendo da configuração do servidor, embarcada no código HTML. Existem versões do PHP disponíveis para os seguintes sistemas operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, IRIX e Solaris.

A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki.

Construir uma página dinâmica baseada em bases de dados é simples com PHP ,(em parte, vale lembrar), este provê suporte a um grande número de bases de dados: Oracle, Sybase, PostgreSQL, InterBase, MySQL, SQLite, MSSQL, Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre outras.

PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3, HTTP, LDAP, XML-RPC, SOAP. É possível abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades.

Existem iniciativas para utilizar o PHP como linguagem de programação de sistemas fixos. A mais notável é a PHP-GTK. Trata-se de um conjunto do PHP com a biblioteca GTK, portada do C++, fazendo assim softwares inter-operacionais entre Windows e Linux. Na prática, essa extensão tem sido muito pouco utilizada para projetos reais.

Fonte: Wikipédia.

sexta-feira, 13 de junho de 2008

Sistemas de Templates Engines - SMARTY

Introdução

Antes de começarmos a detalhar assuntos técnicos, gostaria de postar alguns artigos básicos, para que leitores menos experientes em PHP venham se familiarizar com alguns conceitos e ferramentas que vamos utilizar com freqüência em nossos artigos, já saindo um pouco da programação procedural e/ou convencional, gostaria de falar um pouco sobre uma das melhores ferramentas para desenvolvimento em PHP, trata-se do SMARTY. Um sistema de templates para PHP que dentre outras funções, destaco a agilidade no desenvolvimento de aplicativos, pois traz a possibilidade de designes e programadores trabalharem no mesmo projeto, ao mesmo tempo de maneira independente/separada.

O que é o Smarty?

O Smarty é um sistema de templates para PHP. Mais especificamente, ele fornece uma maneira fácil de controlar a separação da aplicação lógica e o conteúdo de sua apresentação. Isto é melhor descrito em uma situação onde o programador da aplicação e o designer do template executam diferentes funções, ou na maioria dos casos não são a mesma pessoa.

Por exemplo, digamos que você está criando uma página para web para mostrar um artigo de um jornal. O autor, a manchete, a conclusão e o corpo do artigo são elementos de conteúdo, eles não contém informação alguma sobre como eles devem ser mostrados. Ele são enviados ao Smarty pela aplicação, então o designer do template edita o template e usa uma combinação de tags HTML e tags de templates para formatar a apresentação destes elementos (tabelas HTML, cores de fundo, tamanhos de fontes, folhas de estilos, etc.). Se algum dia o programador precisar alterar a maneira como o conteúdo do artigo é tratado (uma mudança na lógica da aplicação). Esta mudança não afeta o design do template, o conteúdo será enviado ao template exatamente da mesma forma. De modo semelhante, se o designer do template quiser redesenhar completamente os templates, não é necessária nenhuma alteração na lógica da aplicação. Sendo assim, o programador pode fazer mudanças na lógica da aplicação sem a necessidade de reestruturar os templates, e o designer do template pode fazer mudanças nos templates sem alterar a lógica da aplicação.

Um objetivo do projeto Smarty é a separação da lógica do negócio e da lógica da apresentação. Isto significa que os templates podem certamente conter a lógica sob a circunstância que é somente para apresentação. Alguns exemplos são: a inclusão de outros templates, alternação de cores nas linhas das tabelas, colocar o texto de uma variável em maiúsculo, percorrer uma matriz de dados e mostrá-la, etc. são todos exemplos de apresentação lógica. Isto não significa que o Smarty força a separação da lógica de negócios e da lógica de apresentação. O Smarty não tem conhecimento do que é o que em sua aplicação, portanto colocar sua a lógica de negócio no template é problema seu. Caso você deseje que não haja nenhuma lógica em seus templates você pode certamente fazer isso trocando o conteúdo para textos e variáveis somente.

Um dos aspectos únicos do Smarty é seu sistema de compilação de templates. O Smarty lê os arquivos de templates e cria scripts PHP à partir deles. Uma vez criados, eles são executados sem ser necessário uma outra compilação do template novamente. Com isso, os arquivos de template não são 'parseados'(analisados) toda vez que um template é solicitado, e cada template tem a total vantagem de soluções de cache do compilador PHP, tais como: Zend Accelerator (http://www.zend.com/) ou PHP Accelerator (http://www.php-accelerator.co.uk).

Algumas das características do Smarty:

  • Ele é extremamente rápido.
  • Ele é eficiente visto que o interpretador do PHP faz o trabalho mais pesado.
  • Sem elevadas interpretações de template, apenas compila uma vez.
  • Ele está atento para só recompilar os arquivos de template que foram mudados.
  • Você pode fazer funções próprias e seus próprios modificadores de variáveis, assim a linguagem de templates é extremamente extensível.
  • Delimitadores de tag configuráveis, sendo assim você pode usar {}, {{}}, , etc.
  • Os construtores if/elseif/else/endif são passados para o interpretador de PHP, assim a sintaxe de expressão {if ...} pode ser tanto simples quanto complexa da forma que você queira.
  • Aninhamento ilimitado de sections, ifs, etc. permitidos.
  • É possível embutir o código PHP diretamente em seus arquivos de template, apesar de que isto pode não ser necessário (não recomendado) visto que a ferramenta é tão customizável.
  • Suporte de caching embutido.
  • Fontes de template arbitrários.
  • Funções de manipulação de cache customizadas.
  • Arquitetura de Plugin.
Fonte: http://www.smarty.net