quinta-feira, 31 de maio de 2012

GoogleMaps - Este código não funciona (me enganei, funciona sim)

Veja bem,
este código funciona sim. Eu é que estava comendo esferas....
Sorry folks.


Veja bem,
estava pesquisando e encontrei este código
http://minimizr.com/blog/2006/10/minimal-how-to-use-google-maps-api-with-php/
Testei mas não vem nada. Dá o vácuo total. Este é um código I.V.


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
  Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="content-type" content="text/html;
    charset=utf-8"/>
    <title>Google Maps JavaScript API Example</title>
    <script src="http://maps.google.com/maps?
      file=api&amp;v=2&amp;key=ABCDEFGH..."
      type="text/javascript"></script>
    <script type="text/javascript">
    //<![CDATA[
    function load() {
      if (GBrowserIsCompatible()) {
        var map = new GMap2(
        document.getElementById("map"));
        map.setCenter(
        new GLatLng(37.4419, -122.1419), 13);
      }
    }
    //]]>
    </script>
  </head>
  <body onload="load()" onunload="GUnload()">
    <div id="map"
    style="width: 500px; height: 300px"></div>
  </body>
</html>

Famous quote of Kill Bill

Veja bem,

se você traalha no mundo corporativo como eu, já deve ter se deparada com uma situação, principalmente reuniões, onde você quis fazer o que O-Ren Ishii fez, em Kill Bill 1, durante a reunião com os chefes da Yakuza.



"As your leader, I encourage you from time to time, and always in a respectful manner, to question my logic. If you're unconvinced that a particular plan of action I've decided is the wisest, tell me so, but allow me to convince you and I promise you right here and now, no subject will ever be taboo. Except, of course, the subject that was just under discussion. The price you pay for bringing up either my Chinese or American heritage as a negative is... I collect your fucking head. Just like this fucker here. Now, if any of you sons of bitches got anything else to say, NOW'S THE FUCKING TIME!"
-O-Ren Ishii



quarta-feira, 30 de maio de 2012

Google Maps - Exemplo de múltiplos markers

Veja bem, a demo é esta:

https://google-developers.appspot.com/maps/documentation/javascript/v2/examples/marker-simple

Quando você exibe o código fonte aparece o código abaixo:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Google Maps JavaScript API Example: Simple Markers</title>
<script src="//maps.google.com/maps?file=api&amp;v=2&amp;key=AIzaSyD4iE2xVSpkLLOXoyqT-RuPwURN3ddScAI"
type="text/javascript"></script>
<script type="text/javascript">
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(37.4419, -122.1419), 13);
// Add 10 markers to the map at random locations
var bounds = map.getBounds();
var southWest = bounds.getSouthWest();
var northEast = bounds.getNorthEast();
var lngSpan = northEast.lng() - southWest.lng();
var latSpan = northEast.lat() - southWest.lat();
for (var i = 0; i < 10; i++) {
var latlng = new GLatLng(southWest.lat() + latSpan * Math.random(),
southWest.lng() + lngSpan * Math.random());
map.addOverlay(new GMarker(latlng));
}
}
}

</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 500px; height: 300px"></div>
</body>
</html>

Testarei hoje às 21:00 horas.

Parece promissor.

PS: Trabalhar com mapas é cansativo, mas o resultado compensa.

Happy Birthday to me


Life is amazing!
Happy birthday to me!

terça-feira, 29 de maio de 2012

Utilização do CURL do PHP

Veja bem,

Este é um exemplo de utilização do CURL.


        $ch = curl_init();
        $url = "http://" .  $_SERVER['SERVER_NAME'] . "/cliente/utilitario/lerrg.php?rg=" . $rg;                      
        $timeout = 20;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_HEADER, false); 
        curl_setopt($ch, CURLOPT_NOBODY, false); // remove body 
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);              
        curl_close($ch);
        return $data;
Coloquei em vermelho dois parâmetros "traiçoeiros". Apesar de estar escrito Header e Body, eles não se referem ao Header ou Body da página que você está chamando.
Utilize esta configuração para acessar o conteúdo da página sem problemas.

That's it!

Criar um índice no MySQL

Veja bem,

Exemplo de criação de índice:

CREATE INDEX indx_cliente ON Cliente (descricao);

indx_cliene = nome do índice.
Cliente = nome da tabela.
descricao = nome da coluna.

