• Rockstar Ninja

    One of the things I enjoy the most about working on software development teams is the mentoring part. I really do enjoy sharing knowledge and teaching what I know to other developers as they grow in their craft.

    With a surplus of new developers from bootcamps, online courses, traditional universities, and other paths to software development; mentoring will be important. Maybe the most important.

    Of course, in order for the mentorship to work well, it has to be the right person.

    Finding the right person is tricky. Do you hire based on skill? What about character? No one wants to work with a jerk. Maybe it’s a combination of both?

    Continue Reading Rockstar Ninja →
  • Fitness for Programmers

    I started getting into fitness about three years ago. And by getting into fitness, I just mean doing something. Anything. It started with running. The first time nearly killed me. Then I migrated to cardio at a gym. Then cardio at a gym with some strength training with cable-based machines. Then cardio and weight training. Then I ended up where I am now. Weight training following a plan with some cardio.

    If I could bundle what I’ve learned from trial and error, and reading, into some tips, it would be this.

    1. Just start. Seems obvious. But even walking is better than doing nothing. Fear is big. But it goes away.

    2. Cardio is for health. It doesn’t do a lot for weight loss. It can, but it will require way more work. If your plan, like mine was, is to lose weight, there are more efficient methods.

    3. Follow a weight lifting plan. Strength and resistance training are proven to be the best for weight loss. As your muscles recover, they are hungry, and they use fat to regenerate. So lifting weights in the morning will burn fat and use calories all day. Where as running only burns calories while you’re running. Just randomly lifting weights seems like a good plan. It’s not. Let someone who knows what they are doing tell you what to do, and how much. There are tons of inexpensive weight lifting plans online.

    4. That reminds me. Losing belly fat is a myth. You cannot target a body area to lose fat. Your body loses fat from wherever it can. Bad news. Belly fat (for men) is visceral fat, and it’s the hardest to lose.

    5. No one at the gym cares about what you are doing. This was a big mental hurdle for me. But look around. They are all looking in the mirror. Everyone at the gym cares about themselves. Do your thing and know no one is watching what you are doing.

  • Using pkill to Kill All Ruby Processes

    I have found that at the end of the day closing all open apps on my computer is a great to signal that I am done for the day. It’s easy enough. Alfred has a command for Quit All Apps. Launching that shuts everything down.

    The problem is that it will leave any local web servers for Rails apps in a weird state where starting a new Rails server the next day will error out because one is already running on that port.

    In the past I have a done a couple of things. Using Activity Monitor to find and kill all Ruby processes works. So does using ps aux and grep to find Ruby processes and kill them one by one. But recently I’ve found the best yet.

    pkill ruby will kill them all with one command. Super useful and a great time saver.

  • How to Parse URLs in Markdown

    I have been spending some free time hacking on a little Markdown library in Ruby. It’s a fun project. I hadn’t built a Markdown library before, and it’s good practice to work on something that isn’t necessarily work, but for fun and learning. It’s a great way to play around and not worry about how long it takes, or how fast it is. One last point. It’s a great way to play with new things without worrying about budgets or breaking anything.

    It’s in a pretty ugly state. The class is called Render and the main method is also called render. I’ll change that later. As I’m writing tests, the word render kept coming to mind, so I went with it.

    Continue Reading How to Parse URLs in Markdown →
  • No Work Fridays

    I don’t work on Fridays. Well, mostly. I may do a little work in the morning. An hour or two. But typically, I take Fridays off.

    I’m working a contract right now that allows me to have my agreed upon hours in by the end of the day Thursday.

    This has turned into a day for my wife and I. It started as just me sitting around watching Netflix. Like your typical fat lazy slob. But the last few weeks, Linda has had some stuff for us to do.

    I now look forward to these days. Family has always been super important to me, and when software developers are always on and seem to be always working, this is a great way to spend some family time and disconnect.

    Super grateful. Four day work weeks are the best.

  • Disable Webmock To Make Real Requests

    Mocking and stubbing in testing has always been my kryptonite. I know I’m not very good at it, and because of that I tend to steer clear of it when I can. Obviously not a good strategy. So I’m forcing myself to use it more.

    One big thing for me is actually making an API request at times, like when building the feature, and then bypassing the request once I know it works. WebMock, while awesome, seems to hijack all requests regardless of what you are doing.

    I finally put some effort into finding out how to disable it so I can ensure it works first.

    Just place WebMock.disable! right in your test until you ready to start faking the requests.

  • Why Doesn’t Backend Tech Change That Often

    I wonder why we don’t hear more about backend technology changes. We often hear that some software product ripped out a certain front-end tool for a different one. Most recently I’ve heard about React being ripped out. But I seem to remember Ember and certainly Backbone being mentioned in the same sort of conversations. The only server side change I can recall is when Twitter ditched Rails.

    I have a theory.

    A short disclaimer: this isn’t intended as front-end hate. Simply an observation.

    Most backend frameworks do different things. Take Sinatra and Rails for example. Both web frameworks. But one simply has some routing and views, while the other is comprehensive. It manages database connection details, secret encryption, asset minification and serving, and even uploading files.

    When you need something simple, you grab Sinatra. When you need something much larger, you grab Rails.

    The only time you need to change backend tools is when you change languages. Ruby can be slow. If you needed to deal with several connections, like Twitter, you may reach for a language that is more performant.

    This isn’t the case with front-end. Rarely does something introduce something new. It seems to be a refresh on the same thing. I just spent some time reviewing VueJS. It’s not that different from React. Both serve a view layer, have component support, and are reactive. It’s just syntax.

    There is something to be said about technology maturity and stability.

  • How to Match a Partial String in a Ruby Array

    The other day I was working on a feature that takes some form content, conditionally sets parameters and sends that data to a third party so another team can access it.

    I ran into a slight issue that was sort of surprising to me. I have an array of field values that I can’t control the formatting before I get it. It’s kind of silly, but it is what it is.

    The data comes from a series of checkboxes, and looks something like this.

    [“The Lemon Song”, “Whole Lotta Love”, “Dazed and Confused”]
    
    Continue Reading How to Match a Partial String in a Ruby Array →
  • How To Structure React Components

    I’ve been working with React for a while now. Actually, just about every project I work on lately has been React with various back ends. React is pretty simple. But if you have been away from JavaScript for awhile, there will be some things that may take a while to understand. Well, not necessarily understand. More like develop a taste for.

    Because they are so many ways to do things in React, you end up developing a taste of how you like to structure things. A way that things work best for you.

    Today, how small I should make components clicked. I mean I knew how to make components. And I knew what seemed like a good system, but it turns out I wasn’t breaking them down enough.

    Continue Reading How To Structure React Components →
  • Building API Driven React Applications

    I recently gave a presentation at Toledo Web Professionals on API design. Something that I feel isn’t talked about enough. Since I’ve been working almost exclusively in React apps for the past several months, I concentrated on the API side of React applications. As far as an API is concerned, the front end tech doesn’t matter, but it was created around my recent experiences and starting from React made the most sense.

    Continue Reading Building API Driven React Applications →