Smart.Moments.01

Você pode ler este post em português.

I’m gonna laud, praise each of that shame moments on we let our ears lay down above the eyes as a mule does, not seeing the obvious.

When you come across to a “FATAL INT18 BOOT FAILURE” error when powering a VM on, just remove any ISO and/or IDE media from the VM before start.

Virtualbox screenshot – Fatal Int18 Boot Failure

Virtualbox screenshot – Fatal Int18 Boot Failure

See you 😉

Posted in English | 1 Comment

OMomento.Esperteza.01

You can see this post in english.

Vou elogiar cada um daqueles momentos envergonhantes em que deixamos a orelha cair sobre os olhos e não vemos o óbvio.

Quando se encontrar com o erro “FATAL INT18 BOOT FAILURE” ao ligar uma VM, apenas remova qualquer media de boot anexada à ela antes de iniciar.

Virtualbox screenshot - Fatal Int18 Boot Failure

Virtualbox screenshot – Fatal Int18 Boot Failure

Até 😉

Posted in Português | Leave a comment

geeklist-php 0.1 lançado

You can see this post in english too.

Olá!

Eu gostaria de lhe apresentar geeklist-php. Esta biblioteca LGPL é capaz de retornar o conteúdo dos “Cards” de um username da rede social Geekli.st e retorná-los como uma string JSON ou um array simples para você. O truque desta lib é que ela não requer uma API do Geeklist para funcionar.

A intenção é que ela seja 100% aderente aos recentes padrões PSR-[0|1|2], traz um autoloader para tornar o trabalho com ela mais simples, e está pronta para usar com o Composer. Simplesmente adicione no composer.json de seu projeto:

{
   "require": {
   "arglbr/geeklist-php": "dev-master"
   }
}

Pegue-a, faça fork, use-a, melhore-a! À primeira vista, pode-se notar a falta de PHPDoc no código.

🙂

Até!

Posted in Português | Tagged | 1 Comment

geeklist-php 0.1 released

You can see this post in portuguese too.

Hey!

I’d like to present you geeklist-php. This LGPL library is able to fetch cards content of a given/valid username on Geekli.st social network, and return them as a JSON or simple array for you. The trick in this library is it does not require an API key from Geeklist.

It intends to be PSR-[0|1|2] compatible, brings an autoloader to make the work easier, and is ready-to-use with Composer. Simply add in the composer.json of your project:
{
   "require": {
   "arglbr/geeklist-php": "dev-master"
   }
}

Get it, fork it, use it, improve it! On the first sight, is possible to notice lack of phpdoc on the code.

🙂

Cheers!

Posted in English | Tagged | 1 Comment

Mozilla BrowserID: More one way to sign in

Você pode ver este post em português também.

Recently I have tested the authentication mechanism offered by Mozilla at July/2011.

At first sight, the idea is excelent and simple. It offers an easy alternative to be built, more secure, portable and decentralized. More one alternative for the OpenID and oAuth, with the advantage of almost everyone have an e-mail account, thus being able to deal with these much more naturally.

In your proposal, the Mozilla Labs suggests the authentication be done with first factor, using any e-mail address of the user as your identity. Say also that the authentication be decentralized and server based, instead of domain and website based. This method free the applicaton of saving the login and password attributes of the user, and the users of saving the same for each service they use on the web.

The implementation

Implementation
  • The specification can be read here;
  • Based on a public/private keys system;
  • The user browser manages the authentication artifacts locally (all of them accessible via DOM with [window|session].localStorage). So you won’t see anything related to certificates and security devices;
  • The authentication pop-up is built in HTML5.

Pros

Pros
  • Ease of implementation;
  • Short lifetime for the public / private key (only few hours);
  • Data exchange via JSON.

Cons

Cons
  • Stills on first factor;
  • Shows the e-mail user to the website that is authenticating it. There is not a side effect or something unexpected, to inform the e-mail towards the website is an architectural decision made ​​by the staff of Mozilla Labs and explained by Ben Adida. OpenID takes an advantage here because it does not reveals the e-mail user for the application;
  • There is not a way to logout, it must be done on the application side invalidating the session data;
  • The usability of the feature bothers me at some points, for example triggering a pop-up and the procedure adopted at the first time of the user on the feature;
  • Another annoyance is about the decentralization. If there is more than one authentication point, how the whole stuff works when the user navigates within different points of authentication?

Conclusion

The idea is great, my first feeling was, “Is that all?” so simple that is. Despite having more cons than pros I feel I would make available this login way if I had the chance. I’m hoping that there are more authentication providers to enforce the effect of decentralization.

We must remember that this mechanism is only a part of the process: is the authentication. The work of identification and authorization of the user must be accomplished by the application yet.

Do you wanna test it?

