読者です 読者をやめる 読者になる 読者になる

君たちは永遠にそいつらより若い

技術と音楽と日々のこと。

pipのlistとfreezeの違い

諸事情で最近Pythonってます。

現在インストールされているパッケージをpipで表示する際、listfreezeをどっちを使うか、違いが分かりにくかったので解説。

結論から先に行っておくと、今インストール済みのパッケージを確認したいだけならどっちでもいい。けど、freezeの方がよく使うので、こっちで覚えておいたら良いと思います。

pip list [options]

Description:
  List installed packages, including editables.

List Options:
  -o, --outdated              List outdated packages (excluding editables)
  -u, --uptodate              List uptodate packages (excluding editables)
  -e, --editable              List editable projects.
  -l, --local                 If in a virtualenv that has global access, do not list globally-installed packages.
  --pre                       Include pre-release and development versions. By default, pip only finds stable versions.
  • 開発版を含む、インストール済みのパッケージリストの表示(直訳)
  • 更新可能なバージョン、最新バージョン、開発バージョン(editable install)などの切り口で表示可能
  • pip自身や、setuptoolsなどのパッケージ管理ツールも一緒に表示される
$ pip list
closure-linter (2.3.13)
pip (1.5.6)
python-gflags (2.0)
setuptools (7.0)
vboxapi (1.0)
virtualenv (12.0.7)
wsgiref (0.1.2)

pip freeze [options]

Description:
  Output installed packages in requirements format.

Freeze Options:
  -r, --requirement <file>    Use the order in the given requirements file and it's comments when generating output.
  -f, --find-links <url>      URL for finding packages, which will be added to the output.
  -l, --local                 If in a virtualenv that has global access, do not output globally-installed packages.
  • インストール済みのパッケージを必要とされるフォーマットで出力(直訳)
  • 出力したパッケージリストをテキストファイルで保存しておくと、install -rを使ってパッケージを全部インストールできる(この用途でよく使う)
$ pip freeze > packages.txt
$ pip install -r packages.txt
  • pip自身や、setuptoolsなどのパッケージ管理ツールは表示されない(ので、listと結果が違う)
$ pip freeze
closure-linter==2.3.13
python-gflags==2.0
vboxapi==1.0
virtualenv==12.0.7
wsgiref==0.1.2

おまけ

各パッケージの詳細情報を知りたいときは、pip showです。

$ pip show virtualenv
---
Name: virtualenv
Version: 12.0.7
Location: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages
Requires: 

DB設計のときによく使いそうな最大長(maximum length)まとめ

DB設計のときに、あー最大長何文字だっけ。これ国際基準よね?となることがあるので記録。


思いついたら追記していく。

成田空港と羽田空港を間違えて深夜に大移動した人の話

経由地も含め、飛行機の出発空港以外の条件が全て同じだったので、帰りも同じ空港だとうっかり勘違いして成田に着いてしまった(やっちまったw)。取るべき行動や移動手段の比較をまとめとく。深夜で羽田までの電車もバスも限られていて、いやな汗を書いた。

  • Index
    • 概算見積もり
    • 移動手段の比較
    • 移動しつつ、航空会社に連絡

概算見積もり

  • チェックイン終了まで
    • 数十分: 間に合わないから、宿と新しいチケットについて考えよう。
    • 1時間: 3万円出して、今すぐタクシーに乗る。
    • 1.5時間〜: タクシー代に怯むようなら次項の移動手段の比較を見て考える。

移動手段の比較

  • タクシー: 1時間(3万円程度)※深夜料金
  • 直通バス: 1時間(3000円程度)
    • 羽田→成田: 最終18:10
    • 成田→羽田: 最終21:25
    • 時刻表
  • バス+タクシー: 1時間20分(1万円程度)
    • バス(成田→東京駅): 1時間(1000〜3000円程度)
    • タクシー(東京駅→羽田): 20分(8000円程度)※深夜料金
  • 電車: 2時間(2000円程度)
    • 羽田→成田: 最終22:00くらい
    • 成田→羽田: 最終19:30くらい

移動しつつ、航空会社に連絡

