Português Português English English
crushfetishtube
japanese porn tube
enema u tubes
gay xtube
tube8.com
re tube ps
rede tube
sexs tube
kick boxing xtube
pornotube.com
tube xxx
free sextube
jizztube
tube8
bizarre tube porn
freedom tube
japanesetube
beastube
xxx tube
tubexxx
horse sex tube
german porn tube
free web tube porn
uporntube
pain tube
x.tube.com
xtube big brothers
yu tube
tube xxx
hardsextube
tubegals.com
red tube com
psp sexy tubes
poh tube
foot fetish tube
the tube
vacuum tubes
redtube competition digg
test tube
tuberose essential oil
lube yor tube
granny porn tube
tou tube
nudist tube
zoo porn tube
xtube rumen
rawtube
porntube
xnxx.com
ube 8
beach xtube
hq tube.com
dudetube
pussy tube
rredtube
utube videos
www.tube8.com
hot sexy tube.com
xtube nudist
poohtube
porno tube xxx
one sex tube
r tube
tiavastube
8tube
black porn tubes
jeans pissing xtube
download redtube videos
studded tubes
sex tube si
utube porn sites
porn tube8
mammothtube
redporntube
redtube,com
sex porn tube
bangtubecom
fetishtube
celeb boob tube
rude tube
reed tube
maturetube.com
zoo animal sex tube
beastiality tube
tube8com
z porntube
xtube video
porn tube
www.nude tube.com
eskimotube
twink tube
sextube videos
free extreme pornotube
nudetube
rdtube
xtubecom
rude
tuberculosis bacterium
gexo xtube
beasttube zoo369
tit tube
iyottube
dancing xtube
tube teens
bondage tube
solar bubble tube
zootubecom
blue tube
free psp tubes adult
gaytube.com
tube videos
amateur asian creampies red tube
homemoviestube.com
animaal sex tube
4tube
zootube porn
yoytube
crocotube
slut tube
bbw porntube
nude tube
bdsm tube
xtube football
tube365 com
inner tubes
sex tubes
zoo tubecom
bang tube
zootube
save xtube videos
gay tube
amateur tube
sexy utube
nikki blond filetube
beast tube xxx horse
girls kissing on utube
xtube gay
tube8 videos vote
tube tops
zootube365.com
filthtube
red tube4
hotutubes
pantypissing xtube
lesbiantube
yot tube
incest porn tube
sexytubecom
free beast tube horse sex
hq.tube
peg tube perferation
shockingtube
hqtubecom
redtube
adulttube
pornotube
hardtube
tiava s tube
FKTUBE
porn utube
youporne
pinktube
download xtube videos
bootytube247
london tube map
ou tube
animals bestiality tube
zootube 365
tube sexy
free tube
gas detection tube
bestiality tube
extremetube
xxx tubes
blacktube
lubetube.com
zootube.co.uk
scat orgy tube 8
dirtytube porn
redtube eu
tree grow tube
x tube warning
erotic hot tube
dog sex tube
tube for porn
yutube glasba
tree tubes
yuo tube porno
nudetubecom
my tube
wank tubel
yuvutube
lolita undressing tube
u tube nudes
tubesexcom
tivias tube
xtube spor
sextube.com
adult u tube
animal bestiality porn tube
fucktube
panty peeing xtube
utube enema viedo
free porn tubecom
porn hub
best free porn tubes
snake tube xxx
teentube
brazzerstube.com
shushtube
shemales tube
porn tube
zoo sex tube 365
cumtube
www red tubecom
ebonytube
rapetube
mature tube
zoosex tube
xtube cumming
spankingtube
porn tube.com
porn tube sites
tubeteenscom
twink tube
tubehentai.com
zoo tube
free porn tube
redtube.com porn
rockettube.com
godtube
red tube videos
free sex porn tube
xtube bali
hentai tube
8tube porn
boobtube
xtube berlin toilette
urporntube
pornotubexxx
asian tube
famouspornstarstube.com
milf tube
anonymous redtube
porno tube beta
pronotube
porn tube
red porn tube
xtube spy college
skimtube.com

