GIF Skyrama BR 01 300x250
Oferta Nacional - 234x60

Cálculo das probabilidades

Todas as vezes que se estudam fenômeos de observação, cumpre-se distinguir o próprio fenômeno e o modelo matemático que melhor o explique.

Os fenômenos estudados pela Estatística são fenômenos cujos resultados, mesmo em condições normais de experimentação variam de uma observação para outra.

Para a explicação desses fenômenos – fenômenos aleatórios – adota-se um modelo matemático probabilístico. Nesse caso, o modelo utilizado será o CÁLCULO DAS PROBABILIDADES.

3.1 – Experimento aleatório

Todo experimento que, repetido em condições idênticas, pode apresentar diferente resultados, recebe o nome de experimento aleatório. A variabilidade de resultados deve-se ao acaso.

A fim de se entender melhor a caracterização desses experimentos, convém observar o que há de comum nos seguntes experimentos:

E1: Retirar uma carta de um baralho de 52 cartas e observar o seu naipe.
E2: Jogar uma moeda 10 vezes e observar o número de coroas obtidas.
E3: Retirar com ou sem reposição, bolas de uma urna que contém 5 bolas brancas e seis pretas.
E4: Jogar um dado e observar o número mostrado na face de cima.
E5: Contar o número de peças defeituosas da produção diária da máquina A.

A análise desses experimentos revela:

a) Cada experimento poderá ser repetido indefinidamente sob as mesmas condições.
b) Não se conhece um particular valor do evento “a priori”, porém, pode-se descrever todos os possíveis resultados – as possibilidades.
c) Quando um experimento for repetido um grande número de vezes surgirá uma regularidade, isto é, haverá uma estabilidade da fração f = r/n (frequência relativa) onde n é o numero de repetições, e r o número de sucessos obtidos.

3.2 – Espaço Amostral

Para cada experimento aleatório E, define-se espaço amostral o conjunto de todos os resultados possíveis desse experimento.

Consideremos um experimento aleatório. O conjunto de todos os possíveis resultados desse experimento é chamado espaço amostral e indicado por Ω (letra grega Ômega).

Indicaremos o número de elementos de uma espaço amostral por n(Ω).

Exemplo 1
a) E = Jogar um dado e observar o número mostrado na face de cima: Ω = {1,2,3,4,5,6}
b) E = Jogar duas moedas e observar os resultados: Ω = {(C,C), (C,K), (K,C), (K,K)} onde C = cara e K = coroa.

Exemplo 2
Lançamos uma moeda honesta e observamos a face voltada para cima: Ω = {K,C}, onde C = cara e K = coroa. => n(Ω) = 2.

Exemplo 3
Uma urna contém 5 bolas vermelhas e 4 brancas. Duas bolas são retiradas, ao acaso, sucessivamente e sem reposição. Observamos a sequência das cores das bolsa sorteadas.
O espaço amostral é dado por Ω = {(V,V), (V,B), (B,V), (B,B)} => n(Ω) = 4. Cada par é um dos postos do espaço amostral Ω.

3.3 – Evento

Evento é um conjunto de resultados do experimento, em termos de conjuntos, é um subconjunto de Ω. Em particular, Ω e Ø (conjunto vazio) são eventos. Ω é dito o evento certo e Ø o evento impossível.

Usando as operações em conjunto, podemos formar novos eventos:

A ∪ B – é o evento que ocorre se A ocorre ou B ocorre ou ambos ocorrem.
A ∩ B – é o evento que ocorre se A e B ocorrem.
Ā – é o evento que ocorre se A não ocorre.

Exemplo 1
Seja o experimento E: jogar três moedas e observar os resultados: Ω = {(c,c,c), (c,c,k), (c,k,c), (k,c,c), (k,k,k), (k,k,c), (k,c,k), (c,k,k)}
Sejam os eventos

E1: ocorrer pelo menos duas caras. Então, E1 = {(c,c,c),(c,c,k), (c,k,c), (k,c,c)}
E2: lançar um dado e observar o número de cima. Então, E2 = Ω = {1, 2, 3, 4, 5, 6} é um evento certo.
E3: ocorrência de número maior que 8.
E3 = Ø é um evento impossível.
E4: ocorrer múltiplo de 2. Então E4 = {2, 4, 6}; observe que E4 ⊂ Ω.
E5: ocorrer número ímpar. Então E5 = {1, 3, 5}; observe que E5 ⊂ Ω.