移動しながら、航空会社へ電話連絡して、最終チェックイン時間の確認と時間交渉をする。交渉によっては最終チェックイン時間を過ぎても、搭乗30分前くらいまで待ってくれることがある。

深夜で電話が繋がらない場合は、各航空会社の国際電話24時間窓口か、空港の24時間窓口に電話する。

このとき、バスタクシー乗り場から該当チェックインカウンターへの辿り着き方も聞いておくと、降りた瞬間に全速力で走れる。

まとめ

  • 空港はよく確認しましょう^^
  • いざというときのために、各連絡先はメモしておきましょう
  • 3万積めば、1時間で成田羽田間を移動できます(渋滞が無ければ)

僕は、今回バス+タクシーを使って最終チェックイン時間10分前についたけど、渋滞してたらアウトでした。皆さんもパスポートだけでなく出発空港にも気をつけて!!!!!

Google spreadsheet でたくさんの単語を一括翻訳しながら英語を勉強する話

ボキャブラリー不足…!

日頃、社員のみんなと英語で会話していて、ある程度聞き取れていてもボキャブラリーの不足により知らない単語の部分が「ぺらぺーらぺーら」と聴こえてしまいます。やはりボキャブラリーが不足していると思い知る日々…!

そのように思い知ってから、会話していて、ドキュメントを読んでいて、小説を読んでいて、分からなかった単語を spreadsheet にまとめて、復習するようにしています。ただ、実施にあたって一点問題がありました。

手作業で翻訳すんのめんどくせー!

んですよ。というのも「英語→日本語→脳内イメージ」ではなくて、「英語→脳内イメージ」ができるようにしたいという目論見があるので、一語に対して、以下のような項目を用意しようとしていたのです。

  • わかんなかった単語
  • わかんなかった文脈
  • 英英辞書での要約
  • 英英辞書への詳細リンク
  • 日本語訳(どうしても思い出せないとき用)

一列やってみて、「あ、めんどくさ。もうやめたい^^」と思いました。めんどくさいことは、人の手でやるべきではないですね。

自動的に複数単語をまとめて翻訳

しましょうー。

f:id:kuteken:20150118032347p:plain

まず、APIで取ってきたいものをリスティングし、それぞれイーカンジのAPIを探します。検討した結果以下がよさそうでした。

英英辞書での要約

spreadsheetのimportxml関数で直接インポートしたいので、登録がいらなくて、無料で、GETで叩けて、xmlでデータが出力できるAPIを選びたい。しかし、Google Dictionary APIGoogle Translate API に代替わりして有料化してしまったので、辞書のAPIは Glosbe を使うことにします。

Glosbe のデータインポートは以下のような式でやっています。xmlデータにIDが無いので XPath の通し方が強引になっていてつらい。

=importxml("https://glosbe.com/gapi/translate?from=en&dest=eng&format=xml&phrase="&B2&"&pretty=true", "string(//string[text()='meanings']/following-sibling::list/map/entry/string[2])")

英英辞書への詳細リンク

これは簡単。URL繋げてるだけ。

="http://dictionary.cambridge.org/dictionary/british/"&B2

日本語訳

これは、感動しました。素晴らしいことに spreadsheet には、GOOGLETRANSLATE関数があるので、言語ペアを指定してあげるだけです。

=GOOGLETRANSLATE(B2, "en", "ja")

完成!

それでは、出来たものがこちらになります。B列に単語を入れると、Loading と表示された後に関連セルが翻訳で埋まります。

Bulk translation - Google スプレッドシート

上記ファイルは編集できないようにしているので、使いたい場合は「ファイル->コピーを作成」でコピーして、お手元でご利用ください。


なにかしらコードを書くかと思っていたけど、spreadsheet 関数で完結してしまいました。ふぁー、これで翻訳にかける時間が100分の1くらいになって幸せになれるはずです。

日々の積み上げは裏切らないはず。みなさんも良い英語ライフを。

世界の境界が消え、越境されることへの恐怖

この記事は DevLove AdventCalendar 2014「越境」 の記事です。

昨日は、ひろみつさんの 異なる音楽ジャンルのファンの文化について考えていたら越境のヒントがあるような気がした - Mitsu.log(); でした。

