Submit Search
Application Developer Festival 2015 LT
0 likes
•
864 views
Junpei Matsuda
Application Developer Festival 2015 LT Git & Shell script
Engineering
Read more
1 of 86
Download now
Download to read offline
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
More Related Content
PDF
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
PDF
入門 超絶技巧プログラミング !
Nobutada Matsubara
PDF
QtとC++でGUIプログラミング
seanchas_t
PPTX
USP 友の会 LT 資料 20130413
博文 斉藤
PDF
Groovy Shell Scripting 2015
Uehara Junji
PDF
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
PDF
いい加減に作ったAndroidアプリを放流したった
boiledorange73
PDF
これからのJavaScriptの話
Shogo Sensui
これからのJSの話をしよう ~jQueryで作るTwitterアプリ~ (Gunma.web #2 2010/10/9)
parrotstudio
入門 超絶技巧プログラミング !
Nobutada Matsubara
QtとC++でGUIプログラミング
seanchas_t
USP 友の会 LT 資料 20130413
博文 斉藤
Groovy Shell Scripting 2015
Uehara Junji
Groovy Bootcamp 2015 by JGGUG
Uehara Junji
いい加減に作ったAndroidアプリを放流したった
boiledorange73
これからのJavaScriptの話
Shogo Sensui
What's hot
(20)
PDF
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
PDF
Swiftのアプリ開発でハマったこと
yohei sugigami
PDF
覚醒!JavaScript
Haraguchi Go
PDF
ClojureでElectronアプリを作ろう
Kazuhiro Hara
PDF
Pythonで電卓アプリ(デスクトップ)を作成する
Jun Okazaki
PDF
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
kidach1
PDF
Programming camp 2008, Codereading
Hiro Yoshioka
PDF
Groovyの紹介20130323
Yasuharu Hayami
PDF
Pythonで画面付きのアプリを作成する
Jun Okazaki
PDF
入門ClojureScript
sohta
PDF
[Tokyo NodeFest 2015] Hardware Hacking for Javascript Developers
Tomomi Imura
PDF
Redmineを快適に使うためのおすすめ初期設定
Go Maeda
PDF
ドキュメントを直し続ける話 #kbkz_tech
Michihito Shigemura
PDF
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
PDF
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
PDF
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
PDF
Gitとちょっと仲良くなるために覚えたことまとめ
Natsumi Kashiwa
PPT
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
PDF
Bpstudy #37 djagno tips
bpstudy
PDF
ておくれないgit
rkmathi
ホームディレクトリに埋もれた便利なコードをさがせ!
Yohei Fushii
Swiftのアプリ開発でハマったこと
yohei sugigami
覚醒!JavaScript
Haraguchi Go
ClojureでElectronアプリを作ろう
Kazuhiro Hara
Pythonで電卓アプリ(デスクトップ)を作成する
Jun Okazaki
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
kidach1
Programming camp 2008, Codereading
Hiro Yoshioka
Groovyの紹介20130323
Yasuharu Hayami
Pythonで画面付きのアプリを作成する
Jun Okazaki
入門ClojureScript
sohta
[Tokyo NodeFest 2015] Hardware Hacking for Javascript Developers
Tomomi Imura
Redmineを快適に使うためのおすすめ初期設定
Go Maeda
ドキュメントを直し続ける話 #kbkz_tech
Michihito Shigemura
Ginとbindataで作るシングルバイナリWebApp
Akihiko Horiuchi
GoによるWebアプリ開発のキホン
Akihiko Horiuchi
映画にでてくるハッカーになりたい - YAPC Asia 2010
Hiroh Satoh
Gitとちょっと仲良くなるために覚えたことまとめ
Natsumi Kashiwa
20130924 Picomon CRH勉強会
Yukihiro Kitazawa
Bpstudy #37 djagno tips
bpstudy
ておくれないgit
rkmathi
Ad
Similar to Application Developer Festival 2015 LT
(20)
PDF
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
PDF
About GStreamer 1.0 application development for beginners
Shota TAMURA
ODP
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Mitsutoshi Nakano
KEY
Gitを使ってみませんか
Atsuhiro Takiguchi
PDF
Hacking Ruby with Python
Taisuke Yamada
PDF
Rのデータ構造とメモリ管理
Takeshi Arabiki
KEY
Inside frogc in Dart
Goro Fuji
PDF
Node予備校 vol.1 名古屋
Mori Shingo
PDF
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Kei IWASAKI
PDF
20130819 jjugnslt
Shinya Takebayashi
PDF
Flutterを体験してみませんか
cch-robo
PDF
Gitの使い方あれこれ
よしだ あつし
PDF
emc++ chapter32
Tatsuki SHIMIZU
PDF
Okinawa.rb 第2回勉強会
Naoki Takaesu
PDF
Metahub for github
Suguru Oho
PDF
Dive into RTS - another side
Kiwamu Okabe
PDF
JavaScript経験者のためのGo言語入門
Shohei Arai
PDF
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
PDF
とある受託ベンダの開発環境
Tomoki Hasegawa
PPT
Dsl&Builder
Uehara Junji
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
Hiroaki KOBAYASHI
About GStreamer 1.0 application development for beginners
Shota TAMURA
Chromeが落ちる問題を 追いかけていたら libgcryptのbugに出会った
Mitsutoshi Nakano
Gitを使ってみませんか
Atsuhiro Takiguchi
Hacking Ruby with Python
Taisuke Yamada
Rのデータ構造とメモリ管理
Takeshi Arabiki
Inside frogc in Dart
Goro Fuji
Node予備校 vol.1 名古屋
Mori Shingo
Cli mini Hack!#1 ~Terminalとの親睦を深めよう~
Kei IWASAKI
20130819 jjugnslt
Shinya Takebayashi
Flutterを体験してみませんか
cch-robo
Gitの使い方あれこれ
よしだ あつし
emc++ chapter32
Tatsuki SHIMIZU
Okinawa.rb 第2回勉強会
Naoki Takaesu
Metahub for github
Suguru Oho
Dive into RTS - another side
Kiwamu Okabe
JavaScript経験者のためのGo言語入門
Shohei Arai
わんくま同盟大阪勉強会#61
TATSUYA HAYAMIZU
とある受託ベンダの開発環境
Tomoki Hasegawa
Dsl&Builder
Uehara Junji
Ad
More from Junpei Matsuda
(7)
PPTX
れれれのGitおぢさん - git rerere #w8lt
Junpei Matsuda
PDF
Spring + Gradle + Kotlin W8LT#5
Junpei Matsuda
PPTX
Try to Write A Better Commit Message
Junpei Matsuda
PDF
Bashで競技プログラミング #w8lt #w8lt4
Junpei Matsuda
PDF
シェルスクリプトでQOLを上げる話
Junpei Matsuda
PDF
Kotlinで快適Android開発 #W8lt
Junpei Matsuda
PDF
PRML2.3.8~2.5 Slides in charge
Junpei Matsuda
れれれのGitおぢさん - git rerere #w8lt
Junpei Matsuda
Spring + Gradle + Kotlin W8LT#5
Junpei Matsuda
Try to Write A Better Commit Message
Junpei Matsuda
Bashで競技プログラミング #w8lt #w8lt4
Junpei Matsuda
シェルスクリプトでQOLを上げる話
Junpei Matsuda
Kotlinで快適Android開発 #W8lt
Junpei Matsuda
PRML2.3.8~2.5 Slides in charge
Junpei Matsuda
Application Developer Festival 2015 LT
1.
ADF 2015/03/28 Shell Script
2.
Who? ! 松田 ! ! 松田 淳平 @fat_daruuuuma,
jmatsu 東工大CS専攻 新M2 キッチンドリンカー、Java/kotlin、準シェル芸人、リポジトリ解析
3.
皆さん
5.
使いますよね
6.
デブは使います ※研究対象
7.
でもコマンドとか オプションとか フローとか
8.
記憶してます?
9.
Gitの コマンド数
10.
知ってます?
11.
git help
13.
23個 ・・・ん?
14.
! 有効なコマンドは git help -a・・・?
16.
見えない
17.
数えよう
18.
git help -a
¦ grep -n -e "add " -e "write-" ¦ awk 'match($1, /^[0-9]+/) {print substr($1, RSTART, RLENGTH)}' ¦ tr "n" " " ¦ awk '{print 2 * ( $2 - $1 ) - 1}'
19.
=
20.
151
21.
151個使った ことあります?
22.
てか 覚えられない
23.
組み合わせ?
24.
もぅマヂむり ( っ◞‸◟c)
25.
じゃあ
26.
楽しよう
27.
Git & Shell script
28.
夢の マリアージュ ✌( ω ✌
)三( ✌ ω )✌
29.
例えば
30.
.gitignore
31.
一々だるい
32.
そこで
33.
gibo 言語別.gitignoreをFetch
34.
さらに
35.
peco interactive grep
36.
組み合わせ
37.
gibo -l ¦
peco ̶prompt Select lang. ¦ xargs gibo >> .gitignore; ! git igにaliasしよう
38.
LICENSEも
39.
取ってこよう
41.
Github license API
42.
さらに
43.
jq cliでjsonパースできるコマンド
44.
curl -H "Accept:
application/vnd.github.drax- preview+json" -X GET https://api.github.com/ licenses ¦ jq ".[].url" ¦ peco --prompt "Select license: > " ¦ sed -e "s/"//g" ¦ xargs -J % curl - H "Accept: application/vnd.github.drax- preview+json" -X GET % ¦ jq ".body" > LICENSE git licenseで動くように。
45.
さらに
46.
Initial commit も楽にしよう
47.
普通の場合
48.
git init git remote
add origin $repo #make .gitignore #make LICENSE git add .gitignore LICENSE git commit -m This is initial commit.
49.
面倒くさい
50.
git ig; git
license; git add .gitignore LICENSE; git commit -m "This is initial commit";git remote add origin $repository_url ! でgit setup $repository_urlにalias
51.
いや待てよ
52.
Repo. URL めんどくない?
53.
これも取れば よくない?
55.
Github API
56.
my_name= github username
; curl -# -X GET https://api.github.com/users/${my_name}/ repos¦jq ".[].ssh_url"¦peco --prompt "Select repository. > " ¦ git remote add origin
57.
つまり
58.
git init; gibo
-l ¦ peco --prompt "Select lang." ¦ xargs gibo >> .gitignore; curl -# -H "Accept: application/ vnd.github.drax-preview+json" -X GET https:// api.github.com/licenses ¦ jq ".[].url" ¦ peco --prompt "Select license: > " ¦ sed -e "s/"//g" ¦ xargs -J % curl -# -H "Accept: application/vnd.github.drax-preview +json" -X GET % ¦ jq ".body" > LICENSE; git add .gitignore LICENSE; git commit -m "This is initial commit"; my_name="jmatsu"; curl -# -X GET "https://api.github.com/users/${my_name}/repos"¦ jq ".[].ssh_url"¦peco --prompt "Select repository. > " ¦ xargs -J % git remote add origin %
59.
これで楽ちん
60.
次は
61.
就活生の 皆さんへ
62.
就活といえば
63.
自己PR
64.
コミット数
65.
自慢 したくない?
66.
commit ランキング
67.
見るのは簡単
68.
git shortlog -s
̶after=yyyy/mm/dd ̶before=yyyy/mm/dd ¦ sort
69.
でも
70.
1位に なりたいよね?
71.
無理?
72.
何をしても
73.
なりたいよね?
74.
2位じゃダメ なんですか?
75.
ダメです
76.
なりましょう
77.
filter-branch ̶commit-filter
78.
&
79.
準シェル芸
80.
my_name=`git config --get
user.name`; my_email=`git config --get user.email`; start=0; while : ; do top=`git shortlog -s ¦ sort -r ¦ head -1 ¦ awk '{ $1=""; print $0}'`; [[ "$top" = "$my_name" ]] && break; git shortlog -s ¦ sort -r ¦ awk 'NR==1 ¦¦ /'"${my_name}"'/{print $1 " " $2}' ¦ tr "n" " " ¦ awk '{ print $1 - $3 " " $2 }' ¦ if read num_author ; then num=`echo $num_author ¦ awk '{print $1}'`; author_frg=`echo $num_author ¦ awk '{print $2}'`; count=`expr ( "$num" + 1 ) / 2 + "$start"`; range="HEAD ${count}..HEAD"; if [ "$start" != "0" ]; then range="${range} ${start}"; fi; git filter-branch -f --commit-filter 'if [[ "$GIT_AUTHOR_NAME" = ^'"${author_frg}"' ]]; then GIT_AUTHOR_NAME="'"${my_name}"'"; GIT_AUTHOR_EMAIL="'"${my_email}"'"; git commit-tree "$@"; else git commit-tree "$@"; fi' "${range}"; else break; done
81.
(DEMO)
82.
やったね
83.
ただし
84.
※自己責任で
85.
他にもバグ探索やら 色々できるのでぜひ
86.
Thx 4 listening.
Download