quinta-feira, 18 de outubro de 2007

Seja OpenSource mostre seu código

Aqui está um exemplo para você compartilhar seus lindos códigos escritos com toda a dedicação... rsrs

Você pode mostrar o código do php através de duas funcções:

  1. highlight_file(arquivo.php)
  2. highlight_string('$string_com_codigo_php')

Obs.: Se você quiser mostrar o código da própria página você pode fazer através da constante mágica __file__ (que se refere a ele mesmo (o arquivo)).

Exemplo do código fonte gerado pelo próprio arquivo:

<?php

/* Arquivo de exemplo para mostrar como vc pode mostrar o seu codigo fonte php */

highlight_file(__file__);

/**
* Classe que descreve uma pessoa
*/
final class Pessoa {
    
/**
     * Nome da pessoa
     * @access private
     * @var string
     */
    
private $nome;
    
    
/**
     * Idade da pessoa
     * @access private
     * @var integer
     */
    
private $idade;
    
    
/**
     * Peso da pessoa (kg)
     * @access private
     * @var float
     */
    
private $peso;
    
    
/**
     * Construtor - Instancia um novo objeto Pessoa
     * @param array $dados Array associativo com o nome, idade e peso
     */

    
public function __construct(array $dados) {
    
$this->nome $dados['nome'];
    
$this->idade $dados['idade'];
    
$this->peso $dados['peso'];    
    }
    
    
/**
     * Metodo magico para descrever a pessoa
     * @return string
     */
    
public function __toString() {
    
$str "\nNome...: " $this->nome;
    
$str.= "\nIdade..: " $this->idade;
    
$str.= "\nPeso...: " $this->peso;
    
$str.= "\n\n";
    
    return 
$str;
    }

}


$dadosp1 = array(
    
'nome' => 'Erick',
    
'idade' => '21',
    
'peso' => '67.00'
    
);
$p1 = new Pessoa($dadosp1);

echo 
$p1;

sexta-feira, 28 de setembro de 2007

Adobe Flex 2.0.1 no Slackware 12

Recentemente comecei a utilizar o OpenLaszlo para desenvolver interfaces ricas para o sistema do meu cliente. Mas com a notícia de que a Adobe iria disponibilizar a próxima versão do Flex (3.0) como OpenSource, então resolvi utiliza-lo.

O processo de instalação do Flex é muito simples bastando apenas descompacta-lo em um diretório de sua preferência. No caso eu instalei dentro de /usr/local.... vamos lá então

  • 1 passo: Crie um diretório chamado flex dentro do seu home:
    $mkdir /home/seulogin/flex
  • 2 passo: Baixe o Flex 2 SDK (que atualmente é Free) dentro do /home/seulogin/flex.
    Link http://www.adobe.com/products/flex/downloads/
    Aceite as condições de uso clicando no checkbox e o link para o download irá aparecer... é só baixar.
  • 3 passo: Descompacte o arquivo baixado com o comando: unzip flex2_sdk_hf1.zip
  • 4 passo: Mova o diretório do flex para o /usr/local (como ROOT):
    #mv /home/seulogin/flex /usr/local
    
  • 5 passo: Agora é só colocar os binários do flex no path (como ROOT). Crie um arquivo dentro do /etc/profile.d com o nome de flex.sh com o seguinte conteúdo:
    #!/bin/bash
    PATH=$PATH:/usr/local/flex/bin
    
    Agora dê permissão de execução para o arquivo:
    #chmod 700 /etc/profile.d/flex.sh
    
    E quando você ligar o computador o compilador do flex já estará pronto para uso.

Como visto é simples instalar o flex, bastando apenas descompactar um arquivo e fazer com que os binários estejam no path.

Falows t+

terça-feira, 11 de setembro de 2007

Desenvolvimento Web com o Slackware

Apresentarei aqui o conglomerado de ferramentas e programas que me ajudam trabalhar no meu dia-a-dia.

IDE

Como IDE estou utilizando o Eclipse PDT. Apesar de ser um pouco pesado, eu o utilizo pois consigo estendê-lo com os vários plugins que estão disponíveis para ele.

Os recursos que mais gosto são:

Code Completion: Utilizo o ZendFramewor e ficar lembrando a API inteira de cabeça é meio difícil

Integração com Servidor: É possível cadastrar os servidores que você utiliza (interno ou externo) e 'rodar' o projeto que você está desenvolvendo em qualquer um deles. Com isso ele sobrepõe os arquivos do servidor pelos do projeto. Um exemplo: Abro o programa no servidor local, e quando estiver tudo ok, eu abro o projeto no servidor de produção e o sistema já estará no 'ar'!

Plugins: Utilizo o plugin do Aptana para fazer a parte Webstandard e Javascript.

Abaixo um screenshot dele funcionando:

Edição de Imagens

Para edição de imagens utilizo o Xara Xtreme (vetores) e Gimp (fotos). Ambos são muito práticos e versáteis. São realmente bons substitutos para os já conhecidos CorelDraw e PhotoShop.

Abaixo um screenshot do Xara Xtreme:

Firefox

E como não poderia deixar de ser, o famoso Mozilla Firefox. Uma dica legal para agilizar o desenvolvimento é utilizar as extensões:

  • Firebug:Para depurar código JavaScript e navegar no DOM.
  • WebDeveloper: Várias verramentas para manipular a página.
  • YSlow! Para ajudar resolver problemas de performance na página.

Obs.: Para utilizar o YSlow é necessário instalar o FireBug antes.

Bom é isso aí então, tentei apresentar minha escrivaninha pra vcs. t+

Integridade referencial MySQL

Olá, como faz muito tempo que eu nem dou as caras por aqui e ninguém conhece ainda esse blog (será que um dia conhecerás?), estou colocando um pequeno exemplo de integridade referencial no MySQL 5.

Lembrando que para isso ser possível deve ser usado o tipo de tabela InnoDB. As tabelas do tipo MyISAM não suportam esse recurso.

CREATE TABLE carro (
    id int not null auto_increment,
    marca varchar(25) not null,
    modelo varchar(25) not null,
    ano_fab date not null,
    ano_mod date not null,
    primary key(id)
) engine=InnoDB;

CREATE TABLE carro_acessorios (
    carro_id int not null,
    descricao varchar(150) not null,
    preco decimal(10,2) not null,
    key(carro_id),
    foreign key (carro_id) references carro (id) on delete cascade
) engine=InnoDB;

Nesse exemplo temos a tabela de carros e uma tabela de acessórios que esse carro possui. Se o registro do carro for apagado, os registros de acessórios também serão.

Vamos analisar a linha responsável por isso:

  • foreign key (carro_id)...: Aqui está sendo definido qual é o campo da tabela que será referenciado.
  • ...references carro (id)...: Aqui está sendo definido que está se referenciando ao campo 'id' da tabela carro.
  • ...on delete cascade: E por fim se o campo no qual ele está fazendo referência for apagado, ele é apagado também.

Bom por enquanto é isso, conforme for eu vou colocando mais uns negócios aí! rsrs
Para maiores informações sobre integridade referencial no MySQL acesse: http://dev.mysql.com/doc/refman/5.0/en/innodb-foreign-key-constraints.html

t+