こんにちは。ベトナムの某開発会社でエンジニアをしています。くてけんです。

これまでは渋谷の某ベンチャーで小〜大規模サービスの要件定義、設計、開発、運営改善などなど諸々手広くやらせていただいていましたが、今年「ベトナム(越!)」への転職をし、ベトナムに移住致しました。ちなみに、これからの気概を大きく語るよりも、結果が出てから報告する方が好きなので、お前何やってんのという話は時が来たらやります。

今日は少し角度を変えて、僕が越境した理由の一つの「越境されることへの恐怖」についてお話しします。はじまりはじまり。

よし、東南アジアにいこう

20代のうちに色んな世界に触れておきたいと思って、有給を貯めまくって、年に一度くらいドカンと海外旅行に行くようにしていました。お陰さまで多分7カ国ぐらい行けてます。「若く価値観が固まらないうちに、3つ以上の国を見なさい。2つだけでは、どちらが特異なのかわからない。3つ以上あれば、座標が打ちやすくなる。」大昔、社会科学の恩師のかどぴょんもこんなことを言っていた気がします。

アメリカ、ヨーロッパとふらふらしたので、次はアフリカ、南米、アジアだなと考えました。洞窟キャンプに行きたかったこともあり、今年は東南アジアを選択しました。

いわゆる、発展途上国へ足を踏み入れるのは、初めてで期待と不安が混じる中、無事お腹を壊すことも無く、楽しく旅を続けていました。

恐るべきエネルギー、恐るべきスピード感

データでは知ってはいましたが、旅をしている中で東南アジアのエネルギーを肌で感じました。欧米の旅とは全く異なる感覚でした。

とにかく、作って壊すスピードか早い。前日には何もなかったところに、すぐに店ができ、同様にすぐに店が消え、街の新陳代謝のスピードが尋常ではない。実際に目の当たりにすると、変化のスピードに戦きます。

そして、若い人たちが賢い。想像していた以上に、みんな賢い。若い人たちは、よく勉強していて、記憶力も非常に良く、論理的に話せる。更に英語のレベルも高く、しれっと「日本語は3ヶ月で覚えた」と言います。

更に、子どもが多い。それもそのはず、ベトナム人の平均年齢は日本の20歳ほど下の27歳前後で、まだまだこれから計り知れないポテンシャルを持っています。

世界の境界が消え、越境されることへの恐怖

僕は、彼らに可能性を感じると同時に、日本がやばいやつや!!と恐怖を感じました。

「越境」とは、「境界」がある前提の言葉です。僕のいるIT業界は物理的制約が小さく、世界中で「境界」自体がどんどん無くなり、容易に越境されるようになってきます。

これから数十年の僕たちは、少子高齢化で縮小していくであろう日本マーケットだけではなく、世界を相手にするようになる。今はまだ経験を積んだ僕たちに分がありますが、彼らはそのエネルギーとスピード感を持って、今に僕たちのライバルになる。そのとき、僕たちはスペシャリストや、上手い合成役になっていなくては、ぬくぬくと生きているとあっという間にあのエネルギーに食われてしまう。そんなことをひしひしと一時情報として感じてしまったのでした。

それから

そういった東南アジアでの体験と、その他諸々の理由を合成して、僕は東京で積み上げた生活を引き払い、軌道に乗り出していたバンドにも頭を下げ、海の外へ越境しました。そして、これまでと異なった経験を積み、国際的な越境耐性を付けることにしたのでした。

ある人にとっては、苦痛かもしれない毎日ですが、僕にとっては刺激的で楽しく成長できる毎日です。送り出してくれた人たちのためにも、境界の存在しない世界でも通用する人間になれるよう頑張ります。


ちなみに、海外で働く関連で以下のアドベントカレンダーを作ってみたりしました。興味がある方はどーぞ。(埋まってないから書いてくれてもいいんですよ…!)

僕が寄稿した記事はこのへん。

ベトナムの勉強会イベント Barcamp Saigon 2014 に行ってきました - 君たちは永遠にそいつらより若い

