A importância da comunicação

27 07 2007

Mais um off-topic

falta_comunicao_desenvolvimento.jpg

Comunicação é uma das premissas do Extreme Programing que acredito ser a mais importante.

Esta imagem é muito utilizada, chega a ser um chavão para os “mais andados”. Vi ela 3 vezes neste mês e aproveitei para compartilhar, sempre tem gente que não a viu.
Aproveitando o off-topic, fica uma sugestão:

Haverá hoje uma apresentação sobre Scrum (o título é “Entendendo Scrum Para Gerenciar Projetos Ágeis” ):

http://www.egenial.com.br/betaEventos

A primeira apresentação que assisti neste ambiente foi exatamente uma “introdução” a XP, excelente por sinal
. É bem provável que a qualidade se mantenha, então fica a sugestão, se não tem alguma coisa suficientemente importante para fazer, vale a pena assistir, hoje, a partir das 20:30. Estarei por lá.

E parabéns aos que vem fazendo com que estas apresentações aconteçam (Carlos Eduardo & cia)





Visão Ágil – Revista Brasileira Sobre Processos Ágeis

24 07 2007

Visão Ágil é primeira revista brasileira dedicada a processos ágeis, seu principal objetivo, é fornecer um canal único e dinâmico para reunir todas das vertentes ativas no cenário nacional.Este espaço, é aberto a todas as tribos como: Extreme Programming, FDD, Scrum e outras técnicas ágeis correlacionadas.

Portanto, acesse a primeira edição desse projeto ousado e feito com muito carinho para todos os agilistas do Brasil.

Conteúdo muito interessante.
Para quem não segue nenhum processo de desenvolvimento de software ou segue algum dito “burocrático”, e tem vontade de conhecer algum processo “ágil”, vale uma lida.

Entre os artigos, podemos ler sobre XP, SCRUM, um artigo falando sobre “As Cinco Doenças do Gerenciamento de Projetos” e um sobre “Contrato de Escopo Negociável”.

Apesar de não se aprofundar muito nos assuntos, todos os artigos tem um conteúdo muito bom.

Veja mais em visaoagil.com





PHP5: Namespaces

21 07 2007

[PHP-DEV] Namespaces patch backport
De: “Timm Friebe” thekid@thekid.de
Para: “PHPdev” internals@lists.php.net
Data: Hoje 06:57:30Hi,
I’ve backported the namespaces patch to current CVS HEAD. Here it is:http://sitten-polizei.de/php/php5-namespaces.diff

I’ve tested it with the .phpt-tests Dmitry provided. Enjoy:)

– Timm


PHP Internals – PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

É certo que o patch não será aplicado ao na versão atual (5.2.3), mas quem sabe não se aplique em um eventual 5.3 ?

SE isso acontecesse, o que disse aqui certamente não teria o teor que teve.





PHP5 ? Blah!!!

17 07 2007

Alguns dias pra terminar de escrever isso, pode parecer batido:
gophp5.org

Leia.

Leu ? Ótima iniciativa, não ?

Será ?

Vejamos:

– Migrar um servidor de php4 para php5 não é apenas atualizar os pacotes e “plim”, esta pronto. Sempre há um custo.
– “As coisas instaladas” (softwares de quem contratou o serviço) provavelmente vão quebrar. Ponto!
– Aqueles que ainda não utilizam php5 para desenvolver provavelmente vão reclamar de “suas coisas quebradas”. Ponto!
– Quem migrou um servidor e teve problemas (não será apenas um, nem dois, nem três) vai se arrepender da escolha algum tempo depois.

Parece óbvio, ao menos para mim.

E qual o problema nisso tudo ?

PHP6.

Assim que tivermos todo mundo usando PHP5, feliz da vida, após o trauma da transição do PHP4 para o PHP5, com todas as coisas supostamente funcionando, e blablabla, teremos o PHP6, recém saido do forno, com suporte a namespaces, unicode e outras coisas interessantes mais (se não tivesse nada de interessante a mais, seria o PHP5.3, PHP5.4, …).

E ai, começamos a campanha “abaixo PHP5, viva PHP6” ? E os custos ? E as “coisas quebradas” da (in)feliz migração PHP4/PHP5 ? E os arrependimentos ? E as reclamações ? E e e ???

Um tiro no pé! É o que acho da iniciativa e das constantes “pressões” na adoção do PHP5.

Não que ele seja ruim, longe disso. Mas se coisas não funcionarem, quando tivermos uma boa quantidade de gente desenvolvendo em PHP6, estaremos vendo cada vez mais Aqueles_Nomes_De_Classes_Gigantescos em PHP5 e o PHP6 estará fadado a ser ignorado por empresas de hosting (consequentemente milhares de programadores ?).

