Evento CakeSP

13 Jun 2009 In: CakePHP, Framework, Programação, php

Segue Minha apresentação no evento :)
E o link da minha página pessoal da slideshare http://www.slideshare.net/ftgoncalves

Canal YouTube

17 Apr 2009 In: Engenharia

Depois de muito navegar no youtube decidi criar meu próprio canal:

http://www.youtube.com/ftgoncalves

Pretendo sempre colocar vídeos relacionados a engenharia e tecnologia.

Evento Cake em sampa

15 Apr 2009 In: CakePHP, Framework, Programação

Esta confirmado o evento de cake em São Paulo:

as informações do evento estão bem descritas no blog do Renan

segue o link:

http://blog.renangoncalves.com/2009/04/14/i-encontro-de-cakephp-em-sao-paulo/

Contamos com a presença de todos.

Automação e controle

13 Apr 2009 In: Engenharia

Este post não tem muito a ver com programação, mas é um dos assuntos que me desperta bastante interesse: Automação e Controle. Existe um mundo por trás desse assunto e confesso que estou ainda no seu “zigoto”!!!

Eu e meu grupo da faculdade estamos planejando iniciar o projeto de TCC este ano. Só que para isso começaremos com Iniciação Cientifica, apesar de eu já ter feito a I.C. pelo IPEN (Instituto de Pesquisa Energética Nuclear), orientado pelo Dr. José Eduardo Manzoli na linha de pesquisa  “Estudo do Estiramento Mecânico de Filmes e Fios Poliméricos Irradiados” e ter sido contemplado pela bolsa de incentivo do CNPq (Conselho Nacional de Desenvolvimento Cientifico e Tecnológico). Decidimos que seria a melhor forma de agregar tanto em conhecimentos quanto em valor! O projeto consiste em uma espécie de helicóptero de quatro motores onde será informado para ele que deverá se manter em uma altura x e procurar um objeto, varendo a área e mostrando as coordenadas quando localizado o alvo. Somente a parte de estabilidade da aeronave já seria um belo projeto de automação (palavras do nosso professor Dr. Alexandre Brincalepe Campo). Segue um vídeo de uma aeronave próxima do que estamos planejando:

Até. :)

Criando seus proprios plugins para o CakePHP

22 Mar 2009 In: Uncategorized

Para que?

Uma funcionalidade que me interessou no CakePHP é a possibilidade de criar plugins! Não só os plugins em si, mas a forma com que o framework interage com ele.
Um plugin pode ser considerado uma aplicação à parte, sendo ela composta de seus próprios controladores, modelos e visões (MVC). E não só isso. Quando estava desenvolvendo o plugin Pmail, me deparei com uma questão: gostaria que o Pmail fosse encapsulado. Para tal, teria que criar uma pasta dentro do Pmail que encapsulasse as minhas imagens js, files e css. Mas eis que surge a duvida: Será que o CakePHP vai chiar? Foi uma grande pergunta, porém bastou uma consulta na documentação explicando o salvador da pátria: o tal do vendors. Foi o que me salvou. Desenvolvi o Pmail mais encapsulado possível…
Uma grande vantagem da utilização do plugin é o reuso para outras aplicações. Suponha que você construa um plugin para gerenciar banners de seu site. O que terá que construir é só um gerenciador e uma chamada para uma action que devolverá o banner… Muito fácil!!!
Legal. Tendo seu plugin, o que falta é propagar para seus sites A, B e C.

Desenvolvendo meu primeiro plugin

Para ilustrar, vamos criar um plugin exemplo de um pequeno gerenciador de banner:

  1. Dentro da pasta plugins crie uma pasta com o nome do seu plugin (banner).
  2. Crie as pastas para a estrutura MVC (controllers, models, views).
  3. Agora crie seu controller e model pai (Obs.: com o prefixo plugin), ficando banner_app_controller.php e banner_app_model.php. Você pode extender tanto de seu app_controller da aplicação principal quanto direto de seu controller.

Então teremos:

plugins
- banner
– controllers
– models
– views
– banner_app_controller.php
– banner_app_model.php

banner_app_controller.php