That's it.

Alien Planet - Documentário

segunda-feira, 28 de maio de 2012

API Google

Veja bem,
Você também está querendo usar as API's do Google? Em especial o GoogleMaps com Geocoding? Faça o seguinte
Acesse
https://code.google.com/apis/console 
Nesse endereço você consegue a Key, sem a qual você não consegue fazer nada.


Referência:

Obtaining an API Key

All Maps API applications* should load the Maps API using an API key. Using an API key enables you to monitor your application's Maps API usage, and ensures that Google can contact you about your application if necessary. If your application's Maps API usage by exceeds the Usage Limits, you must load the Maps API using an API key in order to purchase additional quota.
* Google Maps API for Business developers must not include a key in their requests. Please refer to Loading the Google Maps JavaScript API for Business-specific instructions.
To create your API key:
  1. Visit the APIs Console at https://code.google.com/apis/console and log in with your Google Account.
  2. Click the Services link from the left-hand menu.
  3. Activate the Google Maps API v3 service.
  4. Click the API Access link from the left-hand menu. Your API key is available from the API Access page, in the Simple API Access section. Maps API applications use the Key for browser apps.

Mudar o domínio localhost - Windows

Às vezes você precisa mudar o domínio da sua máquina, ou acrescentar outro além do localhost que você já tem.

Know-how:
C:\Windows\System32\drivers\etc\host

Abaixo acrescentei o domínio netdaniels.com.

Depois disso é só reiniciar a máquina e testar.


# Copyright (c) 1993-2009 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
#      102.54.94.97     rhino.acme.com          # source server
#       38.25.63.10     x.acme.com              # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1       localhost
# ::1             localhost

127.0.0.1 localhost
127.0.0.1 netdaniels.com


Vocabulário de Francês - 01

Estou lendo um livro em francês chamado Le Monde de Sophie. Eu vou lendo e anotando as palavras que não conheço para depois procurar no dicionário. Eis mais uma lista:


le potage  a sopa
couette  edredão
sommeil  dormir
placard  armário
l'étagère  a prateleira
mi-bas  Elevações de Joelho
la haie  o hedge
remonta  subiu
demeures  casas
atteignirent  alcançado
lovée  coiled
canapé  sofá
plumes d'oie  ganso
tapissé  forrado
songe  sonho
facteur  fator
lézarda  lézarda
déterrer  desenterrar
arpenter  vistoria
fusil  rifle
incunable  incunábulo
berceau  berço
la poudre 
à tour de bras  um braço de cada vez


Algumas traduções me parecem esquisitas, se você perceber alguma coisa errada, comente. Obrigado.

domingo, 27 de maio de 2012

Classe de validação : CValidator

Veja bem,

Se você está que nem eu, desenvolvendo com yii já deve ter chegado a questão das classes de validação. Se não chegou, vai chegar.

No meu caso construí uma classe de validação para CEP.

Primeiro passo:

Na classe Model


    public function rules()
    {
        // NOTE: you should only define rules for those attributes that
        // will receive user inputs.
        return array(
            array('code',
                    'required'),
            array(
                'code','cep'),
            // The following rule is used by search().
            // Please remove those attributes that should not be searched.
            array(
                'id, code, noise, accessibility, neighborhood, afforestation, violence',
                'safe',
                'on' => 'search'),
            );
    }

//Segundo passo criar a classe de validação..........


class cep extends CValidator
{ //início da Classe

    public function validateAttribute($object, $attribute)
    {
        $message = utf8_encode("não é válido ou não existe.");
        if (!$this->validaCEP($object->$attribute)) {
            $message = $this->message !== null ? $this->message : Yii::t('cep',
                '{attribute} ' . $message);
            $this->addError($object, $attribute, $message);
        }

    }


    public function clientValidateAttribute($object, $attribute)
    {
        return "";

    }

    private function validaCEP($cep)
    {
        $cep = trim($cep);
        if (!is_numeric($cep)) {
            return false;
        }
        if (strlen($cep) != 8) {
            return false;
        }
       
        $content = $this->get_data("utilitario/lercep.php?cep=$cep");
        $content = trim($content);
       
        if (strlen($content) == 0)
        {
            return false;
        }
               
        return true;

    }