Latinoware 2009 e o futuro deste blog

I made a speech about ZendFramework called “ZendFramework como le gusta” at Latinoware 2009. I’ve tried show it in a odd and nice way. The goal was change developers’ mind to feel free about how to use it and if it’s really necessary use this. You can download the presentation file using this link:

Baixar slides do “ZendFramework como le gusta”

Now, about the future of this blog… soon it’s gonna die!! I’m gonna to twitter, because i am not so smarty and i have no time to keep it running.

Posted in Development, PHP | No comments

Zend Framework vs PEAR, class loading war

I want to show you (PHP developer) that you must to be care about class loading when using Zend Framework with PEAR. Why don’t I suggest you to use Zend Framework with PEAR in PHP applications?

Zend Framework: Zend_Loader is the system classes loader, when it doesn’t find the class, an exception is throw.

PEAR: This library have some packages that tries load some classes (SOAP for example), but if these classes don’t exists, no problem, the application must be running yet.

We saw we have a ideology problem to solve. Sometimes class loader have to throw an exception, sometimes else not. I haven’t found a easy solution for that. I’ve had to do a cut corner for PEAR classes in my class loader.

That’s all folks. Good luck!

Posted in Development, PHP | No comments

Ascending and Descending Order and Pagination with LDAP

LDAP hasn’t a good documentation. Users of wonderful database API’s may feel no good when using this technology in PHP.

I had one of these problems when I needed to paginate LDAP entries. The ldap_sort function sorts in ascending order only. Result: I had to do pagination and ordering in two direction using ldap_count_entries, ldap_sort, ldap_first_entry, ldap_next_entry, ldap_get_attributes, array_reverse and a bit of voodoo :-P . The result is in a post left in the ldap_search documentation.

see the solution here

Posted in Development, PHP | No comments

Projects at Google Code

Hello all. Usually I post releases, documentation and everything related of some my libraries in this blog.

I opted to create some projects at GoogleCode because I don’t want to post about it here. I think this will be better for all of us.

I announce too that the WSDLDocument 0.2 was relasead at http://code.google.com/p/wsdldocument. There is a wiki with changelog and usage tips.

The BackTrace library don’t have news, but you can see it at http://code.google.com/p/backtrace.

Posted in Development, PHP | No comments

WSDL + PHP = WSDLDocument

This post was made to release the WSDLDocument, a WSDL generator in PHP to webservices.

The way how some subjects are saying about TI hides the expert developer that exists inside a lot of professionals from our area. One of these subjects is webservices. It’s easy to do a client in PHP. But to do a server it’s necessary more work because the WSDL generation. Of course there are others things to look at during the development with webservices.

WSDLDocument

Why is to make WSDL in PHP difficult? A variable in PHP change its type during the script running. The webservices needs you declare the returns’ and arguments’ type.

The goal is look out it to generate the WSDL. To do this isn’t easy, but this isn’t as hard as find mustache on Elephant. So dear, the WSDL generation may be made with two steps:

  1. Find out the type of the parameters and returns of the services;
  2. Generate the XML.

The developer who implemented each service must to describe any where the types information. No more magic, ok? We’re not mage, we’re TI professionals. A good place to put it is the method documentation. The notations help us to solve this problem and keep our code well documented. With the types information we can generate the WSDL. The WSDL generation must to follow W3C stardards.

I release today the WSDLDocument!

This library isn’t a new thing. I did it - only - to improve my knowledges and to understand the WSDL structure. Some another libraries:

As someone may see the WSDLDocument extends DOMDocument. You create a instance of this and… go planet! You have a XML in your hand. You may - for example - link a XSLT file to show a bit beautiful on the browser. I didn’t want to be intrusive and oblige you change your framework. This have to be saw as a library to be put inside your application.

Above a sample how to use this library.

<?php

// generating the wsdl
$class "MyWebserviceClass";
$url "http://mydomain.com/?class=" $class;
$wsdl = new WSDLDocument$class$url );

