Month in Review: February 2018

Month in Review Header

This was a very slow month for coding because of my Navy Reserve annual training.  I'm finishing that up today and I haven't done much outside of that the past couple weeks.  I'm posting this from my hotel room in Norfolk, VA before I head for the airport. 

I'll be getting back into things on Monday morning and March should be much more productive.


freeCodeCamp

I completed the Applied Responsive Web Design projects, which was the last part of the Responsive Web Design section.  The next section is JavaScript Algorithms and Data Structures.  I made it about halfway through the Basic JavaScript section before leaving for my annual training.


Projects I Worked On

Client Questionnaire

Purpose

Have a checklist of things to go over when helping friends and family members plan and build their sites.

Progress

Completed.  After spending some time looking at what others were using, I decided I was wasting my time.  I have no desire to be a freelancer, so it's not like this is something I'm going to use that often.  It just didn't make sense for me to spend a lot of time working on it.  I decided I'm going to use iTheme's 65 Questions to Ask During Your Next Freelance Client Meeting and be done with it.


Goals for The Month

  • JavaScript Guessing Game (Fixed Number).
    I didn't get the picture taken to finish this up, but that's all I need and it will be done.
  • PRT Tracker [WordPress Plugin].
    This is to track my running, push-ups, and curl-ups for our Navy Reserve Physical Fitness Test (PFA).  I  started a plugin before and had the basic functionality working.  I'm going to start over and make it work with Gutenberg.  The plugin will feature a custom post type to collect workout information and progress reports based on my goals.  This will be a little slow since I'm also going to need to learn about developing with Gutenberg.
  • Aloha from Dad [Website].
    I'm going to slowly continue working on transferring my old Household Discoveries site to Aloha from Dad.  This will also involve creating a recipe custom post type.
  • freeCodeCamp.
    I'll be continuing on with the JavaScript Algorithms and Data Structures section, with the goal of spending six hours a week.

Aloha, a hui hou (until we meet again)!

Week in Review: January 29-February 4, 2018

Week in Review Header

This is going to be the last of the short-lived Week in Reviews. I've decided to shift to a Month in Review that will be posted on the last day of the month. These weekly posts have been taking too much time for no more than they are providing at this point.

The Month in Review will be more of a list format (I think). It will include more specifics about what I learned, any problems I ran into, or any big accomplishments I had.

Changing to this format should also give me time to write something besides updates. I'm going to start slow with the goal of one post every second Tuesday of the month beginning in March. This can be a tutorial, something I've done, something I want to do, a review, or any number of other topics.


Learning

freeCodeCamp

I completed the Survey Form and Product Landing Page projects. I'm working on the Technical Documentation Page and then all I'll have left in this section is building a personal portfolio webpage.
My Current Applied Responsive Web Design Project: Technical Documentation Page

I've mostly been going through the tests in each project to make sure everything is working right. Now I'm adding to that a bit. I'm still going to make sure everything is working, but I'm also going to make my projects look like the examples as much as possible. This will be a good practice in replicating something just from how it looks on the front end.

Lynda.com

Last week I completed the Learning React.js course as part of the Become a React Developer learning path. The course works through building a note app. I learned a few things and got some more ideas to work on down the road.


Projects

JavaScript Guessing Game

GitHub [Project Code]: https://github.com/geoffreyshilling/javascript-guessing-game-fixed-number

Purpose

I thought it would be fun to have people guess how many minifigs (LEGO people) I could fit into a Mason jar. Since the number doesn't change, it won't be something to play over and over. I'll be adding it to my 404 error page in hopes that it won't be seen that often.

Progress

I'm almost finished with the game. The only thing I need to do yet is to add the actual photo of minifigs. It currently has the following logic:

  • Allow only numbers to be input.
  • Accept input from the regular number keys and also the number/key pad.
  • Allow the user to enter a guess by clicking the button or pressing enter.
  • Allow a maximum of 5 guesses per game.
  • Allow the user to play again once the game is over.
  • Prevent a user from guessing the same number twice.
  • Limit number of digits per guess to 4. Example: 1234.
  • Set focus to "Play Again" button when game is over.
  • Disable input field when game is over.

The "Store"

Purpose

I'm working on a business website for a family member. The "store" is currently a hard-coded, non-responsive HTML site with images of the business's catalog. The new site is being built with WordPress and WooCommerce. They have no desire to sell online, so this will be more of a showcase of products. The new site will allow the business to add or remove products without having to contact a developer to update the HTML.

Progress

  • The site is nearly ready. I've uploaded the site to a development area for the business to look at.

