My favorite Ruby gems

This is the fifth installment of the blogging assignments (out of seven), that I am required to complete during the Fullstack Web Development online program, LearnVerified, at the Flatiron School. Not only do they ‘make us’ learn lots of code…they want us to blog about it as well. This installment will cover some of my new favorite Ruby gems that I have discovered so far during my learning to code journey.


As the saga continues…

Progress Update

I am still, ever so slowly, pushing my way through the curriculum. After my pretty impressive code streak early on in the race, I hit a few ‘bumps in the road of life’ that have significantly slowed my progress. Yet, despite those bumps, my love of learning and love of code continues. My progress through the course may have slowed down, but I am still coding every day and enjoying the learning process.

During the last few months, despite the crawling pace through the LearnCo curriculum, I have managed to work my way through a couple of in-depth, Rails coding courses, through Udemy that I had previously purchased but hadn’t gotten around to working on yet. As well, as making progress through other coding platforms like Treehouse and SoloLearn, which may not seem all that productive in the grand scheme of things, but for me, they are life savers for squeezing in free moments throughout the day to code.

Despite My Bumps in the Road of Life

Even with my ‘bumps in the road of life’ I have managed to achieve a pretty ‘green’ GitHub contribution graph, considering at the beginning of 2016, I didn’t even know what GitHub was, nevermind knowing the significance of the GitHub Contribution graph?!?!

My GitHub Contribution graph Learning To Code Favorite Ruby Gems

My GitHub Contribution graph

I am actually glad to have put these courses off till I had worked my way through a good portion of the curriculum at LearnCo, as it was a cool way to sort of solidify some of the stuff I have been learning and being able to see it in action as I went through these tutorials building various apps.

During my little ‘side trip of Udemy tutorials’, I have stumbled upon some useful little ‘gems’ (pun totally intended) at RubyGems.org that have been great additions to my growing list of helpful gems to use while working with Rails applications.

