Archive for the 'Artigos' Category

01
out

Php Conference Brasil

É com muito orgulho que eu, Kléderson Bueno, divulgo aqui no blog da Add4 Comunicação que estaremos participando do PHP Conference Brasil. A palestra enviada por mim para falar um pouco sobre ORM, Orientação a Objetos e nossa ferramenta em produção phpBurn, foi aprovada e está marcada para o dia 29/11/2008.

Esperamos atender todas as necessidades e desde já começamos a produzir um material para distribuir e apresentar durante a palestra. Aos que acompanham o blog eu estendo o convite e deixo aqui o banner para o PHP Conference. ( http://www.php.net/cal.php?id=3210&cm=11&cy=2008 )

PHP Conference Brasil - Add4 Comunicacao

Apareçam, a palestra vai ser bem interessante e será de grande valia para aumentarmos nossa comunidade em torno da ferramenta que agora foi transferida para o github .

Gostaria de confirmar também a presença de uma comunidade e equipe da Add4 Comunicação na Campus Party Brasil 2009 , este ano estaremos lá novamente agora como comunidade e família Add4.

Um grande abraço e nos vemos nestes eventos.

Klederson Bueno

07
set

Frameworks e coisas “OpenSource”

Baseado em um post no trackback

Bom, eu concordo com o cairo existem usuários e USUÁRIOS, nós na Add4 Comunicação utilizamos diversos frameworks como Lumine, CI, SimplePie, e phpBURN ( em producão própria ) mas não nos reduzimos a isso, quando surge uma nescecidade não suprida pelo(s) framework(s) ( como por exemplo o citado pelo Cairo.

O uso de memória que foi corrigido ou melhorado por ele ou níveis mais básicos como os relacionamentos mais simples ou mesmo paginação em relacionamentos.. afinal ninguem quer 1000 itens de um relacionamento, apenas os 10 primeiros ou mesmo paginar os mesmos, sei lá quaisquer necessidades básicas ) vamos um pouco além, o modificamos, o alteramos à nossa necessidade, então por exemplo temos um repositorio público do lumine por exemplo que está anos luz da versão convencional ( assim como a ibm faz com n softwares opensource como por exemplo o eclispe* ) então não acho que utilizar um framework seja um problema, o problema é se acomodar, aceitar erros e limitações:
- Alias é um problema sério dos desenvolvedores PHP** brazucas INFELIZMENTE ANÚNCIO: Se vc é diferente desse perfil “padrão” entre em contato conosco através do site ou contribua com os projetos openSource como o phpBURN.

A maioria dos desenvs ( principalmente em PHP e SIM, nós conhecemos outras linguagens o.O como rails, java, javascript, actionscript, .NET ( C#, VB, etc… e salvando as devidas proporções eles são mais “dinâmicos” ou ao menos sabem usar melhor o google e documentacao de suas api’s ) então minha conclusão sobre o uso de frameworks é que eles são muito úteis e quando chegam ao limite de uso é preciso adapta-los afinal são OpenSource sob licença GPL ou MIT ou CREATIVE então enjoy.

Frameworks ORM:
phpBURN: http://svn.phpburn.com/ ( made in Brazil by ADD4 Comunicação ) ainda em fase alpha e a propósito aceitamos contribuições de bom grado pois eh um projeto OpenSource ;)

Lumine (Customizado) o SVN é http://lumine.add4.com.br ( possível incompatibilidade com a versão corrente do site oficial porem tentando ser o mais compativel possível ) e não nos responsabilizamos pelo seu uso. Use por sua conta e risco :D pois eh uma versão beta ( moda da internet by google )

CastleProject ( .NET sim M$ é a mensageira do apocalipse mas não se pode esquecer de que vivemos num mundo capitalista e o mercado manda )

Hibernate e NHibernate ( inspirações para o phpBURN e para o Lumine )

15
ago

Add4Maps e Google Maps = Rock’n'Roll

Olá,

Como prometido há um tempo atrás vou postar a versão alpha de um lib que tenho trabalhado como projeto pessoal para um mais fácil manuseio do google maps. Vou ser sucinto por que estou com pressa :)

vamos lá primeiro de tudo vamos ver o que usaremos para funcionar:

jQuery.js
ADD4Maps.js
Greversegeocoder.js (opcional)
GoogleMapsApi

No seu html a você deverá colocar:





Feito isso vamos ao ADD4Maps.js

A única parte que você precisa entender neste javascript para iniciar seu trabalho com os mapas é esta que está logo no início do arquivo:

	//Always charge it in frist load
	//Isso irá chamar o google Maps API
	google.load("maps", "2.x");

	//Global var
	//Define sua variável ( voce pode ter mais de um mapa tendo mais de uma variável )
	var userMap = "";

	jQuery(document).ready(function() {
		//Se quiser controlar melhor as inicializacoes dos mapas comente este funcao
		//basicamente ela inicia nosso mapa assim que o gmaps carrega
		google.setOnLoadCallback(initializeMaps);
	});

	//Funcao responsavel pela inicializaçao do mapa.
	//As únicas configs devem ficar aqui.
	function initializeMaps() {
		//Cria seu mapa na variavel userMap
		userMap = new ADD4Map({
			'divMap':'mapBlock', //Diz qual vai ser o id que receberá o mapa
			'addressContainer':'addressContainer', //Container para exibir endereços do stringToAddress
			'directionsContainer':'directionsContainer',//Container para receber as informacoes do gdirections
			'locale' : 'pt_BR', //Idioma do mapa
			'startLat': -23.555581, //Latitude inicial
			'startLon': -46.657533,//Longitude inicial
			'defaultIcon': "public/images/myIcon.png", //Define um icone próprio pra exibir no mapa bem legal se bem utilizada
		})
		//Inicializa o mapa de userMap
		userMap.initialize();
	}

Feito isso temos nosso mapa pronto e rodando? Não vamos montar a estrutura html BÁSICA ( receber apenas o mapa não vamos exemplificar endereços e direções aqui, a lib está bem documentada, basta dar uma olhada nos metodos e suas documentações afinal de contas ainda não estamos em uma versão final )

Pois é, realmente muito difícil fazer nosso mapa funcionar :)

Bom feito isso agora vamos pra parte divertida, usar o mapa, temos uma enorme lista de métodos nesta versão alpha e que funcionam muito bem vou exemplificar os mais básicos deles:

Afim de evitar muito trabalho eu preferi nesta versão manter o esquema de pontos por array de coordenadas eles funcionam da seguinte forma:

var ponto = {”latitude”:-23.555581,”longitude”:-46.657533};

Bem auto explicativo feito isso vamos para nosso primeiro método:

userMap.viewPoint

var ponto = {"latitude":-23.555581,"longitude":-46.657533};
userMap.viewPoint(ponto);

Simples e rápido, isso mostra um ponto no mapa sem muita coisa apenas exibe o ponto. Agora vamos pra algo um pouco mais elaborado:
userMap.addMark

var ponto = {"latitude":-23.555581,"longitude":-46.657533};
userMap.addMark(ponto,"Olá Mundo
Vejam só eu sei falar!!”,true)

Isso irá criar um ponto no mapa com um click no ponto que exibirá o famoso “balãozinho” com um conteudo html e o último parâmetro true define que o ponto será o centralizado no mapa. No próximo exemplo a gente vai usar o recurso de directions baseado em mão e contramão do google maps para achar rotas:

userMap.traceDirections

pontos[0] = {”latitude”:-23.555581,”longitude”:-46.657533};
pontos[1] = {”latitude”:-23.555581,”longitude”:-46.657533};
pontos[2] = {”latitude”:-23.555581,”longitude”:-46.657533};
pontos[3] = {”latitude”:-23.555581,”longitude”:-46.657533};

userMap.traceDirections(pontos)

No nosso caso estamos sempre no mesmo ponto mas mudando as coordenadas é possível traçar as rotas. Por último ( mas não o último recurso da lib, lembrando que temos mais muitos métodos e que a combinação deles e de um pouco de jogo de cintura nos permite fazer de tudo e mais um pouco ):

userMap.setPointFromAddress

userMap.setPointFromAddress("Rua Augusta,1000,Consolação,São Paulo,SP,01304-001,Brazil","Rua do rock!“,true);

Bem bacana não? Este método é limitado pelo google por 10.000 consultas/dia por ip ou seja a não ser que todo mundo que conectar no seu site veja mais de 10.000 vezes este recurso isso é mais que suficiente lembrando que é por CLIENTE IP e não SERVIDOR IP :) vamos só explicar um pouco:

O primeiro parâmetro é o endereço do cidadão, quanto mais completo mais preciso, eu usei o mais completo dos completos exemplos aí vai de você o quão preciso você pretende ser, o segundo método define um conteudo html como já vimos anteriormente e o terceiro define se o ponto vai ser o centro do mapa.

Bom, por hora é só, relembrando que a lib está em estágio alpha e que as pessoas usem por conta e risco, contribuições são bem vindas, usem e abusem e mantenham os créditos para que possamos continuar fornecendo ferramentas úteis e free para os amigos desenvolvedores e comunidade em geral.

Vale lembrar para dar uma olhada no código pois temos outros exemplos e uma documentação bem bacana e explicativa sobre os diversos métodos desta ferramenta, os arquivos estão disponíveis para download:

jquery (obrigatório)
add4maps (obrigatório)
greversegeocoder (opcional)
php (obrigatório em alguns métodos pois usei para facilitar o desenvolvimento, basicamente ele tem funcoes com o mesmo nome do php e sintaxe mas para javascript )

23
jun

Apresentando - PhpBURN

Como alguns já sabem eu estou desenvolvendo (junto a equipe ADD4) uma nova aplicação OpenSource para PHP que se chama PhpBURN. Trata-se de um projeto arrojado para a criação de um novo framework que se vale de alguns conceitos e tecnologias que, infelizmente, ainda não estão presentes nos frameworks atuais.

A primeira vista pode parecer apenas mais um framework php contudo, a abrangência, performance, qualidade de código e velocidade de desenvolvimento que ele proporcionará serão apenas alguns de seus atrativos.

Em fase de desenvolvimento o PhpBURN estará em breve iniciando sua versão beta pública, por enquanto vamos mantendo as coisas por baixo dos panos para que possamos surpreende-los com esta nova ferramenta.

Inicialmente será disponibilizado o framework ORM da ferramenta, muitos já me perguntaram por que não utilizar o Cake ou o ActiveRecord do CI ou mesmo o Lumine, a resposta é simples: ELES MORRERAM NA PRAIA, sim quando precisei de performance ou mesmo de coisas simples como limites e paginação de relacionamentos eles falharam, fora inúmeras correções que precisei fazer para trabalhar com eles, resultado, como boa parte das coisas que já fiz até hoje, resolvi criar um novo pois talvez ( e está sendo fato ) tomasse menos tempo, desse menos dor de cabeça e fosse mais interessante do ponto de vista de aprendizado, do que tentar corrigir todos esses frameworks.

O conceito básico do PhpBURN está na simplicidade e transparência para quem estiver utilizando, ele permite que usuários novos ao conceito de OO aprendam e façam aplicações de qualidade em menor tempo e proporciona à usuários avançados inúmeros recursos como heranças múltiplas, relacionamentos consistentes, performance, trabalhar com diferentes bases, hosts, drivers SIMULTANEAMENTE no mesmo projeto, sim, o PhpBURN permite você criar uma aplicação MySQL e Oracle ( por exemplo ) ao mesmo tempo e sem grandes dificuldades, te permite trocar de bancos apenas trocando as configurações do pacote, enfim é esperar para conferir.

Em breve abriremos o beta-público para aqueles interessados em utilizar e/ou contribuir para a ferramenta.

Pode puxar uma cadeira e sentar ae, a gente está só começando.

Kléderson Bueno