Category Archives: 2017 Summer class

APIs and Building My First Plugin

I had heard of APIs before taking this class, but this week’s readings and videos did a good job of breaking down this complex topic. The kitchen analogy used in the “What is an API?” video was helpful in terms of understanding how an API works as a messenger that communicates user requests and delivers responses back to the user. I recently booked a flight using the online travel service Kayak, and did not think about the fact that Kayak was using airline APIs to find me flights based on the parameters I defined. Kayak accesses the airline APIs and aggregates information from them based on user requests.

I also tried out one of the examples provided in the video about REST APIs. I typed the sample URL into my search bar and tweaked it for my hometown of Mendon, Massachusetts, which resulted in a page written in JSON that allowed me to access the GPS coordinates for my hometown (latitude: 42.1056525, longitude: -71.5522859). I then went to the main Google Maps site and entered these coordinates, and was taken directly to the center of my hometown on the map. I will have to do a bit more research on the topic of APIs in order to more fully understand how the concepts can be applied to WordPress. I imagine that APIs are probably used in a lot of plugins that access data from outside websites, such as those that pull in data from Twitter or Instagram feeds.

I spent this weekend working on the modifications for my WordPress site. As I mentioned in last week’s blog post, I was able to create my child theme and activate it on my local site, but I still have to play around with the fonts and colors of the site. I plan to do that towards the end of my project, once all of my other modifications are complete. One specific question I had regarding editing the styles.css file for my child theme is, how do you edit the fonts if your parent theme uses the Font Awesome toolkit? For example, I tried changing the font for my site header, but it is not working, and I’m thinking it’s due to the fact that my parent theme uses Font Awesome and thus has multiple CSS files. How do I change the fonts in this case? 

I also decided to tackle the custom post type modification by building a custom post type plugin. I was able to write the code for this plugin using these instructions, but ran into a lot of issues on the way to getting it to work. For example, when I tried to activate the plugin from my wp-admin panel on my local site, I kept getting the following error:

Parse error: syntax error, unexpected ” => array(‘ (T_CONSTANT_ENCAPSED_STRING), expecting ‘)’ in /Applications/MAMP/htdocs/finalproject/wp-content/plugins/therunningglover-run-post-plugin/therunningglover-run-post-plugin.php on line 18

I could not for the life of me figure out what the issue on line 18 was, and so back to Google I went. Luckily, the Stack Overflow gods were there to help out, and I figured out that I had forgotten a single quote (‘) on line 18 of my plugin code. I fixed the issue, refreshed the page, and the plugin was activated. However, the custom post type was still not appearing in my admin panel, and so I decided to go back to square one and rewrite my code using the steps listed on the WordPress codex. I got it to work within five minutes. Lesson learned — use the WordPress codex first. I now have a custom post type on my left admin panel called “Run.” Now I’m working on adding a custom metabox called “Run Details” with metadata (custom fields). One question I have is, how do I get my custom post type posts to show up on the home page of my site, rather than just under the Blog page?

This coming week, I want to download a plugin for Strava and see how I can use it to pull in information about my most recent running routes onto the sidebar of my site. When modifying the code of an existing plugin, do we need to create a “child plugin” (if that is such a thing)? I will also attempt to build a lightbox slideshow to display some of my photographs, but may end up using a plugin for this. I’m also planning to load some of my files using the FTP client later this week, to ensure everything is working correctly on my hosted site. I’m feeling a bit overwhelmed at all that I have to do in the next week-and-a-half, and am hoping that I can at least get three quarters of my proposed modifications done before the final project deadline.

Regarding GitHub, should I only be syncing files that I’m coding myself? For example, the plugins that I downloaded and added to my page from WP also synced to my final project GitHub repo. Should I remove the code for these plugins from my final project repo since these are not something I coded myself? If so, what is the best way to do this?

Attempting to Build Custom Form, No Success… Yet

This week I spent a lot of time trying to create a custom form for my site and thus far have not been able to get the form to function properly. One struggle I keep running into is that I update the code in Sublime, but given that it is not showing on my site, I can’t figure out where the errors are or what the right next step would be to fix the plugin. I’m not in total panic mode (yet) as we still have time to research, update, and problem solve, but after reading numerous articles on the topic I will say it is a bit overwhelming to try to understand what the problem is and how to fix it. I think this is partially because, first, as a newbie to the coding world, I really don’t know what the problem is I just know the content is not working. Second, there are many different solutions to a problem with code so when I find one solution, I use that as a jumping off point, but then find myself reading other solutions and recommendations that muddle my code and make it ineffective.

