Estendendo Helpers no Kohana Framework
Os helpers no Kohana Framework não passam de classes estáticas (que não precisam ser instanciadas), e você pode precisar adicionar funcionalidades à um método ou criar suas próprias funcionalidades. Para isso, você vai precisar criar uma extensão do Helper.
O primeiro passo é ir até o diretório da sua aplicação (por padrão ele é chamado application) e criar um diretório chamado helpers, caso ele ainda não exista, claro, e criar um arquivo chamado MY_form.php. É importante ressaltar que o prefixo MY_ pode ser configurado.
No primeiro exemplo, vamos estender o form helper do framework para criar o input date. Neste caso, utilizamos o plugin datePicker para jQuery (biblioteca javascript) onde, para colocar o seletor de data (calendário) ao lado do combo, basta definir uma classe “date-pick” para o elemento HTML. Vamos ao código:
<?php defined('SYSPATH') or die('No direct script access.');
class form extends form_Core
{
/**
* Creates an HTML form input date tag.
*
* @param string|array input name or an array of HTML attributes
* @param string input value, when using a name
* @param string a string to be attached to the end of the attributes
* @return string
*/
public static function date($data, $value = '', $extra = '')
{
if ( ! is_array($data))
{
$data = array('name' => $data);
}
// Insere atributo class com valor date-pick
$data['class'] = (isset($data['class'])) ? $data['class'].' date-pick' : 'date-pick';
return form::input($data, $value, $extra);
}
} // End form class
Dessa forma, ao usar o código abaixo, será gerado um input text com a classe “date-pick”, e o jQuery faria todo o serviço:
<?php echo form::date('dt_aniversario'); ?>
Você também não terá problemas caso passe outros atributos:
<?php echo form::date( array('name'=>'dt_aniversario', 'title'=>'Data de Aniversário') ); ?>
Na imagem abaixo segue um exemplo do funcionamento do campo data:

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!
ToDo List no “Notebook”

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.
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.
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á.