Seguem uma série de memos e atalhos para o vim.
Pesquisar: /pesquisa e Enter
Ocorrências seguintes: n
saltar para a linha: [num-linha]gg
ex: 156gg (vai para a linha 156)
mostrar numeros das linhas: :set nu
Aqui fala-se principalmente de tecnologia e aplicações que podem dar jeito para o dia a dia...
quinta-feira, 27 de dezembro de 2012
Alterar pass mysql no MAMP
Para alterar o password do mysql com o MAMP é necessário alterar varios ficheiros, seguem as instruções:
Alteramos primeiro no mysql
Depois vamos editar as configurações do phpmyadmin
Por volta da linha 86 alteramos a palavra root para a nova password
Caso pretendam alterar a password de root para '', têm de colocar a seguinte linha no mesmo ficheiro:
De seguida alteramos o index do MAMP
Na linha 5 encontramos a conexão à base de dados, o segundo 'root' é a pass, alteramos para a nova.
Reiniciamos o MAMP e está pronto.
Alteramos primeiro no mysql
/Applications/MAMP$ Library/bin/mysqladmin -u root -p password
Depois vamos editar as configurações do phpmyadmin
$ vim /Applications/MAMP/bin/phpMyAdmin/config.inc.php
Por volta da linha 86 alteramos a palavra root para a nova password
$cfg['Servers'][$i]['password'] = 'root'; // MySQL password (only needed
// with 'config' auth_type)
// with 'config' auth_type)
Caso pretendam alterar a password de root para '', têm de colocar a seguinte linha no mesmo ficheiro:
$cfg['Servers'][$i]['AllowNoPassword'] = true;
De seguida alteramos o index do MAMP
$ vim /Applications/MAMP/bin/mamp/index.php
Na linha 5 encontramos a conexão à base de dados, o segundo 'root' é a pass, alteramos para a nova.
$link = @mysql_connect(':/Applications/MAMP/tmp/mysql/mysql.sock', 'root', 'root');
Reiniciamos o MAMP e está pronto.
quinta-feira, 20 de dezembro de 2012
Force git pull
Já aconteceu termos de alterar dados em produção directamente (péssimo, mas por vezes tem de ser), e depois, ao tentarmos fazer uma git pull temos conflitos.
Nestes casos, queremos descartar as alterações de produção e manter as que fizemos a posteriori, supostamente o git pull origin master --force deveria resolver o nosso problema, mas não, a solução é a seguinte:
Nestes casos, queremos descartar as alterações de produção e manter as que fizemos a posteriori, supostamente o git pull origin master --force deveria resolver o nosso problema, mas não, a solução é a seguinte:
git fetch origin master
git reset --hard FETCH_HEAD
git clean -df
git reset --hard FETCH_HEAD
git clean -df
quinta-feira, 8 de novembro de 2012
Symfony correr task em acção
Geralmente criamos uma task symfony para correr numa cron, mas por vezes pode-nos dar muito jeito correr a task ao clicar num botão ou depois de guardar um objecto, para resolver isso ficam aqui as poucas linhas que necessitam para correr a task:
Fonte: link
// In sfActions
chdir(sfConfig::get('sf_root_dir')); // Trick plugin into thinking you are in a project directory
$task = new sfMyVerySpecialTask($this->dispatcher, new sfFormatter());
$task->run(array('argument_name' => 'argument'), array('option_name' => 'option'));
chdir(sfConfig::get('sf_root_dir')); // Trick plugin into thinking you are in a project directory
$task = new sfMyVerySpecialTask($this->dispatcher, new sfFormatter());
$task->run(array('argument_name' => 'argument'), array('option_name' => 'option'));
Fonte: link
segunda-feira, 5 de novembro de 2012
Symfony Task error de "default context"
Um erro recorrente em Symfony é o tão conhecido The "default" context does not exist., este erro dá-se quando tentamos aceder às variáveis de context numa Task.
Para resolver é simples, basta colocar a linha seguinte no execute da task.
Para resolver é simples, basta colocar a linha seguinte no execute da task.
sfContext::createInstance($this->configuration);
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:
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.
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.
Etiquetas:
chrome,
google,
google chrome,
mac os x,
macosx
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:
em que o page é o nome do modulo que estão a editar.
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:
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.
Podemos utilizar os seguintes atributos:
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.:
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:
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.
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:
Para capturar apenas um porção do ecrã:
Para capturar uma janela de uma aplicação completa:
Para fazer um print screen da ecrã completo:
Prima uma vez ⌘ + Shift + 3
Com rato prima no ecrã
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.
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.
Prima agora a barra de espaços, o cursor do rato passa a ser uma câmara, clique na janela que pretende capturar
Etiquetas:
macosx,
print screen,
shortcuts
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.
Para instalar a partir da imagem sigam este post: Barcode Scanner
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.
Para instalar a partir da imagem sigam este post: Barcode Scanner
Etiquetas:
android,
draw,
jogos,
pictionary
quarta-feira, 22 de fevereiro de 2012
Geocaching offline
Para as pessoas que não têm plano Internet poderem utilizar o c:geo em modo offline, necessitam fazer download dos mapas. Eu utilizei os da mapsforge (Portugal).
Façam download dos mapas e coloquem num directório à escolha no telemóvel.
Na aplicação c:geo acedam a Settings e naveguem até "Map Sources" e seleccionem as opções
OSM: Offline e o caminho para o vosso mapa.
A partir de agora se forem ao live map, o mapa seleccionado será o guardado no telemóvel.
Para armazenar as caches no telemóvel têm 2 formas de o fazer. Pode pesquisar pela aplicação (Search) ou no site. Se quiser pesquisar e enviar directamente para o telemóvel.
Para enviarem as caches do browser para o telemóvel directamente sigam este tutorial (link)
Links:
Mapa Portugal
Lista completa
Façam download dos mapas e coloquem num directório à escolha no telemóvel.
Na aplicação c:geo acedam a Settings e naveguem até "Map Sources" e seleccionem as opções
OSM: Offline e o caminho para o vosso mapa.
A partir de agora se forem ao live map, o mapa seleccionado será o guardado no telemóvel.
Para armazenar as caches no telemóvel têm 2 formas de o fazer. Pode pesquisar pela aplicação (Search) ou no site. Se quiser pesquisar e enviar directamente para o telemóvel.
Para enviarem as caches do browser para o telemóvel directamente sigam este tutorial (link)
Links:
Mapa Portugal
Lista completa
Update: Para saber como instalar o send2cgeo no seu computador visite este link
quinta-feira, 12 de janeiro de 2012
Datas em PHP
Fartei-me de tanto procurar por isso aqui vai uma série de métodos para obter datas em PHP.
Segunda-feira desta semana:
Domingo desta semana:
Quarta-feira da 5ª semana de 2056:
Isto funciona assim:
Números da semana
Segunda-feira desta semana:
date('Y-m-d', strtotime(date('Y')."W".date('W')))
Domingo desta semana:
date('Y-m-d', strtotime(date('Y')."W".date('W')."7"))
Quarta-feira da 5ª semana de 2056:
date('Y-m-d', strtotime("2056W53"))
Isto funciona assim:
date('Y-m-d', strtotime(."W"..))
Números da semana
Segunda: 1
Terça:2
...
Domingo: 7
Terça:2
...
Domingo: 7
Subscrever:
Mensagens (Atom)