cObaia.net

web, nerdezas, marotices e supimpezas!

Evento em Pelotas: UPGRADE 4.0 - Semana Acadêmica da Informática 2008

Ocorre em pelotas de 20 à 24 de outubro, o UPGRADE 4.0, Semana Acadêmica da Informática da UCPel.

Data: 20 a 24 de outubro
Local: Auditório Central da UCPEL

Palestras Confirmadas (durante a noite):

  • TV Digital
  • GNOME
  • OpenSolaris
  • SBC
  • Segurança
  • Tecnologia 3G
  • Cybercrimes

Cursos Confirmados (durante o dia):

  • ASP.NET
  • Java Avançado
  • MySQL e PHP
  • Manutenção de Hardware

Programação Completa (provisória):
http://dainfo.ucpel.tche.br/

Inscrições:
http://dainfo.ucpel.tche.br/

Padrões de Projeto os Design Patterns: Padrão Singleton

Vou começar hoje uma série de post’s, voltadas para os programadores, vou passar alguns padrões de projetos a serem utilizados.

Mas afinal o que são padrões de projeto?

Padrões de Projetos ou Design Patterns, são características arquiteturais de software, que ao longo do tempo se tornaram soluções de problemas. Ou seja, você tem um problema, muitas vezes outras pessoas já passaram por ele, logo, alguém já resolveu ele. Com isso, com problemas freqüentes de arquitetura na programação que os padrões de projetos surgiram.

Eles são, soluções muito boas, que várias pessoas ajudaram a pensar na melhor solução, para problemas existentes.

Bom mas chega desse papo, deixa um pouco mais da história, para um próximo post…

Vamos por a mão na massa, opa, massa não, pois dessa vez não é CakePHP. Bom chega de piadinhas sem graça, vamos ao primeiro padrão de projeto a ser apresentado.

É ele o Singleton.

Ao que se refere o Singleton, o seu nome é bem sugestivo, Singleton é aquele padrão que garante apenas 1 instância de 1 classe, ou seja ele garante que após instanciar uma vez a classe, você sempre irá estar usando o mesmo objeto.

Hmmm, legal mas quando usar???

Em todos os lugares, onde se precisa garantir uma instancia de uma classe, ou seja, por exemplo 1 log de dados, onde apenas um objeto da aplicação é responsável pelo controle dos log’s. Outro exemplo, é uma conexão de banco de dados, que no caso seja necessário garantir sempre a mesma conexão. Entre outros exemplos.

Bom vamos ao exemplo da implementação, em PHP:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
<?php
class Singleton {
 
	public static $instance; //atributo responsável por retornar a instancia da classe.
	public static $cont; //atributo que serve apenas para contar quantas vezes a classe foi chamada.
 
	/**
	* Método construtor responsável por criar a página, é declarado como privado para garantiar,
	* que apenas a classe Singleton chame ele!
	*/
	private function __construct() {
		echo "<h1>Sou sempre o mesmo, com a mesma instancia!</h1>
"; //Texto para mostrar quando ocorre a instancia e comprovar que só ocorre uma vez!
	}
 
	/*
	* Método singleton, responsável por ser o construtor da classe, por ser abstrato e público,
	* é possível chamar ele sem termos o objeto da classe Singleton;
	*/
	public static function singleton() {
		//Verifica se o atributo $instance já foi setado, caso não faz a instancia dele
		if (!isset(self::$instance)) {
			//Criamos o objeto e alocamos ele para o atributo self::$instance
			self::$instance = new Singleton();
		}
 
		//Código para mostrar quantas instancias requiridas da classe tivemos, e que é sempre o mesmo objeto
		self::$cont++;
		echo "e fui chamado ", self::$cont ," vezes.";
 
		//Retorna a instancia da classe!
		return self::$instance;
	} 
 
}
 
//5 chamadas do objeto singleton
Singleton::singleton();
Singleton::singleton();
Singleton::singleton();
Singleton::singleton();
Singleton::singleton();
 
?>

Acho que os comentários estão explicando bem o funcionamento, mas vamos tentar explicar um pouco mais, se temos que garantir apenas 1 objeto, não podemos ter o método construtuor liberado para novas instancias, logo criamos um novo método singleton, este passa a ser o responsável por criar um novo objeto, caso seja a preimeira instancia ou retornar o objeto que já foi instanciado.

Bom por hoje é isso, vou continuar a explicar em PHP alguns Designer Patterns.

Limpar cache no drupal 6

Uma missão muito chata do drupal 6, é ficar limpando seu cache, porém existe uma solução, feia mas simples para isso:

no arquivo page.tpl.php ou em algum outro que sempre seja chamado ponha:

1
2
3
4
5
< ?php
drupal_rebuild_theme_registry(); 
cache_clear_all();
menu_rebuild();
?>

E pronto, seu cache será limpo a cada reload!

3ª Congresso Brasileiro de Gerenciamento de Projetos

Ocorre em Porto Alegre, nos dias 22, 23 e 24, o 3ª Congresso Brasileiro de Gerenciamento de Projetos. Evento está sendo promovido, pelos capítulos brasileiros do PMI, contando com a organização do PMI-RS.

O evento conta com palestras, mini-cursos e oficinas, sobre gerenciamento de projetos. Tendo como palestrantes:

  • Robert E. Smith, PhD - Inglaterra
    Pesquisador Sênior e Professor, University College London, Consultor Científico Chefe, Plexus Planning, Presidente da RESystems Consulting
  • Eduardo Fleischer - Uruguay
    Integrante de la Directiva y ex-presidente del Capítulo Montevideo
  • Liliana Buchtik - Uruguay
    Component Mentor del PMI para el Sur de América Latina
  • Ricardo Viana Vargas, Msc., PMP® - PMI GOC
    Brazilian Member of PMI Board of Directors

Entre outros palestrantes de peso, que vão fazer parte da comissão de palestrantes.

A inscrição para o evento pode ser feita online.

CakePHP último release canditado

CakePHP que está na sua versão estável 1.1 e sua versão 1.2 chega no release candidate 3. Última versão, antes do lançamento da versão CakePHP 1.2 como estável.

O release candidate RC3, promete pois segundo os desenvolvedores o bootstrap está 10 vezes mais rápido, que o mesmo no RC2, e 5 vezes mais rápido que o conteúdo estático da sua antiga versão. Ou seja, um ganho de performance considerável.

Muita gente assim como eu já vem utilizando os outros releases canditates até em produção, e essa versões do CakePHP 1.2, impressionou a todos. Muito mais produtivo, muito mais fácil, muito mais prazerozo fazer software com ele. Espero instalar esse novo release canditate e ver como as coisas andam, ou melhor deve estar voando!