bloc referral

If you are interested in learning to code with a mentor, try bloc and get $100 off.
Showing posts with label chuych. Show all posts
Showing posts with label chuych. Show all posts

Sunday, November 30, 2014

What ever happened to Chuych

I spent a good amount of my learning Rails while hacking away at an idea I had to find churches easier. This idea for a church app was actually the reason that got me started in this journey in the first place, but this app been rejected in the past mont

Back in August I rewrote a lot of the Rails code and even added test for the functionality. I then began learning a lot of new front end techniques and frameworks to eventually redesign the app from the ground up, but I got distracted.

I first got distracted just learning and recently realized I was not spending nearly enough time writing code. The fastest I have ever learned code is by writing it and I have made the decision get back into making apps. I have spent nearly 15hours of logged time rebuilding the design using a bootstrap template ( I was avoiding using bootstrap, but gave in).  I now have an app that I am proud of and looking forward to sharing it with actual users.

The irony is that this has been complete for nearly 8 months, but I have been dragging my feet to actually share it and have people use. It's one thing to build an app, but its much nicer to have real people use it, which I have found joy with in RubyNewbies.

I have been putting git flow into practice and focusing one feature at a time, I did not spend my time in TDD as much as I like to since the majority of changes were CSS and not backend. I also set my integration test to pending during that time since I did not have a design in mind, I look forward to going back and rewriting those.

Look out for more post about my rewrite of this app coming soon, specifically the challenges of maintaining an app with legacy code.

Before:

After:



Friday, September 19, 2014

Why I am using git flow and you should too

I have learned many things in only 3 months real Rails Engineer(not just on tv) and I have been a slacking a bit on sharing those skills due to the increase workload I continue to take on. I did want to take the time and share on `git flow` and why I am using it on my overhaul of my breakable toy app, Chuych.

While attempting to work on my chuych app in the past 3 months I have notice that my commits are a bit all over the place and I lack the focus to complete anyone thing, for example sticking to one design. This is why I have taken it upon my self to use git flow (What is git?).

 My goal has been to give my personal projects more of a focus lately since they have been ignored. I spent a lot of time trying to get up to speed in Ruby, Javascript, and even learn iOS on the side. I can say I really lost focus on maintaining my own code portfolio. I have however been taking work home and spend a couple hours on the weekend working through refactoring and bug tracking in my work code.

I have slowed down on my learning of new skills and languages and restricting myself to only learning things that will increase my productivity at work and make my chuych app more robust (This will not effect my iOS learning). I have spent the past 2 weekends building out my test suite and it is at a point where I can no just add test when I implement new things.

Git flow  is feature of git where you can speed up your workflow, in the command line, by creating structure in your branches/commits with shortcuts. This feature will create a branch, merge a branch, and close a pull request in 2 commands. It is not uncommon for someone to work on their personal app and commit and push everything on their master branch. There is no shame in this if you do so; I was doing this up until last month. I am now using git flow to create separate branches to organize my thoughts and focus on one feature/fix at a time. This really helped me finish the last of my testing and will hopefully help me build out my design stylesheets.

If you learned rails through any tutorial they team you to commit as soon as you are done with a full feature or full programming thought. They sometimes briefly teach you about branches, but from my recollection, it gets abandoned rather quickly in the tutorial, or at least I abandoned it. It really isn't necessary to be so verbose in your branching your commits, but for apps you would like to keep around for awhile, structure is what will keep your sanity.

My recommendation is to try using `git flow` for one feature of your site, if you are not already using a similar method, it will bring sanity back to your app development just as it has mine.

The Process:

To begin you will need at least 2 branches created in your app. I named one master and the other develop, but feel to use any naming convention.

  Master Branch - This branch is standard, especially using github and coming from tutorials. I believe most Rails developers and even possible back-end git users use this branch name. If you are using heroku or another deploying method, it can be deployed from here.

  Develop Branch - This is the branch where all you code will be merged to first and tested.

It is important to keep master separate in case you merge a breaking changes or something goes wrong, the merge history should be primarily merges from develop unless its a hotfix (to be explained later).

You can also create staging, release, and QA branches but I am keeping it simple for now and suggest the same.

Install:

There are complete git flow installation instructions on the web but I will provide the cliff notes.

Start by type `git flow init` in the command line and proceeding with the steps prompted in your terminal. They will ask what branch your feature will be merged to, my recommendation is to use the defaults on the screen and the develop branch to merge to.

