Diving back to frameworks

The other day as I was getting ready to clock out of my shift, I saw a question that really piqued my curiosity. It was a question I had seen before but didn’t really have a definitive answer and part of that was because it dealt with a framework I had read about.

The funny thing about this being that I don’t even recall the name of the framework now. There is a reason I like to know about those and it’s because frameworks are interesting to me. They help others in many different ways in not only building things but learning as well.

Obviously a good example here is WordPress. It has helped a lot of people in learning about PHP as well as CSS, JavaScript and perhaps other things along the way. For me it was learning code in general. Over the years I’ve been lucky enough to work and do things that relate to code. A lot of it being PHP.

The other reason I really wanted to dive back into frameworks is because I do want to see how others create these solutions and want to better understand the problem it does solve. In some cases it really does help the language progress. JavaScript is one example that comes to mind. Without jQuery a lot of the things that currently reside in vanilla JavaScript would not be around.

I don’t know, a big part of me is also a little hesitant since I do want to be doing a lot of other things as well. I still have a project that I never fully finished. I really should too. I think that’s what I’ll be doing over the coming weekend. Just take the entire day to finish building it out.

Editing and creating

I have been using Gutenberg since it was announced. I haven’t honestly typed a lot with it in the last year unfortunately. Again, it has boiled down to time. I haven’t put that time aside to create posts here.

I just haven’t.

I do need to change that and I hope I can pretty soon too. There are so many things I do want to learn along the way. I think the biggest challenge may just very well be in the how.

I have slowly shifted in doing WordPress related things a little and I do feel good about that. It may sound a little strange for some but it is very true. When I began working at Pantheon, I knew there would be a lot of things I would need to learn. Drupal being one. Now, I want to say this because this is exactly how I feel, I like both of them.

They each have their positive and negatives. Each is a tool that can be used and just like any tool it does take time to master it. I am by no means a grand master on either one but I do want to get more familiar and comfortable with each one.

When I created this site it really was to tinker with WordPress and get comfortable with code. I added the tagline, “Life. Code. WordPress,” because that was what I would write about. Life being the first, code second, and WordPress last. Over the years I did a lot of code and WordPress posting and from time to time life events. As much as I would love to be able to have a post every week I just can’t do it. At least not yet.

Hopefully in a few weeks I can share some news and more information as well. For now, I’ll keep drafting things and just publishing when I can.

Too many ideas

Here is the deal, I’ve been reviewing themes for quite some time and I really haven’t made one for myself. I’ve made a child theme for this site but that’s about it. It’s nothing super fancy but I know that I could do more.

The biggest reason at the moment is that I really haven’t been visually inspired.

I have been sidetracked. Not going to lie about it.

There have been other things that I’ve prioritized as well. I will say though when I do finally get enough time I will be grinding away on that side. It really has been great just exploring other things in the mean time.

I think that part of it is also that I haven’t really used this site as much as well. That part has just been sort of neglected for too long. I would love to be able to post more things but I’ve hit a mental block it feels like.

It also has been way too long since I looked at core code to see how things have changed. I may need to do that one of these days to get a better clue on what I really want to be doing as well. I know I have some posts that go over some functions, some hooks, but what I really want to be doing is perhaps a little more than just that.

Themes and plugins are and always will be super interesting to me. I think a lot of it is also that I haven’t really had puzzles I personally want to solve. I need to get on those forums more often and just dig more.

Sigh.

All in time, I guess.

Local woes

This morning I woke up like I usually do around 4:15. Actually got out of bed like ten minutes later. Went to my desktop and when I went to log back in I saw that everything was somewhat reset.

Turns out there was an update that had been run.

Now, I don’t mind those but when things get broken, that’s when I get a little upset. You see when I looked at what programs were running I saw that a few were no longer running. The main two were Sublime Text and Local by Flywheel.

I reopened Local and it asked me to install.

Nope.

Big old pile of nope.

How did this happen?

So I think initially that it upgraded to the latest version. No. That wasn’t it either as it continued to install version 2.4.6 on my computer. Odd in that it wasn’t the latest which I’m currently fine with. So I then look and it turns out the containers are missing.

Fabulous.

All the sites I has on there were now missing.

I’m not angry, I’m just upset now.

Reason being is that those are still there it just can’t find them. So now I have to connect them all.

This will be a fun day.

Breaking things

The other day I decided to try and update all the things on my laptop. Let’s just say it was some fun.

I say that because I am running Ubuntu on my laptop. I changed it so it is always running the latest version. Even for latest releases. When the laptop was running Bionic Beaver I ran the updates and forgot about that so things changed to use Cosmic Cuttlefish and a few of the things broke along the way .