So without further ado…

 12+ new (well, new to me) favorite Ruby gems

  1. hirb – provides a mini view framework for console applications and uses it to improve rails console (or irb) default inspect output. This was probably my first cool gem find (at least until I further investigated and found #2 on this list), other than the more commonly used gems like Devise, Bootstrap and even Rails (which are all pretty cool in their own right!), cause it just makes the output in the console so much easier to read and search through.
  2. table_print – similar to the Hirb gem…but even cooler! TablePrint turns objects into nicely formatted columns for easy reading. I find this much easier to customize the information you would like to see by using symbols or strings to reference the columns.

    Default console output vs. TablePrint output Learning To Code Favorite Ruby Gems

    Default console output vs. TablePrint output

  3. simple_form – as the description says ‘Forms made easy!’ For basic forms, the gem simplifies the code for a Rails form. I have read some cautionary tales about using it as a newbie, as you should concentrate on learning how to first use the Rails regular form helpers before ‘simplifying’ things…but I added it as a new gem I encountered on my ‘Udemy tutorial side trip.’
  4. bootstrap-twitter-rails – this gem makes it incredibly simple to create/generate a nice-looking website. It provides a few generators to create a Bootstrap layout and resource CRUD views.
  5. rubocop – is a Ruby static code analyzer. Out of the box, it will enforce many of the guidelines outlined in the community Ruby Style Guide. In my relative newbie status as a Ruby on Rails developer, I have quickly become aware of ‘DRY principles’ and ‘code smell’…Rubocop has opened my eyes to a whole ‘nother level of coding OCD!
  6. cancancan – is an authorization library that restricts what resources a given user is allowed to access. Use it to define which role can read/update/delete which resource. All permissions defined in a single location and not duplicated across all controllers, views and database queries.
  7. kaminari – for easily adding pagination to your application. Similar to will_paginate which I have also used on my ‘Udemy tutorial side trip’ with ease as well.
  8. devise – I have learned quickly that this is the go-to gem for user authentication. Basically, authentication determines who the user is, via email/username + password. Devise handles sign in, sign up, reset password, etc.
  9. carrierwave – allows you to upload files to your application. Restricting file types or defining styles when working with images such as thumbnails and profile sizes is made simple. Similar to Paperclip which I have also used with a couple of different applications including the very first Rails tutorial I ever completed, in which we created a Pinterest-clone, you can check my finished app out here.
  10. gritter – this gem allows you to easily add Growl-like notifications to your application using a jQuery plugin called ‘gritter’. When I was first introduced to this gem I didn’t exactly know what Growl notifications were (I have since Googled it), I thought learning how to implement this gem was cool cause I could have snazzy new flash messages.
  11. coderay – is a Ruby library for syntax highlighting. As someone learning to code, being able to reference a line of code and have syntax highlighting applied when writing a blog post or commenting on a coding blog post, is something you get used quickly and then feel ‘naked’ without it when you don’t have it. You put your code in, and you get it back colored; Keywords, strings, floats, comments – all in different colors. And with line numbers.
  12. redcarpet – a gem that easily adds extensible Markdown to (X)HTML parser. This gem I find particularly useful considering one of the first basic apps you might create when learning to code is a blogging app. And although creating the app is pretty cool, if you wanted to use it for your blog you would quickly find that there is no styling to your text…it just ends up as one big wall of text. Being able to markup your blog post with Markdown (so that you can having the ability to add headings, paragraph breaks, images or links etc) makes the app feel more real.

Lessons Learned Might Justify the Snail Paced Progress

Although I am disappointed with myself for letting the pace of my LearnCo lessons slide, I can at least be happy that I am still learning. And in fact, I think my little ‘side trip of Udemy tutorials’ has been beneficial to my progress through the curriculum. It has shown me a lot of the concepts I have already been learning in another light which has helped to solidify further that knowledge.

So it takes me a little bit longer to get through the curriculum…that is ok. Just this week, I was able to explain to another newbie Rails developer what a line of code in the Devise documentation, about Configuring Routes was doing. To me (and to the guy I was helping), that was a big deal.

 

 

 

The Code Streak Lives

This is the third installment of the blogging assignments (out of seven), that I am required to complete for the Fullstack Web Development online program, LearnVerified, at the Flatiron School. Not only do they ‘make us’ learn lots of code…they want us to blog about it as well.


Just a day or so after managing to break my 109-day-code-streak at the LearnVerified program of Flatiron School, I have been spending a lot of time pondering the value of the code streak.

What Is A Code Streak?

For those of you who may have never heard of the term ‘codestreak’, a general definition of a codestreak is the number of consecutive days on which you’ve spent time coding or learning to code. In my case, it was the consecutive number of days that I spent time learning to code in the LearnVerified platform.

So Many Coding Platforms, So Little Time

I have spent all of 2016 (and much of 2015) devoting my freetime to learning to code. Actively learning to code was a 2016 New Year’s resolution I made to myself this year. And for all practical purposes, I can essentially guarantee that I have spent some time each and every day in the pursuit of learning to code.

Whether it has been reading actual books on various coding languages; spending time going through lessons on different online platforms such as Treehouse, Codecademy or FreeCodeCamp; enrolling in several Blueprints at Skillcrush.com; completing courses and tutorials on Udemy, Skillshare and Udacity; using the SoloLearn apps on my phone while waiting for a table at a restaurant or in between pet sits each day when I am away from my computer and just NEED some coding time; and eventually enrolling in the online program at Flatiron School. I can honestly say I am addicted to learning to code!!

Code Challenges

About a month into being enrolled at LearnVerified, I came across the #codestreak hashtag on Twitter, at which time I was already 35 days into working on lessons on the Learn platform. And then shortly there after, I ran across the #100daysofcode hashtag (41 days into my #codestreak) and coding challenge. How could I not start participating?!?! I was almost halfway there!!

a quote about it takes 31 days to make a habit

At first I wasn’t sure I could keep it up because I am not very good at keeping track of things…thankfully, Flatiron actually made that pretty darn easy with their built in current learning streak feature of the student dashboard! All I had to do was just keep on, keeping on!

Keep on learning to code, which I was doing anyway…except now I was striving to make sure I did it for 100 days. Which actually should not have been such a big deal since from January 1st til the first day I tweeted the hashtag of #100daysofcode on June 27th, according to an online date calculator:

The total number of days between Friday, January 1st, 2016 and Monday, June 27th, 2016 is 178 days.

This is equal to 5 months and 26 days.

A hundred days should be a piece of cake!! Yet the closer I got to the hundred day mark, the more worried I got. Would I blow it days or even a day before the 100 days??

100 Day Accomplishments

I feel like these last 109 days (not to mention the 178 days before that) I have learned so much!! Not only have I managed to get through roughly 100 lessons of the LearnVerified program (82 lessons in the Fullstack Web Development track and 25 lessons in the new Intro to Javascript track).

I have also managed to:

  • build a number of Ruby on Rails app (the first of which was a Pinterest-clone which I am kinda fond of!) from various Udemy classes and Youtube tutorials
  • worked my way through and earned my certificates for the HTML Fundamentals, CSS Fundamentals and SQL Fundementals of the SoloLearn apps
  • finished the Tribute Page challenge at FreeCodeCamp
  • have found so many more (more than one can possibly get through in a life time!!) tutorials, lessons and coding resources that I just need to find enough time in the day to work my way through!!

And yes, I have learned a lot about coding…but I have also made learning to code a habit. A part of my everyday life now. I look forward to getting time to code each day…it is actually a bit of a problem. It is a total addiction!

Now, after a long day of work or errands or just everyday chores, I find myself jonesing for just a little coding time!!  Just one little lesson on Learn or a quick fix of Treehouse if time is short or even having to wait for a table at a restaurant so I can work through a few questions on a SoloLearn app! I need it!!

Although I ‘technically’ broke my codestreak, as in it is back to 2-days at the moment, I spent that particular day making my Sinatra Fwitter project look pretty (working on the CSS) as a break from my frustration at trying to get all the specs to pass.

So although my codestreak has reset itself at LearnVerified…my Year of Learning to Code is still safe…and continues….  🙂

 

 

 

Explain HTML and CSS to your Mom

This is the second blog assignment (out of seven), that I am required to complete for the Fullstack Web Development program, Learn Verified, at the Flatiron School. Not only do they ‘make us’ learn lots of code…they want us to blog about it as well.

For those of you that have been following my blog (thank you!!)…you might remember that my mom passed away right before the holidays in 2015. So naturally this blog assignment, with it’s prompt of “Explain HTML and CSS to your mom”,  caught me a little by surprise, since I would give anything to be able to really tell my mom all about my ‘learning to code’ journey.

htmlvscss

I’m not sure she would even know or really care about HTML or CSS normally, as she wasn’t necessarily all that interested in computers, other than to do basic things like send an email, type up a letter or check Facebook…but she would happily listen to me explain how HTML and CSS work together to make websites.  She would enjoy hearing me tell her about something that obviously excited me enough to want to share it with her…cause that is just how my mom was.

Mom was actually aware of my interest in computers and had tried to encourage me to study computers back in college…mostly cause she thought it would be more profitable than me studying to work with animals (unless of course I was going to be a veterinarian), but I of course had to do things my way. So I would like to think she would be happy that I have decided to follow through with my desire to learn to code.

I am not sure this description would work well for all parents…but I think for my mom, who was a creative person, as well as being quite good at organization, I would be able start with the broad strokes of telling her that ‘HTML is mainly for creating the structure, organization and content for a website’, while CSS is for ‘making the site look pretty’.

Both HTML and CSS (along with Javascript) are the parts or coding languages that are considered to be Front-end Web Development. Front-end development is also known as the client-side of programming in that it creates what the users sees when they visit a website on the internet and allows them to interact with the site.

HTML, which stands for (Hyper-Text Mark-Up Language) is the language that is used to structure a website and display all of the content on the World Wide Web. It is called a markup language because it uses ‘tags’ that wrap around different types of content to structure the layout of the page…for example, there are heading tags, <h1> through <h6>, that give you various sized headings that you can use on your page or <p> tags to identify the beginning and the end of a paragraph. There are also tags to create various kinds of lists, such as ordered <ol> or unordered <ul> lists. Most tags require an opening and a closing tag…so for a paragraph you would surround the text of your paragraph with an opening <p> tag and a closing </p> tag.

HTML also allows you to do things such as create hyperlinks, which are key in navigating the World Wide Web. As well as tags that allow us to add images, videos and audio clips to what would otherwise just be webpages full of lots and lots of text!

Screenshot (59)

Basic HTML for the beginning of a simple project

CSS, which stands for Cascading Style Sheets, is also a type of markup language, but instead of displaying content, CSS styles the content. Things like text color and background images and positioning various elements.

CSS is sort of like interior decorating, with painting the walls and adding furniture and deciding where to put it all, where as HTML is like building the house.

CSS works with HTML by identifying the various tags and using the tags as a way of selecting which element should be styled which way. So if I wanted to center my ‘Welcome to My Pinteresed App!’ heading (h1), the CSS code would look something like this:

h1 {
    text-align: center;
}

Where the h1 is the selector that points to the HTML element you want to style. The part within the curly brackets is called the declaration block  and it contains one or more declarations separated by semicolons. Each declaration includes a CSS property name and a value, separated by a colon. And CSS declaration always ends with a semicolon.

With enough CSS you can go from the site in the above image with very basic content on it…to something that looks more like a ‘real’ website.

Screenshot of my site with some CSS

I would like to think that at this point, Mom might actually be pretty impressed with my skills, as she would appreciate the difference from going from basically a sketch or rough draft of what I want on my site, to something that looks like more of a complete site…despite it actually being a work in progress 🙂

For me, I actually still get excited going from a blank page to having the HTML render the most basic of sites. CSS is just the ‘icing on the cake’ as I love being able to pick colors and choose layouts and decide on fonts to transform the site into something beautiful. And this dorky enthusiasm for witnessing a site being created is why I learn to code!

 

Happy Birthday Scribbles & Musings!!!

Birthday Cupcakes to Celebrate Scribble & Musings One Year Birthday

Happy Birthday to Scribbles & Musings!!

(My OCD-ness needs to point out that I realize it isn’t quite in ROGIBIV order but was trying to match the cupcakes)

Happy Birthday to you…happy birthday to you…

Happy Birthday Dear Scribbles & Musings…

Happy Birthday to

Yoooouuuu!!!!

One year ago today, I had this crazy idea that I needed to learn about WordPress and therefore should start a new blog. Thus, Scribbles & Musings was born. One year later, I am happy to say that I am still learning about all kinds of different things about WordPress (and other computer-y things) and still love my blog space!

Life threw me a bit of a curve ball when my Mom passed away back in October 2015, which sent me into serious hibernation mode to lick my wounds for much of the winter and well into the spring. I am attempting to inch my way back out into the world (at least as much as any introvert goes out into the world) as the days finally get warmer and my body craves the warmth of the sun on my skin. My enthusiasm for most things, including blogging, seemed to disappear after my Mom died, but despite that I have managed to keep my weekly series of Fav Foto Friday (which will celebrate it’s one year anniversary at the end of July!) going even if I have been a ‘bit’ (ok…I know…a lot!) quiet otherwise on my blog.

One of the only things, other than my menagerie of animals (which have a way of getting your attention even if you want to hide your head in the sand) that I have been able to stay focused on since my Mom died, is my long time desire to learn to code…as in computer programming. I remember back in the 80s wanting to learn how to ‘do things’ with the Commodore 64 computer my parents brought home one day. I was fascinated with that thing! Through the years I have always stayed interested in ‘all things computer’…which was how the need to learn about WordPress came from…and what has brought me to this place.

This time I have spent hiding away from the world to lick my wounds, has been productive at least, in that it has given me lots of time to spend behind my computer learning to code and trying out all different kinds of platforms that teach you all these things. Online places like Treehouse, Codecademy, Udemy, Skillcrush and more. After months of trying out all these different platforms and learning about learning to code, I have even enrolled in an online bootcamp, Learn Verified, in a Fullstack Web Development program at Flatiron School to continue my venture into learning to code. Two months into it and I am still loving it and enjoying the journey! So despite hiding away from the world, I have kept myself busy and I think I am learning stuff…it might even be sinking in…finally.

All this to say, Happy Birthday Scribbles & Musings!! I still love ya! And just maybe you might hear more about my learning to code journey here at Scribbles & Musings…

Grab a cupcake and celebrate with us!!

Birthday Cupcakes to celebrate with

Blogging Tips or Rules for Living?

Blogging TipsBlogging tips from a new blogger?!?!?

What can a new blogger teach me about blogging??

I have been thinking about this post for awhile now and wasn’t sure about writing it because I kept thinking,  “No one wants advice about blogging from someone who is still learning themselves!”

Well, it turns out, about 3:30 this morning my brain decided that I was uniquely qualified to share some of the things about blogging that has made my blogging venture, this second time around, a little bit more successful. I may not have thousands of followers to my blog or on social media but I have learned lots and maybe other bloggers might find something to inspire or encourage them to continue with their blogging adventures.

Both of my ventures into the blogosphere have been mainly because I wanted to learn about a particular blogging platform. Back in August of 2009, I up and decided it was time to blog and so created my very first blog on Blogger. I had no idea what blogging really was or why the sudden need to do it had hit me, but I learned the ins and outs of working with Blogger and played with themes and learned some HTML so that I can do some minor tweaks here and there, and then hooked up with a blogging team on Etsy, where we supported and blogged about each other’s handmade items and shops, trying to bring more awareness about Etsy and each other. That journey lasted til November of 2011…and continues to linger out there in the interwebs and surprisingly still has some traffic!

Then in June of this year (2015), I decided it was time to learn WordPress, so Scribbles & Musings was born!

Welcome Scribbles & Musings

These are just some of the things that I have learned so far on my blogging journey:

  1. Blog about things that you enjoy. One of the key aspects to a successful blog is having regular and consistent content. Give your readers a reason to keep coming back. And one of the easiest ways to accomplish that is to enjoy what you are writing about. If you dread the thought of sitting down and writing content that is boring…just because that is what you think makes a blog popular or successful…you are probably not going to enjoy blogging and whatever enthusiasm you have to create a blog will soon dwindle and die out. My blog is filled with things I like or things I enjoy doing, whether it is my love of animals or my obsession with gnomes or my dorky tech learning thrills…these things inspire me. Will these things make me a successful blogger, in a blogging world that is filled with mommy bloggers and DIY craft bloggers and amazing cooking bloggers? Who knows!? But I am enjoying my blogging journey…and isn’t that what it should be about?
  2. Never stop learning or be afraid to try different things. Learning is what got me into this blogging thing! Granted, I am a bit of a dork and enjoy learning about things, especially tech things, so when the urge to learn about a blogging platform presented itself, I used that as a jumping off point. For me, I enjoy poking around the dashboard and finding what options and tweaks are available and I try them out. Just the other day I was poking around in the Settings, under the General tab and realized there was this new little option to have it snow on your blog til Jan. 4th?!?!? When did that show up?? You know I jumped all over that option and tried it out…and hence, it is snowing on my blog! Which is nice since it has been record high temps here in CT and does not look like we will be having a white Christmas this year.
  3. Google is your friend. I am always amazed when people tell me, “Gee, I didn’t think to Google that.” Really?? I Google everything! I need to learn a new knitting stitch…I Google it! Have a question about how to care for one of the many animals that fills my house…I Google it! Decided to learn how to hula hoop…I Googled it! Want to learn how to take better photographs…I Google it! Want to get all fancy with my blog and change the font for my blog titles…I Google it! Chances are if you have thought about something…so has someone else…and it is out there, just waiting for you, in the World Wide Web. And I realize some people have issues with Google for one reason or another (I don’t particularly get it…but to each’s own) Use some other search engine…Bing or Yahoo or Duck Duck Go (ok, I may have to try Duck Duck Go just cause that is an adorable name that I had never heard of!) or some other alternative search engine and find out how to do things!
  4. Build community. Make friends in the blogging community. Read other blogs and comment on them. Create a connection! And yes, this advice is coming from an introvert…I don’t do people!! At least not in the large, extroverted way…but getting to know people through my computer screen…that is something I can manage.  I think this may be one of those key things to succeeding in the blogosphere. Don’t be worried about the numbers of followers…create real connections…create friendships. I may never be truly successful with blogging in that I can quit my day job and make a living by blogging but if I can develop friendships with other people who enjoy some of the same things I enjoy and I can learn from them and get to know them and find a meaningful connection with some of them…then I have been successful in my blogging pursuits!
  5. Be yourself. If you want to create engaging content that connects with your readers, chances are you just need to be yourself. Write as if you were talking to your friend. Tell them a story as if you just ran into one of your good friends and you want to catch up on what has been going on in your life…tell them about your trip to the seashore, what you got for your birthday or about the book you just read or how your day went. I think these are the posts that make the connections and create the friendships. They let your reader get a glimpse of who you are and what your life is about and they feel connected. They want to come back and check in and see what you have been up to.

These are just a few things I think that will help in your journey to being a better blogger…or maybe even living a better life. These days lots of life seems to be connected in some way to technology…but things like being yourself and building community and never stop learning…theses things can cross over into life and make our world a better place to live in.

What have you learned on your blogging journey?

Writing and not writing

Assignment #11 for Writing 101 of Blogging University is about learning to take time out of your ‘work time’ for other things, for living life.

As much as we love to write, it’s important to take breaks — to live your life and have new experiences, and to reflect and recharge so you can come back to your desk, ready to hit the keyboard again. Not writing allows you to gain the distance from your words, and thus perspective, which are both needed when it’s time to edit.

What do you do when you’re not writing? How do you reset and return to this dashboard, refreshed? What do you need in your day-to-day life to maintain balance: Running? Yoga? Gardening? Painting? Cooking?

For me writing is not a ‘full-time job’ so it ends up being pretty easy to take time out and do other things. It’s the ‘other things’ that I need to learn to take a break from. Pet sitting, especially as a sole proprietor, can become an all consuming type of job if you let it. Continue reading

Update your readers over a cup of coffee

Assignment #10 (oh my goodness…am I finally caught up with my class assignments for Writing 101?!?!?) of Writing 101 of Blogging University is to write an update post in the form of a virtual coffee date.

Let's Have Coffee

If we were having coffee right now…I may have to admit that I am not very good at doing the whole ‘coffee thing’ seeing how I am an introvert and that when doing the ‘coffee thing’ I tend to do a lot of listening and ‘smiling and nodding’ cause as usual the cat probably has my tongue.

If we were having coffee right now…I would tell you about the wedding we just attended at our church. A very sweet and loving young woman who has grown up in our church family. And how storybook sweet their wedding was because the two of them have grown up as childhood friends!! It was so nice to witness this wedding and be a part of the their story. Continue reading

Open Letter to Fellow Bloggers

Assignment #9 for Writing 101 of Blogging University is to “reinvent the letter format.”

Some might say a post in the form of a letter is trite and overdone. But when done well, a letter can tell a great story or get your message across.

After a little research on the topic of open letter writing, I did find some ‘backlash’ about the open letter writers and have duly noted their valid points and just wanted to put a disclaimer out there that…Writing 101 made me do it!

I also found a similar letter  as to what I plan on writing out there in the interwebs that also makes valid points, that makes me second guess my choice of letter…but as it is something I notice often, it is the first thing that popped into my head when I read the assignment. Continue reading

The Space to Write

Assignment #6 for Writing 101 of Blogging University is to describe your writing space.

Where do you write? Do you prefer blogging on your laptop in a coffee shop? Are you productive in a quiet room, door closed, away from civilization? Today, describe the space where you write. Or, if you don’t have a dedicated place, what is your ideal setting?

Consider these questions to shape your post:

  • What are your writing habits?
  • What equipment or supplies do you use to write?
  • What do you need and want in a physical space?

I am constantly thinking about things while I am driving around from one pet sitting assignment to another and so I have been known to jot down ideas or songs that strike a cord with me while I am driving. Continue reading

Let Social Media Inspire You…

Assignment #5 for Writing 101 of Blogging University is to “Let social media inspire you.” One of the goals of Writing 101 is to tap into new and unexpected places for post ideas. And social media can be a great source of inspiration.

Writing Tools

I have been a big reader all my life. Reading was always my escape from my ordinary life. So naturally, I have always wanted to write. I wanted to write books that allowed readers the temporary escape that I have found in so many books. Continue reading