Problemas na Dreamhost

Peço desculpas aos visitantes do blog por estes dias de inconsistência no acesso e problemas no layout do blog. Fui afetado por um problema grave em dois servidores da DreamHost e só após a mudança de servidor que as coisas estão voltando à normalidade.

Logo voltaremos à programação normal! :)

1 Comment

ToDo List no “Notebook”

Caderno, Lápis e borracha

A imagem acima é uma foto da minha lista de tarefas, ou “to do list”, e, diferente de muita gente que recomenda o uso de diversas ferramentas como o Remember the Milk, que te lembra de tarefas no Twitter, e-mail, SMS e etc, não vejo nada melhor do que usar o bom e velho caderno em minha mesa, com lápis e borracha.

As vantagens que vejo em utilizar esta forma é a praticidade. Você pode inserir novas tarefas e marcar tarefas como finalizadas a qualquer momento, bastando pegar o lápis (pode usar caneta também, se preferir) e fazer a anotação. Errou alguma coisa, nada que a borracha, ou um simples traço não resolva.

Todo dia de manhã faço uma revisão das tarefas realizadas e pendentes do dia anterior, e faço um planejamento para o dia, incluindo as novas atividades que possam ter aparecido.

Outra grande vantagem, talvez a principal, é a visibilidade. Quando uso um programa no computador, ele fica oculto (minimizado) enquanto estou realizando minhas atividades (programar, desenhar, comunicar, …). Com o caderno, ele está sempre ali ao lado da mesa pra me lembrar que tenho um conjunto de tarefas à realizar. Não atoa eu escolhi um com folhas amarelas, que chama bastanta a atenção em cima da mesa e acabou me condicionando a sempre que perco a atenção, olho no caderno e vejo se tenho algo urgente à realizar.

E, pra quem pensa em sustentabilidade e na quantidade de árvores mortas pra produzir os cadernos, pode buscar pelos produtos feitos com material reciclado, e continuar contribuindo com a natureza. :)

3 Comments

Kohana Framework: Lista de discussão

Aviso ao pessoal que provou o Kohana framework e gostou: Algumas pessoas estão se movimentando novamente e criaram a lista de discussão do framework em português, para discussões, dicas e dúvidas.

No Comments

Computação nas Nuvens – A volta de um ciclo

O Jornal da Globo fez uma matéria muito interessante sobre o Google e sua metodologia de trabalho, além de dar um foco muito grande no que o pessoal de Mountain View chama de Cloud Computing. Comentei sobre isso com colegas de trabalho, mas foi ao comentar o artigo do Rafael Arcanjo que acabei escrevendo um post sobre o assunto. :) . Antes de continuar, seria bom dar uma passada e ler o artigo: Voltaremos à era dos MainFrames?

Já leu? Então vamos lá…

Certa vez, em uma aula sobre Engenharia de Software, perguntei ao professor se ele não achava que as metodologias de desenvolvimento ágil (XP, GTD, Scrum, …) era uma regressão ao passado, já que ele nos ensinava Praxxis (baseada no RUP). Ele me surpreendeu respondendo que observa-se um ciclo nesta área: Ontem as metodologias eram ágeis, e vieram as grandes metodologias colocar ordem na casa. Hoje, metodologias mais burocráticas são consideradas engessadas pelos mais modernos e a preocupação com a agilidade volta ao cenário, caracterizando um ciclo de tendências, que pode ser visto também na moda (isso, de roupas mesmo).

Acho que esse ciclo se aplica à quase tudo (música?), e também à forma como utilizamos o computador. Ontem terminais burros eram a sensação nas empresas, hoje o poder transferiu-se para estes terminais. Amanhã estarão novamente nos servidores, e, pelo que vimos na matéria, esta é a aposta do Google.

A história nos ensinou que dizer que não vai dar certo por causa de limitações de poder de processamento ou velocidade de conexão é ficar preso à realidade tecnológica de hoje e esquecer da velocidade em que ela evolui. Dentro de poucos anos podemos ter uma revolução em termos de conexão que nenhum de nós pôde imaginar, ou até que julgamos absurdo em determinado momento.