I’m really glad we are spending next class working on our sites, as I will be a lot more productive once I can get through some of these hurdles and on to the next phase of updating my code.

As for the reading, I thought the first video that compared Application Programming Interface (API) to a restaurant, with the waiter (or the API) serving as a ‘messenger’ was a very easy way to explain the program. The other readings, however, were a bit more in depth and lost me. For example, I wasn’t sure what this article meant when it said that “if your website’s server is making the API request, then your website’s server is the client” – isn’t the client the one interacting with your API? Is an API , for example, a separate, private page that hosts the content we acquire from visitors filling out a public form? Or is it more something that visitors interact with directly? Also, is an API something we should build on our own, or more a term/concept to be familiar with, but not necessarily something we would create?

Beginning work on Final Project

We were talking about the readings about API and although it helped us understand how the web works, we’re not exactly sure how it applies to our projects or if we need to add it to them. However, through the readings I was able to understand the purpose of an API and how websites like Facebook and Google are able to get and provide the information and data that they do. The only real thing that I didn’t understand about API was REST API and the JSON aspect.

I have officially began working on my project. Unfortunately there has been a minor setback in that my database is not hooking up on my local server with my folders. Therefore, I am stuck trying to get things to work and worried about erasing my database as a whole. I’m not exactly sure why because it was working the other day in class, and of course when I get together with Jaclyn and Lucy to work on the project now it won’t work.

Back to the project, I am getting nervous that I will not be able to completely understand everything in order to get things done. I need to do some research tonight into WordPress and how to make changes to it.

A few questions that I have are :

  1. If we are adding an HTML element where would we place that code?
  2. If I am making changes to a plug-in, which folder within the folder do I make changes? And with that, do I have to make a plug-in child?
  3. How do I fix my database problem?

Overall I’m hopeful that I will get everything completed but am getting frustrated that things aren’t working in a way that I can even get started, and that the week before our final is due we won’t be able to have hands on help if we truly need it.

Project Management and Final Project Updates

What resonated with me the most this week was stated in the Agile Manifesto:

“Simplicity–the art of maximizing the amount of work not done–is essential.”

I want to be able to continue thinking like this as I approach both the final project and future web/digital projects. I tend to overthink things and get bogged down in the granular tactics instead of focusing on the big picture. I overcomplicate and get frustrated. I have to learn to be flexible, take a step back and look at the project as a whole in order to be as successful as I can be.

The Agile Best Practices video had great concepts that I think can be translated for any managing any project—planning, feedback and testing. For the final project, I will need to create a plan, ask my classmates for feedback and continue testing for the user on the front and back-end.

Updates on the final project: I had SO much trouble getting my site to be hosted on my server on my computer. I did see that it slowed my computer down a little bit, but it was not anything too significant. However, I have not had as much time to go into the code and begin updating it to fit my needs. I’ve begun taking pictures, short video clips, and creating content for the site, since I think that will be the easiest portion of the project. Moving forward, I hope to use a more efficient project management tool to keep me on track of small things I can do every day to alleviate the workload and added stress as we finish up the summer semester. Something I hope to be able to keep in mind is looking beyond the front-end and UX of my site and approach the customizations with a problem-solving lens, as explained in our reading.

Wrapping Up PHP and Reading Up on Project Management

A small update on last week’s PHP assignment because I was still having trouble with it on Wednesday: I think I was finally able to get my basic poll to work and show up correctly in my browser. After doing a bit more Googling, I think my issue had something to do with the way I was naming my files. Once I adjusted the name of my PHP and HTML files both in the code and in the individual file names, the poll ran correctly.

In terms of the readings for this week, I have to say being totally new to project management, it was a little difficult to keep up with our discussion last week. I was still confused about the difference between waterfall and agile methodology. However, the readings — especially the agile manifesto and the best practices video — helped me better understand the agile methodology at least. It kind of seems to me like this is the more popular method since it’s more team-oriented and focused on customer input?

