FixingSoundcloudBugs

After upgrading to Fedora22 last week, I've had to sand down a few rough corners. One of them which has cropped up was that some of the tracks on Soundcloud just would not play while I was in Firefox. I thought it was likely because user-generated content is often prone to take-downs, spurious or not, and just kinda shrugged it off. But after trying to play a few particularly popular tracks from confirmed accounts, I decided something must be amiss. I popped open the code inspector, enabled the console, and right off the bat was greeted with a clever recruiting message from Soundcloud:

"You like to look under the hood? Why not help us build the engine? http://soundcloud.com/jobs"

Thereafter, I would get "Media resource could not be decoded" error messages followed by long strings representing the tracks.

Through some search-engine-foo, I was able to dig up this ticket: https://bugzilla.mozilla.org/show_bug.cgi?id=964032. In it, it is explained that there was likely an issue with codecs not being installed, with Ubuntu specific instructions. After originally enabling the RPM Fusion repos, I was able to search for and install gstreamer1-libav codec, restart Firefox, and play the broken tracks.

FPLdoesAMAonReddit

Happening right now, mattdm is doing an AMA on reddit.com/r/linux which can be found here: https://www.reddit.com/r/linux/comments/37l2mf/i_am_matthew_miller_fedora_project_leader_ask_me/.

I got name dropped a couple times (this is still pretty surreal :P), and here is my response to one of the comment threads on Metrics/New Contributors: https://www.reddit.com/r/linux/comments/37l2mf/i_am_matthew_miller_fedora_project_leader_ask_me/crnk7zs.

This is one of the things that we hired Remy D to work on

Hi there /r/linux!

This is a great question, and one that members of the Fedora-Infra team have spent the past year building tools and gathering data to answer. The fedmsg project, along with tools like datagrepper, have been collecting stats on developer and community contributions within Fedora, and feeding those stats into Fedora Badges to quantify, recognize, and promote activity. Everything from git commits, wiki edits, IRC meetings, blog posts, package builds (and fails), conference/event participation, all kinds of public activity is being published in real-time on the fedmsg bus! I even have a GNOME Shell extension installed pops-up desktop notifications whenever messages related to my favorite hackers or packages go over the wire :)

From this fire-hose of data we can surface correlations between types of messages, and message patterns as they relate to specific phases of the release cycle (or other timelines for that matter) to make informed decisions of how best to prioritize and publicize action.

Where do new contributors come from?

I'm pretty new to this role in Fedora, but I've been studying and organizing FOSS communities as a Hackademic for some time now. Here is my (wholly unoriginal) take on this: It starts with the task, then the people, then the idea.

This model for organizational development doesn't just play out in FOSS, but in all types of communities of practice. At first you show up because you need to accomplish something. You have an itch to scratch. In the case of a work-for-hire relationship, that itch may be "I need to pay my bills," but in FOSS it is usually, "I need a tool to do a task," paid or not.

You start there, maybe from scratch, or more likely by taking something that works and adjusting it to fit your use-case, with help from people who came before you. Those who helped you are likely people solving problems you are interested in solving, and the more you work together, the faster you can complete the tasks you set out to accomplish. You help them, they help you, and the virtuous cycle is off and running :)

Once you've established a working relationship with the people, you are now part of something larger. That larger something--whether it is a company, or a hackerspace, or a common goal or cause or idea--is the thing that eventually motivates you to stay and continue contributing.

New contributors come for the task, but stay for the community.

Our problem is there is so much more work than there is people who can do that work. New contributors don't emerge from the womb ready to start hacking. We (Fedora and FOSS-at-large) must support and cultivate an entirely new base.

I've helped a decent amount of new contributors get started through my work at RIT, which has mostly been about equipping them with tools in their toolbelt to do certain tasks. Once a new contributor feels the empowerment that comes from solving their own problems, they usually find their way to people and places where those types of problems are getting solved, FLOSSophy or not.

From what I've seen, new contributors come not just from working with the best tools for the job, but from having a positive place to experiment and learn (and teach!) about using them.

FedoraCloudWat