// showing the wsdl
echo $wsdl->saveXml();

<?php

class MyWebserviceClass
{
    
    
/**
     * Transfering complex type.
     *
     * @param Person
     * @return integer
     */
    
public function anyMethodPerson $type )
    {
        
// ...
        
return 100;
    }
    
    
/**
     * Transfering array of complex type.
     *
     * @param integer
     * @return Person[]
     */
    
public function another$quantity )
    {
        
$list = array();
        for ( 
$i 0$i $quantity$i++ )
        {
            
array_push$list, new Person() );
        }
        return 
$list;
    }
    
}

class 
Person
{
    
    
/**
     *
     * @var string
     */
    
public $name "";
    
    
/**
     *
     * @var integer
     */
    
public $children "";
    
}

I will try keep this library updated. I’m busiest this time, because this I don’t know what it’ll happen.

download the WSDLDocument here

Posted in Development, PHP | 8 Comments

Patterns para elementos visuais

Você precisou alguma vez justificar para seu cliente o motivo pelo qual um menu gigantesco ficaria ruim em sua aplicação?

Hélio Miranda, amigo meu, me mostrou o Interaction Design Pattern Library. É um repositório com vários padrões de elementos de interface muito interessante. O site organiza os padrões em categorias. Visualizei várias coisas boas.

Uma delas é a padronização de nomes. Não precisamos mais nos referir ao Parts Selector  como “pra-lá pra-cá” e ter que explicar que diabos é isso. O padrão está lá, e documentado.

Outra coisa coisa é a visão orientada a solução de problemas. Todo bom arquiteto (informação/interface/…) escolhe (ou faz) um pattern para a resolução de problemas. O site indica qual problema está sendo resolvido em cada um dos patterns.

Usem a abusem. See you soon!

Posted in Development | No comments

A morte do Smarty

Em uma lista de discussão Hasin Hayder divulgou um post de seu blog (Foi se o tempo do Smarty), nele ele explica o motivo da não necessidade de se utilizar Smarty ou qualquer outra engine de template similar.

Hasin, basicamente, justifica sua teoria com uma pergunta, “Por que?”. Responda você as seguintes perguntas:

  • Por que minha equipe deve gastar tempo em aprender uma nova linguagem?
  • Por que devo utilizar uma nova linguagem que faz tudo que o PHP faz e ainda é mais lenta?
  • Por que não posso escolher/melhorar uma arquitetura para o meu projeto que implemente MVC, ao invés de forçar isso com bibliotecas isoladas em minha aplicação?

Alguns podem falar “mas o Smarty faz filtro e um monte de mágicas pra mim”. Hoje é possível manipular frameworks para que nos auxiliem nessas tarefas e em diversas outras. E o melhor, tudo em PHP. Sem precisar gastar tempo aprendendo outra linguagem. Zend_View, por exemplo, adota a idéia de helpers, que nada mais é que disponibilizar métodos para a camada de visualização. Nos helpers você pode aplicar o filtro ou qualquer outra coisa que quiser!

Na minha opnião arquitetura da aplicação é mais importante que as bibliotecas que ela utiliza. Utilizar uma biblioteca não significa que sua aplicação seja uma maravilha. Mas sem escapar muito do assunto, acho que Smarty morreu mesmo quando se iniciou o boom de frameworks para PHP como o Cake, PHP2Go, ZendFramework, CodeIgniter, Prado e tantos outros.

Posted in Development, PHP | 2 Comments

Alternativa para anexo em SOAP

Para quem tem medo, acha trabalhoso demais implementar o SOAP com os padrões W3C ou não tem uma biblioteca poderosa que faça a tarefa de anexar arquivo binário em seu servidor ou cliente SOAP, um sujeito achou uma solução simplificada pra coisa.

A idéia é transformar o arquivo binário em texto no cliente para que possa depois, no servidor, ser transformado em binário novamente. A codificação proposta é a base64. O conteúdo do parâmetro é passado normalmente para o servidor.

