Archive for » January, 2008 «

Friday, January 25th, 2008 | Author: zedmaster

Qual programador não teve dificuldade em como implementar um layout de um designer?

Receber um arquivo de imagem e transformar em HTML, é como receber um bloco de metal um desenho e transformar em um carro.
Se você designer, tem dificuldades em trabalhar com programadores, é porque talvez não esteja conseguindo passar as suas idéias, ou talvez ele esteja tendo que refazer todo o seu trabalho.
Então esta na hora de você se transformar em um WEBDESIGNER.
Segue algumas dicas por onde começar:

Livros:

  • Não Me Faça Pensar – Ótimo para ter uma noção de como as coisas e fazer layouts mais agradáveis;
  • Use a Cabeça! HTML com CSS e XHTML – Agora você pode entender como que funcionam as coisas no mundo do HTML e do CSS, aqui você já começa a produzir layouts funcionais;
  • CSS Cookbook – Depois de aprender HTML e CSS, vale apena aprender alguns recursos mais avançados para impressionar os programadores (hehehe).

Para consulta online nada melhor que ler direto da fonte:

Todos sabemos que o Firefox é o melhor browser para desenvolver sites (infelizmente sempre temos que testar o layout no IE também), não que ele nunca trave, seja pesado, ou as vezes nos irrite, mas por ele ter ótimos plugins que ajudam no desenvolvimento. Seguem os links do kit Firefox:

  • Firefox – Sim, o glorioso, pesado e as vezes chato, browser (não troco ele por nada);
  • Firebug – Aqui é onde você verifica o que esta acontecendo de errado no seu layout e no seu Java Script;
  • Web Developer – Ele só não faz o seu café da manhã, é tanta funcionalidade que é só fuçando pra entender.

Para referências de como fazer um bom layout aconselho a perder algumas horas navegando nos exemplos do site CSS Zen Garden, onde o HTML sempre é o mesmo, só muda apenas o CSS (tem layouts que você não acredita que foi apenas mudado o CSS).

Category: Informática, PHP  | Leave a Comment
Tuesday, January 22nd, 2008 | Author: zedmaster

A pedidos segue como fazer uma Stored Procedure recursiva no Mysql.

É aconselhável ler estes tópicos antes:
- Cursores
- Stored Procedure

O nosso exemplo consiste em cadastrar vários elementos e fazer um relacionamento entre pais e filhos, a recursividade é usada para formar uma hierarquia, mostrando a geração de cada indiví­duo relacionado.
Uma função é considerada recursiva quando ela chama a si mesma diversas vezes.

Exemplo:

Geração ID Elemento Pai
1 1 A 0
2 2 AB 1
2 3 AC 1
2 4 AD 1
3 5 ADA 4
1 6 B 0
2 7 BA 6

A tabela tb_recursive precisa ter apenas 3 campos, o campo id_filho irá ser igual a 0 quando o elemento não tiver um pai.

CREATE TABLE  `test`.`tb_recursive` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(255) NOT NULL,
  `id_pai` int(11) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM AUTO_INCREMENT=12 DEFAULT CHARSET=latin1;

INSERT INTO `tb_recursive` VALUES (1, 'A', 0);
INSERT INTO `tb_recursive` VALUES (2, 'AB', 1);
INSERT INTO `tb_recursive` VALUES (3, 'AC', 1);
INSERT INTO `tb_recursive` VALUES (4, 'AD', 1);
INSERT INTO `tb_recursive` VALUES (5, 'B', 0);
INSERT INTO `tb_recursive` VALUES (6, 'BA', 5);
INSERT INTO `tb_recursive` VALUES (7, 'BB', 5);
INSERT INTO `tb_recursive` VALUES (8, 'C', 0);
INSERT INTO `tb_recursive` VALUES (9, 'ADA', 4);
INSERT INTO `tb_recursive` VALUES (10, 'ADB', 4);
INSERT INTO `tb_recursive` VALUES (11, 'ADBA', 10);

