SlideShare une entreprise Scribd logo
1  sur  144
Télécharger pour lire hors ligne
/ lqez
Ladies and Gentlemen
Dear Python travelers
Ladies and Gentlemen
파이콘 한국 2017 키노트 : Back to the Basic
,
2014
2014 2015 APAC 2016 2017
,
2014
2014 2015 APAC 2016 2017
,
2014
2014 2015 APAC 2016 2017
,
2014
2014 2015 APAC 2016 2017
,
2014
2014 2015 APAC 2016 2017
,
.
,
,
.
.
.
, ,
,
.
파이콘 한국 2017 키노트 : Back to the Basic
.
파이콘 한국 2017 키노트 : Back to the Basic
.
2014 , ‘ ’
https://www.pycon.kr/2014/program/26
APAC 2016, ‘ ’
https://www.pycon.kr/2016apac/program/42
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
:
‘ ’
파이콘 한국 2017 키노트 : Back to the Basic
# built-in wave module
import wave
wr = wave.open('pep373.wav', ‘rb')
frames = wr.readframes(-1)
https://docs.python.org/3/library/wave.html
$ python waveread.py 2014.wav
Frqj?G#??6?< O?Cu???oF??WM?;E?????1*??????????p?6??
?
^???7H????m?G?????g?^?7?
??2?U?c?F????z?:???????????????k???1?0???????"?*?1?
m???????U???6?????~?????W?H??????n,5y?p???F?6
?j?q?B?q???.?d???7?????????i0????9?k????Z?????????)?
>6????
B??75Q?J?Q?????????????{???V?????k??????G?????
2'@G??;???<??????????????????????????(?.?e???D?????
%?????p?9???=???,?5?{????????C?{????@?8????(???????
p????xp[?x???|,????????0?K?Q?MVDE???[4?sy????_??"??
g?"?????????j?6???c?N?=?%?1?(??d????*?X?d?B?!?$?/?
???y?a????????????????K?C???????????????z?0?
?????8????
f?????????d???A??@pspfC(?pfn/1?l?????????8Y????7??'?
# convert string into integer list
import numpy
values = numpy.fromstring(frames, 'Int16')
https://docs.scipy.org/doc/numpy/reference/generated/
numpy.fromstring.html
$ python waveread.py 2014.wav
95
78
53
31
-2
-38
-28
5
-7
-42
-46
-50
-74
-72
-45
-36
$ python waveread.py 2014.wav
95
78
53
31
-2
-38
-28
5
-7
-42
-46
-50
-74
-72
-45
-36
$ spark 0 30 55 80 33 150
▁▂▃▅▂▇
https://github.com/holman/spark
# print peak as sparkline
import sparkline
print(
sparkline.sparkify(values).encode('utf-8')
)
https://github.com/RedKrieg/pysparklines
$ python waveform.py applause.wav
▂▁▅▄▄████▇▆▆█▇▇▇▇▆▇▇▇█▇▇▇▅▅▇▆▅▄▂▂▂▁▁▁▁▁
$ python waveform.py 2014-part1.wav
▁▃▆▆▅▅▄▆▂▁▁▁▁▁▁███▆█▆█▇█▇▅▆▄▄▃▃▁▁▁▁▇█▄▃▆▇▅▇▆▅▄▄▄▃▁▁▁▆▆
▆▅▆▄▄▃▃▄▁▁▁▅▆▆▅▅▄▆▅▅▄▂▂▁▆▇█▅▆▄▆▄▄▄▃▃▁▁▃▆▅▅▃▇▆▆▅▅▇▆▅▃▁▄
▆▇▆▅▄▆▅▆▅▄▅▁▁▆██▅▅▅▇▆▅▆▆▄▅▄▁▅▅▄▅▆▅▄▄▅▃▃▅▄▁▄▆▄▆▆▆▆▅▅▂▁▃
▆▅▆▅▅▂▂▁▁▁▁
$ python waveform.py applause.wav
▂▁▅▄▄████▇▆▆█▇▇▇▇▆▇▇▇█▇▇▇▅▅▇▆▅▄▂▂▂▁▁▁▁▁
$ python waveform.py 2014-part1.wav
▁▃▆▆▅▅▄▆▂▁▁▁▁▁▁███▆█▆█▇█▇▅▆▄▄▃▃▁▁▁▁▇█▄▃▆▇▅▇▆▅▄▄▄▃▁▁▁▆▆
▆▅▆▄▄▃▃▄▁▁▁▅▆▆▅▅▄▆▅▅▄▂▂▁▆▇█▅▆▄▆▄▄▄▃▃▁▁▃▆▅▅▃▇▆▆▅▅▇▆▅▃▁▄
▆▇▆▅▄▆▅▆▅▄▅▁▁▆██▅▅▅▇▆▅▆▆▄▅▄▁▅▅▄▅▆▅▄▄▅▃▃▅▄▁▄▆▄▆▆▆▆▅▅▂▁▃
▆▅▆▅▅▂▂▁▁▁▁
?
▅▃▆▂▄▅▅▃▅▆▃▄▂▄▄▄▆▅▄▃▃▃▅▄▅▃▂▃▁▁▁▁▁▇▇▅▆▅▅▆▅▆▅▄▃▄▄▄▂▁▁▁▁▁▁▆▆▆▄▇█▇▄▄▄▄▆▅▃▃▄▄▄▆▃▄▆▆▅▄▃▂▃▃▂▂
▂▁▁▁▁▁▁▂█▆▇▄▃▃▂▆▃▃▃▂▅▆▄▄▄▃▃▂▄▂▆▄▃▄▃▁▁▄▄▇█▅▆▅▄▄▄▃▄▃▄▄▃▅▄▃▃▃▅▆▂▆▃▁▁▁▁▁▂▂▁▂▆▇▅█▆▅▃▃▂▂▅▄▄▄
█▆▆▃▁▁▁▅▅▄▄▂▅▅▅▃▃▃▃▆▆▄▄▅▅▅▂▅▃▁▁▁█▇▅▇▅▆▆▇▅▅▄▄▃▁▁▁▁▂█▆██▅▃██▇▂▆▃▃▃▃▄▃▅▃▃▄▃▁▄▅▃▄▃▃▂▄▅▃▃▃▃
▁▁▁▅▇▆▇▆▃▃▄▄▄▄▄▁▁▁▇▇▅▆▇▅▄▄▅▅▆▃▅▃▄▆▃▅▆▅▄▁▁▁▆▆▅▃▇▄▄▆▃▃▃▂▅▂▇▃▆▄▄▅▃▃▂▄▄▅▂▁▁▄▅▅▄▄▆▂▆▅▄▆▄▄▄▅
▄▅▅▅▅▆▅▅▃▃▆▆▆▄▅▄▅▄▁▁▁▆▅▅▅▅▅▇▅▆▅▃▅▃▃▃▁▁▁▁▁▁▆▅▄█▇▆▅▅▅▆▆▅▁▁▆▅▆▆▆▄▄▄▃▂▁▁▁▅▄▅▄▅▄▄▆▅▄▄▅▅▄▆▅▃
▁▁▁▆▃▆▄▅▄▄▄▅▄▄▆▄▄▃▃▃▂▄▅▅▆▇▄▅▅▄▄▂▄▄▄▄▂▁▁▁▁▁▆▇▆▅▇▄▅▄▄▄▄▆▄▄▇▇▄▄▄▆▅▅▃▄▃▃▃▂▃▁▁▁▁▁▂▆▇▇▄▄▅▅▂▅
▄▅▅▆▅▃▃▃▂▁▁▁▁▁▆▆▅▃▂▆▅▆▇▄▃▃▃▆▇▆▄▄▅▃▃▃▄▂▁▁▃▆▄▆▄▃▃▃▄▂▄▃▂▄▁▁▁▆▇▆▆▃▁▁▁▁▁▁▆▇█▅▆▃▆▄▄▃▆▄▂▅▃▂▂▃
▅▃▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆▇▅▅▄▃▇▅▇▅▅▆▆▅▅▅▅▃▅▅▄▇▇▃▃▆▅▂▂▃▆▃▄▁▁▁▅▅▄▃▅▂▂▄▁▁▁▁▁▄█▆▄▄▅▆▅▅▅▆▃▃▅▅▃▃
▅▄▃▃▃▂▂▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▂▂▁▁▂▁▁▁▁▁▁▁▂██▇▇▅▇█▇▇▃▁▆▇▆▅▆▁▄▅▄▃▇▅▄▆▄▄▄▃▅▂▃▃▂▁▁▁▁▁▁▃█▇▇▆▅▅▂▁▁▁
▁▁▁▁▁▁▇▅▆▇█▃▁▂▁▁▁▁▁▁▁▁▁▁▄▃▄▇▆▂▁▁▂▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁▂███▆█▇▇▇▇▄▄▂▂▁▁▁▁▁▁▂██▇████▆▅▆▆▇▇▄▆▇▆
▆▄▁▁▁▆██▂▆▄▄▅▆▅▅▅▅▃▆▅▅▆▇▆▅▃▄▅▃▁▂▁▁▁▁▁█▆▅▆▄▃▃▂▆▆▅▄▃▃▄▄▂▃▁▁▁▁▁▂▃▂▄▆▄▄▄▅▂▁▁▁▁▁▆▇▂▆▃▂▂▂▁▁▁
▁▁▁▁▁▁▁▆▅▆▆▆▄▆▄▄▅▅▂▄▄▆▅▄▃▂▁▁▁▁▁▄▃▄▄▅▃▅▄▆▇▄▄▄▃▁▃▂▁▁▁▁▁▆▅▅▄▅▆▄▄▆▆▇▄▃▆▅▆▄▃▄▃▄▂▁▁▁▁▆▆▅▂▅▅▃
▃▄▃▄▄▅▄▄▇▇▄▄▃▃▂▁▁▁▃▅▂▇▅▄▄▇▇▅▂▄▅▆▅▇▂▃▄▂▂▁▁▁▁▁▂█▇██▅▅▄▅▃▆▆▆▃▃▂▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▆▇█▇▅▄▄▆▆
▆▃▂▁▁▁▇▇█▄▇▂▃▅▆▃▅▇▆▅▄▇▆▃▂▁▁▁▁▁▆▄▇▇▅▄▄▄▄▃▁▂▁▁▁▁▁▁▁▁▇▇▆▆▅▆▅▆▅▃▃▁▁▁▁▁▁▁▁▁▁█▆▇▆█▆▇▄▄▄▃▃▁▁▃
▂▁▁▁▁▁▁▁▁▁▁▁▁▂▅█▇▅▇▆▆▃▂▃▃▂▃▂▅▄▂▃▁▄▄▅▄▆▃▄▂▁▁▁▃▄▅▆▅▃▃▅▂▇▆█▄▄▅▆▇▆▇▅▅▅▆▅▄▅▂▂▂▅▁▁▁▃▄▆▄▂▁▁▁▁
▁▇██▇▇▄▄▂▁▁▁▁▆▅▆▆▅▄▄▇▂▆▂▆▅▁▁▁▁▁▁▁▅▄▄▆▄▄▄▄▃▄▃▄▃▅▅▄▅▄▄▁▁▁▁▁▁▁▁▁▁▁▁▁█▇▅▄▃▃▆▅▅▃▃▃▅▃▁▄▄▂▆▁▁
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃█▅▆▅▄▃▁█▅▄▃▆▅▄▄▅▅▆▅▃▃▄▄▄▄▄▅▅▃▁▁▄▇█▆▇▆▃▅▅▄▄▂▃▅▄▆▅▇▄▃▃▃▂▁▁▁▄▆▃▆▄▁▁▁▂▅▅▆▇
▂▄▄▅▂▁▁▁▁▁▆▆▆▆▃▆▆▃▄▄▄▂▃▃▅▅▅▄▄▄▄▄▅▅▄▄▃▃▄▁▁▂▆▂▆▄▄▄▃▂▁▃▃▃▅▄▄▃▃▁▁▇██▅▆▆▂▄▂▄▃▄▃▃▃▂▁▁▁▁▁▁▃▇▄
▆▆▅▇▆▆▃▆▆█▆▆▆▅▆▅▇▃▂▅▄▄▃▄▆▂▁▁▄▇▅█▄▅▇▅▃▃▃▃▂▁▃▄▃▂▂▃▁▁▁▁▁▁▁▃▄▃▄▄▄▁▁▁▁▁▁▁█▅▇▅▆▅▅▅▅▂▅▆▅▅▄▄▃▅
▅▆▇▅▃▃▄▄▅▄▄▄▄▄▄▁▁▁▁▁▁▁▁▅▂▁▁▁▁▂▇▇▇▆█▅▄▆▄▄▅▄▁▁▁▂▆▆▃▅▄▅▃▄▂▃▁▅▄▄▁▁▁▁▁▁▆▂▃▆▅▅▃▅▅▆▅▅▃▁▁▁▁▁▁▁
▁▁▅▆▄▄▅▃▇▇▄▂▄▅▄▄▃▃▅▅▅▃▃▄▃▄▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▁▁▅██▅█▃█▇▆█▄█▆█▇▇██▄▃▄▂▄▇▃▄▄▂▃▅▂▄▁▁▁█▅▄▃▅▄▃▅
▅▁▁▁▁▁▁▁▁▇▆▆█▅▅▅▅▅▄▅▅▅▅▄▆▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█▆▅▂▁▄▇▃▂▂▇▃▆▆▅▇█▅▃▆▇▅▂▅▆▅▅▃▃▂▆▂▄▂▁▁▁▁▁▁▁▇▇▆
▆▄▅▄▄▆▅▄▅▅▅▂▄▂▆▆▃▃▃▃▃▄▄▄▅▃▁▁▁▁▆▄▃▅▆▅▅▆▆▆▄▄▄▇▆▆▄▃▄▄▃▆▃▄▃▅▃▃▁▅▃▁▁▁▁▁▁▁▁▄▆▆▃▁▇▆▆▆▅▄▆▄▄▄▄▃
▄▄▄▃▁▁▁▆█▄▆▅▄▆▆▃▃▃▁▅▅▅▄▁▄▅▄▄▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁█▆██▄▅▅▅▅▅▅▄▅▅▄▅▅▅▄▄▅▄▆▄▄▅▃▁▁▁▁▇▇▄█▆▄▅▆▄▆▅▅
▂▃▁▁▁▁▄▆▅▃▆▄▇▅▄▅▅▄▄▄▂▁▃▇▅▇▃▄▆▆▄▅▃▃▄▄▄▃▃▃▄▅▃▄▁▁▁▁▂▅▇▆▄▃▃▃▅▂▄▄▄▃▃▃▆▅▄▄▃▆▃▃▃▂▁▁▂▅▆▅▅▆▅▄▃▄
▄▅▄▅▆▄▃▂▂▁▁▁▁▁▁▁▁▁▂█▃▆▇█▅▆▃▆▅▄▅▆▅▁▁▁▁▆▅▆▇▄▅▃█▆▄▄▃▂▄▃▃▆▃▄▄▄▃▅▃▃▄▅▄▄▄▄▅▆▂▁▁▁▆▆▅█▅▆▄▃▄▄▆▆
▃▄▃▃▄▅▃▄▃▆▅▄▃▅▅▃▃▄▂▁▁▁▁▁▁▁▁▂▆▅▅▆█▇▃▅▄▅▇▄▅▃▃▁▁▁▁▆▇▇▆▅▆▆▄▅▃▆▆▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██▇▄▅▆▅▅▄
▆▄▆▂▁▁▂▇▇▃▅▅▆▆▄▃▃▅▄▃▅▆▄▃▄▂▁▁▁▄▄▇▄▂▅▇▃▄▃▄▄▃▃▂▄▂▁▁▁▁▆▆▅▄▂▁▁▁▁▁▁▄▇▆▇▄▂▁▁▃▂▄▃▄▃▃▃▃▄▄▃▂▁▁▁▁
▂▆▄▆▄▄▅▅▄▃▄▃▃▃▁▁▁▁▁▁▁█▇█▅▁▁▁▁▁▁▁▁▁▁▅▁▁▁█▇▆▆▆▅█▇▃█▅▆▆▆▆▆▄▆▆▅▆▅▄▄▄▃▄▃▁▁▁▁▂█▅▅▂▄▅▅▃▃▂▃▄▆▆
▃▁▅▃▃▂▅▅▄▄▁▁▁▆▂▆▃▄▃▃▄▄▃▃▅▄▃▄▂▅▇▅▄▄▃▆▃▃▄▃▃▄▃▁▁▁▅▃▄▃▅▅▆▆▆▄▄▄▂▁▁▁▁▁▁▁▁▁▁▁▁▁███▆█▃▇▆██▂▅▆▆
▄█▆▆▆▆▂▁▁▁▁██▆▂▃█▇▇▆▄▅▄▁▅▃▂▁▁▁▁▁▁▇▃▆▄▄▅▇▆▅▁▃▃▅▃▃▄▄▄▃▁▁▁▂▇▃▄▅▄▅▅▄▄▄▄▃▇▂▄▅▆▆▇▇▇▂▆█▄▃▃▂▁▁
▁▁▃▅▄▄▃▆▄▄▂▄▃▄▅▄▅▄▄▅▅▅▄▃▁▁▁▁▁█▇▆▇▄▆▅▄▄▄▅▅▄▅▆▅▁▁▆▅▂▆▄▄▆▃▅▇▄▅▇▃▂▁▁▁▁▁█▅▆▆▆▆▄▆▂▄▂▅▃▁▁▁▁▁▁
▁▁▁▆▅▅▄▄▃▁▁▆██▆▇▄▆▃▅▄▆▃▃▃▃▁▅▅▄▅▅▆▇▃▃▃▃▄▃▄▆▆▆▅▅▃▄▂▁▁▅▇▆▆▅▄▃▃▄▄▂▃▂▂▁▁▁▁▁▁▁▁▅▄▅██▄▄▄▆▇▇▆▅
▅▃▆▂▄▅▅▃▅▆▃▄▂▄▄▄▆▅▄▃▃▃▅▄▅▃▂▃▁▁▁▁▁▇▇▅▆▅▅▆▅▆▅▄▃▄▄▄▂▁▁▁▁▁▁▆▆▆▄▇█▇▄▄▄▄▆▅▃▃▄▄▄▆▃▄▆▆▅▄▃▂▃▃▂▂
▂▁▁▁▁▁▁▂█▆▇▄▃▃▂▆▃▃▃▂▅▆▄▄▄▃▃▂▄▂▆▄▃▄▃▁▁▄▄▇█▅▆▅▄▄▄▃▄▃▄▄▃▅▄▃▃▃▅▆▂▆▃▁▁▁▁▁▂▂▁▂▆▇▅█▆▅▃▃▂▂▅▄▄▄
█▆▆▃▁▁▁▅▅▄▄▂▅▅▅▃▃▃▃▆▆▄▄▅▅▅▂▅▃▁▁▁█▇▅▇▅▆▆▇▅▅▄▄▃▁▁▁▁▂█▆██▅▃██▇▂▆▃▃▃▃▄▃▅▃▃▄▃▁▄▅▃▄▃▃▂▄▅▃▃▃▃
▁▁▁▅▇▆▇▆▃▃▄▄▄▄▄▁▁▁▇▇▅▆▇▅▄▄▅▅▆▃▅▃▄▆▃▅▆▅▄▁▁▁▆▆▅▃▇▄▄▆▃▃▃▂▅▂▇▃▆▄▄▅▃▃▂▄▄▅▂▁▁▄▅▅▄▄▆▂▆▅▄▆▄▄▄▅
▄▅▅▅▅▆▅▅▃▃▆▆▆▄▅▄▅▄▁▁▁▆▅▅▅▅▅▇▅▆▅▃▅▃▃▃▁▁▁▁▁▁▆▅▄█▇▆▅▅▅▆▆▅▁▁▆▅▆▆▆▄▄▄▃▂▁▁▁▅▄▅▄▅▄▄▆▅▄▄▅▅▄▆▅▃
▁▁▁▆▃▆▄▅▄▄▄▅▄▄▆▄▄▃▃▃▂▄▅▅▆▇▄▅▅▄▄▂▄▄▄▄▂▁▁▁▁▁▆▇▆▅▇▄▅▄▄▄▄▆▄▄▇▇▄▄▄▆▅▅▃▄▃▃▃▂▃▁▁▁▁▁▂▆▇▇▄▄▅▅▂▅
▄▅▅▆▅▃▃▃▂▁▁▁▁▁▆▆▅▃▂▆▅▆▇▄▃▃▃▆▇▆▄▄▅▃▃▃▄▂▁▁▃▆▄▆▄▃▃▃▄▂▄▃▂▄▁▁▁▆▇▆▆▃▁▁▁▁▁▁▆▇█▅▆▃▆▄▄▃▆▄▂▅▃▂▂▃
▅▃▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆▇▅▅▄▃▇▅▇▅▅▆▆▅▅▅▅▃▅▅▄▇▇▃▃▆▅▂▂▃▆▃▄▁▁▁▅▅▄▃▅▂▂▄▁▁▁▁▁▄█▆▄▄▅▆▅▅▅▆▃▃▅▅▃▃
▅▄▃▃▃▂▂▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▂▂▁▁▂▁▁▁▁▁▁▁▂██▇▇▅▇█▇▇▃▁▆▇▆▅▆▁▄▅▄▃▇▅▄▆▄▄▄▃▅▂▃▃▂▁▁▁▁▁▁▃█▇▇▆▅▅▂▁▁▁
▁▁▁▁▁▁▇▅▆▇█▃▁▂▁▁▁▁▁▁▁▁▁▁▄▃▄▇▆▂▁▁▂▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁▂███▆█▇▇▇▇▄▄▂▂▁▁▁▁▁▁▂██▇████▆▅▆▆▇▇▄▆▇▆
▆▄▁▁▁▆██▂▆▄▄▅▆▅▅▅▅▃▆▅▅▆▇▆▅▃▄▅▃▁▂▁▁▁▁▁█▆▅▆▄▃▃▂▆▆▅▄▃▃▄▄▂▃▁▁▁▁▁▂▃▂▄▆▄▄▄▅▂▁▁▁▁▁▆▇▂▆▃▂▂▂▁▁▁
▁▁▁▁▁▁▁▆▅▆▆▆▄▆▄▄▅▅▂▄▄▆▅▄▃▂▁▁▁▁▁▄▃▄▄▅▃▅▄▆▇▄▄▄▃▁▃▂▁▁▁▁▁▆▅▅▄▅▆▄▄▆▆▇▄▃▆▅▆▄▃▄▃▄▂▁▁▁▁▆▆▅▂▅▅▃
▃▄▃▄▄▅▄▄▇▇▄▄▃▃▂▁▁▁▃▅▂▇▅▄▄▇▇▅▂▄▅▆▅▇▂▃▄▂▂▁▁▁▁▁▂█▇██▅▅▄▅▃▆▆▆▃▃▂▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▆▇█▇▅▄▄▆▆
▆▃▂▁▁▁▇▇█▄▇▂▃▅▆▃▅▇▆▅▄▇▆▃▂▁▁▁▁▁▆▄▇▇▅▄▄▄▄▃▁▂▁▁▁▁▁▁▁▁▇▇▆▆▅▆▅▆▅▃▃▁▁▁▁▁▁▁▁▁▁█▆▇▆█▆▇▄▄▄▃▃▁▁▃
▂▁▁▁▁▁▁▁▁▁▁▁▁▂▅█▇▅▇▆▆▃▂▃▃▂▃▂▅▄▂▃▁▄▄▅▄▆▃▄▂▁▁▁▃▄▅▆▅▃▃▅▂▇▆█▄▄▅▆▇▆▇▅▅▅▆▅▄▅▂▂▂▅▁▁▁▃▄▆▄▂▁▁▁▁
▁▇██▇▇▄▄▂▁▁▁▁▆▅▆▆▅▄▄▇▂▆▂▆▅▁▁▁▁▁▁▁▅▄▄▆▄▄▄▄▃▄▃▄▃▅▅▄▅▄▄▁▁▁▁▁▁▁▁▁▁▁▁▁█▇▅▄▃▃▆▅▅▃▃▃▅▃▁▄▄▂▆▁▁
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃█▅▆▅▄▃▁█▅▄▃▆▅▄▄▅▅▆▅▃▃▄▄▄▄▄▅▅▃▁▁▄▇█▆▇▆▃▅▅▄▄▂▃▅▄▆▅▇▄▃▃▃▂▁▁▁▄▆▃▆▄▁▁▁▂▅▅▆▇
▂▄▄▅▂▁▁▁▁▁▆▆▆▆▃▆▆▃▄▄▄▂▃▃▅▅▅▄▄▄▄▄▅▅▄▄▃▃▄▁▁▂▆▂▆▄▄▄▃▂▁▃▃▃▅▄▄▃▃▁▁▇██▅▆▆▂▄▂▄▃▄▃▃▃▂▁▁▁▁▁▁▃▇▄
▆▆▅▇▆▆▃▆▆█▆▆▆▅▆▅▇▃▂▅▄▄▃▄▆▂▁▁▄▇▅█▄▅▇▅▃▃▃▃▂▁▃▄▃▂▂▃▁▁▁▁▁▁▁▃▄▃▄▄▄▁▁▁▁▁▁▁█▅▇▅▆▅▅▅▅▂▅▆▅▅▄▄▃▅
▅▆▇▅▃▃▄▄▅▄▄▄▄▄▄▁▁▁▁▁▁▁▁▅▂▁▁▁▁▂▇▇▇▆█▅▄▆▄▄▅▄▁▁▁▂▆▆▃▅▄▅▃▄▂▃▁▅▄▄▁▁▁▁▁▁▆▂▃▆▅▅▃▅▅▆▅▅▃▁▁▁▁▁▁▁
▁▁▅▆▄▄▅▃▇▇▄▂▄▅▄▄▃▃▅▅▅▃▃▄▃▄▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▁▁▅██▅█▃█▇▆█▄█▆█▇▇██▄▃▄▂▄▇▃▄▄▂▃▅▂▄▁▁▁█▅▄▃▅▄▃▅
▅▁▁▁▁▁▁▁▁▇▆▆█▅▅▅▅▅▄▅▅▅▅▄▆▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█▆▅▂▁▄▇▃▂▂▇▃▆▆▅▇█▅▃▆▇▅▂▅▆▅▅▃▃▂▆▂▄▂▁▁▁▁▁▁▁▇▇▆
▆▄▅▄▄▆▅▄▅▅▅▂▄▂▆▆▃▃▃▃▃▄▄▄▅▃▁▁▁▁▆▄▃▅▆▅▅▆▆▆▄▄▄▇▆▆▄▃▄▄▃▆▃▄▃▅▃▃▁▅▃▁▁▁▁▁▁▁▁▄▆▆▃▁▇▆▆▆▅▄▆▄▄▄▄▃
▄▄▄▃▁▁▁▆█▄▆▅▄▆▆▃▃▃▁▅▅▅▄▁▄▅▄▄▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁█▆██▄▅▅▅▅▅▅▄▅▅▄▅▅▅▄▄▅▄▆▄▄▅▃▁▁▁▁▇▇▄█▆▄▅▆▄▆▅▅
▂▃▁▁▁▁▄▆▅▃▆▄▇▅▄▅▅▄▄▄▂▁▃▇▅▇▃▄▆▆▄▅▃▃▄▄▄▃▃▃▄▅▃▄▁▁▁▁▂▅▇▆▄▃▃▃▅▂▄▄▄▃▃▃▆▅▄▄▃▆▃▃▃▂▁▁▂▅▆▅▅▆▅▄▃▄
▄▅▄▅▆▄▃▂▂▁▁▁▁▁▁▁▁▁▂█▃▆▇█▅▆▃▆▅▄▅▆▅▁▁▁▁▆▅▆▇▄▅▃█▆▄▄▃▂▄▃▃▆▃▄▄▄▃▅▃▃▄▅▄▄▄▄▅▆▂▁▁▁▆▆▅█▅▆▄▃▄▄▆▆
▃▄▃▃▄▅▃▄▃▆▅▄▃▅▅▃▃▄▂▁▁▁▁▁▁▁▁▂▆▅▅▆█▇▃▅▄▅▇▄▅▃▃▁▁▁▁▆▇▇▆▅▆▆▄▅▃▆▆▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██▇▄▅▆▅▅▄
▆▄▆▂▁▁▂▇▇▃▅▅▆▆▄▃▃▅▄▃▅▆▄▃▄▂▁▁▁▄▄▇▄▂▅▇▃▄▃▄▄▃▃▂▄▂▁▁▁▁▆▆▅▄▂▁▁▁▁▁▁▄▇▆▇▄▂▁▁▃▂▄▃▄▃▃▃▃▄▄▃▂▁▁▁▁
▂▆▄▆▄▄▅▅▄▃▄▃▃▃▁▁▁▁▁▁▁█▇█▅▁▁▁▁▁▁▁▁▁▁▅▁▁▁█▇▆▆▆▅█▇▃█▅▆▆▆▆▆▄▆▆▅▆▅▄▄▄▃▄▃▁▁▁▁▂█▅▅▂▄▅▅▃▃▂▃▄▆▆
▃▁▅▃▃▂▅▅▄▄▁▁▁▆▂▆▃▄▃▃▄▄▃▃▅▄▃▄▂▅▇▅▄▄▃▆▃▃▄▃▃▄▃▁▁▁▅▃▄▃▅▅▆▆▆▄▄▄▂▁▁▁▁▁▁▁▁▁▁▁▁▁███▆█▃▇▆██▂▅▆▆
▄█▆▆▆▆▂▁▁▁▁██▆▂▃█▇▇▆▄▅▄▁▅▃▂▁▁▁▁▁▁▇▃▆▄▄▅▇▆▅▁▃▃▅▃▃▄▄▄▃▁▁▁▂▇▃▄▅▄▅▅▄▄▄▄▃▇▂▄▅▆▆▇▇▇▂▆█▄▃▃▂▁▁
▁▁▃▅▄▄▃▆▄▄▂▄▃▄▅▄▅▄▄▅▅▅▄▃▁▁▁▁▁█▇▆▇▄▆▅▄▄▄▅▅▄▅▆▅▁▁▆▅▂▆▄▄▆▃▅▇▄▅▇▃▂▁▁▁▁▁█▅▆▆▆▆▄▆▂▄▂▅▃▁▁▁▁▁▁
▁▁▁▆▅▅▄▄▃▁▁▆██▆▇▄▆▃▅▄▆▃▃▃▃▁▅▅▄▅▅▆▇▃▃▃▃▄▃▄▆▆▆▅▅▃▄▂▁▁▅▇▆▆▅▄▃▃▄▄▂▃▂▂▁▁▁▁▁▁▁▁▅▄▅██▄▄▄▆▇▇▆▅
▅▃▆▂▄▅▅▃▅▆▃▄▂▄▄▄▆▅▄▃▃▃▅▄▅▃▂▃▁▁▁▁▁▇▇▅▆▅▅▆▅▆▅▄▃▄▄▄▂▁▁▁▁▁▁▆▆▆▄▇█▇▄▄▄▄▆▅▃▃▄▄▄▆▃▄▆▆▅▄▃▂▃▃▂▂
▂▁▁▁▁▁▁▂█▆▇▄▃▃▂▆▃▃▃▂▅▆▄▄▄▃▃▂▄▂▆▄▃▄▃▁▁▄▄▇█▅▆▅▄▄▄▃▄▃▄▄▃▅▄▃▃▃▅▆▂▆▃▁▁▁▁▁▂▂▁▂▆▇▅█▆▅▃▃▂▂▅▄▄▄
█▆▆▃▁▁▁▅▅▄▄▂▅▅▅▃▃▃▃▆▆▄▄▅▅▅▂▅▃▁▁▁█▇▅▇▅▆▆▇▅▅▄▄▃▁▁▁▁▂█▆██▅▃██▇▂▆▃▃▃▃▄▃▅▃▃▄▃▁▄▅▃▄▃▃▂▄▅▃▃▃▃
▁▁▁▅▇▆▇▆▃▃▄▄▄▄▄▁▁▁▇▇▅▆▇▅▄▄▅▅▆▃▅▃▄▆▃▅▆▅▄▁▁▁▆▆▅▃▇▄▄▆▃▃▃▂▅▂▇▃▆▄▄▅▃▃▂▄▄▅▂▁▁▄▅▅▄▄▆▂▆▅▄▆▄▄▄▅
▄▅▅▅▅▆▅▅▃▃▆▆▆▄▅▄▅▄▁▁▁▆▅▅▅▅▅▇▅▆▅▃▅▃▃▃▁▁▁▁▁▁▆▅▄█▇▆▅▅▅▆▆▅▁▁▆▅▆▆▆▄▄▄▃▂▁▁▁▅▄▅▄▅▄▄▆▅▄▄▅▅▄▆▅▃
▁▁▁▆▃▆▄▅▄▄▄▅▄▄▆▄▄▃▃▃▂▄▅▅▆▇▄▅▅▄▄▂▄▄▄▄▂▁▁▁▁▁▆▇▆▅▇▄▅▄▄▄▄▆▄▄▇▇▄▄▄▆▅▅▃▄▃▃▃▂▃▁▁▁▁▁▂▆▇▇▄▄▅▅▂▅
▄▅▅▆▅▃▃▃▂▁▁▁▁▁▆▆▅▃▂▆▅▆▇▄▃▃▃▆▇▆▄▄▅▃▃▃▄▂▁▁▃▆▄▆▄▃▃▃▄▂▄▃▂▄▁▁▁▆▇▆▆▃▁▁▁▁▁▁▆▇█▅▆▃▆▄▄▃▆▄▂▅▃▂▂▃
▅▃▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆▇▅▅▄▃▇▅▇▅▅▆▆▅▅▅▅▃▅▅▄▇▇▃▃▆▅▂▂▃▆▃▄▁▁▁▅▅▄▃▅▂▂▄▁▁▁▁▁▄█▆▄▄▅▆▅▅▅▆▃▃▅▅▃▃
▅▄▃▃▃▂▂▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▂▂▁▁▂▁▁▁▁▁▁▁▂██▇▇▅▇█▇▇▃▁▆▇▆▅▆▁▄▅▄▃▇▅▄▆▄▄▄▃▅▂▃▃▂▁▁▁▁▁▁▃█▇▇▆▅▅▂▁▁▁
▁▁▁▁▁▁▇▅▆▇█▃▁▂▁▁▁▁▁▁▁▁▁▁▄▃▄▇▆▂▁▁▂▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁▂███▆█▇▇▇▇▄▄▂▂▁▁▁▁▁▁▂██▇████▆▅▆▆▇▇▄▆▇▆
▆▄▁▁▁▆██▂▆▄▄▅▆▅▅▅▅▃▆▅▅▆▇▆▅▃▄▅▃▁▂▁▁▁▁▁█▆▅▆▄▃▃▂▆▆▅▄▃▃▄▄▂▃▁▁▁▁▁▂▃▂▄▆▄▄▄▅▂▁▁▁▁▁▆▇▂▆▃▂▂▂▁▁▁
▁▁▁▁▁▁▁▆▅▆▆▆▄▆▄▄▅▅▂▄▄▆▅▄▃▂▁▁▁▁▁▄▃▄▄▅▃▅▄▆▇▄▄▄▃▁▃▂▁▁▁▁▁▆▅▅▄▅▆▄▄▆▆▇▄▃▆▅▆▄▃▄▃▄▂▁▁▁▁▆▆▅▂▅▅▃
▃▄▃▄▄▅▄▄▇▇▄▄▃▃▂▁▁▁▃▅▂▇▅▄▄▇▇▅▂▄▅▆▅▇▂▃▄▂▂▁▁▁▁▁▂█▇██▅▅▄▅▃▆▆▆▃▃▂▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▆▇█▇▅▄▄▆▆
▆▃▂▁▁▁▇▇█▄▇▂▃▅▆▃▅▇▆▅▄▇▆▃▂▁▁▁▁▁▆▄▇▇▅▄▄▄▄▃▁▂▁▁▁▁▁▁▁▁▇▇▆▆▅▆▅▆▅▃▃▁▁▁▁▁▁▁▁▁▁█▆▇▆█▆▇▄▄▄▃▃▁▁▃
▂▁▁▁▁▁▁▁▁▁▁▁▁▂▅█▇▅▇▆▆▃▂▃▃▂▃▂▅▄▂▃▁▄▄▅▄▆▃▄▂▁▁▁▃▄▅▆▅▃▃▅▂▇▆█▄▄▅▆▇▆▇▅▅▅▆▅▄▅▂▂▂▅▁▁▁▃▄▆▄▂▁▁▁▁
▁▇██▇▇▄▄▂▁▁▁▁▆▅▆▆▅▄▄▇▂▆▂▆▅▁▁▁▁▁▁▁▅▄▄▆▄▄▄▄▃▄▃▄▃▅▅▄▅▄▄▁▁▁▁▁▁▁▁▁▁▁▁▁█▇▅▄▃▃▆▅▅▃▃▃▅▃▁▄▄▂▆▁▁
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃█▅▆▅▄▃▁█▅▄▃▆▅▄▄▅▅▆▅▃▃▄▄▄▄▄▅▅▃▁▁▄▇█▆▇▆▃▅▅▄▄▂▃▅▄▆▅▇▄▃▃▃▂▁▁▁▄▆▃▆▄▁▁▁▂▅▅▆▇
▂▄▄▅▂▁▁▁▁▁▆▆▆▆▃▆▆▃▄▄▄▂▃▃▅▅▅▄▄▄▄▄▅▅▄▄▃▃▄▁▁▂▆▂▆▄▄▄▃▂▁▃▃▃▅▄▄▃▃▁▁▇██▅▆▆▂▄▂▄▃▄▃▃▃▂▁▁▁▁▁▁▃▇▄
▆▆▅▇▆▆▃▆▆█▆▆▆▅▆▅▇▃▂▅▄▄▃▄▆▂▁▁▄▇▅█▄▅▇▅▃▃▃▃▂▁▃▄▃▂▂▃▁▁▁▁▁▁▁▃▄▃▄▄▄▁▁▁▁▁▁▁█▅▇▅▆▅▅▅▅▂▅▆▅▅▄▄▃▅
▅▆▇▅▃▃▄▄▅▄▄▄▄▄▄▁▁▁▁▁▁▁▁▅▂▁▁▁▁▂▇▇▇▆█▅▄▆▄▄▅▄▁▁▁▂▆▆▃▅▄▅▃▄▂▃▁▅▄▄▁▁▁▁▁▁▆▂▃▆▅▅▃▅▅▆▅▅▃▁▁▁▁▁▁▁
▁▁▅▆▄▄▅▃▇▇▄▂▄▅▄▄▃▃▅▅▅▃▃▄▃▄▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▁▁▅██▅█▃█▇▆█▄█▆█▇▇██▄▃▄▂▄▇▃▄▄▂▃▅▂▄▁▁▁█▅▄▃▅▄▃▅
▅▁▁▁▁▁▁▁▁▇▆▆█▅▅▅▅▅▄▅▅▅▅▄▆▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█▆▅▂▁▄▇▃▂▂▇▃▆▆▅▇█▅▃▆▇▅▂▅▆▅▅▃▃▂▆▂▄▂▁▁▁▁▁▁▁▇▇▆
▆▄▅▄▄▆▅▄▅▅▅▂▄▂▆▆▃▃▃▃▃▄▄▄▅▃▁▁▁▁▆▄▃▅▆▅▅▆▆▆▄▄▄▇▆▆▄▃▄▄▃▆▃▄▃▅▃▃▁▅▃▁▁▁▁▁▁▁▁▄▆▆▃▁▇▆▆▆▅▄▆▄▄▄▄▃
▄▄▄▃▁▁▁▆█▄▆▅▄▆▆▃▃▃▁▅▅▅▄▁▄▅▄▄▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁█▆██▄▅▅▅▅▅▅▄▅▅▄▅▅▅▄▄▅▄▆▄▄▅▃▁▁▁▁▇▇▄█▆▄▅▆▄▆▅▅
▂▃▁▁▁▁▄▆▅▃▆▄▇▅▄▅▅▄▄▄▂▁▃▇▅▇▃▄▆▆▄▅▃▃▄▄▄▃▃▃▄▅▃▄▁▁▁▁▂▅▇▆▄▃▃▃▅▂▄▄▄▃▃▃▆▅▄▄▃▆▃▃▃▂▁▁▂▅▆▅▅▆▅▄▃▄
▄▅▄▅▆▄▃▂▂▁▁▁▁▁▁▁▁▁▂█▃▆▇█▅▆▃▆▅▄▅▆▅▁▁▁▁▆▅▆▇▄▅▃█▆▄▄▃▂▄▃▃▆▃▄▄▄▃▅▃▃▄▅▄▄▄▄▅▆▂▁▁▁▆▆▅█▅▆▄▃▄▄▆▆
▃▄▃▃▄▅▃▄▃▆▅▄▃▅▅▃▃▄▂▁▁▁▁▁▁▁▁▂▆▅▅▆█▇▃▅▄▅▇▄▅▃▃▁▁▁▁▆▇▇▆▅▆▆▄▅▃▆▆▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██▇▄▅▆▅▅▄
▆▄▆▂▁▁▂▇▇▃▅▅▆▆▄▃▃▅▄▃▅▆▄▃▄▂▁▁▁▄▄▇▄▂▅▇▃▄▃▄▄▃▃▂▄▂▁▁▁▁▆▆▅▄▂▁▁▁▁▁▁▄▇▆▇▄▂▁▁▃▂▄▃▄▃▃▃▃▄▄▃▂▁▁▁▁
▂▆▄▆▄▄▅▅▄▃▄▃▃▃▁▁▁▁▁▁▁█▇█▅▁▁▁▁▁▁▁▁▁▁▅▁▁▁█▇▆▆▆▅█▇▃█▅▆▆▆▆▆▄▆▆▅▆▅▄▄▄▃▄▃▁▁▁▁▂█▅▅▂▄▅▅▃▃▂▃▄▆▆
▃▁▅▃▃▂▅▅▄▄▁▁▁▆▂▆▃▄▃▃▄▄▃▃▅▄▃▄▂▅▇▅▄▄▃▆▃▃▄▃▃▄▃▁▁▁▅▃▄▃▅▅▆▆▆▄▄▄▂▁▁▁▁▁▁▁▁▁▁▁▁▁███▆█▃▇▆██▂▅▆▆
▄█▆▆▆▆▂▁▁▁▁██▆▂▃█▇▇▆▄▅▄▁▅▃▂▁▁▁▁▁▁▇▃▆▄▄▅▇▆▅▁▃▃▅▃▃▄▄▄▃▁▁▁▂▇▃▄▅▄▅▅▄▄▄▄▃▇▂▄▅▆▆▇▇▇▂▆█▄▃▃▂▁▁
▁▁▃▅▄▄▃▆▄▄▂▄▃▄▅▄▅▄▄▅▅▅▄▃▁▁▁▁▁█▇▆▇▄▆▅▄▄▄▅▅▄▅▆▅▁▁▆▅▂▆▄▄▆▃▅▇▄▅▇▃▂▁▁▁▁▁█▅▆▆▆▆▄▆▂▄▂▅▃▁▁▁▁▁▁
▁▁▁▆▅▅▄▄▃▁▁▆██▆▇▄▆▃▅▄▆▃▃▃▃▁▅▅▄▅▅▆▇▃▃▃▃▄▃▄▆▆▆▅▅▃▄▂▁▁▅▇▆▆▅▄▃▃▄▄▂▃▂▂▁▁▁▁▁▁▁▁▅▄▅██▄▄▄▆▇▇▆▅
8 24
▅▃▆▂▄▅▅▃▅▆▃▄▂▄▄▄▆▅▄▃▃▃▅▄▅▃▂▃▁▁▁▁▁▇▇▅▆▅▅▆▅▆▅▄▃▄▄▄▂▁▁▁▁▁▁▆▆▆▄▇█▇▄▄▄▄▆▅▃▃▄▄▄▆▃▄▆▆▅▄▃▂▃▃▂▂
▂▁▁▁▁▁▁▂█▆▇▄▃▃▂▆▃▃▃▂▅▆▄▄▄▃▃▂▄▂▆▄▃▄▃▁▁▄▄▇█▅▆▅▄▄▄▃▄▃▄▄▃▅▄▃▃▃▅▆▂▆▃▁▁▁▁▁▂▂▁▂▆▇▅█▆▅▃▃▂▂▅▄▄▄
█▆▆▃▁▁▁▅▅▄▄▂▅▅▅▃▃▃▃▆▆▄▄▅▅▅▂▅▃▁▁▁█▇▅▇▅▆▆▇▅▅▄▄▃▁▁▁▁▂█▆██▅▃██▇▂▆▃▃▃▃▄▃▅▃▃▄▃▁▄▅▃▄▃▃▂▄▅▃▃▃▃
▁▁▁▅▇▆▇▆▃▃▄▄▄▄▄▁▁▁▇▇▅▆▇▅▄▄▅▅▆▃▅▃▄▆▃▅▆▅▄▁▁▁▆▆▅▃▇▄▄▆▃▃▃▂▅▂▇▃▆▄▄▅▃▃▂▄▄▅▂▁▁▄▅▅▄▄▆▂▆▅▄▆▄▄▄▅
▄▅▅▅▅▆▅▅▃▃▆▆▆▄▅▄▅▄▁▁▁▆▅▅▅▅▅▇▅▆▅▃▅▃▃▃▁▁▁▁▁▁▆▅▄█▇▆▅▅▅▆▆▅▁▁▆▅▆▆▆▄▄▄▃▂▁▁▁▅▄▅▄▅▄▄▆▅▄▄▅▅▄▆▅▃
▁▁▁▆▃▆▄▅▄▄▄▅▄▄▆▄▄▃▃▃▂▄▅▅▆▇▄▅▅▄▄▂▄▄▄▄▂▁▁▁▁▁▆▇▆▅▇▄▅▄▄▄▄▆▄▄▇▇▄▄▄▆▅▅▃▄▃▃▃▂▃▁▁▁▁▁▂▆▇▇▄▄▅▅▂▅
▄▅▅▆▅▃▃▃▂▁▁▁▁▁▆▆▅▃▂▆▅▆▇▄▃▃▃▆▇▆▄▄▅▃▃▃▄▂▁▁▃▆▄▆▄▃▃▃▄▂▄▃▂▄▁▁▁▆▇▆▆▃▁▁▁▁▁▁▆▇█▅▆▃▆▄▄▃▆▄▂▅▃▂▂▃
▅▃▁▂▂▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▆▇▅▅▄▃▇▅▇▅▅▆▆▅▅▅▅▃▅▅▄▇▇▃▃▆▅▂▂▃▆▃▄▁▁▁▅▅▄▃▅▂▂▄▁▁▁▁▁▄█▆▄▄▅▆▅▅▅▆▃▃▅▅▃▃
▅▄▃▃▃▂▂▁▁▁▁▁▁▂▂▂▂▂▂▂▂▂▂▂▁▁▂▁▁▁▁▁▁▁▂██▇▇▅▇█▇▇▃▁▆▇▆▅▆▁▄▅▄▃▇▅▄▆▄▄▄▃▅▂▃▃▂▁▁▁▁▁▁▃█▇▇▆▅▅▂▁▁▁
▁▁▁▁▁▁▇▅▆▇█▃▁▂▁▁▁▁▁▁▁▁▁▁▄▃▄▇▆▂▁▁▂▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁▂███▆█▇▇▇▇▄▄▂▂▁▁▁▁▁▁▂██▇████▆▅▆▆▇▇▄▆▇▆
▆▄▁▁▁▆██▂▆▄▄▅▆▅▅▅▅▃▆▅▅▆▇▆▅▃▄▅▃▁▂▁▁▁▁▁█▆▅▆▄▃▃▂▆▆▅▄▃▃▄▄▂▃▁▁▁▁▁▂▃▂▄▆▄▄▄▅▂▁▁▁▁▁▆▇▂▆▃▂▂▂▁▁▁
▁▁▁▁▁▁▁▆▅▆▆▆▄▆▄▄▅▅▂▄▄▆▅▄▃▂▁▁▁▁▁▄▃▄▄▅▃▅▄▆▇▄▄▄▃▁▃▂▁▁▁▁▁▆▅▅▄▅▆▄▄▆▆▇▄▃▆▅▆▄▃▄▃▄▂▁▁▁▁▆▆▅▂▅▅▃
▃▄▃▄▄▅▄▄▇▇▄▄▃▃▂▁▁▁▃▅▂▇▅▄▄▇▇▅▂▄▅▆▅▇▂▃▄▂▂▁▁▁▁▁▂█▇██▅▅▄▅▃▆▆▆▃▃▂▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆▆▇█▇▅▄▄▆▆
▆▃▂▁▁▁▇▇█▄▇▂▃▅▆▃▅▇▆▅▄▇▆▃▂▁▁▁▁▁▆▄▇▇▅▄▄▄▄▃▁▂▁▁▁▁▁▁▁▁▇▇▆▆▅▆▅▆▅▃▃▁▁▁▁▁▁▁▁▁▁█▆▇▆█▆▇▄▄▄▃▃▁▁▃
▂▁▁▁▁▁▁▁▁▁▁▁▁▂▅█▇▅▇▆▆▃▂▃▃▂▃▂▅▄▂▃▁▄▄▅▄▆▃▄▂▁▁▁▃▄▅▆▅▃▃▅▂▇▆█▄▄▅▆▇▆▇▅▅▅▆▅▄▅▂▂▂▅▁▁▁▃▄▆▄▂▁▁▁▁
▁▇██▇▇▄▄▂▁▁▁▁▆▅▆▆▅▄▄▇▂▆▂▆▅▁▁▁▁▁▁▁▅▄▄▆▄▄▄▄▃▄▃▄▃▅▅▄▅▄▄▁▁▁▁▁▁▁▁▁▁▁▁▁█▇▅▄▃▃▆▅▅▃▃▃▅▃▁▄▄▂▆▁▁
▁▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃█▅▆▅▄▃▁█▅▄▃▆▅▄▄▅▅▆▅▃▃▄▄▄▄▄▅▅▃▁▁▄▇█▆▇▆▃▅▅▄▄▂▃▅▄▆▅▇▄▃▃▃▂▁▁▁▄▆▃▆▄▁▁▁▂▅▅▆▇
▂▄▄▅▂▁▁▁▁▁▆▆▆▆▃▆▆▃▄▄▄▂▃▃▅▅▅▄▄▄▄▄▅▅▄▄▃▃▄▁▁▂▆▂▆▄▄▄▃▂▁▃▃▃▅▄▄▃▃▁▁▇██▅▆▆▂▄▂▄▃▄▃▃▃▂▁▁▁▁▁▁▃▇▄
▆▆▅▇▆▆▃▆▆█▆▆▆▅▆▅▇▃▂▅▄▄▃▄▆▂▁▁▄▇▅█▄▅▇▅▃▃▃▃▂▁▃▄▃▂▂▃▁▁▁▁▁▁▁▃▄▃▄▄▄▁▁▁▁▁▁▁█▅▇▅▆▅▅▅▅▂▅▆▅▅▄▄▃▅
▅▆▇▅▃▃▄▄▅▄▄▄▄▄▄▁▁▁▁▁▁▁▁▅▂▁▁▁▁▂▇▇▇▆█▅▄▆▄▄▅▄▁▁▁▂▆▆▃▅▄▅▃▄▂▃▁▅▄▄▁▁▁▁▁▁▆▂▃▆▅▅▃▅▅▆▅▅▃▁▁▁▁▁▁▁
▁▁▅▆▄▄▅▃▇▇▄▂▄▅▄▄▃▃▅▅▅▃▃▄▃▄▁▁▁▁▁▁▁▁▁▁▃▂▁▁▁▁▁▅██▅█▃█▇▆█▄█▆█▇▇██▄▃▄▂▄▇▃▄▄▂▃▅▂▄▁▁▁█▅▄▃▅▄▃▅
▅▁▁▁▁▁▁▁▁▇▆▆█▅▅▅▅▅▄▅▅▅▅▄▆▃▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▆█▆▅▂▁▄▇▃▂▂▇▃▆▆▅▇█▅▃▆▇▅▂▅▆▅▅▃▃▂▆▂▄▂▁▁▁▁▁▁▁▇▇▆
▆▄▅▄▄▆▅▄▅▅▅▂▄▂▆▆▃▃▃▃▃▄▄▄▅▃▁▁▁▁▆▄▃▅▆▅▅▆▆▆▄▄▄▇▆▆▄▃▄▄▃▆▃▄▃▅▃▃▁▅▃▁▁▁▁▁▁▁▁▄▆▆▃▁▇▆▆▆▅▄▆▄▄▄▄▃
▄▄▄▃▁▁▁▆█▄▆▅▄▆▆▃▃▃▁▅▅▅▄▁▄▅▄▄▄▅▅▃▁▁▁▁▁▁▁▁▁▁▁█▆██▄▅▅▅▅▅▅▄▅▅▄▅▅▅▄▄▅▄▆▄▄▅▃▁▁▁▁▇▇▄█▆▄▅▆▄▆▅▅
▂▃▁▁▁▁▄▆▅▃▆▄▇▅▄▅▅▄▄▄▂▁▃▇▅▇▃▄▆▆▄▅▃▃▄▄▄▃▃▃▄▅▃▄▁▁▁▁▂▅▇▆▄▃▃▃▅▂▄▄▄▃▃▃▆▅▄▄▃▆▃▃▃▂▁▁▂▅▆▅▅▆▅▄▃▄
▄▅▄▅▆▄▃▂▂▁▁▁▁▁▁▁▁▁▂█▃▆▇█▅▆▃▆▅▄▅▆▅▁▁▁▁▆▅▆▇▄▅▃█▆▄▄▃▂▄▃▃▆▃▄▄▄▃▅▃▃▄▅▄▄▄▄▅▆▂▁▁▁▆▆▅█▅▆▄▃▄▄▆▆
▃▄▃▃▄▅▃▄▃▆▅▄▃▅▅▃▃▄▂▁▁▁▁▁▁▁▁▂▆▅▅▆█▇▃▅▄▅▇▄▅▃▃▁▁▁▁▆▇▇▆▅▆▆▄▅▃▆▆▃▁▁▁▁▁▁▁▁▁▁▁▁▁▁▃▄▇██▇▄▅▆▅▅▄
▆▄▆▂▁▁▂▇▇▃▅▅▆▆▄▃▃▅▄▃▅▆▄▃▄▂▁▁▁▄▄▇▄▂▅▇▃▄▃▄▄▃▃▂▄▂▁▁▁▁▆▆▅▄▂▁▁▁▁▁▁▄▇▆▇▄▂▁▁▃▂▄▃▄▃▃▃▃▄▄▃▂▁▁▁▁
▂▆▄▆▄▄▅▅▄▃▄▃▃▃▁▁▁▁▁▁▁█▇█▅▁▁▁▁▁▁▁▁▁▁▅▁▁▁█▇▆▆▆▅█▇▃█▅▆▆▆▆▆▄▆▆▅▆▅▄▄▄▃▄▃▁▁▁▁▂█▅▅▂▄▅▅▃▃▂▃▄▆▆
▃▁▅▃▃▂▅▅▄▄▁▁▁▆▂▆▃▄▃▃▄▄▃▃▅▄▃▄▂▅▇▅▄▄▃▆▃▃▄▃▃▄▃▁▁▁▅▃▄▃▅▅▆▆▆▄▄▄▂▁▁▁▁▁▁▁▁▁▁▁▁▁███▆█▃▇▆██▂▅▆▆
▄█▆▆▆▆▂▁▁▁▁██▆▂▃█▇▇▆▄▅▄▁▅▃▂▁▁▁▁▁▁▇▃▆▄▄▅▇▆▅▁▃▃▅▃▃▄▄▄▃▁▁▁▂▇▃▄▅▄▅▅▄▄▄▄▃▇▂▄▅▆▆▇▇▇▂▆█▄▃▃▂▁▁
▁▁▃▅▄▄▃▆▄▄▂▄▃▄▅▄▅▄▄▅▅▅▄▃▁▁▁▁▁█▇▆▇▄▆▅▄▄▄▅▅▄▅▆▅▁▁▆▅▂▆▄▄▆▃▅▇▄▅▇▃▂▁▁▁▁▁█▅▆▆▆▆▄▆▂▄▂▅▃▁▁▁▁▁▁
▁▁▁▆▅▅▄▄▃▁▁▆██▆▇▄▆▃▅▄▆▃▃▃▃▁▅▅▄▅▅▆▇▃▃▃▃▄▃▄▆▆▆▅▅▃▄▂▁▁▅▇▆▆▅▄▃▃▄▄▂▃▂▂▁▁▁▁▁▁▁▁▅▄▅██▄▄▄▆▇▇▆▅
???
https://cloud.google.com/speech/
def transcribe_file(speech_file):
from google.cloud import speech
from google.cloud.speech import enums
from google.cloud.speech import types
client = speech.SpeechClient()
with io.open(speech_file, 'rb') as audio_file:
content = audio_file.read()
audio = types.RecognitionAudio(content=content)
config = types.RecognitionConfig(
encoding=enums.RecognitionConfig.AudioEncoding.LINEAR16,
sample_rate_hertz=44100,
language_code='ko-KR')
response = client.recognize(config, audio)
for result in response.results:
for alternative in result.alternatives:
print(u'Transcript: {}'.format(alternative.transcript))
$ python transcribe.py 2016-part1.wav
Transcript:
Transcript:
3
3
“
“
$ python waveform.py applause.wav
▂▁▅▄▄████▇▆▆█▇▇▇▇▆▇▇▇█▇▇▇▅▅▇▆▅▄▂▂▂▁▁▁▁▁
$ python transcribe.py applause.wav
$
$ python transcribe.py 2014-part1.wav
$
$ python waveform.py 2014-part1.wav
▁▃▆▆▅▅▄▆▂▁▁▁▁▁▁███▆█▆█▇█▇▅▆▄▄▃▃▁▁▁▁▇█▄▃▆▇▅▇▆▅▄▄▄▃▁▁▁▆▆
▆▅▆▄▄▃▃▄▁▁▁▅▆▆▅▅▄▆▅▅▄▂▂▁▆▇█▅▆▄▆▄▄▄▃▃▁▁▃▆▅▅▃▇▆▆▅▅▇▆▅▃▁▄
▆▇▆▅▄▆▅▆▅▄▅▁▁▆██▅▅▅▇▆▅▆▆▄▅▄▁▅▅▄▅▆▅▄▄▅▃▃▅▄▁▄▆▄▆▆▆▆▅▅▂▁▃
▆▅▆▅▅▂▂▁▁▁▁
…
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
https://goo.gl/pgEVyq
파이콘 한국 2017 키노트 : Back to the Basic
25 4
10 25
2.5
/
0.16
/
16
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
.
.
.
Code of Conduct
,
파이썬 3 얘기 지겹다
데이터 분석 ㄴㄴ
요즘 웹 프레임워크 누가 팜?
작년에 했던거 또 하네
,
.
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic


?
?
?
파이콘 한국 2017 키노트 : Back to the Basic
.
.
.
.
파이콘 한국 2017 키노트 : Back to the Basic
The Basic
Let’s
Back to
the Basic
Computer
Compute
https://en.wikipedia.org/wiki/Charles_Babbage
?
Image courtesy of Apple Inc.
Image courtesy of Verge
https://blog.naver.com/infinity71/100173053822
Image courtesy of Apple Inc.
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
계산하는	사람	
Computer
1868-1921
https://en.wikipedia.org/wiki/Henrietta_Swan_Leavitt
Human Computer
Calculator
Calculist
파이콘 한국 2017 키노트 : Back to the Basic
http://speller.cs.pusan.ac.kr/
?
http://speller.cs.pusan.ac.kr/
https://www.wordnik.com/
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
Kernel Programmer
Network Engineer
Data Analyst
Data Analyzer
파이콘 한국 2017 키노트 : Back to the Basic
.
Subversion
Git
RESTFul
GraphQL
jQuery
2016 react
Python
Rust
파이콘 한국 2017 키노트 : Back to the Basic
?
?
파이콘 한국 2017 키노트 : Back to the Basic
Programming isn’t a
“passion” or a “talent” but
a collection of acquired skills.
Programming isn’t a
“passion” or a “talent” but
a collection of acquired skills.
Jacob Kaplan-Moss, PyCon 2015
https://www.youtube.com/watch?v=hIJdFxYlEKE
?
.
https://opensource.googleblog.com/2014/03/teaching-next-generation-to-code-young.html
“
What happens when you type google.com
into your browser and press enter?
”
• The "g" key is pressed
• The "enter" key bottoms out
• Interrupt fires [NOT for USB keyboards]
• (On Windows) A WM_KEYDOWN message is sent to the app
• (On OS X) A KeyDown NSEvent is sent to the app
• (On GNU/Linux) the Xorg server listens for keycodes
• Parse URL
• Is it a URL or a search term?
• Convert non-ASCII Unicode characters in hostname
• Check HSTS list
• DNS lookup
• ARP process
• Opening of a socket
• …
https://github.com/alex/what-happens-when
파이콘 한국 2017 키노트 : Back to the Basic
Image courtesy of MOTORTREND
http://www.motortrend.com/cars/bmw/m5/2013/2013-bmw-m5-test/
Image courtesy of Reuters
http://www.cbsnews.com/news/teslas-autopilot-lets-cars-drive-change-lanes-themselves/
Image courtesy of OTTO
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
?
Batteries Included
https://docs.python.org/3/tutorial/
stdlib.html#batteries-included
.
( )
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
파이콘 한국 2017 키노트 : Back to the Basic
Python 3.6.1 (v3.6.1:69c0db5050, Mar 21 2017, 01:21:04)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more
information.
>>>
/ lqez

Contenu connexe

En vedette

개인정보 비식별화 기술 동향 및 전망
개인정보 비식별화 기술 동향 및 전망 개인정보 비식별화 기술 동향 및 전망
개인정보 비식별화 기술 동향 및 전망 Donghan Kim
 
NoSQL 동향
NoSQL 동향NoSQL 동향
NoSQL 동향NAVER D2
 
NoSQL Database
NoSQL DatabaseNoSQL Database
NoSQL DatabaseSteve Min
 
NoSQL 분석 Slamdata
NoSQL 분석 SlamdataNoSQL 분석 Slamdata
NoSQL 분석 SlamdataPikdata Inc.
 
Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins Choonghyun Yang
 
NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스Choonghyun Yang
 
정보사회학
정보사회학정보사회학
정보사회학Il-woo Lee
 
Api design for c++ ch3 pattern
Api design for c++ ch3 patternApi design for c++ ch3 pattern
Api design for c++ ch3 patternjinho park
 
Node Js와 Redis를 사용한 구조화된 데이터
Node Js와 Redis를 사용한 구조화된 데이터Node Js와 Redis를 사용한 구조화된 데이터
Node Js와 Redis를 사용한 구조화된 데이터jinho park
 
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30Donghan Kim
 
Not only sql 정리
Not only sql 정리Not only sql 정리
Not only sql 정리상봉 이
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개Wonchang Song
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개Wonchang Song
 
웨일 보안 이야기
웨일 보안 이야기웨일 보안 이야기
웨일 보안 이야기NAVER D2
 

En vedette (18)

개인정보 비식별화 기술 동향 및 전망
개인정보 비식별화 기술 동향 및 전망 개인정보 비식별화 기술 동향 및 전망
개인정보 비식별화 기술 동향 및 전망
 
NoSQL 동향
NoSQL 동향NoSQL 동향
NoSQL 동향
 
Big data
Big dataBig data
Big data
 
NoSQL Database
NoSQL DatabaseNoSQL Database
NoSQL Database
 
No sql 분산모델
No sql 분산모델No sql 분산모델
No sql 분산모델
 
NoSQL 분석 Slamdata
NoSQL 분석 SlamdataNoSQL 분석 Slamdata
NoSQL 분석 Slamdata
 
Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins Maven build for 멀티프로젝트 in jenkins
Maven build for 멀티프로젝트 in jenkins
 
NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스NoSQL distilled.그래프 데이터베이스
NoSQL distilled.그래프 데이터베이스
 
TRIZ
TRIZTRIZ
TRIZ
 
정보사회학
정보사회학정보사회학
정보사회학
 
Api design for c++ ch3 pattern
Api design for c++ ch3 patternApi design for c++ ch3 pattern
Api design for c++ ch3 pattern
 
Node Js와 Redis를 사용한 구조화된 데이터
Node Js와 Redis를 사용한 구조화된 데이터Node Js와 Redis를 사용한 구조화된 데이터
Node Js와 Redis를 사용한 구조화된 데이터
 
Git
Git Git
Git
 
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
제2회 사내기술세미나-no sql(배표용)-d-hankim-2013-4-30
 
Not only sql 정리
Not only sql 정리Not only sql 정리
Not only sql 정리
 
NoSQL 간단한 소개
NoSQL 간단한 소개NoSQL 간단한 소개
NoSQL 간단한 소개
 
RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개RPC에서 REST까지 간단한 개념소개
RPC에서 REST까지 간단한 개념소개
 
웨일 보안 이야기
웨일 보안 이야기웨일 보안 이야기
웨일 보안 이야기
 

Plus de Hyun-woo Park

2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분Hyun-woo Park
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라Hyun-woo Park
 
2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝Hyun-woo Park
 
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Hyun-woo Park
 
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 CoverallsHyun-woo Park
 
WE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYWE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYHyun-woo Park
 
Django in Production
Django in ProductionDjango in Production
Django in ProductionHyun-woo Park
 
파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기Hyun-woo Park
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSourceHyun-woo Park
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말Hyun-woo Park
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기Hyun-woo Park
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYHyun-woo Park
 
The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습Hyun-woo Park
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)Hyun-woo Park
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYHyun-woo Park
 
Using AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYUsing AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYHyun-woo Park
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모Hyun-woo Park
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08Hyun-woo Park
 

Plus de Hyun-woo Park (18)

2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분2019년에 기술 문서를 번역하는 기분
2019년에 기술 문서를 번역하는 기분
 
그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라그런데 스타트업이 뭐더라
그런데 스타트업이 뭐더라
 
2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝2016년 10월 파이썬 사용자 모임 오프닝
2016년 10월 파이썬 사용자 모임 오프닝
 
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
Tox, Travis 그리고 Codecov 로 오픈소스 생태계에 기여하기
 
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls파이썬 삼총사 : Tox, Travis 그리고 Coveralls
파이썬 삼총사 : Tox, Travis 그리고 Coveralls
 
WE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDYWE HAVE ALMOST NOTHING, SMARTSTUDY
WE HAVE ALMOST NOTHING, SMARTSTUDY
 
Django in Production
Django in ProductionDjango in Production
Django in Production
 
파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기파이콘 한국 2015 디자인 후기
파이콘 한국 2015 디자인 후기
 
Dive into OpenSource
Dive into OpenSourceDive into OpenSource
Dive into OpenSource
 
그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말그릇된 팬심의 어긋난 결말
그릇된 팬심의 어긋난 결말
 
스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기스타트업에서 기술책임자로 살아가기
스타트업에서 기술책임자로 살아가기
 
Using CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDYUsing CloudFront and S3 at SMARTSTUDY
Using CloudFront and S3 at SMARTSTUDY
 
The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습The MongoDB Strikes Back / MongoDB 의 역습
The MongoDB Strikes Back / MongoDB 의 역습
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY (English)
 
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDYWHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
WHAT / WHY / HOW WE’RE ENGINEERING AT SMARTSTUDY
 
Using AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDYUsing AWS CloudFront with S3 at SMARTSTUDY
Using AWS CloudFront with S3 at SMARTSTUDY
 
넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모넝쿨째 굴러온 김성모
넝쿨째 굴러온 김성모
 
SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08SMARTSTUDY Django 오픈 세션 2012-08
SMARTSTUDY Django 오픈 세션 2012-08
 

파이콘 한국 2017 키노트 : Back to the Basic