Plans for 2013


Well another year has gone by.  Time now for all of our plans that we sillily (I guess that is a rela word) call resolutions!!

Last year was big for me.  First I was made partner with RebelHold, and then created my own Rebel Outpost, LLC.  I had two successful interns which are still working with us.  I spent the majority of the year working on a behemoth project called Bulletin Builder for the Greek Orthodox church.  I finally passed the reins for Bulletin Builder off to Steve Young to see to completion.  I worked on another short project as well as some in house open source stuff.

RailsCRM is still in the works with a recent Alpha release.  I am trying to add some more functionality to it without bloating it.  We are using it full time now for internal leads and finding a few changes needed here and there.  I have even been thinking about forking it and going full blown with it to offer SaaS to compete with the likes of Salesforce.

I have additionally been working on perfecting a script to create the perfect Rails production server.  I started to use Vagrant for testing my server setup.  I wish the world survived just on Heroku but it unfortunately does not.  So for the rest I am trying to come up with a better way to do it.

OK, so 2013.  I have big plans for Rebel Outpost this year.  I hope to make it a breeding zone for Rails developers as plan on taking on more interns.  I also have been talking to a friend about some more serious Rails incubation.  I find myself with a bit more time at the beginning of the year and have focused on getting all caught up and ready for tax time.  Now, I should have the time to finally get going with my “Rails, now what?” screencasts that I have been talking about since last year.  I intend to be a bigger part in the local Rails community and hope to get others to join me.

I want to continue to work on free and open source applications and might even think about building some kind of money making application as well.

So that is it.  Open source, teaching interns, and making Rebel Outpost a kick ass place to work.

Another year gone by…


Wow, it is so hard to believe that I have been living the life of a freelance Rails developer for the entire year of 2012.  What a year it has been.

I have learned so much this year and expect to learn more next year.  I know that it is early for new years resolutions but I plan on being more active in the Ruby community next year.  I will finally get off my ass and start creating screencasts and doing local presentations for what I call “Rails, now what?”

I know that all of us in the Ruby community owe so much to others that have come before us.  Many are those that are unnamed and others we all know of.  No matter how much or how little, we are all part of the community and are all responsible for growing this community.

Let’s all try to teach other more next year.  Let’s all try to stay away from the Rails community drama that makes all look like arrogant assholes.  Let’s all remember what it was like when we were just starting out and how much we appreciated help from others.  Next year let’s all of us take the time to teach one other person about Ruby.  There are people that are interested in becoming interns.  Find them, teach them and set them free.  The best RoR programmer you will ever hire is one that you yourself have trained.  Let’s all of us commit to giving at least one presentation this upcoming year.

Remember people, that we are what we are because somebody helped us out once upon a time.

Here is to a great 2013 and lets all make Ruby on Rails the best that we can!!

Testing with Rails Select2


Lately we have been incorporating select2-rails into our applications.  I cannot say enough how much I love this tool and its ease of use.

That being said, we had had issues with testing and select2-rails.  So Steve Tong of Rebel-Outpost spent some time and found a small script to use for testing it.

The only issue with this is that you can only have one option in the select2.

If anybody finds a better way, please let us know.

Rails, stuck on the tracks


I have put much thought into this post, now that is not to say that the other posts were created without any thought.

I am what I consider to be as a self taught programmer.  A couple of years ago I decided to learn Python as I was working with ArcGIS on a regular basis and I wanted to automate some of the functions that I did on a regular basis.  That summer I studied and taught myself Python at least the part for creating geoprocessing scripts.  Before this I had no desire to learning programming let alone programming itself.  Soon I had found that it was fun to program.  I then created user interfaces to pass data between our application that ran on ESRi’s ArcGIS and our clients and third party softwares.  I was hooked.

The company that I worked for then began to create a web based routing application that was written using Ruby on Rails.  I started to dabble with this application as I already had a pretty good grip on HTML and CSS.  It was fun designing and developing this application and helping create it from the ground up.  I started to learn Ruby on Rails.

Not to insult those that created the initial application or those that have made it what it is but as I now know that the application is horrible.  As I was trying to learn RoR, I would ask the developer questions about Ruby.  I will never forget the comment that this well known Rails developer told me; “I really do not know Ruby that well.”

So going forward, I assumed that learning Ruby was not that important to be a Rails developer.  On the outside looking in or scraping the surface it truly is mostly HTML or as I have learned to love, HAML.  I didn’t spend much time learning Ruby as the ‘expert’ Rails developer said he didn’t know Ruby that well so why should I?

So off to the tutorial I went.  I was and am amazed at the amount of learning tools and tutorials that are out there for learning RoR be it free or paid stuff.  I originally looked at Django as I was coming from Python but I did not find as much material for learning Django as I did for RoR.

Blogs, To do’s, pretend stores…..

