<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Wordpress</title><link>https://jwheel.org/tags/wordpress/</link><description>Homepage of Justin Wheeler, an Open Source contributor and Free Software advocate from Georgia, USA.</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>Justin Wheeler</managingEditor><lastBuildDate>Fri, 17 Feb 2017 00:00:00 +0000</lastBuildDate><atom:link href="https://jwheel.org/rss/tags/wordpress/index.xml" rel="self" type="application/rss+xml"/><item><title>2016 – My Year in Review</title><link>https://jwheel.org/blog/2017/02/2016-my-year-in-review/</link><pubDate>Fri, 17 Feb 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/02/2016-my-year-in-review/</guid><description><![CDATA[<p>Before looking too far ahead to the future, it&rsquo;s important to spend time to reflect over the past year&rsquo;s events, identify successes and failures, and devise ways to improve. Describing my 2016 is a challenge for me to find the right words for. This post continues a habit I started last year with my <a href="/blog/2016/02/2015-year-review/">2015 Year in Review</a>. One thing I discover nearly every day is that I&rsquo;m always learning new things from various people and circumstances. Even though 2017 is already getting started, I want to reflect back on some of these experiences and opportunities of the past year.</p>

<h2 id="preface">Preface&nbsp;<a class="hanchor" href="#preface" aria-label="Anchor link for: Preface">🔗</a></h2>
<p>When I started writing this in January, I read <a href="https://freenode.net/">freenode</a>&rsquo;s &ldquo;<a href="https://freenode.net/news/2016-is-finally-dead">Happy New Year!</a>&rdquo; announcement. Even though their recollection of the year began as a negative reflection, the freenode team did not fail to find some of the positives of this year as well. The attitude reflected in their blog post is reflective of the attitude of many others today. 2016 has brought more than its share of sadness, fear, and a bleak unknown, but the colors of radiance, happiness, and hope have not faded either. Even though some of us celebrated the end of 2016 and its tragedies, two thoughts stay in my mind.</p>
<p>One, it is fundamentally important for all of us to stay vigilant and aware of what is happening in the world around us. The changing political atmosphere of the world has brought a shroud of unknowing, and the changing of a number does not and will not signify the end of these doubts and fears. 2017 brings its own series of unexpected events. I don&rsquo;t consider this a negative, but in order for it not to become a negative, we must constantly remain active and aware.</p>
<p>Secondly, despite the more bleak moments of this year, there has never been a more important time to embrace the positives of the past year. For every hardship faced, there is an equal and opposite reaction. Love is all around us and sometimes where we least expect it. Spend extra time this new year remembering the things that brought you happiness in the past year. Hold them close, but share that light of happiness with others too. You might not know how much it&rsquo;s needed.</p>

<h2 id="first-year-of-university-complete">First year of university: complete!&nbsp;<a class="hanchor" href="#first-year-of-university-complete" aria-label="Anchor link for: First year of university: complete!">🔗</a></h2>
<p>Many things changed since I decided to pack up my life and go to a school a thousand miles away from my hometown. In May, I officially finished my first year at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, finishing the full year on dean&rsquo;s list. Even though it was only a single year, the changes from my decision to make the move are incomparable. Rochester exposed me to amazing, brilliant people. I&rsquo;m connected to organizations and groups based on my interests like I never imagined. My courses are challenging, but interesting. If there is anything I am appreciative of in 2016, it is for the opportunities that have presented themselves to me in Rochester.</p>

<h4 id="adventures-into-fossmagic">Adventures into FOSS@MAGIC&nbsp;<a class="hanchor" href="#adventures-into-fossmagic" aria-label="Anchor link for: Adventures into FOSS@MAGIC">🔗</a></h4>
<p>
<figure>
  <img src="/blog/2017/02/Group-photo.jpg" alt="On 2016 Dec. 10th, the &ldquo;FOSS Family&rdquo; went to dinner at a local restaurant to celebrate the semester" loading="lazy">
  <figcaption>On 2016 Dec. 10th, the \&#34;FOSS Family\&#34; went to dinner at a local restaurant to celebrate the semester</figcaption>
</figure>
</p>
<p>My involvement with the <a href="http://foss.rit.edu">Free and Open Source Software (FOSS) community at RIT</a> has grown exponentially since I began participating in 2015. I took <a href="https://hfoss-ritjoe.rhcloud.com/">my first course</a> in the FOSS minor, Humanitarian Free and Open Source Software Development in spring 2016. In the following fall 2016 semester, I <a href="https://hfoss16f-ritjoe.rhcloud.com/">became the teaching assistant</a> for the course. I helped show our community&rsquo;s projects <a href="https://opensource.com/education/16/6/imagine-rit">at Imagine RIT</a>. I helped carry the <a href="/blog/2016/11/spigotmc-california-minecon/">RIT FOSS flag in California</a> (more on that later). The FOSS@MAGIC initiative was an influencing factor for my decision to attend RIT and continues to play an impact in my life as a student.</p>
<p>I eagerly look forward to future opportunities for the FOSS projects and initiatives at RIT to grow and expand. Bringing open source into more students&rsquo; hands excites me!</p>