The one that did was Docker. I installed, removed, installed, removed, and nearly gave up. I read a lot and just walked away for a day. Came back to it and read a few other things and was back up and running.

Always a good feeling when you can get things back to working condition after not having paid attention to what you did.

Now granted that was on one of the laptops I have. The other is a Mac Book Pro and I went ahead and updated to the latest OS. Part of me wants to just start over on that one and remove everything so I can install everything from scratch. It will require a lot of time but I know it will be a bit more manageable. And I know it will clear up quite a bit of space as well since I know I haven’t used some things on there and most likely won’t.

Learning other things

It is no surprise to some that I like to read. One of the things I started recently was reading about Python. I want to learn to program in the language because I feel like I need to do this.

For the longest time I wanted to get more into web development. Python is just another tool I want to familiarize myself with. Ruby is another. I understand some of it because I took one small crash course a few years back but that doesn’t mean I’m an expert in it.

Languages fascinate me. Programming languages even more so. Part of that reason is because I like to solve little puzzles, those little mysteries that can happen. That began when I first encountered an error many, many years ago on Windows 95. I wanted to know what it meant. To this day I don’t think I ever figured out why it would crash at a certain point.

Oh well, that’s in the past now.

This year will be full of many readings. Hopefully I can find the time to share a lot of that here.

On JavaScript things

The other day I began what is to be another random project to test things and get more familiar with how the WordPress editor scripts work. Really the editor in general now since a lot of that is now done with JavaScript and the ReactJS library. It also uses Redux and a lot of that now does make more sense to me.

I sill struggle with a few things but I know the more I use it the more it will make sense,

The other reason is so that I can share that on here so others can also learn from it. I know it really has been way too long since I posted any sort of resource or tutorial too. I need to get on that. It’s long overdue.

The hard part has just been finding the time to really look over the code and just randomly testing things on my local setup. I think part of that is also because it has changed a bit since the last time I really did that. Now I’m using an Ubuntu laptop and a Windows desktop. I still use my Apple laptop but not as much as I used to. I really only use that for Netflix and the occasional Amazon movie.

And random online courses or YouTube videos that I watch in order to learn more.

I do not always Git it

I learned Git on my own by reading random answers on StackExchange and other places; some random articles here and there and a lot of that so I can learn how to make branches, revert things, and just plain learn.

Some things have stuck with me more than others but it is partially because I use it more frequently. A good example of those things is branching, committing things, and resetting the staging area. I know I lost a few of my friends on that one since they don’t speak that jargon.

It’s okay.

I was the same for a long time. I’m not going to explain it and there is no need for it in this post because it would take too long. Really it would.

The other day I began to read the documentation on Git. The book they have available to be more exact. I did learn a few new things and actually realized I did know a little than I thought I did. That’s a great feeling. I haven’t felt like that in quite some time.

A very welcome change.

I love to read. I have for quite some time too. Even more when it is things that I know will expand my skill set. I just need to sit down and read more on Git and other things related to the web. I’m going to have to find the time now to read all the things I want to read.

In need of reading things

I love to read random programing books and articles. The other day I read a tweet that recommended some nine books if you were into programming and I felt like I had seen two of those books mentioned when it comes to learning about code.

One of which was Clean Code. I’ve been wanting to read this for the longest time too. One of these days I’ll actually go ahead and purchase it so I can read it. Not sure when that will be but I know I will.

The biggest reason I love reading those is because a lot of the things I have learned I learned on my own. I took it upon myself to not only research but to experiment with it. A great example would be Illustrator. I wanted to learn more about how to use the pen tool so I made a small challenge to myself and drew out the alphabet. I sketched it all out and then used only the pen tool to convert it to digital. 

I learned a lot from that.

It was fun and it was different for me. Part of that reason was I wasn’t fully tied to a deadline but I also was because I did it in my spare time. Once I got that motivation I kept going with it. This is how it has been with reading lately too. I think my personal goal before this year ends is to have purchased one or two of those listed books

If memory serves me right a few of those were:

  • Clean Code
  • Coders at Work: Reflections on the Craft of programming
  • Code Complete: A Practical Handbook of Software Construction
  • The Pragmatic Programmer: From Journeyman to Master

I am determined to get at least one of those books before the end of the year, even if it means a digital copy that could only be read on my phone. Yes, I am willing to go that far to get some knowledge.

There is one other thing I have been doing and it’s helped is that I picked out a few other books that I’m going to be finishing for fun. I am definitely looking forward to finishing these up.