ベトナムの生活環境とかの話 - 君たちは永遠にそいつらより若い

いつか海外で働きたいと妄想している高専生へ - 君たちは永遠にそいつらより若い

明日は、VoQnさんです。おたのしみに!

ベトナムの勉強会イベント Barcamp Saigon 2014 に行ってきました

この記事は、海外で働くエンジニア(or Webの人) Advent Calendar 2014 - Adventar の20日目の記事です。

※書く人がたりてないので、海外勤務経験のある方、是非!

こんにちは。ベトナムの某開発会社でITエンジニアとして働いています、くてけんです。同僚に紹介してもらって、Barcamp Saigon 2014 に行ってきました。Barcamp とは、ユーザ発カンファレンスの国際的ネットワークで、今回はそれのホーチミン版です。カルチャーショックがあって楽しかったよ!

f:id:kuteken:20141221014439p:plain

事前登録・受付

チケットサイトで事前登録をして、チケットをゲット。スマートフォンにバーコードを表示して、受付でバーコードリーダーで読み取ってもらいます。

http://ticketbox.vn/event/barcamp-saigon-2014-15517

f:id:kuteken:20141214085743j:plain

会場・人数規模

会場は、ホーチミンの中心街、バックパッカー通りの近くの HOA SEN大学。近代的なビルが一棟まるごと大学になっていました。

f:id:kuteken:20141214130054j:plain

参加者は、4〜500人くらい?ITエンジニアではなく、営業っぽい人や英語の先生などもぽろぽろいた。

f:id:kuteken:20141214101146j:plain

プログラム・タイムスケジュール

会場は10教室、発表枠は合計70枠ほど。事前にトピックだけが発表され、当日朝のユーザ投票によって、発表会場及び順番が徐々に決まっていきます。

http://www.barcampsaigon.org/topics-barcamp-saigon-2014/

f:id:kuteken:20141214090534j:plain

イベント専用のスマートフォンアプリとgoogle spreadsheet のURL が配布されているので、それを見ながら教室を移動します。

f:id:kuteken:20141221014657p:plain

このイベントで一番驚いたことは、

演者が会場に現れず、20〜30%ほどの発表がキャンセルになる

ことw ファジーすぎるwww でも、気にしない!ここはベトナム! 計画は全く立てられないので、開始時間10分過ぎて演者が来なければ、キャンセルの御布令が出るので演者がいそうな教室に入ることを繰り返します。

発表

まず、言語。各発表者の発表言語は、プログラムに書いてあります。スライドはほぼ全ての発表で英語、スピーキングベトナム語と英語が半々くらいです。発表者は80%ベトナム人で、20%が欧米人くらいかな。みんな英語がわかるので、英語プレゼンでも通訳は付いていません。僕は、ベトナム語である時点で何言ってるか分からないので、英語のプレゼンを中心に見て行きました。

うっかりベトナム語の発表に当たってもスライドが英語なら何となく分かるので助かりました。外国人の立場になって強く認識しましたが、きっと日本のカンファレンスにきた外国人は、スライドもスピーキングも日本語だと、「お前らなんで英語で書かねぇの、まじわかんないから」と思ってるのでしょうね…。日本語で全て発表していると、言語という壁に阻まれて、世界から断絶されて行きそうだ。もったいない。

f:id:kuteken:20141214093719j:plain

発表ジャンルは、教育10%、デザイン10%、マーケティング10%、起業30%、技術40%くらい。テック中心のイベントですが、色々なジャンルの発表があります。ベトナム人は起業精神に溢れているので、起業系や意識改革系の発表が多く感じました。題目は、例えばこんな感じ。

"Building your data-driven business with reactive big data tools”(ビッグデータツールを使用したデータ駆動ビジネスの構築)

"Drone, Ruồi và máy in 3D”(ドローンや3Dプリンタの紹介)

"A robot game to teach programming for kids”(ロボットゲームをつかった子どものためのプログラミング教育)

"Business tools for startups”(スタートアップのためのビジネスツール)

"Phalcon Framework”(Phalcon フレームワーク)

"Is the universe endless or not? What are the universe's possible endings?”(宇宙に終わりはあるのか)

