rabbit-slide-kou-scipy-japan-2019 2019.4.23.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: a166529124b217ade85d51819b8afe822bebfd541211577f11be6d4df56cc0e5
4
+ data.tar.gz: d7464a7435c8c89b46b6f2dcc8ae8b49d8d8009633c0ec7f4f37ab5967ebe8f6
5
+ SHA512:
6
+ metadata.gz: f5b69f9dc120e6b1b9cd78554b76581d6fb715fb46005e247f3a30dc98f09665870cc7e4f6dbb6c3690d7d5c4c0a5ed48b620e1677d0ce071a47779a2fae6784
7
+ data.tar.gz: b32d34aca3f972913ae60f0c8af78b07165a39ca0cbd1cecebd0daaf1a5186820f0722ab5f1b824b96f25e037a41684501bfc6dbffd8c17c32e69e564f317c21
data/.rabbit ADDED
@@ -0,0 +1 @@
1
+ --size=800,450 apache-arrow.rab
data/README.rd ADDED
@@ -0,0 +1,51 @@
1
+ = Apache Arrow - A cross-language development platform for in-memory data
2
+
3
+ Apache Arrow is the future for data processing systems. This talk
4
+ describes how to solve data sharing overhead in data processing system
5
+ such as Spark and PySpark. This talk also describes how to accelerate
6
+ computation against your large data by Apache Arrow.
7
+
8
+ == License
9
+
10
+ === Slide
11
+
12
+ CC BY-SA 4.0
13
+
14
+ Use the followings for notation of the author:
15
+
16
+ * Kouhei Sutou
17
+
18
+ ==== ClearCode Inc. logo
19
+
20
+ CC BY-SA 4.0
21
+
22
+ Author: ClearCode Inc.
23
+
24
+ It is used in page header and some pages in the slide.
25
+
26
+ ==== Performance figure
27
+
28
+ Apache License 2.0
29
+
30
+ Author: The Apache Software Foundation
31
+
32
+ == For author
33
+
34
+ === Show
35
+
36
+ rake
37
+
38
+ === Publish
39
+
40
+ rake publish
41
+
42
+ == For viewers
43
+
44
+ === Install
45
+
46
+ gem install rabbit-slide-kou-scipy-japan-2019
47
+
48
+ === Show
49
+
50
+ rabbit rabbit-slide-kou-scipy-japan-2019.gem
51
+
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-clear-code")
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/apache-arrow.rab ADDED
@@ -0,0 +1,461 @@
1
+ = Apache Arrow
2
+
3
+ : subtitle
4
+ A cross-language development platform\nfor in-memory data
5
+ : author
6
+ Kouhei Sutou
7
+ : institution
8
+ ClearCode Inc.
9
+ : content-source
10
+ SciPy Japan 2019
11
+ : date
12
+ 2019-04-23
13
+ : start-time
14
+ 2019-04-23T14:30:00+09:00
15
+ : end-time
16
+ 2019-04-23T14:55:00+09:00
17
+ : theme
18
+ .
19
+
20
+ = Me
21
+
22
+ Ruby committer since 2004\n
23
+ (('note:2004年からRubyコミッター'))
24
+
25
+ = Why do I talk at SciPy?\n(('note:なぜSciPyで話しているのか?'))
26
+
27
+ To introduce\n
28
+ ((*Apache Arrow*))\n
29
+ (('note:((*Apache Arrow*))を紹介するため'))
30
+
31
+ = Apache Arrow
32
+
33
+ # blockquote
34
+ # title = https://arrow.apache.org/
35
+
36
+ A cross-language development platform for in-memory data\n
37
+ (('note:インメモリーデータ向け多言語対応開発プラットフォーム'))
38
+
39
+ = Cross-language\n(('note:多言語対応'))
40
+
41
+ * C, C++, C#, Go, Java,
42
+ * JavaScript, MATLAB, ((*Python*)),
43
+ * R, ((*Ruby*)) and Rust
44
+
45
+ = Development platform\n(('note:開発プラットフォーム'))
46
+
47
+ Apache Arrow ...
48
+
49
+ * specifies standards and\n
50
+ (('note:標準化'))
51
+ * provides implementations\n
52
+ (('note:実装'))
53
+
54
+ to advance cooperation by many people\n
55
+ (('note:多くの人が協力できるように'))
56
+
57
+ = For in-memory data\n(('note:インメモリーデータ'))
58
+
59
+ Apache Arrow focuses on ↓ ((*for now*))\n
60
+ (('note:Apache Arrowは((*今のところ*))は↓に注力'))
61
+
62
+ * sharing columnar/tensor data\n
63
+ (('note:カラムナーデータ・テンソルデータの共有'))
64
+ * analyzing columnar data\n
65
+ (('note:カラムナーデータの分析'))
66
+ * RPC for columnar data\n
67
+ (('note:カラムナーデータのRPC'))
68
+
69
+ = Apache Arrow and Python\n(('note:Apache ArrowとPython'))
70
+
71
+ * As pickle replacement\n
72
+ (('note:pickleの代替'))
73
+ * PySpark does\n
74
+ (('note:PySparkはすでにやっている'))
75
+ * As dataframe library\n
76
+ (('note:データフレームライブラリー'))
77
+ * pandas and Vaes use Apache Arrow a bit\n
78
+ (('note:pandasとVaesはApache Arrowを少し使っている'))
79
+
80
+ = Apache Arrow and me\n(('note:Apache Arrowと私'))
81
+
82
+ # image
83
+ # src = images/apache-arrow-and-me.svg
84
+ # align = right
85
+ # vertical-align = bottom
86
+ # relative-width = 65
87
+ # relative-margin-right = 20
88
+ # relative-padding-bottom = -15
89
+
90
+ * A release manager(('note:(リリースマネージャー)'))
91
+ * 0.11.0 and 0.13.0 (('note:(the latest release/最新リリース)'))
92
+ * An active developer(('note:(アクティブな開発者)'))
93
+
94
+ (('tag:margin-top * 10'))
95
+
96
+ = Feature (1)\n(('note:機能(1)'))
97
+
98
+ Effective serialization\n
99
+ (('note:効率的なシリアライズ'))
100
+
101
+ = Why effective?\n(('note:なぜ効率的なのか'))
102
+
103
+ * Don't parse data\n
104
+ (('note:データをパースしないから'))
105
+ * Use data directly\n
106
+ (('note:データをそのまま使うから'))
107
+
108
+ = Data format: Number\n(('note:データフォーマット:数値'))
109
+
110
+ Contiguous data (Same as C array)
111
+ 連続データ(Cの配列と同じ)
112
+
113
+ 32bit integer: [1, 2, 3]
114
+ 0x01 0x00 0x00 0x00 0x02 0x00 0x00 0x00 0x03 ...
115
+
116
+ = Compare to JSON\n(('note:JSONと比較'))
117
+
118
+     "[1, 2, 3]"
119
+
120
+ "1" → 1 (String → Number)
121
+ "2" → 2 (String → Number)
122
+ "3" → 3 (String → Number)
123
+
124
+ = Merit of direct data use\n(('note:データを直接使うことのメリット'))
125
+
126
+ * Zero copy cost\n
127
+ (('note:コピーコストをなくせる'))
128
+ * Copy is costly for large data\n
129
+ (('note:大きなデータではコピーはコストが高い'))
130
+ * (Nearly) zero parse cost\n
131
+ (('note:(ほぼ)パースコストをなくせる'))
132
+ * Only need to parse metadata\n
133
+ (('note:メタデータをパースするだけでよい'))
134
+
135
+ = Performance\n(('note:性能'))
136
+
137
+ # image
138
+ # src = images/serialize-list.png
139
+ # relative_height = 77
140
+
141
+ (('note:((<Fast Python Serialization with Ray and Apache Arrow|URL:https://arrow.apache.org/blog/2017/10/15/fast-python-serialization-with-ray-and-arrow/>))'))
142
+
143
+ (('note:Apache License 2.0: (c) 2016-2019 The Apache Software Foundation'))
144
+
145
+ = Zero copy and large data\n(('note:ゼロコピーと大きなデータ'))
146
+
147
+ * pandas can't process large data\n
148
+ (('note:pandasは大きなデータを扱えない'))
149
+ * Because it needs to allocate memory\n
150
+ (('note:メモリーを確保する必要があるから'))
151
+ * Apache Arrow supports memory mapping\n
152
+ (('note:Apache Arrowはメモリーマッピング対応'))
153
+ * Can use data in file directly without copy\n
154
+ (('note:ファイル内のデータをコピーせずに使える'))
155
+
156
+ = Effective string representation\n(('note:効率的な文字列表現'))
157
+
158
+ * pandas: Array of strings\n
159
+ (('note:pandas:文字列の配列'))
160
+ * Use discontiguous memory\n
161
+ (('note:非連続なメモリーを使う'))
162
+ * Apache Arrow: Data and array of lengths\n
163
+ (('note:Apache Arrow:データと長さの配列'))
164
+ * Use contiguous memory: Fast\n
165
+ (('note:連続したメモリーを使う:速い'))
166
+
167
+ = Data format: String\n(('note:データフォーマット:文字列'))
168
+
169
+ Data bytes + length array
170
+
171
+ UTT-8 string: ["Hello", "", "!"]
172
+ Data bytes: "Hello!"
173
+ Length array: [0, 5, 5, 6]
174
+ i-th length: lengths[i+1] - lengths[i]
175
+ i-th data: data[lengths[i]:lengths[i+1]]
176
+
177
+ = Feature(?) (2)\n(('note:機能(?)(2)'))
178
+
179
+ Specify data format\n
180
+ (('note:データフォーマットを仕様化'))
181
+
182
+ = Why do Arrow specify?\n(('note:なぜArrowは仕様化するのか'))
183
+
184
+ Effective\n
185
+ data exchange\n
186
+ (('note:効率的なデータ交換のため'))
187
+
188
+ = Effective data exchange\n(('note:効率的なデータ交換'))
189
+
190
+ * Use common format widely\n
191
+ (('note:みんなが同じフォーマットを使うこと'))
192
+ * No format conversion reduces resource usage\n
193
+ (('note:フォーマットを変換しなくてよいならリソース使用量を減らせる'))
194
+ * Use low {,de}serialize cost format\n
195
+ (('note:シリアライズコストが低いフォーマットを使うこと'))
196
+ * Fast
197
+
198
+ = Who uses Arrow format?\n(('note:Arrowフォーマットをだれが使っているか'))
199
+
200
+ * ((<RAPIDS|URL:https://rapids.ai/>)): For NVIDIA GPU
201
+ * ((<Fletcher|URL:https://github.com/johanpel/fletcher>)), ((<InAccel|URL:https://docs.inaccel.com/latest/manager/examples/#logistic-regression-with-apache-arrow>)): For FPGA
202
+ * ((<Spark|URL:https://spark.apache.org/>)): For interprocess data exchange\n
203
+ (('note:Spark:プロセス間のデータ交換のために'))
204
+
205
+ = CPU and GPU
206
+
207
+ * Can't share data on memory\n
208
+ (('note:メモリー上のデータを共有できない'))
209
+ * Need to copy between CPU and GPU\n
210
+ (('note:CPUとGPU間でコピーする必要がある'))
211
+ * Effective data exchange improves performance\n
212
+ (('note:データ交換を効率化することで高速化'))
213
+
214
+ = CPU and FPGA
215
+
216
+ * Can't share data on memory\n
217
+ (('note:メモリー上のデータを共有できない'))
218
+ * Need to copy between CPU and FPGA\n
219
+ (('note:CPUとFPGA間でコピーする必要がある'))
220
+ * Effective data exchange improves performance\n
221
+ (('note:データ交換を効率化することで高速化'))
222
+
223
+ = Spark
224
+
225
+ * Process large data\n
226
+ (('note:大きなデータを処理'))
227
+ * Need to pass data to worker processes\n
228
+ (('note:ワーカープロセスにデータを渡す必要がある'))
229
+ * Effective data exchange improves performance\n
230
+ (('note:データ交換を効率化することで高速化'))
231
+
232
+ = PySpark
233
+
234
+ * Worker by Python\n
235
+ (('note:ワーカーはPython'))
236
+ * Use pikcle to exchange data\n
237
+ (('note:データ交換にpickleを使用'))
238
+ * Spark supports Arrow for data exchange\n
239
+ (('note:Arrowを使ったデータ交換をサポート'))
240
+ * Disabled by default\n
241
+ (('note:デフォルトでは無効'))
242
+
243
+ = PySpark with Arrow
244
+
245
+ In [2]: %time pdf = df.toPandas()
246
+ CPU times: user 17.4 s, sys: 792 ms, total: 18.1 s
247
+ Wall time: 20.7 s
248
+
249
+ In [3]: spark.conf.set("spark.sql.execution.arrow.enabled", "true")
250
+
251
+ In [4]: %time pdf = df.toPandas()
252
+ CPU times: user 40 ms, sys: 32 ms, total: 72 ms
253
+ Wall time: 737 ms
254
+
255
+ (('note:((< Speeding up PySpark with Apache Arrow|URL:https://arrow.apache.org/blog/2017/07/26/spark-arrow/>))'))
256
+
257
+ = Feature (3)\n(('note:機能(3)'))
258
+
259
+ Optimized\n
260
+ data processing\n
261
+ modules\n
262
+ (('note:最適化されたデータ処理モジュール'))
263
+
264
+ = Optimized data processing\n(('note:最適化されたデータ処理モジュール'))
265
+
266
+ * Apache Arrow targets large data\n
267
+ (('note:Apache Arrowは大きなデータを対象にしている'))
268
+ * Performance is important\n
269
+ (('note:性能は重要'))
270
+ * How to get high performance...?\n
271
+ (('note:どうすれば速くできる。。。?'))
272
+
273
+ = High performance (1)\n(('note:高速化(1)'))
274
+
275
+ Data locality\n
276
+ (('note:データを局所化'))
277
+
278
+ = Data locality\n(('note:データを局所化'))
279
+
280
+ * Minimize cache misses\n
281
+ (('note:キャッシュミスを減らす'))
282
+ * Storage is very slow\n
283
+ (('note:ストレージはすごく遅い'))
284
+ * Memory is slow\n
285
+ (('note:メモリーは遅い'))
286
+ * CPU cache is fast\n
287
+ (('note:CPUキャッシュは速い'))
288
+
289
+ = High performance (2)\n(('note:高速化(2)'))
290
+
291
+ SIMD\n
292
+ (('note:Single Instruction Multi Data'))\n
293
+ (('note:一気に複数のデータを処理する方法'))
294
+
295
+ = SIMD
296
+
297
+ * Data must be contiguous and aligned\n
298
+ (('note:データは連続していてアラインされていないといけない'))
299
+ * Arrow format is SIMD ready\n
300
+ (('note:ArrowフォーマットはSIMDを使える'))
301
+ * No condition branch\n
302
+ (('note:条件分岐がないこと'))
303
+ * Use bitmap instead of "missing" for null\n
304
+ (('note:nullを表現するために「欠損値」ではなく別途ビットマップを使う'))\n
305
+ (('note:((<"Is it time to stop using sentinel values for null / NA values?"|URL:http://wesmckinney.com/blog/bitmaps-vs-sentinel-values/>))'))
306
+
307
+ = No condition branch\n(('note:条件分岐なし'))
308
+
309
+ # img
310
+ # src = images/simd-null.svg
311
+ # relative_height = 100
312
+
313
+ == Slide property
314
+
315
+ : enable-title-on-image
316
+ false
317
+
318
+ = FYI: null\n(('note:参考情報:null'))
319
+
320
+ * All data types support null in Arrow\n
321
+ (('note:Arrowはすべての型でnullをサポート'))
322
+ * Some types only support null in NumPy\n
323
+ (('note:NumPyは一部の型でnullをサポート'))\n
324
+ (('note:((<欠損値の制約 - PythonとApache Arrow|URL:https://speakerdeck.com/sinhrks/pythontoapache-arrow-eaf72479-ce30-4161-8c73-15b555cc56c7?slide=11>))'))
325
+
326
+ = High performance (3)\n(('note:高速化(3)'))
327
+
328
+ Thread
329
+
330
+ = Thread
331
+
332
+ * Use multi-cores in single process\n
333
+ (('note:シングルプロセスで複数コアを使う'))
334
+ * Minimize resource conflict\n
335
+ (('note:リソースの競合をなくすこと'))
336
+ * Locking to avoid conflict reduces performance\n
337
+ (('note:競合を避けるためにロックすると性能劣化'))
338
+ * Approaches(('note:(アプローチ)'))
339
+ * Read only or copy (shared nothing)\n
340
+ (('note:リードオンリーにするかコピー(なにも共有しない)'))
341
+
342
+ = Apache Arrow and thread\n(('note:Apache Arrowとスレッド'))
343
+
344
+ * Data is read only\n
345
+ (('note:データはリードオンリー'))
346
+ * Share data in threads without lock overhead\n
347
+ (('note:ロックのオーバーヘッドなしでスレッド間でデータを共有'))
348
+ * Avoid both locking and copying\n
349
+ (('note:ロックもコピーも避ける'))
350
+ * They reduce performance\n
351
+ (('note:どちらも性能劣化するから'))
352
+
353
+ = High performance (4)\n(('note:高速化(4)'))
354
+
355
+ Compute kernels\n
356
+ (('note:計算カーネル'))
357
+
358
+ = Compute kernels\n(('note:計算カーネル'))
359
+
360
+ * SIMD ready primitive operations\n
361
+ (('note:SIMDを使ったプリミティブな演算'))
362
+ * Projection, Filter, Aggregation, ...\n
363
+ (('note:射影とかフィルターとか集計とかとか'))
364
+ * compare, take, mean, ...\n
365
+ (('note:比較とか行選択とか平均とか'))
366
+
367
+ = High performance (5)\n(('note:高速化(5)'))
368
+
369
+ Subgraph compiler\n
370
+ (('note:サブグラフコンパイラー'))
371
+
372
+ = Subgraph compiler: Gandiva\n(('note:サブグラフコンパイラー:Gandiva'))
373
+
374
+ * Compile operator graphs at run-time\n
375
+ (('note:実行時に演算グラフをコンパイル'))
376
+ * Operator graph: combined multiple operations\n
377
+ (('note:演算グラフ:演算のまとまり'))
378
+ * (({table.a + table.b < table.c && ...}))
379
+ * Usable for query engine backend\n
380
+ (('note:クエリーエンジンのバックエンドとして使える'))
381
+
382
+ = High performance (6)\n(('note:高速化(6)'))
383
+
384
+ Query engine\n
385
+ (('note:クエリーエンジン'))
386
+
387
+ = Query engine\n(('note:クエリーエンジン'))
388
+
389
+ * For single node\n
390
+ (('note:シングルノード向け'))
391
+ * Dataflow-style operator execution\n
392
+ (('note:データが流れるように演算を実行'))
393
+ * scan → project → filter → aggregate → ...\n
394
+ (('note:データ取得→射影→フィルター→集計→…'))
395
+
396
+ (('note:((<Apache Arrow Query Engine for C++|URL:https://docs.google.com/document/d/10RoUZmiMQRi_J1FcPeVAUAMJ6d_ZuiEbaM2Y33sNPu4/edit#>))'))
397
+
398
+ = Query engine from Python\n(('note:Pythonからクエリーエンジンを使う'))
399
+
400
+ * With pandas(('note:(pandasと使う)'))
401
+ * Large data → execute → (({to_pandas()}))\n
402
+ (('note:大きなデータ→実行→(({to_pandas()}))'))
403
+ * With Dask(('note:(Daskと使う)'))
404
+ * Dask will be able to use this as backend\n
405
+ (('note:Daskのバックエンドで使えるかも?'))
406
+
407
+ = High performance (7)\n(('note:高速化(7)'))
408
+
409
+ Datasets\n
410
+ (('note:データセット'))
411
+
412
+ = Datasets\n(('note:データセット'))
413
+
414
+ * Scan data from storage/database\n
415
+ (('note:ストレージ・データベースからデータ取得'))
416
+ * File systems: local, HDFS, ...
417
+ * Formats: CSV, Parquet, ...
418
+ * Databases: MySQL, PostgreSQL, ...
419
+
420
+ (('note:((<Apache Arrow C++ Datasets|URL:https://docs.google.com/document/d/1bVhzifD38qDypnSjtf8exvpP3sSB5x_Kw9m-n66FB2c/edit#heading=h.22aikbvt54fv>))'))
421
+
422
+ = Fast datasets\n(('note:高速なデータセット'))
423
+
424
+ * Predicate pushdown\n
425
+ (('note:条件のプッシュダウン'))
426
+ * Scan only needed data\n
427
+ (('note:必要なデータのみ取得'))
428
+ * Parallel scan\n
429
+ (('note:並列取得'))
430
+
431
+ = Feature (4)\n(('note:機能(4)'))
432
+
433
+ RPC
434
+
435
+ = RPC: Arrow Flight
436
+
437
+ * Fast RPC framework for Arrow\n
438
+ (('note:Arrow用の高速なRPC'))
439
+ * Based on gRPC with low-level extensions\n
440
+ (('note:gRPCベースでいくつか低レベルの拡張をしている'))
441
+
442
+ (('note:((<Apache 0.11.0 Release|URL:https://arrow.apache.org/blog/2018/10/09/0.11.0-release/>))'))
443
+
444
+ = Wrap up\n(('note:まとめ'))
445
+
446
+ * Arrow is useful for SciPy community\n
447
+ (('note:SciPyコミュニティーにArrowは有用'))
448
+ * in not only Python but also other languages\n
449
+ (('note:Pythonだけでなく他の言語でも有用'))
450
+ * Join Apache Arrow development!\n
451
+ (('note:Apache Arrowの開発に参加しよう!'))
452
+ * Ask me how to start\n
453
+ (('note:なにから始めればよいかは私に相談してね'))
454
+
455
+ = Next step\n(('note:次の一歩'))
456
+
457
+ * ((<Mailing list|URL:https://lists.apache.org/list.html?dev@arrow.apache.org>)): dev@arrow.apache.org
458
+ * Chat in Japanese:
459
+ * ((<URL:https://gitter.im/apache-arrow-ja/community>))
460
+ * Apache Arrow Tokyo Meetup 2019 (('note:this summer?'))
461
+ * See also: ((<Apache Arrow Tokyo Meetup 2018|URL:https://speee.connpass.com/event/103514>))
data/config.yaml ADDED
@@ -0,0 +1,23 @@
1
+ ---
2
+ id: scipy-japan-2019
3
+ base_name: apache-arrow
4
+ tags:
5
+ - rabbit
6
+ - apachearrow
7
+ - scipyjapan
8
+ presentation_date: 2019-04-23
9
+ version: 2019.4.23.0
10
+ licenses:
11
+ - CC-BY-SA-4.0
12
+ slideshare_id:
13
+ speaker_deck_id:
14
+ ustream_id:
15
+ vimeo_id:
16
+ youtube_id:
17
+ author:
18
+ markup_language: :rd
19
+ name: Kouhei Sutou
20
+ email: kou@clear-code.com
21
+ rubygems_user: kou
22
+ slideshare_user: kou
23
+ speaker_deck_user:
@@ -0,0 +1,110 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:xlink="http://www.w3.org/1999/xlink"
11
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
12
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
13
+ width="75.882507mm"
14
+ height="26.80608mm"
15
+ viewBox="0 0 75.882507 26.80608"
16
+ version="1.1"
17
+ id="svg8"
18
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
19
+ sodipodi:docname="apache-arrow-and-me.svg">
20
+ <defs
21
+ id="defs2" />
22
+ <sodipodi:namedview
23
+ id="base"
24
+ pagecolor="#ffffff"
25
+ bordercolor="#666666"
26
+ borderopacity="1.0"
27
+ inkscape:pageopacity="0.0"
28
+ inkscape:pageshadow="2"
29
+ inkscape:zoom="2.8"
30
+ inkscape:cx="156.89553"
31
+ inkscape:cy="66.78917"
32
+ inkscape:document-units="mm"
33
+ inkscape:current-layer="layer1"
34
+ showgrid="false"
35
+ fit-margin-top="0"
36
+ fit-margin-left="0"
37
+ fit-margin-right="0"
38
+ fit-margin-bottom="0"
39
+ inkscape:window-width="1920"
40
+ inkscape:window-height="1016"
41
+ inkscape:window-x="1920"
42
+ inkscape:window-y="27"
43
+ inkscape:window-maximized="1" />
44
+ <metadata
45
+ id="metadata5">
46
+ <rdf:RDF>
47
+ <cc:Work
48
+ rdf:about="">
49
+ <dc:format>image/svg+xml</dc:format>
50
+ <dc:type
51
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
52
+ <dc:title></dc:title>
53
+ </cc:Work>
54
+ </rdf:RDF>
55
+ </metadata>
56
+ <g
57
+ inkscape:label="レイヤー 1"
58
+ inkscape:groupmode="layer"
59
+ id="layer1"
60
+ transform="translate(-192.56903,-203.17799)">
61
+ <image
62
+ sodipodi:absref="contributors.png"
63
+ xlink:href="contributors.png"
64
+ width="63.330666"
65
+ height="23.791332"
66
+ preserveAspectRatio="none"
67
+ id="image913"
68
+ x="192.56903"
69
+ y="203.17799" />
70
+ <image
71
+ sodipodi:absref="commits-0.11.0-0.12.0.png"
72
+ xlink:href="commits-0.11.0-0.12.0.png"
73
+ width="61.298664"
74
+ height="10.752666"
75
+ preserveAspectRatio="none"
76
+ id="image959"
77
+ x="198.97121"
78
+ y="210.83127" />
79
+ <image
80
+ sodipodi:absref="commits-0.12.0-0.13.0.png"
81
+ xlink:href="commits-0.12.0-0.13.0.png"
82
+ width="61.976002"
83
+ height="10.922"
84
+ preserveAspectRatio="none"
85
+ id="image1021"
86
+ x="206.47554"
87
+ y="219.06207" />
88
+ <rect
89
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
90
+ id="rect1024"
91
+ width="30.521566"
92
+ height="5.2916636"
93
+ x="224.88599"
94
+ y="203.71472" />
95
+ <rect
96
+ y="214.10905"
97
+ x="202.86887"
98
+ height="2.4568474"
99
+ width="18.04834"
100
+ id="rect1026"
101
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
102
+ <rect
103
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:none;fill-opacity:1;fill-rule:nonzero;stroke:#ce5c00;stroke-width:0.25;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
104
+ id="rect1028"
105
+ width="18.04834"
106
+ height="2.4568474"
107
+ x="210.42839"
108
+ y="224.78688" />
109
+ </g>
110
+ </svg>
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,291 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <!-- Created with Inkscape (http://www.inkscape.org/) -->
3
+
4
+ <svg
5
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
8
+ xmlns:svg="http://www.w3.org/2000/svg"
9
+ xmlns="http://www.w3.org/2000/svg"
10
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
11
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
12
+ width="182.15048mm"
13
+ height="125.74078mm"
14
+ viewBox="0 0 182.15048 125.74078"
15
+ version="1.1"
16
+ id="svg8"
17
+ inkscape:version="0.92.4 (5da689c313, 2019-01-14)"
18
+ sodipodi:docname="simd-null.svg">
19
+ <defs
20
+ id="defs2" />
21
+ <sodipodi:namedview
22
+ id="base"
23
+ pagecolor="#ffffff"
24
+ bordercolor="#666666"
25
+ borderopacity="1.0"
26
+ inkscape:pageopacity="0.0"
27
+ inkscape:pageshadow="2"
28
+ inkscape:zoom="0.98994949"
29
+ inkscape:cx="253.28842"
30
+ inkscape:cy="332.35173"
31
+ inkscape:document-units="mm"
32
+ inkscape:current-layer="layer1"
33
+ showgrid="false"
34
+ fit-margin-top="5"
35
+ fit-margin-left="5"
36
+ fit-margin-bottom="5"
37
+ fit-margin-right="5"
38
+ inkscape:window-width="1920"
39
+ inkscape:window-height="1016"
40
+ inkscape:window-x="0"
41
+ inkscape:window-y="27"
42
+ inkscape:window-maximized="1" />
43
+ <metadata
44
+ id="metadata5">
45
+ <rdf:RDF>
46
+ <cc:Work
47
+ rdf:about="">
48
+ <dc:format>image/svg+xml</dc:format>
49
+ <dc:type
50
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
51
+ <dc:title />
52
+ </cc:Work>
53
+ </rdf:RDF>
54
+ </metadata>
55
+ <g
56
+ inkscape:label="レイヤー 1"
57
+ inkscape:groupmode="layer"
58
+ id="layer1"
59
+ transform="translate(18.78782,-3.4599898)">
60
+ <rect
61
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
62
+ id="rect815"
63
+ width="41.015972"
64
+ height="33.886806"
65
+ x="13.229166"
66
+ y="21.455357" />
67
+ <text
68
+ xml:space="preserve"
69
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
70
+ x="-3.3676131"
71
+ y="34.808594"
72
+ id="text827"><tspan
73
+ sodipodi:role="line"
74
+ id="tspan825"
75
+ x="-3.3676131"
76
+ y="34.808594"
77
+ style="stroke-width:1">null</tspan></text>
78
+ <text
79
+ xml:space="preserve"
80
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
81
+ x="33.79007"
82
+ y="34.808594"
83
+ id="text831"><tspan
84
+ sodipodi:role="line"
85
+ id="tspan829"
86
+ x="33.79007"
87
+ y="34.808594"
88
+ style="stroke-width:1">1 0 1</tspan></text>
89
+ <text
90
+ xml:space="preserve"
91
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
92
+ x="-3.6807373"
93
+ y="49.937122"
94
+ id="text835"><tspan
95
+ sodipodi:role="line"
96
+ id="tspan833"
97
+ x="-3.6807373"
98
+ y="49.937122"
99
+ style="stroke-width:1">data</tspan></text>
100
+ <text
101
+ xml:space="preserve"
102
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
103
+ x="33.297943"
104
+ y="50.042957"
105
+ id="text839"><tspan
106
+ sodipodi:role="line"
107
+ id="tspan837"
108
+ x="35.943775"
109
+ y="50.042957"
110
+ style="stroke-width:1">1 X 3 </tspan></text>
111
+ <rect
112
+ y="21.455357"
113
+ x="86.995552"
114
+ height="33.886806"
115
+ width="41.015972"
116
+ id="rect843"
117
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
118
+ <text
119
+ id="text851"
120
+ y="34.808594"
121
+ x="107.50354"
122
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
123
+ xml:space="preserve"><tspan
124
+ style="stroke-width:1"
125
+ y="34.808594"
126
+ x="107.50354"
127
+ id="tspan849"
128
+ sodipodi:role="line">0 1 1</tspan></text>
129
+ <text
130
+ id="text855"
131
+ y="50.042957"
132
+ x="107.60938"
133
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
134
+ xml:space="preserve"><tspan
135
+ style="stroke-width:1"
136
+ y="50.042957"
137
+ x="107.60938"
138
+ id="tspan853"
139
+ sodipodi:role="line">X 2 5</tspan></text>
140
+ <text
141
+ xml:space="preserve"
142
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
143
+ x="70.829102"
144
+ y="17.364624"
145
+ id="text859"><tspan
146
+ sodipodi:role="line"
147
+ id="tspan857"
148
+ x="70.829102"
149
+ y="17.364624"
150
+ style="stroke-width:1">+</tspan></text>
151
+ <text
152
+ xml:space="preserve"
153
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
154
+ x="33.125305"
155
+ y="16.767906"
156
+ id="text863"><tspan
157
+ sodipodi:role="line"
158
+ id="tspan861"
159
+ x="33.125305"
160
+ y="16.767906"
161
+ style="stroke-width:1">[1, null, 3]</tspan></text>
162
+ <text
163
+ xml:space="preserve"
164
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
165
+ x="108.5329"
166
+ y="16.767906"
167
+ id="text867"><tspan
168
+ sodipodi:role="line"
169
+ id="tspan865"
170
+ x="108.5329"
171
+ y="16.767906"
172
+ style="stroke-width:1">[null, 2, 5]</tspan></text>
173
+ <rect
174
+ y="74.641991"
175
+ x="11.892818"
176
+ height="33.886806"
177
+ width="41.015972"
178
+ id="rect869"
179
+ style="color:#000000;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate" />
180
+ <text
181
+ id="text877"
182
+ y="87.995232"
183
+ x="32.400803"
184
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
185
+ xml:space="preserve"><tspan
186
+ style="stroke-width:1"
187
+ y="87.995232"
188
+ x="32.400803"
189
+ id="tspan875"
190
+ sodipodi:role="line">0 0 1</tspan></text>
191
+ <text
192
+ id="text885"
193
+ y="103.22959"
194
+ x="32.136223"
195
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
196
+ xml:space="preserve"><tspan
197
+ style="stroke-width:1"
198
+ y="103.22959"
199
+ x="34.782055"
200
+ id="tspan883"
201
+ sodipodi:role="line">X X 8 </tspan></text>
202
+ <text
203
+ id="text912"
204
+ y="122.74027"
205
+ x="32.48177"
206
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
207
+ xml:space="preserve"><tspan
208
+ style="stroke-width:1"
209
+ y="122.74027"
210
+ x="32.48177"
211
+ id="tspan910"
212
+ sodipodi:role="line">[null, null, 8]</tspan></text>
213
+ <path
214
+ style="fill:none;fill-rule:evenodd;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
215
+ d="M 48.643053,31.601359 H 61.887955 V 85.055264 H 48.108515"
216
+ id="path934"
217
+ inkscape:connector-curvature="0"
218
+ sodipodi:nodetypes="cccc" />
219
+ <path
220
+ style="fill:none;fill-rule:evenodd;stroke:#204a87;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
221
+ d="M 91.216399,31.601359 H 57.730217"
222
+ id="path938"
223
+ inkscape:connector-curvature="0"
224
+ sodipodi:nodetypes="cc" />
225
+ <text
226
+ xml:space="preserve"
227
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
228
+ x="19.087797"
229
+ y="69.269341"
230
+ id="text942"><tspan
231
+ sodipodi:role="line"
232
+ id="tspan940"
233
+ x="19.087797"
234
+ y="69.269341"
235
+ style="stroke-width:1">bitwise &amp;</tspan></text>
236
+ <path
237
+ style="fill:none;fill-rule:evenodd;stroke:#a40000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.00000003, 1.00000003;stroke-dashoffset:0;stroke-opacity:1"
238
+ d="M 48.380951,46.590772 H 72.004464 V 98.373511 H 49.136905"
239
+ id="path944"
240
+ inkscape:connector-curvature="0" />
241
+ <path
242
+ style="fill:none;fill-rule:evenodd;stroke:#a40000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:1.00000003, 1.00000003;stroke-dashoffset:0;stroke-opacity:1"
243
+ d="M 91.281248,46.590772 H 72.004464"
244
+ id="path946"
245
+ inkscape:connector-curvature="0"
246
+ sodipodi:nodetypes="cc" />
247
+ <text
248
+ xml:space="preserve"
249
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:start;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
250
+ x="79.452759"
251
+ y="69.093643"
252
+ id="text950"><tspan
253
+ sodipodi:role="line"
254
+ id="tspan948"
255
+ x="79.452759"
256
+ y="69.093643"
257
+ style="text-align:start;text-anchor:start;stroke-width:1">+ by SIMD</tspan><tspan
258
+ sodipodi:role="line"
259
+ x="79.452759"
260
+ y="79.887405"
261
+ style="text-align:start;text-anchor:start;stroke-width:1"
262
+ id="tspan47">including null</tspan><tspan
263
+ sodipodi:role="line"
264
+ x="79.452759"
265
+ y="90.68116"
266
+ style="text-align:start;text-anchor:start;stroke-width:1"
267
+ id="tspan954">elements</tspan></text>
268
+ <text
269
+ id="text958"
270
+ y="87.889397"
271
+ x="-3.3676131"
272
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
273
+ xml:space="preserve"><tspan
274
+ style="stroke-width:1"
275
+ y="87.889397"
276
+ x="-3.3676131"
277
+ id="tspan956"
278
+ sodipodi:role="line">null</tspan></text>
279
+ <text
280
+ id="text962"
281
+ y="103.12376"
282
+ x="-3.6807373"
283
+ style="color:#000000;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:10.58333302px;line-height:100%;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-indent:0;text-align:center;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:0px;word-spacing:0px;text-transform:none;writing-mode:lr-tb;direction:ltr;baseline-shift:baseline;text-anchor:middle;white-space:normal;clip-rule:nonzero;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:#000000;solid-opacity:1;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto;enable-background:accumulate"
284
+ xml:space="preserve"><tspan
285
+ style="stroke-width:1"
286
+ y="103.12376"
287
+ x="-3.6807373"
288
+ id="tspan960"
289
+ sodipodi:role="line">data</tspan></text>
290
+ </g>
291
+ </svg>
data/plot-0.png ADDED
Binary file
data/plot-1.png ADDED
Binary file
data/plot-2.png ADDED
Binary file
data/plot-3.png ADDED
Binary file
data/theme.rb ADDED
@@ -0,0 +1 @@
1
+ include_theme("clear-code")
metadata ADDED
@@ -0,0 +1,93 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rabbit-slide-kou-scipy-japan-2019
3
+ version: !ruby/object:Gem::Version
4
+ version: 2019.4.23.0
5
+ platform: ruby
6
+ authors:
7
+ - Kouhei Sutou
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2019-04-22 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
+ - !ruby/object:Gem::Dependency
28
+ name: rabbit-theme-clear-code
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ description: |-
42
+ Apache Arrow is the future for data processing systems. This talk
43
+ describes how to solve data sharing overhead in data processing system
44
+ such as Spark and PySpark. This talk also describes how to accelerate
45
+ computation against your large data by Apache Arrow.
46
+ email:
47
+ - kou@clear-code.com
48
+ executables: []
49
+ extensions: []
50
+ extra_rdoc_files: []
51
+ files:
52
+ - ".rabbit"
53
+ - README.rd
54
+ - Rakefile
55
+ - apache-arrow.rab
56
+ - config.yaml
57
+ - images/apache-arrow-and-me.svg
58
+ - images/commits-0.11.0-0.12.0.png
59
+ - images/commits-0.12.0-0.13.0.png
60
+ - images/contributors.png
61
+ - images/serialize-list.png
62
+ - images/simd-null.svg
63
+ - pdf/scipy-japan-2019-apache-arrow.pdf
64
+ - plot-0.png
65
+ - plot-1.png
66
+ - plot-2.png
67
+ - plot-3.png
68
+ - theme.rb
69
+ homepage: https://slide.rabbit-shocker.org/authors/kou/scipy-japan-2019/
70
+ licenses:
71
+ - CC-BY-SA-4.0
72
+ metadata: {}
73
+ post_install_message:
74
+ rdoc_options: []
75
+ require_paths:
76
+ - lib
77
+ required_ruby_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ version: '0'
82
+ required_rubygems_version: !ruby/object:Gem::Requirement
83
+ requirements:
84
+ - - ">="
85
+ - !ruby/object:Gem::Version
86
+ version: '0'
87
+ requirements: []
88
+ rubyforge_project:
89
+ rubygems_version: 2.7.6.2
90
+ signing_key:
91
+ specification_version: 4
92
+ summary: Apache Arrow - A cross-language development platform for in-memory data
93
+ test_files: []