<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Open-Source</title><link>https://jwheel.org/tags/open-source/</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>Thu, 28 Mar 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://jwheel.org/rss/tags/open-source/index.xml" rel="self" type="application/rss+xml"/><item><title>Win-win for all: How to run a non-engineering Outreachy internship</title><link>https://jwheel.org/blog/2024/03/win-win-for-all-outreachy/</link><pubDate>Thu, 28 Mar 2024 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2024/03/win-win-for-all-outreachy/</guid><description><![CDATA[<p>This year, I am mentoring again with the <a href="https://www.outreachy.org/">Outreachy internship program</a>. It is my third time mentoring for Outreachy and my second time with the <a href="/categories/fedora/">Fedora Project</a>. However, it is my first time mentoring as a <a href="/categories/red-hat/">Red Hat</a> associate. What also makes this time different from before is that I am mentoring a non-engineering project with Outreachy. Or in other words, my project does not <em>require</em> an applicant to write any code. Evidently, the internship description was a hook. We received an extremely large wave of applicants literally overnight. Between 40-50 new contributors arrived to the Fedora Marketing Team in the first week. Planning tasks and contributions for beginners already took effort. Scaling that planning work overnight for up to 50 people simultaneously is extraordinarily difficult.</p>
<p>During this round, my co-mentor <a href="https://fedoraproject.org/wiki/User:Joseph">Joseph Gayoso</a> and I experimented with new approaches at handling the tsunami wave. There are two competing forces at play. One, you need to provide engagement to top performers so they remain motivated to continue. Two, you need to provide new opportunities for emerging contributors to distinguish themselves. It is easier to do one of these but hard to do both simultaneously. However, Joseph and I agreed on something important. We agreed that all applicants should end the contribution phase with something practically useful. As mentors, we asked ourselves how to prepare applicants to be successful open source contributors beyond this one month.</p>
<p>In this article, you will get some practical takeaways for mentoring with Outreachy. First, I will share our practical approach for structuring and planning an open source project during the Outreachy contribution phase. Second, I will detail the guiding philosophy Joseph and I follow for how we planned the contribution phase.</p>

<h2 id="about-outreachy">About Outreachy&nbsp;<a class="hanchor" href="#about-outreachy" aria-label="Anchor link for: About Outreachy">🔗</a></h2>
<p>This article assumes you already know a thing or two about the Outreachy internship program. If not, Outreachy provides internships in open source and open science. Outreachy provides internships to people subject to systemic bias and impacted by underrepresentation in the technical industry where they live. You can read more <a href="https://www.outreachy.org/">on the Outreachy website</a>.</p>
<p>What makes Outreachy unique is that the internships are remote and often open without geographic or nationality constraints. Applicants from nearly every continent of the world have participated in Outreachy. Also, Outreachy is distinguished by the <strong>contribution phase</strong>. For a one-month period, approved Outreachy applicants are encouraged to participate in the project community as a contributor. Applicants spend the month learning about the project, the community, the mentors, and the work involved for the internship. This provides applicants an opportunity to grow their open source identity. It also gives mentors an opportunity to assess applicants on their skills and communication abilities.</p>
<p>However, this contribution phase can be intimidating as a mentor, especially if you are new to mentoring with Outreachy. A wave of people eager to contribute could suddenly appear overnight at your project&rsquo;s door steps. If you are not prepared, you will have to adapt quickly!</p>

<h2 id="pre-requisite-tasks-raising-the-outreachy-bar">Pre-Requisite Tasks: Raising the Outreachy bar&nbsp;<a class="hanchor" href="#pre-requisite-tasks-raising-the-outreachy-bar" aria-label="Anchor link for: Pre-Requisite Tasks: Raising the Outreachy bar">🔗</a></h2>
<p>My co-mentor and I knew that a wave of applicants was coming. However, we didn&rsquo;t expect the wave to be as big as it was. After the first week of the contribution phase, we knew we needed a better way to scale ourselves. We were limited in our person-power. The approach we took to addressing the mental overload was defining pre-requisite tasks.</p>
<p>We defined <strong>pre-requisite tasks</strong> as tasks that any applicant <em>MUST</em> complete in order to be considered eligible for our internship. Without completing these tasks, we explained that final applications would <em>not</em> be accepted by mentors. The defining characteristics of these pre-requisite tasks were that they were personalized, repeatable, and measurable. We came up with five pre-requisite tasks that all applicants were required to complete beyond the initial qualification for Outreachy:</p>
<ol>
<li>
<p><a href="https://gitlab.com/fedora/marketing/marketing-planning/-/issues/153">Set up your Fedora Account System (FAS) account</a></p>
</li>
<li>
<p><a href="https://gitlab.com/fedora/marketing/marketing-planning/-/issues/154">Set up a personal blog</a></p>
</li>
<li>
<p><a href="https://gitlab.com/fedora/marketing/marketing-planning/-/issues/155">Write a blog post that introduces the Fedora community to your audience</a></p>
</li>
<li>
<p><a href="https://gitlab.com/fedora/marketing/marketing-planning/-/issues/156">Promote your intro blog post on social media</a></p>
</li>
<li>
<p><a href="https://gitlab.com/fedora/marketing/marketing-planning/-/issues/157">Write an onboarding guide for Outreachy 2025 applicants</a></p>
</li>
</ol>

<h3 id="how-were-initial-contributions-personalized">How were initial contributions personalized?&nbsp;<a class="hanchor" href="#how-were-initial-contributions-personalized" aria-label="Anchor link for: How were initial contributions personalized?">🔗</a></h3>
<p>Each of these tasks were personalized to each applicant. They each have a unique account profile, with their pictures, time zones, and chat system usernames. The personal blog is a personal space on the Internet for each applicant to start writing new posts. The blog post prompts encouraged applicants to start filling up their blogs with Fedora content. The social media post helped applicants promote themselves as budding open source enthusiasts in their existing web spaces.</p>
<p>This approach had two benefits. First, it provided clear guidance to all newcomers and early-stage applicants on how to get started with contributing to Fedora for the Outreachy internship. This took a burden off of mentors answering the same questions about getting started. It also gave new applicants something to start on right away. Joseph and I were able to put more time into reviewing incoming contributions and brainstorming new tasks.</p>

<h2 id="portfolio-driven-submissions-for-outreachy">Portfolio-driven submissions for Outreachy&nbsp;<a class="hanchor" href="#portfolio-driven-submissions-for-outreachy" aria-label="Anchor link for: Portfolio-driven submissions for Outreachy">🔗</a></h2>
<p>Toward the third week, many applicants had completed the pre-requisite tasks and were ready for more advanced tasks. Many had already taken on advanced projects already, beyond the pre-requisite tasks. Although the pre-requisite tasks did reduce the applicant pool, there were still between 20-30 people who completed them all. Again, the approach had to adapt as our ability to keep up with new contributions slowed down.</p>
<p>From here, we encouraged applicants to build personal portfolio pages that described their contributions with Fedora. This encouraged applicants to use the blog they built in the previous tasks, although they are not required to use their blog to host their portfolio. The only requirement we added was that it should be publicly visible on the Internet without a paywall. So, no Google Docs. Most applicants have ended up using their blog for this purpose though.</p>

<h3 id="how-did-a-portfolio-help">How did a portfolio help?&nbsp;<a class="hanchor" href="#how-did-a-portfolio-help" aria-label="Anchor link for: How did a portfolio help?">🔗</a></h3>
<p>Building a portfolio solved multiple challenges for our Outreachy project at once. First, the portfolios will simplify how the project mentors review final applications after the deadline on April 2nd, 2024. It will be streamlined because we will have a single place we can refer to that describes the applicant&rsquo;s achievements. It gives us a quick, easily shareable place to review and share with other stakeholders.</p>
<p>Second, it ends up being something useful to the applicant as well. The portfolio page captures a month&rsquo;s worth of contributions to open source. For many applicants, this is their first time ever interacting with an open source community online. So, it is a big deal to block out a month of time to volunteer on a project in a competitive environment for a paid, remote internship opportunity. Writing a portfolio page gives applicants the confidence to represent their contributions to Fedora, regardless of whether they are selected for the Fedora internship. It becomes a milestone marker for themselves and for their professional careers.</p>

<h2 id="our-philosophy-you-win-we-win">Our philosophy: You win, we win.&nbsp;<a class="hanchor" href="#our-philosophy-you-win-we-win" aria-label="Anchor link for: Our philosophy: You win, we win.">🔗</a></h2>
<p>This idea of applicants building something that is useful for themselves underpins the approach that Joseph and I took on structuring our non-engineering Outreachy internship. If I had to summarize the philosophy in one sentence, it might be like this:</p>
<blockquote>
<p>Everyone who participants as an Outreachy applicant to Fedora should finish the contribution phase with more than they had at the start of the contribution phase.</p>
<p>myself</p>
</blockquote>
<p>Our philosophy can be applied to engineering and non-engineering internships. However, applying the philosophy to our non-engineering project required improvisation as we went. There are examples of design-centered Outreachy internships, but I have not seen a marketing or community manager internship before. This was a challenge because there were not great models to follow. But it also left us room to innovate and try ideas that we have never tried before.</p>
<p>Adopting this philosophy served as helpful guidance on planning what we directed applicants to do during the contribution phase. It allowed us to think through ways that applicants could make real, recognizable contributions to Fedora. It also enables applicants to achieve a few important outcomes:</p>
<ol>
<li>
<p>Get real experience in a real project.</p>
</li>
<li>
<p>Build their own brand as open source contributors.</p>
</li>
<li>
<p>Gain confidence at collaborating in a community.</p>
</li>
</ol>
<p>The contribution phase is not yet over. So, we will continue to follow this philosophy and see where it guides us into the end of this phase!</p>

<h2 id="share-your-outreachy-mentoring-experience">Share your Outreachy mentoring experience!&nbsp;<a class="hanchor" href="#share-your-outreachy-mentoring-experience" aria-label="Anchor link for: Share your Outreachy mentoring experience!">🔗</a></h2>
<p>Have you experienced or seen a marketing or community manager internship in Outreachy before? Know a project or a person who has done this? Or is this totally new to you? Drop a comment below with your thoughts. Don&rsquo;t forget to share with someone else if you found this advice useful.</p>]]></description></item><item><title>Three great examples of open source product roadmaps</title><link>https://jwheel.org/blog/2022/12/open-source-product-roadmaps/</link><pubDate>Tue, 06 Dec 2022 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2022/12/open-source-product-roadmaps/</guid><description><![CDATA[<p>In my daily reading, I came across three product roadmaps from <a href="https://proton.me/about">Proton</a>, developers of several open source, privacy-centered products. These include products like Proton Mail, Proton VPN, and Proton Drive. The product roadmaps shared by Proton play a tactical role. They inform consumers and engaged customers about exciting changes yet to come. It gets people excited about the product&rsquo;s future. Additionally, it builds an engaged user base that is more willing to experiment and try new features.</p>
<p>Product roadmaps are something many projects struggle with. It fits into the communications and outreach umbrella, which unfortunately is typically an underresourced part of many open source products. They are one small part of a larger strategy around openness and transparency. If customers and stakeholders know what to expect, they gain more confidence in the product and company mission. For instance, this is especially true when the company continuously delivers on its roadmaps and meets its ambitions. As a result, delivering on those ambitions leaves a strong impression.</p>

<h2 id="highlights-from-proton-product-roadmaps">Highlights from Proton product roadmaps&nbsp;<a class="hanchor" href="#highlights-from-proton-product-roadmaps" aria-label="Anchor link for: Highlights from Proton product roadmaps">🔗</a></h2>
<p>Of particular note, these product roadmaps do the following things well from a messaging point-of-view:</p>
<ol>
<li>
<p>Builds context with previous work delivered in the last year for the product.</p>
</li>
<li>
<p>Several clearly-defined goals and ambitions for each product are defined and explained. The aspirations for the coming year are spelled out and users can begin to form realistic expectations about what new features to anticipate.</p>
<ul>
<li>Some highly-motivated individuals may use this as an opportunity to make their first contribution to the product, whether in the form of feedback or code.</li>
</ul>
</li>
<li>
<p>Strong call-to-action at the end of each article, where Proton defines how people can participate and engage with feedback about the products.</p>
</li>
</ol>
<p>Check out each of the three product roadmaps below and let me know what you think about them in a comment on this post.</p>
<hr>

<h2 id="proton-mail--proton-calendar">Proton Mail &amp; Proton Calendar&nbsp;<a class="hanchor" href="#proton-mail--proton-calendar" aria-label="Anchor link for: Proton Mail &amp; Proton Calendar">🔗</a></h2>
<blockquote>
<p>[…] we want to <a href="https://proton.me/blog/2022-roadmap">provide an update</a> on what’s coming next for <a href="https://proton.me/mail">Proton Mail</a> and <a href="https://proton.me/calendar">Proton Calendar</a>. As 2022 wraps up and we look into the new year, we want to develop stronger protections against technologies that invade your privacy, improve your reading experience, and make your day more productive through deeper integrations between our products. </p>
<p><a href="https://proton.me/blog/proton-mail-calendar-roadmap">proton.me/blog/proton-mail-calendar-roadmap</a></p>
</blockquote>

<h2 id="proton-vpn">Proton VPN&nbsp;<a class="hanchor" href="#proton-vpn" aria-label="Anchor link for: Proton VPN">🔗</a></h2>
<blockquote>
<p>In March, we shared our <a href="https://proton.me/blog/2022-roadmap">2022 roadmap</a> for Proton, including Proton VPN. Now that we’ve reached November, we feel it’s a good time to revisit our progress this year and explain what you can expect from Proton VPN in the near future.</p>
<p><a href="https://protonvpn.com/blog/proton-vpn-roadmap-spring-2023/">protonvpn.com/blog/proton-vpn-roadmap-spring-2023/</a></p>
</blockquote>

<h2 id="proton-drive">Proton Drive&nbsp;<a class="hanchor" href="#proton-drive" aria-label="Anchor link for: Proton Drive">🔗</a></h2>
<blockquote>
<p>In September 2022, we were excited to <a href="https://proton.me/blog/proton-drive-launch">launch Proton Drive</a> and introduce the first standalone <a href="https://proton.me/drive/pricing">Proton Drive paid plans</a>. As with all the services we’ve rolled out over the years, we know the launch is just the first step. The real work is in the continual improvements, advancements, and added features that follow. Building an <a href="https://proton.me/drive">encrypted file storage service</a> is not easy, particularly one that uses <a href="https://proton.me/drive/security">end-to-end encryption</a> on both your files and file metadata like Proton Drive.</p>
<p>Many of you have asked us what is next for Proton Drive, and today, we wanted to share with you a short-term roadmap of what you can expect in the coming quarters. Of course, we also have longer-term roadmaps. We look forward to sharing those and keeping you updated on the latest developments as Proton Drive progresses.</p>
<p><a href="https://proton.me/blog/proton-drive-roadmap">proton.me/blog/proton-drive-roadmap</a></p>
</blockquote>
<hr>
<p><em>Photo by <a href="https://unsplash.com/@slidebean?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Slidebean</a> on <a href="https://unsplash.com/s/photos/roadmap?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>. Modified by Justin Wheeler.</em></p>]]></description></item><item><title>Write yourself into obsolescence.</title><link>https://jwheel.org/blog/2022/11/write-obsolescence/</link><pubDate>Tue, 29 Nov 2022 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2022/11/write-obsolescence/</guid><description><![CDATA[<p>This thought was pressed into my mind as I looked over all that I had created. Facing the inevitable end of one life chapter as it transitions into a new one, I recognized one possible way to improve our individual impact through documentation. Software and product documentation are classified as technical writing. While they differ in scope, they share a connection to other forms of written works like novels and newspapers; they are collections of a commonly understood, codified language meant to convey a meaning to other humans. The goal of writing yourself into obsolescence is not to create content for content&rsquo;s sake. The goal is to create information pathways that leave behind a guiding light for those who come after us. The goal is to create some form of media or content that communicates information of value to someone else (even including your future self).</p>
<p>May I continue to hone this practice into an art. 🙏🏻 This is my meditation for the day!</p>
]]></description></item><item><title>XPOST: Spurring new Digital Public Goods</title><link>https://jwheel.org/blog/2022/10/new-digital-public-goods/</link><pubDate>Thu, 06 Oct 2022 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2022/10/new-digital-public-goods/</guid><description><![CDATA[<p><a href="https://www.unicef.org/innovation/stories/spurring-new-digital-public-goods"><em>Originally published on 27 September 2022 via unicef.org</em>.</a></p>
<hr>
<p>This year, the <a href="https://www.unicefinnovationfund.org/">UNICEF Venture Fund</a> celebrates <a href="https://www.unicef.org/innovation/venturefund/blockchain-financial-inclusion-graduation">five graduating companies</a> from a recent investment round. For the first time, many of these companies are exiting from the Venture Fund having already earned recognition as <a href="https://digitalpublicgoods.net/registry/">Digital Public Goods (DPGs)</a>. With the support of a cross-sectional team of mentors, these graduating companies worked to achieve compliance with the <a href="https://digitalpublicgoods.net/standard/">DPG Standard</a>.</p>
<p>The <a href="https://digitalpublicgoods.net/standard/">Digital Public Good Standard</a> offers a nine-point baseline for evaluation and recognition of Open Source software, content, data, and standards that adhere to privacy and other applicable laws and best practices, do no harm by design, and help attain the Sustainable Development Goals (SDGs). Once a solution is recognised as a digital public good it is discoverable on the <a href="https://digitalpublicgoods.net/registry/">DPG Registry</a>.</p>
<p>This recognition acknowledges their use of vetted Open Source licenses, useful documentation, and adherence to relevant best practices and local data protection laws. What makes this achievement a first for the Venture Fund is that these recognitions were achieved by the companies during the investment round. Typically, companies that go on from the Venture Fund achieve recognition after a year or more of graduation. This new shift is made possible by the growing investment in Technical Assistance at the Venture Fund and the leadership of a robust team of mentors.</p>
<p>This article introduces the Technical Assistance mentoring programmes offered by the UNICEF Venture Fund, the addition of new mentors in the last year, the shift of mentor focus around the DPG Standard, and the results achieved to date from the latest graduating Venture Fund cohort.</p>

<h1 id="origins-of-technical-assistance-at-the-venture-fund">Origins of Technical Assistance at the Venture Fund&nbsp;<a class="hanchor" href="#origins-of-technical-assistance-at-the-venture-fund" aria-label="Anchor link for: Origins of Technical Assistance at the Venture Fund">🔗</a></h1>
<p>The Venture Fund offers different areas of Technical Assistance to start-up companies who apply and are selected to receive early-stage seed investment by UNICEF. Originally starting in 2018, the Technical Assistance programmes only included Business Development and Open Source. Over the years, we have piloted and pivoted mentorship models with input from our portfolio of startups. Today, the Technical Assistance programmes cover a range of topics across an experienced team of mentors, depending on the relevance to the start-up companies:</p>
<ul>
<li>Blockchain with Arun Maharajan and Alex Sherbuck (former)</li>
<li>Business Development with Jamil Wyne and Philippa Martinelli (former)</li>
<li>Evidence of Impact with Milena Bacalja Perianes and Jennifer Sawyer</li>
<li>Data Privacy &amp; Security with Lydia Kwong</li>
<li>Data Science &amp; A.I. with Daniel Alvarez</li>
<li>Open Source with Justin Wheeler, Abigail Cabunoc Mayes (former), and Vipul Siddharth</li>
<li>Software Development with Iván Perdomo</li>
</ul>
<p>The mentors work closely with the experienced team of portfolio managers (Meghan Warner, Kennedy Kitheka, and Madison Marks) to guide and coach Venture Fund companies to achieve their targets and success indicators during the investment round.</p>
<p>Starting in 2021, the Venture Fund broadened the Technical Assistance programmes to include Software Development, Data Science &amp; A.I., Data Privacy &amp; Security, and Evidence of Impact. This was a marked change in growing the support and expertise made available to start-up companies during their investment round. However, as the team of mentors and Technical Assistance offerings expanded, there was a growing need to bring a common rallying point across all programmes. How could the mentors ensure their Technical Assistance programmes complemented one another without duplicating topics or repeating conversations?</p>
<p>Further complementing the core Technical Assistance programme, <a href="https://www.unicefinnovationfund.org/broadcast/expert-posts/unicef-innovation-fund-blockchain-cohort-onboarding-workshops">specialized workshops</a> were held by like-minded institutions outside the Venture Fund’s core team of mentors , along with personalized mentorship sessions. The recent Blockchain Cohort, for example, benefitted from targeted mentorship from AW3L, a blockchain consulting firm that share many of UNICEF&rsquo;s values around leveraging blockchain for social impact.</p>
<blockquote>
<p>“Blockchain has immense potential, but it remains just a tool and its impact is dependent on what we do with it. That&rsquo;s why it is crucial to have local entrepreneurs on the ground building use-cases that solve real problems unique to their geography. We are therefore extremely happy and proud to support UNICEF and its portfolio companies to tackle real-world problems in emerging markets by utilizing blockchain technology.”</p>
<p>Martijn van de Weerdt, Founder, AW3L</p>
</blockquote>

<h1 id="how-the-dpg-standard-unified-the-mentoring-streams">How the DPG Standard unified the mentoring streams&nbsp;<a class="hanchor" href="#how-the-dpg-standard-unified-the-mentoring-streams" aria-label="Anchor link for: How the DPG Standard unified the mentoring streams">🔗</a></h1>
<p>The DPG Standard became a common rallying point for the UNICEF Technical Assistance programmes. As our mentoring programmes increased and topic areas broadened, we needed coordination and a synchronized stream of Technical Assistance programmes. In the last year, the Venture Fund reviewed its workplan development and strategy to enable more solutions to achieve recognition as a digital public good at or near the graduation point for a Venture Fund portfolio. The most recent graduating cohort, the <a href="https://www.unicef.org/innovation/venturefund/blockchain-financial-inclusion-graduation">2021 Blockchain cohort</a>, represents this improved alignment, with 4 of 5 companies receiving recognition of their products as digital public goods by their graduation this year.</p>
<p>How does recognition of an open solution as a Digital Public Good help Venture Fund startups? It is an acknowledgment by the Digital Public Goods Alliance of a commitment and adherence to best practices and steps taken to protect data privacy and do no harm. Additionally, recognition as a DPG unlocks stronger potential for adoption and deployment of the solution by global stakeholders by providing greater visibility in a public roster of open solutions that adhere to best practices and standards. The recognition of 80% of an off-boarding Venture Fund portfolio speaks to both the intrinsic capabilities of the companies and the value of the Technical Assistance programmes and mentorship provided to them by the Venture Fund.</p>
<p>While past Venture Fund companies have received recognition as digital public goods before, this is the first time that a company achieved the recognition at the time of their graduation from the Venture Fund. Aligning the Technical Assistance programmes around the DPG Standard provided common frameworks and mental models for the diverse team of mentors to support the companies and help them achieve the Standard as an important part of their product development lifecycle.</p>
<blockquote>
<p>“As an early-stage startup, we struggled with a clear business model. Especially in the last six months of the investment, support from the mentor network helped in building clear business growth and impact metric plans. Also a year ago, we were very heavy on the tech side but lacked considerable planning on network and visibility growth. We have developed a customer persona and a pricing model, and now have a clearer vision of our Total Available Market, Serviceable Available Market, and Serviceable Obtainable Market (TAM, SAM, and SOM) models.”</p>
<p>Rumee Singh, Co-Founder, Rumsan</p>
</blockquote>

<h1 id="further-farther-together">Further, farther, together&nbsp;<a class="hanchor" href="#further-farther-together" aria-label="Anchor link for: Further, farther, together">🔗</a></h1>
<p>What comes next? The Technical Assistance programmes at the UNICEF Venture Fund are gearing up for additional cohorts benefiting from our seed-stage investment: a <a href="https://www.unicef.org/innovation/innovationfund/ai-ds-learning-health-2022">Data Science &amp; A.I. cohort</a> and an upcoming Blockchain cohort. These early-stage companies undergo a technical assistance programme involving a technical and strategic workshop series and monthly mentorship meetings. Graduates of our seed-stage investment that  have received additional capital through our <a href="https://www.unicef.org/innovation/growth-funding">Growth Funding</a> to take their solution to the next level of impact also benefit from customized mentorship to support their evolution from good prototype developments to solutions that can be implemented and scaled, with sustainable business models and proven pilots.</p>
<p>Additionally, mentors are developing digital toolkits to enable Venture Fund companies and anyone to read up and study best practices for building and sustaining digital public goods. Most of these toolkits will be released digitally online under Open Source licenses. You can find three of these toolkits below:</p>
<ul>
<li><a href="https://unicef.github.io/ooi-toolkit-ds/">Data Science &amp; A.I.</a></li>
<li><a href="https://unicef.github.io/drone-4sdgtoolkit/">Drones</a></li>
<li><a href="https://unicef.github.io/inventory/">Open Source</a></li>
</ul>
<p>Since the first Technical Assistance programmes were launched in 2018, the Venture Fund has seen improved results that correlate with the Technical Assistance programmes. In the <a href="https://www.unicef.org/innovation/venturefund/blockchain-financial-inclusion-graduation">most recent Blockchain 2021 cohort</a>, across 500+ hours of mentoring, the cohort collectively reached over 700,000 beneficiaries, raised $4M in follow-on funding, and 4 of 5 graduating companies were recognized as a digital public good before graduation. This also marked a new record of external contributors, with a total of 39 people who contributed to repositories across all portfolio companies. The expert guidance and coaching provided by the team of UNICEF mentors aids the start-ups in achieving new record heights.</p>
<blockquote>
<p>“UNICEF’s support helped Xcapit build value, with a premium put on discovery, iteration, survey, and experimentation with the end user. The guidance at the right time is priceless. It prevented us from facing a major problem in the future when our blockchain UNICEF mentor guided us when we were deciding the technology to create our wallet. Changing our mindset to become a fully open source company was also challenging. We had the best guidance we could ask, and we successfully overcame the difficulties and doubts, understanding the benefits of open collaboration.”</p>
<p>Antonella Perrone, COO, Xcapit</p>
</blockquote>

<h1 id="contribute-to-technical-assistance-knowledge-and-mentoring">Contribute to Technical Assistance knowledge and mentoring&nbsp;<a class="hanchor" href="#contribute-to-technical-assistance-knowledge-and-mentoring" aria-label="Anchor link for: Contribute to Technical Assistance knowledge and mentoring">🔗</a></h1>
<p>The UNICEF mentor toolkits are open source and you can also participate. The toolkits are currently accepting contributions for UI/UX and front-end development, as well as content curation and authorship. Get involved with the toolkits by participating via GitHub:</p>
<ul>
<li><a href="https://github.com/unicef/inventory-hugo-theme">UNICEF Inventory theme</a> (see “<a href="https://github.com/unicef/inventory-hugo-theme/issues?q=is%3Aissue&#43;is%3Aopen&#43;label%3A%22I%3A&#43;good&#43;first&#43;issue%22&#43;no%3Aassignee">good first issues</a>”)</li>
<li><a href="https://github.com/unicef/inventory">UNICEF Open Source Inventory</a></li>
<li><a href="https://github.com/unicef/ooi-toolkit-ds">UNICEF Data Science &amp; A.I. toolkit</a></li>
</ul>
<p>With the Digital Public Goods Alliance, we built upon our learnings and successes from portfolio companies and created the <a href="https://unicef.github.io/publicgoods-accelerator-guide/">DPG Accelerator Guide</a> as a collection of resources for accelerators to also support local ventures in developing digital public goods, setting them up for scale and impact.</p>
]]></description></item><item><title>4 metrics to measure sustainable open source investments.</title><link>https://jwheel.org/blog/2021/12/4-metrics-open-source-investments/</link><pubDate>Fri, 31 Dec 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/12/4-metrics-open-source-investments/</guid><description><![CDATA[<p>How do we understand value when we talk about sustainability? What does investing in open source mean? The meaning is different for many people because of an implicit understanding of what open source means.</p>
<p>This post is a reflection on the past year in my work with the <a href="https://www.unicefinnovationfund.org/">UNICEF Venture Fund</a>. We integrated new open source tools to capture metrics and data about open source repositories connected to UNICEF portfolio companies and created a shortlist of key metrics that map to business sustainability metrics. Now, we are better positioned to look back on past, current, and upcoming portfolio companies and mentor support programs.</p>
<p>As we move into 2022, this post covers my current thinking on these points:</p>
<ol>
<li>Defining investments.</li>
<li>How do these investments impact sustainability?</li>
<li>CHAOSS metrics as an open source tool for an investment lens on sustainability.</li>
<li>What next?</li>
</ol>

<h2 id="defining-investments">Defining investments.&nbsp;<a class="hanchor" href="#defining-investments" aria-label="Anchor link for: Defining investments.">🔗</a></h2>
<p>When we talk about investing in open source, what do we mean? What are the known inputs? What are the expected outputs? &ldquo;Investments&rdquo; and &ldquo;investing&rdquo; are broad terms. Investments typically mean sizeable financial injections of support and growth, but can also include non-financial investments too. Investments can also take the form of both time and energy (i.e. electricity and digital infrastructure).</p>
<p>The UNICEF Venture Fund provides equity-free funding for start-up companies building open source solutions of interest to UNICEF. All the start-up companies are registered companies in <a href="https://www.unicef.org/where-we-work">UNICEF program countries</a>. As part of the Venture Fund&rsquo;s location in the <a href="https://www.unicef.org/innovation/">Office of Innovation</a>, it is also a vehicle for UNICEF to explore frontier technology areas through the investments. When a start-up company is receiving investment from UNICEF, the company receives both funding and tailored mentorship about business and open technology.</p>
<p>A question I want to know is, <strong>what is the impact of the received funding plus guided mentorship</strong>? How does this approach enable the companies to be successful after graduating? What discoveries or knowledge could be shared with others to assist the development of their own open programs?</p>
<p>To summarize, <strong>an investment can be financial or non-financial</strong>. Financial investments include direct funding, grants, venture capital, fellowships, or any other exchange of capital. Non-financial investments include time spent in coaching sessions, personalized content for companies, and shared digital infrastructure. Neither list is exhaustive.</p>

<h2 id="how-do-these-investments-impact-sustainability">How do these investments impact sustainability?&nbsp;<a class="hanchor" href="#how-do-these-investments-impact-sustainability" aria-label="Anchor link for: How do these investments impact sustainability?">🔗</a></h2>
<p>
<figure>
  <img src="https://cauldron.io/static/img/cauldron-logo-white.png" alt="Logo for Bitergia&rsquo;s Cauldron hosted analytics platform. A key part of metrics for UNICEF Venture Fund investments." loading="lazy">
  <figcaption>Bitergia Cauldron.io (<a href="https://cauldron.io" class="bare">https://cauldron.io</a>)</figcaption>
</figure>
</p>
<p>Data makes introspection easier. Bitergia&rsquo;s <a href="https://cauldron.io/">Cauldron.io</a> was a champion tool for kickstarting an open source metrics strategy for the UNICEF Venture Fund. Its introduction as a tool opened up a wider span of data to look at. There are new opportunities to ask questions and explore growth, scale, and sustainability.</p>
<p>In order to come to a conclusion on sustainability impact, we need streamlined data to test a thesis. The Venture Fund team improved internal processes to how metrics are collected from portfolio companies. The team is unifying behind fewer tools and methods to ensure we see the same data and have the same view of the data points we measure. This also provides a fresh opportunity to review how we measure open source impact across portfolio companies. Many have dashboards on Cauldron.io, but data needs a storyteller for it to make meaning. So, the next step is to ask questions with this new data and frame a thesis to measure and test the sustainability of Venture Fund investments into open source.</p>
<p>Many have traveled before me on the same trail of thought. I started first with the <a href="https://chaoss.community/">Community Health Analytics Open Source Software (CHAOSS) project</a> and its metrics releases. This served as the initial point of brainstorming to frame questions and different scenarios of risk, evolution, DEI, and value.</p>

<h2 id="chaoss-metrics-as-an-open-source-tool-for-an-investment-lens-on-sustainability">CHAOSS metrics as an open source tool for an investment lens on sustainability.&nbsp;<a class="hanchor" href="#chaoss-metrics-as-an-open-source-tool-for-an-investment-lens-on-sustainability" aria-label="Anchor link for: CHAOSS metrics as an open source tool for an investment lens on sustainability.">🔗</a></h2>
<p>I reviewed the <a href="https://chaoss.community/wp-content/uploads/2021/10/English-Release-2021-10-21.pdf">latest release</a> of CHAOSS metrics and narrowed down four metrics I want to measure in the next year. I also shared thoughts on why collect this data and how to do it. This blog post is no more than me wondering out loud, to help me frame an analytical approach for this metrics strategy.</p>
<p>The four metrics are detailed below:</p>
<ol>
<li>Contribution Attribution</li>
<li>Contributors</li>
<li>Collaboration Platform Activity</li>
<li>Labor Investment</li>
</ol>
<p>
<figure>
  <img src="/blog/2021/12/glenn-carstens-peters-RLw-UC03Gwc-unsplash.jpg" alt="A hand holds a pen and is writing on a sheet of notebook paper. They appear to be making a list." loading="lazy">
  <figcaption>Take note of your dependencies and contributors.
<em>Photo by Glenn Carstens-Peters (<a href="https://unsplash.com/@glenncarstenspeters?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/@glenncarstenspeters?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>) on Unsplash (<a href="https://unsplash.com/s/photos/lists?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/s/photos/lists?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>)</em>.</figcaption>
</figure>
</p>

<h3 id="contribution-attribution"><a href="https://chaoss.community/metric-contribution-attribution/">Contribution Attribution</a>&nbsp;<a class="hanchor" href="#contribution-attribution" aria-label="Anchor link for: Contribution Attribution">🔗</a></h3>
<blockquote>
<p>Question: Who has contributed to an open source project and what attribution information about people and organizations is assigned for contributions?</p>
<p><a href="https://chaoss.community/metric-contribution-attribution/">chaoss.community/metric-contribution-attribution/</a></p>
</blockquote>
<p>This metric is insightful because it is targeted deeply into team and project culture. This metric is a good representation of how much the project leans into an open source model of building their project. This work ethos and intention to forge on an open source path is difficult to understand at times. If a team takes care to attribute their software dependencies and other contributors to their code (if any), this is a good sign that the team accepts collaboration as a value and encourages working with others.</p>
<p>I would measure this across two <a href="https://chaoss.community/metric-types-of-contributions/">types of contributions</a>: attributions for software dependencies including those with permissive licenses, and for any other direct contributors to the code and how they are recognized for their participation. This could be filtered in a red-yellow-green light approach:</p>
<ol>
<li><strong>Red</strong>: No attributions are made, or all attributions are inadequate.</li>
<li><strong>Yellow</strong>: One of two attributions are made, or one attribution type is inadequately attributed.</li>
<li><strong>Green</strong>: All dependencies and used works are correctly attributed.</li>
</ol>
<p>
<figure>
  <img src="/blog/2021/12/alex-hudson-m3I92SgM3Mk-unsplash.jpg" alt="View looking down at a small farmer&rsquo;s market, where a woman sits behind several different cases of vegetables. A man hands payment to the woman for unseen goods. This is connected how knowing your customers can also be like knowing your community." loading="lazy">
  <figcaption>Spend more time getting to know who participates and why.
<em>Photo by Alex Hudson (<a href="https://unsplash.com/@aliffhassan91?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/@aliffhassan91?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>) on Unsplash (<a href="https://unsplash.com/s/photos/bazaar?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/s/photos/bazaar?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>)</em>.</figcaption>
</figure>
</p>

<h3 id="contributors"><a href="https://chaoss.community/metric-contributors/">Contributors</a>&nbsp;<a class="hanchor" href="#contributors" aria-label="Anchor link for: Contributors">🔗</a></h3>
<blockquote>
<p>Question: Who are the contributors to a project?</p>
<p><a href="https://chaoss.community/metric-contributors/">chaoss.community/metric-contributors/</a></p>
</blockquote>
<p>This metric explores a more human dimension of the people and participants to an open source project. The metric defines contributors and contributions broadly, as &ldquo;anyone who contributes to the project in any way.&rdquo; Understanding the people participating in a community, their motivations, goals, and why they choose to be in that community is important to understand sustainability. Otherwise, you may lose out on good opportunities to attract contributions from people who are already engaged, and new engagements may be difficult because of a mismatch of expectations.</p>
<p>This metric is more a means than it is an end; that is, it provides opportunities to ask more questions than provide detailed answers. Nevertheless, it does provide some guidance towards understanding contributors in a project, and it can lead to some concrete actions based on gathered insights. For example, this metric will enable deeper looks in areas of diversity, equity, and inclusion.</p>
<p>Since I work with start-up companies with small, lean development teams, I look to understand the motivations of the developers working on their projects and where the motivations may align with another open source solution. This enables the two communities to leverage their combined brainstorming for meeting complimentary goals around development and innovation.</p>
<p>To collect this data, I would have the team define what <a href="https://chaoss.community/metric-types-of-contributions/">areas of contribution</a> they seek for their open source solutions and then map those desired contributions to a specific project area or different team members. This enables a form of consistent accountability for checking expectations with reality and understanding team capacity. Each area could be a key-value pair, where the value is the project area, team lead, or delegated team member for the type of contribution solicited.</p>
<p>
<figure>
  <img src="/blog/2021/12/kai-dahms-5paXZX8lWk-unsplash.jpg" alt="The dashboard of an older plane is shown, with several different meters, switches, and control knobs. In many ways, the places where we collaborate on our projects can also be as complicated, and we can miss out on some useful features if we are not looking in the right place." loading="lazy">
  <figcaption>There are many ways to collaborate, but the question is, are you counting the right ways?
<em>Photo by Kai Dahms (<a href="https://unsplash.com/@dilucidus?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/@dilucidus?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>) on Unsplash (<a href="https://unsplash.com/s/photos/measure?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/s/photos/measure?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>)</em>.</figcaption>
</figure>
</p>

<h3 id="collaboration-platform-activity"><a href="https://chaoss.community/metric-collaboration-platform-activity/">Collaboration Platform Activity</a>&nbsp;<a class="hanchor" href="#collaboration-platform-activity" aria-label="Anchor link for: Collaboration Platform Activity">🔗</a></h3>
<blockquote>
<p>Question: What is the count of activities across digital collaboration platforms (e.g., GitHub, GitLab, Slack, email) used by a project?</p>
<p><a href="https://chaoss.community/metric-collaboration-platform-activity/">chaoss.community/metric-collaboration-platform-activity/</a></p>
</blockquote>
<p>Collaboration platform activity is one effective proxy metric for community engagement if measured accurately. The metric does not define collaboration as much as it provides a data structure to measure it. It abstracts collaboration into key data points like timestamp, sender, whether the platform has threaded or non-threaded discussions, data collection date, and platform message identifier. To a degree, collaboration can be abstracted out in this way: a person takes any given action at a given time in a given way, and this action is measured as project-related activity on the collaboration platform.</p>
<p>There are a few possible approaches to collecting this data from UNICEF Venture Fund companies. Each approach does not cancel out another, but each approach could be combined with the others:</p>
<ol>
<li><strong>Measure common git activity like commits, issues, pull/merge requests</strong>. We already measure this data, but use it only in connection to validating Venture Fund workplans for each team with UNICEF portfolio manager(s).</li>
<li><strong>Count communications like comments, reviews, public messages, and other outreach</strong>. Communications strategies and tools are typically inferred from common git activity. Measuring for engagement and stratifying those metrics into a smaller group could allow for deeper insights to the evolution of early-stage open source communities.</li>
<li><strong>Make community hubs first-class citizens in the data curation process to infer about informal engagement</strong>. Both open source projects and UNICEF Venture Fund portfolio companies use a variety of tools to communicate, especially in view of COVID-19 and its seismic impact on how we work. Platforms like Discord, Telegram, Mattermost, Slack, Rocket.chat, Matrix, and others are focal points where projects collaborate, ask questions, and support others. Bringing this data stream into the mix offers deeper insights into how teams engage and build community around their work, and also guidance on when to push for contribution opportunities at the right time.</li>
</ol>
<p>The satisfaction of these three options in their totality is not enough. To leverage the fullest impact, these metrics must tie into each other, and need to be connected back to a narrative. Why is this data being collected and what actions are influenced by the knowledge of this data? The data collection enables the evaluation of sustainability and understanding the birth, growth, and evolution of an open source technology product. Influenced actions can include moving more human resources (i.e. contractors or staff) to support a project, adopting a new open source best practice, and/or engaging new customers, talent, or other leads based on participation in the community.</p>
<p>Measuring collaboration platform activity is not black and white. Many new questions would likely come forward as part of measuring this activity. Yet this is the point—it lays the foundation for the next layer to the data collection, analysis, and reporting process around sustainability.</p>
<p>
<figure>
  <img src="/blog/2021/12/jon-tyson-kR4K8nJ9JRc-unsplash.jpg" alt="A man is facing forward with his back to the camera. He wears a heavy coat and a construction hard hat. The background is blurred and unclear. In this way, we can think of labor investment from a human-centered approach first." loading="lazy">
  <figcaption>What is the impact of an investment on fair and equitable labor?
<em>Photo by Jon Tyson (<a href="https://unsplash.com/@jontyson?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/@jontyson?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>) on Unsplash (<a href="https://unsplash.com/s/photos/worker?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText" class="bare">https://unsplash.com/s/photos/worker?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText</a>)</em>.</figcaption>
</figure>
</p>

<h3 id="labor-investment"><a href="https://chaoss.community/metric-labor-investment/">Labor Investment</a>&nbsp;<a class="hanchor" href="#labor-investment" aria-label="Anchor link for: Labor Investment">🔗</a></h3>
<blockquote>
<p>Question: What was the cost of an organization for its employees to create the counted contributions (e.g., commits, issues, and pull requests)?</p>
<p><a href="https://chaoss.community/metric-labor-investment/">chaoss.community/metric-labor-investment/</a></p>
</blockquote>
<p>This metric is perhaps the most ambitious of the group. How do you measure labor investment into an open source project? Or literally, the number of person-hours that go into software design, development, co-creation, and community management? It feels like a gargantuan effort, but there may be better ways to measure this in connection to other data the UNICEF Venture Fund is already connected about the businesses.</p>
<p>Measuring labor investment impacts two narratives: the rate of development on the open source work, and the impact of UNICEF investment into a company backing an open source work.</p>
<p>Firstly, understanding the rate of development on an open source work is easier to infer by understanding who is allocated on a project and how much of their time they dedicate to it. If a team of three contributors spares a few hours a week, it will mean something different compared to a team of five engineers spread across different disciplines working full-time. Mapping the labor investment for open source projects supported by UNICEF would enable better planning by understanding the typical labor investment in open source workplan tasks as piloted by other Venture Fund portfolio companies.</p>
<p>Secondly, this gives us a new way of talking about the impact of UNICEF Venture Fund investments as an investment not only in software products but also in labor. It gives us insight into the investment of labor in software engineering talent among portfolio companies. How does this measurement change over time of the investment? Do projects receive more or less investment of labor during the 12 month period we work with them? This could also be used as a proxy metric for the impact of our unique mentorship and coaching opportunities.</p>

<h2 id="what-next">What next?&nbsp;<a class="hanchor" href="#what-next" aria-label="Anchor link for: What next?">🔗</a></h2>
<p>Knowing is half the journey. Even if the knowledge is not yet firmly rooted. The analysis and introspection are from me as an individual working among the UNICEF Venture Fund and do not represent the views and beliefs of UNICEF or the UN in any capacity. My intent is that by sharing this analysis in the open, it allows for a space where conversation can spark where it could not before. It also invites others to share ideas, feedback, and constructive criticism of an emerging metrics strategy for investments made into the open source ecosystem.</p>
<p>Next, more layers can be added and internal and external validation can help to keep this moving forward. An implementation plan would be the next step to follow this post. The implementation plan considers the process of how start-up companies move through the Venture Fund from start to finish. Who interacts with the companies and when? At what point is a company ready to begin building in a new metric or count in their monthly metrics? Do they understand the implications and assessments of these metrics? At what points in the process is data already being collected? Could these new data requests be added to existing requests? And so on.</p>
<p>I hope to formalize some of this new reporting and metrics strategy in upcoming cohorts in 2022, as part of a renewed effort into communicating how our open source investments tie into sustainable impact towards the U.N. Sustainable Development Goals.</p>
<p>This post will serve as a milestone marker on the metrics strategy discussion in the coming one to two months. See you in 2022.</p>
<hr>
<p><em>Featured photo by <a href="https://unsplash.com/@edwardhowellphotography?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Edward Howell</a> on <a href="https://unsplash.com/s/photos/sustainable?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>. Modified by Justin Wheeler. CC BY-SA 4.0</em>.</p>]]></description></item><item><title>On Free Software, Red Hat, and Iran</title><link>https://jwheel.org/blog/2021/10/red-hat-iran/</link><pubDate>Tue, 26 Oct 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/10/red-hat-iran/</guid><description><![CDATA[<p>I was visiting the Fedora Council ticket tracker when I noticed <a href="https://pagure.io/Fedora-Council/tickets/issue/377">this ticket</a> up for discussion. The ticket&rsquo;s purpose is minor and appears inconsequential. It involves adding some legal text to the Fedora Accounts system. The change is related to <a href="https://docs.microsoft.com/en-us/compliance/regulatory/offering-ear">Export Administration Regulations</a> (the &ldquo;EAR&rdquo;) as maintained by the United States Department of Commerce. And the change is not actually a change, but a clarification of a policy that has always been in effect.</p>
<p>I am opposed to the impact of Export Administration Regulations by the United States as it pertains to free and open source software. I am a strong believer that the impact of these regulations are most harmful to all free &amp; open source software communities at an individual, human level. When I saw this discussion at the Fedora Council level, it offered me an opportunity to reflect on my own feelings about these regulations, and also to share an opinion on how I believe Fedora Linux could truly live up to its <a href="https://digitalpublicgoods.net/registry/fedora-linux.html">certification</a> as a Digital Public Good to ensure a more equitable world.</p>
<p>Here is <a href="https://pagure.io/Fedora-Council/tickets/issue/377#comment-759232">what I wrote</a> to the Fedora Council, and perhaps also to anyone reading from Red Hat&rsquo;s legal team:</p>
<hr>
<p>Hi, I would like to add a counter-opinion, of course one that holds no weight as an official vote.</p>
<p>As Fedora Linux is forced to this decision by its relationship to its legal sponsor, Red Hat, <strong>I therefore believe it is also the responsibility of Red Hat to seek a solution that does not deny an individual their right to realize the <a href="https://fsfe.org/freesoftware/">Four Freedoms</a> of Free Software on the basis of geography or citizenship</strong>.</p>
<p>I recognize no policy is being changed here. It is a deliberate clarification of rules that were always in effect. Yet this ticket opens the context behind the policy for greater scrutiny, and I posit the context is harmful both to the Fedora Project and to Red Hat.</p>
<p>This policy is harmful for diversity and inclusion, and compromises Fedora&rsquo;s position to be an innovative platform built by a global community. The U.S. laws and regulations driving this decision exist within a specific context, but that context is grossly incompatible with the dynamics of inclusive Free &amp; Open Source communities. In practice, these laws and regulations deny individuals (really, other human beings) of their ability to be a beneficiary of the open licenses we employ for creating our work, collaborating on it together, and sharing it with others.</p>
<p>I see two outcomes of accepting this as an unchangeable norm.</p>
<p>Firstly, it creates confusion, doubt, and feelings of ill intent. These laws and regulations are meant to impact governments and nation-states. In a Free &amp; Open Source community such as ours, these regulations impact individual people. Not governments or nation-states. As an example, a Fedora community member, Ahmad Haghighi, was recently <a href="https://ahmadhaghighi.com/blog/2021/us-restricted-free-software/">permanently removed</a> from the Fedora Community. In a few quick clicks, Ahmad&rsquo;s legacy in the project was <a href="https://web.archive.org/web/20210813014952/https://fedoraproject.org/wiki/User:Haghighi">erased</a>. As a precedent, even if someone&rsquo;s contributions were not &ldquo;supposed&rdquo; to be accepted in the first place, it does not sit well with me that any one person&rsquo;s legacy of contributions can so easily be removed from project records.</p>
<p>Secondly, it challenges the vision and foundations of the Fedora Project. Particularly our vision statement and the <em>Friends</em> Foundation. When I contribute to the Fedora Project, I do not see people as a citizen of this-country or that-country. I see them as my peers and fellow Fedorans, helping meet that shared vision of creating &ldquo;<em>a world where everyone benefits from free and open source software built by inclusive, welcoming, and open-minded communities</em>.&rdquo; As an American citizen, I know my country makes such discriminations about large groups of people based only on their nationality, but as a contributor to Free &amp; Open Source communities, I see people by their individual character and intention to be a part of our shared vision. But how can we truly aspire to this vision if we are consciously making deliberate exclusions, even if they make little to no sense in our own context? This geographic restriction policy sits in contrast to the vision and purpose we spell out &ldquo;on paper&rdquo;.</p>
<p>I understand why Fedora leadership is taking this action due to Fedora&rsquo;s legal and sociopolitical relationship to Red Hat, an American incorporation subject to American laws and regulations. To an extent, the hand of Fedora is forced.</p>
<p>But I believe this is a great opportunity for Red Hat to be an enabler of Fedora&rsquo;s <em>First</em> Foundation. Previously, Microsoft <a href="https://github.blog/2021-01-05-advancing-developer-freedom-github-is-fully-available-in-iran/">stood up</a> for Iranian developers and successfully set a precedent about how the United States Office of Foreign Assets Control (OFAC) treats such cases. I found this excerpt from Nat Friedman&rsquo;s announcement to resonate:</p>
<blockquote>
<p>Over the course of two years, we were able to demonstrate how developer use of GitHub advances human progress, international communication, and the enduring US foreign policy of promoting free speech and the free flow of information. We are grateful to OFAC for the engagement which has led to this great result for developers.</p>
<p><em><a href="https://github.blog/2021-01-05-advancing-developer-freedom-github-is-fully-available-in-iran/">Advancing developer freedom: GitHub is fully available in Iran</a> - github.blog</em></p>
</blockquote>
<p><strong>I believe Red Hat&rsquo;s legal team should take a stand for individuals in embargoed countries to remain a beneficiary of the free and open source licenses that enable a community Linux distribution like Fedora to exist in the first place.</strong></p>
<p>After all, in Fedora, we are well-known for being <a href="https://docs.fedoraproject.org/en-US/project/#_first">first</a> in the Open Source space for innovative new ideas and approaches. We know Fedora Linux is a <a href="https://digitalpublicgoods.net/registry/fedora-linux.html">digital public good</a> that should be accessible to all and everyone. But to make this a reality, the Fedora Project cannot be first here on its own. We need our friendly primary sponsor, Red Hat, to help us clear this burden, which is brought on by our connection to Red Hat in the first place.</p>
<p>I&rsquo;ll close this counter-opinion with an excerpt from our First Foundation:</p>
<blockquote>
<p>&ldquo;However, the Fedora Project’s goal of advancing free software dictates that the Fedora Project itself pursue a strategy that preserves the forward momentum of our technical, collateral, and community-building progress. Fedora always aims to provide the future, first.&rdquo;</p>
<p><em>From <a href="https://docs.fedoraproject.org/en-US/project/#_first">What is Fedora all about?</a></em></p>
</blockquote>
<p>Here is a chance to be clear on the future we want to provide and for whom.</p>
<hr>
<p><em>Background photo by <a href="https://unsplash.com/@omidarmin?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Omid Armin</a> on <a href="https://unsplash.com/?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p>]]></description></item><item><title>2020/2021 in Open Source at UNICEF Innovation Fund</title><link>https://jwheel.org/blog/2021/09/2020-2021-in-open-source-at-unicef-innovation-fund/</link><pubDate>Tue, 07 Sep 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/09/2020-2021-in-open-source-at-unicef-innovation-fund/</guid><description><![CDATA[<p>Open Source is a means to collaborate and solve common problems; during the COVID-19 pandemic, open data and tools <a href="https://www.dlapiper.com/en/us/insights/publications/2021/07/techlaw-podcast-sesg-venture-capital-for-good-and-software-solutions-with-a-purpose">proved useful</a> in quickly tailoring and deploying life-saving services. How has the <a href="https://www.unicef.org/innovation/">UNICEF Innovation Fund</a> kept up with latest Open Source innovations?</p>
<p>The UNICEF Innovation Fund invests exclusively in Open Source technology – with today’s rapidly evolving innovation landscape, Open Source software, hardware, data, and content not only create value and generate revenue, but also ensure greater collaboration and impact. This reflection is a look back at Open Source activity and participation stemming from the <a href="https://www.unicef.org/innovation/ventures">UNICEF Ventures Team</a> from June 2020 to date (July 2021).</p>
<p>By the end of this article, you will have a better understanding of the evolving and forward-thinking approach to Open Source taken by the UNICEF Office of Innovation.</p>
<p>This article looks at a few aspects of Open Source engagement at the Innovation Fund:</p>
<ol>
<li>Support models
<ol>
<li>Legal &amp; policy</li>
<li>Building and leveraging from the community</li>
</ol>
</li>
<li>Case study: Cloudline and upstream engagement</li>
</ol>

<h2 id="new-to-open-source-at-unicef">New to Open Source at UNICEF?&nbsp;<a class="hanchor" href="#new-to-open-source-at-unicef" aria-label="Anchor link for: New to Open Source at UNICEF?">🔗</a></h2>
<p>If you are hearing about the <a href="https://unicef.github.io/inventory/meta/overview/">UNICEF Open Source Mentorship programme</a> for the first time, check out this introduction post to get important context behind why UNICEF invests in <a href="/blog/2021/07/unicef-open-source-mentorship/">Open Source mentorship and support</a> for Innovation Fund portfolio teams:</p>
<p>/blog/2021/07/unicef-open-source-mentorship/</p>

<h2 id="innovation-fund-support-models">Innovation Fund support models&nbsp;<a class="hanchor" href="#innovation-fund-support-models" aria-label="Anchor link for: Innovation Fund support models">🔗</a></h2>
<p>Start-ups receive both funding and customized mentorship during their 12-month investment period with the UNICEF Innovation Fund. Since the Innovation Fund launched in 2016, the Innovation Fund team noted the impact of hands-on guidance to help start-ups understand how to work open and lead open. Start-ups receiving Open Source support were better equipped to develop sustainable business models that made Open Source intellectual property work with them instead of against them.</p>
<p>By the end of the 12-month investment cycle, graduating companies achieve the following milestones in place with their projects:</p>
<ul>
<li>Solid understanding of Open Source licenses and different business models depending on a permissive or copyleft strategy.</li>
<li>Laying foundations for growing or participating in friendly, inclusive communities.</li>
<li>Documentation site to showcase their Open Source work, and how to get involved.</li>
<li>Continuous Integration pipeline to test new changes in the code-base before they are added, and avoid common human errors.</li>
</ul>
<p>Across these milestones, three themes of support have emerged as as most essential in the past year: <strong>legal &amp; policy, building and leveraging from the community, and building in the open</strong>.</p>

<h3 id="legal--policy">Legal &amp; policy&nbsp;<a class="hanchor" href="#legal--policy" aria-label="Anchor link for: Legal &amp; policy">🔗</a></h3>
<p>The UNICEF Innovation Fund is unique in Venture Capital on its open-first investment strategy. Start-ups receiving UNICEF funding are obligated to either create their own Open Source works or contribute to existing Open Source works. This leads start-up teams to ask more questions: how does this work in a legal sense? How do you establish a sustainable business model with Open Source dependencies and the different types of license models that exist (e.g. permissive and copyleft)? These are the questions that start-ups receive tailored guidance on from the Open Source Mentorship programme.</p>
<p>How did the Open Source Mentorship programme support both start-ups and UNICEF Country Offices receiving funding from the <a href="https://www.unicefinnovationfund.org/about">UNICEF Innovation Fund</a>? The programme improved business and legal resources and referrals for managing Open Source intellectual property. This was primarily done by creating a self-serve knowledgebase of legal, governance, and tech policy: the <a href="https://unicef.github.io/inventory/">UNICEF Open Source Inventory</a>. The Inventory was created in close consultation with start-ups receiving UNICEF funding, leading industry experts in areas such as Open Hardware and open design, and other existing Open Source communities of practice.</p>

<h3 id="building-and-leveraging-from-the-community">Building and leveraging from the community&nbsp;<a class="hanchor" href="#building-and-leveraging-from-the-community" aria-label="Anchor link for: Building and leveraging from the community">🔗</a></h3>
<p>Over the past year, we also saw more upstream collaboration. UNICEF Innovation Fund start-ups collaborated on existing projects like the PX4 Drone auto-pilot software instead of reinventing the wheel themselves. This enabled the work done with UNICEF funding to go further and impact the wider ecosystem, instead of an individual project with highly-specific use cases.</p>
<p>Furthermore, as the Innovation Fund portfolio continues to grow, new inductees in the Open Source Mentorship programme are able to build on top of work done by previous portfolio companies. This accelerates the rate of development for the new inductees and gives them a model of success to look towards during their engagement with UNICEF.</p>
<p>For example, two companies from the <a href="https://www.unicef.org/innovation/innovationfund/dronescohortgraduation2021">2019 Drones cohort</a> created documentation websites that were used as models for the 2020 <a href="https://www.generationunlimited.org/">Generation Unlimited</a> cohort. <a href="https://qaira.github.io/">qAIRa</a> from Perú and <a href="https://rentadronecl.github.io/">Rentadrone</a> from Chile created documentation websites using the popular toolchain <a href="https://docusaurus.io/">Docusaurus</a>, created by Facebook&rsquo;s Open Source Program Office. The work of qAIRa and Rentadrone was leveraged as models by <a href="https://vrapeutic.github.io/">VRapeutic</a> and <a href="https://i-stem.github.io/">I-STEM</a> in the 2020 Generation Unlimited cohort. Using graduated companies as models accelerated both technical and content development for the new teams when they had relatable models to use in building their own Open Source documentation websites.</p>

<h2 id="innovation-fund-case-study-cloudline-and-upstream-engagement">Innovation Fund case study: Cloudline and upstream engagement&nbsp;<a class="hanchor" href="#innovation-fund-case-study-cloudline-and-upstream-engagement" aria-label="Anchor link for: Innovation Fund case study: Cloudline and upstream engagement">🔗</a></h2>
<p><a href="http://bit.ly/venturefundcloudline">Cloudline Africa</a> (South Africa) operates small-scale autonomous airships that have longer endurance and range than current commercial drones; their solution will help deliver medical supplies to hard-to-reach communities and reduce operational costs in the last-mile.</p>
<p>Four highlights from Cloudline&rsquo;s period with the Innovation Fund are below:</p>
<ul>
<li>The team launched the airship with a payload capacity of 10 kgs with a 50 km range.  </li>
<li>Full endurance capability (40km/h) along with automated waypoint flying. </li>
<li>Contributed flight control software to the PX4 upstream community by introducing a new mode of aircraft to the community in the form of airships.  </li>
<li>Cloudline received the <a href="https://www.fastcompany.co.za/business/cloudline-floats-to-the-top-at-fast-companys-most-innovative-companies-awards-44250613">Fast Company South Africa Most Innovative Company Award</a> </li>
</ul>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/MlldnwmWvIc?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<blockquote>
<p>&ldquo;Our greatest triumph of the year was the flight of our pre-production airship. Capable of a 10kg useful payload and a 50km range, this aircraft is ideally suited to medical logistics and other high-value scheduled deliveries.&rdquo;
— <em>Spencer Horne, Co-Founder</em></p>
</blockquote>

<h3 id="going-upstream">Going upstream&nbsp;<a class="hanchor" href="#going-upstream" aria-label="Anchor link for: Going upstream">🔗</a></h3>
<p>Contributions made to another popular upstream community was another major highlight of the Open Source Mentorship programme. Furthermore, the contributions were not casual <a href="https://archive.org/details/ato2017-drivethru">&ldquo;drive-through&rdquo; contributions</a>; they were consistent and focused broadly around the ecosystem instead of a single repository of source code.</p>
<p>
<figure>
  <img src="/blog/2021/08/cloudline-team-fastcompany.jpg" alt="UNICEF Innovation Fund graduate company Cloudline is pictured accepting an award from Fast Company South Africa for Most Innovative Company of the year." loading="lazy">
  <figcaption>Autonomous airship logistics company, Cloudline, took top honours last night at the inaugural Fast Company SA Most Innovative Companies Awards held in Cape Town. — fastcompany.co.za (<a href="https://www.fastcompany.co.za/business/cloudline-floats-to-the-top-at-fast-companys-most-innovative-companies-awards" class="bare">https://www.fastcompany.co.za/business/cloudline-floats-to-the-top-at-fast-companys-most-innovative-companies-awards</a>)</figcaption>
</figure>
</p>
<p>During the mentorship programme, Cloudline added 61 commits across four repositories. The summary of their contributions were adding a new vehicle type to the PX4 auto-pilot software: <strong>airships</strong>. The team first <a href="https://discuss.px4.io/t/new-vehicle-type-airship/16514">opened a discussion</a> on the PX4 community forum. After getting feedback from a developer, they proceeded to <a href="https://github.com/PX4/PX4-Autopilot/issues/14792">add the Cloudline airship</a> into the upstream software. This was followed by documentation additions with <a href="https://github.com/PX4/PX4-Devguide/pull/1065">controller diagrams</a> and <a href="https://github.com/PX4/PX4-Devguide/pull/1077">simulation instructions</a>. <strong>Through their contributions, a wider network of developers can simulate and interact with airships similar to the one created by Cloudline</strong>.</p>
<p>But the contributions did not stop at code. Cloudline developer Anton Erasmus <a href="https://px4developersummitvirtual2020.sched.com/event/cjOm/an-in-depth-look-at-the-multicopter-control-system-architecture">delivered a deep dive presentation</a> at the PX4 2020 virtual contributor summit. He explained to other developers about how to leverage the multicopter control system, as used in the Cloudline airships and other popular drone devices. This outreach step is important in growing awareness in the existing community for new introductions to the common software, and how both Cloudline and the PX4 community could help each other in achieving their similar yet different goals.</p>

<h2 id="what-is-next-for-the-innovation-fund">What is next for the Innovation Fund?&nbsp;<a class="hanchor" href="#what-is-next-for-the-innovation-fund" aria-label="Anchor link for: What is next for the Innovation Fund?">🔗</a></h2>
<p>What does the next year ahead look like for UNICEF&rsquo;s Open Source Mentorship programme? Stay tuned for the final post in this series, which will explore on-going work to standardize the mentorship curriculum, detail how Innovation Fund companies are being coached in becoming <a href="https://digitalpublicgoods.net/">Digital Public Goods</a>, and the research and development for an Open Source Program Office at the UNICEF Office of Innovation in 2022.</p>
<hr>
<p><em>Special thanks for content and data collected in this post</em>: <strong>Sanna Bedi, Zenani Orengo</strong></p>]]></description></item><item><title>What if Open Source dependencies weren't software?</title><link>https://jwheel.org/blog/2021/08/open-source-dependencies/</link><pubDate>Tue, 10 Aug 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/08/open-source-dependencies/</guid><description><![CDATA[<p>I often wonder how to best measure and communicate Open Source value. The collective focus of the industry goes into quantifying dependencies; that is, how one software relies on other software in order to complete its primary function. The vocabulary to measure dependency usually includes words like &ldquo;imports,&rdquo; &ldquo;licenses,&rdquo; &ldquo;bugs fixed to bugs open,&rdquo; and other machine-oriented terms. Yet the unique value proposition of <em>innovative</em> Open Source involves a community of people around a software. This led me on to the next question: <strong>why do we bias towards machine-oriented terms instead of human-oriented or community-oriented terms to describe Open Source communities and division of labor?</strong></p>
<p>However, this question only led to more questions. Much of the existing Open Source discourse on sustainability centers on defining, tracking, and understanding &ldquo;dependencies.&rdquo; Yet when we say dependencies, people typically mean source code, software packages, and license compatibility. So, <strong>how do we describe the value proposition of people and the impact of cross-pollinated communities?</strong></p>
<p>So, what if Open Source dependencies weren&rsquo;t <em>just</em> software? Furthermore, what if Open Source dependencies could mean people… or simply, human beings? In this blog post, we&rsquo;ll walk through this thought experiment.</p>

<h2 id="open-source-dependencies-are-people">Open Source dependencies are people.&nbsp;<a class="hanchor" href="#open-source-dependencies-are-people" aria-label="Anchor link for: Open Source dependencies are people.">🔗</a></h2>
<p>My purpose is to augment the idea of &ldquo;dependencies&rdquo; from exclusively source code to be more inclusive of its authors as well. We typically center software in our Open Source conversations, so I want to deliberately center people. There are many ways to cover this, but I will offer three ways we could think of Open Source dependencies as more than source code:</p>
<ol>
<li>Community inheritance</li>
<li>Legacies</li>
<li>Love</li>
</ol>

<h2 id="dependencies-community-inheritance">Dependencies: Community inheritance&nbsp;<a class="hanchor" href="#dependencies-community-inheritance" aria-label="Anchor link for: Dependencies: Community inheritance">🔗</a></h2>
<p>New, smaller projects sometimes form up underneath or within an existing larger project. Sometimes a new project is created to support the existing project. Sometimes it is a passion project led by a few that aligns with the motivations and values of a wider community. But these new projects begin with an added advantage of inheriting the collaborative ecosystem surrounding the existing project, instead of being tasked to create this from scratch themselves.</p>

<h3 id="why-measure-this">Why measure this?&nbsp;<a class="hanchor" href="#why-measure-this" aria-label="Anchor link for: Why measure this?">🔗</a></h3>
<p>Ask anyone responsible for building an Open Source community from scratch. The approach at this stage is experimental:</p>
<ul>
<li>Will using this feature encourage new contributors to participate?</li>
<li>Does someone in a related field discover our project on a casual whim looking at GitHub?</li>
<li>How do we make our project more accessible for contributors we do not yet have?</li>
</ul>
<p><strong>Many times, it is about forming a hypothesis and then testing it.</strong></p>
<p>However…</p>
<p>If you exist within the dynamic of an existing community, you benefit from resources, people, and infrastructure that would be unavailable if you started independently. Finding communities with compatible values and motives exposes you to a wider network, and thus more visibility in a world where there is already <em>too much</em> information. Working within an existing community can cut light-years off of time-to-market or improving product sustainability and community resiliency (in the context of other variables).</p>

<h3 id="example-of-community-inheritance">Example of community inheritance&nbsp;<a class="hanchor" href="#example-of-community-inheritance" aria-label="Anchor link for: Example of community inheritance">🔗</a></h3>
<p>The <a href="https://docs.fedoraproject.org/en-US/project/">Fedora Project</a> produces Fedora Linux. <a href="https://getfedora.org/">Fedora Linux</a> is a Free and Open Source operating system derived from the open source Linux kernel. The Fedora Project also creates other software in order to facilitate the production, creation, and updates of Fedora Linux. Examples of this are asynchronous <a href="https://github.com/fedora-infra/mote">meeting minute note managers</a>, <a href="https://github.com/fedora-infra/fedocal">community calendars</a>, <a href="https://badges.fedoraproject.org/about">gamified badges</a>, <a href="https://pagure.io/koji">software package distribution tools</a>, and more.</p>
<p>While none of these smaller software projects are the ultimate purpose and goal of the Fedora Project, they are supplementary to the overall goal of <strong>producing Fedora Linux</strong>. The sustainability of these smaller parts ensure a healthier ecosystem around the larger project.</p>
<p>Another way to see this is as a planet with several orbiting moons, where the planet is an existing project and each moon represents another smaller project orbiting around the existing one. Each moon is different, yet each is still connected to the gravitational force and motions of the planet.</p>

<h2 id="dependencies-legacies">Dependencies: Legacies&nbsp;<a class="hanchor" href="#dependencies-legacies" aria-label="Anchor link for: Dependencies: Legacies">🔗</a></h2>
<p>Open Source projects are more than source code. Human beings are social creatures, and Open Source is a social activity. An individual or groups of individuals may influence the hearts and minds of others in the movement. To win hearts and minds is to merge the intentions of the individual with the intentions of the wider community. The power to change minds is the power to move mountains.</p>

<h3 id="why-measure-this-1">Why measure this?&nbsp;<a class="hanchor" href="#why-measure-this-1" aria-label="Anchor link for: Why measure this?">🔗</a></h3>
<p>Open Source is a social activity. It has both a written and oral story-telling tradition. There is a rich history from the movement that first took root in the 1980s. We use stories to expand our imagination, or to see a perspective in a way we might not have before. So, it is important to note the value these historical stories play in shaping our movement and creating leaders.</p>
<p>Legacies of kindness and love result in thriving communities where contributors look out for each other. People are not motivated by the will to survive; they are motivated by the will to thrive with a community. Legacies of discrimination and hate result in divided, splintered communities who are focused on counting their differences instead of seeing how alike we are.</p>

<h3 id="example-of-legacies">Example of legacies&nbsp;<a class="hanchor" href="#example-of-legacies" aria-label="Anchor link for: Example of legacies">🔗</a></h3>
<p><a href="/blog/2018/11/fedora-appreciation-week-tribute-to-a-legacy/">Seth Vidal</a> wrote the Yellowdog Update Manager (Y.U.M.), and he contributed to Fedora. <a href="https://communityblog.fedoraproject.org/remembering-matthew-williams/">Matthew Williams</a> helped others learn about Linux and Open Source, and he contributed to Fedora. <a href="https://communityblog.fedoraproject.org/remembering-thomas-gilliard-satellit/">Thomas Gilliaird</a> helped me with using Fedora Linux in IRC as a teenager, and he contributed to Fedora. The ways we help other humans while on our own journey is how we create a legacy with wider wings. The impact of a few kind people is enough to inspire more to follow.</p>
<p>To ignore the impact of legacies in social activities surrounding Open Source is to deny the impact of charismatic leaders who lead in styles of either unity or division.</p>

<h2 id="dependencies-love">Dependencies: Love&nbsp;<a class="hanchor" href="#dependencies-love" aria-label="Anchor link for: Dependencies: Love">🔗</a></h2>
<blockquote>
<p>Power at its best is <strong>love implementing the demands of justice</strong>. Justice at its best is <strong>love correcting everything that stands against love</strong>.</p>
<p><a href="https://en.wikipedia.org/wiki/Martin_Luther_King_Jr.">Dr. Martin Luther King, Jr.</a></p>
</blockquote>
<p>The act of existence can be political. We cannot escape the sociopolitical environment of our world, no matter how much we wish to push it aside. If we choose to ignore it, there are others who choose to manipulate common ignorance, to the exploit of their own unbounded wealth. We must embrace and acknowledge the political atmosphere permeates our world; it does not disappear and hide away when it makes us uncomfortable.</p>
<p>
<figure>
  <img src="/blog/2021/04/Get_out_of_jail_free.jpg" alt="A Get Out of Jail Free card from the board game Monopoly" loading="lazy">
  <figcaption>From Wikipedia (<a href="https://en.wikipedia.org/wiki/File:Get_out_of_jail_free.jpg" class="bare">https://en.wikipedia.org/wiki/File:Get_out_of_jail_free.jpg</a>).</figcaption>
</figure>
</p>

<h3 id="why-measure-this-2">Why measure this?&nbsp;<a class="hanchor" href="#why-measure-this-2" aria-label="Anchor link for: Why measure this?">🔗</a></h3>
<p>Open Source does not get a <a href="https://en.wikipedia.org/wiki/Get_Out_of_Jail_Free_card">&ldquo;get out of jail free&rdquo; card</a>.</p>
<p>Open Source is political. Its roots in the Free Software movement were firmly rooted in politics, even if they were narrowly confined to a few key issues. The real question is, how do we wield our own political agency and expediency? We should act from our hearts and move to inspired action to correct everything that stands against love.</p>

<h3 id="example-of-love">Example of love&nbsp;<a class="hanchor" href="#example-of-love" aria-label="Anchor link for: Example of love">🔗</a></h3>
<p>This blog post. These words are a radical act of love. Acknowledging it and choosing to embrace it is the first step in using our Open Source power responsibly.</p>
<hr>
<p><em>Featured image arranged by Justin Wheeler. Original photograph by <a href="https://unsplash.com/@goian?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Ian Schneider</a> on <a href="https://unsplash.com/s/photos/community?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</em></p>]]></description></item><item><title>Introducing UNICEF Open Source Mentorship</title><link>https://jwheel.org/blog/2021/07/unicef-open-source-mentorship/</link><pubDate>Tue, 06 Jul 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/07/unicef-open-source-mentorship/</guid><description><![CDATA[<p><em>This post was co-published <a href="https://www.unicefinnovationfund.org/broadcast/expert-posts/introducing-unicef-open-source-mentorship">on the UNICEF Innovation Fund blog</a>.</em></p>
<p>2020 saw the launch of a formalized Open Source Mentorship programme for the <a href="https://www.unicefinnovationfund.org/">UNICEF Innovation Fund</a>, built up on two years of work from <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> expertise and consulting.</p>
<p>The <a href="https://unicef.github.io/inventory/meta/overview/">Open Source Mentorship programme</a> includes <a href="https://unicef.github.io/inventory/meta/modules/#offered">five modules</a> about Open Source intellectual property and communities delivered <a href="https://unicef.github.io/inventory/meta/modules/#program">across twelve months</a>. UNICEF grantees are matched with an experienced Open Source Mentor to guide them through the modules. The mentorship takes an interactive, guided approach to understanding the unique context that each team and product exist within. The assigned Open Source Mentor provides specialized advice and training:</p>
<ul>
<li>Tailored feedback based on business models</li>
<li>Existing local user communities</li>
<li>Best practices for collaborating together with others on similar challenges.</li>
</ul>
<p>The geographic diversity in the UNICEF Open Source Mentorship programme is unusual for technology incubators or accelerator programs. All funded projects come from UNICEF programme countries. The UNICEF Innovation Fund provides equity-free funding for Open Source solutions from local innovators and entrepreneurs solving local problems. To date, the Innovation Fund has invested in teams from over 57 countries. Argentina, India, Iran, Kenya, Mexico, Nepal, and Rwanda represent the most recent incoming cohort in July 2021.</p>
<p>But why does this kind of work matter to UNICEF or the United Nations?</p>

<h2 id="un-roadmap-for-digital-cooperation">UN Roadmap for Digital Cooperation&nbsp;<a class="hanchor" href="#un-roadmap-for-digital-cooperation" aria-label="Anchor link for: UN Roadmap for Digital Cooperation">🔗</a></h2>
<p>In June 2020, the United Nations Secretary-General released the <a href="https://www.un.org/en/content/digital-cooperation-roadmap/assets/pdf/Roadmap_for_Digital_Cooperation_EN.pdf">UN Roadmap for Digital Cooperation</a>, a call for action and a vision with several key considerations:</p>
<ul>
<li>An Inclusive Digital Economy and Society</li>
<li>Human and Institutional Capacity</li>
<li>Human Rights and Human Agency</li>
<li>Trust, Security and Stability</li>
<li>Global Digital Cooperation</li>
</ul>
<p>The report explores the impact technology has in each key area:</p>
<blockquote>
<p>&ldquo;Digital technology does not exist in a vacuum – it has enormous potential for positive change, but can also reinforce and magnify existing fault lines and worsen economic and other inequalities. In 2019, close to 87 per cent of individuals in developed countries used the Internet, compared with only 19 per cent in the least developed countries.&rdquo;</p>
<p><a href="https://www.un.org/en/content/digital-cooperation-roadmap/assets/pdf/Roadmap_for_Digital_Cooperation_EN.pdf">UN Roadmap for Digital Cooperation</a>, June 2020</p>
</blockquote>

<h3 id="open-source-mentorship-enables-digital-cooperation">Open Source Mentorship enables digital cooperation.&nbsp;<a class="hanchor" href="#open-source-mentorship-enables-digital-cooperation" aria-label="Anchor link for: Open Source Mentorship enables digital cooperation.">🔗</a></h3>
<p>Therefore, the conception and development of Open Source Mentorship is inspired by the Roadmap, in four key aspects:</p>
<ol>
<li><strong>Digital Public Goods</strong>: To encourage knowledge transfer and collaboration on practical, everyday advice on building technology projects in line with the <a href="https://digitalpublicgoods.net/standard/">Digital Public Good Standard</a>.</li>
<li><strong>Digital Capacity-Building</strong>: Empowering others with the <a href="/blog/2020/11/open-source-archetypes-unicef-open-source/">skills and information</a> they need to be bringers of Open Source change and innovation in a disruptive and competitive Venture Capital ecosystem.</li>
<li><strong>Digital Trust and Security</strong>: Providing a holistic view of Open Source intellectual property that is influenced by, but not bound by, quarterly earnings reports and share prices. Understanding the commitments of Open Source licenses and technology, and how trust is earned and lost in Open Source products and communities.</li>
<li><strong>Global Digital Cooperation</strong>: Designing and structuring communities to be healthy and collaborative in nature, united in resolving common challenges and problems.</li>
</ol>]]></description></item><item><title>2021 OSI Board of Directors statement of intent</title><link>https://jwheel.org/blog/2021/04/2021-osi-board-of-directors-statement-of-intent/</link><pubDate>Tue, 13 Apr 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/04/2021-osi-board-of-directors-statement-of-intent/</guid><description><![CDATA[<p><em>This first appeared <a href="https://wiki.opensource.org/bin/Main/OSI%20Board%20of%20Directors/Board%20Member%20Elections/2021%20Individual%20and%20Affiliate%20Elections/Flory2021/">on the Open Source Initiative Wiki</a>. In light of the <a href="https://opensource.org/election_update">election update this year</a>, I am republishing my statement of intent on my personal blog.</em></p>
<hr>
<blockquote>
<p>No culture can live if it attempts to be exclusive.</p>
<p>Mahatma Gandhi</p>
</blockquote>
<p>I believe in the value of upholding the Open Source Definition as a mature and dependable legal framework while recognizing the OSI needs to work better with works that are not Open Source. My ambition as a candidate is to support existing work to enable a more responsive, more agile Open Source Initiative.</p>
<p><strong>Twitter:</strong> <a href="https://twitter.com/jwf_foss"><strong>@jwf_foss</strong></a></p>

<h2 id="why-should-you-vote-for-me">Why should you vote for me?&nbsp;<a class="hanchor" href="#why-should-you-vote-for-me" aria-label="Anchor link for: Why should you vote for me?">🔗</a></h2>
<p>I bring a <a href="https://jwheel.org/#unicef">public sector perspective</a> to a conversation where it seems missing, despite the dependent relationship of the public sector to Free and Open Source works. In my work, I provide Open Source mentorship and coaching to humanitarian-driven start-ups hailing from 57 countries. I am an excellent communicator, I understand a subset of challenges faced by Open Source communities, and I have a collaborative nature.</p>
<p>I am also a millennial. The GPL was first drafted before I was born. My lived experience with Free Software and Open Source gives me a vantage point not well-represented in Open Source legal and policy work. My personal experience with Free and Open Source software is impacted by years of untangling my own digital life from technology decisions made for me, not by me. With that in mind, I realize not everyone can afford to be a Free Software purist, but we can still uphold the values of Open Source even if we do not use it exclusively.</p>

<h2 id="who-am-i">Who am I?&nbsp;<a class="hanchor" href="#who-am-i" aria-label="Anchor link for: Who am I?">🔗</a></h2>
<p>I work as an Open Source Technical Advisor at UNICEF in the <a href="https://www.unicef.org/innovation/">Office of Innovation</a>. I manage and support an <a href="https://unicefinnovationfund.org/">Open Source Mentorship programme</a> for start-up investments and teams building Open Source products and communities from more than 57 countries. I also provide Open Source support to other UNICEF colleagues and recently coordinated UNICEF Innovation&rsquo;s participation in the [on-going, at publication time] Outreachy round.</p>
<p>Outside of work, I have contributed to the <a href="https://docs.fedoraproject.org/en-US/project/">Fedora Project</a> for almost six years. I am soon ending a year-long term as the <a href="https://docs.fedoraproject.org/en-US/diversity-inclusion/roles/council-advisor/">Diversity &amp; Inclusion Advisor</a> to the Fedora Council. I am a founding member of the Fedora <a href="https://docs.fedoraproject.org/en-US/commops/">Community Operations</a> and <a href="https://docs.fedoraproject.org/en-US/diversity-inclusion/">Diversity &amp; Inclusion</a> teams. </p>

<h2 id="what-are-my-qualifications">What are my qualifications?&nbsp;<a class="hanchor" href="#what-are-my-qualifications" aria-label="Anchor link for: What are my qualifications?">🔗</a></h2>
<p>I first contributed to Open Source as a teenager. I was a community moderator and staff member of the open source <a href="https://jwheel.org/#spigotmc">SpigotMC project</a>. There, I handled user reports for a community forum with over 400,000 registered members. This is one of the most unique communities I have worked in, as the Spigot Community is a population of hundreds of thousands with an age demographic concentrated between ages 13-25.</p>
<p>Additionally, I am on the <a href="https://jwheel.org/#open-rit">advisory board of Open @ RIT</a>, the Open Source Programs Office for the <a href="https://www.rit.edu/">Rochester Institute of Technology</a> in Rochester, New York. This enables me to work more closely with academia, which has a growing interest in the growing ecosystem of academic Open Source Program Offices.</p>
<p>Finally, I regularly work with teams building Open Source solutions in support of children and UNICEF’s core work. I have lived experience of coaching teams on Open Source best practices across six continents. I have seen where Open Source worked well and where it didn’t. I bring this background and perspective into the work I would do as a member and representative elected by the Open Source Initiative constituency.</p>
<p>In summary, my lived experiences in Open Source, my connection to academic Open Source, and the humanitarian focus of my work make me a uniquely-qualified candidate for the OSI Board.</p>
<hr>

<h2 id="interview-responses">Interview responses&nbsp;<a class="hanchor" href="#interview-responses" aria-label="Anchor link for: Interview responses">🔗</a></h2>
<p>Luis Villa published <a href="https://opensource.com/article/21/3/board-elections-osi">four interview questions</a> for OSI Board candidates on Opensource.com. I originally <a href="https://twitter.com/jwf_foss/status/1370064424229216258">tweeted my response</a>, but I copied it here for wider visibility too.</p>

<h3 id="q1-what-should-osi-do">Q1: What should OSI do…&nbsp;<a class="hanchor" href="#q1-what-should-osi-do" aria-label="Anchor link for: Q1: What should OSI do…">🔗</a></h3>
<p>“…<em>about the tens of millions of people who regularly collaborate to build software online (often calling that activity, colloquially, open source) but have literally no idea what OSI is or what it does?”</em></p>
<p>I am excited at the opportunity to contribute here. The UNICEF Office of Innovation (and my own Open Source Mentorship programme) rely on the Open Source Definition to guide our international Open Source work, even if we are still learning how to do it best. But without the OSD as a guiding light, our work is much harder. My team is well-positioned to be an advocate and voice of support for the Open Source Definition in policy environments where Open Source is not. This relates to on-going <a href="https://gigaconnect.org/">Giga connectivity work</a> to connect schools worldwide to the Internet for equitable education opportunities for children.</p>
<p>So to directly answer the question, we have a conversation. Avoid anger when others choose software that is not Open Source. Avoid exasperated frustration when people pick licenses that are not Open Source. But the first step is always to teach &amp; educate on the stories, values and history of the Free/Open Source community.</p>

<h3 id="q2-if-an-ethical-software-initiative-sprung-up-tomorrow-what-should-osis-relationship-to-it-be">Q2: If an Ethical Software Initiative sprung up tomorrow, what should OSI&rsquo;s relationship to it be?&nbsp;<a class="hanchor" href="#q2-if-an-ethical-software-initiative-sprung-up-tomorrow-what-should-osis-relationship-to-it-be" aria-label="Anchor link for: Q2: If an Ethical Software Initiative sprung up tomorrow, what should OSI&rsquo;s relationship to it be?">🔗</a></h3>
<p>The good folks behind the Ethical Source movement have done so. The OSI needs to be open to collaborate and engage with other orgs who steward legal works that do not adhere to the OSD.</p>
<p>I want to invite the Ethical Source folks into the conversation. How can we better partner together? If elected, I would commit myself to organizing a public town hall or community discussion with the Ethical Source folks. Coraline Ada Ehmke, Tobie Langel, and many other folks are doing great work in this space. So, let&rsquo;s collaborate and work together.</p>

<h3 id="q3-when-a-license-decision-involves-a-topic">Q3: When a license decision involves a topic…&nbsp;<a class="hanchor" href="#q3-when-a-license-decision-involves-a-topic" aria-label="Anchor link for: Q3: When a license decision involves a topic…">🔗</a></h3>
<p>“…<em>on which the Open Source Definition is vague or otherwise unhelpful, what should the board do?”</em></p>
<p>The OSI needs to improve at saying what it is not. We are more clear on what the OSD <strong><em>is</em></strong> than we were even last year. As a candidate, I don&rsquo;t have crazy ideas for the Definition. But there are things that are not Open Source. The world is changing.</p>
<p>We need to adapt. We must be nimble in changing with the world, or the values and motives of the original Free/Open Source movement are at risk of volatility. As a candidate, if presented with an unclear situation, I would take one of two options:</p>
<ol>
<li>If the proposed work stands against a principle of the OSD, it should not be approved as such, or the OSD becomes meaningless; OR</li>
<li>Take an interpretive, &ldquo;living document&rdquo; view of the OSD for new copyleft innovations where the OSD is not clear or ambiguous.</li>
</ol>
<p>For context, I am a copyleft believer. Promoting and advocating for the stability and integrity of Open Source licenses is a fundamental part of my interest as a candidate for the Board.</p>

<h3 id="q4-what-role-should-the-new-staff-play-in-license-evaluation-or-the-osd-more-generally">Q4: What role should the new staff play in license evaluation (or the OSD more generally)?&nbsp;<a class="hanchor" href="#q4-what-role-should-the-new-staff-play-in-license-evaluation-or-the-osd-more-generally" aria-label="Anchor link for: Q4: What role should the new staff play in license evaluation (or the OSD more generally)?">🔗</a></h3>
<p>I don&rsquo;t have an answer to this one. Foundations are mostly new to me. I would defer to expertise and listen to what others with more years have to say. I want to better understand the capacity and ambition of the OSI to take on new work with a steady staff.</p>
<p>I am a collaborator by nature and a team player. So, I want to enable the work for the OSI to be more agile and responsive in what I see as core, critical work.</p>
<hr>
<p>That&rsquo;s it. If you have specific questions, you are welcome to get in touch with me on Twitter or add a comment below.</p>]]></description></item><item><title>What is Freedom?</title><link>https://jwheel.org/blog/2021/04/what-is-freedom/</link><pubDate>Mon, 12 Apr 2021 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2021/04/what-is-freedom/</guid><description><![CDATA[<p>When I first saw the letter asking for Richard Stallman and the FSF Board of Directors resignations with merely five signatures, I knew I had to sign. Not because I knew it would be the popular thing to do. But because it was what was true in my heart. Only in a sense of deep empathy could I understand the reasons why <em>it had finally come to this</em>. I signed the letter because as much as I have personally benefited indirectly by the legacy of Mr. Stallman in my life, I feel his continued presence is harmful and more damaging at the forefront of the movement.</p>
<p>I don&rsquo;t say that casually either. I have involuntarily found Open Source as my calling. Or my people. I contribute to Open Source because I love to collaborate and work together with other people. This challenges me. It humbles me in a way that I know I can always learn something new from someone else. For this, Open Source and Free Software have enriched my life. They have also given me, again involuntarily, an odd but productive way of coping with my own mental health issues, anxiety, and depression.</p>
<p>So how do I make sense of the emotions and feelings I have now? How do I untangle this complicated web of events and reactions by other people? To ignore it doesn&rsquo;t seem possible. If I remove emotion, I am left with a purely rational motive to involve myself in this contemporary issue. My work, profession, and career goals are directly affected by however this discussion goes. There is no way out for me. It&rsquo;s my job, so I have to care. But if you add emotions back in, to stand still and remain idle is heartbreaking. To do nothing is to commit to defeat. Resignation. The darkness.</p>
<p>Yet what is there to do? The only thing Stallman ever directly gave to me in life was an email explaining elegantly how there was nothing he could do for the Minecraft GPL community fiasco. At a time when I was so personally lost as I saw <a href="/blog/2020/04/open-source-minecraft-bukkit-gpl/">a community I love tear itself apart</a>, he stood by idly as the so-called steward of these licenses that I was just too naïve to believe in. That experience to me now is amplified in the light of the much more egregious things he is accused of.</p>
<p>So, the Free Software Foundation welcomes Richard Matthew Stallman back to its board. Wonderful. Congratulations Mr. Stallman. I am going to pause for a moment of sadness and hurt as I contemplate the impact of this moment on our fragile movement, which has much bigger enemies today than it has in its 40 year legacy. But then…</p>
<p>I will move on. Because we have to. The only way is forward.</p>]]></description></item><item><title>Three predictions for Free Software in the 2020s</title><link>https://jwheel.org/blog/2020/12/three-predictions-for-free-software-in-the-2020s/</link><pubDate>Thu, 31 Dec 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/12/three-predictions-for-free-software-in-the-2020s/</guid><description><![CDATA[<p>From January to May 2020, I completed an independent study at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a> on <em>Business and Legal Aspects of Free/Open Source Software</em>. This was the final credit for my completion of the <a href="https://www.rit.edu/study/free-and-open-source-software-and-free-culture-minor">Free and Open Source Software and Free Culture</a> minor.</p>
<p>That semester, I traveled to <a href="/tags/2020-foss-conferences/">different international FOSS conferences</a> (before COVID-19), analyzed contemporary changes and trends in Free Software, and reflected on where <em>I think</em> we are going. I am sharing an edited version of my final report here, as a look into my &ldquo;crystal ball&rdquo; for what is coming to Free Software in the 2020s.</p>

<h2 id="preface">Preface&nbsp;<a class="hanchor" href="#preface" aria-label="Anchor link for: Preface">🔗</a></h2>
<p>There are emerging challenges and changes to the Free Software status quo. Three pieces of context about me will help to understand my perspective.</p>
<p>First, I am a young adult who has contributed to Free Software for a third of my life. At fourteen, I landed my first Open Source contributions. In high school, I participated in Open Source communities with 100,000+ adolescents, teenagers, and young adults. Later, I led community-driven initiatives in Open Source projects <a href="https://en.wikipedia.org/wiki/Red_Hat_Linux">older than me</a>. Thus, these experiences are a significant part of my experience coming into the Free Software movement.</p>
<p>Second, I follow conversations about Open Source sustainability. I regularly collaborate with others who also care about Open Source sustainability. I participate in communities where Open Source sustainability is the key issue to address, like <a href="https://sustainoss.org/">Sustain OSS</a> and the <a href="https://chaoss.community/">CHAOSS Project</a>.</p>
<p>Third, I am a white American male in my early 20s, which yields me certain privileges. I actively work to understand how my privilege constructs my worldview and experiences. I also acknowledge my <strong>freedom to participate</strong> in the global Free Software community is afforded to me in part by who I am. So, I acknowledge these biases in order to frame my perspective.</p>
<p>So, I propose three emerging trends in Free Software across the 2020s:</p>
<ol>
<li>Sustainability of Free Software is here to stay.</li>
<li>Free Software will have its ethics interrogated.</li>
<li>More young people will stay, or leave.</li>
</ol>

<h2 id="free-software-sustainability-is-here-to-stay">Free Software sustainability is here to stay.&nbsp;<a class="hanchor" href="#free-software-sustainability-is-here-to-stay" aria-label="Anchor link for: Free Software sustainability is here to stay.">🔗</a></h2>
<p>Sustainability has subliminal buzzword status today, yet it will not fade from our vocabulary soon. Unlike other tech buzzwords from the last decade, I suspect sustainability is here to stay.</p>
<p>Sustainability is broad though. This analysis begins broadly and then narrows down the definition. To start, here is the Oxford Dictionary definition of sustainability:</p>
<blockquote>
<p>sus·tain·a·bil·i·ty</p>
<p>The ability to be maintained at a certain rate or level.</p>
<p><a href="https://www.lexico.com/en/definition/sustainability">Oxford U.S. dictionary</a></p>
</blockquote>
<p>From this definition, I look at two sub-types of sustainability: software sustainability and Free Software sustainability. While they do overlap, software sustainability is <strong><em>what</em></strong> we build: the technology we make and its ability to last into the future. Free Software sustainability is <strong><em>who</em></strong> and <strong><em>how</em></strong> we build: the people who comprise the Free Software movement and how they work together and collaborate.</p>
<p>Now, sustainability is less overlooked than five or ten years ago. However, we still have competing definitions for what sustainability means. The dictionary defines sustainability as &ldquo;the ability to maintain&rdquo; but there are different ways sustainability is interpreted.</p>

<h3 id="the-maintainer-and-the-corporation">The maintainer and the corporation&nbsp;<a class="hanchor" href="#the-maintainer-and-the-corporation" aria-label="Anchor link for: The maintainer and the corporation">🔗</a></h3>
<p>For example, to an Open Source software maintainer, the &ldquo;ability to maintain&rdquo; might mean their ability to pay for their bills, live securely and safely in their day-to-day lives, or supporting a family. On the other hand, to a corporation that depends on Open Source software for their business, the &ldquo;ability to maintain&rdquo; might mean the ability to make new software releases at a specific cadence. It could be lines of code added and removed, or the number of commits made. Both perspectives are valid, but they imply different expectations of what maintenance requires.</p>
<p>On first consideration, these competing definitions make the landscape confusing. But surprisingly, this varied interpretation does not weaken sustainability; it strengthens it. It creates more opportunities to collaborate and work together in solving common problems in new, intersectional ways. Instead of focusing on common differences, it encourages seeing common problems first. While the definitions of sustainability might be different between an independent tech freelancer and an engineering manager in a Silicon Valley tech corp, both of these people could still work together on something that benefits both of them.</p>
<p>While I cannot predict what sustainability will mean to us in 2030, I am confident it will not mean the same as it is today. So, I am interested to both observe and participate in the shaping of the sustainability conversation in software and Free Software communities over the next decade.</p>

<h2 id="free-software-will-have-its-ethics-interrogated">Free Software will have its ethics interrogated.&nbsp;<a class="hanchor" href="#free-software-will-have-its-ethics-interrogated" aria-label="Anchor link for: Free Software will have its ethics interrogated.">🔗</a></h2>
<p>Free Software emerged in the 1970s as a social movement in an act of defiance to a global market change, when software became a commodity. Activists stood together and asserted what they believed to be essential freedoms of all computer users. So, Software Freedom as a concept was born through the <a href="/blog/2020/04/how-did-free-software-build-a-social-movement/">GNU Project in 1983</a>.</p>
<p>Today, a similar storm is on our horizon. The world is shifting again. It is not just software that is a commodity. It is <a href="/blog/2020/04/fosdem-2020-pt-2-can-free-software-include-ethical-ai-systems/">data and human futures</a>. Free Software was a bold assertion of essential freedoms about software. But those in the 1980s did not know how the world would change nearly forty years later. Today, the plot has thickened. The world is more complex. Technology impacts our lives in ways we never imagined in 1983. Software Freedom may protect us in one aspect of our digital lives, but it fails us in other ways.</p>

<h3 id="ethical-source">Ethical Source?&nbsp;<a class="hanchor" href="#ethical-source" aria-label="Anchor link for: Ethical Source?">🔗</a></h3>
<p>Perhaps this is best understood by looking at the attitude towards the <a href="https://ethicalsource.dev/">Ethical Source movement</a> by those in the Free Software world. There are a wide range of views and opinions. It is difficult to build common consensus and understanding across these groups. Yet, somehow, we cannot move past this conversation. It persists.</p>
<p>One famous example is the Java programming language license that forbid its use in nuclear submarines. For this reason, Free Software activists did not consider Java as Open Source until Sun Microsystems and subsequently Oracle were challenged. To some, freedom meant the ability to do anything—with no limitations—to the original work. For others still, freedom means the freedom of <em>all</em> people. The &ldquo;freedom to use&rdquo; is a controversial freedom in respect to certain ways we use software.</p>

<h3 id="join-or-die">&ldquo;<a href="https://en.wikipedia.org/wiki/Join,_or_Die">Join, or Die.</a>&rdquo;&nbsp;<a class="hanchor" href="#join-or-die" aria-label="Anchor link for: &ldquo;Join, or Die.&rdquo;">🔗</a></h3>
<p>Is there a consensus today in the Free Software or Ethical Source worlds about how we address the ethical issues of our field? No. There is not. Inside each movement, there are disagreements and differences on what is the most effective way to accomplish collective goals of building a more fair and just world. Depending on our unique perspectives and backgrounds, we have different views on the methods and means of how we address issues of ethical and unethical uses of software. I am doubtful there is a common definition of what ethical and unethical means in the narrow context of software. We have not yet <em>clearly</em> agreed on those definitions in global and transnational legal and judiciary systems.</p>
<p>It is not clear to me which way the winds will blow in the 2020s. But what is clear is that the storm is coming. Either the Free Software movement will fragment on different definitions of Freedom, or it will collectively converge around a new set of values updated to the ways the world changed so far in the 21st century (or even just 2020 alone).</p>
<p>One path weakens us all, amid global political shifts reminiscent of 20th century nationalist politics. The other path unifies us and builds common power together for the things we can change. I just hope the Free Software movement chooses right.</p>

<h2 id="free-software-will-see-more-young-people-stay-or-leave">Free Software will see more young people stay, or leave.&nbsp;<a class="hanchor" href="#free-software-will-see-more-young-people-stay-or-leave" aria-label="Anchor link for: Free Software will see more young people stay, or leave.">🔗</a></h2>
<p>Free Software will either be more inclusive of young people and new ideas, or it will see these young people move on to something else and fragment the movement.</p>
<p>In my own life, there were decisions and opportunities to influence the building of my digital life. But it was a paradox of choice, whether I wanted this digital life or not. It was simply the reality of the world I grew up in.</p>
<p>I am a millennial. The world changed around me as a child, as I grew into this new hyper-connected digital era. I owned my first computer at four years old. My home had a (dial-up) Internet connection when I was six. In grade school, I built a community site and online forum for my class. In high school, I participated in and moderated international online communities. These experiences collectively informed my worldview as someone who grew up on the budding World Wide Web.</p>

<h3 id="the-world-the-children-made">&ldquo;The world the children made.&rdquo;&nbsp;<a class="hanchor" href="#the-world-the-children-made" aria-label="Anchor link for: &ldquo;The world the children made.&rdquo;">🔗</a></h3>
<p>Millennials were the first generation to inherit the new always-online world <a href="https://en.wikipedia.org/wiki/The_Veldt_%5C%28short_story%5C%29">built by the generation before</a>. This is true for many others my age or younger who are transitioning into global citizens. This is no small part enabled by the constant-connectivity of the Internet mixed with different social and environmental circumstances we are born into. Young people are coming, and it is an open question whether Free Software will include them. Or if it will only include a select few who subscribe to the same pre-existing value system.</p>
<p>It is difficult to articulate this well, but I think Free Software will face a challenge of inclusivity for my generation. Either it will encourage and foster the next generation of Free Software activists to assert and protect our basic freedoms of computers, or it will isolate and push those people away from being a part of this movement.</p>
<p>Will others my age, or younger, emerge as leaders in their own right in the Free Software movement? Or will young people start something new that is more welcoming and empowering to them as individuals?</p>

<h2 id="what-now">What now?&nbsp;<a class="hanchor" href="#what-now" aria-label="Anchor link for: What now?">🔗</a></h2>
<p>Just like the Free Software activists of the 1980s and 1990s, I cannot predict precisely how the world will change. But I think it is valuable to step back from the hustle and bustle of daily life to think constructively about <strong><em>where</em></strong> we are going. We can fall into a routine of living our life comfortably because it is easy, but our comforts can cover our consciousness unless we evaluate our own views and biases for what they are.</p>
<p>I cannot know for sure where we are going, but I am committed to the belief that there are essential freedoms that we, as human beings, have in the context of the systems and digital worlds we create together. It is to this core belief that I bind myself, and I am excited as much as I am nervous for what changes are to come in this next decade of Free Software.</p>
<hr>
<p><em>This blog post was originally written for an independent study at the Rochester Institute of Technology as a supplement for IGME-583 Legal and Business Aspect of FOSS. Special thanks goes to my faculty advisor, D. Joe, for supervising this independent study and being a sounding box for ideas, perspectives, and thoughts.</em></p>
<p><em>Original photo by <a href="https://unsplash.com/@freegraphictoday?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">AbsolutVision</a> on <a href="https://unsplash.com/s/photos/future?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>. Modified by <a href="https://jwheel.org">Justin Wheeler</a> for this blog post. Special thanks to <a href="https://www.linkedin.com/in/wilfriede">Wilfried Hounyo</a>, <a href="https://nolski.rocks/">Mike Nolan</a>, and <a href="https://oliviagallucci.home.blog/">Olivia Gallucci</a> for reviewing.</em></p>]]></description></item><item><title>How Mozilla Open Source Archetypes influence UNICEF Open Source Mentorship</title><link>https://jwheel.org/blog/2020/11/open-source-archetypes-unicef-open-source/</link><pubDate>Tue, 10 Nov 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/11/open-source-archetypes-unicef-open-source/</guid><description><![CDATA[<p>In May 2018, Mozilla and Open Tech Strategies released a 40-page report titled, &ldquo;<em>Open Source Archetypes</em>&rdquo;. This blog post is a recap of how this report influences the Open Source Mentorship programme I lead at the UNICEF Innovation Fund.</p>
<p>I joined the UNICEF Innovation team in June 2020, although this is <a href="/blog/2018/02/unicef-internship/">not the first time</a> I have worked with UNICEF Innovation. I have had <a href="https://www.unicef.org/innovation/stories/unicefs-open-source-approach-innovation">some opportunity</a> to write about Open Source, but my personal blog has been quiet! So, this felt like the right opportunity to talk about what I am up to these days.</p>
<p>The <em>Open Source Archetypes</em> report (<em>below</em>) provides nine archetypes common among Open Source projects and communities. These archetypes provide a common language and perspective to think about how to capture the most value of Open Source in various contexts.</p>
<p><a href="/docs/Open-Source-Archetypes-Mozilla-Open-Tech-Strategies-May-2018.pdf">Open Source Archetypes (May 2018)</a><a href="/docs/Open-Source-Archetypes-Mozilla-Open-Tech-Strategies-May-2018.pdf">Download</a></p>
<p>This article covers the following topics:</p>
<ol>
<li>How <em>Open Source Archetypes</em> align with my experience</li>
<li>How I use <em>Open Source Archetypes</em> at UNICEF</li>
<li>Unanswered questions</li>
</ol>

<h2 id="how-open-source-archetypes-align-with-my-experience">How <em>Open Source Archetypes</em> align with my experience&nbsp;<a class="hanchor" href="#how-open-source-archetypes-align-with-my-experience" aria-label="Anchor link for: How Open Source Archetypes align with my experience">🔗</a></h2>
<p>The <em>Open Source Archetypes</em> report is useful to me because it aligns with my own experiences and encounters with common Free and Open Source Software projects. An advantage of taking my alma mater&rsquo;s <a href="https://www.rit.edu/study/free-and-open-source-software-and-free-culture-minor">Free and Open Source Software and Free Culture Minor</a> is experiencing what real Open Source projects are like long before I entered the industry. The projects and organizations I contributed to and interacted with all ran their projects in one of the nine models identified in the report.</p>
<p>The <em>Open Source Archetypes</em> report speaks to my personal experience either using or contributing to projects like <a href="https://jwheel.org/#fedora">Fedora</a>, <a href="https://github.com/kubernetes/minikube/commits?author=justwheel">Kubernetes</a>, <a href="https://www.spigotmc.org/threads/its-been-an-amazing-three-years.185023/">SpigotMC</a>, <a href="https://musicbrainz.org/user/jflory/edits">MusicBrainz</a>, and various independent projects. <strong>The value of Open Source for any project is in meeting the goals of the intended audience.</strong> By itself, &ldquo;Open Source&rdquo; is a broad term, even if it does have a <a href="https://opensource.org/osd-annotated">legal definition</a>. My experiences taught me the importance of how different Open Source projects meet the needs of different audiences, or even different combinations and balances of audiences. The <em>Open Source Archetypes</em> report creates language for something I previously only understood through direct experience.</p>
<p>When I first read the report earlier in 2020, I knew it was relevant to my work. But how could I begin to integrate it into the Open Source Mentorship programme I manage for the UNICEF Innovation Fund?</p>

<h2 id="how-i-use-open-source-archetypes-at-unicef">How I use <em>Open Source Archetypes</em> at UNICEF&nbsp;<a class="hanchor" href="#how-i-use-open-source-archetypes-at-unicef" aria-label="Anchor link for: How I use Open Source Archetypes at UNICEF">🔗</a></h2>
<p>The <a href="https://unicefinnovationfund.org/">UNICEF Innovation Fund</a> provides early stage funding and support to frontier technology solutions that benefit children and the world. Most teams in the Innovation Fund are from countries where UNICEF has an <a href="https://www.unicef.org/about/execboard/files/CPDs_ending_in_2021-EN-2020.10.05.pdf">ongoing country programme</a>.</p>
<p>A requirement for solutions we fund is that they must be Open Source. I have seen many different types of projects and business models since I started working as a <a href="https://jwheel.org/#librecorps">part-time consultant</a> for UNICEF in 2018. As exciting as this is, it was challenging to understand the best way of supporting each team and their Open Source projects. Each team and project had differences unrelated to their source code, but closely tied to their business models and impact they wanted to have through their work.</p>
<p>So, the <em>Open Source Archetypes</em> report have me language. It gave me examples and explanations of how Open Source can work to teams who had little to no prior experience of Working Open. I take the unique context and details I understand about each team I work with, and contextualize what they are doing compared to the different models in the report.</p>
<p>The feedback I received so far on the report with the 15+ teams I currently work with is mostly positive. Some teams exclaimed this report was what they wish could have read months before because it resolved many of their doubts. Others were more overwhelmed, and needed extra time to read and review.</p>
<p>For my role as a mentor, the Open Source Archetypes report gives me cues for how to best support and direct each team I work with. The task of building an Open Source community or participating in an existing one is not a small task. Whether it is documentation, project management, quality assurance and testing, or community engagement, I have yet to see any small team accomplish all of these things at once. So, identifying which archetype a team best identifies with gives me a cue to guide the teams on their path forward. It gives me context for how to make Open Source something that works for them instead of against them.</p>

<h2 id="unanswered-questions">Unanswered questions&nbsp;<a class="hanchor" href="#unanswered-questions" aria-label="Anchor link for: Unanswered questions">🔗</a></h2>
<p>I have great appreciation and gratitude for the folks at Mozilla and Open Tech Strategies who compiled this report. But it was written over two years ago, and like all things in life, things can change. So, while I look comfortably from the position of hindsight, there are some critiques and missing components to the Open Source Archetypes reports.</p>
<p>My unanswered questions are below.</p>

<h3 id="does-the-linux-kernel-and-subsequently-linux-distributions-represent-another-unwritten-archetype">Does the Linux kernel (and subsequently, Linux distributions) represent another unwritten archetype?&nbsp;<a class="hanchor" href="#does-the-linux-kernel-and-subsequently-linux-distributions-represent-another-unwritten-archetype" aria-label="Anchor link for: Does the Linux kernel (and subsequently, Linux distributions) represent another unwritten archetype?">🔗</a></h3>
<p>The report explicitly avoided using the Linux kernel as the basis for any archetype:</p>
<blockquote>
<p>In some ways the Linux kernel project could be considered “Wide Open”. However, both technically and culturally, Linux kernel development is sui generis and we have deliberately avoided using it as the basis for any archetype.</p>
<p><em>Open Source Archetypes</em>, Page 17</p>
</blockquote>
<p>Contextualizing a project like Linux is hard. There is a lot of history to a project that first launched over email in 1991. There are many &ldquo;yes, but&quot;s about decisions made 10 or even 25 years ago that would not replay the same way in 2020.</p>
<p>Yet this is important work. Linux represents not just the kernel, but also large, decentralized sub-units of other systems that integrate the kernel in order to make it useful (e.g. Ubuntu, Fedora, Debian, Arch Linux, you name it). These sub-communities include large entities and corporations, spanning multiple countries and organizations of various sizes.</p>
<p>The Linux kernel communities are worthy of a deeper look, possibly in order to define a new archetype.</p>

<h3 id="how-can-open-source-archetypes-better-fit-the-socialhumanitarian-sector">How can Open Source Archetypes better fit the social/humanitarian sector?&nbsp;<a class="hanchor" href="#how-can-open-source-archetypes-better-fit-the-socialhumanitarian-sector" aria-label="Anchor link for: How can Open Source Archetypes better fit the social/humanitarian sector?">🔗</a></h3>
<p>The archetypes shared in the report largely focus on business sustainability. In other words, the report is biased towards Mozilla&rsquo;s interest in funding the research in order to better understand how to support a commercially-successful Open Source project. To me, there seems like a gap in models that often work for Open Source projects perhaps like <a href="https://ureport.in/about/">U-Report</a> and <a href="https://www.ushahidi.com/about">Ushahidi</a>.</p>
<p>This is an area of interest to me, and likely others in the UN and NGO space. The report could do more to address these kinds of projects.</p>

<h2 id="how-would-you-teach-open-source">How would you teach Open Source?&nbsp;<a class="hanchor" href="#how-would-you-teach-open-source" aria-label="Anchor link for: How would you teach Open Source?">🔗</a></h2>
<p>To conclude, the Open Source Archetypes report is an invaluable tool that provides me language and context for teaching others about Free and Open Source Software.</p>
<p>How would you teach Open Source? What models, research, or tools would you use to inform an Open Source mentorship or education programme? Share your thoughts below in the comments!</p>]]></description></item><item><title>Cryptographic Autonomy License (CAL-1.0): My first license review</title><link>https://jwheel.org/blog/2020/10/cryptographic-autonomy-license-cal-1-0/</link><pubDate>Wed, 28 Oct 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/10/cryptographic-autonomy-license-cal-1-0/</guid><description><![CDATA[<p>The bookmark was creeping on my browser&rsquo;s toolbar for months. &ldquo;Cryptographic Autonomy License&rdquo; CAL-1.0 on the <a href="https://opensource.org/licenses/CAL-1.0">Open Source Initiative webpage</a>. But today, I decided it was time to do my first amateur license review. This is a fun exercise (for me). Remember, <strong>I am not a lawyer and this does not constitute legal advice</strong>!</p>
<p>The <strong>Cryptographic Autonomy License</strong> is one of newest Open Source licenses on the block. The Open Source Initiative <a href="https://lists.opensource.org/pipermail/license-review_lists.opensource.org/2020-February/004693.html">approved</a> it in February 2020. This license also made ripples when it came through. But the question I had, and <a href="/blog/2020/04/copyleftconf-2020-quick-rewind/">could not find a clear answer to</a>, was <em>why is it so interesting</em>?</p>
<p>This blog post is my attempt to do a casual coffee-table review of the license. If you agree or disagree, I encourage you to leave a comment and share your opinion and <strong>why</strong>!</p>
<p>This short article covers three sections:</p>
<ol>
<li><strong>CAL-1.0 provisions</strong>: What basic Free Software assumptions are present in the license, much like other copyleft licenses.</li>
<li><strong>What&rsquo;s fresh!!</strong>: What is the hype? Ready for the key information? It is covered here.</li>
<li><strong>Personal takeaways</strong>: My personal thoughts on this license and where it might be applicable.</li>
</ol>

<h2 id="cal-10-provisions">CAL-1.0 provisions&nbsp;<a class="hanchor" href="#cal-10-provisions" aria-label="Anchor link for: CAL-1.0 provisions">🔗</a></h2>
<p>I learned there are basic assumptions and expectations that are true for all Open Source licenses, per the <a href="https://opensource.org/osd-annotated">Open Source Definition</a>. Copyleft licenses also have different degrees of rigidity depending on context and use. So, what basic ingredients of a Free Software license are present in the Cryptographic Autonomy License?</p>
<p><em>Note</em>: The number in parentheses before each line is the corresponding section number in the license text.</p>

<h3 id="basic-legal-provisions">Basic legal provisions&nbsp;<a class="hanchor" href="#basic-legal-provisions" aria-label="Anchor link for: Basic legal provisions">🔗</a></h3>
<ul>
<li>(<em>6.0</em>) <strong>Disclaimer of warranty, limit on liability</strong>: If someone uses the software and it causes unexpected disastrous side effects, the Licensor cannot be held responsible.</li>
<li>(<em>2.0</em>) <strong>Receiving a license</strong>: Anyone can receive a CAL-1.0 license. To receive it, you just have to agree to its rules.</li>
<li>(<em>7.4</em>) <strong>Attorney fees</strong>: If a case involving noncompliance with the CAL-1.0 is brought to court, loser pays legal fees for prosecution and defense.</li>
<li>(<em>7.3</em>) <strong>No sub-licensing</strong>: You cannot add another license &ldquo;on top&rdquo; of the CAL-1.0.</li>
<li>(<em>3.0</em>) <strong>Patent clause</strong>: Got patents? This license is equipped to interface with external patent licenses.</li>
</ul>

<h3 id="permissive-provisions">Permissive provisions&nbsp;<a class="hanchor" href="#permissive-provisions" aria-label="Anchor link for: Permissive provisions">🔗</a></h3>
<ul>
<li>(<em>4.1</em>) <strong>Access</strong>: Source code must be made available over a network with this license.</li>
<li>(<em>4.3</em>) <strong>Attribution</strong>: Cite your sources. Retain all licensing, authorship, and/or attribution notices.</li>
</ul>

<h3 id="copyleft-provisions">Copyleft provisions&nbsp;<a class="hanchor" href="#copyleft-provisions" aria-label="Anchor link for: Copyleft provisions">🔗</a></h3>
<ul>
<li>(<em>4.1</em>) <strong>Modified Work</strong>: Changes to the original Work make it a Modified Work. Same license rules apply to a Modified Work.</li>
<li>(<em>5.2</em>) <strong>Reinstatement</strong>: A la GPLv3, for non-compliant derivative works, there is a 60 day grace period to come into compliance before your license is terminated.</li>
<li>(<em>4.5</em>) <strong>Combined Work Exception</strong>: Software in the Larger Work as well as the Larger Work as a whole may be licensed under the terms of your choice.</li>
<li><strong>Network use</strong>: A la AGPL, it also includes a trigger for network use.</li>
</ul>

<h2 id="whats-fresh">What&rsquo;s fresh!!&nbsp;<a class="hanchor" href="#whats-fresh" aria-label="Anchor link for: What&rsquo;s fresh!!">🔗</a></h2>
<p>The fresh take on this license from other licenses is all in <strong>4.2. Maintain User Autonomy</strong>:</p>
<blockquote>
<p>In addition to providing each Recipient the opportunity to have Access to the Source Code, You cannot use the permissions given under this License to interfere with a Recipient’s ability to fully use an independent copy of the Work generated from the Source Code You provide with the Recipient’s own User Data.</p>
<p>Section 4.2 Maintain User Autonomy: intro text</p>
</blockquote>
<p>My non-lawyer take on this is that user data plays a much more prominent role in the terms of this license than other copyleft licenses. Just like the AGPL was a response to the changing world of network services and cloud computing, the CAL-1.0 is a response to the changing world of machine learning and data science.</p>
<p>The CAL-1.0 seems to define &ldquo;user autonomy&rdquo; in the context of actually <em>using</em> the software, versus something more holistic like <a href="https://techautonomy.org/">Digital Autonomy</a>. In other words, if you are running CAL-1.0 software, you cannot interfere with requests for personal user data from your users.</p>
<p>This might not sound so radical, but it really is. It is a radical way to assert users&rsquo; ownership of their data. If you are the end user of a distributed or cloud-based app licensed under CAL-1.0, <strong>you are enabled (to some degree) to request copies of personal user data without interference or obfuscation.</strong></p>

<h3 id="cal-10-and-hatbrim-technologies">CAL-1.0 and Hatbrim Technologies&nbsp;<a class="hanchor" href="#cal-10-and-hatbrim-technologies" aria-label="Anchor link for: CAL-1.0 and Hatbrim Technologies">🔗</a></h3>
<p>To better explain this, consider this made-up example.</p>
<p>I am a product manager at Hatbrim Technologies. Hatbrim develops an integrated calendar application, <strong>Holocal</strong>, to store events, meetings, and reminders. Holocal is an integrated application that includes a front-end component, back-end component, and a machine learning algorithm. The algorithm offers tailored suggestions to reduce my meeting load based on my common meeting patterns with other events or activities I have planned.</p>
<p>Oraculous, a competing company to Hatbrim Technologies, creates a fork of Holocal called <strong>OraCal</strong>. It is almost functionally identical to Holocal except it also adds an integration to other services from Oraculous. However, OraCal also modifies the calendar optimization algorithm. It adds a periodic random event suggestion based on events and activities in your calendar.</p>

<h3 id="meanwhile-at-hatbrim">Meanwhile at Hatbrim…&nbsp;<a class="hanchor" href="#meanwhile-at-hatbrim" aria-label="Anchor link for: Meanwhile at Hatbrim…">🔗</a></h3>
<p>Since I am a product manager at Hatbrim, I turn to my trusty team of developers and ask them to explore the OraCal fork of Holocal. I am curious to know how their calendar optimization method works, since Oraculous must also release OraCal under the Cryptographic Autonomy License (CAL-1.0). My team of developers review the OraCal code, try making changes to Holocal, but we are unable to replicate this feature of OraCal in our environment.</p>
<p>Eventually, one developer runs OraCal internally, but optimized for our data. Still no luck to reproduce the nifty calendar event suggestion feature! Fortunately, the CAL-1.0 offers a protection here. So, the developer sends an email to Oraculous to request her personal user data from OraCal provided to her. Because the CAL-1.0 has provisions to prevent foul play or modifying the data, the developer receives a copy of her data and realizes another Oraculous tool was scrubbing and appending data for calendar predictions before it returned to OraCal.</p>
<p>In this hypothetical scenario, our developer is ultimately able to understand how the Modified Work is changed and how Oraculous adapted the original Work. Under another copyleft license like any GPL variant or the Mozilla Public License, a licensee has no obligation to share any user data with an end user. For any reason. Unless they happen to be nice or because another legal authority or body holds them accountable to share user data.</p>

<h2 id="cal-10-personal-takeaways">CAL-1.0 personal takeaways&nbsp;<a class="hanchor" href="#cal-10-personal-takeaways" aria-label="Anchor link for: CAL-1.0 personal takeaways">🔗</a></h2>
<p>Did I mention I am not a lawyer and this does not constitute legal or financial advice? In case I did not, <strong>I am not a lawyer and this does not constitute legal or financial advice</strong>.</p>
<p>This advice and interpretation of the license is raw and unfiltered. But you only read something for the first time but once. So, with all other contemporary issues in the Free Software world going on, I thought it would be a fun exercise to draft this blog post as I read through the Cryptographic Autonomy License for the first time.</p>
<p>Ultimately, my takeaways after reading and reflecting on the license a few times is this:</p>
<ol>
<li><strong>Lack of transparency in motivation</strong>: <a href="https://holo.host/">Holo</a>, the company behind the license, emphasizes all the good qualities of this license while sneakily dodging the fact that it is a mildly anti-competitive license for their business case.</li>
<li><strong>Precedent-setting</strong>: This is the first approved Open Source license that <a href="https://medium.com/holochain/why-cal-is-important-to-the-end-user-aec58b2ff730">explicitly does anything significant about data</a>. It will be interesting to see if this inspires other licenses that make definitions on data.</li>
<li><strong>Potentially powerful if picked up</strong>: If used more widely or in more popular projects, it has potential to disrupt the status quo of how Open Source thinks about user data and the autonomy of the end user.</li>
<li><strong>No defining moment</strong>: To my knowledge, CAL-1.0 lacks a significant defining moment since its approval. It is unclear what real-world noncompliance litigation looks like. It lacks the battle-testing of other copyleft licenses.</li>
</ol>
<p>I imagine I am not the only one who feels mutually excited and hesitant about the Cryptographic Autonomy License. I am not sure if it makes sense to apply to any of my work or to recommend as a default license to others yet. And licensing is only but one of many pathways in the Free Software legal and policy world. But nonetheless, it is an interesting Free Software development that is still maturing since February 2020.</p>
<hr>
<p><em>Photo by <a href="https://unsplash.com/@markusspiske?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Markus Spiske</a> on <a href="https://unsplash.com/s/photos/access?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>. Modified by Justin Wheeler.</em></p>]]></description></item><item><title>Hacktoberfest 2020 with TeleIRC</title><link>https://jwheel.org/blog/2020/10/hacktoberfest-2020-with-teleirc/</link><pubDate>Mon, 12 Oct 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/10/hacktoberfest-2020-with-teleirc/</guid><description><![CDATA[<p>October is here! If you contribute to Open Source projects, you might know that October is the month of Hacktoberfest. <a href="https://hacktoberfest.digitalocean.com/">DigitalOcean teams up</a> with different partners each year to send a t-shirt (or plant a tree on your behalf) for anyone who makes four GitHub Pull Requests in October. And guess what? TeleIRC is a participating project for you to get your Hacktoberfest t-shirt or tree!</p>
<p>This post identifies specific tasks the TeleIRC team identified as &ldquo;good first issues&rdquo; for Hacktoberfest hackers. They are in order of least difficult to most difficult. Golang developers especially are encouraged to participate!</p>

<h2 id="why-work-on-teleirc-for-hacktoberfest">Why work on TeleIRC for Hacktoberfest?&nbsp;<a class="hanchor" href="#why-work-on-teleirc-for-hacktoberfest" aria-label="Anchor link for: Why work on TeleIRC for Hacktoberfest?">🔗</a></h2>
<p>Before sharing how you can contribute for Hacktoberfest, what about <em>why</em> you should contribute?</p>
<p>TeleIRC originally launched in 2016. Since then, we have <a href="/tags/teleirc/">built up a community of users</a> around the world. TeleIRC is also used in other larger Open Source projects like the Fedora Project and LibreOffice! Of course, it is still used in the Rochester Institute of Technology community where it was first developed.</p>
<p>Working on TeleIRC means you can contribute to a project that is actually used in the real world. Hundreds of user communities, some even the size of thousands of people, use TeleIRC. Your improvements and changes will help the many downstream users of our project. (P.S. – See the full list of <a href="https://docs.teleirc.com/en/latest/about/who-uses-teleirc/">who uses TeleIRC</a> in our docs!)</p>
<p>With that out of the way… let&rsquo;s talk about what there is to do!</p>

<h2 id="1-large-messages-go-to-a-pastebin">#1: Large messages go to a pastebin&nbsp;<a class="hanchor" href="#1-large-messages-go-to-a-pastebin" aria-label="Anchor link for: #1: Large messages go to a pastebin">🔗</a></h2>
<p>This corresponds to <a href="https://github.com/RITlug/teleirc/issues/56">RITlug/teleirc#56</a>.</p>
<ul>
<li><strong>Goal</strong>: When a Telegram user writes a single line that exceeds the maximum number of characters for an IRC message (512 characters, per <a href="https://www.rfc-editor.org/rfc/rfc1459.html#section-2.3">RFC 1459, section 2.3</a>), send the string to a pastebin service.</li>
<li><strong>Success criteria</strong>: Any line greater than 512 characters is sent to a pastebin-like service.</li>
<li><strong>What we think</strong>: Note the difference between &ldquo;lines&rdquo; and &ldquo;messages&rdquo;. Telegram users can add line breaks to messages. TeleIRC should respect those line breaks as new IRC messages. So, only a single line that exceeds the maximum should go to a pastebin-like service.</li>
</ul>

<h2 id="2-telegram-poll-handler">#2: Telegram Poll handler&nbsp;<a class="hanchor" href="#2-telegram-poll-handler" aria-label="Anchor link for: #2: Telegram Poll handler">🔗</a></h2>
<p>This corresponds to <a href="https://github.com/RITlug/teleirc/issues/267">RITlug/teleirc#267</a>.</p>
<ul>
<li><strong>Goal</strong>: Send text representations of Telegram Polls to IRC. Currently, Polls are ignored by TeleIRC and do not appear in any way on IRC.</li>
<li><strong>Success criteria</strong>: If a Telegram user sends a Poll to a group, a text representation should appear in IRC.</li>
<li><strong>What we think</strong>: IRC users will not be able to participate in Polls. This is a platform limitation. However, IRC users should get some context about what a Poll includes, e.g. what the question is and what answer choices are available.</li>
</ul>

<h2 id="3-support-more-encoding-types-eg-cp1251">#3: Support more encoding types (e.g. CP1251)&nbsp;<a class="hanchor" href="#3-support-more-encoding-types-eg-cp1251" aria-label="Anchor link for: #3: Support more encoding types (e.g. CP1251)">🔗</a></h2>
<p>This corresponds to <a href="https://github.com/RITlug/teleirc/issues/332">RITlug/teleirc#332</a>.</p>
<ul>
<li><strong>Goal</strong>: Support more string encoding types than UTF-8.</li>
<li><strong>Success criteria</strong>: If a Telegram user writes a message in Cyrillic script, it should appear in Cyrillic script on IRC (if the server supports it, e.g. CP1251).</li>
<li><strong>What we think</strong>: This is one of the toughest issues we have and requires knowledge about string encoding methods. The current core developers are native English speakers and we do not use other languages that have non-Latin script. The GitHub issue has more info, but it will need additional research or knowledge about string encoding.</li>
</ul>

<h2 id="need-hacktoberfest-help-come-talk-to-us">Need Hacktoberfest help? Come talk to us!&nbsp;<a class="hanchor" href="#need-hacktoberfest-help-come-talk-to-us" aria-label="Anchor link for: Need Hacktoberfest help? Come talk to us!">🔗</a></h2>
<p><strong>Want to work on any of these?</strong> Add a new comment to the GitHub Issue and let us know you are interested in working on it.</p>
<p><strong>Have questions about the project or getting started?</strong> Come talk with the TeleIRC team! Of course, you can find us both on IRC (<code>#rit-lug-teleirc</code> on Freenode IRC) and Telegram (<a href="https://t.me/teleirc">@teleirc</a>).</p>
<p>Additionally, the TeleIRC team meets virtually <strong>every Sunday at 11:00 U.S. EDT / 15:00 UTC</strong>. Ask us for a calendar invite in our team chat if you would like one!</p>]]></description></item><item><title>Your Software Freedom is not my Software Freedom: A reflection on Chadwick Boseman</title><link>https://jwheel.org/blog/2020/09/your-software-freedom-is-not-my-software-freedom-a-reflection-on-chadwick-boseman/</link><pubDate>Tue, 29 Sep 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/09/your-software-freedom-is-not-my-software-freedom-a-reflection-on-chadwick-boseman/</guid><description><![CDATA[<p><em>Trigger warning: Grief, police violence, death.</em></p>
<p><em>This blog post was first written on August 28th, 2020.</em></p>
<p>Today is a sad day. Chadwick Boseman is dead. At 43 years old, he lost a terminal battle with stage IV colon cancer. As his great light dims, I am left to wonder what loss will happen next in 2020.</p>
<p>But like the ashes of a phoenix, we will rise. His death reminds me of the fierce urgency of now, as said by Dr. Martin Luther King Jr. That in the moment of darkness that follows death, a new bright light will emerge. It is just so human for us to cling to the embers of hope, in the fear that we will one day be delivered from suffering.</p>
<p>Boseman was a social leader and source of inspiration for many. His life and many roles championed racial equity on the Hollywood screens. Boseman was passionate about what he did. He led a committed life.</p>
<p>Boseman&rsquo;s death caused me to reflect on the definition of Freedom in the movement I am embedded within: the Free Software movement. Yet in this community I value, there are seeds of discontent. The fierce urgency of now has revealed that systemic social injustices continue to exist in our society, as they have for centuries. The generational question we must answer as witnesses to this moment is: <strong>will we continue to tolerate the systemic faults within our society?</strong> Or must we imagine a more fair society? A more just society? I know we can because we have to.</p>

<h2 id="on-the-origins-of-software-freedom">On the origins of Software Freedom&nbsp;<a class="hanchor" href="#on-the-origins-of-software-freedom" aria-label="Anchor link for: On the origins of Software Freedom">🔗</a></h2>
<p>A background on the Software Freedom movement is helpful to understand this discourse on freedom.</p>
<p>Free Software is a <a href="/blog/2020/04/how-did-free-software-build-a-social-movement/">social movement born in the 1980s</a> in North America. In the beginning, it was mostly a set of ideals and values set forth by MIT computer scientist Richard Stallman. Stallman witnessed a dramatic shift in how the free market distributed software in the 1980s. Previously to then, software was usually trivial; an afterthought. Software was freely shared between companies, universities, and individuals. Part of this is to blame on the industry&rsquo;s intent focus on hardware during the Cold War. At the time, there was no standardization to hardware development, so software source would have to be rewritten to compile on different hardware architectures from competing vendors. However, this mindset eroded in the 1980s. There were a few lead architectures at the time, mostly championed by Intel. Software had to be compiled less often. Now, this freely shared source code could be repurposed much more easily.</p>
<p>At this point, the software industry went mainstream. Software began to receive acute focus by companies with computer science talent. Talent needs moved beyond hardware. Stallman saw all this, and believed the shift was at a great loss to the personal freedoms of the individual. So he coined &ldquo;Software Freedom&rdquo;, and a movement formalized.</p>
<p>With that background, the word &ldquo;Freedom&rdquo; has a specific, coded meaning to people who believe in the principles of Software Freedom. Software Freedom protects a set of digital rights that the movement leaders first advocated for in the 1980s and 1990s. The <a href="https://fsfe.org/freesoftware/">Four Freedoms</a> (to use, to study, to share, to improve) are entrusted to the individual user of a computer system.</p>

<h2 id="freedom-in-2020">Freedom in 2020&nbsp;<a class="hanchor" href="#freedom-in-2020" aria-label="Anchor link for: Freedom in 2020">🔗</a></h2>
<p>However, it is 2020. Not 1985. Not 1991. 2020.</p>
<p>Questions about what Freedom means could never be more removed from the context of right now. Software Freedom asserts rights fully-realized by participants in the new digital society. Yet billions of people on Earth remain unconnected to the Internet. How can you realize rights that were never accessible to begin with?</p>
<p>Even if you are participating in digital society, freedom to read source code and make changes to it are just one of many different examples of freedom. But what other definitions exist?</p>
<p>The freedom to be safe asleep in your home without being gunned down by those entrusted to protect you.</p>
<p>The freedom that your children may live in a world where they may realize their fullest potential.</p>
<p>The freedom to life, liberty, and the pursuit of happiness.</p>
<p>In comparison, the freedom to read the source code of the web browser that keeps crashing on an unsupported device does not practical value to people who have different questions in the pursuit of freedom.</p>

<h2 id="reconciliation-and-intersections">Reconciliation and intersections&nbsp;<a class="hanchor" href="#reconciliation-and-intersections" aria-label="Anchor link for: Reconciliation and intersections">🔗</a></h2>
<p>But surely there is somewhere we can reconcile these different definitions of freedom. They may conflict at times but they are not in opposition to each other. There must be a way to realize both the freedoms of the individual to live a better life, and the freedoms of witting or unwitting participants in a digital world governed by increasingly invisible hands.</p>
<p>The intersection is surprising. Before identifying it, it is important to understand its purpose. The purpose of the intersection of these two definitions of freedom is to unify and empower people to be in control of their own destinies. Our destinies and futures are influenced but not entirely controlled by our environments. Both types of freedom believe in the right of the individual to understand the ways a system works, in order to understand how the system impacts them.</p>
<p>Said simply, the purpose is inclusion. The purpose is to bring together. The purpose is to empower. The purpose is give individuals the tools to shape their own destinies.</p>
<p>The name of this intersection is <strong>digital intersectionality</strong>.</p>
<p>Digital intersectionality makes inclusion a first-class citizen. It must take an intersectional approach from the outset if it is to accommodate the hyper-globalized world we live in. Albert Einstein once reflected in a letter to schoolchildren in Japan about his great delight in being able to communicate across such distances—something that was unheard of at the time. It is a cute memory, but also emphasizes the ways the world has changed since the most widely-known events of human genocide. Digital intersectionality has no borders. Its borders are decentralized; its borders may or may not have nationality. Copper wire, fiber lines, satellite receivers; these are the conduits that digital intersectionality resides in.</p>
<p>Digital intersectionality must be about inclusion. Digital intersectionality by definition must always be intersectional. Digital intersectionality must always consider the role of the individual in contributing to healthy, collective society. Digital intersectionality must embrace love.</p>

<h2 id="what-now">What now?&nbsp;<a class="hanchor" href="#what-now" aria-label="Anchor link for: What now?">🔗</a></h2>
<p>Chadwick Boseman is gone. But we are not.</p>
<p>We are in the same world. Breathing the same air. Living under the same sun, and the same stars. As I see the void and grief left behind in his wake, as I look around me in a global pandemic that places the heaviest burdens on those with the most to bear, as I continue to see the effects of unjust systems perpetuate, I am thinking more about my own role in shaping the world we must create.</p>
<p>So I will continue to advocate and celebrate both freedoms, software freedom and inner freedom, under the mutual banner of digital intersectionality.</p>
<hr>
<p><em>Special thanks to my early editors!</em></p>]]></description></item><item><title>Facilitation, collaboration, and webcams: A story about Principles of Authentic Participation</title><link>https://jwheel.org/blog/2020/06/facilitation-collaboration-principles-authentic-participation/</link><pubDate>Fri, 12 Jun 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/06/facilitation-collaboration-principles-authentic-participation/</guid><description><![CDATA[<p>This is the story about the facilitation of the <a href="https://authentic-participation.readthedocs.io/">Principles of Authentic Participation</a>.</p>
<p>This post does not describe what the Principles are (click that link to learn more about them). This post describes the story behind the Principles, and how our <a href="https://sustainoss.org/working-groups/authentic-participation/">Sustain Working Group</a> worked together over three months of virtual facilitation during the COVID–19 crisis to build these Principles.</p>

<h2 id="overview">Overview&nbsp;<a class="hanchor" href="#overview" aria-label="Anchor link for: Overview">🔗</a></h2>
<p>This blog post is a story, or perhaps open source lore. So, here is the abridged summary:</p>
<ol>
<li><strong>The Sticky Idea</strong>: How did a discussion topic at a one-day open source sustainability conference evolve into a three-month extended collaboration?</li>
<li><strong>Facilitation, Roosevelt-style</strong>: The people are here. How do you facilitate a conversation with no scope and few bounds?</li>
<li><strong>Is there a next chapter to this story?</strong>: The Working Group is winding down. What happens to the Principles next?</li>
</ol>
<p>If you are hooked, read on.</p>

<h2 id="the-sticky-idea">The Sticky Idea&nbsp;<a class="hanchor" href="#the-sticky-idea" aria-label="Anchor link for: The Sticky Idea">🔗</a></h2>
<p>How does a discussion topic at a one-day conference evolve into an inter-organizational, international collaboration that spans three months?</p>
<p>When the accountability and transparency discussion groups formed at <a href="/blog/2020/02/sustain-oss-2020-quick-rewind/">Sustain Summit 2020</a>, none of us knew what would come after the event. Not to mention, there were several different sustainability topics explored at the Summit.</p>
<p>So, the conversation about corporate accountability was about the same as every other conversation during that morning: <strong>someone was motivated enough to step up and say, &ldquo;I&rsquo;ll do it – I&rsquo;ll facilitate this conversation!&rdquo;</strong></p>

<h3 id="open-source-accountability-goals">Open Source Accountability Goals&nbsp;<a class="hanchor" href="#open-source-accountability-goals" aria-label="Anchor link for: Open Source Accountability Goals">🔗</a></h3>
<p>Duane O&rsquo;Brien volunteered to lead facilitation on defining goals for open source accountability. Duane proposed four goals to iterate on in the Summit break-out groups:</p>
<ol>
<li>Set and publish a goal for open source contribution relative to value capture</li>
<li>Adhere to principles of authentic participation</li>
<li>Publish documentation of open source policies, processes, and project governance</li>
<li>Well defined reporting process that is publicly available</li>
</ol>
<p>The morning discussions broadly focused on these goals. After the ice was broken and conversation was flowing, themes and patterns emerged in the stories we shared with each other. Later that day, <a href="https://aspirationtech.org/about/people">Allen Gunn</a> asked me if I would lead an afternoon discussion session. The second goal, these principles of authentic participation, were personally interesting to me, and the morning group was engaged too. So I said, &ldquo;Yes, I&rsquo;ll do it!&rdquo; Even though I did not really have any idea what I was going to do yet.</p>

<h3 id="facilitation-of-authentic-participation-discussion">Facilitation of Authentic Participation discussion&nbsp;<a class="hanchor" href="#facilitation-of-authentic-participation-discussion" aria-label="Anchor link for: Facilitation of Authentic Participation discussion">🔗</a></h3>
<p>After lunch, I gathered folks for the discussion group to discuss what authentic participation means. If we could propose a basic set of principles that we agree on, could this be a useful tool for the pain points of stories shared in the morning session?</p>
<p>The afternoon discussion was insightful, but lacked firm conclusions. We had great ideas and lots of stories, but nothing to tie them together. I collected email addresses of folks who wanted to continue engaging on the Principles of Authentic Participation. However, I wasn&rsquo;t sure what the next step would be at the time.</p>
<p>At the Summit, I committed to facilitation of a public Discourse forum discussion, but some attendees voiced that Discourse was not accessible for them. To compromise without exhausting myself across <em>too</em> many platforms, I promised to host a few online discussions for folks to gather and talk about these things again later.</p>
<p>The embers were hot on this discussion at the Sustain Summit. But it was still just embers. How do we get these embers to &ldquo;spark&rdquo; into something bigger? Enter the <strong>Fireside Chats</strong>.</p>

<h2 id="facilitation-roosevelt-style">Facilitation, Roosevelt-style&nbsp;<a class="hanchor" href="#facilitation-roosevelt-style" aria-label="Anchor link for: Facilitation, Roosevelt-style">🔗</a></h2>
<p>So, skip ahead a couple weeks. I was ready to push the conversation forward. The time was right for the first follow-up email to the discussion group participants. As promised, I opened a Discourse discussion that summarized our notes from the conference and asked open-ended questions. Later on, I announced the first of four Fireside Chats. The <strong>Fireside Chats</strong> became the primary vehicle of collaboration for the working group.</p>
<p>Text-based communications are my preference. But video?? I would have to swallow my introverted shyness if I was going to lead this. I never facilitated an online discussion group before. There were also not many public examples to learn from either. The style I took to the Fireside Chats was mostly my own. I relied on my past experience of facilitating open source project meetings and development to drive these Fireside Chats. And I borrowed a little inspiration from former American president Franklin D. <a href="https://en.wikipedia.org/wiki/Fireside_chats">Roosevelt&rsquo;s fireside chats</a> during the 1930s/1940s.</p>
<p>For the first Fireside Chat on 2020 February 28th, I had no idea what I was doing. I <a href="https://discourse.sustainoss.org/t/principles-of-authentic-participation-continuing-the-sustain-conversation/284/2?u=jwf">prepared a loose agenda</a>, but I left it broad so people could bring their own interests and passions into the conversation. I figured doing this would allow people to bring their own needs, desires, and wants to the conversation. It was unrealistic to expect a collaboration driven by my own motivations.</p>
<p>A successful collaboration requires all participants to have an opportunity to satisfy their own personal motivations for showing up in the first place. So, my approach centered our collaborative work on the group and not just myself, to avoid a high initial interest that dwindles down over time.</p>

<h3 id="how-did-facilitation-start">How did facilitation start?&nbsp;<a class="hanchor" href="#how-did-facilitation-start" aria-label="Anchor link for: How did facilitation start?">🔗</a></h3>
<p>The first Fireside Chat was exploratory. It was our first time talking about the Principles since the Sustain Summit. We caught back up on where we left off, detailed what we wanted to get out of this collaboration, and began scoping out what we thought we could accomplish together.</p>
<p>Although the first chat was mostly unstructured, it was essential to to identify themes and ideas that led to more focused, structured discussions for the next three Fireside Chats. The Discourse thread was also useful as an accessory for the Fireside Chats. I published notes from each Fireside Chat on the Discourse thread, and there was some asynchronous discussion between Fireside Chats.</p>
<p>Beyond the first Fireside Chat, the agendas became easier for me to write and the feedback became more focused. Fortunately, most of this work happened in public on the Discourse thread. So, if you are curious for more details on how the final three Fireside Chats went, take a look at the <a href="https://discourse.sustainoss.org/t/principles-of-authentic-participation-continuing-the-sustain-conversation/284">discussion thread</a>.</p>

<h2 id="is-there-a-next-chapter-to-this-story">Is there a next chapter to this story?&nbsp;<a class="hanchor" href="#is-there-a-next-chapter-to-this-story" aria-label="Anchor link for: Is there a next chapter to this story?">🔗</a></h2>
<p>For now, the Principles of Authentic Participation Working Group is going dormant. We met our original goal of drafting some basic principles.</p>
<p>So, now what happens? So, let&rsquo;s try to predict the future! (That can&rsquo;t be <em>that</em> hard, right?)</p>
<p>My hope is that the Principles of Authentic Participation leads to more story-telling about what it means to authentically contribute to open source, whether you are an individual or an organization. To help curate the stories, I created a <a href="https://authentic-participation.readthedocs.io/meta/contribute-story/">template</a> to encourage folks to share them with us. The template provides question that makes it easy for a maintainer to copy and paste the story into our published <a href="https://authentic-participation.readthedocs.io/advocate-kit/stories/">Principles of Authentic Participation website</a>.</p>
<p>Whether this hope comes true or not, we will see. But the Principles have a life of their own now. It doesn&rsquo;t mean the Working Group will never meet again, or that we won&rsquo;t revisit these ideas over time. But these Principles are now the &ldquo;property&rdquo; of the community to continue building. I will continue to participate where I can to curate stories about the Principles.</p>

<h2 id="closing-thoughts">Closing thoughts&nbsp;<a class="hanchor" href="#closing-thoughts" aria-label="Anchor link for: Closing thoughts">🔗</a></h2>
<p>My hope in sharing this story is to help other facilitators and activists in the open source world approach digital-only organizing. Digital facilitation and organization is a skill we are all learning, for better or worse, in a COVID-19 world. But it isn&rsquo;t a new skill. Lots of folks have been doing this for a long time, especially in the digital-first world of open source.</p>
<p>So, I hope this paints a picture of how we pulled off the Principles of Authentic Participation and how others can take what we did and improve on our processes.</p>
<p>It is possible to work collaboratively with new people on digital initiatives across different backgrounds and sectors. Remote facilitation is someone being brave enough to step up and lead, even if they have no idea what they are doing. After all… isn&rsquo;t that what many other white American men like me do anyways? So can you.</p>]]></description></item><item><title>TeleIRC v2.0.0 is officially here!</title><link>https://jwheel.org/blog/2020/05/teleirc-v2-0-0-is-officially-here/</link><pubDate>Sun, 24 May 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/05/teleirc-v2-0-0-is-officially-here/</guid><description><![CDATA[<p>After almost eight months of work, the TeleIRC Team is happy to announce <strong>General Availability of TeleIRC v2.0.0 today</strong>. Thanks to the hard work of our volunteer community, we are celebrating an on-time release of a major undertaking to make a more sustainable future for TeleIRC.</p>

<h2 id="download-teleirc-v200-now"><a href="https://github.com/RITlug/teleirc/releases/tag/v2.0.0">Download TeleIRC v2.0.0 now!</a>&nbsp;<a class="hanchor" href="#download-teleirc-v200-now" aria-label="Anchor link for: Download TeleIRC v2.0.0 now!">🔗</a></h2>
<p>If you want to skip the text and get to the software, head to the <a href="https://github.com/RITlug/teleirc/releases/tag/v2.0.0">GitHub v2.0.0 release</a> for more info. If you want the story behind this release, read on!</p>

<h2 id="eight-months-later">Eight months later…&nbsp;<a class="hanchor" href="#eight-months-later" aria-label="Anchor link for: Eight months later…">🔗</a></h2>
<p>The conversation started in a university hallway after the first RIT Linux Users Group meeting in the Fall 2019 semester. Together, <a href="https://github.com/Tjzabel">Tim Zabel</a>, <a href="https://github.com/Zedjones">Nicholas Jones</a>, and <a href="https://jwheel.org/">Justin Wheeler</a> set out to <a href="https://github.com/RITlug/teleirc/issues/163">rewrite TeleIRC from NodeJS to Go</a>. This was done to address a growing backlog of challenging feature requests on TeleIRC, but also a way for us to gain more experience working with Go. Along the way, we also ended up <a href="/blog/2020/03/teleirc-v2-0-0-march-2020-progress-update/">facilitating an agile-inspired software release process</a> adapted for open source.</p>
<p>So, what happened in the eight months after the first conversation? The team meet for weekly meetings each Saturday afternoon (at first in-person, later virtually), two new core contributors joined the team, and some drive-by contributors provided feedback andf added code to the new release. There were charts, whiteboards and dry-erase markers, and lots of Blue Jeans video calls. But after all this time, we made it to release day!</p>

<h2 id="thank-you-amazing-volunteer-contributors">Thank you amazing volunteer contributors!&nbsp;<a class="hanchor" href="#thank-you-amazing-volunteer-contributors" aria-label="Anchor link for: Thank you amazing volunteer contributors!">🔗</a></h2>
<p>This endeavor was a shared commitment by our volunteer committer team. All five of the volunteer core maintainers spread patience and sustained effort over time. At the end, we made something really cool to show for this work.</p>
<p>A <strong><em>huge</em></strong> thanks to our core maintainers and all current and past contributors to TeleIRC. You have all contributed to the success (and motivation!) for this project. It is fun to work on cool projects with friends!</p>
<p>A proper shout-out goes to the core maintainers who joined the team over the last eight months working on this release:</p>
<ul>
<li><a href="https://github.com/kennedy">Kennedy Kong</a></li>
<li><a href="https://github.com/10eMyrT">Kevin Assogba</a></li>
<li><a href="https://github.com/Zedjones">Nicholas Jones</a></li>
<li><a href="https://github.com/Tjzabel">Tim Zabel</a></li>
</ul>

<h2 id="i-found-a-bug-in-teleirc-v200">&ldquo;I found a bug in TeleIRC v2.0.0!&rdquo;&nbsp;<a class="hanchor" href="#i-found-a-bug-in-teleirc-v200" aria-label="Anchor link for: &ldquo;I found a bug in TeleIRC v2.0.0!&rdquo;">🔗</a></h2>
<p>If you run into a problem, check out the <a href="https://docs.teleirc.com/">TeleIRC documentation</a> and <a href="https://github.com/RITlug/teleirc/issues/new/choose">open an issue</a> if it does not answer your questions.</p>

<h2 id="get-in-touch">Get in touch!&nbsp;<a class="hanchor" href="#get-in-touch" aria-label="Anchor link for: Get in touch!">🔗</a></h2>
<p>If you have questions, <a href="https://github.com/RITlug/teleirc/tree/v2.0.0#live-demo">get in touch</a> with the developer community. You can find us <a href="https://t.me/teleirc">on Telegram</a> and <a href="https://webchat.freenode.net/#rit-lug-teleirc">on IRC</a> (<code>#rit-lug-teleirc</code> on <em>chat.freenode.net</em>).</p>]]></description></item><item><title>What's new in TeleIRC v2.0.0</title><link>https://jwheel.org/blog/2020/05/whats-new-in-teleirc-v2-0-0/</link><pubDate>Sun, 24 May 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/05/whats-new-in-teleirc-v2-0-0/</guid><description><![CDATA[<p>TeleIRC v2.0.0 is the latest major release of our open source Telegram &lt;=&gt; IRC bridge. Download the <a href="https://github.com/RITlug/teleirc/releases/tag/v2.0.0">latest release</a> and read the <a href="/blog/2020/05/teleirc-v2-0-0-is-officially-here/">release announcement</a> for the full story.</p>
<p>There are several new and noteworthy changes in TeleIRC v2.0.0. This post walks you through the major changes and differences for TeleIRC v2.0.0. Read on for the highlight reel of this release.</p>

<h2 id="full-rewrite-to-go">Full rewrite to Go&nbsp;<a class="hanchor" href="#full-rewrite-to-go" aria-label="Anchor link for: Full rewrite to Go">🔗</a></h2>
<p>TeleIRC v2.0.0 is a complete and total rewrite. With the lessons learned and best practices of the NodeJS v1.x.x releases under our belt, the team set out in September 2019 to rewrite TeleIRC in Go. The rewrite was motivated by fun and personal interest, but it was also intended to make the future of TeleIRC more sustainable.</p>
<p>The rewrite makes TeleIRC simple, fast, and lightweight. TeleIRC is unique from other chat bridge software, which usually focus on extensive configuration and supporting many chat platforms.</p>
<p>Additionally, the success criteria in order to release was feature parity with v1.x.x releases. The team accomplished this almost completely, with one exception. <strong>TeleIRC v2.0.0 does not include Imgur image upload for IRC</strong>; however, a v2.1.0 feature release will include Imgur support.</p>
<p>To summarize, TeleIRC v2.0.0 is written to be a simple and excellent Telegram &lt;=&gt; IRC bridge. No more, no less.</p>

<h2 id="run-teleirc-v200-as-a-compiled-binary">Run TeleIRC v2.0.0 as a compiled binary&nbsp;<a class="hanchor" href="#run-teleirc-v200-as-a-compiled-binary" aria-label="Anchor link for: Run TeleIRC v2.0.0 as a compiled binary">🔗</a></h2>
<p>The new release is available as a standalone 8 MB binary. The only deployment assets needed are the binary and a config file. Other pathways, including build from source and Ansible Roles, are also available.</p>
<p>This is a departure from TeleIRC v1.x.x releases, which required a NodeJS run-time and installing project dependencies. TeleIRC v2.0.0 does not require a Go run-time on the host.</p>

<h2 id="improved-teleirc-v200-documentation">Improved TeleIRC v2.0.0 documentation&nbsp;<a class="hanchor" href="#improved-teleirc-v200-documentation" aria-label="Anchor link for: Improved TeleIRC v2.0.0 documentation">🔗</a></h2>
<p>End user feedback shaped and improved documentation during development.</p>
<p>Thanks to feedback collected during the pre-release process, the documentation is simplified and written to be easy to understand. We hope you find the <a href="https://docs.teleirc.com/en/latest/user/quick-start/">TeleIRC Quick Start</a> page a helpful introduction to getting TeleIRC running in little time.</p>

<h2 id="future-roadmap-for-containers">Future roadmap for containers&nbsp;<a class="hanchor" href="#future-roadmap-for-containers" aria-label="Anchor link for: Future roadmap for containers">🔗</a></h2>
<p>Because of <a href="/blog/2020/03/teleirc-v2-0-0-march-2020-progress-update/">v2.0.0 design decisions</a>, there is a planned future for container and container orchestration use cases. At release time, a <a href="https://github.com/RITlug/teleirc/tree/v2.0.0/deployments/container">Dockerfile is available</a>, but it is not yet tested or documented.</p>
<p>In future releases, the TeleIRC Team will continue to test the container image and iron out bugs. Future deployment assets and documentation will offer pathways to run TeleIRC in Kubernetes or OpenShift v4.x.x.</p>
<hr>
<p><em>Article format inspired by Ryan Lerch&rsquo;s format for &ldquo;<a href="https://fedoramagazine.org/whats-new-fedora-32-workstation/">What&rsquo;s new in Fedora Workstation</a>&rdquo;.</em></p>]]></description></item><item><title>Take the 2020 #HappinessPacketChallenge!</title><link>https://jwheel.org/blog/2020/04/2020-happiness-packets-challenge/</link><pubDate>Thu, 23 Apr 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/04/2020-happiness-packets-challenge/</guid><description><![CDATA[<p>In this brave new COVID-19 world, we have to watch out for each other. These times are unusual and not normal. This year in 2020, <strong>I challenge you to join me and others in the Happiness Packets Challenge from Monday, 27 April to Sunday, 3 May</strong>! This is the same challenge I made <a href="/blog/2017/04/happiness-packets-challenge/">in 2017</a>. Can you say thanks to someone different every day for one week?</p>
<p>When I was a kid, one of the most important lessons I learned was saying &ldquo;thank you&rdquo; when someones does something nice for you. So, a few years ago, I learned about this <a href="https://happinesspackets.io/">awesome little website</a> called Happiness Packets. Its purpose is simple but powerful. Happiness Packets are open source thank-you cards you can send over email. You can send Happiness Packets to anyone for anything. Your message can be as short or as long as you like. You can put your name on it or keep it anonymous. The choice is yours. And now, <strong>I want to challenge you (yes, <em>you</em>) to the 2020 <a href="https://twitter.com/search?q=%23HappinessPacketChallenge">#HappinessPacketChallenge</a></strong>!</p>

<h2 id="what-are-happiness-packets">What are Happiness Packets?&nbsp;<a class="hanchor" href="#what-are-happiness-packets" aria-label="Anchor link for: What are Happiness Packets?">🔗</a></h2>
<p>Upstream describes it best. This comes straight from the Happiness Packets website:</p>
<blockquote>
<p>People are generally much more loved than they think they are. Especially when things don&rsquo;t go according to plan, other people almost never think as harshly of you as you might think of yourself. It&rsquo;s easy for us to complain when bad things happen, and yet we&rsquo;re often fairly silent when things are good. Open-source communities are no different, especially when our main communication channels are textual and virtual.</p>
<p>The feeling that you made a difference, that your work matters and has value, and that the people you work with are happy to work with you, is an awesome feeling. With Open-Source Happiness Packets, we&rsquo;re trying to spread that feeling.</p>
<p><strong>How does it work?</strong></p>
<p>Openly expressing appreciation, gratitude, or happiness to other people can be difficult. This is especially true when you don&rsquo;t know them very well. Many of us come from cultures in which people are not open by default about such feelings, and naturally feel uncomfortable or even creepy to share them.</p>
<p>Open-Source Happiness Packets is a very simple platform to anonymously reach out to the people that you appreciate or to whom you are thankful in your open-source community. Your message can be sent anonymously if you feel uncomfortable to share your name with the recipient. Of course, we encourage you to share your name, but it&rsquo;s completely optional!</p>
<p>What are Open-Source Happiness Packets?</p>
</blockquote>
<p>You can learn more about the Happiness Packets Challenge by browsing through the <a href="https://twitter.com/search?q=%23HappinessPacketChallenge">Twitter hashtag</a>.</p>

<h2 id="take-the-challenge">Take the challenge!&nbsp;<a class="hanchor" href="#take-the-challenge" aria-label="Anchor link for: Take the challenge!">🔗</a></h2>
<p>So, what is the <em>#HappinessPacketChallenge</em>? I challenge you to do the following: <strong>write one Happiness Packet a day, every day, for one week starting Monday, 27 April and ending Sunday, 3 May</strong>. At a minimum, this is seven times where you say &ldquo;thank you&rdquo; to someone else. Of course, nothing is stopping you from sending more if you want!</p>
<p>Maybe you are overwhelmed by the negativity on social media or the news channel. Especially today, when everyone is talking about one single thing: COVID-19. Whatever the platform is, the negativity can eat at you. For one week, this is your opportunity to choose something different. For all of the good things and people in your life, spend a few minutes of each day this week to make someone&rsquo;s day. It seems simple—and it is! But the power you have to spread the positivity is a big power. So <strong>this is the challenge you have</strong>: to commit yourself to spreading your little packet of happiness every day for one week.</p>

<h3 id="but-i-dont-know-what-to-say">&ldquo;But, I don&rsquo;t know what to say…&rdquo;&nbsp;<a class="hanchor" href="#but-i-dont-know-what-to-say" aria-label="Anchor link for: &ldquo;But, I don&rsquo;t know what to say…&rdquo;">🔗</a></h3>
<p>Having a hard time coming up with words or not sure who to thank? No worries. Your message can be as short or as long as you like. If you&rsquo;re not sure who to thank, look at software you are already using. Look for names and emails of maintainers of open source software you enjoy. If you&rsquo;re already contributing to open source, consider folks in your community! Thank someone who had a hand in helping you get started, or gave you a little bit of encouragement when you needed it most.</p>
<p>Maybe you have other ideas or reasons to thank others. (<em>Heartbleed or Shellshock anyone?</em>) Whatever the reason, don&rsquo;t make an excuse to not say thanks! The options are limitless. If you have a lot to say, say it! If not, even a simple &ldquo;thanks for all the work you do!&rdquo; can go a long way to make someone&rsquo;s day.</p>

<h2 id="share-your-happiness-packets">Share your Happiness Packets&nbsp;<a class="hanchor" href="#share-your-happiness-packets" aria-label="Anchor link for: Share your Happiness Packets">🔗</a></h2>
<p>The magical part of Happiness Packets is sharing happy moments with others. If you receive one, don&rsquo;t be afraid to share it with the world! Tweet at <a href="https://twitter.com/happinesspacket">@happinesspacket</a> on Twitter. Use the <a href="https://twitter.com/hashtag/HappinessPacketChallenge">#HappinessPacketChallenge</a> hashtag. Encourage other people to send their own thanks. If you get one other person to take the challenge, that has an impact on seven more people! Imagine what would happen if all of those seven people decided to take the challenge too.</p>
<p>So, I hope you will join me this year in this fun tradition. Get ready from <strong>Monday, 27 April to Sunday, 3 May</strong> to <a href="https://happinesspackets.io/send/">send some happiness</a>! And if you&rsquo;re feeling bold, challenge someone you know directly.</p>
<hr>
<p><em><a href="https://thenounproject.com/search/?q=love%20mail&amp;i=314865">Love Letter</a> by <a href="https://thenounproject.com/vectorsmarket">Vectors Market</a> from <a href="https://thenounproject.com/">the Noun Project</a></em>.</p>]]></description></item><item><title>FOSDEM 2020, pt. 2: Can Free Software include ethical AI systems?</title><link>https://jwheel.org/blog/2020/04/fosdem-2020-pt-2-can-free-software-include-ethical-ai-systems/</link><pubDate>Tue, 21 Apr 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/04/fosdem-2020-pt-2-can-free-software-include-ethical-ai-systems/</guid><description><![CDATA[<p><em>This post is a follow-up to <a href="/blog/2020/03/fosdem-2020-pt-1-play-by-play/">FOSDEM 2020, pt. 1: Play by play</a>. This post summarizes the talk given by me and my colleague, <a href="https://nolski.rocks/">Mike Nolan</a>, at FOSDEM 2020.</em></p>
<hr>
<p>FOSDEM 2020 took place from Saturday, 1 February, 2020 to Sunday, 2 February, 2020 in Brussels, Belgium (shortly after <a href="/blog/2020/02/sustain-oss-2020-quick-rewind/">Sustain OSS 2020</a> and <a href="/blog/2020/02/chaosscon-eu-2020-play-by-play/">CHAOSScon EU 2020</a>). On Saturday, together with my colleague and friend Mike Nolan, we presented on a topic he and I have co-conspired on for the last six months. What are the intersections of Free Software and artificial intelligence (AI)?</p>
<blockquote>
<p>What is a rights-based approach for designing minimally safe and transparent guidelines for AI systems? In this talk, we explore what a Free AI system might look like. Then, taking research and guidelines from organizations such as Google and the UN Office for the Coordination of Humanitarian Affairs, we propose practical policies and tools to ensure those building an AI system respect user freedom. Lastly, we propose the outlines of a new kind of framework where all derivative works also respect those freedoms.</p>
<p><a href="https://fosdem.org/2020/schedule/event/ethical_ai/">Freedom and AI: Can Free Software include ethical AI systems? Exploring the intersection of Free software and AI</a></p>
</blockquote>
<p><em>Video recording from FOSDEM 2020</em></p>
<p>This post is an abridged summary of the key ideas and thoughts Mike and I presented at our FOSDEM 2020 session.</p>

<h2 id="lets-frame-this-first">Let&rsquo;s frame this first.&nbsp;<a class="hanchor" href="#lets-frame-this-first" aria-label="Anchor link for: Let&rsquo;s frame this first.">🔗</a></h2>
<p>The idea behind this talk was a seed planted at MozFest 2018. I remember sitting with Mike in a hotel lobby while he was clocking some remote hours for work. We had some honest conversation about the experiences we&rsquo;ve had across the public, private, and humanitarian aid sectors. At the time, Mike worked at the International Rescue Committee, and I had just finished a six-month internship with the UNICEF Office of Innovation working on open source community management.</p>
<p>The best way I can think of to describe humanitarian work is that it comes with the highest of highs and lowest of lows. Finding success usually means either a direct or indirect impact on some of the most vulnerable populations on our planet. Making mistakes or seeing planned efforts spin out in the wrong direction mean the resources your organization do not have the full impact they could, or sometimes worse, they fix one problem and create another.</p>
<p>At MozFest 2018, the seeds of thought for the intersections of Free Software as it relates to humanitarian aid and artificial intelligence were planted. Fast-forward a year to October 2019. Mike and I caught up after a while and after we had both had new experiences out in the industry. We began tending to the seed planted the year before. Our venting sessions and simultaneous cheers turned from our video chats back to the wider Free Software ecosystem.</p>
<p>The FOSDEM 2020 call for papers would open in a few more weeks from when we first began talking about these ideas in 2019. FOSDEM 2020 is a great collection of many different minds and people in the Free Software world, so it felt like the perfect audience for us to deliver our thoughts to an audience for the first time.</p>
<p>We applied, and later found out our application to the main track was accepted, landing us in the Community and Ethics track on Saturday.</p>
<p>This blog post is a partial recap of what we covered in that FOSDEM 2020 session linked above. The FOSDEM 2020 talk covered three main ideas. This blog post summarizes only the definitions of our AI Freedoms.</p>

<h2 id="looking-to-yesterday-for-today">Looking to yesterday for today&nbsp;<a class="hanchor" href="#looking-to-yesterday-for-today" aria-label="Anchor link for: Looking to yesterday for today">🔗</a></h2>
<p>Before we define AI freedoms, we need to define the origin of Free Software. While the precise origin is debatable, Mike and I posit that the <a href="/blog/2020/04/how-did-free-software-build-a-social-movement/">Free Software movement began with a definition of rights</a>. These freedoms were first established by the GNU Project on 27 Sept. 1983.</p>
<p>So, in the spirit of the movement that precedes us today, Mike and I started asking questions. As we go into a new decade, what would Freedoms of AI look like? We know we aren&rsquo;t presenting <em>The Truth</em> or <em>The Answer</em>. But we are presenting our experiences and reflections.</p>

<h2 id="what-freedoms-do-we-want-to-protect">What freedoms do we want to protect?&nbsp;<a class="hanchor" href="#what-freedoms-do-we-want-to-protect" aria-label="Anchor link for: What freedoms do we want to protect?">🔗</a></h2>
<p>So, Free Software has the Four Freedoms. Combining our shared history in the Free Software movement with our personal experiences working in both commercial and humanitarian contexts, this is our vision of Three possible Freedoms of AI:</p>

<h3 id="1-audit-automated-decision-making-systems">1. Audit automated decision-making systems&nbsp;<a class="hanchor" href="#1-audit-automated-decision-making-systems" aria-label="Anchor link for: 1. Audit automated decision-making systems">🔗</a></h3>
<p>We are entitled to know and understand how decisions that affect us are made. So, you should have to freedom to audit, or understand, how those automated decisions are made.</p>
<p>For a moment, picture yourself in a classroom. Your teacher gives you a bad grade on an essay. You are probably curious to know why you received the grade that you did, especially if it was something important to you. You would likely go to the teacher and ask for help understanding why you received the grade you did, if there were no comments or notes.</p>
<p>So, why wouldn&rsquo;t you want to understand how a decision is made that affects you?</p>
<p>This does tie closely to one of the Four Freedoms of Software: the freedom to &ldquo;study the source&rdquo;. This AI freedom restates that Software freedom as, &ldquo;the freedom to understand how a system that is impacting you works&rdquo;. But this does go beyond the Software freedom to study the source because it is more than just source code.</p>

<h3 id="2-deliver-accountability-and-responsibility">2. Deliver accountability and responsibility&nbsp;<a class="hanchor" href="#2-deliver-accountability-and-responsibility" aria-label="Anchor link for: 2. Deliver accountability and responsibility">🔗</a></h3>
<p>We already know AI systems are capable of harm. We deserve the guarantee of liability when these systems do create harm. Not if, when. So, you should also have the freedom to deliver and expect accountability and responsibility from the designers of automated decision-making systems that impact you.</p>
<p>Think about it for a minute. When machines make decisions for us, who is accountable for those decisions? Is it the machines? Is it the creators who programmed them? Or is it the end-user?</p>
<p>It should be the creators and organizations that create these systems, as they directly profit from their output. Those who create these systems typically do so to profit themselves.</p>
<p><strong>But we as those affected deserve to be put over their profit.</strong></p>

<h4 id="myanmar-and-facebook">Myanmar and Facebook&nbsp;<a class="hanchor" href="#myanmar-and-facebook" aria-label="Anchor link for: Myanmar and Facebook">🔗</a></h4>
<p>What would a real world example of this look like? Have you ever thought about how social media could be connected to genocidal campaigns? This is what the United Nations is <a href="https://www.reuters.com/article/us-myanmar-rohingya-un/myanmar-generals-had-genocidal-intent-against-rohingya-must-face-justice-u-n-idUSKCN1LC0KN">asking of Facebook</a> in the role of the news feed in inciting genocide. But why would the U.N. ask these questions of Facebook?</p>
<p>The problem identified with Facebook is the news feed. The news feed optimizes for &ldquo;engaging content&rdquo;. To understand this, we have to define what &ldquo;engaging content&rdquo; means. Studies have shown that optimizing for &ldquo;engagement&rdquo; increases recommendations for extremist and alarmist content. Researchers knew the potential of &ldquo;engaging content&rdquo; to be misused, years before the Rohingya genocide began in Myanmar.</p>
<p>Then, the warnings in research became real. Religious and military leaders created &ldquo;fake news&rdquo; to divide the citizens of Myanmar. This &ldquo;fake news&rdquo; campaign is suspected to be a major contributing factor of the ethnic cleaning of the Rohingya people in Myanmar.</p>
<p>Obviously Facebook didn&rsquo;t take genocide into account in their feature planning when building the news feed. Yet it was still a contributing factor. And because of the research and warnings delivered to Facebook before the genocide, they did know about the potential for misuse.</p>
<p>So, who is responsible? Facebook? Myanmar religious and military leaders? Nobody? Even today, nobody will take responsibility. But what we do know is that profit was placed over people.</p>
<p>Thus, we must demand for a freedom that delivers accountability and responsibility in a world increasingly defined and shaped by automated decision-making. We are already in a &ldquo;catch-up&rdquo; mode to the changing world in this regard.</p>

<h3 id="3-appeal-a-decision">3. Appeal a decision&nbsp;<a class="hanchor" href="#3-appeal-a-decision" aria-label="Anchor link for: 3. Appeal a decision">🔗</a></h3>
<p>No decision-making system is ever perfect. We are <em>always</em> missing some data. So, lastly, you should also have the freedom to appeal a decision that impacts you.</p>
<p>In your life, have you ever told a story to help someone empathize with your situation? Have you ever had to explain a misconstrued fact about your background or history? You are probably familiar with the phrase, &ldquo;walk in someone else&rsquo;s shoes&rdquo;. Our ability to empathize and understand is what connects us as humans. It helps avert disaster more often than you think.</p>
<p>There are always hidden stories not captured by a set of data points. Thus, we should also have the opportunity to break through automated systems that influence an organization. We deserve the opportunity to appeal to the people behind the systems in order to use our humanity.</p>

<h4 id="resumecv-filtering">Resume/CV filtering&nbsp;<a class="hanchor" href="#resumecv-filtering" aria-label="Anchor link for: Resume/CV filtering">🔗</a></h4>
<p>If you have ever applied for a job, you might be familiar with the importance of keywords and certain requirements on your resume or C.V. Automated tools already exist to review these documents and filter out candidates.</p>
<p>But what is the point of interviews? Where you talk with a real person? Interviews are a chance to tell our own hidden stories and explain the gap between what is on our CV and what is not. It gives us a chance to build empathy between us and who we want to be our employer.</p>

<h4 id="practical-examples">Practical examples&nbsp;<a class="hanchor" href="#practical-examples" aria-label="Anchor link for: Practical examples">🔗</a></h4>
<p>It is not hard to look for examples of appealing systems in our society. Two examples are appellate courts and credit denials in the U.S.</p>
<p>Appellate courts are legal systems where we appeal decisions we think were unfair or incorrect. Sometimes this is because of an unfair trial. It could also be because of a biased judge. Either way, a system is in place to appeal a legal decision.</p>
<p>A similar system exists in the U.S. if you are denied a credit offer or loan. You can appeal to an impartial third-party if you believe a credit offer or loan was denied to you on unfair criteria. again, there is a system in place to appeal a decision that could have significant personal impact to you.</p>
<p>How else could we describe the freedom to appeal? We must not erase the opportunity for human connection and empathy when these decisions are made. Even by automated systems. To do so is to deny our humanity.</p>

<h2 id="where-do-we-go-from-here">Where do we go from here?&nbsp;<a class="hanchor" href="#where-do-we-go-from-here" aria-label="Anchor link for: Where do we go from here?">🔗</a></h2>
<p>The stakes have never been higher. These systems are being built not next year, not next month, not tomorrow, but <strong>now</strong>. These problems are not going to go away. They are only going to continue and grow. But we know we can imagine and have a better world, because we have to. The alternative is simply unacceptable.</p>
<p>The history of the Free Software movement <a href="/blog/2020/04/how-did-free-software-build-a-social-movement/">left us clues</a> about how to build a social movement to address problematic patterns in our digital society. So, let&rsquo;s take the cues and demand for our Freedoms to be respected, just like those who came before us nearly 40 years ago.</p>
<p>If there is anything to take away from this post, or the original talk, it is this: me, you, and everyone has some power to make change. So, let&rsquo;s build a future that we own, together, for everyone.</p>
<hr>
<p><em>For more details and ideas on how we as individuals can protect these Freedoms and how to get others to respect these Freedoms, <a href="https://fosdem.org/2020/schedule/event/ethical_ai/">watch the full talk</a>!</em></p>]]></description></item><item><title>How did Free Software build a social movement?</title><link>https://jwheel.org/blog/2020/04/how-did-free-software-build-a-social-movement/</link><pubDate>Tue, 14 Apr 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/04/how-did-free-software-build-a-social-movement/</guid><description><![CDATA[<p>The Free Software movement is rooted to origins in the 1980s. As part of a talk I gave with my colleague and friend Mike Nolan <a href="/blog/2020/04/fosdem-2020-pt-2-can-free-software-include-ethical-ai-systems/">at FOSDEM 2020</a>, we analyzed how the Free Software movement emerged as a response to a changing digital world in three different phases. This blog post is an exploration and framing of that history to understand how the social movement we call &ldquo;Free Software&rdquo; was constructed.</p>

<h2 id="why-does-this-matter">Why does this matter?&nbsp;<a class="hanchor" href="#why-does-this-matter" aria-label="Anchor link for: Why does this matter?">🔗</a></h2>
<p>This exploration and thought experiment is important to understand when revisiting social movements in technology in the current day. In the FOSDEM 2020 talk Mike and I gave, we presented three possible digital &ldquo;freedoms&rdquo; for artificial intelligence. The rights-based approach we presented at FOSDEM 2020 was inspired by the origin of the Free Software movement.</p>
<p>But to understand how we got to today with thousands of contributors to the Linux project, billions of dollars in open source company buyouts, and the words &ldquo;open source&rdquo; used on mainstream cable news channels, we have to start from the beginning, in 1983.</p>

<h2 id="27-sept-1983-gnu-project-announced">27 Sept. 1983: GNU Project announced&nbsp;<a class="hanchor" href="#27-sept-1983-gnu-project-announced" aria-label="Anchor link for: 27 Sept. 1983: GNU Project announced">🔗</a></h2>
<p>On 27 September 1983, the <a href="https://www.gnu.org/gnu/initial-announcement.en.html">GNU Project was announced</a> by Richard Stallman. The GNU Project was a collection of Free Software tools for building a free operating system. But it was also more than that. The GNU Project came with a vision to give computer users freedom and control of their use of computers. To do this, the GNU Project advocated for four fundamental freedoms:</p>
<ul>
<li>Run software in any way desired</li>
<li>Copy and distribute the software</li>
<li>Study it (i.e. reading the source code)</li>
<li>Modify it and make changes</li>
</ul>
<p>Today, we call these the <strong><a href="https://www.gnu.org/philosophy/free-sw.en.html">Four Freedoms</a></strong>.</p>
<p>So, the GNU Project was founded with these fundamental freedoms as the motivation for why they did what they did. It was more than shipping code for code&rsquo;s sake, but to lead by example in how software could be developed without sacrificing the rights of users.</p>

<h2 id="4-oct-1985-free-software-foundation-founded">4 Oct. 1985: Free Software Foundation founded&nbsp;<a class="hanchor" href="#4-oct-1985-free-software-foundation-founded" aria-label="Anchor link for: 4 Oct. 1985: Free Software Foundation founded">🔗</a></h2>
<p>Next, skip ahead to 4 October 1985. Two years after the launch of GNU, the <a href="https://en.wikipedia.org/wiki/Free_Software_Foundation#History">Free Software Foundation (F.S.F.) is founded</a> to support and sustain GNU and the Free Software movement. The values of the GNU Project were important and valuable, but it wasn&rsquo;t enough to leave them out in the world on their own.</p>
<p>At first, the F.S.F. focused on employing software developers to work on Free Software and the GNU Project. Later, the F.S.F. transitioned to legal and structural issues to support the Free Software community.</p>
<p>So, it is one thing to have your values and ethics out there, but they need to be protected and respected by the rest of the world too. The F.S.F. represented the sustainability of protecting these rights and beliefs, originally put forth by GNU.</p>
<p>While the F.S.F. does help sustain those rights, how does a nonprofit foundation actually enforce these rights in practice?</p>

<h2 id="25-feb-1989-gnu-general-public-license-created">25 Feb. 1989: GNU General Public License created&nbsp;<a class="hanchor" href="#25-feb-1989-gnu-general-public-license-created" aria-label="Anchor link for: 25 Feb. 1989: GNU General Public License created">🔗</a></h2>
<p>Finally, we skip ahead four more years to 25 February 1989: the <a href="https://www.gnu.org/licenses/old-licenses/gpl-1.0.en.html">first version of the GNU Public License</a> (G.P.L.) is created. This is the license that gave &ldquo;copyleft&rdquo; a name. It was written and released for the GNU Project, but the license itself was stewarded by the F.S.F.</p>
<p>The G.P.L. put power in the hands of individual people and activists to shape how others used their software. Thus, copyleft is put into a practical legal policy. In a sense, the G.P.L. allowed software developers to place the Four Freedoms at the core of their code.</p>
<p>Although enforcement of copyleft licenses has a blemished history, it was still the &ldquo;teeth&rdquo; in translating these values and values to the rest of the world. It took inspiration from how copyright was not something often considered when distributing software <em>until</em> the early 1980s.</p>
<p>And thus, copyleft becomes a radical invention in software with the proliferation of the G.P.L., especially in its adoption in prominent projects like the Linux kernel.</p>

<h2 id="is-the-past-relevant-to-social-movements-today">Is the past relevant to social movements today?&nbsp;<a class="hanchor" href="#is-the-past-relevant-to-social-movements-today" aria-label="Anchor link for: Is the past relevant to social movements today?">🔗</a></h2>
<p>So this was a lot of history. Is the past relevant to where we are today? First, consider how the early Free Software movement responded to these emerging societal issues in the 1980s.</p>
<p>Free Software was a response to the changing ecosystem of software distribution. Software became more valued because of a standardization on hardware that didn&rsquo;t exist previously. There were simply fewer architectures to compile for!</p>
<p>Suddenly, the value of software increased. It became a commodity.</p>
<p>Before this commodification of software, the Four Freedoms were, in a sense, the default way of distributing and sharing software. After commodification, this was no longer true. The Four Freedoms were rooted in a belief that there are essential rights that belong to all users of computers and computer systems. Stallman observed this change directly at the MIT Media Lab in the 1970s and early 1980s. This motivated him and many others to stand up for Software Freedom by asserting these freedoms.</p>
<p>To respond to commodification of software, Free Software took a freedom-based approach to established their values, as the Four Freedoms. So, looking back 40 years ago, is it possible to extend and make the past relevant again in today&rsquo;s changing world?</p>
<p>Before we can answer that, we have to first ask. How has the world changed?</p>

<h2 id="your-future-is-the-new-commodity">Your future is the new commodity.&nbsp;<a class="hanchor" href="#your-future-is-the-new-commodity" aria-label="Anchor link for: Your future is the new commodity.">🔗</a></h2>
<p>The history of Free Software overlaps with what is happening now.</p>
<p>Today the world is about predictions: predictions about human futures. This is accomplished by the combination of software and data. Human futures are a simple formula: Data + Software. Or, artificial intelligence and machine learning.</p>
<p>But how are human futures becoming a commodity? In the 1980s, software became the thing we &ldquo;sold&rdquo;. It had inherent value. Today, the ability to predict what you are doing to do next is valuable. This makes both your and my future the new commodity. Where will we go next? What will we buy next? Who have we contacted recently?</p>
<p>But data is only one piece of this big puzzle. It is the enabling force for determining our futures. Third-party organizations collect the world&rsquo;s data on a massive, centralized scale. Your data is what allows companies to sell your future.</p>
<p>To add a metaphor, data is like oil, not gold. You consume the input (data) to sell the output (human futures).</p>

<h2 id="where-are-we-today">Where are we today?&nbsp;<a class="hanchor" href="#where-are-we-today" aria-label="Anchor link for: Where are we today?">🔗</a></h2>
<p>So, how have we responded to our changing world?</p>
<p>There have been some successful resistance to the new value of user data and human futures. The privacy movement and legislation like G.D.P.R. are representative of this.</p>
<p>However, data privacy is only one part of the big picture. Focusing on <strong>individual empowerment does not protect us from societal effects</strong>. Consider <a href="https://en.wikipedia.org/wiki/Predictive_policing#Criticisms">predictive policing</a> and <a href="https://www.wired.com/2017/04/courts-using-ai-sentence-criminals-must-stop-now/">court rulings</a> as two examples.</p>
<p>Ultimately, the data privacy movement has been a key factor in combating the effects of surveillance capitalism, but there are still gaps. Mike and I noticed we need to approach topics like artificial intelligence not in pieces, but as a whole.</p>
<p>And some organizations have recognized this challenge and are working to address it. &ldquo;Working groups&rdquo; and reports with non-mandatory recommendations are on the rise. However, these groups are not effective on moving forward ways of ensuring people are effectively protected from the unforeseen harms of AI systems. &ldquo;Light self-regulation&rdquo; works on an opt-in model, and it is against the interest of some actors to opt in.</p>
<p>So, if we are in the middle of this societal shift from software as a commodity to human futures as a commodity, where do we go from here? Do we choose chaos or community?</p>
<hr>
<p><em>At time of publication, I am still wrestling with these questions. As are a lot of people! To get a wider picture of what is on my mind in 2020, <a href="/tags/2020-foss-conferences/">read my event reports</a> from my pre-coronavirus 2020 travels.</em></p>
<p><em>Photo by <a href="https://unsplash.com/@shanerounce?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Shane Rounce</a> on <a href="https://unsplash.com/s/photos/together">Unsplash</a>.</em></p>]]></description></item><item><title>CopyleftConf 2020: quick rewind</title><link>https://jwheel.org/blog/2020/04/copyleftconf-2020-quick-rewind/</link><pubDate>Thu, 09 Apr 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/04/copyleftconf-2020-quick-rewind/</guid><description><![CDATA[<p><strong>CopyleftConf 2020</strong> took place on Monday, 3 February, 2020 in Brussels, Belgium:</p>
<blockquote>
<p>This will be the second annual International Copyleft Conference. Participants from throughout the copyleft world — developers, strategists, enforcement organizations, scholars and critics — will be welcomed for an in-depth, high bandwidth, and expert-level discussion about the day-to-day details of using copyleft licensing, obstacles facing copyleft and the future of copyleft as a strategy to advance and defend software freedom for users and developers around the world.</p>
<p>This event will provide a friendly and safe place for discussion of all aspects of copyleft, including as a key strategy for defending software freedom!</p>
<p><a href="https://2020.copyleftconf.org/">Official conference website</a></p>
</blockquote>
<p>This was my first time attending CopyleftConf. I attended on behalf of <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> to represent the sustainability efforts at the <a href="https://fossrit.github.io/about/">RIT FOSS@MAGIC initiative</a>. However, I also represented myself as an individual in the Free Software movement. For CopyleftConf 2020, I arrived hoping to learn more about where we, as the Free Software community, are going. I also hoped to gain a deeper ethical perspective about our digital society.</p>
<p>
<figure>
  <img src="/blog/2020/04/IMG_20200203_094048593_HDR.jpg" alt="Me excitingly looking up to the main stage, holding my CopyleftConf 2020 schedule, after having bought my ticket earlier that same morning." loading="lazy">
  <figcaption>Me excitingly holding my CopyleftConf 2020 schedule after having bought my ticket earlier that same morning.</figcaption>
</figure>
</p>
<p>Event reports take many forms. Since CopyleftConf 2020 is structured in a unique format, my event report is structured as follows:</p>
<ul>
<li><strong>At a glance: structure and key takeaways</strong>: High-level overview of what CopyleftConf 2020 was like. What the biggest ideas on my mind were at the end of the day.</li>
<li><strong>Copyleft adopt curves: what drove copyright adoption then (or now?)</strong>: Musings on the history of copyleft and movement building.</li>
<li><strong>Free Software, but for kids</strong>: Children and teenagers are already building open source communities. How do we include the next generation?</li>
<li><strong>Where are we going?</strong>: Software ethics and copyleft licensing.</li>
</ul>

<h2 id="at-a-glance-structure-and-key-takeaways">At a glance: structure and key takeaways&nbsp;<a class="hanchor" href="#at-a-glance-structure-and-key-takeaways" aria-label="Anchor link for: At a glance: structure and key takeaways">🔗</a></h2>
<p>If you’re here for the quick overview, this is it.</p>
<p>CopyleftConf 2020 is one of the best conferences I have attended. I bought my ticket the morning of the conference. Karen Sandler and Bradley Kuhn fired me up the day before in their <a href="/blog/2020/03/fosdem-2020-pt-1-play-by-play/">FOSDEM 2020 talk</a>. My initial reluctance to go was because I assumed it was a conference for FOSS lawyers. While it definitely includes that group, it isn&rsquo;t exclusive to that group. CopyleftConf 2020 collected people from a diverse range of experiences and backgrounds in the open source world.</p>
<p>However, I also realized the &ldquo;movers and shakers&rdquo; in the Free Software world have been around a while. Many people there are embedded in this ecosystem for the last 10, 20, or even 30 years. I <em>think</em> I was the youngest person there. I realized Free Software has not done an excellent job of including my generation. This left me with interesting reflections on the future of copyleft and its ability to transfer lessons and values on to the next generation.</p>

<h3 id="structure-dialogue-and-discussion">Structure: Dialogue and discussion&nbsp;<a class="hanchor" href="#structure-dialogue-and-discussion" aria-label="Anchor link for: Structure: Dialogue and discussion">🔗</a></h3>
<p>The best way to describe the format of CopyleftConf 2020 is &ldquo;dialogue and discussion&rdquo;. The first half of the conference started with traditional sessions, with speakers and slide decks. The end of the conference moved towards open panels with stronger audience participation. Most panels centered around topics or ideas addressed in the morning sessions.</p>
<p>I attended these sessions:</p>
<ul>
<li><a href="https://2020.copyleftconf.org/schedule/presentation/20/">Keynote</a> (<em><a href="https://twitter.com/keynote2k">Tony Sebro</a></em>)</li>
<li><a href="https://2020.copyleftconf.org/schedule/presentation/9/">Copyleft adoption curves: what drove adoption then (or now?)</a> (<a href="https://twitter.com/luis_in_brief"><em>Luis Villa</em></a>)</li>
<li><a href="https://2020.copyleftconf.org/schedule/presentation/13/">Copyleft Expansion: What should &ndash; and shouldn&rsquo;t &ndash; be on the table?</a> (<em>Deb Nicholson, Bradley M. Kuhn, Allison Randal, Heather J. Meeker, John Sullivan</em>)</li>
<li><a href="https://2020.copyleftconf.org/schedule/presentation/17/">The Rising Ethical Storm in Open Source</a> (<a href="https://twitter.com/CoralineAda"><em>Coraline Ada Ehmke</em></a>)</li>
<li><a href="https://2020.copyleftconf.org/schedule/presentation/19/">Software Ethics and Copyleft Licensing</a> (<em><a href="https://twitter.com/o0karen0o">Karen Sandler</a></em>)</li>
</ul>
<p>I came up with three key takeaways from CopyleftConf 2020 as a whole (not including the detailed sections further below):</p>

<h3 id="1-open-source-is-in-an-identity-crisis">1. Open source is in an identity crisis.&nbsp;<a class="hanchor" href="#1-open-source-is-in-an-identity-crisis" aria-label="Anchor link for: 1. Open source is in an identity crisis.">🔗</a></h3>
<p>Many people are confused. The confusion is simultaneously indecisive and divisive. I believe the identity crisis stems from that early decision in 1997 about what we call this particularly different way of developing and collaborating on software and technology. Free Software or open source? One is politically charged and historically exclusive, while the other is more neutral and business-friendly, and more inclusive to people who believe in compromise. Today, we are seeing a similar divide emerge between Free/Open Source and Ethical Source.</p>
<p>There are several emotions. It is deeply personal. For some, the promises of free/open source failed our collective humanity. For others, open source is a vastly successful turn of events to make the closed world more open. Yet for others still, it is both. CopyleftConf 2020 took a highlighter to this tension between what we consider right and wrong. It also questioned what the role of Free Software is in all of this.</p>
<p>I don&rsquo;t think anyone has the answer yet. Surely some people left CopyleftConf 2020 with a more clear view if they think licensing is a viable approach or not. But CopyleftConf 2020 did not have this answer. It just made it clear that most of us are still wrestling with this.</p>

<h3 id="2-millennials-are-underrepresented">2. Millennials are underrepresented.&nbsp;<a class="hanchor" href="#2-millennials-are-underrepresented" aria-label="Anchor link for: 2. Millennials are underrepresented.">🔗</a></h3>
<p>Most of the time I was at CopyleftConf 2020, I had massive imposter syndrome. This is no fault of the conference or the great steps the organizers took to make it inclusive, but wow. There were so many people there who I have seen all across Twitter. People who are moving and shaking in different realms of the open source world.</p>
<p>Yet as I looked around the room, I started to wonder what the average age demographic of the room was. Being in my early 20s, I felt like I was in a room of Free Software giants. Many people there have been pushing the conversation forward and definitively fighting for Software Freedom for a decade or more.</p>
<p>And then there was me. I don&rsquo;t know what my role or higher calling is yet in this great big movement we call Free Software. While I was glad to be in the room, I felt sorely underrepresented in age.</p>

<h4 id="born-digital">Born digital&nbsp;<a class="hanchor" href="#born-digital" aria-label="Anchor link for: Born digital">🔗</a></h4>
<p>I couldn&rsquo;t help but find it unusual though. My generation and those after me are the first generations who were born into the digital society, built by those who came before us. When I was four years old, I was privileged to have my own computer. By six, I was connected to the Internet (even if it was dial-up). By fourteen, I was in a Linux command line running my own Minecraft server with thousands of players.</p>
<p>While my perspective is rooted in some privilege, there is something interesting in my experience. I was born into a world where I didn&rsquo;t make the choices of what hardware or software I used. In the beginning, everything was handed to me or provided for me.</p>
<p>For kids and teenagers today, this couldn&rsquo;t be more of a reality. Before COVID-19, when you went out to a restaurant or public place, how often would you see a small kid clutching a tablet, provided by an exhausted parent? Adolescents today grew up in the always-online worlds of Google and Snapchat.</p>
<p>Today&rsquo;s teenagers and young adults I know are often keenly aware that they are the prey in a complex digital world they are already so deeply embedded in. So, why resist at all? To them, there is little point in resisting because all the technology decisions made for them early in life locked them deeper into this &ldquo;predator-prey&rdquo; ecosystem.</p>

<h4 id="is-free-software-ready-for-the-millennials">Is Free Software ready for the millennials?&nbsp;<a class="hanchor" href="#is-free-software-ready-for-the-millennials" aria-label="Anchor link for: Is Free Software ready for the millennials?">🔗</a></h4>
<p>So, I felt like an imposter at this conference of people who are wise to the role of Software Freedom in our new digital society, but never grew up in the kind of world I did. A lot of the people in the room at CopyleftConf 2020 developed their worldview, ethical perspectives, and software preferences as the world changed around them. Me and other people of my generation were born into this world.</p>
<p>It makes the conversation around Software Freedom very different, and also challenging, because the next ten and twenty years of Software Freedom will have to include today&rsquo;s youth to be truly sustainable.</p>

<h3 id="3-the-world-is-changing-will-free-software">3. The world is changing. Will Free Software?&nbsp;<a class="hanchor" href="#3-the-world-is-changing-will-free-software" aria-label="Anchor link for: 3. The world is changing. Will Free Software?">🔗</a></h3>
<p>Related to the identity crisis and under-representation of youth, the theme of change begins to emerge. Stallman and other Free Software leaders in the 1980s and 1990s were ahead of their time to realize the importance of Software Freedom in respecting and protecting user freedom. Some of those same people were also in the room at CopyleftConf 2020.</p>
<p>But today&rsquo;s world is changing. Software became the commodity in the 1970s and 1980s. Free Software was the resistance. Today, data is the new digital commodity. Software is just one piece of a bigger puzzle. Software Freedom may protect one aspect of our digital lives, but it would be nonsensical to assume the digital world would stay the same. Why should Free Software?</p>

<h4 id="the-2020s-will-be-definitive">The 2020s will be definitive&nbsp;<a class="hanchor" href="#the-2020s-will-be-definitive" aria-label="Anchor link for: The 2020s will be definitive">🔗</a></h4>
<p>So, CopyleftConf 2020 made me realize that the next ten years will be definitive. The 2020s will determine whether open source becomes yet another cog in strengthening our capitalist society and enthroning corporations as a great benefactor to technology, or if Software Freedom undergoes some sort of transformation to meet the new demands of freedom in our digital world.</p>
<p>No matter your political leanings, read any news site that isn&rsquo;t a tech journal and tell me honestly that there are not some scary trends in our technology world. COVID-19 is just the latest example, with our data privacy and digital rights being on the sacrificial alter for our &ldquo;safety&rdquo; and &ldquo;protection&rdquo;. This line is all too common. I have heard it as a justification of many things across my life since September 2001.</p>
<p>So, what will Free Software do?</p>

<h2 id="copyleft-adoption-curves-what-drove-copyright-adoption-then-or-now">Copyleft adoption curves: what drove copyright adoption then (or now?)&nbsp;<a class="hanchor" href="#copyleft-adoption-curves-what-drove-copyright-adoption-then-or-now" aria-label="Anchor link for: Copyleft adoption curves: what drove copyright adoption then (or now?)">🔗</a></h2>
<blockquote>
<p>Copyleft adoption has changed significantly over time, for better and for worse. This talk will survey the many factors that drive adoption, with particular focus on GPL v2 and Affero GPL v3. While some factors are obvious and reasonably well-understood (particularly the shift towards SaaS economics) many other nuanced factors play in as well.</p>
<p><a href="https://twitter.com/luis_in_brief">Luis Villa</a></p>
</blockquote>
<p>What I highlighted in my notes from Luis&rsquo;s talk was his history lesson on adoption. While the history of Free Software wasn&rsquo;t new to me, nor most people in the room, Luis took it in a different way. His history lesson was a reflection on &ldquo;why?&rdquo; and not just &ldquo;what?&rdquo;</p>
<p>Whether you think Free Software &ldquo;won&rdquo; or not, open source is here to stay. So, how did we get to where we are today? How did a famous software company go from calling open source an &ldquo;intellectual property cancer&rdquo; in 2001 to investing billions of dollars into open source and open source companies by 2020?</p>

<h3 id="add-more-chairs-to-the-table">Add more chairs to the table&nbsp;<a class="hanchor" href="#add-more-chairs-to-the-table" aria-label="Anchor link for: Add more chairs to the table">🔗</a></h3>
<p>I loved this quote that Luis dropped: &ldquo;<strong>Movement building is the only way to influence political change.</strong>&rdquo; Luis gave examples from the 1990s of how evangelism and education were part of the building blocks of open source. There were &ldquo;leading apps&rdquo; that brought new people to the Free Software (or open source) table. Mozilla was the first browser that brought common lawyers in. A focus on education for lawyers, such as the F.S.F.&rsquo;s 22,000 word F.A.Q., converted a motivation to learn into practical knowledge used for compliance work.</p>
<p>
<figure>
  <img src="/blog/2020/04/IMG_20200203_105508557_HDR.jpg" alt="Luis Villa on copyleft adoption curves. Slide reads: &ldquo;tl;dr (positive version): if you build a movement, maybe you won&rsquo;t need a license!&rdquo;" loading="lazy">
  <figcaption>Luis Villa on copyleft adoption curves.</figcaption>
</figure>
</p>
<p>However, I think Luis&rsquo;s goal was to define, not to prescribe. He implied that building a movement doesn&rsquo;t start with writing a license, based on his personal experiences (he did lead drafting of the Mozilla Public License). My takeaway from Luis is that we need to think about how we build a movement that includes people who aren&rsquo;t at the table today to build a strong foundation for what comes next.</p>

<h2 id="free-software-but-for-kids">Free Software, but for kids&nbsp;<a class="hanchor" href="#free-software-but-for-kids" aria-label="Anchor link for: Free Software, but for kids">🔗</a></h2>
<p>There was a <a href="https://2020.copyleftconf.org/schedule/presentation/13/">panel</a> on copyleft expansion and what should and shouldn&rsquo;t be at the table. At some point, the role of &ldquo;the next generation&rdquo; came up in heralding the values of copyleft licensing forward in light of the popularity of permissive licenses.</p>
<p>This was personal. My first experience in the open source world was as a community member and later a volunteer staff member of the largest open source Minecraft server software project. In my time in that community, I learned a lot. I saw a <a href="/blog/2020/04/open-source-minecraft-bukkit-gpl/">major breakdown of the GPL</a> for a community of hundreds of thousands of young adults, teenagers, and children. So, indeed, how is &ldquo;the next generation&rdquo; going to herald these values of copyleft licensing?</p>

<h3 id="talk-with-us-not-at-us">Talk <em>with</em> us, not <em>at</em> us&nbsp;<a class="hanchor" href="#talk-with-us-not-at-us" aria-label="Anchor link for: Talk with us, not at us">🔗</a></h3>
<p>It is interesting to be present in these conversations about &ldquo;the next generation&rdquo; because it usually feels like people are talking at me instead of with me. It took some reflection time to realize this after CopyleftConf 2020, but I feel like some older folks like to imagine that younger folks will come on board and just start steering the ship in the same course it has always traveled. Some younger folks may be fine with that.</p>
<p>But I also think a lot of younger people will ask more of Free Software because of our collective experiences with Free Software licenses. From my hey-days in the Minecraft community, there is bad blood towards the GPL and copyleft licensing because of the scars it left on the community, even if it was really because the GPL should never have been used in that context.</p>
<p>But the demands for more also stem from the collective treatment by those senior to us in traditional &ldquo;FOSS circles.&rdquo; Even at my university, I also see how students become bitter and frustrated in instances where senior faculty and older community members insist on a Free Software-first, no-compromises approach. As if it were so simple for my generation.</p>
<p>I already explained the perspective of younger folks earlier in this blog post. But the way some senior folks treat us in the proper Free Software world is sometimes exclusionary and off-putting, even if that isn&rsquo;t the intention. It discards great opportunity for guidance and mentorship. There is an innumerable amount of times an older person completely dismissed my decision to use a proprietary or mixed-source platform for a community, yet they lament about not having the patience to troubleshoot the Free Software tools they rely on when they fail (mailing lists and email spam filters, I&rsquo;m looking at you).</p>

<h3 id="teach-early-and-teach-often">Teach early and teach often&nbsp;<a class="hanchor" href="#teach-early-and-teach-often" aria-label="Anchor link for: Teach early and teach often">🔗</a></h3>
<p>But that point aside, let&rsquo;s bring it back to the panel. I think it was Allison Randall and John Sullivan who emphasized the importance of early education around the concepts of Software Freedom. The average middle school student interested in STEM will not comprehend the GPL. However, the Four Freedoms (by design) are easy to comprehend. The freedoms to Read, Run, Remix, and Redistribute are not that difficult to understand. Perhaps part of the answer lies in how we think about messaging to younger folks and keeping foundational concepts like the Four Freedoms at the forefront.</p>
<p>I still lament over the way that Free Software built itself in a technology-centered way instead of a people-centered way, but I digress.</p>

<h2 id="where-are-we-going">Where are we going?&nbsp;<a class="hanchor" href="#where-are-we-going" aria-label="Anchor link for: Where are we going?">🔗</a></h2>
<p>The hottest discussions I participated in were from <a href="https://2020.copyleftconf.org/schedule/presentation/17/">The Rising Ethical Storm in Open Source</a> (<a href="https://twitter.com/CoralineAda">Coraline Ada Ehmke</a>) and <a href="https://2020.copyleftconf.org/schedule/presentation/19/">Software Ethics and Copyleft Licensing</a>, emceed by Karen Sandler. Coraline dropped absolute <strong><em>fire</em></strong> in her talk, even knowing that the essence of her talk would alienate some people. But it was a call-out to us folks in tech who consciously or unconsciously live these values that our Free Software movement is built upon: the freedoms of personal liberty, as it lends itself both for justice and harm.</p>
<p>
<figure>
  <img src="/blog/2020/04/IMG_20200203_140443994_HDR.jpg" alt="Coraline Ada Ehmke on the Rising Ethical Storm in Open Source. Slide reads: &ldquo;Software freedom must not come before human freedom.&rdquo;" loading="lazy">
  <figcaption>Coraline Ada Ehmke on the Rising Ethical Storm in Open Source.</figcaption>
</figure>
</p>
<p>I won&rsquo;t spend a lot of time summarizing these talks and sessions, but one interesting thing to look up that Coraline mentioned was the Parable of the Locksmith.</p>
<p>During Karen&rsquo;s session, I penned what ended up being a short speech in my notebook. When I was eventually passed the mic, I tried to fit too much into too little time, and I was not fully respectful of other folks who also had something to contribute to the discussion. So, instead, I will recap the full essence of what I wanted to say in my blog post.</p>

<h3 id="our-software-freedoms-are-not-enough">Our software freedoms are not enough&nbsp;<a class="hanchor" href="#our-software-freedoms-are-not-enough" aria-label="Anchor link for: Our software freedoms are not enough">🔗</a></h3>
<p>The Four Freedoms, the foundation of all copyleft licenses, is not enough.</p>
<p>On the Saturday before CopyleftConf 2020, I presented at FOSDEM 2020 with my colleague and dear friend Mike Nolan on <a href="https://fosdem.org/2020/schedule/event/ethical_ai/">three new freedoms for AI</a> that go beyond software. In our talk, we analyzed the history of how Free Software began as a social movement. It roughly flowed as follows:</p>
<ol>
<li><strong>GNU Project, 1983</strong>: Establishment of values</li>
<li><strong>Free Software Foundation, 1985</strong>: Establishment of organization to champion the values</li>
<li><strong>GNU Public License, 1989</strong>: Establishment of license to enforce and protect the values</li>
</ol>
<p>In today&rsquo;s complex and changing world, we need more than Free Software&rsquo;s Four Freedoms. This libertarian base was susceptible to the co-opting of its values as &ldquo;open source.&rdquo; It was always inevitable, because Free Software was built from the strengths and biases of those who founded the movement (i.e. Richard Stallman).</p>
<p><strong>Free Software was designed with technology at its center, not people. This is to say, it was poorly designed.</strong></p>
<p>Now, we have an ethical dilemma that was always possible because Freedom means freedom to do as you wish, not the freedom of all people.</p>
<p>Some context for discussing legal issues is key, but we need to push the conversation forward beyond semantics. We need to identify whether unethical uses of our software is something we will tolerate. We can&rsquo;t continue to ignore or delegate social responsibilities for what we do.</p>

<h3 id="so-now-what">So, now what?&nbsp;<a class="hanchor" href="#so-now-what" aria-label="Anchor link for: So, now what?">🔗</a></h3>
<p>On one hand, we need to be ready to have these conversations about real effects and the impact of what we do on people. Look at the <a href="https://www.reuters.com/article/us-myanmar-rohingya-un/myanmar-generals-had-genocidal-intent-against-rohingya-must-face-justice-u-n-idUSKCN1LC0KN">Facebook news feed and the Myanmar genocide</a>. Legal semantics is where we are stuck since we defined the Four Freedoms. But these freedoms are no longer enough.</p>
<p>There is not one answer of where we are going. There are only multilateral answers. We have to be intersectional and inclusive for where we go from here. Free Software needs to turn to its allies not only in law and licenses, but also in labor organizing and regulation authorities.</p>
<p>One direction on my mind is continuing to support D&amp;I initiatives like Outreachy. Outreachy interns do awesome things during their internships, and many continue to do awesome things even when their internships end. Bringing more diverse perspectives to the table, especially from underprivileged groups, is key to giving those perspectives equitable power and influence.</p>

<h3 id="we-do-have-the-power">We <em>do</em> have the power.&nbsp;<a class="hanchor" href="#we-do-have-the-power" aria-label="Anchor link for: We do have the power.">🔗</a></h3>
<p>But everyone in that room at CopyleftConf 2020, and you, the reader, have some power. We all have some room to influence change for good. But we cannot avoid the discomfort. We can not keep turning away our eyes.</p>
<p>So, what will you do?</p>
<p>For me, I am wrestling with that question actively as I continue to make my way out into the world.</p>

<h2 id="thanks-folx">Thanks folx!&nbsp;<a class="hanchor" href="#thanks-folx" aria-label="Anchor link for: Thanks folx!">🔗</a></h2>
<p>To wrap up this CopyleftConf 2020 report, a few thank-yous are in order:</p>
<ul>
<li><strong><a href="https://www.rit.edu/computing/directory/sxjics-stephen-jacobs">Stephen Jacobs</a></strong>: For always being supportive for yet another trip abroad and helping me push my career forward in a number of ways (and footing the bill!)</li>
<li><strong><a href="https://nolski.rocks/">Mike Nolan</a></strong>: My co-conspirator, partner in FOSS, and comrade in arms</li>
<li><strong><a href="https://sfconservancy.org/">Software Freedom Conservancy</a></strong>: For creating and holding this important space.</li>
</ul>
<p>CopyleftConf 2020 continues to give me a lot to think about and consider. I’m fortunate to have attended. I hope this event report gives additional visibility to some of the conversations held in Brussels this year.</p>]]></description></item><item><title>TeleIRC v2.0.0: March 2020 progress update</title><link>https://jwheel.org/blog/2020/03/teleirc-v2-0-0-march-2020-progress-update/</link><pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/03/teleirc-v2-0-0-march-2020-progress-update/</guid><description><![CDATA[<p>Since September 2019, the <a href="https://ritlug.com/">RITlug</a> TeleIRC team is hard at work on the <a href="https://github.com/RITlug/teleirc/milestone/8">v2.0.0 release</a> of TeleIRC. This blog post is a short update on what is coming in TeleIRC v2.0.0, our progress so far, and when to expect the next major release.</p>

<h2 id="whats-coming-in-teleirc-v200">What&rsquo;s coming in TeleIRC v2.0.0?&nbsp;<a class="hanchor" href="#whats-coming-in-teleirc-v200" aria-label="Anchor link for: What&rsquo;s coming in TeleIRC v2.0.0?">🔗</a></h2>
<p>TeleIRC v2.0.0 is a complete rewrite of TeleIRC. The team is migrating the code base <a href="https://github.com/RITlug/teleirc/issues/163">from NodeJS to Go</a>. In September 2019, the team began scoping the requirements and how to approach this large task. TeleIRC v2.0.0 does not add new features, but aims to have feature parity with the v1.x.x version of TeleIRC.</p>
<p>You might be asking, why bother with a total rewrite? What does this actually accomplish for the project? To answer this question, some historical context is needed!</p>

<h3 id="teleirc-v100-was-an-experiment">TeleIRC v1.0.0 was an experiment.&nbsp;<a class="hanchor" href="#teleirc-v100-was-an-experiment" aria-label="Anchor link for: TeleIRC v1.0.0 was an experiment.">🔗</a></h3>
<p><a href="https://github.com/RITlug/teleirc/releases/tag/v1.0.0">TeleIRC v1.0.0</a> was originally created and released in September 2016 by RIT alum <a href="https://github.com/repkam09">Mark Repka</a>. Mark created TeleIRC as a cool project for the RIT Linux Users Group (RITlug) when he was a student and vice president of RITlug. The project was written in hackathon spirit: to prove that something that was not yet common wasn&rsquo;t that hard to do.</p>
<p>Fast forward to today: TeleIRC ends up being pretty popular! As do chat bridges (Matterbridge, Matrix/Riot, etc.) as a whole. The <a href="https://docs.fedoraproject.org/en-US/project/">Fedora Project</a> is one of our largest users, with a dedicated <a href="https://docs.fedoraproject.org/en-US/teleirc-sig/">Special Interest Group</a> to manage the bots. The <a href="https://www.libreoffice.org/about-us/who-are-we/">LibreOffice community</a> is another one of our biggest users. Several international communities also adopted TeleIRC to make their chat rooms more accessible to a new generation of open source fans. Some example users are Linux and BSD user groups and hackerspaces in Argentina, Albania, and across Asia. You can see the <a href="https://docs.teleirc.com/en/latest/about/who-uses-teleirc/">full list of TeleIRC users</a> for yourself.</p>
<p>TeleIRC has grown in a way we never thought it would. Which is awesome! But the project was not originally designed to grow or scale the way it has. Additionally, by being at a university, contributors come and go as students graduate and move on to industry. We also have to think about how to maintain TeleIRC beyond the typical student life-cycle common in the academic world.</p>

<h3 id="lets-approach-teleirc-v200-as-engineers">Let&rsquo;s approach TeleIRC v2.0.0 as engineers.&nbsp;<a class="hanchor" href="#lets-approach-teleirc-v200-as-engineers" aria-label="Anchor link for: Let&rsquo;s approach TeleIRC v2.0.0 as engineers.">🔗</a></h3>
<p>A full rewrite allows us to fully leverage our knowledge as software engineers. In 2020, we know TeleIRC has a large user community and is an important part of how many open source communities communicate. We also know that breaking code into smaller, more modular pieces makes it easier to maintain and bring in new contributors. A full rewrite allows us to apply the lessons the team has learned over the years, in a way that incremental feature releases does not allow.</p>
<p>A few areas are in clear focus for the TeleIRC v2.0.0 rewrite:</p>
<ol>
<li>Write clean, simple code that is easy to understand</li>
<li>Test the code so it is easy to tell when things are working and when they aren&rsquo;t</li>
<li>Think about how to bring in new contributors to continue the project in the future</li>
</ol>
<p>But maybe you are also asking, why the jump to Go?</p>

<h3 id="a-go-rewrite-distinguishes-our-project">A Go rewrite distinguishes our project.&nbsp;<a class="hanchor" href="#a-go-rewrite-distinguishes-our-project" aria-label="Anchor link for: A Go rewrite distinguishes our project.">🔗</a></h3>
<p>When Mark and I launched the project in 2016, we didn&rsquo;t look around to see if anything else like RITlug&rsquo;s TeleIRC already existed. Turns out, there was <a href="https://github.com/FruitieX/teleirc">another NodeJS project</a> with the same name. Skip forward a few years, and there are also projects like <a href="https://github.com/42wim/matterbridge">Matterbridge</a>, <a href="https://github.com/sfan5/pytgbridge">pytgbridge</a>, and <a href="https://github.com/xypiie/teleirc">other implementations</a>. So, with all this commotion out there these days, why bother with our version of yet another chat bridge?</p>
<p>First, there is one design principle guiding our project from others like us: to do one thing and to do it well. Matterbridge is an excellent tool, and we even use it in conjunction with TeleIRC at our university. However, it is a complex tool with many features and options. For some people, this is a non-issue. But the TeleIRC team likes to think there is beauty in simplicity. Instead of offering a tool with the most features and configuration options, we aspire to do a single thing and to do it really well: connect Telegram groups and IRC channels together.</p>
<p>Second, although the FruitieX/teleirc project is archived today, it was once the biggest alternative to our project, also written in NodeJS. When we decided to launch TeleIRC v2.0.0 development, it had a larger community and user base then ours. So instead of offering a &ldquo;similar but different&rdquo; NodeJS project, we would be the first Telegram-IRC bridge written in Go. (Yes, Matterbridge is also written in Go, but see the above paragraph.)</p>
<p>Third… many of the existing maintainers of TeleIRC simply wanted an excuse to learn Go. It is an opportunity to expand our knowledge, experience, and skills, especially since we are students preparing to enter the industry.</p>

<h3 id="go-has-a-better-story-for-kubernetes--openshift">Go has a better story for Kubernetes / OpenShift.&nbsp;<a class="hanchor" href="#go-has-a-better-story-for-kubernetes--openshift" aria-label="Anchor link for: Go has a better story for Kubernetes / OpenShift.">🔗</a></h3>
<p>Finally, we are carefully considering the needs of one of our biggest downstream users: the <strong>Fedora Project</strong>. Several TeleIRC developers also support Fedora&rsquo;s TeleIRC SIG. Recently, the Fedora Infrastructure team launched an OpenShift instance for the Fedora community, called <a href="https://fedoraproject.org/wiki/Infrastructure/Communishift">Communishift</a>. All existing infrastructure in Fedora is gradually moving from virtual machines or OpenStack to OpenShift. To support this migration, we want to make a Go-based TeleIRC as easy to deploy in OpenShift as possible.</p>
<p>And fortunately, Go has a great story in the container orchestration world. Kubernetes and OpenShift are also Go-based projects. Go is the dominant language of this ecosystem. Its excellent performance in the niche of networking makes it a great choice for what TeleIRC does.</p>
<p>Now that you know more about the &ldquo;why is this happening,&rdquo; let&rsquo;s talk on where things are and what you can expect!</p>

<h2 id="teleirc-v200-progress-so-far">TeleIRC v2.0.0: Progress so far&nbsp;<a class="hanchor" href="#teleirc-v200-progress-so-far" aria-label="Anchor link for: TeleIRC v2.0.0: Progress so far">🔗</a></h2>
<p><strong>TeleIRC v2.0.0 is approximately 76% complete</strong>. All progress is tracked in the <a href="https://github.com/RITlug/teleirc/milestone/8">v2.0.0 milestone</a> on GitHub. <a href="https://github.com/RITlug/teleirc/milestone/8?closed=1">46 issues and pull requests were closed</a> since we began in September 2019. At publishing time, about 16 more issues and pull requests are left before we cut the v2.0.0 release.</p>
<p>Earlier in 2019, the maintainer team consisted of <a href="https://github.com/justwheel">Justin Wheeler</a>, <a href="https://github.com/Tjzabel">Tim Zabel</a>, <a href="https://github.com/xforever1313">Seth Hendrick</a>, <a href="https://github.com/thenaterhood">Nate Levesque</a>, <a href="https://github.com/nic-hartley">Nic Hartley</a>, and <a href="https://github.com/robbyoconnor">Robby O&rsquo;Connor</a>. Now joining the committer group, we are happy to welcome <strong><a href="https://github.com/Zedjones">Nicholas Jones</a>, <a href="https://github.com/10eMyrT">Kevin Assogba</a>, and <a href="https://github.com/kennedy">Kennedy Kong</a></strong> to the team. The current core group of maintainers for v2.0.0 are Justin, Tim, Nicholas, Kevin, and Kennedy.</p>

<h2 id="when-to-expect-teleirc-v200">When to expect TeleIRC v2.0.0&nbsp;<a class="hanchor" href="#when-to-expect-teleirc-v200" aria-label="Anchor link for: When to expect TeleIRC v2.0.0">🔗</a></h2>
<p>TeleIRC v2.0.0 is targeted for a release date of <strong>Friday, May 15th, 2020</strong>. At this point, we expect to have full feature parity with the v1.x.x version. We will recommend all existing users to upgrade to the latest release then.</p>
<p>In the meanwhile, the team is getting ready to <a href="https://github.com/RITlug/teleirc/issues/265">cut a v2.0.0-pre1 release</a>, our first &ldquo;pre-release&rdquo; of the Go port. We expect this release to be available on our <em><a href="https://github.com/RITlug/teleirc/releases">Releases</a></em> by Saturday, March 28th. Along with the v2.0.0-pre1 release, there are a few other details to note:</p>
<ol>
<li><a href="https://github.com/RITlug/teleirc/milestone/9?closed=1">TeleIRC v1.5.0</a>, the final version of the NodeJS version, will be released.</li>
<li>No future contributions will be accepted to the NodeJS version.</li>
<li><code>master</code> branch in git will reflect the latest Go version of TeleIRC.</li>
</ol>
<p>Once the v2.0.0-pre1 release is available, we want help to take it for a test drive! If TeleIRC is critical for you, we do not recommend using it yet, as it does not have full feature parity yet. But your early feedback can help improve the future of the next release while we are in active development.</p>

<h2 id="get-involved-with-teleirc">Get involved with TeleIRC!&nbsp;<a class="hanchor" href="#get-involved-with-teleirc" aria-label="Anchor link for: Get involved with TeleIRC!">🔗</a></h2>
<p>You can be a part of the upcoming TeleIRC v2.0.0 release. We&rsquo;d love your help! There is no formal commitment to contributing, although we ask for participation through a single sprint cycle.</p>
<p>Read our <a href="https://docs.teleirc.com/en/latest/dev/contributing/"><em>Contributing guidelines</em></a> on how to get started with TeleIRC. <a href="https://rit.bluejeans.com/564315135">Virtual developer meetings</a> take place every Saturday at 15:00 US EDT, so anyone can join and participate.</p>
<p>Come say hello in our developer chat rooms, either on <a href="https://webchat.freenode.net/#ritlug-teleirc">IRC</a> or in <a href="https://t.me/teleirc">Telegram</a>!</p>
<hr>
<p><em><a href="https://unsplash.com/photos/guiQYiRxkZY">Background photo</a> by <a href="https://unsplash.com/@epicantus">Daria Nepriakhina</a> on <a href="https://unsplash.com/">Unsplash</a>.</em></p>]]></description></item><item><title>FOSDEM 2020, pt. 1: Play by play</title><link>https://jwheel.org/blog/2020/03/fosdem-2020-pt-1-play-by-play/</link><pubDate>Thu, 05 Mar 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/03/fosdem-2020-pt-1-play-by-play/</guid><description><![CDATA[<p>FOSDEM 2020 took place from Saturday, 1 February, 2020 to Sunday, 2 February, 2020 in Brussels, Belgium (shortly after <a href="/blog/2020/02/sustain-oss-2020-quick-rewind/">Sustain OSS 2020</a> and <a href="/blog/2020/02/chaosscon-eu-2020-play-by-play/">CHAOSScon EU 2020</a>):</p>
<blockquote>
<p>FOSDEM is a free and non-commercial event organized by the community for the community. The goal is to provide free and open source software developers and communities a place to meet to:</p>
<p>- Get in touch with other developers and projects;</p>
<p>- Be informed about the latest developments in the free software world;</p>
<p>- Be informed about the latest developments in the open source world;</p>
<p>- Attend interesting talks and presentations on various topics by project leaders and committers;</p>
<p>- To promote the development and benefits of free software and open source solutions.</p>
<p><a href="https://web.archive.org/web/20200202125844/https://fosdem.org/2020/about/">fosdem.org/2020/about/</a></p>
</blockquote>
<p>This is my third time attending FOSDEM. I attended on behalf of <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> to represent our engagement with the <a href="https://www.unicef.org/innovation/">UNICEF Office of Innovation</a> and the <a href="https://unicefinnovationfund.org/">Innovation Fund</a>. For FOSDEM 2020, I arrived ready to give my talk (coming in pt. 2) and honestly to see where the weekend took me.</p>
<p>Planning out FOSDEM is hard. So, my strategy is to figure it out as I go, since most of what I get out of FOSDEM comes from casual conversations and &ldquo;hallway track.&rdquo;</p>

<h2 id="sessions-play-by-play">Sessions: Play-by-play&nbsp;<a class="hanchor" href="#sessions-play-by-play" aria-label="Anchor link for: Sessions: Play-by-play">🔗</a></h2>
<p>Event reports take many forms. My form is an expanded version of my session notes along with key takeaways. Said another way, my event report is biased towards what is interesting to me. You can also skim the headings to find what interests you.</p>
<p>Also, I live-tweeted several sessions of FOSDEM 2020, so some sections include tweet excerpts with pictures.</p>

<h3 id="building-ethical-software-under-capitalism">Building ethical software under capitalism&nbsp;<a class="hanchor" href="#building-ethical-software-under-capitalism" aria-label="Anchor link for: Building ethical software under capitalism">🔗</a></h3>
<blockquote>
<p>The software that is the easiest to build &ndash; the software that is the easiest to fund the development of &ndash; tends to serve those who are already extremely well-served. So, how do we bridge the gap between what society needs and what many people with money want to fund? Free and open source software platforms can get us part of the way there, but without some big changes, it won&rsquo;t be enough. Let&rsquo;s talk structure!</p>
<p><a href="https://fosdem.org/2020/schedule/event/capitalismethicaloss/">Deb Nicholson</a></p>
</blockquote>
<p>Deb is making a <a href="/tags/2020-foss-conferences/">regular appearance</a> on my blog.</p>
<p>A foundational piece of Deb&rsquo;s FOSDEM 2020 talk is something I started calling the &ldquo;buck factor.&rdquo; In 20 minutes, she gave context for the challenges of fundraising and achieving financial sustainability for open source projects with ethical missions. She also commented on the divides between &ldquo;community&rdquo; and &ldquo;enterprise,&rdquo; and how they are frequently on opposing ends of a spectrum.</p>
<p>Deb offered suggestions on how the Free Software movement can stand up and protect our shared values. Some are practical and others are aspirational, but I believe Deb aimed to get the audience thinking in different angles on this challenge:</p>
<ul>
<li>Encourage self-reporting within organizations
<ul>
<li>Build an ethical strategy inside an organization</li>
</ul>
</li>
<li>Labor organizing</li>
<li>Build alternatives:
<ul>
<li>Community-driven non-profits</li>
<li>Worker-controlled options (e.g. worker co-ops)</li>
</ul>
</li>
<li>Advocate for policy changes (e.g. public utilities)</li>
</ul>
<p>I also learned new vocabulary from Deb: <a href="https://en.wikipedia.org/wiki/Pink_capitalism">rainbow/pink capitalism</a>.</p>

<h3 id="growing-sustainable-contributions-through-ambassador-programs">Growing sustainable contributions through ambassador programs&nbsp;<a class="hanchor" href="#growing-sustainable-contributions-through-ambassador-programs" aria-label="Anchor link for: Growing sustainable contributions through ambassador programs">🔗</a></h3>
<blockquote>
<p>Open Source Program Offices are utilizing ambassador programs more and more. We&rsquo;ll talk about why we decided to implement ambassador programs, how we implemented them, got buy-in (from a time and budget standpoint), and more.</p>
<p>Additionally, we&rsquo;ll both talk about how we use this program to scale and reach thousands of developers internally. Also, we&rsquo;ll throw in a few case studies and lessons learned throughout our (ongoing) journeys.</p>
<p>During this talk we’ll go over what an ambassador program is, how we decided to use them in our organizations, the path to buy-in and budget approval, how they were implemented, results we saw, and lessons learned. We’ll present specific case studies of how our Ambassador Programs helped with specific campaigns and how that fosters open source sustainability.</p>
<p><a href="https://fosdem.org/2020/schedule/event/ambassadornetworks/">Shilla Saebi &amp; Alison Yu</a></p>
</blockquote>
<p>Shilla and Alison shared their experiences and advice in building open source ambassador programs at the Indeed and Comcast <strong>open source program offices</strong> (OSPOs). In the Community devroom at FOSDEM 2020, they introduced their ambassador programs, what goals and responsibilities of ambassadors were, and lessons learned from building their ambassador programs.</p>

<h4 id="what-is-an-ambassador-program">What is an ambassador program?&nbsp;<a class="hanchor" href="#what-is-an-ambassador-program" aria-label="Anchor link for: What is an ambassador program?">🔗</a></h4>
<p>Ambassador programs were created in response to a growing need for decentralization in the OSPO. An OSPO team is a finite group of people with finite resources and time. To be successful in internally promoting open source, an ambassador program empowers others and builds open source allies across an organization. Similar to how technology must scale in order to grow, consider the &ldquo;people&rdquo; factor as something that must scale in order to grow.</p>
<p>When launching ambassador programs, both Indeed and Comcast planned multiple phases. In the beginning, it started with an exploratory <strong>pilot program phase</strong>. The OSPOs identified success metrics and transparently set a date to reevaluate program efforts. A small number of open source leaders inside each organization were invited to participate.</p>
<p>Then, over time, early success led to a gradual <strong>expansion phase</strong>. More people were recruited with an internal kick-off and training week. Each quarter, ambassadors received an events stipend to represent projects and the organization at local conferences and community events.</p>

<h4 id="who-and-what-are-ambassadors">Who and what are ambassadors?&nbsp;<a class="hanchor" href="#who-and-what-are-ambassadors" aria-label="Anchor link for: Who and what are ambassadors?">🔗</a></h4>
<p>Ambassadors are like a &ldquo;working group&rdquo; of volunteers. They are champions and advocates of open source inside an organization or community. Ambassadors can be both internal and external: internal to a company or organization, but also external members of a community outside of a single organization.</p>
<p>But what kind of person makes a good fit for an ambassador role? There is no one-size-fits-all approach. However, Indeed and Comcast shared strategies they used to identify strong candidates for their ambassador programs:</p>
<ul>
<li>Prior experience contributing to an upstream project</li>
<li>Already an advocate for open source (internally or externally)</li>
<li>Willingness of managers to support participation</li>
<li>Ability to pass an online learning assignment on open source</li>
</ul>

<h4 id="what-do-ambassadors-do">What do ambassadors do?&nbsp;<a class="hanchor" href="#what-do-ambassadors-do" aria-label="Anchor link for: What do ambassadors do?">🔗</a></h4>
<p>Responsibilities are different at different organization. Ambassador programs at Indeed and Comcast share three common ways to participate:</p>
<ul>
<li>Evangelize open source</li>
<li>Participate in internal policy review</li>
<li>Advise in license reviews</li>
</ul>
<p>Additionally, a culture goal was to shift the perspective of open source away from &ldquo;one and done.&rdquo; Or rather, the OSPOs aspired to promote long-term contributions and partnerships with open source projects and their communities.</p>

<h4 id="how-to-incentivize-ambassadors">How to incentivize ambassadors?&nbsp;<a class="hanchor" href="#how-to-incentivize-ambassadors" aria-label="Anchor link for: How to incentivize ambassadors?">🔗</a></h4>
<p>Some people may fulfill ambassador responsibilities as part of their paid work. However, most people adopt a volunteer ethos. Ambassadors are not <em>just</em> colleagues representing open source inside an organization. They are also <em>people</em> with their own aspirations and goals too.</p>
<p><strong>Personal development opportunities</strong> are effective incentives for participating. For example, an in-person training week teaches new skills to ambassadors based on areas of identified growth. Getting <strong>mentorship</strong> is also key to enable participation. Mentorship opportunities lower the &ldquo;<a href="https://en.wikipedia.org/wiki/Bus_factor">bus factor</a>&rdquo; of an OSPO. It also recruits ambassadors to identify colleagues doing unrecognized open source work. Instead of leaving them out on the fringe, bring them in as co-conspirators!</p>
<p>Additionally, <strong>organization-supported travel</strong> is one way to validate an ambassador&rsquo;s time and effort. This furthers an ambassador&rsquo;s careers by connecting them to more opportunities in the industry. They get the chance to build their network across other organizations, projects, and communities to facilitate inter-organizational collaboration.</p>
<p>Finally, ambassadors were incentivized through their ability to <strong>influence program direction</strong>. Ambassadors are empowered by contributing to the direction and strategy of the ambassador program itself. Inclusion is key, so ideas, suggestions, and criticisms from ambassadors are actually reflected in program policy. After all, they are the ones who are directly impacted by future program policy. As key stakeholders in the program, their voices are important to include.</p>

<h4 id="lessons-learned">Lessons learned&nbsp;<a class="hanchor" href="#lessons-learned" aria-label="Anchor link for: Lessons learned">🔗</a></h4>
<p>Shilla and Alison listed off some &ldquo;lessons learned&rdquo; and ideas on where to take their ambassador programs next:</p>
<ul>
<li>Ambassadors appreciated structure and knowing transparently how they are measured</li>
<li>Needed more support from OSPO than originally expected</li>
<li>More opportunities for feedback
<ul>
<li>Specifically, more 1x1 conversations</li>
</ul>
</li>
<li>Check for manager support at the beginning
<ul>
<li><em>Example</em>: Employee gets manager approval to spend 10% of their paid time as an ambassador</li>
</ul>
</li>
<li>Schedule more ambassador community calls for access to OSPO and mentors</li>
<li>Share more swag with ambassadors!</li>
<li>Set clear expectations (or as clear as possible) in advance</li>
<li>Provide more training opportunities for ambassadors
<ul>
<li>Open source is broad; many people have experience in some areas but could use mentorship/guidance in other areas</li>
</ul>
</li>
<li>Create stretch goals for ambitious folks to reach for</li>
</ul>

<h4 id="future-goals">Future goals&nbsp;<a class="hanchor" href="#future-goals" aria-label="Anchor link for: Future goals">🔗</a></h4>
<ul>
<li>Provide internal resources to build allies in organization</li>
<li>Create digital badges to identify organization/project ambassadors across the web and also internally</li>
<li>Highlight/recognize ambassadors in visible ways</li>
<li>Schedule mandatory 1x1 check-ins between ambassadors and OSPO mentors</li>
</ul>

<h3 id="open-source-won-but-software-freedom-hasnt-yet">Open source won, but Software Freedom hasn&rsquo;t yet&nbsp;<a class="hanchor" href="#open-source-won-but-software-freedom-hasnt-yet" aria-label="Anchor link for: Open source won, but Software Freedom hasn&rsquo;t yet">🔗</a></h3>
<blockquote>
<p>Karen and Bradley, building on the substantial feedback from last year&rsquo;s keynote, follow up their 2019 FOSDEM keynote with real-world suggestions, ideas, and discussion about how we, as software freedom activists, can live in a world with so much proprietary software. Software freedom is hard to find, but we can find it together, and we can support each other when we must face the proprietary software world and make hard decisions. Let&rsquo;s figure it out together and support each other!</p>
<p><a href="https://fosdem.org/2020/schedule/event/open_source_won/">Bradley M. Kuhn &amp; Karen Sandler</a></p>
</blockquote>
<p>This was the most powerful talk I attended at FOSDEM 2020.</p>
<p>Kuhn and Sandler asked how we decide what is right for Software Freedom and how to increase the impact of our advocacy. Being a Free Software &ldquo;purist&rdquo; is increasingly difficult in our world. The Free Software movement must recognize the privilege of access. If the most underprivileged people are not included in our movement, we collectively lose the metaphorical &ldquo;battle&rdquo; of Free vs. Proprietary.</p>

<h4 id="resisting-in-2020-is-not-the-same-as-in-2000">Resisting in 2020 is not the same as in 2000&nbsp;<a class="hanchor" href="#resisting-in-2020-is-not-the-same-as-in-2000" aria-label="Anchor link for: Resisting in 2020 is not the same as in 2000">🔗</a></h4>
<p>Kuhn and Sandler state in no uncertain terms that resisting proprietary software is increasingly difficult. <a href="https://www.digitaltrends.com/cool-tech/cyborg-law-and-rights-of-augmented-humans/">Sandler&rsquo;s pacemaker</a> is one of the most compelling examples. But from another perspective, the advent of &ldquo;digital-only deals&rdquo; is also common. Digital deals for a smartphone may not be essential, but what about grocery coupons on food? It is easy to avoid these deals if you&rsquo;re well off. But it is less of an option if you live paycheck to paycheck. The savings have a bigger impact relative to you. Choosing data privacy means choosing a financial disadvantage. Choosing data privacy means losing out on saving money on essential goods. To protect personal privacy means to lose access to savings not available on any platform except proprietary software.</p>
<p>A follow-up question might ask why we cave to proprietary software where we <em>do</em> have some power as consumers. But not having access is embarrassing. There is social pressure designed into parts of our society that makes saying &ldquo;no thank you&rdquo; difficult. Sandler gave an example of Disney&rsquo;s theme parks, where &ldquo;Fast Pass&rdquo; access is made available as a proprietary phone app that requires access to personal data in order to work. &ldquo;Fast Pass&rdquo; allows you to skip lines for rides and attractions. Explaining the principles of Software Freedom to children while waiting in longer queues is not a powerful appeal. While the Disney example is from a place of higher privilege, it is one perspective of many that shows power of social pressures that stigmatize choices that better protect us an individuals and consumers.</p>

<h4 id="stop-shaming">Stop shaming&nbsp;<a class="hanchor" href="#stop-shaming" aria-label="Anchor link for: Stop shaming">🔗</a></h4>
<p>Kuhn and Sandler made a powerful appeal. <strong>Stop shaming for using proprietary software. Start educating respectfully about software ethics</strong>. Free Software conferences sometimes trend towards being a proprietary dumping ground. However the Free Software community sometimes exists in a small bubble. In broader, societal terms, we are losing the freedom to choose Free Software. We need to put pressure on our companies and organizations to create the <em>right</em> kind of Free Software; that is, sustainable software that respects our freedoms by design. Our software is not sustainable unless it respects our Freedoms.</p>

<h3 id="design-contributions-to-oss-learnings-from-the-open-design-project-at-ushahidi">Design contributions to OSS: Learnings from the Open Design project at Ushahidi&nbsp;<a class="hanchor" href="#design-contributions-to-oss-learnings-from-the-open-design-project-at-ushahidi" aria-label="Anchor link for: Design contributions to OSS: Learnings from the Open Design project at Ushahidi">🔗</a></h3>
<blockquote>
<p>Ushahidi builds OSS humanitarian tools, remotely for some of the most marginalized people across the globe. To tackle these systemic problems with how to ‘open source’ a design effort and bring the community along with the ‘on-staff’ Ushahidi designers, we’ve been piloting a series of design events on our OSS crisis communication tool TenFour with our partners Designit and Adobe. Together, we’re looking to solve the problems with how open source design can work by engaging through meaningful technology that makes a difference in the world.</p>
<p>In this session, we&rsquo;ll briefly cover the history of the project and the main problems we attempted to solve and we&rsquo;ll present the learning and adaptions to our workshop framework and methodology that aims to engage design teams and individuals that are not yet &lsquo;on-board&rsquo; with OSS as an ethos or movement.</p>
<p><a href="https://fosdem.org/2020/schedule/event/design_contributions_to_oss/">Eriol Fox</a></p>
</blockquote>
<p>I had two useful takeaways from Eriol&rsquo;s FOSDEM 2020 talk in the Design devroom:</p>
<ol>
<li>Perception of &ldquo;open source&rdquo; in design world is largely undefined and unknown (because of systemic challenges)</li>
<li>Open source folks can learn more about what design work looks like when encouraging designers to participate</li>
</ol>

<h4 id="open-source-perception">Open source perception&nbsp;<a class="hanchor" href="#open-source-perception" aria-label="Anchor link for: Open source perception">🔗</a></h4>
<p>Eriol noted that most designers are in the dark about what open source is or what it can be. Open source is not included in design education. Also it is not incentivized in hiring for designers. If open source is poorly understood as a strength in the design community, how can designers use open source to build their CVs/resumes?</p>
<p>While they noted the root cause of this perception is systemic and difficult to change, it is helpful to weigh this perspective as an open source contributor. Developers and community managers should consider the systemic challenges when encouraging design contributions to an open source project.</p>
<p>For developers, open source is going mainstream. Without being prompted, you might be asked about open source in an engineering job interview. But it is different for designers. So you might have to &ldquo;design&rdquo; a different approach to effectively engage designers in our communities. (<em>pardon the pun</em>)</p>

<h4 id="learn-what-design-work-looks-like">Learn what design work looks like&nbsp;<a class="hanchor" href="#learn-what-design-work-looks-like" aria-label="Anchor link for: Learn what design work looks like">🔗</a></h4>
<p>Open source developers, program managers, and community managers may have an uninformed view of what design work is. Eriol&rsquo;s work in the <a href="https://opendesign.ushahidi.com/">Open Design project</a> at Ushahidi included workshops with topics about how to construct tasks for designers and developers together.</p>
<p>Listening to their talk, I became conscious of my poor understanding of design work. I realize I have some areas to grow and improve my understanding of open design. Eriol gave some specific examples of design work I want to explore further:</p>
<ul>
<li>Empathy mapping</li>
<li>Defining problems</li>
<li>Ideation</li>
<li>Storyboarding</li>
<li>Sketching and prototyping</li>
</ul>
<p>Also they gave a humanitarian-centered example of <strong>inviting a &ldquo;witness&rdquo;</strong> into the software design process. Or in other words, inviting someone part of the group that primarily &ldquo;needs&rdquo; the software. In the developer world, we are familiar with user testing or conducting focus groups and interviews. But those steps typically come <em>after</em> we have a product or design to get feedback on. Inviting a witness happens early, before much or any code is written. They bring a unique perspective of someone impacted by a particular problem or issue that the software will address.</p>
<p>I want to explore this one deeper. It takes more effort to practice active inclusion for someone who is a non-engineer to feel their opinions and perspective are useful and important in a room of engineers and product managers.</p>

<h4 id="twitter-thread">Twitter thread!&nbsp;<a class="hanchor" href="#twitter-thread" aria-label="Anchor link for: Twitter thread!">🔗</a></h4>
<p>Did I live-tweet this one? You bet.</p>







<h3 id="what-makes-people-come-and-what-makes-them-stay">What makes people come and what makes them stay&nbsp;<a class="hanchor" href="#what-makes-people-come-and-what-makes-them-stay" aria-label="Anchor link for: What makes people come and what makes them stay">🔗</a></h3>
<blockquote>
<p>Over the years the tech industry has been trying to change its diversity and inclusion statistics but that seems to have been a hard nut to crack. This is a talk about what makes people come, but then also what makes people stay. Because diversity is inviting people to the dance, but inclusion is enabling them to join it. Let&rsquo;s figure out how you can make people come and want to stay in your organizations, and teams, and let&rsquo;s see one use-case where Mozilla did the same.</p>
<p><a href="https://fosdem.org/2020/schedule/event/what_makes_people_come_and_what_makes_them_stay/">Gloria Dwomoh</a></p>
</blockquote>
<p>I meticulously live-tweeted this one. Check out the tweet thread below! There are lots of pictures too.</p>







<h2 id="beyond-fosdem-2020">Beyond FOSDEM 2020&nbsp;<a class="hanchor" href="#beyond-fosdem-2020" aria-label="Anchor link for: Beyond FOSDEM 2020">🔗</a></h2>
<p>Of course, there is much more to FOSDEM than just a conference. Some highlights outside of the conference were my daily reflective breakfasts with Mike, a ramen lunch with him and Gloria Dwomoh, and evening dinners with Remy DeCausemaker, Georg Link, and Justin Dorfman.</p>
<p>Also, originally I intended to give myself the Monday after FOSDEM off to recover and work from home. However, I heard about this other little conference called <a href="https://2020.copyleftconf.org/about/">Copyleft Conf</a> happening the next day. So, I ended up buying a last-minute ticket for this one too! <strong><a href="/blog/2020/04/copyleftconf-2020-quick-rewind/">Read the details in my full event report!</a></strong></p>

<h2 id="thanks-folx">Thanks folx!&nbsp;<a class="hanchor" href="#thanks-folx" aria-label="Anchor link for: Thanks folx!">🔗</a></h2>
<p>To wrap up this FOSDEM 2020 report, a few thank-yous are in order:</p>
<ul>
<li><strong><a href="https://www.rit.edu/computing/directory/sxjics-stephen-jacobs">Stephen Jacobs</a></strong>: For always being supportive for yet another trip abroad and helping me push my career forward in a number of ways (and footing the bill!)</li>
<li><strong><a href="https://nolski.rocks/">Mike Nolan</a></strong>: My co-conspirator, partner in FOSS, and comrade in arms (<em>HELL NO, MANIAC!</em>)</li>
</ul>
<p>I saw many familiar faces and also met many people I previously only knew from Twitter. FOSDEM 2020 takes a lot out of me, but it is always fulfilling to get a healthy dose of the Software Freedom perspective to fill me up on why I do what I do.</p>
<p>Until next time!</p>]]></description></item><item><title>CHAOSScon EU 2020: play by play</title><link>https://jwheel.org/blog/2020/02/chaosscon-eu-2020-play-by-play/</link><pubDate>Tue, 25 Feb 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/02/chaosscon-eu-2020-play-by-play/</guid><description><![CDATA[<p>CHAOSScon EU 2020 took place on Friday, 31 January, 2020 in Brussels, Belgium (the day after <a href="/blog/2020/02/sustain-oss-2020-quick-rewind/">Sustain OSS 2020</a>):</p>
<blockquote>
<p>Learn about open source project health metrics and tools used by open source projects, communities, and engineering teams to track and analyze their community work. This conference will provide a venue for discussing open source project health, CHAOSS updates, use cases, and hands-on workshops for developers, community managers, project managers, and anyone interested in measuring open source project health. We will also share insights from the CHAOSS working groups on Diversity and Inclusion, Evolution, Risk, Value, and Common Metrics.</p>
<p><a href="https://web.archive.org/web/20200219170041/https://chaoss.community/chaosscon-2020-eu/">chaoss.community/chaosscon-2020-eu/</a></p>
</blockquote>
<p>This is my second time attending CHAOSScon. I attended on behalf of <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> to represent our engagement with the <a href="https://www.unicef.org/innovation/">UNICEF Office of Innovation</a> and the <a href="https://unicefinnovationfund.org/">Innovation Fund</a>. For CHAOSScon EU 2020, I arrived hoping to learn more about effective metric collection strategies for open source communities and also get a deeper understanding of the technology behind <a href="https://chaoss.github.io/grimoirelab/">GrimoireLab</a>.</p>

<h2 id="sessions-play-by-play">Sessions: Play-by-play&nbsp;<a class="hanchor" href="#sessions-play-by-play" aria-label="Anchor link for: Sessions: Play-by-play">🔗</a></h2>
<p>Event reports take many forms. My form is an expanded version of my session notes along with key takeaways. Said another way, my event report is biased towards what is interesting to me. You can also skim the headings to find what interests you.</p>
<p>Also, I live-tweeted several sessions of CHAOSScon EU 2020, so some sections include tweet excerpts with pictures.</p>

<h3 id="ethics-what-you-know--what-you-dont-know">Ethics: What You Know &amp; What You Don&rsquo;t Know&nbsp;<a class="hanchor" href="#ethics-what-you-know--what-you-dont-know" aria-label="Anchor link for: Ethics: What You Know &amp; What You Don&rsquo;t Know">🔗</a></h3>
<blockquote>
<p>Metrics give us a lot of insight into what&rsquo;s going on with our projects &ndash; but only if we have enough context. The catch is that personal biases and pre-conceptions are extremely hard to filter for so no one person can see everything. Those gaps means that even the most well-meaning of us could end up doing more harm than good. In this talk, I&rsquo;ll share a few examples of the ways human brains make assumptions, some of our typical blind spots and how incomplete data can cause harm when deployed without any checks. For folks who collect, analyze and ultimately make mission critical decisions with metrics, the challenge is to constantly maintain a bit of healthy skepticism of what the numbers seem to be telling us.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-deb-nicholson">Deb Nicholson</a></p>
</blockquote>
<p>Deb&rsquo;s session was a great opener to a day focused on metrics and automated reporting. Her talk underscored unconscious bias and the ways poorly-designed metrics fail us. We should take an active approach to questioning our perspectives and take suggestions with grace.</p>
<p>During Q&amp;A, my colleague <a href="https://nolski.rocks/">Mike</a> asked for advice on pushing back on management when they ask for bad metrics. Deb suggested a clever strategy to respond in these situations:</p>
<ol>
<li>Provide the metric asked for</li>
<li>Provide a metric that contradicts what was asked for</li>
<li>Provide the metric they should have asked for</li>
</ol>

<h3 id="heat-light-and-love-telling-twitters-open-source-program-offices-story">Heat, Light, and Love: Telling Twitter&rsquo;s Open Source Program Office&rsquo;s Story&nbsp;<a class="hanchor" href="#heat-light-and-love-telling-twitters-open-source-program-offices-story" aria-label="Anchor link for: Heat, Light, and Love: Telling Twitter&rsquo;s Open Source Program Office&rsquo;s Story">🔗</a></h3>
<blockquote>
<p>Making it simple to trust, ship, and grow open source at Twitter demanded visibility into contribution trends that were not readily available. Twitter&rsquo;s open source program office and the Augur project collaborated with CHAOSS using student interns from Google&rsquo;s Summer of Code, Twitter&rsquo;s intern program and the University of Missouri. First, this talk describes Twitter&rsquo;s engaging interface design and its fit to the needs of Open Source stakeholders within Twitter, but also outside the open source program office. Second, we describe how an open API and data collection tool, Augur, evolved in close collaboration with Twitter.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-sean-goggins">Sean Goggins</a> &amp; <a href="https://chaoss.community/chaosscon-2020-eu/#user-content-remy-decausemaker">Remy DeCausemaker</a></p>
</blockquote>
<p>This one inspired me. It represented a dream of mine for many open source communities. Sean and Remy presented on three years of building an <a href="https://twitter.github.io/year-in-review">automated metrics visualization site</a> with <a href="https://chaoss.github.io/grimoirelab/">GrimoireLab</a> and <a href="https://github.com/chaoss/augur">Augur</a>. The visualization was powerful to communicate the value of open source engagement, participation, and investment to internal and external stakeholders.</p>
<p>The work was based on a philosophy familiar to me from working with Remy years ago in the Fedora Project community:</p>
<p>
<figure>
  <img src="/blog/2020/02/Screenshot_2020-02-21-Twitter-Open-Source.png" alt="From CHAOSScon EU 2020: Twitter&rsquo;s open source philosophy: heat, light, and love" loading="lazy">
  <figcaption>Twitter’s open source philosophy: heat, light, and love</figcaption>
</figure>
</p>
<p>If we are speaking in metaphors, one way to extend Remy&rsquo;s &ldquo;light&rdquo; metaphor is tying in a theatrical concept: <strong>stage lights and backstage lights</strong>.</p>
<p>Stage lights are the metrics and insights to present out to the world. They are front and center! These insights validate your mission to an external audience.</p>
<p>Backstage lights are for an internal audience. These metrics and insights illuminate the inside of an organization and build understanding of who and what is there. These are useful to validate work and efforts to funders, or perhaps your CFO.</p>
<p>This talk served as inspiration for something I hope to explore later in 2020.</p>

<h3 id="measuring-culture">Measuring Culture&nbsp;<a class="hanchor" href="#measuring-culture" aria-label="Anchor link for: Measuring Culture">🔗</a></h3>
<blockquote>
<p>They say you can’t be certain of anything unless it can be measured – so what about culture? We know it exists and can be passed on to others, so there must be a way to measure it. Using Apache Kibble we attempt to look for cultural indicators at the Apache Software Foundation, set a cultural benchmark then match real Apache projects against it. In theory we would expect a perfect match but as the results show, culture isn’t that simple.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-sharan-foga">Sharan Foga</a></p>
</blockquote>

<blockquote>
<p>Sharan introduced five factors to measure culture: <strong>bus factor, contributor experience, contributor retention, sentiment analysis, and key phrase extraction</strong>.</p>
</blockquote>
<p>Sharan defined culture as what we believe <em>and</em> what we do. So, she introduced five indicators for open source communities to measure culture. These came from learnings at the <a href="https://apache.org/foundation/">Apache Software Foundation</a>&rsquo;s <a href="https://kibble.apache.org/">Kibble project</a>:</p>
<ul>
<li><strong>Pony (&ldquo;bus&rdquo;) factor</strong>:
<ul>
<li>&ldquo;Committership&rdquo;</li>
<li>Authorship</li>
<li>Meta factor (# of organizations involved)</li>
</ul>
</li>
<li><strong>Contributor experience / contributor retention</strong>:
<ul>
<li>People who (re)joined</li>
<li>People who quit (why?)</li>
<li>People retained</li>
<li>Active contributors</li>
<li>Cross the above over time (e.g. # of months/years involved)</li>
</ul>
</li>
<li><strong>Mood, or sentiment analysis</strong>: Look for these moods…
<ul>
<li>Trust</li>
<li>Surprise</li>
<li>Neutrality</li>
<li>Sadness</li>
<li>Positivity</li>
<li>Anger</li>
<li>Negativity</li>
<li>Joy</li>
<li>Anticipation</li>
<li>Disgust</li>
<li>Fear</li>
</ul>
</li>
<li><strong>Key phrase analysis</strong>: Understand community jargon (e.g. if &ldquo;+1&rdquo; is used to indicate agreement)</li>
</ul>
<p>I had two key takeaways. First, <strong>nothing matches completely</strong>, so don&rsquo;t over-rely on one factor or metric. Second, <strong>identify <em>your</em> baseline indicators and iterate</strong> on those. For the above indicators, maybe these are specific to Apache projects. Maybe they apply to your projects too… or maybe they don&rsquo;t!</p>

<h3 id="meet-cauldron-your-saas-software-development-analytics-solution">Meet Cauldron! Your SaaS Software Development Analytics solution&nbsp;<a class="hanchor" href="#meet-cauldron-your-saas-software-development-analytics-solution" aria-label="Anchor link for: Meet Cauldron! Your SaaS Software Development Analytics solution">🔗</a></h3>
<blockquote>
<p>Cauldron is a brand-new free <strong>open source SaaS</strong> able to analyze software development community and processes. It relies on <a href="https://chaoss.github.io/grimoirelab">CHAOSS GrimoireLab</a> to collect and process data from different tools used in software development such as git, GitLab, GitHub and/or social platforms like Meetup, and <a href="https://opendistro.github.io/for-elasticsearch/"><strong>Open Distro for ElasticSearch</strong></a> to store and to display the project data. The talk shows how Cauldron can be easily put into action to analyze the software projects that matter to the attendees, and to get some CHAOSS metrics about them.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-jose-manrique-lopez-de-la-fuente">Jose Manrique Lopez de la Fuente</a></p>
</blockquote>

<p>I had no written notes other than &ldquo;wow!&rdquo;</p>
<p><em>Finally</em>, Bitergia built a hosted GrimoireLab service, called <a href="https://cauldron.io/"><strong>Cauldron</strong></a>. Cauldron takes the pain out of hosting your own GrimoireLab infrastructure. It is in early alpha and does not support all the data sources available in GrimoireLab yet, but it is promising.</p>
<p>In the <a href="https://fossrit.github.io/about/">FOSS@MAGIC community</a>, we want GrimoireLab to understand our open source community at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, home of the <a href="https://www.rit.edu/study/free-and-open-source-software-and-free-culture-minor">first academic minor</a> in free/open source. But as I go deeper, I realize GrimoireLab is very complex. Since my contract with RIT ends in a month, I want to leave something sustainable for my successors. Cauldron seems like a valid option.</p>
<p>I have some homework to do!</p>

<h3 id="language-barriers-for-open-source-contributors">Language barriers for open source contributors&nbsp;<a class="hanchor" href="#language-barriers-for-open-source-contributors" aria-label="Anchor link for: Language barriers for open source contributors">🔗</a></h3>
<blockquote>
<p>While open source development is common across the world, projects from countries outside North America and Europe, such as China, have difficulties attracting international contributors. One major reason for this is language differences. The presentation provides an overview of the diversity of non-native English speakers in different open source ecosystems. Furthermore, we will provide results about whether or not those contributors face a language barrier when contributing to open source projects. The presentation concludes with a discussion on how we can create metrics to assess the spoken language diversity in open source communities and how to include those people in the community more easily.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-isabella-vieira-ferreira">Isabella Vieira Ferreira</a></p>
</blockquote>


<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">Fascinating work from <a href="https://twitter.com/isaferreira_57?ref_src=twsrc%5Etfw">@isaferreira_57</a> on language barrier in <a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a>. <a href="https://twitter.com/hashtag/choasscon?src=hash&amp;ref_src=twsrc%5Etfw">#choasscon</a><br><br>Contributing + participating in a project operating in a language (technical too!) that&#39;s not one&#39;s first always require more effort– a useful reminder to be kind and empathetic 💖💖 <a href="https://t.co/3cJ6qWWSsH">https://t.co/3cJ6qWWSsH</a></p>&mdash; Emmy Tsang (@emmy_ft) <a href="https://twitter.com/emmy_ft/status/1223240475395678208?ref_src=twsrc%5Etfw">January 31, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Isabella&rsquo;s talk was insightful and challenged my unconscious bias. An interesting insight from two case studies was translators did not transition over time to software development contributions.</p>
<p>I believe a bias exists in open source projects with active localization communities. I have seen project leaders invest in localization efforts as one way to bring new people into a community. While it does bring new people in, there is a subtle implication that &ldquo;bringing new people in&rdquo; means bringing software contributions. That&rsquo;s not always the case. Instead, the value of translation work needs to be quantified beyond just software contributions.</p>
<p>This is especially true for supporting grassroots advocacy communities. Localization may not build your developer community, but it can support stronger local communities in regions where English is not the first language.</p>

<h3 id="metrics-are-more-than-the-sum-of-their-parts">Metrics are more than the sum of their parts&nbsp;<a class="hanchor" href="#metrics-are-more-than-the-sum-of-their-parts" aria-label="Anchor link for: Metrics are more than the sum of their parts">🔗</a></h3>
<blockquote>
<p>We are in a state of Community building that maps success to metrics like lines of code and GitHub stars. I would like us to explore where these metrics fall short on capturing the most significant value of a community, and how we can use other metrics to show the much larger impact Community organizations like Developer Relations (DevRel) can have on a business. This improved process begins with mapping value to business need, pairing it with a community need, and back to the business opportunities. There will be practical advice on how to pitch and position Community, whether you’re a Community Manager, Developer Advocate, or other Developer Relations professional.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-matt-broberg">Matt Broberg</a></p>
</blockquote>


<p>Matt&rsquo;s CHAOSScon EU 2020 session pitched strategy on communicating the value of developer relations to our organizations. He covered a lot of material and left me many thoughts to reflect on. I look forward to seeing the video recording of this talk to reflect further on integrating his ideas into my day-to-day. The themes of Matt&rsquo;s talk struck a chord with me for challenging advocacy work ahead for me in 2020.</p>

<h3 id="emerging-tech-open-source-scoring-system-etoss">Emerging Tech Open-Source Scoring System (ETOSS)&nbsp;<a class="hanchor" href="#emerging-tech-open-source-scoring-system-etoss" aria-label="Anchor link for: Emerging Tech Open-Source Scoring System (ETOSS)">🔗</a></h3>
<blockquote>
<p>This is a framework used by the UNICEF Innovation Fund, to evaluate and track the strategic position and growth potential of the early stage startups in its portfolio. The focus is on startups building open source frontier tech: Blockchain, Data Science, Artificial Intelligence and Extended Reality. It classifies the startups into four quadrants, based on two dimensions: the software developed (technology), and the financial sustainability of the project (business sustainability).</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-cecilia-chapiro">Cecilia Chapiro</a> &amp; <a href="https://chaoss.community/chaosscon-2020-eu/#user-content-justin-w-flory">Justin Wheeler</a></p>
</blockquote>
<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">.@jflory7: The UNICEF tech KPIs are quite similar to <a href="https://twitter.com/CHAOSSproj?ref_src=twsrc%5Etfw">@CHAOSSproj</a> metrics - there are also business sustainability metric to measure, placing organisations / tech projects on a sustainable and tech scale... <a href="https://twitter.com/hashtag/CHAOSScon?src=hash&amp;ref_src=twsrc%5Etfw">#CHAOSScon</a> <a href="https://t.co/e3M440FMS4">pic.twitter.com/e3M440FMS4</a></p>&mdash; yo yehudi stays away from humans! 🏳️‍🌈 (@yoyehudi) <a href="https://twitter.com/yoyehudi/status/1223246459602194433?ref_src=twsrc%5Etfw">January 31, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">Interested in getting involved? Contact details for @jflory7 and <a href="https://twitter.com/ceciliachapiro?ref_src=twsrc%5Etfw">@ceciliachapiro</a> here! <a href="https://twitter.com/hashtag/CHAOSScon?src=hash&amp;ref_src=twsrc%5Etfw">#CHAOSScon</a> <a href="https://t.co/jMsfiCK9Rg">pic.twitter.com/jMsfiCK9Rg</a></p>&mdash; yo yehudi stays away from humans! 🏳️‍🌈 (@yoyehudi) <a href="https://twitter.com/yoyehudi/status/1223246907163758599?ref_src=twsrc%5Etfw">January 31, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">@jflory7 thanks for the great talk, great to hear <a href="https://twitter.com/UNICEFinnovate?ref_src=twsrc%5Etfw">@UNICEFinnovate</a> is actively funding OSS for the greater-good! <a href="https://twitter.com/hashtag/CHAOSScon?src=hash&amp;ref_src=twsrc%5Etfw">#CHAOSScon</a> <a href="https://t.co/g81koSI4Ov">pic.twitter.com/g81koSI4Ov</a></p>&mdash; Farbod Saraf (@farbodsaraf) <a href="https://twitter.com/farbodsaraf/status/1223247589317009409?ref_src=twsrc%5Etfw">January 31, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr"><a href="https://twitter.com/hashtag/opensource?src=hash&amp;ref_src=twsrc%5Etfw">#opensource</a> rubric mentioned by @jflory7 at <a href="https://twitter.com/hashtag/CHAOSScon?src=hash&amp;ref_src=twsrc%5Etfw">#CHAOSScon</a> <a href="https://t.co/U2pIZsgrMz">https://t.co/U2pIZsgrMz</a><br><br>It helped me evaluate the last proposal we received at <a href="https://twitter.com/eLifeInnovation?ref_src=twsrc%5Etfw">@eLifeInnovation</a> 🙌🙌</p>&mdash; Emmy Tsang (@emmy_ft) <a href="https://twitter.com/emmy_ft/status/1223249000058540032?ref_src=twsrc%5Etfw">January 31, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>Hey, it&rsquo;s me!</p>
<p>My colleague <strong><a href="https://twitter.com/ceciliachapiro">Cecilia Chapiro</a></strong> proposed a session for CHAOSScon EU 2020 on how the <a href="https://unicefinnovationfund.org/">UNICEF Innovation Fund</a> evaluates the health and success of funded open source projects. However, due to travel complications, she was unable to attend. I presented her slides and work on her behalf at CHAOSScon EU 2020.</p>
<p>Many people were excited, if not also surprised, to hear that UNICEF funds humanitarian open source. In Cecilia&rsquo;s evaluation framework, there are two key areas: <strong>business sustainability indicators</strong> and <strong>technology indicators</strong>. There were good questions about how UNICEF measures on business sustainability. I hope to further explore GrimoireLab/Cauldron to better automate how we measure sustainability with industry-standard tools from the open source ecosystem.</p>
<p>I also gave a shout-out to <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> and the <a href="https://opensource.com/article/19/12/humanitarian-startups-open-source">resources we maintain</a> to help UNICEF and the Innovation Fund cohorts build and support sustainable open source projects.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/t2Lyv6G_fvU?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>


<h3 id="open-and-reproducible-research-with-community-driven-research-software-metrics">Open and Reproducible Research with Community-driven Research Software Metrics&nbsp;<a class="hanchor" href="#open-and-reproducible-research-with-community-driven-research-software-metrics" aria-label="Anchor link for: Open and Reproducible Research with Community-driven Research Software Metrics">🔗</a></h3>
<blockquote>
<p>What do artificial neural networks, images of the black hole, and SETI@home all have in common? They all trace their roots to research software. In this session, we hope to explore metrics and best practices for evaluating open research software. Research software engineers are evaluated largely based on the numbers of publications and citations. However, metrics based on the number of publications encourage re-creating ‘new’ things or re-implementations instead of reuse, and there are huge variations in existing practices to cite software, meaning software isn&rsquo;t always cited or citations aren’t always captured. Better metrics that reflect the health of research software is crucial to avoid gamification, incentivizing research software engineers to follow best software development practices by recognizing and rewarding their effort appropriately, and ultimately advancing open science and improving the reproducibility of research.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-yo-yehudi">Yo Yehudi</a></p>
</blockquote>

<p>Yo teamed up with <a href="https://twitter.com/emmy_ft">Emmy Tsang</a> and <a href="https://twitter.com/matkuzak">Mateusz Kuzak</a> to deliver this session. I appreciated the audience participation in the second half, which was a creative idea for a session later in the day. It helped revive the conference energy!</p>
<p>Yo and the team captured <a href="https://discourse.sustainoss.org/t/blog-post-that-mentions-sustain-summit-academic-session/286">excellent notes from their time across Brussels</a>, so look there for a deeper dive if this is interesting to you.</p>

<h3 id="diversity--inclusion-badging-program">Diversity &amp; Inclusion Badging Program&nbsp;<a class="hanchor" href="#diversity--inclusion-badging-program" aria-label="Anchor link for: Diversity &amp; Inclusion Badging Program">🔗</a></h3>
<blockquote>
<p>Within IT, open source software exhibits some of the worst D&amp;I. The open source survey run by GitHub states that only 3% of contributors to open source software are female (GitHub, 2017). While open source has made strides in some aspects of D&amp;I, such as event inclusivity (Irwin, 2017) and community engagement to support organizational diversity (Alexander, 2019), work remains. The proposed is aimed at contributing to this positive growth through the development of a D&amp;I badging system. In open source, badges are available for community leaders to publicly display, providing a way for projects to signal their attention to such things as community health and software security. We can draw from this badging work to improve D&amp;I in open source. In this talk, I will discuss complexities associated with D&amp;I metrics and propose a D&amp;I badging system that provides open source communities the ability to make diversity and inclusion within open source projects more transparent.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-matt-germonprez">Matt Germonprez</a></p>
</blockquote>

<p>First, I must pay my full respect and gratitude to Matt for digging into this topic. It is hard. It is tricky. Nobody I know of is working on this. So, my feedback comes from a place of love because this is an important topic to me too, and I appreciate Matt&rsquo;s work! <strong>Thank you Matt and the <a href="https://chaoss.community/diversity-and-inclusion/">CHAOSS D&amp;I Working Group</a></strong>.</p>

<h4 id="critique-is-a-badging-system-how-to-do-this"><em>Critique</em>: Is a badging system how to do this?&nbsp;<a class="hanchor" href="#critique-is-a-badging-system-how-to-do-this" aria-label="Anchor link for: Critique: Is a badging system how to do this?">🔗</a></h4>
<p>Matt presented a strategy to incentivize organizations and projects to follow best practices for diversity and inclusion (D&amp;I) through a badging system. Organizations embed a badge on their project website or README when following best practices. This provides an easy way for new contributors to understand if a project community is inclusive and values equality before contributing. Since best practices are defined not by a single organization, there is a way to measure if an organization is living up to their commitment to D&amp;I.</p>
<p>However, a badging system seems like a difficult way to practically measure an organization&rsquo;s commitment to D&amp;I. There is a risk for <strong>manipulating trust of the system</strong> at the expense of open source novices. Novices have the least context and direct experience to see through an unauthentic commitment. Also, <strong>ongoing compliance seems difficult to enforce over time</strong> with a badging system. Maybe initially an organization or project is &ldquo;checked off&rdquo; for D&amp;I best practices. But if project leadership or management changes, community culture can also shift. How do you account for change?</p>
<p>Instead of badges, perhaps a <strong>central, inter-organizational certification body</strong> makes more sense to achieve this goal. A certification body acts as a central authority for validating accountability. They also have an authority to assign (or revoke) public recognition of organizations and projects with authentic, ongoing commitments to diversity and inclusion.</p>
<p>There is potential here, but I don&rsquo;t think gamifying D&amp;I best practices with a badging system is the way. We need a long-term, <em><strong>human</strong></em>-centered process in evaluating D&amp;I. We need to build in human-centered evaluation as a &ldquo;feature&rdquo; to truly hold projects accountable to their commitments.</p>

<h4 id="addendum-events-and-inclusivity"><em>Addendum</em>: Events and inclusivity&nbsp;<a class="hanchor" href="#addendum-events-and-inclusivity" aria-label="Anchor link for: Addendum: Events and inclusivity">🔗</a></h4>
<p>There are a few things I&rsquo;m genuinely proud to have contributed to open source. Most of them aren&rsquo;t code. <strong>International candy swaps</strong> at conferences are one of those things.</p>
<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">Time for the international candy swap! There are so many things to love about <a href="https://twitter.com/hashtag/DevConf_CZ?src=hash&amp;ref_src=twsrc%5Etfw">#DevConf_CZ</a> but the geographic diversity of attendees might be my favorite part. Thank you for organizing, <a href="https://twitter.com/jonatoni?ref_src=twsrc%5Etfw">@jonatoni</a> &amp; @jflory7! <a href="https://t.co/rU1ETp5aTa">pic.twitter.com/rU1ETp5aTa</a></p>&mdash; Mary Thengvall (she/her); mary-grace.bsky.social (@mary_grace) <a href="https://twitter.com/mary_grace/status/1221075300584448000?ref_src=twsrc%5Etfw">January 25, 2020</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<blockquote>
<p>DevConf CZ 2020 candy swap, mentioned in a <a href="/blog/2020/02/devconf-cz-2020-play-by-play/">previous blog post</a></p>
</blockquote>
<p>Candy swaps are fun, informal events hosted during a conference. Attendees bring local candies, sweets, or snacks from their hometowns to the conference. For an hour or so, folks gather together to swap candies. Before sampling the sweets, everyone introduces themselves, where they are from, and anything special about what they brought with them. When everyone introduces themselves and their candies, the floor is open to sample from the collected assortment.</p>
<p>This is a fun and engaging way to get to know other attendees beyond the conference&rsquo;s context. Conferences collect people around a specific context: be it technology, metrics, design, engineering, or something else. But beyond that specific context, we are also people! We have families, we have friends, and we eat food. We have things we miss about home when we travel hundreds or even thousands of miles from home. Events like candy swaps help us connect to other people not just as conference attendees, but as people. You learn something new about each other, and if you&rsquo;re bold, you try something new too.</p>
<p>While it is not a metric in itself, it would be cool to see things like this included as practical examples of how to evaluate &ldquo;family friendliness&rdquo; or inclusivity at events.</p>

<h3 id="true-confessions-the-seven-deadly-sins-of-open-source-communities">True Confessions: The Seven Deadly Sins of Open Source Communities&nbsp;<a class="hanchor" href="#true-confessions-the-seven-deadly-sins-of-open-source-communities" aria-label="Anchor link for: True Confessions: The Seven Deadly Sins of Open Source Communities">🔗</a></h3>
<blockquote>
<p>This talk would take a humorous approach to explaining what really no one should do when managing and measuring open source community best practices, with the primary goal of instilling positive open source development practices to the audience. Such &ldquo;&ldquo;don&rsquo;ts&rdquo;&rdquo; include not documenting anything, establishing no clear paths to success, and not bothering to communicate.</p>
<p><a href="https://chaoss.community/chaosscon-2020-eu/#user-content-brian-proffitt">Brian Proffitt</a></p>
</blockquote>

<p>Brian explained what to avoid in building healthy open source communities. While I was already familiar with most of them, the most interesting &ldquo;sin&rdquo; for me was the last one: &ldquo;<em><strong>not seeing ourselves in others</strong></em>.&rdquo;</p>
<p>Brian offered mitigation strategies and metrics for the first six sins, but he acknowledged &ldquo;not seeing yourself in others&rdquo; is hard to mitigate and measure. However, I think things like candy swaps (explained above) are one possible way to do this. They connect us to others in an authentically human way, beyond the specific context of a conference we traveled for.</p>
<p>This is more challenging when interaction is virtual. Virtual systems often take away communication cues that make us human! I&rsquo;m still thinking on how to mitigate &ldquo;not seeing ourselves in others&rdquo; if interaction is mostly virtual. (For what it is worth, I don&rsquo;t think running open source project meetings in V.R. is the answer either.)</p>

<h2 id="beyond-chaosscon-eu-2020">Beyond CHAOSScon EU 2020&nbsp;<a class="hanchor" href="#beyond-chaosscon-eu-2020" aria-label="Anchor link for: Beyond CHAOSScon EU 2020">🔗</a></h2>
<p>An event report wouldn&rsquo;t be complete without mentioning the hallway track. It was great to see familiar faces and also meet new folks at CHAOSScon EU 2020.</p>
<p>I had a great lunch conversation with <a href="https://fsfe.org/about/albers/albers">Erik Albers</a> from Free Software Foundation Europe. It was cool to meet a facilitator of the <em><a href="https://publiccode.eu/">Public Money? Public Code!</a></em> campaign. Hopefully there are future opportunities to collaborate with <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> and <a href="https://fosdem.org/2020/schedule/event/ethical_ai/">AI freedoms</a>.</p>
<p>As always, face time with <a href="https://nolski.rocks/">Mike Nolan</a> and an OG mentor of mine, <a href="https://twitter.com/Remy_D">Remy DeCausemaker</a>, is appreciated and fulfilling. I wish I could get more of it around the year.</p>

<h2 id="thanks-folx">Thanks folx!&nbsp;<a class="hanchor" href="#thanks-folx" aria-label="Anchor link for: Thanks folx!">🔗</a></h2>
<p>To wrap up this CHAOSScon EU 2020 report, a few thank-yous are in order:</p>
<ul>
<li><strong><a href="https://twitter.com/ceciliachapiro">Cecilia Chapiro</a></strong>: Thanks for putting your work forward to the wider open source community!</li>
<li><strong><a href="https://www.rit.edu/computing/directory/sxjics-stephen-jacobs">Stephen Jacobs</a></strong>: For always being supportive for yet another trip abroad and helping me push my career forward in a number of ways (and footing the bill!)</li>
<li><strong><a href="https://nolski.rocks/">Mike Nolan</a></strong>: My co-conspirator, partner in FOSS, and comrade in arms</li>
</ul>
<p>I hope to continue conversations started here later into 2020 and keep talking with folks doing great things for the ecosystem. Until next time!</p>]]></description></item><item><title>Sustain OSS 2020: quick rewind</title><link>https://jwheel.org/blog/2020/02/sustain-oss-2020-quick-rewind/</link><pubDate>Thu, 20 Feb 2020 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2020/02/sustain-oss-2020-quick-rewind/</guid><description><![CDATA[<p>The <strong>2020 Sustain Open Source Summit</strong> took place on Thursday, 30 January, 2020 in Brussels, Belgium:</p>
<blockquote>
<p>Sustain Summit events are led by a facilitator. There are no keynotes, talks, or sponsor demos. Your undivided attention is required. Phones and laptops should not be used throughout the day and you will be asked to put devices away if they are a distraction to you or anyone else.</p>
<p>When we talk about sustainability, we are talking both and equally about the sustainability of resources and the sustainability of its people. We hope you can join us for the conversation.</p>
<p><a href="https://web.archive.org/web/20200218215832/https://sustainoss.org/summit-2020/">sustainoss.org/summit-2020/</a></p>
</blockquote>
<p>This is my second time attending Sustain OSS (see my <a href="/blog/2018/11/sustain-oss-2018-quick-rewind/">2018 event report</a>). I attended on behalf of <a href="https://fossrit.github.io/librecorps/">RIT LibreCorps</a> to represent the sustainability efforts at the <a href="https://fossrit.github.io/about/">RIT FOSS@MAGIC initiative</a>, but also to represent myself as an individual and sustainer in the open source movement. For Sustain OSS 2020, I arrived hoping to learn more about community-first governance models. I left with a lot of notes and the first blueprints for <em>Principles of Authentic Participation</em>.</p>
<p>Event reports take many forms. Since Sustain is structured in a unique format, my event report is structured as follows:</p>
<ul>
<li><strong>At a glance: structure and key takeaways</strong>: High-level overview of what the conference is like and the biggest ideas on my mind at the end of the day</li>
<li><strong>Community-first governance</strong>: I came ready to explore this idea, and had a unique conversation about citizen assemblies</li>
<li><strong>Principles of Authentic Participation</strong>: Impromptu session I facilitated, and thus spent most of my time focused on</li>
</ul>

<h2 id="at-a-glance-structure-and-key-takeaways">At a glance: structure and key takeaways&nbsp;<a class="hanchor" href="#at-a-glance-structure-and-key-takeaways" aria-label="Anchor link for: At a glance: structure and key takeaways">🔗</a></h2>
<p>If you&rsquo;re here for the quick overview, this is it.</p>
<p>I loved Sustain OSS 2020 because it is a unique collection of people from various backgrounds in the Free/Open Source movement. Both old and new folks, software engineers and designers, open source program office folks and the FOSS lawyers, all together in one room. Perhaps the best part for me is leaving with a sense of empowerment and connection to a bigger movement of people.</p>


<h3 id="speed-breakout-sessions">Speed breakout sessions&nbsp;<a class="hanchor" href="#speed-breakout-sessions" aria-label="Anchor link for: Speed breakout sessions">🔗</a></h3>
<p>The first half of Sustain 2020 started with speed breakout sessions led by many facilitators. There were around twelve small discussion groups focused on specific topics. You could spend 4-5 minutes at six topic groups. Choosing was hard! These speed sessions are primers on what to spend the second half of the day focused on, in a more detailed discussion.</p>
<p>I attended these sessions:</p>
<ol>
<li>Diversity and inclusion</li>
<li>Open source movement in Africa</li>
<li>Minimum Viable Product: Good governance models</li>
<li>Documentation</li>
<li>20 years of sustainability</li>
<li>Models for corporate accountability as open source community members / what does it mean to be a corporate member of open source communities?</li>
</ol>

<h3 id="key-takeaways">Key takeaways&nbsp;<a class="hanchor" href="#key-takeaways" aria-label="Anchor link for: Key takeaways">🔗</a></h3>
<p>I came up with four key takeaways from Sustain OSS 2020 as a whole (not including the detailed sections further below):</p>

<h4 id="inclusion-is-local">Inclusion is local&nbsp;<a class="hanchor" href="#inclusion-is-local" aria-label="Anchor link for: Inclusion is local">🔗</a></h4>
<p>When reaching out to new areas and demographics, include local community leaders. This is to say, if you are organizing communities in Asia or Africa, the success of your outreach campaign depends on your ability to enable and include existing community leaders in these regions. <strong>Local perspective is required</strong> for authentic grassroots success.</p>

<h4 id="rules-for-revising-rules">Rules for revising rules&nbsp;<a class="hanchor" href="#rules-for-revising-rules" aria-label="Anchor link for: Rules for revising rules">🔗</a></h4>
<p>When defining community governance or policy, expect change. So, <strong>include ways to change the rules later</strong> when the world changes around your governance or policy.</p>

<h4 id="generalists-transition-to-specialists">Generalists transition to specialists&nbsp;<a class="hanchor" href="#generalists-transition-to-specialists" aria-label="Anchor link for: Generalists transition to specialists">🔗</a></h4>
<p>In the early phases of an organization or project, community members are often generalists. Fewer people wear many &ldquo;hats.&rdquo; But context-switching has a cost. As the organization/project grows, defined roles become more important. Defined roles avoid everyone doing everything.</p>
<p>Designers focus first on design. Developers focus first on code. By specializing, you <strong>maximize the potentialities of what your team brings</strong> to the table.</p>

<h4 id="we-got-the-power"><a href="https://www.youtube.com/watch?v=HSivlaSVk1k">We got the power</a>&nbsp;<a class="hanchor" href="#we-got-the-power" aria-label="Anchor link for: We got the power">🔗</a></h4>
<p>There was a breakout group about ethics in Free Software. Two emerging themes were creating <strong>ethics review boards</strong> at organizations and the power of <strong>labor organizing</strong>. Some suggested normalizing ethics training in employee on-boarding.</p>
<p>Most notably, there was a highlighted need for safer spaces for labor organizing discussions. Labor organizing comes at a high personal cost for many.</p>

<h2 id="community-first-governance-models">Community-first governance models&nbsp;<a class="hanchor" href="#community-first-governance-models" aria-label="Anchor link for: Community-first governance models">🔗</a></h2>
<p>I came to Sustain OSS 2020 ready to explore community-first governance models. In December, I <a href="/blog/2019/12/why-foss-is-still-not-on-activist-agendas/">published a blog post</a> on why Free Software is still not on activists&rsquo; agendas. Free Software outreach often emphasizes technology, not people or ethics. We focus on technology so much, we forget why this movement began in the first place. So, in a world where corporate interests in a project often conflict with interests of grassroots communities, I wanted to know what &ldquo;community-first governance&rdquo; really means.</p>
<p>For context, I consult with humanitarian organizations and non-profits that want to build community around their open source projects. But from personal experience, I realize community stakeholders need input to decision-making if the community is going to stick around.</p>

<h3 id="citizen-assemblies-in-open-source">Citizen assemblies in open source?&nbsp;<a class="hanchor" href="#citizen-assemblies-in-open-source" aria-label="Anchor link for: Citizen assemblies in open source?">🔗</a></h3>
<p>While I didn&rsquo;t explore this in a session, I did have an interesting conversation with Xavier about <strong>citizen assemblies</strong> and how open source communities might be modeled after them. Xavier explained citizen assemblies to me as a form of hyper-local representation in policy-making in regional governments. For example, U.S. citizens are obligated to serve on jury duty, or a jury with your peers on a court hearing. Similarly for citizen assemblies, individuals are selected at random based on different demographic factors. Those selected serve a period of time on a local legislative body.</p>
<p>In open source projects divided across different contexts, think about the demographics represented in our communities. What might the demographic factors look like?</p>
<ul>
<li>In internationally-dispersed communities, it might be approximate region or nationality.</li>
<li>In corporate-focused projects, it might be diversity of employers.</li>
</ul>
<p>Citizen assemblies in open source could mean a group of contributors are selected at random to serve on the executive decision-making body of a community. The decision to serve is always optional. If a selected person declines, another person is selected.</p>
<p>I think this is a crafty way to address a cultural divide often present in Global South communities. Many contributors subconsciously look for an <strong>invitation to contribute</strong>. Being explicit by selecting an eligible, qualified candidate actively includes perspectives not commonly represented. It could also be a way to get around imposter syndrome and self-(non)selection in communities that use committee governance models.</p>
<p>I am still sitting with this idea. But I think Xavier&rsquo;s idea of applying citizen assemblies to open source communities is valid. I&rsquo;m interested in exploring what this model could look like in practice when the opportunity for experimentation presents itself.</p>

<h2 id="principles-of-authentic-participation">Principles of Authentic Participation&nbsp;<a class="hanchor" href="#principles-of-authentic-participation" aria-label="Anchor link for: Principles of Authentic Participation">🔗</a></h2>
<p>I attended a session about corporate accountability in open source contributions. It evolved into a longer discussion about Principles of Authentic Participation. This week, I <a href="https://discourse.sustainoss.org/t/principles-of-authentic-participation-continuing-the-sustain-conversation/284">launched a wider discussion</a> about this on the Sustain OSS Discourse forums, so instead of repeating myself in this post, read the Discourse thread and leave your thoughts there.</p>
<p>However, for the reader&rsquo;s convenience, the six principles we drafted are below:</p>

<h3 id="authentic-participation-starts-early">Authentic Participation Starts Early.&nbsp;<a class="hanchor" href="#authentic-participation-starts-early" aria-label="Anchor link for: Authentic Participation Starts Early.">🔗</a></h3>
<p>This came out of discussions about organizations showing up with mature, fully-baked contributions over which the community had no input.</p>

<h3 id="authentic-participation-puts-the-community-first">Authentic Participation Puts The Community First.&nbsp;<a class="hanchor" href="#authentic-participation-puts-the-community-first" aria-label="Anchor link for: Authentic Participation Puts The Community First.">🔗</a></h3>
<p>This reflected the general consensus that when an organization and the community want different things, the community needs to come first.</p>

<h3 id="authentic-participation-starts-with-listening">Authentic Participation Starts With Listening.&nbsp;<a class="hanchor" href="#authentic-participation-starts-with-listening" aria-label="Anchor link for: Authentic Participation Starts With Listening.">🔗</a></h3>
<p>This was <a href="https://www.linkedin.com/in/duaneobrien/">Duane</a>’s reflection of some comments about folks showing up to projects with no historical context and telling them everything they were doing wrong.</p>

<h3 id="authentic-participation-has-transparent-motivations">Authentic Participation Has Transparent Motivations.&nbsp;<a class="hanchor" href="#authentic-participation-has-transparent-motivations" aria-label="Anchor link for: Authentic Participation Has Transparent Motivations.">🔗</a></h3>
<p>Without a shared understanding of the motivations, it’s impossible to resolve differences of opinion effectively. No hidden motives.</p>

<h3 id="authentic-participation-enforces-respectful-behavior">Authentic Participation Enforces Respectful Behavior.&nbsp;<a class="hanchor" href="#authentic-participation-enforces-respectful-behavior" aria-label="Anchor link for: Authentic Participation Enforces Respectful Behavior.">🔗</a></h3>
<p>This is about organizations taking responsibility for the behavior of their representatives.</p>

<h3 id="authentic-participation-ends-gracefully">Authentic Participation Ends Gracefully.&nbsp;<a class="hanchor" href="#authentic-participation-ends-gracefully" aria-label="Anchor link for: Authentic Participation Ends Gracefully.">🔗</a></h3>
<p>No sudden withdrawal of resources without notification and an exit plan. Clear documentation that would allow the community to pick up projects when a company decides to withdraw support.</p>

<h2 id="thanks-folx">Thanks folx!&nbsp;<a class="hanchor" href="#thanks-folx" aria-label="Anchor link for: Thanks folx!">🔗</a></h2>
<p>To wrap up this Sustain OSS report, a few thank-yous are in order:</p>
<ul>
<li><strong><a href="https://www.rit.edu/computing/directory/sxjics-stephen-jacobs">Stephen Jacobs</a></strong>: For always being supportive for yet another trip abroad and helping me push my career forward in a number of ways (and footing the bill!)</li>
<li><strong><a href="https://nolski.rocks/">Mike Nolan</a></strong>: My co-conspirator, partner in FOSS, and comrade in arms</li>
<li><strong>The <em>Principles of Authentic Participation</em> group</strong>: I didn&rsquo;t plan to facilitate at Sustain and I was nervous about it, but you all were wonderful. We had a fruitful discussion and I&rsquo;m looking forward to the follow-up.</li>
</ul>
<p>Sustain OSS 2020 continues to give me a lot to think about and consider. I’m fortunate to have attended. I hope this event report gives additional visibility to some of the conversations held in Brussels this year.</p>]]></description></item><item><title>Why FOSS is still not on activist agendas</title><link>https://jwheel.org/blog/2019/12/why-foss-is-still-not-on-activist-agendas/</link><pubDate>Fri, 13 Dec 2019 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2019/12/why-foss-is-still-not-on-activist-agendas/</guid><description><![CDATA[<p>On December 13th, 2006, author <a href="https://en.wikipedia.org/wiki/Bruce_Byfield">Bruce Byfield</a> reflected on why he thought Free and Open Source Software (F.O.S.S.) was <a href="https://web.archive.org/web/20191130172436/https://www.linux.com/news/why-foss-isnt-activist-agendas/">not on activist agendas</a>. My interpretation of his views are that a knowledge barrier about technology makes FOSS less accessible, the insular nature of activism makes collaboration difficult, and FOSS activists reaching out to other activists with shared values should be encouraged. On December 13th, 2019, is FOSS on activist agendas? The answer is not black or white, but a gray somewhere in the middle. This is my response to Byfield&rsquo;s article, thirteen years later, on what he got right but also what he left out.</p>

<h2 id="where-byfield-was-accurate">Where Byfield was accurate&nbsp;<a class="hanchor" href="#where-byfield-was-accurate" aria-label="Anchor link for: Where Byfield was accurate">🔗</a></h2>
<p>While I don&rsquo;t agree with all of Byfield&rsquo;s sentiments, he identified some key challenges that still hold truth today: <strong>a predisposition to focus on differences and not similarities, an outreach approach centered on ethics and not software, and the importance of opportunities for intersectional interaction</strong>.</p>

<h3 id="predisposition-towards-difference">Predisposition towards difference&nbsp;<a class="hanchor" href="#predisposition-towards-difference" aria-label="Anchor link for: Predisposition towards difference">🔗</a></h3>
<p><em>First</em>, Byfield notes the differing age groups of the activist communities and the tendency for viewing others by their differences first, not their similarities. He seems to attribute the tendency to view others by differences first as a characteristic of older generations; however, this is not necessarily the full truth.</p>
<p>As a member of the young activist community, this explanation is too simplistic of the underlying cause. There is also a political motivation by established power to sow division among the population of a nation-state. It makes community organizing more difficult and presents diversity as an issue to &ldquo;solve&rdquo; instead of a source of greater unity and common strength.</p>
<p>This is exemplified by the social media algorithms of today that reward sensational content (judged on likes, views, clicks, or other user feedback) and share it widely across a huge platform. In 2006, it was difficult to imagine the relationship social media would have in the lives of an everyday person; today, a great deal of social power is granted to those who understand how to leverage social media, either for good (e.g. social activism) or harm (e.g. deceptively persuading large parts of a nation-state&rsquo;s population leading up to a national election).</p>
<p>The politics of division are within the fabric of our political systems; this is a challenge for modern-day activism and community organizing to overcome. In identifying this as a challenge, Byfield is correct that a differences-first approach makes it harder to share and spread the importance of FOSS in other activism circles, especially as technology becomes an increasingly relevant way of how we experience our lives and how our systems of law and justice are enforced.</p>

<h3 id="outreach-on-ethics-not-software">Outreach on ethics, not software&nbsp;<a class="hanchor" href="#outreach-on-ethics-not-software" aria-label="Anchor link for: Outreach on ethics, not software">🔗</a></h3>
<p><em>Second</em>, Byfield suggests an ethics-based approach to outreach is more effective than a software-based approach. This is also correctly noted, even if perhaps overemphasized. The jargon and language of the technology world is not accessible to the large majority of the global population. While some degree of technology literacy might be expected in some populations, much of the existing FOSS community is deeply rooted in technology. Sometimes this limited perspective is counterproductive.</p>
<p>This revisits the rebranding of &ldquo;Free Software&rdquo; as &ldquo;open source&rdquo; in 1997. For many subsets of the wider open source community in 2019, the default approach to open source software is merely a secondary thought for how to collaboratively work on technology. This is part of the outcome of the Open Source Initiative&rsquo;s gamble in 1997 by beginning to emphasize the business sensibility and practicality of open source, and de-emphasize the social roots of Free Software (or rather, try and position itself as some sort of translator between these two &ldquo;worlds&rdquo;, as if they cannot be spoken of together in the same room).</p>
<p>As such, those who work on open source software projects are not necessarily predisposed to assume the role of an activist. Truly if <em>Free</em> Software is to take root outside of technology, then those who see the ethical values of Free Software need to better organize and promote the values of FOSS externally. This will contribute to the diversity of Free Software activism by helping non-technology activists add FOSS as a tool to their existing work.</p>

<h3 id="intersectional-movement-building-is-the-future">Intersectional movement building is the future&nbsp;<a class="hanchor" href="#intersectional-movement-building-is-the-future" aria-label="Anchor link for: Intersectional movement building is the future">🔗</a></h3>
<p><em>Thirdly</em> and finally, and perhaps most importantly, Byfield suggests the importance of intersectional interactions between Free Software communities and other activist communities. This is a fundamental requirement for the growth of Free Software as a social movement. Those of us in Free Software see the world around us informed by a background informed by technology; this background is emphasized in a world that is generating new, advanced technology at an unprecedented rate. However, while software and technology are important parts of the world around us, they are not <em>the</em> world around us. They are one part of a greater picture of fighting for a common good and welfare for all people. There are others in similar niches who have a deep understanding of their problem space and how they want to approach a challenge.</p>
<blockquote>
<p>“One group may be working against child poverty, another for recycling, but the people in these organizations can almost be transferred from one to the next.”</p>
<p><a href="https://en.wikipedia.org/wiki/Peter_T._Brown">Peter T. Brown</a>, Free Software Foundation Executive Director (2006)</p>
</blockquote>
<p>Just like a healthy garden, cross-pollination of these niches is vital to help others understand how we can help each other in accomplishing our mutual goals (this also feeds into why the politics of division explained above is so pervasive and difficult). Bringing Free Software technologists to activist communities where there is not an overwhelming Free Software background (and vice versa) is vital to building an intersectional social movement that strengthens the social impact of Free Software, not just open source.</p>

<h2 id="where-byfield-didnt-go-far-enough">Where Byfield didn&rsquo;t go far enough&nbsp;<a class="hanchor" href="#where-byfield-didnt-go-far-enough" aria-label="Anchor link for: Where Byfield didn&rsquo;t go far enough">🔗</a></h2>
<p>Byfield made one assumption on how activists have &ldquo;their own share of insularity&rdquo; and that the presence of connections between two movements does not mean they could immediately connect their existing beliefs with new ones. Fioretti&rsquo;s challenge was in others understanding why they should listen to him; there was a lack of foundational knowledge of open source and technology that is normally assumed of someone who works as a software engineer.</p>
<p>Indeed, attention is a currency in the world of an activist. It is not enough for a FOSS advocate to expect others to listen to you on an appeal of technology. Part of the work in sharing is understanding who you are sharing with; if FOSS wants to take deeper roots in the activist community, it needs to understand the backgrounds of activist communities and be creative in how to appeal the mission of FOSS to the mission of their work. Where you can build in-roads together with others through common initiatives is the beginning of grassroots community organizing. So, while Byfield is right that there is an almost competitive nature of ideas in activism, it is not enough to write insularity off as a fixed aspect of nature. To not acknowledge this is to deny the influence of capitalist power structures in the humanitarian sector as they pertain to sustainable funding.</p>

<h2 id="what-are-todays-challenges">What are today&rsquo;s challenges?&nbsp;<a class="hanchor" href="#what-are-todays-challenges" aria-label="Anchor link for: What are today&rsquo;s challenges?">🔗</a></h2>
<p>Some of today&rsquo;s challenges are about inclusion and power.</p>

<h3 id="inclusion-builds-power">Inclusion builds power&nbsp;<a class="hanchor" href="#inclusion-builds-power" aria-label="Anchor link for: Inclusion builds power">🔗</a></h3>
<p>Diversity and inclusion (D&amp;I) are important but poorly understood; not only are D&amp;I about including people of different identities in technology, but also people with backgrounds outside of technology. FOSS stands to benefit by including more people who do not necessarily have a strong technology or engineering background. The goal is to inspire different perspectives to contribute in meaningful ways to build sustainable technology.</p>
<p>Instead of seeing diversity and inclusion initiatives as problematic or unneeded, D&amp;I groups in FOSS communities stand to be the most effective people at building community and influence.</p>

<h3 id="power-and-governance">Power and governance&nbsp;<a class="hanchor" href="#power-and-governance" aria-label="Anchor link for: Power and governance">🔗</a></h3>
<p>In the activist / humanitarian / non-profit world, there is a power struggle for sustainability as it pertains to funding. Funding models in non-profit work (usually sustained by grants, sponsors, and donors) encourage solutions that get funded, not necessarily solve problems the most effective way. Many organizations struggle with how to achieve sustainable funding without being so dependent on the expiration date of a grant&rsquo;s funding.</p>
<p>We need more representative governance models in open source communities that reflect the interests of the communities around them, not necessarily an individual, a company, or group of companies. Building governance models that empower people within a community to make decisions and reduce the corrosive influence of money from humanitarian work.</p>

<h2 id="where-do-we-go-from-here">Where do we go from here?&nbsp;<a class="hanchor" href="#where-do-we-go-from-here" aria-label="Anchor link for: Where do we go from here?">🔗</a></h2>
<p>This blog post is an active reflection of my own thoughts and perspectives of Free Software, activism, and humanitarian work. If you are interested in pushing this conversation further, find me in Brussels, Belgium for any of the following three conferences and let&rsquo;s chat further:</p>
<ul>
<li>30 January 2020: <a href="https://sustainoss.org/"><strong>Sustain Summit</strong></a></li>
<li>31 January 2020: <a href="https://chaoss.community/chaosscon-2020-eu/"><strong>CHAOSScon</strong></a></li>
<li>1-2 February 2020: <a href="https://fosdem.org/2020/"><strong>FOSDEM</strong></a></li>
</ul>
<p>If you want to discuss this further, you can also drop a line in our online discussion community, <em><a href="https://fossrit.community/">fossrit.community</a></em>.</p>
<hr>
<p><em>Photo by <a href="https://unsplash.com/@bazingraphy?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Walid Berrazeg</a> on <a href="https://unsplash.com/s/photos/black-lives-matter?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a></em></p>]]></description></item><item><title>HPC workloads in containers: Comparison of container run-times</title><link>https://jwheel.org/blog/2019/08/hpc-workloads-containers/</link><pubDate>Tue, 20 Aug 2019 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2019/08/hpc-workloads-containers/</guid><description><![CDATA[<p>Recently, I worked on an interesting project to evaluate different container run-times for high-performance computing (HPC) clusters. HPC clusters are what we once knew as <a href="https://en.wikipedia.org/wiki/Supercomputer">supercomputers</a>. Today, instead of giant mainframes, they are hundreds, thousands, or tens of thousands of <a href="https://en.wikipedia.org/wiki/Massively_parallel">massively parallel</a> systems. Since performance is critical, virtualization with tools like virtual machines or Docker containers was not realistic. The overhead was too much compared to bare metal.</p>
<p>However, the times are a-changing! <a href="/tags/containers/">Containers</a> are entering as real players in the HPC space. Previously, containers were brushed off as incompatible with most HPC workflows. Now, several open source projects are emerging with unique approaches to enabling containers for HPC workloads. This blog post evaluates four container run-times in an HPC context, as they stand in July 2019:</p>
<ul>
<li>Charliecloud</li>
<li>Shifter</li>
<li>Singularity</li>
<li>Podman</li>
</ul>

<h2 id="research-requirements">Research requirements&nbsp;<a class="hanchor" href="#research-requirements" aria-label="Anchor link for: Research requirements">🔗</a></h2>
<p>My research focused around a specific set of requirements. To receive a favorable review, a container run-time needed to meet three basic requirements:</p>
<ul>
<li>Support CentOS/RHEL 7.5+</li>
<li>Compatibility with <a href="https://en.wikipedia.org/wiki/Univa_Grid_Engine">Univa GridEngine</a></li>
<li>Support for very large numbers of users</li>
</ul>
<p>Obviously there are security concerns with the third requirement. This is one reason containers have not made a strong showing in the HPC world yet. With the Docker security model, root access is a requirement to build and run containers. In a production HPC environment where users do not trust other users, this is a hard blocker.</p>
<p>Other HPC environments may differ. If you are an HPC administrator and also considering containers in your environment, consider my requirements. My research was exclusively framed through these three requirements.</p>

<h2 id="charliecloud">Charliecloud&nbsp;<a class="hanchor" href="#charliecloud" aria-label="Anchor link for: Charliecloud">🔗</a></h2>
<p><a href="https://github.com/hpc/charliecloud">Charliecloud</a> is an open source project based on a user-defined software stack (UDSS). Like most container implementations, it uses Linux user namespaces to run unprivileged containers. It is designed to be as minimal and lightweight as possible, to the point of not adding features that could conflict with any specific use cases. This can be a positive or a negative, depending on how complex your environment is.</p>
<p>However, I abandoned my research on Charliecloud early on after reading this <a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0177459">PLOS research paper</a>:</p>
<blockquote>
<p>The software makes use of kernel namespaces that are not deemed stable by multiple prominent distributions of Linux (e.g. <strong>no versions of Red Hat Enterprise Linux or compatibles support it</strong>), and may not be included in these distributions for the foreseeable future.</p>
<p>The software is emphasized for its simplicity and being less than 500 lines of code, and this is an indication of having a lack of user-driven features. The containers are not truly portable because they must be extracted from Docker and configured by an external C executable before running, and even after this step, all file ownership and permissions are dependent on the user running the workflow.</p>
<p><a href="https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0177459">Singularity: Scientific containers for mobility of compute</a>, May 2017 (Gregory M. Kurtzer, Vanessa Sochat, Michael W. Bauer)</p>
</blockquote>
<p>However, it is worth noting this paper was written in support of Singularity. It was also written by the Singularity project lead and others from the Singularity open source community. If you are conducting your own independent research, consider looking closer at Charliecloud, since at the time of writing it is still actively developed. The research paper was written in May 2017.</p>
<p><em>Edit</em>: This situation already changed and Charliecloud is probably worth a deeper look:</p>
<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">This is a fantastic write up, one thing to mention is that abandoning the CharlieCloud research based solely on lack of support of the user kernel namespace is no longer a blocker. For example, PodMan now uses the same technology and it was released in RHEL8.</p>&mdash; Apptainer (formerly Singularity) (@SingularityApp) <a href="https://twitter.com/SingularityApp/status/1163846727700344834?ref_src=twsrc%5Etfw">August 20, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<h2 id="shifter">Shifter&nbsp;<a class="hanchor" href="#shifter" aria-label="Anchor link for: Shifter">🔗</a></h2>
<p><a href="https://github.com/NERSC/shifter">Shifter</a> is another container run-time implementation focused on HPC users. At time of writing, it is almost exclusively backed by the <a href="https://www.nersc.gov/">National Energy Research Scientific Computing Center</a> and <a href="https://www.cray.com/">Cray</a>. Most documented use cases use <a href="https://slurm.schedmd.com/">Slurm</a> for cluster management / job scheduling. Instead of a Docker/OCI format, it uses its own Shifter-specific format, but this is reverse-compatible with Docker container images. It requires hosting a registry service and a <strong>Shifter Image Gateway</strong>.</p>
<p>The Shifter Image Gateway is a REST interface implemented with <a href="https://palletsprojects.com/p/flask/">Python Flask</a>. It pulls images from the registry service and converts them to the Shifter image format. MPI integration is supported but its implementation is MPICH-centric.</p>
<p>The downside to Shifter is lack of community. There are not many other organizations other than NERSC and Cray that appear to support Shifter. <a href="https://github.com/NERSC/shifter/tree/master/doc">Documentation exists</a>, but at writing time (July 2019), the last significant contribution was April 2018. Some bugs and feature requests are triaged, but there is not much of a maintainer presence in these issues. Most follow-up discussion to new issues are from a handful of outside contributors without commit access.</p>
<p>Additionally, there are several signs of stagnant development, such as <a href="https://github.com/NERSC/shifter/pull/172">NERSC/shifter#172</a> to add better MPI integration. However, the PR stalled out since it was first opened in April 2017. Furthermore, there is a high bus factor: most contributions and pull requests come from the same two developers, indicating low engagement from the wider HPC community. Code is <a href="https://travis-ci.org/NERSC/shifter">regularly tested</a>, but integration tests <a href="https://travis-ci.org/NERSC/shifter/jobs/541868408#L880-L969">only exist for Slurm</a>. For more details, check out the <a href="https://github.com/NERSC/shifter/pulse">GitHub project pulse</a>.</p>
<p>A detail worth noting is Shifter was one of the first real container run-times for HPC. A former Shifter collaborator branched off from Shifter to start Singularity (and eventually, a for-profit company to support it, Sylabs). It invites room for personal biases when evaluating Shifter and Singularity, specifically if you are not a newcomer in the HPC community.</p>

<h2 id="singularity">Singularity&nbsp;<a class="hanchor" href="#singularity" aria-label="Anchor link for: Singularity">🔗</a></h2>
<p><a href="https://sylabs.io/singularity/">Singularity</a> is the third and last HPC-specific player in the container run-time world. The vendor is <a href="https://sylabs.io/about-us/mission">Sylabs Inc</a>. There are a few different factors that make Singularity interesting, and in my opinion, the most promising HPC container implementation.</p>

<h3 id="general-overview">General overview&nbsp;<a class="hanchor" href="#general-overview" aria-label="Anchor link for: General overview">🔗</a></h3>
<p>Singularity v3.x.x is written almost entirely in Golang. It supports two image formats: Docker/OCI and Singularity&rsquo;s native Single Image Format (SIF). As of September 2018, there are an estimated 25,000+ systems running Singularity, including users like <a href="https://www.tacc.utexas.edu/">TACC</a>, <a href="https://www.sdsc.edu/">San Diego Supercomputer Center</a>, and <a href="https://www.ornl.gov/">Oak Ridge National Laboratory</a>. Additionally, Univa <a href="http://www.univa.com/about/news/press_2018/07312018.php">announced a partnership</a> with Sylabs in July 2018 to bring Singularity workflows to Univa GridEngine.</p>
<p>Sylabs offers Singularity (free and open source) and SingularityPRO (paid and proprietary). The commercial version comes with a support contract and long-term support for some releases (among other things).</p>
<p>Admin/root access is not required to run Singularity containers and it requires no additional configuration to do this out of the box. Containers are run under the Linux user ID that launches them (see <em><a href="https://sylabs.io/guides/2.6/user-guide/introduction.html#security-and-privilege-escalation">Security and privilege escalation</a></em>).</p>
<p>At a quick glance, Sylabs developers appear to be <a href="https://github.com/sylabs">actively engaged</a> in the Kubernetes development community, particularly around Red Hat technology. They also seem to keep their promises: in early 2018, blog posts show ambitious feature promises for the then-upcoming v3.0.0 release at the end of the year. Near the end of 2018, the release was delivered on-time with most/all of the promised functionality.</p>

<h3 id="image-formats">Image formats&nbsp;<a class="hanchor" href="#image-formats" aria-label="Anchor link for: Image formats">🔗</a></h3>
<p>The Singularity Image Format (SIF) is a single-image format (i.e. no layers involved). This was a design decision specifically for HPC workloads. SIFs are treated like a binary executable by a Linux user. Additionally, it is possible to create SIFs using the <a href="https://sylabs.io/guides/3.3/user-guide/definition_files.html#sections">Definition File</a> spec.</p>
<p>However, Singularity is also compatible with Docker/OCI images and OCI is given <a href="https://github.com/sylabs/singularity/labels/OCI">active development focus</a> by upstream Singularity. Docker/OCI images are converted on-the-fly to a SIF. Docker/OCI images can be used locally or pulled from a remote registry like Docker Hub or <a href="https://www.openshift.com/products/quay">Quay</a>. To the user, if using a Docker/OCI image, the conversion is seamless and does not require additional configuration to use.</p>
<p>See <a href="https://web.archive.org/web/20190726223349/https://archive.sylabs.io/2018/03/sif-containing-your-containers/">this Sylabs blog post</a> for a deeper dive on how SIFs were designed.</p>

<h3 id="flexible-configuration">Flexible configuration&nbsp;<a class="hanchor" href="#flexible-configuration" aria-label="Anchor link for: Flexible configuration">🔗</a></h3>
<p>Singularity (uniquely?) offers advanced configuration options for HPC administrators. Some highlights are detailed here:</p>
<ul>
<li><strong>Controlling bind mounts</strong>:
<ul>
<li><code>mount dev = minimal</code>: Only binds <code>null</code>, <code>zero</code>, <code>random</code>, <code>urandom</code>, and <code>shm</code> into container</li>
<li><code>mount home = {yes,no}</code>, <code>mount tmp = {yes,no}</code>: Choose to enable or disable these bind mounts globally</li>
<li><code>bind path = &quot;&quot;</code>: Bind specific paths into containers by default</li>
<li><code>user bind control = {yes,no}</code>: Allow users to include their own bind mount paths or limit it to an admin-approved set of paths (above)</li>
</ul>
</li>
<li><strong>Controlling containers</strong>:
<ul>
<li><code>limit container paths =</code>: Possible to limit SIFs provided at a specific path and nowhere else</li>
</ul>
</li>
</ul>

<h3 id="hpc-community-engagement">HPC community engagement&nbsp;<a class="hanchor" href="#hpc-community-engagement" aria-label="Anchor link for: HPC community engagement">🔗</a></h3>
<p>These notes only apply to Singularity free, not the proprietary SingularityPRO product.</p>
<p>The signals from their open source community engagement are positive and strong. They appear authentic and genuine to an <a href="https://sylabs.io/resources/community">open source commitment</a> (i.e. not <a href="https://blogs.gnome.org/bolsh/2010/07/19/rotten-to-the-open-core/">open-core business model</a>). This is demonstrated in a few ways:</p>
<p>First, they have <a href="https://sylabs.io/guides/3.3/user-guide/">thorough user documentation</a>, intended for end-users in HPC environments using Singularity. They have a less thorough but still useful <a href="https://sylabs.io/guides/3.2/admin-guide/">admin documentation</a>.</p>
<p>Second, all issues are triaged quickly and get feedback from core developers or outside contributors at a consistent pace. Pull requests don&rsquo;t stagnate either: the oldest PR is less than six months old.</p>
<p>Third, code is regularly tested (<a href="https://travis-ci.org/sylabs/singularity">1</a>, <a href="https://circleci.com/gh/sylabs/singularity/tree/master">2</a>). The code generally follows <a href="https://goreportcard.com/report/github.com/sylabs/singularity">best practices</a> (i.e. it is not atrocious to work with).</p>
<p>Fourth, there are also a handful of active contributors (both developers and in the community support channels) who come from outside of Sylabs, which indicates more engagement by a wider audience of people.</p>
<p>For more statistics, check out the <a href="https://github.com/sylabs/singularity/pulse">GitHub project pulse</a>.</p>

<h2 id="podman">Podman&nbsp;<a class="hanchor" href="#podman" aria-label="Anchor link for: Podman">🔗</a></h2>
<p><em>tl;dr</em>: Podman is an underdog that shows promise, but likely needs another one or two years of time for most HPC use cases.</p>
<p><a href="https://podman.io/">Podman</a> is a container run-time developed by Red Hat. Its primary goal is to be a drop-in replacement for Docker. While it is not explicitly designed with HPC use cases in mind, it intends to be a lightweight &ldquo;wrapper&rdquo; to run containers without the overhead of the full Docker daemon. Furthermore, the Podman development team is recently looking into better support for HPC use cases.</p>
<p>Podman is currently lacking for a HPC use case for some of these reasons:</p>
<ol>
<li><a href="https://github.com/containers/libpod/issues/3478">Missing support for parallel filesystems</a> (e.g. <a href="https://en.wikipedia.org/wiki/IBM_Spectrum_Scale">IBM Spectrum Scale</a>)</li>
<li>Rootless Podman was designed to <a href="https://github.com/containers/libpod/blob/master/rootless.md">use kernel user namespaces</a> which is <a href="https://github.com/containers/libpod/issues/3561">not compatible with most parallel filesystems</a> (might change in a year or two)</li>
<li><a href="https://github.com/containers/libpod/issues/3587">Not yet possible to set system site policy defaults</a></li>
<li><a href="https://github.com/containers/libpod/issues/3589">Pulling Docker/OCI images requires multiple subuids/subgids</a> (might change in a year or two)</li>
</ol>
<p>Where Podman does shine is providing a way to run <strong><em>and</em></strong> build containers without root access or <code>setuid</code>.</p>
<p>The same challenges and problems required for Podman to run OCI containers in an HPC environment are the same problems faced by Singularity to build SIF images without root in the HPC environment: <strong>mapping UIDs to subuids/subgids on the compute nodes</strong>. More interestingly, <strong><a href="https://buildah.io/">Buildah</a></strong> offers a promising way to enable users to build container images as Docker/OCI images all without root. It is plausible to use Buildah as the container image delivery mechanism and swap out the container run-time implementation (Podman vs. Singularity) depending on specific needs and requirements.</p>

<h2 id="what-do-you-think">What do you think?&nbsp;<a class="hanchor" href="#what-do-you-think" aria-label="Anchor link for: What do you think?">🔗</a></h2>
<p>I hope other folks out there in the HPC world find this preliminary research useful. Do you agree or disagree with any parts of this write-up? Is something out-of-date? Drop a comment down below.</p>]]></description></item><item><title>TeleIRC v1.3.1 released with quality-of-life improvements</title><link>https://jwheel.org/blog/2019/04/teleirc-v1-3-1-released/</link><pubDate>Mon, 22 Apr 2019 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2019/04/teleirc-v1-3-1-released/</guid><description><![CDATA[<p>On April 20th, 2019, the TeleIRC development team <a href="https://github.com/RITlug/teleirc/releases/tag/v1.3.1">released TeleIRC v1.3.1</a>, the latest version after the final development sprint for the university semester. This release introduces minor improvements in order to accommodate heavier work-balance loads on our volunteer contributors. However, it gave us an opportunity to reduce technical debt. This blog post explains what&rsquo;s new in TeleIRC v1.3.1 and also offers a retrospective into how this last sprint went.</p>
<p>Special thanks and appreciation goes to <a href="https://www.linkedin.com/in/tim-zabel/">Tim Zabel</a> and <a href="https://github.com/nic-hartley">Nic Hartley</a> for their contributions this release cycle.</p>

<h2 id="whats-new">What&rsquo;s new&nbsp;<a class="hanchor" href="#whats-new" aria-label="Anchor link for: What&rsquo;s new">🔗</a></h2>
<ul>
<li>Bold usernames in message prefixes (<a href="https://github.com/RITlug/teleirc/pull/134">#134</a>, <a href="https://github.com/nic-hartley">Nic Hartley</a>)</li>
<li>Include filetype in IRC string when a document is uploaded on Telegram (<a href="https://github.com/RITlug/teleirc/pull/139">#139</a>, <a href="https://github.com/Tjzabel">Tim Zabel</a>)</li>
<li>Include zero-width space in username for join/part messages to group (<a href="https://github.com/RITlug/teleirc/pull/139">#139</a>, <a href="https://github.com/Tjzabel">Tim Zabel</a>)</li>
</ul>
<p>Additionally, contributor documentation improved. I added <a href="https://github.com/RITlug/teleirc/blob/master/.github/CONTRIBUTING.md">contributor guidelines</a> and instructions to set up a development environment. Also, our friends at <a href="https://ura.design/">Ura Design</a> designed our new project logo. Thanks to Ura, we have an awesome project logo and stickers in time for <a href="https://www.rit.edu/imagine/">Imagine RIT 2019</a> later this month!</p>
<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">They&#39;re here! Check out our new @uracreative logo and stickers for the <a href="https://twitter.com/hashtag/TeleIRC?src=hash&amp;ref_src=twsrc%5Etfw">#TeleIRC</a> project. Grab some stickers at the <a href="https://twitter.com/RITlug?ref_src=twsrc%5Etfw">@RITlug</a> <a href="https://twitter.com/Imagine_RIT?ref_src=twsrc%5Etfw">@Imagine_RIT</a> festival on April 27! <a href="https://t.co/KGjT4F0qdY">pic.twitter.com/KGjT4F0qdY</a></p>&mdash; RIT Linux Users Group (@RITlug) <a href="https://twitter.com/RITlug/status/1118641571291901952?ref_src=twsrc%5Etfw">April 17, 2019</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>



<h2 id="teleirc-v131-sprint-retrospective">TeleIRC v1.3.1: sprint retrospective&nbsp;<a class="hanchor" href="#teleirc-v131-sprint-retrospective" aria-label="Anchor link for: TeleIRC v1.3.1: sprint retrospective">🔗</a></h2>
<p>Originally, we <a href="/blog/2019/03/teleirc-roadmap-v1-4/">planned to release v1.4</a> at the end of this sprint. For a number of reasons, this did not happen. We decided to reduce our scope and finish strong with a bugfix release instead of the originally-planned feature release. This retrospective summarizes &ldquo;lessons learned&rdquo; for future project sprints with a team of university students.</p>

<h3 id="extended-holidays-are-sprint-bookends">Extended holidays are sprint bookends&nbsp;<a class="hanchor" href="#extended-holidays-are-sprint-bookends" aria-label="Anchor link for: Extended holidays are sprint bookends">🔗</a></h3>
<p>In the last sprint, our university had a week-long break from classes. Most students use this time to visit family or travel outside of Rochester. Originally, we agreed to pause the sprint and resume when we returned. In retrospect, it didn&rsquo;t work out like that.</p>
<p>It was harder to start again when we returned from the break. Instead of an extended holiday acting as a pause in an ongoing sprint, extended holiday breaks should divide two separate sprints. The breaks from classes are personal time; working on projects is not possible for everyone. The interruption caused by a break impacts productivity of the team. Therefore, future sprint planning will take the <a href="https://www.rit.edu/calendar">university calendar</a> into consideration.</p>

<h3 id="adjustable-sprint-length-to-semester">Adjustable sprint length to semester&nbsp;<a class="hanchor" href="#adjustable-sprint-length-to-semester" aria-label="Anchor link for: Adjustable sprint length to semester">🔗</a></h3>
<p>Sprint lengths should have an adjustable length depending on what part of the academic semester the sprint is. For example, earlier this semester, we released v1.3 in a two-week sprint. For this v1.3.1 release, it was over a month. What happened? Should sprints have a variable length?</p>
<p>When working with an academic crowd, variable sprint lengths are worth considering. The first half of a semester typically has less assigned coursework. Final projects are not at play. Therefore, usually team members have more time to invest in the project at the start of a semester. Towards the end of the semester, coursework and class projects pile on and make it difficult to find bandwidth to work on side projects like TeleIRC.</p>
<p>The compromise is keeping our sprints short at the start of a semester and stretching them out as a semester goes on. This gives students more flexibility to work at a pace that encourages quality work but isn&rsquo;t overwhelming with other responsibilities of being a student. Going forward, we will try variable-length sprints in the Fall 2019 semester.</p>

<h2 id="get-involved-with-teleirc">Get involved with TeleIRC!&nbsp;<a class="hanchor" href="#get-involved-with-teleirc" aria-label="Anchor link for: Get involved with TeleIRC!">🔗</a></h2>
<p>More opportunities are coming to participate with TeleIRC! The team is happy for new people to join us. Opportunities are available for short-term and long-term contributions.</p>
<p>Come say hello in our developer chat rooms, either on <a href="https://webchat.freenode.net/?channels=ritlug-teleirc">IRC</a> or in <a href="https://t.me/teleirc">Telegram</a>! Watch for <a href="/tags/teleirc/">TeleIRC development reports</a> on my blog for more announcements.</p>
<hr>
<p><em><a href="https://unsplash.com/photos/guiQYiRxkZY">Background photo</a> by <a href="https://unsplash.com/@epicantus">Daria Nepriakhina</a> on <a href="https://unsplash.com/">Unsplash</a>.</em></p>]]></description></item><item><title>Roadmap for TeleIRC v1.4</title><link>https://jwheel.org/blog/2019/03/teleirc-roadmap-v1-4/</link><pubDate>Sat, 23 Mar 2019 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2019/03/teleirc-roadmap-v1-4/</guid><description><![CDATA[<p>The <a href="https://ritlug.com/">RITlug</a> TeleIRC developer team celebrated the <a href="https://github.com/RITlug/teleirc/releases/tag/v1.3">v1.3 release</a> on March 3rd, 2019. Looking ahead, the team is mapping out next steps for quality-of-life improvements in v1.4.</p>

<h2 id="whats-coming-in-teleirc-v14">What&rsquo;s coming in TeleIRC v1.4&nbsp;<a class="hanchor" href="#whats-coming-in-teleirc-v14" aria-label="Anchor link for: What&rsquo;s coming in TeleIRC v1.4">🔗</a></h2>
<p><a href="https://github.com/RITlug/teleirc/milestone/6">TeleIRC v1.4</a> is the next feature release of TeleIRC. The targeted release date for v1.4 is by the end of April 2019 (i.e. the end of the academic semester for students involved with the project). Following v1.4, the project will likely enter brief hibernation until Fall 2019 when the <a href="https://www.rit.edu/">RIT</a> academic semester begins again.</p>
<p>At the developer meeting on March 23rd, we discussed the scope of this sprint and what we felt is realistic for project maintainers to work on:</p>

<h3 id="primary-goals">Primary goals&nbsp;<a class="hanchor" href="#primary-goals" aria-label="Anchor link for: Primary goals">🔗</a></h3>
<ul>
<li>Include limited characters from Telegram replies in relayed IRC message (<a href="https://github.com/RITlug/teleirc/issues/51">RITlug/teleirc#51</a>)</li>
<li>Create doc page on development environment (<a href="https://github.com/RITlug/teleirc/issues/77">RITlug/teleirc#77</a>)</li>
<li>QoL Improvements: show file-type of documents in IRC, insert ZWP character in join/leave messages (<a href="https://github.com/RITlug/teleirc/issues/130">RITlug/teleirc#130</a>)</li>
<li>Allow user to configure more variables for IRC server connection (e.g. port, SSL certs, etc.) (<a href="https://github.com/RITlug/teleirc/issues/113">RITlug/teleirc#113</a>)</li>
</ul>

<h3 id="secondary-goals">Secondary goals&nbsp;<a class="hanchor" href="#secondary-goals" aria-label="Anchor link for: Secondary goals">🔗</a></h3>
<ul>
<li>Add Telegram-side highlighting for IRC messages prefixed with username (<a href="https://github.com/RITlug/teleirc/issues/44">RITlug/teleirc#44</a>)</li>
<li>Bold usernames on Telegram and IRC (<a href="https://github.com/RITlug/teleirc/issues/19">RITlug/teleirc#19</a>)</li>
</ul>

<h2 id="recap-of-teleirc-v13-sprint">Recap of TeleIRC v1.3 sprint&nbsp;<a class="hanchor" href="#recap-of-teleirc-v13-sprint" aria-label="Anchor link for: Recap of TeleIRC v1.3 sprint">🔗</a></h2>
<p>The <a href="/blog/2019/02/teleirc-v1-3-next-release/">TeleIRC v1.3 release</a> follows the v1.2.2 release on December 8th, 2018. This release is a significant change in how project development is done. For the first time, a special interest group inside of <a href="https://ritlug.com/">RITlug</a> exists around the project. The team shifted to an agile-like development practice to fit inside of the <a href="https://www.rit.edu/">RIT</a> student academic schedule.</p>
<p>A special shout-out is earned by <a href="https://twitter.com/Tjzabel21">Tim Zabel</a> for his support and participation as a core contributor during the v1.3 sprint.</p>

<h2 id="get-involved-with-teleirc">Get involved with TeleIRC!&nbsp;<a class="hanchor" href="#get-involved-with-teleirc" aria-label="Anchor link for: Get involved with TeleIRC!">🔗</a></h2>
<p>More opportunities are coming to participate with TeleIRC! We would love to have more people get involved and participate in the project. There is no formal commitment to contributing, although we ask for participation through a single sprint cycle.</p>
<p>Soon, we will have better new contributor on-boarding docs. Our weekly developer meetings are now happening over public audio/video call each Saturday at 15:00 US EDT, so anyone can join and participate.</p>
<p>Come say hello in our developer chat rooms, either on <a href="https://webchat.freenode.net/?channels=ritlug-teleirc">IRC</a> or in <a href="https://t.me/teleirc">Telegram</a>!</p>
<hr>
<p><em><a href="https://unsplash.com/photos/guiQYiRxkZY">Background photo</a> by <a href="https://unsplash.com/@epicantus">Daria Nepriakhina</a> on <a href="https://unsplash.com/">Unsplash</a>.</em></p>]]></description></item><item><title>TeleIRC v1.3: Developers map out next release</title><link>https://jwheel.org/blog/2019/02/teleirc-v1-3-next-release/</link><pubDate>Sun, 03 Feb 2019 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2019/02/teleirc-v1-3-next-release/</guid><description><![CDATA[<p>On Saturday, February 2nd, 2019, the <a href="https://github.com/RITlug/teleirc">TeleIRC</a> community in Rochester, NY held the first developers&rsquo; meeting. Starting this month, weekly meetings are held to discuss blocking issues and plan ahead for the future of the project. Current project lead <a href="https://jwheel.org/">Justin Wheeler</a> met with <a href="https://github.com/Tjzabel">Tim Zabel</a> and <a href="https://github.com/nic-hartley/">Nic Hartley</a> to finish planning the v1.3 milestone for TeleIRC. Notably, this marks the next feature-release of TeleIRC since v1.2 in October 2018.</p>
<p>Read on to learn more about what&rsquo;s coming in TeleIRC v1.3.</p>

<h2 id="whats-coming-in-teleirc-v13">What&rsquo;s coming in TeleIRC v1.3?&nbsp;<a class="hanchor" href="#whats-coming-in-teleirc-v13" aria-label="Anchor link for: What&rsquo;s coming in TeleIRC v1.3?">🔗</a></h2>
<p>The developers&rsquo; meeting focused on identifying critical tasks to work on for the next sprint. The following open issues were identified as essential for v1.3:</p>
<ul>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/41">#41</a></strong>: Sending an image with a caption in telegram then editing the caption causes the image to get sent again</li>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/44">#44</a></strong>: Add Telegram-side highlighting for IRC messages prefixed with username</li>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/53">#53</a></strong>: multi-line messages should have each lined prefixed with the userid</li>
<li><strong><a href="https://github.com/RITlug/teleirc/pull/102">#102</a></strong>: Splitting of messages sent to IRC, prepending TG username to each one</li>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/112">#112</a></strong>: Insert zero-width space in Telegram usernames sent to IRC</li>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/115">#115</a></strong>: Image url reveals bot&rsquo;s token</li>
<li><strong><a href="https://github.com/RITlug/teleirc/issues/118">#118</a></strong>: Refactor documentation into smaller pages (to make it more readable)</li>
</ul>
<p>Of these, #53 and #102 will be closed by <a href="https://github.com/RITlug/teleirc/pull/102">pull request #102</a>. <a href="https://github.com/michalrud">Michał Rudowicz</a> contributed #102 and it should be merged during this sprint window. (<em>Thanks Michał!</em>)</p>
<p>Keep up with more development news by watching the <a href="https://github.com/RITlug/teleirc/milestone/5">v1.3 milestone</a> on GitHub.</p>

<h2 id="when-is-teleirc-v13-coming">When is TeleIRC v1.3 coming?&nbsp;<a class="hanchor" href="#when-is-teleirc-v13-coming" aria-label="Anchor link for: When is TeleIRC v1.3 coming?">🔗</a></h2>
<p>TeleIRC v1.3 is projected for <strong>Saturday, March 2nd</strong>. For the selected issues, we felt four weeks was sufficient to accomplish and meet all existing goals. If we move faster than expected, we may move items from the <a href="https://github.com/RITlug/teleirc/milestone/6">v1.4 milestone</a> up to this release.</p>

<h2 id="how-can-i-participate">How can I participate?&nbsp;<a class="hanchor" href="#how-can-i-participate" aria-label="Anchor link for: How can I participate?">🔗</a></h2>
<p>Want to help out or get involved with TeleIRC? We are happy to welcome you! Past contributors have come from all around the world.</p>
<p>Say hello in our Freenode IRC channel, <a href="https://webchat.freenode.net/?channels=ritlug-teleirc">#ritlug-teleirc</a>, or <a href="https://t.me/teleirc">join the Telegram group</a>. You can also look through our &ldquo;<a href="https://github.com/RITlug/teleirc/issues?q=is%3Aopen&#43;is%3Aissue&#43;label%3A%22good&#43;first&#43;issue%22&#43;no%3Aassignee">good first issue</a>&rdquo; tickets in GitHub. If something looks interesting, leave a comment of interest in the GitHub issue and a committer can offer more guidance.</p>
<p>If you are a user and want to share feedback or thoughts with the team, leave a comment on this blog post and they will be shared with the team.</p>
<hr>
<p><em><a href="https://unsplash.com/photos/guiQYiRxkZY">Background photo</a> by <a href="https://unsplash.com/@epicantus">Daria Nepriakhina</a> on <a href="https://unsplash.com/">Unsplash</a>.</em></p>]]></description></item><item><title>Sustain OSS 2018: quick rewind</title><link>https://jwheel.org/blog/2018/11/sustain-oss-2018-quick-rewind/</link><pubDate>Tue, 13 Nov 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/11/sustain-oss-2018-quick-rewind/</guid><description><![CDATA[<p>This year, I attended the second edition of the <a href="https://sustainoss.org/">Sustain Open Source Summit</a> (a.k.a. Sustain OSS) on October 25th, 2018 in London. Sustain OSS is a one-day discussion on various topics about sustainability in open source ecosystems. It&rsquo;s also a collection of diverse roles across the world of open source. From small project maintainers to open source program managers at the largest tech companies in the world, designers to government employees, there is a mix of backgrounds in the room. Yet there is a shared context around the most systemic problems faced by open source projects, communities, and people around the world.</p>
<p>The shared context is the most valuable piece of the conference. As a first-time attendee, I was blown away by the depth and range of topics covered by attendees. This blog post covers a narrow perspective of Sustain OSS through the sessions I participated and co-facilitated in.</p>

<h2 id="speed-breakout-groups">Speed breakout groups&nbsp;<a class="hanchor" href="#speed-breakout-groups" aria-label="Anchor link for: Speed breakout groups">🔗</a></h2>
<p>The morning started with speed breakout groups of between six to twelve people. Several attendees acted as facilitators for discussion on special topics. Every attendee could about half of all groups. I took extensive notes in the following groups:</p>
<ul>
<li>Charitable participation in open source</li>
<li>Diversity and inclusion</li>
<li>Turning open source projects into sustainable projects / companies</li>
<li>Design in open source</li>
<li>Open source financial sustainability models</li>
</ul>

<h3 id="sustain-oss-high-level-takeaways">Sustain OSS: High-level takeaways&nbsp;<a class="hanchor" href="#sustain-oss-high-level-takeaways" aria-label="Anchor link for: Sustain OSS: High-level takeaways">🔗</a></h3>
<p>To save you time, these are my high-level takeaways across all breakout groups I participated in:</p>
<ul>
<li>
<p>Open source isn&rsquo;t something just done in people&rsquo;s free time</p>
</li>
<li>
<p>Complex systems can enable systemic bias in terms of what &ldquo;open source&rdquo; means</p>
</li>
<li>
<p>Sustainability as topic of first priority / consideration, not an afterthought</p>
</li>
<li>
<p>There is no &ldquo;silver bullet&rdquo; solution to any of these challenges; they all require adaption to work across communities, projects, and organizations</p>
</li>
</ul>

<h3 id="charitable-participation-in-open-source">Charitable participation in open source&nbsp;<a class="hanchor" href="#charitable-participation-in-open-source" aria-label="Anchor link for: Charitable participation in open source">🔗</a></h3>
<p>This breakout group focused on the connection between charitable organizations and free software projects. It was facilitated by the esteemed <a href="https://twitter.com/o0karen0o">Karen Sandler</a> of the <a href="https://sfconservancy.org/">Software Freedom Conservancy</a>.</p>
<p>Overall, the conversation was split among creating ethical software, finding sustainable funding models, and balancing how much control to relinquish as a managing organization of an open source project. Some felt pride and ideology were strong drivers for contributors to ideological projects (which also mirrors my experience at <a href="http://unicefstories.org/magicbox/">UNICEF</a>). These could be key motivations to understand for contributors. Additionally, the challenge around sustainable funding models was common across charitable foundations focused on free software. Grant funding is a common strategy employed by charitable organizations, but the short-term nature of grants puts additional strain on resources to continue searching for new funding. Lastly, for charitable organizations overseeing or supporting free software projects, there was uncertainty over how much control should be left to projects. Attendees generally expressed a desire to let projects do what they want, but it sometimes came at the risk of additional overhead for the organization when everyone does something of everything. The concern over toxic communities came up, and how some issues remain buried until farther along in a relationship with a project. One successful solution employed was to hold monthly meetings among all member projects of an organization to address difficulties.</p>
<p>One interesting detail that captured my attention: one attendee noted how extensive effort into fundraising campaigns targeted to members of a foundation actually increased member engagement with the foundation.</p>

<h3 id="diversity-and-inclusion">Diversity and inclusion&nbsp;<a class="hanchor" href="#diversity-and-inclusion" aria-label="Anchor link for: Diversity and inclusion">🔗</a></h3>
<p>My biggest takeaway from this session was the danger in thinking of open source as something we do in our free time. This can be exclusive to different genders, races, and socioeconomic statuses. Some &ldquo;free time&rdquo; is more equal than others. The actionable piece for me is to be more conscious in building and growing communities to support different levels of contribution in a community.</p>
<p>The question I wanted to explore after reflecting is to ask of those who feel disadvantaged:</p>
<ul>
<li>What factors makes a project more or less inviting for you?</li>
<li>What can we do better when designing for participation in our communities?</li>
</ul>

<h3 id="turning-open-source-projects-into-sustainable-ones">Turning open source projects into sustainable ones&nbsp;<a class="hanchor" href="#turning-open-source-projects-into-sustainable-ones" aria-label="Anchor link for: Turning open source projects into sustainable ones">🔗</a></h3>
<p>My notes weren&rsquo;t thorough on this session, but there was an interesting point on trademark that came up during discussion of the <a href="https://commonsclause.com/">Commons Clause</a>. One participant was pursuing trademark law to enforce commercial protections and sustainability. They gave an example of a large corporation advertising support with a major open source project (e.g. a major software/hardware vendor supporting a specific NodeJS version). They wanted to use this as a way to create a more financially sustainable model for some projects.</p>

<h3 id="design-in-open-source">Design in open source&nbsp;<a class="hanchor" href="#design-in-open-source" aria-label="Anchor link for: Design in open source">🔗</a></h3>
<p>This breakout group focused on sustainable design and design practices in open source communities. The role of designers in technical projects was also discussed and how we can build technical communities to be more inclusive for designers. It was facilitated by <a href="https://elioqoshi.me/about-me/">Elio Qoshi</a>.</p>
<p>My takeaways from this breakout were that established ways of working can be unfriendly to designers and there is a need to emphasize diversity across different roles in a project or organization. Certain tools, platforms, or other mechanisms for contributing have poor user interfaces. They can push people away because of barriers to contributing with a frustrating user experience. Next, the need for diversity in roles was noted, with an example of engineers leading project management. Sometimes bias or oversights afforded as an engineer accidentally excludes others like designers or writers from contributing to our project. We should endeavor for people to spend more time on their preferred and most effective methods of contribution.</p>

<h3 id="financial-sustainability-models">Financial sustainability models&nbsp;<a class="hanchor" href="#financial-sustainability-models" aria-label="Anchor link for: Financial sustainability models">🔗</a></h3>
<p>This breakout session focused on the traditional sense of sustainability: in finances and resources. Attendees discussed different models used to fund open source projects and foundations. The session was facilitated by the founder of the <a href="https://musicbrainz.org/doc/About">MusicBrainz</a> project, <a href="https://twitter.com/MayhemBCN">Robert Kaye</a>.</p>
<p>The model used by <a href="https://metabrainz.org/about">MetaBrainz</a> essentially as a data broker was interesting and unique. MetaBrainz offers commercial data usage at a cost, and companies using their data have a strong need for the data and see value in it. Through other parts of their model since changing three years ago, they had significant gains in their revenue and were able to increase paid staff working on the projects.</p>
<p>The Amazon invoice cake is also an amusing story, but you should ask Robert directly about it.</p>


<h2 id="hour-breakout-sessions">Hour breakout sessions&nbsp;<a class="hanchor" href="#hour-breakout-sessions" aria-label="Anchor link for: Hour breakout sessions">🔗</a></h2>
<p>After lunch, attendees participated in two hour-long breakout sessions to explore specific topics in greater detail.</p>

<h3 id="human-aspect-of-governance">Human aspect of governance&nbsp;<a class="hanchor" href="#human-aspect-of-governance" aria-label="Anchor link for: Human aspect of governance">🔗</a></h3>
<p>Longer form notes are available below. I won&rsquo;t go into detail since it has its own document with notes and highlights.</p>
<p><a href="/docs/Open-source-human-governance-Sustain-OSS-London-2018.pdf">Human aspects of open source governance - Sustain OSS London 2018</a><a href="/docs/Open-source-human-governance-Sustain-OSS-London-2018.pdf">Download</a></p>

<h3 id="university-engagement">University engagement&nbsp;<a class="hanchor" href="#university-engagement" aria-label="Anchor link for: University engagement">🔗</a></h3>
<p>Together with <a href="https://twitter.com/epistemographer">Josh Greenberg</a> of the <a href="https://sloan.org/">Alfred P. Sloan Foundation</a>, we co-facilitated a spontaneous session on how universities can engage with open source communities and vice versa.</p>
<p>In our session, two major topics were discussed:</p>
<ul>
<li>
<p>Education (e.g. curriculum, institutions, programs, etc.)</p>
</li>
<li>
<p>Research</p>
</li>
</ul>
<p>We asked all participants why they decided to participate and what questions they had, even though we weren&rsquo;t able to answer all of them:</p>
<ol>
<li>How do we get the word out?</li>
<li>What research is most valuable for open source?</li>
<li>How to long-term sustain projects?</li>
<li>How to actually do and support research?</li>
<li>How to engage both students and faculty?</li>
<li>How to harness / enable institutions to make positive contributions to ecosystem?</li>
</ol>
<p>For education, we agreed that introducing and teaching open source in curriculum better serves students and the institution (both financially and in career satisfaction). Many technology companies today are participating in open source and it is an important skill to have for students entering the workforce. For research, students are already doing research and proposing topics, so better student engagement in open source is better for research.</p>
<p>Our takeaways were to better engage with existing organizations working on these problems for years already (e.g. <a href="http://teachingopensource.org/POSSE/">POSSE</a>), shifting the perspective of universities to be stewards of FOSS, and using collegiate hackathons as a way to better engage with undergraduate students.</p>
<p>One additional point that stood out to me was the emphasis across all breakout participants for a need of good communication skills to be successful. In many cases, the companies hiring top tech talent (from our breakout attendees) listed this as most desirable skill. Technology and new skills can be learned, but teaching good communication skills and how to work collaboratively are not easily learned.</p>

<h2 id="other-takeaways">Other takeaways&nbsp;<a class="hanchor" href="#other-takeaways" aria-label="Anchor link for: Other takeaways">🔗</a></h2>
<p>One takeaway I couldn&rsquo;t fit elsewhere was my changed perspective on &ldquo;technical&rdquo; vs. &ldquo;non-technical&rdquo; work. The phrase &ldquo;non-technical work&rdquo; implies an &ldquo;other space where development does not occur&rdquo;. Does the phrase place unequal priority on technical work? One action item is to avoid using &ldquo;non-technical work&rdquo; as an umbrella term, and instead call these areas by what they are: design, documentation, writing, marketing, community building, etc.</p>
<p>For me, I still want an umbrella term for these things, but I&rsquo;m open-minded for better alternatives to non-technical.</p>

<h3 id="skill-share-conflict-resolution">Skill share: conflict resolution&nbsp;<a class="hanchor" href="#skill-share-conflict-resolution" aria-label="Anchor link for: Skill share: conflict resolution">🔗</a></h3>
<p>The last event of Sustain OSS was a 1x1 skill share. Roughly half of the attendees identified a &ldquo;skill&rdquo; they could teach someone else in the room. The other half of attendees paired with someone teaching a skill they wanted to learn more about. I paired with <a href="https://www.jonobacon.com/about/bio/">Jono Bacon</a> on a short breakout on conflict resolution.</p>
<p>Jono detailed steps of working through and resolving conflict, including how to identify root problems, how to make steps to resolve them, and some personal philosophy of how we build and maintain relationships with others.</p>
<p>An important first step is to identify the critical point: this could be an ongoing crisis, dealing with interpersonal conflict, or dealing with burnout. When someone is explaining a problem, listen fully to them and understand what they are saying. Let them get it off their chest. Is there something else causing this behavior? Tap into the cloud of ranting and determine what the root cause is.</p>
<p>Once common ground is established, make a plan to resolve it. Jono&rsquo;s advice was to create written next steps and be explicit about expectations. This way, everyone is on the same page of what the next steps are and everyone involved has signed off on these next steps (this creates a sense of commitment and the next steps become written as &ldquo;law&rdquo;). Encourage others to restate the goals of conflict resolution in their own words. Once you have written goals and expectations, the crucial next step is follow-up. Check in on a regular basis with the person or people involved. Try to be neutral and unbiased when listening to others in these conversations. Go in with an open mind.</p>
<p>Lastly, we contextualized conflict resolution in personal philosophy of how we build and maintain relationships with others – both in and out of our open source projects. Sometimes the best way to address difficult interpersonal problems is to stop avoiding them and simply address them. Much easier said than done, but otherwise there is no escaping the perpetuated cycle of conflict if someone doesn&rsquo;t make a first step.</p>
<p>It&rsquo;s not just about code.</p>

<h2 id="thank-you">Thank you&nbsp;<a class="hanchor" href="#thank-you" aria-label="Anchor link for: Thank you">🔗</a></h2>
<p>To wrap up this Sustain OSS report, a few obligatory thank-yous are needed:</p>
<ul>
<li>
<p><strong><a href="https://sloan.org/">Sloan Foundation</a> / <a href="https://www.fordfoundation.org/">Ford Foundation</a></strong>: For the financial support I needed to attend and participate in the event – this is never something I take for granted and I am happy to have received a scholarship to attend and participate</p>
</li>
<li>
<p><strong><a href="https://twitter.com/epistemographer">Josh Greenberg</a> @ <a href="https://sloan.org/">Sloan Foundation</a></strong>: For helping me get over some imposter syndrome and co-facilitate the university engagement breakout session with me – thanks for the gentle push</p>
</li>
<li>
<p><strong><a href="https://twitter.com/MayhemBCN">Robert Kaye</a> @ <a href="https://metabrainz.org/">MetaBrainz</a></strong>: For being generally awesome and finally giving me someone to nerd out about all these crazy ideas of how free culture and music can actually be related!</p>
</li>
<li>
<p><strong><a href="https://www.rit.edu/gccis/stephen-jacobs">Stephen Jacobs</a></strong>: For always being supportive for yet another trip abroad and helping me map a strategy to get the most out of Sustain OSS</p>
</li>
</ul>
<p>Sustain OSS gave me a lot to think about and consider. I&rsquo;m glad and fortunate to have attended. I hope this event report gives additional visibility to some of the conversations held in London this year.</p>]]></description></item><item><title>Wikipedia is a privilege</title><link>https://jwheel.org/blog/2018/10/wikipedia-privilege/</link><pubDate>Tue, 09 Oct 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/10/wikipedia-privilege/</guid><description><![CDATA[<p><em>Originally written as an essay response for <a href="https://www.rit.edu/cla/english/450-free-and-open-source-culture">ENGL-450 Free and Open Source Culture</a> at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>.</em></p>
<hr>
<p>Growing up with easy access to the Internet grants the privilege of experiencing effortless knowledge and high availability of information. Wikipedia is an example of 21st century cooperation and collaboration. For many, it represents a beacon of free information and self-education. Some might credit it for charting wider participation in the movement towards free content and open resources.</p>
<p>Yet Wikipedia remains a tool of power and privilege, absent for many as societal myths perpetuate in the lives of children. As children are exposed to the Internet at earlier ages, their comprehension and correlation to the real world is in the context of living in a digitized society. In simpler words, everything they ever know always has technology, tablets, smart-phones, and smart devices present. There is no split experience of going from have-nots to haves.</p>
<p>For me, the split experience was my experience. As I became older, information became within click’s reach and a moment of patience. In prior generations, factual information existed in factual places, such as a library or a home study (for those privileged to own encyclopedias in their homes as children). Caught without any reference to support or dissent against a societal myth, the truth remained far enough out of reach for only the most motivated (and privileged) to continue searching for truth.</p>
<p>Today, this process takes seconds. From devices in pockets to sitting at desks. Desks now conveniently feature a computer workstation over “old school” writing utensils, books, and paper. Externally-verified information is available for those who seek truth or supporting evidence to define their own understanding of truth (additionally, misinformation is equally spreadable depending on prior motivations, but will not be covered in this short opinion).</p>
<p>If the answers are so near and available, it enables increased self-awareness among youth. The Internet&rsquo;s ludicrous goals of a more interconnected species came not boldly, but subtly. It crept into our culture and perception of the world. As more gratis and factual information (academic work, scientific research, investigative reporting, and others, often under free licenses) creeps into the search-able Internet, answers remain convenient with a few taps on an LCD screen. Perhaps today’s youth, privileged to early Internet exposure, have subconsciously understood their perception of information as naturally free and available (with different understandings of what is true or false). For those searching for secularism, the true science remains easy to find and discover.</p>
<p>And thus, the root of the issue. What is the role of privilege? What early childhood development possibilities are created within information-rich societies? Are children better able to cast away their own doubts and suspicions? Do they avoid buying into a system designed to feed from them?</p>
<p>But what of the contrary? What is the experience to go without this privilege? It can be lack of access to information. The perception of information is opposite of naturally free and available, but costly and hidden. The odds are stacked higher against you because of poor accessibility to tools and resources.</p>
<p>But is access to free knowledge like Wikipedia truly inaccessible for even the most impoverished? Since even some of the poorest countries have <a href="https://www.cnn.com/2016/01/19/africa/africa-afrobarometer-infrastructure-report/index.html">better access to smart-phones than piped water</a>, exposure to the wider Internet (including Wikipedia) is inevitable. But the timing is late. The critical period of early childhood development is missed. Early childhood development has three phases: conception, the first 1000 days (birth to three years old), and pre-school / pre-primary years. The brain of a child is most sensitive, almost like a sponge, in those first 1000 days. Researchers defend this period’s impact on child-society and community cohesion as critical, even influencing the neurobiology of peace.¹ So then what of those who have the privilege of exposure to technology in those first 1000 days? What of the <a href="https://www.statista.com/statistics/273288/advertising-spending-worldwide/">billions, nearly trillion, dollars of advertising</a> that slip through the cracks of what these children are exposed to? Are we subtly being written before language is even learned?</p>
<p>
<figure>
  <img src="/blog/2018/10/statistic_id273288_media-spending-worldwide-2014-2021.png" alt="Global advertising spending from 2014 to 2021 (in billion U.S. dollars). Shows increase of spending by 268.96 billion dollars in advertising from 2014 projected to 2021. Sourced from Statista." loading="lazy">
  <figcaption>Increase in spending on advertising by <strong>268.96 billion dollars</strong> from 2014 projected into 2021</figcaption>
</figure>
</p>
<p>In this way, the open and closed systems compete in the Internet state. There are positive and negative qualities from both free information and black-box systems in information-rich societies. Wikipedia is a privilege, but it is only one small part of something bigger. A privilege of truth. A privilege of access. A privilege of self-liberation.</p>
<hr>
<p>¹ Britto, Pia. “<em>Building Brains, Building Futures</em>.” Online webinar, UNICEF, 24 January 2018. Keynote address.</p>
<p>Photo by <a href="https://unsplash.com/photos/6tedMQIJpNI?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Clem Onojeghuo</a> on <a href="https://unsplash.com/search/photos/access?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText">Unsplash</a>.</p>]]></description></item><item><title>Stepping out of Fedora: May to August 2018</title><link>https://jwheel.org/blog/2018/04/fedora-may-to-august-2018/</link><pubDate>Mon, 09 Apr 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/04/fedora-may-to-august-2018/</guid><description><![CDATA[<p>Similar to last year, I am putting forward a note of planned absence from the Fedora Project community from May to August 2018.</p>
<p>Transparency is important to me. I wanted to make this announcement ahead of time to set clear expectations for the upcoming months. I am returning to Chicago, IL to work another internship at <a href="http://jumptrading.com/">Jump Trading, LLC</a>. From June to August, I am working at their Chicago office. I am excited to return and learn more from an amazing team of people.</p>
<p>I am not blocked by company policy from contributing to open source, so I won&rsquo;t disappear completely. However, while I am still able to contribute to Fedora, I do not expect to keep up the level of activity that I contribute at now during my internship.</p>

<h2 id="away-from-may-to-august-2018">Away from May to August 2018&nbsp;<a class="hanchor" href="#away-from-may-to-august-2018" aria-label="Anchor link for: Away from May to August 2018">🔗</a></h2>
<p>May is filled with other personal commitments, followed by a near immediate departure to Chicago in early June. Thus, I am stepping out of Fedora in early May. I hope to spend time with friends and family before departing for Chicago, so my estimate is a little generous to the benefit of being realistic. My internship ends around mid-August, so I hope to begin my normal levels of contribution around this time.</p>
<p>The only area I hope to stay partially active with is the <a href="https://communityblog.fedoraproject.org/">Fedora Community Blog</a> to continue my post as the editor-in-chief. While I still don&rsquo;t expect being fully involved, I hope to help with editing and keeping things moving.</p>
<p>I&rsquo;m looking forward to seeing familiar faces again in August at <a href="https://flocktofedora.org/">Flock 2018</a>!</p>
<p>
<figure>
  <img src="/img/Flock-2015-Strong-Museum-of-Play.jpg" alt="Fedora Flock 2015 at the Strong Museum of Play in Rochester, NY" loading="lazy">
  <figcaption>Fedora Flock 2015 at the Strong Museum of Play in Rochester, NY</figcaption>
</figure>
</p>
<p>
<figure>
  <img src="/img/flock-group-photo-2_28739637620_o.jpg" alt="Fedora Flock 2016 in Kraków, Poland" loading="lazy">
  <figcaption>Fedora Flock 2016 in Kraków, Poland</figcaption>
</figure>
</p>]]></description></item><item><title>How I accidentally wrote a Wikipedia page on a layover in Dublin</title><link>https://jwheel.org/blog/2018/03/wikipedia-page-dublin/</link><pubDate>Thu, 15 Mar 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/03/wikipedia-page-dublin/</guid><description><![CDATA[<p>One of the most unusual but wonderful experiences happened to me on a return trip from Europe to the United States.</p>
<p>A series of <a href="https://www.theguardian.com/us-news/2018/mar/03/noreaster-storm-us-atlantic-massachusetts">heavy noreasters</a> hit the US east coast over the last couple weeks. This coincided with my travel dates back to Rochester, NY. While we didn&rsquo;t have flooding, we had a lot of snow. A lot of snow means canceled flights.</p>
<p>As I made my way through border control in Dublin, Ireland on March 7, I discovered my connection to New York City would likely be canceled. A meander from baggage claim to the check-in desk confirmed this. Fortunately, <a href="https://www.aerlingus.com/">Aer Lingus</a> had no issue putting me up in a hotel overnight with dinner and breakfast to catch the next flight to New York the next day.</p>
<p>While waiting in airport queues, a friend happened to retweet a local event happening in Dublin the next day.</p>
<blockquote class="twitter-tweet" data-dnt="true"><p lang="en" dir="ltr">For International Women&#39;s Day on Thursday, we&#39;ll be celebrating Female  Firsts in medicine with <a href="https://twitter.com/RCSILibrary?ref_src=twsrc%5Etfw">@RCSILibrary</a> <a href="https://t.co/RvIHtwAhys">https://t.co/RvIHtwAhys</a> <br>Saturday, we have our <a href="https://twitter.com/artandfeminism?ref_src=twsrc%5Etfw">@artandfeminism</a> event in <a href="https://twitter.com/UCC?ref_src=twsrc%5Etfw">@UCC</a>,  celebrating our Irish and local female artists from 12-3pm <a href="https://t.co/ZMpKQOSR3q">https://t.co/ZMpKQOSR3q</a> <a href="https://t.co/0G7Kn3zpS6">pic.twitter.com/0G7Kn3zpS6</a></p>&mdash; Wikimedia Community Ireland (@WikimediaIE) <a href="https://twitter.com/WikimediaIE/status/970674510608437249?ref_src=twsrc%5Etfw">March 5, 2018</a></blockquote>
<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>The event was a <a href="https://www.eventbrite.ie/e/wikipedia-editathon-rcsi-female-firsts-tickets-43324480688">local Wikimedia meet-up</a> to celebrate <a href="https://www.internationalwomensday.com/">International Women&rsquo;s Day</a>. Participants would create and edit Wikipedia pages for influential women in the history of the <a href="https://www.rcsi.com/dublin/">Royal College of Surgeons in Ireland</a>. After digging deeper, I found out the event was 30 minutes away from my hotel from 09:30 to 12:30. My flight was at 16:10.</p>
<p>I put in my RSVP.</p>

<h2 id="meet-the-wikimedia-ireland-community">Meet the Wikimedia Ireland community&nbsp;<a class="hanchor" href="#meet-the-wikimedia-ireland-community" aria-label="Anchor link for: Meet the Wikimedia Ireland community">🔗</a></h2>
<p>In an opportunistic stroke of fate, I would spend my extended layover for my first time in Dublin learning and listening about role model women in the Irish medicine community. I didn&rsquo;t know it yet, but I would also take part in writing some of the history too!</p>
<p>
<figure>
  <img src="/blog/2018/03/wikimedia-ireland-iwd-2018-group-photo.jpg" alt="Group photo of the participants and editors for the 2018 International Women&rsquo;s Day edit-a-thon" loading="lazy">
  <figcaption>Group photo of the participants and editors for the 2018 International Women’s Day edit-a-thon. <em>Source</em>: Twitter, @RCSILibrary (<a href="https://twitter.com/RCSILibrary/status/971690890900262912" class="bare">https://twitter.com/RCSILibrary/status/971690890900262912</a>)</figcaption>
</figure>
</p>

<h2 id="womenonwalls">#WomenOnWalls&nbsp;<a class="hanchor" href="#womenonwalls" aria-label="Anchor link for: #WomenOnWalls">🔗</a></h2>
<p>The first part of the morning was an introduction to editing on Wikipedia and establishing the focus for edits.</p>
<p>
<figure>
  <img src="/blog/2018/03/wikimedia-ireland-iwd-2018-support-for-women.jpg" alt="Manuscript letters of support by men from the RCSI archive for women being admitted to medical schools and accepted into the British Medical Association. #HeForShe! " loading="lazy">
  <figcaption>Manuscript letters of support by men from the RCSI archive for women being admitted to medical schools and accepted into the British Medical Association. #HeForShe! <em>Source</em>: Twitter, @RCSILibrary (<a href="https://twitter.com/RCSILibrary/status/971718664025268224" class="bare">https://twitter.com/RCSILibrary/status/971718664025268224</a>)</figcaption>
</figure>
</p>
<p>The <a href="https://www.rcsi.com/dublin/">Royal College of Surgeons in Ireland</a> (RCSI) started a new campaign to promote influential women in the history of the university. There is a historical board room in a prominent place on its campus. Inside the board room, there are portraits of influential people in the history of RCSI. But all of them are men. This makes it difficult for women to have role models or inspiration of women like them who &ldquo;made it&rdquo; in science and medicine.</p>
<p>On the contrary, there was also no shortage of influential women in the history of RCSI. Part of the morning was an introduction to primary sources that explained the pivotal work of female Irish doctors and pediatricians throughout the 20th century. After hearing about these inspirational women, it was a wonder – why were none of them represented in the board room?</p>
<p>This was actually the focus for the edit-a-thon. Recently, RCSI <a href="http://www.rcsi.ie/index.jsp?p=100&amp;n=110&amp;a=11330">commissioned new portraits</a> for some of the influential women alumnae. Half of the portraits in the board room would be relocated and replaced by the new portraits. This was part of their <a href="https://twitter.com/hashtag/womenonwalls?src=hash">#WomenOnWalls</a> campaign.</p>

<h2 id="discovering-victoria-coffey">Discovering Victoria Coffey&nbsp;<a class="hanchor" href="#discovering-victoria-coffey" aria-label="Anchor link for: Discovering Victoria Coffey">🔗</a></h2>
<p>After an introduction to the sources available and how to edit on Wikipedia, we began the editing. Organizers encouraged participants to improve an existing page first, since most of the participants were first-time editors.</p>
<p>Since I had some experience with Mediawiki mark-up and do a lot of writing, I decided to write a new page. There were a list of suggested women alumnae to write about. After <a href="https://www.irishtimes.com/life-and-style/health-family/the-female-trailblazers-of-irish-medicine-1.3405003">hearing about Victoria Coffey</a>, I decided to focus my two hours of writing on her legacy.</p>
<p>
<figure>
  <img src="/blog/2018/03/wikimedia-ireland-iwd-2018-intro-to-editing.jpg" alt="Project coordinator for Wikimedia Ireland, Rebecca O&rsquo;Neill, introduces Wikipedia to students, librarians, and faculty (and me!)" loading="lazy">
  <figcaption>Project coordinator for Wikimedia Ireland, Rebecca O’Neill (<a href="https://twitter.com/restlesscurator" class="bare">https://twitter.com/restlesscurator</a>), introduces Wikipedia to students, librarians, and faculty (and me!). <em>Source</em>: Twitter, @DrConorMalone (<a href="https://twitter.com/DrConorMalone/status/971699419841253377" class="bare">https://twitter.com/DrConorMalone/status/971699419841253377</a>)</figcaption>
</figure>
</p>

<h4 id="who-is-victoria-coffey">Who is Victoria Coffey?&nbsp;<a class="hanchor" href="#who-is-victoria-coffey" aria-label="Anchor link for: Who is Victoria Coffey?">🔗</a></h4>
<p>Victoria Coffey was an Irish pediatrician. She was an alumna of RCSI, and one of the first to research <a href="https://en.wikipedia.org/wiki/Sudden_infant_death_syndrome">sudden infant death syndrome</a> (SIDS). Coffey spent most of her time in medicine researching and studying congenital abnormalities in infants and pediatrics. Later in her life, she founded the Faculty of Paediatrics at the <a href="https://en.wikipedia.org/wiki/Royal_College_of_Physicians_of_Ireland">Royal College of Physicians of Ireland</a> in 1981 and was the first female president of the Irish Paediatric Society.</p>

<h4 id="writing-her-wikipedia-page">Writing her Wikipedia page&nbsp;<a class="hanchor" href="#writing-her-wikipedia-page" aria-label="Anchor link for: Writing her Wikipedia page">🔗</a></h4>
<p>With the help and guidance of the Wikimedia Ireland and RCSI staff, I found resources to research and learn more about Victoria Coffey. While some public sources were available, I was also provided with a primary source from a paid online Irish encyclopedia.</p>
<p>From there, I had the basis to begin writing a stub for her biography. I created an infobox to summarize some of her contributions, wrote a paragraph on her life, and left external links for someone to expand and write more in the future.</p>
<p>You can find <a href="https://en.wikipedia.org/wiki/Victoria_Coffey">her Wikipedia page</a> online now. Since its creation, it was viewed <a href="https://tools.wmflabs.org/pageviews/?project=en.wikipedia.org&amp;platform=all-access&amp;agent=user&amp;range=latest-20&amp;pages=Victoria_Coffey">nearly 100 times</a>, edited five times, and edited by three people.</p>

<h2 id="thank-you-rcsi-and-wikimedia-ireland">Thank you RCSI and Wikimedia Ireland!&nbsp;<a class="hanchor" href="#thank-you-rcsi-and-wikimedia-ireland" aria-label="Anchor link for: Thank you RCSI and Wikimedia Ireland!">🔗</a></h2>
<p>In a strange and opportunistic stroke of fate, I was lucky to meet this local community and work with a room of inspiring women in medicine (students, alumnae, and faculty) on lowering the wiki gap of women on Wikipedia. It was a privilege to take part and learn a unique kind of history for Ireland in my short stay in Dublin.</p>
<p>Thank you for this great experience, <a href="https://www.rcsi.com/dublin/">RCSI</a> and <a href="https://twitter.com/WikimediaIE">Wikimedia Ireland</a>!</p>
<p>I&rsquo;m not sure if this will make me anticipate flight cancellations more or less from now on.</p>]]></description></item><item><title>Inside Facebook's open source program at RIT</title><link>https://jwheel.org/blog/2018/02/facebook-open-source-program/</link><pubDate>Mon, 26 Feb 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/02/facebook-open-source-program/</guid><description><![CDATA[<p><a href="https://opensource.com/article/18/1/inside-facebooks-open-source-program"><em>Originally published on Opensource.com.</em></a></p>
<hr>
<p>Open source becomes more common every year, where it appears at <a href="https://opensource.com/article/17/8/tirana-government-chooses-open-source">government municipalities</a> to <a href="https://opensource.com/article/16/12/2016-election-night-hackathon">universities</a>. More companies turn to open source software too. However, some companies try to take it a step further, and instead of only using the software, they also support projects financially or with developers. Facebook&rsquo;s open source program encourages others in Facebook to release their code as open source. They also work and engage with the community to support the projects too.</p>
<p><a href="https://twitter.com/abernathyca">Christine Abernathy</a>, a Facebook developer advocate and member of the open source team, visited the Rochester Institute of Technology on November 15, 2017. She gave the <a href="https://www.eventbrite.com/e/fossmagic-talks-open-source-facebook-with-christine-abernathy-tickets-38955037566">November edition</a> of the FOSS Talks speaker series. Her talk explained how Facebook approaches open source and why it&rsquo;s an important part of the work they do.</p>

<h2 id="facebook-and-open-source">Facebook and open source&nbsp;<a class="hanchor" href="#facebook-and-open-source" aria-label="Anchor link for: Facebook and open source">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/12/blog-article-facebook-open-source-projects.png" alt="Some of the projects released as open source by Facebook, including React, GraphQL, Caffe2, and more" loading="lazy">
  <figcaption>Some of the projects released as open source by Facebook, including React (<a href="https://reactjs.org/" class="bare">https://reactjs.org/</a>), GraphQL (<a href="http://graphql.org/" class="bare">http://graphql.org/</a>), Caffe2 (<a href="https://caffe2.ai/" class="bare">https://caffe2.ai/</a>), and more</figcaption>
</figure>
</p>
<p>Abernathy explained that open source plays a fundamental role in Facebook&rsquo;s mission to create community and bring the world closer together. The ideological match was a motivational reason for Facebook&rsquo;s participation in open source.</p>
<p>Additionally, Facebook has unique problems and challenges to solve for their infrastructure and development. Open source provides a platform to share those challenges and help others avoid similar mistakes.</p>
<p>Open source also provided a way to accelerate innovation and create better software. It helped engineering teams produce better software and work more transparently. Today, Facebook&rsquo;s 443 projects on GitHub have 122,000 forks, 292,000 commits, and 732,000 followers.</p>

<h2 id="lessons-learned">Lessons learned&nbsp;<a class="hanchor" href="#lessons-learned" aria-label="Anchor link for: Lessons learned">🔗</a></h2>
<p>Abernathy emphasized that Facebook has learned many lessons from the open source community and hopes to learn many more. She identified the three most important lessons that Facebook took from open source:</p>
<ol>
<li>Share what&rsquo;s useful</li>
<li>Highlight your heroes</li>
<li>Fix common pain points</li>
</ol>
<p><a href="https://twitter.com/abernathyca">Christine Abernathy</a> visited RIT as part of the FOSS Talks speaker series. Every month, a guest speaker from the open source world shares wisdom, insight, and advice about the open source world with students interested in free and open source software. The <a href="http://foss.rit.edu/">FOSS @ MAGIC</a> community is thankful to have Abernathy attend as a speaker!</p>]]></description></item><item><title>Humanitarian open source work: My internship at UNICEF</title><link>https://jwheel.org/blog/2018/02/unicef-internship/</link><pubDate>Thu, 22 Feb 2018 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2018/02/unicef-internship/</guid><description><![CDATA[<p>In December, I received the happy news of an offer for a internship position at <a href="https://www.unicef.org/what-we-do">UNICEF</a> in the Office of Innovation. The <a href="http://unicefstories.org/about/">Office of Innovation</a> drives rapid technological innovation by rapid prototyping of new ideas and building full-stack products to make a positive impact in the lives of children. This is a simple answer, but a more detailed description is <a href="http://unicefstories.org/about/">on our website</a>.</p>
<p>My internship at UNICEF is unique: I support open source community engagement and research as my primary task for the <a href="http://unicefstories.org/magicbox/">MagicBox project</a>. For years, I&rsquo;ve done this in open source communities in my free time (namely <a href="https://www.spigotmc.org/wiki/about-spigot/">SpigotMC</a> and <a href="https://docs.fedoraproject.org/fedora-project/project/fedora-overview.html">Fedora</a>), but never in a professional role. As I navigate my way through this exciting opportunity, I plan to document some of the experience as I go through blogging. My intent is that my observations and notes will be useful to someone else in the humanitarian open source space (or maybe to a future me).</p>
<p>But first, what does &ldquo;open source community engagement and research&rdquo; <em>really</em> mean?</p>

<h2 id="what-am-i-actually-doing">What am I actually doing?&nbsp;<a class="hanchor" href="#what-am-i-actually-doing" aria-label="Anchor link for: What am I actually doing?">🔗</a></h2>
<p>&ldquo;Community engagement&rdquo; is a buzzword phrase for the open source movement in the 2010s. Often, we hear about &ldquo;community engagement&rdquo; or the work of those &ldquo;leading communities&rdquo;, but it&rsquo;s an abstract concept. In other words, building communities of humans and people is hard. There is no one-size-fits-all solution for any community. Every community has its own unique needs and goals. This means different methods of management and communication work better for some communities than others. My job is to help light the way for what this pathway means for the MagicBox team.</p>
<p>Since I started in January, a lot of my time so far was spent learning. What is MagicBox? What are we trying to deliver to our stakeholders? To the open source community? How does our data pipeline piece together? All these questions and more, I&rsquo;ve tried to answer to different levels of success.</p>

<h2 id="whats-next">What&rsquo;s next?&nbsp;<a class="hanchor" href="#whats-next" aria-label="Anchor link for: What&rsquo;s next?">🔗</a></h2>
<p>Now, I&rsquo;m beginning to take a more hands-on role with the work, with a clear vision of what I want to do. The next few posts to come will dive deeper into what I&rsquo;m up to.</p>
<p>If you have questions or are interested in keeping up with what&rsquo;s going on, feel free to leave a comment here or subscribe to my blog to automatically receive future updates.</p>
<hr>
<p><em>Opinions and views in my blog are my own and do not reflect the views of my employer.</em></p>]]></description></item><item><title>Statistics proposal and self-hosting ListenBrainz</title><link>https://jwheel.org/blog/2017/12/statistics-hosting-listenbrainz/</link><pubDate>Mon, 18 Dec 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/12/statistics-hosting-listenbrainz/</guid><description><![CDATA[<p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>This week is the last week of the fall 2017 semester at RIT. This semester, I spent time with the MetaBrainz community working on ListenBrainz for an independent study. This post explains what I was working on in the last month and reflects back on my <a href="/blog/2017/10/contributing-listenbrainz/">original objectives</a> for the independent study.</p>

<h2 id="running-my-own-listenbrainz">Running my own ListenBrainz&nbsp;<a class="hanchor" href="#running-my-own-listenbrainz" aria-label="Anchor link for: Running my own ListenBrainz">🔗</a></h2>
<p>The <a href="http://ritlug.com/">RIT Linux Users Group</a> hosts various virtual machines for our projects. I requested one to set up and host a &ldquo;production&rdquo; ListenBrainz site. The purpose of doing this was to…</p>
<ol>
<li>Test my changes in a &ldquo;production&rdquo; environment</li>
<li>Offer a service for the RIT Linux Users Group to poke around with</li>
</ol>
<p>I spent most of this time working with our system administrator to set up the machine and adjust hardware specs for ListenBrainz. Once we fixed storage space and memory issues, it was easy to set it up and get ListenBrainz running. My experience writing the <a href="https://listenbrainz.readthedocs.io/en/latest/dev/devel-env.html">development guide</a> made it easy to get set up and get working. On the first run, it worked!</p>
<p>Now, <a href="http://listen.ritlug.com/">listen.ritlug.com</a> is live.</p>

<h4 id="figuring-out-https">Figuring out HTTPS&nbsp;<a class="hanchor" href="#figuring-out-https" aria-label="Anchor link for: Figuring out HTTPS">🔗</a></h4>
<p>My next challenge for the site is to set up HTTPS. I tried using a <a href="https://www.nginx.com/resources/admin-guide/nginx-https-upstreams/">reverse proxy in nginx</a> to set up HTTPS, but I received <em>502 Bad Gateway</em> errors. I realized I spent too much time figuring this out on my own and decided to <a href="https://community.metabrainz.org/t/how-does-metabrainz-use-https-on-listenbrainz/347319">ask for help</a> in the MetaBrainz community forums.</p>

<h2 id="proposing-new-statistics">Proposing new statistics&nbsp;<a class="hanchor" href="#proposing-new-statistics" aria-label="Anchor link for: Proposing new statistics">🔗</a></h2>
<p>Halfway through the independent study, I realized I would fall short of my original objective of implementing basic statistics in ListenBrainz. To compromise, I wrote a <a href="https://docs.google.com/document/d/1kByAgC9kbuDHNbsEJDkYkTMJ-wAoouWj0qNyi2UPb2Y/edit?usp=sharing">proposal for new statistics</a> to start in the project. My proposal looked at other proprietary platforms that compete with ListenBrainz to see some of their statistics. I also came up with some of my own.</p>
<p>I <a href="https://community.metabrainz.org/t/feedback-needed-listenbrainz-statistics-proposal/347327">proposed this to the MetaBrainz community</a> on the community forums. I&rsquo;m awaiting feedback on my ideas. Once I get feedback, I plan to file new tickets for each statistic to track their implementation over time.</p>
<p>I don&rsquo;t expect statistics being at the forefront of ListenBrainz for some time. A lot of work is going towards other areas of the project. But later in 2018, I expect more focus on the user-facing side of the project.</p>

<h2 id="my-statistic-and-google-bigquery">My statistic and Google BigQuery&nbsp;<a class="hanchor" href="#my-statistic-and-google-bigquery" aria-label="Anchor link for: My statistic and Google BigQuery">🔗</a></h2>
<p>My biggest blocker over the last month was <a href="https://cloud.google.com/bigquery/">Google BigQuery</a>. I wrote a statistic to <a href="https://github.com/metabrainz/listenbrainz-server/pull/318/commits/c1c08ce7f8d207591daeb288087872616d5063a4">calculate play counts</a> over a time period, but was asked to test my statistic. To test my statistic, I needed real data to work with.</p>
<p>Originally, I tried using the <a href="https://github.com/tgwizard/sls">Simple Last.fm Scrobbler</a> to submit listens to the local IP address for my development environment, but I wasn&rsquo;t able to get the app to reach my ListenBrainz server. To get the data, I had to set up Google BigQuery credentials so I could make queries against data on the production site, <a href="https://listenbrainz.org/">listenbrainz.org</a>.</p>
<p>I tried working through the <a href="https://cloud.google.com/bigquery/docs/">Google BigQuery documentation</a>. There&rsquo;s a lot of documentation for using BigQuery as a developer, but it was confusing where to find the information I needed to set it up in my development environment. I tried creating a new project in the Google Cloud Platform, but I was confused because it prompted me to upload my own data instead of accessing data already in BigQuery.</p>
<p>Too late, I realized I spent too much time on my own and not asking for help. I <a href="https://github.com/metabrainz/listenbrainz-server/pull/318">submitted a pull request</a> with the statistic I made and <a href="https://community.metabrainz.org/t/how-to-set-up-google-bigquery-in-a-listenbrainz-development-environment/347307">asked for help</a> in the MetaBrainz community. I also offered to write documentation for setting this up once I learn how to do it.</p>

<h2 id="reflecting-back">Reflecting back&nbsp;<a class="hanchor" href="#reflecting-back" aria-label="Anchor link for: Reflecting back">🔗</a></h2>
<p>I looked back on my <a href="/blog/2017/10/contributing-listenbrainz/">original objectives</a> for the independent study, and I was satisfied and dissatisfied.</p>

<h4 id="not-enough-programming">Not enough programming&nbsp;<a class="hanchor" href="#not-enough-programming" aria-label="Anchor link for: Not enough programming">🔗</a></h4>
<p>I wanted this independent study to enhance my programming knowledge. I especially wanted to focus on Python because I wanted to become more familiar with the language. However, I actually didn&rsquo;t do much programming during the independent study, to my own fault.</p>
<p>My biggest challenge was I bit off more than I could chew. I wanted to write code, and made a big goal before I knew the code base of the project. Even now, I still am not completely comfortable with the code yet. It&rsquo;s a big project with a lot of things going on. I was able to understand the things I did work on, but there&rsquo;s still a lot.</p>
<p>I realized that next time, I need to spend more time evaluating the code base of a project before writing out my milestones. I wish I set more realistic, smaller milestones for myself. My milestone of implementing basic reports was lofty given my existing programming knowledge.</p>

<h4 id="successes">Successes&nbsp;<a class="hanchor" href="#successes" aria-label="Anchor link for: Successes">🔗</a></h4>
<p>One of my other objectives was to write documentation for the project. I felt I succeeded in this milestone, and actually found it enjoyable and interesting to do! I helped separate out documentation from the README into the dedicated <a href="https://listenbrainz.readthedocs.io/en/latest/">ReadTheDocs site</a>. I wrote the <a href="https://listenbrainz.readthedocs.io/en/latest/dev/devel-env.html">development environment guide</a> and helped fix some build issues with the docs site. I also plan to write more for some of the other pain points I found, like Google BigQuery.</p>
<p>My last milestone was to create a use case for a data visualization course at RIT. While I didn&rsquo;t implement my basic reports, I did create the proposal and make an effort to write new statistics. There&rsquo;s a lot of potential now to work with the data in Google BigQuery and do front-end work with tools like <a href="https://d3js.org/">D3.js</a> and <a href="https://plot.ly/javascript/">Plotly.js</a>. I believe there&rsquo;s significant potential to use ListenBrainz as a hands-on project for students to explore data visualization with real data. I hope to support my independent study professor, Prof. Roberts, with questions and logistics of using it as a tool for learning in the future.</p>

<h4 id="unexpected-success">Unexpected success&nbsp;<a class="hanchor" href="#unexpected-success" aria-label="Anchor link for: Unexpected success">🔗</a></h4>
<p>I also think I had an unplanned success too. I immersed myself in the community for ListenBrainz too. Over the last few months, I realized that many of my strengths are in community management and tooling. During my time in the community, I did the following:</p>
<ul>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/290">Fixed SELinux labels in Docker</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/288">Contributed a pull request template</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/287">Drafted contributing guidelines</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pull/294">Fixed a PostgreSQL bug</a></li>
<li><a href="https://github.com/metabrainz/listenbrainz-server/pulls?utf8=%E2%9C%93&amp;q=is%3Apr&#43;author%3Ajflory7&#43;">And more…</a></li>
</ul>

<h2 id="to-the-future">To the future!&nbsp;<a class="hanchor" href="#to-the-future" aria-label="Anchor link for: To the future!">🔗</a></h2>
<p>This ends my independent study with ListenBrainz, but it doesn&rsquo;t end my time contributing! I chose ListenBrainz because it&rsquo;s a project I&rsquo;m passionate about. An independent study allowed me to justify more time on it than a side project in my free time. I&rsquo;m happy to have that opportunity, but I don&rsquo;t want to end here!</p>
<p>I want to follow through on the statistics because I&rsquo;m passionate about understanding music listening trends. I think there&rsquo;s a lot of power for psychological research through music data. To this point, I filed a ticket to request <a href="https://tickets.metabrainz.org/browse/LB-243">tagging listens with &ldquo;emotion&rdquo; words</a> that are synced back to <a href="https://musicbrainz.org/doc/MusicBrainz_Database">MusicBrainz entities</a>.</p>
<p>I won&rsquo;t have as much time to work on the project without the course credit, but I hope to stay involved for the future. I love the project and I love the community. I&rsquo;m thankful for the opportunity to work on this project as an independent study, and learn some things along the way.</p>]]></description></item><item><title>ListenBrainz community gardening and user statistics</title><link>https://jwheel.org/blog/2017/11/listenbrainz-community-user-statistics/</link><pubDate>Mon, 13 Nov 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/11/listenbrainz-community-user-statistics/</guid><description><![CDATA[<p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>My progress with ListenBrainz slowed, but I am resuming the pace of contributing and advancing on my independent study timeline. This past week, I finished out assigned tasks to discuss contributor-related documentation, like a Code of Conduct, contributor guidelines, and a pull request template. I began research on user statistics and found some already created. I wrote one of my own, but need to learn more about Google BigQuery to advance further.</p>

<h2 id="paving-the-contributor-pathway">Paving the contributor pathway&nbsp;<a class="hanchor" href="#paving-the-contributor-pathway" aria-label="Anchor link for: Paving the contributor pathway">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/11/Screenshot-from-2017-11-13-02-05-12.png" alt="Making it easier for people to contribute user statistics to ListenBrainz" loading="lazy">
  <figcaption>Making it easier for people to contribute to ListenBrainz with helpful contibuting guidelines</figcaption>
</figure>
</p>
<p>Earlier, I identified weaknesses for the ListenBrainz contributor pathway and found ways we could improve the pathway. This started with the development environment documentation. Now, I helped draft first revisions of our <a href="https://github.com/metabrainz/listenbrainz-server/pull/287">contributor guidelines</a>, <a href="https://github.com/metabrainz/listenbrainz-server/pull/286">Code of Conduct reference</a>, and <a href="https://github.com/metabrainz/listenbrainz-server/pull/288">pull request templates</a>. Together, these three documents have two goals.</p>
<ol>
<li><strong>Make it easier</strong> to contribute to ListenBrainz</li>
<li>Have a better experience and <strong>have fun</strong> contributing!</li>
</ol>
<p>Adding these documents addresses these goals. Additionally, the <a href="https://github.com/metabrainz/listenbrainz-server/community">GitHub community profile</a> also highlights these deliverables as ways to meet these goals. After getting feedback and seeing what others think, we make more revisions later (with some trial runs).</p>

<h2 id="back-to-selinux-context-flags">Back to SELinux context flags&nbsp;<a class="hanchor" href="#back-to-selinux-context-flags" aria-label="Anchor link for: Back to SELinux context flags">🔗</a></h2>
<p>Recently, I set my desktop back up and installed Docker for the first time on this machine; however, the development environment still failed to start. When I ran the script, it would eventually error out because of a permission denial. The web server image for ListenBrainz was failing.</p>
<p>After debugging, I noticed that I missed the SELinux volume tags for the ListenBrainz web server images in my original pull request, <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">#257</a>. When I created the pull request, I might have had cached data that let my laptop run the development environment without a problem. In either case, it was an easy fix and I knew what the issue was when it happened. Therefore, I submitted a new fix in <a href="https://github.com/metabrainz/listenbrainz-server/pull/290">#290</a>.</p>

<h2 id="writing-new-user-statistics">Writing new user statistics&nbsp;<a class="hanchor" href="#writing-new-user-statistics" aria-label="Anchor link for: Writing new user statistics">🔗</a></h2>
<p>The most interesting part of my independent study is working with the music data to build and generate interesting statistics. I finally began exploring the <a href="https://github.com/metabrainz/listenbrainz-server/tree/master/listenbrainz/stats">existing statistics</a> in ListenBrainz. The statistic queries use BigQuery standard SQL. BigQuery helps rapidly scan and scale data queries to help with performance (I have a lot to learn about BigQuery).</p>

<h4 id="two-types-of-statistics">Two types of statistics&nbsp;<a class="hanchor" href="#two-types-of-statistics" aria-label="Anchor link for: Two types of statistics">🔗</a></h4>
<p>Additionally, ListenBrainz generates <strong>two types</strong> of statistics:</p>
<ol>
<li>Site-wide statistics</li>
<li>User statistics</li>
</ol>
<p>Site-wide statistics are metrics non-specific to a single user. There is only <a href="https://github.com/metabrainz/listenbrainz-server/blob/master/listenbrainz/stats/sitewide.py">one site-wide query</a> now. It counts how many artists were ever submitted to this ListenBrainz instance and returns an integer. There&rsquo;s room for expansion in site-wide statistics.</p>
<p>On the other hand, user statistics are metrics specific to a single user. There&rsquo;s a <a href="https://github.com/metabrainz/listenbrainz-server/blob/master/listenbrainz/stats/user.py">fair number already</a>, like the top artists and songs in a time period and the number of artists you&rsquo;ve listened to. These are a little more complete and offer more expansion for doing cool front-end work with something like <a href="https://d3js.org/">D3.js</a>.</p>

<h4 id="writing-user-statistics">Writing user statistics&nbsp;<a class="hanchor" href="#writing-user-statistics" aria-label="Anchor link for: Writing user statistics">🔗</a></h4>
<p>Of course, I had to try writing my own. One helpful query I thought of was getting a count of the songs you listened to over a time period (e.g. &ldquo;you listened to 500 songs this week!&rdquo;). I haven&rsquo;t tested it yet, but I have this in a local branch and hope to test it with real data soon.</p>
<pre tabindex="0"><code>def get_play_count(musicbrainz_id, time_interval=None): 
 
 filter_clause = &#34;&#34; 
 if time_interval: 
     filter_clause = &#34;AND listened_at &gt;=
     TIMESTAMP_SUB(CURRENT_TIME(), 
     INTERVAL {})&#34;.format(time_interval) 
 
 query = &#34;&#34;&#34;SELECT COUNT(release_msid) as listen_count 
            FROM {dataset_id}.{table_id} 
            WHERE user_name = @musicbrainz_id 
            {time_filter_clause} 
            LIMIT {limit} 
         &#34;&#34;&#34;.format( 
                 dataset_id=config.BIGQUERY_DATASET_ID, 
                 table_id=config.BIGQUERY_TABLE_ID, 
                 time_filter_clause=filter_clause, 
                 limit=config.STATS_ENTITY_LIMIT, 
            ) 
 
 parameters = [ 
     { 
         &#39;type&#39;: &#39;STRING&#39;, 
         &#39;name&#39;: &#39;musicbrainz_id&#39;, 
         &#39;value&#39;: musicbrainz_id 
     } 
 ] 
 
 return stats.run_query(query, parameters)
</code></pre>
<h2 id="researching-google-bigquery">Researching Google BigQuery&nbsp;<a class="hanchor" href="#researching-google-bigquery" aria-label="Anchor link for: Researching Google BigQuery">🔗</a></h2>
<p>My next steps for the independent study are researching <a href="https://cloud.google.com/bigquery/docs/">Google BigQuery</a>. After going through the existing statistics and understanding how ListenBrainz generates them, an understanding of Google BigQuery is essential to writing effective queries. When I become more comfortable with the tooling and how it works, I want to map out a plan of statistics to generate and measure.</p>
<p>Until then, the hacking continues! As always, keep the FOSS flag high…</p>]]></description></item><item><title>How I created my first RPM package in Fedora</title><link>https://jwheel.org/blog/2017/11/first-rpm-package-fedora/</link><pubDate>Tue, 07 Nov 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/11/first-rpm-package-fedora/</guid><description><![CDATA[<p>Over the summer, I migrated my desktop environment to <a href="https://i3wm.org/">i3</a>, a tiling window manager. Switching to i3 was a challenge at first, since I had to replace many things that GNOME handled for me. One of these things was changing screen brightness. <code>xbacklight</code>, the standard way of changing backlight brightness on laptops, doesn&rsquo;t work on my hardware.</p>
<p>Recently, I discovered <a href="https://github.com/multiplexd/brightlight">brightlight</a>, a tool that changes backlight brightness. I decided to try it, and it worked with root privileges. However, I found there was no RPM package in Fedora for brightlight. I decided this was the right time to try creating a package in Fedora and learn how to create an RPM.</p>
<p>In this article, I&rsquo;ll cover and share how I…</p>
<ul>
<li>Created the RPM SPEC file</li>
<li>Built the package in Koji and Copr</li>
<li>Worked through an issue with debug package</li>
<li>Submitted the package to Fedora package collection</li>
</ul>

<h2 id="pre-requisites">Pre-requisites&nbsp;<a class="hanchor" href="#pre-requisites" aria-label="Anchor link for: Pre-requisites">🔗</a></h2>
<p>On Fedora, I installed these packages for all steps of the package building process.</p>
<pre tabindex="0"><code>sudo dnf install fedora-packager fedpkg fedrepo_req copr-cli
</code></pre>
<h2 id="creating-the-rpm-spec-file">Creating the RPM SPEC file&nbsp;<a class="hanchor" href="#creating-the-rpm-spec-file" aria-label="Anchor link for: Creating the RPM SPEC file">🔗</a></h2>
<p>The first step to create a RPM is to create the SPEC file. These are the specifications, or instructions, that tell RPM how to build the package. This is how you tell RPM to create a binary file from the package&rsquo;s source code. Creating the SPEC file is likely the hardest part of the packaging process and its difficulty depends on the project.</p>
<p>Fortunately for me, <a href="https://github.com/multiplexd/brightlight">brightlight</a> is a simple application written in C. The maintainer made it easy to create a binary application with a Makefile. Building it was a matter of simply running <code>make</code> in the repo. So now I had a simple project to learn RPM packaging.</p>

<h4 id="finding-documentation">Finding documentation&nbsp;<a class="hanchor" href="#finding-documentation" aria-label="Anchor link for: Finding documentation">🔗</a></h4>
<p>Googling &ldquo;how to create an RPM package&rdquo; yields many results. I started with <a href="https://www.ibm.com/developerworks/library/l-rpm1/index.html">IBM&rsquo;s documentation</a>. However, I found it confusing and difficult to understand (although quite detailed; it might be more useful for a complicated app). I also found the <a href="https://fedoraproject.org/wiki/How_to_create_an_RPM_package">package creation instructions</a> on the Fedora wiki. The documentation here was good at explaining the composition and process, but I was still confused on how to begin.</p>
<p>Finally, I found the <a href="https://rpm-packaging-guide.github.io/#packaging-software">RPM Packaging Guidelines</a>, written by the amazing <a href="https://github.com/maxamillion">Adam Miller</a>. These instructions were helpful and included three excellent examples for Bash, C, and Python applications. This guide helped me better understand how to compose a RPM SPEC, and more importantly, how all the pieces fit together.</p>
<p>After this, I was able to write my <a href="https://src.fedoraproject.org/rpms/brightlight/blob/master/f/brightlight.spec">first SPEC file</a> for <code>brightlight</code>. Since it is so simple, the SPEC file is short and easy to understand. Once I had my SPEC file, I linted the file for errors. After cleaning a few mistakes, I created the source RPM (SRPM) and the binary RPM, then linted each for errors.</p>
<pre tabindex="0"><code>rpmlint SPECS/brightlight.spec
rpmbuild -bs SPECS/brightlight.spec
rpmlint SRPMS/brightlight-5-1.fc26.src.rpm
rpmbuild -bb SRPMS/brightlight-5-1.fc26.src.rpm
rpmlint RPMS/x86_64/brightlight-5-1.fc26.x86_64.rpm
</code></pre><p>Now, I had a valid RPM to send to the Fedora repositories.</p>

<h2 id="building-in-copr-and-koji">Building in Copr and Koji&nbsp;<a class="hanchor" href="#building-in-copr-and-koji" aria-label="Anchor link for: Building in Copr and Koji">🔗</a></h2>
<p>Next, I read the <a href="https://fedoraproject.org/wiki/Join_the_package_collection_maintainers">guidelines</a> to becoming a Fedora packager. Before submitting anything, they encouraged packagers to test their packages by hosting the project in a <a href="https://copr.fedoraproject.org/">Copr</a> repo and building in <a href="https://koji.fedoraproject.org/koji/">Koji</a>.</p>

<h4 id="using-copr">Using Copr&nbsp;<a class="hanchor" href="#using-copr" aria-label="Anchor link for: Using Copr">🔗</a></h4>
<p>First, I created a <a href="https://copr.fedorainfracloud.org/coprs/jflory7/brightlight/">Copr repository</a> for <code>brightlight</code>. <a href="https://developer.fedoraproject.org/deployment/copr/about.html">Copr</a> is a service in Fedora&rsquo;s infrastructure that builds your package and sets up a custom repo for whatever version of Fedora or EPEL that you choose. It&rsquo;s handy to get your RPM hosted quickly and to share it with others for testing. You don&rsquo;t need special approval to host a Copr.</p>
<p>I created my Copr project from the web interface, but you can also use the <code>copr-cli</code> tool. There is an <a href="https://developer.fedoraproject.org/deployment/copr/copr-cli.html">excellent guide</a> in the Fedora Developer portal. After I created my repo on the website, I built my package with this command.</p>
<pre tabindex="0"><code>copr-cli build brightlight SRPMS/brightlight.5-1.fc26.src.rpm
</code></pre><p>My packages successfully built for Copr and I was able to install it on my Fedora system easily.</p>

<h4 id="using-koji">Using Koji&nbsp;<a class="hanchor" href="#using-koji" aria-label="Anchor link for: Using Koji">🔗</a></h4>
<p>Anyone can use <a href="https://koji.fedoraproject.org/koji/">Koji</a> to test their package on multiple architectures and versions of Fedora or CentOS / RHEL. To test on Koji, you must have a source RPM. I wanted to package <code>brightlight</code> on all supported versions of Fedora, so I ran these commands.</p>
<pre tabindex="0"><code>koji build --scratch f25 SRPMS/brightlight-5-1.fc26.src.rpm
koji build --scratch f26 SRPMS/brightlight-5-1.fc26.src.rpm
koji build --scratch f27 SRPMS/brightlight-5-1.fc26.src.rpm
</code></pre><p>It took some time, but Koji built all the packages. Everything was fine for Fedora 25 and 26, but Fedora 27 failed. Koji scratch builds keep me on the right track and make sure my packages build successfully.</p>

<h2 id="problem-fedora-27-builds-failing">Problem: Fedora 27 builds failing!&nbsp;<a class="hanchor" href="#problem-fedora-27-builds-failing" aria-label="Anchor link for: Problem: Fedora 27 builds failing!">🔗</a></h2>
<p>Now I know that my Fedora 27 package was failing to build on Koji. But why? I discovered two relevant changes for Fedora 27.</p>
<ul>
<li><a href="https://fedoraproject.org/wiki/Changes/SubpackageAndSourceDebuginfo">Subpackage and Source Debuginfo</a></li>
<li><a href="https://fedoraproject.org/wiki/Changes/RPM-4.14">RPM 4.14</a> (specifically, the debuginfo package rewrite)</li>
</ul>
<p>These changes mean that RPM packages must build with a <code>debuginfo</code> package. This is helpful for troubleshooting or debugging an application. In my case, this wasn&rsquo;t critical or too necessary, but I needed to build one.</p>
<p>Thanks to Igor Gnatenko, he helped me understand what I needed to add to my package SPEC for it to build on Fedora 27. Before the <code>%make_build</code> macro, I added these lines.</p>
<pre tabindex="0"><code>export CFLAGS=&#34;%{optflags}&#34;
export LDFLAGS=&#34;%{__global_ldflags}&#34;
</code></pre><p>I built a new SRPM and submitted it to Koji to build on Fedora 27. And success! It built successfully.</p>

<h2 id="submitting-the-package">Submitting the package&nbsp;<a class="hanchor" href="#submitting-the-package" aria-label="Anchor link for: Submitting the package">🔗</a></h2>
<p>Now that I verified my package successfully built on Fedora 25 to 27, it&rsquo;s time to begin the packaging process for Fedora. The first step to submitting a package is to create a new bug in the Red Hat Bugzilla to ask for a package review. I <a href="https://bugzilla.redhat.com/show_bug.cgi?id=1505026">created a ticket</a> for <code>brightlight</code>. Since this was my first package, I made an explicit note that this was my first package and I was seeking a sponsor. In the ticket, I linked to the SPEC and SRPM files in my git repository.</p>

<h4 id="getting-into-dist-git">Getting into dist-git&nbsp;<a class="hanchor" href="#getting-into-dist-git" aria-label="Anchor link for: Getting into dist-git">🔗</a></h4>
<p><em>Edit, 2022 Feb. 14th</em>: It was pointed out <a href="https://twitter.com/Det_Conan_Kudo/status/1491931714179973127">on Twitter</a> that the <code>fedrepo-req</code> tool is no longer used. See the documentation linked throughout this blog post for more guidance on best practices for today.</p>
<p><a href="https://fedoraproject.org/wiki/User:Ignatenkobrain">Igor Gnatenko</a> sponsored me into the Fedora Packagers group and left feedback on my package. I learned of some other things specific for packaging C applications. After he sponsored me, I was able to ask for a repo in <a href="https://src.fedoraproject.org/">dist-git</a>, Fedora&rsquo;s collection of RPM package repositories that host SPEC files for all of Fedora.</p>
<p>A handy Python tool helps make this part easy. <a href="https://pagure.io/fedrepo_req"><code>fedrepo-req</code></a> is a tool that creates a request for a new dist-git repository. I submitted my request with this command.</p>
<pre tabindex="0"><code>fedrepo-req brightlight \
    --ticket 1505026 \
    --description &#34;CLI tool to change screen back light brightness&#34; \
    --upstreamurl https://github.com/multiplexd/brightlight
</code></pre><p>This created a <a href="https://pagure.io/releng/fedora-scm-requests/issue/2489">new ticket</a> for me in the <a href="https://pagure.io/releng/fedora-scm-requests">fedora-scm-requests</a> repo. The next day, an admin <a href="https://src.fedoraproject.org/rpms/brightlight">created the repository</a> for me. Now, I was in business!</p>
<p>
<figure>
  <img src="/blog/2017/11/Screenshot-from-2017-11-05-19-58-47.png" alt="My first RPM in Fedora dist-git – woohoo!" loading="lazy">
  <figcaption>My first RPM (<a href="https://src.fedoraproject.org/rpms/brightlight" class="bare">https://src.fedoraproject.org/rpms/brightlight</a>) in Fedora dist-git – woohoo!</figcaption>
</figure>
</p>

<h4 id="working-with-dist-git">Working with dist-git&nbsp;<a class="hanchor" href="#working-with-dist-git" aria-label="Anchor link for: Working with dist-git">🔗</a></h4>
<p>Next, <code>fedpkg</code> is the tool used for interacting with dist-git repositories. I changed directories into my git working directory and ran this command.</p>
<p><code>fedpkg clone brightlight</code></p>
<p><code>fedpkg</code> then clones my package&rsquo;s repo from dist-git. For the <strong>first branch only</strong>, you need to import the SRPM.</p>
<pre tabindex="0"><code>fedpkg import SRPMS/brightlight-5-1.fc26.src.rpm
</code></pre><p><code>fedpkg</code> imports your package&rsquo;s SRPM into the repo and sets up the sources for you. It&rsquo;s important to use <code>fedpkg</code> for this because it helps provision the repo in a Fedora-friendly way (as compared to adding the files manually yourself). Once you import the SRPM, push the changes to the dist-git repo.</p>
<pre tabindex="0"><code>git commit -m &#34;Initial import (#1505026).&#34;
git push
</code></pre>
<h4 id="building-the-package">Building the package&nbsp;<a class="hanchor" href="#building-the-package" aria-label="Anchor link for: Building the package">🔗</a></h4>
<p>Once you push the first import to your dist-git repo, you&rsquo;re ready to do a <em>real</em> Koji build of your project. To build your project, run this command.</p>
<pre tabindex="0"><code>fedpkg build
</code></pre><p>This builds your package in Koji for Rawhide, the unversioned branch of Fedora. You must build successfully for Rawhide before you can build for other branches. IF everything builds successfully, you can now ask for other branches for your project.</p>
<pre tabindex="0"><code>fedrepo-req brightlight f27 -t 1505026
fedrepo-req brightlight f26 -t 1505026
fedrepo-req brightlight f25 -t 1505026
</code></pre>
<h4 id="note-about-building-other-branches">Note about building other branches&nbsp;<a class="hanchor" href="#note-about-building-other-branches" aria-label="Anchor link for: Note about building other branches">🔗</a></h4>
<p>Once you import the SRPM initially, remember to merge your master branch to other branches, if you choose to create them. For example, if you later request a branch for Fedora 27, you would want to use these commands.</p>
<pre tabindex="0"><code>fedpkg switch-branch f27
git merge master
git push
fedpkg build
</code></pre>
<h4 id="submitting-update-to-bodhi">Submitting update to Bodhi&nbsp;<a class="hanchor" href="#submitting-update-to-bodhi" aria-label="Anchor link for: Submitting update to Bodhi">🔗</a></h4>
<p>The last step of the process is to submit your new package as an update to Bodhi. When you first submit your package as an update, it goes to the testing repositories. Anyone can test your package and add karma to the update. If your update receives +3 votes (or as Bodhi calls it, karma), your package automatically pushes to the stable repositories. Otherwise, it pushes after a week in the testing repositories.</p>
<p>To submit your update to Bodhi, you only need one command.</p>
<pre tabindex="0"><code>fedpkg update
</code></pre><p>This opens a Vim window with different configuration options for your package. Usually, you only need to specify the type (e.g. <code>newpackage</code>) and the ticket ID number for your package review. For a more in-depth explanation, there is an <a href="https://fedoraproject.org/wiki/Package_update_HOWTO">update guide</a> on the Fedora wiki.</p>
<p>After saving and exiting the file, <code>fedpkg</code> submits your package as an update to Bodhi and eventually synchronizes to the Fedora testing repositories. I was able to install my package with this command.</p>
<pre tabindex="0"><code>sudo dnf install brightlight -y --enablerepo=updates-testing --refresh
</code></pre>
<h2 id="were-stable">We&rsquo;re stable!&nbsp;<a class="hanchor" href="#were-stable" aria-label="Anchor link for: We&rsquo;re stable!">🔗</a></h2>
<p>My package was recently submitted to <a href="https://bodhi.fedoraproject.org/updates/brightlight-5-1.fc26">Fedora 26 stable repositories</a> and will soon enter <a href="https://bodhi.fedoraproject.org/updates/FEDORA-2017-8071ee299f">Fedora 25</a> and <a href="https://bodhi.fedoraproject.org/updates/FEDORA-2017-f3f085b86e">Fedora 27</a> stable repositories. Thanks for everyone who helped me with my first package. I look forward to more opportunities to add more packages to the distribution.</p>]]></description></item><item><title>Exploring Google Code-In, ListenBrainz easyfix bugs, D3.js</title><link>https://jwheel.org/blog/2017/10/google-code-in-listenbrainz-d3-js/</link><pubDate>Sat, 21 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/google-code-in-listenbrainz-d3-js/</guid><description><![CDATA[<p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>Last week moved quickly for me in ListenBrainz. I submitted multiple pull requests and participated in the weekly developer&rsquo;s meeting on Monday. I was also invited to take part as a mentor for ListenBrainz for the upcoming round of Google Code-In! In addition to my changes and new role as a mentor, I&rsquo;m researching libraries like D3.js to help build visualizations for music data.  Suddenly, everything started moving fast!</p>

<h2 id="last-week-recap">Last week: Recap&nbsp;<a class="hanchor" href="#last-week-recap" aria-label="Anchor link for: Last week: Recap">🔗</a></h2>
<p>The ListenBrainz team accepted my <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">development environment improvements</a> and <a href="https://github.com/metabrainz/listenbrainz-server/pull/259">documentation</a>. This gave me an opportunity to better explore project documentation tools. I experimented with <a href="http://www.sphinx-doc.org/en/stable/">Sphinx</a> and <a href="https://readthedocs.org/">Read the Docs</a>. Sphinx introduced me to <a href="http://docutils.sourceforge.net/rst.html">reStructuredText</a> for documentation formats. I&rsquo;ve avoided it in favor of Markdown for a long time, but I see where reStructuredText is stronger for advanced documentation.</p>
<p>Since ListenBrainz is a new project, I plan to contribute documentation for any of my work and improve documentation for pre-existing work. One of the goals for this independent study is to make ListenBrainz a viable candidate for a future data analysis course. To make it easy to use and understand, ListenBrainz needs excellent documentation. Since one of my strengths is technical writing, I plan to contribute more documentation this semester.</p>
<p>You can see some of the <a href="https://listenbrainz.readthedocs.io/en/master/">new documentation</a> already!</p>

<h2 id="google-code-in-mentor">Google Code-In mentor&nbsp;<a class="hanchor" href="#google-code-in-mentor" aria-label="Anchor link for: Google Code-In mentor">🔗</a></h2>
<p>The MetaBrainz community manager, <a href="https://musicbrainz.org/user/Freso">Freso Olesen</a>, approached me to mentor for Google Code-In. <a href="https://codein.withgoogle.com/">Google Code-In</a> is an opportunity for teenagers to meaningfully contribute to open source projects. Google describes Google Code-In as…</p>
<blockquote>
<p>Pre-university students ages 13 to 17 are invited to take part in Google Code-in: Our global, online contest introducing teenagers to the world of open source development. With a wide variety of bite-sized tasks, it’s easy for beginners to jump in and get started no matter what skills they have.</p>
<p>Mentors from our participating organizations lend a helping hand as participants learn what it’s like to work on an open source project. Participants get to work on real software and win prizes from t-shirts to a trip to Google HQ!</p>
</blockquote>
<p>MetaBrainz is a participating organization of Google Code-In this cycle. Because of my work with ListenBrainz, I will contribute a few hours a week to help mentor participating students with ListenBrainz. Beginner problems should be easy to help with since I&rsquo;m still beginning too, and as I spend more time with ListenBrainz, I can help with harder problems.</p>
<p>I&rsquo;m excited to give back to one of my favorite open source projects in this way! I&rsquo;m grateful to have this chance to help out during Google Code-In.</p>

<h2 id="choosing-easyfix-bugs">Choosing easyfix bugs&nbsp;<a class="hanchor" href="#choosing-easyfix-bugs" aria-label="Anchor link for: Choosing easyfix bugs">🔗</a></h2>
<p>After I figured out the development environment issues, I went through <a href="https://tickets.metabrainz.org/projects/LB/issues/">open tickets</a> filed against ListenBrainz to find some to work on. I made a preliminary pass through all open tickets and left some comments for more information, when needed. The tickets I highlighted to look into next were</p>
<ul>
<li><a href="https://tickets.metabrainz.org/browse/LB-85"><strong>LB-85</strong></a>: Username in the profile URL should be case insensitive</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-124"><strong>LB-124</strong></a>: Install messybrainz as a a python library from requirements</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-176"><strong>LB-176</strong></a>: Add stats module and begin calculating some user stats from BigQuery</li>
<li><strong><a href="https://tickets.metabrainz.org/browse/LB-206">LB-206</a></strong>: &ldquo;playing_now&rdquo; submissions not showing on profile</li>
<li><a href="https://tickets.metabrainz.org/browse/LB-212"><strong>LB-212</strong></a>: Show the MetaBrainz logo on the listenbrainz footer.</li>
</ul>
<p>Of these five, LB-124 and LB-212 are already closed. While drafting this article, I completed LB-124 in <a href="https://github.com/metabrainz/listenbrainz-server/pull/266">PR #266</a>. This was part of a test to get the documentation building again because of odd import errors. Later, a new student also learning the project for the first time asked to work on LB-212. Since it was a good first task to explore the project code, I passed the ticket to him.</p>
<p>I want to do one more &ldquo;easyfix&rdquo; bug before going into the main part of my independent study timeline. I don&rsquo;t yet feel comfortable with the code and one more bug solved will help. After this, I plan to pursue the heavier lifting of the independent study to explore data operations and queries to make.</p>

<h2 id="researching-d3js">Researching D3.js&nbsp;<a class="hanchor" href="#researching-d3js" aria-label="Anchor link for: Researching D3.js">🔗</a></h2>
<p>Prof. Roberts introduced <a href="https://d3js.org/">D3.js</a> as a library to build interactive, dynamic charts and visual representations of data. I haven&rsquo;t yet looked into much front-end work, but this was a cool project that I wanted to highlight in my weekly report. This feels like it could be a powerful match for ListenBrainz, especially since the data has high detail.</p>

<h2 id="upcoming-activity">Upcoming activity&nbsp;<a class="hanchor" href="#upcoming-activity" aria-label="Anchor link for: Upcoming activity">🔗</a></h2>
<p>This next week, I won&rsquo;t have as much time to contribute to ListenBrainz. On October 21, I&rsquo;m traveling to Raleigh, NC for <a href="https://allthingsopen.org/">All Things Open</a>. On October 24, I <a href="https://allthingsopen.org/speakers/justin-w-flory/">present my talk</a>, &ldquo;<em>What open source and J.K. Rowling have in common</em>&rdquo;. Since I&rsquo;ll be out of Rochester and missing other classwork, I expect less time on my ListenBrainz work.</p>
<p>This next week will be slower than the last two weeks. Hopefully I&rsquo;ll learn something at the conference too to bring back for ListenBrainz.</p>
<p>Until then… keep the FOSS flag high.</p>]]></description></item><item><title>How to set up a ListenBrainz development environment</title><link>https://jwheel.org/blog/2017/10/listenbrainz-development-environment/</link><pubDate>Wed, 04 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/listenbrainz-development-environment/</guid><description><![CDATA[<p><em>This post is part of a series of posts where I contribute to the ListenBrainz project for my independent study at the Rochester Institute of Technology in the fall 2017 semester. For more posts, find them in <a href="/tags/rit-2171/">this tag</a>.</em></p>
<hr>
<p>One of the first rites of passage when working on a new project is creating your development environment. It always seems simple, but sometimes there are bumps along the way. The first activity I did to begin contributing to ListenBrainz was create my development environment. I wasn&rsquo;t successful with the documentation in the README, so I had to play around and work with the project before I was even running it.</p>
<p>The first part of this post details how to set up your own development environment. Then, the second half talks about the solution I came up with and my first contribution back to the project.</p>

<h2 id="install-dependencies-docker">Install dependencies: Docker&nbsp;<a class="hanchor" href="#install-dependencies-docker" aria-label="Anchor link for: Install dependencies: Docker">🔗</a></h2>
<p>This tutorial assumes you are using a Linux distribution. If you&rsquo;re using a different operating system, install the necessary dependencies or packages with your preferred method.</p>
<p>ListenBrainz ships in Docker containers, which helps create your development environment and later deploy the application. Therefore, to work on the project, you need to install Docker and use containers for building the project. Containers save you from installing all of this on your own workstation! Since I&rsquo;m using Fedora, I run this command.</p>
<pre tabindex="0"><code>sudo dnf install docker docker-compose
</code></pre>
<h2 id="register-a-musicbrainz-application">Register a MusicBrainz application&nbsp;<a class="hanchor" href="#register-a-musicbrainz-application" aria-label="Anchor link for: Register a MusicBrainz application">🔗</a></h2>
<p>Next, you need to register your application and get a OAuth token from MusicBrainz. Using the OAuth token lets you sign into your development environment with your MusicBrainz account. Then, you can import your plays from somewhere else.</p>
<p>To register, visit the <a href="https://musicbrainz.org/account/applications">MusicBrainz applications page</a>. There, look for the option to <a href="https://musicbrainz.org/account/applications/register">register your application</a>. Fill out the form with these three options.</p>
<ul>
<li><strong>Name</strong>: (any name you want and will recognize, I used <code>listenbrainz-server-devel</code>)</li>
<li><strong>Type</strong>: <code>Web Application</code></li>
<li><strong>Callback URL</strong>: <code>http://localhost/login/musicbrainz/post</code></li>
</ul>
<p>After entering this information, you&rsquo;ll have a OAuth client ID and OAuth client secret. You&rsquo;ll use these for configuring ListenBrainz.</p>

<h4 id="update-configpy">Update config.py&nbsp;<a class="hanchor" href="#update-configpy" aria-label="Anchor link for: Update config.py">🔗</a></h4>
<p>With your new client ID and secret, update the ListenBrainz configuration file. If this is your first time configuring ListenBrainz, copy the sample to a live configuration.</p>
<pre tabindex="0"><code>cp listenbrainz/config.py.sample listenbrainz/config.py
</code></pre><p>Next, open the file with your favorite text editor and look for this section.</p>
<pre tabindex="0"><code># MusicBrainz OAuth
MUSICBRAINZ_CLIENT_ID = &#34;CLIENT_ID&#34;
MUSICBRAINZ_CLIENT_SECRET = &#34;CLIENT_SECRET&#34;
</code></pre><p>Update the strings with your client ID and secret. After doing this, your ListenBrainz development environment is able to authenticate and log in from your MusicBrainz login.</p>

<h2 id="initialize-listenbrainz-databases">Initialize ListenBrainz databases&nbsp;<a class="hanchor" href="#initialize-listenbrainz-databases" aria-label="Anchor link for: Initialize ListenBrainz databases">🔗</a></h2>
<p>Your development environment needs some databases present to work. Before proceeding, run these three commands to initialize the databases.</p>
<pre tabindex="0"><code>docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_db --create-db
docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_msb_db --create-db
docker-compose -f docker/docker-compose.yml -p listenbrainz run --rm web python3 manage.py init_influx
</code></pre><p>Your development environment is now ready. Now, let&rsquo;s actually see ListenBrainz load locally!</p>

<h2 id="run-the-magic-script">Run the magic script&nbsp;<a class="hanchor" href="#run-the-magic-script" aria-label="Anchor link for: Run the magic script">🔗</a></h2>
<p>Once you have done this, run the <code>develop.sh</code> script in the root of the repository. Using <code>docker-compose</code>, the script creates multiple Docker containers for the different services and parts of the ListenBrainz server. Running this script will start Redis, PostgreSQL, InfluxDB, and web server containers, to name a few. But this also makes it easy to stop them all later.</p>
<pre tabindex="0"><code>./develop.sh
</code></pre><p>You will see the containers build and eventually run. Leave the script running to see your development environment. Later, you can shut it down by pressing <code>CTRL^C</code>. Once everything is running, visit your new site from your browser!</p>
<p><a href="http://localhost/">http://localhost/</a></p>
<p>Now, you are all set to begin making changes and testing them in your development environment!</p>

<h2 id="making-my-first-pull-request">Making my first pull request&nbsp;<a class="hanchor" href="#making-my-first-pull-request" aria-label="Anchor link for: Making my first pull request">🔗</a></h2>
<p>As mentioned earlier, my first attempt at a development environment was unsuccessful. My system kept denying permission to the processes in the containers. After looking at system audit logs and running a temporary <code>setenforce 0</code>, I tried the script one more time. Everything suddenly worked! So the issue was mostly with SELinux.</p>
<p>With my goal to get my environment set up, I figured out a few issues with the configuration offered by the project developers. I eventually made <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">PR #257</a> against <code>listenbrainz-server</code> with my improvements.</p>

<h4 id="labeling-selinux-volume-mounts">Labeling SELinux volume mounts&nbsp;<a class="hanchor" href="#labeling-selinux-volume-mounts" aria-label="Anchor link for: Labeling SELinux volume mounts">🔗</a></h4>
<p>To diagnose the issue, I started with a quick search and found a <a href="https://stackoverflow.com/questions/24288616/permission-denied-on-accessing-host-directory-in-docker">StackOverflow question</a> with my same problem. There, the question was about Docker containers and denied permissions in the container. The answers explained it was an SELinux error and the context for the containers was not set. However, temporarily changing context for a directory didn&rsquo;t seem too effective and doesn&rsquo;t persist across reboots.</p>
<p>Continuing the search, I found an issue filed against <code>docker-compose</code> about the <code>:z</code> and <code>:Z</code> flags for volume mounts. These flags set SELinux context for containers, with the best explanation I found coming from <a href="https://stackoverflow.com/a/35222815/2497452">this StackOverflow answer</a>.</p>
<blockquote>
<p>Two suffixes :z or :Z can be added to the volume mount. These suffixes tell Docker to relabel file objects on the shared volumes. The &lsquo;z&rsquo; option tells Docker that the volume content will be shared between containers. Docker will label the content with a shared content label. Shared volumes labels allow all containers to read/write content. The &lsquo;Z&rsquo; option tells Docker to label the content with a private unshared label.</p>
</blockquote>
<p>Therefore, I added the <code>:z</code> flag to all the volume mounts in the <code>docker-compose.yml</code> file. I submitted a fix upstream for this in <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">listenbrainz-server#257</a>!</p>

<h4 id="correct-the-startup-port">Correct the startup port&nbsp;<a class="hanchor" href="#correct-the-startup-port" aria-label="Anchor link for: Correct the startup port">🔗</a></h4>
<p>In the README, it says the server will start on port 8000, but the <code>docker-compose.yml</code> file actually started the server on port 80. I included a fix for this in <a href="https://github.com/metabrainz/listenbrainz-server/pull/257">my pull request</a> as well.</p>

<h2 id="git-push">git push!&nbsp;<a class="hanchor" href="#git-push" aria-label="Anchor link for: git push!">🔗</a></h2>
<p>This post makes a debugging experience that actually took hours look like it happened in minutes. But after getting over this hurdle, it was awesome to finally see ListenBrainz running locally on my workstation. It was an even better feeling when I could take my improvements and send them back in a pull request to ListenBrainz. Hopefully this will make it easier for others to create their own development environments and start hacking!</p>]]></description></item><item><title>On the data refrain: Contributing to ListenBrainz</title><link>https://jwheel.org/blog/2017/10/contributing-listenbrainz/</link><pubDate>Mon, 02 Oct 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/10/contributing-listenbrainz/</guid><description><![CDATA[<p>A unique opportunity of attending an open source-friendly university is when course credits and working on open source projects collide. This semester, I&rsquo;m participating in an independent study at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a> where I will contribute to the <a href="https://listenbrainz.org/">ListenBrainz</a> project.</p>
<p>Many students take part in independent studies where they work on their own projects. However, in the spirit of open source collaboration, I wanted to contribute to a project that already existed. That way, my work would be helpful to a real-world project where it would have a value even after the end of the semester. Additionally, I wanted  a project to help me sharpen my Python skill. And ListenBrainz was a fun, exciting candidate for this.</p>

<h2 id="objectives">Objectives&nbsp;<a class="hanchor" href="#objectives" aria-label="Anchor link for: Objectives">🔗</a></h2>
<p>The independent study proposal included three primary goals I hoped to meet during this independent study:</p>
<ol>
<li><strong>Add basic reports</strong> to ListenBrainz from listening history data for top songs / artists / albums of week, month, year, etc.</li>
<li><strong>Create documentation</strong> to improve ease to use and develop for the ListenBrainz project</li>
<li>Offer as a <strong>use case for the data visualization course</strong> in fall 2018 with instructions on how to use the data</li>
</ol>

<h4 id="add-basic-reports">Add basic reports&nbsp;<a class="hanchor" href="#add-basic-reports" aria-label="Anchor link for: Add basic reports">🔗</a></h4>
<p>Methods for generating basic reports, charts, and statistics about listening history are important. They help make ListenBrainz a more interesting platform for a casual music listener, not just a developer. Therefore, my goal was to add a way to add basic reports or specific metrics for presenting to the user in the front-end.</p>
<p>As a stretch goal, if I have extra time, I would work on generating content (e.g. charts / graphs / statistics) to show the user in the front-end.</p>

<h4 id="documentation">Documentation&nbsp;<a class="hanchor" href="#documentation" aria-label="Anchor link for: Documentation">🔗</a></h4>
<p>Documentation is something near and dear to me. I enjoy making it easier for other people to use a project or get started with contributing. Therefore, I will contribute some time as a technical writer and help improve documentation on the project. This includes improving existing documentation, like how to set up a development environment, or creating new content.</p>
<p>As an end deliverable, it would be nice to have someone who has never worked with the project run get a development environment set up, import some data, and see something presented to them. Good documentation is key to making something like this possible.</p>

<h4 id="use-case-for-data-course">Use case for data course&nbsp;<a class="hanchor" href="#use-case-for-data-course" aria-label="Anchor link for: Use case for data course">🔗</a></h4>
<p>RIT will offer a data visualization course in future semesters and it would be helpful if ListenBrainz could be a use case or even tool for the course. Then, students could work with ListenBrainz for creating different visualizations for the music data. And maybe contribute some of their visualizations back upstream! For this to happen, we need comprehensive documentation and complete features.</p>
<p>A focus includes making ListenBrainz a good fit for this course.</p>

<h2 id="learn-more-about-listenbrainz">Learn more about ListenBrainz&nbsp;<a class="hanchor" href="#learn-more-about-listenbrainz" aria-label="Anchor link for: Learn more about ListenBrainz">🔗</a></h2>
<p>For the next few months, until December, I will blog regularly about contributing to the ListenBrainz project and my progress. Additionally, more posts about MusicBrainz, other MetaBrainz projects, or music data may follow. I&rsquo;m hoping to either create new or improve old documentation as well, so I plan to write often anyways!</p>
<p>For now, you can learn a bit more about ListenBrainz and other projects in the MetaBrainz family, like MusicBrainz.</p>
<ul>
<li><a href="https://listenbrainz.org/">ListenBrainz</a></li>
<li><strong>GitHub</strong>: <a href="https://github.com/metabrainz/listenbrainz-server">metabrainz/listenbrainz-server</a></li>
<li><a href="https://musicbrainz.org/doc/About">About MusicBrainz</a></li>
<li><a href="https://metabrainz.org/about">About MetaBrainz</a></li>
</ul>]]></description></item><item><title>Embracing open source cloud: Local government in Tirana switches to open source cloud solution</title><link>https://jwheel.org/blog/2017/08/tirana-switches-nextcloud/</link><pubDate>Tue, 22 Aug 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/08/tirana-switches-nextcloud/</guid><description><![CDATA[<p><a href="https://opensource.com/article/17/8/tirana-government-chooses-open-source"><em>This article was originally published on Opensource.com.</em></a></p>
<hr>
<p>Open source software has come a long way since the turn of the century. Each year, more and more people are embracing open source technology and development models. Not just people, though ­– corporations and governments are exploring open source solutions too. From the <a href="https://obamawhitehouse.archives.gov/blog/2016/03/09/leveraging-american-ingenuity-through-reusable-and-open-source-software">White House</a> to the <a href="http://www.zdnet.com/article/from-microsoft-to-libreoffice-how-italys-military-is-starting-its-march-to-open-source/">Italian army</a>, open source is appearing more frequently in the public sector. But perhaps the newest addition to the list is the municipality of <a href="https://en.wikipedia.org/wiki/Tirana">Tirana, Albania</a>.</p>
<p>On June 11th, the local government in the municipality of Tirana <a href="https://joinup.ec.europa.eu/community/osor/news/municipality-tirana-goes-free-open-source-using-nextcloud">migrated their private cloud</a> to <a href="https://nextcloud.com/">Nextcloud</a>, an open source cloud and office productivity suite. The decision to move to an integrated cloud / office suite came after internal discussion about security and performance. Because Nextcloud is entirely open source, it stood out as a powerful option for the municipality to consider.</p>

<h2 id="why-switch-to-nextcloud">Why switch to Nextcloud?&nbsp;<a class="hanchor" href="#why-switch-to-nextcloud" aria-label="Anchor link for: Why switch to Nextcloud?">🔗</a></h2>
<p>The municipality was looking for ways to optimize on costs without sacrificing security. Many people deeply familiar with open source are already aware of the <a href="https://opensource.com/business/15/5/why-open-source-means-stronger-security">security benefits</a> of using open source software. Instead of relying on a private firm to assure the code is secure, open source software benefits from letting anyone (or paying someone else) to audit the code, find flaws, and submit bugs or patches to get them fixed. This was something <a href="https://twitter.com/ermir_puka">Ermir Puka</a> and other members of the IT team in Tirana considered when choosing a cloud solution for the 600 employees of the municipality.</p>
<p>&ldquo;The IT directory at the municipality of Tirana thought the movement to Nextcloud, which is an open source platform, gives us flexibility since we won&rsquo;t be dependent from providers who offer proprietary solutions. We can also develop it ourself, according to our needs, if we have the staff with the necessary qualifications to do such a thing,&rdquo; Puka said.</p>
<p>Nextcloud also stood out not only for its use as a file sharing tool, but also the other features that make it helpful as an office productivity suite. With Nextcloud, you can edit documents simultaneously with <a href="https://apps.nextcloud.com/apps/richdocuments">Collabora Online</a>, share calendars with co-workers, use an intranet messaging system, and use it <a href="https://nextcloud.com/install/">on your phone</a> too. A large selection of <a href="https://apps.nextcloud.com/">open source apps</a> are available to add to an Nextcloud installation.</p>
<p>
<figure>
  <img src="/blog/2017/07/bashkia-tirane-open-data-launch.jpg" alt="The municipality of Tirana celebrates the launch of their open data portal, opendata.tirana.al" loading="lazy">
  <figcaption>The municipality of Tirana celebrates the launch of their open data portal, opendata.tirana.al (<a href="http://opendata.tirana.al/" class="bare">http://opendata.tirana.al/</a>). Photo from Twitter (<a href="https://twitter.com/erionveliaj/status/854941775412285440" class="bare">https://twitter.com/erionveliaj/status/854941775412285440</a>), @erionveliaj (<a href="https://twitter.com/erionveliaj" class="bare">https://twitter.com/erionveliaj</a>).</figcaption>
</figure>
</p>
<p>According to <a href="https://joinup.ec.europa.eu/community/osor/news/municipality-tirana-goes-free-open-source-using-nextcloud">European Commission Joinup</a>, Tirana is one of the first municipalities in southeastern Europe implementing open source technology in the public sector. This continues the municipality&rsquo;s growing interest in open source, following the recent announcement of their <a href="https://forum.openlabs.cc/t/open-data-portal-of-the-municipality-of-tirana/273">open data portal</a> (see it at <a href="http://opendata.tirana.al/">opendata.tirana.al</a>) and decision to collaborate with the local open source community by <a href="https://twitter.com/erionveliaj/status/855004144339496960">contributing GIS data to OpenStreetMaps</a>. &ldquo;We also hope to give a good example in the region and maybe other municipalities can follow our example,&rdquo; Puka added. This further shows the municipality&rsquo;s dedication to saving money on software licenses, protecting user privacy, and innovating by using open source technology.</p>

<h2 id="about-tirana">About Tirana&nbsp;<a class="hanchor" href="#about-tirana" aria-label="Anchor link for: About Tirana">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/07/open-labs-signing-gis-data-tirana.jpg" alt="Members of Open Labs Albania collaborating with the municipality of Tirana on providing GIS data for OpenStreetMaps" loading="lazy">
  <figcaption>Members of Open Labs Albania collaborating with the municipality of Tirana on providing GIS data for OpenStreetMaps. Photo from Twitter (<a href="https://twitter.com/erionveliaj/status/854941775412285440" class="bare">https://twitter.com/erionveliaj/status/854941775412285440</a>), @erionveliaj (<a href="https://twitter.com/erionveliaj" class="bare">https://twitter.com/erionveliaj</a>).</figcaption>
</figure>
</p>
<p>Tirana is located in Albania, in southeastern Europe, on the Mediterranean Sea just above Greece. The open source community in Tirana is growing each year. This is in part to the <a href="https://www.openlabs.cc/en/">Open Labs Albania</a> community in the city. Open Labs Albania is a not-for-profit hackerspace that promotes free and open source technologies, open data, open technological standards, and online privacy. You can read more about them in their <a href="https://wiki.openlabs.cc/faqja/Manifesto/en">manifesto</a>.</p>
<p>This continues a trend of exciting news for open source in the region. Earlier this year, the <a href="https://opensource.com/article/17/3/open-labs-48-hour-hackathon-albania">first-ever overnight hackathon</a> for the UN Sustainable Development Goals happened in March, with an emphasis on sustainable projects with open source licenses. They also host <a href="https://fedoramagazine.org/students-fedora-linux-weekend-2017/">Linux Weekend</a>, an annual mini-conference to help on-board students and interested technologists to Linux and open source. However, their most well-known event is <a href="https://oscal.openlabs.cc/">Open Source Conference Albania</a> (OSCAL), an annual conference gathering open source developers and community members from across the world. Together with the municipality, Open Labs has helped provide advice and support for some of the municipality&rsquo;s research into using open source software.</p>

<h2 id="get-in-touch">Get in touch&nbsp;<a class="hanchor" href="#get-in-touch" aria-label="Anchor link for: Get in touch">🔗</a></h2>
<p>If you&rsquo;re interested in learning more or sharing your thoughts, you can view the <a href="https://joinup.ec.europa.eu/community/osor/news/municipality-tirana-goes-free-open-source-using-nextcloud">public announcement</a> on the European Commission website or visit the <a href="https://forum.openlabs.cc/t/the-municipality-of-tirana-goes-free-open-source-by-using-nextcloud/503">thread</a> on the Open Labs forums.</p>]]></description></item><item><title>Ura Design crowdfunds free design for open source projects</title><link>https://jwheel.org/blog/2017/07/ura-design-crowdfunds-design/</link><pubDate>Tue, 25 Jul 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/07/ura-design-crowdfunds-design/</guid><description><![CDATA[<p><a href="https://opensource.com/article/17/6/ura-design-open-source-projects"><em>This article was originally published on Opensource.com.</em></a></p>
<hr>
<p><a href="/blog/2017/06/ura-logo.png">
<figure>
  <img src="/blog/2017/06/ura-logo.png" alt="Ura Design logo" loading="lazy">
</figure>
</a>Open source software is nothing new in 2017. Even now, big tech giants are exploring open source. More and more companies allow employees to contribute to open source software on company hours, if it isn&rsquo;t altogether encouraged. However, design assets and work have not enjoyed the same popularity with open source licensing and use as software has. However, Albanian design agency Ura Design is helping change this.</p>
<p>The team consists of four people: <a href="https://elioqoshi.me/">Elio Qoshi</a>, <a href="https://redon.skikuli.com/about/">Redon Skikuli</a>, <a href="http://konstantinidis.cc/">Giannis Konstantinidis</a>, and <a href="https://lushka.al/">Anxhelo Lushka</a>. <a href="https://ura.design/">Ura Design</a> started from an idea. The team believed that many open source projects are full of capabilities and features, but their design can make it difficult for users to effectively use the software. This could be through user experience, branding, or accessibility. And the goal? To help bring these better design principles to open source projects at little to no cost. &ldquo;In open source, there are amazing projects that are poorly communicated with the outside world. By communication, we mean visual communications, branding, even marketing. That is nonexistent for many reasons. There is a connection between communicating your project well and also getting contributors or users on board,&rdquo; says Skikuli.</p>
<p>
<figure>
  <img src="/blog/2017/06/ura-design-team.png" alt="The Ura Design team, left to right: Elio Qoshi, Redon Skikuli, Giannis Konstantinidis, Anxhelo Lushka" loading="lazy">
  <figcaption>The Ura Design team, left to right: Elio Qoshi, Redon Skikuli, Giannis Konstantinidis, Anxhelo Lushka</figcaption>
</figure>
</p>
<p>The Ura Design team helps open source projects improve their design so they can focus on great code.</p>

<h2 id="how-it-works">How it works&nbsp;<a class="hanchor" href="#how-it-works" aria-label="Anchor link for: How it works">🔗</a></h2>
<p>Together, the four of them work with open source project owners to help them bring better design elements to their projects. The principles of <a href="https://ind.ie/ethical-design/">ethical design</a> are part of the goals and values of the project.</p>
<p>Some of their past projects include <a href="https://www.mozilla.org/en-US/">Mozilla</a>, the <a href="https://www.torproject.org/">Tor Project</a>, <a href="https://fsfe.org/">Free Software Foundation Europe</a>, <a href="http://www.glucosio.org/">Glucosio</a>, and more. The team takes contract work with companies or communities with a budget, but for projects with less financial support, they&rsquo;ll even do the work free. This is in part supported by their <a href="https://www.patreon.com/ura">Patreon page</a>, where anyone can subscribe or see updates from Ura Design.</p>
<p>Their Patreon page is part of the reason Ura Design is able to take on some projects at no cost. &ldquo;Since there are working hours involved, we are asking for people to make small contributions to help us pay living costs, so we work for small projects who apply for free or minimal design support from us. This is our way of supporting some open source initiatives that we think are worth it,&rdquo; says Skikuli. Right now, they have 22 backers to the project, which lets them cover most infrastructure costs. Some of the goals for the team now is to expand into photography to release work into the public domain.</p>
<p>
<figure>
  <img src="/blog/2017/06/ura-patreon-screenshot.png" alt="Ura Design Patreon page" loading="lazy">
  <figcaption>Ura Design Patreon: <a href="https://patreon.com/ura" class="bare">https://patreon.com/ura</a></figcaption>
</figure>
</p>

<h2 id="past-projects">Past projects&nbsp;<a class="hanchor" href="#past-projects" aria-label="Anchor link for: Past projects">🔗</a></h2>
<p>Ura Design has worked with many open source projects already. Some of their work covers projects at <a href="https://github.com/mozilla/OpenDesign/issues/98">Mozilla</a>, the <a href="https://github.com/TheTorProject/tor-media">Tor Project</a>, Glucosio, <a href="https://opensource.com/article/17/4/linux-chromebook-gallium-os">GalliumOS</a>, <a href="https://opensource.com/article/17/3/open-labs-48-hour-hackathon-albania">Open Labs Hackerspace</a>, and more. You can see the full list of <a href="https://ura.design/works/">past works</a> on their website.</p>

<h4 id="mozilla">Mozilla&nbsp;<a class="hanchor" href="#mozilla" aria-label="Anchor link for: Mozilla">🔗</a></h4>
<p><a href="/blog/2017/05/mozilla-i10n-mentor-logo.png">
<figure>
  <img src="/blog/2017/05/mozilla-i10n-mentor-logo.png" alt="Mozilla Localization team mentorship logo by Ura Design" loading="lazy">
</figure>
</a>The Mozilla localization team was looking to send a reward to their community translators around the world. Specifically, it was to celebrate the relationships formed between mentors and mentees over the years. The localization team was hoping to design t-shirts that captured these relationships and why they were important for the community.</p>
<p>For Mozilla, Qoshi had an existing relationship with Mozilla as a contributor. He was asked to help design and capture this connection inside of the localization community for Mozilla. The final design focused on two lions, one big and one small, looking at each other. &ldquo;It was nice effort for contributors who have been mentoring others to get recognized for their contributions. Good design breaks off a conversation even for a project like this,&rdquo; Qoshi said.</p>

<h4 id="the-tor-project">The Tor Project&nbsp;<a class="hanchor" href="#the-tor-project" aria-label="Anchor link for: The Tor Project">🔗</a></h4>
<p>Working with the Tor Project was a unique experience for Ura Design. The Tor Project was looking at rebranding the entire project. The end goal was to try to improve the accessibility of the project by incorporating good design elements.</p>
<p>
<figure>
  <img src="/blog/2017/05/tor-logo.png" alt="Tor Project rebranding by Ura Design" loading="lazy">
  <figcaption>Part of the new branding used by the Tor Project</figcaption>
</figure>
</p>
<p>Together with the Tor Project leadership, Ura Design helped lead the rebranding of the project. This included graphical assets, logos, and corporate identity. Today, you can see the new branding featured across Tor&rsquo;s web presence online. There are still plans to continue to roll these changes out over the coming year.</p>

<h4 id="logobridge">Logobridge&nbsp;<a class="hanchor" href="#logobridge" aria-label="Anchor link for: Logobridge">🔗</a></h4>
<p>The newest project from the team is <a href="https://ura.design/logobridge/">Logobridge</a>. From unused work or small samples, Ura Design releases several new logos into the public domain each month. People are encouraged to use them in their projects, for icons, for placeholders, or anything they want. There&rsquo;s no restrictions on how the logos can be used. Anyone can download the source SVG files to use in vector imaging software, like Adobe Illustrator or Inkscape.</p>
<p>Most of the logos designed through Logobridge are supported by monthly subscribers to Ura Design. It was from this that they decided to start Logobridge. You can see all of the logos they have <a href="https://ura.design/logobridge/">on their website</a>.</p>

<h2 id="got-projects">Got projects?&nbsp;<a class="hanchor" href="#got-projects" aria-label="Anchor link for: Got projects?">🔗</a></h2>
<p>Ura Design is still relatively new, but they hope to continue impacting open source projects through their work. To learn more about Ura Design, you can visit their <a href="https://ura.design/">website</a> or read their <a href="https://ura.design/category/blog/">blog</a>. Additionally, you can follow them on <a href="https://www.facebook.com/uracreative/">Facebook</a> or <a href="https://www.twitter.com/uracreative">Twitter</a> for other news and updates from the team. If you want to support their work, you can visit their <a href="https://www.patreon.com/ura">Patreon page</a>. And if you&rsquo;re an open source project? The Ura Design team encourages you to get in touch!</p>]]></description></item><item><title>What I discovered in Tirana, Albania</title><link>https://jwheel.org/blog/2017/05/open-labs-tirana-albania/</link><pubDate>Mon, 15 May 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/05/open-labs-tirana-albania/</guid><description><![CDATA[<p>The past few months have brought many changes for me. I traveled throughout Europe to experience some of the open source conferences and communities across the continent. Along the way, I met incredible people with powerful stories about their own communities. However, there is one community that I knew about before I came to Europe. The <a href="https://openlabs.cc/en/">Open Labs Hackerspace</a> in Tirana, Albania is a special community that I was fortunate enough to discover and meet. Together, they have helped set in motion the open source way in their own city.</p>
<p>If you&rsquo;re outside of the Mediterranean region, the Open Labs Hackerspace might be one of the hidden secrets of the region that you never knew existed. Free software and open principles build the community&rsquo;s foundation. In their hackerspace, they support various open source projects with time, energy, and activism. Members work on various open source projects, ranging from <a href="https://fedoraproject.org/wiki/Overview">Fedora</a>, <a href="https://www.mozilla.org/">Mozilla</a>, <a href="https://nextcloud.com/">Nextcloud</a>, Wikipedia, <a href="https://www.openstreetmap.org/about">OpenStreetMap</a>, and more. But the open source way goes beyond the software. The hierarchy of this Albanian non-profit organization is flat and open too. The hackerspace places a strong emphasis on empowering others to have a voice and to take part in the governance. No question is ever dumb, and anyone who wants to learn is able to find someone who will help guide them in the right direction. The combined effect of open software and open culture has helped Open Labs grow over the past five years.</p>

<h2 id="why-open-labs">Why Open Labs?&nbsp;<a class="hanchor" href="#why-open-labs" aria-label="Anchor link for: Why Open Labs?">🔗</a></h2>
<p>There are many hackerspaces in the world, but why does Open Labs mean so much to me? They love free and open source software and believe in the open source way… sure. That&rsquo;s definitely part of it. But beyond the mission, beyond the activities, Open Labs fosters an inclusive and empowering culture. This culture has the effective of motivating others to understand that their voice matters and that they can have an impact on something far bigger than themselves. The hackerspace helps give young people in Tirana a platform to stand up and share their ideas. But beyond that, it provides them with the resources and community to help turn the ideas into reality.</p>
<p>So, what is the secret? Simply… the people.</p>
<p>Everything that the community here does, they take their unique passion and energy into those tasks. They invest their own personal resources into building solutions to answer complicated problems, inside and outside of Albania. Some of their work is best demonstrated in events that happened earlier this year. In March, Open Labs helped coordinate the first-ever <a href="https://opensource.com/article/17/3/open-labs-48-hour-hackathon-albania">48 hour hackathon</a> for United Nations <a href="https://sustainabledevelopment.un.org/sdgs">Sustainable Development Goals</a>. Later in March, they organized <a href="https://fedoramagazine.org/students-fedora-linux-weekend-2017/">Linux Weekend</a>, an introductory event to help introduce Linux to students. This was done by demonstrating what can be done with Linux and open source and then connecting students to professionals from Tirana and abroad. The organic energy that came from these events is almost immeasurable. Even an event report is hard to convey how inspiring that energy was.</p>
<p>This past weekend, from May 13-14, 2017, the community organized the fourth edition of the annual <a href="https://oscal.openlabs.cc/">Open Source Conference Albania</a> (OSCAL) in Tirana. This is the largest open source event in Albania and one of the most notable in southeast Europe. No event report for this yet, but you can expect one soon.</p>
<p>
<figure>
  <img src="/blog/2017/05/Fedora-meetup-at-OSCAL-2017.jpg" alt="Fedora Project community meet-up in Tirana, Albania for Open Labs Hackerspace&rsquo;s OSCAL 2017" loading="lazy">
  <figcaption>Fedora community meet-up for OSCAL 2017</figcaption>
</figure>
</p>

<h2 id="why-part-of-my-heart-is-at-open-labs">Why part of my heart is at Open Labs&nbsp;<a class="hanchor" href="#why-part-of-my-heart-is-at-open-labs" aria-label="Anchor link for: Why part of my heart is at Open Labs">🔗</a></h2>
<p>Whenever I visit Albania and visit Open Labs, I learn something new. There&rsquo;s many different types of things I learn. Sometimes it&rsquo;s something about an open source project or community. Other times, I learn about events and opportunities happening in the local Tirana area for open source. And then other times, I gain unique insight towards some of the unique challenges and problems that citizens face here. Every time I visit, my perspective is always broadened in a way that I wouldn&rsquo;t be able to normally find. It&rsquo;s exhilarating.</p>
<p>I am privileged and honored to be an official member of this community. However, I am mostly an observer in my role. The passion and interest are at the heart of the hackerspace. The members from Tirana have invested so much of themselves into this community, its mission, and its values. From reading, visiting, and talking with the people involved with Open Labs, you see many of their hearts dedicated to what they&rsquo;re doing. And when you see someone else who invests their heart into something, it&rsquo;s challenging to not lend some of your own too.</p>
<p>And in today&rsquo;s world, where the hearts of many people close with borders and the world shifts towards coldness, the warmth that radiates from Open Labs is refreshing, inspiring, and powerful.</p>

<h2 id="discover-open-labs">Discover Open Labs&nbsp;<a class="hanchor" href="#discover-open-labs" aria-label="Anchor link for: Discover Open Labs">🔗</a></h2>
<p>You can learn more about the Open Labs Hackerspace <a href="https://openlabs.cc/en/">on their website</a>. Additionally, you can also follow them along on <a href="https://www.facebook.com/openlabsAlbania">Facebook</a> and <a href="https://twitter.com/OpenLabsAlbania">Twitter</a> to see what they&rsquo;re up to. You can also see their <a href="https://forum.openlabs.cc/">Discourse forums</a> to say hello and take part in any discussion too.</p>]]></description></item><item><title>Take the #HappinessPacketChallenge!</title><link>https://jwheel.org/blog/2017/04/happiness-packets-challenge/</link><pubDate>Sat, 08 Apr 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/04/happiness-packets-challenge/</guid><description><![CDATA[<p>One of the most important lessons I was taught growing up is to say &ldquo;thank you&rdquo; when someone does something nice for you. Many months ago, someone first introduced me to something called <a href="https://happinesspackets.io/">Happiness Packets</a>. The idea is simple but powerfully effective. Happiness Packets are like thank-you cards for open source users or contributors. You can send a packet to anyone for anything. Your message can be as short or as long as you like. You can put your name on your message or you can keep it totally anonymous. The choice is yours. And now, <strong>I want to challenge you to the #HappinessPacketChallenge</strong>!</p>

<h2 id="what-exactly-are-happiness-packets">What exactly are Happiness Packets?&nbsp;<a class="hanchor" href="#what-exactly-are-happiness-packets" aria-label="Anchor link for: What exactly are Happiness Packets?">🔗</a></h2>
<p>Fortunately, I don&rsquo;t have to do a lot of work to explain this, because it&rsquo;s all on the front page of the <a href="https://happinesspackets.io/">Happiness Packets</a> website. Repeated below for your convenience:</p>
<blockquote>
<p>People are generally much more loved than they think they are. Especially when things don&rsquo;t go according to plan, other people almost never think as harshly of you as you might think of yourself. It&rsquo;s easy for us to complain when bad things happen, and yet we&rsquo;re often fairly silent when things are good. Open-source communities are no different, especially when our main communication channels are textual and virtual.</p>
<p>The feeling that you made a difference, that your work matters and has value, and that the people you work with are happy to work with you, is an awesome feeling. With Open-Source Happiness Packets, we&rsquo;re trying to spread that feeling.</p>

<h4 id="how-does-it-work">How does it work?&nbsp;<a class="hanchor" href="#how-does-it-work" aria-label="Anchor link for: How does it work?">🔗</a></h4>
<p>Openly expressing appreciation, gratitude, or happiness to other people can be difficult. This is especially true when you don&rsquo;t know them very well. Many of us come from cultures in which people are not open by default about such feelings, and naturally feel uncomfortable or even creepy to share them.</p>
<p>Open-Source Happiness Packets is a very simple platform to anonymously reach out to the people that you appreciate or to whom you are thankful in your open-source community. Your message can be sent anonymously if you feel uncomfortable to share your name with the recipient. Of course, we encourage you to share your name, but it&rsquo;s completely optional!</p>
</blockquote>

<h2 id="take-the-challenge">Take the challenge&nbsp;<a class="hanchor" href="#take-the-challenge" aria-label="Anchor link for: Take the challenge">🔗</a></h2>
<p>So, what is the #HappinessPacketChallenge? I challenge you to do the following: <strong>write at least one Happiness Packet (or more!) every day for one week</strong>. At a minimum, this is only seven times where you say &ldquo;thank you&rdquo; to someone else in open source. Of course, you can send more if you want to.</p>
<p>If you open your social media feed or turn on the news channel, you probably see a lot of negativity. Whether it&rsquo;s world events, politics, or other sad news, the negativity gets at you. For one week, this is your opportunity to have the opposite effect. For all of the good things and people you see, you can spend a few minutes of each day this week to make someone&rsquo;s day. It seems simple—and it is! But the power you have to spread the positivity is a big power. So <strong>this is the challenge you have</strong>: to commit yourself to spreading that message every day for one week.</p>

<h4 id="i-dont-know-what-to-say">&ldquo;I don&rsquo;t know what to say.&rdquo;&nbsp;<a class="hanchor" href="#i-dont-know-what-to-say" aria-label="Anchor link for: &ldquo;I don&rsquo;t know what to say.&rdquo;">🔗</a></h4>
<p>Having a hard time coming up with words or not sure who to thank? No problem. Your message can be as short or as long as you like. If you&rsquo;re not sure who to thank, look at some of the software you&rsquo;re using now. If you&rsquo;re using a Linux distribution, start there! Look for the names and emails of maintainers of software you enjoy using. If you&rsquo;re already contributing to open source, consider some of the people in your community! You can thank someone who had a special role in helping you get started or impacted why you decided to work on a project.</p>
<p>Maybe you have other ideas or reasons to thank others. Whatever the reason is, don&rsquo;t make an excuse to say thanks! The options are limitless. If you have a lot to say, say it! If not, even a simple &ldquo;thanks for all the work you do!&rdquo; can go a long way to make someone&rsquo;s day.</p>

<h2 id="share-your-happiness">Share your happiness&nbsp;<a class="hanchor" href="#share-your-happiness" aria-label="Anchor link for: Share your happiness">🔗</a></h2>
<p>The magical part of Happiness Packets is sharing happy moments with others. If you receive one, don&rsquo;t be afraid to tell the world! You can tweet at <a href="https://twitter.com/happinesspacket">@happinesspacket</a> on Twitter. Use the <a href="https://twitter.com/hashtag/HappinessPacketChallenge">#HappinessPacketChallenge</a> hashtag. Encourage other people to send their own thanks. If you can get one other person to take the challenge, then you&rsquo;re already making the days of seven more people! Imagine what would happen if all of those seven people decided to take the challenge too.</p>
<p>So, what are you waiting for? Get started! Go <a href="https://happinesspackets.io/send/">send a Happiness Packet</a> now! And if you&rsquo;re feeling bold, try challenging someone directly.</p>
<hr>
<p><em><a href="https://thenounproject.com/search/?q=love%20mail&amp;i=314865">Love Letter</a> by <a href="https://thenounproject.com/vectorsmarket">Vectors Market</a> from <a href="https://thenounproject.com/">the Noun Project</a></em></p>]]></description></item><item><title>Students meet Fedora at Linux Weekend 2017</title><link>https://jwheel.org/blog/2017/04/students-fedora-linux-weekend-2017/</link><pubDate>Tue, 04 Apr 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/04/students-fedora-linux-weekend-2017/</guid><description><![CDATA[<p><em>This article was originally published <a href="https://fedoramagazine.org/students-fedora-linux-weekend-2017/">on the Fedora Magazine</a>.</em></p>
<hr>
<p>Open source projects are built online and a lot of their community members are placed all over the world. Even though projects have people from around the world, this doesn&rsquo;t stop ambitious community members to organize open source conferences or events in their own cities. Whether they&rsquo;re focused generally to open source or for a specific project, you can find a variety of conferences, hackathons, workshops, or meet-ups all over the world. Fedora benefits from having <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassadors</a> to attend these events to introduce Fedora and spread the word about the community. It&rsquo;s not uncommon to see Fedora participating in these events, and Linux Weekend 2017 in Tirana, Albania was not an exception.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/03/Azizaj-kicking-off-conference-300x146.jpg" alt="Jona Azizaj, Fedora Ambassador and Open Labs board member, kicks off Linux Weekend 2017" loading="lazy">
  <figcaption>Jona Azizaj (<a href="http://jona.azizaj.com/" class="bare">http://jona.azizaj.com/</a>), Fedora Ambassador and Open Labs board member, kicks off Linux Weekend 2017</figcaption>
</figure>
</p>
<p>From March 25-26, 2017 in Tirana, Albania, nearly 130 people attended the first-ever <a href="http://linuxweekend.openlabs.cc/">Linux Weekend 2017</a>. Linux Weekend was organized by <a href="https://openlabs.cc/en/">Open Labs Hackerspace</a> at the <a href="http://fti.edu.al/?lang=en">Universiteti Politeknik i Tiranës</a> as an introduction to Linux for beginners. Throughout Tirana, universities have a strong focus on Windows or macOS operating systems and little focus is given to Linux. Open Labs community members wanted to organize an event that would promote Linux as an open source alternative and demonstrate some of its benefits over proprietary environments. The event collected representatives from various communities, including Fedora, Ubuntu, OpenSUSE, NextCloud, MusicBrainz, and more.</p>

<h2 id="organizing-linux-weekend">Organizing Linux Weekend&nbsp;<a class="hanchor" href="#organizing-linux-weekend" aria-label="Anchor link for: Organizing Linux Weekend">🔗</a></h2>
<p>The Open Labs community is not unfamiliar to organizing open source events in Tirana. Their portfolio includes <a href="https://openlabs.cc/sq/fedora-23-release-party-report/">Fedora release parties</a>, <a href="https://openlabs.cc/sq/openstreetmap-hyrje-ne-josm/">OpenStreetMap map-a-thons</a>, <a href="https://openlabs.cc/sq/wikiprojekti-grate/">Wikipedia edit-a-thons</a>, and <a href="https://openlabs.cc/sq/fedora-meetup-tirana-2-report/">Fedora community meet-ups</a>. However, these events have been targeted towards people who already had prior interest or knowledge about open source communities. The organization and planning for Linux Weekend began in the middle of January as an idea to introduce Linux to complete beginners.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/03/Fedora-community-table-1024x683.jpg" alt="The Fedora community table at Linux Weekend 2017 in Tirana, Albania had no shortage of swag, stickers, and more to share with attendees" loading="lazy">
  <figcaption>The Fedora community table had no shortage of swag, stickers, and more to share with attendees</figcaption>
</figure>
</p>
<p>Planning and organizing Linux Weekend was a community effort. <a href="http://jona.azizaj.com/">Jona Azizaj</a> is a board member of Open Labs and a Fedora contributor, and was involved as an organizer for the event. &ldquo;This was the first edition of Linux Weekend, so the main focus is to raise awareness about Linux and open source. We wanted to educate beginners and spread the word about the choices that are available,&rdquo; Azizaj explained. The two tracks for the event were full of talks and workshops to introduce attendees not only to Linux, but also various software and applications of what someone can do with Linux.</p>
<p>Many of the attendees were students who had either heard of Linux in their classes or from their peers. Other attendees included industry professionals or other open source community members. Several representatives of Fedora from different parts of the community were in attendance as well. <a href="http://whatcanidoforfedora.org/en/#advocacy">Ambassadors</a>, <a href="http://whatcanidoforfedora.org/en/#designexclamation">designers</a>, and <a href="http://whatcanidoforfedora.org/en/#translation">translators</a> were available to answer questions and teach newcomers about Fedora.</p>

<h2 id="albanian-students-learn-linux">Albanian students learn Linux&nbsp;<a class="hanchor" href="#albanian-students-learn-linux" aria-label="Anchor link for: Albanian students learn Linux">🔗</a></h2>
<p>Since the focus of the event was to teach newcomers about Linux and how it can be used, Linux Weekend was organized to be an introduction to various parts of the Linux ecosystem. Representatives from Fedora, Ubuntu, Arch Linux, OpenSUSE, Linux Mint, and elementaryOS gave introductions to the operating systems and their communities. In addition to distributions, there were also sessions on open source licenses, <a href="https://nextcloud.com/about/">NextCloud</a>, text editors, <a href="https://musicbrainz.org/doc/About">MusicBrainz</a>, and more. The benefit of these sessions were demonstrating the different ways Linux can be used to accomplish various tasks.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/04/Uku-introducing-editors-1024x683.jpg" alt="Sidorela Uku introduces different editors and tools in her talk at Linux Weekend 2017 in Tirana, Albania" loading="lazy">
  <figcaption>Sidorela Uku (<a href="https://twitter.com/SidorelaUku" class="bare">https://twitter.com/SidorelaUku</a>) introduces different editors and tools in her talk</figcaption>
</figure>
</p>
<p>In addition to the various sessions during the weekend, there were three community booths for Fedora, OpenSUSE, and Mozilla. Attendees had a chance to get swag from each project and also talk with representatives about their own experiences or how to get started using their project.</p>
<p><a href="https://twitter.com/SidorelaUku">Sidorela Uku</a> was both an attendee and a speaker at Linux Weekend. Her talk, &ldquo;Programming in Linux, editors, and tools&rdquo;, introduced various text editors and other tools to help customize any Linux distribution to someone&rsquo;s needs or personal preferences. In addition to sharing her own knowledge, she was also excited to discover new things. &ldquo;I wanted to attend the talks and workshops to learn as much as possible. I also wanted to figure out the next steps to find a project and get involved as a contributor,&rdquo; Uku explained. &ldquo;I also wanted to share the things I know with others to help them get started with Linux.&rdquo; This was Uku&rsquo;s first time speaking at an event and she looks forward to more open source events in Tirana in the future.</p>

<h2 id="fedora-contributors-introduce-community">Fedora contributors introduce community&nbsp;<a class="hanchor" href="#fedora-contributors-introduce-community" aria-label="Anchor link for: Fedora contributors introduce community">🔗</a></h2>
<p>Various members of the Fedora community were also in attendance. Some of the Fedora presentations over the weekend introduced the project to newcomers, detailed the <a href="https://communityblog.fedoraproject.org/fedora-translation-sprint-5-days-50-members-20-thousand-words/">translation efforts</a> to bring Fedora to Albanian, and also guided attendees on how to make their first steps as contributors. The Fedora presence aimed to help give newcomers a taste of the operating system but also to show the impact someone can have if they decide to contribute.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/04/Balla-introduces-Fedora-Project-1024x683.jpg" alt="Mariana Balla, a Fedora contributor, introduces the Fedora Project to Linux Weekend 2017 attendees in Tirana, Albania" loading="lazy">
  <figcaption>Mariana Balla (<a href="https://twitter.com/marianaballa1" class="bare">https://twitter.com/marianaballa1</a>), a Fedora contributor, introduces the Fedora Project to attendees</figcaption>
</figure>
</p>
<p><a href="https://twitter.com/marianaballa1">Mariana Balla</a> was one of the first speakers on Saturday morning with her talk titled, &ldquo;Introduction to Fedora Project and how to be a part of the community&rdquo;. She started with localizing Fedora into Albanian in early 2016 and more recently started to become an advocate as well. &ldquo;Fedora is one of the most used distributions, and it was great to have Fedora here to spread the word and show what our community is all about,&rdquo; Balla said. &ldquo;One thing I hoped to show in my talk was that technical skills aren&rsquo;t required to contribute to Fedora. There&rsquo;s so many things that aren&rsquo;t code that people can help with!&rdquo; One of the highlights of Balla&rsquo;s presentation was breaking down the different sub-projects in the community and how they contribute to making Fedora what it is. One site that was mentioned was <a href="http://whatcanidoforfedora.org/">whatcanidoforfedora.org</a>, a site anyone can click their way through to find an area that interests them.</p>
<p>One key contribution area that was important for the local community was localization. Many attendees and speakers alike thought it was important to have software translated into their native language. <a href="https://twitter.com/anxhelahyseni">Anxhela Hyseni</a> is a Fedora Ambassador and led the workshop on &ldquo;Translation of Fedora&rdquo;. &ldquo;It&rsquo;s important for Albanians to have software in Albanian because we are Albanians!&rdquo; Hyseni laughs. &ldquo;People are better able to understand Fedora and it makes it more accessible for us to have it in our local language.&rdquo; She hopes that attendees left Linux Weekend with plenty of new contacts in the open source community and a better idea of what Linux is all about. She and others also helped Linux newcomers install Fedora 25 as a dual-boot or for virtual machines in the installfest on Saturday morning.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/03/Anxhela-at-Fedora-table-1024x683.jpg" alt="Fedora Ambassador Anxhela Hyseni at the Fedora community table at Linux Weekend 2017 in Tirana, Albania" loading="lazy">
  <figcaption>Fedora Ambassador Anxhela Hyseni (<a href="https://twitter.com/anxhelahyseni" class="bare">https://twitter.com/anxhelahyseni</a>) at the Fedora community table</figcaption>
</figure>
</p>

<h2 id="wrapping-up">Wrapping up&nbsp;<a class="hanchor" href="#wrapping-up" aria-label="Anchor link for: Wrapping up">🔗</a></h2>
<p>After two days of talks, workshops, and hallway discussions, the final talk finished around 4:00pm on Sunday. Azizaj closed out with some final words of encouragement and thanks for attendee participation.</p>
<p>
<figure>
  <img src="https://cdn.fedoramagazine.org/wp-content/uploads/2017/04/Lushka-introducing-Fedora-spins-1024x683.jpg" alt="Angelo Lushka, a Fedora translator and user, introduces the different Fedora spins at the installfest for Linux Weekend 2017 in Tirana, Albania" loading="lazy">
  <figcaption>Angelo Lushka (<a href="https://lushka.al/" class="bare">https://lushka.al/</a>), a Fedora translator and user, introduces the different Fedora spins at the installfest</figcaption>
</figure>
</p>
<p>The presence of Fedora, open source software, and its philosophy was present during the entire weekend. Between stickers, install media, and brochures from community tables and the various presentations during the weekend, participants and organizers felt the event was worthwhile. &ldquo;We had limited time to plan, but it was important to bring Linux to people to introduce the philosophy, show them how to use it, and also how they can give back,&rdquo; <a href="https://lushka.al/">Anxhelo Lushka</a>, an event organizer and Fedora contributor, explained. &ldquo;We hope attendees had new experiences and learned something new and useful for the real world, for jobs or studying. We also hope we convinced them to contribute and give back, even if in a small way.&rdquo;</p>
<p>Now that Linux Weekend 2017 is finished, the organizing team is switching their focus to <a href="https://oscal.openlabs.cc/">Open Source Conference Albania</a> (OSCAL), the largest open source conference in the region.</p>

<h2 id="find-fedora-near-you">Find Fedora near you&nbsp;<a class="hanchor" href="#find-fedora-near-you" aria-label="Anchor link for: Find Fedora near you">🔗</a></h2>
<p>Open source events are happening all around the world, and Fedora might be closer to you than you think! Check for local user or meet-up groups near you to get involved in some of these events. <a href="https://www.meetup.com/">Meetup.com</a> is a great way to find local events happening in your community. You can also keep an eye on what Fedora is up to by following us on <a href="https://www.facebook.com/TheFedoraProject">Facebook</a>, <a href="https://twitter.com/fedora">Twitter</a>, <a href="https://plus.google.com/&#43;Fedora">Google+</a>, or <a href="https://www.instagram.com/thefedoraproject/">Instagram</a>.</p>
<p>We hope to see you at an event in the coming future!</p>]]></description></item><item><title>First-ever overnight hackathon in Albania for sustainable goals</title><link>https://jwheel.org/blog/2017/03/hackathon-albania-sustainable-goals/</link><pubDate>Thu, 23 Mar 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/03/hackathon-albania-sustainable-goals/</guid><description><![CDATA[<p><a href="https://opensource.com/article/17/3/open-labs-48-hour-hackathon-albania"><em>This article was originally published on Opensource.com.</em></a></p>
<hr>
<p>
<figure>
  <img src="/blog/2017/03/hackathon-kick-off-eduard-pagria.jpg" alt="Redon Skikuli addresses all attendees in Open Labs to kick off the hackathon" loading="lazy">
  <figcaption>Redon Skikuli addresses all attendees in Open Labs to kick off the hackathon. © Eduard Pagria, used with permission</figcaption>
</figure>
</p>
<p>The local hackerspace in Tirana, Albania might be small, but they make up for size in spirit. During the weekend of 18-19 March 2017, the <a href="https://openlabs.cc/en/">Open Labs Hackerspace</a> organized the first-ever 48 hour &ldquo;open source&rdquo; hackathon focused on the United Nations Sustainable Development Goals. The <a href="https://sustainabledevelopment.un.org/sdgs">UN Sustainable Development Goals</a> are seventeen objectives identified by the <a href="http://www.undp.org/">United Nations Development Programme</a> (UNDP) to build a better world, starting in our own communities. Some of the goals include quality education, gender equality, decent work and economic growth, clean energy, and more. During the course of the hackathon, participants selected a goal, broke into teams, and worked on projects to make real change in their own neighborhoods. In the spirit of open source, all projects are made available under free and open licenses.</p>

<h2 id="organizing-the-hackathon-in-albania">Organizing the hackathon in Albania&nbsp;<a class="hanchor" href="#organizing-the-hackathon-in-albania" aria-label="Anchor link for: Organizing the hackathon in Albania">🔗</a></h2>
<p>The board members of Open Labs oversee most of its operations and help guide members in hosting events and keeping the hackerspace busy. The current board members are <a href="http://redon.skikuli.com/about/">Redon Skikuli</a>, <a href="http://jona.azizaj.com/">Jona Azizaj</a>, <a href="https://elioqoshi.me/">Elio Qoshi</a>, <a href="https://kristiprogri.com/">Kristi Progri</a>, and <a href="https://twitter.com/AnisaKuci">Anisa Kuci</a>. However, they emphasize that it&rsquo;s strongly a community-based organization. Board members invite others to take part in the organization&rsquo;s governance.</p>
<p>
<figure>
  <img src="/blog/2017/03/open-labs-board-members-justin-w-flory.jpg" alt="Open Labs board members. Pictured left to right: Jona Azizaj, Anisa Kuci, Kristi Progri, Redon Skikuli, Elio Qoshi" loading="lazy">
</figure>
</p>
<p><em>Open Labs board members. Pictured left to right: Jona Azizaj, Anisa<br>
Kuci, Kristi Progri, Redon Skikuli, Elio Qoshi. (Justin Wheeler, CC-BY-SA 4.0)</em></p>
<p>When the opportunity came to take part in this event, the board members felt it was a great opportunity to try something new. While hackathon events are popular and well-known in the United States and elsewhere, this was foreign territory for the community. &ldquo;At first, we were nervous because this type of 48 hour event was new for Open Labs but also for Albania. But we wanted to use this as a chance to introduce the open source philosophy to new people and to show what we do and why,&rdquo; said Azizaj. The organizers hoped to appeal to a wider audience than only active community members too.</p>
<p>
<figure>
  <img src="/blog/2017/03/un-representative-meeting-hackers-eduard-pagria.jpg" alt="The visiting representative from the United Nations meets participants and helps work with them on brainstorming ideas" loading="lazy">
</figure>
</p>
<p><em>The visiting representative from the United Nations meets participants<br>
and helps work with them on brainstorming ideas. © Eduard Pagria, used with permission</em></p>
<p>Organizing the hackathon was a challenge since many of the core team members were traveling the week before the event. However, community members and UN representatives were more than willing to help with organizing the hackathon. This event also required a level of coordination that was uncommon for the normal type of event organized in Open Labs. &ldquo;When planning, we were hoping to reach out to non-members of Open Labs too. This way, more people are exposed to open source and its culture. This lets people who want to make change, but don&rsquo;t know how, to understand what is available to help them,&rdquo; said Skikuli. When the Friday before the event arrived, the team was ready for a weekend of open source, civic hacking.</p>
<p>On Saturday morning, approximately 30 people were present for the event kick-off. Open Labs members and United Nations representatives introduced the hackathon and the themes for attendees to focus on during the weekend. Attendees were a diverse group of people as well: there was a balance between technical and non-technical people, and the gender ratio was almost evenly split between males and females.</p>

<h2 id="working-on-projects">Working on projects&nbsp;<a class="hanchor" href="#working-on-projects" aria-label="Anchor link for: Working on projects">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/03/edlina-works-on-education-eduard-pagria.jpg" alt="One participant, Edlina, worked with Augest to develop an application that creates a feedback loop with students and teachers to NGOs and governments to understand problems in schools and find ways to work together without duplicating work" loading="lazy">
</figure>
</p>
<p><em>One participant, Edlina, worked with Augest to develop an application<br>
that creates a feedback loop with students and teachers to NGOs and<br>
governments to understand problems in schools and find ways to work<br>
together without duplicating work. © Eduard Pagria, used with permission</em></p>
<p>The Open Labs organizers placed emphasis in networking between participants at the beginning. The event started with introductions and each participant made a note of whether they were a technical or non-technical contributor. After this, they wrote their names on sticky notes along with their preferred goals to stick on the wall. Participants were paired up with someone with a different background but with a mutual interest in a specific goal. &ldquo;We separated participants into two groups: technical and non-technical. Our idea was the two sides would complement each other to share experiences to build a strong team,&rdquo; said Azizaj. After the teams were formed, they began brainstorming and working on their projects. Mentors were available to offer support to participants and to introduce them to open source tools to help them prototype their projects.</p>

<h4 id="world-of-sounds">World of Sounds&nbsp;<a class="hanchor" href="#world-of-sounds" aria-label="Anchor link for: World of Sounds">🔗</a></h4>
<p>
<figure>
  <img src="/blog/2017/03/silva-arapi-profile-justin-w-flory-e1490131911268.jpg" alt="Silva Arapi, one participant, worked with her team on their project &ldquo;World of Sounds&rdquo;" loading="lazy">
</figure>
</p>
<p><em>Silva Arapi, one participant, worked with her team on their project<br>
&ldquo;World of Sounds&rdquo;. (Justin Wheeler, CC-BY-SA 4.0)</em></p>
<p>One participant, <a href="https://twitter.com/ArapiSilva">Silva Arapi</a>, worked with teammates Dritan Sakuta, Hulemita Leka, Kristi Leka, and Klajdi Qehaja to address reduced inequalities. Their team project is called &ldquo;World of Sounds&rdquo;.  The application is a resource for parents of children with hearing or speaking disabilities. &ldquo;World of Sounds is a platform to understand early on to improve education of parents and accessibility for children. This is very helpful for rural parts [of Albania],&rdquo; Arapi explained.</p>
<p>She has been involved with the Open Labs community for almost a year and a half. It was her first hackathon but she also hadn&rsquo;t seen an event like this in Albania before. &ldquo;It was a new experience and something different. We get something done in 48 hours to have a social impact – why not participate?&rdquo; Arapi balances her time leading the NextCloud efforts in Tirana while working towards her master&rsquo;s degree in Information Security. She hopes to take part in another event at Open Labs like this again in the future.</p>

<h4 id="tackling-gender-equality-in-albania">Tackling gender equality in Albania&nbsp;<a class="hanchor" href="#tackling-gender-equality-in-albania" aria-label="Anchor link for: Tackling gender equality in Albania">🔗</a></h4>
<p>Another Open Labs community member came with an idea and a friend to try thinking through a specific issue she had seen in her community. <a href="https://twitter.com/Nafie_Shehu">Nafie Shehu</a> is an Information Communication Technology student and has been involved with Open Labs for the past seven months. With her, she brought her friend Afrim Kamberi to help, for his first visit to Open Labs and an open source event in Tirana.</p>
<p>
<figure>
  <img src="/blog/2017/03/working-on-project-eduard-pagria.jpg" alt="Two attendees work together on their project idea" loading="lazy">
  <figcaption>Two attendees work together on their project idea. © Eduard Pagria, used with permission</figcaption>
</figure>
</p>
<p>Shehu&rsquo;s selected goal was gender equality combined with an experience of one of her friends. In some rural areas and villages in Albania, women have a more difficult time maintaining their rights. They rarely have financial independence, and as a result, this sometimes leads them to live a life they might not want. Sometimes, women are obligated into a non-consensual marriage and aren&rsquo;t in a place to defend what they want for themselves. Her friend was in this situation and divorced later, but she didn&rsquo;t know where to go after and had little resources of her own. Nafie heard about this story and it deeply affected her. She hoped to brainstorm ideas on how to improve this problem.</p>
<p>After research and looking at other solutions, she discovered similar attempts had been started to solve this problems. However, for various reasons, they were ineffective and weren&rsquo;t thorough solutions to the problems. While this changed her own project development, she finished the hackathon determined to find ways to improve on what was already there and continue this even after the weekend ended.</p>

<h2 id="closing-the-hackathon">Closing the hackathon&nbsp;<a class="hanchor" href="#closing-the-hackathon" aria-label="Anchor link for: Closing the hackathon">🔗</a></h2>
<p>Towards the end of Sunday, participants put the last touches onto their projects. The deliverable product was prepared and all participants organized a short presentation to demo their project. &ldquo;In the end, you get a real product, not just talking. It&rsquo;s a real product that has an impact,&rdquo; Progri explained. All of the various teams pitched their projects to the Open Labs community and to representatives from the United Nations.</p>
<p>
<figure>
  <img src="/blog/2017/03/hacking-past-midnight-justin-w-flory.jpg" alt="Anxhelo Lushka helps two participants after midnight to help work through some problems in their project" loading="lazy">
</figure>
</p>
<p><em>Anxhelo Lushka helps two participants after midnight to help work<br>
through some problems in their project. (Justin Wheeler, CC-BY-SA 4.0)</em></p>
<p>In the project presentations, teams were given specific criteria to present in the project.</p>
<ol>
<li>Summary or main idea of the project</li>
<li>Sustainability of the project for implementation beyond the weekend</li>
<li>Recommendations for funding the project / creating a budget to carry it out</li>
<li>Reasons why they would support this if it wasn&rsquo;t their own project</li>
</ol>
<p>After the presentations, teams were given the option to send their information and projects to the UNDP via Open Labs. The UNDP will select one project and team to bring to the United Nations office in New York City to propose their project and seek support to develop it further.</p>

<h2 id="thats-a-wrap">That&rsquo;s a wrap!&nbsp;<a class="hanchor" href="#thats-a-wrap" aria-label="Anchor link for: That&rsquo;s a wrap!">🔗</a></h2>
<p>After a closing ceremonies and words of encouragement from Skikuli, the hackathon came to an end. Both participants and organizers felt it ended on a high note. &ldquo;I love coming to these events to learn new things, meet new people, and they&rsquo;re cool!&rdquo; Arapi said. Additionally, the organizers hoped that participants left with valuable knowledge and resources that would go beyond this weekend. &ldquo;We hope people understand the role open source had in this event and understand why the philosophy is so important,&rdquo; Qoshi explained. &ldquo;Some people might think the projects are the main part, but networking with people from different backgrounds goes beyond the event. These connections support sustainability for people working together. We hope these projects continue beyond this event.&rdquo;</p>
<p>The presence of open source software and its philosophy was present throughout the event. Stickers and swag from various open source projects was available for participants to take. This included stickers from Mozilla, Fedora, LibreOffice, NextCloud, and more. &ldquo;We hope attendees enjoyed the experience and had fun meeting new people. Later on, when they leave Open Labs and work on their own projects, we hope they will remember open source tools to build their work and create FOSS solutions,&rdquo; said Azizaj.</p>

<h2 id="whats-next-for-open-labs">What&rsquo;s next for Open Labs?&nbsp;<a class="hanchor" href="#whats-next-for-open-labs" aria-label="Anchor link for: What&rsquo;s next for Open Labs?">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2017/03/morning-brainstorming-eduard-pagria.jpg" alt="Brainstorming together at the beginning of the Open Labs Albania 48 hour hackathon on project ideas" loading="lazy">
  <figcaption>Brainstorming together at the beginning of the hackathon on project ideas. © Eduard Pagria, used with permission</figcaption>
</figure>
</p>
<p>This was a milestone event for the Open Labs community, but they have more on the horizon after the weekend of this event. Organizers, volunteers, and members are putting together the first <a href="http://linuxweekend.openlabs.cc/">Linux Weekend</a> in Tirana from 25-26 March. This is a traditional barcamp-like model with talks and workshops by several local and international speakers. However, there are a couple of goals ahead that the team hopes to begin working at.</p>
<p>One of them is a book in time for the hackerspace&rsquo;s fifth anniversary. The book would be an &ldquo;open source handbook&rdquo; in the Albanian language. Not only would it have the history of Open Labs, but it would introduce various open source projects and connect readers to resources so they could have an impact on a project. Additionally, the team is looking at policy in their government as a next step. Qoshi had a great deal to say on this: &ldquo;It feels like we&rsquo;re reaching critical mass and gaining momentum to influence local policy in Albania. We want to push for open policies and government, especially with the coming elections in June. This is a great opportunity to let people know our stances on policies. Pushing FOSS only in our space can&rsquo;t be an insider secret—we need conversations with people coming from different views if we want change.&rdquo;</p>
<p>You can learn more about the hackerspace online at their <a href="https://openlabs.cc/en/">website</a>.</p>]]></description></item><item><title>2016 – My Year in Review</title><link>https://jwheel.org/blog/2017/02/2016-my-year-in-review/</link><pubDate>Fri, 17 Feb 2017 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2017/02/2016-my-year-in-review/</guid><description><![CDATA[<p>Before looking too far ahead to the future, it&rsquo;s important to spend time to reflect over the past year&rsquo;s events, identify successes and failures, and devise ways to improve. Describing my 2016 is a challenge for me to find the right words for. This post continues a habit I started last year with my <a href="/blog/2016/02/2015-year-review/">2015 Year in Review</a>. One thing I discover nearly every day is that I&rsquo;m always learning new things from various people and circumstances. Even though 2017 is already getting started, I want to reflect back on some of these experiences and opportunities of the past year.</p>

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

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

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

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

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

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

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

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

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

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

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

<h2 id="in-summary">In summary&nbsp;<a class="hanchor" href="#in-summary" aria-label="Anchor link for: In summary">🔗</a></h2>
<p>2015 felt like a difficult year to follow, but 2016 exceeded my expectations. I acknowledge and I&rsquo;m grateful for the opportunities this year presented to me. Most importantly, I am thankful for the people who have touched my life in a unique way. I met many new people and strengthened my friendships and bonds with many old faces too. All of the great things from the past year would not be possible without the influence, mentorship, guidance, friendship, and comradery these people have given me. My mission is to always pay it forward to others in any way that I can, so that others are able to experience the same opportunities (or better).</p>
<p>2017 is starting off hot and moving quickly, so I hope I can keep up! I can&rsquo;t wait to see what this year brings and hope that I have the chance to meet more amazing people, and also meet many of my old friends again, wherever that may be.</p>
<p>Keep the FOSS flag high.</p>]]></description></item><item><title>Students and professors work across the aisle during Election Night Hackathon</title><link>https://jwheel.org/blog/2016/12/2016-election-night-hackathon/</link><pubDate>Thu, 15 Dec 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/12/2016-election-night-hackathon/</guid><description><![CDATA[<p><a href="https://opensource.com/article/16/12/2016-election-night-hackathon"><em>This post was originally published on Opensource.com.</em></a></p>
<hr>
<p>On Tuesday, November 8th, 2016, the <a href="http://foss.rit.edu/">FOSS@MAGIC</a> at the <a href="https://magic.rit.edu/">MAGIC Center</a> at RIT held the annual Election Night Hackathon. Over 140 students from across campus and across departments gathered together to work on a range of civic projects as the election night results came in. This year&rsquo;s hackathon was the sixth in a long-standing tradition of civic duty and open source collaboration.</p>

<h2 id="starting-the-election-night-hackathon">Starting the Election Night Hackathon&nbsp;<a class="hanchor" href="#starting-the-election-night-hackathon" aria-label="Anchor link for: Starting the Election Night Hackathon">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/11/IMG_8753.jpg" alt="Dan Schneiderman updating the news sources on the projector screens during the Election Night Hackathon by FOSS at RIT" loading="lazy">
  <figcaption>Dan Schneiderman (<a href="http://www.schneidy.com/" class="bare">http://www.schneidy.com/</a>) updating the news sources on the projector screens</figcaption>
</figure>
</p>
<p>For this year&rsquo;s event, registration was a ticketed event because of the overwhelming interest in the election. At 5:00pm, the sign-in table popped up in front of the <a href="https://www.rit.edu/research/simonecenter/">Student Innovation Hall</a>, where the hackathon would take place. Students began lining up to receive their wristband for admission, food, and open source swag.</p>
<p>The space quickly became filled over the next hour as people began settling in for the night to work on projects (or maybe homework). On all sides were a range of projector screens with a range of sources for election night coverage. There would not be a lack of information through the night. In addition to the federal election, local and state elections throughout New York were also included on the projectors.</p>
<p>
<figure>
  <img src="/blog/2016/11/IMG_8759.jpg" alt="The Election Night Hackathon was a full house after the kick-off ceremony during the Election Night Hackathon by FOSS at RIT" loading="lazy">
  <figcaption>The Election Night Hackathon was a full house after the kick-off ceremony</figcaption>
</figure>
</p>
<p>The Election Night Hackathon had no shortage of goodies provided by numerous open source organizations, companies, and supporters. The &ldquo;swag table&rdquo; featured plenty of stickers for people to add to their laptops or other devices. The <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>, <a href="https://github.com/">GitHub</a>, <a href="https://www.redhat.com/en">Red Hat</a>, the <a href="https://magic.rit.edu/">MAGIC Center</a>, and more were available for attendees to pick their favorites out.</p>

<h2 id="projects">Projects&nbsp;<a class="hanchor" href="#projects" aria-label="Anchor link for: Projects">🔗</a></h2>
<p>At the peak of the event, nearly 140 students, faculty, staff, and local citizens filled the MAGIC Center and overflow work spaces. <a href="http://www.schneidy.com/">Dan Schneiderman</a>, the event coordinator and <a href="https://opensource.com/education/16/5/interview-dan-schneiderman-rit">FOSS@MAGIC Research Associate and Community Liaison</a>, led the event on a high note with a brief kick-off ceremony. Hackers were provided with a list of resources for building applications related to civic hacking. Shortly after the start, attendees began talking with one another to discuss project ideas or other topics to work on throughout the night. Professors and alumni provided mentorship, advice, and help for students planning projects.</p>
<p>
<figure>
  <img src="/blog/2016/11/IMG_8742.jpg" alt="Mark Repka works on his 2016 Election Viewer app during the Election Night Hackathon by FOSS at RIT" loading="lazy">
  <figcaption>Mark Repka works on his 2016 Election Viewer app</figcaption>
</figure>
</p>
<p><a href="https://github.com/tydus101">Tyler Reimold</a> worked on creating an open source server for real-time election updates in a Reddit thread. His <a href="https://github.com/tydus101/reddit-live-election">Python-based project</a> used the <a href="http://elections.huffingtonpost.com/pollster/api">Huffington Post</a> and Reddit APIs to build the application.</p>
<p>Adjunct professor at Monroe Community College  David M. Shein gathered a small group of hackers to build a website. The website, <a href="https://thankyousuffragists.org/">thankyousuffragists.org</a>, honors and maps the graves of women around the country who campaigned for the right to vote. The early stage site allows people to add the locations of graves around the country to a map. &ldquo;I personally loved how a number of our attendees were inspired by the crowds that stopped by <a href="http://www.pbs.org/newshour/rundown/hundreds-voted-stickers-left-susan-b-anthonys-grave/">Susan B. Anthony’s grave</a> in Rochester, which then led to a project focused on honoring her work,&rdquo; Schneiderman said.</p>
<p>Additionally, another project was the <a href="https://repkam09.com/election/">2016 Election Viewer</a> by <a href="https://repkam09.com/">Mark Repka</a>. His Node-powered application delivered a state-by-state breakdown of election results throughout the night. Attendees were encouraged to check it out and provide feedback as he built the site to provide accurate coverage during the heat of the election coverage. You can view Mark&rsquo;s application on <a href="https://repkam09.com/election/">his website</a>, browse <a href="https://api.repkam09.com/api/election/full">its own API</a>, or find the source code <a href="https://github.com/repkam09/election-viewer">on GitHub</a> (MIT License).</p>
<p>Many other students worked on smaller projects or collaborated with professors on other ideas. Dr. Vullo at RIT opened a call for students to help him with a virtual reality idea powered by <a href="https://aframe.io/">AFrame</a>. Most of the projects and work from the evening was published on GitHub in the spirit of contributing civic hacking projects to the open source ecosystem.</p>

<h2 id="and-the-winner-is">And the winner is…&nbsp;<a class="hanchor" href="#and-the-winner-is" aria-label="Anchor link for: And the winner is…">🔗</a></h2>
<p>After seven hours of hacking and nail-biting, the election results were mostly called by midnight. With a short conclusion speech by Schneiderman, the hackathon began closing down in time for the next day of classes. &ldquo;[My favorite part was] the collaborations and the mixing of students from majors that don’t usually get to work alongside each other. Attendance was a mix of computer science, marketing, political science, engineering, history, and visual arts,&rdquo; Schneiderman said. Special thanks for the event go to the <a href="https://magic.rit.edu/">MAGIC Center</a> at RIT for providing space and resources for the event. Additional thanks go to <a href="https://www.redhat.com/en">Red Hat</a> for supporting the <a href="http://foss.rit.edu/">FOSS@MAGIC initiative</a> so these events are made possible. You can find the full photo album from the event <a href="https://500px.com/jflory7/galleries/election-night-hackathon-2016">on 500px</a>.</p>
<p>November 8th is a day that will stand in memory for a long time, and the Election Night Hackathon is a great opportunity for students to engage in discussion and collaboration with others in the community to identify issues in the civic area and try to build open source solutions to those problems. We&rsquo;re looking forward to continuing the tradition next year for the next round of local, state, and federal elections.</p>]]></description></item><item><title>How to set up GitHub organizations for clubs</title><link>https://jwheel.org/blog/2016/10/set-up-github-organizations-clubs/</link><pubDate>Mon, 17 Oct 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/10/set-up-github-organizations-clubs/</guid><description><![CDATA[<p>For many universities and colleges, there are many technical clubs that students can join. Some clubs focus on programming or using programming for collaborative projects. For anything involving code, clubs usually turn to GitHub. GitHub has become the standard for open source project hosting by thousands of projects in the world. GitHub organizations are the tool GitHub provides to allow someone to create a team of people for working on projects. Organizations can have many repositories and smaller teams inside of them. When getting started with GitHub, there is a method to the madness, and there are ways you can have an ordered organization instead of keeping it messy. Here&rsquo;s how you do it.</p>

<h2 id="teams-for-purpose-teams-for-tracking">Teams for purpose, teams for tracking&nbsp;<a class="hanchor" href="#teams-for-purpose-teams-for-tracking" aria-label="Anchor link for: Teams for purpose, teams for tracking">🔗</a></h2>
<p>Team structure and designation are some of the most important ways to use organizations effectively. Since GitHub <a href="https://github.com/blog/2020-improved-organization-permissions">revamped teams</a>, they are an effective way to categorize members and to assign privileges. You can decide who can create repositories, who can push code to what repositories, or who has admin rights on projects.</p>
<p>You should create teams that have a purpose and will work with real repositories. For example, if your club has various committees, you should create a team for each committee. Then, you can give each committee privileges to their own repositories and leave it to them to manage. Being smart with what teams you create is important. Teams with a purpose should exist to carry out certain tasks within the organization. Equip them with the means to do so.</p>
<p>It&rsquo;s also helpful to create teams for tracking. In a university setting, students will graduate in a certain year and then they&rsquo;ll be gone. For university clubs using GitHub organizations, create teams for every graduating class, staff and faculty, and alumni (e.g. &ldquo;Class of 2019, Class of 2020, University staff, Graduated members, etc.). While it may seem trivial with a few people in the beginning, it is useful as the organization grows. If someone wonders why someone is part of a repository or if they are still participating in the club or organization, it is easy to see whether the student is still on campus or whether they are a graduated alumnus or alumna.</p>

<h2 id="use-organization-for-on-boarding">Use organization for on-boarding&nbsp;<a class="hanchor" href="#use-organization-for-on-boarding" aria-label="Anchor link for: Use organization for on-boarding">🔗</a></h2>
<p>Organizations are a powerful tool for bringing new people into your club or group. The moment someone receives an email inviting them to be a member of the GitHub organization, it holds a certain weight. &ldquo;<em>Wow, I&rsquo;m officially a part of this thing!</em>&rdquo; It&rsquo;s a great way to create an inclusive environment and enable new contributors to feel like they are a part of the team.</p>
<p>Having a team for newcomers or new recruits is helpful to have in place beforehand. The group doesn&rsquo;t have any real permissions in the organization, but it is a temporary holding ground for new members while they figure out their position in the club. But this way, they get to be included in the member list and show off your organization&rsquo;s logo in their profile if they choose.</p>

<h2 id="publicize-your-membership-on-github">Publicize your membership on GitHub&nbsp;<a class="hanchor" href="#publicize-your-membership-on-github" aria-label="Anchor link for: Publicize your membership on GitHub">🔗</a></h2>
<p>If someone is in your organization, make sure you encourage them to show it off! By default, GitHub sets the team member visibility to private. Unless a member of the organization sets themselves as public, they won&rsquo;t appear as a part of the organization to visitors.</p>
<p>
<figure>
  <img src="https://i.jwf.io/u/6631b7d25bbbdfa9033a2d922912fddd.png" alt="Publicize a GitHub membership" loading="lazy">
  <figcaption>\&#34;People\&#34; page of an organization - this is where you publicize a GitHub membership</figcaption>
</figure>
</p>
<p>Publicizing your membership is an underestimated step in bringing new contributors in. It&rsquo;s even helpful for older members too. By publicizing memberships, you are giving faces and real people to characterize your organization. If someone finds your organization in a search or in a link, it looks better to have rows of people associated with the group. The alternative of a team with what looks like no members implies your club is inactive. It can also make your club look smaller than it is. Additionally, individual team members also get to show off your organization on their individual profiles. This is helpful for anyone visiting their profile for activities or programming experience. For university students, this is helpful for applying for co-ops or internships.</p>
<p>To make a membership visible, the organization member has to go to the &ldquo;People&rdquo; page of the organization. On the page, next to their name, there is an option for &ldquo;Public&rdquo; or &ldquo;Private&rdquo; in a drop-down menu. Change it to &ldquo;Public&rdquo;.</p>

<h2 id="consider-repository-for-tasks">Consider repository for tasks&nbsp;<a class="hanchor" href="#consider-repository-for-tasks" aria-label="Anchor link for: Consider repository for tasks">🔗</a></h2>
<p>
<figure>
  <img src="https://camo.githubusercontent.com/4a034f0e6a4db65dc0d7779e1752256572174182/68747470733a2f2f692e696d6775722e636f6d2f77566b327771302e6a7067" alt="The FOSS@MAGIC " loading="lazy">
  <figcaption>The FOSS@MAGIC (<a href="http://foss.rit.edu/" class="bare">http://foss.rit.edu/</a>) family dinner, organized with an issue tracker</figcaption>
</figure>
</p>
<p>While not essential, a repository for real-life tasks or issues in a club can be a helpful planning tool. It also makes it easy for people to see what the club or group is working on. This promotes the idea of transparent and open leadership. You can use labels to tag issues for specific types of work or committees. Milestones are useful for deadlines or goals the group is working towards. The new <em>Projects</em> feature may also be useful in a repository for real-life task management.</p>
<p>For an example of a repository like this, you can see the <a href="https://github.com/FOSSRIT/fossbox-tasks/issues">FOSSRIT/fossbox-tasks</a> repository on GitHub. We even <a href="https://github.com/FOSSRIT/fossbox-tasks/issues/16">planned a dinner</a> on GitHub!</p>

<h2 id="go-forth-and-conquer">Go forth and conquer!&nbsp;<a class="hanchor" href="#go-forth-and-conquer" aria-label="Anchor link for: Go forth and conquer!">🔗</a></h2>
<p>Congratulations! You now have some basic knowledge and ideas on how to effectively use GitHub organizations for a club or small team. While this guide is not completely thorough, it helps give some starting points to consider when you&rsquo;re setting up your organization for the first time. It&rsquo;s also never too late to make changes later, if your organization is already formed.</p>
<p>If you have questions, comments, or feedback, I&rsquo;d love to hear about it! Feel free to leave a comment below.</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>Virtual meetup with WiC, Open Labs, FOSS Wave</title><link>https://jwheel.org/blog/2016/10/virtual-meetup-wic-open-labs-foss-wave/</link><pubDate>Sat, 08 Oct 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/10/virtual-meetup-wic-open-labs-foss-wave/</guid><description><![CDATA[<p>Over the past year, I&rsquo;ve met incredible people from around the world doing great things in their local communities. At my university, the <a href="http://wic.rit.edu/">Women in Computing @ RIT</a> program provides networking for students with faculty, staff, and alumni. They also help advance women in computing through community outreach. I&rsquo;ve also come into contact with two other international tech communities with interesting stories of their own. With the help of the <a href="http://wic.rit.edu/pages/committees.php">WiC events committee</a>, we are working on organizing a virtual meetup with WiC from New York, <a href="https://openlabs.cc/">Open Labs Albania</a>, and <a href="http://landing.fosswave.com/">FOSS Wave</a> from India to introduce each other, share experiences, and more.</p>

<h2 id="about-open-labs">About Open Labs&nbsp;<a class="hanchor" href="#about-open-labs" aria-label="Anchor link for: About Open Labs">🔗</a></h2>
<p>
<figure>
  <img src="https://i2.wp.com/oscal.openlabs.cc/wp-content/uploads/2013/10/OSCAL2016GroupPhoto-1.png?w=920" alt="Group photo of attendees at OSCAL 2016 in Tirana, Albania (courtesy of Open Labs)" loading="lazy">
  <figcaption>Group photo of attendees at OSCAL 2016 (<a href="http://oscal.openlabs.cc/" class="bare">http://oscal.openlabs.cc/</a>)</figcaption>
</figure>
</p>
<p><a href="https://openlabs.cc/">Open Labs Albania</a> is a non-profit organization and community based out of <a href="https://en.wikipedia.org/wiki/Tirana">Tirana, Albania</a>. Open Labs focuses on freedom, transparency, and decentralization to empower the community. They support and contribute to a variety of open source projects to tackle local problems. Sometimes, this even includes regional and international issues. Each year, the Open Labs team organizes their annual conference, <a href="http://oscal.openlabs.cc/">OSCAL</a> (Open Source Conference Albania). Hundreds of people from across Europe gather to &ldquo;promote software freedom, open source software, free culture and open knowledge&rdquo;. In 2016, over <a href="https://eischmann.wordpress.com/2016/05/26/event-report-oscal-2016/">50% of attendees and 70% of organizers were women</a>, numbers unheard of anywhere else in the world.</p>
<p>The story of Open Labs in Albania is a growing but powerful story of people from a developing country working together to build real solutions to real problems. The story of their movement is motivating, insightful, and worth sharing.</p>

<h2 id="about-foss-wave">About FOSS Wave&nbsp;<a class="hanchor" href="#about-foss-wave" aria-label="Anchor link for: About FOSS Wave">🔗</a></h2>
<p><a href="http://landing.fosswave.com/">FOSS Wave</a> is a group of open source developers and students dedicated to connecting other students into open source communities. They help develop students&rsquo; professional skills for the industry. The mentors have a &ldquo;Boot Up&rdquo; program where interested students reach out for a mentor. Mentors offer direct support to students on getting started. Program organizers also attend various universities to deliver workshops and talks about open source technology. Many mentors are female and speak about diversity in open source communities and give advice for women who want to get involved.</p>
<p><a href="https://communityblog.fedoraproject.org/foss-wave-women-in-technology-part-2/">https://communityblog.fedoraproject.org/foss-wave-women-in-technology-part-2/</a></p>
<p><a href="https://communityblog.fedoraproject.org/foss-wave-fedora-bangalore-india/">https://communityblog.fedoraproject.org/foss-wave-fedora-bangalore-india/</a></p>
<p><a href="https://communityblog.fedoraproject.org/foss-wave-bangalore-uvce/">https://communityblog.fedoraproject.org/foss-wave-bangalore-uvce/</a></p>

<h2 id="virtual-meetup">Virtual meetup&nbsp;<a class="hanchor" href="#virtual-meetup" aria-label="Anchor link for: Virtual meetup">🔗</a></h2>
<p>Over the next month, we hope to combat time zones (six hours in Europe and nine and a half with India) to find mutual times that work well for both communities. These are two separate virtual meetup opportunities, one with WiC and Open Labs, and another with WiC and FOSS Wave. We are trying to collect responses from members of both communities of when they would be available to take part in the meetup.</p>
<p>Are you a member of WiC, Open Labs, or FOSS Wave? Please make sure you fill in your available times in either poll so we can select a date soon!</p>
<ul>
<li><a href="http://whenisgood.net/wic/open-labs-virtual-meetup">WiC + Open Labs meetup time poll</a></li>
<li><a href="http://whenisgood.net/wic/foss-wave-virtual-meetup">WiC + FOSS Wave meetup time poll</a></li>
</ul>
<p>I&rsquo;m looking forward to these awesome communities meeting, sharing experiences, and learning about what other groups of students, women, and other great role models in tech are working on across the world. Hope to see you there too!</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="/tags/gsoc/">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="/blog/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="/blog/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>Cześć, Poland! Back to Europe</title><link>https://jwheel.org/blog/2016/07/czesc-poland-back-europe/</link><pubDate>Mon, 11 Jul 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/07/czesc-poland-back-europe/</guid><description><![CDATA[<p>Earlier this month, I received some of the most exciting news I have had all year. After much finger-crossing and (hopefully) hard work, I am traveling to Kraków, Poland, for the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>&rsquo;s annual <a href="https://flocktofedora.org/">Flock</a> conference. Flock is described by the organizers as the following.</p>
<blockquote>
<p>Flock, now in its fourth year, is a conference for Fedora contributors to come together, discuss new ideas, work to make those ideas a reality, and continue to promote the core values of the Fedora community: Freedom, Friends, Features, and First.</p>
</blockquote>
<p>This year, I am attending as a contributor to the project, giving a talk, and leading a workshop!</p>

<h2 id="poland-new-experience">Poland: New experience&nbsp;<a class="hanchor" href="#poland-new-experience" aria-label="Anchor link for: Poland: New experience">🔗</a></h2>
<p>Last year, I attended Flock 2015 without having much of an idea of what to expect. Flock 2015 was less than ten minutes away from my then future university, the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>. I was a user of Fedora since 2013, but I had never figured out how to start contributing to the project. To take advantage of this experience, I made plans to move into school early so I could see what Flock was all about.</p>
<p>Fast forward a full year, and a lot has changed. Now, I spend many hours a week working on the Fedora Project in many places. I help lead the <a href="https://fedoraproject.org/wiki/CommOps">CommOps</a> and <a href="https://fedoraproject.org/wiki/Marketing">Marketing</a> teams. I organize and attend events on the US East Coast as an <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassador</a>. I&rsquo;m a <a href="https://fedoraproject.org/wiki/GSOC_2016/Student_Application_jflory7">Google Summer of Code 2016</a> student for Fedora. When I walked into the conference center last year as a shy student, I never imagined that many of the people I met would become familiar faces in short time.</p>
<p>This year, Flock 2016 in Poland will be a different experience, and I am looking forward to seeing what it will bring. Do you have plans to attend? If so, allow me to share some details for sessions you will want to add to your <a href="https://flock2016.sched.org/">schedule</a>!</p>

<h2 id="evaluating-our-impact-in-education">Evaluating our impact in education&nbsp;<a class="hanchor" href="#evaluating-our-impact-in-education" aria-label="Anchor link for: Evaluating our impact in education">🔗</a></h2>
<p>At 17:30 UTC+2 on August 2nd, 2016, together with <a href="https://twitter.com/jonatoni">Jona Azizaj</a>, we will lead a talk titled, &ldquo;<a href="https://flock2016.sched.org/event/76nd/university-outreach-new-task-or-new-mindset">University Outreach – New task or new mindset?</a>&rdquo;</p>
<p>In early 2015, the Fedora Council proposed a new objective: the <a href="https://fedoraproject.org/wiki/Objectives/University_Involvement_Initiative">University Involvement Initiative</a>. The purpose? Try to increase exposure of Fedora in university settings to gain new users, but also to hopefully gain new contributors. In order to carry this out, is it a new task, or does it need a new mindset? In this talk, we begin looking at the current mindset and marketing thoughts around attracting university students to Fedora. What is working? What isn&rsquo;t?</p>
<p>We will look at personal experiences among the presenters with getting involved with Fedora as a student for an example. We will focus on how changing the ways we approach reaching out to students might be the best way to begin making an impact on students with Fedora.</p>
<p>If you are someone interested in reaching new audiences of students with Fedora, make sure you work this talk into your agenda.</p>

<h2 id="commops-workshop">CommOps Workshop&nbsp;<a class="hanchor" href="#commops-workshop" aria-label="Anchor link for: CommOps Workshop">🔗</a></h2>
<p>As of recently, I will also be leading the <a href="https://flock2016.sched.org/event/6ypN/commops-workshop">CommOps workshop</a> on August 4th, 2016 at 13:30 UTC+2.</p>
<p>This year, for the first time, CommOps will be hosting its own workshop to tackle existing tasks and project items, offer a place for the community to add their own ideas and wishes for what they would like to see, and planning for the future growth of our sub-project. Flock offers a unique venue to do this as it brings together multiple people from different areas of Fedora in the same rooms. This is a great place for us to take advantage of the combined people power to accomplish tasks that would be hard otherwise.</p>
<p>The workshop will be designed to also try to keep remote contributors in mind, where possible, over IRC and possibly other means.</p>
<p>To help organize thoughts and ideas on the workshop in a public and open way, the workshop planned <a href="https://fedoraproject.org/wiki/CommOps/Flock_2016">in the open</a> on the wiki. We&rsquo;re working with other CommOps contributors on shaping how the workshop will run. We hope to have you join us and see what we&rsquo;re up to in CommOps land!</p>

<h2 id="thank-you-red-hat">Thank you Red Hat&nbsp;<a class="hanchor" href="#thank-you-red-hat" aria-label="Anchor link for: Thank you Red Hat">🔗</a></h2>
<p>Finally, I want to offer my sincere gratitude and appreciation to Red Hat and the Flock sponsors for sponsoring my travel costs to Flock 2016. As a student, there would not be a way for me to afford making this trip on my own expenses. Thanks to the great folks behind Flock, I will be attending and hope to contribute my worth with the above talk and workshop, as well as throughout the entire conference.</p>
<p>Thank you for granting me this opportunity, and I look forward to seeing many other Fedora contributors next month in Poland!</p>
<hr>
<p><em>Image courtesy <a href="https://unsplash.com/@devilcoders">Alexey Topolyanskiy</a> – originally posted to <a href="https://unsplash.com/">Unsplash</a> as <a href="https://unsplash.com/photos/u2GVjG8Ajig">Untitled</a>.</em></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>Fedora Ambassadors: Communicating about Design</title><link>https://jwheel.org/blog/2016/06/fedora-ambassadors-communicating-design/</link><pubDate>Thu, 30 Jun 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/06/fedora-ambassadors-communicating-design/</guid><description><![CDATA[<p>This week is busy and continues to keep the pace of previous weeks. A lot has happened this week in the Fedora Project and I&rsquo;ve taken on a few new tasks too. In addition to existing work on <a href="/tags/gsoc/">Google Summer of Code</a>, Community Operations, Marketing, and more, I wanted to take some time this week to focus on CommOps <a href="https://fedorahosted.org/fedora-commops/ticket/71">Ticket #71</a>. This ticket originally focused on improving accessibility of design resources for Fedora <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassadors</a>. However, after an interesting conversation with <a href="https://fedoraproject.org/wiki/User:Duffy">Máirín Duffy</a> on the <a href="https://fedoraproject.org/wiki/Design">Design Team</a> workflow, I discovered the availability was not the main issue. Instead, it seemed like communicating was an area needing focus.</p>

<h2 id="communicating-between-ambassadors-and-design">Communicating between Ambassadors and Design&nbsp;<a class="hanchor" href="#communicating-between-ambassadors-and-design" aria-label="Anchor link for: Communicating between Ambassadors and Design">🔗</a></h2>
<p>From our conversation, I learned that there was a disconnect between the Ambassadors and the Design team. As a sponsored Ambassador myself, I had never seen anywhere documenting the steps or process I should take to ask for art assets when needed for an event. There were also things I had not considered about what goes into the printing and production process for items too. Every region of the world seems to do things a little differently!</p>
<p>With the information I learned from our conversation in a <a href="https://meetbot.fedoraproject.org/fedora-meeting/2016-06-07/commops.2016-06-07-15.58.html">CommOps meeting</a>, I penned up a first draft of what the <a href="https://fedoraproject.org/wiki/Ambassadors/Design">communication process should look</a> like between Ambassadors and the Design team. The page is not official yet, and I posted a bit ago to the Design Team mailing list <a href="https://lists.fedoraproject.org/archives/list/design-team@lists.fedoraproject.org/thread/QSU5V4ALJFAYRFMQB4RQ365UQRMOECCV/">requesting feedback</a> on the page. Hopefully, if the information passes approval from the Design Team, we can work on socializing this information with all Ambassadors across the four regions of the world. The end goal of this is to make it easier on both the Ambassadors and the Design Team by doing the following…</p>
<ul>
<li>Making it clear what to do as an Ambassador for requesting art assets / printed items</li>
<li>Reducing strain / load on Design Team from repetitive situations / &ldquo;common questions&rdquo;</li>
<li>Creating a faster and more efficient workflow for Ambassadors organizing events and Designers creating art and deliverables</li>
</ul>

<h2 id="long-term-though">Long-term, though…&nbsp;<a class="hanchor" href="#long-term-though" aria-label="Anchor link for: Long-term, though…">🔗</a></h2>
<p>In this discussion, we acknowledged a wiki page is not a long-term solution to this problem. There are now initiatives in the project to help bring greater unity and cohesion between different sub-projects. <a href="https://fedoraproject.org/wiki/CommOps">CommOps</a> is definitely one of the biggest players to this. The future <a href="https://fedorahosted.org/famsco/ticket/373">formation of FOSCo</a> will help specifically towards communication between groups like <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassadors</a>, <a href="https://fedoraproject.org/wiki/Design">Design</a>, and <a href="https://fedoraproject.org/wiki/Marketing">Marketing</a>. <a href="https://fedoraproject.org/wiki/Fedora_Hubs">Fedora Hubs</a> will also contribute to making this process easier by having improved methods of communicating key information like this.</p>
<hr>
<p><em><a href="https://thenounproject.com/search/?q=communication&amp;i=27324">Communication</a> by <a href="https://thenounproject.com/lorenzo.stl">Lorenzo Stella</a> from the <a href="https://thenounproject.com/">Noun Project</a>.</em></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><item><title>Going to Bitcamp 2016</title><link>https://jwheel.org/blog/2016/04/bitcamp-2016/</link><pubDate>Sun, 24 Apr 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/04/bitcamp-2016/</guid><description><![CDATA[<p>Over the weekend of April 9th - 10th, the Fedora Project <a href="https://fedoraproject.org/wiki/Fedora_Ambassadors_North_America_%28FAMNA%29">Ambassadors of North America</a> attended the <a href="http://bitca.mp/">Bitcamp 2016</a> hackathon at the <a href="https://www.umd.edu/">University of Maryland</a>. But what is Bitcamp? The organizers describe it as the following.</p>
<blockquote>
<p>Bitcamp is a place for exploration. You will have 36 hours to delve into your curiosities, learn something new, and make something awesome. With world-class mentors and hundreds of fellow campers, you’re in for an amazing time. If you’re ready for an adventure, see you by the fire!</p>
</blockquote>
<p>The <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a> attended as an event sponsor this year. At the event, we held a table in the hacker arena. The Ambassadors offered mentorship and help to Bitcamp 2016 programmers, gave away some free Fedora swag, and offered an introduction to Linux, <a href="http://www.theopensourceway.org/">open source</a>, and our community. This report recollects some highlights from the event.</p>
<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>

<h2 id="getting-to-bitcamp-2016">Getting to Bitcamp 2016&nbsp;<a class="hanchor" href="#getting-to-bitcamp-2016" aria-label="Anchor link for: Getting to Bitcamp 2016">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/04/chaoyi-friends.png" alt="Bitcamp 2016: Chaoyi Zha (cydrobolt) helping hackers with code" loading="lazy">
  <figcaption>Fedora Ambassador Chaoyi Zha (<a href="https://fedoraproject.org/wiki/User:Cydrobolt" class="bare">https://fedoraproject.org/wiki/User:Cydrobolt</a>) (cydrobolt) helps two other students working on their projects.</figcaption>
</figure>
</p>
<p>I left Rochester, New York around 4:00pm after my classes for the day had finished. Bitcamp check-in started at 7:00pm on Friday, April 8th. It was about a six hour drive for me to get there, and I got to Maryland right around 9:30pm.</p>
<p>Once I arrived, walking in was a crazy experience. Tables upon tables of hackers were lined up bu the hundreds. Most were already working on brainstorming. I meandered my way through the crowds to the Fedora table where <a href="https://fedoraproject.org/wiki/User:Corey84">Corey Sheldon</a>, <a href="https://fedoraproject.org/wiki/User:Mikedep333">Mike DePaulo</a>, and <a href="https://fedoraproject.org/wiki/User:Cydrobolt">Chaoyi Zha</a> were set up.</p>

<h2 id="meeting-the-hackers">Meeting the hackers&nbsp;<a class="hanchor" href="#meeting-the-hackers" aria-label="Anchor link for: Meeting the hackers">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/04/corey-mentoring.png" alt="Bitcamp 2016: Corey Sheldon (linuxmodder) helps a student install Fedora" loading="lazy">
  <figcaption>Fedora Ambassador Corey Sheldon (<a href="https://fedoraproject.org/wiki/User:Corey84" class="bare">https://fedoraproject.org/wiki/User:Corey84</a>) (linuxmodder) works with a student trying to set up dual-boot on his laptop.</figcaption>
</figure>
</p>
<p>Many other students came up to the table before the hackathon officially began. We interacted with several students and helped establish ourselves as mentors as well. Additionally, we also had a <a href="https://badges.fedoraproject.org/badge/bitcamp-2016">badge</a> that attendees could scan to get added to their FAS account!</p>
<p>Once the event officially began, teams of people began working on their projects. Many people had grand ideas of projects to cram into the one weekend. For a brief time, the Ambassadors had a chance to rest from answering questions and helping people with their own hardware.</p>
<p>The hackers began settling into a groove for the evening.</p>

<h2 id="spending-the-night">Spending the night&nbsp;<a class="hanchor" href="#spending-the-night" aria-label="Anchor link for: Spending the night">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/04/all-the-hackers.png" alt="Bitcamp 2016: Over 1,000 hackers attended at the University of Maryland" loading="lazy">
  <figcaption>Over a thousand hackers were present at Bitcamp 2016.</figcaption>
</figure>
</p>
<p>As the day turned into night, the home stretch of the hackathon was beginning. Those with firm ideas were deeply focused on their projects. Others were taking their plans back to the drawing board to overcome unexpected difficulties. Things began settling down for the night. The same cycle repeated itself for both Friday and Saturday nights.</p>
<p>Around this time, we had waves of interested hackers in Fedora, open source software, and Linux approach the table. This time was great for personalized, one-on-one conversations with visitors. Many excellent connections happened during this time!</p>

<h2 id="mentoring">Mentoring&nbsp;<a class="hanchor" href="#mentoring" aria-label="Anchor link for: Mentoring">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/04/mikedep333-at-table-e1461525437165.png" alt="Bitcamp 2016: Mike DePaulo (mikedep333) at the Fedora Bitcamp 2016 table" loading="lazy">
  <figcaption>Fedora Ambassador Mike DePaulo (<a href="https://fedoraproject.org/wiki/User:Mikedep333" class="bare">https://fedoraproject.org/wiki/User:Mikedep333</a>) (mikedep333) demonstrated his triple-boot MacBook with OS X, Windows, and Fedora at Bitcamp 2016.</figcaption>
</figure>
</p>
<p>During <a href="http://bitca.mp/">Bitcamp</a>, there were several opportunities and connections made between <a href="https://fedoraproject.org/wiki/Ambassadors">Fedora Ambassadors</a> and university students.</p>
<p>For most of one night, Corey worked with one student who was aiming to do a full dual-boot installation on his laptop with Windows 10 UEFI. For a mixed variety of issues, he was unable to get Fedora working properly on his system. With the help of Corey, he was able to install and use Fedora on his laptop. He was very excited to finally get it working and was hoping to use it for development work in both classwork and personal projects. He was also a repeat visitor from BrickHack and remembered some of the booth members from the last hackathon.</p>
<p>Chaoyi traveled around the hacker space and worked with students looking to get help on web development projects. Chaoyi was able to give advice and help for students working with HTML, JavaScript / NodeJS, and Python. He traveled around the room for most of both nights teaching and showing students how to work on their projects and promoting the benefits of doing their work open source.</p>
<p>
<figure>
  <img src="/blog/2016/04/table-closeup.png" alt="Bitcamp 2016: whatcanidoforfedora.org was a popular tool" loading="lazy">
  <figcaption>The whatcanidoforfedora.org (<a href="http://whatcanidoforfedora.org" class="bare">http://whatcanidoforfedora.org</a>) site proved a useful tool for students looking to contribute to open source.</figcaption>
</figure>
</p>
<p>Mike also helped several students at Bitcamp, and like at BrickHack, his triple-booted MacBook with OS X, Windows, and Fedora was a popular item. Students with Macs often came and asked him about his setup and how he got it working. Mike was also able to help answer questions about developing in Fedora and share his experience working with tools available in Fedora for working on his projects for work and for fun.</p>
<p>Many students were looking for help with how to better get experience working on software for their future careers. As a student familiar with open source, I enjoyed talking to these students about how open source was a great resource for them. I explained how open source is a great way to get real world experience without working an &ldquo;official&rdquo; job, showed how they could make an impact on the world and start doing things, and why we do open source. It was gratifying the see these students get something out of our discussions and build something awesome in the open by the end of hackathon.</p>
<p>
<figure>
  <img src="/blog/2016/04/badges.png" alt="Bitcamp 2016: 3D printed Fedora Badges" loading="lazy">
  <figcaption>We 3-D printed a few Fedora Badges (<a href="https://badges.fedoraproject.org/about" class="bare">https://badges.fedoraproject.org/about</a>) using STL files at another vendor’s table.</figcaption>
</figure>
</p>
<p>Overall, I feel like the Fedora Project&rsquo;s impact was notable and concentrated at the event. I am extremely thankful and fortunate to have been sponsored to attend Bitcamp as an Ambassador for the Fedora Project.</p>]]></description></item><item><title>HFOSS: Quiz #2</title><link>https://jwheel.org/blog/2016/04/hfoss-quiz-2/</link><pubDate>Wed, 06 Apr 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/04/hfoss-quiz-2/</guid><description><![CDATA[<p>In the <a href="https://hfoss-ritjoe.rhcloud.com/">Humanitarian Free and Open Source Software Development (HFOSS)</a> course at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, quizzes are in the form of blog posts submitted during the class period. The room stays quiet, but it is an open IRC quiz, so many of the students collaborated with each other in <a href="https://webchat.freenode.net/?channels=rit-foss">#rit-foss</a> on freenode for the quiz.</p>
<p>This post is my quiz submission for the Spring 2016 semester <a href="https://hfoss-ritjoe.rhcloud.com/quiz/quiz2">Quiz #2</a>.</p>

<h2 id="hfoss-spring-2016-quiz-2">HFOSS Spring 2016, Quiz #2&nbsp;<a class="hanchor" href="#hfoss-spring-2016-quiz-2" aria-label="Anchor link for: HFOSS Spring 2016, Quiz #2">🔗</a></h2>

<h4 id="expand-each-of-the-following-acronyms">Expand each of the following acronyms.&nbsp;<a class="hanchor" href="#expand-each-of-the-following-acronyms" aria-label="Anchor link for: Expand each of the following acronyms.">🔗</a></h4>
<ol>
<li>IRC: <strong><a href="https://en.wikipedia.org/wiki/Internet_Relay_Chat">Internet Relay Chat</a></strong></li>
<li>FOSS: <strong><a href="https://en.wikipedia.org/wiki/Free_and_open-source_software">Free and Open Source Software</a></strong></li>
<li>OLPC: <strong><a href="https://en.wikipedia.org/wiki/One_Laptop_per_Child">One Laptop per Child</a></strong></li>
<li>DVCS: <strong><a href="https://en.wikipedia.org/wiki/Distributed_version_control">Distributed version control system</a></strong></li>
<li>FSF: <strong><a href="https://en.wikipedia.org/wiki/Free_Software_Foundation">Free Software Foundation</a></strong></li>
<li>PR: <strong><a href="https://en.wikipedia.org/wiki/Distributed_version_control#Pull_requests">Pull Request</a></strong></li>
</ol>

<h4 id="what-is-the-short-two-letter-name-for-the-olpc-computers-used-in-the-final-project-for-this-class">What is the short, two-letter name for the OLPC computers used in the final project for this class?&nbsp;<a class="hanchor" href="#what-is-the-short-two-letter-name-for-the-olpc-computers-used-in-the-final-project-for-this-class" aria-label="Anchor link for: What is the short, two-letter name for the OLPC computers used in the final project for this class?">🔗</a></h4>
<ul>
<li><a href="https://en.wikipedia.org/wiki/OLPC_XO">XO laptops</a></li>
</ul>

<h4 id="what-is-the-one-word-name-for-the-interface-used-in-the-olpc-computers">What is the one-word name for the interface used in the OLPC computers?&nbsp;<a class="hanchor" href="#what-is-the-one-word-name-for-the-interface-used-in-the-olpc-computers" aria-label="Anchor link for: What is the one-word name for the interface used in the OLPC computers?">🔗</a></h4>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Sugar_%28software%29">Sugar</a> (SoaS)</li>
</ul>

<h4 id="what-is-the-grade-level-we-are-targeting-our-olpc-applications-for">What is the grade level we are targeting our OLPC applications for?&nbsp;<a class="hanchor" href="#what-is-the-grade-level-we-are-targeting-our-olpc-applications-for" aria-label="Anchor link for: What is the grade level we are targeting our OLPC applications for?">🔗</a></h4>
<ul>
<li><a href="https://hfoss-ritjoe.rhcloud.com/static/decks/nysp12cclsmath-grade4only.pdf">4th grade students</a></li>
</ul>

<h4 id="briefly-define-the-following-instructional-theories-giving-the-role-of-the-instructor-in-each">Briefly define the following instructional theories, giving the role of the instructor in each.&nbsp;<a class="hanchor" href="#briefly-define-the-following-instructional-theories-giving-the-role-of-the-instructor-in-each" aria-label="Anchor link for: Briefly define the following instructional theories, giving the role of the instructor in each.">🔗</a></h4>
<ul>
<li>Didactic: <strong>Lecturing; instructor speaks to class about topic</strong></li>
<li>Dialectic: <strong>Similar to the Socratic seminar; discussion-based instructional teaching with interactions between the instructor and the class</strong></li>
<li>Constructivist: <strong>Teaching style that combines experiences with teaching to create a learning experience that lends power to the learner; the instructor acts as a facilitator rather than a traditional lecturer</strong></li>
</ul>

<h4 id="several-elements-are-combined-in-different-ways-to-form-the-creative-commons-licenses-match-each-shorthand-given-in-the-list-with-the-description-of-that-license-element-below">Several elements are combined in different ways to form the Creative Commons licenses. Match each shorthand given in the list with the description of that license element below.&nbsp;<a class="hanchor" href="#several-elements-are-combined-in-different-ways-to-form-the-creative-commons-licenses-match-each-shorthand-given-in-the-list-with-the-description-of-that-license-element-below" aria-label="Anchor link for: Several elements are combined in different ways to form the Creative Commons licenses. Match each shorthand given in the list with the description of that license element below.">🔗</a></h4>
<ol>
<li><strong>NC</strong>: <a href="https://creativecommons.org/licenses/by-nc/4.0">Non-Commercial</a>; You may not use the work for commercial purposes.</li>
<li><strong>SA</strong>: <a href="https://creativecommons.org/licenses/by-sa/4.0">Share-alike</a>; You must convey the same rights &ldquo;downstream&rdquo; that were conveyed to you by &ldquo;upstream&rdquo;.</li>
<li><strong>ND</strong>: <a href="https://creativecommons.org/licenses/by-nd/4.0">No Derivatives</a>; You may not make changes to the work.</li>
<li><strong>BY</strong>: <a href="https://creativecommons.org/licenses/by/4.0">Attribution</a>; You must attribute the contributions of the original or upstream creators of the work.</li>
</ol>

<h4 id="the-presence-of-which-license-elements-make-a-license-non-free-according-to-the-fsf">The presence of which license elements make a license &ldquo;non-free&rdquo; according to the FSF?&nbsp;<a class="hanchor" href="#the-presence-of-which-license-elements-make-a-license-non-free-according-to-the-fsf" aria-label="Anchor link for: The presence of which license elements make a license &ldquo;non-free&rdquo; according to the FSF?">🔗</a></h4>
<ul>
<li>(1) <a href="https://creativecommons.org/licenses/by-nc/4.0">Non-Commercial</a>; You may not use the work for commercial purposes.</li>
<li>(3) <a href="https://creativecommons.org/licenses/by-nd/4.0">No Derivatives</a>; You may not make changes to the work.</li>
</ul>

<h4 id="which-license-element-is-a-copyleft-give-the-letter-1-pt">Which license element is a copyleft? (give the letter, 1 pt)&nbsp;<a class="hanchor" href="#which-license-element-is-a-copyleft-give-the-letter-1-pt" aria-label="Anchor link for: Which license element is a copyleft? (give the letter, 1 pt)">🔗</a></h4>
<ul>
<li>(2) <a href="https://creativecommons.org/licenses/by-sa/4.0">Share-alike</a>; You must convey the same rights &ldquo;downstream&rdquo; that were conveyed to you by &ldquo;upstream&rdquo;.</li>
</ul>

<h4 id="name-two-projects-that-distribute-a-body-of-non-software-free-culture-data-and-briefly-name-or-describe-the-kind-of-data">Name two projects that distribute a body of non-software, free culture data, and briefly name or describe the kind of data.&nbsp;<a class="hanchor" href="#name-two-projects-that-distribute-a-body-of-non-software-free-culture-data-and-briefly-name-or-describe-the-kind-of-data" aria-label="Anchor link for: Name two projects that distribute a body of non-software, free culture data, and briefly name or describe the kind of data.">🔗</a></h4>
<ol>
<li><a href="https://docs.fedoraproject.org/en-US/index.html">Fedora Project Documentation</a> (CC-BY-SA 3.0): Provides documentation and instructions on using the Fedora operating system and how to achieve certain tasks using it</li>
<li><a href="http://manybooks.net/categories/CCL">ManyBooks</a> (mixed variety of CC licensed works): Provides downloads of freely licensed literature, novels, and books</li>
</ol>

<h4 id="list-or-describe-the-four-rs-as-a-shorthand-for-the-freedoms-attached-to-software-for-it-to-be-considered-free-and-open-source">List or describe “<a href="http://opencontent.org/blog/archives/1123">the four R’s</a>” as a shorthand for the freedoms attached to software for it to be considered “free and open source”.&nbsp;<a class="hanchor" href="#list-or-describe-the-four-rs-as-a-shorthand-for-the-freedoms-attached-to-software-for-it-to-be-considered-free-and-open-source" aria-label="Anchor link for: List or describe “the four R’s” as a shorthand for the freedoms attached to software for it to be considered “free and open source”.">🔗</a></h4>
<ol>
<li>Read</li>
<li>Run</li>
<li>Revise</li>
<li>Redistribute</li>
</ol>

<h2 id="bonus-questions">Bonus Questions&nbsp;<a class="hanchor" href="#bonus-questions" aria-label="Anchor link for: Bonus Questions">🔗</a></h2>

<h4 id="true-or-false-you-cannot-sell-gpld-software">True or False: You cannot sell GPL&rsquo;d software.&nbsp;<a class="hanchor" href="#true-or-false-you-cannot-sell-gpld-software" aria-label="Anchor link for: True or False: You cannot sell GPL&rsquo;d software.">🔗</a></h4>
<ul>
<li>False</li>
</ul>

<h4 id="true-or-false-you-can-fork-a-gpl-licensed-project-and-release-it-under-an-mit-license">True or False: You can fork a GPL licensed Project and release it under an MIT license?&nbsp;<a class="hanchor" href="#true-or-false-you-can-fork-a-gpl-licensed-project-and-release-it-under-an-mit-license" aria-label="Anchor link for: True or False: You can fork a GPL licensed Project and release it under an MIT license?">🔗</a></h4>
<ul>
<li>False</li>
</ul>

<h4 id="true-or-false-you-can-fork-a-mit-licensed-project-and-release-it-under-an-gpl-license">True or False: You can fork a MIT licensed Project and release it under an GPL license?&nbsp;<a class="hanchor" href="#true-or-false-you-can-fork-a-mit-licensed-project-and-release-it-under-an-gpl-license" aria-label="Anchor link for: True or False: You can fork a MIT licensed Project and release it under an GPL license?">🔗</a></h4>
<ul>
<li>True</li>
</ul>

<h4 id="when-does-a-work-become-copyrighted-by-an-author">When does a work become &ldquo;copyrighted&rdquo; by an author?&nbsp;<a class="hanchor" href="#when-does-a-work-become-copyrighted-by-an-author" aria-label="Anchor link for: When does a work become &ldquo;copyrighted&rdquo; by an author?">🔗</a></h4>
<ul>
<li>When it is created</li>
</ul>]]></description></item><item><title>HFOSS: Community Architecture (CommArch) Project Proposal</title><link>https://jwheel.org/blog/2016/03/hfoss-commarch-project-proposal/</link><pubDate>Fri, 04 Mar 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/03/hfoss-commarch-project-proposal/</guid><description><![CDATA[<h2 id="what-is-this">What is this?&nbsp;<a class="hanchor" href="#what-is-this" aria-label="Anchor link for: What is this?">🔗</a></h2>
<p>This post serves as the project proposal for me and my team&rsquo;s <a href="https://hfoss-ritjoe.rhcloud.com/">Humanitarian Free and Open Source Software Development</a> &ldquo;<a href="https://hfoss-ritjoe.rhcloud.com/static/hw/commarch.txt">Community Architecture</a>&rdquo; project (shortened to CommArch)!</p>
<p>In this project proposal, we take a preliminary look at the project we&rsquo;re looking at analyzing, <a href="https://github.com/fedora-infra/tahrir">Tahrir</a>, and the different criteria we are assigned to look at.</p>
<p>
<figure>
  <img src="/img/Full-Logo.png" alt="Fedora is a free and open-source Linux distribution." loading="lazy">
  <figcaption>Fedora is a free and open-source Linux distribution.</figcaption>
</figure>
</p>

<h2 id="team-members">Team Members&nbsp;<a class="hanchor" href="#team-members" aria-label="Anchor link for: Team Members">🔗</a></h2>
<table>
  <thead>
      <tr>
          <th><strong>Name</strong></th>
          <th><strong>Email</strong></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td><a href="https://rdp1070.wordpress.com/">Bobby Pruden</a></td>
          <td>*******@rit.edu</td>
      </tr>
      <tr>
          <td><a href="http://blog.wilfriede.me/">Wilfried Hounyo</a></td>
          <td>********.******@gmail.com</td>
      </tr>
      <tr>
          <td><a href="https://spg1502igme582.wordpress.com/">Stephen Garabedian</a></td>
          <td>*******@rit.edu</td>
      </tr>
      <tr>
          <td>Justin Wheeler</td>
          <td>*******@gmail.com</td>
      </tr>
  </tbody>
</table>

<h2 id="project">Project&nbsp;<a class="hanchor" href="#project" aria-label="Anchor link for: Project">🔗</a></h2>
<p><em>Tahrir</em> by the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a></p>

<h2 id="description">Description&nbsp;<a class="hanchor" href="#description" aria-label="Anchor link for: Description">🔗</a></h2>
<p>Tahrir is a <a href="http://www.pylonsproject.org/">Pyramid</a> app for distributing your own custom badges (based off of <a href="https://wiki.mozilla.org/Badges">Mozilla Open Badges</a>). The back-end is written in Python with an HTML/CSS and JavaScript front-end and the project is a smaller part of the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>.</p>

<h2 id="team-member-roles">Team Member Roles&nbsp;<a class="hanchor" href="#team-member-roles" aria-label="Anchor link for: Team Member Roles">🔗</a></h2>

<h4 id="justin-and-wilfried">Justin and Wilfried&nbsp;<a class="hanchor" href="#justin-and-wilfried" aria-label="Anchor link for: Justin and Wilfried">🔗</a></h4>
<ol>
<li>Project Report I-R</li>
<li>git_by_a_bus</li>
</ol>

<h4 id="stephen-and-bobby">Stephen and Bobby&nbsp;<a class="hanchor" href="#stephen-and-bobby" aria-label="Anchor link for: Stephen and Bobby">🔗</a></h4>
<ol>
<li>Project Report A-H</li>
<li>Calloway Coefficient of Fail</li>
</ol>

<h2 id="source-code-repository-url">Source Code Repository URL&nbsp;<a class="hanchor" href="#source-code-repository-url" aria-label="Anchor link for: Source Code Repository URL">🔗</a></h2>
<p><a href="https://github.com/fedora-infra/tahrir">fedora-infra/tahrir</a></p>

<h2 id="upstream-mentors">Upstream Mentors&nbsp;<a class="hanchor" href="#upstream-mentors" aria-label="Anchor link for: Upstream Mentors">🔗</a></h2>
<table>
  <thead>
      <tr>
          <th><strong>Name</strong></th>
          <th><strong>Email</strong></th>
      </tr>
  </thead>
  <tbody>
      <tr>
          <td>Ralph Bean (threebean)</td>
          <td>*****@redhat.com</td>
      </tr>
      <tr>
          <td>Remy DeCausemaker (decause)</td>
          <td>*******@redhat.com</td>
      </tr>
      <tr>
          <td>Pierre-Yves Chibon (pypingou)</td>
          <td>******@pingoured.fr</td>
      </tr>
  </tbody>
</table>

<h2 id="communication-methods">Communication Methods&nbsp;<a class="hanchor" href="#communication-methods" aria-label="Anchor link for: Communication Methods">🔗</a></h2>
<p>The following methods of communication are ordered in the most preferred way to the least.</p>
<ol>
<li><strong>IRC channel</strong> on freenode (<a href="https://webchat.freenode.net/?channels=fedora-apps">#fedora-apps</a>)</li>
<li><strong>Issue tracker</strong> on <a href="https://github.com/fedora-infra/tahrir/issues">GitHub</a></li>
<li><strong>Mailing list</strong> via <a href="https://lists.fedoraproject.org/archives/list/infrastructure@lists.fedoraproject.org/">infrastructure@lists.fedoraproject.org</a></li>
</ol>

<h2 id="what-are-the-easy-parts">What are the easy parts?&nbsp;<a class="hanchor" href="#what-are-the-easy-parts" aria-label="Anchor link for: What are the easy parts?">🔗</a></h2>
<ul>
<li>Project is fairly small (even though it is part of a larger project)</li>
<li>People to ask for help when needed</li>
<li><a href="https://github.com/tomheon/git_by_a_bus">Git-by-a-bus</a> is going to make analytics of contributors super easy</li>
<li>Distribution of work will allow us to complete the project in a timely manner</li>
</ul>

<h2 id="what-are-the-hard-parts">What are the hard parts?&nbsp;<a class="hanchor" href="#what-are-the-hard-parts" aria-label="Anchor link for: What are the hard parts?">🔗</a></h2>
<ul>
<li>Lack of a frame of reference for some team members who have never worked with open source projects in the past (e.g. we are unable to compare activity or its community to other projects)</li>
<li>Since the project is a smaller project inside of a larger one (Fedora Project), it will be challenging to look at it in a modular sense</li>
<li>Separation of dependencies from project requirements (<a href="http://openbadges.org/">Open Badges</a> requirements and Tahrir requirements)</li>
</ul>

<h2 id="how-will-you-overcome-both">How will you overcome both?&nbsp;<a class="hanchor" href="#how-will-you-overcome-both" aria-label="Anchor link for: How will you overcome both?">🔗</a></h2>

<h4 id="hard-stuff">Hard Stuff&nbsp;<a class="hanchor" href="#hard-stuff" aria-label="Anchor link for: Hard Stuff">🔗</a></h4>
<ul>
<li>We have two people who are more advanced at hacking who can hopefully guide the two who aren&rsquo;t through the project, effectively eliminating the lack of reference point.</li>
<li>Three of our members are not people involved in the Fedora Project, and as such won&rsquo;t be distracted by its involvement with Fedora and will only look at the project itself.</li>
<li>Read up on the existing documentation and test the various endpoints of the project to identify what is needed with Open Badge and what the project is implementing itself.</li>
</ul>]]></description></item><item><title>HFOSS: Quiz #1</title><link>https://jwheel.org/blog/2016/03/hfoss-quiz-1/</link><pubDate>Fri, 04 Mar 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/03/hfoss-quiz-1/</guid><description><![CDATA[<p>In the <a href="https://hfoss-ritjoe.rhcloud.com/">Humanitarian Free and Open Source Software Development (HFOSS)</a> course at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>, quizzes are in the form of blog posts submitted during the class period. The room stays quiet, but it is an open IRC quiz, so many of the students collaborated with each other in <a href="https://webchat.freenode.net/?channels=rit-foss">#rit-foss</a> on freenode for the quiz.</p>
<p>This post is my quiz submission for the Spring 2016 semester <a href="https://hfoss-ritjoe.rhcloud.com/static/hw/quiz1.txt">Quiz #1</a>.</p>

<h2 id="hfoss-spring-2016-quiz-1">HFOSS Spring 2016, Quiz #1&nbsp;<a class="hanchor" href="#hfoss-spring-2016-quiz-1" aria-label="Anchor link for: HFOSS Spring 2016, Quiz #1">🔗</a></h2>

<h4 id="what-is-the-name-of-the-version-control-system-we-use-in-this-course">What is the name of the version control system we use in this course?&nbsp;<a class="hanchor" href="#what-is-the-name-of-the-version-control-system-we-use-in-this-course" aria-label="Anchor link for: What is the name of the version control system we use in this course?">🔗</a></h4>
<ul>
<li><a href="https://git-scm.com/">Git</a></li>
</ul>

<h4 id="bonus-give-the-name-for-another-version-control-system">Bonus: Give the name for another version control system.&nbsp;<a class="hanchor" href="#bonus-give-the-name-for-another-version-control-system" aria-label="Anchor link for: Bonus: Give the name for another version control system.">🔗</a></h4>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Mercurial">Mercurial</a></li>
</ul>

<h4 id="we-refer-to-sites-that-host-source-code-as-forges-what-is-the-name-of-the-primary-forge-used-in-this-course">We refer to sites that host source code as &ldquo;forges&rdquo;. What is the name of the primary forge used in this course?&nbsp;<a class="hanchor" href="#we-refer-to-sites-that-host-source-code-as-forges-what-is-the-name-of-the-primary-forge-used-in-this-course" aria-label="Anchor link for: We refer to sites that host source code as &ldquo;forges&rdquo;. What is the name of the primary forge used in this course?">🔗</a></h4>
<ul>
<li><a href="https://github.com/">GitHub</a></li>
</ul>

<h4 id="rearrange-the-following-to-make-the-best-matches">Rearrange the following to make the best matches.&nbsp;<a class="hanchor" href="#rearrange-the-following-to-make-the-best-matches" aria-label="Anchor link for: Rearrange the following to make the best matches.">🔗</a></h4>
<p>For the next several questions, rearrange the items in the column on the right, as necessary, so that they best match the names of key figures in the column on the left.</p>
<hr>
<p><em>For example</em>:</p>
<ol>
<li><a href="https://en.wikipedia.org/wiki/Randall_Munroe"><strong>Randall Munroe</strong></a>
<ol>
<li>Saturday Morning Breakfast Cereal</li>
</ol>
</li>
<li><a href="https://en.wikipedia.org/wiki/Zach_Weiner"><strong>Zach Weiner</strong></a>
<ol>
<li>XKCD</li>
</ol>
</li>
<li><a href="https://en.wikipedia.org/wiki/Walt_Disney"><strong>Walt Disney</strong></a>
<ol>
<li>Mickey Mouse</li>
</ol>
</li>
</ol>
<p>…becomes…</p>
<ol>
<li><strong>Randall Munroe</strong>
<ol>
<li>XKCD</li>
</ol>
</li>
<li><strong>Zach Weiner</strong>
<ol>
<li>Saturday Morning Breakfast Cereal</li>
</ol>
</li>
<li><strong>Walt Disney</strong>
<ol>
<li>Mickey Mouse</li>
</ol>
</li>
</ol>
<hr>
<ol>
<li><a href="https://en.wikipedia.org/wiki/Andrew_S._Tanenbaum"><strong>Andrew Tannenbaum</strong></a>
<ol>
<li><a href="https://en.wikipedia.org/wiki/MINIX">Minix</a></li>
</ol>
</li>
<li><a href="https://en.wikipedia.org/wiki/Linus_Torvalds"><strong>Linus Torvalds</strong></a>
<ol>
<li><a href="https://en.wikipedia.org/wiki/Linux">Linux</a></li>
</ol>
</li>
<li><a href="https://en.wikipedia.org/wiki/Bruce_Perens"><strong>Bruce Perens</strong></a>
<ol>
<li><a href="https://en.wikipedia.org/wiki/Debian_Free_Software_Guidelines">Debian Free Software Guidelines</a></li>
</ol>
</li>
<li><a href="https://en.wikipedia.org/wiki/Richard_Stallman"><strong>Richard Stallman</strong></a>
<ol>
<li><a href="https://en.wikipedia.org/wiki/Free_Software_Foundation">Free Software Foundation</a> / <a href="https://en.wikipedia.org/wiki/GNU_Project">GNU Project</a></li>
</ol>
</li>
</ol>

<h4 id="we-discussed-several-concepts-involving-rights-restrictions-and-licensing-match-the-term-on-the-left-with-the-most-appropriate-description-on-the-right">We discussed several concepts involving rights, restrictions, and licensing. Match the term on the left with the most appropriate description on the right.&nbsp;<a class="hanchor" href="#we-discussed-several-concepts-involving-rights-restrictions-and-licensing-match-the-term-on-the-left-with-the-most-appropriate-description-on-the-right" aria-label="Anchor link for: We discussed several concepts involving rights, restrictions, and licensing. Match the term on the left with the most appropriate description on the right.">🔗</a></h4>
<ol>
<li><strong><a href="https://en.wikipedia.org/wiki/Trademark">Trademark</a></strong>
<ol>
<li>Lasts as long as used &amp; defended</li>
</ol>
</li>
<li><strong><a href="https://en.wikipedia.org/wiki/Copyright">Copyright</a></strong>
<ol>
<li>Life of the author plus 70 years</li>
</ol>
</li>
<li><strong><a href="https://en.wikipedia.org/wiki/Patent">Patent</a></strong>
<ol>
<li>20 year term</li>
</ol>
</li>
</ol>
<hr>
<ol>
<li><strong>Trademark</strong>
<ol>
<li>Protects consumers from confusing one product with another</li>
</ol>
</li>
<li><strong>Copyright</strong>
<ol>
<li>Arises as soon as a work takes tangible form</li>
</ol>
</li>
<li><strong>Patent</strong>
<ol>
<li>Precedence is given to the first to file an application</li>
</ol>
</li>
</ol>

<h4 id="list-or-describe-the-four-r-as-a-shorthand-for-the-freedoms-attached-to-software-for-it-to-be-considered-free-and-open-source">List or describe &ldquo;<a href="http://opencontent.org/blog/archives/1123">the four R&rsquo;s</a>&rdquo; as a shorthand for the freedoms attached to software for it to be considered &ldquo;free and open source&rdquo;.&nbsp;<a class="hanchor" href="#list-or-describe-the-four-r-as-a-shorthand-for-the-freedoms-attached-to-software-for-it-to-be-considered-free-and-open-source" aria-label="Anchor link for: List or describe &ldquo;the four R&rsquo;s&rdquo; as a shorthand for the freedoms attached to software for it to be considered &ldquo;free and open source&rdquo;.">🔗</a></h4>
<ol>
<li>Read</li>
<li>Run</li>
<li>Revise</li>
<li>Redistribute</li>
</ol>]]></description></item><item><title>2015 - My Year in Review</title><link>https://jwheel.org/blog/2016/02/2015-year-review/</link><pubDate>Thu, 25 Feb 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/02/2015-year-review/</guid><description><![CDATA[<p>I originally began drafting this post 900 miles away from my current location. It was an hour until the New Year and I was trying to put together a rough outline of the things that made 2015 such an incredible year for me. However, for reasons I don&rsquo;t really know, I never followed up on finishing this draft. So now, I&rsquo;d like to present my Year in Review post looking at my 2015.</p>

<h2 id="my-year-in-review">My Year in Review&nbsp;<a class="hanchor" href="#my-year-in-review" aria-label="Anchor link for: My Year in Review">🔗</a></h2>
<p>With an hour left until the New Year, there never seemed a better time to begin writing my Year in Review article. While it is a stereotypical kind of thing to do, I also think it&rsquo;s a great opportunity to reflect on the gifts, changes, and special occasions that this past year has presented to me. 2015 is special to me in many ways because it marks a significant milestone in my life of moving away from home and beginning my journey into full adulthood.</p>
<p>There are many important and special people in my life that have made this year incredible, and I want to reflect and make note of this.</p>

<h2 id="high-school-college"><code>&lt;/high school&gt;</code> <code>&lt;college&gt;</code>&nbsp;<a class="hanchor" href="#high-school-college" aria-label="Anchor link for: &lt;/high school&gt; &lt;college&gt;">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/02/Optimized-Graduation.jpg" alt="Graduation with my family" loading="lazy">
  <figcaption>My high school graduation day.</figcaption>
</figure>
</p>
<p>This past May, I graduated from high school. Looking back, it&rsquo;s interesting to see how much has changed in my personal life and even in my own interests. Some friends have come and gone, but there are an important core of people who have always been present in my life, and I am privileged to have been one to know them deeply over the past four years.</p>
<p>Interestingly enough, it wasn&rsquo;t until my junior year when I realized that I wanted to spend my life working in computer science. I remember when I walked into the classroom of my AP Computer Science teacher asking how I could get going with only one year left. Now, here I am immersing myself in digital technology in countless different ways. I feel like I am where I am meant to be.</p>
<p>
<figure>
  <img src="/blog/2016/02/Software-Freedom-Day-at-RIT-Fedora.jpg" alt="Software Freedom Day at the Rochester Institute of Technology" loading="lazy">
  <figcaption>Software Freedom Day (<a href="https://fedoramagazine.org/celebrating-software-freedom-day-2015/" class="bare">https://fedoramagazine.org/celebrating-software-freedom-day-2015/</a>) at the Rochester Institute of Technology. I’m in the middle!</figcaption>
</figure>
</p>
<p>These four years haven&rsquo;t been easy either. I worked hard to get to the place I wanted to go. Despite quite a few personal challenges, I was fortunate enough to afford an education here at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>. Just in the semester and a half that I have been enrolled here, I&rsquo;ve met countless people who have affected my life and helped shape the direction of where I&rsquo;m going in the world. Special shout-out to the <a href="https://fossrit.github.io/">FOSSbox</a> and <a href="https://ritlug.com/">RITlug</a>, and everyone involved with both.</p>

<h2 id="coffee-and-doughnuts">Coffee and Doughnuts&nbsp;<a class="hanchor" href="#coffee-and-doughnuts" aria-label="Anchor link for: Coffee and Doughnuts">🔗</a></h2>
<p>
<figure>
  <img src="/blog/2016/02/Cinnamon-Roll-Queen.jpg" alt="Cinnamon Roll Queen" loading="lazy">
  <figcaption>On occasion, I might model for the Dutch Monkey Instagram (<a href="https://www.instagram.com/dutchmonkeydoughnuts/" class="bare">https://www.instagram.com/dutchmonkeydoughnuts/</a>) as the Cinnamon Roll Queen.</figcaption>
</figure>
</p>
<p>For most of 2015, I worked a not-so-typical job at <a href="http://www.dutchmonkeydoughnuts.com/">Dutch Monkey Doughnuts</a> in my hometown. Dutch Monkey is an important part of my town and they have helped create a name for people visiting the region. They&rsquo;re well-known for their homemade doughnuts and <a href="https://counterculturecoffee.com/">Counter Culture Coffee</a>, both of which are legendary within their own right.</p>
<p>During my time at Dutch Monkey, I was able to attend workshops and classes at the Counter Culture Coffee Training Center in Atlanta. Throughout the eight or nine classes I took, I was able to further my understanding and appreciation for an extremely complex and fascinating beverage. My appreciation and love for coffee has become a part of my being. The coffee industry is a wild and exciting place, and it is very much an ethical hotbed of all kinds of issues. I joke to myself that if sysadmin doesn&rsquo;t work out, the coffee industry could always make a good fallback…</p>
<p>I was also fortunate to have some awesome co-workers who helped make the 4am shifts a little more enjoyable. Special shout-out to Jordan Hughes for the long talks about music, the music industry, and so many other things. I learned a lot from you and you&rsquo;ve had a big impact on my own music tastes.</p>

<h2 id="minecon-and-spigotmc">MINECON and SpigotMC&nbsp;<a class="hanchor" href="#minecon-and-spigotmc" aria-label="Anchor link for: MINECON and SpigotMC">🔗</a></h2>
<p>This was single-handedly one of the most profound events of the year for me. If you weren&rsquo;t aware, I am a community moderator for the <a href="https://www.spigotmc.org/">SpigotMC</a> project. I have been a moderator since April 2014. Spigot is my true first open-source project, even though I wasn&rsquo;t a contributor of code, but a community builder (or so I like to think).</p>

<h4 id="minecon-announced">MINECON announced&nbsp;<a class="hanchor" href="#minecon-announced" aria-label="Anchor link for: MINECON announced">🔗</a></h4>
<p>In February of 2015, Mojang announced that <a href="http://mojang.com/2015/02/minecon-2015-announced/">MINECON 2015</a> would be happening in London, England. Instantly, I thought there would be no way I would ever be able to afford a trip overseas for a two-day convention. However, I found the <a href="http://mojang.com/2015/03/minecon-2015-tickets-announcement/">application</a> for a MINECON Agent, which is the small group of &ldquo;interns&rdquo; that volunteer to help set up and prepare MINECON for over 10,000 people with the Mojang team. The only benefit to being an Agent was a waived ticket cost (around $120 last year). I applied for the program, unsure of what would come of it, doubtful I would be able to go even if I were accepted.</p>
<p>April rolls around, and I finally hear back from Mojang! &ldquo;Congratulations, you are now a MINECON Agent!&rdquo; It was difficult to believe at first, but I wasn&rsquo;t sure I would be able to go regardless.</p>

<h4 id="getting-in-gear-for-minecon">Getting in gear for MINECON&nbsp;<a class="hanchor" href="#getting-in-gear-for-minecon" aria-label="Anchor link for: Getting in gear for MINECON">🔗</a></h4>
<p>
<figure>
  <img src="/blog/2016/02/Booth-Shot.jpg" alt="SpigotMC Booth Shot at MINECON 2015" loading="lazy">
  <figcaption>A photo of the SpigotMC booth at MINECON 2015.</figcaption>
</figure>
</p>
<p>I began talking with the rest of the team at SpigotMC. We were also <a href="https://www.spigotmc.org/forums/minecon-2015.77/">getting in gear</a> for MINECON 2015 and were planning to attend as an organization with our own booth. We had arranged to have a booth and most of the team knew who was going to be there. <a href="https://twitter.com/md__5/">Michael</a>, our project lead, would be in attendance, along with <a href="https://twitter.com/thinkofdeath">Matthew</a>, the other lead developer; <a href="https://twitter.com/jtaylor69">Jordan</a>, another community moderator like myself; <a href="https://twitter.com/cindykerns">Cindy</a>, our local wiki staff, IRC staff, and contributing developer, or also the official &ldquo;Spigot Mom&rdquo;; and Miguel, our witty Spigot volunteer who has an ambiguous position with Spigot. Cindy&rsquo;s son Alex was also going to be in attendance.</p>
<p>I didn&rsquo;t think I would be able to attend. However, a very unique set of events happened one after another, and suddenly, the possibility of me attending MINECON this year began to materialize. Thanks to awesome people behind Spigot, I was fortunate enough to make it out to this year&rsquo;s convention. When I figured out that I would be going to London, I was beyond stoked.</p>

<h4 id="going-to-london-and-minecon">Going to London and MINECON&nbsp;<a class="hanchor" href="#going-to-london-and-minecon" aria-label="Anchor link for: Going to London and MINECON">🔗</a></h4>
<p>I would be there from Saturday, July 4 to Wednesday, July 8, 2016. Saturday and Sunday were the days of MINECON. Together with the team, we helped represent the SpigotMC project among thousands of convention-goers. We had brochures, bracelets, and a <a href="https://www.youtube.com/watch?v=qiNScdSAQ8k">video</a> running in the booth for visitors to take and see. I met some incredible people from our community, and I am privileged and honored to have met some incredible people there.</p>
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
      <iframe allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share; fullscreen" loading="eager" referrerpolicy="strict-origin-when-cross-origin" src="https://www.youtube-nocookie.com/embed/qiNScdSAQ8k?autoplay=0&amp;controls=1&amp;end=0&amp;loop=0&amp;mute=0&amp;start=0" style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;" title="YouTube video"></iframe>
    </div>

<p>Thanks to Michael being the incredible individual he is, we went to a few dinners and meet-ups with others in the Minecraft community. I met two of the major Minecraft developers, Nathan (<a href="https://twitter.com/Dinnerbone">Dinnerbone</a>) and Erik (<a href="https://twitter.com/_grum">Grum</a>) and countless others in the YouTube and development community. It was almost unbelievable. The entire time I was in London, the experience felt surreal. Six months before this, I would never have believed any of this would ever have happened.</p>
<p>
<figure>
  <img src="/blog/2016/02/Table-with-Justin.jpg" alt="SpigotMC Lunch in London" loading="lazy">
  <figcaption>At the SpigotMC lunch on the Saturday of MINECON.</figcaption>
</figure>
</p>
<p>The Monday and Tuesday we were there, Cindy, Jordan, Alex, and I went around London doing our proper duty as tourists. We went to see Big Ben, Westminster Abbey, rode a double-decker bus, went to the Queen&rsquo;s castle, and indulged in what Jordan called a &ldquo;proper British meal&rdquo;. On Monday night, Jordan treated me to a short trip around London hopping between bars (although everything closed so early)! We ended up crashing in some late-night diner, had a meal, and headed back for the next round of sightseeing on Tuesday.</p>

<h4 id="thanks-to-the-team">Thanks to the team&nbsp;<a class="hanchor" href="#thanks-to-the-team" aria-label="Anchor link for: Thanks to the team">🔗</a></h4>
<p>This was truly a life-changing experience that was bestowed upon me. I was honored and privileged to have met the other members of the Spigot team that I&rsquo;ve been working with for the past two years. I wouldn&rsquo;t trade my time in London for anything else, and I&rsquo;m hoping that I&rsquo;ll be able to help host the crew this upcoming MINECON if it ends up in the northeast US.</p>
<p>
<figure>
  <img src="/img/Spigot-Team.jpg" alt="SpigotMC Team" loading="lazy">
  <figcaption>You guys all rock.</figcaption>
</figure>
</p>

<h2 id="open-source-and-fedora">Open Source and Fedora&nbsp;<a class="hanchor" href="#open-source-and-fedora" aria-label="Anchor link for: Open Source and Fedora">🔗</a></h2>
<p>I have used the <a href="https://getfedora.org/">Fedora</a> operating system on my laptop since December 2013. I began using it on my desktop I built in November 2014. I have used this operating system for almost two years and I never had thought too much about the community behind the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>. I knew that it was a large and complex community, but I was never sure where to take the first step. I had always wanted to be an <a href="https://fedoraproject.org/wiki/Ambassadors">Ambassador</a>, but questioned my usefulness or whether I was a right fit for the program.</p>

<h4 id="flock-to-fedora">Flock to Fedora!&nbsp;<a class="hanchor" href="#flock-to-fedora" aria-label="Anchor link for: Flock to Fedora!">🔗</a></h4>
<p>I learned that <a href="https://flocktofedora.org/">Flock</a>, Fedora&rsquo;s annual contributor&rsquo;s conference, was to be hosted in Rochester, NY in 2015 from August 5th to the 9th. I would be moving right next door to Flock just a week after the conference! After contacting a pair of people who seemed knowledgeable about the details back in February 2015, little did I know I was setting in motion an entirely new track of events in my life. The two gents I emailed, <a href="https://fedoraproject.org/wiki/User:Decause">Remy DeCausemaker</a> and Prof. <a href="https://www.rit.edu/gccis/stephen-jacobs">Stephen Jacobs</a> (SJ), helped give me advice on travel details and how I would get myself into Rochester in time for Flock.</p>
<p>Come August, I am back from MINECON, packing my bags for Rochester, and ending my last few days at Dutch Monkey. When I arrived in Rochester with my mother, it was an exciting and new experience, something I had looked forward to for a long time. Once Flock rolled around, I was almost instantaneously immersed in the Fedora community, and over the course of the week, I would begin to feel a part of a Project that I had questioned how to enter for almost a year.</p>
<p>
<figure>
  <img src="/blog/2016/02/Matt-and-Remy.jpg" alt="Remy DeCausemaker (decause) and Matthew Miller (mattdm), Fedora partners in crime" loading="lazy">
  <figcaption>Remy DeCausemaker (decause) and Matthew Miller (mattdm), Fedora partners in crime.</figcaption>
</figure>
</p>
<p>The talks were fantastic, the speakers were passionate, and the community was welcoming. I was jump started into Fedora at Flock 2015, despite walking in a stranger. At first, I questioned whether coming was such a grand idea. It was obvious everyone knew someone already and I was only an excited Fedora user and fan. These were the people who did all the heavy-lifting to make this operating system and its community run. What was I doing here?</p>
<p>I distinctly remember <a href="https://fedoraproject.org/wiki/User:Immanetize">Pete Travis</a> (randomuser in IRC) coming up to me, introducing himself and asking me a few questions. In retrospect, I probably looked like I was feeling a bit out-of-place. He and I began talking a bit about his role in Fedora and some of my little experience in open source. After he spoke to me, I began to feel a little more attached to the conference. After a while, I began speaking up at some of the talks I attended, or trying to share some of my perspective or thoughts as an outsider. These were the stepping-stones that got me involved with the project.</p>
<p>One thing about all else stands out to me about the conference. I remember Remy saying to me towards the end (with minor paraphrasing), &ldquo;You should check out this Community Operations thing that&rsquo;s coming up soon. It&rsquo;s going to be awesome.&rdquo;</p>

<h4 id="fedora-magazine">Fedora Magazine&nbsp;<a class="hanchor" href="#fedora-magazine" aria-label="Anchor link for: Fedora Magazine">🔗</a></h4>
<p>Over the course of the next few months at RIT, I started working with <a href="https://fedoraproject.org/wiki/User:Pfrields">Paul Frields</a>, <a href="https://fedoraproject.org/wiki/User:Ryanlerch">Ryan Lerch</a>, and a few others on the Fedora Magazine. I began contributing as a writer, with my first article about using <a href="https://fedoramagazine.org/run-a-minecraft-server-using-spigot/">Spigot on Fedora</a>. As time went on, I began helping as an editor, revising and reviewing other people&rsquo;s articles to help get them published for the Magazine. By the end of 2015, I believe I would come to establish myself as a <a href="https://fedoramagazine.org/author/jflory7/">permanent member</a> of the editorial team behind the Magazine.</p>

<h4 id="commops">CommOps&nbsp;<a class="hanchor" href="#commops" aria-label="Anchor link for: CommOps">🔗</a></h4>
<p>Additionally, during the months after Flock, I would follow up on what Remy told me, and I checked out this whole <a href="https://fedoraproject.org/wiki/CommOps">Community Operations</a> (shortened to <em>CommOps</em>) thing. It was in the early formation stages, but the core idea behind CommOps was that they were the supporting team to offer support to all the other sub-projects in Fedora. Or in my eyes, a team focused on building and supporting the community with resources and assistance. This was something I thought I could contribute to. My programming skills were not at a level where I&rsquo;d feel comfortable hacking on to Fedora either on the <a href="https://fedoraproject.org/wiki/Infrastructure">Infrastructure</a> or as a <a href="https://fedoraproject.org/wiki/Category:Package_Maintainers">Packager</a>. But CommOps was that kind of thing that hooked me from the start. I wanted to help build Fedora up, and I could see what exactly CommOps was trying to target and how it was wanting to fix the long-term issues.</p>
<p>
<figure>
  <img src="/blog/2016/02/CommOps-Trac-banner.png" alt="Fedora Community Operations (CommOps) logo" loading="lazy">
  <figcaption>The Community Operations (CommOps) logo.</figcaption>
</figure>
</p>
<p>Now, months later, my involvement with CommOps has resulted with <a href="https://fedorahosted.org/fedora-commops/">many tickets filed and many tickets closed</a>. It has been a productive time while I have been with CommOps, and I never feel like there is too little to do. Our horizon is vast and there is much work to be done… 2016 offers great promise to the success of our sub-project, which in turn offers great promise to the Fedora Project. I am looking forward to seeing where this year takes us. I am also happy to work with such an awesome and dedicated group of people as those behind the CommOps team. There are too many to name, but I&rsquo;m thankful for the leadership of Remy to keep us all together, focused, and driven.</p>

<h2 id="2016">2016&nbsp;<a class="hanchor" href="#2016" aria-label="Anchor link for: 2016">🔗</a></h2>
<p>2016 will have a lot of ground to cover over 2015, but there is a large potential for this to be done. My own personal story with open source continues to grow, and I am beyond excited for what the future may bring. I am exposed to a unique group of people and minds here at RIT, and I am actively pursuing the <a href="http://magic.rit.edu/foss/minor.html">Free and Open Source Software (FOSS) minor</a>.</p>
<p>This self-reflection has turned into a much longer post than I anticipated, but I think this reflection is necessary and useful for my own purposes. Taking a moment to reflect on the events of the past year helps remind me what it&rsquo;s all about and why I&rsquo;m doing what I&rsquo;m doing, especially at the times where everything seems confusing and I begin to question what I&rsquo;m doing. But the path is illuminated and I am driven to succeed. There are a lot of things at stake for me and my family, and I hope to be able to meet many personal goals and better support the people closest to me in my life.</p>
<p>I would also like to give a special thanks to all the people who have made this year so incredible for me, and for those who have ridden the ride with me. There are so many names to list, and it&rsquo;s hard to come up with this list in the dark hours of the morning when I know I should be sleeping. But to all of those who play a special and important role in my life, I want you all to know that none of what has happened to me would be possible without your support. Your continued guidance, counsel, and companionship teaches me much and inspires me greatly. My only wish is that I will someday be able to repay all the good deeds that others have bestowed upon me. If not to the original giver, I hope to someday inspire others and help others in the same way you all have shown and taught me. Maybe this is less of a 2016 thing and more of a &ldquo;crystal ball into the future&rdquo; moment… but I think it&rsquo;s worth mentioning regardless.</p>
<p>Thanks for a fantastic 2015. I&rsquo;m looking forward to seeing where 2016 takes us next.</p>
<p>
<figure>
  <img src="/blog/2016/02/January-Photo-Shoot.jpg" alt="Year in Review - Justin Wheeler" loading="lazy">
  <figcaption>Looking forward to 2016 and all that it brings.</figcaption>
</figure>
</p>
]]></description></item><item><title>The most important part of your project might not even be a line of code</title><link>https://jwheel.org/blog/2016/02/licensing-most-important-part-of-project-not-code/</link><pubDate>Wed, 10 Feb 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/02/licensing-most-important-part-of-project-not-code/</guid><description><![CDATA[<p>
<figure>
  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/4b/Puzzly_sharing_%28from_licensing_tutorial%29.svg/327px-Puzzly_sharing_%28from_licensing_tutorial%29.svg.png" alt="Open-source licensing: how does it affect your work?" loading="lazy">
  <figcaption>Open-source licensing: how does it affect your work?</figcaption>
</figure>
</p>
<p>Today&rsquo;s entry to the blog is sourced from a thread that I posted on the <a href="https://www.spigotmc.org/threads/the-most-important-part-of-your-project-might-not-even-be-a-line-of-code.121682/">SpigotMC Forums</a>. If you wish to join in the discussion about this, feel free to chime in on the thread or leave a comment on my blog. In this post, I covered licensing, licenses, and why your open-source software project should have a license. You can read my original post in this blog entry.</p>
<hr>
<p>I&rsquo;d like to share some personal and real-word advice to many of you contributing open-source resources to Spigot, but also to other open-source software projects you may work on even outside of just Minecraft or Spigot.</p>

<h2 id="licensing">Licensing&nbsp;<a class="hanchor" href="#licensing" aria-label="Anchor link for: Licensing">🔗</a></h2>
<p>What is licensing? Why does it matter? Why should you care? There are many reasons that licensing is an important part of a project you are working on. You are taking the time to write code and share it with the world in an open way, such as publishing it on GitHub, Bitbucket, or any number of other code-hosting services. Anyone might stumble across your code and find it useful.</p>
<p>Licensing is the way that you can control exactly how someone who finds your code can use it and in what ways.</p>

<h2 id="okay-why-does-it-really-matter">Okay, why does it <em>really</em> matter?&nbsp;<a class="hanchor" href="#okay-why-does-it-really-matter" aria-label="Anchor link for: Okay, why does it really matter?">🔗</a></h2>
<p>Maybe you&rsquo;ve been writing code for a really long time and you&rsquo;ve never bothered with licenses and don&rsquo;t feel the need to. I&rsquo;d like to present two hypothetical situations that I see pop up all the time, one in Spigot and one in the greater open-source community.</p>

<h4 id="your-plugin">Your Plugin&nbsp;<a class="hanchor" href="#your-plugin" aria-label="Anchor link for: Your Plugin">🔗</a></h4>
<p>You have spent a lot of time writing an awesome resource and you pushed all of your code on GitHub! Woohoo, project complete! You package it up as a JAR and submit out to the open. Skip ahead a few months, and maybe you no longer have the time to contribute to your project. Or maybe someone has an awesome idea for a totally different plugin that uses similar functionality to what you have written.</p>
<p>A new person finds your code on GitHub and discovers that it has the perfect method or algorithm for his own project. Or maybe they want to continue your project with new, fresh energy! But you have no license for your code. By default, this means <a href="http://choosealicense.com/no-license/">default copyright laws</a> will apply to your code. <strong>This is an extremely limiting type of copyright enforcement and almost defeats the entire purpose of even open-sourcing your code.</strong> A law-abiding programmer might just give up on the project and look elsewhere, or maybe a not-so-law-abiding programmer will secretly copy and paste your code without attributing your work back to you. This helps neither you or the friendly programmer looking at continuing or forking your work.</p>
<p>In many cases, the SpigotMC Staff receive reports about people &ldquo;copying&rdquo; other peoples&rsquo; code. <strong>Having a licensed project makes reviewing these reports 10x easier</strong>. People without licenses or with ambiguous sources makes it extremely difficult to review and make decisions about whether projects are copies.</p>
<p>By licensing your code, you are protecting your own work and writing the rules to how people can use your code. If you are open-sourcing your code, usually the point is to have collaboration with others and give back to the community by allowing others to tinker, modify, or play with what you have created. Make it easier for others to contribute, help, or build new awesome things by choosing a license!</p>

<h4 id="your-project">Your Project&nbsp;<a class="hanchor" href="#your-project" aria-label="Anchor link for: Your Project">🔗</a></h4>
<p>For any open-source software project on the Internet, having a license is very, very important. For example, let&rsquo;s say you write an important library or utility that can be used to make a developer&rsquo;s life easier for making a user interface more friendly. Your program is well-designed and has usefulness outside of what even you intended to write it for.</p>
<p>Perhaps a large company stumbles across your code and also thinks it&rsquo;s very useful for their own project. Maybe their project is proprietary or closed-source. Having a license in a situation like this suddenly becomes very important. Some licenses would permit this company to take the plugin or library, modify it to their own needs, and include it in their own product, while only leaving a small mention to you in the &ldquo;Legal&rdquo; section of their app. Maybe you&rsquo;re okay with that! Maybe you&rsquo;re not.</p>
<p>If you&rsquo;re not, there are licenses that let you define how the code is used in a case like this. With some licenses, if the company decides to modify and use your code, they will have to open-source their changes that made as well. If they don&rsquo;t modify anything, they just have to link back to your original source code. In some more extreme licenses, anything that touches your code also by extension has to be open source.</p>
<p>For a Minecraft example of this, let&rsquo;s say you have a &ldquo;Super Craft Bros.&rdquo; plugin open-sourced on your GitHub. Hypixel stumbles across your code and decides they want to use it for their own servers. Let&rsquo;s say your code is licensed under the <a href="https://www.mozilla.org/en-US/MPL/2.0/">Mozilla Public License 2.0</a>. For this license, if they take your code and make no changes, they only have to give credit back to you. If they take your code and change it, they also have to open-source all of the changes they make to your code.</p>
<p>Now, the changes made by the bigger company can benefit many others instead of just the one company!</p>

<h2 id="what-licenses-are-there">What licenses are there?&nbsp;<a class="hanchor" href="#what-licenses-are-there" aria-label="Anchor link for: What licenses are there?">🔗</a></h2>
<p>If you Google &ldquo;open source licenses&rdquo;, you may be overwhelmed. There are maybe close to the hundreds of different licenses for you to choose from. How can you pick one to settle on?! Fortunately, there are websites that do a great job of summarizing licenses to exactly what others can or cannot do with your code. A very popular site is <a href="https://tldrlegal.com/">tldrlegal.com</a>, which provides bullet-point summaries of different licenses.</p>

<h6 id="tldrlegalcom"><a href="https://tldrlegal.com/">tldrlegal.com</a>&nbsp;<a class="hanchor" href="#tldrlegalcom" aria-label="Anchor link for: tldrlegal.com">🔗</a></h6>
<p>Exploring that site is a great reference for picking a license. However, in this thread, I&rsquo;m going to do a very quick summary of four of the most popular open-source licenses that exist. However, it is important to preface this with a statement: I am not a lawyer and this does not constitute legal advice. It is important for you to look more into a license that feels right for how you want to share your code and determine what others can do with it.</p>

<h4 id="mit-license">MIT License&nbsp;<a class="hanchor" href="#mit-license" aria-label="Anchor link for: MIT License">🔗</a></h4>
<p>
<figure>
  <img src="https://upload.wikimedia.org/wikipedia/commons/c/c3/License_icon-mit.svg" alt="Open-sourcing licensing: the MIT License is the most relaxed" loading="lazy">
  <figcaption>The MIT License may be the most relaxed open-source license available today</figcaption>
</figure>
</p>
<p>The MIT License is almost universally regarded as one of the least strict licenses in open source. You can read more about it <a href="https://tldrlegal.com/license/mit-license">here</a>.</p>
<p>You can:</p>
<ul>
<li>Use the work commercially (think of the big company example said earlier)</li>
<li>Modify the original code</li>
<li>Distribute the original code or distribute your modifications</li>
<li>Sublicense the code (in other words, use it with code that has a different license)</li>
<li>Use the code for private use</li>
</ul>
<p>You cannot:</p>
<ul>
<li>Hold the original author liable for damages
<ul>
<li>So this can&rsquo;t happen: &ldquo;Oh noes! I accidentally exploded my entire server with your code! You must pay me monies to fix this nao!!!&rdquo;</li>
</ul>
</li>
</ul>
<p>You must:</p>
<ul>
<li>Include a copyright notice in all copies or other uses of the work</li>
<li>Include an original copy of the license with the original or modified code
<ul>
<li>You will always be credited for your work!</li>
</ul>
</li>
</ul>

<h4 id="apache-license-20">Apache License 2.0&nbsp;<a class="hanchor" href="#apache-license-20" aria-label="Anchor link for: Apache License 2.0">🔗</a></h4>
<p>
<figure>
  <img src="http://www.apache.org/img/asf_logo.png" alt="Open-source licensing: the Apache License 2.0 offers more than MIT License" loading="lazy">
  <figcaption>Slightly stricter than the MIT License, the Apache License 2.0 offers more protection to the author</figcaption>
</figure>
</p>
<p>The Apache License 2.0 is only slightly more restrictive than the MIT License, but it defines a few more rules than the MIT License. This can be useful if you want to make sure your work is given proper credit back to you and you care a little more about how it&rsquo;s used. You can read more <a href="https://tldrlegal.com/license/apache-license-2.0-%28apache-2.0%29">here</a>.</p>
<p>You can and cannot do the same things mentioned above for the MIT License. So we will just highlight the changes!</p>
<p>You can:</p>
<ul>
<li>Same as MIT License</li>
<li><strong>Use patent claims</strong> (might be advanced for most of you, but can be useful for bigger projects)</li>
<li><strong>Place a warranty</strong> (lets you have a warranty on your code, if desired)</li>
</ul>
<p>You cannot:</p>
<ul>
<li>Same as MIT License</li>
</ul>
<p>You must:</p>
<ul>
<li>Same as MIT License</li>
<li><strong>Openly state changes you make from the original project</strong></li>
<li><strong>Include the NOTICE</strong> (if the project has a NOTICE file, you have to keep it in copies / modified works)</li>
</ul>

<h4 id="mozilla-public-license-20">Mozilla Public License 2.0&nbsp;<a class="hanchor" href="#mozilla-public-license-20" aria-label="Anchor link for: Mozilla Public License 2.0">🔗</a></h4>
<p>
<figure>
  <img src="https://opensource.com/sites/default/files/styles/image-full-size/public/images/law/OSCD_MPL_520x292_FINAL.png?itok=ELAkrGpF" alt="Open-source licensing: Introducing the Mozilla Public License 2.0" loading="lazy">
  <figcaption>Introducing the Mozilla Public License 2.0</figcaption>
</figure>
</p>
<p>The next step up from the Apache License 2.0 is the Mozilla Public License 2.0. This license has the same basic rights as the Apache License 2.0, but it goes a little more in-depth about how the code can be re-used. This is my personal favorite license! You can read more <a href="https://tldrlegal.com/license/mozilla-public-license-2.0-%28mpl-2%29">here</a>.</p>
<p>Most of the things for what you can and cannot do are the same as the Apache License (and thereby, the MIT License). So again, we&rsquo;ll just highlight the changes.</p>
<p>You can:</p>
<ul>
<li>Same as Apache License 2.0</li>
</ul>
<p>You cannot:</p>
<ul>
<li>Same as Apache License 2.0</li>
</ul>
<p>You must:</p>
<ul>
<li>Same as Apache License 2.0</li>
<li><strong>Disclose the source</strong> (any changes made using MPL&rsquo;d code must also be made open under the MPL!)</li>
<li><strong>Include the original</strong> (either the source code or instructions to get the original code must be provided)</li>
</ul>

<h4 id="gnu-public-license-v3">GNU Public License v3&nbsp;<a class="hanchor" href="#gnu-public-license-v3" aria-label="Anchor link for: GNU Public License v3">🔗</a></h4>
<p>
<figure>
  <img src="https://upload.wikimedia.org/wikipedia/commons/9/93/GPLv3_Logo.svg" alt="Open-source licensing: the GNU Public License v3" loading="lazy">
  <figcaption>Open-source licensing: the GNU Public License v3</figcaption>
</figure>
</p>
<p>The GNU Public License v3, also known as the GPLv3, is one of the most well-known and strict licenses in open-source. It has very specific rules for how the code can be used and shared, and leaves a lot of control over to the author. In a sense, it&rsquo;s &ldquo;after&rdquo; the MPL 2.0, but it also has some key differences. You can read more about it <a href="https://tldrlegal.com/license/gnu-general-public-license-v3-%28gpl-3%29">here</a>.</p>
<p>Again, we will highlight the changes from the Mozilla Public License 2.0.</p>
<p>You can:</p>
<ul>
<li>Same as Mozilla Public License 2.0 (<strong>except sublicensing</strong>)</li>
</ul>
<p>You cannot:</p>
<ul>
<li>Same as Mozilla Public License 2.0</li>
<li><strong>Sublicense the code</strong> (this is a big concept worth understanding if you use the GPLv3)</li>
</ul>
<p>You must:</p>
<ul>
<li>Same as Mozilla Public License 2.0</li>
<li><strong>Include original copyright</strong> (must be retained in all copies or modified works)</li>
<li><strong>Include install instructions</strong> (you must document how to install the software)</li>
</ul>

<h2 id="go-forth-and-conquer">Go forth and conquer!&nbsp;<a class="hanchor" href="#go-forth-and-conquer" aria-label="Anchor link for: Go forth and conquer!">🔗</a></h2>
<p>Congratulations! You now know a little bit more about licensing, open-source licenses, and how to use them. Hopefully this will help emphasize why and how licenses are important in open-source software. In many ways, the license you choose to use can even be more important than any lines of code you write. That might sound absurd, but when it comes to deciding how your code can be reused, modified, or distributed, it&rsquo;s something that can be vitally important to your project.</p>
<p>Those of you without a license, please consider choosing one, or talk to other teammates of your projects about what license you all want to use. If you code in the open, make sure you are protecting yourself and paying attention to how you want other people to use your code.</p>]]></description></item><item><title>HFOSS: Reviewing "What is Open Source?", Steve Weber</title><link>https://jwheel.org/blog/2016/02/reviewing-what-is-open-source-steve-weber/</link><pubDate>Mon, 08 Feb 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/02/reviewing-what-is-open-source-steve-weber/</guid><description><![CDATA[<p>
<figure>
  <img src="http://steveweber.typepad.com/.a/6a00d83423046e53ef00e55004c30a8833-150wi" alt="What is Open Source? - Steve Weber" loading="lazy">
  <figcaption>Steve Weber</figcaption>
</figure>
</p>
<p>This blog post is part of an assignment for my <a href="https://hfoss-ritjoe.rhcloud.com/">Humanitarian Free and Open Source Software Development</a> course at the <a href="https://www.rit.edu/">Rochester Institute of Technology</a>. For this assignment, we are tasked with reading Chapter 3 of Steve Weber&rsquo;s &ldquo;<em><a href="https://hfoss-ritjoe.rhcloud.com/static/books/Weber-SuccessofOpenSource-Chap3.pdf">The Success of Open Source</a></em>&rdquo;. The summary of the reading is found below.</p>

<h2 id="who">Who&nbsp;<a class="hanchor" href="#who" aria-label="Anchor link for: Who">🔗</a></h2>
<ul>
<li><a href="https://en.wikipedia.org/wiki/Steven_Weber_%28professor%29">Steve Weber</a>, professor at the University of California, Berkeley</li>
</ul>

<h2 id="what">What&nbsp;<a class="hanchor" href="#what" aria-label="Anchor link for: What">🔗</a></h2>
<ul>
<li>&ldquo;<em>The Success of Open Source</em>&rdquo;</li>
</ul>

<h2 id="where">Where&nbsp;<a class="hanchor" href="#where" aria-label="Anchor link for: Where">🔗</a></h2>
<ul>
<li>Excerpt of reading found in the HFOSS <a href="https://hfoss-ritjoe.rhcloud.com/static/books/Weber-SuccessofOpenSource-Chap3.pdf">ofCourse resources</a> or available for purchase on <a href="http://www.amazon.com/Success-Open-Source-Steven-Weber/dp/0674018583">Amazon</a></li>
</ul>

<h2 id="when">When&nbsp;<a class="hanchor" href="#when" aria-label="Anchor link for: When">🔗</a></h2>
<ul>
<li>August 22nd, 2005</li>
</ul>

<h2 id="the-gist">The Gist&nbsp;<a class="hanchor" href="#the-gist" aria-label="Anchor link for: The Gist">🔗</a></h2>
<p><em>You&rsquo;re in a social setting. Someone says &ldquo;Hey, did you ever read X?&rdquo; You quickly respond &ldquo;Oh heck yeah! X was {awesome,terrible}!&rdquo; The person next to you in the circle says &ldquo;Oh snap, I didn&rsquo;t read X. What was it about&hellip;?&rdquo; You have exactly 3 lines, MAX, to prove you are not a hipster—and &ldquo;The Gist&rdquo; is those 3 lines.</em></p>
<p>Chapter 3 of &ldquo;<em>What is Open Source?</em>&rdquo; essentially aims to define what open source development is as a &ldquo;thing&rdquo;, describe the process in which it works, the problems it tries to solve, and how it does them. He lightly touches on many core concepts of open source, such as licensing, who is a contributor and what makes someone a contributor in open source, and how the new method of collaboration has positives and negatives—something that reflects human nature.</p>

<h2 id="the-good">The Good&nbsp;<a class="hanchor" href="#the-good" aria-label="Anchor link for: The Good">🔗</a></h2>
<p>The three best things I took out of this excerpt were:</p>
<ul>
<li>The eight general principles of what people do in the open source process (starting on pg. 73)
<ul>
<li>I thought this was a good analysis and breakdown of how things tend to work in open source, and is something I think I will end up referring to even in the future.</li>
</ul>
</li>
<li>Analyzing Linus Torvalds&rsquo; role as the &ldquo;<a href="https://en.wikipedia.org/wiki/Benevolent_dictator_for_life">Benevolent Dictator for Life</a>&rdquo; in the Linux project and how that is reflective of some open source communities</li>
<li>How exactly open source licensing tries to build a positive and open social structure beneficial to the user (pg. 85)
<ul>
<li>Licensing is something I&rsquo;m passionate about in particular with open source, and the author&rsquo;s words resounded with my own thoughts about licensing. It&rsquo;s leaving me wanting to develop my own thoughts and opinions on open source licensing further.</li>
</ul>
</li>
</ul>

<h2 id="the-bad">The Bad&nbsp;<a class="hanchor" href="#the-bad" aria-label="Anchor link for: The Bad">🔗</a></h2>
<p>My least favorite things from this excerpt were:</p>
<ul>
<li>BSD-style licenses are prohibitive to real collaboration (pg. 63)
<ul>
<li>I disagree with this, especially as it seems to have a particular favoring towards the GPL. While I may also represent the opposite bias, I don&rsquo;t think these licenses necessarily make a project &ldquo;not vitally collaborative on a very large scale&rdquo; as the author states.</li>
</ul>
</li>
<li>Principle #8 of the open source process: &ldquo;Talk a lot&rdquo; (pg. 81-82)
<ul>
<li>I agree, talking happens a <em>lot</em> in open source… on hot topic, controversial topics. Usually this happens on the development lists more than other things. But what are &ldquo;other things&rdquo;? For larger projects, there are more areas that are important, such as Marketing, Translations / Globalization, on-boarding new contributors, and more. <strong>There are not enough people talking in these groups</strong>. I think that strictly from a code perspective, topics are many and discussion is much. But on other areas of a project? Unless you have people being paid full-time to work on it, volunteers are far and few in between.</li>
<li>I also partly disagree with the vehemence of open source discussion. I do not think we can disagree lists like the Linux Kernel Mailing Lists are not the most friendly of places. But there are projects that have clearly defined codes of conduct and how to behave. In my experience in Fedora, the community was beyond welcoming to me when I began contributing, and I never experienced any of the harshness or close-mindedness that is sometimes associated with open-source development. I think the example the author used then may have been the norm, but over the years, I think others have seen that the harshness is not sustainable and closes the door on adding new, valuable insight from potential contributors, and they try to reflect this in their own projects.</li>
</ul>
</li>
<li>Lastly, I hope <a href="https://hfoss-ritjoe.rhcloud.com/instructor">dzho</a> will let me pass on the third &ldquo;bad&rdquo; thing for the list, as the above two topics were the only things that distinctly stuck out to me.</li>
</ul>

<h2 id="the-questions">The Questions&nbsp;<a class="hanchor" href="#the-questions" aria-label="Anchor link for: The Questions">🔗</a></h2>
<p>Three questions I had after reading the chapter were:</p>
<ul>
<li>Eleven years have passed since the book was published. What does the author think of the open source scene in 2016?</li>
<li>In particular, are open source communities largely as harsh as he originally described or does he feel like a new era is beginning or begun in terms of the inclusiveness of open source projects?</li>
<li>What made you believe that BSD-style licenses are contradictory to real collaboration in open source?</li>
</ul>

<h2 id="your-review">Your Review&nbsp;<a class="hanchor" href="#your-review" aria-label="Anchor link for: Your Review">🔗</a></h2>
<p><em>Imagine you are on Yelp, Amazon, eBay, Netflix, or any other online community that has customer reviews. This is the message that you want to leave behind, to represent yourself, and inform (or warn) others. You should add a quick rating system of your choosing (X/Y stars, X thumbs up) as part of the review.</em></p>
<p>★ ★ ★ ★ ☆</p>
<p>Overall, I rate this article four out of five stars. I think it did a fairly effective job of analyzing open source in the twenty-first century. While some small sections of the book may have changed in the eleven years since original publication, most of the content is still very much relevant and very much important. I would share this chapter with a friend or another student who was seriously considering getting involved with open source. That goes without saying, I might explicitly add a few extra comments of my own to the small subset of the chapter that I disagreed with.</p>]]></description></item><item><title>HFOSS: The First Flight</title><link>https://jwheel.org/blog/2016/01/hfoss-first-flight/</link><pubDate>Thu, 28 Jan 2016 00:00:00 +0000</pubDate><guid>https://jwheel.org/blog/2016/01/hfoss-first-flight/</guid><description><![CDATA[<p>
<figure>
  <img src="/blog/2016/01/FOSS-@-MAGIC.png" alt="HFOSS: The FOSS @ MAGIC logo" loading="lazy">
  <figcaption>FOSS @ MAGIC (<a href="http://magic.rit.edu/foss/" class="bare">http://magic.rit.edu/foss/</a>), the program that hosts the FOSS minor</figcaption>
</figure>
</p>
<p>This past year, I enrolled as a student at the <a href="http://www.rit.edu/">Rochester Institute of Technology</a> in Rochester, NY. For me, this is quite a distance from my hometown just outside of Atlanta, GA. Part of the motivation that led me to choose RIT as my university of choice was its participation in <a href="https://en.wikipedia.org/wiki/Free_and_open-source_software">Free and Open Source Software</a> education and communities. RIT is one of the few schools in the United States to offer a <a href="http://magic.rit.edu/foss/minor.html">minor</a> in Free and Open Source Software.</p>
<p>As part of my time here at RIT, I plan to take on the minor. This semester marks the first milestone of this specific track for me. I am taking the <a href="http://hfoss-ritjoe.rhcloud.com/">Humanitarian Free and Open Source Software</a> (HFOSS) course, and the first assignment for our class was writing a blog post about getting introduced into the class.</p>

<h2 id="hfoss-my-expectations">HFOSS: My expectations&nbsp;<a class="hanchor" href="#hfoss-my-expectations" aria-label="Anchor link for: HFOSS: My expectations">🔗</a></h2>
<p>Going into the HFOSS course, I was reluctant because of my inexperience with programming as a whole. The course is definitely strongly focused towards a programming aspect, but it is not strictly dedicated to firing out open source code.</p>
<p>On the contrary, this course is an introduction to &ldquo;FOSS&rdquo; as a whole. What is it? What tools are used in open source? How do people communicate and contribute? Why work in the open? These are all questions that the course seems targeted towards answering. In order to answer these questions, many methods will be used, some ancillary to the programming that is necessary for many free and open source projects.</p>
<p>I expect this course to be a challenge because I know that I can&rsquo;t escape working on a large project or two this semester that will push my abilities and require me to adapt to meet the requirements. I am not as worried about learning the tooling, culture, or common practices that go along with open source because I am moderately familiar with them already. That goes without saying, I am not a master of it all. In the big picture for this class, I feel like I will have a head-start in some areas, while in others I will have to double up to keep up.</p>

<h2 id="hfoss-what-i-plan-to-contribute">HFOSS: What I plan to contribute&nbsp;<a class="hanchor" href="#hfoss-what-i-plan-to-contribute" aria-label="Anchor link for: HFOSS: What I plan to contribute">🔗</a></h2>
<p>This semester, I&rsquo;m also hoping to contribute back to the class as well as take something out of it. With some of my experience with open source tooling and understanding of how other projects work, I hope to share my own experiences when and where needed. Additionally, I am paying extra attention for open source communities or projects where I might be able to contribute especially closer to the end of the semester, to fulfill the humanitarian aspect of the course.</p>
<p>By default, the course is targeted towards the <a href="https://en.wikipedia.org/wiki/One_Laptop_per_Child">One Laptop Per Child</a> (OLPC) program. Towards the end of the semester, the final project is creating a game on the hardware used on these machines with a spin towards 4th grade math curriculum in New York State. Another project I am a contributor of, the <a href="https://fedoraproject.org/wiki/Overview">Fedora Project</a>, has close ties to the OLPC program and helps develop the desktop environment used on the machines, <a href="https://spins.fedoraproject.org/en/soas/">Sugar on a Stick</a>.</p>
<p>However, there is flexibility about what the final project could be on a per-student basis. Therefore, I am looking out for a particular project that I might feel a personal connection or passion towards where I feel I could help make an impact.</p>
<p>This sets the course and itinerary for the trip… we&rsquo;ll see where I land as the semester progresses.</p>]]></description></item></channel></rss>