Category Archives: 2019 Spring class

Faher Elfayez Media

I am starting a new job where I will be working as a consultant. I will be working a set number of days per year, which leaves me with a free day or two a week. I want to create a business site where I promote my work, portfolio, resume, ideas about digital communications, etc. I would use the website to promote my business and book clients.  The audience for this site would be small businesses who are looking for someone to boost their social media and digital platforms. I would like to target the food and restaurant industry but could expand to more industries.

My website is going to have my resume and portfolio on the main page. The top of the website will have drop-downs that will take the site visitor to services, fun facts, advice, and contact information. Every page will include icons to my social media handles.

Where the Rubber Meets the Road

We’re halfway through the semester, and it’s time to start thinking critically about our final projects. This week’s readings (plus the extra time to think thanks to a well-timed spring break) reminded me that the time for thinking abstractly about these new concepts is coming to an end—it will soon be time to put the lessons we’ve learned into action.

I know that I want my final project to be a micro-site for student life and community-building here at SCS. In our final project pitches, we were encouraged to spend more time on the “what,” rather than the “how.” But reading about WordPress child themes has started turning the “how” gears—just a little bit.

Here are my takeaways:

  • The WordPress theme we create can’t just be about changing the site’s appearance; “Good themes improve engagement with your website’s content in addition to being beautiful.” But themes also shouldn’t bear the weight of adding functionality, because when a user changes their theme, they lose access to that functionality. So, then, are good themes just based on good design thinking? What does that look like, and how can you test it?
  • The functionality should instead be borne by plugins, which ensures that a site’s functionality can remain consistent, even if its theme changes. But with so many useful and well designed plugins already in existence, how can we hope to build a new one that would be better/or different from one that’s already been published?
  • I’m most excited about the idea of incorporating metadata and meta boxes into my child theme, because I think it will help alleviate the consistency issues that can arise when a site has multiple users. For example, if the student life page is opened up for student contributions, creating a certain number of required, customized fields will ensure that the content looks and feels exactly the way it should. Since meta boxes can be changed depending on the user, it may also provide increased functionality for “admin” users of the site.
  • Debugging: “Configuring debugging is an essential part of WordPress theme development,” the reading says. This will be critical for us to deploy in order to maintain functionality of our sites. I also anticipate this becoming a source of frustration…

I’m excited and anxious to see how this final project shakes out, and how much I’ll have to compromise between my wish list and what I can realistically create. Remember, self: simple is better.

At 57, He’s Learning to Code. Will it Become His New Career?

Mike Vaughn will be the first person to tell you he isn’t a “real” web developer. But at 57 years old, he’s learning a skill often associated with teams of 20-somethings: how to code.

Vaughn has been around computers for the last 37 years, before the proliferation of personal computers and back when processing was done by one mainframe computer connected to a number of terminals. Back then, his job involved using a low-level assembly language to develop software that ran system mainframes.

Now, he works as the director of professional services for a software company, installing software, teaching clients how to use it, and troubleshooting when things go wrong. He oversees a team of developers who work to develop product updates and improvements. When his job duties expanded to include development, Vaughn saw an opportunity to learn more about the code that makes the software work.

“I really got enthralled with it,” Vaughn said during a recent phone conversation. “I got excited again about the idea of programming. Even though I’ve done so many things with computers—management, consulting, technical work—I’d never really programmed. And it just became so apparent to me that this is really cool.”

In 2016, Vaughn started using FreeCodeCamp.org, a free online learning platform dedicated to teaching people about web development. But self-directed learning can be a challenge, especially when the topic is akin to learning a new series of languages.

“It’s not a natural thing,” Vaughn said. “It’s a very esoteric thing in terms of the language and translating what you’re trying to achieve into that language. You have these errors and you just don’t know why it’s not working, you’re googling everything you need to google.”

JavaScript, especially, has been a sticking point for Vaughn.

“In terms of my progression in web development, it’s been really start-stop,” Vaughn said. “And that’s just because, you know, I get into learning HTML and CSS, and then I get into JavaScript and then I just fall off. And then I pick it back up and fall off.”

But he’s completed small projects—a matching game that functions using a combination HTML, CSS, and JavaScript, for example—and has learned the lessons in persistence and problem-solving that all developers learn in time. Luckily, Vaughn said, the resources available to today’s developers far surpass those that were available early in his career.