Workflow:

Again there are many workflow examples on the web but I will provide the cliff notes.

In my current we follow the current structure.


  1. Create a feature branch `git flow feature start <desired_feature_name>` while on the develop branch. What ever branch you are on will create the new feature branch, so make sure you are on the correct one.
  2. Push the branch to git `git push origin <new_feature_branch_name>`  this will create the branch on github, be sure your git remote is set or you will be prompted the first time. 
  3. Open pull request, on github you can use create a pull request compared to develop for peer code review. Instructions on creating a pull request.
  4. After feature is complete `git flow feature finish <chosen_feature_name>` this will merge your branch to develop and delete your feature branch locally only. 
  5. Now the final can be of your choosing, but you eventually need to merge to master and then deploy once tested. At work we would now create a release branch using `git flow release <release_number>` and repeat steps 2-4, replacing the final merge to master instead of develop.


*a hotfix is a pressing bug that will actually be merged to the master branch instead of the develop first. You will create these off master and follow the same steps 2-4.

Why:

So why do it this way? My answer is again to stay focused on feature at a time; it will also help when I actually get my app built out, I can work on multiple feature at a time if I get stuck or choose to work with another developer. I also will start using release cycles once my app hits 1.0 (i.e. has some sort of front end design).

If you are reading this and still learning rails in hopes to get a job doing it, I recommend trying this out, if it doesn't work for you, you can always delete the extra branches continue to push changes directly to master. If you do decide to do this, it would help you in the eventual interview since most companies use this or a similar technique in the development.

If you have questions or if something was unclear, please shoot me an email or leave a comment.





Thursday, September 4, 2014

Finally building a complete test suite for chuych

Now with 10 weeks of real work experience I have gained more experience than I could have ever imagined.

I am shocked to find that my first commit to github for my chuych wasa whole 3 months later. My previous goal was to gain enough knowledge after beginning work to keep up with my daily workload and I feel I have just reached that point.

My second goal as of August was to start committing to my personal projects once again. I have succeeded by providing my first commit August 10th.  My hope is now to complete my test suite by Sunday, which will include Features and Models (using Rspec).

I am looking forward to writing a complete test suite to ensure my app is free of most bugs. I will be focusing some future blog post to my current work in testing. Once I complete this task I can move on to improving the front-end design, which has been lacking since it's inception.

TDD? More and more people I come encountered with do not use TDD and it's not a mystery that I do not use this form of testing, but the concepts I have learned from thoughbot's upcase TDD workshop has been more than enough to learn the idea of testing in Rspec. Whether you test before or after, testing is still the same, and I highly recommend learning TDD is you are interested in writing better test.

Testing small has made it easier for me to get the ball running and getting an overall idea of what needs to developed next. I currently have tests for 3/4 of my existing models and plan to move on to Integration/Feature test which will tighten up the functionality of my app. I have found that the geo-searching was very buggy and the rendering of the Javascript was also hit or miss, by testing this will help identify the problem and fix it.

For a tip:
My recommendation is to start with validation testing to help get past the awkward part of testing,  I have an example of that below.

Tomorrow I will write a post on setting up your test environment.





Monday, April 28, 2014

Encouragement to complete my personal projects

I stumbled upon Nathan Barry months ago but not really sure how, most like someone retweeting something of his that was interesting. I have signed up to his newsletters which has been great, but the latest blogpost is exceptional. Not only does it describe the very position I am in with Chuych, it has encouragement enormously.

It's confirmation of my belief not to live on "What if's" but "Oh well's."

Please read his post and let me know if you got anything out of it.

Nathan Barry - This Moment

Friday, April 25, 2014

New Direction? No just adding more stuff to do.

My original focus for this blog is my journey on getting a dev job. I am now noticing a trend as I find my self being pulled into different directions. I am still very much interested in getting a job as a dev, but I am also very much interested starting this Chuych app officially. I personally do not have the app where I would like and reached out to a contact I made at Ancient City to assist in the development of some advanced features. I am willing to pay this individual, but I also want to make sure that the app is something will take off and stabilize to a certain degree.

I have begun doing some grass-root marketing with Chuych and have created a facebook page in effort to build a community of people to get feedback from people while in beta. I also plan to reach out to churches for partnership (money), this will help kickstart me financially with marketing and development work  as I plan to grow to at least 500 users before the end of the year,  At this point I will need to outsource some day to day and interactions on the site. In my mind this app would have no reason to be successful, but I also know there is a chance things could go bad and it could flounder. Regardless it is definitely worth a try.