Só espero estar errado. E que venha PHP6!





Annotations (@QualquerCoisa) em PHP

15 07 2007

Havia lido algum tempo atrás sobre annotations em PHP, mas nada muito concreto.

Vi hoje uma apresentação (antiga, do phpconference) falando mais sobre isso:

Mais, aqui
Muito interessante, bem que poderia fazer parte do core do PHP





xml to mysql: Transformando um arquivo XML em queries SQL (e blablabla)

7 07 2007

xml to mysql: Como fazer o reverso indicado aqui: mysql to xml: Como transformar um resultado de uma query para XML ( de forma simples ) ( de forma simples )

Sugerido aqui, por Robertson Matos

Para o script, vamos utilizar um banco de dados de exemplo. O banco terá a seguinte estrutura:

-- criamos o banco de dados, caso ainda nao exista
CREATE DATABASE IF NOT EXISTS XML2MYSQL;

-- selecionamos o banco de dados
USE XML2MYSQL;

-- criamos a tabela se nao existir
CREATE TABLE IF NOT EXISTS exemplo (
    id_exemplo INT(11) NOT NULL AUTO_INCREMENT,
    descricao VARCHAR(32) NOT NULL,
    PRIMARY KEY(id_exemplo)
)ENGINE=INNODB;

O XML de exemplo é este:
demo.xml


<?xml version=“1.0”?>
<resultset>
    <line>
        <id_exemplo>1</id_exemplo>
        <descricao>Primeiro exemplo</descricao>
    </line>
    <line>
        <id_exemplo>2</id_exemplo>
        <descricao>Segundo exemplo</descricao>
    </line>
    <line>
        <id_exemplo>3</id_exemplo>
        <descricao>Terceiro exemplo</descricao>
    </line>
</resultset>

E o script é este:


<?php
    
// arquivo xml2mysql.php

    // definimos informacoes para conexao ao banco de dados:
    $banco   ‘xml2mysql’;             // nome do banco
    
$host    ‘localhost’;             // host
    
$usuario ‘root’;                  // usuario
    
$senha   ;               // senha
    
    // connectamos ao host e selecionamos o banco
    
mysql_connect($host$usuario$senha);
    
mysql_select_db($banco);

    // esta variavel sera a query utilizada para insercao dos
    // dados no banco, tendo o %d substituido pelo id_exemplo
    // e o %s substituido pela descricao
    
$query ‘insert into exemplo (id_exemplo, descricao) values (%d, “%s”)’;
    
    
// carregamos o conteudo do arquivo XML
    
$xml file_get_contents(‘demo.xml’);
    
    
// transformamos o XML em um objeto, para que possamos trabalhar
    // de forma mais simples com ele
    
$sxml = new SimpleXMLElement($xml);
    
    
// aqui iteramos por todo o XML:
    // a cada iteracao, $line ira conter um objeto to tipo
    // SimpleXMLElement, sendo o equivalente a:
    //
    //  <line>
    //      <id_exemplo>1</id_exemplo>
    //      <descricao>Primeiro exemplo</descricao>
    //  </line>
    //
    
foreach ($sxml as $linhaAtual) {
        
// aqui vamos obter cada item do xml que seria referente
        // ao campo da tabela.
        // Necessario cast pelo fato de que a propriedade do objeto
        // tambem é um objeto do tipo SimpleXMLElement
        
$id        = (int) $linhaAtual->id_exemplo;
        
$descricao = (string) $linhaAtual->descricao;
        
        
// aqui preparamos a query para ser utilizada
        
$tmpQuery sprintf($query$id$descricao);
        
        
// exibimos a query que será executada
        
echo sprintf(‘Executando query: %s%s’$tmpQuery“\n”);

        // e aqui executamos a query
        
mysql_query($tmpQuery);
    }

Sem controle de erros, prevenção de sql injection, blablabla, apenas para ilustrar, como de costume.
Executando temos:

$ php xml2mysql.php
Executando query: insert into exemplo (id_exemplo, descricao) values (1, “Primeiro exemplo”)
Executando query: insert into exemplo (id_exemplo, descricao) values (2, “Segundo exemplo”)
Executando query: insert into exemplo (id_exemplo, descricao) values (3, “Terceiro exemplo”)

E conferindo no banco:

mysql> select * from exemplo;
+————+——————+
| id_exemplo | descricao |
+————+——————+
| 1 | Primeiro exemplo |
| 2 | Segundo exemplo |
| 3 | Terceiro exemplo |
+————+——————+
3 rows in set (0.00 sec)

É isso ai, valeu pela sugestão Robertson

Arquivos:
xml2mysql.php
xml2mysql.sql
demo.xml