Archive for setembro, 2009

29th set 2009

Qual seu analisador de estatísticas favorito?

Desde que fiz a migração dos meus blogs pro cloud da Locaweb (aproveitando, ainda estou estabilziando tudo, logo, conto com a paciência de vocês!), estava pra configurar o AWStats no servidor… e até que não foi penoso, uma vez que há muitos tutoriais na web (vou em breve fazer um post, que nem esse sobre configuração de servidor FTP) sobre como configurar, segregar o acesso com usuário e senha e já tinha trabalhado com essas configurações alguns anos atrás.

Aí, fiquei pensando: qual o melhor analisador de estatísticas de acesso?

Eu, particularmente, gosto muito do AWStats porque, claro, utiliza os logs gerados pelo próprio webserver, dentro do servidor. Ou seja, não tem como ter um erro…

Uso, também, o Google Analytics, porque a forma como ele apresenta, graficamente, é um absurdo de anos-luz a frente do AWStats.

E, também, gosto de usar um plugin do Wordpress, o WP Stats, com o qual posso ver dentro do dashboard do blog os acessos.

E você, qual prefere?

Qual seu analisador de estatísticas favorito?

View Results

Loading ... Loading ...

Posted by Posted by Chris under Filed under enquetes, web 2.0 Comments 10 Comments »

28th set 2009

Configurando um servidor FTP no linux

Ah, quando na semana passada contratei o serviço da Locaweb de cloud para hospedar meus sites, estava ciente que teria trabalho, nem tanto para migrar os sites todos, mas sim para configurar o servidor – dedicado, um Ubuntu com acesso via SSH.

Não que seja algo de outro mundo, mas nunca tinha feito tudo do zero – configurar webserver, PHP, e-mails, MySQL, Awstats, etc…

O mais demorado foi o servidor FTP. Nada que esse link aqui não tenha ajudado.

Como não achei boas referências em português, vou postar aqui o passo-a-passo que no meu caso funcionou perfeitamente.

Primeiro, instalei o VSFTPD

sudo apt-get vsftpd

Depois de instalado, edite o arquivo de configuração

sudo vi /etc/vsftpd.conf

Deixe-o com essas linhas configuradas dessa forma, para possibilitar acesso remoto

# Turn off anonymous users
anonymous_enable=NO

# Turn on local users
local_enable=YES

# Users should be able to write
write_enable=YES

# I don’t give access to port 20 so turn this off
connect_from_port_20=NO

# chroot everyone
chroot_local_user=YES

Adicione um usuário ao sistema (no caso chamado de ftpuser)

sudo useradd -d /var/www/path/to/chrooted/home/dir -s /usr/sbin/nologin ftpuser
sudo passwd ftpuser

Dê permissão a ele na pasta devida

sudo chown ftpuser -R /var/www/path/to/chrooted/home/dir
sudo chmod 775 /var/www/path/to/chrooted/home/dir

Edite o arquivo que contêm a lista de usuários com acesso do VSFTPD, colocando o nome do usuário nele (não precisa de chave, o arquivo pode ter uma lista de usuários que estãos eparados por linha)

sudo vi /etc/vsftpd.userlist

Abra o arquivo de configuração do VSFTPD

sudo vi /etc/vsftpd.conf

Insira as linhas abaixo, que dizem qual é o arquivo que tem a lista de usuários com acesso

# the list of users to give access
userlist_file=/etc/vsftpd.userlist
# this list is on
userlist_enable=YES
# It is not a list of users to deny ftp access
userlist_deny=NO

Inicie o servidor FTP

sudo /etc/init.d/vsftpd start

E edite o arquivo shells

sudo vi /etc/shells

inserindo o trecho abaixo, para que o usuário não tenha aceso ao shell

/usr/sbin/nologin

Tutorial facílimo, tudo funcionou de prima. Como disse, num Ubuntu (versão 8 ) então dependendo da distro pode ter uma ou outra coisa diferente.

Posted by Posted by Chris under Filed under linux Comments 4 Comments »

25th set 2009

O POG nosso de cada dia #15

Faz tempo que não faço um post sobre POGs: não que eles não estejam aocntecendo mais, mas é uma mistura de falta de tempo com complexidade absurda que os POGs têm alcançado ultimamente por aqui :-/

Mas, para não deixar essa categoria passada, vou resgatar um post que fiz nO Desenvolvedor no final do ano passado

O problema

Já ouviu falar em image flickering?