This Chuych idea got me started into developing and really the main reason I chose Bloc over other programs. I will begin posting my journey in creating this "startup" on the side. As you all know, I have a background in sales and am also in school to earn an MBA, so it will be exciting to use some of those skill together with my new skill, development.

I wouldn't be a good salesman if I did not ask you to please like my facebook page and let me know what church you attend.


Friday, March 28, 2014

By Monday this Chuych Design will look much better


I wish was a design expert but I am not. Thanks to a good chat with Afshin  I have an idea of what to do about it.



Tuesday, March 25, 2014

Nesting Routes and Learning Basic Ruby again

Chuych

I spent a good amount of last week working on a error with nesting my routes in the Chuych App. I had a goal of making every user submit a post associated with/without a church, but my other goal was to make the app a minimal viable product. I have decide to nest my route post route in my church route. This makes sense with the association of post to churches. I have also gave up on the idea that anyone can make a general post. I will revisit that later when I have time, my main focus is getting the app complete.

My was due to me not properly calling the nested posted in the church/show.rb



My only task that need completing are the implementation of gmaps for rails and markers, as well as everything Front End. I will most likely just update the app with some bootstrap, my attempt to include the Amoeba template did not implement very clean. I plan to strip out all the assets today and start from scratch.


Ruby Newbies

I have began scheduling a regular Weekend Hangout. The focus will be on Ruby and actually solving real problems in Ruby. I applied to an apprenticeship a month ago only to find out I could not create a Tic Tac Toe app in Ruby without searching extensively in Google. I could get the basics of building the Tic Tac Toe board and a move but that took me 3 weeks.

My goal for the group is get through the Chris Pine Learn to Program Exercises. I have spent a focus on learning Rails, I now need to re-focus on Ruby and solving simple problems.

Monday, March 17, 2014

The Odin Project: Open Sourced Learning





Week 21 of learning web development has now been completed. Its really did go by quick.



During the 12 weeks of Bloc I focused specifically learning rails and working through a small portion of Ruby. I also spent about 25+ hours a week learning through the Bloc curriculum. '

Well after much consideration and planning I have decided to cut that time down to the minimum of 15 hours a week. Last week I barely hit 14 hours, due to me also being behind in work and my Business Law course. I spent a good portion of my time on the Chuych app where I ran into nesting issues with my routes. I also implement mail chimp to begin making a mailing list for the beta. I have yet to do anything on the front end and have learned quite a bit through Dash from General Assembly.

I also cannot recommend the Odin project enough. Its a pretty inclusive rails app for all things web development. The web development meeting was cancelled for last night, but I did attend the Rails group. I am looking forward to using my learning time working through this curriculum and hopefully meeting some new developers.

The site is also open sourced and has a few todos on Pivotal Tracker. I am looking forward to potentially contributing to project, eventually.


Wednesday, March 12, 2014

I think I might start a real business. Or at least a business email

I have been strategically taking up the Chuych name in different places on the internet, and although this is not specifically learning Ruby, I would like to share. I am trying to stray away from creating a bunch of social media profiles in replace of an actual app, but I could't help but create a Twitter account in preparation.

I really plan on make my capstone project into a full fledge app for the world. I am really liking some of the ideas I have on it, but I am really trying to stay close to the MVP at launch (Easter). I plan to be my own street and do some life growth hacking to ramp up the user base. On the other hand I do realize there is a chance that my first ever app has a chance to fail and trying to be conservative as possible in spending money towards this as of yet. 

I did however spend 4 bucks on hover to get the hello@chuych.com email, so my devise emails do not come from my personal email. I am completely ignorant when it comes to domain names and DNS hosting, but creating a forwarding email was easy and cheap.

I have always wanted to this and this finally gave me a reason to. It was only a two step process:

      1. I believe most Domain companies have email creation, but if yours doesn't, I recommend Hover.com. I super excited in giving out hello@chuych.com and also mail@briandouglas.me. 

      2. I use gmail, which I did not know you could change your "email from." Instructions on how to do this is here.

I plan on not only finishing my capstone app, but also plan learning how to build the brand of Chuych to ensure it's success. Based on some of the things I have been learning from Pat Flynn, I have created a blog and plan to keep that up on a weekly basis as well as keep up to my 3 times a week quota on this blog (my personal goal).