On the 28th of January we, the Mozilla Switzerland, community held another community meetup to organize ourselves for the next few months in 2017.
We did a start/stop/continue analysis of our work in 2016. Here’s the result:
With that in mind, we came up with a few goals for the first half of the year. Since we all agreed on stopping to do unrealistic goals we focused on the most voted ones from above. Of course this doesn’t mean that we will only do those, so everyone is encouraged to also do their own initiatives and we will still have our monthly meetups to bring topics forward.
These are our goals for the first half of 2017. Our motto is: Complete goals and do more instead of running after goal completion and not succeed like we did in the past year.
Experiment: Organize Bootcamp/Barcamp style conference (community proposes talks and votes on them to be done at the beginning) with a broader Web topic. If successful this can be done more frequently and maybe even be adapted to fit into an evening, or be expanded to two days. Our hypothesis is that this brings in more interested people than the talks we regularly organize without clear call-to-action.
Owner: Marc and Michael
We continue to ask Mozilla to make its decision process more transparent, so community members can feel more involved.
This was a major concern during our community meetup. This goal is not fully defined and we will work together to phrase our scope accordingly. Also this goal definition is a “working draft”, therefore not perfectly phrased.
On June 20th the Swiss Mozillians met in Zurich to discuss the second half of the year. The goal was to come up with objectives for mozilla.ch that are aligned with the current Mozilla strategy and the Participation Team and Mozilla Reps goals.
At first we did a retrospective, here are the key results:
What should we stop doing?
Discussions on the mailing list
posting “meta” discussions on Github
focusing on initiatives we don’t have time for
excluding people from discussions (see “meta discussions”)
focusing on Zurich
creating single point of failures
missing to provide clear pathways to contribute when we have a talk
What should we start doing?
Create a central hub for all resources MozillaCH-related (in terms of “Get involved”)
Focus on a few single strengths we have instead of a lot of single initiatives we can only go so far for
Start non-linear discussions on discourse
Have more event locations to get to people that can’t come to Zurich or Lausanne
Be more clear about the strengths of single community members and support them with initiatives that fit into the general direction of Mozilla
Start using communication channels specific to the audience we want to reach
What should we continue doing?
Event organization works well
Github issues for tracking
Team work at meetups
Keeping things simple (not having a lot of bureaucracy hassle)
With that in mind, we came up with two objectives. Both are aligned with overall Mozilla strategy pieces. The first one is Core Strength, the second one is Prototyping the Future. None of these Key Results are easy to achieve, but we think that with these we can achieve a good base for the upcoming years.
Objective 1: Grow our core contributor strengths and be amazing at being visible in Switzerland
Key Result 1: We have at least 5 core contributors that are active on Discourse
The Janitor was started by Jan Keromnes, a Mozilla employee. While still in an alpha state, Jan gave us access to it so we could test run it at our hackathon. Many thanks to him for spending his Saturday on IRC and helping us out with everything!
Once you’re signed up, you can click on “Open in Cloud9” and directly get to the Cloud9 editor who kindly sponsor the premium accounts for this project. Cloud9 is a pure-web IDE based on real Linux environments, with an insanely fast editor.
At the hackathon we ran into a Cloud9 “create workspace” limitation, but according to Jan this should be fixed now.
After an initial “git pull origin master” in the Cloud9 editor terminal, you can start to build Firefox in there. Simply running “./mach build” is enough. For me this took about 12 minutes for the first time, while my laptop still needs more than 50 minutes to compile Firefox. This is definitely an improvement. Further you won’t need anything else than a browser!
I had my environment ready in about 15 minutes if you count the time to compile Firefox. Comparing this to my previous setups, this solves a lot of dependency-hell problems and is also way faster.
Running the newly compiled Firefox
The Janitor includes a VNC viewer which opens a new tab and you can run your compiled Firefox in there. You can start a shell and run “./mach run” in the Firefox directory and you can start testing your changes.
For some of the bugs we tackled at the hackathon, we needed to run ESLint (well, would be good to run this anyway, no matter what part of the code base you’re changing). The command looks like this:
user@e49de5f6914e:~/firefox$ ./mach eslint --no-ignore devtools/client/webconsole/test/browser_webconsole_live_filtering_of_message_types.js
0:00.40 Running /usr/local/bin/eslint
0:00.40 /usr/local/bin/eslint --plugin html --ext [.js,.jsm,.jsx,.xml,.html] --no-ignore devtools/client/webconsole/test/browser_webconsole_live_filtering_of_message_types.js
8:1 warning Could not load globals from file browser/base/content/browser-eme.js: Error: ENOENT: no such file or directory, open '/home/user/firefox/browser/base/content/browser-eme.js' mozilla/import-browserjs-globals
8:1 warning Definition for rule 'mozilla/import-globals' was not found mozilla/import-globals
8:1 error Definition for rule 'keyword-spacing' was not found keyword-spacing
18:17 error content is a possible Cross Process Object Wrapper (CPOW) mozilla/no-cpows-in-tests
✖ 4 problems (2 errors, 2 warnings)
0:02.85 Finished eslint. Errors encountered.
As you might see from the input, running this in the Janitor environment results in not finding the Mozilla-specific rules. The reason here is that the eslint npm package is installed globally. Globally installed eslint can’t find the locally installed mozilla-eslint-plugin. In my opinion the easiest fix would be to not install it globally, just within the firefox directory (running “./mach eslint –setup”) while spinning up the instance should be enough here.
We could circumvent this problem by changing the global npm prefix and then running it with “/new/path/eslint …” so it doesn’t call the other one. In hindsight, we could just have installed it to the directory and then call it through node_modules.
Update, May 5, 15:09: Jan has has fixed this plugin issue :)
Creating a patch
Creating a patch is really easy, following the tutorial on MDN is enough. We were very happy to see that the moz-git-tools are already installed by default, so you can just create your own branch, checkin your changes and run “git format-patch -p -k master” to get a Git patch file. Since we need a Mercurial patch, you then run “git-patch-to-hg-patch” and you can upload the resulting file to Bugzilla and you’re set!
Those two commands could maybe be aliased by default so running “create-patch” or similar would directly do this for you to further decrease the work you need to do manually.
Seeing it in action
After some initial account problems, we didn’t really find any other bugs apart from the ESLint situation. Again, thanks a lot to Jan for providing us the environment and letting us test it. This will change the live of a lot of contributors! For now The Janitor supports contributions to Firefox, Chrome, Thunderbird, Servo and KDE. There is also a GitHub repository for it.
Before the hackathon we created a list of “good first bugs” that we could work on. This was a great thing to do, since we could give the list to the attendees and they could pick a bug to work on. Setting up the environment to hack was pretty easy. We’ve used “The Janitor” to hack on Firefox, I’ll write a second blog post introducing you to this amazing tool! We ran into a few problems with it, but at the end we all could hack on Firefox!
We worked on about 13 different bugs, and we finished 10 patches! This is a great achievement, we probably couldn’t have done that if we needed more time to set up a traditional Firefox environment. Here’s the full list:
Thanks to everybody who contributed, great work! Also a big thanks to Julian Descolette, a Dev Tools employee from Switzerland who supported us as a really good mentor. Without him we probably couldn’t have fixed some of the bugs in that time!
At the end of the hackathon we did a round of feedback. In general the feedback was rated pretty well, though we might have some things to improve for the next time.
40% of the attendees had their first interaction with our community at this hackathon! And guess what, 100% of the attendees who filled out the survey would be joining another hackathon in 6 months:
For the next hackathon, we might want to have a talk about the Firefox Architecture in general to give some context to the different modules. Also for the next hackathon we probably will have a fully working Janitor (meaning not alpha status anymore) which will help even more as well.
Janitor will be great for hackathons (though still Alpha, so keep an eye on it)
The mix of talk + then directly start hacking works out
The participants are happy if they can create a patch in a few minutes to learn the process (Creating Patch, Bugzilla, Review, etc) and I think they are more motivated for future patches
All in all I think this was a great success. Janitor will make every contributor’s life way easier, keep it going! You can find the full album on Flickr (thanks to Daniele for the great pictures!).
From April 15th through April 17th the Mozilla Reps Council met in Berlin together with the Participation Team to discuss the Working groups and overall strategy topics. Unfortunately I couldn’t attend on Friday (working day 1) since I had to take my exams. Therefore I could only attend Saturday and Sunday. Nevertheless I think I could help out a lot and definitely learned a lot doing this :) This blog posts reflects my personal opinions, the others will write a blog post as well to give you a more concise view of this weekend.
Alignment Working Group
The first session on Saturday was about the Alignment WG. Before the weekend we (more or less) finished the proposal. This allowed us to discuss the last few open questions, which are now all integrated in the proposal. This will only need review by Konstantina to make sure I haven’t forgotten to add anything from the session and then we can start implementing it. We are sure that this will formalize the interaction between Mozilla goals and Reps goals, stay tuned for more information, we’re currently working on a communication strategy for all the RepsNext changes to make it easier and more fun for you to get informed about the changes.
Meta Working Group
For the Meta Working Group we had more open questions and therefore decided to do brainstorming in three teams. The questions were:
Who can join Council?
Which recognition mechanisms should be implement now?
A new working group? As you see, I didn’t believe it at first and Rara was visibly shocked!
Fun aside, yes, we’ll start a new Working group around the topics of outwards communication and the Rep program’s image. During our discussions on Saturday, we came up with a few questions that we will need to answer. This Friday we had our first call, follow us in the Discourse topic and it’s not too late to help out here! Please get involved as soon as possible to shape the future of Reps!
On Sunday we ran a joint session with the rest of the Participation team around the topic “How we work together”. We came up with the questions above and let those be answered / brainstormed in groups. I started to document the findings yesterday, but this is not yet in a state where it will be useful for anybody. Stay tuned for more communication around this (communication about communication, isn’t it fun? :)). The last question around “How might we improve the communication between the Participation-Team and the Council?” is already documented in the Alignment Working group proposal. Further the Identity working group will tackle and elaborate further the question around visibility.
Reps Roadmap for 2016
Wait, there is a roadmap?
At the end of our sessions we put up a timeline for Reps for all our different initiatives on a wall. Within the next days we’ll work on this to have it digitally per months. For now, we have started to create GitHub issues in the Reps repo. Stay tuned for more information about this, the current information might confuse you since we haven’t updated all issues yet! It basically includes everything from RepsNext proposal implementations to London Work Week preparations to Council elections.
This weekend showed that we currently have an amazing, hard-working Council. It also showed that we’re on track with all the RepsNext work and that we can do a lot once we all work together and have Working Groups to involve all Reps as well.
Looking forward to the next months! If you haven’t yet, have a look at the Reps Discourse category, to keep yourself updated on Reps related topics and the working groups!
The other Council members will write their blog post in the next few days as well, keep an eye out for link on our Reps issues. Once again, there are a lot of changes to be implemented and discussed, we are working on a strategy for that. We believe that just pointing to all proposals is not easy enough and will come up with fun ways to chime into these and fully understand them. Nevertheless, if you have questions about anything I wrote here, feel free to reach out to me!
Credit: all pictures were taken by our amazing photographer Christos!
We started to organize the Hackathon on Github, so everyone can participate. Geoffroy was really helpful to organize the space for it at Liip.ch. Thanks a lot to them, without them organizing our events would be way harder!
We expected more people to come, but as mentioned above, this is our first self-organized event in the French speaking part of Switzerland. Nevertheless we were four persons with an interest in hacking something together.
Geoffroy and Paul started to have a look at Vaani.iot, one of the projects that Mozilla is currently pushing on. They started to build it on their laptops, unfortunately the Vaani documentation is not good enough yet to see the full picture and what you could do with it. We’re planning to send some feedback regarding that to the Vaani team.
In the meantime Martin and I set up my Raspberry Pi and started to write a small script together that reads out the temperature from one of the sensors. Once we’ve done that, I created a small API to have the temperature returned in JSON format.
At this point, we decided we wanted to connect those two pieces and create a Web app to read out the temperature and announce it through voice. Since we couldn’t get Vaani working, we decided to use the WebSpeech API for this. The voice output part is available in Firefox and Chrome right now, therefore we could achieve this goal without using any non-standard APIs. After that Geoffroy played around with the voice input feature of this API. This is currently only working in Chrome, but there is a bug to implement it in Firefox as well. In the spirit of the open web, we decided to ignore the fact that we need to use Chrome for now, and create a feature that is built on Web standards that are on track to standardization.
After all, we could achieve something together and definitely had some good learnings during that.
Organizing a hackathon for the first time in a new city is not easy
We probably need to establish an “evening-only” meetup series first, so we can attract participants that identify with us
We could use this opportunity to document the Liip space in Lausanne for future events on our Events page on the wiki
Not all projects are well documented, we need to work on this!
After the Hackathon
Since I needed to do a project for my studies that involves hardware as well, I could take the opportunity and take the sensors for my project.
You can find the Source Code on the MozillaCH github organization. It currently regularly reads out the two temperature sensors and checks if there is any movement registered by the movement sensor. If the temperature difference is too high it sends an alarm to the NodeJS backend. The same goes for the situation where it detects movement. I see this as a first step into my own take on a smart home, it would need a lot of work and more sensors to be completely useful though.
Back in November we had a Community Meetup. The goal was to get a current status on the Community and define plans and goals for 2016. To do that, we started with a SWOT-Analysis. You can find it here.
With these remarks in mind, we started to define goals for 2016. Since there are a lot of changes within one year, the goals will currently only focus on the first part of the year. Then we can evaluate them, shift metrics if needed, and define new goals. This allows us to be more flexible.
Objective 1: The community is vibrant and active due to structured contribution areas
Objective 2: MozillaCH is a valuable partner for privacy in Switzerland
Objective 3: There is a vibrant community in the “Romandie” which is part of the overall community
Objective 4: The MozillaCH website is the place to link to for community topics
Objective 5: With talks and events we increase our reach and provide a valuable information source regarding the Open Web
Objective 6: Social Media is a crucial part of our activities providing valuable information about Mozilla and the Open Web
We know that not all of those goals are easily achievable, but this gives us a good way to be ambitious. To a successful first half of 2016, let’s bring our community further and keep rocking the Open Web!
Mozilla’s Participation Team has started to do “mid-term plannings” with a few focus communities back in September. The goal was to identify potential and goals for a six month plan which would then be implemented with the help of all the community. Since Germany is one of the focus markets for Firefox, it’s clear that the German-speaking community was part of that as well
Everything started out at the end of September, when we formed a focus group. Everybody was invited to join the focus group to brainstorm about possible plans we can set in stone to drive Mozilla’s mission forward. I’d like to thank everybody who chimed in with their ideas and thoughts on the German-speaking community and its future in our own Discourse category:
After the community meetup at the beginning of the year we had a lot of momentum which enabled us to get quite a lot done. Unfortunately this momentum has decreased over time, with a low since September (my opinion). Therefore our main areas we picked for our mid-term plans focused on internal improvements we can make, so we can focus on Mozilla top-organizational goals once we have implemented our improvements. This doesn’t mean that the German-speaking community won’t focus on product or mission, but it’s just not where we can commit as a whole community right now.
We have identified four areas we’d like to focus, which I will explain in detail below. Those are documented (in German) on a Wiki page as well to be as transparent as possible. We also asked for feedback through the community list and didn’t get any responses that would say anything against this plan.
In 6 months it’s clear for new and existing contributors who is working in which functional area and who to contact if there are any questions. New contributors know which areas need help and know about good first contributions to do.
Understandable documentation of every contribution area the German-speaking community is active in. At least 60% of the areas are documented initially.
There are contact persons listed per contribution area with clear means of contact. At least 80% of the initially defined areas have at least one contact person for new contributors. For the three biggest areas there are at least two contact persons.
Handling of new contributors is defined clearly for all contribution areas, including responsibilities for individuals and groups. The onboarding process is clearly specified and we get at least two new long-term contributors per area. These new contributors can be onboarded within a few weeks with the help of the contact persons as mentors. Further mentors can be defined without them needed to be “contact persons”.
In 6 months the mozilla.de website is the base for all information about Mozilla, its local community and contribution possibilities. Users of the website get valuable information about the community and find contribution possibilities which can be started without a lot of time investment to get used to the product. The website is the portal to the community.
The website clearly states the possibilities to contribute to the German-speaking community (even if this is only a link to a well defined /contribute page)
The website lists all current Mozilla product and projects
The content defined in February 2015 is re-evaluated and incorporated as needed
The website is the main entry point to the community and promoted as such
Through the new website we get at least 10% of new contributors which found us trough it
Meetings / Updates
In 6 months discussions among the community members are well distributed. New topics are started by a broad basis and topics are being discussed by a wide range of contributors.
There are at least 6 active participants per meeting
The meeting is structured for efficiency and brings in a reasonable ratio between discussion and update topics. There are enough enough discussion points so that updates can be treated as “read only” in 60% of the time.
The satisfaction of the participants who would like to join is increased by 30%
There are at least 10 unique participants in discussions on the mailing list
In 6 months the German-speaking community is active on the most important social media channels and represents Mozilla’s mission and the community achievements to the public. Followers learn more about the community and learn about the newest updates and initiatives the community is supporting. Additionally these channels are used to promote urgent call-to-actions.
The different channels are clearly separated and the user knows what content needs to be expected.
We keep users engaged and updated with at least 8 tweets per month per channel
There are at least 3 maintainers for the different accounts
To track the progress we created a GitHub repository in our organization, where everybody can create issues to track a certain task. There are four labels which make it possible to filter for a specific improvement area. Of course, feel free to create your own issues in this GitHub repo as well, even if it might not be 100% tied to the goals, but every contribution counts!
I have put together a share-able summary slides for easy consumption in case you don’t want to forward the link to this blog post.
Even though I’m going to focus my time on the Mozilla Switzerland community, I will still help with and track the progress we’re doing with the mid-term plan implementations.
Feel free to get in touch with any of the focus group members linked above or the community-german mailing list in general for any questions you might have.
After the talks there will be some food and time to get in touch with developers and each other.
On Sunday there will be workshops on similar topics to follow up or get you all set up if you would like to start contributing to Mozilla projects. Sign-up for the workshops will be on-site on Saturday.
At the Community Meetup of the German-speaking community back in February we decided to organize a Mozilla Day or Mozilla Weekend in 2015 to get more visible in Berlin, tell people about Mozilla’s mission and projects, and recruit new Mozillians. We did this on July 11th and 12th. This is the post about Day 2. You can read about Day 1 in a previous blog post.
Day 2 On Sunday we had several workshops going on in parallel in the Mozilla Office in Berlin. Around 30 attendees joined us and hacked on Firefox, Firefox OS and brainstormed about involved in the Community Creative Team. Since we had coders and designers there, we had a good balance of workshops to participate in.
Bug 547401 – worked on by Stefania and David Bryant
Bug 1180314 – fixed by David Bryant, his first patch on Mozilla code (as it is for all other volunteers)
Bug 1170460 – worked on by Nils, but was blocked due to unclear specifications
Bug 965211 – fixed by Nils, I love this, already tested that one on my Flame with Nightly
Bug 796319 – Asma has started to do this after our introduction into Gaia
Bug 1055357 – worked on by Oleksandr who had great ideas on how to improve code not in the scope of this bug
Bug 1044275 – worked on by Claas who is an experienced Android developer
Florian will send out an invitation for a follow up in Berlin later this week. See below for more information.
Further Elio started the Community Design Creative in Germany. They will have their first meetup (physically with Vidyo participation) at the end of the month. This was a group of about 7 persons interested in design. Since we currently only have 2 designers in our German-speaking community I think this is a great addition and has great potential. Let’s keep focus on this and keep them engaged!
Florian, Markus and Mario will follow up with the code contributors in Berlin and organize regular meetups. We still have to figure out a few location questions, but we’re on the right track. We had 14 people from the workshops interesting in meeting up again and talk about Mozilla and writing some code. Like that we could also have a group that meets regularly to help out with contribution problems and talk about new things they’ve been working on. I think that at least 6 people will stick around long-term. This would basically be a 300% increase of volunteers in Berlin!
As already written, Elio will follow up with the designers to create amazing creative assets and improve UX.
Further I think it might be beneficial to organize another Mozilla Weekend style event next year. Let’s see how that turns out.
Feedback from participants
At the end of Day 1 we asked people to give feedback. Here’s the result (out of 14 responses):
What people liked:
“Ask us anything” session (mentioned as best session by more than 50% of feedback givers)
Speech Recognition talk by Kelly
Firefox OS talk by André
What people would improve:
More technical talks (for example Servo)
Introduction session to get to know all the participants
Have a session on Webmaker
Reach more people (Michael: not sure what exactly is meant by that, maybe attendence?)
More live demos
How the understanding of Mozilla and its mission changed:
A lot: 7
Not at all: 0
“Please less audience involvent next time :-)”
“Much more interactive. Much much more interactive.” (mentioned by 2), also less slides
“Don’t let speakers use the hand microphone”
“Don’t give the mic to audience to avoid them giving monologues.”
“Does any meetup really need a talk about women in X? Really? Please give us more *tech*, less replacement topics.”
“i expected a more technical insight into mozilla projects. i am just a web developer / mozilla user”
For day 2 I think that all participants were involved enough and could do whatever they wanted to contribute to. We did not do a specific survey for the workshops though. Judged from the interest to follow up I think this was amazing!
Organizing a 2-day event takes quite a lot of time
Finding a free venue for talks for a whole day in Berlin, contrary to our initial believes, seems impossible
People are interested and we need to keep doing follow up and do more local events in Berlin. Berlin is a big city with a lot of IT people who are interested in learning about Mozilla and contributing. Until now we haven’t done enough there.
For the next event we should have a budget which is laid out for a 50% no-show rate.
It is easy to get people starting on contributing, but we need to do good follow ups to keep them.
We can achieve our goal to have more women in our community when we continue like that. But we need to make sure that we stay inclusive.
There is a demand for recordings for these kind of talks, fortunately we have air.mozilla.org :)
People want to know information directly from the leadership team, since not many know what’s going on behind the curtains.
Have more demos for topics we talk about
We should keep going and have fun with it!
Thanks again for everyone who made this possible! We achieved a lot, let’s keep the momentum going!