SlideShare a Scribd company logo
1 of 14
Download to read offline
Kyoto.pm	
  #4	
  もくもく会	
  
      発表資料	
        2013/3/30	
  	
  
         kiyotune
自己紹介(id:	
  kiyotune)	
•  新大阪のマイコン系ソフトウェア開発の会社に勤務す
   る会社員です。	
•  マイコン系の会社なのになぜか業務でWebアプリ
   (CakePHP+PostgreSQL)作ってるぼっちのWebプログラ
   マ(自称)です。	
  
•  C言語からPerlまで広く薄くやってきました。最初の開
   発環境はWin95+VB4+Jet	
  Database	
  Engineでした。SQL
   をごりごり書くお仕事でした。	
  
•  最近はPHPと仲が良いですがPerlも好きです。何でも
   食べます。好き嫌いよくない。	
  
•  エディタは主にVimを使っています。Emacsは小指と薬
   指で挫折しました。	
  
 
      【小ネタその1】	
  
  殺伐とした黒い画面に癒しを!	
  
            Bash編

             	
•  コンソール画面寂しい	
  
•  Vimでshで戻ったときとqで終了したときの区別が
   つかなくて(忘れて)でターミナル終了してしまう
   のをどうにかしたい 	
  
•  いつも同じデータが表示されるのはつまんない。
   設定されたデータからランダムに表示させたい	
  
•  以前作っていた物に1X1さんの記事を参考に
   データ追加	
  
              (実行例)	
  
h"ps://github.com/kiyotune/my_logo	

•  	
  bashでデータを配列として扱うの大変かと
   思ってたら意外と簡単で拍子抜けだった	
  
•  ポイントは環境変数『IFS』“内部フィールド区
   切り文字列” (Internal	
  Field	
  Separator)	
  
•  AA=(テキストファイルパス)で、IFSに設定され
   た文字を区切り文字としてテキストファイルの
   データを分割して変数AAに格納する。	
  