気になる最終的なプログラムはこちら。(ここに書かれている以上に発表キャンセルされてます!)

https://docs.google.com/spreadsheet/ccc?key=0AuhgSjnIGa2VdHlBM2JjakNPQmJaQWlwWmp2OWFfQ3c&usp=sharing#gid=0

近年の日本のカンファレンスでは、サービス運営時のノウハウなど突っ込んだ発表が多いですが、そういった発表は少なく、紹介に留まる発表が多い印象でした。きっとこれから数年でどんどん変わって行くはず。

f:id:kuteken:20141214094724j:plain

f:id:kuteken:20141214112500j:plain

Fab組の自作3Dプリンタ、自作ドローン、自作のすごいプランターの持ち込みもありました。

f:id:kuteken:20141214150234j:plain

f:id:kuteken:20141214142823j:plain

お楽しみ要素

日本での発表会と同様に、質問するとTシャツ、マグカップ、ナップサックなどが貰えました。かわいい!未使用、未開封のはずなのに染みやベタベタする汚れが付いていたりしますが、気にしない!ここはベトナム

f:id:kuteken:20141221015408j:plain

3時くらいになるとティータイムがあり、コーヒーとパンとフルーツが配布され、30分ほどくつろげました!(写真撮るの忘れた)

スポンサーブースで色々ミニイベントが開催されていましたが、カンファレンスで一番大きく取り上げられていたイベントが Mac book Air をかけた Hack 大会でした!彼らからすると Mac book Air は給料3ヶ月分の高級品なので盛り上がらないはずがない。スポンサーは、ベトナムのメルカリ的フリマアプリChoTotさん (このアプリのUIイケてます。僕はこれでバイク購入)でした。

http://challenge.barcampsaigon.org/

f:id:kuteken:20141214090722j:plain

おわりに

一番おもしろかったのは、TOMO さんという日系アメリカ人のこのスライド。めっちゃうけた。

f:id:kuteken:20141214160044j:plain

おしまい。

ベトナムの生活環境とかの話

この記事は、海外で働くエンジニア(or Webの人) Advent Calendar 2014 - Adventar の13日目の記事です。

※書く人がたりてないので、海外勤務経験のある方、是非!

こんにちは。ベトナムの某開発会社でITエンジニアとして働いています、くてけんです。 人に依って感じ方は違うと思いますが、僕個人の感覚でのベトナムの生活環境やら生活費の話です。

お金

まず、ベトナムは、貨幣の単位が「ドン」です。1円がざっくり200ドンほどなので、5000円なら100万ドンくらい。桁が多く分かりにくいです。そのため、以降わかりやすくドル単位で書いています。

金銭感覚としては、ベトナム人の大卒の初任給が$300くらい。 現地採用の外国人は、$1500-2500くらいがよくあるレンジになると思います。色々です。

言語

母国語はベトナム語です。ホーチミンは、外国人旅行者や外国人労働者が多いので、比較的英語が通じます。東京よりもずっと通じる度合いも場所も多いと思いますし、若い人(ちなみにベトナムは国民平均年齢27歳、日本は45歳くらいです)は大体英語がしゃべれます。ベトナム訛りの英語は語尾が消える&独自のベトナム語っぽい発音をする英語です。ただ田舎にいったり、年齢層が高くなると全く通じません。

ベトナム語は母音が11個、声調が6個もあるので、日本人が習得するのはかなり厳しいと思います…!よく使う言葉だけ覚えれば生きて行けます。困ったときは、英語のできる友達に通訳と交渉を頼みます。

気候

ホーチミンは、年中あったかいです。平均気温数値は8月の東京くらいですが、体感値は、7月の東京くらいに感じます。暑すぎない。雨期には夕方にバケツをひっくり返したようなスコールが降って、郊外では道路が軽く海になることもあります。

治安

スリひったくりに気をつければ、重犯罪は少なく比較的安全です。夜にバイクの女の子が一人でATMでお金を下ろしているのをみるくらい。深夜はあんまり出歩かないからわかんないです。道端で気を抜くとバイクでスマートフォンを盗られるので、それには特に注意すべき。