Além disso, centralizar arquivos na internet já é uma realidade. Minha planilha de controle financeiro, meu currículo atualizado, algumas de minhas palestras, estão todas no Google Docs. Meus contatos (e-mails) estão no GMail. As aplicações que desenvolvo estão em repositórios na internet. Isso me dá a liberdade de acessá-los do meu desktop em casa, do notebook, do desktop no trabalho ou do meu celular, e acho que esse é o conceito do Cloud Computing.

Se a tecnologia ainda não é capaz de suportar esse conceito, em breve será.

8 Comments

Go PHP 5: Diminuiram as desculpas

Comentei aqui em julho do ano passado sobre o projeto Go PHP 5, que tinha como objetivo migrar diversas aplicações famosas do PHP para PHP 5 Strict, além de divulgar os hospedeiros que passariam a oferecer suporte para a “nova” (lançada em 2004) versão do PHP.

O projeto se encerrou em fevereiro deste ano, mas só me lembrei de dar uma olhada nos resultados agora. Ao que parece, diminuiram as desculpas pra quem ainda não migrou. Além de diversos hosts que passaram a oferecer a nova versão (o que, convenhamos, é o mínimo que poderiam fazer), muitas aplicações famosas também foram migradas. Dentre elas:

Dentre outros como ZenCart, Propel, Typo3, PHP Unit.

Veja a lista completa de projetos e de hosts no site oficial do Go PHP 5.

1 Comment

Contratação PJ ou CLT – Prós e Contras

Não é de hoje que o modelo de contratação como Pessoa Jurídica invadiu as áreas de TI das empresas, o que acaba causando uma grande diferença no modelo de negócio das mesmas, uma vez que não existe um vínculo empregatício e o contrato pode ser rescindido por qualquer uma das partes a qualquer momento.

Do lado das empresas, geralmente utilizam do artifício da contratação de PJ, que, é importante lembrar, é ilegal de acordo com as normas do trabalho vigentes no Brasil, para ter profissionais de qualidade por tempo determinado. Após o término do projeto, os recursos podem ser aproveitados em outros projetos ou saírem da empresa, sem qualquer ônus para a empresa.

Agora chegamos ao ponto onde queria chegar: o lado dos profissionais. Quais são as vantagens do modelo de contratação “PJ”, em relação ao CLT? Quais as desvantagens? Pensando nisso, levantei algumas questões aqui que eu considero interessante avaliar para decidir qual melhor tipo de contratação e gostaria de ouvir a opinião dos leitores. Vejamos as comparações abaixo:

  • Salário: Por não pagar todos os impostos da contratação CLT, a empresa pode pagar um salário bem maior para o profissional, que terá de administrar sozinho seu salário para gerenciar um plano de previdência, plano de saúde e etc.
  • Benefícios: Ao contrário do PJ, o contratado CLT recebe parte do seu salário em benefícios, que variam de empresa para empresa. Os mais comuns são Ticket Refeição/Alimentação, Planos de Saúde e Dental, e, em empresas maiores, existem outros como parcerias com fornecedores de veículos, eletrodomésticos e prestadoras de serviços, onde os funcionários obtém descontos em suas compras.
  • Flexibilidade: O fato de não ter vínculo pode permitir uma maior flexibilidade para o PJ, por exemplo, de horário de trabalho, home office ou troca de emprego mais rápida caso apareça uma oportunidade melhor.
  • Oportunidades: Falando em oportunidades, dentro de algumas empresas, quem é CLT têm preferência quando aparece uma vaga de liderança ou chefia, justamente por terem um vínculo com a empresa.
  • PPR: A participação nos lucros também é algo comum em empresas maiores e pode compensar um pouco a diferença salarial em relação à contratação PJ. As empresas chegam a pagar 1, 2 ou mais salários ao ano, dependendo do desempenho de cada funcionário. A compra de ações também têm se tornado uma opção mais frequente.
  • Férias: O funcionário CLT ganha 13 salários, e trabalha 11, pois tem direito a um mês de férias. Os PJ ganham 12 salários e as férias são negociadas com a empresa. Em alguns casos, não existe férias remuneradas, em outros sim.

