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.

Charting a Path for 2018

Planning the Trip on a Map

We're down to the last couple weeks of 2017 and this is my last post for the year. The holidays are a busy time for many people, and our family is no exception.

We have evaluations coming up this week for the junior sailors in our Navy Reserve unit. If it's anything like last time, that'll easily take 20+ hours over the next couple weeks.  This is a big thing because it affects whether or not my sailors get advanced.  That takes precedence over anything I'm doing just for fun, including development and support.

With all of this going on, I decided it would be a perfect time to take a break and reflect on 2017 and start charting my path for 2018. I go back and forth with what to work on and in what order, but I think I'm pretty close to a decision.

I'll write an update for January 1, 2018 once I get things planned. This is not to be confused with a New Year's resolution; I typically don't do those. If I have something I want to do, I start working on it and don't wait for the new year.  Some of the things I'm going to be working on include:

  • Support: I've been doing some support this year, but not nearly as much as I would like.  Although I'm shifting my primary focus to development, I also intend to get more involved with the WordPress.org support forums again. 
  • Development:  I'm going to hit development hard in 2018, but the problem is what to focus on.  I want to learn JavaScript, SASS, and increase my level of HTML and CSS, and PHP.
  • Blogging:  I intend to write on a more regular basis in the coming year.

They're a couple small changes I'm also making to the site, including some tweaks to the structure. My weekly updates will start up again in the new year.

Have a very Merry Christmas and a Happy New Year! I'll see you again on January 1, 2018!

Week in Review: November 20-26, 2017

Week in Review Header

I hope you had a Happy Thanksgiving for those of you that celebrate it! Thanksgiving is always a busy time of year. I work for a publishing company and last week some volunteers went in for a few hours late at night to get the Black Friday/Cyber Monday fliers in the newspaper; it was a three pound paper. Now it's back to regular IT work during the day.


Learning

WordPress/PHP

I'm semi-happy to say I didn't learn much in these first two videos and they were more of a refresher. Nothing against the courses by any means – they are great – but I knew enough prior to taking them I probably could have skipped them. I wanted to complete the entire Become a PHP Developer learning path on Lynda.com and these are part of it.

[Lynda.com] Finished HTML Essential Training by James Williamson.

[Lynda.com] Finished CSS Essential Training 1 by Christina Truong

[Lynda.com] Started JavaScript Essential Training by Morten Rand-Hendriksen

General/Tools

  • [Atom] atom-live-server Package
    This package performs a live reload of your web browser based on the changes you make/save in Atom. I've wanted to look at something like this for a while, but haven't had a chance. I learned about this in Morten Rand-Hendriksen's Lynda.com course, JavaScript Essential Training.

Projects

[Plugin] Hawaiian Howdy

Purpose: Hawaiian Howdy is a simple plugin that changes the "Howdy" text in the admin area to a Hawaiian greeting based on time of day. It can also wish you a Happy Aloha Friday. Both of these are options that can be turned on or off independently.
Progress: Although I didn't quite finish the plugin this week, I came very close. The code itself is done as of yesterday. The last thing I'm working on is the readme file, screenshots, and updating the plugin's page on my site. It took a while for this simple plugin, but I learned a lot. I will probably take a look at this again in the future and do a rebuild using classes/object-oriented programming.
GitHub Repo: https://github.com/geoffreyshilling/hawaiian-howdy


Podcast Pick(s) of the Week

I’m going to start sharing my top pick(s) next week. Between Thanksgiving and everything leading up to it, I missed a lot of podcasts this week.


Goals for This Week

  • [Event] WordCamp US: It's hard to believe it's WordCamp US time again! Even though this year was really busy and I wasn't able to make it to any other WordCamps, I do everything I can to not miss this one. The last two years it's been in Philadelphia, PA. It's in Nashville, TN this year and next year and my wife is even coming with me. I plan to write a post about the experience.
  • [Plugin] Hawaiian Howdy: I'll finish up the readme file, screenshots, and update the plugin's page.
  • [PHP] IZ Ipsum: The code on IZ Ipsum needs cleaned up. Although this is a non-WordPress project, I do want to rewrite the code so it conforms to the WordPress PHP standards.
  • [Website] GeoffreyShilling.com: I plan to make the site restructuring go live on January 1, 2018. I need to continue adding content and writing the text for the different pages. And I still need to take a picture of my mason jar full of mini-figs 🙂
  • [Learning] Lynda.com: This week I should finish up JavaScript Essential Training as part of the Become a PHP Developer learning path. Learning PHP is the next course in the path.