•  配列の要素数は${#AA[*]}で取得可能	
  
Q#1:	
  で?	
•  A1:	
  コンソールを開くのが楽しみになった。	
  
•  A2:	
  vimでshで抜けたときにも表示されるので、sh
   で抜けるのが楽しくなった。間違ってコンソール
   画面を終了するミスが少なくなった。	
  
•  A3:	
  本当はログインメッセージの類は/etc/motd
   で書くのが本流なんだろうけど、管理者権限がな
   いと書き換えられないので…。	
  
•  A4:	
  scpコマンドでエラーが起きていてお蔵入りし
   かけたけど解決方法が見つかってよかった。	
  
•  なんでbashなのか(Perlじゃないのか)>「そこに
   山があるから」	
  
【小ネタ#2】	
  
   『とびだせ どうぶつの森』	
  
  カフェの客の好み検索ツール	
•  カフェのアルバイトで客のコーヒーの好みを
   分厚い攻略本でその都度子供に調べさせら
   れるのがめんどくさかったので作成。	
  
•  動物の名前をひらがなで入力すると、『コー
   ヒーの種類』『ミルク』『砂糖』の分量がインクリ
   メンタルサーチでさくっと出てくる!便利!	
  
h"ps://github.com/kiyotune/butumori_cafe	
•  [data.txt]	
  客の好みが記載されたタブ区切りのテ
   キストファイル。最初の検索処理の際にまるっと
   memcachedサーバーに読み込まれる	
  
•  [data.pl]	
  キーワード(名前)に部分一致するデー
   タをJSON形式で返す。一度ヒットしたデータは
   memcachedサーバーに保存しておいて再利用
   (これでだいぶ高速化された)	
  
•  [search.js]	
  検索のトリガやdata.plから受け取った
   結果(JSON)を表示	
  
•  検索実行のトリガーやviewへの表示をjQueryを
   使ったおかげで画面遷移のない動的な検索機
   能が実装できたのでいろいろ応用ができそう	
  
#2:実際の例	
  
  h"p://cocka;el-­‐cage.info/butumori/café/	
                                                            インクリメンタルサーチON/OFF可↓	




                                             →	




<meta	
  name=“viewport”	
  content=“width=device-­‐width,	
  inijal-­‐scale=1…	
  
で、お手軽iPhone対応!
Q#2:	
  ユーザーの反応は?	
•  A1:	
  主なユーザーはムスメ2号(6歳)。ひらがなだと問
   題なく読めるので入力は問題ない。リリース(家庭内)
   直後は積極的に使ってくれて不具合洗い出してくれた。	
  
•  A2:	
  テキストボックスでiPhone組み込みのKBが
   “にゅっ”っと出てくるのが嫌(画面が狭くなる)で、50音
   のソフトウェアKBの機能追加を行ったが、反能薄。す
   でにフリック入力&携帯打ちをマスターしていることも
   原因の一つ。ユーザーニーズの読み間違い。	
  
•  A3:	
  ムスメ1号(8歳)は攻略本が体の一部と貸してい
   る(狙った項目が一発で引ける)こともあって最初から
   それほどの興味なし。結構苦労したのに…。	
  
【小ネタ#3】	
  
   TCP/UDPサービスポートデータ	
  
          検索ツール	
•  TCP/UDP等のポート番号のネタ元を調べててIANAの
   文書を見つけたものの、あまりに重いXMLファイルで
   役に立たないのでXMLデータのパースの勉強もかね
   て作成	
  
•  サービス名(hnpとかsshとか)とポート番号双方での検
   索が可能	
  
•  ネタ元(クリック危険):
   hnp://www.iana.org/assignments/service-­‐names-­‐port-­‐
   numbers/service-­‐names-­‐port-­‐numbers.xml	
  	
  
h"ps://github.com/kiyotune/portnumbers	
•  基本的な実装方法は“小ネタ#2”と同じ	
  
•  ただし、元のデータ(service-­‐names-­‐port-­‐
   numbers.xml)が巨大なのでその都度ファイル
   を読みにいくと速度が遅くなる。また、不定期
   に更新されるので、更新されているかどうか
   のチェックが必要	
  
•  そこで、HTTP::Requestでヘッダーだけ取得し
   て更新日時をチェック、memcachedサーバー
   に保存されている更新日時より新しい場合の
   みファイルをダウンロードし、枝刈りしたデー
   タをmemcachedサーバーに保存している	
  
#3:実際の例	
  
h"p://cocka;el-­‐cage.info/portnumbers/
Q#3:こんなツールつくって何が楽しいの?	

•  A1:	
  IANAの中の人のお仕事お疲れさまの意
   味を込めて。せっかく作ったデータに何のリア
   クションもないと寂しいだろうし。	
  
•  A2:	
  思いもかけないキーワードでポート番号
   が出てきて楽しい。	
  
•  A3:	
  エセ鯖管やってると「あのサービスポート
   番号何だっけ?」ということがたまにあってそ
   んなときに便利
以上!

More Related Content

Similar to Kyotopm発表資料20130330

5回目Java script構文
5回目Java script構文5回目Java script構文
5回目Java script構文
Takuya Shishido
 

Similar to Kyotopm発表資料20130330 (20)

『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆『こなへん』ができるまで ☆リリース直前編☆
『こなへん』ができるまで ☆リリース直前編☆
 
第0回プログラミング講座
第0回プログラミング講座第0回プログラミング講座
第0回プログラミング講座
 
ハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶハードウェアを用いてPythonを学ぶ
ハードウェアを用いてPythonを学ぶ
 
とある Perl Monger の働き方
とある Perl Monger の働き方とある Perl Monger の働き方
とある Perl Monger の働き方
 
シス研下級生向け
シス研下級生向けシス研下級生向け
シス研下級生向け
 
5回目Java script構文
5回目Java script構文5回目Java script構文
5回目Java script構文
 
楽しいプログラミング
楽しいプログラミング楽しいプログラミング
楽しいプログラミング
 
PasteHub at kansai emacs 9th
PasteHub at kansai emacs 9thPasteHub at kansai emacs 9th
PasteHub at kansai emacs 9th
 
C#erがF#に這い寄ってみた
C#erがF#に這い寄ってみたC#erがF#に這い寄ってみた
C#erがF#に這い寄ってみた
 
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
 
Emscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョンEmscriptenと不思議のダンジョン
Emscriptenと不思議のダンジョン
 
技術者なら Kindle でしょ
技術者なら Kindle でしょ技術者なら Kindle でしょ
技術者なら Kindle でしょ
 
1画面1Storyboardのススメ
1画面1Storyboardのススメ1画面1Storyboardのススメ
1画面1Storyboardのススメ
 
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
組み込み向けC++のやり方を探る - mbedで楽しい組み込みプログラミング -
 
Weekend Androidのススメ
Weekend AndroidのススメWeekend Androidのススメ
Weekend Androidのススメ
 
第2回 IT講座 ゲームを作るって?
第2回 IT講座 ゲームを作るって?第2回 IT講座 ゲームを作るって?
第2回 IT講座 ゲームを作るって?
 
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一デザイナー・コーダーのための黒い画面入門 先生:和田 修一
デザイナー・コーダーのための黒い画面入門 先生:和田 修一
 
デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門デザイナー・コーダーのための黒い画面入門
デザイナー・コーダーのための黒い画面入門
 
20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf20121019-jenkins-akiko_pusu.pdf
20121019-jenkins-akiko_pusu.pdf
 
ゲームデザインについて
ゲームデザインについてゲームデザインについて
ゲームデザインについて
 

Kyotopm発表資料20130330

  • 1. Kyoto.pm  #4  もくもく会   発表資料 2013/3/30     kiyotune
  • 2. 自己紹介(id:  kiyotune) •  新大阪のマイコン系ソフトウェア開発の会社に勤務す る会社員です。 •  マイコン系の会社なのになぜか業務でWebアプリ (CakePHP+PostgreSQL)作ってるぼっちのWebプログラ マ(自称)です。   •  C言語からPerlまで広く薄くやってきました。最初の開 発環境はWin95+VB4+Jet  Database  Engineでした。SQL をごりごり書くお仕事でした。   •  最近はPHPと仲が良いですがPerlも好きです。何でも 食べます。好き嫌いよくない。   •  エディタは主にVimを使っています。Emacsは小指と薬 指で挫折しました。  
  • 3.   【小ネタその1】   殺伐とした黒い画面に癒しを!   Bash編
 •  コンソール画面寂しい   •  Vimでshで戻ったときとqで終了したときの区別が つかなくて(忘れて)でターミナル終了してしまう のをどうにかしたい   •  いつも同じデータが表示されるのはつまんない。 設定されたデータからランダムに表示させたい   •  以前作っていた物に1X1さんの記事を参考に データ追加   (実行例)  
  • 4. h"ps://github.com/kiyotune/my_logo •   bashでデータを配列として扱うの大変かと 思ってたら意外と簡単で拍子抜けだった   •  ポイントは環境変数『IFS』“内部フィールド区 切り文字列” (Internal  Field  Separator)   •  AA=(テキストファイルパス)で、IFSに設定され た文字を区切り文字としてテキストファイルの データを分割して変数AAに格納する。   •  配列の要素数は${#AA[*]}で取得可能  
  • 5. Q#1:  で? •  A1:  コンソールを開くのが楽しみになった。   •  A2:  vimでshで抜けたときにも表示されるので、sh で抜けるのが楽しくなった。間違ってコンソール 画面を終了するミスが少なくなった。   •  A3:  本当はログインメッセージの類は/etc/motd で書くのが本流なんだろうけど、管理者権限がな いと書き換えられないので…。   •  A4:  scpコマンドでエラーが起きていてお蔵入りし かけたけど解決方法が見つかってよかった。   •  なんでbashなのか(Perlじゃないのか)>「そこに 山があるから」  
  • 6. 【小ネタ#2】   『とびだせ どうぶつの森』   カフェの客の好み検索ツール •  カフェのアルバイトで客のコーヒーの好みを 分厚い攻略本でその都度子供に調べさせら れるのがめんどくさかったので作成。   •  動物の名前をひらがなで入力すると、『コー ヒーの種類』『ミルク』『砂糖』の分量がインクリ メンタルサーチでさくっと出てくる!便利!  
  • 7. h"ps://github.com/kiyotune/butumori_cafe •  [data.txt]  客の好みが記載されたタブ区切りのテ キストファイル。最初の検索処理の際にまるっと memcachedサーバーに読み込まれる   •  [data.pl]  キーワード(名前)に部分一致するデー タをJSON形式で返す。一度ヒットしたデータは memcachedサーバーに保存しておいて再利用 (これでだいぶ高速化された)   •  [search.js]  検索のトリガやdata.plから受け取った 結果(JSON)を表示   •  検索実行のトリガーやviewへの表示をjQueryを 使ったおかげで画面遷移のない動的な検索機 能が実装できたのでいろいろ応用ができそう  
  • 8. #2:実際の例   h"p://cocka;el-­‐cage.info/butumori/café/ インクリメンタルサーチON/OFF可↓ → <meta  name=“viewport”  content=“width=device-­‐width,  inijal-­‐scale=1…   で、お手軽iPhone対応!
  • 9. Q#2:  ユーザーの反応は? •  A1:  主なユーザーはムスメ2号(6歳)。ひらがなだと問 題なく読めるので入力は問題ない。リリース(家庭内) 直後は積極的に使ってくれて不具合洗い出してくれた。   •  A2:  テキストボックスでiPhone組み込みのKBが “にゅっ”っと出てくるのが嫌(画面が狭くなる)で、50音 のソフトウェアKBの機能追加を行ったが、反能薄。す でにフリック入力&携帯打ちをマスターしていることも 原因の一つ。ユーザーニーズの読み間違い。   •  A3:  ムスメ1号(8歳)は攻略本が体の一部と貸してい る(狙った項目が一発で引ける)こともあって最初から それほどの興味なし。結構苦労したのに…。  
  • 10. 【小ネタ#3】   TCP/UDPサービスポートデータ   検索ツール •  TCP/UDP等のポート番号のネタ元を調べててIANAの 文書を見つけたものの、あまりに重いXMLファイルで 役に立たないのでXMLデータのパースの勉強もかね て作成   •  サービス名(hnpとかsshとか)とポート番号双方での検 索が可能   •  ネタ元(クリック危険): hnp://www.iana.org/assignments/service-­‐names-­‐port-­‐ numbers/service-­‐names-­‐port-­‐numbers.xml    
  • 11. h"ps://github.com/kiyotune/portnumbers •  基本的な実装方法は“小ネタ#2”と同じ   •  ただし、元のデータ(service-­‐names-­‐port-­‐ numbers.xml)が巨大なのでその都度ファイル を読みにいくと速度が遅くなる。また、不定期 に更新されるので、更新されているかどうか のチェックが必要   •  そこで、HTTP::Requestでヘッダーだけ取得し て更新日時をチェック、memcachedサーバー に保存されている更新日時より新しい場合の みファイルをダウンロードし、枝刈りしたデー タをmemcachedサーバーに保存している  
  • 13. Q#3:こんなツールつくって何が楽しいの? •  A1:  IANAの中の人のお仕事お疲れさまの意 味を込めて。せっかく作ったデータに何のリア クションもないと寂しいだろうし。   •  A2:  思いもかけないキーワードでポート番号 が出てきて楽しい。   •  A3:  エセ鯖管やってると「あのサービスポート 番号何だっけ?」ということがたまにあってそ んなときに便利