    function get_data($url)
    {
        $ch = curl_init();
        $timeout = 5;
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
        $data = curl_exec($ch);
        curl_close($ch);
        return $data;
    }

} //fim da Classe


Para mais detalhes acesse este link
http://abelcorreadias.blogspot.com.br/2012/01/criando-um-validator-para-o-campo-cpf.html

PS: utilitario/lercep.php não é um php mágico que acesse o cep de algum site como república virtual ou mesmo o site do correio. Estou acessando minha própria base de CEP. Atenção: a base de CEP do correio é gigantesca.

Fatal error: Call to undefined function curl_init()

Veja bem,

estava eu trabalhando com o yii (framework php) e tomei este erro
Fatal error: Call to undefined function curl_init()
Obs: Estou usando o XAMPP

Como resolve?

Acesse o arquivo php.ini
xxxxxx\php\php.ini
descomente
;extension=php_curl.dll
tira o ponto e vírcula
extension=php_curl.dll
Reinicia a máquina.

Voilà!

Ask me nicely and maybe I'll tell you... - Game Of thrones

And what's your story, bastard?

 

Problemas com acentuação (a revanche)


Veja bem,

O conteúdo que vem do banco do MySql estava vindo perfeito. Entretanto os labels, das páginas PHP estava aparecendo com problemas.

Exemplo:

Arboriza��o *

Como resolvi:

$label_arborizacao = utf8_encode("Arborização");
echo $label_arborizacao;

Resultado

Arborização.

Voilà!

Problemas com acentuação


Veja bem,

depois de importar centenas de milhares de linhas para o meu banco MySql, descobri que a acentuação estava toda equivocada.

ã aparecia como este sinal |-

Como resolvi:

Estou usando o MySql.exe. Uso o prompt do DOS. A performance é melhor.

MySql.exe -u root -p
<b>&gt; charset Latin1</b>
source C:\xxx\xxx\xxx\arquivo.sql

Voilà!

Apesar do collation das tabelas estar
ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci

ao mudar o charset antes da importação, os acentos da nosso idioma não são afetados.

And that's it.

sábado, 26 de maio de 2012

Substituição de caracteres de arquivos via DOS


Achei uma bat para fazer replace de caracteres em arquivos muito grandes
O nome da bat é : BatchSubstitute.bat

Estou testando com um arquivo de 50 MB.


Visite : http://www.dostips.com/?t=batch.findandreplace 

Description:This batch allows string substitution in a text file. It parses each line of a text file for a particular string and replaces it with another string.
I.e. To replace all occurrences of "Yellow Submarine" in "color.txt" with "uboot" and put the output on the screen run:
BatchSubstitute.bat "Yellow Submarine" uboot color.txt
Or
type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot

Optionally pipe the output into a new file, i.e.
BatchSubstitute.bat "Yellow Submarine" uboot color.txt>newfile.txt
Or
type color.txt|BatchSubstitute.bat "Yellow Submarine" uboot>newfile.txt
Note: Due to the nature of the FOR command and string substitution, the following known restrictions apply:
  • Lines starting with "]" character will end up empty
  • OldStr must not start with "*"
  • Lines must not contain any of the following characters within a quoted string: "&<>|^"


echo off
REM -- Prepare the Command Processor --
SETLOCAL ENABLEEXTENSIONS
SETLOCAL DISABLEDELAYEDEXPANSION

::BatchSubstitude - parses a File line by line and replaces a substring"
::syntax: BatchSubstitude.bat OldStr NewStr File
::          OldStr [in] - string to be replaced
::          NewStr [in] - string to replace with
::          File   [in] - file to be parsed
:$changed 20100115
:$source http://www.dostips.com
if "%~1"=="" findstr "^::" "%~f0"&GOTO:EOF
for /f "tokens=1,* delims=]" %%A in ('"type %3|find /n /v """') do (
    set "line=%%B"
    if defined line (
        call set "line=echo.%%line:%~1=%~2%%"
        for /f "delims=" %%X in ('"echo."%%line%%""') do %%~X
    ) ELSE echo.
)

Viagem aos limites do universo

Veja bem,
um video excelente!

sexta-feira, 25 de maio de 2012

MySQL - Executar arquivos gigantes

Veja bem,
Estou subindo a base de CEP dos correios para o meu MYSQL.
Se você quer fazer tem um SQL de 50 MB ou mais, que é o meu caso,
utilize o MySQL.exe e faça isso via DOS.