Contact forms are odd

On my site I have two forms. One is just a random one I created and the other is a contact form used for – you guessed it – contacting me. Over time I’ve gotten a few random ones that make me laugh only because of the content they contained.

The ones that really made me laugh were those which mentioned sleep deprivation. I don’t know why those really made me laugh but they did. I think a lot of that was because for a few years I was working two jobs that required me to be sleeping for a few hours at a time.

They were, of course, quickly disregarded. There was one who wanted to write a post on my site about it and that really took the cake. It really was like they don’t read my posts or the form in general because they used WordPress Support as the reason for contacting me.

Life related

On a bit of a side note and I guess very much WordPress related, I will be at WordCamp Sacramento this year as the Volunteer Organizer. Some already knew that and some didn’t. What I haven’t really said to others is that I’m looking to be the lead organizer for next year.

I’m a little nervous and very much scared to take that leap but I think this is something I need to do. Not so much for myself but for our local community.

The other, possibly, random thing is that I began working on a small quilt for my kiddo. I still have to cut up the fabrics and make sure I’ll have enough because I can’t for the life of me decide what pattern to make. I just know I will be using some fabrics he liked the patterns to.

Code related

This week I did a bit of an exercise for WP Rocket and it challenged me a little because I used Vim to edit everything. Yes, I really want to get more comfortable using that. I mainly use Sublime Text but when I can, I use Vim to make changes. A lot of that is because I like using the command line a lot more lately.

The fun part was looking at the code and getting familiar on how all the things worked. What I don’t understand is how I managed to get it all to work without having read any of the documentation. I looked at three files and began to look over the filters and hooks.

I know last week I mentioned reading things on JavaScript and using it to make a quick script. This week it wasn’t so much. I also need to be a little heads down since I want to finish the pull request I began for the Health Check plugin. It reads the .htaccess file and outputs some information for the user. It will only do it if the file is readable because it needs to get the contents and check for WordPress rules.

Core lessons

The last few days were comprised of making things. Random little things that I got a lot of pleasure out of. One of which was a small user script when I am on the support forums.

It’s a reply preview thing. It first was because I just wanted to experiment more with vanilla JavaScript. The more and more I tinkered with it, the more I realized that I actually know more than I thought I did. I spent some time perusing the Mozilla docs and it was fun. It was neat to see those things again.

The first attempt was just a simple live preview underneath the reply textarea.

The next step

It worked. That’s what mattered to me for the time being. Suddenly, I had to think about how it would triggered and what it could and should look like. I’m fine making CSS changes but I only wanted this to work with JavaScript.

A tab? But how to style it?

A button? This seemed a little better for the UI.

So, I went with the button method. I tried to see how other elements also worked and they fared well.

Now, the only other thing I may adjust is the behavior of the other buttons when the preview is enabled but for now I’m happy with it.

Another random thing

I did create one other thing but I think that was more of a last week thing. It’s something I’m using only on GitHub notifications pages but it works for me right now. Most of that can be found in the repo I made. I do have to update it a little because there are a few things I know I missed.

One thing I didn’t take into account was for when you are on the singular project notifications page there is one other type of notification. I originally began with the mindset of only two.

  • Issue notifications
  • Pull request notifications

Each one of those gets one and the third one I hadn’t noticed was the

  • Commit notifications

I adjusted things and it works. Though, now I have to update the repo to reflect that change. I’ll try and get it done over the weekend. I had fun breaking the console when I was making it too. Being able to use ES6 was a super welcome change too. 

const handleClick = ({target}) => {
  // query select all that match.
  const notificationList = 
  target.parentElement.parentElement.querySelectorAll(`.${target.selector}`);

  // toggle the display property for them all.
  notificationList.forEach(function(item) {
    item.style.display = item.style.display === 'none' ? '' : 'none';
  });
}

The snippet shows a few things. It doesn’t check for existence of the only because this is done beforehand. What’s currently in the repo is not the above. I had to modify it because I was repeating a little and it made more sense to do it programmatically. Previously I was using an if/else statement block checking for a string match. Not the greatest if more things were added. I don’t want to be adding another to the already big block:

if (target.id.includes('something')) {
  // run code
} else if (target.id.includes('something-else')) {
  // another block
} else {
  // finally!
}

The one thing that did keep me motivated was seeing it work. I do like to build and make these little things but I think I will always fallback to support though. I added a few more replies to my small list of replies over the week as well.

Current count is around four thousand. I think in the next month I want to increase that. Maybe shoot for five. We’ll see, I guess.

Either that or just post a small series on how to better my JavaScript skills