Até semana passada o final do ano passado, eu não. Mas certamente, assim como eu, você já viu acontecer: links com imagem de fundo que, quando você passa o mouse por cima, perdem o background. No lixo do IE6.
Eu não sabia que tinha um nome bonito. Por exemplo, essa classe CSS aqui daria problema:

.someClassName {
background:#AABBCC url(someBackGroundImage.gif) repeat-x;
}

Pelo que entendi do assunto, essa é uma questão relacionada a como o browser (não que o IE6 seja um browser, mas vamos lá…) faz cache das imagens.

Existem várias soluções para esse problema – sim, é um problema ao meu ver, e não uma propriedade do browser. De uma googlada e veja que há várias técnicas.

Uma delas seria não usar imagens de background em links. Outra, colocar uma div (ou algum outro elemento) em volta do link e usar background nela.

FAIL para ambos.

Mudar a sua marcação html por causa do IE6 não faz sentido; é um browser antigo, que não segue padrão algum, que vem caindo em desuso.

O POG

Existe um fix para isso que funciona bem em qualquer IE6.
Dentro do head do seu html, coloque o javascript:

<script type=”text/javascript”>
try {
document.execCommand(“BackgroundImageCache”, false, true);
} catch(err) {}
</script>

Esse script tenta fazer com que o browser use as imagens salvas no cache da máquina.
Funciona belezinha, está testado, homologado e em produção há meses, numa boa.

Posted by Posted by Chris under Filed under POG Comments 5 Comments »

23rd set 2009

Como PHP se tornou um grande sucesso – entrevista com Rasmus Lerdorf

Cai de pára-quedas (sim, pára com acento, pois não me acostumei com essa revisão gramatical) nesse link dum site gringo que tem uma pequena entrevista com o criador do PHP, Rasmus Lerdorf.

Para aquele que comem PHP com farinha todo dia (@hlegius, @juliogreff e muitos outros), é bem interessante, pois ele fala do início do desenvolvimento do PHP, da sua atuação hoje em dia (que está mais voltada a performance e segurança do que novas ferramentas), da versão 6, da aplicação de orientação a objetos e comparações com Ruby.

link: http://www.techradar.com/news/computing/pc/how-php-became-such-a-huge-success-633591?src=rss&attr=newsintern&artc_pg=1

Posted by Posted by Chris under Filed under Tecnologia, php Comments 1 Comment »

22nd set 2009

Qual sua IDE de desenvolvimento?

Nos idos de 97, quando eu pela primeira vez tive um computador – com plano de acesso à internet de estonteantes 10 horas mensais, num modem de 28.8k – foi que eu pensei em fazer sites. Era época da Geocities, ainda, e do Frontpage.
Sim, eu comecei a fazer – ou achava que sabia fazer – sites com o Frontpage (nem me lembro qual software para edição de imagens eu usava). Fatiava, recortava, gerava tabelas, entuchava de links, botões, gifs animados, e lá ia publicar na Geocities. O tempo passou, passei anos sem trabalhar com web – estava entre a vida acadêmica de engenheiro e o desenvolvimento de softwares, hora com VB, hora com C/C++. Quando me enchi disso, e resolvi voltar ao mundo web, em 2002 ou 2003. Nessa época, o Dreamweaver já tomava conta – junto com o Fireworks – e abandonei – ufa! – o Frontpage.

Comecei a aprender o tal do tableless, então usava para estudar o bloco de notas, cruzão, do Windows. Hoje em dia, por andanças da vida profissiona, estou usando o Eclipse, por ser uma IDE mais robusta – no trabalho uso ela para rodar aplicações Java, nos freelas para os meus projetos PHP, sem falar nas inúmeras extensões, plugins, integrações com SVN, etc…

E você, qual IDE usa?

Qualo a sua IDE?

View Results

Loading ... Loading ...

Posted by Posted by Chris under Filed under Tecnologia, enquetes, php Comments 30 Comments »

20th set 2009

8++ perguntas para o @hlegius

O Helio (ou @hlegius) é um dos que conheci mais pelo amor à uma banda – no caso, ao Helloween – do que pelo aspecto peofissional. Fui saber só tempos depois que ele trabalhava com web, ligado ao desenvolvimento PHP. Já trocamos muito boas idéias, ele sempre dando seu ponto de vista nas implementações backend, enquanto eu falo a respeito do frontend. Quase que ” cada um no seu quadrado”, mesmo com eu de vez em quando me interessando e colocando a mão no backend.
Seguem as perguntas e respostas, para mais, visitem o blog dele.

1- Como você entrou no mundo da web, e como veio a se tornar um profissional da área?