Goals for The Month

I like to have a list planned in case I need it, but I'm guessing I won't have a lot of spare time the next couple weeks. There is a presentation I need to finish up for the Navy Reserve, so that will take priority. Because of this, I also don't plan to spend much time answering questions in the forum this week. I don't like answering a question and then not being able to get back to it for a few days. That's pretty frustrating for the person having trouble. The goal each day is to check for spam in the forums, spend 30 minutes working on freeCodeCamp, and then the rest of the time on my presentation. Once it's complete, then I can go back to my normal schedule.

  • JavaScript Guessing Game (Fixed Number).
    • All I need to do is take a picture of the minifigs in the jar, put it on the page, and add that to my 404 error page. This has been a fun project with a major bonus of getting my son interested in coding.
  • Now Page.
    • I'm going to work on a "Now" page. I had one of these in the past using Objectives and Key Results (OKRs), but it just wasn't working for me and my schedule. The "now" page will be updated quarterly and show what my goals are for that quarter and possibly a list of projects I'd like to work on. Development is a hobby for me, so it's pretty low on the priority scale when it comes to everything else. It's hard for me to set time-based goals for this reason.
  • Aloha from Dad.
    • I really don't need something else to work on, but this is going to be a new site for all my non-code stuff. It's going to be about the lowest priority project I have, but I've wanted to do it for a long time and it's going to take a long time to complete. It's mostly going to be a place for me to write about projects our family does, recipes, travel, Cub Scouts, Navy Reserve, and more. The site will start very basic and grow from there. It will always be a work in progress.
  • "Client" Questionnaire.
    • I have absolutely no desire to be a freelancer. None. I love development and support, but I'm not big on marketing or some of the other things you need to do. I have a number of requests for help with sites from friends, family, and non-profits I support (such as our Fire Department). It would be nice to get something together to help the process move smoothly along. I'm calling this a "client" questionnaire so you'll know what I'm talking about. The purpose of it is to get input from the groups listed above to set priorities when I help them out with a site.
  • Learning.
    • freeCodeCamp. I'll be continuing on with the Applied Responsive Web Design Projects, spending 30 minutes a day.
    • JavaScript. As much as I want to jump in and learn React.js, I want to build a solid foundation with vanilla JavaScript first. I've decided to switch over to the Improve Your JavaScript Language Skills learning course on Lynda.com.

Aloha, a hui hou (until we meet again)!

Week in Review: January 22-28, 2018

Week in Review Header

It was a productive week, despite being busy!  The last couple weeks I've written the week in review right before I post it.  I think I'm going to write it as I go through the week from now on so there isn't as much to do at the last minute.  My aim will be to post the week in review on Sunday each week in the future.


Learning

JavaScript 30

I completed JavaScript 30 a little earlier than I planned since I did several each day to finish it up.  This was a really fun course and I definitely learned a lot!  It was definitely a change of scenery for me with the ES6 syntax, but there wasn't anything too bad.

freeCodeCamp

I didn't spend as much time on freeCodeCamp this week because I went ahead and finished up JavaScript 30.  I finally got to the projects section in Responsive Web Design and  started the Tribute Page.  It took less than 30 minutes to fulfill the user stories and pass the ten tests, but I'm still going to work on it some more.  You can see my FCC Tribute Page – Hawai'i at CodePen.

Gutenberg Development

I also finished Zac Gordon's Gutenberg Development course this week.  I love it and will be going through it again.  Beyond everything I learned, it gave me several ideas of things to try.  This has me even more excited to get started working on my own plugins.

Lynda.com

As I mentioned before, I'm very interested in Gutenberg.  In order to get more involved with the project, I need to learn the languages.  Last week I started the Become a React Developer learning path.  The Gutenberg Development course helped me get familiar with some of the syntax, but I have a long way to go; this is brand new to me.


Projects

JavaScript Guessing Game

GitHub [Project Code]: https://github.com/geoffreyshilling/javascript-guessing-game-fixed-number
CodePen [Live Example]: https://codepen.io/geoffreyshilling/pen/BJGBgY

Purpose

The kids and I love LEGO and we have quite a few Minifigs. I thought it would be fun to have people guess how many I could fit into a Mason jar. Since this number isn't ever going to change, it's not something they would play over and over again. I think my site's 404 error page would make a good home for this reason. That way some people will come across it but

Progress

I spent most of this week on smaller rules to make the game run smoother and look better.  I decided to use Bootstrap for the page in order to get a little more familiar with it.  My initial code game code is now up on GitHub

