A good birthday

I’m pretty happy, there was a tiny left towards a perfect day.

I had good chats with the whole family.

The friends I care about also remembered, called me, sent messages.

I had a long conversation with my father, I could thank him for teaching me what he taught.

I visited my mother, spent some time with her (time passes so quick) and with my brothers. I got cake, “happy birthday to you” and hugs.

Guys of the apartment also sang.

To be perfect, I just miss Lelê, who I talked a lot during the day.

And that stupid dog, Falk.

How to install Skype on Fedora

I’ve been using this bash script for a certain time to install Skype on my Fedora boxes and it has been working very well. The install brings resources like Skype Video working like a charm, so, it needs to be shared :-).

To do the install, you’re able to clone the Git repo or download it from Github:

git clone https://github.com/arglbr/SkypeOnFedora.git

Uncompress the zip and execute the “installskype” bash script. It will do the installation on your /opt, with a bash script to execute it at your /usr/bin..

Have fun!!

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 😉

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!

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.

ZCE 5.3 – Zend Certification: My happy experience

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

I’m very happy with the result and with the congratulations received, thank you people.

Applause!
Aplausos!

I wrote here my impression about the test, and what I did to get certified.

THE TEST

  • Calm down, take it easy, the test is not so hard! I think the only important point is that you must be a PHP programmer, using it in day to day, and somehow (at work and/or in your personal projects) being in contact with items as closures, namespaces and OOP in general;
  • Do not leave questions empty! According to Zend’s own staff, is better to make mistakes than show indecision;
  • Surely the test will go beyond the day-to-day which the majority of PHP programmers go. So study a lot. Binary / hex / octal math is a great choice;
  • The test for version 5.3 removed the subject “Differences between PHP 4 and 5”. So do not waste your time studying it;
  • The test is full of pitfalls, so some tricks as:
    <?php
    $a = function($var)
    {
       $b = "Hello $var";
       return $b;
    }
    $c = $a('Adriano');
    print $c;
    ?>
    are normal. And if you think this code prints “Hello Adriano” you have a problem… LOL…;
  • Do several readings on Array functions and String functions pages, it will guarantee to you some extra points;
  • There will be approximately one minute and 14 seconds per question. Save time reading the conceptual questions only once. Use the “flag” feature, that allows you to return to a marked question later;
  • You will have one year to perform the test after confirming the purchase of the voucher. It is a long time, so I suggest you make the purchase and schedule the test to force yourself to study with a set deadline. All instructions for the process are very easy (to create an account at PearsonVue, etc.), just make sure that there is a PearsonVue center near to you to perform the test.

THE PROCESS ADOPTED

 
An introduction: In 2011 I had a big scare when I bought the voucher and I opened the book Zend PHP Certification Guide 5.3: PHP is much more than almost anything I had read so far. I decided I should try and read a lot! So I chose, bought and read the books contained at the end of this post.

After seeing that I would have much to study, I forgot the test and I launched a deep PHP exploration. I read the books, I tested the code that seemed weird, I did many (but many!) notes, and I did lots of experiences! I admit it was the coolest stage of this whole thing. The PHP website was the best appendix while reading the books.

The reading of the books took me a long time. Almost at the end of 2011, I put all that notes and scribbles in books together and I created a summary, focused now in ZCE. With the summary ready, I did read it again. The points in doubts were revisited. Five days before the test, I splitted all questions and answers in different PDFs, then I did perform the test as a simulation, allowing me only one minute and 14 seconds to answer each question, doing something between 10 and 20 questions per day. The intention was to do a “warming” towards the test.

Between one and another book, I listened to the PHPSPCast podcasts (only in brazilian portuguese, I miss them!). The focus of this podcast is purely PHP, so there are valuable tips for anyone who wants to get the certification. Although I confess some discomfort when I heard that Rafael Dohms did not pass the first time he performed the exam. :-

CONCLUSIONS

 
After this mega-operation to get the “The logo”, I concluded that I overdid at this time: I studied more than really needed, but look: now I’m a much better programmer than before. And I feel myself far from where I would like to be. 😛

The logo - Zend Certified Engineer (PHP 5.3)
"The logo"