Tendo em mãos estes itens, podemos distribuí-los na balança, de acordo com seus objetivos de carreira, e definir o que é melhor em cada situação. E eu pergunto pra vocês: Qual modelo vocês preferem hoje? Que outros itens você acha importante pesar na hora de avaliar o modelo de contratação?

Lembro, novamente, que o modelo de contratação “PJ” é ilegal, mas faz parte da nossa realidade, e acho interessante colocarmos o assunto em pauta.

1 Comment

FLISOL 2008 em Brasília

O FLISOL-DF – Festival Latino Americano de Instalação de Software Livre – deste ano, ocorrerá no dia 26 de Abril (sábado) na FAJESU, em Taguatinga-DF, e conta com algumas palestras e/ou minicursos para os desenvolvedores PHP (e também para aqueles que gostariam de conhecer a linguagem).

O palestrante Almir Neto ministrará as palestras “Mapeamento objeto-relacional em PHP com PEAR::Data_Object” e “Introdução ao MVC com PHP 5 e Ajax“, sendo a última com participação de Otávio Calaça, ambos de Goiania.

Teremos também os minicursos, com duração de 2 horas, sobre “PHP/Zend Code Standards & PHPDocumentor“, ministrado por Walker de Alencar Oliveira e, representando o PHP-DF, o João Seabra ministrará o curso para iniciantes “PHP Básico – Construindo sua primeira aplicação“, com duração de 4 horas.

Claro que além disso, muita discussão sobre temas relacionados ao Software Livre como VoIP usando ferramentas livres, Linux (claro) e MySQL/PostgreSQL, além de WiFi liberado para os nerds poderem twittar, blogar e navegar à vontade.

Estarei no evento e quem for pode me procurar pra dar um alô.

Mais informações:

,

2 Comments

Dicas para escrever a Experiência Profissional no Currículo

Um dos itens mais importantes do seu currículo é o que detalha as suas experiências profissionais anteriores. E, infelizmente, é muito freqüente as pessoas não darem a devida atenção que este item merece, durante a elaboração do mesmo.

É muito importante, neste item, descrever não só quais as atividades que você executou durante determinado período na empresa, mas citar suas conquistas dentro dela. Como desenvolvedor, você poderia citar uma entrega com qualidade e no prazo, tendo recebido elogios de seus líderes. Pode citar aquela promoção que conseguiu em menos de 1 ano na empresa, descrevendo os pontos positivos que o fizeram merecer o crescimento de carreira. Se houverem documentos como cartas de recomendação da empresa ou do cliente, não deixe de citá-los.

Todos estes exemplos demonstram o seu comprometimento com a qualidade do seu trabalho, preocupação com o crescimento profissional, valor agregado para a empresa como fornecedora e seus clientes e tantas outras possibilidades. Muito melhor do que se você tivesse dito apenas que trabalhou na empresa XPTO por 3 anos programando em PHP Orientado a Objetos com banco Oracle, que diz, na melhor das hipóteses, que você tem 3 anos de experiência com PHP e Oracle, sem citar o nível de qualidade em cada uma destas ferramentas.

Não se esqueça também de enaltecer os pontos positivos da empresa. Certificações como CMMi ou ISO garantem níveis de qualidade e organização destas empresas, e demonstra que você já esteve inserido neste contexto, que é amplamente difundido no mercado.

Resumindo o artigo em boas palavras: Descreva as qualidades das empresas e suas conquistas pessoais em cada uma delas, respeitando a regra de nunca faltar com a verdade.

3 Comments

Trabalhando com Triggers no MySQL

Não ouço comentários a respeito do uso de Triggers e Stored Procedures no banco de dados MySQL. Talvez por que, quem conheça e utilize estas ferramentas, prefira trabalhar com outros bancos mais robustos como Oracle, SQL Server e há espaço até para o PostgreSQL.

