Planet Ruby Podcasts

Friday, 08. September 2017

Ruby Rogues (Podcast Show)

RR 326: Chatbots with Jamie Wright

In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October. [01:25] Jamie Wright introduction Jamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to...

The post RR 326: Chatbots with Jamie Wright appeared fi

In this episode of the Ruby Rogues podcast Dave Kimura, Eric Berry, and Charles Max Wood discuss chatbots with Jamie Wright. Jamie will be speaking at Ruby Dev Summit in October.

[01:25] Jamie Wright introduction

Jamie is a professional nerd and independent contractor. He's been coding for 20 years mostly in Ruby. He's starting to get into Elixir.

One of his first projects was a text adventure game, which got him started with conversational UI's. He saw Hubot on Campfire. He started tweaking that.

He made a timetracking bot that used Freshbooks and Harvest.

Then Slack came out and he created Tatsu.

[05:00] Tatsu features

You can schedule it and it'll ask automated questions.

He's working on having it integrate with github, Harvest, Google Calendar, etc.

If there's a blocker, you should be able to create private conversations with the people who are blocked and add that to the standup.

When you sign up it adds a video link into your slack. Eric thinks this is pretty clever.

In Slack, the default action people should take when a bot is installed should be to DM the person who installed it.

[08:50] What it takes to write a bot and the challenges involved

Writing bots is “fun as hell.”

Chatbots suck. We have the opportunity to improve an entire piece of the industry.

Many bots are command based bots. You say something and it responds.

Conversational UI's are really hard because they don't have any context or shared understanding of the world.

[12:18] Chatbot libraries – Getting Started

Every large company is working on one.

There are also lots of natural language processing services that you can use as well.

Before you start, you need to know your use case.

Where will your users be? What services do you want to provide?

At work? Probably slack.

Among friends? Facebook

Node has botkit. It's the most popular chatbot platform in the world.

Start with botkit, use the examples, then come back to Ruby.

Dave brings up building a chatbot for Slack that connected to VersionOne.

Data retrieval bots are another great place to start.

From there, you start answering the question of where things go.

[18:51] The panel's experience with chatbots

Tatsu has been around for about 2 years and has existed pre-Slack.

Eric uses a Slackbot to get information about users who cancel or decline messages.

Chuck has done automatic posting to Slack with Zapier.

Chuck also mentions serverless with AWS Lambda.

Chatbots are a lot like webapps. They're text in, text out and process things in very similar ways.

Dave also brings up SMS bots as well with Twilio.

Jamie has thought about creating a web based standup bot for when Slack is down. Slack is a single point of failure for your bot if that's where it lives.

Slack gives you a lot of UI elements that you don't get in SMS.

[24:51] Do you wish that Slack were more like IRC

From an end-user perspective, no. But Jamie does wish they'd revisit threading replies and separating conversations in the same channel.

It only took a handful of developers to build Slack.

[27:20] What gems do you use in Ruby?

slack-ruby-client by dblock

slack-ruby-bot by dblock

eventmachine

[29:30] Does Slack push to an endpoint? or do you poll Slack?

You can call an api endpoint on Slack that gives you a websocket endpoint.

The events API sends webhook events to your server. It's easier to program against, but it can be slower. It may also be restricted on certain API's

[30:55] Github Fantasy League

Based on a Peepcode video with Aaron Patterson. You got a score based on your activity in Github.

Jamie recorded videos for a talk at Codemash.

It never actually became a thing, but it was a fun idea.

Jamie got into Ruby by going to a Ruby Koans talk by Jim Weirich.

Jamie's links

This is what we put into the chat room after the Dr. Who reference…

Picks

Eric

Dave

Chuck

Jamie

The post RR 326: Chatbots with Jamie Wright appeared first on Devchat.tv.

Wednesday, 06. September 2017

Ruby Rogues (Podcast Show)

MRS 019: My Ruby Story Eric Berry

MRS 019: Eric Berry Today's episode of My Ruby Story is an interview with Eric Berry, who is our newest panelist on Ruby Rogues. [01:10] Introduction to Eric Eric is one of Chuck's friends from early in his programming career. Eric is @coderberry on Twitter. He's been a Ruby developer for about 9 years and...

The post MRS 019: My Ruby Story Eric Berry appeared first on Devchat.tv.

MRS 019: Eric Berry

Today's episode of My Ruby Story is an interview with Eric Berry, who is our newest panelist on Ruby Rogues.

[01:10] Introduction to Eric

Eric is one of Chuck's friends from early in his programming career.

Eric is @coderberry on Twitter. He's been a Ruby developer for about 9 years and doing software for about 19 years.

[02:15] How Eric got into programming

He was hired to do HTML for a company called vLender. Eric worked in Photoshop 2 (pre-layers).

He, then, went on an LDS mission and while on his mission, he built a system to track the cars and assets for the mission.

Then, his brother moved out to Switzerland to join an eCommerce company. Eric bought a PHP book, read it, got a passport, and started showing up at his work. Eventually they hired him.

They started shifting over to Java. They coded Java with VIM.

While in Switzerland, Eric and his brother had created an app that allowed them to share photos with family back home.

His brother raised funds and they moved to England to build up the photo sharing app.

They eventually sold shareaphoto.com to HP. Eric jokes that this was his “college.”

9/11 hit and Eric's brother moved back to the states. Eric stayed for another 2 years, then moved to Las Vegas.

He was a residential appraiser for about 4 years. While there, he built some software to help the company.

Eric took a pay cut from $180,000 to $65,000 per year to go back to software.

He and his wife eventually moved back to Utah and got a job working for AtTask (now Workfront)

[10:43] Eric finds Ruby

Eric and one of his co-workers went out and created projects with Django and Rails. They both loved Rails.

Eric was using Rails at AtTask in the marketing department and spent a ton of time figuring out how to deploy Rails with mongrel.

Eric has also worked for Omniture (acquired by Adobe), Instructure, and One-on-One Marketing.

[14:12] Teach Me to Code screencasts and Chuck's story

Initially, Eric created Teach Me to Code as an homage to Ryan Bates from RailsCasts.

Eric left his mistakes and fumbling in. He got feedback from people that liked that it showed how to debug and figure out issues.

Chuck came in to create content for Teach Me to Code.

Eric's company and focus moved to Groovy on Grails which prompted him to hand the series off to Chuck.

Eric mentions Chuck's tenacity.

Teach Me to Code is a large part of Chuck's journey into podcasting.

[19:11] Codesponsor

Eric has been building other people's businesses for about 20 years. He's done all kinds of projects at all levels.

He doesn't want to continue on a path where he doesn't participate in the end result of the project.

Eric tried out AdWords. It'll pay off in 2-5 years, but he has not passion for it.

Eric loves programming and developers and wanted to do something that served them.

Open Source is starting to have problems with sustainability.

People are building their businesses on top of software that's maintained by 1-2 developers. These folks have a day job and aren't paid to write their open source software.

The get a bunch of requests for help and that workload doesn't go away. Then they get burned out.

Then you have the “no longer maintained” notices on projects that you're using.

Codesponsor solves this problem by bringing marketing into the picture to put some money into the developers' pockets and gives them some validation for what they did.

Eric talks about a pay me button that Kent C. Dodds put on some of his repos. He didn't get any contributions.

The problem with corporate sponsors is that the developer feels obligated to provide unpaid support when their sponsor has a problem.

OpenCollective explained. Their biggest problem is money is not coming in.

Open Design Collective

CodeSponsor allows companies that want to get in front of developers to put non-obtrusive, subtle text ads in the README's and websites of the projects without creating the issues that come with direct sponsorship.

Mention of ReadTheDocs.org

[37:02] Eric's current work situation and Nate Hopkins

Eric talks about Nate Hopkins and Chuck mentions that Nate Hopkins was his first mentor as a professional developer.

Eric shares a funny story about Chuck and Nate working together.

Picks

Eric

Chuck

The post MRS 019: My Ruby Story Eric Berry appeared first on Devchat.tv.

Wednesday, 30. August 2017

Ruby Rogues (Podcast Show)

MRS 018 Kinsey Ann Durham

MRS 018: Kinsey Ann Durham Today's episode is a My Ruby Story with Kinsey Ann Durham. She is one of the speakers for the Ruby Dev Summit. Listen to learn more about Kinsey! [01:15] – Introduction to Kinsey Ann Durham Kinsey was on episode 180 of the Ruby Rogues podcast. They talked about Barriers to...

The post MRS 018 Kinsey Ann Durham appeared first on Devchat.tv.

MRS 018: Kinsey Ann Durham

Today's episode is a My Ruby Story with Kinsey Ann Durham. She is one of the speakers for the Ruby Dev Summit. Listen to learn more about Kinsey!

[01:15] – Introduction to Kinsey Ann Durham

Kinsey was on episode 180 of the Ruby Rogues podcast. They talked about Barriers to New Developers. It’s been 3 years. She is also one of the speakers for the Ruby Dev Summit, which is coming up in October.

[02:55] – How did you get into programming?

RailsBridge workshop

Kinsey got into programming, not through the traditional Computer Science route or boot camp / code school route. She actually did a RailsBridge workshop 4 or 5 years ago in Denver. RailsBridge is part of the larger organization called Bridge Foundry. It’s a weekend workshop where you have mentors and teachers who teach you how to build an app in whatever language or framework from scratch. Food is provided. It’s mainly for women but men are welcome as well as long as you accompany a female.

Brother

Kinsey’s step brother, Sean Griffin, is really big in the Rails community and Rasp community. She saw him and what he was doing.

Networking and building relationships

Kinsey was lucky enough to meet Desi McAdam at the RailsBridge event. Eventually, she was able to get a job as an apprentice in Denver that had just opened and where Desi was the managing director.

Kinsey did a lot of self-taught work using books. There are online tutorials, mentorship, and networking with people. She thinks it’s relevant for developers who are new in the industry given how saturated the market is. It’s important to network and build relationships, and not just applying blindly to Java applications that you see online.

[06:20] – What do you recommend to people?

Luckily, there are tons of online resources where you can learn and get the basics. Kinsey thinks that it’s a lot harder nowadays to do that because you will be competing for head to head with students who are coming out of these schools, or do have Computer Science backgrounds. But she also thinks that it’s doable to be self-taught as long as you are willing to put in the time. And then, not only use the free online resources but also find a mentor that is willing to work with you and guide you because there are times where you’ll hit a bug or problem or even when getting Rails setup on your machine. Sometimes, Stack Overflow and those online resources aren’t enough.

[08:20] – How did Ruby shaped your experience coming in as a new programmer?         

Kinsey started going to conferences right away and she fell in love with the community. Back then, there were a lot of stories going around in the industry on how hard it is for females, etc. But she found that the Ruby community was welcoming and receptive.

[10:00] – Sexism

Kinsey had experiences and has seen it firsthand. She thinks that it is still an issue but she also thinks that it’s getting better. She thinks that the programming communities are becoming more and more diverse with the influx of people coming out of code schools. They have different backgrounds. They also have stereotypical developers.

Picks

Kinsey Ann Durham

Charles Max Woods

The post MRS 018 Kinsey Ann Durham appeared first on Devchat.tv.

Wednesday, 23. August 2017

Ruby Rogues (Podcast Show)

MRS 017 Hal Fulton

MRS 017: Hal Fulton Today's episode is a My Ruby Story with Hal Fulton. Hal talked about his contributions to the Ruby community. He is the author of The Ruby Way. Listen to learn more about Hal! [01:20] – Introduction to Hal Fulton Hal is the author of the Ruby Way, which was one of...

The post MRS 017 Hal Fulton appeared first on Devchat.tv.

MRS 017: Hal Fulton

Today's episode is a My Ruby Story with Hal Fulton. Hal talked about his contributions to the Ruby community. He is the author of The Ruby Way. Listen to learn more about Hal!

[01:20] – Introduction to Hal Fulton

Hal is the author of the Ruby Way, which was one of the books that Charles picked up when he started programming in Ruby. It’s still being published and still up to date. Hal still loves computers and programming but he admitted that he can’t keep up with it anymore.

[03:50] – How did you get into programming?

Hal didn’t really have the opportunity to get into programming at a young age. So, the first chance he had was when he just turned 17, he went to a summer program, which was a 6-week program at a college. It was dealing with Genetics and Population Genetics. He had lab work and learned some mathematical models. He also learned BASIC and a couple of primitive microcomputers with different versions of BASIC. His first BASIC programs were the hello world and followed by Population Genetics.

[06:20] – How did you get into Ruby?

Hal went to college and majored in Physics. But he was taking Computer Science courses along the way. He dropped Thermodynamics and made a C in Differential Equations. Then, he had to change his degree. He always wanted to major in Physics but he thought that Computer Science is easier and more fun. For him, it will be 10 times easier to find a job and it will be 10 times easier to make money.

Hal worked for a community college for a while. Then, he went to IBM in Houston for a series of contracts. He ended up 7 contracts at IBM, making some 6 months to 2 years. He knew more about their internal processes and procedures. One of the last contracts he ever had in IBM was in October 1999. Someone at IBM told him that he should know Ruby and pointed him to the website.

According to Hal, he was busy learning Ruby. He didn’t know Ruby yet but he knew that he can write.

Picks

Hal Fulton

Charles Max Woods

The post MRS 017 Hal Fulton appeared first on Devchat.tv.

Tuesday, 22. August 2017

Ruby Rogues (Podcast Show)

RR 324: Developer Horror Stories

RR 324: Developer Horror Stories The panel for this episode of Ruby Rogues is Dave Kimura, Eric Berry, and Charles Max Well. They are telling developer horror stories this week. Tune in to listen to their stories! [00:01:40] Eric’s Story Eric tells a story that happened today. He was working on a report on live...

The post RR 324: Developer Horror Stories appeared first on Devchat.tv.

RR 324: Developer Horror Stories

The panel for this episode of Ruby Rogues is Dave Kimura, Eric Berry, and Charles Max Well. They are telling developer horror stories this week. Tune in to listen to their stories!

[00:01:40] Eric’s Story

Eric tells a story that happened today. He was working on a report on live data at work. While doing this, he sent texts to hundreds of people that shouldn’t be getting them. The moral of the story is that everyone makes mistakes, even seasoned developers.

[00:02:58] How could that have been avoided?

Eric has a fail-safe that has to override with an environment variable so that it won’t truncate the tables. Once that happens, no messages will be sent. He works at a company, which is a B to C texting platform that allows customer retention through mass, etc. He commented out stuff, not realizing that it would start sending messages. He needed live data to generate reports so he did not truncate the data. His advice is not to comment out code until you know why you are doing so.

Dave says that same thing can also happen with an email service. Instead of commenting out code, make sure they are set up to a mail server or mail dev to where it actually never sends out to the real world but stays in a send box environment. Amazon SES has a way to do this where things stay internally.

[00:05:10] Dave’s Story

Around seven years ago Dave needed to store some images. He did not want to use a storage on the local computer because he would have multiple web servers and he did not want to use external storage because he was “lazy.” So he stored the images in the database. It worked for years until one day he saw that the table was 30 GB, which was much larger than it should have been. He had to extract and rewrite because any test to undo it would be substantial. It would be a long running process because 30 GB is a lot of data.

In hindsight, Dave’s advice is that you don’t have to prematurely optimize but you also don’t have to make bad decisions. Do not store globs of binary data in your database. If it can be stored as a jpeg, do that.

[00:08:04] Charles’ Story

Charles’ story focuses on time zones. He was working on test first development. He wrote tests for a feature and his coworker checked them. The database was running in UTC and doing checks in Mountain Time, so the checks would fail from 6pm until midnight. The CI server would show that tests were not passing for a chunk of the day.

It was a simple fix. He learned that you can write a test that passes but may be overlooking something simple that may change when in a different place or a different time.

[00:11:05] Errors

Errors are hard to track down. The hardest ones to find are the ones that only happen occasionally. The worst ones are those that are critical errors that only happen occasionally. Because they only happen sometimes, it is hard to know how to fix them.

[00:19:13] Using a Technology Too Soon

Eric used a technology too soon, which was Rails. Nobody could take over once he left the company. He had to go back to the company and rebuild it in PHP so that others could use it. The lesson from this mistake is that when you chose a technology you have to choose one that supports the buzz factor.

Everyone has a responsibility to the people they are working for to add value. If you leave them with a maintenance nightmare you are not helping, you are hurting. Make sure you are locking things down.

[00:22:35] Gems and Poll Requests

Dave watches Gems to see what and how often they are updating. He checks to see if his poll request was accepted and reverts back to the original gem. He calls it “free maintenance from other people.” He doesn’t think you should deviate from it too much. An option is to use a proxy as well.

[00:27:41] Have you ever had to make patches in your Rails app knowing that those patches were coming in a future release?

Eric has had to in the past. His mentor had to patch Rails, apply it, but every time it ran it said, “if you upgrade rails, upgrade me.” It was a reminder to make sure everyone stays in sync.

[00:29:30] Migration

Dave and Charles have both had problems with migration. Take snapshots of database before you use migrations. The moral of story is if you’re going to migrate data, make sure you back up your database before you change the data. And don’t do data modifications in your migrations. Also set up a replica of your database. There is no excuse except for laziness or inexperience.

[00:32:10] Materialized Views

Eric used to work for social media company that had a lot of data coming in from various forms of social media. Helped build sub products that handled intake of data. Decided to use materialized views. It is a view that self updates as data changes in the database. In other words, it creates a fake table and can simplify the application side of things.

It got a little messy and they had no idea what was updating things when. Because of this, they had to convert the materialized views to stored procedures. The materialized views killed the database because it triggered things when it shouldn’t be.

[00:37:23] Caching

Caching is a big problem with development. There are complex cache keys built around different queries and combinations of objects. There is a value with using caches but there is a caution with not using caches too early. A lot of problems have resulted from caching wrong results. The moral is to measure and make sure that you are working on the right problems. Sometimes premature optimization does not matter. Sometimes caching is just not needed and messes programs up rather than helping them.

[00:40:34] How do you populate data with unrealistic data?

It depends on how big the application is, but larger ones generate ten to twenty thousand records. For these, Dave uses Active Record Import. He used the Faker Gem to create fakes names. Without using Active Record Import it would take ten to fifteen minutes to 50,000 but instead it took two minutes with using it, saving a lot of time.

Picks

Dave:

Eric:

Charles:

The post RR 324: Developer Horror Stories appeared first on Devchat.tv.

Wednesday, 16. August 2017

Ruby Rogues (Podcast Show)

MRS 016 Marc-Andre Cournoyer

MRS 016 Marc-Andre Cournoyer Today's episode is a My Ruby Story with Marc-Andre Cournoyer. He was the creator of the Thin web server and he will be speaking at the Ruby Dev Summit. On this episode, Marc talked about how he got into programming and Ruby. Listen to learn more about Marc! [01:05] – Introduction...

The post MRS 016 Marc-Andre Cournoyer appeared first on Devchat.tv.

MRS 016 Marc-Andre Cournoyer

Today's episode is a My Ruby Story with Marc-Andre Cournoyer. He was the creator of the Thin web server and he will be speaking at the Ruby Dev Summit. On this episode, Marc talked about how he got into programming and Ruby. Listen to learn more about Marc!

[01:05] – Introduction to Marc

Marc is the creator of the Thin web server, one of the most popular Ruby server. He also had some minor contributions to Ruby. One of them is called Tinyrb, which is a small Ruby VM. Then, he wrote a book about creating your own programming language. He will be speaking at Ruby Dev Summit.

[02:45] – How did you get into programming?

Marc’s first experience with a computer was when he’s around 8 or 9 years old. It was on the early 1990s. His parents won a Commodore 64 at the grocery store. He got bored really fast with the games so he looked at other things. One of them is the Commodore Basic. You could not save on a Commodore 64 if you didn’t add the tape recorder so he would have to start again each time. He also went to a library and got some books about Commodore 64 programming. Eventually, he started creating his own simple programs.

A few years later, Marc got a Pentium 2. It was around 1995. He saved money and bought himself Microsoft Visual Basic 4. It has the UI with the drags and drops where you drop buttons and timers on a page. You would double click the buttons and you would open a window where you can put your code. He had about hundred projects on that machine.

[05:35] – How old were you when you got into VB?

Marc was 14 or 15 years old when he got into VB.

[06:05] – How did you get into Ruby?

After that, it has become Marc’s career choice to become a programmer. He went to university. After that, he got his first job in 2002 doing Visual Basic 4 application that runs inside Microsoft Office suite. He also did a little bit of Java and .NET. He didn’t enjoy programming, he started losing my passion, and he stopped doing projects on the side. But he still kept on reading some books about programming.

One of them is a book by Joel Spolsky, The Best Software Writing. It was published in 2005. The last chapter is an extract of Why’s (Poignant) Guide to Ruby, which was an introductory book about Ruby. Marc liked the syntax so he started practicing Ruby more. He started doing side projects again because it was fun programming Ruby. And then, he discovered Rails about a year later. Because of that, he created many other projects and got a job at a startup in Montreal.

Picks

Marc-Andre Cournoyer

Charles Max Wood

The post MRS 016 Marc-Andre Cournoyer appeared first on Devchat.tv.

Tuesday, 15. August 2017

Ruby Rogues (Podcast Show)

RR 323: Queuing and Amazon SQS with Kinsey Ann Durham

RR 323: Queuing and Amazon SQS with Kinsey Ann Durham This episode of Ruby Rogues features panelists Charles Max Wood, Dave Kimura, and Eric Berry. Special guest Kinsey Ann Durham joins to talk about queuing and Amazon SQS. Tune in to learn more! [00:01:19] Kinsey Ann Durham Kinsey writes code for a company called Go...

The post RR 323: Queuing and Amazon SQS with Kinsey Ann Durham appear

RR 323: Queuing and Amazon SQS with Kinsey Ann Durham

This episode of Ruby Rogues features panelists Charles Max Wood, Dave Kimura, and Eric Berry. Special guest Kinsey Ann Durham joins to talk about queuing and Amazon SQS. Tune in to learn more!

[00:01:19] Kinsey Ann Durham

Kinsey writes code for a company called Go Spot Check. She is always a lead mentor in a San Francisco based company called Bloc.

[00:02:50] Background on Amazon SQS

Go Spot Check is using Amazon SQS on a smaller scale. Kinsey thinks it is sasy to use. She recommends using something like Amazon SQS or even RabbitMQ. It has provided the company with the ability to explore different architecture patterns and tools.

[00:04:50] Can you talk a little about your company and what led to using Amazon SQS?

Go Spot Check is a start up in Denver. They focus on recording and data collection for big companies that need to know what is happening in retail, grocery stores, and bars. The focus is on alcohol and retail brands. The company analyzes the data collected that previously held no insight. Go Spot Check is currently moving into a computer vision aspect. Kinsey works off a separate service off of main aspect of Go Spot Check.

[00:06:46] What does your stack look like? Is it built off Ruby?

Yes, it is a Rails API only. The computer vision is done in Python.

[00:08:45] Are you feeding the images through the queue? How does the queuing fit in?

Started using Amazon SQS because they wanted to have a more decoupled way of developing. This allowed them to decide the contract between the two services and decide what they wanted it to look like up front. Kinsey describes that it is easy to create fake messages for testing with Amazon SQS. Image data is sent back and forth through the queue. The company does a lot of planograms. Information is taken from that data and posted onto a queue from the machine learning side of things. On the Rail side of things, the data can be picked up in API and sent back to the main app.

[00:10:50] Does it accept binary data in the queue?

It does not send actual images. All comparison data that has been processed is sent from the machine learning aspect side of things. An article has been published that shows that people do send images in the queue.

[00:11:35] Do you use SQS in parallel with SNS (Simple Notification Service)?

Kinsey says that they haven’t used SNS. This is because there hasn’t been a need. They are using it to post messages to communicate between different services.

[00:12:40] What point would you need to consider a SQS over a Sidekick?

Kinsey didn’t look into using Sidekick; she was excited to use SQS. She wanted to try it out and see if it was easy to use. Thought it would be more complex than it has been. She enjoys the free features of Amazon such as message visibility and timeout, which is handled by them. It can be customized and two different queues can be used.

[00:16:15] How do you write the workers for an SQS queue?

Kinsey has a plain Ruby object in the API that she can reuse with any queue. There are three queues in the company.

[00:19:45] Are there any other uses for queues and SQS?

Kinsey hasn’t come across any personally but she is sure there are some.

[00:23:40] What if you’re someone who is new? Where would you recommend they get started?

Suggest getting started with SQS Amazon, SQS documentation. Can get up to speed quickly. Amazon SQS is easy to get up and running. Kinsey is tailoring her Ruby Dev Summit talk to people who are new.

[00:30:35] How do you go about mentoring?

Kinsey loves mentoring. Developers have side projects or freelance work, but Kinsey likes to mentor because she feels like she makes a difference while continuing to learn. An important part of mentorship is giving support. This support level to students’ means not only offering students help with technical skills. Her goal is to build a well-rounded developer: someone who will be a great team member and people will want to work with in the future. This involves helping students build soft skills such as networking, interviewing skills, and helping them build confidence.

[00:33:52] How would people get involved with mentorship?

Kinsey is involved with an organization called Bloc – they are always hiring mentors. She shares that people can always get involved in their local community. Schools are looking for mentors. People at local meet ups and Rails Bridge are also both good ways to volunteer. Kinsey learned through mentors – she didn’t go to school to learn code. Mentors changed her life and are important to her, which is why she now mentors.

[00:36:30] Advice For Women

Kinsey’s advice for women who want to work in the technology world is to go for it. She urges women to get as many people and resources on their side as possible, including great developers who are willing to mentor. She emphasizes the importance of confidence and says to be ready for comments on gender. She believes that – while there are definitely still diversity issues with socioeconomic background, sexual orientation, race, gender, etc. it is getting better – women are more welcome in the technology field than they have previously been.

There are technology organizations that are doing well and have no problems with welcoming women into the workplace. People in the field need to be open to having discussions about gender inequality. Open dialogue with team members is the key to solving problems. Some people have grown up not realizing the way they think is wrong. They don’t connect that what they say or think is offensive because it is all they know; it is unconscious to them. This is the type of person that is hard to change.

Picks

Eric:

Dave:

  • Health insurance

Charles:

Kinsey:

  • Guide program applications for mentors at RubyConf
  • Release It 

Links for Kinsey

 

The post RR 323: Queuing and Amazon SQS with Kinsey Ann Durham appeared first on Devchat.tv.

Wednesday, 09. August 2017

Ruby Rogues (Podcast Show)

MRS 015 Amir Rajan

MRS 015 Amir Rajan Today's episode is a My Ruby Story with Amir Rajan. He was on Episode 272 of Ruby Rogues. Amir talked about where he used Ruby and how he got into RubyMotion. Listen to learn more about Amir! [01:40] – Introduction to Amir Rajan He was on episode 272 of Ruby Rogues...

The post MRS 015 Amir Rajan appeared first on Devchat.tv.

MRS 015 Amir Rajan

Today's episode is a My Ruby Story with Amir Rajan. He was on Episode 272 of Ruby Rogues. Amir talked about where he used Ruby and how he got into RubyMotion. Listen to learn more about Amir!

[01:40] – Introduction to Amir Rajan

He was on episode 272 of Ruby Rogues and he talked about Game Development and RubyMotion. That was in August 2016.

[06:35] – How did you get into programming?

Amir had his Intel 80386 and was trying to install Win Commander on it. It came with this green booklet that says “cd C: /…”. He installed that exe command but he didn’t have enough space on the computer. He ended up deleting the operating system – Windows 3.1. He reinstalled it myself and he thought that was programming.

His first exploration in programming was actually a business development course like a business programming course. They’ve built applications using Visual Basic 4 and 5 but he didn’t understand the concept of variables.

After that, StarCraft 2 came out. That was around 1998. It has a map editor so you can actually create your own campaigns. You have to use a scripting event-based quasi-DSL to get that working. That was when Amir started looking at C, C++ and Visual Studio 6.0. He had to go to the library because a lot of information wasn’t readily available online. He also got some dummies book and random C++ books but he still didn’t understand programming. He already figured out variables but he didn’t understand functions. What he was doing is output a void method, throw an exception, and catch it in the parent code to get the return value.

Amir went to college and got a degree in Software Engineering in Computer Science. He entered the work force doing Visual Basic 6.0 and SQL server. His SQL jobs involve taking forms over data and everything was stored and back-end processed. It was a payroll company, payroll insurance so there was an immense amount of time card tracking, clock in, clock out, all done in SQL. Visual Basic was used to get the data, store them in record sets, send them into the database, and do all their processing there. He stayed on the .NET stack. His career was built on converting legacy applications to the next version of Microsoft tech.

It was not until 2010 that Amir actually started using Ruby. In 2010, the way he ended up using Ruby was actually built automation for .NET projects. All his Ruby-isms came from trying to codify build automation in Rake. He also did Rails for 8 months. He looked at Rails to see how they handled some of their attributes for shoveling across JSON from different areas or things out of the database.

[22:00] – Did you continue working on .NET and just use Ruby where it made sense?

Where Ruby fit in was basically when Amir wanted to build automation or he wanted to test his REST API. Trying to use HTTP client requires a strong type DTO to map to. He had a ton of Rake scripts that would make tons of HTTP calls do link from hypermedia and get additional information. He used Ruby to cut all that up and potentially make changes just over an HTTP endpoint. He has an endpoint that could reset himself as an administrator or open up some management studio to execute some stuff. It ended up an efficiency tool.

[24:15] – How did you get into RubyMotion?

Around 2013 is where Amir started getting this identity crisis about the languages he’s used. He started getting into Ruby and that means getting into Shell scripts, more Linux environments. Linux and Ruby are better than any of the .NET he’s done. There seems to be a more open mentality to approach and solve problems that aren't specifically related to some higher governing authority telling him how to write software. At that point, he needed to take a break and reflect on where he wanted his career to go. That’s when he stepped back from doing .NET. He bought a Mac and did things that are not .NET. During that first three-month period, he was in an exploration of Ruby.

[28:20] – A Dark Room

Dark Room is a minimalist text-based RPG. It originally came out on the web and it was simple enough so far as the UI and aesthetics but it has 25,000 lines of Ruby. It got deployed to the App Store and it goes viral. It has no pictures, no sounds, ASCII adventure game on a $700 device, and suddenly it’s the number 1 app. Amir built more games after that and picked up contract work here and there.

[31:15] – Contributions to the Ruby community

Amir does a lot of presentations and is bringing some of the ethos of Ruby to other communities. Here’s an example of how thinking about problems differently leads to potentially more elegant solutions that you may not have considered before. I was explaining the benefits of Ruby to non-Ruby developers.

[33:00] – What are you working on now?

Amir picked up a contract and he is doing F#. He is also working on his next game which is called Sasha. The idea behind it is you’re interacting with this persona on your phone who’s a super intelligent artificial intelligence. She wakes up and she calls you mom. You start talking with her maybe through the mic. And there’s an augmented reality aspect. It explores the aspect of raising a child. It’s like a Tamagotchi for adults, where you’re exploring the nuance of what it means to be connected to an inanimate object, seeing that persona being exemplified in this doll-like figure that’s on your phone. You’ll raise it, feed it, etc. That’s all done in Ruby and RubyMotion.

[35:40] – What’s in the future for RubyMotion?

RubyMotion has corporate backing. There’s no ifs and buts about the future of the technology. Now, the next piece with regard to mobile development, they actually have some really good maturity around open-source products that are already out there but some of the API’s are really arcane, even the wrappers. With regard to the future of Ruby and RubyMotion in mobile, it’s about pushing these concepts into these underlying frameworks and working with people that have been maintaining these things and lifting those API’s above so that RubyMotion can consume it.

Picks

Amir Rajan

Charles Max Wood

The post MRS 015 Amir Rajan appeared first on Devchat.tv.

Tuesday, 08. August 2017

Ruby Rogues (Podcast Show)

RR 322 Finding a Great Job

RR 322: Finding a Great Job This episode of Ruby Rogues the panel is Dave Kimura and Charles Max Wood. They discuss finding a good developer job. Tune in to learn more about this topic! [00:02:08] Internal Clock With Jobs Dave believes that within the developer community, people have a one to two year internal...

The post RR 322 Finding a Great Job appeared first on Devchat.tv.

RR 322: Finding a Great Job

This episode of Ruby Rogues the panel is Dave Kimura and Charles Max Wood. They discuss finding a good developer job. Tune in to learn more about this topic!

[00:02:08] Internal Clock With Jobs

Dave believes that within the developer community, people have a one to two year internal clock. This clock tells them it is “time to find another job.” It confuses him that people go through jobs in a short amount of time. He explains that this is largely due to the on boarding time: it takes a while for developers to go through this process.

Charles has switched jobs more frequently than Dave. He explains that his internal clock has been set of either by necessity or simply it being time to move. His reasons for switching jobs have been due to him not being happy and there being a substantial pay raise that he could not afford to turn down. He believes employers need to do more to keep people engaged because it is a loss to get somebody up to speed then have them leave.

[00:08:30] Developers Want Challenges

People he knows that are in the development career are there for challenges. A lot of them he speaks with state they get to where they aren’t being challenged. Their employer won’t invest in helping them get to the next level, whether it is paying for trainings or conferences. People he has interviewed said that when they are starting to switch, it is for growth.

[00:11:12] Are you encouraged to or allowed to figure out how to do things better at work?

Dave said that because he’s over the project, he is able to do so. He tells others he works with to do the same. He doesn’t look at it as wasted time, but as time that is spent getting better. This time will be made up when the information learned is used later on with different projects with the company.

[00:13:40] Self-care

Some companies are short sighted and want employees to spend the least amount of time possible doing things. Most successful teams are developers that want to feel like part of the team. You need developers to believe in the mission and the team. If your manager is telling you to work 80 hours a week something is wrong. It is healthy for a company to recognize limitations.

The humane development principle that Ernie Miller that says developers are humans, not machines. Often managers forget developers are humans. They need to be treated as people. Companies have to give them downtime. They have to take care of themselves.

[00:20:00] What do you tell people to do if they feel burnt out?

First look and assess the situation. Is the issue a self induced issue? Or is the employer forced this issue onto you? Misunderstandings can occur. Communicate with your boss to discuss the issue. Sometimes, it’s a simple that you like your job and push it too far.

Learning boundaries are important. There needs to be a physical separation between work and relaxation area. There also needs to be boundaries around your time. Schedule work time as well as family time. Don’t break your own boundaries!

Planning is important. What can you fit into the schedule? There is almost a guarantee that you will work too much if you don’t schedule. Backlog items that you want to accomplish. Meet with your team about it. Once you have a plan, don’t exceed what you plan. This will show you whether you are working too much or not enough.

[00:28:40] Mentors

It is important to find a mentor. Learning is your responsibility. It only benefits you and your career. The company’s benefit is a side affect of your effort. Your company may not have the resources to help you. Where you will find a mentor is worth considering when you take a job. There are many resources for finding good mentors. railsmentor.org is one for the Ruby community.

Dave doesn’t have a mentor but highly advises getting one. He believes that you can be your own mentor if you have a self-teaching capability. It is just a harder way to go. Charles has a mentor. Business people will pay for coaching. He suggests eventualmillionaire.com to check out a business coach he recommends.

[00:36:54] How to Get Hired

Dave suggests forgetting about job titles when looking for jobs because they are meaningless. Instead, focus on the skill set that the company is looking for. If you expect a company to continue your learning, you’ll always have a junior mentality: you will be a “professional junior.” Development is a career that requires constant education because there will always be new stuff. Companies want someone useful to them who will turn a profit. They want to use you. Sell yourself to them.

Companies have a problem and they want you to solve it. You have to show them that you’re the person who can solve the problem in a way that makes it work for them. There is a wish list of technical skills companies have, but that doesn’t mean you have to check every box. They want the right person to solve the problem efficiently and quickly, and be a pleasant person.

There is a list of questions that Dave prepares to ask in interviews that he tailors towards each candidate. He doesn’t want to make candidates feel attacked. If they are hired for the company, they’ll have a bad taste in their mouth. He also doesn’t like tests given. Instead, he wants to know how a candidate thinks. He makes sure to ask, “What is your process in coming to an answer?”

[00:49:50] Third-party Recruiters

They do not pay attention to resumes they see. They use different tactics to try to suck you in – one is to insult you, while another is to try to hire another person through you. Dave has a policy to not talk to third-party recruiters. They do not know the client they are working for.

[00:54:45] Networking

Get to know other people in the field. People will help you get jobs. Can hunt job boards but it is not as effective as having contacts. Know someone who works at the company doing the thing that you want to do. A personal referral goes a long way. When someone goes to bat for you, it’s because they believe you will do a good job. Companies will not take that lightly.

[00:58:50] Resumes

Take the time to do your resume right. It is the first impression you make on an employer. That first opinion they have about you will be hard to change. A resume should be grammatically correct, relevant, and updated. Customize and personalize your resume to the company that you are sending it to.

Picks

Dave:

  • Fidget Spinner

Charles

Links

The post RR 322 Finding a Great Job appeared first on Devchat.tv.

Wednesday, 02. August 2017

Ruby Rogues (Podcast Show)

MRS 014 Noel Rappin

MRS 014 Noel Rappin Today's episode is a My Ruby Story with Noel Rappin. Noel talked about his contributions to the Ruby community and how they explore new technologies like Elixir. Listen to learn more about Noel! [00:01:40] – Introduction to Noel Rappin Noel is in episodes 30, which was about Software Craftsmanship. He was...

The post MRS 014 Noel Rappin appeared first on Devchat.tv.

MRS 014 Noel Rappin

Today's episode is a My Ruby Story with Noel Rappin. Noel talked about his contributions to the Ruby community and how they explore new technologies like Elixir. Listen to learn more about Noel!

[00:01:40] – Introduction to Noel Rappin

Noel is in episodes 30, which was about Software Craftsmanship. He was also on episode 185, which was about Rails 4 Test Prescriptions. And then, the latest one was 281, which was about Take My Money.

[00:02:45] – How did you get into programming?

Noel is a stereotypical nerdy kid so he started programming when he was young. He had afterschool classes in Applesoft BASIC at a place near their house. He had TRS-80 and Texas Instruments, and a couple of other things.

[00:03:35] – Computer Science degree

Noel has a Computer Science degree and a Ph.D. from the College of Computing at Georgia Tech, which was in the intersection of user interface design and Ed tech. He was designing interfaces for teaching, specifically for teaching engineers and developers.

[00:04:15] – How did you get into Ruby?

Noel came out of grad school immediately and went to a small web development company. He started hearing about Rails in about 2005. Having been one of the people who have done a lot of the Java-Struts web development that Rails was created in opposition to, Noel searched it up pretty quickly. But he started using it in 2005 or 2006 for some internal tools for his team.

He built a test tracker and other things that his team is using internally. He built a couple of web apps for them to collaborate because they were working with some developers in Poland. And as he got comfortable with it, he contracted to do a Ruby on Rails book and got a full-time professional Ruby job.

[00:06:30] – What is it about Ruby that got you excited?

Noel has always like scripting languages and dynamic languages. He did a lot of work on Python for a while. It was extraordinary how quickly you do things in Rails compared to Java tools, even compared to Django, which was more or less contemporaneous. Ruby emphasized testing and Rails was very similar to some of the tools that he was building in Python.

[00:08:50] – Books and contributions to the Ruby community

Noel had a book which was out of date, 30 to 40 seconds after it was published. It’s normal in this industry. Sometime after that, he started publishing Rails Test Prescriptions and submitted it to the Pragmatic Bookshelf, and they purchased it. They published Rails Test Prescription 6 years. After that, he did a series of self-published JavaScript books called Master Space and Time with JavaScript.

They are also out of date but they’re free now. He also did a self-published book about projects called Trust-Driven Development that you can still get. He did a book about purchasing, handling money and web purchases, and mostly this API called Take My Money, which came out last summer.

Noel is currently working on a Rails 5 Test Prescriptions, which will include all the new Rails 5.1. It will come out this fall.

[00:10:35] – Table XI

Noel works at Table XI, which is a web consulting firm in Chicago with about 35 people. They do Rails development, websites, mobile development and a lot of React Native development. They build websites for companies that are not web software companies but companies that need web pages like non-profit or start-ups. They like to focus on solid business problems in software, rather than technology problems in software.

[00:11:15] – What are you working on these days?

Noel has his own podcast called Tech Done Right. The latest episode was with Michael Feathers. There is also an episode with somebody who is in charge of the Medicare Program under President Obama, who was actually the person who was called in to fix healthcare.gov and had some interesting stories about what that was like from a software manager perspective.

From the development side, Noel has been doing a lot of Rails development, some JavaScript development, building purchase-sides for nonprofit, and doing a lot of upgrade work recently.

[00:12:40] – Rails upgrades story

This upgrade was for a Rails 2 application that was still in active development. The Rails community, at one point, was so bad at managing upgrades. And now, it does seem like the community has gotten better at managing new tools without breaking old ones. The security needs have pushed people towards the best practices.

[00:14:15] – Ruby and Elixir

Like a lot of Ruby companies, they’ve been exploring what the next tools are. They ran an Elixir project. It’s originally an internal prototype, which is a great way to get new technologies into the company. They wound up building a small project that was largely API focused. That’s the kind of thing that Rails is not super great at. They’re exploring what to do with front-end because there’s a sharp understanding of what Ruby on Rails is good for and what might be the purview of other tools. Elixir does a couple of things that Ruby doesn’t do very well. A lot of people who start with Ruby can learn a lot from going off to a functional language like Elixir or something that has a pattern-matching type of language like Elixir.

Picks

Noel Rappin

Charles Max Wood

The post MRS 014 Noel Rappin appeared first on Devchat.tv.

Tuesday, 01. August 2017

Ruby Rogues (Podcast Show)

RR 321: Visual Studio Code Ruby Plugin with Penn Lv

RR 321: Visual Studio Code Ruby Plugin with Penn Lv This episode of Ruby Rogues features panelists Dave Kimura, Brian Hogan, and Charles Max Wood. Two special guests join the panel today: Eric Barry and Penn Lv. Tune in and learn more about Visual Studio Code’s Ruby Plug-in! [00:01:55] Introduction to Eric Barry Eric turned...

The post RR 321: Visual Studio Code Ruby Plugin with Penn Lv a

RR 321: Visual Studio Code Ruby Plugin with Penn Lv

This episode of Ruby Rogues features panelists Dave Kimura, Brian Hogan, and Charles Max Wood. Two special guests join the panel today: Eric Barry and Penn Lv. Tune in and learn more about Visual Studio Code’s Ruby Plug-in!

[00:01:55] Introduction to Eric Barry
Eric turned over Teach Me To Code to Charles, which helped build relationships for Charles that built the Ruby Rogues podcast. Eric is a software engineer who has been working in programming since 1998. He works for Skipio and has been a Ruby on Rails developer for nine years.

[00:03:15] Introduction to Penn Lv
Penn is a software engineer for Redim. He works on the Ruby extension for Visual Studio Code. This extension deals with enhanced Ruby language support.

[4:00] What goes into building a language plug-in/language setup for VS code, what do you have to do in order to make that work in the electron set-up?
Usually when you try to build an extension for VS code it is just a NodeJS application. It has nothing to do with electrons; it is just a Node application. Everything is run in a separate process. Just about how to build an extension for VS code.

The first category is formatters, or colorization. For both of those you can write plain JavaScript. There are two categories that are difficult: first is de-buggers. The VS code is a set of common UI for de-bugging. Which is language diagnostic. Write an extension and hook up language debug.

The second is a language server to write language experience. VS code has a concept called language server protocol. Need to write an extension that follows protocol and tells the VS code about semantic information about your program.

[00:06:25] – In order to get some of the nice features for the language you have a Ruby process running somewhere that you talk to in order to do some of the syntax checking?
Yes, have to run that in a stand-alone process. It analyzes Ruby, but it can’t run that in Node JS process.

[00:06:52] So what’s the goal? What makes the VS code team write a Ruby program?
Ruby for VS Code was his ticket to the VS code team. Penn wrote for himself. It is his hobby project.

[00:07:32] How many contributors are on the project? Who works with you?
It is a community project. There are probably in between 50 to 100 contributors.

[00:08:33] What’s your process of knowing what to allow and what not to allow to modify it? How do you know what PRS to accept and how do you stay on top of it?
It is challenging to know what to allow. Penn claims to still not be a professional Rubyist. The first step is to run test cases. His way of reviewing code is by downloading the code. He looks into every piece of the code, learns it, and plays around it. If it works, he adds it.

[00:10:23] How main PRs do you regularly get and how much time does it take to keep that maintained?
Every weekend he goes through everything. He will have maybe five to six VS code extensions and check them thoroughly.

[00:13:30] Indentation when blogging in VS code
Two months ago he finished a feature dealing with auto indentation. The option for this is called editor.autoindent. Indentation gets adjusted automatically while you type.

[00:18:10] Recommendations for plug-ins
Charles recommends Emacs key bindings and Penn recommends the VS code extension Vim.

[00:21:49] Do you do most of your work in TypeScript?
Yes. At the very beginning they were using JavaScript. They were one of the first adopters of TypeScript and are now all TypeScript.

[00:22:50] How much of a commitment would it be to add TypeScript to an existing project?
The setup of TypeScript is not easy. If you are using a NodeJS application and they have TypeScript or typing support there is no specific thing that needs to be done to make it happen. In VS code there is a feature called automatic type acquisition. If creating a new project that uses an express package, which already has a typing file for it. VS code provides you with auto complete. Also don’t need to worry about typescript file if you are not going to create a library. Can do TypeScript gradually.

[00:26:16] What do you see that’s left to do in the Ruby plug-in?
A language server is the missing part.

[00:27:35] Is that currently being done in other editors?
No one does that right now. RubyMine has the best support currently.

[00:28:13] Does your work translate to Atom as well?
Atom has basic support for Ruby but it is just about colorization, indentation, and formatters. Everyone is waiting for a language server for Ruby.

[00:31:38] If you have multiple languages or modes that you have to handle within the same file how do you set up VS code to handle that?
Users cannot customize that. A language support extension has to handle that.

[00:34:50] What is the font that you use in VS code?
Source code pro

[00:35:08] If people want to give this a try, what are the best ways to do that?
First go to code.visualstudio.com. Then, install VS code. At the welcome page instructions will show you how to use the command palate, give you an interactive playground, and show the best place to get familiar with everything. The welcome page also has links: one is VS tips and tricks, which are shared by the community. There is a Youtube channel, which shows how to make VS Code productive.

[00:36:32] If someone is working on an esoteric language and there is no support in there language in VS code yet. Where would you recommend they start?
There is a docs session on the website that tells you how to write extensions for VS Code. Penn thinks if you build a debugger it is most difficult. There needs to be an understanding of real debuggers. Look at some of existing debugger, understand how they read source code, get an understanding from there.

[00:38:22] Was there an extension that you used as a model while writing the Ruby extension for VS code that you recommend people look at?
First looked at Python. Then switched to PHP, which is pretty similar to the Ruby extension. The protocol is very similar. That’s how he learned to make the Ruby extension.

[00:40:58] If people want to contribute, is there a GitHub they can go look at?
The organization name is Ruby IDE and GitHub name is vscode-ruby. There is a Wiki Page on how to setup and explain concepts behind everything.

[00:41:22] How long did it take you to get the plug-in till it was publicly useable?
A couple of hours. He was at his girlfriend’s parent’s house bored, got a job with VS code because of it.

[00:44:40] What’s your biggest sales pitch for VS code?
Compared to some of competitors, VS code is fast. The best part of VS code is that it is open source. Everything is on GitHub, including issues and user feedback. Users know every issue that is being worked out. All information is open to users. Can file an issue and they will respond immediately.

[00:47:00] Are there plug-ins for other languages?
There is an elm plug-in.

Picks

Dave:

Brian:

Eric:

Charles:

Penn:

The post RR 321: Visual Studio Code Ruby Plugin with Penn Lv appeared first on Devchat.tv.

Wednesday, 26. July 2017

Ruby Rogues (Podcast Show)

MRS 013 – Dave Thomas

MRS 013 – Dave Thomas This episode is a My Ruby Story with Dave Thomas. Dave has spoken about Elixir at two Ruby Remote Confs. He challenges the way people think about the way they do code. Listen to learn more about Dave! [00:02:42] How did you get into programming? Dave first got into programming...

The post MRS 013 – Dave Thomas appeared first on Devchat.tv.

MRS 013 – Dave Thomas

This episode is a My Ruby Story with Dave Thomas. Dave has spoken about Elixir at two Ruby Remote Confs. He challenges the way people think about the way they do code. Listen to learn more about Dave!

[00:02:42] How did you get into programming?

Dave first got into programming when he was attending school in England. At the age of sixteen everyone takes national tests. A group of friends and Dave took these tests early so they did not have classes to take spring semester. Their school decided to send them to take a computer science class at a nearby technical college. There he fell in love with programming and decided to switch his focus in college. He went to Imperial College, where computer science was a brand new degree: it was only in the second year of being offered.

[00:05:45] How did you get into Ruby?

Dave has always been a language nerd. In the 90s you had to be determined to work with computer languages. People posted their compilers on usenet in parts. He downloaded files from this site to play with these languages. In 1997 or 1998, he downloaded Ruby overnight, started playing with it, and fell in love. It was similar to Pearl, which he was using at the time. Dave thought Ruby was easier to work with and it became his language of choice. He wrote a book with Andy Hunt and it became the pickaxe. Dave and some friends set up the first Ruby conference in Florida after the book was released.

[00:13:50] Do you feel like we get as many of “breath of fresh air” talks these days in Ruby as we used to?

No but that is to be expected. The problems, people, and interest have changed. Ruby has matured and there are fewer people in the community than there used to be.

[00:15:23] In terms of this cycle that you're seeing, where would you put Elixir?

Elixir is brand new, whereas Ruby had been around a long time. Elixir caught on fast, which was a surprise. People were doing large-scale commercial work in it within eighteen months. There are elements of homesteading going on; a lot of people are coming from Ruby to Elixir trying to tell people how to do it. Dave has been through thing similar to this in the past where he can recognize things that will be potentially harmful to the community and try to stop some of those things happening.

[00:22:06] How did you discover Elixir?

He came across it twice. The first time was five years ago but he did not really find a use for it. Then a year ago he was doing a Rails course in Virginia with Cory Haynes. He wanted a functional language so that people could better understand functional programming. Cory suggested Elixir and Dave tried it out again that night. He fell in love with the potential of Elixir. It wasn’t an opinionated language, just transparent. Elixir is fast and reliable.

[00:29:18] Contributions to the community

Dave became one of the people that everyone came to ask about Ruby, which he is proud of because it spread a new way of thinking about programming. He evangelized Ruby and Rails to more than 10,000 people. He has done evangelism just to make programmers happier.

[00:36:11] What are you up to now? 

He is still trying to help people write code with Elixir in order to help their lives become easier. Dave has created a course on how to write Elixir “Dave Thomas style.”

Picks:

Dave:

He wants people to do their own picks. Think of 3 things that make you proud to be a human being.

Links:

https://pragdave.me/

 

The post MRS 013 – Dave Thomas appeared first on Devchat.tv.

Tuesday, 25. July 2017

Ruby Rogues (Podcast Show)

RR 320: Shrine and File Uploads with Janko Mahronic

RR 320: Shrine and File Uploads with Janko Mahronic Jerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload...

The post RR 320: Shrine and File Uploads with Janko Mahronic app

RR 320: Shrine and File Uploads with Janko Mahronic

Jerome Hardaway, Dave Kimura, and Charles Max Wood discuss Shrine with Janko Mahronic on this episode of Ruby Rogues. Janko is a Ruby developer. He is the creator of Shrine, which handles file uploads. Shrine tries to solve existing problems and gives many ways to upload files. It tries to accommodate and provide every option for whichever types of file you may be uploading. Tune in to find out more about Shrine!

Questions

[00:03:56] What does Shrine do that CarrierWave doesn’t do?
One of the main reasons Shrine was created was to support background jobs. CarrierWave was missing support for background jobs. There is a CarrierWave extension for uploading in back-end but it doesn’t work reliably. It doesn’t delete files in the background and is missing the ability to have stable basic grounding capability. Shrine was created because of this reason.

[00:06:06] Does Shrine have good support for Rails?
Yes, you can hook up any backgrounding library. It has a designed interface in the way that Shrine can realize data for you. Shrine can call the background library directly. It can be an active job or custom background library. Inside the job, call Shine again to load all objects back up to finish the job.

[00:07:40] Does Shrine work across multiple file types or is it geared towards images?
Shrine works for any types of files. It is called the Ruby method. It can be implemented in any way you want. It has a functional style. You give the original file for the input and then move it to the processed files on the outputs. The processing can be anything: as long as you produce a file object on the output, you can call whatever you want to call, even an external service.

[00:09:04] What’s the biggest file that you’ve tested Shrine with? Have you run into any kind of memory leaks?
In Shrine nothing is done through memory, everything is done via streaming. When you’re streaming you don’t lose anything. It works for both small and large files.

[00:11:48] Explain what goes into building a file upload system. What are the concerns?
The framework handles the way the file is uploaded for you. Once the file is uploaded it’s stored into a temporary file. A gem handles most of the heavy work. Shrine makes a wrap around it. A lot of work goes into deciding which file attraction process needs to go in which order. It is important that you don’t upload in a data based transaction (?) 14:41 if processing lasts for longer time, whole time. There is a lot of time and decisions about what to do when.

[00:15:10] Do you have any blog posts about a migration plan? Do you have a good way to switch to Shrine?
Yes, Janko wrote migration guides. They include what codes you need to have to transition to Shrine. None of them involve re-uploading file because files are already there, they just need to be assigned ids. Then records can be updated with the file in a way that Shrine would be able to find them, just need to do record updates.

[00:17:29] What do you think active storage will do to the future of Shrine?
Janko may not be the best person to ask. He created Shrine for people who are not using Rails. It is difficult to tell at this point what active storage will do for the future of Shrine.

[00:19:50] How is the community adoption implementation? What is your process with that?
There is a Google group for people to ask questions. The setup doesn’t look that much different. Adoption is more that Janko tries to write a lot of blog post emphasizing some of the things that are better in Shrine. Most of the adoption started from the Go Rails screencast. When the author started to release videos. People were able to see what it looks like from start to finish. Go Rails is a great way to bring a library closer to a wide population.

[00:23:26] What stack are you using?
The preferred web framework is Roda and Sequel.

[00:25:00] Is there anything out there that you feel that these uploading that you adding to Shrine?
He feels like there is integration missing, which would be nice to have but he started working on he already knew what he wanted Shrine to support up front. Most of those features were added in the first and second release of Shrine. People won’t find on demand processing in Shrine because he decided not to add that.

[00:29:54] Security Points of Shrine
Uploads have to be authenticated. If a file is uploaded to a URL another person should not be able to review that file. If you want to authenticate files, you need to serve the files from your Rail set.

[00:32:55] How much time have you spent doing Shrine?
Two years.

Picks:

Dave:
Wallabag: https://wallabag.org/en

Charles:
Stair Points
Skil Saw: http://www.amazon.com/dp/B0731Q92BY/?tag=chamaxwoo-20

Janko:
Event Machine: http://www.rubyeventmachine.com/

Links:
GitHub: https://github.com/janko-m

Twitter: https://twitter.com/jankomarohnic?lang=en

The post RR 320: Shrine and File Uploads with Janko Mahronic appeared first on Devchat.tv.

Wednesday, 19. July 2017

Ruby Rogues (Podcast Show)

MRS 012 Simon Moro

MRS: 012 Simon Moro This episode is a My Ruby Story with Simon Moro. Simon is an Australian record producer and mixer. He has been teaching himself Ruby for the last 18 months, Rails framework, and is a frustrated aspiring entrepreneur. Through negative experiences with outsourcing and finding tech co-founders, he wanted to empower and...

The post MRS 012 Simon Moro appeared first on Devc

MRS: 012 Simon Moro

This episode is a My Ruby Story with Simon Moro. Simon is an Australian record producer and mixer. He has been teaching himself Ruby for the last 18 months, Rails framework, and is a frustrated aspiring entrepreneur. Through negative experiences with outsourcing and finding tech co-founders, he wanted to empower and educate himself.

How did you get into programming?

He remembers that the first computer in his home was actually called a dinosaur. His first experience with a computer made him intrigued. He was a lot of gaming consoles when he was young. Personally liked Sega and his best friend liked Nintendo. It was like an early Apple vs. Android rivalry.

He was introduced to visual basic in an InfoTech class in high school. His high school didn’t have a strong tech department so it was a very simple class. There was a button that you would click which would display a dialogue box with a calculator. He was fascinated by the way you could write instructions. He had always been full of ideas. The idea that you could create a digital product just by writing text fascinated him. He started borrowing books from the library and even bought a few. He tried to teach himself.

When he got older he used HTML and found WordPress useful as a music programmer and for the digital products he created. It wasn’t until 18 months ago that he thought he would try to learn a language and build something.

Connection Between Music and Programming

There are a lot of programmers that are also musicians. People don’t often acknowledge that there is creativity in code. Music and code may be appealing to people for the same reasons: because there is both science and creativity in both areas. Music is about agreements within a culture. Musicians agree that certain notes blended with each other either do or do not work. This is how they program symphonies and refactor sheet music to make it easier to read. Music is a process of solving problems creatively using a structure where if you go outside of that structure it won’t work. This is similar to front-end frameworks. In musical theory a lot of things are mathematical. There is a science of music and what makes it sound good. This is foundational in the same way math is the foundation in computer science.

Did you start programming in WordPress or did your interest in programming come from something else?

Simon did little in WordPress in terms of learning to program. He delved into CSS and changed themes using Envarto. He outsourced those tweaks to people from freelancing websites. He did try to learn PHP for his wife’s product but realized he didn’t do it correctly.

He was involved in Melbourne startup world and heard about Ruby on Rails through that. He researched it after he heard about it and read about the philosophy behind it. He raised capital to build a product production management tool for music producers. He built it in Ruby on Rails, and a company in Deli built that for him. He had to fire them and start again.

Because he’d been exposed to it, decided he’d delve into it and teach himself because if he’d started his learning at the same time he’d hired the company he could have taken over once he fired that company. He tells people that they can teach themselves if they have time and has people they can ask for help if they get stuck.

Are you building the mbp for your own product?

Simon built it himself. He had found a tech co-founder 18 months ago but it went south. Five weeks ago he finally decided to do it himself. He focused on one particular feature for receiving client feedback on a work in progress for music. A band that’s sending demos to each other can upload a song and add comments of change requests within the site.

How did you come to Ruby? What was it about Ruby and how did you find it that made you decide to want to do this type of work in Ruby as opposed to PHP or something else?

Simon started reading the philosophy around Ruby; then looked at the code. He thought the Ruby language and the Rails code made sense compared to PHP. He believed that PHP had too much code. He also likes the elegance of Ruby and the Rails framework, the organization, and the syntax.

What kinds of things have you done with Ruby? Is this your first and only product/project? Have you done other things? Ways to learn?

He believes that the way he is learning is most useful to beginners. The first thing that he did is to jump into a Ruby on Rails course through Treehouse. He found it confusing but he completed the course. A friend told him he thought it’d be helpful to learn Ruby through lynda.com. After that, he could separate Rails and Ruby. He started making quick prototypes to help learn and putting together budgets for projects apps, which he used for himself.

Do you find that the courses were enough or did you have to find groups of people who were coding or find a mentor?

It has helped by having people he could reach out to. He hasn’t had formal meetings with mentors. He had a problem with Track Bits and his friend Rahj helped find a solution to a problem one day. He has had moments where he’s been stuck like that and had someone help him. It is difficult to know what questions to ask Google to get the answers. Having someone to point the things out he doesn’t know that he doesn’t know is helpful.

What was it that made you get to the point that you said, “I’m pretty comfortable with this, and I think I can do a good job with it.”

He graduated from audio production in 2000. He has generally been the opposite of confident. He always assumes that he can always learn more, when he started out he was more confident than he is now in his craft. He now knows how important his role is in his client’s potential for connecting with an audience and his client’s potential for going further in their career. When he was younger he thought he could do things because he was trained so he could do things.

Picks

Simon:

Charles:

Links:

The post MRS 012 Simon Moro appeared first on Devchat.tv.

Tuesday, 18. July 2017

Ruby Rogues (Podcast Show)

RR 319 Machine Learning with Tyler Renelle

RR 319 Machine Learning with Tyler Renelle This episode of the Ruby Rogues Panel features panelists Charles Max Wood and Dave Kimura. Tyler Renelle, who stops by to talk about machine learning, joins them as a guest. Tyler is the first guest to talk on Adventures in Angular, JavaScript Jabber, and Ruby Rogues. Tune in...

The post RR 319 Machine Learning with Tyler Renelle appeared first o

RR 319 Machine Learning with Tyler Renelle

This episode of the Ruby Rogues Panel features panelists Charles Max Wood and Dave Kimura. Tyler Renelle, who stops by to talk about machine learning, joins them as a guest. Tyler is the first guest to talk on Adventures in Angular, JavaScript Jabber, and Ruby Rogues. Tune in to find out more about Tyler and machine learning!

What is machine learning?

Machine learning is a different concept than programmers are used to.

There are three phases in computing technology.

  • First phase – building computers in the first place but it was hard coded onto the physical computing machinery
  • Second phase – programmable computers. Where you can reprogram your computer to do anything. This is the phase where programmers fall.
  • Third phase – machine learning falls under this phase.

Machine learning is where the computer programs itself to do something. You give the computer a measurement of how it’s doing based on data and it trains itself and learns how to do the task. It is beginning to get a lot of press and become more popular. This is because it is becoming a lot more capable by way of deep learning.

AI – Artificial Intelligence

Machine learning is a sub field of artificial intelligence. AI is an overarching field of the computer simulating intelligence. Machine learning has become less and less a sub field over time and more a majority of AI. Now we can apply machine learning to vision, speech processing, planning, knowledge representation. This is fast taking over AI. People are beginning to consider the terms artificial intelligence and machine learning synonymous.

Self-driving cars are a type of artificial intelligence. The connection between machine learning and self-driving cars is abstract. A fundamental thing in self-driving cars is machine learning. You program the car as to how to fix its mistakes. Another example is facial recognition. The program starts learning about a person’s face over time so it can make an educated guess as to if the person is who they say they are. Once statistics are added then your face can be off by a hair or a hat. Small variations won’t throw it off.

How do we start solving the problems we want to be solved?

Machine learning has been applied since the 1950s to a broad spectrum of problems. Have to have a little bit of domain knowledge and do some research.

Machine Learning Vs Programming

Machine learning is any sort of fuzzy programming situation. Programming is when you do things specifically or statically.

Why should you care to do machine learning?

People should care because this is the next wave of computing. There is a theory that this will displace jobs. Self-driving cars will displace truck drivers, Uber drivers, and taxis. There are things like logo generators already. Machines are generating music, poetry, and website designs. We shouldn’t be afraid that we should keep an eye towards it.

If a robot or computer program or AI were able to write its own code, at what point would it be able to overwrite or basically nullify the three laws of robotics?

Nick Bostrom wrote the book Superintelligence, which had many big names in technology talking about the dangers of AI. Artificial intelligence has been talked about widely because of the possibility of evil killer robots in the Sci-Fi community. There are people who hold very potential concerns, such as job automation.

Consciousness is a huge topic of debate right now on this topic. Is it an emergent property of the human brain? Is what we have with deep learning enough of a representation to achieve consciousness? It is suggested that AI may or may not achieve consciousness. The question is if it is able to achieve consciousness – will we be able to tell there isn’t a person there?

If people want to dive into this where do they go?

Machine Learning Language

The main language used for machine learning is Python. This is not because of the language itself, but because of the tools built on top of it. The main framework is TensorFlow. Python in TensorFlow drops to C and executes code on the GPU for performing matrix algebra, which is essential for deep learning. You can always use C, C++, Java, and R. Data scientists mostly use R, while researchers use C and C++ so they can custom code their matrix algebra themselves.

Picks

Dave:

Charles:

Tyler:

The post RR 319 Machine Learning with Tyler Renelle appeared first on Devchat.tv.

Wednesday, 12. July 2017

Ruby Rogues (Podcast Show)

MRS 011 Greg Baugues

MRS O11 Greg Baugues This episode of My Ruby Story features Greg Baugues. Greg has been on two previous episodes, episode 142 where he discussed mental illness, and episode 258 where he discussed Twilio. Greg has been at Twilio for three and a half years. He worked on the developer/evangelism team for three years. A...

The post MRS 011 Greg Baugues appeared first on Devchat.tv.

MRS O11 Greg Baugues

This episode of My Ruby Story features Greg Baugues. Greg has been on two previous episodes, episode 142 where he discussed mental illness, and episode 258 where he discussed Twilio. Greg has been at Twilio for three and a half years. He worked on the developer/evangelism team for three years. A couple of months ago he became the lead developer of the community team. He lived in Chicago for eleven years, where he first started using Ruby. He moved to Brooklyn, New York a year ago.

How did you get into programming?

When he was five or six his parents owned a TRS-80 when he was five or six. It had a cassette drive and when turned on it booted into basic. He wrote programs in basic on this computer and it was an instant gratification to him. On a back cover of a magazine, he read there would be a code printed in basic that he would copy line by line. Later, his family bought a PC that had MS-DOS with QBasic, and his friends introduced him to Pascal, C, and C++. When he graduated high school he started PHP and got into web stuff.

How did you get from PHP and web stuff to Ruby?

In 1999 Greg used PHP to start a dot-com company with which they sold eight months later for all equity. He jokes that he “started and sold a company and all I got was a polo shirt out of it.”  This reinforced that he always wanted to work in programming but that he would never be happy just programming. He wanted to be involved working on the people side of things, too. He got a job at a consulting agency at Table XI where he was a sales guy. He claims that he wasn’t good at sales, so stopped programming for one and a half to two years in order to become better. Then he traveled with his wife in Europe for a while. This showed him that he spent his free time programming. After this he picked up Ruby for the first time. Ruby was his first language of choice because Table XI and most of Chicago was using Ruby at the time. He also fell in love with it.

What was it about Ruby that you thought was cool?

Greg finds Ruby beautiful and expressive. He believes that it makes more sense than for loop and believes that you can explain it to someone who’s never done coding before and it makes sense to them. Writing Ruby is the closest you can come to writing pseudo code that actually runs. Ruby doesn’t look much different from pseudo code. He thinks it is a joy to write in Ruby.

What contributions do you feel like you’ve made to the Ruby community?

Greg believes that his biggest contribution would be in the vein of mental health. He has Bipolar Disorder and was on a Ruby Rogues podcast where he spoke about it. Because of his disorder, he failed out of college, had trouble with relationships, getting out of bed, paying bills, and a lot of guilt. He finally got treatment in 2007 where medication slowly helped. Four years ago he had a coworker who overdosed that had been showing symptoms of the same disorder. The next day instead of doing a lightening talk he had scheduled about fantasy football, he gave a talk about mental illness and started giving talks about mental illnesses everywhere in the Ruby community.

Charles tells Greg that he heard someone speak about him and said he’d decided to go get help and have a relationship with his family again. He said that Greg’s episode of the podcast had helped him, and others have emailed him about it too. He explains that changing the way someone lives is just as important as writing source code. Greg says that he has learned that we are not alone in this community. There is a value of sharing your story and being vulnerable. It is easy to underestimate the compassion and empathy people have in the Ruby community.

What are you working on now?

Greg just had a conference called Signal for Twilio two weeks ago. There were 2,000 developers and 100 speakers at the conference. He was part of the team that organized speakers. Two months ago he started a leadership role with the developer community team for the first time. He’s trying to learn how to be in a management role for the first time. There were a million developers that signed up for Twilio so he is trying to figure out how to organize a community of developers instead of just having customers.

Picks

Greg:

Charles:

Links:

The post MRS 011 Greg Baugues appeared first on Devchat.tv.

Tuesday, 11. July 2017

Ruby Rogues (Podcast Show)

RR 318 Metaprogramming with Jordan Hudgens

RR 318 Metaprogramming with Jordan Hudgens Today's Ruby Rogues podcast features Metaprogramming with Jordan Hudgens. We have panelists Jerome Hardaway, Brian Hogan, Dave Kimura and Charles Max Wood. Tune in and learn more about metaprogramming! [00:02:00] – Introduction to Jordan Hudgens Jordan is the Lead Instructor at Bottega. Bottega has locations in Salt Lake City,...

The post RR 318

RR 318 Metaprogramming with Jordan Hudgens

Today's Ruby Rogues podcast features Metaprogramming with Jordan Hudgens. We have panelists Jerome Hardaway, Brian Hogan, Dave Kimura and Charles Max Wood. Tune in and learn more about metaprogramming!

[00:02:00] – Introduction to Jordan Hudgens

Jordan is the Lead Instructor at Bottega. Bottega has locations in Salt Lake City, Utah and in Phoenix, Arizona. They’re a full-stack development code school.

[00:02:55] – Metaprogramming

Metaprogramming was one of those scary concepts. At the code school, when the students learn about metaprogramming and how it works, you can tell that it’s definitely a pretty exciting thing. Its formal definition is it’s a code that writes code. It can dynamically, at run-time, render other methods available to the program.

[00:04:10] – Use cases for metaprogramming

The best use case that Jordan has ever seen is implemented in Rails and that’s code that can run database queries such as User.find_by_email. By passing the email, it will go and find the user with that particular email. Now, there is no method in active record or in the user model that is called find_by_email. That’s something that is created at run-time.

Another one is something that Jordan has implemented and that’s a phone parser gem. It essentially parses and validates a phone number. It also has a country code lookup. With all the countries in the world, that would be very time-consuming. But within 8 lines of code, it could do what a hundred lines could do without metaprogramming.

[00:06:50] – Performance implications

Jordan never had performance issues because the generation of methods is not something that’s incredibly memory intensive. You might run into that but it would be a poor choice to do in terms of readability.

In Brian’s experience, it comes down to the type of metaprogramming you do. If you have a bunch of logic somewhere and method_missing, that’s going to be a performance bottleneck. And if you’re generating a bunch of methods when the application starts up, it might increase the start-up time of the application. But after that, the performance of the application seems to not have any fluctuation at all.

There are 2 main types Jordan works with. First is method_missing. Method_missing could have a little bit of performance hit because of how Ruby works. The system is going to look at every single method. The second type is define_method. In define_method, you’re really just creating a large dynamic set of methods at runtime. When you start up the Rails server, it’s going to build all those methods but it’s not going to be when you’re calling it. Whereas in method_missing, it has a different type of lookup process.

[00:11:55] – Method collisions on monkey patching

That’s one of the reasons why monkey patching can have a bad reputation. You don’t know who else may be overriding those set of methods or opening up that class. Jordan’s personal approach is trying to separate things out as much as humanly possible. If there’s something that can be done in the lib directory, you can place that functionality inside of a separate module. And if you’re creating a gem, you have to be sensitive to other gems in that space or even the Rails core.

[00:17:25] – How to be good citizens to other developers

Metaprogramming has a lot of potentials to do great things but it also has a potential to cause a number of problems in the application. For Jordan’s students, what he usually does is walk them through some examples of metaprogramming where it can be done poorly. But then, he will follow it up with showing exactly when this is done right.

He shows examples of poorly written classes that have dozen nearly identical methods. And then, he also shows how they could take all those methods, put the names in an array, and show how to leverage things like define_method to generate them. He also shows them how doing monkey patching can cause issues, how they can actually open up the string class and change one of the basic functionalities. Show that when they override that, that affects the entire rest of the application.

[00:24:45] – Worst examples of metaprogramming

Jordan ran into this hive of metaprogramming. When he opened up one of its classes, he had no idea what that class did. It was method_missing all over the place. Usually, there are 4 or 5 lines of code inside of that. It’s relatively straightforward and makes logical sense when you read it. This was nothing like that.

They had multiple conditionals inside of the method_missing. One other hard thing about it is it does not have any test whatsoever. You need some test to make sure you’re capturing that functionality and to check if changes broke anything. You can’t also decipher what the inputs and outputs are.

[00:28:35] – Testing

Follow as much as real world examples. For example, in the phone parser gem, you can see some tests in there for that. You can also pass in the input that you plan to give. See if that matches the output. Jordan tells his students that respond_to_missing is as important to putting method_missing in there

[00:35:25] – Resources to get started

Paolo Perrotta’s book Metaprogramming Ruby is one of the standards for metaprogramming in Ruby. He also gave some fantastic examples. He created a story about a new developer who goes into a company and learns how to implement metaprogramming from senior devs. It’s very entertaining and it also covers all the different aspects to think of metaprogramming, when to use it and when it could be a very bad idea to use it.

Picks

Jerome Hardaway

Dave Kimura

Brian Hogan

Charles Max Wood

Jordan Hudgens

The post RR 318 Metaprogramming with Jordan Hudgens appeared first on Devchat.tv.

Wednesday, 05. July 2017

Ruby Rogues (Podcast Show)

MRS 010 My Ruby Story Dave Kimura

My Ruby Story Dave Kimura On this episode Charles talks to Ruby Rouges panelist Dave Kimura, the creator of Drifting Ruby, the popular Ruby on Rails Screencast and Blog. Find out more about how Dave got interested in programming and first introduced to the world of Ruby. Dave also talks about how and when he...

The post MRS 010 My Ruby Story Dave Kimura appeared first on Devchat.tv.


My Ruby Story Dave Kimura

On this episode Charles talks to Ruby Rouges panelist Dave Kimura, the creator of Drifting Ruby, the popular Ruby on Rails Screencast and Blog. Find out more about how Dave got interested in programming and first introduced to the world of Ruby. Dave also talks about how and when he started Drifting Ruby.


How did you get into programming?

Dave discusses living in Germany during middle school in the 90s. During this time, he owned a simple Mac LC II. He found a floppy disc that contained a program called Chipmunk Basic, which was his very first exposure into the world of programming. His interest with programming was further sparked by computers at school. These computers were loaded with three different programs: Fortran, Pascal, and C compiler. All of these peaked his interest in programming further.

Charles and Dave discuss the impact technology made.

Dave tells Charles that anything that pre-dates the Internet feels like a different world; one in which learning was more complicated. He talks about how technology has come a long way in the past 20 years. He discusses the creativity that people have displayed and how amazed he is by the progression of different applications.

How did you make the transition from different programs such as PHP and ActionScript into Ruby?

Dave discusses his work as a Systems Administrator at an engineering firm for the past 6 years after college. He talks about being at his current job at Sage Software for almost 8 years and that he does not believe in job hopping, although many do today. He states that he has no valid reasoning that he went with Ruby over Python or another program. He says that he did not like PHP or asp.net. Instead he wanted something new. Dave wanted to do things the way he wanted to do, which can’t be done in Python. A big part of his decision was made when he looked at Matz’s twitter. Matz seemed happy which led Dave to pick Ruby, which he thinks is mainly a good “dumb luck” decision.

What kinds of things have you done with Ruby?

Dave says that the coolest thing he’s done is with a Raspberry Pi his brother gifted him in 2013–2014 for Christmas. He built a CNC machine and a Ruby Gem called a Router out of it. He explains that he wrote an interpreter to read and control the machine. He adds that he has built a bunch of hardware as well.

How did Drifting Ruby come about?

Dave says that his inspiration is Ryan Bates, who created RailsCast and went off the grid in 2013. He strives to fill in the high bar that Ryan left by producing quality material.

When did you start Drifting Ruby?

Dave started Drifting Ruby in 2015, which is a couple years after RailsCast. He explains that he was not entirely committed to the program at first. He explains that he has revamped the audio setup two or three times.

So where are you hoping to get to with it? Are you just trying to put good content out or monetize as well?

Dave is currently focused on releasing good content. He wants to give back to the Ruby community and feels good that people are able to use the content he produces. Eventually he states that it will go to a subscription base, but does not have a definite date as to when. He is very dedicated to his work, as he spends 10 to 15 hours of his weekend working on episodes.

Are there things that you feel that you have contributed to the Ruby community?

Dave feels like his commitment to Ruby Rogues has been consistent but is not a hassle. He doesn’t look at it as something he wants to get paid for because he enjoys the time he dedicates weekly. He doesn’t feel like he’s had anything big other than Drifting Ruby.

So what are you working on now?

Dave is currently working on a money manager that he uses with his wife. He built this Ruby on Rails application in 2011–2012 off of the premise he learned at a Dave Ramsey conference. He states that he recently rewrote it and cleaned up so that it uses the latest Rails 5.1.1. The application helps budget money for bills, groceries, spending money, etc. using a digital envelope system. He states that anyone is able to use the program, and it has made a difference in his life.


Picks

Dave

Harbor Freight

Charles

Ketogenic diet
Spaghetti Squash


Links

Dave’s Twitter
Drfting Ruby Twitter
Drifting Ruby

The post MRS 010 My Ruby Story Dave Kimura appeared first on Devchat.tv.

Tuesday, 04. July 2017

Ruby Rogues (Podcast Show)

RR 317: Computer Science at University and the Future of Programming with Dave Thomas

RR 317: Computer Science at University and the Future of Programming with Dave Thomas Charles Max Wood interviews Dave Thomas about the Computer Science course he's teaching at Southern Methodist University, Elixir, and the future of programming. Dave is the author and co-author of several well known programming books including Programming Ruby (also known as...

The post RR 317: Computer

RR 317: Computer Science at University and the Future of Programming with Dave Thomas

Charles Max Wood interviews Dave Thomas about the Computer Science course he's teaching at Southern Methodist University, Elixir, and the future of programming. Dave is the author and co-author of several well known programming books including Programming Ruby (also known as the PickAxe Book), Programming Elixir, and the Pragmatic Programmer. This episode starts out discussing Dave's course and Computer Science education, then veers into Elixir and the future of programming. Tune in to hear where Dave thinks the programming industry is heading next.

[00:02:30] Dave's Computer Science Course at SMU 
Dave's advanced computer science course covers topics like source control and testing. He's been wanting to get into formal Computer Science for a while, so when he pulled back on his work at the Pragmatic Bookshelf, he approached SMU about teaching a course. He selected Advanced Application Development since he could teach pretty much whatever he wanted. The class is made up of Seniors and Master's students whose coursework primarily focused on theory, but lacked in the basics of coding as it happens “in the wild.” The plan was to go in and subvert them with Elixir.

All of the assignments are coding assignments and must be submitted with a pull request. Chuck recalls taking a class similar to the one that Dave describes.

[00:06:22] Computer Science's focus on theory
People who go into academia generally get their degrees and don't spend any time in the non-academic world. So, they don't know what's important when it comes down to nuts and bolts programming. This serves the students that stay in academia, but fails to teach the skills needed by their students. They also focus on the mathematical aspects of Computer Science and fail to show students that if they get excited about software, it can be fun.

[00:09:55] This is a job where we make a difference
Sometimes we do great harm. and sometimes great good.

[00:10:23] How do you communicate all of these aspects of coding to the students?
You can't just tell them. Mostly, Dave just tries to be enthusiastic. The teaching as it's done now is like a eulogy given by someone who doesn't know the person. Instead, Dave shows his passion for coding, tells stories, and shows how fun it is to write code. Imagine walking down the street and seeing the code you wrote being used. Dave's code was used on the satellite sent to see Haley's Comet.

[00:13:04] Software as a tool for change
A painter's medium is paint. Sculptors' stone. People in software don't “write” per se, but they still express themselves. This is a medium for programmers to get their thoughts out and interact with other people all over the world. We do a really crappy job explaining this to students.

Dave is involved in after-school programs for software development as well. The ones that succeed don't approach software head on. They do fun and fancy stuff with Raspberry Pi or put a webserver up and then point out the concepts used in the programming. This approach is the future of development training.

[00:16:01] Do you feel like CS programs aren't preparing students well? or have the wrong focus?
Students come out well versed in the theoretics of programming and can write programs. These are good things to know. The assumption is that they'll pick up the rest in their first couple of jobs. They're not preparing people to walk straight into a job, but prepares them to learn the rest on the job.

A 4 year program should be done after 2 years working in the real world. Most of the things not taught don't make sense until the student has the problem that it solves. For example, source control. This would give them context for the things that are important and bring the knowledge back to the

[00:20:26] What is in the curriculum?
In a few years, these students will probably be writing a functional language like Elixir. They start out writing a hangman game using Elixir. Then they add Phoenix. Then they add a webserver. The focus is around the fact that what you care about is state and transformations. Then someone will realize that you're really just implementing objects. Dave is trying to teach how to think in decoupled services.

[00:22:28] The future is functional?
Elixir is a practical functional language and solves some problems that programmers have been trying to solve for a long time. Clojure has a strange relationship with the JVM. Elixir is not as cleanly functional as other languages, but it's functional enough. At the same time, you can write kick-ass web services as well. You also get the power of the Erlang virtual machine.

Looking at Moore's Law, why aren't our processors getting faster? Over the last 10 years, they're not that much faster and the next generations are slower. But they have more cores. If you double the clock speed, you 8x the power dissipation. So, there's a limit to how fast you can go before you melt the processor. So, you run more cores at a lower speed. This vastly increases your processing power and lower your consumption.

If you're writing processes that run on a core from start to finish, then it only uses 1/16th of the processor's power (if it has 16 cores.) So, we need a programming paradigm that supports parallelism. Concurrent programming is hard.

Making data immutable makes it so you can eliminate common problems with threading and concurrency. Read-only (immutable) Object Oriented programming is effectively functional programming. We should see this change occur over the next 3-7 years.

[00:31:05] Most of the people at Ruby conferences are using Elixir
When Dave goes to conferences about Ruby, he finds out that about 50% of speakers and many of the attendees are doing Elixir and/or experimenting heavily with it. Ruby and Rails changed the way we work, but in many ways the functional programming is changing things again. Scaling matters. We can't just throw hardware at it. You can drop your server bill by 10x or 100x.

Elixir can get you there fast like Ruby, but it can also cut costs of running your server.

[00:35:43] Is a computer science degree that way to get in? or should people get in through bootcamps or self learning?
It depends on your learning style. You do not want to get into Computer Science because your parents wanted you to have a good job. The students that get into it because of family pressure don't love what they're doing and are kind of stuck. Programming is hard enough that if you don't enjoy it you won't excel.

In any case, do what works for you. You don't need to do a 4 year course of study to be a successful programmer. Quite a few good programmers Dave knows never took a CS course. If you do a course, find out that if the teachers are doing or have done the kinds of things you want to do. The better IT shops also tend to recognize that it's the person, not what they know, that really matters. So go to them and ask to apprentice with their good programmers at a lower salary. Then if you're contributing, ask for a competitive salary.

[00:41:03] What do we as programmers assume about CS degrees that we need to change?
Don't let the HR department do the hiring. Making them happy is what gets you bogus job requirements. Instead, put together some requirements that hint that enthusiasm trumps everything else. Or, have criteria like “must be able to fog a mirror” and pick for enthusiasm. Or, go to local maker groups or users groups or community colleges where the kinds of people you want are, and talk to people. Then network into the people you want. Ignore the qualifications and pay attention to the qualities.

One of the best people Dave hired was an alcoholic chemistry teacher, but he could get into a project.

[00:45:00] You don't want a career.
Spend the next 5-10 years job hopping. You want experience, not a career. You have no idea what you want to do right now, so try lots of things. Then if it's not working move on.

Picks

Charles:
Ubuntu Bash on Windows
VMWare Workstation: https://www.vmware.com/products/workstation.html

Dave:
Have something in your life that is relatively simple and relatively mechanical that you can fix if something goes wrong. (Dave tells us about his tractor.)

The post RR 317: Computer Science at University and the Future of Programming with Dave Thomas appeared first on Devchat.tv.

Wednesday, 28. June 2017

Ruby Rogues (Podcast Show)

MRS 009 My Ruby Story Brian Hogan

My Ruby Story 009  Brian Hogan On this episode we have another My Ruby Story and there is a good chance you might recognize him, he is one of Devchat.tv’s panelists Brian Hogan. Aside from being a panelists on Ruby Rouges, he also has a couple other projects like codecaster.io as well as Railsmentors.org. How...

The post MRS 009 My Ruby Story Brian Hogan appeared first on Devchat.tv.


My Ruby Story 009  Brian Hogan

On this episode we have another My Ruby Story and there is a good chance you might recognize him, he is one of Devchat.tv’s panelists Brian Hogan. Aside from being a panelists on Ruby Rouges, he also has a couple other projects like codecaster.io as well as Railsmentors.org.


How did you get into programming?

Brain talks about how his Dad has an old Apple 2 computer. His father was a teacher for the blind and the computer had a box on it that would talk. His Dad taught him that computers can have programs written for them and make them do things. Brain talks about having math issues one evening and his Dad helped by making a math program that would quiz him. His Dad wasn’t a programmer but he had picked up some of it from being around it. Brain talks about how the library had games you could get for the Apple 2 but you had to write code into the computer to make it work. He started tweaking the code to learn that it adjusted things in the game like the speed of the spaceship or the damage of the bomb.

Brian’s First Program

Brian’s first program was in fourth grade. He had an assignment on the topic of the seas and instead of doing a typical handwritten assignment he created a program for it. He learned that he could make the computer do things. Over time Brian got interested in other things, planning to go to school for law. His Dad lost his job making his plans for law school unreachable without student loan debt. He started making money on the side repairing and building computers.

Computers solving problems

He talks about how he never really got into the computer science level of things, but he was always excited about being able to solve people’s problems with computers. He remembers getting internet for the first time. It was Netscape and it came with a book on how to setup the internet and then in the last chapter it had a section teaching how to make a webpage with HTML. He loved making websites and so he made pages for businesses and made money on the side. He went to college aiming for computer science and then when he got into classes like computational theory, he found that it was boring to him still. He changed his major to business. He then got a job working for the college working with website stuff. The developer for the pages ended up quitting and so they asked Brian to help out. So he learned Microsoft server SQL and ASP. He adds that essentially he fell into web development by accident. He talks about his code being bad until he learned Ruby, crediting Ruby with making object oriented programming easier to understand. Charles mentions that he felt the same way in school, it wasn’t until he needed to fix a real problem that programming really started to seem useful and fun. Brian talks about how he isn’t really the best programmer, but his strengths are helping other people to program. He has trained many people to program since then.

Learning with Context

He talks about in school how they throw JavaScript at you and teach you the higher concepts before understanding it. He tells about how doing something like teaching Git on the first day doesn’t make sense because the students don’t understand why they need it. He suggests that the thing that is missing from the curriculum is the real work connection. Majority of adults need to be able to connect what they are learning to something they have already learned. Context is important for learning.

How did you get into Ruby?

Brian talks about doing PHP for a while as well as ASP. He was working with a project as an Oracle DBA. They were moving from Java to an Oracle Database. But no one there knew what Java was and a person there named Bruce suggested that the work they were doing would be better written in Ruby. The team disagreed but afterward one day Brian was talking to Bruce about a side project he was working on and how he wasn’t accomplishing it the way he wanted to. Bruce asked him to get lunch with him. Brian then talks about how in life if someone very smart asks you to get lunch that you should drop everything and do it. In a single night he was able to accomplish everything he was trying to. He took his project to work the next day and they said they wouldn’t be able to use it on Windows. Brian started working on finding ways to deploy it, and that has been the starting point of Ruby for Brian. He went to Rails full time after that. Publishing an article on how to get it deployed. His work with Ruby led to him teaching and writing books. When he needs to make something heavily data driven he always reaches for Ruby. He isn’t interested in scalability because usually he is working on a small business process behind the firewall used by less than 100 people.

Framework Peer Pressure

Brian talks about the fear and pressure to use the latest and greatest frameworks in the development community. He talks about how the only people who know what framework a person uses is the developer and the peers. You don’t get paid to impress peers in the community. A developer gets paid to solve peoples problems. Charles and Brian add that using new frameworks are great and can teach you new ways to solve problems, but no matter how a person solves a problem, it should be celebrated. Learn new things but don’t make people feel bad for not doing things the same way you do them. Brian adds that another reason he likes Rails is that it has a lot of things that came from basecamp and it is a well developed and tested and the framework is strong. He talks about how sometimes frameworks come out and they weren’t well thought out. Rails is not an academic framework but it is easier to integrate or upgrade to by design.

What contributions have you made to the Ruby community?

Brian talks about getting the Rails deploy working for Windows is one of his proudest moments. Other than that his contribution has been mainly helping people find mentors at Railsmentors.org. On Railsmentors.org, most of the work is done by volunteers and help a lot of people. Charles adds that sometimes open source project contributions tend to get glorified but things like Railsmentors.org are really what make the community great.

What are you working on now?

Brian talks about how he is working on a book but he can’t tell much about it at the moment. He also works on the content team on Digital Ocean. He helps other community authors with their writing and to get it published and out. He also handles some system admin background to test that each article works and he finds it a good way to keep his skills tuned. He is also working on a project in Elixir for teachers to work in the classroom better. For a teacher teaching development they can use the program, CodeCaster, to display code to the screens and the students can do things like flag things they don’t understand or let the teacher know that it’s moving too fast. It allows the students send up code for the teacher to check as well as the teacher get a snapshot of what’s on the students screen to check on them.


Picks

Brian

Exercises for Programmers
Tmux 2 Productive Mouse-Free Development

Charles

Coursera on AI
Artificial Intelligence in Python


Links

Twitter
bphogan.com


The post MRS 009 My Ruby Story Brian Hogan appeared first on Devchat.tv.

Tuesday, 27. June 2017

Ruby Rogues (Podcast Show)

RR 316 Learning Rails 5 with Mark Locklear

RR 316 Learning Rails 5 with Mark Locklear On today’s episode, we have Learning Rails 5 with Mark Locklear. Mark works for Extension.org. The discussion ranges from the introduction of Learning Rails 5 to the strategies that most successful students have for learning Rails. Stay tuned! [00:01:30] – Introduction to Mark Locklear Mark Locklear works...

The post RR 316 Learning Rails 5 with

RR 316 Learning Rails 5 with Mark Locklear

On today’s episode, we have Learning Rails 5 with Mark Locklear. Mark works for Extension.org. The discussion ranges from the introduction of Learning Rails 5 to the strategies that most successful students have for learning Rails. Stay tuned!

[00:01:30] – Introduction to Mark Locklear

Mark Locklear works for Extension.org, a USDA-funded or government-funded organization. He serves the Cooperative Extension Service but a lot of people know about 4-H Youth Group. They got a handful of websites that they maintain that are mostly Ruby on Rails-based.

He has been with Extension.org for about 3 years. He is also a staff at a community college mostly doing Rails and IT things. He is also an adjunct instructor at the same community college. He was mostly doing quality assurance and testing work but moved into development work in the last 7-8 years.

Questions for Mark Locklear

[00:03:00] – You authored Learning Rails 5?

It was an actually an update on an existing book – Learning Rails 3. Mark is an adjunct instructor and used that book. He contacted the developers or the original authors in O’Reilly so he can update the book. He updated a lot of the syntax and rewrote a couple of chapters. He also wrote the authentication chapter from scratch.

[00:04:15] – What’s unique about your book?

For Mark, there are all kinds of learners out there. There’s nothing necessarily unique about this book. It approaches Rails from a standpoint of having really no development skill at all. The only assumption would be that reader knows some HTML and basic things like for loops and conditional statements.

[00:05:30] – Has Rails gotten more complicated?

That was one of the challenges with this book. The original version of the book didn’t have any API stuff, any Action Cables, or anything like that. But now, we’re looking on adding chapters on those things. Mark doesn’t think Rails is hard to learn now. It’s been pretty backward compatible over the years. It looks very much like it did 5 or 10 years ago.

Dave thinks Rails started to standardize a lot of things and with Convention over Configuration, a lot of it is taking care of it for you. The also added a lot of new features like Active Job (Rails 4), Action Cable (Rails 5), Webpack (Rails 5.1). He think that when someone gets accustomed to it, it’s almost second nature. Thanks to Convention over Configuration and the support for the community.

According to DHH, Rails is not for beginners. It is a toolkit for professional web developers to get stuff done. But Brian disagrees that it’s not for beginners. It’s not so much that it’s harder to learn but it’s just a little harder to get started with. There’s just lots of different ways you can do in a Rails application by using RSpec, Cucumber, etc.

[00:12:20] – What are the core fundamental things to know in order to write Rails apps?

Mark spends a week on testing in his class. He focuses more on the Model View Controller paradigm. He also used RSpec and the basics of CRUD. Those things are transferable across whatever framework that they choose to work in. He also want to hit testing, sessions in cookies and user authentication.

[00:18:30] – Is there an approach for people to enhance their experience as they learn Rails?

Jerome believes in the “just keep it simple” methodology. When it comes to Rails, just learn Rails. Just focus on CRUD apps. Focus on the entirety of the framework, and not only on Rails, focus more on Ruby.

Another suggestion from Brian is to start cracking open the Ruby source code, Rails source code and see how things work under the hood. Look at things and see if you can reproduce them or write your own implementations as you learn.

[00:24:30] – What are the strategies of your most successful students that you’ve had for learning Rails?

In Mark’s class, they have final projects with very strict requirements, basically going back and incorporating everything that they’ve learned. The app has to have a user authentication. It has to have sessions and cookies. And students who are most successful want to solve some problems and have the passion.

One of the things that Brian have always seen that separates people who are high performers from the rest is that they’re doing a lot of practice. Spend a lot of time practicing and building apps.

Dave encourages the listeners to work on some personal projects that they are passionate about. Deal with someone else and get some experience with some peer programming. Try to see what it’s like working with other developers on the same application, you’ll find that your codes much cleaner because you have to take into account multiple users working around the same code set.

Jerome suggests to find a mentor, someone who’s willing to spend time to help with your programs. The students who are talking to their mentors every week usually come to be the strongest. And mentoring is a rewarding two-way street.

[00:40:05] – Are there any other aspects of learning or teaching Rails that we should dive into?

Mark says you should be uncomfortable every once in a while in implementing new technology. It puts you in the same mindset as your students becomes sometimes it’s becoming incredible overwhelming. And when teaching, Brian does not start with complex examples.  He starts with simple ones.

A faculty mentor has to observe Brian in his teaching. The mentor will say, “Just a reminder. You are the guide on the side, not the sage of the stage. You’re not there to tell them everything. You’re not there to make everyone think that you’re the coolest person up there. It’s your job to guide someone to the solution.”

[00:49:25] – If I’m a Rails 3 developer, how do I learn Rails 5?           

Mark thinks that the approach is probably the same if you’re doing Rails 3 to Rails 4. The questions you will start asking yourself is, “Okay, what areas do you want to dig deeper? Do I have to use Active Job or something like that? What are my mailers? Are there additions to the framework?”

Whenever Rails releases a new version, Dave reads the blog which highlights the new features that were added in. Pinpoint those features, do a little bit of independent research and think how you could incorporate them into your application. Use them as guiding tools to upgrade your older Rails application to a more current version.

[00:52:15] – Two Writing Assignments for New Programmers

Mark wrote a Medium article entitled “Two Writing Assignments for New Programmers.” In his class, they have two writing assignments. One of it is on diversity and technology. They also use Moodle as the learning management system where they can post questions.

He got some push back from students but his explanation was that, part of being a developer is to be an effective communicator. Brian agreed and said, “Your job as a software developer is 20% coding, 80% dealing with people, their problems and their requests.” You have emails to read. You have emails to write. Brian always asks, “What are the most important skills you want our students to have?” The top 3 are always soft skills like communication, work ethics, etc.

Mark adds that if you can’t do writing, if you can’t show up to work on time and communicate with your colleagues, then, none of your technical skills matter. However, if you can’t past the technical hurdle, you’ll never get a chance to use your soft skills. Dave also adds that if he can’t get out of these people what they’re envisioning, then, they’re going nto develop the wrong things.

Picks

Dave Kimura

Brian Hogan

Jerome Hardaway

Charles Max Wood

  • Castle Clash
  • railsmentors.org

Mark Locklear

  • Grammarly
  • History of Pi by Petr Beckmann
  • Sierra Nevada’s West Coast Stout
  • Github @marklocklear
  • Site locklear.me

The post RR 316 Learning Rails 5 with Mark Locklear appeared first on Devchat.tv.

Wednesday, 21. June 2017

Ruby Rogues (Podcast Show)

MRS 008: Jordan Hudgens

My Ruby Story 315 Jordan Hudgens In this episode it’s another My Ruby Story and this week’s story is Jordan Hudgens’. Jordan is lead instructor of Bottega, a code school based in Lehi, Utah but also located in Phoenix and Salt Lake City. You’ll hear a bit about how Decamp.com came to be as well...

The post MRS 008: Jordan Hudgens appeared first on Devchat.tv.


My Ruby Story 315 Jordan Hudgens

In this episode it’s another My Ruby Story and this week’s story is Jordan Hudgens’. Jordan is lead instructor of Bottega, a code school based in Lehi, Utah but also located in Phoenix and Salt Lake City. You’ll hear a bit about how Decamp.com came to be as well as what makes it stand out from the rest. You’ll also catch a couple tangents including one on artificial intelligence, augmented reality, an IoT. Don’t miss this one!


How did you get intro programming?

Jordan talks about how at the age of 12 his father had a business and with their budget couldn’t afford a web designer. His father offers Jordan to buy him a computer if he can build the website. He muddles his way through HTML documentation to create his first, and particularly ugly website 20 years ago. When he turned 16, he started working on better applications as well as learned PHP.

How did you go from PHP to Ruby?

As Jordan got further and further, he worked a lot in the energy sector, including Chevron and Oxy. This sort of work became dull and boring for him. He knew that there were other things out there that would be better. He started learning Ruby and fell in love with it. He mentions that working with Ruby helped him to love coming into work. Jordan now works almost exclusively in Ruby on Rails now.

What have you done in Ruby?

Jordan talks about switching all of his work over to Ruby, including doing work for Quip, the toothbrush service. He has also done work for EventBrite on one of their Micro Services. He soon after quit his work to start devcamp.com and launch his own learning platform. He says that he learns best by teaching so he started to create courses, usually for himself. He self-published on platforms like Udemy, but was also hired to create courses for FlatIron School in New York. His time was spent less in development and more in creating courses.

What makes the DevCamp.com different? What was your inspiration?

As a developer and having his own consulting shop, he recognized that camps weren’t teaching certain things like algorithms and even soft skills like project management and estimation. He also wanted to include other things like machine learning. Jordan felt strong on what he felt a true job centric curriculum should be focused on. Uniquely, Jordan has created a strong network to hiring partners. Instead of just building a course, they build outlines for a certain topic and then has the hiring partners and network to help create a profile for the best candidate for hire. Then creating the workshop around those requests. A major element that makes Jordan’s Devcamp.com stand out is that they are one of the only accredited bootcamps out there. Devcamp also uniquely has a 2 year pathway mapped out similar to a university computer science curriculum. Universities have partnered with devcamp.com because the curriculum lose a little bit faster than the traditional taught curriculum. Students are getting hired a bit faster because they are learning more relevant information. Jordan states that the student’s success is also Devcamp.com’s success.

What are the skills people need to actually get a job?

What makes a great developer is problem solving. Problem solving is the most important. If a person can dissect a challenge and come up with a plan, it’s very valuable. There is a problem solving course that presents a number of challenges where students learn to problem solve, not even using code. Taking a practical approach to give a sense a real world relevance and a mental framework for problem solving.

Do you feel like your main contribution was teaching?

Jordan mentions that he tries to contribute to open source and that he has made a few Ruby Gems but his time is limited. He discovered that even when he was making good money developing, he didn’t feel like he was making a huge difference in the world. He talks about watching students who came from working minimum wage jobs leave the camp they started working very hard and making 50 to 60 grand a year. The camp changed their lives. Charles talks about how he relates with the podcast. People have come to him with similar stories of having enough confidence to change their careers after listening to the podcasts.

What are you working on now? Anything new?

Jordan talks about how most of his time is developing new ‘Products’ for Devcamp. Each day he tries to add a few new features. One of the big plans is to start including machine learning into the curriculum. He talks about how when he adds features, he tries to use those features to teach and to create a relevant real world example. He finds that most students don’t like abstract thought patterns.

Are you doing that with Ruby?

Jordan lets us know that yes some of the machine learning stuff he is working on is with Ruby. Interestingly enough, he spent time at the Rails Conf and went to every machine learning talk there. Every single machine learning talk was on Python. He mentions that “H.H’s” (David Heinemeier Hansson) keynote talk was on using the right tools. It’s hard to compete with the large number of libraries that Python has on machine learning.

Artificial Intelligence, Augmented Reality, and Iot

Charles suggests that artificial intelligence, augmented reality, and Iot are really where technology is heading. Jordan and Charles talk about how they all three interplay together to enhance our lives. adjunctSensors from an Iot device uses machine learning and artificial intelligence to make decisions that then tie into how we experience reality. Charles mentions that he often tries to convince people that their phones are already supplementing our lives in a way that makes it augmented reality. Machine learning seems to be the glue that holds it all together.


Picks

Jordan

Devcamp
Bottega
Tim and Ruby Topaz

Charles

Ruby Dev Summit
WordPress theme – Summit
Ruby Rogues Parley
Meetup.com

Links

Bottega
Devcamp.com
Twitter
GitHub
Crondose blog

The post MRS 008: Jordan Hudgens appeared first on Devchat.tv.

Tuesday, 20. June 2017

Ruby Rogues (Podcast Show)

RR 315 Offshoring and Latin American Developers with David Hemmat

Offshoring and Latin American Developers – David Hemmat For this episode of Ruby Rogues we have Jason Swett and Brian Hogan for our panel along with Charles Max Wood and a special guest, David Hemmat from BlueCoding.com. David and the Blue Coding team work to connect developer talent to businesses in need through a thorough...

The post RR 315 Offshoring and Latin American Developers

Offshoring and Latin American Developers – David Hemmat


For this episode of Ruby Rogues we have Jason Swett and Brian Hogan for our panel along with Charles Max Wood and a special guest, David Hemmat from BlueCoding.com. David and the Blue Coding team work to connect developer talent to businesses in need through a thorough process of vetting as well as a database collection of potential developers. Check out this episode to learn more!

How did you get started?

1:34

David talks about going to school in the Dominican Republic worked locally, but later found work with US companies. He also set up a friend with a US job and they realized that there may be a demand as someone to bridge the gap. Developers did not have the access or a way to reach opportunities aboard so he started BlueCoding.com.

About Blue Coding

2:32

BlueCoding.com has clients in the US and Canada. They focus on Latin America due to having close timezones in relation to the majority of companies that would be looking for developers. Also, Blue Coding helps in regard to bridging the cultural gap. Latin American work culture can be different that US or Canadian culture. David talks about how it’s much of a communication difference. Developers sometimes will agree to jobs they are unable to do and are timid to communicate and often just disappear. Despite this, many Latin American companies spawned from United States companies and will tend to have a similar working environment and culture as US companies.

The General Experience With Offshore Hiring

4:17

David and the panel chat about their offshore hiring experiences. David expresses that there is sometimes an issue of many developers taking on work, and then seemingly disappearing. Often times coming back with excuses or in some cases actually over committing to work and just failing to communicate properly from the start. In some cases, like with countries like Venezuela, has a less reliable environment for the developers with things like power outages.

“Not All Good Developers Are Good Freelancers.”

6:18

Freelancers tend to need a different skillset. Extra communication and need tools in place like time tracking and daily reports , etc. Companies that hire freelancers or offshore hiring in general need to have tools setup as well. David expresses that the best developers often are the ones that already have full time jobs. Blue Coding tries to help those developers find a better opportunity and has structured systems to create a workflow that works for both parties. David talks about having those tools in place for the developer including the time tracking and daily reports.

The Companies Tools.

8:33

Blue Coding will also check with the client companies to make sure they have tools as well to help both parties have a smooth workflow. Project management software for the developer to see what they should work on next.

Rates

9:04

Rates vary between $30 and $45 an hour. David tries to stay away from junior developers, looking for developers with 3–4 years working experience. Some companies pay $30 to $60. Latin American countries generally see a starting rate of $30 an hour. Asian countries can start as low as $10 an hour, but in rare cases. Some developers on the opposite side of things charge $100 an hour.

Getting Offshore Developers

10:47

Most people start with upwork.com or Freelancer.com or something like that. Lower overhead but very limited vetting. Buyout fees are very high as well on these sites. There are companies similar to Blue Coding that are staffing companies that exist. Also, direct networking. Networking directly is extremely efficient. If you have a bad work history, networking also comes into play. David talks about their biggest source for developers are other developers, reaching out to find good hires by networking through the community.

Dealing with ‘Boom and Bust.’

14:19

Freelancers tend to run into boom and bust cycles, loads of work followed by slow spells. David tries to avoid this by hiring carefully and picking clients carefully. Looking for long term projects, either be a continuous flow of projects or one large projects. With this focus on long term relationship building, BlueCoding is able to have much lower rates. Other companies usually don’t have safety from downtime, offering internal work to make up for it.

Finding Companies that Hire Offshore

16:08

Most countries have job boards to help. Also, technology specific job boards. But it’s hard to compete there. US companies won’t hire offshore developers for the same rates and the same skills. You have to be really good. David pushes developers to have plenty of experience.

How to Get Noticed?

17:46

Companies can be prejudice, but isn’t seen too often. Becoming a top level talent is key. Being average is harder. As an average or novice in an area with no community, finding online communities, Facebook groups, LinkedIn communities, working on open source projects, and going to events can help.

Working remotely and being good at it [22:02]
It’s a two part effort. Companies can have tools to make things easier, but as a developer, you can request them. Communicate all online. All of the office talk should be online via Slack or some other documented system. Code reviews and Peer programming helps remote developers feel like a part of the team.

Onshoring vs Offshoring

24:28

Some companies are hiring remote developers from the US. Why would someone want to hire from outside the country? Ultimately it comes down to finding a developer that fits in with what a company needs as well as matches the budget. Cost of living can change the rates for developers as well as where the company is located. David expresses that he wants to find really good developers, even if it means reaching out to Brazil or other parts of Latin America.

Medical, Taxes, and Benefits

24:43

Each country has different laws. For example Dominican Republic has a law that states if you contract someone for over 3 months, they are considered employees and require benefits. Some countries allow Freelancers to work long term. Health care varies between companies.

The Finical and Risks.

32:14

Freelancers and hourly workers tend to have less working time, spending some time each day to chase down work as well as managing time. Developers in general should notice that projects in general can have budget cuts and even end prematurely. In general a developer working as an employee will need to account for the benefits and extras thrown in when considering their rates.

The Companies

34:02

What kind of companies are looking for this as a solution to their staffing problem? Most companies are smaller companies, 1 to 20 employees with a lot of long term development work. Generally three sectors, non tech companies that need tech work, digital agencies, and tech startups or established companies that already have a software product that needs to be maintained.

How to find the Companies?

36:30

It’s a work in progress. References are vital, David talks about how vetting for developers ends with a very happy client that gives references. Also they spend a lot of time networking, conferences, meeting people online as well as cold calling. David mentions that it’s hard to express the quality of their service through email.

Getting Started with Blue Coding?

37:22

For Developers

Go to BlueCoding.com and find the link that says “join the team if you’re a developer” and you can connect that way. Just reach out to them and they will set up a conversation with you and see if there is a good fit. Then once a project comes in they will set you up with the vetting process.

For Companies

BlueCoding will want to set up a call with you. Reach out to them and setup a call. They will work through if you need a developer and what that developer looks like in regard to technical skills, personal skills, and general ability.

Then the developers and clients have a meeting to make sure everyone is comfortable. Being comfortable is the most important part for this connection to end in a long term relationship.


Picks

Jason

Samsungnite Columbian Leather Flat Over The Top Laptop Bag

Brian

New MacBook with Touch bar

Charles

My Ruby Story Podcasts
Online Summit Format
Ruby Dev Summit
Ruby Rogues Parlay on Slack

David

Micro Conf.
Macbook Air
One Minute Manager


Links to Keep up with David

His Medium
BlueCoding.com
Email him


The post RR 315 Offshoring and Latin American Developers with David Hemmat appeared first on Devchat.tv.

Friday, 16. June 2017

Ruby Rogues (Podcast Show)

MRS 007 My Ruby Story Charles Max Wood

My Ruby Story with Charles Max Wood This week’s episode is a bit different. Charles Max Wood interviews… Charles Max Wood! Hear a bit about how Charles’ grandfather inspired him towards his career in programing, how handling technical support for Mozy somehow led him to writing Ruby code, and hear a bit about what he...

The post MRS 007 My Ruby Story Charles Max Wood appeared first on Dev

My Ruby Story with Charles Max Wood
This week’s episode is a bit different. Charles Max Wood interviews… Charles Max Wood! Hear a bit about how Charles’ grandfather inspired him towards his career in programing, how handling technical support for Mozy somehow led him to writing Ruby code, and hear a bit about what he is working on now! Stay tuned.

How did you get into Programming?
Charles talks about remembering some of his first programming exposure as far back as second grade. He talks about programming the iconic turtle to move around on the screen and draw shapes. Later on he had more experience in a particular Math class in high school, this time Pascal, then of course the TI-85.

Inspired by his Grandfather
Charles gives a bit of a background story on his inspiration for taking electronics classes in school, his Grandfather. His Grandfather was an inventor that created various inventions, including tools used in the manufacturing of rocket boosters for the NASA Space Shuttle. Charles became very interested in electronics and took his first electronic class.

Electrical engineering in College
Charles then attended Brigam Young University majoring in Electrical Engineering, giving him even further chances to experience programming. To Charles, programming seemed fun but didn’t feel serious enough to hold weight as his career. His interest grew in computers. He eventually switches to Computer Engineering and graduates, also picking up a job in the office of information technology at BYU.

Programming gets more serious
Charles talks about how programming in college tended to lean towards games and fun projects, and it wasn’t until after college that the projects that he got involved with felt as if the work he was doing meant something. From building a system to help college students find apartments that fit their needs, to Bash scripts that made some of the IT updates at BYU faster and safer.

His first job with Ruby on Rails
Charles then lands a job with Mozy, the popular online backup service. Mozy’s systems were all running with Ruby on Rails and Charles worked as Technical Support. Mozy gets publicity in The Wall Street Journal, increasing the Technical Support workload. Charles then writes a Ruby on Rails system that created a smoother flow when cycling through emails. He soon added extra features like canned responses and a way to measure how often canned responses were sent as a way to highlight any particular issues Mozy was having.

Shifting into Podcasting
Charles talks about switching from a Management position to a developer track and working with a man name Don, who had an original iPod and listened to podcasts. Introducing him to Rails Envy, a podcast by Jason Seifer and Gregg Pollack. After emailing Gregg, to Charles’ surprise he responds and encourages him to start his own podcast. Charles talks about how he feels his main contribution to the Ruby community is his podcast. Since then he has had a chance to interview some really influential people, including David Heinemeier Hansson, the creator of Ruby on Rails. Outside of the podcast, Charles adds that he has also taken over Teach Me To Code and has contributed a few open source libraries, one connecting to project HoneyPot, as well as contributing indirectly through his other podcast work including JavaScript Jabber, and Adventures in Angular.

What are you working on now?
Charles talks about hoping to get back into writing open source code and even starting a project. Charles spends most of his time doing ‘businessy’ stuff for the podcast as well as the conferences, currently working on putting together a Ruby Dev Summit. Charles talks about a few new podcast shows he is working on, including bringing some requested content like web application security, React, and Elixir. Charles talks a bit about other things he is involved in at home and creating systems to help him manage his busy workload.

Picks
Electro-Voice RE20 Microphone
Behringer Xenyx 802
Roland EDIROL R-09
ZOOM H6
Audio Technica 2100
GetACoderJob.com

Charles’ Links
Devchat.tv
Charles’ Twitter
Devchat.tv’s Twitter
Charles GitHub
Chuck@devchat.tv

The post MRS 007 My Ruby Story Charles Max Wood appeared first on Devchat.tv.

pluto.models/1.4.0, feed.parser/1.0.0, feed.filter/1.1.1 - Ruby/2.0.0 (2014-11-13/x86_64-linux) on Rails/4.2.0 (production)