I tested the engine in my virtual garage (it is also its inauguration, a place where my code could be tested “@live”). Besides my garage, the Mozilla website offers the MyFavoriteBeer, a place where the login process is working with this feature.

Posted in English | Tagged , , , , | 1 Comment

Mozilla BrowserID: Mais um mecanismo de login

You can see this post in english too.

Recentemente testei o mecanismo de autenticação lançado pela Mozilla em Julho/2011.

À primeira vista, a idéia é excelente e simples. Oferece uma alternativa fácil de ser implementada, segura, portável e descentralizada. É mais uma alternativa para o OpenID e ao oAuth, com a vantagem de que praticamente todos possuem uma conta de e-mail e por isso lidam com estas de forma muito mais natural.

Em sua proposta, a Mozilla Labs sugere que a autenticação seja de primeiro fator utilizando quaisquer endereço de e-mail do usuário como sua identidade. Reza também que a autenticação seja descentralizada e baseada em servidores de e-mail, ao invés de domínios e websites. Este método libera as aplicações de guardar os atributos de login e senha dos usuários, e os usuários de guardar o usuário/senha para cada serviço na web que utilizem.

A implementação

Implementação
  • A especificação pode ser lida aqui;
  • Utiliza sistema de chaves pública/privada;
  • O navegador do usuário gerencia os artefatos de autenticação localmente (todos acessíveis via DOM com [window|session].localStorage), ou seja, nada relacionado a certificados ou dispositivos de segurança;
  • O pop-up de autententicação é implementado em HTML5.

Prós

Prós
  • Facilidade de implementação;
  • Tempo de vida curta para as chaves pública/privada (são apenas algumas horas);
  • Troca de dados via JSON.

Contras

Contras
  • Ainda é de primeiro fator;
  • Revela o endereço de e-mail do usuário para o website que está autenticando-o. Não é um efeito colateral ou algo não esperado, informar o endereço de e-mail para o website é uma decisão de arquitetura tomada pelo pessoal da Mozilla Labs e explicada por Ben Adida. O OpenID aqui leva vantagem pois não revela os endereços de e-mail do usuário;
  • Não existe uma forma de realizar logout, ele deve ser feito do lado da aplicação invalidando os dados de sessão;
  • A usabilidade do recurso me incomoda em alguns pontos, como disparar um janela pop-up e o processo adotado quando trata-se da primeira vez do usuário.
  • Outro ponto incômodo é sobre a descentralização. Se há mais de um ponto autenticador, como a autenticação funcionará quando o usuário navegar em duas aplicações com pontos autenticadores diferentes?

Conclusão

A idéia é excelente, a minha primeira sensação foi de “É só isso?” de tão simples que é. Apesar de ter apresentado mais contras do que prós sinto que disponibilizaria mais esta forma de login se tivesse a chance. Torço para que existam mais autenticadores para fazer valer o efeito da descentralização.

Só é preciso lembrar que este mecanismo é apenas uma parte do processo: a autenticação. O trabalho de identificação e autorização do usuário ainda deve ser realizado pela aplicação.

Quer testar?

Testei o mecanismo na minha garagem virtual (é sua inauguração também, meus testes poderão ser testados “ao vivo” neste local). Além de minha garagem, a Mozilla oferece o website MyFavoriteBeer onde o login já utiliza este recurso.

Posted in Português | Tagged , , , , | 1 Comment

ZCE 5.3 – Certificação Zend: Minha feliz experiência

You can see this post into english too.

Todos ficaram sabendo que obtive a certificação da Zend (ZCE 5.3). Fiquei bastante feliz com o resultado e com as congratulações recebidas, obrigado gente.

Aplausos!

Aplausos!

Deixarei aqui minha impressão sobre a prova, e sobre o que fiz para obter a certificação.

A PROVA

  • Fique calmo, a prova nem é tão difícil! Acho que o único ponto importante é que você deve ser um programador PHP, utilizá-lo no dia-a-dia, e de alguma forma (seja no trabalho ou em seus projetos pessoais) estar em contato com itens como closures, namespaces e OOP;
  • Não deixe questões em branco! Segundo o próprio pessoal da Zend, é melhor errar do que deixar de responder;
  • Com certeza a prova irá além do dia-a-dia da grande maioria dos programadores PHP. Então estude. Matemática binária / hexadecimal / octal é uma ótima pedida;
  • O teste para a versão 5.3 removeu todas as questões referentes às diferenças entre PHP 4 e 5. Então não perca tempo estudando-as;
  • O teste é cheio de armadilhas, coisas como:
    <?php
    $a = function($var)
    {
       $b = "Hello $var";
       return $b;
    }
    $c = $a('Adriano');
    print $c;
    ?>
    são normais. E se acha que este código imprime ‘Hello Adriano’, você tem um problema… rs…;
  • Faça várias leituras nas páginas String functions e Array functions, isso lhe garantirá uns pontos extras na prova;
  • Serão aproximadamente um minuto e 14 segundos por questão. Ganhe tempo lendo as questões conceituais somente uma vez. Utilize o recurso de “flag” que a prova disponibiliza para retornar à questão mais tarde;
  • Você terá um ano para realizar a prova após confirmar a compra do voucher. É bastante tempo, por isso sugiro que faça a compra e marque a prova para forçar-lhe a estudar com uma data limite definida. Todas as instruções para o processo são bem tranquilas (abrir conta no PearsonVue, etc.), apenas certifique-se de que há um centro PearsonVue próximo para realizar a prova.

