segunda-feira, 29 de outubro de 2012

Limpar versões antigos do Google Chrome

Hoje o meu portátil queixou-se que tinha pouco espaço em disco, pois vem vou ver o que se passa, ligo o DiskWave (podem aproveitar para fazer download, é grátis) e vejo que nas minhas aplicações, o Google Chrome ocupa 2.31GB, o que é mesmo muito para um browser.

Decidi então limpar a casa:

Aplication -> Botão direito no Google Chrome -> Show Package Content (ver conteúdos do pacote) -> Contents -> Versions

E aqui estão elas:

Selecciono todas os directórios (pastas) excepto a mais recente e apago-as.

Ficou tudo a funcionar na perfeição e eu ganhei cerca de 2.2GB, o Chrome passou agora a ocupar um pequenos 122.23 MB.

quinta-feira, 13 de setembro de 2012

Symfony User Filters

Muitas vezes é importante conseguirmos saber os filtros que o utilizador criou para apresentarmos os dados pedidos.

Estes filtros são guardados como atributo do sf_user, para os conseguir obter basta utilizar estas linhas:

$admin_module = $sf_user->getAttributeHolder()->getAll('admin_module');
        $filters = $admin_module['page.filters'];

em que o page é o nome do modulo que estão a editar.


segunda-feira, 10 de setembro de 2012

Download de ficheiro em Symfony

Por vezes esta simples acção pode ser um bocado complicada. Vamos então ver como podemos fazer o download de um ficheiro de forma simples em Symfony.

Criar-mos a acção executeDownload() e, após criar o ficheiro basta colocar estas poucas linhas:

$resp = $this->getResponse();

    $resp->setContentType('text/csv');
    $resp->setHttpHeader(
              'Content-Disposition', 
              'attachment; filename="' . basename($file_path) . '"');
    $resp->setContent(file_get_contents($file_path));

    return sfView::NONE;

segunda-feira, 3 de setembro de 2012

Widgets Template - Row Format

Personalizar os formulários do Symfony pode ser um castigo, a menos que consigamos perceber como funcionam e as coisas tornam-se mais simples.

Até ao dia de hoje, sempre que queria modificar um formulário editava o template e reescrevia o html.

posso fazer o mesmo com apenas estava linha de código no formulário:
$this->widgetSchema
     ->getFormFormatter()
     ->setRowFormat('%label%%field%%help%%hidden_fields%');

Podemos utilizar os seguintes atributos:

%label%
      %field%
      %error%
      %help%
      %hidden_fields%

quarta-feira, 8 de agosto de 2012

Criar um validador personalizado em symfony

Por vezes os Validators disponíveis no Symfony não são sufientes para validar os nossos campos, principalmente quando um campo depende de outro, p.e.:
se cmb_a is cheched e cmb_b is checked

       então

     //acção

       senão

     //erro!

Para tal, necessitamos de criar Validators personalizados e aplica-los ao nosso campo. Para tal na nossa classe de formulário acrescentamos as seguintes linhas:

public function configure()
{
    parent::configure();

    $this->validatorSchema['my_field'] = new sfValidatorCallback(
                    array('callback' =>
                        array($this, 'validateMyField')
                    )
    );

}

public function validateMyField($validator, $value)
{
    /* All my action goes here */
    $tainted_values = $this->getTaintedValues();

    if ($tainted_values['my_field_2'] > 0 && $value != '')
    {
        return $value;
    }
    else
    {
        throw new sfValidatorError($validator, "I guess something goes wrong here!");
    }
}


No método validateMyField podemos aceder aos valores todos do formulário obtendo os Tainted values disponíveis utilizando o método getTaintedValues da classe dos formulários.

Realizadas as verificações pretendidas devolvemos o valor ($value) do campo validado ou despoletamos um erro que será apresentado pelo método renderError do formulário.










domingo, 1 de julho de 2012

Print Screen em MacOsX

Exitem diferentes formas de fazer print screen no Mac OS X.

Para fazer um print screen da ecrã completo:
Prima uma vez ⌘ + Shift + 3
Com rato prima no ecrã

Para capturar apenas um porção do ecrã:
Prima uma vez ⌘ + Shift + 4
O rato passa a ser uma cruz com as coordenas do sitio onde está, só tem de clicar no canto superior esquerdo da zona que pretende capturar, arrastar até ao canto inferior direito e largar o botão do rato.

Para capturar uma janela de uma aplicação completa:
Prima uma vez ⌘ + Shift + 4
Prima agora a barra de espaços, o cursor do rato passa a ser uma câmara, clique na janela que pretende capturar
Todas os print screens vão para o Desktop.

terça-feira, 5 de junho de 2012

Android - Draw Something

O Draw Something é um jogo viciante que nós poderá levar a perder horas a desenhar (ou a pensar que desenhamos) com os nossos amigos.

A base do jogo é muito parecida com a do Pictionary, desenhar e esperar que alguém adivinhe. Neste caso são nos propostas 3 palavras com valores diferentes, escolhemos uma e desenhamos o melhor que conseguimos para que o nosso amigo consiga adivinhar. Na volta seguinte, o amigo que adivinhou desenha para nós.



Inicialmente o jogo tem um "enorme" leque de 4 cores apenas, mas pode ser facilmente aumentado ganhando moedas e trocando-as por paletes de cores.



Este jogo é multi-plataformas, poderá jogar contra amigos que o tenham instalado num iPhone.

qrcode

Para instalar a partir da imagem sigam este post: Barcode Scanner