class BannerAppController extends AppController {
}

banner_app_model.php

class BannerAppModel extends AppModel {
}

Esta concluído a estrutura básica para trabalhar.

Peculiaridades do plugin

  1. Ao criar suas tabelas sempre será necessário o uso do prefixo, que no caso é o nome do plugin (exemplo: banner_administrators).
  2. Em seu controller, utilize o atributo uses passando os models a ser utilizado, lembrando do prefixo plugin (exemplo: array(’Banner.Administrator’)).
  3. Ao criar um relacionamento é necessário passar o parâmetro className. Exemplo:
public $hasMany = array('File', array(
      'className' => 'Banner.file'
));

Pronto pessoal por hoje é só. :)

Evento CakePHP em Sampa

5 Mar 2009 In: CakePHP, Framework, Programação, php

Creio que uma parte importante de toda linguagem ou ferramenta seja as pessoas que lidam com ela! A comunidade CakePHP é bastante forte sendo seu maior núcleo nos EUA. Pensando nisso eu e o Renan cujo o mesmo faz parte do Core Developer, estamos bolando um evento que reúna desenvolvedores que lidam com o CakePHP ou somente PHP, para que seja fortalecida a comunidade….
Não temos ainda data nem local definido, mas assim que definido vamos divulga-lo.
ps: O Evento não tem fins lucrativos!

Estou negociando com a LocaWeb para possível patrocínio.

E claro como o Renan disse no final do evento bora Bar!!!! :)

Pequeno histórico

Nestes últimos dias estou me dedicando a construir plugins funcionais para trabalhar com o cake. Inicialmente verifiquei quais plugins poderiam começar e me lembrei das principais funcionalidades que as empresas necessitam em um site corporativo. Lógico, são os famosos e-mails marketing!
Estes e-mails marketing dependem de uma série de fatores históricos. Primeiro: necessitam aceitar HTML. Um e-mail que se preze é o que chama a atenção de quem esta a ler. Segundo: Nunca -e nunca mesmo- caiam nas entranhas das caixas de SPAM.
Outro fator importantíssimo para uma empresa é o reuso, ou seja, ela não quer se preocupar com o layout do e-mail, pois o mesmo já foi definido há tempos em outro lote, então não admite-se tempo perdido com a adaptação de um novo e-mail.
Foi pensando nisso que me esforcei para criação deste plugin,o Pmail, cujo o nome é uma abreviação de PHP Mail. Este traz consigo um layout que proporciona comentários da ação a ser executada, facilitando o entendimento. O seu principal idioma é o inglês. Pretendo-nas versões futuras disponibilizar em português.

Estrutura

O Pmail segue uma estrutura bem familiar: a de camadas, onde:

Layer : É a primeira camada. Consiste no layout do e-mail.
Email: É a segunda camada. Configura o email a ser enviado, possibilitando assim o reúso do layer. Ou seja, você garante um histórico de layers para que no futuro seja reutilizado.
Groups: O Pmail foi desenvolvido pensando em grupos de contatos ou seja é possível mandar e-mails para o grupo A e C e não mandar para o B.

O Pmail está em sua primeira versão: beta 0.1.0.70Beta.

Demo

Existe uma versão demo do Pmail no endereço www.pmailgroup.org/teste/pmail
Atenção! Este demo não é atualizado com frequência, podendo assim mostrar instabilidade.

Download

http://code.google.com/p/pmailgroup/

Atenção! O Pmail foi testado somente na versão 1.2 do CakePHP.

Licença

O Pmail esta com sobre a licença GPL v3.0. Segue o link para mais informações http://www.opensource.org/licenses/gpl-3.0.html.

Suporte

Pretendo me dedicar o máximo possível para garantir novas versões ao Pmail. Estou apto a receber ajuda de colaboradores que se interessem em desenvolvê-lo.
Para ter um contato mais próximo com desenvolvedores que pretendem usá-lo, estou criando um site onde poderão abrir tickets de bugs e sugestões: www.pmailgroup.org

Agora estou trabalhando em mais um plugin: o Pbanner, que será um gerenciador de banners.