O PROCESSO ADOTADO

 
Uma breve introdução: Em 2011 tive um grande susto quando comprei o voucher e abri o livro Zend PHP 5.3 Certification Guide: o PHP vai muito além de quase tudo que tinha lido até então. Decidi que deveria ler e testar muito! Foi quando elegi, adquiri e li os livros contidos no final deste post.

Após ver que tinha muito que estudar, esqueci um pouco a prova e decidi que tinha que explorar o PHP, e foi o que fiz. Li os livros, testava os códigos que me pareciam estranhos, fiz muitas (mas muitas!) anotações, e experimentei muito! Admito que foi a fase mais prazerosa de tudo isso. O website do PHP foi o melhor apêndice/anexo durante a leitura dos livros.

Ler os livros me levou muito tempo. Já quase no fim do ano, juntei todas as anotações e rabiscos nos livros e criei um super resumo, agora já com foco para a certificação. Com o resumo pronto, o li novamente. Os pontos em dúvida foram revisitados. Faltando 5 dias para a prova, separei todas as perguntas do livro guia num PDF, respostas em outro e realizei um simulado, permitindo-me somente um minuto e 14 segundos para responder cada questão, e algo entre 10 e 20 questões por dia. A intenção era buscar um “aquecimento” para a prova.

Entre um livro e outro, ouvi os podcasts do PHPSP (sinto muita falta deles!!). O foco deste podcast é PHP, então há dicas valiosas para quem quer fazer a prova. Embora confesso certo desconforto (popular: cagaço!) quando ouvi que o Rafael Dohms não passou na primeira vez que fez o exame. :-

CONCLUSÕES

 
Após essa mega-operação para obter o “The logo”, vi que exagerei na dose desta vez: estudei além do que realmente precisava, mas veja: hoje em dia me sinto um programador muito, mas muito melhor. Só que longe de onde gostaria estar. 😛

The logo - Zend Certified Engineer (PHP 5.3)

"The logo"

Sou recém certificado então não sei de verdade o que ser “ZCE” me trará de bom. Já tive duas boas notícias: ganhei uma licença de Zend Server e outra de Zend Studio por ter passado na prova. Passei a fazer parte de um grupo exclusivo no Linkedin, onde parece que as discussões melhoram de nível. Minha primeira impressão.

Quanto à empregabilidade, torço um pouco o nariz. Compare com uma certificação da Microsoft: você pode competir por uma vaga com uma pessoa que, como você, possui mais de 10 anos de experiência em sistemas. Se você tem um MCSE e ele/ela não, você está à frente. Mas concluir isso implica que a pessoa que realiza a seleção sabe disso. E é aqui que reside minha preocupação: será que os selecionadores e headhunters conhecem a Zend e suas certificações como sabem da Microsoft? Eu duvido. Então se quer se certificar para obter melhor emprego, minha opinião: não sei se funciona. Na dúvida, faça.

Enfim, estou MUITO feliz.

LEITURA RECOMENDADA

  • [Indispensável] Zend. Zend PHP 5.3 Certification. Zend Technologies. 155 páginas. Sem ISBN;
  • Shafik D, Ramsey B. Zend PHP 5 Certification. Study Guide. php|architect’s. 259 páginas. ISBN: 0-9738621-4-9;
  • Alshanetsky L. Guide to PHP Security. A step-by-step guide to writing secure and reliable PHP applications. php|architect’s. 197 páginas. ISBN: 0-9738621-0-6;
  • Sweat J. Guide to PHP Design Patterns. A practical approach to design patterns for the PHP4 and PHP5 Developer. php|architect’s. 338 páginas. ISBN: 0-9735898-2-5;
  • [Indispensável] Gutmans A, Bakken S, Rethans D. PHP 5 Power Programming. Bruce Perens’ Open Source series. Prentice Hall. 720 páginas. ISBN: 0-131-47149-X
  • [Indispensável] Williams J, Wichers D. OWASP Top 10 – 2010. The ten most critical web application security risks. Aspect, Mitre, Softtek, WhiteHat. 22 páginas. Sem ISBN.

Até 😉

Posted in Português | Tagged , , , , | 12 Comments