Usando o Silex Bootstrap (http://github.com/lucasmezencio/silex-bootstrap).
config.ini
bootstrap.php
app.php
index.php
Think about your life because one day can be too late!
Usando o Silex Bootstrap (http://github.com/lucasmezencio/silex-bootstrap).
config.ini
bootstrap.php
app.php
index.php
Então pessoal, dessa vez foi realmente foda.
NUNCA fiquei tanto tempo sem postar aqui, e tipo, não devia ter feito isso. Seriously.
Tirei férias, peguei freela, quebrei o dedo mindinho da mão esquerda, aprendi a mexer com ‘opensocial’, aprendi a mexer com muita coisa, comprei um Motorola Milestone (com Android!! Daqui a pouco, posts sobre Android aqui pra vocês!!), troquei de emprego, troquei de emprego de novo.
Enfim, no meu novo emprego, na Plan B, passei por um probleminha não muito comum (eu acho), lidar com PHP buscando dados de uma base em SQL Server 2005.
Eu estava trabalhando num arquivo cuja codificação era UTF-8. Na hora de exibir os dados vindos do banco, dava erro na codificaão, exibindo aquele caractere com uma ‘?’ dentro de um losango (acho que todo developer conhece esse símbolo!! hahaha..).
Fui tentando as opções de praxe:
<?php echo utf8_encode($bd->nome); echo utf8_decode($bd->nome); echo utf8_encode(htmlentities($bd->nome)); echo htmlentities(utf8_encode($bd->nome)); echo utf8_decode(htmlentities($bd->nome)); echo htmlentities(utf8_decode($bd->nome)); ?>
Acontece que a collation padrão do SQL Server é SQL_Latin1_General_CP1_CI_AS. E isso eu só descobri depois.
Qual foi então a minha solução?! Depois de umas belas pesquisadas e uma grande ajuda do Leandro Rodrigues, conseguimos foi na query de busca dos dados, fazermos um CAST no campo e definimos a collation dele ali mesmo, dessa maneira:
SELECT CAST({campo} AS {tipo}) COLLATE {collation} AS {alias} FROM {tabela}'
Então, o caso foi colocar a collation ‘Latin1_General_BIN’, ficando assim:
SELECT CAST(nome AS nvarchar(255)) COLLATE Latin1_General_BIN AS nome FROM usuarios'
E depois, colocar no PHP a função ‘uft8_encode();’ na hora de exibir os dados.
<?php echo utf8_encode($bd->nome); ?>
Pra quem nunca mexeu com SQL Server e achar estranho, eu digo SIM, existe um tipo de dado chamado ‘nvarchar’, com esse ‘N’ na frente mesmo. ;D
Então é isso, a solução foi essa e funcionou perfeitamente.
Um grande abraço, pessoal!!
Olá pessoal, quanto tempo, né?! Pois é, abandonei meu blog, mas vou voltar!
Hoje passei por um ‘problema’ novo na empresa onde trabalho. Numa página que faz uma requisição Ajax com jQuery, no Firefox 3.1, a requisição estava retornando erro ‘411 Length Required’. Esse erro é retornado pelo browser quando em uma requisição HTTP não é retornado o tamanho do resultado, o que em alguns casos, pode fazer com que o browser não consiga calcular o tempo de download da página, por exemplo. Ao que me pareceu, o Firefox 3.5 sabe tratar isso, porém, o 3.1 não. Não testei no Chrome, IE, Opera, etc, mas creio que pelo menos o IE não sabe tratar isso também.
Normalmente, esse erro é obtido em requisições Ajax. Nesse post não vou entrar em detalhes sobre como especificar o tamanho de uma requisição no cabeçalho de uma página com Ajax puro, vou pular diretamente para jQuery, que foi onde tive esse ‘problema’ hoje.
Uma requisição Ajax simples em jQuery (depois vou criar um post sobre como criar requisições Ajax com jQuery), funciona assim:
$.ajax({
type : 'POST',
url : './pagina.php',
success : function(data){
alert(data);
}
});
Essa requisição simplesmente ‘chama’ o conteúdo da página ‘pagina.php’ e executa um ‘alert’ no retorno. O Firefox 3.5, como coloquei acima, executa esse script normalmente, pegando o retorno ‘data’ e colocando no ‘alert’, porém, no Firefox 3.1, o script não é executado e o erro ‘411 Length Required’ é retornado.
Esse erro é retornado, pelo fato de nenhum parâmetro estar sendo enviado para a página ‘pagina.php’, para resolvermos esse problema no jQuery, basta colocarmos a linha:
data : {}
Ficando assim:
$.ajax({
type : 'POST',
url : './pagina.php',
data : {},
success : function(data){
alert(data);
}
});
Com apenas isso, o Firefox 3.1 e outros browsers que não interpretam o tamanho da requisição quando não é enviado nenhum parâmetro para a página de destino, continuam executando o script normalmente.
Espero que tenha ajudado.
Um abraço e uma ótima semana! =]
O blog Bitcetera apontou 10 razões que mostram como o PHP ainda é melhor do que o Rails. Você concorda?
O mundo da tecnologia é repleto de duelos: o mais emblemático deles é o PC x Mac. Há outros, no entanto, que merecem ser lembrados: Linux e Microsoft; Oracle e SAP, Blu-ray e HD-DVD (que jogou a toalha) e, no terreno do desenvolvimento, o Ruby on Rails versus o PHP. Mas será que há realmente alguma linguagem que seja melhor?
Há algum tempo, Gregg e Jason formaram uma dupla e gravaram uma série de vídeos falando sobre a superioridade do Ruby on Rails em relação ao PHP. Cada um deles era uma linguagem e o cara do Rails acabava indo para praia enquanto o do PHP tentava trocar o banco de dados. A ideia era mostrar como o Ruby, rodando no framework Rails, era muito mais rápido que o PHP.
O blog Bitcetera, no entanto, apontou 10 razões que mostram como o PHP ainda é melhor do que o Rails, abusando da ironia e do humor. “Muitas pessoas morrem todos os anos nas praias, enquanto o risco de cair morto na mesa do escritório é próximo de zero. De fato, dirigir para o trabalho e outras coisas que um programador faz em seu tempo livre são muito mais perigosas do que trabalhar num código e, por mais tempo que leve, é melhor para a sua integridade”, diz o post.
Numa outra análise muito aprofundada, os ‘defensores’ do PHP lembram que um código enxuto não paga as contas. “A menos que você esteja trabalhando num projeto próprio, um código enxuto vai fazer com que o seu salário também dê uma enxugada”, afirma o blog. Eles explicam: são menos horas copiando e colando, menos hora fixando o mesmo erro em dez diferentes linhas e menos tempo para encontrar bugs. Tempo é igual a dinheiro quando se trabalha por hora.
Para ver as 10 razões que mostram como o PHP ainda é melhor do que o Rails acesse o blog Bitcetera. Já um o vídeo do PHP versus Ruby on rails está no Youtube.
Fonte: Info Professional
Olá pessoal, essa noite, conversando com o Breno (@brenowd), ele veio me perguntar como funcionam os ‘snippets’ no Zend Studio.
Pra quem não sabe, ‘snippets’ são templates, ou seja, partes de códigos prontas para agilizarmos nosso trabalho. Na minha opinião, snippets nos deixa um pouco preguiçosos, mas dependendo, realmente nos quebram um galhão! Hehehe..
Bem, o Breno estava acostumado a usar o Dreamweaver, e queria passar a usar o Zend, e estava querendo criar um snippet para um SELECT de uma query MySQL. Então, mãos à obra.
Para criar um snippet no Zend Studio for Eclipse 6, vamos no menu Window > Preferences:
Na janela que abre, no campo de pesquisa, digite snippet, logo em seguida em PHP > Templates:
Vou dar o exemplo aqui, da criação de um snippet de uma query em MySQL, um SELECT pra ser mais preciso. Clicando em New, temos essa tela:
Em ‘name’ você coloca uma palavra para identificar o snippet que está criando, e ao mesmo tempo, a palavra que vai iniciar seu snippet. Em Context é o contexto da linguagem, PHP, PHPDoc ou New PHP (não me pergunte o que é New PHP), e em Pattern, o padrão do nosso snippet. Coloquei assim:
SELECT {$campos} FROM {$tabela};
Onde ‘{$campos}’ e ‘{$tabela}’ são, simplesmente, onde você quer que o cursos de posicione quando você acionar o snippet. O cursor ficará com o ‘{$campos}’ selecionado primeiro, e depois que você digitar qualquer coisa e der tab, ele pulará diretamente para o ‘{$tabela}’. Nesse print, esqueci de colocar o ‘{$END}’ que é onde você quer que o cursor pare depois que der o último tab:
Na imagem anterior, mostro como usar o snippet dentro da função ‘mysql_query’, por exemplo. E o snippet é acionado pelo ‘name’, ao digitar, no meu caso, ‘select’ e teclar ctrl+espaço:
Então, esse é o meu tutorial sobre snippets. Espero que sirva para alguém! =D
O 1º Encontro PHP-MG, que será realizado no dia 25/04/2009, será um evento focado no mercado de desenvolvimento web, proporcionando aos participantes o contato interpessoal e o conhecimento das melhores práticas e últimas novidades e tendências, no que se diz respeito à tecnologia.
O evento visa propiciar aos participantes uma oportunidade inédita no estado, de troca de conhecimentos e networking entre os profissionais mineiros, através de palestras cobrindo os seguintes temas:
Pretendemos com essa realização, fortalecer a comunidade mineira de desenvolvedores PHP, e divulgar para todo o estado, o potencial dos profissionais da região.
Pré-inscrição
Realize aqui a sua pré-inscrição para o 1º Encontro do PHP MG.
Patrocínio Ouro
Pois é, como vocês puderam perceber, há muito não passo por aqui.
É, estuo TOTALMENTE se tempo, ocorreram várias mudanças na minha vida, e como consequência disso, não pude passar aqui tão cedo. Troquei de emprego, mudei de cidade, etc, etc, etc… Tudo isso acabou com meu tempo!
Mas estou empenhado, a partir de hoje, a postar, pelo menos uma vez por dia. O trato comigo mesmo é o seguinte:
Hoje está começando um noco ciclo na minha faculdade, e com isso, são duas matérias novas.
‘Mas como assim?’, você deve estar se perguntando: ‘No meio do segundo semestre, está começando um ciclo novo?’. Na minha faculdade, o processo de matérias e ensino é diferente. Se vocês não sabem, estou fazendo um curso tecnólogo (Tegnologia em Desenvolvimento de Sistemas para Internet), que não é totalmente superior, porém, é mais voltado para a área em questão e consequentemente, é por um período mais curto, apenas 2 anos e meio. Voltando ao assunto dos ciclos, funciona da seguinte maneira:
A cada 5 semanas, temos um ciclo, constituído por 2 (duas) matérias em 2 (dois) horários por dia.
O tempo é menor do que o semestre (período), porém, você não se embola, nem se mata por 8 matérias por semestre. Eu acho bem melhor.
Com essa questão do 3º ciclo do 4º módulo estar começando hoje, decidi fazer o seguinte: vou postar, todos os dias, o assunto referido em aula. Seja ele provas, trabalhos, etc.
Então, para quem tinha até esquecido do meu blog, a partir de hoje vai ter muita coisa!
Ahhh! E pra quem está achando que os posts serão somente sobre a faculdade, estão enganados. Creio eu, que com esses posts da faculdade, terei mais empolgação e idéias para posts.
É isso então e até mais tarde! =P
Atualização:
Como poderia me esquecer! Pra quem não sabe, estou trabalhando agora na Studio Sol Comunicação Digital, já se passaram 45 dias, um mês e meio. Estou gostando pacas e o pessoal de lá é super! Aprendi JavaScript e Expressões Regulares na marra e estou gostando demais! Afinal, /(bb|[^b]{2})/ eis a questão!
Ando vendo por aí, muitas coisas sobre URL’s amigáveis.
Uma URL amigável, é aquela que só de ‘bater o olho’ você já sabe do que se trata, como a URL deste post:
htp://lucasmezencio.com/2008/08/12/urls-amigaveis
Com isso, você já sabe que se trata de um post do ano de 2008, do mês de agosto, do dia 12, que se chama ‘url-amigaveis’.
Eu nunca fui muito a favor desse tipo de URL pelo fato de às vezes, na minha faculdade e meu antigo trabalho, eu tentar acessar algumas páginas e não conseguir, tais como:
http://forumseilaoque.com/programacao/php/topicos/funcoes-legais
Na minha faculdade, por exemplo, eu não conseguiria acessar essa página pelo fato de, no meio da URL conter a seguinte combinação de letras: ‘(…)php/toPICos/func(…)’. O proxy da minha faculdade, barra essa URL por achar que se trata de uma palavra pornográfica (isso mesmo gente, PICA).
Com essa idéia, meu blog não possuia as tais URL’s amigáveis. Mas, visando que, realmente a forma de entender o que se passa em uma URL enviada por um amigo ou conhecido seu, fica muito melhor, resolvi mudar, a partir de hoje, a maneira de mostrar URL’s no meu blog.
Espero que tenham gostado! 😛
Abraços!
Certificado de download do Firefox no Download Day 2008!
Aeeeeeeeeeee!!!
A Mozilla está oferecendo um “certificado” para quem baixou o Firefox no Download Day 2008. Para pegar o seu basta clicar aqui.
Pois é pessoal, duas semanas depois (!!!) e só hoje tive tempo para terminar esse post!
Como vocês podem ver, eu copiei o artigo “antigo” e agora vou colocá-lo “completo” para vocês.
É hoje!!
Mal mal cheguei e a VeriSign já me deu uma camisa com o slogan “queromeu.com” já fazendo propaganda da mais nova campanha deles: Meu negócio é .com”. Pelo que entendi, a campanha pretende chamar as pessoas que tem seu .com para contar a história do seu .com:
“Meu negócio é .com” é o novo tema da campanha publicitária da VeriSign.
E se você tem um site com domínio .com, esta é a sua oportunidade de divulgar para todo mundo.
Envie um e-mail ou vídeo para depoimento[em]queromeu[ponto]com, contando quais as vantagens de ter um site com domínio.com e como isso contribuiu para o sucesso dos seus negócios.
Seu depoimento será divulgado no site www.queromeu.com a partir de julho. Participe.
Esse é o folder que veio com a camisa. Interessante a idéia, mas o que falar?:
– Ah! Eu tenho meu lucasmezencio.com há tantos anos e gosto muito dele!
Sei lá… Não gostei muito da idéia, mas vamos ver!
Palestra do Gilberto Maltner (Presitente da Locaweb), Tendências do Mercado na Internet
1. Amadurecimento de softwartes OpenSource
2. API’s
3. Web Multimodal
4. Novas linguagens e frameworks de desenvolvimento
A palestra já começa com um filminho de uma retrospectiva desde 1998, muito interessante. Logo após isso ele começa uma palestra/aula de Ruby on Rails criando um blog em menos de 3min!!! Claro, com alguns errinhos, mas ele criou!!! E funcionou! Muito interessante para uma boa parte dos espectadores, para outros, nada feito, todo mundo com cara de sono.
Códigos! Foi assim que começou essa palestra e o evento em si: muitos códigos! Como o nome do evento já diz: Encontro Locaweb de Profissionais da Internet, ou seja, na minha opinião, iriam muitos programadores, mas para minha surpresa, foram muitas pessoas que não eram programadores.
Criando um blog guestbook em Ruby on Rails ele já começa falando: “APRENDAM RUBY!”
Nem comento… Sempre quis aprender Ruby, mas a falta de tempo acaba comigo!
1. SugarCRM, Ringside, Codeplex.com (Micro$oft), freshmeat.net:
Até a Micro$oft entrou na era do opensource! Pois é! O “beta-eterno” está por aí! E veio pra ficar!
2. API’s, Facebook API, dev.live.com (Micro$oft de novo!), OpenID:
Pois é, o Google já lançou o OpenSocial, agora vem a Micro$oft! Vai entender! Mas é isso mesmo, não tem jeito, se não é aberto, não é customizável, se não é customizável, o usuário não quer.
3. Crescimento contínuo, alta disponibilidade, recursos garantidos, economia de escala, gerenciamento de configuração:
“Beta-eterno” de novo -> crescimento contínuo.
O resto é como falado no #2 -> customização.
4. Saber HTML/CSS, desenvolvedor multimodal:
Você é desenvolvedor web? Pois então trate de saber HTML e CSS! Isso é básico e ESSENCIAL!
Desenvolvedor multimodal -> RSS, Ajax, Rest, Flash, iPhone………..
jQuery? Rails? CodeIgniter? -> Não importa, o que importa é saber!
Agilemanifesto.com
-> o cliente sempre tem a razão!
-> individuals and interactions
-> working software
-> customer collaboration
-> responding to change
Muita coisa sobre MVC, muita mesmo! Realmente, se for parar pra pensar, MVC é muito bom! Principalmente quando se trata de desenvolvimento de softwares, mais uma ves o Ruby entra no meio: Rails é todo em MVC. E uma ótima pedida também para o desenvolvimento de softwares é o Scrum, uma maneira de orientar o projeto de desenvolvimento simples e completa. Vale a pena saber sobre os dois!
E mais uma vez ele diz: USE Ruby on Rails!!!
Palestra do Elcio (Diretor da Visie Padrões Web), Produtividade: Padrões web, frameworks, jQuery, controle de versão e outras ferramentas
1 -> Escreva menos
2 -> Escreva uma vez só
3 -> Escreva rápido!!!
A palestra já começa boa! jQuery na alma do Elcio! Ele cria um menu mostra/esconde, em menos de 30seg! Duvidam? É só procurar na internet sobre o evento que vão ver que eu não estou mentindo! Ele tem a manha em jQuery!
Dados X Algoritmos
Não escreva códigos, mas sim dados!
Ele mostra muitos códigos em python, css, html, javascript, e… LASAGNA???
Pois é! Lasagna, o mais novo framework feito pela Visie, mas calma, só eles possuem o tal, é claro. O Lasagna tem tudo! Até controle de versão! Putzzzz, tomara que eles disponibilizem isso pra gente depois! 😛
Controle de versão, o Elcio falou muito sobre controle de versão, e ainda friza: usem subversion.
Teste seu software!
Meça seu software!
Na minha opinião, a melhor palestra do evento! Como a palestra do Luli no Interminas, só quem tava lá mesmo pra saber como foi a palestra.
Palestra da Micro$oft, “Fator Uau”
Propaganda, propaganda, propaganda…
E mais propaganda…
ALMOÇO CONSTRUTIVO COM ELCIO
Pois então… Fomos almoçar: Eu, @gutomezencio, @williamtrava e @jonathanpereira (Favo Internet), @nops e o @elcio… Durante a palestra da M$ estávamos combinando de almoçar no Burguer King do Minas Shopping, mas quando chegamos lá cada um foi prum lado diferente! Hehehe… Mas todo mundo ficou na mesma mesa.
Muito bacana o almoço e bastante construtivo. Várias dicas sobre crescimento pessoal e profissional.
Palestra do Google, Desenvolva seus negócios com soluções do Google
Muita coisa sobre Web 2.0, muitos números e dados sobre o crescimento da Web 2.0.
Até então bacana, números não é uma coisa que a maioria das pessoas gosta, mas dependendo do que se fala ($) até que o pessoal não liga muito, então o início da palestra não foi muito bem aceita. Depois dos números, começou uma espécie de propaganda, afinal, o Google É propaganda! Porém, a propaganda do Google é uma coisa bem aceitável, pelo menos pra mim, porque é uma propaganda, digamos assim, construtiva.
O Google sempre faz propagandas dos produtos/serviçoos deles, mas os mesmos são gratuitos! Além de “fazer bem” ao seu negócio! O Google Analytics por exemplo, faz uma análise completa do seu site, desde acessos a tempo de permanência em páginas.
Escritório na web com o Google Docs. Propaganda com o Google AdSense.
Propagandas do Google à parte, gostei da palestra.
Palestra do Gil Giardelli (VP da Adrenax Venture Capital, sócio fundador da Permission Inteligência Digital), WWW x WWD – A Internet Inteligente
O que é sólido, desmancha na rede.
Inovação, SEMPRE! (Luli?)
Novas plataformas para um novo marketing, foco nas colméias, não nas abelhas.
INOVAÇÃO!
Interatividade, colaboração.
WWW x WWD => World Wide Web x World Wide Database
A internet deixou de ser uma “rede”, e hoje é sim, um “banco de dados” gigantesco. Propagandas? Filmes? Novelas??? O que era da televisão, hoje está na internet. Tudo está migrando para a internet.
Infelizmente o resto eu não prestei atenção direito… Estava tratando de “negócios”… Vocês irão saber mais nos próximos posts!
Começou!!! Postando direto to Interminas!
Palestra do Caio Cesar (caiocesar.cc), Desenvolvimento Web Centrado ao Usuário.
Parece que o pessoal do Twitter não tá gostando muito da palestra do Caio.
Quem é profissional, não usa Hotmail.
O cara ODEIA a Micro$oft!
Palestra do Abel Reis (presidente da agência Click, agenciaclick.com.br), Criação e Tecnologia nos Tempos de Internet
No início era aula de história, agora tá legal!!!
Propaganda da Nokia muito legal!!!
Puta caso de interface! MUUITO legal!!!
Tecnologia e Criativada == Mesma coisa?!
Comunicação digital é tudo, porém um desafio enorme.
Mundo antigo:
Marcado de amssa
Grandes audiências e platéias
Comsumidor paciente
Atenção
Mundo de hoje:
Mercados de 1
Pequenas audiências de conversações
Comsumidor exigente
Participação
Mesa redonda sobre o mercado mineiro da internet com Marlos Carmo, Paulo Valadares, Rodrigo Bressane, Rafael Apocalypse e Ronaldo Gazel
Chamando o pessoal para subir ao palco.
Rafael Apocalypse falando sobre os mercados de Minas e São Paulo e sobre sua saída.
Pessoal discutindo sobre o mercado e a hospitalidade de Minas na área de tecnologia.
Gazel falando sobre a experiência dele com o “grande” mercado mineiro.
Zueira, e mais zueira.
Pessoal zuando o Bressane no Twitter e tudo aparecendo no telão!
Algumas pequenas “discussões”.
Palestra da Maria Lúcia Antônio (FIAT), A Importância do Universo Digital no Marketing de seus Negócios
Propaganda da FIAT melhor que essa impossível.
4 cases da FIAT fizeram a “palestra”.
Nada mais a declarar……
Painel com Carlos Merigo (Brainstorm #9 e Fischer America) e Fabio Seixas (Camiseteria), “Despalestra” – Visão Crítica da nova Internet e como ela Influencia no Brasil
De acordo com o blog Favo Internet:
Depois de uma entrada digna de profissionais de internet, novos, e provavelmente antigos nerd’s (sem qualquer preconceito), o BrainCast foi um sucesso.
Estive tão antenado com as discussões que tenho tenho apenas 3 coisas falar:1. Repito, com outras palavras, o comentário pelo Fábio Seixas: “Tudo na internet começa com os nerds”. Perfeito!
2. Arg’s: Caminho inverso: – A comunicação nasce na net para então mobilizar os internautas em seu mundo real. Excelente!
3. A diferença entre a rede social de camisetas para a rede social de sapatos da West Coast. Não se tem uma idéia a partir do anseio de utilizar uma nova ferramenta. Maravilhoso!By William Trava
Palestra do Luli Radfahrer (Professor-Doutor ECA/USP), Internet: O que Veio pra Ficar e Não Muda Mais?
Uma só palavra:
Perfeita!
Isso mesmo! Palestra perfeita! Não tem o que comentar! Quem estvaa lá viu, ouviu e sentiu!
Uma coisa: o cara conseguiu deixar a tag #interminas parada por uma hora no Twitter!!! Precisa falar alguma coisa? Acho que não…
Sem noção!
Lembram do BH Coding Dojo? Pois então, o projeto foi “descontinuado”.
Vários motivos levaram a este triste fim. Um dos idealizadores, o Ronaldo Ferraz, mudou-se para São Paulo, o outro, Diógenes não se manifestou mais, quem participou das (apenas) 2 ediçoes do Dojo também ficaram quietos.
É triste como a cena de programação em Belo Horizonte não é ativa. Pelo que sei (afinal, tem pouco tempo que faço parte dessae grupo) quase não aparecem palestras, eventos e afins sobre programação por aqui.
Como o BH Coding Dojo foi “descontinuado”, eu, o Marcelo Torres, o Gilberto Saraiva, o Bruno Souza e o Victor Gollnik, resolvemos “retomar” a reunião.
O nome mudou, agora se chama BHCode, remodulamos um pouco a questão do Dojo pelo fato de muitas características do mesmo não se adequar ao que pretendemos com o novo grupo, mas algumas características se mantêm.
Quem se encontra interessado, o link acima o leva a todo o conteúdo do BHCode.
Conto com a presença do pessoal de programação de BH.
Um abraço a todos!