福野泰介の一日一創 - create every day

自学の罠、ペアプログラミングのススメとちょっと便利な手元辞書づくり

2018/07/03
#python 

元ホワイトハッカーな友達、あみるとペアプログラミング。
得意なwebアプリ&SPARQLと、あまり触らないサーバーサイドの知識。
1台のPCを2人で使う、ペアプログラミング形式でトレード。

無数に存在し、日々世界中の開発者によって進化するソフトウェアという道具。
慣れているがゆえの罠は、ちょっとの不便が日常化してしまうこと。
便利なツールがないかと探す手前で、毎日少しずつ、時間ロスを積み重ねていることになる。

ペアプログラミングという共同作業で、明らかになるちょっと便利。
それならこうするともっと便利、これを使うと楽、こんな方法もあるよ、など。
教わるだけでなく、教えられることもあり、なかなかおもしろい体験。

伝授してもらったエンジアリングツール
軽量仮想環境 docker
便利と噂の iTerm2
高速ウィンドウ整理 ShiftIt
クリップボードマネージャー Flycut
PCパスワードで保存パスワードは確認できちゃう(再発行手間を省く) Chrome
DvorakユーザーとQwertyユーザーがペアプロするためのドングル QIDO

そこまで困ってないからこそ、その場でコミュニケーションしながら最速の学習時間で導入できることにメリットあり。

ちょっとした不満、やり過ごさないために、前々から思っていたすばやく使える手元英和辞書を作成。


dict - コマンドラインから英単語を入れると、ヒットする項目を日本語と共に表示するツール

手元辞書 dict 作り方
1. オープンソースな辞書を検索。(マッシュアップ可能なライセンスの英語辞書(フリー辞書)
2. ライセンスが、CC BY SA EDRDG の辞書に決定
3. ダウンロードしてみる JMdict-EDICT Dictionary Project 内の "JMdict_e.gz - the JMdict file with only English glosses"
4. 中身は巨大な1ファイルのXMLと確認

<entry> <ent_seq>2836190</ent_seq> <k_ele> <keb>北京原人</keb> </k_ele> <r_ele> <reb>ペキンげんじん</reb> </r_ele> <sense> <pos>&n;</pos> <gloss>Peking man (Homo erectus pekinensis)</gloss> </sense> </entry>

5. Python3でプログラムを書く

# coding: utf-8 import sys from xml.etree.ElementTree import * key = sys.argv[1] print("keyword: " + key) tree = parse("JMdict_e") ele = tree.getroot() cnt = 0 hit = 0 for e in ele.getiterator("entry"): s = e.find(".//gloss").text if key in s: ja = e.find(".//keb") if ja != None: print(ja.text) else: ja = e.find(".//reb") if ja != None: print(ja.text) print(s) hit += 1 cnt += 1 print("hit: " + str(hit) + " / " + str(cnt))

6. 使える!便利!
高速化や、辞書を拡充する機能、しゃべらせる機能などは必要に応じてつくる、お楽しみにとっておく。

ペアプログラミング、ハッカソンなどのイベントから実践してみると良さそう。
凄腕ハッカーに、ザザっとアセスメントしてもらうサービスもありかも。

自学は大事、でも、その罠を認識することもまた大事。
うまくハマれば、大いに時間を創り出してくれるのが、ツール。
お気に入りの道具、シェアしましょう!

Tweet
クリエイティブ・コモンズ・ライセンス
この作品は「Creative Commons — CC BY 4.0」の下に提供されています。
CC BY 福野泰介 - Taisuke Fukuno / @taisukef / アイコン画像 / プロフィール画像