Git things done

git-logo-cc-by-300x300Been meaning to post this for a while. I've been using Git for a number of years now and my last two jobs had me using it heavily. I love git and honestly have managed to block the memories of what my life was like when I tried to manage my version control life with Subversion.

We've also been discussing Git a lot in our SDPHP Group.  I am not going to get into a long post about the coolness of Git and why you should be using it, that is kind of an old discussion at this point. If you are not using Git nowadays I will assume you (a) Don't want to use Git, (b) Don't have a good enough understanding of Git, (c) Don't know what Git is. If you are in category (c) you are probably not a developer and this will be of no interest to you. If you are in category (a), well then I am sure you have your reasons and they are valid. If you are in category (b) then let me share a few things with you. First are some links to some great resources on how to use Git. These groups know what they are talking about and do a fantastic job explaining things, way better than I could ever do.

Helpful links

I also have a couple of presentations I can share with you. The first one was by John Congdon (@johncongdon) and was presented to the SDPHP Group at our monthly meetup Downtown back on Sept 11

I also did a smaller presentation to the SDPHP Study Group earlier on Aug 26

I hope you find some of this information helpful and/or useful.

#phpdrama

Man, it seems like a week can't go by without some sort of drama in the PHP Community. I never thought I would be so close to one of the issues but yeah it was that sort of slow news week I guess. So this is my rant of the issue.

Let me prefix this post with some obvious disclosures, I am one of the organizers of the San Diego PHP User Group. I put a good amount of effort in the running of the group and take a tremendous amount of pride in what I do. With that said, the amount of work I do and pride I have in SDPHP pales in comparison to that of the head organizer, and friend John Congdon.

What Happened?
We had a member do presentation on Laravel 4. He did a great job. We had a great turn out, one of our larger turn outs, and there were a lot of questions, good general discussion. Really nothing out of the ordinary for a user group. Immediately after the meeting the praises started on how well the presenter did including post to our social streams, again not out of the ordinary. Speaking with the presenter you could tell he was a little disappointed that he might not have been able to answer all the questions thrown his way to his satisfaction. Anyone who has done public speaking or a presentation on topics know the feeling of being asked a question that you might not have an answer for.

Let's take a step back here, our group has some core members who stay very involved. We've built up friendship, helped each other find work, find solutions to problems, and find a good place to have a beer. We are on an IRC channel all day and will typically speak to each other everyday. Anyone is welcome to be part of this core and typically people will come and go. Like all tight groups, we will push each others buttons and joke with each other. We do it all in fun and when one of us crosses a line it is typically addressed pretty quickly and resolved. This particular situation probably would not have been any different except that it involved people outside our little group and became more public.

What The Hell Happened?
The presenter decided to follow up with the creator of Laravel 4, Taylor Otwell. I don't personally know Taylor but there are a couple of people in our group who do and from everything I've ever heard, he is a top notch guy and needless to say very well respected in the PHP Community. He is very accessible and helpful. This is where things start to go bad. Maybe out of frustration or just poor perspective but the presenter started to complain to Taylor about the group and how he was treated, feeling that he was being heckled. For the recorded that couldn't be further from the truth, he wasn't heckled and everyone was very respectful towards him. At this point everything is being contained in private IM chats between the presenter and Taylor.

Taylor starts to generalize and make some very negative statements about the group as a whole which were unjust but based mainly on the perspective of the what he is being told by the presenter. Whether Taylor felt he was just consulting a battered friend or if he honestly started to develop ill feelings towards the group wouldn't really matter, it would have all actually ended there in that IM window between two people.

SO WHAT THE F*@&K HAPPENED?
Here is where things go off the tracks. The presenter then turns around and post screenshots of the IM chat to the SDPHP groups public IRC channel. Now we have a problem, and that conversation just became the business of everyone in the room. I personally addressed it publicly in the channel at the time.