乞食は、ほろほろいますが、腕を掴んだり群がってきたりという強引さはなく、さり気ない範疇です。(逆にカンボジアは、押しがすごかった。)

公共交通機関

バイク大国です。マイバイクがないと生きるのがつらい。普通のバイクなら、中古で$300〜1000くらいで買えます。みんな平気で、逆走、歩道走行、信号無視、無免許、飲酒運転をするファジーな国です。

バイクがない人は、$0.2くらいのバスをつかったり、$1〜(要交渉)のバイクタクシーに乗ったり、初乗り$0.7くらいでタクシーに乗れます。

外国人料金

この街には外国人料金の名残があり、たまーに現地の人の倍くらい払う場合があります。ぼったくりではないので、交渉してもNG。表向きには政府の二重価格制度は撤廃されたのですが、名残が残っている場合があるようです。

もちろん、ぼったくりもありますが、物の値段がよくわかっていない相手に対してです。在住者の空気を出しながら、適正価格を言えば、その値段で買えます。

住居

色々です。例えば、中心部に近いエリアで一人暮らしの場合。人とシェアしたりすると、$100/月で住めるかもしれませんが、$300〜500くらいで掃除洗濯付きのローカルのサービスアパートメントに住むのが普通かなという感覚です。ただ、この場合、日本語は通じなかったりします。日本人向けのきっちりしたジムやプールや色々付いてるサービスアパートメントは、$1000〜1500くらいらしい。

食生活

ソフトな味つけが多く、日本人向きの国だと思います。露店がたくさんあります。ローカル店だと、朝は1食$0.5〜1くらい。昼や晩は、$1〜2くらい。ビールは$0.5くらいで飲めます。たまに日本食を食べると$4〜くらい。

パクチー王国なので、香草が苦手だと、厳しいシーンもあるかも。ただ、僕は嫌いなものがパクチーでしたが、こっちにきて食べていると平気になってしまいました。慣れって恐い。

f:id:kuteken:20141213180600j:plain

医療

ベトナム語の医者にかかる限りは、数ドルかもしれませんが、日本語英語が通じるところに行くと風邪でも数100ドルを覚悟。医療レベルはそんなに高くないので、大きい手術をする場合はタイに行くことが多いみたいです。旅行保険をかけてくることをお勧めします。

働き方

みんなちゃんと帰ります。仕事が終わらなければ残業することもありますが、基本帰ります。

勉強会

http://meetup.com/http://ticketbox.vn/ で、コミュニティに参加したり、身内で集まって勉強会してるみたいです。明日は、とても大きい技術系イベントに行く予定。言語の壁はあるだろうけど、楽しみ。

コミュニケーション

とにかくみんなよく笑うし、よくキレるし、おせっかい!感情表現がとても素直で、笑うと素直に笑い返しくれます。そして、困っているオーラを出していたら、寄ってたかって助けてくれるのが面白い。靴やらバイクやらが壊れたら道ばたのおっちゃんが「ちょっと待て」とハンドサインをして助けてくれたり、交通事故が起こったときは十数人がわーっと一瞬で集まって手当や現場の処理をしたりします。

人と人の距離もとても近いです。男同士でカフェで横に座ったり、しがみついたり、寝るときに体を枕にしあったりしても、なんら他意は無い。

フランス統治時代の名残の文化で歩けば割とおしゃれなカフェに当たるので、みんなでコーヒーを飲みながら語りあっています。また、喫煙者の多い国でもあるので、たばこを吸いながらのコミュニケーションもあります。フットサルをしたり、公園でギターを弾いたり、社交ダンスをしたり、太極拳みたいなのをしたり、カラオケやビリヤード、ツーリングをしているみたいです。

例えば、今日は、みんなで公園で地べたに新聞を敷いてコーヒーを飲んでダベったあと、ゲーセンでテーブルサッカーをして(ゲーセンは、1コイン$0.2くらい)、飯を食いに行きました。そんなかんじ。

f:id:kuteken:20141213180527j:plainf:id:kuteken:20141213180759j:plainf:id:kuteken:20141214002837j:plain