inicio mail me! sindicaci;ón

Archive for September, 2006

PHP 5 Power Programming

Pra quem procura um bom livro de PHP, existe uma boa opção de graça: trata-se do PHP 5 Power Programming. Escrito pelo Andi Gutmans (o nd da Zend), Stig Bakken e Derick Rethans, existe uma versão gratuita em PDF. O livro cobre uma infinidade de temas, é muito bem escrito, e tem mais de 700 páginas.

Ainda não pude lê-lo, mas o que pesquisei nele fiquei bastante satisfeito. Pra quem quiser mais informações, visite a descrição do mesmo no site da editora.

Pra quem, assim como eu, odeia ler qualquer coisa com mais de duas páginas na tela, o livro impresso pode ser encomendado na Livraria Cultura em duas versões: inglês e português (PHP 5 Programação Poderosa).

PS: Alguém já viu se a tradução para o português ficou boa?

Ouvindo: Inspecter 7 – Channel 7

Loading, please wait…

Pra quem procura uma boa solução para fazer uma barra de carregamento em PHP, o site PHPBuilder.com publicou um artigo intitulado Displaying Dynamic Progress Bars.

Basicamente, o que o código faz é imprimir divs de tamanho diferentes, sempre na mesma posição absoluta, conforme o código atingir pontos chaves da execução, forçando a saída da resposta para o browser com a função flush().

É claro que a solução exige pelo menos que o desenvolvedor tenha uma base de quanto tempo irá durar o processamento, ou ao menos que identifique os pontos chaves de execução do código.

Para exercitar: ao invés de reenviar divs, que tal só enviar chamadas para uma função javascript que altere a largura do div que representa a porcentagem? Muito mais fácil caso queira-se eventualmente alterar o estilo das barras.

Ouvindo: Limited Identity – Recycled Youth

Aventuras com ActionScript

Recentemente tive a oportunidade de trabalhar com programação em Flash, e posso dizer que me surpreendi com ActionScript 2.0. Mostrou-se uma linguagem muito mais elaborada do que eu imaginava, até porque a Macromedia já tinha feito cagadas homéricas quanto a linguagem – como por exemplo alterar sintaxe ou nome de métodos e propriedades.

Tá certo que faltam uma série de elementos, tal como métodos abstratos (esse particularmente me deu uma trabalheira pra resolver). E também alguns erros monstruosos e sem sentido, como esse tipo de erro abaixo:

**Error**

MyClass.as: Line 2: The name of this class, ‘MyClass’, conflicts with the name of another class that was loaded, ‘MyClass’.
{

Total ActionScript Errors: 1 Reported Errors: 1

Digamos que eu tenha um arquivo index.fla, e faça um import MyClass.as. Eventualmente, esse erro pode surgir. Procurei um monte por outra referência à classe e nada. Então resolvi perguntar ao google, e claro, ele me deu a solução.

Após muito procurar, encontrei que o problema é a data dos arquivos. Como assim as datas? Pois é, difícil de acreditar… Em certas situações, quando se gera um erro de compilação presente no arquivo .as, tal como acesso à uma propriedade inexistente, ou erro de sintaxe, esse erro pode surgir – preste atenção no pode.

Ao gerar esse erro, se a data de última alteração do .as for posterior a data do .fla, então a mensagem de conflito de classes pode surgir. A solução é bem simples: salve o .fla novamente antes de publicar o .swf. E pronto, tudo resolvido.

Só me resta uma dúvida: alguém pode me explicar por que esse erro ocorre?

Ouvindo: Limited Identity – Recycled Youth

WordPress: caloroso primeiro contato

Desde que comecei a ler blogs mais voltados pra programação, tenho visto WordPress a rodo. Decidi então baixá-lo e fazer alguns testes. Testei em casa mesmo, depois de ter instalado o WAMP, e achei muito bacana. Ótimo então, lá vamos nós utilizá-los.

Instalei no servidor e recebi uma desagradável mensagem: You do not have sufficient permissions to access this page, com erro no arquivo capabilities.php.

Após algum tempo de pesquisa, encontrei a solução. Pelo que li, esse problema se aplica tanto pra instalalações novas quanto (principalmente) para upgrades de versão do WordPress.

Segue o conteúdo do arquivo wp-config.php:

// ** MySQL settings ** //
define(‘DB_NAME’, ‘*****’); // The name of the database
define(‘DB_USER’, ‘*****’); // Your MySQL username
define(‘DB_PASSWORD’, ‘*****’); // …and password
define(‘DB_HOST’, ‘*****’); // 99% chance you won’t need to change this value

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix = ‘wp_’; // Only numbers, letters, and underscores please!

// Change this to localize WordPress. A corresponding MO file for the
// chosen language must be installed to wp-includes/languages.
// For example, install de.mo to wp-includes/languages and set WPLANG to ‘de’
// to enable German language support.
define (‘WPLANG’, ”);

/* FIX */
//define(‘DISABLE_CACHE’, true);
set_magic_quotes_runtime(0);
ini_set(‘magic_quotes_gpc’,0);

/* That’s all, stop editing! Happy blogging. */

define(‘ABSPATH’, dirname(__FILE__).’/');
require_once(ABSPATH.’wp-settings.php’);

Pra corrigir o problema, basta adicionar as linhas em negrito. O problema acontece porque a diretiva magic_quotes_runtime do php.ini do servidor de hospedagem está ativa. Logo, forçamos, de um modo global para o WordPress, com que essa diretiva seja desativada, corrigindo então o erro!

Quanto a desligar o magic_quotes_gpc, creio não ser necessário. Apenas desabilitando magic_quotes_runtime solucionou o problema na minha situação, mas por via das dúvidas, mantive-o desabilitado. Preciso dar uma olhadinha no código pra ver se a inclusão no banco de dados verifica anteriormente se magic_quotes_gpc está ativado ou não antes de ter certeza disso.

Em relação ao DISABLE_CACHE, que também foi sugerido que se desabilitasse, esse sim eu não acho boa idéia… Pelo menos não enquanto não surgirem novos problemas, afinal de contas, a realização de cache do output dá uma boa reduzida do tempo de carregamento da página.
Mais uma coisinha: adicionar as linhas depois de require_once(ABSPATH.’wp-settings.php’); não adianta. Havia testado isso anteriormente!

Ouvindo: Epos – See thru You

nerd ‘n’ proud

Decidi, após milhares de anos, ter um blog novamente. Entretanto, dessa vez pretendo fazer um blog temático: programação, e principalmente programação web.

Possivelmente não ficará restrito somente a esse tema; vou acabar postando sobre outras questões também.

Pra falar a verdade a idéia do site ainda não está madura, não sei bem ao certo ainda como usar o site como um todo. Até lá ficamos só no blog mesmo, e espero que minhas dicas possam ser úteis! :-)

Sejamos bem-vindos!