<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Webdev com Café</title>
	<atom:link href="http://ontheweb.com.br/blog/feed" rel="self" type="application/rss+xml" />
	<link>http://ontheweb.com.br/blog</link>
	<description>Desenvolvimento web, tecnologia e insanidade</description>
	<lastBuildDate>Thu, 22 Dec 2011 11:10:54 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Como escolher um domínio</title>
		<link>http://ontheweb.com.br/blog/como-escolher-um-dominio/</link>
		<comments>http://ontheweb.com.br/blog/como-escolher-um-dominio/#comments</comments>
		<pubDate>Thu, 22 Dec 2011 11:10:54 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Domínio]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Website]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=133</guid>
		<description><![CDATA[TweetTodos sabem (deveriam saber, pelo menos) o que é um domínio e qual a sua importância para um website. Um domínio é o endereço através do qual o seu website vai ser encontrado. Com o avanço da popularidade da Internet, novos domínios são registrados diariamente e, hoje em dia é muito difícil que o domínio [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fcomo-escolher-um-dominio%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/como-escolher-um-dominio/" data-count="vertical" data-via="robyflc" data-text="Como escolher um domínio">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/como-escolher-um-dominio/"></g:plusone></span></div><p style="text-align: justify;">Todos sabem (deveriam saber, pelo menos) o que é um domínio e qual a sua importância para um website. Um domínio é o endereço através do qual o seu website vai ser encontrado.<br />
Com o avanço da popularidade da Internet, novos domínios são registrados diariamente e, hoje em dia é muito difícil que o domínio que você deseja não esteja registrado para outra pessoa.<br />
Frequentemente, ouço dos meus clientes a seguinte pergunta:<br />
O domínio .com.br que eu queria já está registrado, posso registrar um domínio .com (.net, ou qualquer outra coisa que não seja .com.br)?<br />
Pode sim, afinal, o dinheiro é seu e o livre arbítrio permite que você faça o que achar melhor da sua vida. Agora, minha opinião sincera é que você não deve fazer isso por uma razão muito simples: muitas pessoas vão errar.<br />
Vou contar um exemplo real que explica sobre o que eu estou falando:<br />
Eu tenho um site de variedades chamado Mundo Mix. Nós vamos em diversas festas e, após fotografar as pessoas, entregamos um flyer para que a pessoa encontre sua foto depois. Desnecessário dizer que, normalmente, as pessoas jogam esse flyer fora um segundo depois de recebê-lo.<br />
Certo dia, encontrei com uma amiga a quem eu havia fotografado numa festa anterior:<br />
- O seu site é um site gay, né?<br />
- Gay? Por que você acha isso?<br />
- Eu entrei nele e o conteúdo é todo voltado para os gays. Mas eu não encontrei a foto que você tirou.<br />
- Mas meu site não é um site gay. Em qual site você entrou?<br />
- No seu: mundomix.com.br<br />
- O endereço do meu site é mundomix.net<br />
- &#8230;</p>
<p style="text-align: justify;">A conclusão é que não importa o quanto você divulgue o endereço do seu site. Se ele não terminar em .com.br, muitas pessoas vão errar e você vai perder acessos. Se os seus acessos resultarem em dinheiro, você, consequentemente, vai perder dinheiro também.</p>
<p style="text-align: justify;">Existem duas soluções distintas para este problema, dependendo da situação em que o seu negócio se encontra.</p>
<p style="text-align: justify;"><strong>Para novos negócios</strong></p>
<p style="text-align: justify;">Se você está criando um novo negócio, ou um novo site, a forma mais fácil de lidar com o problema dos domínios é dar nome ao negócio após encontrar o domínio que você deseja. O nome da minha empresa foi criado exatamente assim. Eu fiz uma lista de nomes viáveis e, no fim, escolhi um para o qual havia um domínio .com.br disponível.</p>
<p style="text-align: justify;"><strong>Para negócios já existentes (ou para quem não quer usar a outra opção)</strong></p>
<p style="text-align: justify;">Se o seu negócio já está em andamento ou se você não quer escolher o nome dele depois de encontrar o domínio apropriado e nem correr o risco de comprar um domínio com uma extensão diferente de .com.br, a saída é relativamente simples: seja criativo!</p>
<p style="text-align: justify;">Recentemente, eu coloquei um novo serviço no ar e já tinha tudo pronto para ele, exceto o domínio. Eu havia decidido que o nome do serviço seria SITE 0800 e nada no mundo me faria mudar de idéia. Procurei pelo domínio e descobri que já estava registrado. Depois de quebrar a cabeça por um tempo, me lembrei de algo que eu já havia constatado: embora a maioria dos bons domínios já esteja registrado, basta acrescentar algo antes ou depois para formar uma frase, mesmo que simples, e você encontra a luz.</p>
<p style="text-align: justify;">Tentei <a title="Meu Site 0800" href="http://meusite0800.com.br">meusite0800.com.br</a> e bingo! Além de ter o domínio disponível, ainda criei uma impressão de identidade do cliente com o serviço.</p>
<p style="text-align: justify;">Uma última ressalva: embora eu não ache legal a compra do domínio .com, isso é válido se você já tiver o .com.br, assim, você garante que ninguém vai errar. Fora isso, fuja de todas as outras extensões.</p>
<p style="text-align: justify;">Gostou deste post ou tem alguma dúvida? Comente abaixo!</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/como-escolher-um-dominio//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolvendo problemas com APNs no Milestone 2</title>
		<link>http://ontheweb.com.br/blog/resolvendo-problemas-com-apns-no-milestone-2/</link>
		<comments>http://ontheweb.com.br/blog/resolvendo-problemas-com-apns-no-milestone-2/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 06:20:49 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[APN]]></category>
		<category><![CDATA[APN Brasil]]></category>
		<category><![CDATA[APN Tim]]></category>
		<category><![CDATA[configurar]]></category>
		<category><![CDATA[Froyo]]></category>
		<category><![CDATA[Milestone]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=103</guid>
		<description><![CDATA[TweetUm pouco de história (Se estiver com pressa, pule logo pra solução do problema) Semana passada, eu finalmente realizei meu sonho e comprei meu Milestone 2 (logo depois anunciaram o lançamento do 3 no Brasil&#8230; =( ). Apanhei um pouco pra configurar as APNs da minha operadora mas resolvi tudo utilizando o ótimo programa: APN [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fresolvendo-problemas-com-apns-no-milestone-2%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/resolvendo-problemas-com-apns-no-milestone-2/" data-count="vertical" data-via="robyflc" data-text="Resolvendo problemas com APNs no Milestone 2">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/resolvendo-problemas-com-apns-no-milestone-2/"></g:plusone></span></div><p><strong>Um pouco de história</strong></p>
<p>(Se estiver com pressa, pule logo pra solução do problema)</p>
<p>Semana passada, eu finalmente realizei meu sonho e comprei meu Milestone 2 (logo depois anunciaram o lançamento do 3 no Brasil&#8230; =( ).</p>
<p>Apanhei um pouco pra configurar as APNs da minha operadora mas resolvi tudo utilizando o ótimo programa: APN Brasil.</p>
<p>Estava tudo lindo e eu podia, finalmente, desfrutar da minha sonhada &#8220;conexão permanente&#8221; sem acabar com os meus créditos pré-pagos (viva a internet ruim por R$ 0,50 por dia) já que o programa me permitiria desconectar facilmente sempre que não estivesse usando.</p>
<p>Foi então que eu descobri que, após me desconectar, eu só conseguia me conectar novamente reiniciando o Mile.</p>
<p>Insatisfeito, encontrei comentários em vários gerenciadores de APN no Android Market afirmando não funcionarem no Milestone 2.</p>
<p>Procurando no pouco que encontrei sobre o tema, depois de testar diversas &#8220;soluções&#8221; em vão e cogitando criar eu mesmo um programa pra resolver o caso, me deparei, por acaso com um workaround (que não é mais do que um eufemismo para gambiarra) explorando um bug do sistema.</p>
<p><strong>A &#8220;solução&#8221; do problema</strong></p>
<p>Antes de continuar:</p>
<ul>
<li>Testei apenas no meu telefone e não faço idéia se vai funcionar em algum outro (aparelho, marca ou modelo).</li>
<li>Não vejo qualquer possibilidade de estragar o telefone fazendo isso.</li>
<li>Mesmo assim, se resolver fazer, faça por sua conta e risco.</li>
</ul>
<p>1- Configure sua APN normalmente (eu testei com o APN Brasil e com o ApnOnOff e funcionou em ambos) e conecte-se à internet através dela.<br />
2- Crie uma nova APN &#8220;Zumbi&#8221; (indo em configurações &gt;  redes sem fio &gt; redes móveis &gt; ponto de acesso): na hora de criar a APN, insira apenas o nome dela, deixe o resto em branco e clique no botão Home do telefone. (eu fiz esse passo conectado mas não vejo motivo para que não funcione desconectado).<br />
Por um bug no sistema, ele <em>deve</em> salvar essa configuração sendo que não deveria.<br />
3- Ainda conectado, troque para essa nova APN. A internet vai cair por alguns instantes mas deve voltar logo.<br />
4- Desse ponto em diante, enquanto a APN selecionada for essa APN vazia, os gerenciadores de apn funcionam normalmente. Posso desconectar e consigo conectar tempos depois sem ter que reiniciar.<br />
Vou continuar testando  e posto aqui qualquer novidade.<br />
Se funcionar pra mais alguém, dê um feedback aqui.</p>
<p>P.S.: Não desisti de escrever o meu programa pra não precisar fazer isso.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/resolvendo-problemas-com-apns-no-milestone-2//feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Que tal um site 0800?</title>
		<link>http://ontheweb.com.br/blog/que-tal-um-site-0800/</link>
		<comments>http://ontheweb.com.br/blog/que-tal-um-site-0800/#comments</comments>
		<pubDate>Thu, 01 Sep 2011 06:13:27 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[0800]]></category>
		<category><![CDATA[Grátis]]></category>
		<category><![CDATA[Site]]></category>
		<category><![CDATA[Site 0800]]></category>
		<category><![CDATA[Site Grátis]]></category>
		<category><![CDATA[Site Gratuito]]></category>
		<category><![CDATA[Test Drive]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=101</guid>
		<description><![CDATA[Tweet &#160; Todo mundo já quis ter um site, pelos mais diversos motivos. Muita gente ainda quer e a oferta é grande, os preços estão mais competitivos a cada dia, mas sempre bate aquela dúvida: Será que o que estão me oferecendo resolve meus problemas? Existe também uma grande oferta de serviços pagos e gratuitos [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fque-tal-um-site-0800%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/que-tal-um-site-0800/" data-count="vertical" data-via="robyflc" data-text="Que tal um site 0800?">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/que-tal-um-site-0800/"></g:plusone></span></div><p style="text-align: center;"><img class="alignnone" title="Site 0800" src="http://ontheweb.com.br/apps/cli_docs/otwsx/images/fotos/logocinza.png" alt="" width="279" height="233" /></p>
<p>&nbsp;</p>
<p>Todo mundo já quis ter um site, pelos mais diversos motivos.</p>
<p>Muita gente ainda quer e a oferta é grande, os preços estão mais competitivos a cada dia, mas sempre bate aquela dúvida:</p>
<p><strong>Será que o que estão me oferecendo resolve meus problemas?</strong></p>
<p>Existe também uma grande oferta de serviços pagos e gratuitos que &#8220;criam&#8221; seu site mas, além das dificuldades em utilizá-los por boa parcela dos usuários, falta personalização.</p>
<p>Pensando em tudo isso, a OTWSX criou o TEST DRIVE do seu site!</p>
<p>Funciona assim:</p>
<ol>
<li>Você acessa o link <a rel="nofollow" href="http://demo.ontheweb.com.br/" target="_blank">http://demo.ontheweb.com.br/</a> e , em menos de 10 segundos, cria rápida e gratuitamente um site completo com uma exclusiva área administrativa onde todo o conteúdo pode ser facilmente administrado,<strong> sem cadastro e sem burocracia</strong>.</li>
<li>Você navega pelo seu site enquanto testa todas as opções disponíveis e edita o conteúdo. Sua área administrativa é tão simples de mexer que não exige qualquer conhecimento para atualizar o site.</li>
<li>Após o TEST DRIVE, os interessados em manter o site no ar, podem contratar o serviço através da área administrativa por valores à partir de R$ 50,00 mensais.</li>
</ol>
<p>Você deve estar se perguntando: <strong>mas onde está o 0800 se eu tenho que pagar mensalidades?</strong></p>
<p>Através do nosso programa de indicações, o cliente ganha uma mensalidade para cada outro cliente que indicar para o serviço, sem limite de indicações.</p>
<p>Para mais informações:<a title="OTWSX" href="http://ontheweb.com.br"> www.ontheweb.com.br</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/que-tal-um-site-0800//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>TweetDeck Verde e Amarelo</title>
		<link>http://ontheweb.com.br/blog/tweetdeck-verde-e-amarelo/</link>
		<comments>http://ontheweb.com.br/blog/tweetdeck-verde-e-amarelo/#comments</comments>
		<pubDate>Wed, 15 Dec 2010 15:38:48 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[MSN]]></category>
		<category><![CDATA[Orkut]]></category>
		<category><![CDATA[Redes Sociais]]></category>
		<category><![CDATA[RSS]]></category>
		<category><![CDATA[TweetDeck]]></category>
		<category><![CDATA[Twitter]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=90</guid>
		<description><![CDATA[Tweet Este serviço encontra-se temporariamente fora do ar. Imagine ter o seu Orkut, Facebook, Twitter, leitor de RSS, MSN e muito mais em um só lugar? Isso já é possível pois, numa constante busca por tecnologia de ponta, a OTWDD inova mais uma vez lançando no mercado o Social Menage – agregador de redes sociais. [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Ftweetdeck-verde-e-amarelo%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/tweetdeck-verde-e-amarelo/" data-count="vertical" data-via="robyflc" data-text="TweetDeck Verde e Amarelo">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/tweetdeck-verde-e-amarelo/"></g:plusone></span></div><p style="text-align: center;"><a href="http://ontheweb.com.br/socialmenage/"><img class="aligncenter" title="Social Menage - Agregador de Redes Sociais" src="http://ontheweb.com.br/socialmenage/assets/images/logogde.png" alt="Social Menage - Agregador de Redes Sociais" width="198" height="197" /></a></p>
<p><span style="color: #ff0000;">Este serviço encontra-se temporariamente fora do ar.</span></p>
<p><span style="color: #000000;">Imagine ter o seu Orkut, Facebook, Twitter, leitor de RSS, MSN e muito mais em um só lugar? Isso já é possível pois, numa constante busca por tecnologia de ponta, a OTWDD inova mais uma vez lançando no mercado o Social Menage – agregador de redes sociais. Pra quem conhece softwares como TweetDeck e HootieSuite, o Social Menage serve ao mesmo propósito, porém, é o único produto do gênero a agregar o conteúdo do Orkut, podendo ser considerado um “TweetDeck Verde e Amarelo”.</span></p>
<p>Suas principais funções são:</p>
<ul>
<li>Integração das timelines das principais redes sociais utilizadas no Brasil (Facebook, Twitter e Orkut).</li>
<li>Atualização dos Status de todas as contas do      Facebook e Twitter com 1 clique.</li>
<li>Integração de feeds RSS.</li>
<li>“Desencurtador” de URLs.</li>
<li>Atalhos para os  principais links dos amigos      (perfil, mensagens, fotos, vídeos e etc).</li>
<li>Exclusivo modo <strong>MENAGE</strong> que organiza      cronologicamente os posts de todas as timelines/RSS cadastrados,      intercalando-as.</li>
<li>Integração com o serviço Ebuddy para fornecer      acesso aos principais mensageiros instantâneos (MSN, GTalk, AIM, ICQ,      Facebook, entre outros).</li>
</ul>
<p>Comece já a utilizá-lo acessando: <a href="http://ontheweb.com.br/socialmenage/">http://ontheweb.com.br/socialmenage/</a> e aproveite as horas extras que você vai ganhar pra curtir a vida!</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/tweetdeck-verde-e-amarelo//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>&#8216;Tuitando&#8217; com PHP</title>
		<link>http://ontheweb.com.br/blog/tuitando-com-php/</link>
		<comments>http://ontheweb.com.br/blog/tuitando-com-php/#comments</comments>
		<pubDate>Fri, 04 Jun 2010 07:13:01 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=77</guid>
		<description><![CDATA[TweetAinda não descobri a real utilidade do Twitter, mas seu uso como ferramenta de marketing viral vem crescendo enormemente. Pensando nisso, eu resolvi desenvolver uma forma de &#8216;tuítar&#8217; diretamente de um site meu sempre que esse fosse atualizado (como o wordpress faz), incluindo a URL encurtada com o link para a atualização, e explico, no [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Ftuitando-com-php%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/tuitando-com-php/" data-count="vertical" data-via="robyflc" data-text="‘Tuitando’ com PHP">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/tuitando-com-php/"></g:plusone></span></div><p>Ainda não descobri a real utilidade do Twitter, mas seu uso como ferramenta de marketing viral vem crescendo enormemente.</p>
<p>Pensando nisso, eu resolvi desenvolver uma forma de &#8216;tuítar&#8217; diretamente de um site meu sempre que esse fosse atualizado (como o wordpress faz), incluindo a URL encurtada com o link para a atualização, e explico, no código abaixo, como fazer isso.</p>
<p>Considerações:</p>
<ol>
<li>Pro código funcionar, é necessário baixar a classe Twitter (o endereço está no código) e possuir uma conta no Twitter.</li>
<li>Se desejar inserir uma URL encurtada no seu &#8216;Twit&#8217; é necessário também uma conta no serviço Bit.ly (existem muitos outros mas este é usado nessa demonstração)</li>
</ol>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1"><span class="co1">//Iniciando as variáveis</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Do bit.ly</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Para utilizar a API do bit.ly, basta possuir uma conta registrada(gratuitamente)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Seu login</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$blogin</span> = <span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Sua API key</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$bkey</span> = <span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Do Twitter</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$tlogin</span> = <span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$tpass</span> = <span class="st0">&#8221;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Texto a ser inserido no twitter</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//The number of the beast</span></div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//Letra e música de IRON MAIDEN</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$iron</span> = <span class="st0">&quot;&#8217;Woe to you, Oh Earth and Sea,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">for the Devil sends the beast with wrath,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">because he knows the time is short&#8230;</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">Let him who hath understanding reckon</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">the number of the beast for it is a human number,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">it&#8217;s number is Six hundred and sixty six&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">I left alone, my mind was blank.</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">I needed time to think to get the memories from my mind.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">What did I see, can I believe,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">That what I saw that night was real</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">and not just fantasy.</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Just what I saw, in my old dreams,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Were they reflections of my warped mind staring back at me.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#8216;Cause in my dreams, it&#8217;s always there,</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">The evil face that twists my mind and brings me to despair.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Yeah!!!</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">The night was black, was no use holding back,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">&#8216;Cause I just had to see, was someone</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">watching me.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">In the mist, dark figures move and twist,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Was all this for real, or just some kind of hell.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Six, six, six the number of the beast.</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">Hell and fire was spawned to be released.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Torches blazed and sacred chants were praised,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">As they start to cry, hands held to the sky.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">In the night, the fires burning bright,</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">The ritual has begun, Satan&#8217;s work is done.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Six, six, six the number of the beast.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Sacrifice is going on tonight.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0">This can&#8217;t go on, I must inform the law.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Can this still be real or just some crazy dream.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">But I feel drawn towards the evil chanting hordes,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">They seem to mesmerize&#8230;can&#8217;t avoid their eyes,</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="st0">Six, six, six the number of the beast.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">Six, six, six the one for you and me.</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="st0">I&#8217;m coming back, I will return,</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">And I&#8217;ll possess your body and I&#8217;ll make you burn.</span></div>
</li>
<li class="li2">
<div class="de2"><span class="st0">I have the fire, I have the force.</span></div>
</li>
<li class="li1">
<div class="de1"><span class="st0">I have the power to make my evil take its course.&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Codificando o texto para utf8 (necessário para acentos e etc)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$txt</span> = <a href="http://www.php.net/utf8_encode"><span class="kw3">utf8_encode</span></a><span class="br0">&#40;</span><span class="re0">$iron</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Mãos à obra</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Primeiro, encurtamos a URL utilizando a API do bit.ly</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Iniciamos o CURL</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$ch</span> = curl_init<span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//O parâmetro CURLOPT_RETURNTRANSFER com valor 1 vai fazer com que curl_exec retorne a página</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt <span class="br0">&#40;</span><span class="re0">$ch</span>, CURLOPT_RETURNTRANSFER, <span class="nu0">1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//Inserimos a URL a ser encurtada</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$url</span> = <span class="st0">&#8216;http://melhordaputaria.com.br&#8217;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// É necessário codificar a URL para funcionar</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$long</span> = <a href="http://www.php.net/urlencode"><span class="kw3">urlencode</span></a><span class="br0">&#40;</span><span class="re0">$url</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Acessamos a API do bit.ly solicitando a URL encurtada e a resposta</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//em formato texto</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re0">$ch</span>, CURLOPT_URL, <span class="st0">&quot;http://api.bit.ly/v3/shorten?login=$blogin&amp;amp;apiKey=$bkey&amp;amp;longUrl=$long&amp;amp;format=txt&quot;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//A variável $short recebe a URL encurtada</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$short</span> = curl_exec <span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Fechamos o CURL</span></div>
</li>
<li class="li1">
<div class="de1">curl_close <span class="br0">&#40;</span><span class="re0">$ch</span><span class="br0">&#41;</span>; </div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Hora de criar a mensagem a ser inserida no Twitter (com, no máximo, 140 caracteres)</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Contamos o tamanho do texto, mais o tamanho da URL encurtada mais 1 (Pra colocar um caracter &#8216;-&#8217; entre um e outro)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$txt</span><span class="br0">&#41;</span> + <a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$short</span><span class="br0">&#41;</span> + <span class="nu0">1</span> &gt; <span class="nu0">140</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Garantimos que o texto a ser atualizado tenha até 140 caracteres (matemática simples)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$msg</span> = <a href="http://www.php.net/substr"><span class="kw3">substr</span></a><span class="br0">&#40;</span><span class="re0">$txt</span>,<span class="nu0">0</span>,<span class="nu0">140</span> &#8211; <span class="br0">&#40;</span><a href="http://www.php.net/strlen"><span class="kw3">strlen</span></a><span class="br0">&#40;</span><span class="re0">$short</span><span class="br0">&#41;</span> + <span class="nu0">4</span><span class="br0">&#41;</span><span class="br0">&#41;</span> . <span class="st0">&#8216;&#8230;-&#8217;</span> . <span class="re0">$short</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="re0">$msg</span> = <span class="re0">$txt</span> . <span class="st0">&#8216;-&#8217;</span> . <span class="re0">$short</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2"><span class="co1">//Inserimos a classe Twitter</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//disponível em http://www.phpclasses.org/package/4216-PHP-Update-the-status-of-a-Twitter-user.html</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">require</span> <span class="st0">&quot;Twitter.class.php&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// Instanciamos um objeto Twitter, passando o login e senha do Twitter a ser atualizado</span></div>
</li>
<li class="li2">
<div class="de2"><span class="re0">$tweet</span> = <span class="kw2">new</span> Twitter<span class="br0">&#40;</span><span class="re0">$tlogin</span>, <span class="re0">$tpass</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Finalmente, atualizamos o Twitter</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re0">$success</span> = <span class="re0">$tweet</span>-&gt;<span class="me1">update</span><span class="br0">&#40;</span><span class="re0">$msg</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">if</span> <span class="br0">&#40;</span><span class="re0">$success</span><span class="br0">&#41;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Mostramos uma mensagem de sucesso</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="st0">&quot;Funciona!&quot;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="kw1">else</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Ou o erro ocorrido</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <a href="http://www.php.net/echo"><span class="kw3">echo</span></a> <span class="re0">$tweet</span>-&gt;<span class="me1">error</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Dúvidas e sugestões?? Deixe um comentário</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/tuitando-com-php//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novo serviço</title>
		<link>http://ontheweb.com.br/blog/novo-servico/</link>
		<comments>http://ontheweb.com.br/blog/novo-servico/#comments</comments>
		<pubDate>Tue, 06 Apr 2010 05:48:10 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=73</guid>
		<description><![CDATA[TweetA ON THE WEB, orgulhosamente, apresenta seu novo serviço: HOTPAGES Visando tornar mais acessível a confecção de websites de forma que mais pessoas e instituições possam se beneficiar dessa importante ferramenta de marketing, a OTWDD criou um exclusivo sistema de HOTPAGES. HOTPAGES são websites de baixo custo, pré-construídos, constituídos de 4 (quatro) páginas de conteúdo [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fnovo-servico%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/novo-servico/" data-count="vertical" data-via="robyflc" data-text="Novo serviço">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/novo-servico/"></g:plusone></span></div><p>A ON THE WEB, orgulhosamente, apresenta seu novo serviço:</p>
<p align="center"><strong><span style="text-decoration: underline;">HOTPAGES</span></strong></p>
<p>Visando tornar mais acessível a confecção de <em>websites</em> de forma que mais pessoas e instituições possam se beneficiar dessa importante ferramenta de marketing, a OTWDD criou um exclusivo sistema de HOTPAGES.</p>
<p>HOTPAGES são <em>websites</em> de baixo custo, pré-construídos, constituídos de 4 (quatro) páginas de conteúdo e mais um formulário de contato além de um formulário de cadastro de emails para envio de <em>newsletters</em> (mala direta virtual). Essa pré-construção visa acelerar o processo de desenvolvimento de cada <em>website</em> e reduzir seu custo, sem diminuir sua flexibilidade. Sendo assim, cada HOTPAGE pode ser customizada para atender às necessidades específicas de cada cliente, podendo, inclusive, possuir ferramentas para AUTOMAÇÃO COMERCIAL.</p>
<p>Cada HOTPAGE possui uma área administrativa privada onde todo o seu conteúdo pode ser atualizado de forma simples e rápida por qualquer pessoa <strong>autorizada</strong> sem a necessidade de qualquer conhecimento sobre construção de sites, um sistema de envio de <em>newsletters</em> e um link para as estatísticas de acesso ao site, fornecidas pelo GOOGLE ANALYTICS™.</p>
<p><strong> </strong></p>
<p><strong>PRINCIPAIS CARACTERÍSTICAS</strong></p>
<ul>
<li>Baixo custo de desenvolvimento.</li>
<li>Nenhum custo mensal de manutenção.</li>
<li>Desenvolvimento rápido.</li>
<li>Flexibilidade.</li>
<li>Sistema de envio de <em>newsletters</em> (mala direta virtual).</li>
<li>Agilidade para atualização de conteúdo.</li>
<li>Domínio próprio opcional (pode ser usado <a href="http://www.bqbuscas.com.br/suaempresa/">www.bqbuscas.com.br/suaempresa/</a>).</li>
<li>Estatísticas de acesso ao site.</li>
<li>Possibilidade de incluir ferramentas de AUTOMAÇÃO COMERCIAL.</li>
</ul>
<p><strong> </strong></p>
<p><strong>DEMONSTRAÇÃO</strong></p>
<p>Para ver uma demonstração de uma HOTPAGE, basta acessar <a href="http://www.bqbuscas.com.br/sitebarato/">www.bqbuscas.com.br/sitebarato/</a></p>
<p>Para acessar a área administrativa, <a href="http://www.bqbuscas.com.br/sitebarato/admin/index/">www.bqbuscas.com.br/sitebarato/admin/index/</a> .</p>
<p>(Por questões de segurança, a área administrativa não funciona no Internet Explorer 7 ou anterior).</p>
<p><strong>SAIBA MAIS</strong></p>
<p>Para saber mais, basta entrar em contato através do email <a href="mailto:contato@ontheweb.com.br">contato@ontheweb.com.br</a> ou do telefone (32)8803-7769.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/novo-servico//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>FNF</title>
		<link>http://ontheweb.com.br/blog/fnf/</link>
		<comments>http://ontheweb.com.br/blog/fnf/#comments</comments>
		<pubDate>Tue, 09 Mar 2010 06:34:24 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[FNF]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=67</guid>
		<description><![CDATA[TweetNo fim de 2008, enquanto negociava com um cliente o maior sistema que já fiz na vida (migrar um sistema em clipper e um em delphi com db em firebird pra PHP/Mysql pra rodar numa intranet) me deparei com a necessidade de algo para agilizar o desenvolvimento e comecei a estudar sobre Ruby on Rails [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Ffnf%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/fnf/" data-count="vertical" data-via="robyflc" data-text="FNF">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/fnf/"></g:plusone></span></div><p>No fim de 2008, enquanto negociava com um cliente o maior sistema que já fiz na vida (migrar um sistema em clipper e um em delphi com db em firebird pra PHP/Mysql pra rodar numa intranet) me deparei com a necessidade de algo para agilizar o desenvolvimento e comecei a estudar sobre Ruby on Rails e frameworks PHP.</p>
<p>Achei tudo lindo, principalmente a parte de scaffolding, mas percebi que a curva de aprendizado seria muito grande até poder desenvolver o sistema que eu precisava.</p>
<p>Durante as minhas pesquisas, me deparei com este brilhante texto do Lerdof (sim, o Rasmus) : <a href="http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html ">http://toys.lerdorf.com/archives/38-The-no-framework-PHP-MVC-framework.html </a>(se você não sabe inglês pode testar a api do language no playground do google e descobrir se a tradução é convincente) e decidi começar meu próprio FW.</p>
<p>FNF é uma ferramenta que agiliza o meu trabalho e eu dúvido muito que seja tão útil pra mais alguém. Porém, como eu sou defensor de que cada um reúna as próprias ferramentas, acredito que as idéias podem ser muito úteis. Ao invés de publicar aqui a minha compilação de ferramentas, eu prefiro discutir sobre o porque de tê-las reunido e a forma que eu o fiz para que interessados em fazer o mesmo vejam que não é tão difícil assim.</p>
<p>Visando reinventar a roda o mínimo possível, eu apenas adicionei algum código meu junto com ferramentas que eu estava acostumado a usar como jquery, smartoptizer, doctrine, smarty e outras com os seguintes objetivos:</p>
<ol>
<li>Agilizar o tempo de desenvolvimento de projetos</li>
<li>Criar uma camada de abstração de dados usando ORM</li>
<li>Utilizar efeitos e recursos do jquery.</li>
<li>Otimizar os sistemas segundo os padrões propostos pelo Yahoo</li>
<li>MVC-izar os sistemas</li>
<li>Implementar scaffolding</li>
</ol>
<p>No próximo post, mostro a estrutura do FNF.</p>
<p>Em tempo, FNF é meu acrônimo para Framework Not Framework mas também pode ser o recursivo para FNF is Not a Framework.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/fnf//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PHP só pra maiores!</title>
		<link>http://ontheweb.com.br/blog/php-so-pra-maiores/</link>
		<comments>http://ontheweb.com.br/blog/php-so-pra-maiores/#comments</comments>
		<pubDate>Fri, 11 Dec 2009 01:34:52 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=58</guid>
		<description><![CDATA[TweetNão leitores, vocês não estão lendo errado, é o melhor da putaria mesmo, putaria de verdade, mulher pelada, foto de namorada pelada tirada do celular, caiu na net, brasileirinhas, sexo na web cam, anal, essas coisas que a net está cheia, e diga-se de passagem cheia de vírus também, aqui vai uma dica de site [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fphp-so-pra-maiores%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/php-so-pra-maiores/" data-count="vertical" data-via="robyflc" data-text="PHP só pra maiores!">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/php-so-pra-maiores/"></g:plusone></span></div><blockquote><p>Não leitores, vocês não estão lendo errado, é o melhor da putaria mesmo, putaria de verdade, mulher pelada, foto de namorada pelada tirada do celular, caiu na net, brasileirinhas, sexo na web cam, anal, essas coisas que a net está cheia, e diga-se de passagem cheia de vírus também, aqui vai uma dica de site de putaria sem a putaria dos sites de putaria, ou seja aquela putaria que ninguém gosta, janelinha subindo, milhares de links que não levam a lugar algum, o site <a target="_blank" href="http://www.melhordaputaria.com.br">www.melhordaputaria.com.br</a> , é uma grande novidade no gênero, pois formou-se uma coletânea de muitos outros sites em apenas um lugar, e o melhor de tudo, local seguro, diria que torna-se quase uma camisinha para seu PC querido que já não aquenta mais tanto vírus, doenças venéreas oriundas do mundo virtual, isso sim é putaria sem sacanagem, vai ai a dica para a turma da bronha e vouyers. Site aprovado e recomendado pelo Blog Críticos de Qualquer Coisa. Ah já estava quase esquecendo, o <a target="_blank" href="http://www.melhordaputaria.com.br">www.melhordaputaria.com.br</a> , possui um vínculo com os Críticos, não se assustem ao verem algum banner dando sopa pelas bandas de lá.</p></blockquote>
<p>Este trecho foi retirado do blog criticosdequalquercoisa.blogspot.com e refere-se ao novo serviço da ON THE WEB (mais uma solução inovadora utilizando PHP): O site é um indexador de atualizações de fotos de conteúdo adulto de sites brasileiros e um filtro desses para impedir a execução de scripts no navegador dos usuários. Uma mão não roda tecnológica para os pervertidos de plantão.<br />
<a target="_blank" href="http://melhordaputaria.com.br/">Não deixe de conferir.</a></p>
<p>Num próximo post, falo sobre a tecnologia utilizada.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/php-so-pra-maiores//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Polaroid Gallery com JQuery UI</title>
		<link>http://ontheweb.com.br/blog/polaroid-gallery-com-jquery-ui/</link>
		<comments>http://ontheweb.com.br/blog/polaroid-gallery-com-jquery-ui/#comments</comments>
		<pubDate>Wed, 09 Dec 2009 05:35:14 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[Javascript]]></category>
		<category><![CDATA[JQuery]]></category>
		<category><![CDATA[fotos]]></category>
		<category><![CDATA[gallery]]></category>
		<category><![CDATA[jquery ui]]></category>
		<category><![CDATA[Polaroid]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=38</guid>
		<description><![CDATA[TweetAntes de mais nada, veja o resultado aqui. Um tempo atrás, eu estava desenvolvendo um sistema e procurei na net por uma galeria de fotos interessante. Me deparei com essa belíssima galeria em flash. Entretanto, notei alguns pontos que me fizeram desistir de usá-la, principalmente: • Ser em flash (praticamente aboli o uso do flash [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fpolaroid-gallery-com-jquery-ui%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/polaroid-gallery-com-jquery-ui/" data-count="vertical" data-via="robyflc" data-text="Polaroid Gallery com JQuery UI">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/polaroid-gallery-com-jquery-ui/"></g:plusone></span></div><p><a href="http://ontheweb.com.br/polaroid/">Antes de mais nada, veja o resultado aqui.</a><br />
Um tempo atrás, eu estava desenvolvendo um sistema e procurei na net por uma galeria de fotos interessante. Me deparei com <a href="http://www.no3dfx.com/polaroid/">essa belíssima galeria em flash</a>.<br />
Entretanto, notei alguns pontos que me fizeram desistir de usá-la, principalmente:<br />
•	Ser em flash (praticamente aboli o uso do flash depois que conheci o jquery).<br />
•	Seu tamanho e o conseqüente tempo de carregamento.<br />
Procurando por uma solução, acabei encontrando algumas usando CSS3 o que também inviabilizava o que eu queria realizar.<br />
Acabei por entender o que eu queria fazer e desenvolvi a técnica demonstrada aqui e descrita abaixo utilizando o JQuery. Antes, porém, permitam-me algumas ressalvas:<br />
1.	Eu poderia ter criado um plugin, mas ele dependeria de tantos outros que eu achei melhor não fazê-lo.<br />
2.	Se eu estivesse usando esse script em produção, eu teria utilizado o smartoptimizer e concatenado os js e css.<br />
3.	Esse script utiliza js obstrusivamente, ou seja, só funciona com  js habilitado no navegador. É muito fácil resolver isso, mas onde foi utilizado, não era uma necessidade.<br />
4.     A aparência poderia ser mais próxima da galeria em flash se assim desejássemos.<br />
5.    Só acho viável utilizar tantos scripts externos se boa parte deles já tiver sido carregada em páginas anteriores.</p>
<p>Pra começar, coloque o seguinte código HTML, muito fácil de entender e adaptar:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;centeredbox&quot;&gt;&lt;/div&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;div id=&quot;polaroid&quot;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f1.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Um belo título&quot; src=&quot;photos/tn_f1.jpg&quot; width=&quot;102&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp;&lt;a href=&quot;photos/f2.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Outro belo título&quot; &nbsp;src=&quot;photos/tn_f2.jpg&quot; width=&quot;93&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp;&lt;a href=&quot;photos/f3.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Mais um belo título&quot; &nbsp;src=&quot;photos/tn_f3.jpg&quot; width=&quot;120&quot; height=&quot;106&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f4.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f4.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f5.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f5.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f1.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Um belo título&quot; src=&quot;photos/tn_f1.jpg&quot; width=&quot;102&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;a href=&quot;photos/f2.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Outro belo título&quot; &nbsp;src=&quot;photos/tn_f2.jpg&quot; width=&quot;93&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f3.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Mais um belo título&quot; &nbsp;src=&quot;photos/tn_f3.jpg&quot; width=&quot;120&quot; height=&quot;106&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f4.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f4.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f5.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f5.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f1.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Um belo título&quot; src=&quot;photos/tn_f1.jpg&quot; width=&quot;102&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &lt;a href=&quot;photos/f2.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Outro belo título&quot; &nbsp;src=&quot;photos/tn_f2.jpg&quot; width=&quot;93&quot; height=&quot;120&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f3.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; title=&quot;Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; Este título gigante é a maior prova de que escrever títulos gigantes é uma &nbsp;coisa gigantesca e funciona&#8230; &quot; &nbsp;src=&quot;photos/tn_f3.jpg&quot; width=&quot;120&quot; height=&quot;106&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f4.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f4.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &lt;a href=&quot;photos/f5.jpg&quot;&gt;&lt;img class=&quot;shadow&quot; src=&quot;photos/tn_f5.jpg&quot; width=&quot;120&quot; height=&quot;74&quot; /&gt;&lt;/a&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;/div&gt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
</ol>
</div>
<p>A seguir, vamos utilizar css para cuidar da aparência de nosso script (mas não só da aparência):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">//Vamos dar cor ao fundo:
</div>
</li>
<li class="li1">
<div class="de1">body, html{ background:#9E967F;}
</div>
</li>
<li class="li1">
<div class="de1">//Definimos &nbsp;as características que as imagens dentro da div Polaroid terão:
</div>
</li>
<li class="li2">
<div class="de2">#polaroid img{
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; border:none;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; background:#FFFFFF;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; padding: 5px 5px 13px;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; position:absolute;
</div>
</li>
<li class="li2">
<div class="de2">}
</div>
</li>
<li class="li1">
<div class="de1">//Mudamos o cursor do mouse para ‘move’ sobre as imagens:
</div>
</li>
<li class="li1">
<div class="de1">#polaroid img:hover{
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; cursor:move;
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li2">
<div class="de2">//Definimos o tamanho da div Polaroid pra controlar a disposição das imagens:
</div>
</li>
<li class="li1">
<div class="de1">#polaroid{
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; width:500px;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; height:500px;
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li2">
<div class="de2">//Definimos o tamanho da div centeredbox que é usada para direcionar o efeito transfer da jquery ui:
</div>
</li>
<li class="li1">
<div class="de1">#centeredbox{
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; width:250px;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; height:250px;
</div>
</li>
<li class="li1">
<div class="de1">}
</div>
</li>
<li class="li2">
<div class="de2">//Definimos o estilo para o efeito transfer da jquery ui:
</div>
</li>
<li class="li1">
<div class="de1">.ui-effects-transfer { background:#FFFFFF; }
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Agora, incluímos  um arquivo css externo do plugin slimbox, o jquery , o jquery  ui e alguns plugins:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;link href=&quot;css/slimbox2.css&quot; rel=&quot;stylesheet&quot; /&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;!&#8211;Arquivo principal do jquery ui&#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/ui.core.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211;Arquivo para o efeito ‘arrastar’ do jquery ui&#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/ui.draggable.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211;Arquivo principal dos efeitos do jquery ui&#8211;&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;script type=&quot;text/javascript&quot; src=&quot;js/effects.core.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;!&#8211;Arquivo principal do efeito ‘transfer’ do jquery ui&#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/effects.transfer.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;!—Plugin Center (o efeito pode ser conseguido só com CSS)&#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/jquery.center.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li2">
<div class="de2">&lt;!—Plugin slimbox de efeito similar ao lightbox&#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/slimbox2.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;!—Plugin shadow do jquery ui cujo desenvolvimento foi descontinuado &#8211;&gt;
</div>
</li>
<li class="li1">
<div class="de1">&lt;script type=&quot;text/javascript&quot; src=&quot;js/fx.shadow.js&quot;&gt;&lt;/script&gt;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Pra terminar a mágica, um pouco de js:</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Função para gerar números aleatórios em js</span></div>
</li>
<li class="li1">
<div class="de1"><span class="kw2">function</span> randrang<span class="br0">&#40;</span>minVal,maxVal,floatVal<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; <span class="kw2">var</span> randVal = minVal+<span class="br0">&#40;</span>Math.<span class="me1">random</span><span class="br0">&#40;</span><span class="br0">&#41;</span>*<span class="br0">&#40;</span>maxVal-minVal<span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; <span class="kw1">return</span> <span class="kw1">typeof</span> floatVal==<span class="st0">&#8216;undefined&#8217;</span>?Math.<span class="me1">round</span><span class="br0">&#40;</span>randVal<span class="br0">&#41;</span>:randVal.<span class="me1">toFixed</span><span class="br0">&#40;</span>floatVal<span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">//Evento onready do jquery</span></div>
</li>
<li class="li1">
<div class="de1">$<span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Criamos a variável thumbs que vai servir como parametro para</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//o slimbox</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; thumbs = <span class="st0">&#8216;['</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Para cada imagem dentro do container #polaroid...</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#polaroid img&quot;</span><span class="br0">&#41;</span>.<span class="me1">each</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//posicionamos aleatóriamente</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> top = randrang<span class="br0">&#40;</span><span class="nu0">0</span>,$<span class="br0">&#40;</span><span class="st0">&quot;#polaroid&quot;</span><span class="br0">&#41;</span>.<span class="me1">height</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">var</span> left = randrang<span class="br0">&#40;</span><span class="nu0">0</span>,$<span class="br0">&#40;</span><span class="st0">&quot;#polaroid&quot;</span><span class="br0">&#41;</span>.<span class="me1">width</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">'top'</span>,top+<span class="st0">'px'</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">'left'</span>,left+<span class="st0">'px'</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//pegamos o endereço da imagem</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thsrc = $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">'src'</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//extraímos o prefixo tn_</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; src = <span class="st0">&quot;photos/&quot;</span>+thsrc.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">10</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//pegamos o título da imagem (que servirá de legenda)</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; title = $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">attr</span><span class="br0">&#40;</span><span class="st0">'title'</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//adicionamos a imagem à variável thumbs</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thumbs += <span class="st0">'[&quot;'</span>+src; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//se houver um título, adicionamos ele também</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#40;</span>title<span class="br0">&#41;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thumbs += <span class="st0">'&quot;,&quot;'</span>+title;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; thumbs += <span class="st0">'&quot;],&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//retiramos a vírgula final de thumbs (isso é POG)</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; tempthumbs = thumbs.<span class="me1">substring</span><span class="br0">&#40;</span><span class="nu0">0</span>,thumbs.<span class="me1">length</span> <span class="nu0">-1</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//o uso de &#8216;eval&#8217; é necessário pro slimbox funcionar</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//depois, fechamos a variável thumbs com &#8216;]&#8217;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; thumbs = <span class="kw1">eval</span> <span class="br0">&#40;</span>tempthumbs+<span class="st0">&#8216;]&#8217;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Aqui, tornamos as imagens dentro de #polaroid arrastáveis e&#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#polaroid img&quot;</span><span class="br0">&#41;</span>.<span class="me1">draggable</span><span class="br0">&#40;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Fazemos com que as sombras a sigam quando forem arrastadas</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; drag: <span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">next</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&#8216;top&#8217;</span>,$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&#8216;top&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">next</span><span class="br0">&#40;</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&#8216;left&#8217;</span>,$<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">css</span><span class="br0">&#40;</span><span class="st0">&#8216;left&#8217;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Posicionamos as sombras</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&#8216;.shadow&#8217;</span><span class="br0">&#41;</span>.<span class="me1">shadow</span><span class="br0">&#40;</span><span class="br0">&#123;</span> color: <span class="st0">&quot;#444&quot;</span>, offset: <span class="nu0">3</span>, opacity: <span class="nu0">0.3</span> <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Centralizamos #centeredbox</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#centeredbox&quot;</span><span class="br0">&#41;</span>.<span class="me1">center</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Pra terminar, criamos o evento onclick para cada imagem</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="st0">&quot;#polaroid img&quot;</span><span class="br0">&#41;</span>.<span class="me1">click</span><span class="br0">&#40;</span><span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Capturamos o índice da imagem</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; index = $<span class="br0">&#40;</span><span class="st0">&quot;#polaroid img&quot;</span><span class="br0">&#41;</span>.<span class="me1">index</span><span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Criamos o efeito transfer da imagem para #centeredbox e&#8230;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $<span class="br0">&#40;</span><span class="kw1">this</span><span class="br0">&#41;</span>.<span class="me1">effect</span><span class="br0">&#40;</span><span class="st0">&#8216;transfer&#8217;</span>,<span class="br0">&#123;</span> to: <span class="st0">&quot;#centeredbox&quot;</span>, className: <span class="st0">&#8216;ui-effects-transfer&#8217;</span> <span class="br0">&#125;</span>,<span class="nu0">500</span>,<span class="kw2">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Chamamos o plugin slimbox no &#8216;callback&#8217;</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Passando a &#8216;array&#8217; (na verdade não é uma array) de imagens e títulos</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//e o índice da imagem clicada</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; $.<span class="me1">slimbox</span><span class="br0">&#40;</span>thumbs,index<span class="br0">&#41;</span>;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="co1">//Preciso explicar o que isso faz?</span></div>
</li>
<li class="li2">
<div class="de2">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">return</span> <span class="kw2">false</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span><span class="br0">&#41;</span>;</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>O leitor atento vai perceber que a sombra não acompanha a imagem tão bem quanto deveria, isso é a principal limitação desse script (mas não a única). Se tiver sugestões para resolver isso, para melhorar o script ou tiver dúvidas, basta postar nos comentários.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/polaroid-gallery-com-jquery-ui//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Documento do Word no PHP</title>
		<link>http://ontheweb.com.br/blog/documento-do-word-no-php/</link>
		<comments>http://ontheweb.com.br/blog/documento-do-word-no-php/#comments</comments>
		<pubDate>Sun, 29 Nov 2009 06:53:45 +0000</pubDate>
		<dc:creator>Robson</dc:creator>
				<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://ontheweb.com.br/blog/?p=29</guid>
		<description><![CDATA[TweetJá teve vontade de abrir seus documentos do Word no PHP?? Eu não tive, mas, há uns meses fui obrigado a fazê-lo e acabei aprendendo. Veja como é simples, basta usar a tecnologia COM que permite interagir com os softwares da Microsoft (vale lembrar que isso só funciona no Windows): &#160; //Pra começar, instanciamos o [...]]]></description>
			<content:encoded><![CDATA[
				<!-- Social Sharing Toolkit v2.0.4 | http://www.marijnrongen.com/wordpress-plugins/social_sharing_toolkit/ -->
				<div class="mr_social_sharing_wrapper"><span class="mr_social_sharing"><iframe src="https://www.facebook.com/plugins/like.php?locale=en_US&amp;href=http%3A%2F%2Fontheweb.com.br%2Fblog%2Fdocumento-do-word-no-php%2F&amp;layout=box_count&amp;show_faces=false&amp;width=55px&amp;height=61px" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:55px; height:61px;" allowTransparency="true"></iframe></span><span class="mr_social_sharing"><a href="http://twitter.com/share" class="twitter-share-button" data-url="http://ontheweb.com.br/blog/documento-do-word-no-php/" data-count="vertical" data-via="robyflc" data-text="Documento do Word no PHP">Tweet</a></span><span class="mr_social_sharing"><g:plusone size="tall" href="http://ontheweb.com.br/blog/documento-do-word-no-php/"></g:plusone></span></div><p>Já teve vontade de abrir seus documentos do Word no PHP??<br />
Eu não tive, mas, há uns meses fui obrigado a fazê-lo e acabei aprendendo.<br />
Veja como é simples, basta usar a tecnologia <a href="http://www.microsoft.com/com/default.mspx">COM</a> que permite interagir com os softwares da Microsoft (vale lembrar que isso só funciona no Windows):</p>
<div class="dean_ch" style="white-space: wrap;">
<ol>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">//Pra começar, instanciamos o objeto COM passando &#8216;word.application&#8217; como parametro para &#8216;abrir o word&#8217;
</div>
</li>
<li class="li1">
<div class="de1">$word = new COM(&quot;word.application&quot;) or die (&quot;Erro!!&quot;);
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">//Em seguida, atribuímos à variável $file, o nome do documento que será aberto
</div>
</li>
<li class="li1">
<div class="de1">$file = &quot;arquivo.doc&quot;;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">//Aqui, abrimos o documento em questão
</div>
</li>
<li class="li1">
<div class="de1">$word-&gt;Documents-&gt;Open(realpath($file));
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">// Agora, extraímos seu conteúdo para a variável $content
</div>
</li>
<li class="li1">
<div class="de1">//convertento o mesmo para string
</div>
</li>
<li class="li1">
<div class="de1">$content = (string) $word-&gt;ActiveDocument-&gt;Content;
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li2">
<div class="de2">//Convertemos as quebras de linha para html&nbsp; &nbsp; &nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</div>
</li>
<li class="li1">
<div class="de1">$txt = nl2br($content);
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">//Pra visualizar o conteúdo, basta imprimir a variável
</div>
</li>
<li class="li1">
<div class="de1">echo $txt;
</div>
</li>
<li class="li2">
<div class="de2">&nbsp;</div>
</li>
<li class="li1">
<div class="de1">//Agora, fechamos o documento&#8230;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
</div>
</li>
<li class="li1">
<div class="de1">$word-&gt;ActiveDocument-&gt;Close(false);
</div>
</li>
<li class="li1">
<div class="de1">//&quot;Saímos do word&quot; (ou quase, hahahaha)
</div>
</li>
<li class="li1">
<div class="de1">$word-&gt;Quit();
</div>
</li>
<li class="li2">
<div class="de2">//Os passos seguintes, são recomendados pra
</div>
</li>
<li class="li1">
<div class="de1">//evitar vazamento de memória
</div>
</li>
<li class="li1">
<div class="de1">$word = null;
</div>
</li>
<li class="li1">
<div class="de1">unset($word);
</div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
</ol>
</div>
<p>Tudo resolvido, vocês podem fazer o que quiserem com o documento. No meu caso, eu importei ele pro MySQL.</p>
<p>Os testes foram feitos localmente. Qualquer problema, entrem em contato ou consultem a documentação do PHP.</p>
<p>Num proximo post, eu falo sobre como criar documentos do Word usando PHP.</p>
]]></content:encoded>
			<wfw:commentRss>http://ontheweb.com.br/blog/documento-do-word-no-php//feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