Quem já precisou fazer anexo em e-mails na mão isso não foi surpresa, esta é a codificação utilizada para tal. Se estiver curioso abra seu leitor de e-mail, escolha uma mensagem que contenha anexo e veja o texto original, no final do arquivo está lá o seu anexo em base64.

Original http://blog.phpdeveloper.org/?p=88

Posted in Development | No comments

how to: fazer hello world em PHP-CLI

Estudando um pouco de PHP - pra variar - acabei conhecendo mais a fundo uma biblioteca muito legal do Zend Framework (ZF), é o Zend_Console_Getopt. Neste post vou fazer um passo-a-passo para quem quiser saber como fazer um script com interface via linha de comando (CLI) utilizando essa biblioteca.

Pra entender esse post você precisa saber programar (em qualquer linguagem que use o paradigma imperativo) e o que é CLI. Quem é da computação, com os links indicados, consegue prosseguir em poucos minutos de leitura.

Primeiro precisamos saber o que essa biblioteca faz e no que ela irá nos ajudar. Zend_Console_Getopt é uma classe que auxilia aplicações com interface linha de comando a fazerem o parser dos parâmetros. Imagino eu que essa atividade é a mais difícil pra quem está iniciando no mundo CLI. Logo essa biblioteca vai tornar as coisas mais fáceis.

Precisamos também definir o que nossa aplicação vai fazer. Eu sugiro que ele imprima um “hello world”, e como não tem ninguém pra contrariar é isso que ele vai fazer e pronto! :-) .

Mas (…) ele não exibirá um simples “alô”. Nosso programa devera mostrar um alô em três línguas: português, espanhol e inglês. Isso deverá ser determinado pelo usuário com o parâmetro language, exemplo de uso: “–language=pt” ou “-l es”.

Outra opção que nossa aplicação vai ter é o famoso “verbose”. Passando esse parâmetro (”-v” ou “–verbose”) o nosso programa vai imprimir o que está acontecendo.