Entrei por ter sido desafiado =P – Na época, em 2003, comentei com um amigo que faria o site da banda (sim, banda) e o “infeliz” disse-me rindo:
“Ahá, você *nunca* conseguirá ser um webdesigner”. O que na ideia dele era o máximo do desenvolvimento. Tentei ! Aprendi HTML e as ferramentas  gráficas, porém, sempre ficava mais “empolgado” quando o site estava fatiado e começava a mexer com o HTML e Javascript.
Por falta de criatividade – era péssimo como designer :S – fui procurar saber de uma linguagem e recomendaram-me o PHP. Assim comecei a estudar PHP em Julho de 2004, assim, “do nada” :)

2 – Qual a importância dos webstandards?

A mesma que a importância dos Padrões de projeto (design patterns). Deixando todo aquele blablablá de lado, o ponto principal ao meu ver é a comunicação. Com os webstandards podemos falar dar nomes a conceitos facilitando a conversa tanto entre developers quanto para os clientes.

3 – Quais as ferramentas que você utiliza no dia-a-dia (editores de texto, imagens, até mesmo o Sistema Operacional, etc…)?

Uma listinha:
- Sistema Operacional: Arch Linux.
- Linguagem de programação: PHP. Sempre.
- IDE de desenvolvimento: Zend Studio
- Editor de texto: kwrite (esse que estou a usar para responder-te)
- Imagems: Gimp
- Cliente de banco de dados: Zend Studio (database manager); PHPmyAdmin; PgAdmin
- Bug tracker: http://www.twbsd.org
- Debugger: Zend debugger integrado no Zend Studio; xdebug (como complemento no browser)
- WebMail: Yahoo! Mail, Gmail.

4 – Como foi o processo de certificação para o Zend Certified Engineer?

Um processo que enrolei bastante :) O preparatório foi baseado na experiência (em #fail) com a linguagem durante os 5 anos que trabalho com PHP.
Realizei alguns simulados, mas sempre com resultados digamos “empolgantes”, pois eu já era há tempos “PHP #fail Certified” o que é normal para quem quer aprender =P
A prova não é difícil para quem tem vivência com a linguagem.
O pessoal da Zend quer saber se você tem vivência. Se já errou; Se passou argumentos inválidos; Se sabe o que acontece quando algo dá errado;
Se conhece o poder do PHP (conhecendo seus métodos e as libs da SPL). Querem saber se você tem noções simples de segurança; De orientação à objetos, padrões e design OO.

O processo de check-in na prova é bem rigoroso, com ambiente filmado e etc. A tela final, mais cruel ainda. Umas três janelas de confirmação: “Tem certeza que quer finalizar ?”

5- Como você vê a diferença entre trabalhar em uma agência de web e como freelancer? Como é lidar com a liberdade de ser um freelancer mas não ter a “certeza” que um emprego fixo proporciona?

Ah essa é uma das perguntas que mais fazem-me atualmente :) A diferença é gritante. Meu estômago quem o diga !
Antes eu acordava às 7~8hs da manhã, sem pressa. Hoje acordo mais cedo, pois trabalho a pelo menos 50km de distância – resido em Guarulhos, trabalho no Morumbi – e para voltar é a mesma (perda de tempo) coisa. ** Aliás se alguém tiver uma sugestão de como evitar perda de tempo (na ida e volta) fico grato =D
Onde estou atualmente é bem tranquilo. O pessoal é bem flexível, tem preocupações com design OO, padrões (mesmo a maioria do pessoal estar engatinhando nisso) e  não tem neuras com prazos “impossíveis” nem exaustivas horas extras de trabalho. Aliás, faço hora extra quando eu quero – pelo menos por enquanto :)
Em uma agência a correria seria maior talvez. Mas como é meu “primeiro emprego” non-freela, não sou o mais indicado para responder.

6- Você vê o PHP perdendo, em termos práticos, espaço para outras linguagens como Ruby e Python, ou acha que PHP ainda vai se manter por um bom tempo na frente das aplicações web do seu nicho?

Tenho confiança que o PHP ficará por um bom tempo à frente nas aplicações web-based.
Motivo ? Poderoso, leve, multi-plataforma (:D), está ficando com sua SPL bacana e OO de menino crescido. O que vejo de críticas do PHP em sua grande maioria referem-se ao simples fato da linguagem dar-te todo um leque de possibilidades, porém, o pseudo-programador não saber dominar a ferramenta.
Rails é apenas um framework. O Ruby on Rails é rápido de codificar (pelo menos é o que dizem) mas muito ruim para atualizar/ler. Vi dias atrás um trecho de código que argh ! Até Visual Basic é mais legível do que aquilo !
Python é um tantão mais promissor que Ruby, mas (ainda) sofre com seu OO fraco/quase inexistente. Além de não ser originalmente feito para a realidade web.
Ao meu ver, quem poderia tomar o lugar do PHP seria o JSP. Aliás, só não o fez pelo alto custo da implementação e dos (bons) programadores e arquitetos Java.
Com este grande movimento “anti-sobrinhos” do PHP, talvez a adoção do PHP até aumente no mundo coorporativo :) #iwish

