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


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:
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

segunda-feira, 12 de dezembro de 2011

Configurações MMS Optimus em Android

Para o pessoal que tem problema a enviar e a receber mms a rede Optimus podem utilizar as seguintes configurações:

Optimus MMS
APN: umts
MMSC: http://mmsc:10021/mmsc
MMS Proxy: 62.169.66.5
MMS Port: 8799
MCC: 268
MNC: 03
APN Type: mms
APN Protocol: IPv4

Têm de ter a net 3G ligada, mesmo que não tenham, o serviço de MMS utiliza essa ligação, se não não dá. Testem e digam se funca.

APN Portugal:
qrcode

segunda-feira, 10 de outubro de 2011

Apache LogLevel

Níveis de log do apache:

emergSystem is unstable
alertImmediate action required
critCritical error
errorNon-critical error
warnWarning
noticeNormal but significant
infoInformational
debugDebug level

quarta-feira, 8 de junho de 2011

Criar Mensagens no Log

Para fazer debug às nossas aplicações, pode dar jeito fazer um logo do que fazemos, para tal podemos utilizar o método error_log(), mas se estivermos com a utilizar Symfony, podemos utilizar o log do Symfony. Como fazer isso? Simples...

Podemos inserir vários tipos de mensagem:
emerg, alert, crit, err, warning, notice, info, debug

Na action:
$this->logMessage('Mensagem de Info na action!', 'info');

Fora da action:
sfContext::getInstance()->getLogger()->alert('Mensagem de Alert fora da action!');

sábado, 28 de maio de 2011

mysql configuration

Alterar a password de root do mysql:

sudo dpkg-reconfigure mysql-server-5.1

sábado, 2 de abril de 2011

Slugify em PHP

Quase todas as frameworks utilizadas em PHP têm um método que limpa as variáveis para a criação de URL de forma dinâmica. Para quem precisar de funções equivalentes, fora de uma framework ficam aqui 2 possíveis soluções:


Solução 1 - Substitui os caracteres especiais pelos correspondentes:

function slugify($string) {
    $string = utf8_decode($string);
    $string = html_entity_decode($string);

    $a = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ';
    $b = 'AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn';
    $string = strtr($string, utf8_decode($a), $b);

    $ponctu = array("?", ".", "!", ",");
    $string = str_replace($ponctu, "", $string);

    $string = trim($string);
    $string = preg_replace('/([^a-z0-9]+)/i', '-', $string);
    $string = strtolower($string);

    if (empty($string))
        return 'n-a';

    return utf8_encode($string);
}


Solução 2 - Remove os caracteres especiais:

function slugifyRemove($text) {
    $text = preg_replace('~[^\\pL\d]+~u', '-', $text);
    $text = trim($text, '-');

    if (function_exists('iconv')) {
        $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
    }

    $text = strtolower($text);
    $text = preg_replace('~[^-\w]+~', '', $text);

    if (empty($text)) {
        return 'n-a';
    }

    return $text;
}

Resultados:

$str = "Escolha uma das opções";
echo "slugify: ".slugifyReplace($str);
echo "slugifyRemove: ".slugifyRemove($str);

slugify: escolha-uma-das-opcoes
slugifyRemove: escolha-uma-das-opes