I really enjoyed Jared Spool’s piece on design thinking, particularly the section about design being more than just a way to make things pretty, because that is an issue I’ve found myself having as I’ve begun working on my project. In terms of my project, I’ve been slow to start this week, but I hope to have a child theme created and begin working on a custom post type for my blog before Wednesday. I think I’ve been too caught up in thinking about how to make it look pretty — thinking about which theme is the best looking, what aesthetic I want — rather than remembering I need to be focusing on functionality and the idea, as Spool puts it, that design is about problem-solving and end-to-end solutions. On a less serious note, I also really loved his reference to the stone soup folktale because I’m pretty sure I heard the Russian version as a child. 

Finally, I’m including a link to my WordPress site here once again and want to give a shout out to Victoria for answering my questions about how to set it up last class! Also, here is where the code will show up on GitHub.

And POOF, a New Website is Born

A Life Surfeited

I am super excited to have my website, “A Life Surfeited,” up and running! I must admit, however, that all the steps we took to get there are only slowly beginning to make sense to me. What is GoDaddy.com, what is Google 360, and why do I need them? I get that we bought our domain and hosting privileges through the GoDaddy site, but why do I need login information and a new email address? And now that I have my own live domain and WP account, do we still need the local server and WP site? I’m confused as to which we should be working in. But overall the  process was seamless and to me seemed like magic — a few simple steps and POOF I have my own website!

I have enjoyed playing around with themes and looking through the associated code. It’s given me some ideas of other modules I can manipulate for my final project, like altering the metadata for a comment box to ask commentators to tell me where they live and their favorite place they have traveled to. The “Shh! Don’t Tell Them There’s No Magic In Design Thinking” article was a good piece to read before really jumping in because it gave me pause about trying to “pretty” things up first. The concept of “design thinking” is one I’ve had in my mind before but didn’t know how to verbalize. It makes sense that design should be strategic and part of the brainstorm early on in project development. And I’ve always felt that designing with the user in mind is key. It’s so frustrating to visit a website and nothing is where is intuitively should be, or in fact is hidden. The user experience should be the priority, even if we are talking about a personal blog. I will look to my classmates to give me this type of feedback on my blog and will strive to provide productive and useful commentary about my experience of their site.

This week’s reading on GitHub Features, as well as last week’s in class lessons around project management, really helped me get a better grasp on how the features and tool in GitHub flow together. And how they are there to help guide me and my project to fruition. I’ve already set up my Notes to track my progress and am looking forward in a couple weeks to going in and offering feedback on my classmates work via Commits. Also, with GitHub’s powerful ability to host code, I now better understand why the developer I interviewed, Jamie, said he browses GitHub code repos to stay up-to-date on new and fresh things happening in the programming world.

I am out of town for work this week and haven’t had as much time as I hoped to get my project going. But I plan to spend all weekend next weekend making some real good progress.

Until next week, cheers and laissez les bon temps roulez (as they say here in New Orleans!),

Jane

Project Management and Final Project Details

Balancing work, school and other projects can be challenging and learning web development is no easy feat. It is definitely a full-time job! I’ve installed my WordPress folder and have been playing around with some ideas for my website, but I need get going on it more. Right now, I’m at a slow start since I’m honestly afraid of building it, but I know once I get more familiar with it, it will get easier. Like I said, I’m excited about building a website that is user-friendly and exciting for our clients since I am very passionate about what I do!

I know nothing about project management. During my senior year of college, I had an interview for a project management position that I was scared about. I always thought it was for technical people only (and I do not consider myself that technical), but at the end of the day, project management is just problem-solving, which is a skill we all need.

The principles behind the Agile Manifesto were helpful. Some of the principles that resonated with me were: “Our highest priority is to satisfy the customer through early and continuous delivery of valuable software,” and “Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done.”

As a creative person, my favorite article was the Design Thinking article. I enjoyed how they emphasized how design is way more than “making things pretty.” One quote that stuck out to me was: “It’s important to bring design into a project early, before the team settles on a solution, so they can truly explore the needs of the users.” I love that the article emphasizes user-friendliness. The essence of technology is that it makes everything easy for a user. Ultimately, that is what makes a great tool. I strive to create a website that will be engaging and creative for our clients.

Another quote that stuck out to me was: “It changes the conversation. When you add ‘thinking’ to the word ‘design, it’s no longer about color or decoration. It’s now about process. It’s about getting to a more intentional outcome.” Overall, it was great insight.

Now, I will chip away at installing themes for the WMG Podcasters!