<h4 id="i-3-wic">I &lt;3 WiC&nbsp;<a class="hanchor" href="#i-3-wic" aria-label="Anchor link for: I &lt;3 WiC">🔗</a></h4>
<p>With a new schedule, the fall 2016 semester marked the beginning of my active involvement with the Women in Computing (WiC) program at RIT, as part of the Allies committee. Together with other members of the RIT community, we work together to find issues in our community, discuss them and share experiences, and find ways to grow the WiC mission: to promote the success and advancement of women in their academic and professional careers.</p>
<p><a href="/img/WiCHacks-Opening-Ceremony.jpg">
<figure>
  <img src="/img/WiCHacks-Opening-Ceremony.jpg" alt="WiCHacks 2016 Opening Ceremony" loading="lazy">
</figure>
</a>In spring 2016, I participated as a <a href="/blog/2016/03/why-i-love-wichacks/">volunteer for WiCHacks</a>, the annual <a href="http://wichacks.rit.edu/">all-female hackathon</a> hosted at RIT. My first experience with WiCHacks left me impressed by all the hard work by the organizers and the entire atmosphere and environment of the event. After participating as a volunteer, I knew I wanted to become more involved with the organization. Fortunately, fall 2016 enabled me to become more active and engaged with the community. Even though I will be unable to attend WiCHacks 2017, I hope to help support the event in any way I can.</p>
<p>Also, hey! If you&rsquo;re a female high school or university student in the Rochester area (or willing to do some travel), you should seriously <a href="http://wichacks.rit.edu/">check this out</a>!</p>

<h2 id="google-summer-of-code">Google Summer of Code&nbsp;<a class="hanchor" href="#google-summer-of-code" aria-label="Anchor link for: Google Summer of Code">🔗</a></h2>
<p><a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a>, abbreviated to GSoC, is an annual program run by Google every year. Google works with open source projects to offer stipends for them to pay students to work on projects over the summer. In a last-minute decision to apply, I was <a href="https://communityblog.fedoraproject.org/fedora-google-summer-of-code-2016/">accepted as a contributing student</a> to the Fedora Project. My proposal was to work within the Fedora Infrastructure team to help <a href="https://summerofcode.withgoogle.com/archive/2016/projects/4844704050970624/">automate the WordPress platforms</a> with Ansible. My mentor, <a href="https://patrick.uiterwijk.org/about/">Patrick Uiterwijk</a>, provided much of the motivation for the proposal and worked with me throughout the summer as I began learning Ansible for the first time. Over the course of the summer, my learned knowledge began to turn into practical experience.</p>
<p>It would be unfair for a reflection to count successes but not failures. GSoC was one of the most challenging and stressful activities I&rsquo;ve ever participated in. It was a complete learning experience for me. One area I noted that I needed to improve on was communication. My failing point was not regularly communicating what I was working through or stuck on with my mentor and the rest of the Fedora GSoC community. GSoC taught me the value of asking questions often when you&rsquo;re stuck, especially in an online contribution format.</p>
<p>On the positive side, GSoC helped formally introduce me to Ansible, and to a lesser extent, the value of automation in operations work. My work in GSoC helped enable me to become a sponsored sysadmin of Fedora, where I mostly focus my time contributing to the <a href="https://badges.fedoraproject.org/about">Badges site</a>. Additionally, my experience in GSoC helped me when interviewing for summer internships (also more on this later).</p>
<p>Google Summer of Code came with many ups and downs. But I made it and <a href="/blog/2016/08/gsoc-2016-thats-wrap/">passed the program</a>. I&rsquo;m happy and fortunate to have received this opportunity from the Fedora Project and Google. I learned several valuable lessons that have and will impact going forward into my career. I look forward to participating either as a mentor or organizer for GSoC 2017 with the Fedora Project this year.</p>

