tag:blogger.com,1999:blog-11619955876721735252024-03-14T02:14:18.363-07:00My Developing JourneyThis is my personal blog and journey in learning a new skill, Web Developing. In only 7 months I made a career change into this field by dedicating 25(avg) hours a week in studying Ruby. #All words are my own, except the ones I copy and pasted. Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.comBlogger207125tag:blogger.com,1999:blog-1161995587672173525.post-36649674079280846332015-05-04T22:03:00.000-07:002015-08-13T21:03:45.803-07:00End of an eraI will cut to the point: This will be my last post on this blog.<br />
<br />
I have heard so many stories the past 18 months of people who attempted to learn code but never succeeded. I am blessed to be able to have kept up with my journey and focused on whats ahead.<br />
<br />
This blog original served as an outlet for me to share my trials and tribulations while trying to learn to program. I believe I have more than exceeded that goal and have been wanting to improve the quality of my content here for quite some time. I have also started a <a href="http://devstory.herokuapp.com/">podcast</a> recently, which has taken the place as my outlet for sharing my journey into programming.<br />
<br />
My previous attempts into improving this blog has included providing detailed tips in my code discoveries. I previously attempted to host these post on a hand built blog in <a href="https://github.com/brianllamar/rubynewb">rails</a>, but found the idea of building the boat while you are trying to race with it, near to impossible.<br />
<br />
Despite that, I now have the skill to maintain a blog built in ruby, I am still not convince rails is the best choice for this, but I will find that out the hard way.<br />
<br />
I have created a brand new Middleman blog at <a href="http://blog.brianllamar.com/">blog.brianllamar.com</a> and have new plans to craft well thought out blog post of my new discoveries into code with syntax hi-lighted code samples. One of my biggest gripes with blogger is the lack of syntax hi-lighting and flexibilty.<br />
<br />
These post will hopefully help me with my new short term goal of doing more speaking publicly and my blog will basically be rough drafts for those opportunities.<br />
<br />
I would like to thank you for readership all this time and look forward to you reading about my future blog posts.<br />
<br />
Happy HackingAnonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com26tag:blogger.com,1999:blog-1161995587672173525.post-6724500001150620672015-04-20T03:24:00.000-07:002015-04-20T03:24:37.677-07:00Miami Effect: Dev Recruiting<i>* This was a rought draft of a CFP I was planning to enter at a local Rails Conference. I never submitted it due to me moving to SF. </i><br />
<br />
In the 1980's <a href="http://en.wikipedia.org/wiki/Howard_Schnellenberger">Howard Schnellenberger</a> knocked door to door in neighborhood homes in Miami-Dade county. Recruiting football players that nobody wanted. He took a chance on the local community and built a dynasty that dominated football in the NCAA.<br />
<br />
Not only was the University of Miami unknown as a private college, their primary focus was trying to be part of the Ivy League of the south. Coach Schnellenberger knew he had no chance getting the top talent to not sign with Oklahoma, Texas, or even Florida and Florida State.<br />
<br />
His thought was to grab the unwanted talent from the neighborhoods you would drive your Miami Porsche Convertible through. Most prospects had troubles that the top schools did not want to deal with and despite that Miami was able to build and grow a team from their very own community. The result was this simple change in recruitment turn the community into die Miami fans, because the boys from the neighborhood all played for the school, which increased ticket sales.<br />
<br />
In addition to the increase in increasing fans, The team began to win. A new form of untapped talent was accessed and developed into a NCAA powerhouse. Another pro to this recruiting style, was the talent became virtually endless because the younger brothers and fans eventually grew up to play for Miami because of their loyalty to the neighborhood.<br />
<br />
Miami went on to win 4 National NCAA Championships in only 8 years after being relatively unknown prior.<br />
<br />
<b>Why so much talk about Miami?</b><br />
<br />
I read an amazing blog post from <a href="http://blog.ashleynh.me/on-recruiting/">Ashley Nelson-Horenstein</a> that gave a simple answer to the metaphor that you should check out. Everywhere you look you see post for Senior Developers, recruiters are bending over backwards to catch the big fish out there while completely ignoring the junior-mid level talent.<br />
<br />
Their efforts are very understandable, Tech companies want to win championships and build products quickly. The opportunity to make money in tech is huge and there is a huge sense of urgency for companies to iterate and hire quickly, but what happens when a company drops everything to obtain these talented individuals?<br />
<br />
Look at the Miami Heat; no longer a powerhouse they once were.<br />
<br />
What if tech companies put more effort in recruiting and developing the potential talent eager to learn and hungry for growth in their career? I am sure in return they would receive the same loyalty from that same home grown talent, the way Miami received. <br />
<br />
There is an overwhelming thought that there is just not enough developers out there to do the work that needs to get done, but there is a whole opportunity to teach new people. The framework I work in, Rails has reached the stage of maturity where people can now be taught how to build a blog in 15mins or with enough experience, craft a MVP in a weekend.<br />
<br />
I believe that there could be potential in the local community for more growth. If a focus is put in helping the self awareness of the under represented groups in tech to lead the charge in encouraging their communities to take the opportunity to learn such a coveted skill.<br />
<br />
Rails has actual done a great job in leading the charge in closing the Gender gap with organizations like <a href="http://www.railsbridge.org/">RailsBridge</a> and <a href="http://railsgirls.com/">RailsGirls</a>. Making sure that the overall community is one that is inviting and accepting of people of all walks of life.<br />
<br />
I began learning how to program in 2013 and decided as a way to keep myself accountable, I kept this blog of my efforts. I also re-emerged myself on twitter. Previously I was a twitter lurker, but I found it was a great tool to engage actual established developers.<br />
<br />
As time went by and while I continued down my journey towards proficient programming, I started noticing people reaching out to me and asking me questions, like what do you think about this or how do you do this... sort of thing. I of course answered them and moved on. I eventually started noticing something similar between the majority of the people that reach out to me and it was they were a majority black males.<br />
<br />
My hope is to reach other minorities in Rails and encourage them to share their story to encourage others, but also reach out to the community as a whole to let them know to encourage minorities who might not necessarily speak up due to impostor syndrome or other false limitations.<br />
<br />
<div style="white-space: pre-wrap; word-wrap: break-word;">
<b>The Pitch</b><br />
There is a great deal of work closing the gender gap, and it has been accepted into the community with open arms. I believe the community ready to talk about closing the cultural gap in tech now. As Black male I am encouraged to share my experiences to others, and hold myself to have the personal responsibility to be my own spokesperson.<br />
<br /></div>
<div style="white-space: pre-wrap; word-wrap: break-word;">
<a href="http://www.blogher.com/black-new-black-diversity-tech-industryfrom-black-computer-scientist?page=full">What happened to all of the Black and Hispanic computer scientists out there? </a>Are our struggles, voices, and efforts now irrelevant, because we don't have the notoriety of a Steve Jobs, Zuck, or Larry and Sergey? Aren't each of us the best representations of how to not only survive, but thrive in a field where the odds are against us from the start?
</div>
<div style="white-space: pre-wrap; word-wrap: break-word;">
<br /></div>
<div style="white-space: pre-wrap; word-wrap: break-word;">
<span style="white-space: normal;">Outcome: I am part of <a href="http://steamrolers.com/">Steamrolers</a>, which is a slack chat community open to all people interested talking about diversity and closing that gap in tech. </span><br />
<span style="white-space: normal;">I hope to also encourages to reach out to their community just as <a href="https://www.youtube.com/watch?v=NCjlhOYD_bY">DeVaris Brown</a> in the <a href="http://www.yelp.com/biz/the-tenderloin-san-francisco-5">Tenderloin</a></span><br />
<span style="white-space: normal;"><br /></span></div>
<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/NCjlhOYD_bY" width="560"></iframe>Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com19tag:blogger.com,1999:blog-1161995587672173525.post-7908456227022172292015-04-15T07:16:00.001-07:002015-04-15T07:16:09.923-07:00JSON view chrome extension recommendation<br />
<br />
If you are not building APIs right now, I highly recommend you dedicate some time to building one. With the popularity of JS frameworks and native mobile, having data that is accessible to multiple places; Now is the time to learn and become confident in building an API, not to mention it can be extremely fruitful to one's web developer career.<br />
<br />
I just attended a meetup where the announcement of the {JSON:API} 1.0 was announced and that is my recommendation is to use that for output of an API, only because it is my only experience, but there are <a href="http://www.mediawiki.org/wiki/API:Data_formats">other choices</a>.<br />
<br />
If you have already been using JSON as API serializer, I highly recommend a plugin or extension that pretty prints it in the browser. For whatever reason, I never thought of downloading something for that, but a coworker recommended the <a href="https://chrome.google.com/webstore/detail/jsonview/chklaanhfefbnpoihckbnefhakgolnmc/related?hl=en">JSONView</a> chrome extension. The extension has made my time working with APIs very nice. I recommend installing this or a similar extension in your browser today.<br />
<br />
*My current project is a <a href="https://github.com/STEAMRole/diversified_voices_api">Rails API</a>, and I am considering building a new public facing API for a popular sports team.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidIfJFcr9tKJCM_mQJqNvbKbmiIJnLId6Kca5FPB_2fS3azNge6FyfCZDp9tWkWW41qalPkyLv8ZFVu4x-Cg_OEIWZ0y8lRvdEV8PIE_QNKBGqzKh_RFupBvs41cnIUVoExgNVpiTlpsI/s1600/Screenshot+2015-04-15+07.03.44.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidIfJFcr9tKJCM_mQJqNvbKbmiIJnLId6Kca5FPB_2fS3azNge6FyfCZDp9tWkWW41qalPkyLv8ZFVu4x-Cg_OEIWZ0y8lRvdEV8PIE_QNKBGqzKh_RFupBvs41cnIUVoExgNVpiTlpsI/s1600/Screenshot+2015-04-15+07.03.44.png" height="255" width="320" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com5tag:blogger.com,1999:blog-1161995587672173525.post-91264626821945319982015-04-10T10:26:00.004-07:002015-04-10T10:26:45.298-07:00JS frameworks in SFThese past few weeks have been extremely busy and challenging without a place to live but luckily I am now secure in a place and stable enough to writing blog post on the regular.<br />
<br />
I have had the opportunity since arriving in the city of San Francisco to attend a number of meetups and training Sessions.<br />
<br />
<b>Ember:</b><br />
I have been partial to <a href="http://emberjs.com/">Ember</a> for the reason that I felt like focusing on one framework first prior to branching out, the main reason I chose Ember is because I actually personally knew people who used Ember in projects and could ask them questions. Even with Angular being a larger community; I just did not have an opportunity to meet any of them prior to starting my first frontend project.<br />
<br />
Ember has a very impressive community in SF, and I had the opportunity to attend my first EmberSF and was very impressed with the caliber of talent that attended the event. I am still very pro Ember but like the fact of peeking/using other frameworks at different times.<br />
<br />
Ember is great for teams because of its structure, no matter what Ember project you can, similar to Rails, know where important components are located and understand the basic structure. This reason is due to the "Ember Way" of doing things is generally the same across the board. A<br />
<br />
Another nice thing about Ember is they had an early adoption of ES6, which actually has helped me in understanding other frameworks like React and even the differences between node and io.js. There is a lot cool things happening with ES6 and I had the opportunity to learn it through Ember even while being very new to Javascript development.<br />
<br />
Some things I am finding challenging with Ember is finding the libraries that match the newest way of package management with ember-cli. I know there is a ton of libraries out there but just not a ton of documentation due to "newness" of everything. With that being said, I am excited at the opportunity contributing to the community in that way while I discover different better practices. <br />
<b><br /></b>
<b>Angular:</b><br />
When I took the job at <a href="http://bloc.io/">Bloc</a>, I was made aware of the use of <a href="https://angularjs.org/">Angular</a> in the project and began researching Angular right after I accepted the position. Probably due to my love for Ember, I did not find the excitement in learning Angular, as much I did with Ember. I however attended an all-day Intro-To-Angular workshop the second weekend I was in SF. <br />
<br />
Now that I have gotten past the initial beginner phase with Angular, I have come to appreciate the stability of Angular and how has fast it is to get up and running in a project. Ember is big into separating the API from the concerns of the frontend framework, but Angular seems separate but still knowledgeable about everything. <br />
<br />
In a conversation I had with neighbor while pairing at the event, Angular is still new to developing best practices in creating an app and it has been a struggle to newer devs to Angular. I believe things will be getting better when Angular 2.0 is rolled out and I have heard word that there will be a planned upgrade path for those on Angular 1.x, which is contrary to what was announce last year - which is good.<br />
<br />
I do have to say it is nice knowing how to use a framework as popular as Angular and being able to contribute to the JS framework conversations. I also think it will take a lot to unseat Angular as the leader in the framework battler for the simple reason that chaos of how customizable Angular is probably one of its strengths. Ember has a lot of the conventional ideas of Rails and some of it own and it does not seem conducive for a non-ruby/ post-ruby dev to learn these conventions. If someone writes PHP or JAVA in a way and wants to apply Angular to a project, they can with their own special conventions.<br />
<br />
I think the next year of Angular will be pretty interesting and I am appreciative that I know a bit of it and have gotten up to speed enough to be able to work with it on a day to day basis.<br />
<br />
<b>React</b><br />
<b><br /></b>
<a href="https://facebook.github.io/react/">React</a> is definitely a framework I have hardly any experience with but I did attend a react meetup last night and very impressive with what it can do. I do know some of the React creators were big Ember evangelist at one time and saw many similarities to Ember in the React 101 talk last night. I am definitely impressed with the speed of React and what it does on the View layer, but the idea of calling a "framework" doesn't seem right.<br />
<br />
The React core team addresses the product as a "library", which I will from now on. React actually should be thought of as a jQuery replacement tool. It does a lot of work to speed the rendering of your views and like the full-service frameworks react only needs your api, regardless of what language it is written in.<br />
<br />
The other portion that makes React be considered a framework is Flux, a separate project that helps with data stores. When you receive an object from a <a href="http://jsonapi.org/">JSON API </a>(one of many options) the framework/library grabs the data and stores that object and attaches "observes" to watch for any changes to update. Flux is very similar to Ember-Data and <a href="http://www.js-data.io/">js-data</a>, actually js-data copies a lot of what Ember-Data does and Flux has a lot of similarities Ember-Data as well.<br />
<br />
I envision that Flux and React to become synonymous with each other in the future to make that "framework" everyone is looking for. I have plans to actually start a React project soon and even take a chance React-Native with that same project, but per the presenters comments there are a lot of things to left to be desired in React as they continue to iterate on this new product.<br />
<br />
<b>Conclusion:</b><br />
There is actually a lot to be desired in all the frameworks and in reality, I don't any framework will ever solve every known problem. <br />
<br />
As soon as I wrote about my experiences with Ember last summer I received a lot of feedback on why I did not choose Angular and I did not have a great answer other than fact that I didn't know any Angularist I could get feedback from. I understand there is a "Holy War" going on right now about which Javascript frameworks is the best, but that is dumb.<br />
<br />
My recommendation is to pick one framework and learn it and don't be afraid to branch out to learn from other frameworks, because at the end of the day its all still Javascript.<br />
<br />
P.S. I hear <a href="https://www.meteor.com/">Meteor</a> is by far one of the easiest to learn and though it was not mentioned here, I highly recommend reading up on that one too.Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-14752650141894477852015-03-18T09:19:00.002-07:002015-03-18T10:33:40.985-07:00Are programming bootcamps worth the price?The past week has been very busy and included two trips to move my stuff from Orlando to Tampa to prepare to eventually move to San Francisco. While picking up my uhaul the Uhaul employee noticed a shirt I was wearing which happened to have the logo for <a href="http://www.extremenetworks.com/">Extreme Networks</a>, a vendor I worked with at Tech Data (in sales). I explained it was a networking company and he mentioned that he was looking into going back to school for networking engineering and asked me if it would be worth it.<br />
<div>
<br /></div>
<div>
The individual was probably around my age and I asked him why he wanted to do network engineering? He explain that it probably paid well and he was always interested in computers, and with my keen ear for hearing the customer and closing a sale I just had mention my story and how I got into software in less than 7 months. </div>
<div>
<br /></div>
<div>
He was definitely intrigued and I told him about my new employer and how we teach interested individuals how to become a web/mobile developer.</div>
<div>
<br /></div>
<div>
This got me thinking while I drove across the state of Florida, this uhaul employee was going to go back to school for probably 15-30k in tuition for the hope in making more than what he was getting paid at Uhaul. I paid 5k for the opportunity to learn via <a href="https://www.bloc.io/?ref_token=NjcwMzUz">Bloc</a> and in person bootcamps for less the tuition and dedicated 4 years. </div>
<div>
<br /></div>
<div>
While at IZEA I watched countless interviewees walk in for interviews out of college with Computer Science degrees but no real experience and no real portfolio to prove their ability develop code. </div>
<div>
<br /></div>
<div>
In the United States it is preached that once you have a degree you will have a great job, but I worked at a job out of college for 24k a year because I couldn't get a job in finance.</div>
<div>
<br /></div>
<div>
So my question before I answer original question is, <b>Is getting a college degree even worth it?</b> I have Finance Degree from an accredited state school and have yet to use that piece of paper or even provided a copy of it to any of my employers. To be honest I haven't even removed it from the cardboard envelope it came 7 years ago (What a waste of $48, the cost to send it to me).</div>
<div>
<br /></div>
<div>
I now work at a job making more than twice as much as I my base pay in sales and a significant amount higher than my salary even with a highest received bonus'd month. When I share the amount I paid to learn via <a href="https://www.bloc.io/?ref_token=NjcwMzUz">Bloc's</a> mentorship program and discuss the cost of bootcamps with others, it is very common to hear that rebuttals to how expensive the cost is, but when you talk with the same population of people about going back to school, there is not even a second thought about that cost. </div>
<div>
<br /></div>
<div>
<b>For some perspective:</b> I am currently rooming with someone who made the decision to drop out of a very well known and expensive College in Nashville to pursue his dream with <a href="http://devbootcamp.com/">DevBootcamp</a>SF, which really sparked me to write this blog post. Instead of paying for <a href="http://www.belmont.edu/sfs/pdf/cost_estimator.pdf">150k</a>+ in tuition after graduation, he is now only what it would <a href="http://devbootcamp.com/tuition/">cost</a> for one semester in College.</div>
<div>
<b><br /></b></div>
<div>
<b>So are bootcamps worth it?</b></div>
<div>
<b><br /></b></div>
<div>
My response is obvious, it yes, but I truly believe if you are looking for an experience that you get when going back to school where you can just breeze by and get a job when its over, you might as well just go back to school. Bootcamps are definitely worth it, but you need to be driven and be willing to experiment with different tools, build a portfolio outside the curriculum, and be willing to attend meetups get involved in the community to eventual get that offer that truly makes it worth, but more on those details in a future post. </div>
<div>
<br /></div>
<div>
Bootcamps, including <a href="https://www.bloc.io/?ref_token=NjcwMzUz">Bloc</a>, all have payment plans to help cover the cost up front. Some bootcamps even offer financial assistance for the exceptionally driven individuals.</div>
<div>
<br /></div>
<div>
Best of luck on your journey and your decision to learn to code. </div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com2tag:blogger.com,1999:blog-1161995587672173525.post-38636908484168296282015-03-02T19:20:00.001-08:002015-03-02T19:20:38.026-08:00Middleman Blog in storeI finally completed a <a href="https://middlemanapp.com/basics/start_new_site/">Middleman</a> Blog from start to sort of finish. Middleman is an easy to use framework for building static sites. I have been in the need of transferring this blog elsewhere but do not want to get stuck in the rut of building a ship while you use.<br />
<br />
My fear was always getting too involved in the process of building the blog and never writing blog post. That is why I am happy to start hosting my podcast there at first. FYI, <a href="http://developingstory.link/">developingstory.link</a> is my middleman site.<br />
<br />
I was actually able to get it started rather quickly using the <span class="string" style="box-sizing: inherit; color: #2aa198; font-family: 'Source Code Pro', 'Bitstream Vera Sans Mono', Consolas, Courier, monospace; font-size: 16px; line-height: 24px; white-space: pre;">middleman</span> and <span style="color: #2aa198; font-family: 'Source Code Pro', 'Bitstream Vera Sans Mono', Consolas, Courier, monospace; font-size: 16px; line-height: 24px; white-space: pre;">middleman-blog </span>gems.<br />
<br />
Once the blog was set up I had no problem creating my first post and setting the bootstrap (yes I did it) template. The challenge will be migrating the post from here to the new site, but I am holding off until I am confident I won't be working on the bike shed color rather than writing post.<br />
<br />
- I will definitely be looking forward to add syntax highlighted code samples to the blog.<br />
<br />
Thanks for reading and checking out the podcast. The plan is to have episodes out every Friday, so look for the next one this week.<br />
<br />
In the meantime checkout Middleman and checkout fellow a Ruby Newbie, <a href="http://www.colbycheeze.com/blog/">Colby's</a>, impressive Middleman blog <br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTZ5BkbcGHDCpj5ko0UMUR4NJ7uxprzJUthBkUXnps1gihAHZ5ygLy68k6lCyapSBN7_dme5FYpRuK048V69I6QU6deeDUsgV2Bh50-DVYqKeBvU-neFY6Ij7kbixXMB_w0hOibWDZrX4/s1600/Screenshot+2015-03-02+22.08.45.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTZ5BkbcGHDCpj5ko0UMUR4NJ7uxprzJUthBkUXnps1gihAHZ5ygLy68k6lCyapSBN7_dme5FYpRuK048V69I6QU6deeDUsgV2Bh50-DVYqKeBvU-neFY6Ij7kbixXMB_w0hOibWDZrX4/s1600/Screenshot+2015-03-02+22.08.45.png" height="178" width="320" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-91045211870882754592015-03-02T03:05:00.002-08:002015-03-02T03:05:42.339-08:00I made a podcastI made a podcast over the weekend, something I have wanted to do for awhile. The podcast itself will just be me, no interviews, chatting about my story into developing. I have completed about 16 months in learning myself and with a mentor, with 9 months of that working professionally.<br />
<br />
I am now embarking on a new journey and felt as if a podcast would be a goo platform for that. I am still continuing to blog on my coding discoveries here, but will eventually move it over to my new site.<br />
<br />
Please check it on at <a href="http://developstory.link/">DevelopStory.link</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoJoJ6Jww2BPod4w-F_rj4b38qUiJF2zvCMZuqWHGI8w94mAKr5wouAD70LCwHj06-GbLPzVNZWl64-J93no2yEtEAqaht6p98YnwOmI7U7aNfqafExXc7fF-uK4YVVRkT_Zm61FnYwwM/s1600/Screenshot+2015-03-01+06.28.36.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgoJoJ6Jww2BPod4w-F_rj4b38qUiJF2zvCMZuqWHGI8w94mAKr5wouAD70LCwHj06-GbLPzVNZWl64-J93no2yEtEAqaht6p98YnwOmI7U7aNfqafExXc7fF-uK4YVVRkT_Zm61FnYwwM/s1600/Screenshot+2015-03-01+06.28.36.png" height="148" width="320" /></a></div>
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com3tag:blogger.com,1999:blog-1161995587672173525.post-54870073312851518822015-02-27T04:47:00.000-08:002015-02-27T04:47:49.829-08:00I had a go with GOThis past months has been full of me trying new technologies, not only with Ember but I also had a chance to try out GO. Thanks to the connections made with <a href="http://steamrolers.com/">Steamrolers.com</a> I was able to connect with a prominent GO developer and they were able to give me recommendations on tutorials to get an understanding of GO.<br />
<br />
My goal for 2015 was to try out some lower level programming languages as well as some functional ones. My eyes have been on GO and Rust for awhile, but do to some unforeseen circumstances I was unable attend a CodeNewbie Code Club event on Rust. I did however complete a <a href="http://tour.golang.org/welcome/1">Tour in GO</a> and got a very high level understanding of it.<br />
<br />
GO basially reminds of C, not that I had much experience with it, but I did do some C work while completing the <a href="https://courses.edx.org/courses/HarvardX/CS50x/2014_T1/info">Havard CS50x</a> course last year.<br />
<br />
Some issues I had with GO was forgetting the "returns," With GO being a low level you have explicit call return in the functions as well as handle your own garbage collection. Ruby does so much for you and makes it very nice, especially when learning to program for the first time.<br />
<br />
I successfully submitted some code exercism which I will not share in efforts to not give away the answer to the Leap Year kata in GO, but I have to say it was quite challenging passing my first test in GO.<br />
<br />
Package management is also handle by you, and I made the mistake of setting my project package to "main," but had the test package as "leap." This took me awhile to figure, but once I did one test passed.<br />
<br />
I then had the trouble trying to figure out to return interpolated strings with my Leap Year integer but later found that was unnecessary within the scope of the test, I only needed return the integer, because ethe test was already returning the string for me.<br />
<br />
Altogether my experience was ok, but it has wet my appetite enough to want to see this through. I originally installed GO via homebrew, which I also found out that was a big NO! Only because some things that I have heard that there are a few things to be desired once you really get in to GO and homebrew does not provide everything. So while attempting to install GO the right way, I came across too many errors and currently taking a sanity break until I decide give it another go.<br />
<br />
If you are learning GO or experienced in GO and would like to pair on my installation process, please reach out.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLk6MA0z8E3e25QOSAl_PT54eki18B9QHZl9rwGUzlq-82usoUue9ndhzxw5zHlnijBNXAdugZHFDOcXj31mdWl27Ha-hEK3RBd-ywKVMCDSg6xFTx_UFMYG0mAqojGGAB5T7Q6AHRhDo/s1600/Screenshot+2015-02-27+06.37.22.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLk6MA0z8E3e25QOSAl_PT54eki18B9QHZl9rwGUzlq-82usoUue9ndhzxw5zHlnijBNXAdugZHFDOcXj31mdWl27Ha-hEK3RBd-ywKVMCDSg6xFTx_UFMYG0mAqojGGAB5T7Q6AHRhDo/s1600/Screenshot+2015-02-27+06.37.22.png" height="320" width="287" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Thanks for reading and happy hacking!</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-62249670423543870062015-02-25T20:08:00.002-08:002015-02-25T20:14:02.658-08:00Deploying my first Ember AppFor every Rails app I have created and thought about creating I have used Heroku. I have never had a need to use anything else, as none of the apps I have developed had users and needed to grow beyond the same place of Heroku.<br />
<br />
It is very apparent that Heroku has cornered the market on new Rails apps and most people I know don't think twice about running `heroku create <my-app-name>`, especially with the recent <a href="https://twitter.com/barelyknown/status/568793801487204352">announcement from ninefold</a> and their closing down their Rails service.<br />
<br />
When it came time to deploy my first ember app I automatically assumed I would use Heroku, since I already had the Rails api waiting in a heroku dyno. Literally the day before I deployed my app I heard a coworker mention how another company in the Orlando area deployed their ember app to a lesser know company, <a href="https://divshot.com/">Divshot</a>.<br />
<br />
I wasn't aware of their service to deploy static web pages, and also was aware of an <a href="https://github.com/rwjblue/ember-cli-divshot">ember-cli addon</a> that makes deploying to their service so easily. I had some <a href="http://stackoverflow.com/questions/28680747/server-side-proxy-for-divshot-not-rendering-json-api-in-ember-app">issues</a> that with getting my rails api url to get included in the config, but once I got that figured out it was a breeze to deploy. The deployment was actually so easy that I have completely discounted the need for heroku and might even transition some of my more popular static pages to the Divshot service.<br />
<br />
If you are looking into publishing your first ember app, I highly recommend giving Divshot a try and using the ember-cli-addon.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com5tag:blogger.com,1999:blog-1161995587672173525.post-379359279864132352015-02-25T05:47:00.000-08:002015-02-25T05:47:08.494-08:00First Ember app complete...sort ofI spent some time in Ember tutorials and had plans to have an Ember project built and launch back in January, but some unfortunate life events got in the way.<br />
<br />
I am now proud to announce that I have completed my goal of getting an Ember app built and launched in 2015. The app itself if very much in an MVP state and I am looking forward to finish the other features I have planned.<br />
<br />
Some of my experiences while working Ember how impressingly fast it is to build a Rails API when you aren't concerned with the asset pipeline or views. Ruby is a great server side language and fast enough for me, but sometimes Rails can be a little much; I highly recommend reading my blog post on the <a href="http://theblackc000000de.blogspot.com/2015/02/rails-api-gem.html">Rails API gem</a>, which makes building an api a breeze.<br />
<br />
Most people I have spoken with get hung up with the fact that Ember is constantly changing, which developed a very steep learning curve for learning it. I personally completed the <a href="http://ember.vicramon.com/">Vic Ramon</a>, <a href="http://teamtreehouse.com/library/emberjs">Treehouse</a>, <a href="https://leanpub.com/ember-cli-101">ember-cli-101</a> resources and found them to be enough understand the basics in Ember. <br />
<br />
I also spent some time learning form the <a href="http://discuss.emberjs.com/">forms</a> and <a href="http://emberjs.com/api/">docs</a>, as wells as attended <a href="https://twitter.com/orlandoemberjs">EmberOrlando</a> a few times.<br />
<br />
I was basically at a point where I needed to start an Ember project and start learning things outside a tutorial, which I found to be challenging but obtainable.<br />
<br />
My first hiccup came when I tried to connect my sample <a href="http://discuss.emberjs.com/t/basic-functionality-with-fixtures/7207/2">fixture data</a>. The <a href="http://stackoverflow.com/questions/28263220/fixture-file-not-found-in-ember-project">solution</a> was rather easy and actually kind of silly how simple it was.<br />
<br />
My next hurdle actually came when deploying the application to <a href="http://divshot.io/">Divshot</a>. I normaly use heroku as my go to deployment vehicle, but heard of the <a href="https://github.com/rwjblue/ember-cli-divshot">great tools </a>available for ember and more specifically ember-cli. The <a href="http://stackoverflow.com/questions/28680747/server-side-proxy-for-divshot-not-rendering-json-api-in-ember-app">solution</a> for this was not as simple but I figured it out with help from <a href="https://twitter.com/robdel12">@robdel12</a> and <a href="https://twitter.com/robdel12">@jgwhite</a>.<br />
<br />
<b>Takeaways:</b><br />
<b><br /></b>
Now that I have finally moved into world of modern day "Full Stack Developing", I am exited at the idea of separating the concerns of the api and client-side. This will give me the ability to one day try out the ever so popular <a href="http://facebook.github.io/react/">React.js</a> or even use the api data to produce an iOS app.<br />
<br />
I highly recommend everyone who has been in rails with their head down while Front-end frameworks have been popping like rabbits.<br />
<br />
I plan on doing more detail post into Ember and its structure in the future, but if I could recommend one tutorial to get started, it would be the ember-cli-101 book. Its the most up to date and gives you a great understand to how Ember works. It also provides the generator commands similar to Rails, that will help you get started much faster.<br />
<br />
If you would like to view the app live, its temporary home is <a href="http://development.project-voice.divshot.io/">here</a> and will the code is <a href="https://github.com/STEAMRole/diversified_voices_client">here</a>. Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com3tag:blogger.com,1999:blog-1161995587672173525.post-65474490256645120782015-02-24T04:17:00.001-08:002015-02-24T11:16:15.161-08:00Components not Controllers in EmberMonths ago I blogged about my experience with randomly pairing with a <a href="http://theblackc000000de.blogspot.com/2014/12/pairing-in-node-with-healthy-hacker.html">healthy hacker</a>, yesterday I concluded another random pairing and with an <a href="http://pair.withassociates.com/">associate</a>, @<a href="https://twitter.com/jgwhite">jgwhite</a>. Jamie leads the Ember UK meetup and I was looking for some ember help with my current project.<br />
<br />
I am looking to create a database for diverse speakers in tech to share with the <a href="http://steamrolers.com/">steamrolers</a> community.<br />
<br />
My specific task was looking to create a save function in my controller so when ever some one creates a new speaker with my speaker form, the createRecord function would fire. Unfortunately that was not happening and actually just throwing an uncaught error.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg54sxcSdw_ECORKTbXrg9A-oYZqvWoCflxPB1CQ6DOxguQzzUd1sXm4ukqypqcmDmXbBIOHaetPCdB30nLbRaDnZQ35PF3C241HzcufVRWNVy-BY4-5y48c8gAF2vxl1Hg9ecNf-uUV8M/s1600/Screenshot+2015-02-24+07.06.40.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg54sxcSdw_ECORKTbXrg9A-oYZqvWoCflxPB1CQ6DOxguQzzUd1sXm4ukqypqcmDmXbBIOHaetPCdB30nLbRaDnZQ35PF3C241HzcufVRWNVy-BY4-5y48c8gAF2vxl1Hg9ecNf-uUV8M/s1600/Screenshot+2015-02-24+07.06.40.png" height="175" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I spent a good part of my Sunday searching through stackoverflow and <a href="http://discuss.emberjs.com/">forum</a> questions trying to figure out why functions were not working.<br />
<br />
After a bout 10minutes of explaining my issue with Jamie, He was able to identify that my problem was due to my save action being nested in a SpeakerController and the form was calling it from the higher application layer. But it wasn't enough, just to replace the save action in the ApplicationController,he recommend to go a step further and create a Component.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYRztvl-RfLIiPA_ZtRpNrCzY0PbAzT3HibkytNvkuAn_C4SyyjjPaPe20D8nYyE0xT12AF3LxJjxtnsLh9W5393kySg5zETn5FQlngW-NsxSQcD-ApTYfC9FXFW_i1eAx5GDtd1fLtpk/s1600/Screenshot+2015-02-24+07.11.43.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYRztvl-RfLIiPA_ZtRpNrCzY0PbAzT3HibkytNvkuAn_C4SyyjjPaPe20D8nYyE0xT12AF3LxJjxtnsLh9W5393kySg5zETn5FQlngW-NsxSQcD-ApTYfC9FXFW_i1eAx5GDtd1fLtpk/s1600/Screenshot+2015-02-24+07.11.43.png" height="115" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I now understand that despite the common comparisons, Ember is nothing like Rails other than the fact they both have opinions. The Controllers work in entirely different ways and come Ember 2.0 the use of Controllers will be removed. I am now able to use the newly created speaker-form component to call my speaker.save() function and even add an a validations like containsInvalidCharater.<br />
<br />
Ember is definitely a moving ship, just like all other well maintained Front-End frameworks. The learning curve is high and constantly moving, but the reward with easy prototyping client side applications is well worth it. I am looking forward to using the foundation I am building with this app to create more things with Ember.<br />
<br />
If you are new to learning Ember, I would love to pair with you or chat about your app, in effort to pay forward the help I got with mine.Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-56316408121080509842015-02-17T06:10:00.000-08:002015-02-17T06:10:56.431-08:00Rails API gemI recently took on the task to create a <a href="https://github.com/rails-api/rails-api">Rails API gem</a> for an Ember project I am working on. for STEAMrole. It is still very much in the beginning stages but I have both the Rails and Ember playing rather nice together.<br />
<br />
Some noticeable differences in the way I started this project was I actually started with the Ember's client side application first. I wish I could say it was rather simple but I did have some hang-ups, specially while working with fixtures. The issue turned out be how was requiring the file, it wasn't actually an Ember thing. More details <a href="http://stackoverflow.com/questions/28263220/fixture-file-not-found-in-ember-project">here</a>.<br />
<br />
At this point I have been writing test and working with the Twitter API to gather some data that is needed for that app. One of the real wins for Ember and other Javascript frameworks is the separation of concerns. I am able to work on the Rails database without concerning myself with the Front-End and vice versa.<br />
<br />
My overall experience with the <a href="https://github.com/rails-api/rails-api">Rails API gem</a>, not only am I able to throw an api together rather quickly with scaffolding. It also sets up some simple controller test to assert true, unfortunately they were written in Minitest. I am not aware if they could be scaffolded into Rspec as of yet, as this is my first Rails API project and I didn't setup rspec-rails yet, but have decided just to follow through with Minitest DSL for this.<br />
<br />
The coolest thing about using this gem is being able to see the JSON data in your localhost with not a lot of effort. I highly recommend this <a href="http://ryanlabouve.com/ember-problems-connecting-rails-api/?utm_source=Ember+Weekly&utm_campaign=cbb7e66bbf-Ember_Weekly_Issue_94&utm_medium=email&utm_term=0_e96229d21d-cbb7e66bbf-106354357">tutorial</a> to get you started using the Rails API gem, feel free to skip the Ember stuff if that doesn't excite you.<br />
<br />
I am not finished with my current project, but If you interested in seeing one of my Rails API project live, check out <a href="https://github.com/brianllamar/interpersonal_mdb">Interpersonal Movie Database</a>.<br />
<br />
To get started do the follow:<br />
<br />
<br />
<script src="https://gist.github.com/brianllamar/82bf71b1d631e3de2f44.js"></script>Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-90149244282759175882015-02-06T07:31:00.000-08:002015-02-06T20:15:22.833-08:00Updating your git on OSXDo me a favor and type "git version" in your terminal<br />
<br />
If your git is not later than 2.0, then you will need to the following:<br />
<br />
I have updating my git so many time this past year and did not realize my mac was not recognizing it. This is because git is pre-installed in the mac dev kit installed with Xcode. I found a forum which describes this in <a href="http://apple.stackexchange.com/questions/93002/how-to-properly-update-git-on-mac/#answer-127073">answer</a>.<br />
<br />
I follow the instructions now mac is now using git 2.3.0.Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com1tag:blogger.com,1999:blog-1161995587672173525.post-62836930245650533702015-02-06T03:40:00.000-08:002015-02-06T03:41:31.959-08:00RVM<blockquote class="twitter-tweet" lang="en">
Just had the worst experience trying to install rails and RVM with <a href="https://twitter.com/hashtag/Mavericks?src=hash">#Mavericks</a>. Currently downgrading to Mountain Lion :(<br />
— Brian Douglas (@brianllamar) <a href="https://twitter.com/brianllamar/status/404414760885551104">November 24, 2013</a></blockquote>
<script async="" charset="utf-8" src="//platform.twitter.com/widgets.js"></script>I wrote this <a href="https://twitter.com/search?f=realtime&q=rvm%20from%3Abrianllamar&src=typd">tweet</a> during my first month into web developing learning. Looking back now I can laugh at my ignorance, because I absolutely love RVM and being able to switch my rubies on the fly. It took some time but I now feel a lot better at working in the command line and installing package like RVM.<br />
<br />
I recently spent some time pairing with a fellow Code Newbie and found RVM to be very helpful in debugging their issues.<br />
<br />
<div class="p1">
If you are using or learning Ruby I highly recommend the use of RVM.<br />
<br />
Use this path to install RVM:<br />
<div class="p1">
</div>
<br />
<div class="p1" style="-webkit-text-stroke-width: 0px; color: black; font-family: Times; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
$ \curl -sSL <a href="https://get.rvm.io/"><span class="s1">https://get.rvm.io</span></a> | bash -s stable</div>
</div>
<br />
*If you ever want to find old tweets, use this <a href="https://twitter.com/search-advanced">link</a></div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-88966229366586925262015-02-06T03:30:00.001-08:002015-02-06T03:31:08.552-08:00Faker errorIt's been a while since I used the Faker gem for anything and had an error I spent a bit of time on. I kept getting the error "TypeError: can't cast Array to string", but had no idea where that was coming from. I checked my image string and it was fine; I also tried adding in the an Active Model Serializer for my api (but that had nothing to do with it).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE2aVxcNLOSx2jp6xo6WTQzrqideR7R8lOOQEQabdiW-ZkxtyD4mpYX15ZMcZedvDAxpKz_T5da2FHlWdP8McDAJvBTitRfd-WoxfkZhqNbAEg90vbPg-IkAxQge5cpFpcG9q28M5e7cA/s1600/Screenshot+2015-02-06+03.24.58.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjE2aVxcNLOSx2jp6xo6WTQzrqideR7R8lOOQEQabdiW-ZkxtyD4mpYX15ZMcZedvDAxpKz_T5da2FHlWdP8McDAJvBTitRfd-WoxfkZhqNbAEg90vbPg-IkAxQge5cpFpcG9q28M5e7cA/s1600/Screenshot+2015-02-06+03.24.58.png" height="175" width="320" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I discovered via this <a href="http://community.gotealeaf.com/t/issue-with-faker-gem/247">blog post</a>, and found out my `Faker::Lorem` call was spitting out an array and I assumed it was a string. I switched it up to `<b>Faker::Lorem.words(2).join(" ")</b>` and all is well.<br />
<br />
Simple solution I know, but I spent long enough on this to make sure it was in a blog post to prevent future mistakes.Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-18212553941663247452015-02-03T04:18:00.001-08:002015-02-03T11:12:06.157-08:00I can open web pages in vim <div class="separator" style="clear: both; text-align: left;">
I feel as if each day I use vim I use the trackpad even less. I just discovered about the command to open chrome and open specific webpages. I will be having a lot of fun with this, but thought I should share. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
My leader key is spacebar, so all I need to do is hit "spacebar + ggg" and out pops chrome which will be automatically directed to google.com</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both;">
" open web pages in vim "</div>
<div class="separator" style="clear: both;">
nmap <leader>ggg :! open -a "/Applications/Google Chrome.app" 'http://google.com/'<CR></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdCVpxaKYvVKX_njTQlxs4wcWTm1tgNf8jAfMmyRn5ycd_i7TQhxQKJGKp9vFOxknTL2lsc38HYoFURecxd8hcMdi-tsBzYrCc5SsBhH6M_VWbuvdA1Qg4LBQApgzDJXV_7kiWSha_U-o/s1600/Screenshot+2015-02-02+17.06.00.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdCVpxaKYvVKX_njTQlxs4wcWTm1tgNf8jAfMmyRn5ycd_i7TQhxQKJGKp9vFOxknTL2lsc38HYoFURecxd8hcMdi-tsBzYrCc5SsBhH6M_VWbuvdA1Qg4LBQApgzDJXV_7kiWSha_U-o/s1600/Screenshot+2015-02-02+17.06.00.png" height="54" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
*Note: I know you can do the same in Alfred, but this is VIM!Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com2tag:blogger.com,1999:blog-1161995587672173525.post-21457737446989569682015-02-02T03:34:00.001-08:002015-02-02T13:33:27.922-08:00The New Ruby NewbiesAfter 2 months of inactivity I have decided to take the Ruby Newbies group down a different path. When I first started the <a href="https://www.youtube.com/channel/UCSn-Mw5Ikxa1A_2LYo42SJQ/playlists">Youtube</a> chats a year ago, I was looking for other individuals learning Ruby, like myself. I have succeeded in this and now work in Rails as well as other technologies.<br />
<br />
The model of scheduling g+ hangouts on air worked before but now does not seem to be a great way to collaborate and chat on topics associated to Ruby. I am just unable to keep up with a consistent weekly schedule anymore, but still want to assist and collaborate.<br />
<br />
I will be unveiling a new version of Ruby Newbies, in the form of a Slack Chat. This will gives us the ability to collaborate much faster and receive help when we are stuck on certain hurdles.<br />
<br />
*Full disclosure, I plan to make this a paid community in hopes to keep out the lurkers and less driven learners. The fee will be small and one time, but until then I am opening it up to the <b>first 15 </b>people who sign up as a beta test. I will then officially open it up for everyone to sign up next Monday the 9th.<br />
<br />
All future events and announcements will be posted within the slack chat community.<br />
<br />
If you are interested checkout the new <a href="http://rubynewbies.org/">Ruby Newbie</a> page.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgho4gcBXW2YM22-HgTbSiJSSyMoX2MVoqqeb2xEj1EDjdDZgWwz9SVQ2FvQrXQcGQ5t_9fsU2X8pYRq4KEMsjcexq-g8xiAQjuP1nh2ngs5dTEU5EAv00G4PFolvBxiGEfbWoqZzYhEtk/s1600/Screenshot+2015-02-02+06.31.15.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgho4gcBXW2YM22-HgTbSiJSSyMoX2MVoqqeb2xEj1EDjdDZgWwz9SVQ2FvQrXQcGQ5t_9fsU2X8pYRq4KEMsjcexq-g8xiAQjuP1nh2ngs5dTEU5EAv00G4PFolvBxiGEfbWoqZzYhEtk/s1600/Screenshot+2015-02-02+06.31.15.png" height="175" width="320" /></a></div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-90149819854520123302015-01-31T03:07:00.003-08:002015-01-31T03:07:42.841-08:00Making Custom User Names in Socket.ioA few months back I did a <a href="http://theblackc000000de.blogspot.com/2014/12/pairing-in-node-with-healthy-hacker.html">pairing session</a> Chris Hunt and together we built a Node Chat app using the very convenient Getting Started Guide on Socket.io's doc page. We successfully completed the guide and deployed the app with minor hiccups.<br />
<br />
Once a month here at work, we take part in a "hack day" where we can work on any project that is vaguely relevant to the business we are in or the company we work for. I took on the challenge to creating a new chat app and possibly implementing as a special feature at work.<br />
<br />
One thing I noticed right after completing the app was the lack of user names displayed inline. While chatting with Chris on our app, it was easy to know which messages were not mine, but it would have been nice to know in case I needed to review the history.<br />
<br />
Knowing the little node I knew I starting looking into the <a href="http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io">redis</a> and <a href="http://socket.io-redis/">socket.io-redis</a> npm's and figure thats what I needed to save the username when prompted, but after a bit of time scaling the api and documentation it turned out it was only needed to save the printed chat messages for the session.<br />
<br />
I was dissappointed when I did not find a blog post on the subject, but eventually found an old <a href="https://www.youtube.com/watch?v=dOSIqJWQkXM">youtube video</a> explaining exactly what I needed to know.<br />
<br />
Each user can login with a session or socket and within each socket I needed to save their username. I was actually saving the username to late in the game and every message had the same user's name. I had to access the socket and save the username the same time as the message. Here is an example of the code:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigG3S-V4CMZOozxA4sGAU2zOptcxzmGPdFZ38u5f61orNFVMt_tIXoUiwdOV58y4KVnH9R-qowtkls6qW9E44h_LC5IIad-ZlTStgk6AfWzACzmctVi9egjubNa6vJooZk6ZK2GF81dNE/s1600/Screenshot+2015-01-31+05.57.22.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigG3S-V4CMZOozxA4sGAU2zOptcxzmGPdFZ38u5f61orNFVMt_tIXoUiwdOV58y4KVnH9R-qowtkls6qW9E44h_LC5IIad-ZlTStgk6AfWzACzmctVi9egjubNa6vJooZk6ZK2GF81dNE/s1600/Screenshot+2015-01-31+05.57.22.png" height="187" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
*notice how I am prepending the chat name in the chat message while emitting the socket.<br />
<br />
Here is the jQuery providing the chat in my view:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl2YIAr6YfnFnaAyBhdtIEZlRaOnHbGdSsCpK_7jKSjRUG73XCOVhaRxOU2xVVOkf8YcH8uZV9vVtvKm2UaST8MHJmOdslIc1-XSdAprQuUy9ylCBTuDoRkt9UGxHbt_32iMzRXpRRdkw/s1600/Screenshot+2015-01-31+05.59.40.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgl2YIAr6YfnFnaAyBhdtIEZlRaOnHbGdSsCpK_7jKSjRUG73XCOVhaRxOU2xVVOkf8YcH8uZV9vVtvKm2UaST8MHJmOdslIc1-XSdAprQuUy9ylCBTuDoRkt9UGxHbt_32iMzRXpRRdkw/s1600/Screenshot+2015-01-31+05.59.40.png" height="193" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
I create a new socket call to save my username that was collect from a javascript prompt and voila, the user's username got displayed each time they printed a message. I am pretty proud that I was able to complete and publish the chat app to heroku in time to present in our hack day presentation meeting.<br />
<br />
*I made the dangerous decision of publicly displaying a chat to a projector screen.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6vU3G_YCXHVoxbdL3M2Vq1xZxE20G4rY2CY6V1s2oCTz0U_iZ6UyAZn8coTk2aKleHuu0P9sy0G505u_OC8B2XiQKDu_3bNuo9CnvgXjPZfNGRAI1py3WAf3gYlEtFeudDj1aWaN7Usw/s1600/Screenshot+2015-01-30+15.49.41.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6vU3G_YCXHVoxbdL3M2Vq1xZxE20G4rY2CY6V1s2oCTz0U_iZ6UyAZn8coTk2aKleHuu0P9sy0G505u_OC8B2XiQKDu_3bNuo9CnvgXjPZfNGRAI1py3WAf3gYlEtFeudDj1aWaN7Usw/s1600/Screenshot+2015-01-30+15.49.41.png" height="221" width="400" /></a></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
As far as <a href="http://stackoverflow.com/questions/9267292/examples-in-using-redisstore-in-socket-io">redis</a>, I only need that to save the previous chat messages, which for the purpose of my feature, it is not needed. There is still work to be done on the front end and how it will be render to make it a new feature, but I am pretty proud of this little guy - <a href="http://asocket1.herokuapp.com/">My Chat App</a>.Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com1tag:blogger.com,1999:blog-1161995587672173525.post-63435346995634830472015-01-30T03:32:00.001-08:002015-01-30T03:32:07.876-08:00Marked HAMLI spent quite some time in my developing learning avoiding HAML, SLIM, and all other template alternatives, but recently I took on the task of working on a project that was exclusively written in HAML.<br />
<br />
HAML is a template language that is meant to make writing html less of a drag. It was very common for myself to forget closing brackets and div tags which always annoyed me greatly, but I avoided the simplicity of HAML because I wanted to force myself out of that bad habit. HAML does not require any brackets and works with spacing and indentation to convert the valid html.<br />
<br />
I initially reaction when started the project was to convert the existing HAML into/<a href="http://apidock.com/ruby/ERB">erb</a> right away, but I then read an article from <a href="http://hashrocket.com/blog">Hashrocket</a> and found they used HAML exclusively and it got me thinking, maybe it's time for start learning this.<br />
<br />
<div style="text-align: center;">
Here is an example of html converted to haml:</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb063r22CtIvFMvBGOg0-JKovSf1XO5BA-CHh0kHMobctxkbontld_WW9DqvQYBxd2qCEPjgmWbV7QD8cEsVhqyBH6-qyPif_cfyKB7RQeeT0GBdi3zMSRNHTZrSLo9Z0zdeT4OmX22HA/s1600/Screenshot+2015-01-30+06.20.35.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhb063r22CtIvFMvBGOg0-JKovSf1XO5BA-CHh0kHMobctxkbontld_WW9DqvQYBxd2qCEPjgmWbV7QD8cEsVhqyBH6-qyPif_cfyKB7RQeeT0GBdi3zMSRNHTZrSLo9Z0zdeT4OmX22HA/s1600/Screenshot+2015-01-30+06.20.35.png" height="60" width="320" /></a><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEissERDRrWXk-2z6QSTfLfDh5UtDOQfaXzqe88NEC7U8Jx9WUJv2PtdkXhbyfVd3A2NsSwKlPAG9jU0p_TIDg2jAAWp_7fFmShxyRytE4Q8yCI70Lbxf7z7GYIL5bW_AuZbBMtgz28P_4s/s1600/Screenshot+2015-01-30+06.20.55.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEissERDRrWXk-2z6QSTfLfDh5UtDOQfaXzqe88NEC7U8Jx9WUJv2PtdkXhbyfVd3A2NsSwKlPAG9jU0p_TIDg2jAAWp_7fFmShxyRytE4Q8yCI70Lbxf7z7GYIL5bW_AuZbBMtgz28P_4s/s1600/Screenshot+2015-01-30+06.20.55.png" height="84" width="320" /></a></div>
What annoyed me the most was the errors received due to the sensitivity of spacing. If your indentation is off HAML will tell you. If you write invalid code, HAML will tell you and there is less flexibility with how much Ruby logic you can place in your template.<br />
<br />
Learning Ruby/Rails first introduced me to erb and I love it and understand it, which is another reason why I avoided HAML.<br />
<br />
I have since stopped work on this project but did walk away with some more experience in this templating language. I can't say I would go for HAML at the start of a project but I don't think I need to avoid it anymore. I will definitely give it another shot on one for my smaller projects, especially since I am pretty sure this is not the last I will see of it.<br />
<br />
If you come across HAML somewhere I recommend learning it and use tools like <a href="https://haml2erb.org/">hamle2erb</a> or <a href="http://htmltohaml.com/">htmltohaml</a>Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-57939678619802459182015-01-28T03:17:00.000-08:002015-01-28T03:17:03.550-08:00Learn Javascript quickly with WatchMeCode ScreencastA few months back I sent out a tweet to Advi Grimm, trying to find a screencast service similar to <a href="http://www.rubytapas.com/">Ruby Tapas</a>, but for Javascript (If you write Ruby and do not have a Ruby Tapas subscription, you need to sign up today).<br />
<br />
I actually did not get a response but actually got an email from Advi a few weeks later announcing special pricing for Ruby Tapas subscribers to the <a href="https://sub.watchmecode.net/">WatchMeCode</a> screencast from <a href="https://twitter.com/derickbailey">Derek Bailey</a>. I believe I signed up the next day and binged watched almost all the episodes during my 2 weeks off of work.<br />
<br />
The videos were slightly longer than a Tapas but filled with a large amount of content on Javascript. I attempted to learn Javascript properly a few times in the last year and failed to grasp the concepts of Prototypes, Closures, etc. Things finally started clicking thanks to this unique form of sharing code through screencast. I would consider myself now moving away from the entry-level to junior programmer and this is thanks to screencast like these who have given the ability to implement new tricks into my development.<br />
<br />
I have a couple node projects complete which knocks off one item from my <a href="http://theblackc000000de.blogspot.com/2015/01/my-goals-for-2015.html">2015 goals</a>. I now have my eyes on GO and Rust, as well as putting together my first Ruby Gem very soon. Stay TunedAnonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com3tag:blogger.com,1999:blog-1161995587672173525.post-13519674518568465752015-01-27T03:14:00.003-08:002015-01-27T03:14:48.775-08:00Custom Google Calendar links. A few post back I wrote about how to <a href="http://theblackc000000de.blogspot.com/2015/01/breaking-down-urls-with-javascript.html">create urls with Javascript</a> and thanks to that post I was able to make a quick change to <a href="http://steamrolers.com/">Steamrolers</a> page.<br />
<br />
This Thursday kicks off our first AMA with Maurice Cherry at 6pm. Our <a href="https://twitter.com/ace_ux">designer</a> added a cool trick to the page which creates a <a href="http://stackoverflow.com/questions/10488831/link-to-add-to-google-calendar">Google Cal event</a> for you from the provided link. I wasn't aware you could do that until now, but it makes sense and seems to be powered by Javascript in the background.<br />
<br />
All that is needed is a generated link, which can do easily with some provided sights or you can just create a event on your account and copy the link to the url in your browser and use that link in the href or erb link.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRMh26Q_jlRpdS7G3JK9LqEo04_vFxkvX1uSoPSYBcUyf_DMjTY9cD1h3O2s2OjtwJxWQNFZgNNg05LeAH0DWgMJ_0MfI_JPoNa2SzPEY60a27EdvfacIR-NFAicauvW0KZoHqFE29x8k/s1600/Screenshot+2015-01-27+06.11.28.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRMh26Q_jlRpdS7G3JK9LqEo04_vFxkvX1uSoPSYBcUyf_DMjTY9cD1h3O2s2OjtwJxWQNFZgNNg05LeAH0DWgMJ_0MfI_JPoNa2SzPEY60a27EdvfacIR-NFAicauvW0KZoHqFE29x8k/s1600/Screenshot+2015-01-27+06.11.28.png" height="83" width="320" /></a><br />
<br />
<br />
<br />
<br />
<br />
<br />
I discovered all this when I went to test the functionality and saw that the generated date was off. Turns out the date code in the url just needed to be updated to what I believe to a UTC translation and voila it all works just dandy.<br />
<br />
So if you have any scheduling needs or events to share, now you know how.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://steamrolers.com/" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgCzzbciuoysEhsYeNBN6OkEVuTvV86t0Fqg558iTqe8voMPjFIPBoivJL4zmk_zxxwGm0wp5veSNVa2ZVtb4E-0CMlStwZvBNKaspIK2I-ICcO48ZWeVX_QWMfyFrohCbAKl4VddZBP4Y/s1600/Screenshot+2015-01-27+06.04.55.png" height="182" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<br />
<br />
<br />
<br />
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-4947816742862330062015-01-26T05:41:00.006-08:002015-01-26T05:46:46.000-08:00Saying goodbye to my biggest cheerleader10 days ago I received an unexpected phone call from my brother letting me know my mother had past away. My entire world completely stopped while I took time to grieve.<br />
<div>
<br /></div>
<div>
My mother was the hardest working woman I ever knew and I am very grateful for what she has done for me and my brothers. Despite being a single mother, I was able to not only grow up in a decent neighborhood and attend great schools; I have also been given a chance to follow my dreams.</div>
<div>
<br /></div>
<div>
When I began my programming journey, my mother was one of the few I told of my decision to go down this path and encouraged me everyday. She read my blog post and even retweeted my tweets even thought none of it made sense to her. </div>
<div>
<br /></div>
<div>
In support of mothers who are also going down the same journey as myself, into programming, I have given a donation to <a href="http://www.mothercoders.org/give">MotherCoders</a> in her honor. </div>
<div>
<br class="Apple-interchange-newline" />
I will miss you mom, thanks for all you have done. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhILCcc5EAxqPhgdDKVo2vlNGJiJUoFfnxMKPmsKlCddQkxh2KG4JJKFykshtU_TPFUljEV_WPZShSr2XiuclUMVBKC2E0i1NFZ4C9nbl1NOilEds4owZJqyiWRdE72_7rmU7JBo3h_9K0/s1600/10577017_10152794388149178_1375398850433607932_n.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhILCcc5EAxqPhgdDKVo2vlNGJiJUoFfnxMKPmsKlCddQkxh2KG4JJKFykshtU_TPFUljEV_WPZShSr2XiuclUMVBKC2E0i1NFZ4C9nbl1NOilEds4owZJqyiWRdE72_7rmU7JBo3h_9K0/s1600/10577017_10152794388149178_1375398850433607932_n.jpg" /></a></div>
<div>
</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-84708098528069991772015-01-15T04:31:00.002-08:002015-01-15T09:43:40.478-08:00An opportunity for friends to help friendsAbout a month ago I was approach by someone to gauge my interest in a staring a community. This community was to be one that represent the underrepresented individuals in the Tech Sector.<br />
<div>
<br /></div>
<div>
When I first began learning to program I dove head first into tutorials and code samples, I did not really take anytime to look around and didn't realize the proportions of Women and Minorities in tech were extremely. I didn't know as I trail blazed into a career, that I would be on of the few minorities working in my new position. </div>
<div>
<br /></div>
<div>
It is very easy for companies, like <a href="http://blog.ycombinator.com/yc-demographics">Y Combinator</a> to look back and say the reason for this is because women and minorities are not interested in Web Development or Design, and based on the talent pool applying for these jobs is proportionate to the culture make up of who is currently working in the field. Based on their article their outreach efforts will be strengthen, but I am not sure that is enough. What if there more communities like <a href="http://www.blackgirlscode.com/">BlackGirlsCode</a> and <a href="http://www.railsbridge.org/">RailsBridge</a> to source this talent from?</div>
<div>
<br /></div>
<div>
The term friends want to hire their friends comes up a lot and I find no problem with that statement or practice, because I think that this community has the potential the individuals who are hiring and recommending tech jobs to their friends to now make even more friends. </div>
<div>
<br /></div>
<div>
I am proud to announced that I have joined a community of <a href="http://steamrolers.com/">SteamRolers</a> prepared to changed the talent and support each other in their desire to shake up the cultural make up. </div>
<div>
<br /></div>
<div>
If you are at all interested in this, please check out our new site where the conversation has already started. <a href="http://steamrolers.com/">Steamrolers.com</a></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs9EyZt9i_UpU0qtorXcIvVhlRRUsATdMDQdvMtrPaZ19bZppchypoarIvhD87gsAqZUNyUh9YM4jyOwOV6coE2jA4L4YVIwgO_JQhmsOTc9kgUOT7zQqyCmtt0Z1m7J5rF3D4Ag4LmeY/s1600/Screenshot+2015-01-15+12.43.16.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjs9EyZt9i_UpU0qtorXcIvVhlRRUsATdMDQdvMtrPaZ19bZppchypoarIvhD87gsAqZUNyUh9YM4jyOwOV6coE2jA4L4YVIwgO_JQhmsOTc9kgUOT7zQqyCmtt0Z1m7J5rF3D4Ag4LmeY/s1600/Screenshot+2015-01-15+12.43.16.png" height="181" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-71296648022758406152015-01-13T05:39:00.000-08:002015-01-13T05:41:28.485-08:00Chron job in nodeAfter my recent <a href="http://theblackc000000de.blogspot.com/2015/01/node-battle-integrate-slack-and-typeform.html">node battle</a>, I knew the war was not over. I still needed to set up my node script to run in the background. I know with Javascript be an event based I should be able to create a chron job for checking when ever a new signup on the form happens, I should be able to send an invite.<br />
<br />
I first started with the forever npm package but similarly with my original requirements for running the unstable version of node, I was unable to use that package, as it is not updated for that.<br />
<br />
I then found a <a href="http://stackoverflow.com/questions/18120909/set-interval-in-node-js-vs-cron-job">StackOverflow</a> question on running the code in an interval. As I thought, this was pretty easy. I am impressed or frustrated with node at the same time, mainly because its not Ruby. In the same vain is not too bad and I can see myself using more in the future for small scripts as the community includes some of the smartest programmers out there and can only increase my experience knowing yet another server side language.<br />
<br />
<b>My Code:</b><br />
<b><br /></b>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie-ZB78O1RE_wKniLrGokpbRbqkTEmpzVseyNO3VpfRBvaqmcxy9RGqNduOC0Woz8R4PFbyiikTD6Oh6FgqDtDZ0QJ2sjL1TxyRI0xF_K8OYSZ7XKe3QzoYnVLVrPS4mfg-qOsOjUt9ao/s1600/Screenshot+2015-01-13+08.35.37.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEie-ZB78O1RE_wKniLrGokpbRbqkTEmpzVseyNO3VpfRBvaqmcxy9RGqNduOC0Woz8R4PFbyiikTD6Oh6FgqDtDZ0QJ2sjL1TxyRI0xF_K8OYSZ7XKe3QzoYnVLVrPS4mfg-qOsOjUt9ao/s1600/Screenshot+2015-01-13+08.35.37.png" height="124" width="320" /></a></div>
<b><br /></b>Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com0tag:blogger.com,1999:blog-1161995587672173525.post-16775167076635429852015-01-12T04:33:00.000-08:002015-01-15T04:32:20.656-08:00node Battle: The integration of slack and typeformThis weekend was planned for the exploration of new territory. I have had a new idea for my first Ember app for quite some time and was ready begin from `ember new`.<br />
<br />
I also recently joined up with a group to startup a new idea (more details in a <a href="http://theblackc000000de.blogspot.com/2015/01/an-opportunity-for-friends-to-help.html">future post</a>) for a community. My first task for the group was to integrate slack into the app, sounds easy enough since there is a popular <a href="https://levels.io/slack-typeform-auto-invite-sign-ups/" target="_blank">blog post</a> on how someone did it in php. I am not exaggerating when I say I have had no php experience, but expected to learn it quickly enough to follow a blog post, well the blog post was not as clear as I would of thought it to be. I expected more steps and ideas on how to run a php script and the s/o questions and google searches made too many assumptions on my skill level in php.<br />
<br />
After spending about an hour in php, I decided to search for a different solution and possible come back to php if needed.<br />
<br />
<b>Here comes the node</b><br />
<b><br /></b>
Now what I was doing is farely new and the blog post was only written 2 months ago, either there is not a need for this sort of slack integration or I am on the cutting edge. Regardless, when I tried searching only 3 implementations came up, and one was just a bot reposting the first php article.<br />
<br />
Luckily the other choice was node, a version of Javascript I had some experience learning in. I stumble on the cleverly named <a href="https://github.com/icodeforlove/slack-typeform-inviter" target="_blank">slack-typeform-inviter</a>, great for seo, and quickly enough of the code to realize it made sense. I forked the project and began inserting the needed API keys for Slack and Typeform.<br />
<br />
I then Ran the code and boomed error, `SyntaxError: Unexpected token *`. Hmmm, why would someone post code with syntax errors?<br />
<br />
Actually it is not a syntax error, but actually a new syntax for the release candidate .11. Yep the code was written on an unstable version of node and I was an unstable developer at that point.<br />
<br />
Now I wrote my solution in what took about 5 seconds for you to read, but it took about 3 hours of banging my head on the keyboard trying to figure out how to debug this code. I removed the "*'s" from the deferred calls, which I found out to be to sort of like yields for arguments, but once those were removed I was getting errors on the yields.<br />
<br />
I finally removed the yields and got the code fail everywhere there was a "request" or "response" call. This was weird, so I ended up emailing the contributor. In hindsight I recommend opening up an issue on github instead, I got a super quick response letting me know it was the newest unstable node code and a picture of the developer at a KPOP concert in Thailand. I felt bad to bother him but relieved that I could get the code to work.<br />
<br />
But only if it was that easy, I did spend about 4 hours figuring out how to install an unstable version of node and debug why it was not working on my computer. Those fours plus probably more as I moved into the next day were spend installing dev tools on my wife's mac to test that the code worked. Luckily all I had to do was copy and paste my .vimrc, which is testament to VIM and why you should use it.<br />
<br />
I ended up discovering <a href="https://www.npmjs.com/package/nvm" target="_blank">nvm</a> (similar to <a href="https://rvm.io/" target="_blank">rvm</a>) to install the "unstable" version of node and switch back and forth when needed.<br />
<br />
There was an incredible amount of troubleshooting this weekend, but it taught a deep understanding of how npm and node_module management works. It also gave a chance to write some production ready node code. Also the code works which is a relief.<br />
<br />
Thanks to <a href="https://twitter.com/icodeforlove" target="_blank">Chad Scira</a> for being so responsive in email and originally writing the <a href="https://github.com/icodeforlove/slack-typeform-inviter">slack-typeform-inviter</a><br />
<br />
*I have submitted a pull request to help anyone else who might want to use the node pack in the future. Which has already been merged!<br />
<br />
Now I hope next weekend I can get past ember new.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZGqskMKgZ94Zb4TDy_a34IBFqPyZjDrtBBtDl16RoYuuNA2L3xcfTvHB5l8GyZlCp6HVtUhiHp6pi7pl34w6QVRnuXCw9c1Y5mbWpTsazQvcaNVNBCp-fWHs9brhuU8DBmBwblLOpf1M/s1600/unnamed.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZGqskMKgZ94Zb4TDy_a34IBFqPyZjDrtBBtDl16RoYuuNA2L3xcfTvHB5l8GyZlCp6HVtUhiHp6pi7pl34w6QVRnuXCw9c1Y5mbWpTsazQvcaNVNBCp-fWHs9brhuU8DBmBwblLOpf1M/s1600/unnamed.jpg" height="238" width="320" /></a></div>
<br />
<br />Anonymoushttp://www.blogger.com/profile/12649315840276116630noreply@blogger.com1