I spent quite a while going thru many of the available Rails tutorials that are available out there from Michael Hartl’s tutorial to creating pretend stores to Rick Rolling it, I went thru the tutorials.  Over and over like a sponge I went thru these tutorials.  Rails for Zombies, and Peepcode and anything that I could get my hands on, I did tutorials.

But then, I found myself stuck on the Rails tracks not sure where I was going or how to get there.  I knew how to follow the step by step instructions but how was I to advance?  I tried to think of an application that I could create and tried to create that application.  I had no clue what the Hell I was doing and got really frustrated.

It hit me; Rails, now what?  What do I do now?  What is the next step to becoming that super ninja Rails developer?  Now what?

We have all been there.  It seems that most of the RoR people I know are ‘self taught’ with some having formal education for programming.  How do I make it from making applications using tutorials to becoming that full fledged Rails developer?

That is in my opinion the missing link.  As I have brought aboard my 3rd Rails intern I have seen that they are most of the time in the same situation as I once was, asking themselves ‘now what’?

Well, I am happy to announce that Rebel Outpost is going to be adding a ‘learning section’ to our website and we are going to be adding videos for a “Rails, now what?” screencast series.

I will be adding a list of topics soon as well as our first screencast “BDD and the User Story” to include the presentation slides.  These videos will hopefully help others in the ‘missing link’ stage of their Rails training.

I will be blogging about the videos as we release them and if there are any topics that those of you feel should be included, by all means, email me your suggestions.

Django or Rails?


Today I got into a conversation on Twitter about Rails versus Django.  I know that I have blogged about this before but I thought that I should maybe clarify my reasons for preferring one over the other.

Before I start, I must confess that I did not use Django that much and it was also in my beginning stages of web development so bear that in mind as you read this.

I came from Python where I first learned it for geoprocessing to use with ArcGIS.  Now using Python (which is installed with ArcGIS) for geoprocessing inside of ArcGIS is easier than natively.  For example, there is a UI for forms to define what fields or data types to use.  Python for geoprocessing is very well documented and is very easy to use.

I soon found out that I was very limited are far as functionality goes using Python “inside” of ArcGIS.  I looked at options for creating desktop GUI‘s and found that wxPython was the easiest for me to use to accomplish what I wanted to do.  I have several posts regarding this stuff in my archives so I will not repeat myself.

On to web development…

At my old “job” we had an app written in Ruby on Rails and that was my starting transition to web applications.  I started by creating Python interfaces for desktop applications to interact with our RoR web application and then started to assist on the web application itself.  This piqued my interest.  I had taught myself Python so why not learn Django?

I other posts I have commented that the best place to find help learning a new programming language is to go to user groups.  In Arizona there was not a Python/Django user group.  I found via Twitter a couple of local guys that were Django developers and met with them at coffee shops to try to learn from them and I greatly appreciated their assistance.

It was the learning at home, alone, that was not successful.  I found that there was not a lot of training “materials” online for Django.  Do not get me wrong, there is a lot of stuff on the web to help with learning Django but a lot of it is just as confusing as Django is.  I even went as far as trying to start-up/re-incarnate a local Python group which was not very successful.

Enter Ruby user group…

I found out that there was a local Ruby group and a local Rails group.  I went to my first Ruby::AZ meeting.  I was at a transitional stage where the separation between the Ruby group and the Rails group was diminishing and morphed into what it is today; Ruby and all things Ruby.

I found the support group I was looking for.  There were so many Rubyists that were happy to point me in the right direction and to help me when I needed it.  The resources for learning RoR are phenomenal.  My still all time favorite and a major reference guide for me is Railscasts.com.

I then met @m3talsmith with RebelHold and he took me on as an apprentice.  The rest is history.  I now have my own company Rebel Outpost which is a member of the RebelHold family.

Django or Rails?

 In all fairness, I prefer Rails as I was able to learn it.  That does not mean that Python or Django are bad languages at all.  I also cannot say that Rails is better than Django but I do love Rails.

Ruby is so clean and elegant to read and write but lacks the whitespace-ness (is that a word?) that Python has.

So I hope that clarifies my love for Rails over Django………

RebelHold growing the community


Things are really going great for RebelHold these days.  We are now the largest Ruby on Rails development shop in Arizona that is still taking on new projects.  It is because of this that we have been able to help community members to grow as developers.  I was asked a while back what it is that I have ever done for the community.  I have been training one of our new apprentices and I also brought a new Intern onboard.  We also added another apprentice and our Phoenix outpost has doubled in size in the last couple of months.

We also have added a couple of apprentices on in other states and are proud to be able to entertain any new RoR projects as they come along.  Our goal continues to be training our own developers.  We still do not charge to teach and in fact we pay our apprentices while they learn.