I was working on the game over the weekend when my son woke up and he wanted to see what I was doing.  He was just as interested in the code on the backend as he was on how the game looked/played.  A future developer??  We'll see!

The game currently has the following features/rules:

  • Allow only numbers to be input.
  • Accept input from the regular number keys and also the number/key pad.
  • Allow the user to enter a guess by clicking the button or pressing enter.
  • Allow a maximum of 5 guesses per game.
  • Allow the user to play again once the game is over.
  • Prevent a user from guessing the same number twice.
  • Limit number of digits per guess to 4. Example: 1234.
  • Set focus to "Play Again" button when game is over.
  • Disable input field when game is over.

The "Store"

Purpose

I'm working on a business website for a family member. The "store" is currently a hard-coded, non-responsive HTML site with images of the business's catalog. The new site is being built with WordPress and WooCommerce. They have no desire to sell online, so this will be more of a showcase of products. The new site will allow the business to add or remove products without having to contact a developer to update the HTML.

Progress

  • Over 600 products have been added.
  • A few tweaks have been done to the design.
  • The shopping cart feature has been turned off.

Goals for This Week

It's going to be a busy week between Cub Scouts, our monthly Fire Department Business meeting (my first as the official Treasurer), and preparing a presentation for our Navy Reserve drill weekend. It's also slightly warmer this week, so I'm hoping to go for a couple runs.

Focus Areas

  • JavaScript Guessing Game (Fixed Number).
    • I'm going through everything one more time and then finish up the documentation.  The game should be completed this week.
  • The "Store."
    • I need to work on the store's logo/header image and the breadcrumb link colors.  There isn't too much left before the site should be ready to go live.
  • Now Page.
    • If I finish up with the other projects, I'm going to work on a "Now" page.  This page will show what my goals are for each quarter and maybe the list of projects I'd like to work on.
  • Learning.
    • Now that I've finished JavaScript 30 and the Gutenberg Development course, I'm going to try to spend at least 30 minutes each day on freeCodeCamp. 
    • I'm still going back and forth about my Lynda.com premium membership.  I thought I was going to cancel it, but now I'm leaning towards letting it expire, but then signing up for it through LinkedIn Learning.
    • I'm going to continue learning about Gutenberg, which means a focus on JavaScript and React.  I'm going to continue on the Become a React Developer learning path on Lynda.com.

Aloha until next week!

Week in Review: January 8-21, 2018

Week in Review Header

As I expected, it was a busy couple of weeks. I sat down and figured out everything I would like to accomplish each week. There is almost 30 hours of development stuff I would like to fit in on top of normal life (family, job, fire department, Cub Scouts, and Navy Reserve). It's tough finding room because development won't come before family, so I'm not willing to just spend more time in the evenings working on it.


Learning

JavaScript 30

I got caught up on JavaScript 30 and am now doing one a day; I'll finish on January 30. My son was watching during part of the unreal webcam fun (day 19) and I think he enjoyed that as much as I did!

freeCodeCamp

I was finally able to get started on the beta (for now) version of freeCodeCamp. It's broken down into various sections, but it starts with Responsive Web Design and progresses from there. I've completed the following items during the last two weeks:

  • Basic HTML and HTML5
  • Basic CSS
  • Applied Visual Design
  • Applied Accessibility
  • Responsive Web Design Principles

Gutenberg Development

I signed up for Zac Gordon's Gutenberg Development course, as much as I know I should have waited until I finish JavaScript 30. I'm really loving Gutenberg and wanted to get started on this. Once I'm done with JavaScript 30, I'm going to shift that time to over to Gutenberg and building my own plugin.  I plan to take the course several times, but I'm currently 64{df82e2773629ceda45604928bb96db4e2c3d4d8bde97209d3a6adb0aa8f8c124} through it the first time around.


Projects

JavaScript Guessing Game

GitHub [Actual Project Code]: https://github.com/geoffreyshilling/javascript-guessing-game-fixed-number
CodePen [Live Example]: https://codepen.io/geoffreyshilling/pen/BJGBgY

Purpose

The kids and I love LEGO and we have quite a few Minifigs. I thought it would be fun to have people guess how many I could fit into a Mason jar. Since this number isn't ever going to change, it's not something they would play over and over again. I think my site's 404 error page would make a good home for this reason. That way some people will come across it but

Progress