No prompt digite

source [caminho para o arquivo]

pronto!

Assim é bem mais prático e não trava a sua máquina (fica apenas um pouco mais lenta que o normal até acabar a execução de todo o SQL).

MySQL - ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'db'

Veja bem,
Estava eu tentando connectar no MySQL via bin\MySQL.exe e recebia esta mensagem sem parar
Access denied for user ''@'localhost' to database 'db'
Isso acontece porque você não pode chamar o executável direto. Não seja uma anta como eu que demorou um tempão para descobrir que precisa passar um usuário e uma senha:
1 - Vá no prompt do DOS cmd
2 - Digite MySQL.exe -u root -p [digite aqui a password]
Se a sua password está vazia que nem a minha vai aparecer uma outra linha
password:
Apenas dê enter e pronto.
Tudo funcionará como mágica.


terça-feira, 15 de maio de 2012

segunda-feira, 14 de maio de 2012

Vampire Hunter D: Bloodlust

Excelente animação. É um pouco parecido com mangá, mas é bem menos histriônico.


Vale a pena.

domingo, 13 de maio de 2012

Only exceptional people

Only exceptional humans tend to become aware of the Matrix, who have "a rare degree of intuition, sensitivity, and a questioning nature", all qualities which are used to identify inconsistencies in the Matrix.

quarta-feira, 9 de maio de 2012

NERDS NÃO SÃO GEEKS

Veja bem, nerd não é geek.
Geek são aquelas pessoas que estão a procura da mais nova novidade do mercado de xbox, playstation, redes sociais, mobiles, IPHONES, IPADS e afins. Os nerds, são aqueles que fazem as aplicações que são instaladas nesses hardwares.

Ou seja, os nerds horas, dias, noites, meses para criar as novidades,  e os geeks simplesmente as consomem assim que elas são lançadas.

PS: Não, o fato do seu filho(a) de quatro anos saber operar o celular não faz dele um gênio. Quando ele estiver construindo Apps para estes celulares aí talvez você possa desconfiar da genialidade dele(a). OK?

domingo, 6 de maio de 2012

Entenda como a MATRIX funciona (ou pelo menos comece a entender)


yii - Funcionou

Consegui instalar e fazer funcionar o yii.

yii - Problemas na hora de gerar o test drive.


C:\>C:\xampp\htdocs\yii\framework\yiic webapp C:\xampp\htdocs\testdrive
'"php.exe"' is not recognized as an internal or external command,
operable program or batch file.

http://www.yiiframework.com

Solução

Estou utilizando windows como S.O.
Desta forma, basta alterar o framework\yiic.bat

O meu yiic. bat ficou assim


cd c:\xampp\php
@echo off

rem -------------------------------------------------------------
rem  Yii command line script for Windows.
rem
rem  This is the bootstrap script for running yiic on Windows.
rem
rem  @author Qiang Xue <qiang.xue@gmail.com>
rem  @link http://www.yiiframework.com/
rem  @copyright Copyright &copy; 2008 Yii Software LLC
rem  @license http://www.yiiframework.com/license/
rem  @version $Id: yiic.bat 2485 2010-09-19 17:07:11Z qiang.xue $
rem -------------------------------------------------------------

@setlocal

set YII_PATH=%~dp0

if "%PHP_COMMAND%" == "" set PHP_COMMAND=php.exe

"%PHP_COMMAND%" "%YII_PATH%yiic" %*

@endlocal

----------------------------------------------------------------------------------------------------

Pequena explicação

cd c:\xampp\php -> é caminho onde está o php

Rádios francesas

http://www.listenlive.eu/france.html

Radio que ouço : France Info.

Hoje acontece a decisão presidencial na França.

Minha preferência : Je n'ai pas formé une opinion.
Acabei de ler o livro
FAÇA UM SITE
ORIENTADO POR PROJETO
PHP 5.2
MYSQL 5.0
COMÉRCIO ELETRÔNICO
- CARLOS A. J. OLIVERO -
31 CAPÍTULOS
Vários laboratórios.
Depois de finalizar todos os laboratórios você terá um site de comércio eletrônico quase perfeito.
Existem alguns bugs muito simples de serem corrigods.
Tempo para finalizar o livro - 2 semanas.
Número de páginas: 400