SlideShare a Scribd company logo
1 of 24
USP 友の会 LT (2013/04/13)




 wget と curl で
 並列ダウンロード
         斉藤 博文
           @hi_saito
           hi_saito@yk.rim.or.jp
自己紹介

 斉藤 博文
   日本 GNU AWK ユーザー会主宰
   @hi_saito
   hi_saito@yk.rim.or.jp
   Shell + AWK 最強!
サイトから画像を一括並列ダウンロード

 ひとつひとつの画像をブラウザから右クリッ
  クで保存するのは面倒ですよね。
 画像を抜き出して保存する専用アプリもある
  ようですが、「シェル芸」で十分です。
 LL だと並列ダウンロードするのに fork とか
  を使いますが、使い方が良く分からないとい
  う人もいるんじゃないでしょうか。
使うもの

 bash
 wget
   curl でも可能ですが、今回の場合には
     wget の方が便利です。
 tr
 egrep (grep)
 sort
 sed
 xargs
手順を記述してみる

1. 画像のあるサイトの HTML を落とす。
2. アトリビュートを分割する。
3. 画像を抜き出す。
4. ダブっていたら無駄なのでダブらいないよう
   にする。
5. 必要に応じて絶対 URL に変換する。
6. 並列に分割して画像を落とす。
コードにしてみる
$ wget -O - http://www.usptomo.com/   |
  tr """ "n"                        |
  egrep ".(JPG|PNG|GIF)"             |
  sort -u                             |
  sed 's|^|http://www.usptomo.com|'   |
  xargs -P0 -n1 wget


 xargs で -PN で N 並列実行ですが、-P0
  で可能な限り並列実行します。
 xargs の -nN で N 個単位で分割しますので、
  -n1 だと結果的に全て並列処理になります。
ちょっとしたコツ

 HTML からリンク先を抜き出すには tr で分
  割すると便利な場合が多いです。
 egrep は括弧でグルーピングができるので拡
  張子をまとめて記述することができます。
   もちろん、tr と egrep を awk でまとめ
    て記述することもできます。
並列分割ダウンロード

 巨大なファイルをダウンロードしたい。
 サーバーが 1 接続あたりの回線速度を制限し
  ているため十分な速度が出ていない。
 並列分割ダウンロードする OSS はあまりな
  いよね。
使うもの

 bash
 curl
   今回は wget ではなく curl が必要です。
 sed
 awk
 etc.
手順を記述してみる

1. 対象のファイルサイズを取得する。
2. サイズを分割数で割る。
3. ナンバリングして並列で落とす。
4. 親プロセスは落とし終わるまで待つ。
5. 分割したものを結合する。
対象のファイルサイズを取得
#! /bin/bash
DIV=5
URL=$1
FILE=$(basename ${URL})
PID=$$

CONTENT_LENGTH=$(curl -s --head ${URL}          |
               sed 's|r||'                     |
               awk '/^Content-Length/ {print $2}')


 curl は --head でヘッダーのみを取得でき
  ます。
サイズを分割数で割る
for i in `seq 1 ${DIV}`; do
    START_BYTE=$(echo "${CONTENT_LENGTH} 
                 / ${DIV} * (${i} - 1)" | bc)
    END_BYTE=$(echo   "${CONTENT_LENGTH} 
                 / ${DIV} * ${i} - 1" | bc)

   if [ ${i} -eq ${DIV} ]; then
       END_BYTE=${CONTENT_LENGTH}
   fi


 分割して落とす先頭バイト数と終了バイト数
  を計算します。
ナンバリングして並列で落とす
       TMP_FILE=$(printf "%d-%02d-%s" 
                  ${PID} ${i} ${FILE})

       curl -s --range ${START_BYTE}-${END_BYTE} 
            -o ${TMP_FILE} ${URL} &
done

 curl は --range で落とす範囲を指定するこ
  とができます。
落とし終わるまで待って結合
wait

cat $$-* > ${FILE}

rm -f $$-*


 wait 単独だと全ての子プロセスの終了を待ち
  ます。
USP 友の会 LT (2013/04/13)




  iPhone 用の
カレンダー壁紙を作る
         斉藤 博文
           @hi_saito
           hi_saito@yk.rim.or.jp
使うもの

 bash
   bash の記述を使っています。
 cal
 awk
 convert (ImageMagick)
cal コマンドの基本形
$ cal
       April 2013
Su   Mo Tu We Th Fr   Sa
      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


 cal コマンドは何も引数がないと今月のカレ
  ンダーを表示します。
ImageMagick で画像に変換
$ convert -font Ricty-Bold.ttf              
          -pointsize 40                     
          -fill black                       
          -draw "text 120,450 "$(cal)""   
          iphone.png calendar.png

 ImageMagick は
  日本語 TTF も扱え
  ます。
 文字列だけでなく、
  コマンドを埋め込め
  ます。
日曜日だけを抜き出す
$ cal | awk '$0=substr($0, 1, 2)'

Su

 7
14
21
28


 この awk の使い方分かりますか? アクショ
  ンがないのに表示できていますよね。
アクションレスプログラミング

 awk はパターン + アクションですよね。
 でも、アクションがない場合は '{print
   $0}' が省略されたものと見なれます。
 また、awk では基本的に代入は「真」になり
   ます。
$0=substr($0, 1, 2)

                             等価!
{
    $0 = substr($0, 1, 2);
    print $0;
}
土曜日だけを抜き出す
$ cal | awk '$0=sprintf("%20s",substr($0, 19, 2))'


                  Sa
                   6
                  13
                  20
                  27


 これもアクションレスプログラミングですね。
 ここまでくれば、あとは同じです。
最終形態
$ convert -font Ricty-Bold.ttf -pointsize 40             
  -fill black -draw "text 120,450                        
  "$(cal)""                                            
  -fill red   -draw "text 120,450                        
  "$(cal|awk '$0=substr($0, 1, 2)')""                  
  -fill blue -draw "text 120,450                         
  "$(cal|awk '$0=sprintf("%20s",substr($0,19,2))')""   
  iphone.png calendar.png


 ほらね。「シェル
  芸」でできるでしょ。
特定の日付だけを出す方法は?

 特定の日付だけを抜き出すことができれば、
   今日や国民の休日をマーキングすることもで
   きますね。
 土日と比べると複雑ですが、やってみてくだ
$ cal | awk -v day="${DAY}" -v str="@" 
   さい。
'{
     regexp = "(^| )" day "( |$)";
     $0 = gensub(regexp, "1@2", 1, $0);
}
{gsub(/[^@]/, " ")}
{sub(/@/, day)}
1'
最終的には?

 最終的には cron に crontab で登録して毎
  月 1 日に更新し、メールで iPhone に送る
  ようにすると便利です。

More Related Content

What's hot

202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20thSatoru Abe
 
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshopSatoru Abe
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011TokyoRyuichi Ueda
 
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化Kanetaka Heshiki
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasaitakara kasai
 
EmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよEmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよKiwamu Okabe
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバーemasaka
 
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…Kei Nakazawa
 
Siphone coffeemaker okayama-js-1
Siphone coffeemaker okayama-js-1Siphone coffeemaker okayama-js-1
Siphone coffeemaker okayama-js-1NISHIMOTO Keisuke
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoTsuyoshi Yamamoto
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016Kohei Hoshi
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料cryks
 
第四回 #渋谷java オープニング
第四回 #渋谷java オープニング第四回 #渋谷java オープニング
第四回 #渋谷java オープニングKazuhiro Serizawa
 

What's hot (20)

202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th202003 functiontalkinnotesknowsworkshop20th
202003 functiontalkinnotesknowsworkshop20th
 
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
202006 のの会@関数Talk 21st @function-talk-in-notesknows-workshop
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
前期講座09
前期講座09前期講座09
前期講座09
 
Fabric
FabricFabric
Fabric
 
データベース定義書とER図【勉強会資料】
データベース定義書とER図【勉強会資料】 データベース定義書とER図【勉強会資料】
データベース定義書とER図【勉強会資料】
 
カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化カーネル密度推定を用いた店舗情報の可視化
カーネル密度推定を用いた店舗情報の可視化
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasai
 
EmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよEmacsとGlossでお絵描きしてみるよ
EmacsとGlossでお絵描きしてみるよ
 
Slub alloc and free
Slub alloc and freeSlub alloc and free
Slub alloc and free
 
エコなWebサーバー
エコなWebサーバーエコなWebサーバー
エコなWebサーバー
 
Windows ✖︎ Docker
Windows ✖︎ DockerWindows ✖︎ Docker
Windows ✖︎ Docker
 
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
UnrealEngineが5日間でasm.js化できたと聞いた俺たちは…
 
Siphone coffeemaker okayama-js-1
Siphone coffeemaker okayama-js-1Siphone coffeemaker okayama-js-1
Siphone coffeemaker okayama-js-1
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
 
Hakyll
HakyllHakyll
Hakyll
 
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
サバカン屋のサバ缶はre:Inventで通用したのか&すぐに使える!最新運用ネタ #re:Port2016
 
第8回KPF発表資料
第8回KPF発表資料第8回KPF発表資料
第8回KPF発表資料
 
第四回 #渋谷java オープニング
第四回 #渋谷java オープニング第四回 #渋谷java オープニング
第四回 #渋谷java オープニング
 
MongoDBの使い方
MongoDBの使い方MongoDBの使い方
MongoDBの使い方
 

Viewers also liked

分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案Keisuke Umeno
 
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Ryuichi Ueda
 
Bashで競技プログラミング #w8lt #w8lt4
Bashで競技プログラミング #w8lt #w8lt4Bashで競技プログラミング #w8lt #w8lt4
Bashで競技プログラミング #w8lt #w8lt4Junpei Matsuda
 
競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?Shota Tsukamoto
 
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!Ryuichi Ueda
 
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)Yoshitake Takata
 
Medier i en digital verden 150922
Medier i en digital verden 150922Medier i en digital verden 150922
Medier i en digital verden 150922Stale Lindblad
 
Trabajo colaborativo list
Trabajo colaborativo listTrabajo colaborativo list
Trabajo colaborativo listKaterin Colcha
 
PHP 7 Crash Course
PHP 7 Crash CoursePHP 7 Crash Course
PHP 7 Crash CourseColin O'Dell
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in ChinaSeungmin Shin
 
Creatividad o mal gusto de los japoneses.
Creatividad o mal gusto de los japoneses.Creatividad o mal gusto de los japoneses.
Creatividad o mal gusto de los japoneses.Emilio Gil (unjubilado)
 
CANENERO Advertising - Gilberto Chiacchiera
CANENERO Advertising - Gilberto ChiacchieraCANENERO Advertising - Gilberto Chiacchiera
CANENERO Advertising - Gilberto Chiacchierabnioceanoblu
 
eTwinning og medieleg i dagtilbud
eTwinning og medieleg i dagtilbudeTwinning og medieleg i dagtilbud
eTwinning og medieleg i dagtilbudClaus Berg
 
Business Analytics with R
Business Analytics with RBusiness Analytics with R
Business Analytics with REdureka!
 
社会学意识,人类学意识与每日人类学观察
社会学意识,人类学意识与每日人类学观察社会学意识,人类学意识与每日人类学观察
社会学意识,人类学意识与每日人类学观察Zafka Zhang
 
最高の自分に進化する方法【コンサル起業実践講座】
最高の自分に進化する方法【コンサル起業実践講座】最高の自分に進化する方法【コンサル起業実践講座】
最高の自分に進化する方法【コンサル起業実践講座】伊藤 剛志
 

Viewers also liked (20)

分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案分散メモリ環境におけるシェルスクリプトの高速化手法の提案
分散メモリ環境におけるシェルスクリプトの高速化手法の提案
 
Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日Linux女子部勉強会 2012年4月21日
Linux女子部勉強会 2012年4月21日
 
Bashで競技プログラミング #w8lt #w8lt4
Bashで競技プログラミング #w8lt #w8lt4Bashで競技プログラミング #w8lt #w8lt4
Bashで競技プログラミング #w8lt #w8lt4
 
競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?競プロ、なんでお前たちやらないの?
競プロ、なんでお前たちやらないの?
 
電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!電子工作で光で動くロボットをつくろう!
電子工作で光で動くロボットをつくろう!
 
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)
WebブラウザでOpen usp Tukubaiを体験してみよう!(2014/02/15 第9回シェル芸勉強会 & 第27回USP友の会定例会)
 
Medier i en digital verden 150922
Medier i en digital verden 150922Medier i en digital verden 150922
Medier i en digital verden 150922
 
Trabajo colaborativo list
Trabajo colaborativo listTrabajo colaborativo list
Trabajo colaborativo list
 
Digital Marketing
Digital MarketingDigital Marketing
Digital Marketing
 
PHP 7 Crash Course
PHP 7 Crash CoursePHP 7 Crash Course
PHP 7 Crash Course
 
[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China[KGC 2013] Online Game Security in China
[KGC 2013] Online Game Security in China
 
Creatividad o mal gusto de los japoneses.
Creatividad o mal gusto de los japoneses.Creatividad o mal gusto de los japoneses.
Creatividad o mal gusto de los japoneses.
 
CANENERO Advertising - Gilberto Chiacchiera
CANENERO Advertising - Gilberto ChiacchieraCANENERO Advertising - Gilberto Chiacchiera
CANENERO Advertising - Gilberto Chiacchiera
 
Casa Duplex
Casa DuplexCasa Duplex
Casa Duplex
 
eTwinning og medieleg i dagtilbud
eTwinning og medieleg i dagtilbudeTwinning og medieleg i dagtilbud
eTwinning og medieleg i dagtilbud
 
Business Analytics with R
Business Analytics with RBusiness Analytics with R
Business Analytics with R
 
Lucy redes sociales myspace
Lucy redes sociales myspaceLucy redes sociales myspace
Lucy redes sociales myspace
 
社会学意识,人类学意识与每日人类学观察
社会学意识,人类学意识与每日人类学观察社会学意识,人类学意识与每日人类学观察
社会学意识,人类学意识与每日人类学观察
 
Shepherd Elementary School Community Meeting Flyer
Shepherd Elementary School Community Meeting FlyerShepherd Elementary School Community Meeting Flyer
Shepherd Elementary School Community Meeting Flyer
 
最高の自分に進化する方法【コンサル起業実践講座】
最高の自分に進化する方法【コンサル起業実践講座】最高の自分に進化する方法【コンサル起業実践講座】
最高の自分に進化する方法【コンサル起業実践講座】
 

Similar to USP 友の会 LT 資料 20130413

メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRubyemasaka
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情takezoe
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -Hayato Mizuno
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2Nishida Kansuke
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~Kazuya Wada
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索Akio Ishida
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップYasuhito Yabe
 
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かきNishida Kansuke
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Sea Mountain
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみたTakahiro Hidaka
 
Libido driven development Shibuya.pm tech talk #8
Libido driven development Shibuya.pm tech talk #8Libido driven development Shibuya.pm tech talk #8
Libido driven development Shibuya.pm tech talk #8Yusuke Wada
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Satoshi Noto
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発papamitra
 

Similar to USP 友の会 LT 資料 20130413 (20)

scala-kaigi1-sbt
scala-kaigi1-sbtscala-kaigi1-sbt
scala-kaigi1-sbt
 
メタメタプログラミングRuby
メタメタプログラミングRubyメタメタプログラミングRuby
メタメタプログラミングRuby
 
イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情イマドキの現場で使えるJavaライブラリ事情
イマドキの現場で使えるJavaライブラリ事情
 
jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -jQuery Performance Tips – jQueryにおける高速化 -
jQuery Performance Tips – jQueryにおける高速化 -
 
⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2⑯jQueryをおぼえよう!その2
⑯jQueryをおぼえよう!その2
 
RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~RでつくるWebアプリ~rApache編~
RでつくるWebアプリ~rApache編~
 
textsearch_jaで全文検索
textsearch_jaで全文検索textsearch_jaで全文検索
textsearch_jaで全文検索
 
「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ「html5 boilerplate」から考える、これからのマークアップ
「html5 boilerplate」から考える、これからのマークアップ
 
㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき㉗HTML5+jQueryでお絵かき
㉗HTML5+jQueryでお絵かき
 
ScalaCL in ScalaKaigi
ScalaCL in ScalaKaigiScalaCL in ScalaKaigi
ScalaCL in ScalaKaigi
 
Tokyo r33 beginner
Tokyo r33 beginnerTokyo r33 beginner
Tokyo r33 beginner
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3Ruby on Rails3 Tutorial Chapter3
Ruby on Rails3 Tutorial Chapter3
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
Rails3.1rc4を試してみた
Rails3.1rc4を試してみたRails3.1rc4を試してみた
Rails3.1rc4を試してみた
 
Libido driven development Shibuya.pm tech talk #8
Libido driven development Shibuya.pm tech talk #8Libido driven development Shibuya.pm tech talk #8
Libido driven development Shibuya.pm tech talk #8
 
Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?Run Spark on EMRってどんな仕組みになってるの?
Run Spark on EMRってどんな仕組みになってるの?
 
ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発ScalaでAndroidアプリ開発
ScalaでAndroidアプリ開発
 

More from 博文 斉藤

Obsidian Talk JP 資料 - 2021-10-15
Obsidian Talk JP 資料 - 2021-10-15Obsidian Talk JP 資料 - 2021-10-15
Obsidian Talk JP 資料 - 2021-10-15博文 斉藤
 
 Obsidian Talk JP - Template & Daily notes - 2021-09-04
 Obsidian Talk JP - Template & Daily notes - 2021-09-04 Obsidian Talk JP - Template & Daily notes - 2021-09-04
 Obsidian Talk JP - Template & Daily notes - 2021-09-04博文 斉藤
 
Markdown で行こう!
Markdown で行こう!Markdown で行こう!
Markdown で行こう!博文 斉藤
 
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料博文 斉藤
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」博文 斉藤
 
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」博文 斉藤
 
「やっちまったぁ!」を防ごう!
「やっちまったぁ!」を防ごう!「やっちまったぁ!」を防ごう!
「やっちまったぁ!」を防ごう!博文 斉藤
 
Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう博文 斉藤
 
curl で iPhone にプッシュ通知しよう
curl で iPhone にプッシュ通知しようcurl で iPhone にプッシュ通知しよう
curl で iPhone にプッシュ通知しよう博文 斉藤
 
Usptomonokai 20111028
Usptomonokai 20111028Usptomonokai 20111028
Usptomonokai 20111028博文 斉藤
 
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall博文 斉藤
 
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall博文 斉藤
 
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall博文 斉藤
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理博文 斉藤
 

More from 博文 斉藤 (14)

Obsidian Talk JP 資料 - 2021-10-15
Obsidian Talk JP 資料 - 2021-10-15Obsidian Talk JP 資料 - 2021-10-15
Obsidian Talk JP 資料 - 2021-10-15
 
 Obsidian Talk JP - Template & Daily notes - 2021-09-04
 Obsidian Talk JP - Template & Daily notes - 2021-09-04 Obsidian Talk JP - Template & Daily notes - 2021-09-04
 Obsidian Talk JP - Template & Daily notes - 2021-09-04
 
Markdown で行こう!
Markdown で行こう!Markdown で行こう!
Markdown で行こう!
 
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
OSC・シェルのプロが語る『make を使ったデータ処理。』 【make 教】 - OSC2015 Tokyo/Spring 発表資料
 
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
シェルスクリプトワークショップ資料 - 上級者向け「シェル芸」
 
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
シェルスクリプトワークショップ資料 - 初心者向け「シェル芸」
 
「やっちまったぁ!」を防ごう!
「やっちまったぁ!」を防ごう!「やっちまったぁ!」を防ごう!
「やっちまったぁ!」を防ごう!
 
Shell で制限付き並列処理をしよう
Shell で制限付き並列処理をしようShell で制限付き並列処理をしよう
Shell で制限付き並列処理をしよう
 
curl で iPhone にプッシュ通知しよう
curl で iPhone にプッシュ通知しようcurl で iPhone にプッシュ通知しよう
curl で iPhone にプッシュ通知しよう
 
Usptomonokai 20111028
Usptomonokai 20111028Usptomonokai 20111028
Usptomonokai 20111028
 
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会チラシ - OSC2012 Tokyo/Fall
 
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
 
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 1 - OSC2012 Tokyo/Fall
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
 

USP 友の会 LT 資料 20130413