The App Date – São Paulo

 The App Date - São Paulo

Fala galera, depois de muito tempo sem postar nada, venho aqui ajudar a divulgar um encontro para desenvolvedores mobile em São Paulo.

Os encontros ocorrerão mensalmente, toda última terça-feira do mês , onde serão discutidos apps mobile sobre a visão de Desenvolvedores, Usuários, Investidores, Empresas, Designers, Artistas e etc. Em cada evento serão apresentados 3 apps para inspirar, ativar e emocionar o público.

O evento começou na Espanha em 2010 e o Brasil é o primeiro país a recebê-lo depois da Espanha.

As inscrições são gratuitas e estarão abertas a partir do dia 26/01/2012. Corram pois são apenas 250 vagas por encontro!

Mais informações:
Site: saopaulo.theappdate.com
Facebook: https://www.facebook.com/saopaulo.theappdate
Twitter: @theappdate_sp

Até mais pessoal!

Comentário

YoutubeLinkParser – adicionando o player do YouTube em um texto

Olá pessoal,

faz tempo que não publica códigos no blog. Hoje decidi brincar um pouco e fazer uma classe em PHP para em um dado texto, trocar todas as ocorrências de links do YouTube pelo player deles.

Não procurei para ver se existia uma solução semelhante, pois eu queria fazer um.

YoutubeLinkParser (fonte/source code).

Abraços e até a próxima!

Comentário

Curso online de CakePHP

Olá pessoal,

estou planejando aqui algumas coisas para o final desde ano e para o ínicio do próximo. Dentre elas, a criação de um curso online de CakePHP. Estou pensando em realizar o curso de maneira continua, ou seja, através de uma mensalidade simbólica, o aluno vai acompanhando o curso (através de uma periodicidade constante de lançamentos de novos screencasts), além de poder criar screencasts que tiram dúvidas dos alunos. Ou seja, uma aprendizagem contínua.

O que vocês acham?

Se possível, me mandem e-mails (tuliofaria@gmail.com) indicando, por exemplo, se você faria o curso e quais os temas que você gostaria que fossem abordados.

Tenho planos de lançar o mesmo formato de curso para Allegro e Java para We, nestes cursos com alguns convidados, que por exemplo, poderam dar uma “pincelada” em design patterns e outras tecnologias interessantíssimas.

Aguardo a colaboração de vocês com opiniõe!

Valeu!

Comentário

Ações como estas me deixam em dúvida se continuo ou não com o blog

Olá pessoal,

antes de mais nada, gostaria de agradecer a todos os comentários e e-mails que recebo elogiando tudo que já foi publicado aqui. O que irei relatar aqui é apenas algumas coisas que me deixam chateado e que me fazem pensar se realmente vale a pena manter o blog online.

Bom, primeiramente, alguns comentários como estes:

comment.gif

Não sei o motivo destes comentários, se alguém que me mandou algum e-mail e não respondi ou algo assim. Enfim, isso não dá o direito a ninguém sair ofendendo. Aliás, existem comentários muito bons em meus posts, onde realmente acontece uma discussão saudável e que leva a todos a aprender algo novo.

Pelo menos uma vez no ano, eu penso se vale a pena manter o blog online. Por quê? Simplesment, por não sair barato manter servidor e etc. No Brasil software livre não funciona pois todos sabem criticar ou apenas xingar sem motivos, mas na hora de fazer doações ou ajudar em algo, simplesmente somem.

Bom pessoal, isso este post é apenas para relatar o quanto algumas coisas nos desanimam de continuar publicando novos conteúdos.

Forte abraço a todos!

Comentários (39)

Curso de programação de jogos: Games Total

Olá pessoal,

ando meio sumido, mas hoje venho apresentar para vocês o trabalho do grande amigo Luciano Augusto. Ele já é conhecido pelo seu curso online de Flash e ActionScript. Ele está lançando em dezembro um curso sobre programação de jogos, chamado Games Total.

Como sou aficionado por programação de jogos (apesar de sem tempo para praticar e postar sobre o assunto) além de confiar na qualidade dos cursos criados pelo Luciano e sua equipe, estou ajudando-o na divulgação.

Confiram o teaser:

Entrem no site para conhecer sobre o curso, valores e etc.
Não percam tempo, façam já a pré-matrícula e aproveitem!

Comentários (2)

Criando um menu drop down com jQuery e 3 linhas!

Olá pessoal,

semana passada lecionei um curso sobre XHTML, CSS e JavaScript na faculdade para o pessoal do primeiro ano. Como eles não sabem programar ainda, resolvi passar um pouco de jQuery ocultando assim muita lógica.