A pergunta básica que se baseia o algoritmo da SP recursiva é: Sendo esse pai X, quem são os filhos dele?
Esta pergunta é feita para cada filho desse pai, e assim por adiante, até que não tenhamos mais descendentes. É importante identificar a geração desse pai para que se possa organizar a hierarquia.

Para facilitar, iniciamos a criação de uma SP que iniciará a busca dos filhos:

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`sp_recursive_start`$$
CREATE PROCEDURE `test`.`sp_recursive_start` (IN in_id INT)
BEGIN
	DECLARE v_geracao INT;
	SET v_geracao = 1;
	SET @@max_sp_recursion_depth = 10;

	DROP TEMPORARY TABLE IF EXISTS tmp_recursive;
	CREATE TEMPORARY TABLE tmp_recursive (
					geracao INT,
					id int,
					nome VARCHAR(255)
	)ENGINE=MyISAM DEFAULT CHARSET=latin1;

	INSERT INTO tmp_recursive (geracao,id,nome)
	SELECT v_geracao, id, nome FROM tb_recursive WHERE id = in_id;

	CALL sp_recursive(in_id, v_geracao);

	SELECT * FROM tmp_recursive;

END$$

DELIMITER ;

Iremos criar uma tabela temporária para armazenar os resultados da hierarquia dos elementos, e exibi-los depois da pesquisa.

Segue abaixo o código da SP recursiva:

DELIMITER $$

DROP PROCEDURE IF EXISTS `test`.`sp_recursive`$$
CREATE PROCEDURE `test`.`sp_recursive` (IN in_id INT, IN in_geracao INT )
BEGIN

	DECLARE done BOOLEAN DEFAULT FALSE;
	DECLARE v_nome VARCHAR(255);
	DECLARE v_id_filho INT;
	DECLARE v_geracao INT;

	DECLARE cursor_a CURSOR FOR
		SELECT id,nome FROM tb_recursive WHERE id_pai = in_id;		

	DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done = TRUE;

	OPEN cursor_a;
	REPEAT FETCH cursor_a INTO  v_id_filho,v_nome;

		IF NOT done THEN
			INSERT INTO tmp_recursive (geracao,id,nome) VALUE(in_geracao+1, v_id_filho, v_nome);
			CALL sp_recursive (v_id_filho, in_geracao+1);
		END IF;

		UNTIL done END REPEAT;
	CLOSE cursor_a;

END$$

DELIMITER ;

Caso o elemento não contenha filhos a SP é encerrada e volta para quem a chamou.

Para executar a SP use:

CALL sp_recursive_start(1);

Arquivo contendo todos os comandos recursive.zip

Category: Informática, MySQL  | Tags: ,  | 9 Comments
Friday, January 18th, 2008 | Author: zedmaster

Data: 18/01/2008 as 19:00h
Local: Shopping Estação (ao lado do CEFET) na praça de alimentação.
Assunto: Montar um grupo de estudo de PHP.
Lista de participantes:

1) Alexandre F. Martins (Zed) – zedmaster@
2) Ricardo – sr_yaya@
3) Valmir – valmir_domingues@
4) Cristian Trentin – admderede@
5) Everton Schipfer – eveschipfer@
6) Diego Noguês – diego.sure@
7) Allan Schmitt – allanrfs@
8) Fernando Binasco – fernando.binasco@
9) Rodrigo oliveira – at4k3r@

Para maiores informações entre em contato MSN: zedmaster arroba hotmail.com

Ps.
programador – “Ha, mas eu nem sei mto de PHP, não vou poder colaborar. :(
Zed – “Errado, é de você mesmo que precisamos, suas dúvidas serão nossos tópicos.”

Category: Informática, PHP  | Tags:  | Leave a Comment
Tuesday, January 08th, 2008 | Author: zedmaster

O PHP Day Jan/2008 será realizado dia 12 (sábado) Ã s 09:20 em Curitiba – PR no auditório do departamento de informática (DInf) da UFPR.

Para maiores informações consulte:



PHP Day Jan/2008 – Curitiba

Category: PHP  | Tags:  | One Comment