Posted: March 15th, 2009 | Author: Felipe Ribeiro | Filed under: desenvolvimento de software, funny, geeky, web 2.0 | Tags: comics, desenvolvimento de software, web 2.0 | No Comments »
Mais uma excelente tirinha do Geek and Poke:
Muitas outras estão disponíveis em: http://geekandpoke.typepad.com
Posted: October 22nd, 2008 | Author: Felipe Ribeiro | Filed under: desenvolvimento de software, eventos, php | Tags: desenvolvimento de software, eventos, php, rest, slides, web 2.0, web services | 4 Comments »
No último fim de semana (18 e 19 de outubro) houve em São Paulo o CONAPHP (www.conaphp.com.br), um evento feito pela comunidade PHP e que rolou dentro do CONISLI na FIAP.
O evento em geral foi bom, com bom nível de palestras mas o público foi um pouco abaixo do que eu esperava.
Para mim, o ponto alto foi quando estava assistindo a palestra do Elton Minetto (slides aqui) e “reconheci” um slide sobre o compilador JIT e o cache do opcode do PHP, um slide que fazia parte da apresentação que fiz em Recife no Encontro Pernambucano de SL, e para confirmar vi lá meu link nas referências, e isso me deixou bastante honrado por ter um material meu usado como referência por um ícone como o Elton.
A minha palestra foi a última e falei sobre PHP RESTful Web Services, por ser a última, o título não ser apelativo para o pessoal mais iniciante e eu ser um ilustre desconhecido da comunidade PHP de São Paulo, tive apenas metade da sala cheia, mas o feedback das pessoas que assitiram a palestra foi bastante positivo e fiquei muito satisfeito.
Os slides da palestra seguem abaixo, e o código apresentado está disponível aqui.
Quem tiver interesse sobre o assunto, deixo algumas referências:
Posted: May 26th, 2008 | Author: Felipe Ribeiro | Filed under: desenvolvimento de software, web 2.0 | Tags: desenvolvimento de software, web 2.0 | No Comments »
O nome soa estranho, mas computação em nuvem é a tradução do termo “Cloud Computing” que vem rondando o vale do Silício há algum tempo e é um conceito que assusta gigantes do mundo do PC como a Microsoft e abre espaço para milhões de pequenas empresas na Web – as startups.
A idéia da computação em nuvem apresenta uma nova maneira de organização do mundo digital, que deixa de ser “PCcêntrico” e passa a ser “WEBcêntrico”, já que a tal nuvem é a própria Web, com os softwares deixando de ser produtos e se tornando serviços.
Dessa maneira, seus dados, documentos e ferramentas estariam hospedados em grandes servidores na Web e você acessaria tudo através do navegador, que seria uma espécie de cliente universal e assim você teria acesso aos seus arquivos a partir de qualquer computador no mundo e também exigiria menos dos PCs o que possibilitaria a produção de máquinas ainda mais baratas.
E o software como serviço abole de vez com as licenças e softwares de prateleira, pois você não precisa mais instalar nada, apenas paga-se uma taxa para usar um serviço online por um determinado tempo e no caso de serviços gratuitos, alguém está pagando para você: OS ANUNCIANTES.
Isso já vem acontecendo aos poucos com a oferta de serviços na Web de suítes de escritório e ferramentas de edição de imagem, entre outros e a tendência é que nas máquinas só estejam instalados softwares básicos.
Mas por quê a Microsoft deve se preocupar?
A política da Microsoft de vender software na caixinha fica obsoleta com essa novidade, e os usuários costumavam optar pelos MS Windows pelo enorme leque de opções de softwares compatível com ele. Porém se a idéia da computação em nuvem se concretizar, as aplicações se tornam independentes de plataforma e qualquer pessoa em qualquer sistema operacional que tenha um browser que implemente razoavelmente os padrões web W3C, como o excelente Mozilla Firefox, poderá ter acesso às tais aplicações, e essa é mais uma chance que o Linux tem de decolar.
E o que ainda falta?
Na minha humilde opinião ainda existe um gap que precisa ser considerado: o gargalo da rede. As aplicações Web estão conseguindo um nível de responsividade muito alto, mas para se equiparar aos potentes computadores modernos rodando aplicações stand-alone ainda há um caminho árduo a ser percorrido e não acho que seja algo que é feito da noite para o dia, mas sim algo gradual e relativamente lento, como realmente vem acontecendo.
Posted: February 16th, 2008 | Author: Felipe Ribeiro | Filed under: apache, desenvolvimento de software, php, ruby | Tags: apache, desenvolvimento de software, php, ruby | No Comments »
“Quem cola não sai da escola”, é o ditado que a gente escuta no colégio, mas Cheat sheets e guias de bolso realmente são muito úteis quando você quer o nome daquela funçãozinha que faz exatamente o que você quer e você não lembra no momento, para consultas rápidas e não pra quem quer realmente aprender algo.
Achei algumas bem interessantes e vou compartilhar aqui até para facilitar de me lembrar depois (uma Cheat sheet de cheat sheets
):
Posted: January 31st, 2008 | Author: Felipe Ribeiro | Filed under: browsers, desenvolvimento de software, web 2.0, webdesign | Tags: browsers, desenvolvimento de software, web 2.0, webdesign | No Comments »
A dica do dia é: http://browsershots.org, um site onde você pode obter o screenshot do seu site nos mais diversos browsers em diferentes versões e SO’s. Realmente muito bacana!
Update: E para pegar um shot da pagina completa, tem esse serviço web bem bacana
Posted: January 29th, 2008 | Author: Felipe Ribeiro | Filed under: apache, desenvolvimento de software, php, regex | Tags: apache, desenvolvimento de software, php, regex | No Comments »
Você tem medo de REGEX!? Eu também!
Nos últimos tempos tenho lidado bastante com REGEX editando regras do Apache mod_rewrite e com a classe que publiquei no PHPClasses, a SiteMapGenerator Tabajara, que se propõe a gerar um mapa do site em xml no padrão estabelecido pelo Google para melhorar a indexação.
Mas depois de tirar onda da galera do Perl no post anterior, vou exaltar a importância que expressões regulares têm nas nossas validações, e para isso vou citar as 8 expressões regulares que todo programador Web deveria saber (exemplos em PHP, mas são válidos para qualquer linguagem com suporte a PCRE).
Validação de nomes de usuário
4 a 28 caracteres alfanuméricos e underscores:
$string = "userNaME4234432_";
if (preg_match('/^[a-z\d_]{4,28}$/i', $string)) {
echo "exemplo 1 ok.";
}
Validação de números de telefone
(##) ####-#### ou ##-####-####
$string = "(32) 5555-5555";
if (preg_match('/^(\(?[0-9]{2}\)?|[-. ]?)[ ][0-9]{4}[-. ]?[0-9]{4}$/', $string)) {
echo "exemplo 2 ok.";
}
Endereços de e-mail
foo@bar.foo
$string = "first.last@domain.co.uk";
if (preg_match('/^[^0-9][a-zA-Z0-9_]+([.][a-zA-Z0-9_]+)*[@][a-zA-Z0-9_]+([.]
[a-zA-Z0-9_]+)*[.][a-zA-Z]{2,4}$/',
$string)) {
echo "examplo 3 ok.";
}
CEPs
#####-### ou ########
$string = "55324-432";
if (preg_match('/^[0-9]{5,5}([- ]?[0-9]{4})?$/', $string)) {
echo "exemplo 4 ok.";
}
Endereços IP
255.255.255.0
$string = "255.255.255.0";
if (preg_match('^(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)(?:[.](?:25[0-5]|2[0-4]\d|1\d\d|[1-9]\d|\d)){3}$'
, $string)) {
echo "exemplo 5 ok.";
}
Código de cores RGB em Hexadecimal
#FFFFFF, #FFF, FFF, FFFFFF
$string = "#666666";
if (preg_match('/^#(?:(?:[a-f\d]{3}){1,2})$/i', $string)) {
echo "exemplo 6 ok.";
}
Comentários de múltiplas linhas
/* Lorem
Ipsun
dolor*/
$string = "/* commmmment */";
if (preg_match('/^[(/*)+.+(*/)]$/', $string)) {
echo "exemplo 7 ok.";
}
Datas
DD/MM/YYYY ou MM/DD/YYYY
$string = "30/01/2008";
if (preg_match('/^\d{1,2}\/\d{1,2}\/\d{4}$/', $string)) {
echo "exemplo 8 successful.";
}
Esses exemplos foram retirados do site Devolio[1] , porém algumas expressões eu alterei para ajustar aos padrões brasileiros de telefone e cep. Se por acaso fiz alguma besteira, peço que um REGEXPERT comente e corrija! E no segundo link[2] um validador de expressões regulares.
[1] 8 Practical PHP Regular Expressions – Devolio
[2] Perl Compatible Regular Expression Tester
Posted: January 3rd, 2008 | Author: Felipe Ribeiro | Filed under: desenvolvimento de software, web 2.0, webdesign | Tags: desenvolvimento de software, web 2.0, webdesign | 3 Comments »
Com o aumento da complexidade de recursos dos sites na Web, o termo Webmaster entra cada vez mais em extinção.
Antigamente, quando tudo era mais simples e feio, com sites em HTML estático e cheio de GIFs piscantes, era comum ter um cara que era responsável por tudo, o webmaster.
Mas agora é cada vez mais difícil ter conhecimento suficiente para ser um bom designer e bom programador, eu me atrevo a dizer que seja impossível. E vou justificar…
As duas áreas podem ser extremamente profundas, design não é só fazer efeitos legais no Photoshop, nem programação é apenas fazer um CRUD em drag’n'drop Net dot Net
Um profissional de design precisa ter conhecimentos teóricos na área, saber criar conceitos, prezar pela usabilidade, ergonomia, sem esquecer da beleza e do conforto do usuário com cores e formas adequadas, e isso requer estudo, não é só questão de ter um “bom gosto”. Fora que muitas vezes a arte que é mostrada no site de uma empresa é a continuação de toda uma campanha que ocorre também fora do “cybermundo”.
E um profissional de desenvolvimento de software precisa conhecer algoritmos, padrões de projetos, tecnologias diversas, técnicas de otimização de performance, segurança, etc.
Existem pseudo-profissionais que se auto-intitulam web designers e programadores, e eu sinceramente não acredito nisso. Um programador pode até escolher um formato bacaninha pra mostrar sua informação e tal, mas está longe de ser um designer profissional, e um designer pode até colocar um reloginho em JavaScript mas também está longe de ser um programador.
São mundos bem diferentes com profissionais de perfis diferentes que se juntam na Web, e para que essa junção seja mais harmoniosa, existe um cara que é híbrido, é o programador de interfaces, caras que sacam um pouco de cá e um pouco de lá e que trabalham na equipe para fazer com que as coisas encaixem mais perfeitamente, pois nem sempre um designer vai saber XHTML, CSS, e etc. Em muitos casos ele sabe criar e desenhar, o programador de interfaces que se vira para adaptar a arte dele para o mundo da Web e interagir com o sistema que é criado pela equipe de programação. Mas também há casos que designers desempenham essa função e há outros em que o programador o faz, cada caso é um caso… mas ainda não existe profissional completo que cuide de tudo, e se faz não é profissional ou não faz bem feito como deveria.
P.S.: Quero avisar aos poucos, porém queridos, leitores desse blog que meu aniversário é domingo, e caso queiram presentear esse que vos escreve, sintam-se a vontade!
Aqui vai um endereço que talvez possa lhe ajudar: http://feliperibeiro.com/wishlist
Posted: November 9th, 2007 | Author: Felipe Ribeiro | Filed under: Uncategorized | Tags: desenvolvimento de software | No Comments »
Depois de ver no relatório do Google Analytics, que algumas pessoas chegam nesse blog ao pesquisarem pelos termos “xpto definição”, “foo bar”, etc, resolvi publicar um pequeno glossário desses termos geeks que usamos e que nos fazem parecer loucos entre nossos amigos
- XPTO – Uma sigla que tem origem em letras gregas que significavam “Cristo”, mas no conceito da programação é um “coringa” que serve para nomear genericamente qualquer coisa que não tenha nome.
- FOO BAR – Assim como o XPTO também é usado como um nome genérico para qualquer coisa, e pode ser dividido, quando fazemos muitas vezes quando damos exemplos de classes e métodos – Foo.bar() – , ou métodos/funções e parâmetros – foo(bar). É derivado do acrônimo FUBAR que significa (Fucked Up Beyond All Repair).
- Lorem Ipsum – Esse termo é usado para exemplo de textos, não tem significado algum e é muito útil quando estamos trabalhando em layouts de sites ou algo do tipo, e precisamos preencher um espaço de texto para ver “como fica” e analisar os atributos de fontes e tal, o texto tradicional é assim:
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
e se por acaso você tiver precisando de um monte de Lorem Ipsum pra testar a formatação do seu site, visite http://lipsum.org/ que ele gera o texto do tamanho que você quiser.
- Gambiarra – Esse termo na boa e velha língua lusitana, significa métodos “não usuais” que usamos na codificação de softwares para conseguir dar um jeitinho e fazer o troço funcionar. Há quem prefira usar termos mais elegantes como STI (solução técnica alternativa) ou workaround, mas no fim das contas, é tudo gambiarra do mesmo jeito, e esse termo já deu origem a um “novo paradigma” chamado POG – Programação orientada a gambiarras (http://desciclo.pedia.ws/wiki/POG), e tem muito a ver com um assunto que já postei aqui, o Asshole Driven Development
Certamente existem vários outros termos que esqueci e não citei, quem quiser adicionar algo na lista, poste um comentário que eu atualizo! :]
Posted: November 4th, 2007 | Author: Felipe Ribeiro | Filed under: Uncategorized | Tags: desenvolvimento de software | No Comments »
Essa semana o CEO da Mandriva, François Bancilhon, escreveu uma carta aberta a Steve Ballmer falando da última picaretagem da MS.
O governo da Nigéria havia fechado um acordo com a Mandriva Linux para 17 mil computadores para suas escolas, esses computadores seriam Classmate PCs, da Intel e o sistema operacional seria o Mandriva customizado para a cultura e modelo de educação da Nigéria.
O acordo foi fechado, os computadores foram enviados, mas o pessoal entrou em contato com a Mandriva e disse: “we shall pay for the Mandriva Software as agreed, but we shall replace it by Windows afterward.” (Nós iremos pagar pelo Software Mandriva como combinado, mas iremos substituílo pelo Windows posteriormente).
Pra isso ter acontecido, com certeza alguma coisa muito suja houve né? Seguem alguns trechos da carta:
“I’m sure we are way too small for you to have heard of us. You know, we are one of these Linux company who is working hard to make its place in the market. We publish a Linux Distro, called Mandriva Linux.”
…
We also happen to be one of the Linux companies that did not sign an agreement with your company (nobody’s perfect).
…
We recently closed a deal with the Nigerian Government. Maybe you heard about it, Steve. They were looking for an affordable hardware+software solution for their schools. The initial batch was 17,000 machines.
…
Then, your people get in the game and the deal got more competitive. I would not say it got dirty, but someone could have said that.
…
Now, we hear a different story from the customer : “we shall pay for the Mandriva Software as agreed, but we shall replace it by Windows afterward.”
Wow! I’m impressed, Steve! What have you done to these guys to make them change their mind like this? It’s quite clear to me, and it will be to everyone. How do you call what you just did Steve? There is various names for it, I’m sure you know them.
Of course, I will keep fighting this one and the next one, and the next one. You have the money, the power, and maybe we have a different sense of ethics you and I, but I still believe that hard work, good technology and ethics can win too.”
É por essas e outras que a Microsoft vem conseguindo uma péssima reputação, como se já não bastasse produtos caros e de baixa qualidade, táticas anti-truste, ainda têm toda essa política imunda.
Clique aqui e leia a carta na íntegra