“I came from a world in 1982 where you had a library of manuals that you used to look up error codes,” Vaughn said. “There was an internet, but there was no world wide web like we have today. Today, the resources are tremendous. You can just google the error you’re getting.”

Vaughn also recommends learning to use Chrome developer tools early. The console view allows users to inspect the elements of a webpage, which can help them to see how their code is behaving in a test environment.

“And if you still don’t get it,” Vaughn said, “you can always google that. The chances are when you google that exact error, you’re going to be take  to a site called Stack Overflow. Chances are, somebody has already answered that question.”

At work, Vaughn manages a team of software developers—most of them younger than him. Occasionally, he interrupts their work to learn how they’re doing it. He said while they’re all more facile than he is at using their smartphones (Vaughn sticks to phone calls and the occasional picture), there isn’t much of a difference in the ways they approach problems.

“Whether it’s a digital native or a boomer like myself, there’s a mentality of ‘Let’s figure it out, because we can figure it out,’ ” Vaughn said. “We have the tools to come up with a solution or an answer. I think that’s probably a common thread for anybody that is still vibrant in technology—regardless of age.”

Working with his team has also allowed Vaughn to explore whether, as he enters retirement age, he really wants to build a second career as a web or software developer. As of now, he’s focused on building a portfolio that can lead to freelance opportunities.

That means there’s still time for him to become a “real” developer.

“Freelance is a viable way to make an income,” he said. “So if I sold a freelance project where I developed even a simple website for a client, then at that point, I’m a web developer.”

For my final project site

For my final project I will do a personal site; more specifically, a blog-type of site that will have content focus on wine. It will be an informative, yet general and approachable blog that will serve as a place to learn nuances to specific varietals and their profiles.

The main audience for this site will be geared towards younger adults, but not exclusively. This will be made for people who are interested in wine, but don’t know too much and want to learn more.

I want to do this kind of site because I think the voice and style is something that best fits my interests and will be something I could see myself using. This audience is near my wheelhouse and I chose wine because I’ve studied wine before and plan on taking it up once again to hopefully get my Sommelier 1 this summer.

When did we get here?

As I started to dive into the reading materials for week 7, I couldn’t help but reflect on how far we have come in the course. It feels like just yesterday we were learning HTML and CSS, but here we are at week 7 about to put all the pieces together through WordPress!

When I took a glance at the syllabus, I remember seeing WordPress and thinking about how this class was going to be a piece of cake. Man was I wrong! WordPress.org feels a lot more complicated than the WordPress.com that most of us know and love. It looks like this time I will be in charge of fully customizing my site and making it my own. Since I had a lot of trouble setting up the local host and linking the website, I am pretty scared to see how my final project turns out in the end.

I was incredibly overwhelmed while I was reading the WordPress assigned readings because it felt like a lot of information to fully comprehend. Although I know I will have to revisit the WordPress readings, I feel like they were introduced by our instructor for a reason. From reading these excerpts, I think it is incredible how helpful WordPress.org is in creating documentation entry excerpts that assist users in better understanding customization options.

There are a few things I have taken away from this week’s reading and it all starts with there bring three major components to WordPress: core, themes and plug-ins. From these three components, I should not touch the core function because when it updates as a new version, it overwrites core files. Then, I noticed that “plug-ins” came up multiple times in the different WordPress readings. It seems that  plug-ins will give me the customization that I want for our site since everything goes through it. Overall, it sounds like there are a lot of options for designing my site and I have no idea where to start. 🙁

Final Project Pitch [Updated]

What: The SCS Student Life Website will serve as a one-stop-shop for SCS students to learn about professional development events, social activities, or student groups available to them during their time at Georgetown.

Who: All SCS graduate and undergraduate students; non-degree and non-credit students taking courses at SCS. Monitored and moderated by SCS administrative staff.

Why: There is currently no resource designed solely for the student community at SCS. This website will serve as a community-building tool where students can find and communicate with one another, network with alumni, get information on upcoming programs and events, and even launch and manage their own student group pages.

Customizations:

1. Child theme with significant design changes using CSS

2. Simple plug-in to create custom “event” posts

3. Simple plug-in to create custom “job opportunity” posts

4. Contact form

5. Embedded events calendar

6. Custom admin dashboard using WordPress API