<h2 id="flock-2016">Flock 2016&nbsp;<a class="hanchor" href="#flock-2016" aria-label="Anchor link for: Flock 2016">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/02/flock-group-photo-5_28949792761_o.jpg" alt="Group photo of all Flock 2016 attendees outside of the conference venue (Photo courtesy of Joe Brockmeier)" loading="lazy">
  <figcaption>Group photo of all Flock 2016 (<a href="https://flocktofedora.org/" class="bare">https://flocktofedora.org/</a>) attendees outside of the conference venue (Photo courtesy of Joe Brockmeier)</figcaption>
</figure>
</p>
<p>Towards the end of summer, in the beginning of August, I was <a href="/blog/2016/07/czesc-poland-back-europe/">accepted as a speaker</a> to the annual Fedora Project contributor conference, <a href="https://flocktofedora.org/">Flock</a>. As a speaker, my travel and accommodation were sponsored to the event venue in Kraków, Poland.</p>
<p>Months after Flock, I am still incredibly grateful for receiving the opportunity to attend the conference. I am appreciative and thankful to Red Hat for helping cover my costs to attend, which is something I would never be able to do on my own. Outside of the real work and productivity that happened during the conference, I am happy to have mapped names to faces. I met incredible people from all corners of the world and have made new lifelong friends (who I was fortunate to see again in 2017)! Flock introduced me in-person to the diverse and brilliant community behind the Fedora Project. It is an experience that will stay with me forever.</p>
<p>To read a more in-depth analysis of my time in Poland, you can read <a href="/blog/2016/08/fedora-flock-2016/">my full write-up</a> of Flock 2016.</p>
<p>
<figure>
  <img src="/img/IMG_9225.jpg" alt="To Kraków for Flock with Bee, Amita, Jona, and Giannis" loading="lazy">
  <figcaption>On a bus to the Kraków city center with Bee Padalkar, Amita Sharma, Jona Azizaj, and Giannis Konstantinidis (left to right).</figcaption>
</figure>
</p>

<h2 id="maryland-bitcamp-massachusetts-hackmit-california-minecon">Maryland (Bitcamp), Massachusetts (HackMIT), California (MINECON)&nbsp;<a class="hanchor" href="#maryland-bitcamp-massachusetts-hackmit-california-minecon" aria-label="Anchor link for: Maryland (Bitcamp), Massachusetts (HackMIT), California (MINECON)">🔗</a></h2>
<p>
<figure>
  <img src="/img/group-photo.png" alt="Bitcamp 2016: The Fedora Ambassadors of Bitcamp 2016" loading="lazy">
  <figcaption>The Fedora Ambassadors at Bitcamp 2016. Left to right: Chaoyi Zha (cydrobolt), Justin Wheeler (jflory7), Mike DePaulo (mikedep333), Corey Sheldon (linuxmodder)</figcaption>
</figure>
</p>
<p>2016 provided me the opportunity to explore various parts of my country. Throughout the year, I attended various conferences to represent the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>, the <a href="https://www.spigotmc.org/wiki/about-spigot/">SpigotMC project</a>, and the <a href="http://foss.rit.edu">RIT open source</a> community.</p>
<p>There are three distinct events that stand out in my memory. For the first time, I visited the <a href="/blog/2016/04/bitcamp-2016/">University of Maryland for Bitcamp</a> as a Fedora Ambassador. It also provided me an opportunity to see my nation&rsquo;s capitol for the first time. I also visited Boston for the first time this year as well for HackMIT, MIT&rsquo;s annual hackathon event. I also participated as a Fedora Ambassador and <a href="https://communityblog.fedoraproject.org/hackmit-meets-fedora/">met brilliant students</a> from around the country (and even the world, with one student I met flying in from India for the weekend).</p>
<p>
<figure>
  <img src="/blog/2017/02/Team-Ubuntu-2.jpg" alt="Team Ubuntu shows off their project to Charles Profitt before the project deadline for HackMIT 2016" loading="lazy">
  <figcaption>Team Ubuntu shows off their project to Charles Profitt (<a href="https://fedoraproject.org/wiki/User:Cprofitt" class="bare">https://fedoraproject.org/wiki/User:Cprofitt</a>) before the project deadline for HackMIT 2016 (<a href="https://hackmit.org/" class="bare">https://hackmit.org/</a>)</figcaption>
</figure>
</p>
<p>Lastly, I also took my first journey to the US west coast for MINECON 2016, the annual Minecraft convention. <a href="/blog/2016/11/spigotmc-california-minecon/">I attended</a> as a staff member of the SpigotMC project and a representative of the open source community at RIT.</p>
<p>All three of these events have their own event reports to go with them. More info and plenty of pictures are in the full reports.</p>
<ul>
<li><a href="/blog/2016/04/bitcamp-2016/">Going to Bitcamp 2016</a></li>
<li><a href="https://communityblog.fedoraproject.org/hackmit-meets-fedora/">HackMIT meets Fedora</a></li>
<li><a href="/blog/2016/11/spigotmc-california-minecon/">SpigotMC goes to California for MINECON</a></li>
</ul>

<h2 id="vermont-2016-with-matt">Vermont 2016 with Matt&nbsp;<a class="hanchor" href="#vermont-2016-with-matt" aria-label="Anchor link for: Vermont 2016 with Matt">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/02/IMG_8441.jpg" alt="Shortly after I arrived, Matt Coutu took me around to see the sights and find coffee" loading="lazy">
  <figcaption>Shortly after I arrived, Matt took me around to see the sights and find coffee.</figcaption>
</figure>
</p>
<p>Some trips happen without prior arrangements and planning. Sometimes, the best memories are made by not saying no. I remember the phone call with one of my closest friends, Matt Coutu, at some point in October. On a sudden whim, we planned my first visit to Vermont to visit him. Some of the things he told me to expect made me excited to explore Vermont! And then in the pre-dawn hours of November 4th, I made the trek out to Vermont to see him.</p>
<p>
<figure>
  <img src="/blog/2017/02/IMG_8525-e1487263384338.jpg" alt="50 feet up into the air atop Spruce Mountain was colder than we expected" loading="lazy">
  <figcaption>50 feet up into the air atop Spruce Mountain was colder than we expected.</figcaption>
</figure>
</p>
<p>Instantly when crossing over the state border, I knew this was one of the most beautiful states I ever visited. During the weekend, the two of us did things that I think only the two of us would enjoy. We climbed a snowy mountain to reach an abandoned fire watchtower, where we endured a mini blizzard. We walked through a city without a specific destination in mind, but to go wherever the moment took us.</p>
<p>We visited a quiet dirt road that led to a meditation house and cavern maintained by monks, where we meditated and drank in the experience. I wouldn&rsquo;t classify the trip has a high-energy or engaging trip, but for me, it was one of the most enjoyable trips I&rsquo;ve embarked on yet. There are many things that I still hold on to from that weekend for remembering or reflecting back on.</p>
<p>A big shout-out to Matt for always supporting me with everything I do and always being there when we need each other.</p>
<p>
<figure>
  <img src="/blog/2017/02/IMG_8476.jpg" alt="Martin Bridge may not be one of your top places to visit in Vermont, but if you keep going, you&rsquo;ll find a one-of-a-kind view" loading="lazy">
  <figcaption>Martin Bridge may not be one of your top places to visit in Vermont, but if you keep going, you’ll find a one-of-a-kind view.</figcaption>
</figure>
</p>

<h2 id="finally-seeing-nyc-with-nolski">Finally seeing NYC with Nolski&nbsp;<a class="hanchor" href="#finally-seeing-nyc-with-nolski" aria-label="Anchor link for: Finally seeing NYC with Nolski">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/02/Nolski-and-jflory-take-Manhatten.jpg" alt="Mike Nolan and Justin Wheeler venture through New York City early on a Sunday evening" loading="lazy">
  <figcaption>Mike Nolan and I venture through New York City early on a Sunday evening</figcaption>
</figure>
</p>
<p>In no short time after the Vermont trip, I purchased tickets for my favorite band, <a href="http://www.elteneleven.com/">El Ten Eleven</a>, in New York City on November 12th. What turned into a one-day trip to see the band turned into an all-weekend trip to see the band, see New York City, and spend some time catching up with two of my favorite people, <a href="http://nolski.rocks/">Mike Nolan</a> (nolski) and <a href="http://decausemaker.org/">Remy DeCausemaker</a> (decause). During the weekend, I saw the World Trade Center memorial site for the first time, tried some amazing bagels, explored virtual reality in Samsung&rsquo;s HQ, and got an exclusive inside look at the <a href="https://giphy.com/">Giphy</a> office.</p>
<p>This was my third time in New York City, but my first time to explore the city. Another shout-out goes to Mike for letting me crash on his couch and stealing his Sunday to walk through his metaphorical backyard. Hopefully it isn&rsquo;t my last time to visit the city either!</p>

<h2 id="finalizing-study-abroad">Finalizing study abroad&nbsp;<a class="hanchor" href="#finalizing-study-abroad" aria-label="Anchor link for: Finalizing study abroad">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/02/DSC_0029.jpg" alt="This may be cheating since it was taken in 2017, but this is one of my favorite photos from Dubrovnik, Croatia so far" loading="lazy">
  <figcaption>This may be cheating since it was taken in 2017, but this is one of my favorite photos from Dubrovnik, Croatia so far. You can find more like this on my 500px gallery (<a href="https://500px.com/jflory7/galleries/dubrovnik-croatia" class="bare">https://500px.com/jflory7/galleries/dubrovnik-croatia</a>)!</figcaption>
</figure>
</p>
<p>At the end of 2016, I finalized a plan that was more than a year in the making. I applied and was accepted to study abroad at the Rochester Institute of Technology campus in Dubrovnik, Croatia. RIT has a few satellite campuses across the world: two in Croatia (Zagreb and Dubrovnik) and one in Dubai, UAE. In addition to being accepted, the university provided me a grant to further my education abroad. I am fortunate to have received this opportunity and can&rsquo;t wait to spend the next few months of my life in Croatia. I am currently studying in Dubrovnik since January until the end of May.</p>
<p>During my time here, I will be taking 12 credit hours of courses. I am taking ISTE-230 (Introduction to Database and Data Modeling), ENGL-361 (Technical Writing), ENVS-150 (Ecology of the Dalmatian Coast), and lastly, FOOD-161 (Wines of the World). The last one was a fun one that I took for myself to try broadening my experiences while abroad.</p>
<p>Additionally, one of my personal goals for 2017 is to practice my photography skills. During my time abroad, I have created a <a href="https://500px.com/jflory7/galleries/dubrovnik-croatia">gallery on 500px</a> where I upload my top photos from every week. I welcome feedback and opinions about my pictures, and if you have criticism for how I can improve, I&rsquo;d love to hear about it!</p>

<h2 id="accepting-my-first-co-op">Accepting my first co-op&nbsp;<a class="hanchor" href="#accepting-my-first-co-op" aria-label="Anchor link for: Accepting my first co-op">🔗</a></h2>
<p>The last big break that I had in 2016 was accepting my first co-op position. Starting in June, I will be a Production Engineering Intern at <a href="http://jumptrading.com/">Jump Trading, LLC</a>. I started interviewing with Jump Trading in October and even had an on-site interview that brought me to their headquarters in Chicago at the beginning of December. After meeting the people and understanding the culture of the company, I am happy to accept a place at the team. I look forward to learning from some of the best in the industry and hope to contribute to some of the fascinating projects going on there.</p>
<p>From June until late August, I will be starting full-time at their Chicago office. If you are in the area or ever want to say hello, let me know and I&rsquo;d be happy to grab coffee, once I figure out where all the best coffee shops in Chicago are!</p>

<h2 id="in-summary">In summary&nbsp;<a class="hanchor" href="#in-summary" aria-label="Anchor link for: In summary">🔗</a></h2>
<p>2015 felt like a difficult year to follow, but 2016 exceeded my expectations. I acknowledge and I&rsquo;m grateful for the opportunities this year presented to me. Most importantly, I am thankful for the people who have touched my life in a unique way. I met many new people and strengthened my friendships and bonds with many old faces too. All of the great things from the past year would not be possible without the influence, mentorship, guidance, friendship, and comradery these people have given me. My mission is to always pay it forward to others in any way that I can, so that others are able to experience the same opportunities (or better).</p>
<p>2017 is starting off hot and moving quickly, so I hope I can keep up! I can&rsquo;t wait to see what this year brings and hope that I have the chance to meet more amazing people, and also meet many of my old friends again, wherever that may be.</p>
<p>Keep the FOSS flag high.</p>]]></description></item><item><title>GSoC 2016: Moving towards staging</title><link>https://jwheel.org/blog/2016/07/gsoc-2016-moving-towards-staging/</link><pubDate>Fri, 29 Jul 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/07/gsoc-2016-moving-towards-staging/</guid><description><![CDATA[<p>This week wraps up for July and the last period of Google Summer of Code (GSoC 2016) is almost here. As the summer comes to a close, I&rsquo;m working on the last steps for preparing my project for deployment into Fedora&rsquo;s <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/">Ansible infrastructure</a>. Once it checks out in a staging instance, it can make the move to production.</p>

<h2 id="next-steps-for-gsoc-2016">Next steps for GSoC 2016&nbsp;<a class="hanchor" href="#next-steps-for-gsoc-2016" aria-label="Anchor link for: Next steps for GSoC 2016">🔗</a></h2>
<p>My last steps for the project are moving closer to production. Earlier this summer, the best plan of action was to use my development cloud instance for quick, experimental testing. Once a point of stability is reached, it would be tested on a staging instance of the real <a href="https://stg.fedoramagazine.org/">Fedora Magazine</a> or Community Blog. Once reviewed and tested, it would work its way to production for managing future installations and upgrades for any WordPress platform in Fedora.</p>
<p>When the time comes to move it to production, I will file a ticket in the <a href="https://fedorahosted.org/fedora-infrastructure/">Infrastructure Trac</a> with my patch file to the Ansible repository.</p>

<h2 id="one-last-correction">One last correction&nbsp;<a class="hanchor" href="#one-last-correction" aria-label="Anchor link for: One last correction">🔗</a></h2>
<p>One sudden difficulty I&rsquo;ve found is using the <code>synchronize</code> module in my upgrade playbook. Originally, I was copying and replacing the files using the <code>copy</code> module to carry out this, but I found <code>synchronize</code> to offer a better solution, using <code>rsync</code>. However, after switching, I ran into a small error that had me hung up.</p>
<p>When running the upgrade playbook, it would trigger an issue with <code>rsync</code> requiring a TTY session to work as a privileged user. I found a <a href="https://github.com/ansible/ansible/issues/4676">filed bug</a> for this in the Ansible repository. Fixing it required setting a specific flag in the server configuration when using <code>rsync</code>. To avoid doing this, I altered my upgrade playbook to not avoid dependence on a root user for running, and instead using user and group permissions for the <code>wordpress</code> user. I&rsquo;m working through smoothing out a few minor hiccups with the <code>synchronize</code> module during today, mostly dealing with the directory not being found when executing the module, even though it exists.</p>

<h2 id="flock-2016">Flock 2016&nbsp;<a class="hanchor" href="#flock-2016" aria-label="Anchor link for: Flock 2016">🔗</a></h2>
<p>On Sunday, I&rsquo;ll be <a href="/blog/2016/07/czesc-poland-back-europe/">flying out to Poland</a> for <a href="https://flocktofedora.org/">Flock 2016</a>, Fedora&rsquo;s annual contributor conference. During Flock, I&rsquo;ll meet several other Fedora contributors in person, including my mentor. We plan to set up the staging instance either later tonight or during Flock, depending on how time ends up going.</p>
<p>I&rsquo;ll also be delivering a talk and hosting a workshop during the week as well! One of the workshops I&rsquo;m hoping to attend is the <a href="https://flock2016.sched.org/event/76oY/ansible-best-practice-working-session">Ansible best practice working session</a>. I&rsquo;ll be seeing if there&rsquo;s anything I can glean to build into the last week of the project during the workshop.</p>]]></description></item><item><title>GSoC 2016 Weekly Rundown: Documentation and upgrades</title><link>https://jwheel.org/blog/2016/07/gsoc-2016-documentation-upgrades/</link><pubDate>Mon, 18 Jul 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/07/gsoc-2016-documentation-upgrades/</guid><description><![CDATA[<p>This week and the last were busy, but I&rsquo;ve made some more progress towards creating the last, idempotent product for managing WordPress installations in Fedora&rsquo;s Infrastructure for GSoC 2016. The past two weeks had me mostly working on writing the standard operating procedure / documentation for my final product as well as diving more into handling upgrades with WordPress. My primary playbook for installing WordPress is mostly complete, pending <a href="https://serverfault.com/questions/790104/using-external-variables-inside-of-an-ansible-template/790111?noredirect=1#comment999485_790111">one last annoyance</a>.</p>