3.4 – Probabilidade de um Evento

Agora podemos quantificar o grau de confiança de qualquer evento.
Atribuímos a cada evento um número obtido da soma das imagens de cada um de seus elementos na relação de freqüência.

Exemplo
O experimento consiste em extrair uma bola do interior de uma caixa e observar sua cor. Há um total de nove bolas na caixa: duas brancas, três vermelhas e quatro pretas. Qual será a probabilidade de tirar uma bola que não seja preta?

O espaço amostral é: Ω = {vermelha, branca, preta} ou {V, B, P}
O evento “tirar uma bola de cor diferente do preto”, A = {B,V}, consta de dois elementos.

Temos as seguintes relações de frequência, ou probabilidade, para cada cor:
(B) branca = 2/9
(V) vermelha = 3/9
(P) preta = 4/9

Então a probabilidade do evento A, indicado por p(A) é:

p(A) = p(B) + p(V) = 2/9 + 3/9 = 5/9

Em alguns experimentos aleatórios, cada um dos resultados (eventos elementares) tem a mesma freqüência relativa esperada.
Este é o caso de lançar uma moeda ou um dado e comprovar o resultado. Dizemos, então que o espaço amostral é equiprovável, e que sua probabilidade é uniforme.

Posts Relacionados:

  • Nenhum
Categories: Ciência da computação Tags:

Intalando MySQL Workbench no Debian 6 Squeeze

Eu precisei instalar o MySQL Workbech no Debian, baixando diretamente do site do MySQL Gui Tools, porém estava danco um monte de erros de dependências.

Pesquisei por vários tutoriais na net para ver se encontrava uma solução, pois estava dando erro específico com dois pacotes que não consegui instalar: libatkmm-1.6-1 e libgdk-pixbuf2.0-0.

Desisti então de procurar como instalar os pacotes, pois estava tendo erros no ./configure e make install.

Encontrei este tutorial: http://www.robo47.net/blog/193-Installing-Mysql-Workbench-5.2.11-from-source-on-Debian-6.0-Squeeze, e o trasncrevo traduzido aqui.

Os passos são simples:

Faça o Download dos arquivos fontes ~ 14 MB
extraia
instale ~ 30mb dos pacotes via apt-get ou aptitude
rode autogen
make && make install
inicie o workbench

Talves demore um pouco, num notebook mais lento (p4 mobile 1,73 ghz) o comando autogen demorou 10 minutos, o comando make levou cerca de 60 minutes e o comando make install mais 4 minutos, mas se você mesmo já compilou o mysql-server, você sabe… a instalação do mysql leva um bom tempo :)

Segue em detalhes, bastando copiar e colar:

$ wget ftp://ftp.gwdg.de/pub/misc/mysql/Downloads/MySQLGUITools/mysql-workbench-oss-5.2.11.tar.gz
$ tar -xzf mysql-workbench-oss-5.2.11.tar.gz
$ cd mysql-workbench-oss-5.2.11
$ apt-get install libzip-dev libzip1 libxml2-dev libsigc++-2.0-dev libcairomm-1.0-dev libglibmm-2.4-dev libpangomm-1.4-dev libglade2-dev libaudiofile-dev libavahi-client-dev libavahi-common-dev libavahi-glib-dev libbonobo2-dev libdbus-1-dev libesd0-dev libgconf2-dev libgcrypt11-dev libgnomevfs2-dev libgnutls-dev libgpg-error-dev libpopt-dev libselinux1-dev libsepol1-dev libtasn1-3-dev libsqlite3-dev libboost1.40-dev  libmysqlclient-dev libmysqld-dev uuid-dev liblua5.1-0-dev libncurses5-dev libreadline-dev libreadline6-dev libfribidi-dev libgl1-mesa-dev libglc-dev libglc0 libglu1-mesa-dev mesa-common-dev libpcre3-dev libpcrecpp0 python-paramiko
$ ./autogen.sh --prefix=/usr/bin
$ make
$ make install
$ /usr/bin/mysql-workbench

Caso de erro na instalação, siga as dicas no blog http://www.robo47.net/blog/193-Installing-Mysql-Workbench-5.2.11-from-source-on-Debian-6.0-Squeeze

Posts Relacionados:

  • Nenhum
Categories: geral Tags:

Como criar string alfanumérica aleatória no MySQL

Para criar uma string alfanumérica aleatória no MySQL basta usar