I feel proud to be able to help members of our community to learn RoR and earn at the same time.  I am proud to be part of RebelHold!

Life as a Rails developer


So Holy Shit, I am coming up on my 7 month anniversary as a full time Ruby on Rails developer.  I guess the old adage that time flies when you are having fun.  So true indeed.

I figured that it has been a while since I posted and that I need to get with it again.  On a daily basis, I am still learning so many things.  I really need to share these findings and I will try to do more posting in the near future.

So being a partner with Rebelhold, LLC absolutely kicks ass.  We are still at 3 partners but we now have two paid apprentices and working on adding a third very soon.  It is so nice to be able to return the favor that Rebelhold showed me by teaching me RoR and how to be a good developer.  I am still lead developer on a big project and I have one paid intern that I am teaching now.  I have also brought on another intern that as of yet has not made it to paid status but I feel that is not so far off in the future.  I was asked a while back what I have done for the Ruby community, and this is what I have done and do.  To top that off, we do not charge to teach and on the contrary, we pay our interns to learn once they have established a basic knowledge of RoR.  It is a goal for us at Rebelhold to train apprentices to work for us.  If they choose not to work for us after the training, then so be it but we still intend to continue teaching members of our community, regardless of who they do to work for.

We as Rebelhold has risen to the go to Rails shop in Arizona.  Many of the other Rails shops do not have the resources available that we do.  We have dev’s waiting for us to get more work so that they may come on board as well.  Rebelhold will continue to be a go to Rails shop and we plan on expanding to other languages and platforms as well.

Ok , so enough preaching for now.  I wanted to share some things that I learned over the last 7 months and hopefully somebody finds some of this as useful.  So here it goes……..

  • Keep learning
    • I don’t care how many hours a day or days a week that you are working, find the time to learn something new EVERY day.  There are so many tutorials out there that there are too many to list.  A good way to end the day is to watch a tutorial or try something new.
  • Write Code
    • A lot of beginners get stuck in the keep learning part.  Watching tutorials and coding along is great.  Studying all there is to know about Ruby and Rails is great.  However, you will learn the MOST by trial and error.  Write code, write code and write code.  Create as many blogs, fake store fronts or whatever you want to but keep writing code.
  • Mentors
    • Aside from the fact that Rubyists are really arrogant, they love to talk about Ruby.  I have NEVER asked a question to a Ruby or Rails person that was not answered.  Find a local user group and go.  The last intern that I brought on was a guy brand new to RoR but I saw him at every Ruby::AZ monthly meeting.  Sometimes the desire to learn outweighs all.

That to me are the biggest things to get going.  Oh yes, there are a million other things that can help you get rolling but these are in my opinion the biggest.

Oh yeah, why would you want to be a RoR developer?  Supply and Demand is why.  The demand for RoR dev’s is insane.  If you are a RoR dev and on LinkedIn, you will get job offers daily.  Write a blog about RoR and you will get even more job offers.  The job market for RoR devs is totally all demand.

One last thing….I hated my old job and it was exactly that, a job.  If web development is your thing and you like Ruby on Rails, then I say do it.  Keep learning and get Earning!

BR

Ruby and Rails 101 Course


For quite some time I have wanted to put together a Ruby and Rails 101 course for the community at no charge for attendees.  I recently posted a message on the Ruby::AZ google group to see what interest was there.  Although it seems that there is a greater need for intermediate classes, I still believe that we should start at the beginner level and if that is successful then we can have a more advanced course.

The plan is to have a weekly class most located in Phoenix/Tempe area.  I feel that once a month class is too much time in between.  Once we have the course planned, we will know how many weeks we are looking at.  I want the classes to be hands-on and last 1 – 2 hours.

So, as it stands it looks like RebelHold and our friends at Flatterline along with the Ruby::AZ group are going to make this happen.  I have had several people volunteer to help out and that is yet another example of how great the Ruby community is!

Why are we doing this?  If you have read my blog before, it is obvious that I do not like seeing people getting charged to learn programming.  Charging a company to do training is one thing but we as the Ruby community owe it to ourselves and others to help develop new Ruby programmers.  At RebelHold, we bring in apprentices and train them.  After they have made the transition, they are made partners.  So by offering this course, we are developing programmers that might work with us some day.  I owe a lot to many people that took the time to teach me Ruby and to help me learn.  Time to return the favor.

If you are interested in attending or would like to help out with the classes, please email me or go to the Ruby::AZ google group and post a message.

Why RebelHold kicks Ass!


Well, I have been a bit busy lately and it seems like I have a thousand things that I want to work on.  If I can only find the energy and the time to do so…..

So, this is about why Rebelhold totally kicks ass!  A couple of weeks ago I was made partner!!  How is that for advancement opportunity?  Do I miss my old corporate America job?  Fuck NO!