7- Sempre quando converso com você, falamos da minha preferência pelo frontend e a sua, pelo backend. O que faz você ter tal preferência? Qual a “graça”?

Não vejo “graça” em programar interfaces. Acho incrível que faz isto bem. Sei do imenso trabalho que é criar uma interface com eventos e etc, porém, acho muito “programação por coindidência” (vide o livro “The Pragmatic Programmer” para saber mais do termo). Não há tantos desafios quanto no backend.
Você precisa ver o quão fascinado fico ao ver as classes do sistema trocando informações; Quando monto algo e vejo que a mudança daquilo é algo simples graças a arquitetura implementada; Puts, realmente sem palavras.
Certa vez você disse-me: “quando preciso de algo do backend, simplesmente solicito ao desenvolvedor e ele que se vire para montar a busca dos dados. Apenas os exibo.”
Já parou para pensar em “como ele trás isto” ? Montar de tal forma que o sistema continue integro, falando “a mesma linguagem” (no caso o ‘Objetonês’); Permitir que você faça
em seu frontend algo como:
$repositorioCliente->pesquisarPorNomeSemelhante($nome)->pesquisarEntreIdades($idadeMinima, $idadeMaxima)->ordenarCrescente()->findAll();
Retornando um ArrayList (ArrayObject) com os “Cliente”s certinho. A magia do Lazy Loading; Criteria com seu QueryObject; Specification; Observer; As camadas… fascinante !
Recomendo dar uma olhada nisto, vai que você curte :)

8- Quais os seus objetivos em termos profissionais, para o futuro (trabalhar só como freela, ir para uma área ou gerencial ou de análise, etc…)

Tornar-me um Arquiteto de Software. Não tenho o mínimo objetivo de tornar-me ‘coordenador’/líder de projeto/gestor/diretor. Não domino (tão pouco tenho interesse) a área gerencial.
Quanto a voltar a ser freela. Bem, talvez. Depende da oportunidade. Ser freelancer foi algo muito gratificante. Talvez não fosse metade do que sou hoje (em nível técnico)
caso fosse uma “cria de agência”.

Caso tudo corra bem, estarei cursando Pós graduação em Engenharia de Software em 2010. Pretendo ir até o mestrado e parar (em termos acadêmicos, claro).
Quero conseguir uma certificação SCEA (Sun Certified Enterprise Architect) mas antes disto, irei correr atrás dos estudos em Java.

E sempre que possível estar presente nas conferências que a vida nos proporciona (PgConf, PHPConf, DevelopersConf ?) :)

Plus- Para onde você acha que a web vai, de uma forma bem ampla (tanto no que diz respeito a tecnologia, como formas de comunicação e aplicações)?

Huum. Complexo !
Antevejo um mundo mais conectado (leia-se dependente) da rede mundial (intermundial, alguém ?). Essa conversa de computação em núvem é só o começo. Sistemas distribuídos
parece ser algo do futuro próximo. Nada impede de em breve termos um OpenId totalmente presente online, fornecendo login para qualquer tipo de aplicação (e a adoção disto ocorrer em massa).
Vejo isto como o começo de uma sociedade mais sozinha também. Na rede todos falam com todos, mas o convívio social pode ser prejudicado, graças à núvem !
Quanto à aplicações, bem, você pode falar melhor do que eu. Essa área evoluiu MUITO. As aplicações em rede (principalmente as Web-based) tem (e terão) muita influência
e estará a cada dia tornando-se mais necessárias para o dia-a-dia. Tenho até medo do que virá pela frente (..)

Palavrinhas finais, rola ?
Antes de mais nada: queria agradecer o convite. E dizer que você (diferente de mim) é um bom blogueiro ! Está aí a frente de três (ou quatro ?) blogs, mandando super bem !
Gostei de ver :)
Como pouco provavelmente iremos trabalhar juntos – tu é do Java, né ? – deixo aqui o convite para colar em alguma conference ou mesmo uma unconference em qualquer lugar
para conversamos mais. Certeza que renderia bastante :)

Posted by Posted by Chris under Filed under Diversos Comments 7 Comments »