<h2 id="documentation">Documentation&nbsp;<a class="hanchor" href="#documentation" aria-label="Anchor link for: Documentation">🔗</a></h2>
<p>The first complete draft of my documentation for managing WordPress installations in Fedora&rsquo;s infrastructure is available on my Pagure repository. The guide covers deployment, including upgrades, as well as more notes about working with the playbooks. As my project work begins to finish, the documented procedure is an outline for the final work. It will also be expanded as I close out the project.</p>

<h2 id="installing-new-wordpress-site">Installing new WordPress site&nbsp;<a class="hanchor" href="#installing-new-wordpress-site" aria-label="Anchor link for: Installing new WordPress site">🔗</a></h2>
<p>After testing on my development instance in the Fedora cloud, my playbook is able to successfully install multiple WordPress sites to various hosts (pending <a href="https://serverfault.com/questions/790104/using-external-variables-inside-of-an-ansible-template/">one caveat</a> for automatically setting up MySQL databases). I was able to spin up multiple sites quickly and easily to a point where I was satisfied with how it worked.</p>
<p>A few challenges I faced in this part were figuring out templating the right information into the WordPress configuration file. I was originally going to try using a variable file, but due to the issue of storing private information, I was trying to use external variables. After revisiting the idea with Patrick, I&rsquo;m going to use a variables file with the information for each hypothetical installation. This file will then be stored in the private Ansible repository that holds server and application credentials.</p>
<p>Determining SELinux flags and contexts was also challenging. I had to learn which ones to apply to WordPress for basic functionality to still work (particularly for things like uploading media files to the server and letting WordPress cron work as expected). I&rsquo;m not wholly satisfied with how I implemented it yet, as I want to dig more into setting the contexts with different parts of modules like <code>unarchive</code> and <code>file</code>, if possible.</p>