That's all for now. Aloha until next week!
Maybe I'll see you at WordCamp US!

Note: This post was written using Gutenberg.

New Feature: Weekly Progress Report (for November 13-19)

Weekly Progress Report

I’ve been narrowing my focus over the past few months and will continue to do so. The biggest change I’ve made is that I’ve decided to stop working on the #100DaysOfCode challenge just past the halfway point, at day 54.

I started making changes to have the rules fit me and how I was going to do it, and it was really getting pretty far from the initial challenge. And it's not like I need inspiration to keep going – if I have time to work on things, I do.

I was learning a lot, but felt obligated to code each day to get the challenge done. This was coming at the expense of learning why I was doing the things I was or how it actually worked.  That's not what I want.  Although I still have a certain amount of time scheduled each day for projects/development, I’m no longer worried about coding. Some days I’ve been able to code the entire time and others I’ve not written a single line while I learn how something new works. I'll be writing a separate post about why I think #100DaysOfCode is a great idea, but it’s just not for me.

I had written a weekly post in the past as an experiment, but I’m going to try that again with a little different format. Every week I’m going to write about the following items:

  • Projects: I have a number of projects I want to work on, including changing the “Howdy” text to a Hawaiian greeting, something to track my workouts (mostly running) for our Navy Reserve fitness test, a custom review post type for this site, a plugin to track my coffee consumption, and a restructuring of this site to launch January 1st (if not before). Every week I’ll share my progress and link to the code on GitHub, or other applicable location.
  • Learning: I’m a lifelong learner and I won’t ever have enough time to learn everything I would like. With that being said, I generally do some each week, if not every day. I have a premium subscription to Lynda.com and am always working on something there. I’ve also done some work on freeCodeCamp’s Front End Development Certification.
  • Gotchas: Sometimes you hit a wall when you’re working on something. Any time I run into issues I’ll share what happened and how I got around it.
  • Podcast Pick(s) of the Week: I listen to a lot of podcasts on a wide range of topics including WordPress, general development, organization, and productivity. I kept track of how many I listened to a couple weeks ago and it was almost 80. Although I feel many of them are beneficial, I’ll only be sharing my top picks each week.
  • Article Pick(s) of the Week: As with podcasts, I read a lot of articles – mostly about WordPress. I’m going to find the ones I think are interesting.
  • Goals for the next week: This is pretty straightforward; this is what I want to accomplish the following week.

Learning

I've done a lot of learning the past few months.  It's tough because I want to learn so many things.  The biggest thing I've learned recently is to slow down.  I was coding just to code as I worked through #100DaysOfCode even if I wasn't fully understanding what I was doing.  From here on out I'm setting out a learning path that is just as important as the number of lines of code I write.  For now, I'm going to include what Lynda.com courses I'm taking, but I may remove that in the future and just have some key takeaways for the week.

WordPress/PHP

[Learning: Lynda.com] Finished WordPress: Custom Post Types and Taxonomies

[Learning: Lynda.com] Working On:  JavaScript for Web Designers

General/Tools

  • Atom Shortcut
    CTRL+/ comments a block of code
  • I came across Automattic's Git Workflow and I really like their branch naming scheme.  This is the scheme I will be using going forward.
    add/{something} — When you are adding a completely new feature update/{something} — When you are iterating on an existing feature fix/{something} — When you are fixing something broken in a feature try/{something} — When you are trying out an idea and want feedback

Projects

[Plugin] Hawaiian Howdy

Purpose:  Hawaiian Howdy is a simple plugin that changes the "Howdy" text in the admin area to a Hawaiian greeting based on time of day.  It can also wish you a Happy Aloha Friday.  Both of these are options that can be turned on or off independently.
Progress:  I have to finish up the plugin internationalization, change the default information in the readme file, and make sure the rest of the WordPress coding standards are followed.  After that, Hawaiian Howdy should be done.  I already use it on my site and I love the extra touch of Hawai'i it adds.
GitHub Repo:  https://github.com/geoffreyshilling/hawaiian-howdy

[Website] GeoffreyShilling.com