Customization Details and Timeline:

  1. Child theme with significant design changes using CSS (TO-DO)
  • What: Using University-approved fonts & colors, edit the style of the child theme so that it is visually appealing and easy to read
  • Why: Brand management will be important for any University-sponsored, student facing site. Making sure the fonts and colors are used appropriately will not only create brand cohesion but ease of use.
  • How: Create a child theme within the htdocs folder and add a .css file featuring at least 10 modifications
  • Timeline: Draft by Sunday, April 7; Final by Sunday, April 14

 

  1. Simple plug-in to create custom “event” posts (TO-DO)
  • What: Posts about events should stand out from blog posts, jobs posts, etc. Create a visually unique “event” post type that features fields such as time, date, place, image, and rsvp link.
  • Why: Events drive student engagement and provide community and professional development opportunities. As events are hosted by many entities within SCS as well as the broader University network, events are often not published in a standard way. This plug-in will standardize all event posts.
  • How: Using the example “reading list” plug-in, develop an “events” plug-in that provides the features listed above.
  • Timeline: Draft by Sunday, April 7; Final by Sunday, April 14

 

  1. Simple plug-in to create custom “job opportunity” posts (TO-DO)
  • What: Posts about job opportunities should stand out from blog posts, jobs posts, etc. Create a visually unique “job opportunity” post type that features fields such as title, employer, application deadline, and link. Possible to include code that automatically removes these posts on a certain date?
  • Why: SCS is a professional school, and programs can provide elite/exclusive job opportunities to students. This is a hallmark of the school, and should be easily accessible to all students.
  • How: Using the example “reading list” plug-in, develop a “job opportunities” plug-in that provides the features listed above.
  • Timeline: Draft by Sunday, April 7; Final by Sunday, April 14

 

  1. Embedded events calendar (TO-DO) [Optional]
  • What: An embedded events calendar that displays event dates, academic deadlines, etc. Styled to match the rest of the site. Possible to add option to add to google calendar? Possible to have this automatically created from the event plug-in?
  • Why: An events calendar will help students visualize important event dates as well as academic due dates.
  • How: Using a pre-existing events plug-in, customize the style
  • Timeline: Draft by Sunday, April 7; Final by Sunday, April 14

 

Time for research: Week of April 1

Writing: April 4-7

Drafts due: April 7

Debugging: April 6-13

Final Live: April 14

Deadlines for local testing: April 14

Deadline for live testing: April 16

Oh, PHP

After a lot of stress that culminated during the past week, this one has been quite refreshing. Even moving away from Codecademy for just a couple of days enabled me to discover different online resources, such as the learn-php.org, where I could study the Hypertext Preprocessor (PHP).

There are many programming languages out there, but the PHP language turned out to be a good skill to acquire. Especially due to the fact that it is widely used by the majority of the web. As I found out, it is useful in creating web pages written in HTML and particularly convenient in the process of creating dynamic content. It is also quite swift and easy to adjust, which makes it a pretty cool resource.

While writing this post I silently count down the days to spring break. Even though I will still have to go to work, having at least one long weekend is a very exciting concept to look forward to. In order to make this time more productive, I will try to get ahead on some of my classes in school. On the academic level, making most of spring break would include reviewing the materials I have covered thus far. I will also go through the lessons from Web Development in order to make sure that I did not miss out on any significant knowledge during the busy school term. I feel like this would provide me with a solid foundation for the final project site that is due in April. Even though it might seem like it is far away from now, I believe that if I were to stop using and studying the languages I have learned so far, it might eventually be hard for me to complete the project to the level I would be satisfied with. On that note, I think that revision is an essential part of this class as well as a skill, which could help me in the future.

PHP

Learning PHP was interesting. I’ll echo a lot of my other classmates in saying I did realize it was a bit repetitive at times. And although I initially thought the work put into executing simple equation solutions was worth far less than the effort, when I take into account the mass production aspect of PHP, I’m more understanding.

The first meaningful tool I acknowledged though the lessons (taking them consecutively) was the strlen function to split strings into a more digestible and readable format.

For the language and technical definitions, I think the single section explaining the basics was helpful in the Objects lesson. Classes define how objects behave (and don’t have data). Objects have data. Members are variables that belong to an object, while methods are functions that belong to an object with access to its members. And constructors are methods that are executed when an object is created.

