Os números de 2010
Os duendes das estatísticas do WordPress.com analisaram o desempenho deste blog em 2010 e apresentam-lhe aqui um resumo de alto nível da saúde do seu blog:

O Blog-Health-o-Meter™ indica: Este blog é fantástico!.
Números apetitosos
Um Boeing 747-400 transporta 416 passageiros. Este blog foi visitado cerca de 1,900 vezes em 2010. Ou seja, cerca de 5 747s cheios.
Em 2010, escreveu 9 novo artigo, aumentando o arquivo total do seu blog para 31 artigos. Fez upload de 1 imagem, ocupando um total de 9kb.
The busiest day of the year was 28 de Setembro with 33 views. The most popular post that day was Palestras do TcheLinux.
De onde vieram?
Os sites que mais tráfego lhe enviaram em 2010 foram google.com.br, twitter.com, videoaulasbrasil.com.br, pt.wordpress.com e ianntech.com.br
Alguns visitantes vieram dos motores de busca, sobretudo por linux, svn externals, svn:externals, php beautifier e php.ini wordpress
Atracções em 2010
Estes são os artigos e páginas mais visitados em 2010.
Palestras do TcheLinux Setembro, 2010
Entendendo o Subversion(SVN) Setembro, 2009
2 comentários
Alias para os HOSTS Setembro, 2009
PHP – Configurando o Ambiente de Desenvolvimento (php.ini) Setembro, 2009
SVN Externals Novembro, 2009
2 comentários
Palestras do TcheLinux

Blz Galera,
Hoje gostaria de indicar a todos as palestras do Tchê Linux.
Já tive a oportunidade de participar um vez e achei bem legal o evento.
Link: Palestras
Para quem é maniaco por aprender e sempre quer ficar atualizado é um boa oportunidade.
ORACLE – Organizando o banco com as packages

Buenas galera,
Bom, hoje gostaria de falar sobre PLSQL. Toda a minha experiência de PL era para o POSTGRES e atuamente tive a oportunidade de começar a desenvolver para o ORACLE. Uma das coisas que achei bem interessante é as PACKAGES.
No POSTGRES eu sabia que tinha como organizar as PL’s por schemas, o que é muito bom, mais ainda deixa a desejar ao meu ver, no ORACLE descobri que também é possível organizar por packages, o que torna o banco mais organizado.
Exemplo:
SCHEMA.PACKAGE_X.PLA
SCHEMA.PACKAGE_X.PLB
SCHEMA.PACKAGE_X.PLC
SCHEMA.PACKAGE_Y.PLA
SCHEMA.PACKAGE_Y.PLB
SCHEMA.PACKAGE_Y.PLC
O legal é que você pode ter várias PL’s com o mesmo nome, mais em schemas e/ou packages diferentes, o que as vezes pode ser interessante.
Migração de versão do PHP

Prezados,
Sugiro a todos que sempre que forem migrar a versão do PHP no seu servidor, consultem a seguinte página abaixo.
http://php.net/manual/en/history.php
Aqui é possível acompanhar (versão a versão) tudo o que foi realizado.
Migração do PHP 5.2.x para PHP 5.3.x
Migração do PHP 5.1.x para PHP 5.2.x
Migração do PHP 5.0.x para PHP 5.1.x
Migração do PHP 4 para PHP 5.0.x
Um dos itens mais importantes a ser avaliado é as incompatibilidades.
Abraço a todos.
Como adicionar arquivos em lote no CVS

PessoALL,
Hoje perdi um tempão tentando comitar alguns arquivos no meu repositório CVS. Mais com a ajuda de um colega, que me deu o caminho das pedras, consegui realizar essa simples tarefa que o CVS complica tanto.
Problema: O processo de adicionar um arquivo ao CVS e comitar não tem mistério, o problema é que o CVS força com que seja adicionado todos os diretório, subdiretórios e arquivos, um a um, o que complica um pouco quando temos bastante arquivos a serem adicionados para controle de versão.
Segue abaixo a solução que aprendi e me foi muito útil. Lembrando que todos os comandos devem ser executados da Raiz do repositório.
Descobrindo os arquivos a serem adicionados
$ cvs diff –brief 2>/dev/null | grep ‘?’ > /tmp/arquivosCVSAdd1.logs
Limpando o arquivo(Tira o ?) para deixar apenas os path no arquivo de log
$ cat /tmp/arquivosCVSAdd1.logs | cut -d ‘ ‘ -f2 > /tmp/arquivosCVSAdd2.logs
Adicionando tudo em 1 linha para poder rodar depois
$ for i in `cat /tmp/arquivosCVSAdd2.logs`; do echo -n ” $i”; done > /tmp/arquivoscvs3.logs
Edite o arquivo e coloque no inicio
cvs add
Dar permissão de execução e executar para ADICIONAR os arquivos
$ chmod a+x /tmp/arquivoscvs3.logs
$ . /tmp/arquivoscvs3.logs
Edite o arquivo e coloque no inicio
$ cvs commit –m ‘MENSAGEM’
Dar permissão de execução e executar para COMITAR os arquivos
$ chmod a+x /tmp/arquivoscvs3.logs
$ . /tmp/arquivoscvs3.logs
Após essa volta aos tempos das pedras, não posso ficar sem dizer: Como é bom o SVN e o GIT!
Abraços
Mantendo compatibilidade entre o PHP 4 para PHP 5

Prezados,
Durante uma migração do PHP 4 para o PHP 5, precisamos ter cuidado com os nossos parâmetros de configuração do php.ini, pois precisamos garantir que tudo funcionara corretamente como antes.
Para isso deixo a minha dica, rode no seu servidor com PHP 4 e PHP 5 os devidos comandos abaixo:
PHP 4: $ php -r “phpinfo();” | grep -i “=>” | sort > /tmp/logPHP4.log
PHP 5: $ php -r “phpinfo();” | grep -i “=>” | sort > /tmp/logPHP5.log
Este comando adiciona no arquivo de log os parametros e seus devidos valores, após utilize alguma ferramenta de comparação como por exemplo, diff, meld ou kompare.
Essa conferencia é primordial para que o seu sistema funcione normalmente como antes, e em algum momento da sua migração deverá ser realizada.
OBS: vale lembrar que no PHP 5 alguns novos parâmetros são inseridos, e outros removidos, por isso o trabalha é um pouco braçal, tendo que ser avaliado caso a caso.
Abraços
Comando para checar sintaxe de arquivos PHP

Prezados,
Gostaria de compartilhar com todos um comando que pode ser útil para muitas pessoas. O comando ajuda a analisar erros de sintaxe nos arquivos PHP, em um simples comando no Linux.
Aprendi esse comando durante a época que trabalhei na CNM, com um colega chamado Henrique Boaventura. Após conhecer o comando que analisa a sintaxe(php -l arquivo) de arquivos PHP, aprendi como rodar um “for” direto na linha de comando, isso já na CWI, na empresa onde trabalho atualmente.
Segue abaixo o comando:
$ for i in `find . -name *.php`; do php -l $i; done > /tmp/logErrosPHP.txt
Para ver os erros:
$ vi /tmp/logErrosPHP.txt
O comando acima procura por todos arquivos PHP(find . -name ‘*.php’) que existirem no diretório que foi executado e seus subdiretórios, verificando se existem erros de sintaxe nos arquivos(php -l $i) e adicionando o erro no arquivo de log(> /tmp/logErrosPHP.txt).
Abraços a todos!
Apache – Analisando os logs!

Blz Galera,
Galera, um vez ouvi falar, num podCast eu acho, que um programador PHP que não conhece um pouco sobre apache não é um bom programador. Bom, confesso que até esse dia eu nunca me preocupei muito com isso, mais após ouvir me senti na obrigação de estudar um pouco mais sobre o nosso bom e velho servidor web.
Bom, a dica que queria deixar a todos hoje é ANALISEM os logs do apache, pois com ele você poderá encontrar alguns problemas de forma rápida ou até mesmo ter um feedback sobre as atividades e desempenho do seu servidor web.
Abaixo segue o link com todos os arquivos de log que o apache nos gera junto com a explicação de suas devidas responsabilidades.
Link: http://httpd.apache.org/docs/2.0/logs.html
Os logs do apache geralmente ficam em /var/log/apache no linux.
Exemplo de monitoramento:
$ tail -f /var/log/apache/access_log
$ tail -f /var/log/apache/error_log
$ tail -f /var/log/apache/stats_log
O comando tail pega as ultimas linhas do arquivo, já o parâmetro -f faz com que o arquivo fique constantemente sendo lido para que seja possível acompanhar em tempo de execução um passo a passo.
Um dos arquivos de log mais importante do apache é o error_log, que guarda qualquer erro que ocorrer no processamento das requisições. Um exemplo simples para testar o poder do nosso amigo apache é abrir dois terminais e deixar monitorando o error_log e o access_log. Após tente acessar no seu servidor uma URL invalida.
Fica a dica galera, grande abraço.
Migrando do PHP 4 para o PHP 5