select left(upper( convert( md5( rand() ) using utf8 )),8);

Isso gera uma string aleatória de 8 caracteres, alfanumérica, em upper case (todas as letras em maiúsculo).

Para retirar a opção de maiúsculo, basta retirar a função upper(); e no casso de quere tudo em minúsculo, basta substituí-la pela função lower().

Para aumentar ou diminuir a quantidade de caracteres, basta alterar o número 8 na consulta para o número desejado, lembrando que por se tratar de um hash md5, a string é limitada a 32 caracteres.

Caso você queira usar um sufixo ou um prefixo, basta usar a função concat(), dessa forma:

-- Prefixo
select concat('MG1',left(upper( convert( md5( rand() ) using utf8 )),5));

-- Sufixo
concat(left(upper( convert( md5( rand() ) using utf8 )),5)),'MG1');

Para acrescentar várias linhas com códigos aleatórios, você pode criar uma função que faça isso, usando um for ou while (veja como criar funções no MySQL aqui).

Posts Relacionados:

  • Nenhum

Plugin heatmap para WordPress

12, fevereiro, 2012 Sem comentários

Encontrei hoje um plugin de heatmap para wodpress excelente.

Saiba onde os visitantes do seu sit mas clicam, e otimize a disposição dos elementos que você quer que seus usuários cliquem, use-o para melhorar a disposição de seus anúncios, use para melhorias do heatmap adsense.

Fácil de instalar e de usar.

O plugin está disponível no repositório do WordPress http://wordpress.org/extend/plugins/wp-super-heatmap/

Veja um tutorial do Google para otimização dos seus anúncios adsense: http://support.google.com/adsense/bin/answer.py?hl=en&answer=1354747

English

heat map is a graphical representation of data where the individual values contained in a matrix are represented as colors. Fractal maps and tree maps both often use a similar system of color-coding to represent the values taken by a variable in a hierarchy. The term is also used to mean its thematic application as a choropleth map.

Heat maps originated in 2D displays of the values in a data matrix. Larger values were represented by small dark gray or black squares (pixels) and smaller values by lighter squares. Sneath (1957) displayed the results of a cluster analysis by permuting the rows and the columns of a matrix to place similar values near each other according to the clustering. Jacques Bertin used a similar representation to display data that conformed to a Guttman scale. The idea for joining cluster trees to the rows and columns of the data matrix originated with Robert Ling in 1973. Ling used overstruck printer characters to represent different shades of gray, one character-width per pixel. Leland Wilkinson developed the first computer program in 1994 (SYSTAT) to produce cluster heat maps with high-resolution color graphics. The Eisen et al. display shown in the figure is a replication of the earlier SYSTAT design. (Text from Wikipédia)

Posts Relacionados:

Como adicionar um heatmap grátis no seu site

10, fevereiro, 2012 Sem comentários

Se o seu site usa php, rodando em servidor apache no linux, com banco de dados MySQL, você poderá ter um HeatMap Gratuito no seu site.