A primeira parte é o XHTML:

HTML:
  1. <p id="menu">&nbsp;</p>
  2.  
  3. <h3>Navegue pelas lojas:</h3>
  4.     <li>
  5. <h4>Livros e Papelaria:</h4>
  6.     <li><a href="#">Livros</a></li>
  7.     <li><a href="#">Livros Importados</a></li>
  8.     <li><a href="#">Papelaria</a></li>
  9. </ul>
  10. </li>
  11.     <li>
  12. <h4>CDS, DVDs e Games:</h4>
  13.     <li><a href="#">Livros</a></li>
  14.     <li><a href="#">Livros Importados</a></li>
  15.     <li><a href="#">Papelaria</a></li>
  16. </ul>
  17. </li>
  18. </ul>

O CSS:

CSS:
  1. <pre>#menu&gt; ul{
  2.   margin: 40px 0 0 10px;
  3.   background: #FFFFFF;
  4.   width: 150px;
  5.   padding: 0;
  6. }
  7. /* mostrando o cursor do mouse como pointeiro */</pre>
  8. <pre>#menu h4{
  9.   cursor: pointer;
  10. }
  11. /* ocultando o menu */
  12. #menu ul li ul{
  13.   display: none;
  14. }</pre>

E o código JS em jQuery:

JAVASCRIPT:
  1. $(function(){
  2. $("#menu&gt; ul&gt; li&gt; h4").click(function(){
  3. $(this).parent().find("ul").toggle("slow");
  4. });
  5. });

Simples né?
Qualquer dúvida comentem! Forte abraço!

Comentários (13)

Otimizando as URL’s na hora de migrar um site em PHP para CakePHP

Olá pessoal,

nestes dias fui chamado para fazer um refactory de um dos primeiros sites que desenvolvi. Na época eu não me preocupava com URL's amigáveis nem coisa semelhante. Para ser sincero, nem sabia do que se tratava.

O site havia sido desenvolvido inteiramente usando chamadas diretas para os scripts PHP, como por exemplo: noticias_ler.php?id=id_da_noticia.

Como uma das características que seriam agragadas a nova versão do site seria a otimização e uso de URL amigáveis, eu não poderia deixar do jeito que estava. Aliás, eu usaria o CakePHP no projeto, então, sem chances de manter como estava.

A primeira coisa eu me veio a cabeça foi mudar pra CakePHP. Não pensei nas consequências disso. Refletindo um pouco mais, vi que uma mudança radical em todas as URL's do site poderia não ser uma coisa bacana, já que o mesmo já contava com mais de 40.000 notícias dentre outros conteúdos. Já que todos os links antigos deixariam de funcionar. Isso não seria uma boa para motores de busca, nem mesmo para quem colocou uma determinada notícia no favoritos, por exemplo.

Logo, imaginei que eu teria que redirecionar todas as URL's (pelo menos as mais importantes) para o novo formato. Mas eu queria redirecionar algo como: noticia_ler.php?id=10 para /noticias/ler/10/titulo-da-noticia-bonito.

A primeira coisa que fiz foi rotear no routes.php a URL noticia_ler.php para um controller qualquer (ou para o controller Noticias). No exemplo a seguir, redirecionei para o controler redireciona.

PHP:
  1. Router::connect('/noticia_ler.php*', array('controller' => 'redireciona', 'action' => 'noticia'));

O controller Redireciona na verdade não precisaria nem existir, poderia ter feito dentro do próprio noticias. Mas a minha idéia era contralar todos os redirects de um único controller.

Na action noticia do controller Redireciona:

PHP:
  1. $id = $this->params["url"]["id"];
  2. $n = $this->Noticia->findById($id);
  3. $slug = Inflector::slug($n["Noticia"]["titulo"]); // retira acentos e etc
  4. $slug = strtolower($slug); // passa pra minusculo
  5. $slug = str_replace("_", "-", $slug); // troca _ por -
  6. $this->redirect("/noticias/ler/".$id."/".$slug, 301, true);

Detalhe do uso do método slug da classe Inflector, que retira todos os caracteres especiais e espaços para a construção de URL's amigáveis, transformando, por exemplo, "Tulio Faria" em "Tulio_Faria". Em seguida faço algumas transformações para ficar no formato que gosto: "tulio-faria", tudo minúsculo e separado por hífem.

O segundo paramêtro do redirect é o código de redirecionamento a ser usado, no caso do 301 é Movido Permanentemente. O terceiro paramêtro indica que será dado um exit() após o redirecionamento.