<h2 id="upgrading-and-master">Upgrading and master&nbsp;<a class="hanchor" href="#upgrading-and-master" aria-label="Anchor link for: Upgrading and master">🔗</a></h2>
<p>The last significant task to handle is writing the playbook for handling upgrades for WordPress installations. There were two options originally available. The first option would be to allow upgrading via the WordPress admin panel. The second option would be writing a playbook to handle the upgrade. We opted for the second method as this will allow the files on the web server to be read-only, which will serve as an extra measure of hardened security.</p>
<p>I hope to have a playbook created in the next week to tackle upgrading an existing WordPress installation to a newer version. This will be the last significant task of my proposal, before I begin taking what I have so far and finding ways to integrate it into Fedora&rsquo;s infrastructure.</p>
<p>One of these smaller but important tasks will be writing a &ldquo;master&rdquo; playbook to orchestrate the entire process of setting up a machine to run it (and referring to the necessary roles). Some of these roles I&rsquo;ll be referring to are the <code>httpd</code> and <code>mariadb</code> roles.</p>

<h2 id="moving-towards-flock">Moving towards Flock&nbsp;<a class="hanchor" href="#moving-towards-flock" aria-label="Anchor link for: Moving towards Flock">🔗</a></h2>
<p>With Flock fast on approach, I&rsquo;m hoping to have the majority of my project work finished and completed before that time frame. Anything past Flock should mostly be tidying up or fully documenting any changes made in the last stretch. This is my target goal at the moment! I&rsquo;m looking forward to being a part of Flock again this year and meeting many members of the Fedora community.</p>]]></description></item><item><title>GSoC 2016 Weekly Rundown: Breaking down WordPress networks</title><link>https://jwheel.org/blog/2016/07/gsoc-2016-wordpress-networks/</link><pubDate>Sat, 02 Jul 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/07/gsoc-2016-wordpress-networks/</guid><description><![CDATA[<p>This week, with an <a href="https://pagure.io/jflory7-ansible/blob/master/f/playbooks/deliverables">initial playbook</a> for creating a WordPress installation created (albeit needing polish), my next focus was to look at the idea of creating a WordPress <a href="https://codex.wordpress.org/Create_A_Network">multi-site network</a>. Creating a multi-site network would offer the benefits of only having to keep up a single base installation, with new sites extending from the same core of WordPress. Before making further refinements to the playbook, I wanted to investigate whether a WordPress network would be the best fit for Fedora.</p>

<h2 id="background-for-fedora">Background for Fedora&nbsp;<a class="hanchor" href="#background-for-fedora" aria-label="Anchor link for: Background for Fedora">🔗</a></h2>
<p>Understanding the background context for how WordPress fits into the needs for Fedora is important. There are two sites powered by WordPress within Fedora: the <a href="https://communityblog.fedoraproject.org/">Community Blog</a> and the <a href="https://fedoramagazine.org/">Fedora Magazine</a>. Each site uses a different domain (<a href="https://communityblog.fedoraproject.org/">communityblog.fedoraproject.org</a> and <a href="https://fedoramagazine.org/">fedoramagazine.org</a>, respectively).</p>
<p>At the moment, there are not any plans to set up or offer a blog-hosting service to contributors (and for good reason). The only two websites that would receive the benefits of a multi-site network would be the Community Blog and the Magazine. For now, the intended scale of expanding WordPress into Fedora is to these two platforms.</p>

<h2 id="setting-up-the-wordpress-network">Setting up the WordPress network&nbsp;<a class="hanchor" href="#setting-up-the-wordpress-network" aria-label="Anchor link for: Setting up the WordPress network">🔗</a></h2>
<p>To test the possibilities of using a network for our needs, I used a development CentOS 7 machine for my project testing purposes. There are some <a href="https://codex.wordpress.org/Before_You_Create_A_Network">guidelines</a> on creating networks for reading first before proceeding. After reading these, it was clear the approach to take was the domain method. I moved to the <a href="https://codex.wordpress.org/Create_A_Network">installation guide</a> on the development machine.<a href="/blog/2016/07/GSoC-2016-Adding-sites-to-WordPress-network.png">
<figure>
  <img src="/blog/2016/07/GSoC-2016-Adding-sites-to-WordPress-network.png" alt="GSoC 2016 - Adding sites to WordPress network" loading="lazy">
</figure>
</a></p>
<p>I wanted to document the process I was following for the multi-site network, so I created a <a href="https://github.com/jflory7/logbook/blob/master/logs/gsoc/notes/multisite.md">short log file</a> of my observations and information I found as I proceeded.</p>
<p>One of the time burners of this section was picking up Apache again. A few years ago, I switched my own personal web servers to <a href="http://nginx.com/">nginx</a> from Apache. Fedora&rsquo;s infrastructure <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/apache">uses Apache</a> for its web servers. It took me a little longer than I had hoped to get familiar with it again, mostly with virtual hosts and SELinux contexts for WordPress media uploads. Despite the extra time it took with Apache, I feel like this will save me time later when I am working on polishing the final deliverable or working with the Apache roles available.</p>
<p>In addition to this, I also picked out the dependencies for WordPress, such as the PHP packages needed and setting up a MariaDB database. After a while, I was able to get the WordPress network established and running on the development machine. It was convenient having a testable interface at my fingertips to work with.</p>

<h2 id="wordpress-network-conclusion">WordPress network: Conclusion?&nbsp;<a class="hanchor" href="#wordpress-network-conclusion" aria-label="Anchor link for: WordPress network: Conclusion?">🔗</a></h2>
<p>At the end of my testing and poking around, it appeared to me that there would not be an <em>easy</em> solution to using a WordPress network for Fedora. The network had the best ability when set up to use wildcard sub-domains, which wouldn&rsquo;t be a plausible solution for us because of the two different domains. There were more manual ways of doing it (i.e. not in the WordPress interface) with Apache virtual hosts. However, I felt like it would be easier to write one playbook that handles a single WordPress installation, and can be run for both sites separately (or new sites).</p>
<p>Given that the factor of scale is two websites, I think maintaining two separate WordPress installations will be the easier method and save time and keep efficiency.</p>

<h2 id="this-weeks-challenges">This week&rsquo;s challenges&nbsp;<a class="hanchor" href="#this-weeks-challenges" aria-label="Anchor link for: This week&rsquo;s challenges">🔗</a></h2>
<p>This week had a late start for me on Wednesday due to traveling on a <a href="https://apps.fedoraproject.org/calendar/meeting/4373/">short vacation</a> with my family from Sunday to Tuesday. Coming back from the trip, I also have a new palette of responsibilities that I am assisting with in <a href="https://fedoraproject.org/wiki/CommOps">Community Operations</a> and <a href="https://fedoraproject.org/wiki/Marketing">Marketing</a>, following <a href="https://lists.fedoraproject.org/archives/list/commops@lists.fedoraproject.org/thread/CG5JS4DQ3G2TVA5YZX7LBOSXVNCUPTIB/">decause&rsquo;s departure</a> from Red Hat. I&rsquo;m still working on finding a healthy balance of time and focus between other important tasks I am responsible for and my project work.</p>
<p>I&rsquo;m hoping that having a full week will allow me to make further progress and continue to overcome some of the challenges that have arisen in the past few weeks.</p>

<h2 id="next-weeks-goals">Next week&rsquo;s goals&nbsp;<a class="hanchor" href="#next-weeks-goals" aria-label="Anchor link for: Next week&rsquo;s goals">🔗</a></h2>
<p>For next week, I&rsquo;m planning on focusing on my existing product and making it feel and run more like a &ldquo;Fedora playbook&rdquo;. I mostly want to work on saving unnecessary effort and being consistent by tapping into the <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles">existing Ansible roles</a> in Fedora Infrastructure. This would make setting up an Apache web server, MySQL database, and a few other tasks more automated. It keeps the tasks and organization in a consistent manner as well since they are across Fedora&rsquo;s infrastructure already.</p>
<p>By next Friday, the plan is to have a more idempotent product that runs effectively and as expected in my development server. Beyond that, the next step would be to work on getting my site into a staging instance.</p>]]></description></item><item><title>WordPress Cron, CloudFlare, and SSL</title><link>https://jwheel.org/blog/2015/12/wordpress-cron-cloudflare-ssl/</link><pubDate>Wed, 16 Dec 2015 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2015/12/wordpress-cron-cloudflare-ssl/</guid><description><![CDATA[<p><em>Edit</em>: I haven&rsquo;t tried this in a while, but this is one of my most popular blog posts. If you try this and it works, please consider leaving a comment and let me know if anything can be improved. Thanks!</p>
<hr>
<p>Thanks to the power of <a href="https://letsencrypt.org/">LetsEncrypt</a>, I recently moved most of my sites over to using HTTPS, or in other words, SSL. I also use <a href="https://www.cloudflare.com/">CloudFlare</a> for managing most of my sites as well. What I wasn&rsquo;t fully aware of was that CloudFlare also limits scripts to increase performance (among other things). This broke WordPress cron, without my knowledge! How does one fix this issue?</p>
<p>
<figure>
  <img src="/blog/2015/12/cloudflare-banner.png" alt="WordPress cron, CloudFlare, and SSL are not always friends" loading="lazy">
  <figcaption>CloudFlare is a service that aims to make websites faster and more secure.</figcaption>
</figure>
</p>

<h2 id="wordpress-cron-scheduling-breaks">WordPress cron scheduling breaks&nbsp;<a class="hanchor" href="#wordpress-cron-scheduling-breaks" aria-label="Anchor link for: WordPress cron scheduling breaks">🔗</a></h2>
<p>Shortly after I transitioned from HTTP to HTTPS, I began noticing that many of my posts began missing their originally scheduled time. This was frustrating, as I often schedule my posts for hours when I am away or asleep, to best reach international audiences. I would wake up the following day to see that my posts failed to go out.</p>
<p>Using the <a href="http://wp-cli.org/">wp-cli utility</a>, I was able to find that my WordPress site&rsquo;s cron functionality was effectively broken. Using <code>wp-cli cron test</code> resulted in the following output:</p>
<pre tabindex="0"><code>Error: WP-Cron spawn failed with error: Cannot communicate securely with peer: no common encryption algorithm(s).
</code></pre><p>Aha! So now I knew what the issue was. Unfortunately, finding hits on Google with similarly worded searches were unsuccessful. I remembered that this was a problem that was recently encountered on the <a href="https://fedoramagazine.org/">Fedora Magazine</a>, so I asked puiterwijk, member of the Fedora Infrastructure team, about what his experience was when he fixed the same issue for the Magazine. However, his answer was completely different than what I thought the problem might be.</p>

<h2 id="fixing-wordpress-cron">Fixing WordPress cron&nbsp;<a class="hanchor" href="#fixing-wordpress-cron" aria-label="Anchor link for: Fixing WordPress cron">🔗</a></h2>
<p>The way to resolve this issue is simple. You need to map your blog&rsquo;s domain or sub-domain on your machine to the loopback address in order for your site to communicate securely with CloudFlare without the script being blocked. To do this, open your favorite text editing utility and edit <code>/etc/hosts</code> on your machine. The file should look something like this.</p>
<pre tabindex="0"><code>127.0.0.1 localhost
127.0.0.1 blog.example.com
</code></pre><p>Once you make this change, it&rsquo;s time to test. You can test whether all is functioning by either using the wp-cli test or using <code>curl</code> to verify the file is not being blocked.</p>
<pre tabindex="0"><code>$ curl -i https://jwfblog.wpenginepowered.com/wp-cron.php
HTTP/1.1 200 OK
Server: nginx/1.6.3
Date: Tue, 08 Dec 2015 01:12:47 GMT
Content-Type: text/html
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.16
</code></pre><p>Alternatively, if you chose to use the wp-cli utility, you should try running the cron test command. Your output should be similar.</p>
<pre tabindex="0"><code>$ wp cron test
Success: WP-Cron spawning is working as expected.
</code></pre><p>Congratulations! Your WordPress cron scheduling is back to normal.</p>

<h6 id="credit">Credit&nbsp;<a class="hanchor" href="#credit" aria-label="Anchor link for: Credit">🔗</a></h6>
<p>All credit for the findings behind this article are thanks to <a href="http://fedoraproject.org/wiki/User:Puiterwijk">puiterwijk</a> from the Fedora Infrastructure team! It would have taken me a longer time to figure this out on my own. If you&rsquo;re in a Fedora IRC channel, you should give Patrick a cookie (<code>puiterwijk++</code>). This guy does so much for Fedora and his dedication is astounding!</p>]]></description></item></channel></rss>