My name is Brian Michel and I created this site for two main reasons. One, to have an ever working experiment to learn and understand the Ruby on Rails framework along with combining technologies to build websites and apps; and two, to be able to share those experiences in helping others develop their way through the "gotchas" and challenges I ran into while trying to deploy functionality. I hope this can become a good resource for developers to either learn from or even just serve as reminders how to do things.
In my full time job, I am Program Director for radio station KYGO, Denver. I oversee what you hear on the air (or on our streams, apps, and other platforms). Now, if you're asking what does that have to do with coding, let me explain. Many years ago when I worked for a small radio group in Fort Wayne, Indiana; the web was emerging as a place every business needed to be, but the company I worked for didn't have the budgets for websites. That's when I started to learn, because someone needed to create them.
I remember beginning with some of the craziest tools, mostly clunky graphical user interfaces, the likes of FrontPage (remember that?) and then onto other tools like Dreamweaver (back in the Macromedia days). But something else happened when I started learning how to create the sites for the radio stations, I found that I loved coding and the ability to just create things. And I just couldn't put it down, I wanted to know how it all worked.
I was propelled to learn more web technologies, most notably ColdFusion (CF) scripting language and then PHP. I really enjoyed CF and started doing some side web jobs using the platform. One of the things, though, that was challenging with CF was the expensive hosting costs for relatively small jobs.
That pushed me into learning PHP. I really relied heavily on extensions available in Dreamweaver to help be build out the base of most apps, because frankly, without a starting point in those days, PHP felt like a convoluted spaghetti of code just trying to get a database connected. And that was before you started writing complex queries. It always felt a little difficult to grasp, but I was able to experiment my way through it and even created an entire platform that several radio stations used for a while.
Then, came the onset of the frameworks. I struggled mightily to wrap my arms around most of them. Tried them all... Code Igniter, Cake, Kohana, Yii, you name it. I just struggled. There were three frameworks, though, that started to make sense to me after several tutorials and books. Those were Laravel, Django, and Rails. As I took more tutorials, though, it became apparent that for everything I liked about Laravel and Django, there were just as many things that drove me crazy.
While there was a lot to like about Django for example, having to remember to import things over and over and getting settings correct became so cumbersome. I found myself constantly trying to figure out what I left out on a certain file. The Blade templating in Laravel was fantastic, but then other things would just send me on a wild goose chase trying to get it all to work. This is not to knock either of those two frameworks either, I found they were super powerful and there are some great resources on both.
But that's where the magic of Rails comes in. Truthfully, I didn't get Rails at first either. But once you find the one tutorial that makes sense, you start to really get it and how it comes together and one of my favorite parts, is how there are awesome pre-built gems for just about anything! You can truly develop a highly functional app with complex nuances in warp speed with Rails. And if you find the right resources (you may have to pay for some of them), you really can up your game in what you can develop and how fast you can develop it in.
On top of that, the Ruby programming language just makes sense. It's easy to read, it's rather easy to learn, and I love the fact that each instruction terminates on the line without needing a semicolon! I cannot tell you how many times I would be searching for a solution in PHP because one semicolon was missing.