Até mais! :)

Alternar entre abas no Eclipse

8 Feb 2009 In: Editores

Tenho por hábito usar o conjunto de teclas Ctrl+Tab para alternar entre abas como em várias aplicações que uso (Firefox, NetBeans, etc.)

No Eclipse, por algum motivo esta funcionalidade está configurada para as teclas Ctrl+F6.

Para alterar a configurações deste atalho no Eclipse (Europa) eis o que devem fazer:

  • No menu do eclipse Window > Preferences
  • Seleccionem na árvore General > Keys
  • Substituam‘type filter text‘ por ‘Next editor
  • Seleccionem a opção que surge na lista de resultados
  • Seleccionem a caixa de texto Bindings e executem a combinação de teclas correspondentes ao atalho (Ctrl+Tab).
  • Podem continuar a adicionar mais atalhos bastando para isso que carreguem em mais combinações de teclas.
  • Confirmem as alterações e já podem usar o vosso novo atalho.

É claro que poderão usar este mesmo método para mudar outros atalhos do Eclipse.

Até a próxima.

Charset no MySQL como solucionar problemas

8 Feb 2009 In: Banco de Dados, MySQL
  • Quem nunca teve dor de cabeça com CharSet no MySQL?

Bom estes problemas são facilmente resolvidos, mas o erro fundamental é a má arquitetura e planejamento do sistema a ser construído!
É muito comum você procurar no Google ou no Yahoo e encontrar tópicos em fóruns com pessoas desesperadas, pois migram de servidor ou simplesmente começam a aparecer caracteres incorretos em seus sistemas. O MySQL por ser um banco de dados que trabalha com diferentes sistemas operacionais é suscetível a configurações diversas, e uma delas convenientemente é os parâmetros de char collection.
Lembrando que estas modificações somente são recomendadas se seu sistema estiver cobertos por elas.

  • Verificando suas configurações

1
SHOW VARIABLES LIKE 'character%';

Execute este comando:

Provavelmente você verá

1
2
3
4
5
6
7
8
character_set_client           utf8
character_set_connection       utf8
character_set_database         latin1
character_set_filesystem       binary
character_set_results          utf8
character_set_server           latin1
character_set_system           utf8
character_sets_dir             /usr/share/mysql/charsets/

Podemos verificar que existem vários passos entre a chamada da aplicação á nosso banco até a devolução da informação requerida.
Em nosso exemplo acima o erro mais comum é a utilização de char collection diferentes entre os processos, ou seja se utilizamos latin1 para o banco e utf8 para nossa conexão ocorrera problemas com nossos caracteres.
para corrigir este problema é recomendado que você utilize a mesma coleção de caracteres, menos a de character_set_filesystem que é fortemente recomendado e padrão o binary.

Bom amigos, minhas recomendações:

  1. Faça beckup do banco de dados antes de qualquer alteração.
  2. Nunca modifique as configurações em um banco em produção, é sempre recomendado ter um ambiente de teste.

Espero ter ajudado. Até a proxima.

Um geral sobre php

10 Nov 2008 In: Programação, php

Olá,este é meu primeiro post e espero que vocês gostem!
Bom neste post vou falar sobre a linguagem de programação que particularmente eu mais gosto. O php não é só uma linguagem rápida e versátil é também umas das linguagem de melhor posicionamento no mercado de trabalho hoje um profissional que lida com essa linguagem com certeza não ficará desempregado. Não só pelo fato de ser uma linguagem fácil de programar mais por sua versatilidade, para ilustrar falando em produtividade hoje em dia existem vários frameworks para trabalhar com php como por exemplo Zend que é da própria mantenedora da linguagem php, existem também o CakePHP que foi muito bem aceito pelos grupos e empresas que lidam com php e um outro ótimo framework é o CodeIgniter agora falando de gente grande o Symfony é um framework muito bem falado internacionalmente e utilizado por uma grande empresa a Yahoo. Todos frameworks citados acima são Open Source  e com documentação bastante vasta segue abaixo uma tabela comparando-os.

 

Tabela Comparativa de frameworks

Tabela Comparativa de frameworks