So this next chunk is from the IRC Chat that followed after I saw the post of the IM conversation with Taylor.

[11:48am] shocm: CA***: WTF? Dude really? going to slam the group like that
[11:48am] CA***: ha
[11:48am] CA***: well
[11:48am] CA***: look man
[11:48am] CA***: i was asking
[11:49am] CA***: but the q's were kinda douchey
[11:49am] CA***: if you know its an intro
[11:49am] shocm: I'm calling Bullshit
[11:49am] a**: dude..... all of my questions were legit questions
[11:49am] CA***: ok
[11:49am] CA***: i was ill prepared
[11:49am] shocm: they were normal questions dude
[11:49am] shocm: You were fine
[11:49am] shocm: but don't slam the group if you feel like you couldn't answer something
[11:49am] shocm: its not an issue unless you make it an issue
[11:50am] shocm: No one cared you didn't know
[11:50am] shocm: But they were normal questions
[11:50am] CA***: i was actually asking
[11:50am] ka**: shocm I know, right?
[11:50am] shocm: No i don't think you were ill prepared. I think you were fine.
[11:51am] shocm: And you preference it with "Hey I am new to this and this is what I know"
[11:51am] CA***: http://cl.ly/image/3q2v3s031A0e
[11:51am] EchoBot: [ http://is.gd/pUjskG ] Screen Shot 2013-08-15 at 11.51.02 AM.pn...
[11:51am] shocm: we do that all the itme
[11:51am] wr**: Ya for an intro it was perfect
[11:51am] shocm: and the group is cool with it
[11:51am] CA***: now
[11:51am] shocm: but they don't know what you don't know so they ask questions
[11:51am] CA***: the elitism that i felt was what i felt w/ some of the Q's
[11:52am] CA***: perhaps i mis conciened that
[11:52am] CA***: but the point of the screens wads to show that hey
[11:52am] CA***: I am looking into the Q's
[11:52am] CA***: from the source
[11:52am] CA***: the framework is still cool
[11:52am] CA***: and so is TO
[11:53am] CA***: and the group for that matter
[11:53am] ka**: <3 [11:53am] a**: The questions i asked were questions that would allow people, who use other frameworks, to more easily integrate with this framework. I didnt bring up the fact that i didnt like facades in the actual presentation. [11:53am] shocm: Look, I am cool with us in the group give each other a hard time in fun, and I think we do a lot of that, but representing the group as a whole in a bad light is a crap move. CA***: i mean shit [11:53am] CA***: well [11:53am] CA***: I don't think I did that [11:53am] CA***: but [11:54am] CA***: I will share the video w/ him [11:54am] CA***: and everyone for that matter [11:54am] CA***: and we can all have our opinions [11:55am] ka**: nice, I want a watch [11:55am] CA***: yea [11:55am] ka**: the whole presentation? [11:55am] CA***: yea [11:55am] ka**: sweet [11:55am] CA***: perhaps sharing my convos was a bad move [11:55am] CA***: i wanted to show that hey i am looking into it [11:55am] CA***: but hey [11:55am] CA***: it is what it is [11:56am] a**: the direction your convo went with him was the issue [11:56am] CA***: true [11:56am] CA***: the chump comment was directed directly at you

I am not sure what the purpose of posting the IM conversation to the group IRC was. The presenter claims he was showing that he was following up on the questions but the discussion he posted was a back and forth with Taylor slamming the group. So now there are a lot of people offended by this when John gets online and catches wind of what is being discussed.

John has a ton of respect for the PHP Community and especially the leaders who help make up the PHP Community and he reaches out to them on Twitter. This is where the topic got a little more exposure and Taylor starts to learn a conversation he thought was private was publicly shared and discussion sparked up on Twitter on what was said. Chris Hartjes starts to address the issue. If you are not familiar with Chris, he's sort of an "in your face" guy who has been known to be a little abrasive but is someones opinion who I personally hold in high regard. He is brutally honest, with an emphasis on honest (and shit for that matter brutal).

Here are some of the threads from twitter

Taylor mentions in some of the conversations on twitter that he never even knew what group he was speaking towards and I think that he feels there is a general assumption that he was referring to the act in general, but he wasn't. He made negative remarks and generalized a group based on little information he had and as a leader in the community you simply can't do that because people take that shit to heart. Especially people like John and myself who feel like we work pretty hard to better the PHP Community by running groups like SDPHP. It sucks your private conversation was made public and I can appreciate. The presenter shouldn't have shared the chat, there is no question there, but at the same time he was having a conversation with someone he respected very much and that person was agreeing with him, so why wouldn't he share it?

The PHP community is very passionate and I think this only goes to show how quickly lines can get drawn over the most mundane topics at times. I am personally happy we have people like Taylor Otwell, Chris Hartjes, and John Congdon making PHP and the PHP Community stronger. They are held to a higher standard and should know the impact of their opinions and discussions to the group at large.

Really, that's it? Why did you waste my time?
I told you this was my rant, why are you still reading this anyways? For the record, the presenter did apologize for his involvement. Acknowledges it was a bad idea to share that conversation and that maybe his perception on the events was not a good representation of what actually happened. With that said, I truly hope this matter is done, that we haven't lost a member of the group and that we can all move on. I think I have, at least that is what I will say to wrap this up because it seems like the appropriate thing to say and I do feel better now.

If you are interested in more perspective on this:
John also did a Blog Post on his personal blog if you are interested to continue reading about this.

** FOLLOW UP - August 17, 2013**
Figure I would add this here instead of creating a new post. So it was a very eventful 24 or so hours. I won't bother to rehash but to say we had people step up and show us support, people step us and let us know how wrong they felt we were, and people step up and help us resolve the issue.

There are so many "for the record" statements I would like to make here but it really doesn't matter at this point. Everything we discussed is public. Bottom line, at the end of the day we got an opportunity to show Taylor Otwell that we are a group of passionate PHP developers. Taylor took the time out of his day to join our IRC channel and discuss any follow-up questions the group had about Laravel. He was very accommodating and even shared some insight.

I am very happy and appreciative that Taylor took the time to speak with us. As I've already told Taylor, our door is always open whenever he wants to drop by.

SDPHP – Google App Engine PHP

My presentation from tonight's SDPHP Meetup. Some great discussions. Was happy to see so much interest in Google App Engines PHP offering. I think we could have been there all night talking about this.

Thanks to Invisible Children for hosting. Also thanks to La Touraine, Inc for sponsoring the food.

A couple of people asked me what presentation software I was using, pretty basic actually. It's was Google Drives Presentation with the "Light Gradient" theme. Happy everyone enjoyed them.

Download Presentation Here

Viming Safely

As I mentioned a couple of post ago, I started a new job in which I am doing more heavy development, and I am loving it. Now I am a very paranoid programmer and I am this way because I’ve destroyed hours of work with some poorly coded lines. As a result I typically backup the files I am working on before I edit them and this has saved me a few times. Couple this with the fact I am working in unfamiliar code of the new job and I find myself doing a quick ‘cp’ before every ‘vi’.

Something else about me, I am very lazy and I like to automate as much of my life as possible. With this, I created a nice little BASH function to handle this task for me.

It’s pretty basic and I add this to my .bash_profile. Now when I type ‘evim filename’, this little function will make a copy of the file in a Backup folder I defined before launching it with Vim. It will also add a time stamp as part of the backed up filename.

Caching: A Brief Overview

Another SDPHP MeetUp last night and another good talk. Aaron Scherer (@aequasi) did a great job discussing different types of Cache solutions such as OpCode Caches (APC, Zend Optimizer, eAccelerator, XCache, and HipHop) and Data Caches (APC, Memcached, and Redis). Worth a click through.

Encryption: It’s For More Than Just Password

Earlier this week John Congdon gave this talk at tek13, one of the top PHP Conferences. I didn't get a chance to attend the conference this year but I did get to see a preview of the talk a couple of times as John practiced his presentation on the SDPHP group. It's very informative and has me really looking forward to a couple new features that should be released in the next version of PHP version 5.5.

Keeping It Simple

simpleI have long since abandoned "The Bank". This is not to say I squirrel away my paychecks under my mattress at home, trust me you don't want to see what is there, but I don't use Banks to hold my money instead opting to use Credit Unions. To be completely honest with you, the first Credit Union I used I don't think I even differentiated between a Bank and a Credit Union. At the time it was more of "who has the lowest fees" approach. Since then, I've worked for and opened accounts with other Credit Unions and the difference is very clear to me now and I doubt I would ever go back to a traditional Bank, at least not as my primary fulltime account.

But this post isn't about the pros of Credit Unions or the cons on the Bank industry. Instead this is a post about my experience , to date, and opinion of a new form of banking and a new service called "Simple".  Simple is not a traditional Bank and in fact is a new approach to Banking. For starters, Simple is a completely virtual bank, with no physical locations. Simple is currently by invitation only and I was just invited sometime back. As of today, my account is still not fully enabled but I will get back to that in a little while.

My primary Credit Union is pretty aggressive and stays on top of a lot of the new offerings. They have a very verbose web site that allows me to do a lot with my account, tons of free ATMs, and features such as mobile check deposit. But Simple promises to take managing you money one step further. It's been described as a blend of  a Bank and Mint.com. Allowing you to closely track and graph how you are spending money and what you are spending money on. It also allows you to do things like set goals and contribute money to those goal, in essence creating what seem to be small virtual savings accounts.

Being the Geek I am, this platform appealed to me hence why I signed up for an invite. Not sure how long ago I had requested and account and I had honestly forgotten about it when I got the email giving me access.  Once I got the invite it took me a couple of days to pull the trigger and deposit some money into the account. I just really didn't have a good reason to create another account with another financial institution. However one thing that has always bugged me with the my current accounts is the fragmentation. To a degree this is self-imposed, I would take a car loan with one because of a better rate, then open a credit card with another for the same reason. We have accounts for our daughters and I have yet another account for my business. Moving money between the various account at the various institutions has proven to be somewhat of a challenge. Bouncing money between different accounts within the same Credit Union is simple and happen instantaneously but I long for being able to move my money around like that between different Credit Unions. I kind of hoped Simple would offer something like this.

To date I don't know if they will or how efficient it will be, one reason for this is because my account as I mentioned earlier is still not 100% enabled. Signing up was  a little challenging. Security is obviously important to Simple and unfortunately security is not historically user-friendly. You also need to make an initial deposit and then your ID needs to be confirmed. It seems this took a couple days to process, but once completed then I needed to create my log in information to my account. Once  you have a log in you still don't have any money in your account because that initial deposit in kind of in limbo until all this effort is completed and have you signed off and acknowledged all their agreements and disclaimers.

This is where I am today, I have an account and my initial deposit is still pending. So far my impression are pretty simple (see what I did there). After creating my account I did experience a day where I had issues logging into the account when Simple kept saying I was using the wrong username and password. As a long time user of LastPass I knew that wasn't correct and the problem did seem to clear itself up the next day. I still don't have any money in my account that I can do anything with, it's still in a pending state. There are a lot of ways to get money into your account but I have yet to see many ways of getting money out however this may be a limitation to my account right now because the account is essentially empty.

Moving forward, I am going to track my money in this account very closely. The main things I am going to look for a fees, see where they are and how much they are. Also how easy is it to get access to my money, and how easily can I use to pay bills or move to other accounts.  If you are interested in some particular aspect of Simple, leave a comment below and if it something I can check out for you I will.

 

2 Weeks as a Programmer

Screenshot_5_13_13_5_46_PM-3I am starting the 3rd week of my journey; you see I am a “seasoned” IT guy. I’ve been working in the IT industry professionally, in some form or fashion, for some years. I’ve been tinkering with computers longer than that. My first computer was a TRS80-CoCo2 I got for Christmas, I want to say back in 1984.

The first thing I did was teach myself BASIC. I would spend hours coding small applications that didn’t do much of anything. I also started to tinker around with how the computer worked, how did it communicate with my dot-matrix printer or the joystick. This opened up my vision of the field of computers a lot.

As an adult, I found myself in the IT field. This wasn’t that surprising. I had found myself on the track of an Operations guy. You may ask yourself “What is an ‘Operations Guy’?”, Anything short of programming or one of the specialized fields like security, databases, etc. Ops is the heart of everything, making the systems talk to each other and typically the guys who work the odd hours, weekends and holiday to make changes and not impact day-to-day production. We are talking networking, hardware, backups, managing, monitoring, patching, so on and so on.

This is a great field to build a career on, my only problem was I love programming. I mean its one of the things I am passionate about. For years I was a hobby developer, building small applications here and there on the side. I was also fortunate in the sense I always seem to manage to have small development task at work. The longer I worked in the IT field, the more I wanted to focus on development.

A few years back the phrase “DevOps” was gaining popularity and I tried to position myself more and more into a DevOps role. At the time, I was working for a Fortune 100 company. Very corporate in its ways and very slow-moving. They pretty much had the opposite philosophy, leaning more to people becoming very specialized in a particular field or task. About a year ago I decided to make a change and took on a role with a much smaller company in hopes to develop more of the DevOps role. At first, it was very promising but eventually it also turned into a typically Operations position.

All, this time, I continued to better my development skills. Learning as much as I could from languages to best practices. I got more and more involved with the development community and developed some great connections and friendships. When I expressed how unsatisfied I was with the direction my job was taking it was through their encouragement I decided to take somewhat of a leap and look for a position that was more focused on development.

Today I start my 3rd week as a developer. I will chronicle this adventure here.

New SDPHP Mentoring Program

I am helping organize a mentoring program for the San Diego PHP User group. We officially announced the program at last nights meeting.

The SDPHP Group is always looking for what it can do to better strengthen the PHP community in San Diego. It is in this spirit we are launching a project to help facilitate PHP Mentorship. The purpose of this project is to give individuals looking for guidance and personal development with PHP related topics a clear avenue to find people willing to help them. As well as to help organize individuals who are willing to offer guidance and a support, by giving them network to allow them to give the best help possible.

Feel free to check out the full posting, especially if you are interested in getting involved with the project >> SDPHP Mentoring Program

SCALE 11x Interview: Philip Ballew

I got the opportunity to do another Scale11x interview, this time with Philip Ballew. Philip was a real pleasure to talk to and I even got the opportunity to meet with him in person since he is a San Diegan. Philip is a great guy, very passionate about Open Source.  I am looking forward to catching his talks up in L.A. later this week at Scale.

Video Interview: Philip Ballew | SCALE 11x.

Open Source Ecology

I tweeted and G+ about this story yesterday but I also wanted to add it here for anyone who might stumble onto it. If you thought Open Source was just about free software, limited to maybe something you would run on your desktop or phone, well you couldn't be more wrong. There is a movement of people who are applying Open Source philosophy and licensing to a scale you have probably never considered, Industrial Machines. The creation of physical working solutions for things like farming and agriculture. We are talking things like brick presses, bread ovens, tractors, saws, and cement mixers.

Probably one of the biggest efforts in this field, if not flat-out the biggest, is the Global Village Construction Set

I really encourage you to check it out opensourceecology.org.

SCALE 11x Interview: Mark Hinkle

This is my latest interview for SCALE11x which is coming up of Feb 22nd. This interview is with Mark Hinkle from Citrix.

Mark Hinkle works for Citrix as the Senior Director of Cloud Computing and will be speaking a couple times at SCALE11X. We had some time to talk to Mark about his talk at SCALE11X, Open Source, and Cloud.

This was just a Q&A over email so no video. You can read the full interview on the SCALE11x web site >> Interview: Mark Hinkle | SCALE 11x.

A debit I can never repay

opensourceThere are certain debits that you will simply never be able to payback in full. For me the big ones are being raised and nurtured by my parent, the teachers who educated me, and the one that to this day contributes to me and my family, Open Source. I get way more from Open Source than I will ever be able to give back. I've been so deeply emerged into Open Source culture and philosophy that I've totally lost perspective of the "cool factor". The massive advancements and low barrier of entry is such a normal thing in Open Source I don't really think twice about it. For the most part the battles over the myths around not being able to make money from Open Source, or Open Source not being supported, or that Open Source is generally bad have all be fought and disproven time and time again where it's not even fun engaging in those conversations anymore. I have exposed myself to so many different solutions and platforms which have let me grow so much. Solutions from basic web servers to LDAPs, databases (relational and NoSQL), monitoring, CRM's, File Servers, Firewalls, IDS, Security scanning, Programming (PHP, Rails, Python, Perl, Java), Mail Servers, Proxy, DNS, BackUps, Version Control, Media Servers, Telephony, Analytics, and so many more. All these I've at some point had taken a significant amount of time to really dive into and learn, and all at zero financial cost to me for the experience.

I am not a preachy Open Source zealot who screams about the evils of proprietary solutions. I am very comfortable with my Open Source status and if you ask me my opinion I will give them to you. This has let me retain some very Microsoft focused friends. I forget they are Microsoft people, they forget I am an Open Source person. This lead to a recent conversation in which my MS Friend was frustrated with his MSSQL implementation and was complaining about not being able to afford Oracle or IBMs solutions. No, this isn't going to be another "look you I converted and how" post. I did engage in the typical Open Source database solution conversation with him, of which there was a good amount of "it can't be as good as a 'real' database, it's just not possible" statements made. Yeah there is still this much ignorance on the topic. But it got me thinking about how that is just not an issue in my universe. If I don't like a solution, my main concern if I don't have the time or knowledge to change it, is how long will it take me to migrate to another solution. This event got me thinking more and more about how I take this way of thinking for granted and I started thinking about how I take Open Source for granted.

I am no spring chicken, I've been messing with computers in some form or fashion since my Dad bought me my first, newly released, Radio Shack CoCo TRS-80, and I've been seriously focused on Open Source for the past 15 years. Needless to say, I've been doing this for a while. I recently meet a couple new comers to the Open Source world and they reminded me of the excitement of it all. New desktop, new tools, powerful tools, exploration. I've forgotten how exciting it was booting up my Linux desktop. Not just the first time but for months. Or being in public and having someone seeing me using a Linux desktop and ask me questions about it. I still get asked question from time to time but my "giddiness" of having it is no longer there. It is refreshing to see that this still excites and intrigues people.

There is no real point to this posting, just me rambling and wanting to remind myself when I reread my old post and get to this one; stop, think about what you have and think about what you are doing to contribute back.

Scale11x Interview: Jorge Castro – Juju

I was asked if I would be interested in conducting some interviews of speakers who are going to speak at The Eleventh Annual Southern California Linux Expo (Scale11x) February 22-24, 2013 Hilton Los Angeles International Airport and needless to say I jumped at the opportunity.

This is my first interview with Jorge Castro of Canonical and we discuss Juju, MaaS, Ubuntu Cloud, and his upcoming presentations and workshop.

You can catch Jorge and learn more about Juju at the Eleventh Annual Southern California Linux Expo, February 22-24, http://www.socallinuxexpo.org/blog/interview-jorge-castro-juju