I started working on the JavaScript guessing game last week and made good progress.  The game is working, but I need to do some more testing and add more documentation.  It currently has the following rules:

  • Allow only numbers to be input
  • Accept input from the regular number keys and also the number/key pad
  • Allow the user to enter a guess by clicking the button or pressing enter
  • Allow a maximum of 5 guesses per game
  • Allow the user to play again once the game is over
  • Prevent a user from guessing the same number twice

Goals for This Week

It's going to be a busy week between Cub Scouts, our monthly Fire Department Business meeting (my first as the official Treasurer), and preparing a presentation for our Navy Reserve drill weekend. It's also slightly warmer this week, so I'm hoping to go for a couple runs.

Focus Areas

  • JavaScript Guessing Game (Fixed Number).  Finish up the guessing game and get it added on the 404 error page with a photo of the minifigs.  I also want to make sure it follows WordPress coding standards for HTML,CSS, and JavaScript.
  • The "Store." I'm working on a business website for a family member.  The "store" is currently a hard-coded non-responsive HTML site with images of the business's catalog.  The new site is being built with WordPress and WooCommerce.  They have no desire to sell online, so this will be more of a showcase of products.  The new site will allow the business to add or remove products without having to contact a developer to update the HTML.

That's all for now. Aloha until next week!

Week in Review: January 1-7, 2018

Week in Review Header

As I expected, the year is off to a very slow start with my goals. I didn't get make much progress last week, but the next couple weeks should be much better.  Our Navy Reserve junior sailors' evaluations were due this past weekend and those took quite a bit of time.  We also had temperatures around 0, leading to our pipes freezing.  We got them thawed just in time for our furnace to stop working.  Luckily we have a wood stove or else we wouldn't have been able to stay in the house. As of this morning, the living room was about 70 degrees with the rest of the house warming up to around 50.  We had someone look at it on Friday but they couldn't get the part until this week.  They should be out to get things running this afternoon.  The part didn't work so they are going to try something else either tonight or in the morning.

Edit 1/11:  The part for our furnace didn't work, but they figured out the gas valve was bad.  They got it fixed Wednesday morning.  So now we have thawed pipes and heat… Then the floor was wet by our toilet.  That turned into a big job that required ripping out some of the floor.  I won't be doing much learning/development this week and will share the next Week in Review on January 21. 


Learning

JavaScript 30

I only got through 3.5 days of JavaScript 30 but I was happy to get started.  It's been fun and I learned some things.  The CSS + JS Clock from day 2 was a neat little project, but it left one thing out.  When it got to the top of the hour, the hand would spin around counter-clockwise to start over instead of going from 59 seconds to 0 to 1 like you would expect.  I played around and found the following code worked well for fixing this.  If it's the top of the hour, it will remove the transition so the hand doesn't try to go counter-clockwise back to the beginning (1 second).  I repeated the process for minutes and seconds.

if (seconds >= 59) {
    secondHand.style.transform = `rotate(${secondsDegrees-1}deg)`;
    secondHand.style.transition = "none";
} else {
    secondHand.style.transform = `rotate(${secondsDegrees}deg)`;
}

See the Pen JavaScript 30 – JS and CSS Clock by Geoffrey Shilling (@geoffreyshilling) on CodePen.


Podcast Picks of the Week

I listen to way too many podcasts.  This isn't nearly all the podcasts I listen to, but any time I take notes on something, I'm going to share it here.


Goals for This Week

I told you it was a pretty quiet week (in terms of development).  This week I hope to get on track with my schedule and goals and have much more to report on that.

I know fitness isn't directly related to code, but I think you have to have a good balance in life.  Developers spend a lot of time in front of a screen.  For this reason, I may start adding my fitness goals and workouts to the week in review.  I'll also be working on a plugin at some point directly related to that.


That's all for now. Aloha until next week!

Planning for 2018: WordPress Support, JavaScript, and Community

Hand holding a compass in the woods

Happy New Year!  Life only seems to be getting busier as my kids get older and I take on more responsibilities in the Navy Reserve.  I was also voted in as our fire department's treasurer, effective today.  It'd be easy to say I'm busy enough and don't need to add anything else to my plate.  I wish I could do that, but it's not that easy.  I don't plan to ever stop learning; I just need to find a place for it in the schedule.

TL;DR:  Check out my action plans for the year.

I've struggled for the longest time with where to begin learning development. I've been a tinkerer for years, but now it's time to dive into things.  I love working on both the front-end and the back-end.  I've been learning more PHP and got into WordPress plugin development the last couple months.  I even completed my first plugin, Hawaiian Howdy. Although I have a couple other plugins in progress, I'm going to take a step back and put them on hold. I'm a little hesitant to do that because of how much I'm enjoying myself, but this is what I need to do right now.  Those plugins will eventually be rebuilt in JavaScript.