So here I am now a co-owner in a company owned and operated by its employees.  I know that I have ranted before about the awesome opportunity that RebelHold has given me.  I had the desire to become a Rails programmer but who hires anybody these days with no college or experience?  McDonalds, that’s who.

RebelHold will soon be a major name in the Rails web development community.  I want RebelHold to be the premium place for Ruby and Rails developers.  We are a collective of developers that encourage people to learn Ruby and Rails and we also believe it is our job to assist in the learning process.  We are building a community of programmers and designers and continuously improving ourselves with in house training and classes.  We have recently made the decision that Fridays are to be set aside for just that purpose.  Who can go to work with us?  Pretty much anybody that has a strong desire to be the best.  You will have to prove yourself to us that you have the desire and willpower to become one of us. We freely support our apprenticeship program and encourage all of those interested.  We are currently expanding our knowledge base to include IOS development as well.  We have members in several states now and are always interested in new talent.  In @m3talsmith’s own words:

“We believe that through working under such equal conditions, both to us and our clients, and through such revolutionary processes as being honest with each others skill sets, teaching each other, growing in a community that seeks the most quality out of everything that we do, that we will create great software.

Some of the tools we use to hone this process include frameworks, such as Ruby on Rails, methodologies, like Agile Development and Scrum, elastic data stores, MongoDB being our favorite, and cloud servers like Heroku. Other steps include lots of travel, a reasonable week of around 30 hours per week, and lots of pair programming; as well as constant experimentation and open source contributions.

We are also looking for ways to build passive income in order to put us on sound financial footing outside of client work. Some of the passive income ideas include equity in clients, software services, and applications brought to markets such as mobile marketplaces.”

That is why RebelHold kicks ass and why I do not miss the corporate world!

Are you prepared to Rebel?

We ARE RebelHold.

RebelHold Web Development Collective


Since the beginning of the year, I have been made an employee of RebelHold, LLC.  It is because of RH, that I am even working as a Ruby on Rails developer.  Prior to last fall all I ever did in RoR was tutorials, tutorials, and more tutorials.  I advertised that I would work for free just to get experience.  Can you believe that NOT ONE PERSON took me up on that offer!

So there I was, a desire to quit my job and become a programmer but no way to do it.  It would be different if I were a college student and could study/practice more but I had a full time job that amounted to working a good 50 – 60 hours per week on salary.

Then I met Michael (@m3talsmith) on Twitter and the rest is pretty much history.  I worked together with Michael and with Fletch (@fzf) by pairing with them and watching them work.  They were available to answer questions and to help me.  Then they offered me a paid internship!!  They offered to pay me hourly to learn and work with them!  Can you believe that?  I was trying to find people to let me work for free just to learn and these guys at RebelHold were going to PAY me to learn RoR.

I quit my day job……

So what is RebelHold?  In Michaels own words:

“Rebelhold is a workers collective, completely worker owned and run.

RebelHold was created to equalize the playing field for workers, providing full health care (with no copays), paid training, equal salaries, and to meet the physical and social needs of communities all around us. We believe that putting the means of production in the hands of the workers is a first step, and that training new people to be able to work in whatever capacity they can is valuable. Every worker is an owner, all decisions are made by consensus, and every worker has the combined responsibility of training others. We are highly motivated to taking care of the needs of others through this process; and open to other processes to help.

To create a mass of workers on equal grounds with each other who are taken care of completely; to pour ourselves in to improving the communities around us through training, through direct action, and through charity as needed; to communicate well with others; and to make high quality software that we can be proud of.”

Now mind you we are still in our infancy stage and not all of the ideas have been implemented yet.  Decisions are made by the partners in a community like manner.  There is no Alpha male or boss or anybody in charge.  And opportunity to advance?  Well, I guess to ability to make partner is about as high of advancement that is possible.  As a partner, the incomes are all the same and decisions are made by the partners.  A truly employee owned and operated organization.  Notice that I didn’t say company!!  It is more of a group or organization than anything else.

We are always looking to add members to our group.  We intend to have a well rounded group of resources skilled in many facets of programming.  We call interns apprentices as they are learning a skill.  We endorse free training and open-source.  Our website is currently under construction and we are making it a community project called ‘Communal’ which is and will remain open-sourced.  Many of the things done at Rebelhold are open-sourced.  We are currently talking about Fridays being set aside for just this purpose.  Oh, yeah, we do NOT charge for training!!

If you have read my other posts you know that I am pretty anti charging to teach programming.  Now there are tutorials and the like that I have paid for but not training.  We plan on offering free Ruby and Rails training here locally as has been expressed to the local Ruby::AZ group.  We have given presentations for the group already and will continue to do so in the future.

We are still small at this point but slowly growing.  We will have a great group of programmers because it is fun to be here.  We are RebelHold.