Bom pessoal, é isso!

Espero que isso ajude-os assim como me ajudou! Qualquer dúvida, comentem!

Forte abraço!

Comentários (8)

Primeiro encontro do PHP-MG

Olá pessoal,

dia 25/04/2009 em Belo Horizonte acontecerá o primeiro encontro da comunidade PHP-MG. Infelizmente não poderei estar presente, mais vai aí a dica.

Para mais informações: http://www.phpmg.com/1-encontro-do-php-mg

Forte abraço!

Comentário (1)

O que um framework NÃO é

Olá pessoal,

sempre deparo com pessoas me perguntando se devem usar o CakePHP ou não... Ou qual a vantagem de usar o CakePHP ao invés do WordPress ou Joomla (pergunta estranha né).  Tentando esclarecer ainda mais o que é um framework, resolvi escrever o queum framework não é. Vou criar uma lista e explicar o porquê.

  1. Um framework não é um CMS: um framework como o CakePHP não é um CMS, ou seja, ele não gerencia o conteúdo de seu site. Mas nada o impede de criar fazendo uso de um framework.
  2. Um framework não é incompatível com AJAX: se você quer usar esta sigla bonita em seus projetos, um framework não irá te atrapalhar, aliás, em alguns casos, como no CakePHP, ele lhe fornece alguns helpers para trabalhar de forma mais simples com AJAX. Mas se não oferecesse, você poderia escrever seus arquivos JavaScripts na mão e ser feliz da mesma forma, não sendo assim um fator limitante.
  3.  Um framework não te engessa: se você entendeu todos os conceitos e a base de como funciona seu framework preferido, ele não deverá te engessar, pois, sempre você conseguirá criar o que deseja. É claro que se você tentar usar um framework para desenvolvimento web para criar um aplicativo desktop, não vai dar certo.
  4. Um framework não é fácil de aprender: um framework não é simples de aprender e de usar sem o mínimo de entendimento de OOP ou Programação Orientada a Objetos além da arquitetura que o mesmo utiliza. No caso do CakePHP, se você não conhece OOP não saberá a vantagem de criar e usar/não saberá criar e usar, por exemplo, components e helper. Ou o que você poderá fazer usando o app_controller / app_model, uma vez que todos os controllers e models são filhos deles. A arquitetura também lhe ajudará a entender onde colocar o que. Ou seja, quem é o tal model, view e controller e o que colocar dentro de cada um deles.
  5. Um framework não faz mágica sozinho: o framework não sabe se você quer ordenar de forma ascendente ou descendente, a menos que você diga a ele. Lembre-se, um framework te ajuda a manter o código organizado e fornecendo algumas facilidades genéricas, permitindo que você desenvolva cada vez mais rápido.

Bom pessoal, essas são algumas das coisas que vi muita gente confundindo. Caso alguém saiba de mais um fato, comente!

Forte abraço e até a próxima!

Comentários (8)

URL amigáveis em sites multi-idiomas no CakePHP

Olá pessoal,

este post é sobre algumas idéias sobre como organizar as URL's em site multi-idiomas, mais especificamente no nome dos controllers. Não sou dono da verdade, então, comentem dizendo o que vocês acham.

Esta semana me deparei com um problema em um site com versões em inglês e português. A URL em português ficava:

/produtos/informacoes/1/nome-do-produto

Isso sempre funcionou para mim, pois faz sentido para mim otimizar e ligar termo produtos, informacoes e o nome-do-produto na mesma URL. Mas o que acontece quando o site estava em inglês? Simplesmente a URL ficava:

/produtos/informacoes/1/product-name

Ou seja, estaria produtos, informacoes com a nome do produto em inglês na URL. Fato que me deixou encabulado, por misturar português e inglês.

Resolvi fazer um pouco diferente. Ao invés de usar o nome do controller como produtos, resolvi usar apenas p e deixei o nome da action como i.

/p/i/1/nome-do-produto

Ou melhor:

/p/i/produto/informacoes/1/nome-do-produto

Sendo que os dois primeiros paramêtros da action, eu simplesmente ignoro e mudo de acordo com o idioma. Em inglê ficaria:

/p/i/product/details/1/product-name

E eu sempre mantenho o id (no caso dos exemplos 1) em todas as URL's.

Levando em consideração as boas práticas de programação não é recomendável usar como nome para uma classe P e de um método (action) como i, mas para SEO creio que resolve.

O que vocês acham?

Forte abraço!

Comentários (8)