Esses dias, enquanto migrava uma aplicação que uso no trabalho do framework Code Igniter para o Kohana, percebi que poderia poupar código se fizesse a implementação de algumas atividades direto no banco, com o uso de Triggers, que estão disponíveis no MySQL 5.

Minha aplicação possui a entidade Tarefa, com 4 campos de data descritos, de forma que eu consigo controlar quando eu deveria ter iniciado a atividade, e comparar com quando, realmente, isso foi realizado. Os campos são: data prevista de início; data de início realizada; data prevista de término; e data de término realizada.

O problema que eu tinha é que muitas vezes eu precisava replanejar as datas previstas, por um motivo qualquer, como um atraso em uma atividade anterior, que era de responsabilidade do cliente. Então eu simplesmente entrava no sistema e alterava as datas previstas, mas precisava guardar um histórico, armazenando as datas anteriores e o motivo deste replanejamento.

Para resolver isto via código na aplicação, teria que implementar um método “after_save” em tarefas, verificar se houve replanejamento das datas, carregar um objeto entidade Replanejamento, preenche-lo com os dados e salvá-lo. A outra opção foi criar esta trigger no banco de dados:

CREATE TRIGGER log_replanejamento AFTER UPDATE ON tarefas
  FOR EACH ROW
    BEGIN
      IF OLD.dt_inicio_previsto <> NEW.dt_inicio_previsto OR OLD.dt_fim_previsto <> NEW.dt_fim_previsto THEN
        INSERT INTO replanejamentos SET
          tarefa_id = OLD.id,
          dt_inicio_previsto = OLD.dt_inicio_previsto,
          dt_inicio_realizado = OLD.dt_inicio_realizado,
          dt_fim_previsto = OLD.dt_fim_previsto,
          dt_fim_realizado = OLD.dt_fim_realizado,
          dt_replanejamento = NOW(),
          observacao = OLD.observacao;
      END IF;
    END;

Pra quem não está acostumado com a sintaxe das Triggers, uma “tradução” do comando seria: Crie a trigger LOG_REPLANEJAMENTO após atualizações em TAREFAS. Para cada linha, se a data de inicio prevista for diferente da nova data de inicio prevista, OU se a data de fim prevista for diferente da nova data fim prevista, insira na tabela REPLANEJAMENTOS.

Está lá o meu histórico: simples, rápido e indolor. :)

Mais informações no próprio manual do MySQL.

No Comments

Removido o blog do nome do dominio

Caros leitores. Este post é apenas para anunciar que fiz uma migração aqui que gostaria de ter feito há muito tempo, mas que só agora, que acumularam diversas coisas, tive ânimo pra colocar a mão na massa e realizá-las.

A primeira alteração, e principal novidade para vocês, foi a remoção do diretório “/blog” do domínio. Muitas empresas bloqueiam esta palavra em seus proxys internos e, sendo este um blog técnico, poderia estar dificultando o acesso de algum leitor em seu ambiente de trabalho e/ou educacional. É importante lembrar que essa migração é completamente transparente para os leitores de feeds.

A segunda foi a resolução dos problemas de codificação de caracteres no blog. No cenário antigo, todo o banco estava codificado em ISO-8859-1, enquanto o padrão do Wordpress é UTF-8. Isso era quase imperceptível para os usuários, exceto aqueles que repararam em detalhes no calendário, mas a área de administração ficava exibindo caracteres estranhos. Agora está tudo nos conformes, com toda a aplicação utilizando o padrão UTF-8 para codificação.

A terceira, e última, foi a migração do Wordpress 2.3.x para a nova versão 2.5, que trouxe uma nova interface administrativa e algumas outras novidades que não afetam diretamente vocês, leitores. Foi bom ver o tema e todos os plugins funcionarem normalmente, inclusive aqueles que fiz especificamente para o blog.

Se encontrarem algum problema, por favor me avisem para que eu possa corrigi-los.

No Comments