Vamos ao trabalho!

  • instale um linux qualquer em sua máquina com php5-cgi (é CGI e não módulo do apache!);
  • crie um diretório da aplicação chamado “sample” em qualquer lugar que você tenha permissão de escrita;
  • crie um arquivo dento do diretório criado acima chamado “hello_world”;
  • dê permissão de execução para o arquivo criado no passo anterior, use “chmod 753 hello_cli” ;-) ;
  • baixe o ZendFramework e copie o diretório “library” (somente esse diretório!) no mesmo lugar que você colocou o arquivo “hello_cli” (deve ficar assim: sample/libray/Zend/*);
  • edite o arquivo “hello_cli” com o código que será apresentado.

O código do arquivo “hello_cli” está “jogado” logo abaixo, porém irei detalhá-lo depois.

Nota: na primeira linha é necessário indicar que o php é quem irá interpretar nosso código. O caminho do interpretador PHP no meu computador é “/usr/bin/php5-cgi”, caso em seu sistema operacional seja diferente altere essa linha (use o comando locate no terminal caso não lembre aonde está).

#!/usr/bin/php5-cgi -q
<?php

############### CONFIGURATION

# Error
# programmers wrong never! rigth?
ini_set"error_reporting"E_ALL );
ini_set"display_errors");
ini_set"display_startup_errors");
ini_set"html_errors");

# Constants
define"DIR_ROOT"realpathdirname__FILE__ ) ) . "/" );
define"DIR_LIBRARY"DIR_ROOT "library/" );

# alter include_path
ini_set"include_path"ini_get"include_path" ) . PATH_SEPARATOR DIR_LIBRARY );

# Zend Framework
# configures autoload to call zend class loader
require "Zend/Loader.php";
spl_autoload_register( array( "Zend_Loader""autoload" ) );

# Functions
function output$sText )
{
    echo 
$sText "\n";
}

############### ARGUMENTS

# configure arguments and options
# see http://framework.zend.com/manual/en/zend.console.getopt.rules.html
$_rules = array(
    
"verbose|v" => "",
    
"language|l=s" => ""
);
$_argument = new Zend_Console_Getopt$_rules );

# fetchs arguments
try
{
    
$verbose = isset( $_argument->verbose );
    
$language $_argument->language;
}
catch ( 
Zend_Console_Getopt_Exception $_exception )
{
    
output$_exception->getUsageMessage() );
    exit();
}

############### APPLICATION

# finally, the application!
# let's go!
if ( $verbose )
{
    
output"starting..." );
}
switch ( 
strtolower$language ) )
{
    case 
"pt":
        
output"Alô mundo CLI!" );
        break;
    case 
"es":
        
output"¡Hola mundo CLI!" );
        break;
    case 
"en":
    default:
        
output"Hello CLI world!" );
        break;
}
if ( 
$verbose )
{
    
output"ending, bye..." );
}

Perceba que nosso código possui, na ordem, três partes: configuração; tratamento da entrada; regra de negócio. Inicialmente configuramos a exibição de erro, o ZendFramework e criamos uma funçãozinha de output. A configuração do ZF exige algumas tarefas específicas que não vou abordar aqui, mas fica pra outro post, ok?

A segunda parte é a mais importante, nela determinamos quais os parâmetros possíveis para nossa aplicação, capturamos os dados e tratamos os erros de entrada. A variável “$_rules” possui os parâmetros que a classe da Zend deverá tratar, não vou aqui detalhar como funciona, mas olhando já da pra se ter uma idéia, mas quem quiser saber mais acesse o link de configuração de parâmetros. No bloco “try” pegamos os parâmetros que foram passados à nossa aplicação, veja que basta acessar os parâmetros como se fossem atributos da classe Zend_Console_Getopt. Ao mesmo tempo que pegamos as entradas o tratamento de erro é feito com a captura de possíveis exceções que são soltas pela biblioteca Zend.

A última parte é tranquila, com tudo feito e os parâmetros carregados nos resta aplicar as regras que definimos anteriormente e acenar para o novo mundo que nos abre. Veja alguns exemplos de uso da nossa apliação.

renan@renan:~/sample$ ./hello_cli -l pt
Alô mundo CLI!
renan@renan:~/sample$ ./hello_cli --language=es
¡Hola mundo CLI!
renan@renan:~/sample$ ./hello_cli
Hello CLI world!
renan@renan:~/sample$ ./hello_cli -vl en
starting...
Hello CLI world!
ending, bye
renan@renan:~/sample$ ./hello_cli -vl pt
starting...
Alô mundo CLI!
ending, bye

Abaixo o download do resultado final pra quem estiver com preguiça de seguir os passos indicados ou teve problemas na criação da aplicação.

Hello CLI World!

Posted in Development, PHP | 1 Comment

PHPSource 0.0.1

Alguns posts meus aqui vão precisar que eu mostre alguns código fontes em PHP. Procurei um pouco e não achei nenhum simples. Procurei insistentemente durante 60 segundos (…) ok, não é muito tempo, mas o que eu queria era muito simples, e como não achei decidi fazer o meu próprio.

A intenção foi ser simples. Você precisa, antes, fazer o upload de um arquivo PHP que deseje exibir em seu blog WordPress. O primeiro “parâmetro” é a altura do bloco de código. O segundo é o caminho do arquivo relativo ao diretório “wp-content/uploads/”. Os parâmetros são separados por “:”. É preciso colocar esses parâmetros como no exemplo abaixo:

[phpsource:250:2001/02/exemplo.php]

O plugin é um filtro que captura o que estiver escrito parecido com o que está aí em cima e exibe o arquivo acionando a função highlight_file.

Baixe o plugin PHPSource 0.0.1

Como no mundo nada se cria, tudo se transforma. Créditos ao Élcio Ferreira e seu plugin Dirty PHP Include, que me permitiu fazer esse aqui.

Posted in Development, Linux, PHP | No comments
BrasilMato GrossoRondôniaDistrito Federal