What I’m still a little fuzzy on is the concept of inheritance and private and public functions. I was able to complete the lesson, but it’s not as clear, getting to the final product without having to walk step-by-step with corrections, as I want it to be.

I’m really interested in seeing other ways PHP is used — both within the realm of this class and out of curiosity for possible future endeavors. Again, the example with the phonebook was an eyeopener as to how mass, large tasks could be done with PHP functions.

I was also wondering why, although PHP includes Javascript, HTML and PHP code, it’s free software. I was dong a bit of research and found certain licensing options, and I also found that earlier this month (Feb. 6) there was a new stable release for version 7.3.2 (not entirely sure what other functionality is involved in the latest version). But why’d the three (I believe) originators of what’s now common use PHP write a general purpose scripting language without having at continuous licensing (or at least a one time purchase) associated with its usage? I presume the more I learn about PHP’s capabilities, the more I’ll know why it could possibly for the pure benefit of fellow programmers not bound by a profit driven model.


I think the most recent lesson was really helpful for tackling areas where we were getting stuck when working the slider. The video recording of the lesson addresses all of my questions, many of which I didn’t know how to ask online.

PHP is friendly to learn

PHP was a lot of fun to learn and I really enjoyed it. I did, however, find the logic behind it a little bit redundant. I had to go over the code multiple times to understand the logic. I ended up copying the code from the top into the exercises most of the time and running it in order to see how it comes out and why. The language is also aesthetically ugly and has a slow speed. Most recently, however, there have been many changes to PHP and a tremendous speed gain. Generally speaking, PHP is an easy language to learn and tutorials are very common and often quite good, so I was not sure why I had a hard time with it.

I was curious to learn why software developers used PHP so I started reading more about it. Many developers like it, but others really do not. The language is mostly used on the server side, so it runs on the web server software. The name PHP initially stood for Personal Home Page and then later it changed to Hypertext Preprocessor.

You can do anything with PHP including blogs, scripts to process data, writing desktop applications, etc. The bottom line with this particular language is that PHP is everywhere, so a lot of extremely popular software is written in using it. WordPress is the biggest example that uses PHP. It is low cost and accepted globally, so you can use it in all website development. It also supports a wide range of databases.

It is important to note that it is super easy to change PHP to HTML. You would simply have to convert .html to .php and tweak the inside of the code a little bit to include <?php and ?> in the body. PHP is definitely evolving in many different ways since it is that widely used. It is becoming more Java-like object-oriented language. The most important language to compare PHP to is JavaScript. In modern development, we need a little bit of JavaScript for client-side development.

I want to take some time to explore WordPress and see how PHP is utilized there. I have never worked with WordPress before so this is a great opportunity to put the two together in order to understand the bigger picture. I am going to start using Drupal more often so I want to see how PHP is used there as well.

 

Making sense of PHP basics

I was nervous about being introduced to the PHP basics after the amount of time it took me to finish the gallery assignment. Another web development ingredient thrown into the mix sounded to me like a disaster in the making. This week I tried to make more sense of the purpose of PHP and I decided to turn to metaphors. The metaphor is, “the website is the restaurant and PHP is the cook who serves up a particular dinner order made from a set of ingredients. HTML is like the food on your plate when it arrives. CSS is like the restaurant decor- the color of the plates, the placement of the lights and table clothes, the quality of the silverware and the outfit of your waiter.” I understand that PHP is a server-scripting language, but wouldn’t that mean that every website requires PHP? With this metaphor in mind for the creation of websites, you can’t have a restaurant without a cook making the food. After learning a little bit about PHP in last week’s class, I feel like it would be helpful for me to reinforce the purpose of PHP with a website and then examine the impact PHP has on that website. This will definitely be one of my questions in tomorrow’s class so stay tuned!

Another thought about PHP is that it seems awfully similar to JavaScript in some aspects. For example, the “$” and for loops. I know there are some web developers that like to do HTML, CSS, and JavaScript on one file, but how do you avoid getting confused between PHP and JavaScript especially as a beginner? Is PHP basically a version of JavaScript, but for back-end purposes? Are there websites that are robust without PHP or does PHP help make the world go round in the web development world?

Is it ever helpful for beginners to understand back-end before front-end?

I found this chart on a website defining the difference between JavaScript and PHP and I thought I’d share to help other students: