<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Gsoc</title><link>https://jwheel.org/tags/gsoc/</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/gsoc/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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="https://jwfblog.wpenginepowered.com/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>How Minecraft got me involved in the open source community</title><link>https://jwheel.org/blog/2016/10/minecraft-involved-open-source-community/</link><pubDate>Mon, 10 Oct 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/10/minecraft-involved-open-source-community/</guid><description><![CDATA[<p><a href="https://opensource.com/life/16/10/my-open-source-story-justin-flory"><em>This post was originally published on OpenSource.com.</em></a></p>
<hr>
<p>When people first think of &ldquo;open source&rdquo;, their mind probably first goes to code. Something technical that requires an intermediate understanding of computers or programming languages. But open source is a broad concept that goes beyond only binary bits and bytes. Open source projects hold great regard for community participation. The community is a fundamental piece of a successful open source project. For my experience getting involved with open source, I began in the community and worked my way around from there. At the age of fifteen, I was beginning my open source journey and I didn&rsquo;t even know it.</p>

<h2 id="gaming-introduces-open-source">Gaming introduces open source&nbsp;<a class="hanchor" href="#gaming-introduces-open-source" aria-label="Anchor link for: Gaming introduces open source">🔗</a></h2>
<p>One of my strongest memories of a &ldquo;gaming addiction&rdquo; was when I was fifteen and a younger cousin introduced me to the game Minecraft. The game was in beta then, but I remember the sandbox-style of the game entertaining the two of us for hours. But what I discovered was that playing the game alone became boring. Playing and mining with others made the experience more fun and meaningful. In order to do this, I learned I would have to host a server for my friends to connect to play with me.</p>
<p>I originally used the &ldquo;vanilla&rdquo; Minecraft server software at first, but it was limited to what it could do, and didn&rsquo;t compare to other multiplayer servers in existence. They all seemed to be using something that offered more, so players could play games, cast spells, or do other unique things that would normally not be possible in the game. After digging, I discovered <a href="https://bukkit.org/">Bukkit</a>, an open source Minecraft server software with an extensible API to let developers change the multiplayer experience. I soon became wrapped up with Bukkit like a child with a new toy. Except this toy had me digging through my computer to set up &ldquo;port forwarding&rdquo;, &ldquo;setting NAT records&rdquo;, and &ldquo;creating static IP addresses&rdquo;. I was teaching myself the basics of computer networking in the guise of creating a game server for my friends.</p>
<p>Over time, my Minecraft server hobby began to take up more and more time. More people began playing on my server and I began searching for ways to improve the performance of my server. After doing some digging, I discovered the <a href="https://www.spigotmc.org/">SpigotMC project</a>, shortened to just Spigot. Spigot was a <em>fork</em> of the Bukkit project that made specific enhancements to performance. After trialing it on my server, I discovered the performance gains were measurable and I would commit to using Spigot from then on.</p>

<h2 id="participating-in-spigotmc">Participating in SpigotMC&nbsp;<a class="hanchor" href="#participating-in-spigotmc" aria-label="Anchor link for: Participating in SpigotMC">🔗</a></h2>
<p>Before long, I began running into new challenges with managing my Minecraft server community, whether it was finding ways to scale or finding the best ways to build a community up. In October 2013, I registered an account on the Spigot forums to talk with other server owners and seek advice on ways I could improve. I found the community welcoming and accepting to helping me learn and improve. Several people in the community were owners of larger servers or developers of unique plugins to Spigot. In response to my detailed inquisitions, they responded with genuine and helpful feedback and support. Within a week, I was already in love with the people and helpfulness of the Spigot community.</p>
<p>I became an active participant in the forum community in Spigot. Through the project, I was <a href="https://fedoramagazine.org/beginners-guide-irc/">introduced to IRC</a> and how to use it for communicating with other server owners and developers. What I didn&rsquo;t realize was a trend in my behavior. Over time, I began shifting away from asking all the questions. Almost as if in a role reversal, I became the one answering questions and helping support other new server owners or developers. I became the one in an advisory role instead of the one always asking.</p>
<p>
<figure>
  <img src="/img/Spigot-Team.jpg" alt="SpigotMC team at annual Minecraft convention, MINECON, in 2015" loading="lazy">
  <figcaption>SpigotMC (<a href="https://www.spigotmc.org" class="bare">https://www.spigotmc.org</a>) team at annual Minecraft convention, MINECON, in 2015</figcaption>
</figure>
</p>
<p>In April 2014, the project lead of Spigot reached out to me asking if I would consider a role as a community staff member. Part of my responsibilities would be responding to reports, encouraging a helpful and friendly community, and maintaining the atmosphere of the community. With as much prestige and honor as my sixteen-year-old self could muster, I accepted and began serving as a community moderator. I remember feeling privileged to serve the position – I would finally get to help the community that had done so much to help me.</p>

<h2 id="expanding-the-open-source-horizon">Expanding the open source horizon&nbsp;<a class="hanchor" href="#expanding-the-open-source-horizon" aria-label="Anchor link for: Expanding the open source horizon">🔗</a></h2>
<p>Through 2014 and 2015, I actively served as a moderator of the community, both in the forums and the IRC network for Spigot. I remained in the Spigot community as the project steadily grew. It was incredible to see how the project was attracting more and more users.</p>
<p>However, my open source journey did not end there. After receiving my high school diploma in May 2015, I had set my sights on the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, a school I noted as having the country&rsquo;s only <a href="https://www.rit.edu/news/story.php?id=50590">Free and Open Source Software minor</a>. By coincidence, I also noticed that my preferred Linux distribution, Fedora, was holding its annual contributor <a href="https://fedoramagazine.org/flock-2015-rochester-institute-of-technology/">conference in Rochester</a>, a week before I would move in for classes. I decided I would make the move up early to see what it was all about.</p>

<h2 id="flock-2015-introduces-fedora">Flock 2015 introduces Fedora&nbsp;<a class="hanchor" href="#flock-2015-introduces-fedora" aria-label="Anchor link for: Flock 2015 introduces Fedora">🔗</a></h2>
<p>The summer passed, and before I knew I was ready, I was packing up from my home outside of Atlanta, Georgia to leave for Rochester, New York. After fourteen hours of driving, I finally arrived and began moving into my new home. A day after I arrived, <a href="https://flocktofedora.org/">Flock</a> was slated to begin, marking my first journey in Rochester.</p>
<p>
<figure>
  <img src="/img/Flock-2015-Strong-Museum-of-Play.jpg" alt="Group photo of Fedora Flock 2015 attendees at the Strong Museum of Play" loading="lazy">
  <figcaption>Group photo of Fedora Flock (<a href="https://flocktofedora.org/" class="bare">https://flocktofedora.org/</a>) 2015 attendees at the Strong Museum of Play (<a href="http://www.museumofplay.org/" class="bare">http://www.museumofplay.org/</a>)</figcaption>
</figure>
</p>
<p>At Flock, I entered as an outsider. I was in an unfamiliar city with unfamiliar people and an open source project I was only mildly familiar with. It was all new to me. But during that week, I discovered a community of people who were united around four common ideals. Freedom, Friends, Features, First: the <a href="https://fedoraproject.org/wiki/Foundations">Four Foundations</a> of the Fedora Project were made clear to me. The community members at Flock worked passionately towards advancing their project during the talks and workshops. And after the talks finished, they gathered together for hallway discussions, sharing drinks, and enjoying the presence of their (usually) internationally dispersed team. Without having ever attended a Fedora event before, I knew that the Four Foundations and the community behind Fedora were the real deal. Leaving Flock that year, I vowed to pursue becoming a part of this incredible community.</p>

<h2 id="pen-to-paper-keyboard-to-post">Pen to paper, keyboard to post&nbsp;<a class="hanchor" href="#pen-to-paper-keyboard-to-post" aria-label="Anchor link for: Pen to paper, keyboard to post">🔗</a></h2>
<p>The first major step I took towards contributing to the Fedora Project was in September 2015, during <a href="http://www.softwarefreedomday.org/">Software Freedom Day</a>. Then Fedora Community Action and Impact Coordinator <a href="http://decausemaker.org/">Remy DeCausemaker</a> was in attendance <a href="https://fedoraproject.org/wiki/Softwarefreedomday/2015">representing Fedora</a>. During the event, I reached out to the <a href="https://fedoramagazine.org/">Fedora Magazine</a> editorial team asking to become involved as a writer. By the end of September, I penned my first article for the Fedora Magazine, tying in my experience in the Spigot community to Fedora: <a href="https://fedoramagazine.org/run-a-minecraft-server-using-spigot/">run a Minecraft server using Spigot</a>.</p>
<p>My first step getting involved with the Fedora community was an exciting one. I remember feeling proud and excited to see my first article published on the front page, not only helping Fedora, but also helping Spigot. I realized then that it was relatively straightforward to contribute this kind of content, and I would keep writing about software I was familiar with for the Magazine.</p>
<p>As I continued writing posts for the Fedora Magazine, I became aware of another team forming up in Fedora: the <a href="https://fedoraproject.org/wiki/CommOps">Community Operations</a>, or CommOps, team. I subscribed to their mailing list, joined the IRC channel, and attended the first meetings. Over time, I became wrapped up and involved with the community efforts within Fedora. I slowly found one thing leading to another.</p>
<p>Today in Fedora, I am the leading member of the Community Operations (CommOps) team, the editor-in-chief of the Fedora Magazine, a Marketing team member, an Ambassador of North America, a leading member of the Diversity Team, and a few other things.</p>

<h2 id="advice-for-other-students">Advice for other students&nbsp;<a class="hanchor" href="#advice-for-other-students" aria-label="Anchor link for: Advice for other students">🔗</a></h2>
<p>When you&rsquo;re first getting started, it can sometimes be tough and a little confusing. As students getting involved with FOSS, there are a few challenges that we might have to face. A lot of this can be with making the first steps into a new project. There are countless open source projects of various sizes and they all do things a bit differently from others, so the process changes from project to project.</p>
<p>One of the most obvious challenges with getting involved is your personal experience level. Especially when getting started, it can be easy to look at a large project or well-known project and see all the work devoted there. There are smart and active people working on these projects, and many times their contributions are quite impressive! One of the many concerns I&rsquo;ve seen other students here face (including myself at first) is wondering how someone with beginning to moderate experience or knowledge can get involved, in comparison to some of these contributions from active contributors. If it&rsquo;s a large project, like Fedora, it can be intimidating to think where to start when there&rsquo;s so many things to do and areas to get involved with. But if you think of it all as one big project, it is intimidating and difficult for you to make that first step.</p>
<p>Break a bigger project into smaller pieces. Start small and look for something you can help with. A healthy open source project usually will have things like easyfix bugs that are good ones to start with if it&rsquo;s your first time contributing. Keep an eye out for those if you&rsquo;re getting started.</p>
<p>Another challenge you might face as a student or beginner to open source is something called <a href="https://opensource.com/life/15/8/interview-major-hayden-rackspace">imposter syndrome</a>. For me, this was something I had identified with before I knew what it was. For a definition, I&rsquo;ll pull straight from <a href="https://en.wikipedia.org/wiki/Impostor_syndrome">Wikipedia</a> first: &quot; Term referring to high-achieving individuals marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a &ldquo;fraud&rdquo;.</p>
<p>Imposter syndrome can be a common feeling as you get involved with open source, especially if comparing yourself to some of those active and smart contributors that you meet as you become involved. But you should also remember you are a student – comparing yourself or your contributions to a professional or someone with years of experience isn&rsquo;t fair to yourself! It&rsquo;s not apple-to-apples. Your contributions as you get involved with open source are worthy and valuable to an open source project regardless of how deep, how many, or how much time you spend on the project. Even if it&rsquo;s a couple of hours in the week, that&rsquo;s saving others those couple of hours and it&rsquo;s adding something into the project. A contribution is a contribution – it&rsquo;s a bad idea to rate the worth of contributions to other contributions.</p>
<p>Those are some of the challenges that are useful to know and understand as you become more involved with FOSS. If you know the challenges you are up against, it makes it easier to handle them as they come.</p>
<p>There are also benefits to contributing to open source as a student as well. Contributing to open source is a great way for you to take knowledge and info you have learned from classes and begin applying it to real-world projects and gain experience. It&rsquo;s one thing to take you to the next level as a student. If you are contributing to a project in the real world, that is unique experience that is helpful for you for future career outlooks as well.</p>
<p>It&rsquo;s also a great networking opportunity. In open source, you meet many incredible and smart people. In my time in Fedora, I&rsquo;ve met many contributors and had various mentors help me get involved. I&rsquo;ve made new friends and met people who I normally would never have had the opportunity to meet.</p>
<p>
<figure>
  <img src="/blog/2016/10/IMG_9336.jpg" alt="River boat cruise dinner with Fedora friends at Flock 2016" loading="lazy">
  <figcaption>River boat cruise dinner with Fedora friends at Flock 2016</figcaption>
</figure>
</p>
<p>There are also opportunities for leadership in open source projects. Whether it&rsquo;s just one task, one bug, or even a role, you might find that sometimes all it takes is someone willing to say, &ldquo;I&rsquo;ll do this!&rdquo; to have leadership on something. It might be challenging or difficult at first, but it&rsquo;s a great way for you to understand working in team environments, how to work effectively even if you&rsquo;re remote, and how to break down a task and work on finding solutions for complex problems.</p>
<p>Lastly, it&rsquo;s important for younger people to become more involved with open source communities. As students and younger community members, we add unique perspective and ideas to open source projects. It&rsquo;s important to a healthy community for an open source project and any open source project worth contributing to should be welcoming and accepting to students who are willing to spend time working on the project and helping solve those problems, whether they&rsquo;re bugs, tasks, or other things. In short, there is absolutely a role for students getting involved with open source!</p>]]></description></item><item><title>GSoC 2016: That's a wrap!</title><link>https://jwheel.org/blog/2016/08/gsoc-2016-thats-wrap/</link><pubDate>Sun, 21 Aug 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/08/gsoc-2016-thats-wrap/</guid><description><![CDATA[<p>Tomorrow, August 22, 2016, marks the end of the <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a> 2016 program. This year, I participated as a student for the Fedora Project working on my proposal, &ldquo;<a href="https://summerofcode.withgoogle.com/archive/2016/projects/4844704050970624/"><em>Ansible and the Community (or automation improving innovation)</em></a>&rdquo;. You can read my <a href="https://fedoraproject.org/wiki/GSOC_2016/Student_Application_jflory7">original project proposal</a> on the Fedora wiki. Over the summer, I spent time learning more about <a href="https://www.ansible.com/">Ansible</a>, applying the knowledge to real-world applications, and then taking that experience and writing my final deliverable. The last deliverable items, closing plans, and thoughts on the journey are detailed as follows.</p>

<h2 id="deliverable-items">Deliverable items&nbsp;<a class="hanchor" href="#deliverable-items" aria-label="Anchor link for: Deliverable items">🔗</a></h2>
<p>The last deliverable items from my project are two (2) git patches, one (1) git repository, and seven (7) blog posts (including this one).</p>
<ul>
<li>Git patches (<a href="https://jflory7.fedorapeople.org/pub/gsoc/2016/patches/0001-Add-role-and-playbooks-for-installing-and-upgrading-.patch">ansible.git</a> and <a href="https://jflory7.fedorapeople.org/pub/gsoc/2016/patches/0001-Add-WordPress-SOP-based-on-corresponding-additions-t.patch">infra-docs.git</a>)</li>
<li><a href="https://pagure.io/jflory7-ansible">Git repository</a></li>
<li><a href="https://jwfblog.wpenginepowered.com/tag/gsoc/feed/">Blog posts</a></li>
</ul>

<h2 id="closing-plans">Closing plans&nbsp;<a class="hanchor" href="#closing-plans" aria-label="Anchor link for: Closing plans">🔗</a></h2>
<p>At the end of the summer, I was using a private cloud instance in Fedora&rsquo;s infrastructure for testing my playbooks and other resources. One of the challenges towards the end of my project was moving my changes from my local development instance into a more permanent part of Fedora&rsquo;s infrastructure. For these reasons, I had some issues with running them in a context and workflow specific to Fedora&rsquo;s infrastructure and set-up (since I am not a sponsored member of the Fedora system administration group).</p>
<p>My current two patches were submitted to my mentor, Patrick. Together, we worked through some small problems with running my playbook in the <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/">context of Fedora&rsquo;s infrastructure</a>. There may still be some small remaining hoops to jump through for running it in production, but any remaining changes to be made should be minor. The majority of the work and preparation for moving to production is complete. This is also something I plan to follow up on past the end of the GSoC 2016 program as a member of the Fedora <a href="https://fedoraproject.org/wiki/Infrastructure_Apprentice">Infrastructure Apprentice</a> program.</p>
<p>My patches should be merged into the <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/">ansible.git</a> and <a href="https://infrastructure.fedoraproject.org/cgit/infra-docs.git/">infra-docs.git</a> repositories soon.</p>

<h2 id="reflection-on-gsoc-2016">Reflection on GSoC 2016&nbsp;<a class="hanchor" href="#reflection-on-gsoc-2016" aria-label="Anchor link for: Reflection on GSoC 2016">🔗</a></h2>
<p>As the program comes to a close, there&rsquo;s a lot of valuable lessons I&rsquo;ve learned and opportunities I&rsquo;m thankful to have received. I want to share some of my own personal observations and thoughts in the hopes that future students or mentors might find it useful for later years.</p>

<h4 id="planning-your-timeline">Planning your timeline&nbsp;<a class="hanchor" href="#planning-your-timeline" aria-label="Anchor link for: Planning your timeline">🔗</a></h4>
<p>In my case, I spent a large amount of time <a href="https://fedoraproject.org/wiki/GSOC_2016/Student_Application_jflory7">planning my timeline</a> for the project before the summer. Once the summer began, my original timeline was too broad for having smaller milestones to work towards. My timeline on the student application was more broad and general, and while it covered the big points, it was difficult to work towards those at first. Creating smaller milestones and goals for the bigger tasks makes them easier to work through on a day-by-day basis and helps add a sense of accomplishment to the work you are doing. It also helps shape direction for your work in the short-term and not just the long-term.</p>
<p>For an incoming Google Summer of Code student for Fedora (or any project), I would recommend creating the general, &ldquo;big picture&rdquo; timeline for your project before the summer. Then, if you are accepted and beginning your proposal, spend a full day creating small milestones for the bigger items. Try to map out accomplishments every week and break down how you want to reach those milestones throughout the week. I started using <a href="https://taskwarrior.org/">TaskWarrior</a> with an <a href="https://inthe.am/about">Inthe.AM Taskserver</a> to help me manage weekly tasks going into my project. But it&rsquo;s important to find a tool that works for you. You should reach out to your mentor about ideas for tools. If possible, your mentor should also have a way to view your agenda and weekly tasks. This will help make sure your goals are aligned to the right kind of work you are doing for an on-time completion.</p>
<p>I think this kind of short-term planning or task management is essential for hitting the big milestones and being timely with your progress.</p>

<h4 id="regular-communication">Regular communication&nbsp;<a class="hanchor" href="#regular-communication" aria-label="Anchor link for: Regular communication">🔗</a></h4>
<p>Consistent and frequent communication is also essential for your success in Google Summer of Code. This can be different depending on the context of how you are contributing to the project. For a normal student, this might just be communicating about your proposal with your mentor regularly. If you&rsquo;re already an active contributor and working in other areas of the project, this might be spending extra time on communicating your progress on the GSoC project (but more on that specifically in the next section).</p>
<p>Regardless of the type of contributor you are, one thing is common and universal – <strong>be noisy</strong>! Ultimately, project mentors and GSoC program administrators want to be sure that you are spending the time on your project and making progress towards accomplishing your goals. If you are not communicating, you will run the highest risk of failing. How to communicate can vary from project to project, but for Fedora, here&rsquo;s my personal recommendations.</p>

<h6 id="blog-posts">Blog posts&nbsp;<a class="hanchor" href="#blog-posts" aria-label="Anchor link for: Blog posts">🔗</a></h6>
<p>Even for someone like me who spends a lot of time writing already, this can be a difficult thing to do. But no matter how hard it is to do it, this is the cornerstone for communicating your progress and leaving a trail for future students to learn from you as well. Even if you&rsquo;ve had a difficult week or haven&rsquo;t had much progress, take the time to sit down and write a post. If you&rsquo;re stuck, share your challenges and share what you&rsquo;re stuck on. Focus on any success or breakthroughs you&rsquo;ve made, but also reflect on issues or frustrations you have had.</p>
<p>Taking the time to reflect on triumphs and failures is important not only for Google Summer of Code, but even looking past that into the real world. Not everything will go your way and there will be times where you will be face challenges that you don&rsquo;t know how to resolve. Don&rsquo;t burn yourself out trying to solve those kinds of problems alone! Communicate about them, ask for help from your mentors and peers, and make it an open process.</p>

<h6 id="irc-check-ins">IRC check-ins&nbsp;<a class="hanchor" href="#irc-check-ins" aria-label="Anchor link for: IRC check-ins">🔗</a></h6>
<p>Whether in a public channel, a meeting, or a private one-on-one chat with your mentor, make sure you are both active and present in IRC. Make sure you are talking and communicating with your mentor on a regular basis (at a <em>minimum</em>, weekly). Taking the time to talk with your mentor about your challenges or progress is helpful for them so they know what you&rsquo;re up to or where you are in the project. It also provides a chance for them to offer advice and oversight into your direction and potentially steer you away from making a mistake or going into the wrong direction. It is demotivating when you&rsquo;ve spent a lot of time on something and then later discovered it either wasn&rsquo;t necessary or had a simpler solution than you realized.</p>
<p>Make sure you are communicating often with your mentor over IRC to make your progress transparent and to also offer the chance for you to avoid any pitfalls or traps that can be avoided.</p>

<h6 id="hang-out-in-the-development-channels">Hang out in the development channels&nbsp;<a class="hanchor" href="#hang-out-in-the-development-channels" aria-label="Anchor link for: Hang out in the development channels">🔗</a></h6>
<p>As a Fedora Google Summer of Code student, there are a few channels that you should be present in on a regular basis (a daily presence is best).</p>
<ul>
<li><code>#fedora-admin</code></li>
<li><code>#fedora-apps</code></li>
<li><code>#fedora-summer-coding</code></li>
<li>Any specific channel for your project, e.g. <code>#fedora-hubs</code></li>
</ul>
<p>A lot of development action happens in this channels, or people who can help you with problems are available here. This also provides you the opportunity to gain insight into what the communication in an active open source project looks like. You should at least be present and reading the activity in these channels during the summer. Participation is definitely encouraged as well.</p>

<h4 id="balancing-project-with-open-source-contributions">Balancing project with open source contributions&nbsp;<a class="hanchor" href="#balancing-project-with-open-source-contributions" aria-label="Anchor link for: Balancing project with open source contributions">🔗</a></h4>
<p>I think my single, most difficult challenge with Google Summer of Code was balancing my proposal-specific contributions with the rest of contributions and work in the Fedora Project. I believe I was a minority of Google Summer of Code students who applied for the program as an active member of the project <a href="https://jwfblog.wpenginepowered.com/2015/10/my-journey-into-fedora/">almost a full year</a> before the program began. Additionally, my areas of contribution in Fedora before GSoC were mostly unrelated to my project proposal. My project proposal mostly aligned with my <a href="http://nsa.rit.edu/">intended degree</a> and education I am pursuing. A lot of the technology I would be working with was new to me and I had minimal knowledge about it before beginning the summer. As a result, this presented a unique set of challenges and problems I would face throughout my project.</p>
<p>The consequences of this were that I had to spend a lot more time researching and becoming familiar with the technology before advancing with creating the deliverable items. A great resource for me to learn about Ansible was <a href="https://www.ansiblefordevops.com/"><em>Ansible for DevOps</em> by Jeff Geerling</a>. But I spent more time on learning and &ldquo;trying out the tech&rdquo; than I had anticipated.</p>
<p>This extra time spent on research and experimentation were in tandem to my ongoing contributions in other areas of the project like <a href="https://fedoraproject.org/wiki/CommOps">Community Operations</a>, <a href="https://fedoraproject.org/wiki/Marketing">Marketing</a>, <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassadors</a>, the <a href="https://fedoraproject.org/wiki/Diversity">Diversity Team</a>, and as of recently, the <a href="https://fedoraproject.org/wiki/SIGs/Games">Games SIG</a>. Balancing my time between these different areas, including GSoC, was the biggest challenge to me over the summer (along with a separate, part-time job on weekends). A separation of time to different areas of Fedora became essential for making progress on my project. What worked well for me was setting short-term goals (by the hour or day) that I wanted to hit and carry out. Until those goals were reached, I wouldn&rsquo;t focus on anything other than those tasks.</p>

<h2 id="special-thanks">Special thanks&nbsp;<a class="hanchor" href="#special-thanks" aria-label="Anchor link for: Special thanks">🔗</a></h2>
<p>I&rsquo;m both thankful and grateful to those who have offered their mentorship, time, and guidance for me to be a member of the GSoC Class of 2016. Special thanks go to <a href="https://fedoraproject.org/wiki/User:Puiterwijk">Patrick Uiterwijk</a>, my mentor for the program. I&rsquo;ve learned a lot from Patrick through these past few months and enjoyed our conversations. Even though we were both running around the entire week, I&rsquo;m glad I had the chance to meet him at <a href="https://jwfblog.wpenginepowered.com/2016/08/fedora-flock-2016/">Flock 2016</a> (and hope to see him soon at <a href="https://fosdem.org/2017/">FOSDEM</a> or <a href="http://devconf.cz/">DevConf</a>)! Another thanks goes to one of my former supporting mentors and program administrator <a href="https://fedoraproject.org/wiki/User:Decause">Remy DeCausemaker</a>.</p>
<p>I&rsquo;m looking forward to another year and beyond of Fedora contributions, and can&rsquo;t wait to see what&rsquo;s next!</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="https://jwfblog.wpenginepowered.com/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>GSoC 2016 Weekly Rundown: Assembling the orchestra</title><link>https://jwheel.org/blog/2016/06/gsoc-2016-rundown-assembling-orchestra/</link><pubDate>Fri, 24 Jun 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/06/gsoc-2016-rundown-assembling-orchestra/</guid><description><![CDATA[<p>This week is the <a href="https://summerofcode.withgoogle.com/">Google Summer of Code 2016</a> midterm evaluation week. Over the past month since the program started, I&rsquo;ve learned more about the technology I&rsquo;m working with, implementing it within my infrastructure, and moving closer to completing my proposal. My <a href="https://fedoraproject.org/wiki/GSOC_2016/Student_Application_jflory7">original project proposal</a> details how I am working with <a href="https://www.ansible.com/">Ansible</a> to bring improved automation for WordPress platforms within Fedora, particularly to the <a href="https://communityblog.fedoraproject.org/">Fedora Community Blog</a> and the <a href="https://fedoramagazine.org/">Fedora Magazine</a>.</p>

<h2 id="understanding-background">Understanding background&nbsp;<a class="hanchor" href="#understanding-background" aria-label="Anchor link for: Understanding background">🔗</a></h2>
<p>My project proposal originated from a discussion based on an observation about managing the Fedora Magazine. Fedora&rsquo;s infrastructure is entirely automated in some form, often times using Ansible playbooks to &ldquo;conduct&rdquo; the Fedora orchestra of services, applications, and servers. However, all the WordPress platforms within Fedora are absent from this automated setup. This has to do with the original context of setting up the platforms.</p>
<p>However, now that automation is present in so much of the Infrastructure through a variety of tasks and roles, it makes sense to merge the two existing WordPress platforms in Fedora into the automation. This was the grounds for my proposal back in March, and I&rsquo;ve made progress towards learning a completely new technology and learning it by example.</p>

<h2 id="initial-research">Initial research&nbsp;<a class="hanchor" href="#initial-research" aria-label="Anchor link for: Initial research">🔗</a></h2>
<p><a href="/blog/2016/06/ansible-for-devops-cover.jpg">
<figure>
  <img src="/blog/2016/06/ansible-for-devops-cover.jpg" alt="GSoC 2016: &ldquo;Ansible For DevOps&rdquo; as a learning resource" loading="lazy">
</figure>
</a>From the beginning, I&rsquo;ve used two resources as guides and instructions for GSoC 2016. &ldquo;<a href="http://www.ansiblefordevops.com/"><em>Ansible For DevOps</em></a>&rdquo;, a book by <a href="http://jeffgeerling.com/">Jeff Geerling</a>, has played a significant part in helping bootstrap me with Ansible and the in&rsquo;s and out&rsquo;s. I&rsquo;m about halfway through the book so far, and it has helped profoundly with learning the technology. Special thanks to <a href="http://impactvps.com/about.html">Alex Wacker</a> for introducing me to the book!</p>
<p>The second resource is, as one would expect, the <a href="https://docs.ansible.com/">Ansible documentation</a>. The documentation for Ansible is complete and fully explanatory. Usually if there is an Ansible-specific concept I am struggling with learning, or finding a module for accomplishing a task, the Ansible documentation helps point me in the right direction quickly.</p>

<h2 id="research-into-practice">Research into practice&nbsp;<a class="hanchor" href="#research-into-practice" aria-label="Anchor link for: Research into practice">🔗</a></h2>
<p>After making some strides through the book and the documentation, I began turning the different concepts into practical playbooks for my own personal infrastructure. I run a handful of machines for different purposes, ranging from my <a href="https://crystalcraftmc.com/">Minecraft server</a>, a <a href="https://irc.jwheel.org/">ZNC bouncer</a>, some <a href="https://tipforums.com/">PHP forum websites</a>, and more. Ever since I began using headless Linux servers, I&rsquo;ve never explored automation too deeply. Every time I set up a new machine or a service, I would configure it all manually, file by file.</p>

<h4 id="first-playbook">First playbook&nbsp;<a class="hanchor" href="#first-playbook" aria-label="Anchor link for: First playbook">🔗</a></h4>
<p>After reading more about Ansible, I began seeing ways I could try automating things in my &ldquo;normal&rdquo; setup. This helped give a way to ease myself into Ansible without overwhelming myself with too large of tasks. I created repositories on Pagure for my <a href="https://pagure.io/jflory7-ansible">personal playbooks</a> and <a href="https://pagure.io/ccmc-ansible">Minecraft playbooks</a>. The very first one I wrote was my &ldquo;first 30 minutes&rdquo; on a new machine. <a href="https://pagure.io/jflory7-ansible/blob/master/f/playbooks/basic-provisioning/initial-centos-rhel-7-setup.yml">This playbook</a> sets up a RHEL / CentOS 7 machine with basic security measures and a few personal preferences ready to go. It&rsquo;s nothing fancy, but it was a satisfying moment to run it in my Vagrant machine and see it do all of my usual tasks on a new machine instantly.</p>
<p>For more information on using Ansible in a Vagrant testing environment, check out <a href="https://jwfblog.wpenginepowered.com/2016/06/setting-vagrant-testing-ansible/">my blog post</a> about it below.</p>
<p><a href="https://jwfblog.wpenginepowered.com/2016/06/setting-vagrant-testing-ansible/">https://jwfblog.wpenginepowered.com/2016/06/setting-vagrant-testing-ansible/</a></p>

<h4 id="moving-to-minecraft">Moving to Minecraft&nbsp;<a class="hanchor" href="#moving-to-minecraft" aria-label="Anchor link for: Moving to Minecraft">🔗</a></h4>
<p>After writing the first playbook, I tried moving to focusing on some other areas I could try automating to improve my &ldquo;Ansible chops&rdquo;. Managing my Minecraft server network is one place where I recognized I could improve automation. I spend a lot of time repeating the same sort of tasks, and having an automated way to do these tasks would make sense.</p>
<p>I started writing playbooks in the <a href="https://pagure.io/ccmc-ansible/blob/master/f/playbooks/add-servers.yml">adding</a> and <a href="https://pagure.io/ccmc-ansible/blob/master/f/playbooks/start-servers.yml">restarting</a> Minecraft servers based on the popular open source server software, <a href="https://www.spigotmc.org/">Spigot</a>. Writing these playbooks helped introduce me to different core modules in Ansible, like <code>lineinfile</code>, <code>template</code>, <code>copy</code>, <code>get_url</code>, and more.</p>
<p>I have also been using sites like ServerFault to find answers for any starting questions I have. Some of the changes between Ansible 1.x and 2.x caused some hiccups in <a href="https://serverfault.com/questions/784465/parse-through-a-list-of-ansible-variables-and-refer-to-itself-while-running-task/">one case</a> for me.</p>

<h4 id="using-infrastructure-resources">Using Infrastructure resources&nbsp;<a class="hanchor" href="#using-infrastructure-resources" aria-label="Anchor link for: Using Infrastructure resources">🔗</a></h4>
<p>After getting a better feel for the basics, I started focusing less on my infrastructure and more on the project proposal. One of the key differences from me writing playbooks, roles, and tasks for my infrastructure is that there are already countless <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/">Ansible resources</a> available from Fedora Infrastructure. For example, to create a WordPress playbook for Fedora Infrastructure, I would want to use the <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/tree/roles/mariadb_server"><code>mariadb_server</code></a> role for setting up a database for the site. Doing that in my playbook (or writing a separate role for it just for WordPress) would increase the difficulty of maintaining the playbooks and make it inconvenient for other members of Fedora Infrastructure.</p>

<h2 id="creating-a-deliverable">Creating a deliverable&nbsp;<a class="hanchor" href="#creating-a-deliverable" aria-label="Anchor link for: Creating a deliverable">🔗</a></h2>
<p>In my personal Ansible repository, I have begun constructing the <a href="https://pagure.io/jflory7-ansible/blob/master/f/playbooks/deliverables">deliverable product</a> for the end of the summer. So far, I have a playbook that creates a basic, single-site WordPress installation. The intention for the final deliverable is to have a playbook for creating a &ldquo;base&rdquo; installation of a <a href="https://codex.wordpress.org/Create_A_Network">WordPress network</a>, and then any other tasks for creating extra sites added to the network. This will make sure that any WordPress sites in Fedora are running the same core version, receive the same updates, and are consistent in administration.</p>
<p>I also intend to write documentation for standing up a WordPress site in Fedora based on my deliverable product. Fortunately, there is already a guide on <a href="https://infrastructure.fedoraproject.org/cgit/infra-docs.git/tree/infra-sop.rst">writing a new SOP</a>, so after talking with my mentor, <a href="https://fedoraproject.org/wiki/User:Puiterwijk">Patrick Uiterwijk</a>, on documentation expectations and needs next week, I will be referring back to this document as a guide for writing my own.</p>

<h2 id="reflection-on-gsoc-2016-so-far">Reflection on GSoC 2016 so far&nbsp;<a class="hanchor" href="#reflection-on-gsoc-2016-so-far" aria-label="Anchor link for: Reflection on GSoC 2016 so far">🔗</a></h2>
<p>I was hoping to have advanced farther by this point, but due to learning bumps and other tasks, I wasn&rsquo;t able to move at a pace as I hoped. However, since starting GSoC 2016, I&rsquo;ve made some personal observations about the project and how I can improve.</p>
<ul>
<li>Despite being behind from where I wanted to be, I feel I am at a point where I am mostly on track and able to work towards completing my project proposal on schedule.</li>
<li>I recognize communication on my progress has not been handled well, and I am making plans to make sure shorter, more frequent updates are happening at a consistent and regular basis. This includes a consistent, weekly (if not twice every week) blog post about my findings, progress, commits, and more.</li>
<li>After talking with Patrick this week, we are going to begin doing more frequent check-ins about where I am in the project and making sure I am on track for where I should be.</li>
</ul>

<h4 id="excerpt-from-gsoc-2016-evaluation-form">Excerpt from GSoC 2016 evaluation form&nbsp;<a class="hanchor" href="#excerpt-from-gsoc-2016-evaluation-form" aria-label="Anchor link for: Excerpt from GSoC 2016 evaluation form">🔗</a></h4>
<p>As one last bit, I thought it would be helpful to share my answers from Google&rsquo;s official midterm evaluation form from the experience section.</p>

<h6 id="what-is-your-favorite-part-of-participating-in-gsoc">&ldquo;What is your favorite part of participating in GSoC?&rdquo;&nbsp;<a class="hanchor" href="#what-is-your-favorite-part-of-participating-in-gsoc" aria-label="Anchor link for: &ldquo;What is your favorite part of participating in GSoC?&rdquo;">🔗</a></h6>
<p>&ldquo;Participating in GSoC gave me a means to continue contributing to an open source community I was still getting involved in. I began contributing to Fedora in September 2015, and up until the point when I applied for GSoC, I had anticipated having to give up my activity levels of contributing to open source while I maintained a job over the summer. GSoC enabled me to remain active and engaged with the Fedora Project community and it has kept me involved with Fedora.</p>
<p>The Fedora Project is also a strong user of Ansible, which is what my project proposal mostly deals with. My proposal gives me a lot of experience and the opportunity to learn new technology that not only allows me to complete my proposal, but also understand different levels and depths of contributing to the project far beyond the end of the summer. With the skills I am learning, I am being enabled as a contributor for the present and the future. To me, this is exciting as the area that I am contributing in has always been one that&rsquo;s interested to me, and this project is jump-starting me with the skills and abilities needed to be a successful contributor in the future.</p>
<p>GSoC is also actively teaching me lessons about time management and overcoming challenges of working remote (which I will detail in the next question). I believe the experience I am getting now from participating in GSoC allows me to improve on myself as an open source developer and contributor and learn important skills about working remotely with others on shared projects.&rdquo;</p>

<h6 id="what-is-the-most-challenging-part-of-participating-in-gsoc">&ldquo;What is the most challenging part of participating in GSoC?&rdquo;&nbsp;<a class="hanchor" href="#what-is-the-most-challenging-part-of-participating-in-gsoc" aria-label="Anchor link for: &ldquo;What is the most challenging part of participating in GSoC?&rdquo;">🔗</a></h6>
<p>&ldquo;The hardest part for me was (is) learning how to work remotely. In the past, when I was contributing at school, I had resources available to me where I could reach out to others nearby for assistance, places I could leave to focus, and a more consistent schedule. Working from home has required me to reach out for help either by improving how well I can search for something or reaching out to others in the project community about how to accomplish an objective.</p>
<p>There are also different responsibilities at home, and creating a focused, constructive space for me to focus on project work is an extremely important part of helping me accomplish my work. Learning to be consistent in my own work and setting my own deadlines is a large part of what I&rsquo;m working on doing now. Learning the ability to follow and set personal goals for working on the project was a hard lesson to learn at first, but finding that balance quickly and swiftly is something that is helping me move forward.&rdquo;</p>]]></description></item><item><title>Setting up Vagrant for testing Ansible</title><link>https://jwheel.org/blog/2016/06/setting-vagrant-testing-ansible/</link><pubDate>Fri, 10 Jun 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/06/setting-vagrant-testing-ansible/</guid><description><![CDATA[<p>As part of my <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a> project proposal for the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>, I&rsquo;ve spent a lot of time learning about the ins and outs of Ansible. <a href="https://www.ansible.com/">Ansible</a> is a handy task and configuration automation utility. In the Fedora Project, Ansible is <a href="https://infrastructure.fedoraproject.org/cgit/ansible.git/">used extensively</a> in Fedora&rsquo;s infrastructure. But if you&rsquo;re first starting to learn Ansible, it might be tricky to test and play with it if you don&rsquo;t have production or development servers you can use. This is where Vagrant comes in.</p>

<h2 id="what-is-vagrant">What is Vagrant?&nbsp;<a class="hanchor" href="#what-is-vagrant" aria-label="Anchor link for: What is Vagrant?">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/06/Vagrant.png" alt="Together, Vagrant and Ansible are a powerful combination." loading="lazy">
  <figcaption>Together, Vagrant and Ansible are a powerful combination.</figcaption>
</figure>
</p>
<p>Many people in the tech industry are already familiar with virtual machines (VMs) and using them for testing. If using a virtual machine is useful for testing and experimentation, Vagrant takes that idea and makes it a thousand times for powerful. <a href="https://www.vagrantup.com/">Vagrant</a> creates and configures a single virtual machine or several groups of inter-connected virtual machines. For someone trying to learn configuration management software like Ansible (or Puppet, or Chef, or Salt…), it features tight integration for creating virtual machines from playbooks.</p>
<p>Using Vagrant allows you to make quick, simple, and easy changes in a safe, local environment. Vagrant is also incredibly easy to set up, and in my experiences, it also ran well on a laptop. My trusty Toshiba Satellite with 8GB of RAM and an Intel i3 chip was able to handle three CentOS 7 virtual machines at once, and still manage to do other regular tasks.</p>

<h2 id="installing-vagrant-for-fedora">Installing Vagrant for Fedora&nbsp;<a class="hanchor" href="#installing-vagrant-for-fedora" aria-label="Anchor link for: Installing Vagrant for Fedora">🔗</a></h2>
<p>Since I&rsquo;m working with Fedora on my hardware while working on the Fedora Project over the summer, it would make sense for this guide to cover how to install and set up Vagrant inside of Fedora. However, I imagine it&rsquo;s similar for most other distributions, so try adapting these commands for your own distribution.</p>
<p>The Fedora repositories have a Vagrant package available. To install it, run the following command.</p>
<pre tabindex="0"><code>$ sudo dnf install vagrant
</code></pre><p>This will pull down Vagrant and all the dependencies it needs to run. However, what it won&rsquo;t do is pull down some of the many providers that it might need to use a virtual machine.</p>

<h3 id="vagrant-and-providers">Vagrant and providers&nbsp;<a class="hanchor" href="#vagrant-and-providers" aria-label="Anchor link for: Vagrant and providers">🔗</a></h3>
<p>For my testing, I used a <a href="https://atlas.hashicorp.com/geerlingguy/boxes/centos7">centos7 box image</a> from geerlingguy. This image creates a current, updated CentOS 7 virtual machine. In order to use it, you must have one of the two providers available: VMware or VirtualBox. Seeing as how VirtualBox is easier for me to install and use on my system, I chose to use VirtualBox as the &ldquo;provider&rdquo; for building and simulating the CentOS 7 box within Vagrant.</p>
<p>It took a bit of figuring out at first, but I found a current and well-documented <a href="http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/">guide</a> on how to install VirtualBox on to a Fedora 22 or 23 system. For a more detailed explanation of how to do it, you can read the <a href="http://www.if-not-true-then-false.com/2010/install-virtualbox-with-yum-on-fedora-centos-red-hat-rhel/">instructions</a>, but for simplicity, I have the commands here to show how to add it to your Fedora system quickly.</p>
<pre tabindex="0"><code>$ sudo dnf upgrade
$ cd /etc/yum.repos.d/
$ sudo wget http://download.virtualbox.org/virtualbox/rpm/fedora/virtualbox.repo
$ sudo dnf install VirtualBox-5.0 binutils gcc make patch libgomp glibc-headers glibc-devel kernel-headers kernel-devel dkms
$ sudo /usr/lib/virtualbox/vboxdrv.sh setup
$ sudo usermod -a -G vboxusers your_username
</code></pre><p>From here,  VirtualBox  will be available as a provider within Vagrant.</p>

<h2 id="running-a-centos-7-image">Running a CentOS 7 image&nbsp;<a class="hanchor" href="#running-a-centos-7-image" aria-label="Anchor link for: Running a CentOS 7 image">🔗</a></h2>
<p>Now that you have both Vagrant and VirtualBox installed, you can create a Vagrant virtual machine with this image. Navigate to a new directory you want to use for managing your virtual machines. Once there, you can use the following commands to start your CentOS 7 virtual machine.</p>
<pre tabindex="0"><code>$ vagrant box add geerlingguy/centos7
$ vagrant init geerlingguy/centos7
$ vagrant up --provider virtualbox
</code></pre><p>After a lot of downloading and then waiting for the first setup to finish, you should receive a notification that your virtual machine started! Huzzah! You can log in directly to it by typing <code>vagrant ssh</code> in the same directory you ran the above commands.</p>
<p>There&rsquo;s a lot of cool things you can do to set up your virtual machines and configure how they start. For example, you can choose to use the VirtualBox GUI for running your virtual machines if you don&rsquo;t want to SSH into it. You can tweak several different flags to alter the environment for the virtual machine. However, that is out of the scope of this guide, and there is a fair amount of documentation already online.</p>

<h2 id="provisioning-with-ansible">Provisioning with Ansible&nbsp;<a class="hanchor" href="#provisioning-with-ansible" aria-label="Anchor link for: Provisioning with Ansible">🔗</a></h2>
<p>The fun part (and what was really cool for me) was provisioning new virtual machines with Ansible. You can instruct Vagrant to seek an Ansible playbook when creating a new virtual machine. It will use the instructions of the playbook to configure, install, or tweak whatever is in the playbook, as if it&rsquo;s being run for the first time. Or maybe it&rsquo;s the second, the third, the fourth time you&rsquo;ve run it. In either case, the idempotent nature of Ansible should help make sure you avoid repeating anything that doesn&rsquo;t need repeating.</p>
<p>In order to tell Vagrant to search for an Ansible playbook, you will need to edit the <code>Vagrantfile</code> for wherever you initialized Vagrant. Open it up in your favorite text editor and add the following bits at the bottom, but before the final <code>end</code> statement.</p>
<pre tabindex="0"><code>config.vm.provision &#34;ansible&#34; do |ansible|
  ansible.playbook = &#34;playbook.yml&#34;
end
</code></pre><p>These short but sweet instructions tell Vagrant to look for a <code>playbook.yml</code> file when starting this virtual machine. It will then be easy to provision (i.e. configure / modify / change) the machine with your playbook later on.</p>

<h3 id="writing-the-playbook">Writing the playbook&nbsp;<a class="hanchor" href="#writing-the-playbook" aria-label="Anchor link for: Writing the playbook">🔗</a></h3>
<p>For this blog post, I&rsquo;ll offer a simple but clear example of a playbook you can use to start a Vagrant machine. This snippet specifically comes from <em><a href="http://www.ansiblefordevops.com/">Ansible for DevOps</a></em> by <a href="http://jeffgeerling.com/">Jeff Geerling</a>, which I have (and am) using as a guide as I continue to learn more about Ansible (I highly recommend the book, consider getting a copy).</p>
<pre tabindex="0"><code>---
- hosts: all
  sudo: yes
  tasks:
  - name: Ensure NTP (for time synchronization) is installed.
    yum: name=ntp state=present
  - name: Ensure NTP is running.
    service: name=ntpd state=started enabled=yes
</code></pre><p>All this example playbook does installs NTP if it is not present on the system, and then start and enable it, if it is not already. This is a very simple example, but it&rsquo;s good for getting started quickly.</p>

<h3 id="running-the-playbook">Running the playbook&nbsp;<a class="hanchor" href="#running-the-playbook" aria-label="Anchor link for: Running the playbook">🔗</a></h3>
<p>In the same directory as your <code>Vagrantfile</code>, create a <code>playbook.yml</code> with the above content. Once you have the YAML file there, running the following command will run the Ansible playbook and allow you to see how it runs.</p>
<pre tabindex="0"><code>$ vagrant provision
</code></pre><p>Now, Vagrant will take your playbook and instantly run it in your machine. If all goes right, your virtual machine will now have NTP installed and be syncing your clock to the Internet! While a simple task, it was a satisfying feeling for me to see this run, but also to imagine the other possibilities that this could be used for. It would be easy to run a playbook on one, two, ten, a hundred, a thousand servers, and have it do the same thing on all of them.</p>
<p>The automation was fascinating to me and began giving me ideas of how I could automate my infrastructure, as well as to creating one for WordPress (for my GSoC project).</p>
<p>Congratulations! By the end of this short but (hopefully) useful guide, you will have Vagrant virtual machines that are controlled and orchestrated by Ansible.</p>]]></description></item><item><title>Google Summer of Code, Fedora Class of 2016</title><link>https://jwheel.org/blog/2016/04/google-summer-code-fedora-class-2016/</link><pubDate>Wed, 27 Apr 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/04/google-summer-code-fedora-class-2016/</guid><description><![CDATA[<p>This summer, I&rsquo;m excited to say I will be trying on a new pair of socks for size.</p>
<p>Bad puns aside, I am actually enormously excited to announce that I am participating in this year&rsquo;s <a href="https://summerofcode.withgoogle.com/">Google Summer of Code</a> program for the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>. If you are unfamiliar with Google Summer of Code (or often shortened to GSoC), Google describes it as the following.</p>
<blockquote>
<p>Google Summer of Code is a global program focused on bringing more student developers into open source software development. Students work with an open source organization on a 3 month programming project during their break from school.</p>
</blockquote>
<p>I will work with the Fedora Project over the summer on the CommOps slot. As part of my proposal, I will assist with migrating key points of communication in Fedora, like the Fedora Magazine and Community Blog, to Ansible-based installations. I have a few more things planned up my sleeve too.</p>

<h2 id="google-summer-of-code-proposal">Google Summer of Code proposal&nbsp;<a class="hanchor" href="#google-summer-of-code-proposal" aria-label="Anchor link for: Google Summer of Code proposal">🔗</a></h2>
<p>My proposal summary is on the <a href="https://summerofcode.withgoogle.com/organizations/5630777857409024/#5114063432450048">GSoC 2016 website</a>. The full proposal is available on the <a href="https://fedoraproject.org/wiki/GSOC_2016/Student_Application_jflory7">Fedora wiki</a>.</p>

<h4 id="the-what">The What&nbsp;<a class="hanchor" href="#the-what" aria-label="Anchor link for: The What">🔗</a></h4>
<p>The <a href="https://fedoraproject.org/wiki/Community_Blog">Community Blog</a> is becoming an important part of the Fedora Project. This site is a shared responsibility between <a href="https://fedoraproject.org/wiki/CommOps">CommOps</a> and the <a href="https://fedoraproject.org/wiki/Infrastructure">Infrastructure</a> team. Unlike most applications in the Fedora infrastructure, the Community Blog is not based off Ansible playbooks. <a href="https://www.ansible.com/">Ansible</a> is an open-source configuration management suite designed to make automation easier. Fedora already uses Ansible extensively across its infrastructure.</p>
<p>My task would consist of migrating the Community Blog (and by extension, <a href="https://fedoraproject.org/wiki/Magazine">Fedora Magazine</a>) to an Ansible-based set up and writing the documentation for any related SOPs.</p>

<h4 id="the-why">The Why&nbsp;<a class="hanchor" href="#the-why" aria-label="Anchor link for: The Why">🔗</a></h4>
<p>Ansible is a useful tool to make automation and configuration easier. In their current set up, the Community Blog and Fedora Magazine are managed separately from each other, and are managed by a single member of the Infrastructure team. By moving them to Ansible-based installations and merging the WordPress bases together, it provides the following benefits:</p>
<ol>
<li>Makes it easier for other Infrastructure team members to fix, maintain, or apply updates to either site</li>
<li>Prevents duplicate work by maintaining a single, Ansible-based WordPress install versus two independent WordPress sites</li>
<li>Creates a standard operating procedure for hosting blog platforms within Fedora (can be used for other extensions in the future)</li>
</ol>

<h2 id="thanks-to-my-mentors">Thanks to my mentors&nbsp;<a class="hanchor" href="#thanks-to-my-mentors" aria-label="Anchor link for: Thanks to my mentors">🔗</a></h2>
<p>I would like to issue a special thanks to my mentors, <a href="https://fedoraproject.org/wiki/User:Puiterwijk">Patrick Uiterwijk</a> and <a href="https://fedoraproject.org/wiki/User:Decause">Remy DeCausemaker</a>. Patrick will be my primary mentor for the slot, as a member of the Fedora Infrastructure team. I will be working closest with him in the context of my proposal. I will also be working with Remy on the &ldquo;usual&rdquo; CommOps tasks that we work on week by week.</p>
<p>Another thanks goes out to all of those in the Fedora community who have positively affected and influenced my contributions. Thanks to countless people, I am happy to consider Fedora my open source home for many years to come. There is so much to learn and the community is amazing.</p>

<h2 id="getting-started">Getting started&nbsp;<a class="hanchor" href="#getting-started" aria-label="Anchor link for: Getting started">🔗</a></h2>
<p>As of the time of publication, the Community Bonding period is currently happening. The official &ldquo;coding&rdquo; time hasn&rsquo;t started yet. Without much delay, I will be meeting up with Patrick and Remy later today in a conference call to check in after the official announcement, make plans for what&rsquo;s coming up in the near future, and become more acquainted with the Infrastructure community.</p>
<p>In addition to our conference call, I&rsquo;m also planning on (formally) attending the next Fedora Infrastructure meeting on Thursday. Shortly afterwards, I hope to begin my journey as an Infrastructure apprentice and learn more about the workflow of the team.</p>
<p>Things are just getting started for the summer and I&rsquo;m beyond excited that I will have a paid excuse to work on Fedora full-time. Expect more check-ins as the summer progresses!</p>]]></description></item></channel></rss>