Hello!

My name is Greg Winn and I am a Ruby developer, specializing in web application development. Take a look at some of my projects, then drop me a line if you want to talk!

Ruby I have been a software and electrical hardware engineer for over a decade. Getting my electrical engineering start with the National Association of Rocketry, building guidance and avoidance systems for high powered rockets. I have successfully launched many web platforms and SaaS based products. A United States Air Force veteran, I have also worked and contracted for some of the top companies and organizations.

Latest Updates

MySQL 5.7 issues

After the latest Ubuntu 16.04 update, I did what thousands and thousands of people did. I upgraded from 15.10 while using and older version of MySQL (5.6).

Testing the update

The first thing I did was confirm that my Ruby projects still worked and all started up. I pulled the latest from my project and ran a rake db:migrate and it failed. I then tried to connect to my local database mysql -u root -p (My MySQL setup locally has NO password: this is important to remember, this issue ONLY effects those with no password set for root). While I was updating I also notice that MySQL was upgraded from 5.6 to 5.7.

“Fix” MySQL 5.7 to work like it use to.

First we need to connect to mysql and by now you have found that you can not… Here is how:

sudo mysql -u root -p
(enter your sudo password)
(no password for mysql)

Now we need to alter the User table to remove the new auth_socket plugin.

mysql > UPDATE mysql.user SET plugin = "mysql_native_password" where User = 'root' AND plugin = "auth_socket";
mysql> FLUSH PRIVILEGES;
mysql> quit

Lets stop and start the service and connect like normal!

sudo service mysql stop
sudo service mysql start

mysql -u root
mysql >

References

https://anonscm.debian.org/cgit/pkg-mysql/mysql-5.7.git/tree/debian/NEWS?id=1025a9fa9c6c112913c59138db49dbc94891d20f

Making the Switch (Mac to Linux)

I recently made the switch from Mac to Linux after years of trying to fully switch with many failures along the way I have finally done it! Mac has almost always been my choice of OS, it offers the perfect mix of great looking and well functioning UI and flexibility to handle development tasks. I will not cover Windows in this other than to mention I am removing it from the ThinkPad but that’s it. Now don’t get me wrong here, I have a Windows computer and it does one thing, it plays World of Warcraft very well!

Testing the hardware.

After making the decision to switch from Mac I wanted to see if I could even get a development environment setup and working. I also wanted to test if I can make the switch with random personal tasks i use my computer for. So I looked for a refurbished ThinkPad T420 (runs about $200 to $240) then I knew I did not want a standard hard drive because that was just going to make this old computer feel old. Along with the computer I purchased an SSD 240 GB and one stick of DD3 ram 8 GB. Once all the parts arrived I put them together and threw my Ubuntu thumb drive in one of the USB slots and installed Ubuntu 15.04.

The install on a T420 went smooth! I was very impressed, total time took maybe 10 minutes. Now before I closed my Mac for the last time I made a list of everything I wanted and had to have on this Ubuntu box to make it worth the switch.

  • Atom
  • Some type of Database tool (MySQL Workbench) - I was using Navicat on Mac.
  • A Visual Git Tool
  • Email Client (Using Office365 at work)
  • HipChat

As a development environment I also need the following installs to go very smooth:

  • Ruby via RVM
  • MySQL
  • Nginx

After a few searches all of this information is available and all easily installed. (Shown Below) Now, it was a test of time, how long can I last on Linux only, without going back to my mac to get something? I told myself that if I can make it a Month, I would look for some better hardware and make the switch for good.

It’s been two months now and I am writing this article from a ThinkPad T460s with Ubuntu GNOME 15.04, but not without some major issues… To be continued.

Ruby

Complex technology permeates throughout everyday life, making a huge impact on the way one goes about their work and personal business without it being given a second thought. From cell phones, and iPads, to instant streaming and personal computers, it can be found everywhere. Inside each of these gadgets, there is a small, metallic piece, called a chip, that has been taught how to function by a computer programmer using a specialized language. In a similar fashion, web programmers and developers use such languages, called code, to teach websites how to display and utilize information. These developers are needed to write the language, an act referred to as coding, to tell websites what to do.

Just as the internet is constantly changing, web developers are learning new languages to keep up with the demand. Programming languages are like spoken languages: there are many different ones. In most cases, one can be translated into another to portray the same concepts, but there are instances where slight variations result in great differences in meaning. Malvik (2014) describes a web developer’s job in the following statement. “You’re probably well aware that web developers build websites … Web developers must also analyze user needs to enable the proper content, graphics and capacity to meet the goals of the website.” With companies demanding more from their developers at a faster rate, selecting the right language is an important decision. Among the languages to choose from, Ruby stands out as a solid programming language for several reasons: its collaborative community of developers, the fact that it is freely available on the web for further development (referred to as open-source), and its simplistic form that make it easier and faster to implement.