I'm focusing on two major areas and one minor one for 2018. My big goals are to get back into support on the WordPress.org forums and to learn JavaScript. My smaller focus is on community, whether that's online or in person.  By "smaller" I don't mean that it's less important, only that I'll be spending much less time on it than the others. 

WordPress Support

I used to spend quite a bit of time on the WordPress.org Support Forums.  I tried to split my time between there and the WordPress.com forums last year to learn how that platform worked. I simply didn't have time for both. Nothing against WordPress.com of course, but I missed the .org forums and came back in limited capacity.

This year I'm planning to spend at least 30-45 minutes a day in the forums. Some days it can take five minutes to clean up spam and others it can take 30; I love to eat SPAM, but hate spam in the forums.  This amount of time should be long enough to look at support topics instead of only being able to do moderator-type things.

My shift in focus on development will also change how I work on the forums. Instead of looking at everything, I'll be working more on the front-end questions in the forums.

Learn JavaScript, Deeply

I'm a beginner when it comes to JavaScript. I've done some basic work and understand general programming concepts. That comes in useful, but I have to look up most things at this point.

It's going to take more than a year to learn JavaScript deeply, but you have to start somewhere.  I may be shifting my focus but I'm not leaving WordPress.  Morten Rand-Hendriksen gave a great presentation at WordCamp US, Gutenberg and the WordPress of Tomorrow. I really started to see the potential of Gutenberg.  I like where things are headed and I want to be a part of it.

Instead of trying to learn every aspect of WordPress, I'm going to primarily focus on JavaScript. Of course, I still want to have a general idea of how things work.

freeCodeCamp

I’ve spent some time working on freeCodeCamp’s Front End Development certificate last year. I did this while I was trying the #100DaysOfCode challenge, with a goal of coding an hour a day. I made it to day 54. That’s when I realized I was focusing more on reaching that hour of code than actually learning what I was doing.

I’m trying freeCodeCamp again in 2018, but this time I’m slowing way down. I will only move on to the next topic once I completely understand the current one. As I was looking at getting back into it, I realized they are working on a beta version with new certificates. These new certificates include:

  • Responsive Web Design
  • Algorithms and Data Structures
  • Front End Libraries
  • Data Visualization
  • APIs and Microservices
  • Information Security and Quality Assurance

I'm not too concerned with the certificates themselves, but so far this has been a great way to learn. Each certificate should take around 300 hours based on a post on the freeCodeCamp forums. I figure that has me set for the year and covers many of the topics I want to learn.

Community

I'm also adding community into the mix. If you know me, you know I'm a very quiet person.  It's not that I don't like being around people or talking, I just don't talk much.  Unfortunately, this makes it easy to lose touch with people.

I want to do a better job of keeping in touch with people in 2018. I've met a few people at WordCamps and various places that are really nice, but I don't talk much with them outside of the events.

Summary

I know a lot of people have a hard time staying with their goals. My problem isn't keeping them, but finding the time. I've created an action plan for each of my main goals for the year. I also plan to start writing more in 2018, but I'm still figuring out the details on that right now.  As much as I love support and learning, this is only a hobby for me.  That means family events, Navy Reserve duties (including the junior sailors' evaluations that I'm currently working on), and the fire department will take precedence over things on this list. Things can and will come up, but this is a good reference point.

WordPress Support Action Plan

  • Spend 30-45 minutes each day in the forums
    • This can be cleaning up spam posts and/or answering questions
  • Read everything posted in the #Forums Slack channel
    • Time spent in the slack channel will not count towards my time in the forums

Learn JavaScript, Deeply Action Plan

  • Spend one hour each day learning on Lynda.com until my subscription expires in February
    • I have a Lynda.com premium subscription that I'm reluctantly going to let expire at the end of February
      • It's hard for me to justify the cost when this is only a hobby
      • I can always subscribe again in the future if I want and I may do that once I'm done with freeCodeCamp
  • Follow what's going on with Gutenburg and JavaScript within the WordPress community
  • Follow along with the #core-js channel in slack
  • Complete JavaScript 30
  • Start over with the beta version of freeCodeCamp
  • Post my week in review
    • Include how any challenges are going, what I've learned, what had me stumped, and any other useful information I came across the last week
    • Share any useful podcasts from the week

Community Action Plan

  • Spend at least 15 minutes per day reaching out on social media, blogs, or email.
  • Make a conscious effort to keep in touch with friends on a regular basis.