I’m newly certified then I really don’t know what be a “ZCE” will bring to me. But I’ve had good news: I won licenses for Zend Server and Zend Studio with this good result. I became part of an exclusive group on LinkedIn, where the discussions have an improved level. My first impression.

About employability, I twist my nose a little bit. Compare with a Microsoft certification: you can compete for a job position with a person who, like you, has over 10 years of experience in software branch. If you have a MCSE and he/she does not, you are ahead, brother. But this conclusion implies the recruiter which is conducting the selection knows what MCSE is. And here lies my concern: do the recruiters and headhunters know about ZCE as they know about Microsoft certifications? I doubt it. So if you want to get a better job, my opinion: I don’t know if the ZCE will works for it. At doubt, do the exam.

RECOMMENDED READING

  • [Necessary] Zend. Zend PHP 5.3 Certification. Zend Technologies. 155 pages. ISBN unavailable;
  • Shafik D, Ramsey B. Zend PHP 5 Certification. Study Guide. php|architect’s. 259 pages. 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 pages. 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 pages. ISBN: 0-9735898-2-5;
  • [Necessary] Gutmans A, Bakken S, Rethans D. PHP 5 Power Programming. Bruce Perens’ Open Source series. Prentice Hall. 720 pages. ISBN: 0-131-47149-X
  • [Necessary] Williams J, Wichers D. OWASP Top 10 – 2010. The ten most critical web application security risks. Aspect, Mitre, Softtek, WhiteHat. 22 pages. ISBN unavailable.

 
 
See you 😉

How to configure static routes in Fedora

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

Routes. The unique way I like to see them:

Signs and routes

Recently I had to do a fix inside the routing table of a server. I’ve found out a better and more elegant way than this usual:

touch /etc/rc.d/rc.local
echo "touch /var/lock/subsys/local" > /etc/rc.d/rc.local
echo "route add default gw 10.10.0.1 eth0" > /etc/rc.d/rc.local
echo "route add -net 10.1.0.0 netmask 255.255.0.0 gw 10.2.0.1 eth0" > /etc/rc.d/rc.local

Inside Fedora GNU/Linux, static routes can be added in specific files for each one of its interfaces. These files are located at /etc/sysconfig/network-scripts/. The filename must match the route-ifname format. So if you want to add a route to the eth0 interface, the filename must be called /etc/sysconfig/network-scripts/route-eth0. It’s an important detail because an error naming in this file isn’t able to produce any error/warning log in anywhere.

The file content is quite simple. The examples below worth more than the explanation:

#Add a route to a network:
10.1.0.0/16 via 10.2.0.1

#Add a route to a host:
10.1.2.3 via 10.0.0.5

After done, is possible to test your new routes using the ifup-routes ifname command. It adds the configured routes to the active routes table.

 

See you 😉

Fedora installed IN the USB stick

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

“Long time no see, blog” 😉

Daniel Faraday - Long time no see
Daniel Faraday - Long time no see

For a while I tried to use the XFCE Spin from Fedora as an alternative to continue on GNU/Linux and keep the corporate laptop without changes in your default settings. Upset with the performance of the Live ISO, I decided to do the OS installation directly on the USB stick.

The difference, at performance at all, is impressive. If like me, you do want to have a distro ready to allow you keep working even on a PC other than your own, forget the LIVE versions and install the OS directly on the USB stick. Works like a glove, you will have better impression and will get a better user experience than with the previous option.

The only problem I had was that during this process I discovered what might be a bug in the E6420 Latitude models of Dell: If you disable the hard disk through the BIOS your CD/DVD won’t be able to perform a boot, so it only will be possible from an USB. The strange thing is that only just enabling the hard disk makes the CD/DVD be able to dispatch the boot again. In these situations I like to turn off the hard disk to prevent any unwanted change during the install.Fedora USB Stick

The installation was finally done with two USB sticks: on the first of them I installed a LIVE version, I did the boot with the two USB drives connected and after the whole boot process I used the icon “Install on Hard Disk” to install the OS on the second USB stick. With everything working OK, I enabled the hard disk in BIOS again.

The laptop will keep the programs and settings within the corporate standards and I’m able to work happily in an OS I’m more productive.

 

See you! :-).