Buenas galera!!!
Hoje vou falar um pouco desse processo de migração, já trabalhei uma vez como esse processo a um ano atrás e agora novamente estou tendo a possibilidade de migração um sistema de PHP 4 para PHP 5.
Bom, sugiro a todos a sempre acompanharem o site abaixo para ver as alterações e incompatibilidades de versão a versão do PHP.
Link: http://www.php.net/manual/pt_BR/history.php
Vamos ao que interessa, a grande alteração do PHP 4 para o PHP 5 foi a cópia de objeto. Agora não é mais por valor e sim por referência.
PHP 4
$objA = $objB;
Antes com o PHP 4 o $objA não teria nenhuma referência para o objeto $objB, seria uma copia normal de valor. Toda manipulação realizada no objeto $objA não iria se refletir no $objB.
Se você quisesse por exemplo no PHP 4 manter a referência para o mesmo objeto tinha que fazer assim:
$objA = &$objB;
Dai sim, tudo que é realizado no objeto $objA, também é realizado no objeto $objB, pois foi realizado a copia por referência(&)
PHP 5
No PHP 5 o que muda é que toda copia já é por referência automaticamente, coloque você o & ou não. A solução para este problema é utilizar a função CLONE em todos os objetos que não estão sendo copiado sem referência, ou seja, sem o &!
Exemplo 1:
Antes: $objA = $objB;
Depois: $objA = clone($objB);
Exemplo 2:
Antes: $objA = &$objB;
Depois: $objA = $objB;
Cuidado, aqui não muda nada, pois ele queria mesmo que fosse por referencia, note o &, não precisa do clone. Apenas tirar o & pois agora eh desnecessário, ele ja faz automaticamente, toda copia no PHP 5 é por referencia.
Podemos tambem fazer o PHP 5 trabalhar como o PHP 4 quanto a copia de objetos, não seria muito inteligente, mais para fazer isso basta alterar uma diretiva no PHP.ini
Antes: zend.ze1_compatibility_mode = Off
Depois: zend.ze1_compatibility_mode = On
Com esta alteração a gente força o PHP 5 a trabalhar com as copias de objeto como se fosse o 4! Pelo menos já da pra ir usando as funções do PHP 5 novas neh, tem essa vantagem! Mais o ideal não é ficar assim, pois até onde eu sei, essa diretiva vai sair nas próximas versões!
Abraços!
ORACLE – Um novo mundo de opções

Buenas PessoALL!
Hoje conheci uma funcionalidade do ORACLE que não conhecia, na verdade são alguns comandos que tornam o nosso agrupamento(GROUP BY) muito mais completo. Achei bem interessante, pois com uma simples consulta podemos obter todos os possíveis agrupamentos que se pode desejar de uma query, coisa que antes teria que ser tratado nos fontes, hoje já é possível trazer pronto do banco, num simples comando SQL.
Sintaxe do Comando:
… GROUP BY ROLLUP (campo1, campo2)
… GROUP BY CUBE (campo1, campo2)
… GROUP BY GROUPING SETS (campo1, campo2)
Conforme me explicaram o ORACLE e o SQL SERVER já disponibilizam esta funcionalidade, espero que logo logo os demais bancos também disponibilizem! Vamos ser sincero, espero que o Postgres implemente, pois até onde eu sei ele ainda não possui tais funcionalidades.
Fora estes novos comandos que aprendi, pude nestes últimos dias , voltar a utilizar um comando muito massa que o ORACLE disponibiliza, o nome dele é CONNECT BY. Este comando realiza buscas recursivas, muito legal mesmo.
Bom, eu pretendia nos próximos posts falar sobre cada um (ROLLUP, CUBE e GROUPING SETS, CONNECT BY), com algum exemplo prático, mais acho que existem diversos fóruns e páginas que já falando disso, basta dar uma procurada, que exemplos não faltaram.
A ideia desse post e apenas mostrar a todos que o mundo e maior que o nosso quarto, e disperartar aquela curiosidade em todos.
Abraços galera!

Comentários recentes