Someone posted to the Fedora-Join list this week with questions about Fedora Cloud, and cloud in general (see: https://lists.fedoraproject.org/pipermail/fedora-join/2015-May/000333.html). Mattdm, Fedora Project Lead, wrote a *fantastic* response that I think warrants resharing below.

Your confusion is understandable, because "cloud" has become a
marketing buzzword and is often applied to the things you've described.
But that's not quite what we mean here.

"Cloud computing" is the idea of providing the fundamental compute
resources — cpu cycles, storage, and memory — as a service. In this
model, rather than having these things on-site in a server room, you
pay a metered price to a utility company. "The cloud" in this sense is
like the grid from which we draw electric power.

Instead of energy companies, the providers are Amazon (EC2), Google
(Compute Engine), Microsoft (Azure), Digital Ocean, and others. And
this isn't science fiction — if you have a startup (especially one
where you want to try new things and may need to scale up (_and down_!)
quickly, this is how things are done now. And, it's appealing to large
companies as well, where an on-premises cloud based on something like
(open source!) OpenStack lets your IT department become an in-house
utility provider to your developers.

So: Fedora Cloud is simply an instance of Fedora optimized to run in
this environment. If you go to https://getfedora.org/en/cloud/download/
and click on one of the Amazon EC2 images at the bottom of the page,
you can launch a new remote Fedora system in minutes. And, you can use
this as a sort of self-service hosting provider, if you like, but the
important thing is that you can actually also access all control of the
machine via an API, which means you can build systems that
automatically scale up (and again, down) as needed.

But, at this point, Fedora Cloud is just that basic building block, and
doesn't actually provide any cloud-based _services_. For that, one
approach is to use popular container technology Docker on top of Fedora
Cloud — read more in this recent Fedora Magazine article:

and take a look at 
for practical examples, which includes among other things OwnCloud (a
remote storage solution) and Wordpress (the blogging software, of
course).


-- 
Matthew Miller

Fedora Project Leader

WhyWeFOSS

Since I'm kinda new here, I still spend much of my mental energy thinking about how to FCL, and wrapping my head around this wonderful bazaar that is Fedora. One of the best parts is getting to enjoy "Fedora-Firsts" on a daily-basis.

Today's firsts were my first non-decause specific wiki page, and first time chiming in on the Fedora-Join Trac.

I spend a lot of mental energy thinking about "HowFOSS", but even moreso "WhyFOSS?" So when I got pinged in #fedora-join today (an up-and-coming new contributor onboarding group within Fedora), I was *EXXSTATIC* when I found Join-SIG Trac Ticket #10, proposing a "FLOSSophy" contest.

I added my thoughts, which were well received so far, and have created a wikipage here for others who want to chime in too: https://fedoraproject.org/wiki/Fedora_Join_SIG/WhyWeFOSS.

This is still a very early-on idea, but it won't be for long, as the Join-SIG would like to propose it to the council in the very near future.

I'm likely on the hook for providing a version of my "WhyWeFOSS" as an example, so stay tuned for that post in the near-ish future.

UNICEF Innovation Centre and Fund Launch

The raw-but-full transcript from my recent visit to the United Nations for the Launch of the UN Innovation Centre & Fund can be found in my decause/raw repo on GitHub, but here are a few choice quotes, and a rough word_cloud mask.

When I first started 16 years ago, I asked one of my colleagues, how does it work? Innovate, Demonstrate, replicate, advocate. I've followed that ever since. You can't do it just once, you gotta do it all the time.
David Morely, President & CEO, UNICEF Canada
"If you give voice to the common people, they will share their ideas generally. Much more knowledge exists in Open Source... Children are not a sink of resources, but a source of innovation.
~Prof. Anil Gupta, Founder of Honeybee Network
There is a saying that You can count the seeds in an apple, but you cannot count the apples in a seed. We're hoping to build tens of millions of apples in the future.
~Ambassador HAHN Choong-hee, Deputy Permanent Representative of the Republic of Korea to the UN in New York.

More Harm than Good svpino

This blogpost has been making the rounds on the Social Medias as of late:

https://blog.svpino.com/2015/05/07/five-programming-problems-every-software-engineer-should-be-able-to-solve-in-less-than-1-hour

I'm sure many of my hacker peeps read this article and thought to themselves "YASSS! This guy is so totally right!!1! Why n00bs gotta n00b! RTFM, Br0!"

This stuff is toxic, will not help onboard new devs, or improve the habits of careless devs. I feel your pain, but this isn't going to actually solve your problem, but conflate it by creating a hostile environment. This is a classic case of #doingitwrong

I understand that the author is frustrated with sub-par candidates applying for positions they are not qualified for, but this kind of: "You are not allowed to even identify as a ________ until you meet my list of arbitrary requirements" is dangerous.

Yes, it would be nice if everyone applying to your open position could solve these problems, but that group of people you are bemoaning here, those who are irreverently spamming their resumes everywhere, are not going to care about this post, or what you think qualifies them. They are just playing the job-lottery...

You know who will care and take it very seriously? All the aspiring programmers and software engineers, who you just told were not good enough to even call themselves or even think of themselves as a programmer... Why would you want to work with people who don't think you are good enough or worth it?

You can say someone is not qualified for a position, but please don't try to tell someone who they are, or how they should think about themselves. Everyone has to start somewhere. Programmers do not emerge fully-formed from the womb--they learn from others, and from failure.

Proposal: CommOps for Fedora?

Community + Operations = CommOps

The rise of DevOps has been swift. Sysadmins are increasingly instrumenting and integrating automated systems to stand up and maintain their infrastructure. This same approach can be taken to support community infrastructure in a distributed and automated fashion, that doesn't force people to choose between using their precious volunteer time to "build things" or "build communities that build things."

Delegation:

One person, Lead or otherwise, cannot possibly know everything that is happening in every corner of a project the size of Fedora, let alone where each of those sub-communities would like to go in the future. To do this, we'll need broad participation across many teams and communities. I would propose a delegation, rather than an elected board, or other top-down style governance structure, be the vehicle through which to gather input and reach consensus on community infrastructure. Delegates will represent distinct groups within Fedora, selected from within their delegation, with additional input/participation by non-voting delegates who want to be involved.

Delegations include:

  • The 13 Fedora Subprojects
  • The five working groups (three Editions, plus Base and Stacks/Env Working Groups)
  • Any active and interested SIGS (will be opt-in)
  • Distinct web properties without a team/committee/group (Ask.fp.o maybe falls into this category?)
  • Other moving parts of Fedora that I have not yet identified, but should have representation

Operating Principles:

  • Instrument activity in existing communities to create and track metrics (a good initial effort exists at http://thisweekinfedora.org/)
  • Federate and syndicate with as little burden on contributors as possible (like middle-ware that wraps and pipes existing process/activity)
  • Community engagement and outreach is something *everyone* in Fedora should be concerned with and invested in, not just Ambassadors or Marketing.

Techincal Strategy:

  • Use real-time communication channels and infrastructure when possible (Fedmsg, FMN, Zodbot, others)

Meeting Format:

I would like to adopt the ticket strategy that is used by Design Team, resulting from their latest FAD,, which is ticket-driven meetings, with open-floor at the end.

  1. Tickets that don't get requests for information responded to after 2 weeks, become inactive.
  2. Tickets that are stalled for 2 weeks either get unassigned, or can be renewed for an additional two weeks by their owner.

Things that the Fedora Community Operations (CommOps) Team helps with:

  • Unified Messaging. It is my hope that when someone asks the question, "What is Fedora?" to an existing community member, *everyone* will have at least a standard elevator pitch, whether you are a designer or engineer or translator. Ideally this is going to be informed by the Fedora Core Values and Mission, and developed in the open similar to the Red Hat Mission Statement. Much input from existing groups (such as marketing and design) will be needed.

  • Curating a queue of "stories." Much in the spirit of BoingBoing.net, the idea of "Cover Posts" which can be generated from existing content, and point to those existing parts of Fedora to minimize the burden of "publishing in yet another place." Content that is highly designed and curated already (announce-list, Fedora Magazine) should get the "greenlight" to be published automatically, and others added to a curated content queue from the community by Zodbot, mail-list, Fedmsg, and/or other means. This queue of curated content will help feed both Fedora Magazine (end-user focused content) and a here-to-for undefined Community/Contributor Outlet (perhaps a council or CommOps blog?)

  • Badges Requests. To help direct contributor activity, the community team will help existing sub-projects come up with badges, and series' of badges, to establish an official process and credential for team/subproject membership. The badges *design* process is operating very well, but the badges *strategy* process falls onto the design team's already full plate. Let's fix that.

  • New Contributor Onboarding via Fedora Hubs. This is an existing effort, with momentum, and full support of the design team, and buy-in from the infrastructure team. I am *thrilled* to not have to create or recreate this wheel, and want to support Hubs as the community team's official strategy. The gist is: "The point behind the idea was to provide a space specifically for Fedora contributors that was separate from the user space, and to make it easier for folks who are non-packager contributors to Fedora to collaborate by providing them explicit tools to do that. Tools for folks working in docs, marketing, design, ambassadors, etc., to help enable those teams and also make it easier for them to bring new contributors on-board." Proposal here: http://blog.linuxgrrl.com/2015/03/24/enabling-new-contributorsainstorm-session/ and results here: http://blog.linuxgrrl.com/2015/03/25/summary-of-enabling-new-contributors-brainstorm-session/

  • Wiki. The wiki is aging. The wiki tries to be all things to all Fedorans. There are a number of initiatives happening (I've heard Pete Travis is moving User Docs out of the wiki into a readthedocs.org style site, pfrields says there is an {{old}} tag that is going to help us sift through content, and there are likely other initiatives too) We'd like to do things like automatically generate User pages on the wiki (in the spirit of the badges template) so that users don't have yet-another-place-to-edit.

  • Internal Communications. This is an ongoing and difficult problem, and we have come up with an approach, but it does resemble the so-far-proposed structure of FOSCo. Each of the 13 official subprojects, active and interested SIGS, working groups, and each web-property (Ask, Magazine, etc...) can choose a delegate. Since this is a *massive* synchronous effort, we will need a way for each delegate to report on behalf of their delegation via a template. That template will be ticket driven. Creating zodbot hooks to fill in this template from existing IRC meetings will solve this in many cases, but not all. Having a method to manually submit reports will help as a fallback.

  • Perhaps Code of Conduct and Diversity may make sense to fall under the community team as well. The new Diversity Advisor (search committee is forming now) will likely be interested, if not be the owner of this aspect of the community team.

  • Metrics. Because of the Fedmsg stack, we have some very detailed raw data on Fedora contributor activity. There are a number of efforts being undertaken to generate data visualizations and regular reports based on this raw data. A critical part of developing metrics will be defining what kinds of questions we want to ask of this massive store of raw data.

  • Other things I didn't think of (which is likely many)

That Rugged Raw

It has been a more-busy-than-usual week on campus, and I've had a pretty packed conference schedule. I've been much too far behind on New Year's Resolution:

Ship Copy.

So, in it's most-purest most-rawest most-honest form, you can find a number of raw transcripts in the new repo: decause/raw

So, What does that look like?

.
├── libreplanet
│   └── 2015
│       ├── closingkeynote-libreplanet-karensandler.txt
│       ├── debnicholson-friday.txt
│       ├── freesoftwareawards.txt
│       └── highpriorityprojs-libreplanet-friday.txt
├── pycon
│   └── 2015
│       ├── ninapresofeedback.txt
│       ├── pycon-day2-keynotes.txt
│       ├── pyconedusummit2015.txt
│       └── scherer-pycon-ansible-day2.txt
└── RIT
    └── 2015
        ├── biella-astra-raw.txt
        ├── biella-molly-guest-lecture.txt
        └── molly-sauter-where-is-the-digital-street.txt

6 directories, 13 files

$ wc -w libreplanet/2015/*.txt
 2287 libreplanet/2015/closingkeynote-libreplanet-karensandler.txt
  139 libreplanet/2015/debnicholson-friday.txt
  586 libreplanet/2015/freesoftwareawards.txt
 2297 libreplanet/2015/highpriorityprojs-libreplanet-friday.txt
5309 total

$ wc -w pycon/2015/*.txt
  106 pycon/2015/ninapresofeedback.txt
 2233 pycon/2015/pycon-day2-keynotes.txt
 1844 pycon/2015/pyconedusummit2015.txt
   63 pycon/2015/scherer-pycon-ansible-day2.txt
4246 total

$ wc -w RIT/2015/*.txt
 4521 RIT/2015/biella-astra-raw.txt
 2489 RIT/2015/biella-molly-guest-lecture.txt
 1964 RIT/2015/molly-sauter-where-is-the-digital-street.txt
8974 total

18529 total total

18,529 words, or, just over 41 pages total of raw text.

There is a flaw in my workflow. Though there is some utility in a raw transcript, really it is mostly when delivered in real-time. After the fact, there is much post-production work to be done, like spell checking. Even after, if there is a video, then the transcript is partial, and incomplete. This is bothersome to many potential downstream consumers of raw text. So where does that leave us?

Word Clouds

I've played with word_cloud before within my decause/presignaug for building presidential inauguration visualizations last year. Since then, word_cloud has gotten much more sophisticated--now using scikitlearn, and numpy, and providing the ability to fit word clouds within images!

List of Issues/Fixes

  • you'll need to pip install cython first
  • You'll need to sudo yum install freetype-devel (probably not necessary, since this is alleviated by pointing at a diff .ttf typeface...)
  • you'll have to edit your FONT_PATH within word_cloud.py
  • image masks *must* be saved as greyscale, not rgb images (this was a biggie, and I wouldn't have figured it out if GIMP didn't display the color encoding in the file statusbar when you opened things :) )
I went ahead and uploaded the changes I made to my fork on GitHub: http://github.com/decause/word_cloud if you'd like to see them. The important files are pycon.py and pycon-greys.py.

Hackademics on Campus

I'd love to give a proper reckoning of the past 48 hours, but it would take a not-so-insignificant feat of editing...
[decause@chapeauxrouge story []]$ wc -w biella-*
 4521 biella-astra-raw.txt
 2486 biella-molly-guest-lecture.txt
 7007 total
7007 words total

Enter the Soylent

Thank you everyone for your input and advice on my previous post about Soylent. Folks seem pretty divided on this particular lifehack, and now I have a much better idea of why, and what the shortcomings of Soylent's current formula are.

Though there is much to be desired in the 1.4 version of Soylent, it is better than the 1.0 version of Drive-Thru nutrition that I've been apt to subsist upon as of late.

I've only got enough for a couple of days, but that should be enough to know whether or not I can stomach it. So far, I've lucked out and I don't hate the taste, though I did wait until I was *rilly* hungry before "eating" to trick my body into enjoying it more ;)

Meal #1 was a success, and I'm bringing Meal #2 with me today to campus.

http://soylent.me