Open source software gets closest to what users want

Though there are many textbooks about Ruby from which a developer can learn the code, something of greater assistance is the community of people surrounding it. The language is considered open-source, which means that anyone interested in improving upon the Ruby language can do so without purchasing anything or paying for a license to do so. “In general, open source software gets closest to what users want because those users can have a hand in making it so. It’s not a matter of the vendor giving users what it thinks they want–users and developers make what they want, and they make it well.” (Noyes, 2010) Examples of coding and tutorials are easily accessible because of open-source resources about the language. Simply put, “it is free, not only free of charge, but also free to use, copy, modify, and distribute it.” (Kahn, 2010, pg. 9) Some languages, such as Microsoft .NET and JAVA, are considered closed-source which means a person would need to pay license fees to use and and apply it to web programming. Since Ruby is an open-source language, there are more people using it, which creates a bigger community offering more support to fellow developers. Companies are seeking out developers who are familiar with coding in open-source because they know they will be getting fresh ideas and innovative features to their sites. Twitter, Hulu, and NASA are among websites who have taken advantage of open-source to help create their final product using Ruby.

Very efficient, powerful and with a very clear syntax

Ruby allows a person to write fewer lines of code to implement a finished website. This makes the code easier to work with and maintain. Gallardo (2011, pg. 8) describes this by saying, “the result is a language very efficient, powerful and with a very clear syntax… In general it is easy to use, quick to implement and programming becomes a pleasant experience.” As web technology becomes increasingly faster and more accessible to the general public, customers of web developers want changes made more often and implemented faster. For many of the changes, a website must be temporarily inaccessible while new code is being written and tested. Therefore, it is in the best interest of the programmer to utilize a language like Ruby that allows for faster coding. Working faster lessens the time that a site is unavailable and prevents the web customer from losing too much business. Writing in Ruby is beneficial because it does not require one to write as much code compared to other languages while still getting the same end result. Slater states that “less code—and better-structured code—means changes are relatively painless, so you can iterate and experiment more readily. This leads to better sites, and, hopefully, more fun building them.” (Slater, 2008)

Drawbacks

A drawback felt in the programming community is the fact that Ruby does not have financial backing or the human resources of an organization or company that provides technical structure and support for developers. For example, Microsoft’s programming language, .NET, has companies that develop and sell the software needed to facilitate coding and provide support for the software and the language itself. This risk often leads developers to shy away from Ruby and go with something more traditional and well supported. However, as stated earlier, there is a strong community of Ruby developers who are willing to share their expertise with others for free. One website, http://rubyonrails.org/ (2015), has a community that offers a mailing list, Twitter feed, and real time discussions for anyone with questions or solutions they want to share.

Ruby stands out as a solid programming language

There are always new languages becoming available but because of the advantages of Ruby, it will be around for years to come. Haggerty (2014) says it best when he describes the community that surrounds Ruby. “The Ruby community is large, international, and encompasses a number of disciplines. I’ve been fortunate enough to have the opportunity to interact with other programming communities, both Open Source and Enterprise, and few compare to the vastness of Ruby, or the interactivity.” With so many languages to choose from, Ruby stands out as a solid programming language because of its community of developers and the smaller amount of code required to accomplish tasks, resulting in a faster end product for the client.

References

Gallardo, C. (2011). Web development frameworks: Ruby on Rails vs. Google Web Toolkit (Bachelor Thesis).

Retrieved from http://www.diva-portal.org/smash/get/diva2:457085/FULLTEXT01

Hagerty, PJ. (2014, December 26). Ruby isn’t dead.

Retrieved from https://blog.engineyard.com/2014/ruby-isnt-dead

Kahn, J. (2010). Thesis Blog on Rails (Bachelor Thesis).

Retrieved from http://www.diva-portal.se/smash/get/diva2:303196/FULLTEXT01.pdf

Malvik, C. (2014, February 11). Everything you need to know to become a web developer.

Retrieved from http://www.rasmussen.edu/degrees/technology/blog/everything-about-becoming-web-developer/

Noyes, K. (2010, November 5). Top 10 reasons open source is good for business. PCWorld.

Retrieved from http://www.pcworld.com/article/209891/10_reasons_open_source_is_good_for_business.html

Slater, M. (2008, April 22). Creating more using less effort with Ruby on Rails. A List Apart.

Retrieved from http://alistapart.com/article/creatingmoreusinglesseffortwithrubyonrails

Ruby on Rails Community (2015)

Retrieved from rubyonrails.org