Baixe o ClickHeat, do Labs Media (http://www.labsmedia.com/clickheat/index.html)

Instale baixe o zip e extraia diretamente no diretório raiz (exemplo: /var/www/seusite/public_html). Ele já possui a pasta clickheat.

Acesse http://www.seusite.com/clickheat/index.php. Este é o arquivo de configuração.

Se der erro de permissão de escrita, altere as permissões da pasta clickheat.

No meu caso, deu problema da bliblioteca GD, que não está instalada (imagecreatetruecolor() não disponível, não posso criar imagens (com boa qualidade), cheque se o GD está instalado).

Então vamos instalar.

$ sudo apt-get install php5-gd

$ sudo invoke-rc.d apache2 restart

Para mais detalhes, acesse http://blog.idealmind.com.br/php/como-instalar-extensoes-no-php/

Agora, verifique se todas as dependências estão ok, e avance. Na próxima tela, você terá a configuração. eu deixei tudo como padrão, e somente inseri dados de admin, para cadastrar um usuário e uma senha.

Você deverá inserir um código javascript em cada página a ser trackeada. O script é no formado


<script type="text/javascript" src="http://mi.local/clickheat/js/clickheat.js"></script><a href="http://www.labsmedia.com/clickheat/index.html" title="ClickHeat: clicks heatmap"><img src="http://mi.local/clickheat/images/logo.png" width="80" height="15" border="0" alt="ClickHeat : track clicks" /></a><script type="text/javascript"><!--
clickHeatSite = 'Planos.e.Pre.os';clickHeatGroup = 'pagamento';clickHeatServer = 'http://mi.local/clickheat/click.php';initClickHeat(); //-->
</script>

E agora você terá um heatmap de cada página que você inserir o código Javascript. Enjoy!

Posts Relacionados:

Como instalar extensões no PHP

10, fevereiro, 2012 Sem comentários

Se você precisa instalar uma ou mais extensão do PHP, caso o mesmo já esteja instalado em seu sistema linux, basta usar uns simples comandos.

Exemplo com a extensão GD:

$sudo apt-get install php5-gd

$sudo invoke-rc.d apache2 restart

O mesmo processo funciona para a instalação de outras extensões do PHP:

apt-get install php5-pear
pear install packagename

 

Quando você instala a extensão do Pear, como acima, você podererá acrescentar diversas outras extensões do Pear no PHP, usando o seguinte comando:

$ pecl install extensionname

E reiniciando o apache:

$ sudo /etc/init.d/apache2 reload

ou

$ sudo /etc/init.d/apache2 restart

Você encontra as extensões do pear documentadas em http://pear.php.net/packages.php

Posts Relacionados:

Como ler um arquivo CSV ou TXT usando Python

Continuando o artigo anterior, onde eu tive a necessidade de ler 3 arquivos em formatos de textos mas com padrões diferentes, em que precisei padronizá-los para cadastrar num banco de dados MySQL, vou mostrar como fiz para ler os arquivos CSV e TXT, e depois salvar em arquivos temporários (para manter os originais).


import csv
import re
import os

nome = raw_input("Nome do arquivo: ") # deve ser digitado o caminho do arquivo também

ifile  = open(nome, "r") # arquivo de leitura, original

ofile  = open(nome + ".tmp", "w+") # arquivo temporário, de leitura e gravação

for line in ifile:
linha = line;

#print "Substituindo '\\t\r' por ''"
pattern = re.compile(r'\t\r')
linha = pattern.sub("",linha)

#print "Substituindo ',' por '.'"
pattern = re.compile(r',')
linha = pattern.sub(".",linha)

#print "Substituindo '\t' por ','"
pattern = re.compile('\t')
linha = pattern.sub(",",linha)

#print "Padronizando as datas... \n"
pattern = re.compile(r'([0-9]{2})/([0-9]{2})/([0-9]{4}) ([0-9]{2}):([0-9]{2}):([0-9]{2})')
linha = pattern.sub(r"\3-\2-\1 \4:\5:\6",linha)

print '\n' + line + '\n' + linha + '\n'

ofile.write(linha)

ofile.close()

ifile.close()

Neste ponto, foram feitas algumas substituições utilizando expressões regulares a partir do arquivo original, e salvando num arquivo temporário com a extensão .tmp. Agora vamos abrir o arquivo temporário para leitura. No meu caso, utilizei os dados para cadastrá-los no banco MySQL, mas neste exemplo, apenas vamos imprimir o resultado na tela.


ofile  = open(nome + ".tmp", "rb")
reader = csv.reader(ofile)

rownum = 0
for row in reader:
# Salva o cabeçalho
if rownum == 0:
header = row
else:
colnum = 0
for col in row:

# imprime a linha, com o respectivo nome do campo, salvo do cabeçalho
print '%-8s: %s - %d' % (header[colnum], col, colnum)

colnum += 1

rownum += 1

ofile.close()
os.remove(nome + ".tmp")

 

 

Posts Relacionados:

Como conectar ao MySQL usando Python

Neste post vou mostrar como conectar a uma base de dados MySQL através do Python.

Eu tive essa necessidade quando precisei de converter 3 arquivos de texto diferentes, padronizá-los e cadastrar o resultado no banco de dados, afim de compará-los com outros dados no banco de dados.

Para fazer a conexão ao banco de dados é muito simples:


import MySQLdb

db = MySQLdb.connect('localhost','root','')
cursor = db.cursor()

cursor.execute('INSERT INTO tabela VALUES xxxx')

db.close()

Para consultar e trazer os valores, você pode utilizar assim:


import MySQLdb

db = MySQLdb.connect('localhost','root','')
cursor = db.cursor()

cursor.execute('SELECT * from tabela')

rs = cursor.fetchone() # traz uma linha
rs = cursor.fetchall() # traz todas as linhas
rs = cursor.dictfetchall() # traz todas as linhas e cada coluna com seu respectivo nome
print(rs[0]) # imprime o valor do campo 0 da linha correspondente

db.close()

Se você precisar instalar o módulo MySQL para Python, use

# apt-get install python-mysqldb

Até o próximo!

Posts Relacionados:

O Hobbit em quadrinhos (the hoobit)

O Hobbit - capa de revista em quadrinhosApesar deste assunto fugir do propósito deste blog, resolvi compartilhar esse link, pois o livro O Hobbit foi dos livros que mais gostei de ler. Recentemente encontrei uma versão em quadrinhos, ideal para ler em tablet.

O Hobbit

O Hobbit é um dos livros mais importantes de J. R. R. Tolkien, prelúdio a O Senhor dos Anéis. Conta a história de Bilbo Bolseiro, um Hobbit pacato e satisfeito cuja vida vira de cabeça para baixo quando ele se junta ao mago Gandalf e a treze anões em sua jornada para reaver um tesouro roubado. Esta versão em quadrinhos, cuidadosamente condensada por Charles Dixon e ilustrada por David Wenzel, tornou-se por si só um best-seller clássico.

Muitos fãs de Tolkien citam a história de “O Hobbit” como a sua favorita, mais do que a cosmologia de “Silmarilion” ou o caráter épico da Trilogia do Anel. A história, escrita para crianças, foi um grande sucesso editorial quando lançado em 1937 e se tornou um prelúdio fascinante para “Senhor dos Anéis”. O livro conta a história de Bilbo Bolseiro, um Hobbit pacato e satisfeito cuja vida vira de cabeça para baixo quando ele se junta ao mago Gandalf e a treze anões em sua jornada para reaver um tesouro roubado.

É uma viagem repleta de perigos – e no fim Bilbo encara sozinho o guardião do tesouro, o mais terrível dragão de toda a Terra-Média.

Esta versão em quadrinhos, cuidadosamente condensada por Charles Dixon e ilustrada por David Wenzel, tornou-se por si só um best-seller clássico. Um belo “aperitivo” aos fãs até o filme, com direção de Guilhermo Del Toro e previsão de lançamento em 2011.

O Hobbit Download

http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip

Gandalf tricks Bilbo into hosting a party for Thorin and his band of twelve dwarves, who sing of reclaiming the Lonely Mountain and its vast treasure from the dragon Smaug. When the music ends, Gandalf unveils a map showing a secret door into the Mountain and proposes that the dumbfounded Bilbo serve as the expedition’s “burglar”. The dwarves ridicule the idea, but Bilbo, indignant, joins despite himself.

The group travel into the wild, where Gandalf saves the company from trolls and leads them to Rivendell, where Elrond reveals more secrets from the map. Passing over the Misty Mountains, they are caught by goblins and driven deep underground. Although Gandalf rescues them, Bilbo gets separated from the others as they flee the goblins. Lost in the goblin tunnels, he stumbles across a mysterious ring and then encounters Gollum, who engages him in a game of riddles for the path out of the tunnels, or his demise. With the help of the ring, which confers invisibility, Bilbo escapes and rejoins the dwarves, improving his reputation with them. The goblins and Wargs give chase but the company are saved by eagles before resting in the house of Beorn.

The company enter the black forest of Mirkwood without Gandalf. In Mirkwood, Bilbo first saves the dwarves from giant spiders and then from the dungeons of the Wood-elves. Nearing the Lonely Mountain, the travellers are welcomed by the human inhabitants of Lake-town, who hope the dwarves will fulfil prophecies of Smaug’s demise. The expedition travel to the Mountain and find the secret door; Bilbo scouts the dragon’s lair, stealing a great cup and learning of a weakness in Smaug’s armour. The enraged dragon, deducing that Lake-town has aided the intruder, sets out to destroy the town. A noble thrush who overheard Bilbo’s report of Smaug’s vulnerability reports it to Bard, who slays the Dragon.

When the dwarves take possession of the mountain, Bilbo finds the Arkenstone, an heirloom of Thorin’s dynasty, and steals it. The Wood-elves and Lake-men besiege the Mountain and request compensation for their aid, reparations for Lake-town’s destruction, and settlement of old claims on the treasure. Thorin refuses and, having summoned his kin from the mountains of the North, reinforces his position. Bilbo tries to ransom the Arkenstone to head off a war, but Thorin is intransigent. He banishes Bilbo, and battle seems inevitable.

Gandalf reappears to warn all of an approaching army of goblins and Wargs. The dwarves, men, and elves band together, but only with the timely arrival of the eagles and Beorn do they win the climactic Battle of Five Armies. Thorin is fatally wounded and reconciles with Bilbo before he dies. Bilbo accepts only a small portion of his share of the treasure, having no want or need for more, but still returns home a very wealthy hobbit.

O Hobbit Download

http://www.easy-share.com/D19835E2E52411E09676002481FAD55A/O_Hobbit_jrr_tolkien.zip

Posts Relacionados:

  • Nenhum

Desenvolvimento web: frameworks PHP vs Ruby on Rails vs Python on Django

Com o objetivo de encontrar uma linguagem/framework de programação web, que tenha robustez, rapidez e simplicidade de desenvolvimento e manutenção, facilidade de gerenciamento de templates/design, facilidade de integração de novas funcionalidades, menor curva de aprendizagem e melhor relação custo-benefício, ampla documentação e comunidade envolvida entre outros fatores que facilitam a vida de um desenvolvedor web, fiz algumas pesquisas para comparar linguagens de programação para a web, e seus respectivos frameworks de desenvolvimento.
Escolhi as linguagens PHP, Ruby e Python para a pesquisa, devido aos seguintes fatores:
  • PHP: maior comunidade do mundo de desenvolvimento Web, minha linguagem atual
  • Ruby (on Rails): Teve um boom de muitos desenvolvedores falando que é melhor, mais limpo e mais rápido de desenvolver do  que PHP, e que migraram para o Rails. Grandes portais, como o Twitter, usam Ruby on Rails.
  • Python: Ultimamente tenho ouvido muito falar de Python para o desenvolvimento web, com muitos elogios sobre a robustez e rapidez de desenvolvimento.
Usei também o Google Insights for Search para pesquisar o interesse das pessoas, e usei um filtro para o nicho Internet -> Web Design e Desenvolvimento. Portanto, nos gráficos do Insigths, para uma melhor comparação por nicho, clique na aba ”Crescimento com relação à categoria Web design e desenvo…”.

Gráficos do Google Insights for Search

Lembre-se de clicar na aba “Crescimento com relação à categoria Web design e desenvo…”.

Interesses por PHP, Ruby e Python, usando como termso de pesquisa os frameworks yii (php), rails (ruby), django (python), cake php, zend :

http://www.google.com/insights/search/#cat=422&q=yii%2Crails%2Cdjango%2Ccake%20php%2Czend%20framework&cmpt=q

Pelas linguagens puras (PHP, Ruby, Python e Java):

Numa comparação de interesses entre PHP, Ruby, Ruby on Rails, Yii e Django, temos o seguinte gráfico:
 
É perceptível que existe uma rivalidade desigual entre PHP e Ruby on Rails. Isso porque Rails é um framework de desenvolvimento em Ruby. A comunidade Rails, dos quais muitos migraram do PHP, diz que o PHP é sujo, de difícil manutenção, enquanto o Ruby on Rails é limpo, e de rápido desenvolvimento e manutenção. Porém, o correto seria comparar Ruby on Rails com algum framework PHP. Em função disso, e por eu não possuir muita experiência com framework PHP, resolvi buscar, na opnião da comunidade PHP, qual é o melhor framework PHP. Pesquisei no google por ”best php framework“.

Conforme uma pesquisa realizada, cujo resultado está em http://www.phpframeworks.com/top-10-php-frameworks/, Yii é o mais votado como o melhor framework PHP, em resultados recentes, seguido pelo CodeIgniter e depois pelo Cake PHP. Cake PHP é um framework inspirado no Ruby on Rails.

Conforme o gráfico do Google Insights, o interesse por Django, um framework para Python, vem crescendo numa escala menor do que o Yii, porém, percebe-se que não existe um modismo como aconteceu com o Ruby on Rails, que deu um salto, e que começou a cair com o lançamento do Yii (o interesse pelo framework Zend também caiu).

Uma pesquisa de comparação entre o CodeIgniter, o Yii, o Cake PHP e o Zend foi realizada pelo HipRank: http://www.hiprank.com/cakephp-vs-codeigniter-vs-yii-vs-zend.html. Os resultados mostram que o Yii e CodeIgniner são jovens, porém muito bem cotados, seguido pelo Cake PHP, com muitos pontos positivos, enaquanto o Zend não está muito bem cotado, tendo quase 50% de pontos negativos.

Particularmente, minha experiência com Zend não foi muito boa. Achei complicado, e acredito não ser a melhor referência para comparar com o Ruby on Rails. Também não levei muito a fundo a minha experiência com o Cake PHP, mas pelo pouco que tive, foi muito melhor que com o Zend. Nunca usei o CodeIgniter nem o Yii.

Comparando Ruby on Rails com frameworks PHP

A partir dos resultados do Google Insights (http://www.google.com/insights/search/#cat=422&q=yii%2Crails%2Czend%2Ccake%20php%2Ccodeigniter&cmpt=q), comparando Yii, CodeIgniter, Rails, Zend, e Cake PHP, é possível obter as seguintes conclusões:
  • Zend é mais antigo de todos, portanto, deve possuir uma maior comunidade.
  • O interesse por Ruby on Rails começou a cair após o lançamento do CodeIgniter (meados de 2006).
  • O interesse pelo Zend começou a cair após o lançamento do Yii (meados de 2008), assim como o interesse pelo Cake PHP.
  • O interesse por CodeIgniter é o maior de todos, desde antes do lançamento do Yii.
  • A curva de interesse pelo Yii vem crescendo de forma semelhante ao do CodeIgniter, consistente e muito menor que o crescimento do interesse por Ruby on Rails (considero que a taxa de interesse do Ruby on Rails foi um boom quando não existia um bom framework PHP que pudesse ser equiparado).
A partir do post no blog do O’Reilly, um grande formador de opniões, foram apresentadas 7 razões para que o autor do post voltasse ao PHP após 2 anos de experiência com o Ruby on Rails.
Neste momento, ainda prefiro usar um framework PHP ao invés de Ruby on Rails, ficando entre os dois frameworks PHP: Yii e CodeIgniter. Falta ainda a comparação com Python on Django.
Uma nova comparação por interesse no Google Insights for Search entre Django, CodeIgniter e Yii (http://www.google.com/insights/search/#cat=422&q=yii%2Ccodeigniter%2Cdjango&cmpt=q) mostra que o interesse por Django ficou praticamente estável após o lançamento do Yii.
Como a taxa de crescimento do CodeIgniter permaneceu, e a partir das análises anteriores, concluo superficialmente que os desenvolvedores do Ruby on Rails migraram para o CodeIgniter, e os do Zend, Cake PHP e Django começaram a migrar para o Yii (para o desenvolvimento web).

Comparação entre PHP e Python

Na pesquisa, encontrei algumas comparações entre Python e PHP, como disponíveis em  http://wiki.python.org/moin/PythonVsPhphttp://tech.t9i.in/2010/07/php-vs-python-for-web-apps/. Minhas conclusões embasadas nestas comparações são:
  • Python é mais geral que PHP, podendo ser usado tando para web como para aplicações desktop
  • PHP é totalmente voltado para a web, sendo melhor de se utilizar para este propósito
  • Praticamente, para a web, tudo o que o PHP faz, o Pyton faz, e vice-versa.
  • PHP é mais fácil de se aprender do que Python, para a Web.
  • A configuração PHP é mais fácil que a do Python (assim como Ruby)
  • Python está inclinando esforços para facilitar o desenvolvimento web.

Conlusão entre Python e PHP

Para aplicações web, ainda prefiro usar o PHP. Mas acredito que o Python possa se tornar uma linguagem para o futuro da web. Apesar de não ter realizado uma pesquisa mais aprofundada, acredito que com Python é ou será possível construir funcionalidades como o Google Docs (atualmente feito em Java). Logo, vou aprender mais sobre Python, mas ainda continuarei usando PHP.

CodeIgniter vs Yii

Uma comparação realizada em http://www.phpframeworks.com/php-framework-comparison/comparion.php?id=9-19, mostra que o Yii é superior ao CodeIgniter. Pesquisas semelhantes revelam que os desenvolvedores do CodeIgniter estão testando e preferindo trabalhar com o Yii.
Avaliando as informações disponíveis nos sites do Yii (http://www.yiiframework.com/) e no site do CodeIgniter (http://codeigniter.com/), e as opiniões da comunidade de desenvolvedores, para o desenvolvimento PHP, vou apostar no Yii.
Related Posts Plugin for WordPress, Blogger...

Posts Relacionados:

  • Nenhum
SEO Powered by Platinum SEO from Techblissonline