Coding, APIs, and Trudging Through

Thank God for YouTube. Out of all four of the readings and videos, the “What is an API” one was the clearest and most helpful. It was also a little funny. I like the idea of data being carried by a waiter on a platter to and from the “kitchen”. Although I do not think I will use one for this project they do seem useful. I like the idea of incorporating something like Google Calendar into the site. How this will work and whether or not I will be able to adapt some the code are two different questions entirely. I would like to add something like a map and pin drop, which you mentioned we could do with a plugin, and the calendar attached to a form. Again, the next few weeks will determine whether or not these things happen.

[youtube https://www.youtube.com/watch?v=s7wmiS2mSXY]

Now for a little bit on the final.

I have finally chosen a parent theme. I’ll be using a cinema graph, an idea I got from Molly, where a still image is layered over a few milliseconds of video. I want the site to be dynamic and engaging. However, I will be using a regular WordPress theme. I will just be adding the cinema graph as the header image. It will not be scrolling, since running the server on my computer has already slowed my computer down a lot. If I change this in the code, it will be on of the last things I do.

I am still playing with the other planned features. I know I have not created the GitHub repository, yes, but I will. I just want to play with the code a little more before putting it up there. I want to have something a little more substantial that I do now. Don’t worry it will be there soon!

Project Management

When I was contemplating what to create on my site, and choose for my final project I began thinking first of what code I could realistically change in order to change the WordPress platform. I was having a hard time even thinking of how this could be done. Since I missed the week on WordPress, I was a little bit lost. Thankfully after last class, I understand now that you go into WordPress and actually work from their code to in order to change it. I hadn’t fully grasped that concept and still thought we were writing all of the code and creating our own website for some reason.

This week’s reading have been very helpful and insightful. After I figured out which project I wanted to do, and then learning the proper format to do it, I started thinking about where to begin. I felt overwhelmed and wasn’t exactly sure what should come first, second, etc.

Thankfully, this week’s readings were helpful. I still haven’t really understood all of GitHub’s quirks and abilities, but the reading on GitHub’s site on features for collaboration were extremely helpful on how to think about starting. I was able to kind of get the gist of how you can seamlessly review and add to your code. However, once I go to my site I always get very confused. So I might need to come in early (if work allows) and truly go over how to correctly work with and post to my GitHub account. Right now, it shows a very confusing screen when I try to add anything, so I think I do need to go over that again.

I found the article called Shh! Don’t Tell Them There’s No Magic in Design Thinking particularly intriguing when they began talking about how you need to think about design first in order to fully understand what you will need to do in order to create that design and its features.

 

First Week of Coding My Personal Site

This week was the first time I started work on my personal site and I have to say, it was fun! It took many hours, and I have yet to see any serious progress, but the act of collecting my materials, selecting my website template, layout the basic building blocks of the site, beginning to research my code additions, and taking a first step at coding a slideshow, were all exciting endeavors.

When I first began my work this week, I was unsure where to start, so I began with our readings, which I think was an excellent first step. Specifically, the story about the stone soup helped me to realize that I was my job to see the big and solve problems one step at a time, as opposed to getting caught up in the ‘magic’ (and overwhelming nature) of WordPress. I also thought it was helpful to hear the authors insights on “design thinking” because I think this is something I was struggling with internally. When we spoke last week, you mentioned that we should not focus so much on ‘design’ at this stage of the game and more on process. After reading Shh! Don’t Tell Them There’s No Magic In Design Thinking I realized that you meant don’t focus on the pretty buttons and colors that will make our site visually pretty, but do focus on the design layout and practical reasoning for design that will make the site function. This helped me organize my thoughts and led me to my first step in the creation process.

I selected my WordPress template and narrowed down the two tabs I will use on my site, ‘Recipes’ and ‘Request a Recipe!’. Then, I choose the recipes and pictures I would use for my site and got those organized into posts so I could see the basic functionality – the home page will host all of the recipes as ‘posts’ each with an individualize slideshow and recipe instructions and the Request a Recipe! page will house the personalized form for visitors to fill out. I think began trying to code the slideshow feature and, I believe I made some progress as I got the slideshow management function added to WordPress, but have not yet figured out how to make the Widget fully functional.

Regardless – I enjoyed working on the code and enjoyed seeing little wins each time I got my code to sync correctly with the WordPress software, so I’m excited to continue my work!