Ruby

I will be learning Ruby in the year 2021 and here is my project study site.

It’s been some time since I have actually sat down and written programming code. I have been active in developing company websites, and my personal site, but that doesn’t involve a whole lot of programming, per se. Yes, code such as HTML, CSS, and some JS and SQL but not anything like C#, which I used to work with on a pretty regular basis. It’s been about six years I would say, about the time my wife and I moved to Marquette from Denver and started a family. That went fast!

I think about programming often though. I miss it. Mostly, I miss a good math problem. Since kindergarten, I have been in class doing math. All through my college years, I took math courses. It wasn’t until I graduated that my frequent excursions with math were not-so-daily. Simple math, yes, but nothing to rack my brain about. That’s why I went into programming eventually. I like puzzles. And, it reminded me of my TI-89.

I think about how I want to play again. Do the logic and math again. But, I didn’t want to work towards setting up my computer with Visual Studio or the like. I didn’t want to set up MSSQL database server or anything. I did, however, want to learn a new language and be able to set up an environment pretty effortlessly. Today’s cloud computer can handle that, right? OH, and do it in a web browser!

Over the past 5 years or so, I have found that I enjoy developing things in AWS Cloud9, I don’t have to spend time configuring all the time. Everything is pretty much what I need and where I need it. I can start up an environment and install a few things and I’m good to go. But, even that takes some time. So, in order to learn my new chosen language, I looked around for a while and finally landed on Repl.it. It is a ridiculously fast set up and cheap AND in the browser. Plus, it easily lets me run Ruby. That’s what I’m starting to work on, and 2021 is that year I’m going to use to learn it.

Finding some inspiration

I recall at some point coming across _why? and Ruby and it has stuck with me since. Ruby was a language that I had always wanted to learn in college but had typically found business application work with Visual Studio ASP.net MVC C# instead. This is fine, but now that I tend to spend my waking working days in a lab, I can prioritize my learning curriculum, and finding inspiration is typically needed. So I found Poignant Guide. I won’t write more about this other than he was a figure that I used to follow back in the early 2000s. Then he disappeared. But, luckily Mislav Marohnić was able to save some of his work, which rekindled my desire to play with Ruby.

Making a study routine

There are a few places that I will be utilizing while I learn. First, I need an IDE. That’s where Repl.it comes in. I can set up a Ruby environment and keep my study logs in there. The only thing that I don’t like about Repl.it is that it doesn’t support Pry, which is a runtime developer console and IRB alternative with powerful introspection capabilities. Pry is a powerful alternative to the standard IRB shell for Ruby. It features syntax highlighting, a flexible plugin architecture, runtime invocation, and source and documentation browsing.

gem install pry
gem install pry-doc
gem install pry-byebug

So, even though I will be using Repl.it for some simple examples, I will be using Cloud9 for the majority of my heavy work since it does support Pry and then just push to GitHub to store the git version history.

I will also be taking advantage of the https://try.ruby-lang.org/ tutorials to start with. Then make my way through https://try.ruby-lang.org/playground/ and then check out the articles. I plan to work on this as much as I can daily or at least 3 days a week. Even if it’s a little bit at a time. I just need to get back into writing it often to learn. Repetition.

Reference material:

I need to make a cheat sheet and mind map.

Side project

Side projects are always the true learning ground. Aside from learning the fundamentals of Ruby, I have always found it helpful to have a side project. A tic-tac-toe AI program using the Minimax algorithm is in my sites. A great algorithm to start with. I was able to find a wonderful tutorial. My hope is to have it on a web page at some point during this new year.

Ruby on Rails Project (…more study)

Some years back when I was initially looking to migrate my skills from ASP.net MVC to Ruby On Rails, I acquired a text titled Ruby on Rails Tutorial v4.0 (https://rails-4-0.railstutorial.org/book/), by Michael Hartl. I still have it on my book shelf. But, like most things in tech, it was a bit outdated. So, I bought the newest version and have been making my way through it. And, I have to say, I am really enjoying it!

I haven’t worked with Heroku so much though, there are some learning curve there. But, in comparison from v4.0, Heroku has made it much easier to deploy projects. Also, GitHub now gives free private repositories so, I can keep my Git’s there too, which makes it nice for centralizing my work since 95% of my code lives there in some form or fashion.

Here is my first deploy on Heroku:
https://whispering-wildwood-92577.herokuapp.com/