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. In the previous year, Fedora
had an awesome participation
and we would like to continue to be mentoring Org this year too.
Fedora needs your help!
Fedora is currently looking for mentors and projects, it’s very staright forward to propose yourself as a mentor and a project. The project encourages mentors to come forward and propose project ideas by 2020-02-10. More details are given below.
How to Propose a Project?
If you want to mentor a specific project, think carefully about several things:
Do you have enough time to work on this with the student during the entire project.
You will be helping someone else when they get stuck. You don’t want to become a blocker because you’re busy.
It is harder to find success when you are completely certain of how
an idea needs to be implemented; finding a student with the skills and
interest to implement a specific solution is a lot harder than finding a
student with enough skills to respond to a use case need. Also,
students learn more when they help design and guide the project. In
other words, provide guidance and direction but let the student do some
of the “driving.”
Where you can have looser ideas, you may be able to find a student
who works as a sort-of intern who can implement a solution to a use case
you have. In past experiences, students going after a use case are more
likely to get somewhere with self-direction and support from you.
Who can help you?
Try to find a second mentor for the project.
If you’re interested in working with a student on a specific project you should post your idea to the Mentored Projects Issue Tracker. Your issue should be tagged GSoC and use the Google Summer of Code template. We strongly encourage you to find a second person to help with mentoring and to solicit feedback on your proposal
Can I be a Mentor Without a Project?
Yes! You can either:
Work with a student who brings an idea to your sub-project. This
requires a different level of communication throughout the project, but
can be the most rewarding.
Be a general mentor. This is a person who works with all students
regardless of their project. To become a general mentor please open an
issue in the Mentored Projects Issue Tracker offering your help. Please tag the issue with the GSoC tag.
I was wondering why, in the QA team, there are various newcomers willing to contribute, but so little interaction in the mailing list.
If a person would like to join the QA team, like many other Fedora teams, one of the first things they are supposed to do (at least as a good practice, if not as prescribed by the team SOP) is to send an introductory email to the team’s mailing list.
And it is simple to spot that—after the introduction email and eventually being sponsored into the FAS group—in most cases the newcomers don’t send any other mail in the following times. Why?
Earlier this summer, the Fedora Council approved the first phase of the Minimization objective. Minimization looks at package dependencies and tries to minimize the footprint for a variety of use cases. The first phase resulted in the development of a feedback pipeline, a better understanding of the problem space, and some initial ideas for policy improvements.
Phase two is now submitted to the Council for approval. In this phase, the team will select specific use cases to target and work to develop a minimized set of packages for them. You can read the updated objective in pull request #64. Please provide feedback there or on the council-discuss mailing list. The Council will vote on this in two weeks.
So far this year, the Mindshare committee has approved all 12 event requests that have been filed. Three requests for swag-only have been approved. The community is reminded that Mindshare is there to help fund events and they can only do that if they’re asked.
On a related note, Sumantro Mukherjee published a Community Blog post calling for Fedora 31 release parties. Fedora 31 is scheduled for release later this month, so now is a good time to start planning release parties.
Google Summer of Code (GSoC) and Outreachy were completed successfully. The Mindshare committee is working on combining GSoC, Outreachy, and Google Code-In efforts under a single “mentored projects” umbrella.
In the past month, the Minimization team brought the “feedback pipeline” to life. Feedback Pipeline gives a quick overview of the use cases we’re targeting to minimize. It shows required packages, their dependencies, the overall size, and allows a deeper inspection with interactive dependency graphs. As part of that work, the team is working on identifying use cases to target.
The Council approved the Minimization objective on a short-term basis. Adam Šamalík will be submitting a proposal for the next phase of this objective to the Council soon.
The Silverblue team is working on Fedora Flatpak preinstallation. Some patches are pending into the Fedora infrastructure to help enable this. The goal is to have the same preinstalled applications as Fedora Workstation.
In addition, planning for Fedora 32 Silverblue is underway. The team has a Kanban board available to the community.
When a newcomer, let’s call her “Jen”, comes to Fedora and looks for where to begin, the general workflow she is introduced to is quite task-oriented. “Find something to do, get started, learn along the way, ask if you have a question” we say. We have easyfix and What Can I do for Fedora (wcidff) designed to quickly help Jen find something to do, for example. The idea, of course, is that Jen will familiarise herself with the tools, the processes, and the people while she works on this task. This works sometimes. Sometimes it doesn’t. It depends on what Jen has picked to do. Sometimes the learning curve is too steep—there are too many tools and processes to learn. Sometimes Jen works on her task in isolation and is too scared to ask questions they think are “silly”. Sometimes Jen just gets too busy to keep working on it.
September 20, 2019 / mattumd / Comments Off on Searching simple or complex strings in text files using grep with regular expression
As a Linux programmer or system admin, it is common to search through text
for a given sequence of characters (such as a word or phrase), called a string,
or even for a pattern describing a set of
such strings; this article contains few hands-on examples for doing these types
of tasks. In this article, we first review how grep Linux works while reviewing
few basic string searches. It follows by diving into more complex string search
using grep with regular expression.
Searching for a Word
or Phrase with Grep Command
The primary command used for searching through text is a tool called grep.
It outputs lines of its input that contain a given string or pattern.
To search for a word, give that word as the first argument.
By default, grep searches standard input; give
the name of a file to search as the
output lines in the file ‘catalog’ containing the word ‘boy’, type:
grep boy catalog
search for a phrase, specify it in quotes.
To output lines in the file ‘book’ containing the word
‘Java Coding’, type:
$ grep ’Java Coding’ book
The preceding example outputs all lines in the file
‘book’ that contain the exact string ‘Java Coding’; it will not match, however,
lines containing ‘java coding’ or any other variation on the case of letters in
the search pattern. Use the ‘-i’ option to specify that matches are to be made
regardless of case.
To output lines
in the file ‘book’ containing the string ‘java coding’ regardless of the case
of its letters, type:
$ grep -i ’java coding’ book
This command outputs lines in the file ‘book’
containing any variation of the pattern ‘java coding’, including ‘java coding’,
‘JAVA CODING’, and ‘jaVA coDIng’.
One thing to remember is that grep only matches
patterns that appear on a single line, so in the preceding example, if one line
ends with the word ‘java’ and the next begins with ‘coding’,
will not match either line.
You can specify more than one file to search. When you specify
multiple files, each match that grep
outputs is preceded by the name of the file it is in (and you can
suppress this with the ‘-h’ option.). A good knowledge of Linux
filesystem would be helpful to navigate the right file and folder
To output lines in all of the files in the current directory
containing the word ‘JAVA’, type:
$ grep JAVA *
To output lines in all of the
‘.txt’ files in the ‘˜/doc’ directory containing the word ‘Java’, suppressing
the listing of file names in the output, type:
$ grep -h Java ˜/doc/*.txt
Use the ‘-r’ option to search a given directory recursively, searching
all subdirectories it contains.
To output lines containing the
word ‘Java’ in all of the ‘.txt’ files in the ‘˜/doc’ directory and in all of
its subdirectories, type:
$ grep -r Java ˜/doc/*.txt
Grep Command with Regular
In addition to word and phrase searches, you can use grep to search for complex
text patterns called regular
expressions. A regular expression—or “regexp”—is a text string of special
characters that specifies a set of patterns to match.
Technically speaking, the word or phrase patterns described in the
previous section are regular expressions—just very simple ones. In a regular
expression, most characters—including letters and numbers—represent themselves.
For example, the regexp pattern 1 matches
the string ‘1’,
and the pattern boy matches the string ‘boy’.
There are a number of reserved characters called metacharacters that do
not represent themselves in a regular expression, but they have a special meaning
that is used to build complex patterns. These metacharacters are as follows: ., *,
$, and \. It is good to note that
such metacharacters are common among almost all of common
Linux distributions. Here
is a good article that covers special meanings of the metacharacters and gives examples of their
To specify one
of these literal characters in a regular expression, precede the character with
To output lines
in the file ‘book’ that contain a ‘$’ character, type:
$ grep ’\$’ book
To output lines
in the file ‘book’ that contains the string ‘$14.99’, type:
$ grep ’\$14\.99’ book
To output lines
in the file ‘book’ that contain a ‘\’ character, type:
$ grep ’\\’ book
In this article, we reviewed how to search string in a
text file in the Linux using grep command. We also discussed how to combine the
power of regular expressions with grep to run complex string searches.
This was the first occurrence of the conference for me to attend. Its an annual Fedora Community gathering, which happens in a new city of Europe every year. This time it was in Budapest, the capital of Hungary, last year it was hosted in Dresden. Dates for the same were: 8th Aug through 11th Aug 2019. Also I got an opportunity to present there on my proposal: “Getting Started with Fedora QA”.
Day 1 Started with a Keynote by Mathew Miller (mattdm). In here he spoke about where we as a community are and where we need to go further. It was a knowledgeable discussion for a first timer like me who was always looking out for the Vision and Mission of Fedora community. There are people who are with Fedora since its first release and you get to meet them here at the annual gathering.
I collaborated with Geoffrey Marr, my co-presenter for a few last moment modifications in the slides. We decided to walk down to level 0 for a calm discussion as it was a bit loud and crowded as all sessions were planned on Level1.
I could see many people had enrolled for our session in the sched app and I was happy to know that there are people who are curious to know how QE can be performed for Fedora. People from all experience levels were present and in fact I could use some experience from the audience. Somehow our session turned out to be more of a discussion where a bunch of people shared their blockers or issues with going ahead with their QE.
Candies exchange was a small event planned in the evening at 20:00 where people bring popular candies, in good amount, from their respective countries, explain the speciality of it. At the end people can collect whichever they like, have them and enjoy the evening.
Groups were formed and people decided for themselves where they wanted to go for the evening hangout on the Day 1. We were 7 people who decided to hangout at the Atmosphere Klub near the V.Kerulet and left at around 9:00 pm by walk.
Day 2 started with a keynote by Denise Dumas, Vice President, Operating System Platform, Red Hat. She spoke on “Fedora, Red Hat and IBM”. I woke up late, 20 minutes before the first session as I went to bed late last night and had walked for around 11 kms the day before.
1 interesting session was “State of Fedora Security” by @huzaifas (Huzaifa Sidhpurwala). He addressed a few security breaches in the Open Source World and how those can affect Fedora and how they can be tackled. He described a few Open Source tools to avoid these security breaches. Moderate vulnerable packages will be removed during next release of the package in 6 weeks, this was approved by FesCo. There was also a plan to create a Fedora Security Dashboard where students from Outreachy and GSoC could be hired and developed the app. Google Chromium is the tool by Google which scans the commits for security vulnerabilities. What are the other Open Source options was an open question.
“Silverblue: On the way to the Future of Fedora Workstation” was a session by Jiri Eischmann and Tomas Popela. There is currently no GUI installer for containers. No localisation, no caching when doing builds locally, too few applications available, no support for delta updates, no policy set for long term support are some of the current issues of Fedora Flatpaks.
“Fedora for living in the Container World.”
Mathew Miller, Flock 2019
A Cruise dinner was planned between 18:00 to 20:00 for all the speakers and attendees for the Day 2 evening and everyone started walking to the cruise at around 17:30 pm. It was a 3 storeyed boat with drinks and food already loaded/arranged, no vegetarian options for me though except the red sauce pasta, the life saviour.
Day 3 started with Interns showcasing their projects and their respective takeaways from what they’ve been working on. Few sessions were: Fedora Gooey Karma, Fedora Happiness Packets, et cetera.
Mentors Panel was a casual discussion about the experience from last year, questions the interns had if any. Stephen Gallagher, Laura Abott (outreachy), Bhagyashree Padalkar, Clement Verna and Valentin Ruthberg were few from the panel. Experiences of working remotely, how the projects for interns are decided, how to get jobs in Open Source, et cetera were the few questions asked-addressed.
Later I’ve attended the Fedora Badges Workshop by Marie Nordin in the Panorama room. There was another instance of this one post lunch but I had a different session added to my schedule already. Agenda for this session included: 5 things we want to see from Dev, Ticket Triage, Update style guide, Onboarding process, Identify designs that are incorrect, How to incorporate badges into Fedora workflows, Development roadmap.
In the second half of the day, I attended a 2 hour Workshop on “Fedora Internationalization CI and Test Cases” by @pravins and Jens Petersen. Noto variable fonts, langpacks-core and bus are the i18n changes in Fedora 31.
“Diversity & Inclusion Hackfest” was the last session for the day. Accomplishments in the past year, plans for upcoming years, enhanced internal team process, et cetera were discussed in this one. 10 Fedora Women’s Days were organised in last 1 year, the event is actually not more than 3 years old. Community Moderation Guide is something that can be created for a crisper event guideline. Coffee with Friends is an initiative that can be organised more frequently.
Everyone gathered for a group photo behind the Hotel, at a small open area at around 5:20 pm. 5:40 pm was the time for buses to arrive which would take us for the Budapest site seeing. The Indian group gathered in a single bus together and the tour started from the Hungarian Parliament. Huge space it was and there were 3 parliament buildings built to choose the best from. There is a tram train (No. 2) you can take to reach here. Later we visited the Opera House, the Ronald Reagan square, Ruin bars, the Turkish Synagogue, et cetera.
“Troll your FeSCo” was 1 of the sessions on the 4th Day, last day of the conference. FeSCo stands for Fedora Security Council. “When a change is approved, do we actually ensure the change is implemented? – Huzaifa”, “Why do we need a change process? – Fedorova”, “There are things which FeSCo is not responsible for but Council is”, “Change is the ultimate project organisation tool and it’s inevitable”, “One should go to Council if someone wants to pursue a FreeBSD kernel”, “Should a change be discussed on the fedora-level mailing list and then be brought to FeSCo?”, et cetera were the things discussed in here.
Lastly people gathered for the Wrap up / session report out in room Helia.
Google Code-in is a contest to introduce students (ages 13-17) to open source software development. Since 2010, 8,108 students from 107 countries have completed over 40,100 open source tasks Because Google Code-in is often the first experience many students have with open source, the contest is designed to make it easy for students to jump right in. I was one of the mentors in this first time for Fedora program. We had 125 students participating in Fedora and the top 3 students completed 26, 25 and 22 tasks each.
Every year Google invites the Grand-Prize winners and their parents, and a mentor to it’s headquarters in San Francisco, California for a 4 days trip. I was offered the opportunity to go and represent Fedora in the summit and meet these 2 brilliant folks in person. This report covers activities and other things that happened there.