rabbit-slide-kenhys-debconf2021-online 2021.08.28.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.rabbit +1 -0
- data/README.md +14 -0
- data/Rakefile +17 -0
- data/cfp.md +28 -0
- data/concept.md +50 -0
- data/config.yaml +26 -0
- data/debconf2021-online.md +166 -0
- data/faq.md +17 -0
- data/images/debconf2020-presentation.png +0 -0
- data/images/debian.net-team-requests.png +0 -0
- data/images/easy-to-find-archtag.png +0 -0
- data/images/easy-to-find-ftbfs.png +0 -0
- data/images/easy-to-find-no-one-working-mark.png +0 -0
- data/images/easy-to-find-no-one-working.png +0 -0
- data/images/easy-to-find-security.png +0 -0
- data/images/easy-to-send-control-email-mark.png +0 -0
- data/images/easy-to-send-control-email.png +0 -0
- data/images/easy-to-view-blocking-mark.png +0 -0
- data/images/easy-to-view-blocking.png +0 -0
- data/images/fabre-recent-updated.png +0 -0
- data/images/fabre.debian.net.png +0 -0
- data/images/logo-combination-standard.svg +255 -0
- data/images/profile.png +0 -0
- data/minidebconf-india2021.md +116 -0
- data/pdf/debconf2021-online-debconf2021-online.pdf +0 -0
- data/presentation-memo.md +322 -0
- data/theme.rb +11 -0
- metadata +84 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: dace4a29eef7adeaef7b1f2f43642b871eea58cd9d3f24555bad4d7760e074df
|
4
|
+
data.tar.gz: f2ff37143651f37411c95c1ea0df56c1950a173bc7dab653efc2631c7ba0b563
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 84e82ea41ec8cb86ff6a2c945794d77c7d3dbfe78f87de6c99c82d44ba493248eddbf76cf370aa8728a373e03f00c77b53093ee59f3f64faadd4d9cc551bc99f
|
7
|
+
data.tar.gz: ff398a5d68bff1d7020c35f4e3410d341e5f1f0841bfead664039cda93c833583cc9348f4e20141bbb29c318cef37f7f2b3dac1c3855866ac5ceb1db97634500
|
data/.rabbit
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--size=1280,720 debconf2021-online.md
|
data/README.md
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
require "rabbit/task/slide"
|
2
|
+
|
3
|
+
# Edit ./config.yaml to customize meta data
|
4
|
+
|
5
|
+
spec = nil
|
6
|
+
Rabbit::Task::Slide.new do |task|
|
7
|
+
spec = task.spec
|
8
|
+
# spec.files += Dir.glob("doc/**/*.*")
|
9
|
+
# spec.files -= Dir.glob("private/**/*.*")
|
10
|
+
# spec.add_runtime_dependency("rabbit-theme-YOUR-THEME")
|
11
|
+
end
|
12
|
+
|
13
|
+
desc "Tag #{spec.version}"
|
14
|
+
task :tag do
|
15
|
+
sh("git", "tag", "-a", spec.version.to_s, "-m", "Publish #{spec.version}")
|
16
|
+
sh("git", "push", "--tags")
|
17
|
+
end
|
data/cfp.md
ADDED
@@ -0,0 +1,28 @@
|
|
1
|
+
Latest updates about fabre.debian.net - Finding untouched bugs
|
2
|
+
|
3
|
+
#### Introduction
|
4
|
+
|
5
|
+
At DebConf20, I gave a short talk about an idea to improve
|
6
|
+
user interfaces to find untouched bugs and much more.
|
7
|
+
|
8
|
+
Some idea had been implemented and also deployed as an experimental service on fabre.debian.net.
|
9
|
+
|
10
|
+
#### Target audience
|
11
|
+
|
12
|
+
* Debian contributor or maintainer who want to fix bugs not only the bugs which
|
13
|
+
is related to maintained packages by you
|
14
|
+
|
15
|
+
It may not interesting for Debian developer because DD is already familiar with bugs.debian.org, udd.debian.org, or qa.debian.org.
|
16
|
+
|
17
|
+
#### What will talk about
|
18
|
+
|
19
|
+
In this session, I’ll talk latest updates about fabre.debian.net since DebConf20.
|
20
|
+
|
21
|
+
#### References
|
22
|
+
|
23
|
+
* [Experiment about Debian's bug tracking front-end](https://debconf20.debconf.org/talks/28-experiment-about-debians-bug-tracking-front-end/) DebConf20
|
24
|
+
* slide: [An experiment about personalized front-end of bugs.debian.org](https://slide.rabbit-shocker.org/authors/kenhys/debconf2020-online/)
|
25
|
+
* [fabre.debian.net - Finding untouched bugs](https://in2021.mini.debconf.org/talks/56-lightning-talks/) MiniDebConf India 2021
|
26
|
+
* slide: [An experiment about personalized front-end of bugs.debian.org](https://slide.rabbit-shocker.org/authors/kenhys/minidebconf-india2021/)
|
27
|
+
* Ubuntu Streaming Meeting 21.01 (Lightning talk)
|
28
|
+
* slide: https://slide.rabbit-shocker.org/authors/kenhys/ubuntu-streaming-meeting-2101/ (Written by Japanese)
|
data/concept.md
ADDED
@@ -0,0 +1,50 @@
|
|
1
|
+
# DebConf21 fabre.debian.netの最近のトピック紹介
|
2
|
+
|
3
|
+
## 目的
|
4
|
+
|
5
|
+
DebConf20以降の最近のトピックを紹介する。
|
6
|
+
Debian.net teamによるスポンサーされているので有用性を示す。
|
7
|
+
|
8
|
+
## 最近のトピック
|
9
|
+
|
10
|
+
* DebConf20以降の最新のトピックを紹介し、継続的に改善していることを示す。
|
11
|
+
* 実際に使われていること・使えることを示して、有用性を示す
|
12
|
+
|
13
|
+
### DebConf20で実現できていたこと
|
14
|
+
|
15
|
+
* RC,Updated,Createdなバグの表示
|
16
|
+
* blockedのリスト表示
|
17
|
+
* controlへのmailto: リンク表示
|
18
|
+
* bookmark, affected, installedを表示するDashboard
|
19
|
+
* 30日以内にコメントたバグへのリンク
|
20
|
+
|
21
|
+
### DebConf20以降で実現したこと
|
22
|
+
|
23
|
+
* よりDebianっぽいデザインに変更した
|
24
|
+
* fabre.debian.netのサブドメインを取得した
|
25
|
+
* スポンサーを得た(FOSSHOST)
|
26
|
+
* スポンサーを得た(Debian.net team)
|
27
|
+
* ページングに対応した
|
28
|
+
* コントロールメール送信方法を増やした(以前はcontrolのみだった)
|
29
|
+
* FTBFSやSecurityカテゴリを表示するようにした
|
30
|
+
* カテゴリごとでseverityごとにわけて表示できるようにした
|
31
|
+
* コメントがまだついていないもののみを表示できるようにした(Fixme)
|
32
|
+
* ArchitectureTagsの表示に対応した
|
33
|
+
|
34
|
+
### トピックすべてを解説するのではなく便利なシナリオを紹介する
|
35
|
+
|
36
|
+
* まだだれも手をつけていないバグをなおしたい
|
37
|
+
* Fixmeを参照すればいい
|
38
|
+
* RCバグの修正を手伝いたい(主要パッケージではなくてもよい)
|
39
|
+
* まだ誰も手をつけていないやつにとりかかる Fixmeから探す
|
40
|
+
* FTBFSなやつをなおしたい(new!)
|
41
|
+
* GCCを更新したときに起きるやつ FTBFSカテゴリを参照する
|
42
|
+
* 特定アーキテクチャでのみ発生する問題をなおしたい(new!)
|
43
|
+
* ArchitectureTagsカテゴリを参照するとよい
|
44
|
+
* 移行がすすんでいないバグを修正したい(new!)
|
45
|
+
* blocked byが多いトラッキングのチケットを探す TODO:これまだバグありそう
|
46
|
+
|
47
|
+
# 今後の予定
|
48
|
+
|
49
|
+
* TODO: 自由に全文検索できる
|
50
|
+
* TODO: パーソナライズされた検索ができる
|
data/config.yaml
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
---
|
2
|
+
id: debconf2021-online
|
3
|
+
base_name: debconf2021-online
|
4
|
+
tags:
|
5
|
+
- rabbit
|
6
|
+
- debconf21
|
7
|
+
- bugs.debian.org
|
8
|
+
- fabre.debian.net
|
9
|
+
presentation_date: 2021-08-28
|
10
|
+
presentation_start_time:
|
11
|
+
presentation_end_time:
|
12
|
+
slideshare_id:
|
13
|
+
version: 2021.08.28.1
|
14
|
+
licenses:
|
15
|
+
- CC-BY-SA-4.0
|
16
|
+
slideshare_id: kenhys
|
17
|
+
speaker_deck_id:
|
18
|
+
vimeo_id:
|
19
|
+
youtube_id:
|
20
|
+
author:
|
21
|
+
markup_language: :md
|
22
|
+
name: Kentaro Hayashi
|
23
|
+
email: kenhys@gmail.com
|
24
|
+
rubygems_user: kenhys
|
25
|
+
slideshare_user: kenhys
|
26
|
+
speaker_deck_user:
|
@@ -0,0 +1,166 @@
|
|
1
|
+
# Latest topics about fabre.debian.net
|
2
|
+
|
3
|
+
subtitle
|
4
|
+
: Finding untouched bugs 🐞
|
5
|
+
|
6
|
+
author
|
7
|
+
: Kentaro Hayashi
|
8
|
+
|
9
|
+
institution
|
10
|
+
: ClearCode Inc.
|
11
|
+
|
12
|
+
content-source
|
13
|
+
: DebConf21 online August 28, 2021
|
14
|
+
|
15
|
+
allotted-time
|
16
|
+
: 15m
|
17
|
+
|
18
|
+
theme
|
19
|
+
: .
|
20
|
+
|
21
|
+
# See Rabbit Slide Show
|
22
|
+
|
23
|
+
* "Latest topics about fabre.debian.net - Finding untouched bugs"
|
24
|
+
* <https://slide.rabbit-shocker.org/authors/kenhys/debconf2021-online/>
|
25
|
+
|
26
|
+
# Personal profile
|
27
|
+
|
28
|
+
![](images/profile.png){:relative-height="40"}
|
29
|
+
|
30
|
+
* Debian Developer (@kenhys) since Sep, 2020
|
31
|
+
* Trackpoint(soft dome) and Wasa beef(Yamayoshi Wasabi Potato Chips) fan
|
32
|
+
* Working for ClearCode Inc.
|
33
|
+
|
34
|
+
# ClearCode Inc.
|
35
|
+
|
36
|
+
![https://www.clear-code.com/](images/logo-combination-standard.svg){:relative-height="35"}
|
37
|
+
|
38
|
+
* It is important to do both free software activities and develop/support software business
|
39
|
+
* We feedback our business experiences to free software
|
40
|
+
|
41
|
+
# Agenda
|
42
|
+
|
43
|
+
* What is Fabre?
|
44
|
+
* Recall DebConf20 presentation
|
45
|
+
* What I want to solve
|
46
|
+
* Useful use cases
|
47
|
+
* Summary
|
48
|
+
|
49
|
+
# What is Fabre?
|
50
|
+
|
51
|
+
![https://fabre.debian.net/](images/fabre.debian.net.png){:relative-height="80"}
|
52
|
+
|
53
|
+
* Small web service to find untouched bugs
|
54
|
+
|
55
|
+
# Recall DebConf20 presentation summary
|
56
|
+
|
57
|
+
![https://slide.rabbit-shocker.org/authors/kenhys/debconf2020-online/](images/debconf2020-presentation.png){:relative-height="100"}
|
58
|
+
|
59
|
+
# What I want to solve
|
60
|
+
|
61
|
+
* The troublesome cases about tracking bugs
|
62
|
+
* Mainly package or maintainer oriented approach
|
63
|
+
* <https://qa.debian.org/>
|
64
|
+
* <https://tracker.debian.org/>
|
65
|
+
* <https://udd.debian.org/dmd/>
|
66
|
+
|
67
|
+
* Not so easy cases 🤔
|
68
|
+
* Find only untouched bugs
|
69
|
+
* See blocked bugs at a glance 👀
|
70
|
+
|
71
|
+
# How to solve this situation?
|
72
|
+
|
73
|
+
* Provide simple front-end as an experimental service!
|
74
|
+
* Mashup existing data
|
75
|
+
* Import E-mail archives (debian-bugs-dist,debian-bugs-closed) 📧
|
76
|
+
* Use UDD metadata (udd-mirror@udd-mirror.debian.net) 💽
|
77
|
+
|
78
|
+
# fabre.debian.net
|
79
|
+
|
80
|
+
![](images/fabre-recent-updated.png){:relative-height="100"}
|
81
|
+
|
82
|
+
# Latest topics
|
83
|
+
|
84
|
+
* Fabre had been deployed under debian.net
|
85
|
+
* Sponsorship for fabre.debian.net
|
86
|
+
* And some more minor improvements
|
87
|
+
|
88
|
+
# Fabre had been deployed under debian.net
|
89
|
+
|
90
|
+
* At first, Fabre was deployed under my own domain
|
91
|
+
* fabre.debian.net was owned by other DD (unused for a long time)
|
92
|
+
* Negotiated about fabre.debian.net subdomain with DSA (October, 2020)
|
93
|
+
* Got fabre.debian.net subdomain and deployed (November, 2020)
|
94
|
+
|
95
|
+
# Sponsorship for fabre.debian.net
|
96
|
+
|
97
|
+
* May 2020 - Oct, 2020 (No sponsor, hosted on WebARENA/Indigo)
|
98
|
+
* There is the issue about limited server resources
|
99
|
+
* Oct, 2020 - June, 2021 (Sponsored by FOSSHOST)
|
100
|
+
* June, 2021 - (Sponsored by Debian.net Team)
|
101
|
+
* The issue about server resource has been solved! 🎉
|
102
|
+
|
103
|
+
# Off-Topic: Request hosting sponsor
|
104
|
+
|
105
|
+
![https://salsa.debian.org/debian.net-team/requests/-/issues](images/debian.net-team-requests.png){:relative-height="100"}
|
106
|
+
|
107
|
+
# And some more minor improvements
|
108
|
+
|
109
|
+
* Improved viewing bugs by category, severity
|
110
|
+
* Added button to share bug report (Tweet)
|
111
|
+
* Added more mailto: button to control bug report
|
112
|
+
* Added to package description in each bug report
|
113
|
+
* ...
|
114
|
+
|
115
|
+
# Use cases about fabre.debian.net
|
116
|
+
|
117
|
+
* Finding a bug that no one working on
|
118
|
+
* Sending control E-mail easily
|
119
|
+
* Easy to view blocked bugs
|
120
|
+
* Finding a FTBFS bug 🆕
|
121
|
+
* Finding a security bug 🆕
|
122
|
+
* Finding a architecture specific bug 🆕
|
123
|
+
|
124
|
+
# Finding a bug that no one working on
|
125
|
+
|
126
|
+
![](images/easy-to-find-no-one-working-mark.png){:relative-height="80"}
|
127
|
+
|
128
|
+
* Show the number of comments for your hints
|
129
|
+
|
130
|
+
# Sending control E-mail easily
|
131
|
+
|
132
|
+
![](images/easy-to-send-control-email-mark.png){:relative-height="70"}
|
133
|
+
|
134
|
+
* Show mailto: buttons to control bugs on each bug report
|
135
|
+
* Tagging Architecture is supported
|
136
|
+
|
137
|
+
# Easy to view blocked bugs
|
138
|
+
|
139
|
+
![](images/easy-to-view-blocking-mark.png){:relative-height="90"}
|
140
|
+
|
141
|
+
* List blocked bugs appropriately
|
142
|
+
|
143
|
+
# Finding a FTBFS bug 🆕
|
144
|
+
|
145
|
+
![https://fabre.debian.net/debian/bugs/ftbfs/fixme](images/easy-to-find-ftbfs.png){:relative-height="100"}
|
146
|
+
|
147
|
+
# Finding a security bug 🆕
|
148
|
+
|
149
|
+
![https://fabre.debian.net/debian/bugs/security/fixme](images/easy-to-find-security.png){:relative-height="100"}
|
150
|
+
|
151
|
+
# Finding a architecture specific bug 🆕
|
152
|
+
|
153
|
+
![https://fabre.debian.net/bugs/archtag/arm64](images/easy-to-find-archtag.png){:relative-height="100"}
|
154
|
+
|
155
|
+
# Summary
|
156
|
+
|
157
|
+
* Fabre had been deployed as debian.net subdomain
|
158
|
+
* Fabre had been sponsored by Debian.net team
|
159
|
+
* I've implemented what I want on fabre.debian.net since DebConf20
|
160
|
+
* New FTBFS,Security,ArchTag categories and so on
|
161
|
+
|
162
|
+
# Any questions?
|
163
|
+
|
164
|
+
* Could you speak slowly if you have a question, please?
|
165
|
+
* Use <https://pad.online.debconf.org/p/16-latest-updates-about-fabredebiannet-finding-u> for asking a question
|
166
|
+
* I'll follow-up after this presentation a bit 😪
|
data/faq.md
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
Q. When Fabre is available?
|
2
|
+
A. I don't have concrete schedule about it.
|
3
|
+
It is in very early stage of development, because I want to show proof of concept at DebConf.
|
4
|
+
|
5
|
+
Q. Where can I find the source code of Fabre?
|
6
|
+
A. I'll publish at Fabre code on salsa.d.o in the future.
|
7
|
+
|
8
|
+
Q. What can I help for Fabre?
|
9
|
+
A. I hope you will send cool logo for Fabre.
|
10
|
+
|
11
|
+
Q. Why doesn't send E-mail from system?
|
12
|
+
A. I think to send E-mail automatically is not appropriate because
|
13
|
+
the responsibility of sending E-mail should be owned by yourself.
|
14
|
+
|
15
|
+
Q. Why did you use Groonga?
|
16
|
+
A. Because I maintain Groonga package and I also want to support fulltext-search with it.
|
17
|
+
Groonga is a column store database which supports fulltext-search.
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -0,0 +1,255 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<!-- Generator: Adobe Illustrator 12.0.1, SVG Export Plug-In . SVG Version: 6.00 Build 51448) -->
|
3
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
4
|
+
<svg version="1.1" id="レイヤー_2" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="508.231" height="179.668" viewBox="0 0 508.231 179.668" overflow="visible" enable-background="new 0 0 508.231 179.668" xml:space="preserve">
|
5
|
+
<g>
|
6
|
+
<g>
|
7
|
+
<path fill="#FFFFFF" d="M28.45,151.424l48.079,16.659l1.392-3.559l-53.667-18.596C25.576,147.813,26.974,149.647,28.45,151.424z"/>
|
8
|
+
<path fill="#FFFFFF" d="M21.043,140.978l58.199,20.166l1.392-3.559l-62.377-21.613C19.129,137.671,20.058,139.34,21.043,140.978z"/>
|
9
|
+
<path fill="#FFFFFF" d="M20.888,54.256l27.601,9.563c0.82-1.084,1.667-2.142,2.557-3.155l-28.069-9.726 C22.256,52.023,21.562,53.13,20.888,54.256z"/>
|
10
|
+
<path fill="#FFFFFF" d="M9.288,89.631l27.919,9.674c-0.044-1.339-0.031-2.685,0.022-4.033L9.743,85.748 C9.56,87.043,9.409,88.337,9.288,89.631z"/>
|
11
|
+
<path fill="#FFFFFF" d="M16.048,131.368l65.907,22.837l0.339-0.868l-9.575-3.743c-4.67-1.826-8.95-4.224-12.807-7.067 l-45.747-15.851C14.751,128.257,15.37,129.825,16.048,131.368z"/>
|
12
|
+
<path fill="#FFFFFF" d="M12.696,122.328l40.033,13.871c-1.715-1.795-3.299-3.696-4.75-5.687l-36.533-12.658 C11.823,119.357,12.238,120.849,12.696,122.328z"/>
|
13
|
+
<path fill="#FFFFFF" d="M42.548,30.245l37.423,12.967c2.572-0.625,5.193-1.067,7.846-1.323L46.397,27.538 C45.091,28.405,43.806,29.304,42.548,30.245z"/>
|
14
|
+
<path fill="#FFFFFF" d="M9.3,105.394l31.117,10.782c-0.528-1.487-0.997-2.996-1.398-4.525L9.007,101.251 C9.071,102.637,9.168,104.017,9.3,105.394z"/>
|
15
|
+
<path fill="#FFFFFF" d="M10.514,113.693l34.235,11.862c-0.925-1.599-1.771-3.239-2.534-4.918L9.78,109.398 C9.987,110.837,10.233,112.269,10.514,113.693z"/>
|
16
|
+
<path fill="#FFFFFF" d="M8.921,97.383l29.167,10.106c-0.257-1.405-0.453-2.823-0.602-4.249L9.021,93.376 C8.956,94.714,8.922,96.05,8.921,97.383z"/>
|
17
|
+
<path fill="#FFFFFF" d="M14.679,66.873c-0.114,0.292-0.208,0.586-0.318,0.879l26.716,9.257c0.473-1.198,0.993-2.362,1.538-3.508 l-26.815-9.291C15.419,65.092,15.032,65.971,14.679,66.873z"/>
|
18
|
+
<path fill="#FFFFFF" d="M25.126,47.845l28.664,9.932c1.033-1.018,2.093-2.004,3.196-2.934L27.578,44.654 C26.737,45.694,25.92,46.759,25.126,47.845z"/>
|
19
|
+
<path fill="#FFFFFF" d="M17.314,60.896l26.979,9.348c0.638-1.142,1.304-2.261,2.012-3.343l-27.237-9.438 C18.459,58.589,17.875,59.733,17.314,60.896z"/>
|
20
|
+
<path fill="#FFFFFF" d="M12.021,74.82l26.799,9.286c0.305-1.23,0.648-2.458,1.042-3.68l-26.724-9.26 C12.736,72.381,12.364,73.599,12.021,74.82z"/>
|
21
|
+
<path fill="#FFFFFF" d="M30.087,41.685l30.327,10.508c1.309-0.94,2.654-1.821,4.035-2.643L32.94,38.633 C31.966,39.625,31.014,40.641,30.087,41.685z"/>
|
22
|
+
<path fill="#FFFFFF" d="M10.335,82.115l27.167,9.413c0.138-1.284,0.317-2.568,0.547-3.851l-26.925-9.33 C10.83,79.602,10.57,80.858,10.335,82.115z"/>
|
23
|
+
<path fill="#FFFFFF" d="M35.854,35.805l32.931,11.41c1.716-0.828,3.475-1.565,5.267-2.215L39.165,32.911 C38.039,33.847,36.933,34.808,35.854,35.805z"/>
|
24
|
+
<path fill="#FFFFFF" d="M62.424,175.925L72,179.668l0.495-1.267l-18.896-6.547C56.432,173.356,59.367,174.729,62.424,175.925z"/>
|
25
|
+
<path fill="#FFFFFF" d="M40.989,163.647l32.828,11.374l1.391-3.559l-41.634-14.426C35.901,159.372,38.372,161.583,40.989,163.647z "/>
|
26
|
+
<path fill="#FFFFFF" d="M85.74,13.695l45.05,15.609l1.392-3.558L96.676,13.443C93.008,13.29,89.357,13.372,85.74,13.695z"/>
|
27
|
+
<path fill="#FFFFFF" d="M59.529,20.371l65.835,22.812l1.392-3.559L65.012,18.229C63.162,18.886,61.329,19.588,59.529,20.371z"/>
|
28
|
+
<path fill="#FFFFFF" d="M70.777,16.389l57.3,19.854l1.392-3.559L77.805,14.783C75.438,15.224,73.091,15.75,70.777,16.389z"/>
|
29
|
+
<path fill="#FFFFFF" d="M50.346,25.068l48.72,16.881c4.818,0.518,9.645,1.663,14.37,3.51l9.575,3.744l1.032-2.64L54.853,22.589 C53.326,23.367,51.825,24.198,50.346,25.068z"/>
|
30
|
+
</g>
|
31
|
+
<g>
|
32
|
+
<g>
|
33
|
+
<linearGradient id="XMLID_44_" gradientUnits="userSpaceOnUse" x1="114.9907" y1="86.6646" x2="114.9907" y2="255.8493">
|
34
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
35
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
36
|
+
</linearGradient>
|
37
|
+
<path fill="url(#XMLID_44_)" d="M123.731,19.127c-8.888-3.475-18.014-5.305-27.055-5.684l35.506,12.303l1.124-2.875 L123.731,19.127z"/>
|
38
|
+
<linearGradient id="XMLID_45_" gradientUnits="userSpaceOnUse" x1="104.2974" y1="86.665" x2="104.2974" y2="255.8504">
|
39
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
40
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
41
|
+
</linearGradient>
|
42
|
+
<path fill="url(#XMLID_45_)" d="M77.805,14.783l51.664,17.901l1.321-3.38L85.74,13.695 C83.072,13.933,80.424,14.295,77.805,14.783z"/>
|
43
|
+
<linearGradient id="XMLID_46_" gradientUnits="userSpaceOnUse" x1="96.5449" y1="86.6641" x2="96.5449" y2="255.8498">
|
44
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
45
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
46
|
+
</linearGradient>
|
47
|
+
<path fill="url(#XMLID_46_)" d="M65.012,18.229l61.743,21.394l1.322-3.38l-57.3-19.854 C68.831,16.927,66.913,17.555,65.012,18.229z"/>
|
48
|
+
<linearGradient id="XMLID_47_" gradientUnits="userSpaceOnUse" x1="90.1084" y1="86.665" x2="90.1084" y2="255.849">
|
49
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
50
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
51
|
+
</linearGradient>
|
52
|
+
<path fill="url(#XMLID_47_)" d="M54.853,22.589l69.189,23.974l1.321-3.38L59.529,20.371 C57.946,21.059,56.391,21.806,54.853,22.589z"/>
|
53
|
+
<linearGradient id="XMLID_48_" gradientUnits="userSpaceOnUse" x1="72.7314" y1="86.6646" x2="72.7314" y2="255.8496">
|
54
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
55
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
56
|
+
</linearGradient>
|
57
|
+
<path fill="url(#XMLID_48_)" d="M46.397,27.538L87.818,41.89c3.708-0.357,7.474-0.346,11.248,0.059l-48.72-16.881 C49.008,25.855,47.691,26.677,46.397,27.538z"/>
|
58
|
+
<linearGradient id="XMLID_49_" gradientUnits="userSpaceOnUse" x1="59.5684" y1="86.6646" x2="59.5684" y2="255.8502">
|
59
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
60
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
61
|
+
</linearGradient>
|
62
|
+
<path fill="url(#XMLID_49_)" d="M39.165,32.911L74.052,45c1.937-0.703,3.913-1.3,5.919-1.787L42.548,30.245 C41.4,31.105,40.27,31.991,39.165,32.911z"/>
|
63
|
+
<linearGradient id="XMLID_50_" gradientUnits="userSpaceOnUse" x1="50.8628" y1="86.6636" x2="50.8628" y2="255.8486">
|
64
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
65
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
66
|
+
</linearGradient>
|
67
|
+
<path fill="url(#XMLID_50_)" d="M32.94,38.633L64.449,49.55c1.413-0.841,2.858-1.622,4.337-2.335l-32.931-11.41 C34.862,36.722,33.891,37.665,32.94,38.633z"/>
|
68
|
+
<linearGradient id="XMLID_51_" gradientUnits="userSpaceOnUse" x1="43.9961" y1="86.6636" x2="43.9961" y2="255.8491">
|
69
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
70
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
71
|
+
</linearGradient>
|
72
|
+
<path fill="url(#XMLID_51_)" d="M27.578,44.654l29.408,10.189c1.107-0.933,2.257-1.809,3.429-2.65L30.087,41.685 C29.229,42.651,28.394,43.644,27.578,44.654z"/>
|
73
|
+
<linearGradient id="XMLID_52_" gradientUnits="userSpaceOnUse" x1="38.3833" y1="86.6636" x2="38.3833" y2="255.848">
|
74
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
75
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
76
|
+
</linearGradient>
|
77
|
+
<path fill="url(#XMLID_52_)" d="M22.977,50.939l28.069,9.726c0.88-1.001,1.8-1.958,2.743-2.888l-28.664-9.932 C24.387,48.856,23.674,49.89,22.977,50.939z"/>
|
78
|
+
<linearGradient id="XMLID_53_" gradientUnits="userSpaceOnUse" x1="33.7783" y1="86.6636" x2="33.7783" y2="255.8489">
|
79
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
80
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
81
|
+
</linearGradient>
|
82
|
+
<path fill="url(#XMLID_53_)" d="M19.068,57.463l27.237,9.438c0.693-1.059,1.427-2.081,2.184-3.082l-27.601-9.563 C20.259,55.307,19.654,56.377,19.068,57.463z"/>
|
83
|
+
<linearGradient id="XMLID_54_" gradientUnits="userSpaceOnUse" x1="30.0459" y1="86.6646" x2="30.0459" y2="255.8496">
|
84
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
85
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
86
|
+
</linearGradient>
|
87
|
+
<path fill="url(#XMLID_54_)" d="M15.799,64.209L42.615,73.5c0.527-1.11,1.086-2.196,1.678-3.256l-26.979-9.348 C16.789,61.985,16.282,63.088,15.799,64.209z"/>
|
88
|
+
<linearGradient id="XMLID_55_" gradientUnits="userSpaceOnUse" x1="27.1074" y1="86.6646" x2="27.1074" y2="255.8502">
|
89
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
90
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
91
|
+
</linearGradient>
|
92
|
+
<path fill="url(#XMLID_55_)" d="M13.138,71.167l26.724,9.26c0.351-1.09,0.726-2.177,1.148-3.258 c0.021-0.054,0.046-0.105,0.067-0.16l-26.716-9.257C13.932,68.887,13.515,70.024,13.138,71.167z"/>
|
93
|
+
<linearGradient id="XMLID_56_" gradientUnits="userSpaceOnUse" x1="24.9717" y1="86.6636" x2="24.9717" y2="255.8492">
|
94
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
95
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
96
|
+
</linearGradient>
|
97
|
+
<path fill="url(#XMLID_56_)" d="M11.124,78.347l26.925,9.33c0.214-1.192,0.477-2.383,0.772-3.571L12.021,74.82 C11.691,75.994,11.4,77.17,11.124,78.347z"/>
|
98
|
+
<linearGradient id="XMLID_57_" gradientUnits="userSpaceOnUse" x1="23.6221" y1="86.6636" x2="23.6221" y2="255.8487">
|
99
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
100
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
101
|
+
</linearGradient>
|
102
|
+
<path fill="url(#XMLID_57_)" d="M9.743,85.748l27.486,9.524c0.049-1.247,0.138-2.495,0.272-3.744l-27.167-9.413 C10.109,83.326,9.915,84.537,9.743,85.748z"/>
|
103
|
+
<linearGradient id="XMLID_58_" gradientUnits="userSpaceOnUse" x1="23.2539" y1="86.6641" x2="23.2539" y2="255.849">
|
104
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
105
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
106
|
+
</linearGradient>
|
107
|
+
<path fill="url(#XMLID_58_)" d="M9.021,93.376l28.467,9.864c-0.136-1.306-0.237-2.617-0.281-3.936L9.288,89.631 C9.17,90.881,9.081,92.129,9.021,93.376z"/>
|
108
|
+
<linearGradient id="XMLID_59_" gradientUnits="userSpaceOnUse" x1="23.9702" y1="86.6641" x2="23.9702" y2="255.8489">
|
109
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
110
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
111
|
+
</linearGradient>
|
112
|
+
<path fill="url(#XMLID_59_)" d="M9.007,101.251l30.012,10.399c-0.36-1.374-0.674-2.76-0.93-4.161L8.921,97.383 C8.921,98.675,8.948,99.965,9.007,101.251z"/>
|
113
|
+
<linearGradient id="XMLID_60_" gradientUnits="userSpaceOnUse" x1="25.7578" y1="86.6641" x2="25.7578" y2="255.8495">
|
114
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
115
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
116
|
+
</linearGradient>
|
117
|
+
<path fill="url(#XMLID_60_)" d="M9.78,109.398l32.436,11.239c-0.663-1.46-1.261-2.949-1.798-4.461L9.3,105.394 C9.428,106.734,9.588,108.069,9.78,109.398z"/>
|
118
|
+
<linearGradient id="XMLID_61_" gradientUnits="userSpaceOnUse" x1="29.2466" y1="86.6641" x2="29.2466" y2="255.8498">
|
119
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
120
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
121
|
+
</linearGradient>
|
122
|
+
<path fill="url(#XMLID_61_)" d="M11.446,117.854l36.533,12.658c-1.165-1.598-2.243-3.251-3.23-4.957l-34.235-11.862 C10.79,115.089,11.101,116.476,11.446,117.854z"/>
|
123
|
+
<linearGradient id="XMLID_62_" gradientUnits="userSpaceOnUse" x1="36.3047" y1="86.6631" x2="36.3047" y2="255.8477">
|
124
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
125
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
126
|
+
</linearGradient>
|
127
|
+
<path fill="url(#XMLID_62_)" d="M14.167,126.676l45.747,15.851c-2.596-1.914-4.993-4.034-7.185-6.327l-40.033-13.871 C13.149,123.791,13.635,125.241,14.167,126.676z"/>
|
128
|
+
<linearGradient id="XMLID_63_" gradientUnits="userSpaceOnUse" x1="49.002" y1="86.6631" x2="49.0019" y2="255.8479">
|
129
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
130
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
131
|
+
</linearGradient>
|
132
|
+
<path fill="url(#XMLID_63_)" d="M18.257,135.972l62.377,21.613l1.321-3.38l-65.907-22.837 C16.733,132.927,17.48,134.457,18.257,135.972z"/>
|
133
|
+
<linearGradient id="XMLID_64_" gradientUnits="userSpaceOnUse" x1="50.1431" y1="86.6646" x2="50.1431" y2="255.8489">
|
134
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
135
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
136
|
+
</linearGradient>
|
137
|
+
<path fill="url(#XMLID_64_)" d="M24.254,145.929l53.667,18.596l1.322-3.381l-58.199-20.166 C22.057,142.663,23.124,144.315,24.254,145.929z"/>
|
138
|
+
<linearGradient id="XMLID_65_" gradientUnits="userSpaceOnUse" x1="52.4897" y1="86.6636" x2="52.4897" y2="255.8494">
|
139
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
140
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
141
|
+
</linearGradient>
|
142
|
+
<path fill="url(#XMLID_65_)" d="M33.574,157.037l41.634,14.426l1.322-3.38L28.45,151.424 C30.065,153.367,31.778,155.237,33.574,157.037z"/>
|
143
|
+
<linearGradient id="XMLID_66_" gradientUnits="userSpaceOnUse" x1="57.4023" y1="86.6636" x2="57.4023" y2="255.849">
|
144
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
145
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
146
|
+
</linearGradient>
|
147
|
+
<path fill="url(#XMLID_66_)" d="M53.598,171.854l18.896,6.547l1.322-3.38l-32.828-11.374 C44.885,166.72,49.099,169.468,53.598,171.854z"/>
|
148
|
+
</g>
|
149
|
+
<linearGradient id="XMLID_67_" gradientUnits="userSpaceOnUse" x1="62.2041" y1="86.6709" x2="62.2041" y2="255.8549">
|
150
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
151
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
152
|
+
</linearGradient>
|
153
|
+
<path fill="url(#XMLID_67_)" d="M5.782,53.527L5.782,53.527c-16.902,43.229,4.517,92.149,47.746,109.052l9.575,3.744 l10.295-26.332l-9.575-3.743c-28.71-11.225-42.935-43.715-31.709-72.425c11.225-28.71,43.715-42.935,72.425-31.71l9.575,3.744 l10.295-26.331l-9.575-3.744C71.604-11.12,22.684,10.299,5.782,53.527z"/>
|
154
|
+
</g>
|
155
|
+
<g>
|
156
|
+
<linearGradient id="XMLID_68_" gradientUnits="userSpaceOnUse" x1="294.1226" y1="140.9063" x2="294.1226" y2="211.9397">
|
157
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
158
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
159
|
+
</linearGradient>
|
160
|
+
<path fill="url(#XMLID_68_)" d="M289.752,140.747c-0.168-3.205,0.662-6.361,2.492-9.469c1.828-3.107,5.662-4.773,11.498-4.996 v-5.25c-4.145,0.057-7.289,0.893-9.43,2.508c-2.143,1.615-3.787,3.773-4.936,6.473v-7.855h-4.875v44.125h5.25V140.747z"/>
|
161
|
+
<linearGradient id="XMLID_69_" gradientUnits="userSpaceOnUse" x1="256.895" y1="140.9092" x2="256.895" y2="211.9418">
|
162
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
163
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
164
|
+
</linearGradient>
|
165
|
+
<path fill="url(#XMLID_69_)" d="M267.127,137.224c-0.07,0.672-0.242,1.188-0.52,1.551c-1.15,0.84-3.303,1.391-6.459,1.656 s-6.563,0.699-10.222,1.301c-3.66,0.602-6.809,1.859-9.445,3.773c-2.637,1.916-4.012,4.957-4.123,9.121 c0.027,3.66,1.287,6.678,3.779,9.053s6.076,3.615,10.751,3.729c4.389-0.168,7.918-1.063,10.588-2.682 c2.668-1.619,4.688-3.211,6.059-4.775c-0.168,2.195,0.285,3.854,1.361,4.979s2.719,1.701,4.928,1.729 c1.033-0.057,1.844-0.141,2.432-0.25c0.586-0.111,0.979-0.166,1.174-0.166v-3.709c-0.225,0-0.49,0.021-0.797,0.063 c-0.309,0.043-0.588,0.063-0.838,0.063c-1.326-0.027-2.217-0.246-2.672-0.656c-0.457-0.41-0.67-0.883-0.641-1.422v-27.506 c0.027-3.232-1.27-6.02-3.891-8.361c-2.621-2.34-6.775-3.566-12.463-3.68c-6.094,0.168-10.542,1.693-13.351,4.58 s-4.197,6.127-4.17,9.725h5c0.082-2.602,1.074-4.865,2.973-6.791s5.166-2.93,9.8-3.014c5.592,0.277,8.869,1.607,9.83,3.986 c0.961,2.381,1.301,4.082,1.021,5.105C267.233,135.687,267.198,136.554,267.127,137.224z M267.233,150.851 c-0.168,3.727-1.793,6.66-4.875,8.801c-3.082,2.143-6.682,3.229-10.799,3.256c-3.359-0.084-5.859-0.918-7.496-2.502 c-1.637-1.582-2.455-3.467-2.455-5.654c0.055-2.766,0.986-4.807,2.793-6.121s4.076-2.23,6.806-2.748 c2.73-0.516,5.537-0.928,8.422-1.236c2.883-0.307,5.418-0.781,7.604-1.426V150.851z"/>
|
166
|
+
<linearGradient id="XMLID_70_" gradientUnits="userSpaceOnUse" x1="140.1738" y1="140.9072" x2="140.1738" y2="211.9366">
|
167
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
168
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
169
|
+
</linearGradient>
|
170
|
+
<path fill="url(#XMLID_70_)" d="M141.812,167.907c8.059-0.309,14.08-2.654,18.068-7.041s5.982-9.234,5.982-14.543h-5.5 c-0.057,4.674-1.707,8.613-4.953,11.818s-7.695,4.877-13.348,5.016c-8.227-0.363-13.957-3.355-17.188-8.979 c-3.232-5.623-4.777-11.764-4.637-18.422c0.055-8.557,1.924-15.254,5.604-20.092s8.932-7.299,15.76-7.383 c6.338,0.254,10.953,1.969,13.844,5.148s4.32,6.34,4.293,9.477h5.625c0.027-4.51-1.855-8.838-5.646-12.984 c-3.793-4.146-9.732-6.359-17.82-6.641c-8.549,0.084-15.232,2.959-20.053,8.623s-7.271,13.531-7.355,23.6 c-0.086,8.748,2.023,16.252,6.326,22.51C125.114,164.274,132.114,167.571,141.812,167.907z"/>
|
171
|
+
<linearGradient id="XMLID_71_" gradientUnits="userSpaceOnUse" x1="178.6401" y1="140.9063" x2="178.6401" y2="211.9379">
|
172
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
173
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
174
|
+
</linearGradient>
|
175
|
+
<rect x="176.14" y="105.032" fill="url(#XMLID_71_)" width="5" height="61.25"/>
|
176
|
+
<linearGradient id="XMLID_72_" gradientUnits="userSpaceOnUse" x1="210.1963" y1="140.9092" x2="210.1963" y2="211.9418">
|
177
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
178
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
179
|
+
</linearGradient>
|
180
|
+
<path fill="url(#XMLID_72_)" d="M210.445,167.407c6.076-0.281,10.648-1.998,13.715-5.154s4.6-6.301,4.6-9.43h-5.125 c-0.029,2.445-1.174,4.744-3.436,6.896s-5.373,3.299-9.334,3.438c-5.107-0.168-8.846-2.002-11.217-5.504 s-3.541-7.668-3.514-12.496h33.25c0-4.883-0.453-8.795-1.359-11.74c-0.906-2.943-2.279-5.281-4.119-7.012 c-1.063-1.166-2.678-2.332-4.844-3.498c-2.168-1.166-4.984-1.791-8.449-1.875c-5.988,0.027-10.732,2.037-14.23,6.029 c-3.5,3.992-5.291,9.783-5.373,17.375c-0.057,6.094,1.434,11.383,4.471,15.867C198.516,164.788,203.504,167.155,210.445,167.407z M200.193,130.241c2.482-3,5.871-4.568,10.168-4.709c4.451,0.084,7.832,1.578,10.141,4.48s3.479,6.617,3.508,11.145h-27.625 C196.439,136.88,197.709,133.241,200.193,130.241z"/>
|
181
|
+
<linearGradient id="XMLID_73_" gradientUnits="userSpaceOnUse" x1="489.0425" y1="140.9092" x2="489.0425" y2="211.9418">
|
182
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
183
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
184
|
+
</linearGradient>
|
185
|
+
<path fill="url(#XMLID_73_)" d="M506.872,133.417c-0.906-2.943-2.279-5.281-4.119-7.012c-1.063-1.166-2.678-2.332-4.844-3.498 c-2.168-1.166-4.984-1.791-8.449-1.875c-5.988,0.027-10.732,2.037-14.23,6.029c-3.5,3.992-5.291,9.783-5.373,17.375 c-0.057,6.094,1.434,11.383,4.471,15.867c3.035,4.484,8.023,6.852,14.965,7.104c6.076-0.281,10.648-1.998,13.715-5.154 s4.6-6.301,4.6-9.43h-5.125c-0.029,2.445-1.174,4.744-3.436,6.896s-5.373,3.299-9.334,3.438 c-5.107-0.168-8.846-2.002-11.217-5.504s-3.541-7.668-3.514-12.496h33.25C508.231,140.274,507.778,136.362,506.872,133.417z M475.231,141.157c0.055-4.277,1.324-7.916,3.809-10.916c2.482-3,5.871-4.568,10.168-4.709c4.451,0.084,7.832,1.578,10.141,4.48 s3.479,6.617,3.508,11.145H475.231z"/>
|
186
|
+
<linearGradient id="XMLID_74_" gradientUnits="userSpaceOnUse" x1="440.2271" y1="140.9043" x2="440.2271" y2="211.937">
|
187
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
188
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
189
|
+
</linearGradient>
|
190
|
+
<path fill="url(#XMLID_74_)" d="M455.227,129.845c-1.004-2.145-2.74-4.121-5.209-5.93s-5.654-2.77-9.557-2.883 c-6.898,0.141-12.004,2.381-15.313,6.721s-4.949,9.846-4.922,16.516c0.055,7.127,1.773,12.736,5.152,16.83 s8.07,6.195,14.074,6.309c4.238-0.113,7.621-1.014,10.145-2.701c2.523-1.689,4.4-3.666,5.629-5.93v7.506h5v-61.25h-5V129.845z M451.452,158.509c-2.711,3.043-6.375,4.551-10.99,4.523c-5.527-0.223-9.428-2.24-11.701-6.053 c-2.273-3.811-3.369-8.02-3.283-12.627c-0.057-5.34,1.107-9.777,3.492-13.311s6.342-5.369,11.869-5.51 c4.754,0.057,8.395,1.727,10.926,5.008c2.531,3.283,3.811,7.916,3.838,13.896C455.545,150.776,454.163,155.466,451.452,158.509z"/>
|
191
|
+
<linearGradient id="XMLID_75_" gradientUnits="userSpaceOnUse" x1="392.6978" y1="140.9092" x2="392.6978" y2="211.9418">
|
192
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
193
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
194
|
+
</linearGradient>
|
195
|
+
<path fill="url(#XMLID_75_)" d="M392.68,121.032c-7.473,0.223-12.756,2.609-15.848,7.16s-4.596,9.881-4.512,15.992 c-0.111,6.094,1.371,11.424,4.449,15.992c3.078,4.57,8.381,6.979,15.91,7.23c7.803-0.309,13.188-2.807,16.152-7.502 s4.377-9.936,4.238-15.721c0.082-6.363-1.455-11.764-4.615-16.201S400.036,121.228,392.68,121.032z M404.276,157.608 c-2.391,3.504-6.256,5.313-11.596,5.424c-5.289-0.111-9.135-1.926-11.541-5.445c-2.406-3.518-3.596-8.014-3.568-13.486 c-0.027-5.367,1.203-9.777,3.693-13.227s6.379-5.23,11.668-5.342c5.367,0.168,9.205,2.039,11.512,5.613s3.432,7.949,3.377,13.123 C407.848,149.659,406.667,154.104,404.276,157.608z"/>
|
196
|
+
<g>
|
197
|
+
<linearGradient id="XMLID_76_" gradientUnits="userSpaceOnUse" x1="338.2837" y1="140.9072" x2="338.2837" y2="211.9392">
|
198
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
199
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
200
|
+
</linearGradient>
|
201
|
+
<path fill="url(#XMLID_76_)" d="M338.559,103.364c-7.198,0.132-13.027,1.608-17.498,4.417h34.445 C351.292,104.989,345.659,103.501,338.559,103.364z"/>
|
202
|
+
<linearGradient id="XMLID_77_" gradientUnits="userSpaceOnUse" x1="338.0591" y1="140.9072" x2="338.0591" y2="211.9387">
|
203
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
204
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
205
|
+
</linearGradient>
|
206
|
+
<path fill="url(#XMLID_77_)" d="M338.559,114.489c2.342,0.06,4.392,0.41,6.167,1.032h17.711c-1.063-2.069-2.484-3.978-4.31-5.706 c-0.344-0.325-0.725-0.617-1.095-0.917h-37.586c-1.46,1.112-2.755,2.385-3.874,3.832c-0.688,0.889-1.308,1.827-1.893,2.792 h18.388C333.95,114.897,336.113,114.552,338.559,114.489z"/>
|
207
|
+
<linearGradient id="XMLID_78_" gradientUnits="userSpaceOnUse" x1="319.936" y1="140.9072" x2="319.936" y2="211.9387">
|
208
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
209
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
210
|
+
</linearGradient>
|
211
|
+
<path fill="url(#XMLID_78_)" d="M325.043,120.907c1.113-1.815,2.637-3.223,4.523-4.27H313.05 c-1.128,2.051-2.058,4.249-2.746,6.623h13.511C324.186,122.446,324.585,121.654,325.043,120.907z"/>
|
212
|
+
<linearGradient id="XMLID_79_" gradientUnits="userSpaceOnUse" x1="355.8608" y1="140.9072" x2="355.8608" y2="211.9387">
|
213
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
214
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
215
|
+
</linearGradient>
|
216
|
+
<path fill="url(#XMLID_79_)" d="M348.784,117.825c1.841,1.619,2.979,3.432,3.426,5.436h12.385 c-0.186-2.364-0.716-4.574-1.607-6.623h-15.859C347.72,116.992,348.28,117.381,348.784,117.825z"/>
|
217
|
+
<linearGradient id="XMLID_80_" gradientUnits="userSpaceOnUse" x1="316.1187" y1="140.9072" x2="316.1187" y2="211.9387">
|
218
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
219
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
220
|
+
</linearGradient>
|
221
|
+
<path fill="url(#XMLID_80_)" d="M323.329,124.377h-13.303c-0.535,2.088-0.907,4.296-1.117,6.623h12.797 C322.002,128.603,322.538,126.391,323.329,124.377z"/>
|
222
|
+
<linearGradient id="XMLID_81_" gradientUnits="userSpaceOnUse" x1="315.1274" y1="140.9072" x2="315.1274" y2="211.9387">
|
223
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
224
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
225
|
+
</linearGradient>
|
226
|
+
<path fill="url(#XMLID_81_)" d="M321.43,136.299c-0.026-1.453,0.026-2.843,0.146-4.182h-12.77 c-0.087,1.305-0.139,2.636-0.127,4.014c-0.006,0.889,0.031,1.75,0.07,2.609h12.757 C321.457,137.946,321.426,137.136,321.43,136.299z"/>
|
227
|
+
<linearGradient id="XMLID_82_" gradientUnits="userSpaceOnUse" x1="315.9614" y1="140.9072" x2="315.9614" y2="211.9387">
|
228
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
229
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
230
|
+
</linearGradient>
|
231
|
+
<path fill="url(#XMLID_82_)" d="M321.606,139.857h-12.798c0.164,2.327,0.509,4.53,1.017,6.623h13.29 C322.344,144.486,321.845,142.275,321.606,139.857z"/>
|
232
|
+
<linearGradient id="XMLID_83_" gradientUnits="userSpaceOnUse" x1="319.5532" y1="140.9072" x2="319.5532" y2="211.9387">
|
233
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
234
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
235
|
+
</linearGradient>
|
236
|
+
<path fill="url(#XMLID_83_)" d="M325.502,150.917c-0.744-1.023-1.377-2.135-1.917-3.32h-13.467 c0.655,2.361,1.525,4.574,2.636,6.623h16.233C327.641,153.345,326.473,152.251,325.502,150.917z"/>
|
237
|
+
<linearGradient id="XMLID_84_" gradientUnits="userSpaceOnUse" x1="355.8579" y1="140.9072" x2="355.8579" y2="211.9387">
|
238
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
239
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
240
|
+
</linearGradient>
|
241
|
+
<path fill="url(#XMLID_84_)" d="M348.667,153.017c-0.498,0.445-1.038,0.838-1.598,1.203h15.771 c0.94-2.023,1.542-4.232,1.808-6.623h-12.31C351.787,149.507,350.569,151.313,348.667,153.017z"/>
|
242
|
+
<linearGradient id="XMLID_85_" gradientUnits="userSpaceOnUse" x1="337.8325" y1="140.9072" x2="337.8325" y2="211.9387">
|
243
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
244
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
245
|
+
</linearGradient>
|
246
|
+
<path fill="url(#XMLID_85_)" d="M357.174,161.444c2.159-1.783,3.833-3.828,5.077-6.107h-17.263 c-1.959,0.846-4.209,1.32-6.766,1.402c-2.716-0.053-5.084-0.53-7.129-1.402h-17.682c0.683,1.137,1.413,2.242,2.244,3.277 c1,1.244,2.135,2.355,3.39,3.346h37.438C356.712,161.784,356.953,161.627,357.174,161.444z"/>
|
247
|
+
<linearGradient id="XMLID_86_" gradientUnits="userSpaceOnUse" x1="337.7622" y1="140.9072" x2="337.7622" y2="211.9391">
|
248
|
+
<stop offset="0" style="stop-color:#458CFF"/>
|
249
|
+
<stop offset="1" style="stop-color:#FFFFFF"/>
|
250
|
+
</linearGradient>
|
251
|
+
<path fill="url(#XMLID_86_)" d="M354.931,163.077h-34.339c4.486,2.947,10.359,4.505,17.631,4.662 C344.816,167.618,350.379,166.058,354.931,163.077z"/>
|
252
|
+
</g>
|
253
|
+
</g>
|
254
|
+
</g>
|
255
|
+
</svg>
|
data/images/profile.png
ADDED
Binary file
|
@@ -0,0 +1,116 @@
|
|
1
|
+
# fabre.debian.net \\n Finding untouched bugs
|
2
|
+
|
3
|
+
subtitle
|
4
|
+
: E-mail archives + UDD metadata + Simple web front-end = 🤔
|
5
|
+
|
6
|
+
author
|
7
|
+
: Kentaro Hayashi
|
8
|
+
|
9
|
+
institution
|
10
|
+
: ClearCode Inc.
|
11
|
+
|
12
|
+
content-source
|
13
|
+
: MiniDebConf India 2021 January 23, 2021
|
14
|
+
|
15
|
+
allotted-time
|
16
|
+
: 5m
|
17
|
+
|
18
|
+
theme
|
19
|
+
: .
|
20
|
+
|
21
|
+
# NOTE: Presentation slide is published
|
22
|
+
|
23
|
+
* This presentation slide is available via Rabbit Slide Show
|
24
|
+
* <https://slide.rabbit-shocker.org/authors/kenhys/minidebconf-india2021/>
|
25
|
+
"fabre.debian.net - Finding untouched bugs"
|
26
|
+
|
27
|
+
# Personal profile
|
28
|
+
|
29
|
+
![](images/profile.png){:relative-height="40"}
|
30
|
+
|
31
|
+
* Newbie Debian Developer since September 2020 (@kenhys)
|
32
|
+
* Trackpoint(soft dome) and Wasa beef(Yamayoshi Wasabi Potato Chips) fan
|
33
|
+
* Working for ClearCode Inc.
|
34
|
+
|
35
|
+
# ClearCode Inc.
|
36
|
+
|
37
|
+
![](images/logo-combination-standard.svg){:relative-height="30"}
|
38
|
+
|
39
|
+
* <https://www.clear-code.com/>
|
40
|
+
* Free software is important in ClearCode Inc.
|
41
|
+
* We develop/support software with our free software development experiences
|
42
|
+
* We feedback our business experiences to free software
|
43
|
+
|
44
|
+
# Lightning Talk Agenda
|
45
|
+
|
46
|
+
* Recall DebConf 2020 presentation
|
47
|
+
* The troublesome cases about bugs.d.o
|
48
|
+
* How to solve this situation?
|
49
|
+
* An experiment - fabre.debian.net
|
50
|
+
|
51
|
+
# Back to DebConf 2020
|
52
|
+
|
53
|
+
![](images/debconf2020-presentation.png){:relative-height="100"}
|
54
|
+
|
55
|
+
|
56
|
+
# The troublesome cases about bugs.d.o
|
57
|
+
|
58
|
+
* Mainly package or maintainer oriented approach:
|
59
|
+
* <https://qa.debian.org/>
|
60
|
+
* <https://tracker.debian.org/>
|
61
|
+
* <https://udd.debian.org/dmd/>
|
62
|
+
|
63
|
+
* Not so easy cases: 🤔
|
64
|
+
* find only untouched bugs
|
65
|
+
* see blocked bugs at a glance 👀
|
66
|
+
|
67
|
+
# How to solve this situation?
|
68
|
+
|
69
|
+
* Mashup existing data + Simple front-end 💻
|
70
|
+
* E-mail archives (debian-bugs-dist,debian-bugs-closed) 📧
|
71
|
+
* UDD metadata (udd-mirror@udd-mirror.debian.net) 🖥
|
72
|
+
|
73
|
+
# An experiment - fabre.debian.net
|
74
|
+
|
75
|
+
* Concept
|
76
|
+
* *Make "unstable life" comfortable*
|
77
|
+
* Fix a bug (by finding a bug that no one working on)
|
78
|
+
* Triage a bug (by sending control E-mail easily)
|
79
|
+
* Avoid pitfall bugs (by finding affected important bugs)
|
80
|
+
|
81
|
+
# fabre.debian.net
|
82
|
+
|
83
|
+
![](images/fabre-internals.png){:relative-height="100"}
|
84
|
+
|
85
|
+
# View recently updated bugs
|
86
|
+
|
87
|
+
![](images/updated-bugs.png){:relative-height="100"}
|
88
|
+
|
89
|
+
|
90
|
+
# Focus on untouched bugs
|
91
|
+
|
92
|
+
![](images/updated-untouched.png){:relative-height="100"}
|
93
|
+
|
94
|
+
|
95
|
+
# Focus on blocked bugs
|
96
|
+
|
97
|
+
![](images/blocked-bugs.png){:relative-height="100"}
|
98
|
+
|
99
|
+
# Updates since DebConf 2020
|
100
|
+
|
101
|
+
* Become a Debian Developer (September, 2020)
|
102
|
+
* Negotiated about <https://fabre.debian.net> subdomain with DSA (October, 2020)
|
103
|
+
* Got fabre.debian.net subdomain and deployed 🎉 (November, 2020)
|
104
|
+
|
105
|
+
# fabre.debian.net is sponsored by FOSSHOST
|
106
|
+
|
107
|
+
|
108
|
+
![](images/fosshost.org_Host_Light.png){:relative-height="80"}
|
109
|
+
|
110
|
+
* By migrating to <https://fosshost.org>, got more server resource! 🎉
|
111
|
+
|
112
|
+
# The next thing...
|
113
|
+
|
114
|
+
* Make things forward to beta:
|
115
|
+
* TODO: Implement cool full-text search feature
|
116
|
+
* TODO: Implement personalized search feature
|
Binary file
|
@@ -0,0 +1,322 @@
|
|
1
|
+
# Presentation memo
|
2
|
+
|
3
|
+
Hi, thank you for coming to this session.
|
4
|
+
|
5
|
+
I'll start the presentation "An experiment about personalized
|
6
|
+
front-end of bugs.debian.org.
|
7
|
+
|
8
|
+
## NOTE
|
9
|
+
|
10
|
+
This slide was already published at Rabbit Slide Show
|
11
|
+
|
12
|
+
So, you can also download this presentation.
|
13
|
+
|
14
|
+
## Personal profile
|
15
|
+
|
16
|
+
Let me just start by introducing myself.
|
17
|
+
|
18
|
+
I'm one of the Debian maintainers. and a fan of a Trackpoint and Wasa
|
19
|
+
beef. I'm also working for ClearCode.
|
20
|
+
|
21
|
+
## ClearCode Inc.
|
22
|
+
|
23
|
+
Usually, I'm developing and supporting software as an engineer.
|
24
|
+
|
25
|
+
There is a culture to respect free software, my colleague gave me a
|
26
|
+
feedback for this talk.
|
27
|
+
|
28
|
+
## Not talk about
|
29
|
+
|
30
|
+
In this session, this presentation is related to bugs.debian.org, but
|
31
|
+
I will not talk about improving bugs.debian.org itself and internal
|
32
|
+
details.
|
33
|
+
|
34
|
+
# Agenda
|
35
|
+
|
36
|
+
Here is the session agenda.
|
37
|
+
|
38
|
+
First, I'll explain why so curious about bugs.d.o
|
39
|
+
and show you the troublesome case.
|
40
|
+
|
41
|
+
Next, I'll explain how to solve this situation and demonstrate an
|
42
|
+
actual front-end.
|
43
|
+
|
44
|
+
# We use bugs.d.o
|
45
|
+
|
46
|
+
Here is the screenshot of bugs.d.o.
|
47
|
+
|
48
|
+
I guess you are familiar with it.
|
49
|
+
|
50
|
+
# bugs.debian.org
|
51
|
+
|
52
|
+
In bugs.d.o, we need to follow the rules.
|
53
|
+
|
54
|
+
1. Communicate each other by E-mail
|
55
|
+
2. Change the bug status by sending E-mail
|
56
|
+
|
57
|
+
# Why so curious about bugs.d.o?
|
58
|
+
|
59
|
+
One day, I've received deprecated notification about growl-for-linux
|
60
|
+
package.
|
61
|
+
|
62
|
+
growl-for-linux is a notification software.
|
63
|
+
|
64
|
+
One is related to libappindicator and the other is related to
|
65
|
+
dbus-glib.
|
66
|
+
|
67
|
+
# How did you fixed?
|
68
|
+
|
69
|
+
About libappindicator, just migrated to libayatana-indicator.
|
70
|
+
|
71
|
+
# How did you fixed? (again)
|
72
|
+
|
73
|
+
About, dbus-glib, I need to fix changed interfaces and migrated into
|
74
|
+
GDBus.
|
75
|
+
|
76
|
+
# growl-for-linux was fixed
|
77
|
+
|
78
|
+
Two bugs about growl-for-linux package was fixed, but I thought what
|
79
|
+
about other packages?
|
80
|
+
|
81
|
+
# What about other packages?
|
82
|
+
|
83
|
+
libappindicator and dbus-glib was tracked like this.
|
84
|
+
|
85
|
+
# libappindicator: deprecated in Debian;
|
86
|
+
|
87
|
+
Against libappindicator, there are many bugs.
|
88
|
+
|
89
|
+
# libdbus-glib-1-dev: is deprecated
|
90
|
+
|
91
|
+
Against dbus-glib, there are too many blocked bugs.
|
92
|
+
|
93
|
+
# How to track many blocked?
|
94
|
+
|
95
|
+
In these case, we can use UserTags to track bugs.
|
96
|
+
|
97
|
+
# Does it work with libappindicator?
|
98
|
+
|
99
|
+
For libappindicator, ayatana-appindicator is used as UserTag
|
100
|
+
|
101
|
+
# Does it work with libdbus-glib1-dev?
|
102
|
+
|
103
|
+
It should be tagged... but, UserTag is not available for dbus-glib.
|
104
|
+
|
105
|
+
# The troublesome case about bugs.d.o
|
106
|
+
|
107
|
+
Like this, there is a case that UserTag is not always used. How to
|
108
|
+
solve this situation?
|
109
|
+
|
110
|
+
# Use udd.debian.org!
|
111
|
+
|
112
|
+
The answer is using udd.
|
113
|
+
UDD can track usertags and blocking bugs.
|
114
|
+
|
115
|
+
# In my experience, I need
|
116
|
+
|
117
|
+
So far, I've fixed or sent feedback to some bugs, I became to feel the
|
118
|
+
following ones are needed.
|
119
|
+
|
120
|
+
Tracking a specified bug
|
121
|
+
Finding a bug that no one working on
|
122
|
+
Sending control E-mail in required form
|
123
|
+
Finding affected bugs
|
124
|
+
|
125
|
+
# What I need for?
|
126
|
+
|
127
|
+
First topic is solved by using UDD.
|
128
|
+
|
129
|
+
But how about the rest issues?
|
130
|
+
|
131
|
+
# How to solve rest issues?
|
132
|
+
|
133
|
+
Surely, It is a good manner to fix a bug, but it is not easy.
|
134
|
+
It is also good to triage a bug, but it may be troublesome.
|
135
|
+
|
136
|
+
To know affected bugs are also important, but it is not so easy until
|
137
|
+
it hits you.
|
138
|
+
|
139
|
+
# Find affected bugs
|
140
|
+
|
141
|
+
In the past, there are some grave/critical bugs It had affected boot
|
142
|
+
sequence / logged in user session. I want to avoid these bugs.
|
143
|
+
|
144
|
+
# What about existing solution?
|
145
|
+
|
146
|
+
I've searched existing useful services via Debian wiki.
|
147
|
+
|
148
|
+
Developer Horizon seems well, but not available. Fabre also seems
|
149
|
+
well, but discontinued already.
|
150
|
+
|
151
|
+
I've also heard Debbugs Enhancement Suite. But it is a bit different
|
152
|
+
what I want.
|
153
|
+
|
154
|
+
# What about existing solution?
|
155
|
+
|
156
|
+
As a result, Debian Popularity Content and Public UDD Mirror seems
|
157
|
+
useful.
|
158
|
+
|
159
|
+
# Starting personal project
|
160
|
+
|
161
|
+
So I've started a personal project.
|
162
|
+
|
163
|
+
The concept of this project is: "Make unstable life comfortable" It
|
164
|
+
seems that it is ridiculous, but important for me.
|
165
|
+
|
166
|
+
# Starting personal project
|
167
|
+
|
168
|
+
To achieve this concept, I need to do some tasks.
|
169
|
+
|
170
|
+
counting comment for each bugs,
|
171
|
+
and adding separate mailto: link,
|
172
|
+
checking installed packages to alert affected bugs.
|
173
|
+
|
174
|
+
# How to realize concept
|
175
|
+
|
176
|
+
Furthermore, collecting E-mail archives, popcon data, installed
|
177
|
+
packages list and so on are also required.
|
178
|
+
|
179
|
+
# Collect bug information
|
180
|
+
|
181
|
+
To collect E-mail archives, we can use bugs-mirror with rsync. E-mail
|
182
|
+
archive contains *.log and *.summary.
|
183
|
+
|
184
|
+
# Extract .log and .summary
|
185
|
+
|
186
|
+
There are many Perl modules to handle bugs.d.o related pieces of
|
187
|
+
stuff.
|
188
|
+
|
189
|
+
# How to parse .log
|
190
|
+
|
191
|
+
For example, Log and MIME module is used to parse .log file.
|
192
|
+
|
193
|
+
# How to parse .summary
|
194
|
+
|
195
|
+
Status module is used to parse .summary file.
|
196
|
+
You can access these bugs's metadata.
|
197
|
+
|
198
|
+
# Collect Popcon data and so on
|
199
|
+
|
200
|
+
As UDD provides public database access,
|
201
|
+
|
202
|
+
So we can get popcon stats and investigate which bug affects unstable
|
203
|
+
or not.
|
204
|
+
|
205
|
+
# Collect installed packages information
|
206
|
+
|
207
|
+
As popularity-content command can collect installed binary packages
|
208
|
+
information. It is useful to check recently used packages.
|
209
|
+
|
210
|
+
# Process collected data and make it accessible!
|
211
|
+
|
212
|
+
After collecting these information, updating bug information is
|
213
|
+
required regularly.
|
214
|
+
|
215
|
+
I've used debian-bugs-dist mailing list as a trigger to
|
216
|
+
update and imported it into database.
|
217
|
+
|
218
|
+
# Prepared server specs for experiment
|
219
|
+
|
220
|
+
For my experiment, I've prepared small VPS instance.
|
221
|
+
|
222
|
+
# System diagrams
|
223
|
+
|
224
|
+
Here is a simple diagram for explaining the system.
|
225
|
+
|
226
|
+
Web server is nginx, Application server is puma, and backend database is Groonga.
|
227
|
+
|
228
|
+
It access external services,
|
229
|
+
E-mail server, UDD for metadata, Salsa for authentication.
|
230
|
+
|
231
|
+
# Named my project as Fabre
|
232
|
+
|
233
|
+
As diagram indicates,
|
234
|
+
I've named this personal system as Fabre.
|
235
|
+
|
236
|
+
# Why Fabre?
|
237
|
+
|
238
|
+
Fabre is famous by the study of insects.
|
239
|
+
I've borrowed from discontinued similar project in decades ago
|
240
|
+
|
241
|
+
# Concept of Fabre (again)
|
242
|
+
|
243
|
+
The concept is this project is Make "unstable life" comfortable.
|
244
|
+
|
245
|
+
# Finding a bug that no one working on
|
246
|
+
|
247
|
+
Here is the partial screenshot of Fabre.
|
248
|
+
It shows each number of comments (orange background color means no one working on yet)
|
249
|
+
|
250
|
+
# Sending control E-mail easily
|
251
|
+
|
252
|
+
I've added each mailto: button to sending control mail
|
253
|
+
|
254
|
+
# Easy to view blocked bugs
|
255
|
+
|
256
|
+
I've aligned blocked bugs.
|
257
|
+
|
258
|
+
# Finding affected important bugs
|
259
|
+
|
260
|
+
I've added a dashboard to show fire icon. It indicates that there are affected bugs.
|
261
|
+
|
262
|
+
# How Fabre is good enough to work?
|
263
|
+
|
264
|
+
I'll show you some demo about Fabre.
|
265
|
+
|
266
|
+
# Current status of Fabre
|
267
|
+
|
268
|
+
That's all about Fabre demonstration.
|
269
|
+
|
270
|
+
In this system, tracked bugs are reached to eighty-nine thousand.
|
271
|
+
UDD tracks 90 thousand bugs, so it covers most of them.
|
272
|
+
|
273
|
+
Currently, bug information is updated every 1 hour, and affected bugs are also updated every 1 day.
|
274
|
+
|
275
|
+
Disk usage is about 1.5 GiB.
|
276
|
+
|
277
|
+
# Weak point of Fabre
|
278
|
+
|
279
|
+
There is a one weak point about Fabre.
|
280
|
+
out of memory is occurred sometimes.
|
281
|
+
|
282
|
+
# Conclusion
|
283
|
+
|
284
|
+
* There is plenty room of improvement to develop, so I'll go forward this experiment furthermore.
|
285
|
+
* In my experiment, I've found that mashup some data sources may improve user experience.
|
286
|
+
|
287
|
+
# Any questions?
|
288
|
+
|
289
|
+
Could you speak slowly if you ask, please?
|
290
|
+
|
291
|
+
# DEMO
|
292
|
+
|
293
|
+
I'll demonstrate some features of Fabre.
|
294
|
+
|
295
|
+
If you already sign-in with salsa account,
|
296
|
+
You can also sign in with Fabre.
|
297
|
+
|
298
|
+
You need explicitly allow to authorize with Fabre.
|
299
|
+
|
300
|
+
After sign in, you can access the dashboard.
|
301
|
+
|
302
|
+
In the dashboard, you can see a status.
|
303
|
+
|
304
|
+
As you can see, there are three affected bugs,
|
305
|
+
ten bookmarked bugs, and you installed thousand and six hundred packages.
|
306
|
+
|
307
|
+
At the bottom of the dashboard, you can check the existence of newer comments since you commented finally.
|
308
|
+
|
309
|
+
Let's see the affected bugs.
|
310
|
+
These information is based on your installed packages.
|
311
|
+
|
312
|
+
Let's see the bookmarked bugs.
|
313
|
+
In every bug detail page, bookmark button is shown, so you can track bug freely.
|
314
|
+
|
315
|
+
You can see recent update bugs, release critical bugs, and newcomer bugs.
|
316
|
+
|
317
|
+
Here is the bug detail page,
|
318
|
+
|
319
|
+
You can view original bug report via clicking link,
|
320
|
+
tweet about bugs,
|
321
|
+
and send control E-mail easily.
|
322
|
+
|
data/theme.rb
ADDED
@@ -0,0 +1,11 @@
|
|
1
|
+
@default_font = "Ubuntu"
|
2
|
+
@monospace_font = "Ubuntu"
|
3
|
+
include_theme("debian")
|
4
|
+
@slide_show_span = 1800
|
5
|
+
@slide_show_loop = true
|
6
|
+
|
7
|
+
# Tweak debian theme for 1280x720
|
8
|
+
#
|
9
|
+
# match(Slide, HeadLine) do |heads|
|
10
|
+
# loader_head.resize(canvas.width, 190)
|
11
|
+
# end
|
metadata
ADDED
@@ -0,0 +1,84 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rabbit-slide-kenhys-debconf2021-online
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 2021.08.28.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Kentaro Hayashi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2021-08-13 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: rabbit
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.0.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.0.2
|
27
|
+
description: ''
|
28
|
+
email:
|
29
|
+
- kenhys@gmail.com
|
30
|
+
executables: []
|
31
|
+
extensions: []
|
32
|
+
extra_rdoc_files: []
|
33
|
+
files:
|
34
|
+
- ".rabbit"
|
35
|
+
- README.md
|
36
|
+
- Rakefile
|
37
|
+
- cfp.md
|
38
|
+
- concept.md
|
39
|
+
- config.yaml
|
40
|
+
- debconf2021-online.md
|
41
|
+
- faq.md
|
42
|
+
- images/debconf2020-presentation.png
|
43
|
+
- images/debian.net-team-requests.png
|
44
|
+
- images/easy-to-find-archtag.png
|
45
|
+
- images/easy-to-find-ftbfs.png
|
46
|
+
- images/easy-to-find-no-one-working-mark.png
|
47
|
+
- images/easy-to-find-no-one-working.png
|
48
|
+
- images/easy-to-find-security.png
|
49
|
+
- images/easy-to-send-control-email-mark.png
|
50
|
+
- images/easy-to-send-control-email.png
|
51
|
+
- images/easy-to-view-blocking-mark.png
|
52
|
+
- images/easy-to-view-blocking.png
|
53
|
+
- images/fabre-recent-updated.png
|
54
|
+
- images/fabre.debian.net.png
|
55
|
+
- images/logo-combination-standard.svg
|
56
|
+
- images/profile.png
|
57
|
+
- minidebconf-india2021.md
|
58
|
+
- pdf/debconf2021-online-debconf2021-online.pdf
|
59
|
+
- presentation-memo.md
|
60
|
+
- theme.rb
|
61
|
+
homepage: https://slide.rabbit-shocker.org/authors/kenhys/debconf2021-online/
|
62
|
+
licenses:
|
63
|
+
- CC-BY-SA-4.0
|
64
|
+
metadata: {}
|
65
|
+
post_install_message:
|
66
|
+
rdoc_options: []
|
67
|
+
require_paths:
|
68
|
+
- lib
|
69
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
70
|
+
requirements:
|
71
|
+
- - ">="
|
72
|
+
- !ruby/object:Gem::Version
|
73
|
+
version: '0'
|
74
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
75
|
+
requirements:
|
76
|
+
- - ">="
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
79
|
+
requirements: []
|
80
|
+
rubygems_version: 3.2.22
|
81
|
+
signing_key:
|
82
|
+
specification_version: 4
|
83
|
+
summary: DebConf 2021 Online
|
84
|
+
test_files: []
|