Purpose:  This is an obvious one – it's my website!  I'm going to share weekly updates, reviews, plugins/themes I write, code snippets, and information that I think would help others on the same path as me.  I won't be doing a complete redesign right now, but I am changing how things are laid out.  The changes are planned to go live on January 1st, 2018. 
Progress:  I have a good portion of the work done.  The reviews are going to have their own custom post type and I am working on building that.  The biggest thing I have left is to write the actual content for some of the pages.  I also have to decide if I want to add in things beyond code, such as recipes and fitness tracking.  It would make it a lot easier for me to maintain one site, but that also dilutes the focus of the site.  We'll see.


Podcast Pick(s) of the Week

I’m going to start sharing my top pick(s) next week.


Goals for This Week

  • [Plugin] Hawaiian Howdy:   I should have no problem finishing the Hawaiian Howdy rebuild this week.
  • [PHP] IZ Ipsum:  The code on IZ Ipsum needs cleaned up.  Although this is a non-WordPress project, I also want to rewrite the code so it conforms to the WordPress PHP standards.
  • [Plugin] PRT Tracker:  If I get done with the other projects, I would like to get back into my PRT Tracker.  This is what I'm going to use for tracking my workouts (running, curl-ups, and push-ups) to improve my score on the Navy Reserve fitness test we have every six months.
  • [Learning] Lynda.com:  This week I'll finish up JavaScript for Web Designers and then I'm going to work on the Become a PHP Developer learning path.  I've already taken a couple courses, but will probably take them again as a refresher.

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

Note:  This post was written using Gutenberg.

Important Reset for #100DaysOfCode and WordPress Support

Time to Press the Reset Button

Working in the IT field, pressing the reset button is not uncommon. But most of the time it’s done on physical devices.  This last month has been beyond busy and I’ve decided to hit the reset button on several things in my life; these items include WordPress Support, #100DaysOfCode, and my PRT Challenge.  Here’s a brief summary of the major things that have kept me busy:

  • I attended my two weeks of Navy Reserve annual training (AT). There were several issues, including trouble with both my flight and hotel reservations.
  • After returning to the airport from AT, my car wouldn’t start.  Luckily we managed to get it going with Detroit’s complimentary in-airport service.  The car wouldn’t start at all the next day and had to be taken to the shop.  It turns out there was an electrical issue that caused a small but constant drain on my battery.  This drain also killed my relatively new battery.
  • We got back to town just in time for me to attend the second half of our fire department’s business meeting.
  • I got home Tuesday night from AT and we left early Thursday morning for my wife’s four-day 2017 Thirty-One National Conference.
  • The following weekend was my Navy Reserve drill weekend.
  • This last Thursday I traded in my car for a Jeep Compass.  I’m beyond stoked to be a Jeep owner again!
  • This weekend is my first weekend home in over a month.  Yesterday we had a few hours of fire department training in the morning.  I’m hoping today will consist of plenty of relaxation. It’s always nice to travel, but it’s great to be home and finally get to spend some time with my family.

With all that being said, I haven’t made much progress on #100DaysOfCode in quite a while. I don’t mind missing a day here or there, but I was about a third of the way done and missed a few weeks. That defeats the whole purpose of the #100DaysOfCode challenge. For this reason, I’ve decided to start over, but with some changes. Last time I was focused on PHP/WordPress development. I’m confident in my ability to understand what I need to at this point and to figure out what I don’t yet know. It’s time I learn JavaScript, deeply.

I’ve been working on a new schedule that’s taking affect tomorrow. With this new schedule, I’ll be learning JavaScript five days a week. The other two days will be spent on WordPress/PHP development. I’m going to be working on freeCodeCamp’s Front End Development Certification. There are a couple plugins I want to work on that should help me dive deeper into WordPress. My coffee tracker plugin is one I’m quite excited about.

I’ve also decided to start writing about my progress again. I had started this in the past, but then removed the posts. This will give a good history as I progress and it’ll be fun to look back in the future.

The way I do WordPress support is changing as well. For quite a while now, I’ve been trying to split my time between WordPress.org and WordPress.com. As much as I enjoy this, I don’t have the time for both of these with everything else I’m working on. I have decided to focus on the .org forums starting tomorrow.

My revised goal is to spend one hour a day coding and 30 minutes on the WordPress.org forums. This will be on top of any time spent on moderator tasks. I’m still going to be busy, but at least I won’t feel like I’m spreading myself too thin to make progress on any one thing.

Let’s see how this works.