This week I’m excited to introduce you to Antonio Carlos Ribeiro. Antonio is a developer, photographer, and loves to help others and share knowledge.
Can you tell us a little about yourself? How’d you get into development?
I’m a 43 years old brazilian, father, grandfather, and I live in Rio de Janeiro. When I was 14, living in Switzerland, I got amazed by Commodore 64. Not having enough money to buy one, because my mother was in the country to work and had a lot of expenses with me there too, everyday I went to a big department store, in Lausanne, to understand those things. At that particular store I decided computing was my thing and I would do everything to get into it. Unfortunately computing was something taught only in college, and two years later, I was too old to get in, according to Swiss rules. So I got back to Brazil, but, in 1986, we were in the Lower Paleolithic here, no information, no books, almost no hardware, so I made another decision: to self-educate myself. Got my hands on some magazines and books, but they were all in English, I was fluent in French and knew some Italian and German, but not a single word of English, so I had first, or at the same time, to be self-educated in a new natural language. Four years later I was occupying a position as programmer in a government company of my State, developing in Clipper.
My degree in technology happened twelve years later, and only because, sometimes here, it helped to have one. I was thinking about a getting a government job, which gives you stability in Brazil. To get in you need to pass in a exam (concourse) and you usually need to rank top 10 or 20, between 5000 candidates, and if you have a degree, you get a better position, you get more money. I finally got in and now work for the Rio de Janeiro’s Legislative Assembly, in the Information Technology area, but unfortunately not in development but in Linux systems and networking, managing Cisco routers and switches.
In 2001 I started a company with Anselmo and divided myself in two very different jobs, one to pay the rent and the other to have fun developing applications.
I dealt with a lot of different languages during my way in development, most of them compiled and for the DOS/Windows platform, the very last one, Delphi, I used to develop, with a partner, a big health management software, for about ten years, in a join venture with a partner company which, after 10 years of development of the products, but only 3 of “real” break even, unilaterally broke the contract and got us out. Before my company went bankrupt, my partner and I decided to shutdown all services, we were also a web host company at the time, and it was a lot of work to settle every single client out and well.
And I just got myself a blank slate, or a half blank one.
How’d you first find Laravel?
A year and a half ago, I decided to move to something completely different from what I was doing: finally enter the web application development world. As a web hosting company, I had to, sometimes, write and fix some web scripts, most of them in procedural PHP, but also in Perl, Python, JSP and even ASP, but PHP was the most fun to write with, so I decided to stick with it and just find a good framework to help me be productive. As most of the work I did in Delphi was to architecture, create and support a development framework for creation of our applications, I knew there were a lot of code to be written before we even start to built an application, and writing it myself would just be a lot of time wasted on something I would probably not be able to create as good as a Taylor Otwell would, and did.
We had already made a choice on CodeIgniter once, our software needed to provide some (very little at first) information on the web, so we did deep research to find, at the time, the best (for us and for the job) amongst CakePHP, Symfony, Zend, CodeIgniter and, we were still thinking about Vanilla PHP, but object oriented.
I could not believe on how easy and cool Laravel was to code with it.
So I started my research from scratch, thinking about looking again to the previous candidates, but five minutes later I stumbled on Laravel 3.2, at that point, an already promising, and beautiful, framework. I could not believe on how easy and cool was to code with it. Passionate and full of ideas for my “new life”, I decided to go to Laracon DC, proud to be in the very first Laravel Conference, to met Taylor and everyone else, enter the open source community, and, maybe, help to growth hack Laravel. The conference was really awesome, I got back to Brazil even more excited than I was, and started to learn and write my first lines of code.
To learn Laravel I did something maybe unusual: As I’m good finding information and solving problems, I started answering questions on Stack Overflow. Question popped; dove in Laravel docs and source code; wrote a proof of concept to see it working; answered the question. I did that everyday for about four months, and unwittingly I became top answerer for the Laravel tag there, discovering a little after that what I just did had a market value.
I also created a Twitter account and followed every single person related to Laravel and read all the articles they wrote and linked, and, of course, signed for an account on Laracasts, from the guy who amazed all of us in one of DC’s talks. When I finally started to think about going live on web, with my personal web site, now knowing what I wanted in terms of development and infrastructure, I instantly felt the need to have some services, which could be needed in many others, so I created some packages, most of them somehow tied to Laravel and, every one motivated by the fact that I needed that thing to be on the site, but could not find a good PHP package to provide it.
Some packages, and time, later, I was invited to be a Laravel AirPair expert, mostly by my rank on StackOverflow (that’s how they find some people). I’m now in the process of creating a service to sell in Brazil, and, with it, a Laravel SDK package (already using Laravel 5), but I’m not sure this is something I could open source, because many of the engineering decisions I’ve made to create it could be too personal, and a package like this in the open can cause some confusion. However, I am always trying to give back to the awesome Laravel Community, and I still think that a package (or a group of packages), like this SDK, could help a lot of people get things done even faster than we are already able to do with the fantastic Laravel Framework.
Can you tell us about your local environment?
I built myself an Intel Core i7 with lots of memory, a Dell UltraSharp 24″ and a Samsung 22″. It’s a Windows 8 desktop workstation, basically used to code, browse, edit photography and manage remotely the other one, a Linux server, which is also a pretty big NAS (a 9TB, 6 disk, ZFS tank) and DLNA server, where I keep all my data, music, some downloaded movies and TV shows. This server is also my development server.
I do PHP development using PhpStorm, anything else I still edit on Sublime Text 3. I’m in part living on the SSH command line through Kitty (it’s a PuTTY on steroids). My virtual machines, including Homestead, are Oracle Virtual Boxes. I use Puush to fast take screenshots, Bittorent Sync, Dropbox, Box and Google Drive to keep some files on cloud. Having a lot of site accounts all around, I use LastPass to keep me sane, but I’m thinking about moving to 1Password, and use iTunes for music. I’m not an artist, but I have sometimes to deal with graphic things, I used Corel Draw for a very long time but moved to Adobe Illustrator. Photography storage, organization and editing are usually done in Lightroom, unless I have to hack it, which is usually done using Photoshop. When I need the image (not photography) editing to be fast I use Paint.Net, it’s a really nice little app.
Since 1999 I’m a Debianist, but as everyone is using Ubuntu and it is a Debian based distro, all my boxes are a flavor of Ubuntu, the as is a Ubuntu 14.04 and this one is managed by Ansible using those roles IRSSI for IRC. tmux, presented to me by Machuga, when I was still struggling with Screen, is my terminal buddy. Samba serves all my files over network and I use Plex Media Server as a DLNA server. The Media Center on the living room, an Elementary OS box, uses Xbox Media Center (soon to be Kodi Entertainment Center), because Plex is nice as a server but not as a media center software. Bittorent Sync is used to keep copies of important files on three different computers: Windows, Linux and a Cloud server (also Linux). It also allows me to easily upload files to the cloud when I need. My sites are on Digital Ocean provided by Laravel Forge, I use Bittorrent Sync there to backup PostgreSQL databases too. If anyone wants to install it on Forge, here’s an Ansible role I made, which may help.And you don’t really have to use Ansible, a role is just a bunch of commands you can easily read reproduce on any box.
Every night I stop to read tweets and articles, and I do that on an iPad, using basically the Twitter app, Google Chrome and Mr. Reader, for RSS. A little after going to sleep I also play some poker online on zynga poker.
You created a popular Laravel stats tracker. Can you tell us about it?
People just realize they needed to store information when they actually need information. I learned that before PHP entered my life, and in the hard way. While thinking what I needed to go live with something in Laravel, I decided I could never do that without gathering information about the audience, from the very first page hit. Trak.io is a fantastic app, but it would be too expensive for a personal website, and some companies in Brazil would not accept to pay $50/month to do something they doesn’t understand what it exactly is, but if I ever get to build a site for someone else than me, I would like to have some tracking information too.
As I could not find a package capable of storing (almost) everything, I did one myself. The package stores information about your user’s sessions, page views, devices, browsers, operating systems, geo location, routes hit on your Laravel app, fired events, referrers, exceptions, URL and SQL queries with all its parameters and database connections. It also tries to stick a session to your user, if someone browsed your site for 15 minutes and then registered and logged, all that previous browsing log will be tied to that person and device. And for those who really wants to know their users, a cookie can be stored in every browser, so it’s “easy” to tell the needs of a particular person using your app on an iPad and a desktop, or if they are moving too frequently from iOS Safari to Chrome and help you understand why.
The stats pages already give you some nice information, like the visit log, graphs, users accesses, events and error log. Laravel Stats Tracker is far, far away from perfect, it needs cache, more reports, more graphs, speed improvements and tests, but the important part is there: data is being stored to provide decision making, probably not all information, but a lot.
You are big into photography is that a weird mix? Development and Photography?
Photography is not really about light and math, those are just tools, photography is about image and objects, or subjects, it’s about what you see, how you see, and what you want to capture, and, maybe, show to the world, photography is about eternity
Yeah, they seem two completely different things, that’s why I have to say that photography is just a hobby. But I’m not an artist, I have a strong logical and technical background, and that help me a lot while shooting, because, in digital photography, you have something in your hands which is basically doing calculation to capture light.
If you put your gadget on Manual Mode (M), you are doing the calculations to acquire light yourself. But photography is not just about the camera, or a good one would always take fantastic shots, right?
What most people don’t know is that an incredible shot has a lot to do with math too. The rule of thirds, which every single photographer must know about and use in most of their shots, is based on Fibonacci’s golden ratio, which is not art, it’s math. But, yes, photography is not really about light and math, those are just tools, photography is about image and objects, or subjects, it’s about what you see, how you see, and what you want to capture, and, maybe, show to the world, photography is about eternity.
That’s the hard part of it for people like me, too technical, you have to find a subject you are good with, understand, like and feel comfortable looking and shooting at. I like people, I like music and I (remotely) connect with them easily, so I it’s easier for me to shoot concerts and portraits, what most of my shots are about.
Any tips for beginners for getting into photography?
Read about aperture, speed and film sensitivity, read your camera manual and understand how to control those things, put your camera on manual mode and shoot, shoot until you and your camera becomes one and every photo you took from it has a good light.
At first you’ll loose a lot of them, but pretty fast your mind will learn what to do, and when the “aha moment” comes, you won’t look back. Then read about the rule of thirds and try to shoot according to it. Sometimes it’s just not possible, because you can miss a good shot if you take the time to perfectly frame a moment, but applications like Lightroom help you to edit your photos in accordance with it.
Do you have any other hobbies?
Dancing, I met my fiancée on dancing classes! Traveling, every opportunity I have to get way I try to go to some place I didn’t see yet, I like, I almost need, to be in others cultures, to speak their languages, to feel and bond, even being a shy person. Diving, I don’t that too much anymore, but that was a big part of my life for a decade and I have to get back to it. Languages are a passion, I’m fluent in French and English, and speak some Spanish and Italian, but every time I get in touch with a different language I feel the need to learn it.
Finally just for fun, If your life was made into a movie, who would you like to play you?
Well, if you are about to produce a movie about my life, you can choose: Clint Eastwood or Michael J. Fox. Michael, in spite of Parkinson’s, is still a really good actor and I love to watch him on The Good Wife TV show.