iPhoneでリリースされたドラクエ1とドラクエ2をプレイした

おがた (@xtetsuji) です。

スマートフォン版のドラゴンクエストポータルアプリが出て、最初にドラクエ1が無料で公開されて話題になりました。

話題になった時にダウンロードしてしばらく放置していたんですが、スマホ恒例のソーシャルゲームに疲れて、逆にストーリー性の高いRPGがやりたくなって、iPhoneでドラクエ1をプレイしてみました。ドラクエ1もテンポよくクリアできたんで、気分よくドラクエ2も500円で買ってプレイ。スクエニの作戦にハマった一人です。

スマホ版ドラゴンクエストの総じての感想と、携帯ゲームの今後の予想

操作がボタンじゃなくて、画面に出た十字キーをタッチするのは細かい動作が難しいです。懐かしい格闘ゲームもiPhoneで色々登場していますが、昇竜拳コマンドとかを入力するのも一苦労で、らくらくボタンみたいなのがあるくらいですし。私が超大好きな真サムのような、気が狂ったような格ゲー全盛期のようなコマンド入力とかiPhoneじゃほぼ無理。あれが物理ボタンより操作しやすいという人はいないでしょう。ドラクエも似たようなもの。特に塔などの細かい動作が求められるところで足を踏み外して落っこちるとか、2回くらいやりました。

ドラクエ1も2も国産RPG黎明期の作品なので、全盛期のファイナルファンタジーとかと比べると、それほどストーリー性が高いわけではないです。ただ、昨今のストーリーなんて皆無に等しいスマホのソーシャルゲームに比べたら、人々の会話などが新鮮でした。ゲームをプレイしているというよりも、堀井雄二さんが書いた物語を読んでいるという感覚。どちらかというとゲームというより小説や物語を読むことに近い

スマホのソーシャルゲームの代表格とも言える「パズドラ」とかも2年弱細々とやっていたんですが、最近忙しくなったのと、だいぶ飽きたことで最近は放置するようになってきました。以前から流行を追うために色々とスマホのソーシャルゲームの類をやっていたのですが、どれもそれほど長続きはしないんですよね。モンストとかは2ヶ月位やったら事実上詰んでしまって、面白さを感じなくなって休止中です。

自分の体験が一般化できるかどうかは分からないですが、スマホのソーシャルゲーム疲れというものは結構早く訪れるんじゃないかということ。クリアやエンディングの類が事実上なく、MMORPGのようなネトゲと同じ手法で延々とプレイさせ続けて強化アイテムに課金をさせ続け、実世界の人達とスコア比較されるというモデル自体への疲れ。一時はMobageかGREEかという二強が、ガンホー、コロプラ、mixiとめまぐるしく移り変わっていきましたが、今後はパイ自体が自然と小さくなって、ソーシャルゲーム業界の動きも今よりは注目されなくなるんじゃないかなと予想しています。ソーシャルゲーム業界へのネガティブな感情というのは無いのですが、流れ的にもっと適正な市場規模に落ち着いていくだろうなぁという予想。

そしてスマホで広がったり戻ってきたりしたゲーマー層の中で「ゲーム操作しづらいなら専用ゲーム機を買おう」という人が増えてNintendo 3DSやPS Vitaなどの携帯ゲーム機の復権といったものもあるかもしれない。事実、自分がプレイしたいゲームがたくさんラインナップされているPS Vitaが最近欲しいと思い始めました。逆にiPhoneでそれが出たとしても「操作しづらいんでしょう」ってなって、あまり食指が伸びないと思います。そこまでしてゲームをやりたいと思わないスマホユーザは、普段使っているLINEやFacebookから誘導された簡単なパズルゲームを時間つぶしにやって満足するという二極化になるんじゃないでしょうか。

私には中規模大規模なソーシャルゲームを作っている会社の知人は多いのですが、そこでのスキルは結構汎用的かつ高度なものなので、新たなブームが訪れた時にも経営判断さえ正しければエンジニア層ならスムーズに移行できるんじゃないかと思っています。これだけ根付いたスマホのソーシャルゲームが完全に無くなるわけではないですし、むしろ今スマホのソーシャルゲームを作っている人は最も活躍できる場所で働けているということで、うらやましい感じすらします。私が転職活動をしたときは、何故かスマホのソーシャルゲームをやっている会社からは非常にウケが悪くて悲しかった思い出があるくらいですから。

前置きが長くなってしまいましたが、以下ドラクエ1とドラクエ2、個々の感想です。

ドラクエ1の感想

iPhone版ドラクエ1最初の画面

ファミコン版オリジナル世代からは若干後の世代です。カセットを貸してもらったときはドラクエ3世代で、こんな主人公が前しか向いていないゲームできないよってなってオリジナル版はクリアしていません。後世になって前半をプレイしてみましたが、経験値もゴールドもたまるのが遅くて、途中で投げ出してしまった。

その後、スーパーファミコン版が出て、それはクリアしたのか記憶が曖昧。

ドコモのiアプリ版はクリアした気がしますが、それも記憶が曖昧。

今回、無料で配られたiPhone版のドラクエ1をプレイ。最初は物理ボタンじゃなくていらだちがありましたが、自分向けにボタン位置などをカスタマイズしていくと、比較的操作できるようになるのが不思議。格ゲーはツライけど、これならできるなという状態になったら、後は早かったです。

難易度もオリジナル版に比べて結構下がっている。6月30日にプレイしはじめて、帰宅後とかに自宅で細々とやっていただけだけど、7月7日にはクリアしました。だいたい1周間。

ドラクエ1はほぼ一本道だし、道行く人からヒントももらえるので、経験値とゴールドが貯まれば軽快に物語が楽しめました。

というか、ドムドーラが滅ぼされているのに、竜王の城のすぐ対岸のラダトームが無傷なの、どうしてなのか未だにわかりません。

ローラ姫助けたゆうべはお楽しみでしたね

ドラクエ2の感想

ドラクエ1をさっくりとクリアして、もうちょっとレトロRPGやりたいなーと思っていたら、ちょうどドラゴンクエストポータルアプリでドラクエ2がリリースされていて、500円だったけど買ってしまいました。

というか、500円買い切りという値付けは相当安い。以前ドコモiアプリの時は、500円継続課金とかだったはず。セーブデータを保持しておくだけで年間数千円必要なのです。それに比べたら500円払うだけでiPhoneユーザであり続ける限り、未来永劫セーブデータをポケットに入れておけるこの値付けは安いわけですよ。

ドラクエ1の余韻だけでなく、以下の記事を読んでいて興味があったこともあります。

ファミコン時代にオリジナル版は買いましたが、自分でレベル1からクリアはしなかったです。ゆうていみやおうきむこう…の有名なふっかつのじゅもんからやりました。あと、スーパーファミコン版もクリアしたはずなんですが記憶が曖昧。ドコモiアプリ版はクリアした記憶がうっすらとあります。

今回久々にプレイするわけですが、やはり経験値とゴールドはファミコン版より断然サクサクたまるなという印象。人によっては金稼ぎやレベル上げに苦労しないのはけしからんとなるんでしょうが、純粋に物語を楽しんでいきたい、空き時間に軽快に進めたいというのであれば、これくらいがちょうどいいのかもしれません。

ドラクエ2の場合、ドラクエ1と違って船を手に入れたら一本道要素はだいぶ減って進行の自由度が上がります。

ここからは若干ネタバレになるのですが、ルプガナで船を手に入れたら、東のラダトームに向かえという忠告を聞かずに、ザハンに行って金の鍵を手に入れて、そのままベルポイに向かって金の鍵でベルポイの街に入って牢屋の鍵と水門の鍵を手に入れた後で、それらを使って各地で強い武器防具の宝箱を開けていくと一気に強くなれるわけです。それで強い敵とも戦えて経験値やゴールドも一気にたくさんもらえて好循環になるというのは、実際にプレイした人や攻略サイトを見た人じゃないと分からないかもしれない。

上記の記事にあるような、以前プレイした世代がヌルいと感じるのは、そういう部分のコツといったものを知っているからというのもあるでしょう。

実際、自分もプレイしていて、そういうコツを知っていたから楽に進めた部分もあれば、すっかり忘れていてしばらく悩んだ箇所もいくつかありました。それでも現役世代は思い出せば進めるわけですが、オリジナル版から全くノーヒントな部分もあったりして、そういう部分を知らず攻略サイトも頼らなければ、初プレイで攻略サイトを見ない人にとっては最高難度のドラゴンクエストであることは変わらないような気もします。詳しくはWikipediaの解説を読んでみてください。ドラクエ1同様、攻略サイトは見ないようにしました。

実際、自分もロンダルキアの大地に登りついたあとすぐにブリザード3匹にあって、ザラキでいきなり2人殺されて大変な思いをしました。このあたりはオリジナル同様容赦無いし、いのちのいしやマホカンタが登場するのはドラクエ3から。とはいえ、王女がザオリクを覚えて、王子も王女も戦闘中にザオリクを使えるようになったのは、オリジナル版よりも後半の難易度が緩和する要素ですね。

7月9日にプレイ開始して、寝る前の空き時間とかにコツコツプレイしただけですが、7月15日にはクリアできました。

ラスボスを倒したあとで自分で各地を回って人の話を聞くのが、プレイヤーが自主的に体験するエンディングなのかもしれません。特にリメイク版ではストーリー上のフォローがされていているので感慨深いです。こういうしっかりとした終わりのあるゲームというの、最近体験することが少なくなってきたので、良いなぁと改めて思わされました。

まとめ

前述の通り、ストーリー性の高い全盛期のRPGに比べたらエンディングがそっけないなとかあるとは思いますが、それでもスマホのソーシャルゲームと違って町の人の会話はあたたかみがあるし、戦闘もダンジョンもそこそこ戦略的で、さすが当時人気を誇っただけあるゲームだという印象はあります。これでドラクエ1が無料、ドラクエ2も500円買い切りとは安い。

スクウェア・エニックスのまわしものではないですが、難易度調整もされていて手軽にできるし、気になる人はプレイしてみるといいんじゃないでしょうか。

ドラゴンクエストポータルアプリでは、2014年7月現在ドラクエ4とドラクエ8が登場していますが、とりあえずドラクエ1とドラクエ2をプレイした身としては、ロト3部作の最後であるドラクエ3をやりたいなという気分で、ドラクエ3待ち状態です。

Wiiの復刻版、買いそびれたし、ドラクエ3くらいであれば据え置き機でプレイする気分でもないので、どうしようか考え中です。一部プレミア価格には驚きますね。

以下がiPhone版アプリです。

ドラゴンクエスト ポータルアプリ
カテゴリ: ゲーム
現在の価格: 無料

Mishima.pm#1 に参加してきました #mishimapm

おがた (@xtetsuji) です。

タイトルの通りですが、2014年7月12日(土曜日)に静岡県三島市で行われた「Mishima.pm#1」に参加してきました。

他の参加者の方々のブログエントリより:

当日の発表順とスライドへのリンク:

静岡へ遠出、そして久々の新幹線

当日は中野駅から東京駅まで行って新幹線に乗ることにしました。中野駅周辺で朝に用事があったのと、Googleマップにそうサジェストされたから。数年ぶりの新幹線、乗り方すら分からない感じになっています。

モバイルSuicaで中野駅の改札をくぐってしまったので、東京駅で新幹線カウンターにいかないといけないというのも勉強になりました。東海道新幹線も三島駅もJR東日本ではなくJR東海の管轄なのでそういうことなんですね。そんなことも知らなくてアタフタしてしまいました。

新幹線の乗車券

新幹線の行き先表示

三島駅

無事、予定していた時間内に三島駅に到着できました。

静岡の風景に癒やされた

三島駅から会場まで、15分くらい歩くのですが、その間の光景は穏やかで、東京23区内のバタバタした雰囲気から解放された感覚に、心が落ち着くようでした。通勤時間が短いならこういうところに住んだほうが心穏やかになるだろうなぁ。

静岡は結構好きで、学生時代から社会人になってからも何回か来たことがあるのですが、来る食べに発見がありますね。横に長いので各地の特色もある。今回は勉強会メインで観光地巡りとかをする時間はありませんでしたが、また時間を取って来たいなと思わされました。

会場まで歩くので精一杯で、写真は撮っていませんでした。

会場到着から開会

20分ほど前に到着したら、既に @dokechin さんが会場設営をしていました。軽く挨拶。

開会から10分ほど、自己紹介タイムでした。10人。既に顔を知った人が多かったのですが、@dokechin さんに呼ばれて参加した地元の方や、群馬からやってきたという方もいて、参加者の多様性は良い感じでした。

@yusukebe さんのトーク「とある Perl Monger の働き方」

今回、JPA講師派遣制度を利用してやってきたゆーすけべーさん (@yusukebe) こと和田裕介さんが、トップバッターで1時間トークでした。色々なテーマがあがったのですが、@dokechin さんのリクエストがあったようで、ビジネス面にフォーカスした話になりました。ゆったりめで、いつもゆっくり聞けないけど、起業から今に至るまでの話から、そこから得られた考え方などを語られていました。詳細は公開されているスライドを見るとわかるかと思いますが、色々と示唆に富んでいて面白いトークでした。

とあるPerl Mongerの働き方

確かにPerlで働きたいと思っても間口はそれほど広くはない、だけど今もCGIで…なんてところは、表に出てこないだけで大量にあるわけで、そういうところのコンサルタントみたいなところに食い込んだりして自ら仕事を作って、そしてそういう部分をどんどんモダンに改善していくというのも良い活動だよなぁって思わされました。

非同期の話題が多かった今回のトーク

@yusukebe さんのトークのあとは、休憩を挟んで各人のトークとなります。詳細は上記のトーク一覧を参照ください。

特に際立っていたのは、非同期関連のトークが多かったこと。

とはいえ、私もトークする人の一人で、何を話そうかと思っていたのですが、@dokechin さんが自身のブログ等でも非同期関連に興味を持たれていて、今回もその話をするらしいとうことを知って、それにぶつける形でマルチタスクの基礎といった話をしてみました。後でトークを聞いてみたら、どうも先日のPerlBeginnersで私がトークした「そのsleep、ちょっと待った!」が発端だったようで、色々つながっているなぁと思わされました。

私の場合、最近は仕事に忙殺されていて、プライベートであまり新ネタがないというのもあったりしたのと、Perlをあまり知らない人も参加されるらしいということで、forkなどの古典的なマルチタスク処理から解説した基礎的な話を入れてもいいかなと思ったのもありました。@__papix__さんなどの他の人のトーク内容を見ても「これは非同期関連の話を入れてくるなぁ」とは思っていました。期せずして裏テーマが「非同期」になったのは、@dokechinさん的にもよかったんじゃないかなと勝手に思っています。Mojo::IOLoop、以前から存在は知っていましたが、私も今度Mojoliciousでコードを書いた時に使ってみたいと思いました。

私のトークの後がLTタイムだったのですが、全体的に時間が押していたのと、会場が17時までだったこともあって、LTはナシで撤収となりました。自分の発表、ちょうど20分にまとめたんですが、もっと巻けば良かったかもしれません。

懇親会

懇親会は駅近くの「大衆居酒屋 凸凹」というところでした。

大衆居酒屋凸凹

急遽、懇親会の参加人数が増えて、6人席に9人座ることになったのですが、やればなんとかなるもので、それほど窮屈さもなく座ることができました。

まだ空が明るい17時過ぎから乾杯。三島の大衆居酒屋凸凹で乾杯

飲み放題の値段も静岡価格なのか結構安くて、飲んで食べて3000円でした。

プログラムの話やらYAPCの話やら、Perlの話を中心に話が弾んで、とても良い懇親会でした。

途中で、LTができなかった@mackee_wさんと@ytnobodyさんがMacをかかげて居酒屋LT。写真は@mackee_wさんこと、まこぴーさん。

まこぴーさんの居酒屋LT in 三島

氏のトークもAnyEventで、やっぱり非同期キタ!って思いました。以前から様々なプログラム言語を操る若手のホープでしたが、最近はGolangで書いた自作ツールで非同期をPerlから追いだそうという話でした。某人気アプリのクローンの今後にも期待です。

@ytnobodyことあずまさんのトークも、QRコードというガラケー時代を生き抜いた人にとって興味深いコミュニケーションツールをいかに綺麗に生成するかといったトークがとても興味を引いていました。QRコードという題材ひとつでもここまで掘り起こせるのはあずまさんならではといった感じでした。

あいかわらず @__papix__ さんが @yusukebe さんに愛されていて、写真を撮られたり仲睦まじい感じに和みました。@__papix__ 氏、Perl入学式の校長などで活躍中ですが、年長者から愛される力もあって羨ましい限りです。

その後

飲み放題の時間制限や、店が混雑していたことから、20時ごろにお開き。

一部の人達は、途中で温泉に入っていこうと盛り上がっていて実際に向かったようなのですが、私は疲れに疲れてしまっていて、湯あたりとかしそうだなと思ったので、まっすぐ帰ることにしました。駅まで歩いて行くなかで、お祭りの予行演習なのか和楽器を鳴らしている集団をいくつか見かけたり、良い風情に気分が良くなりました。

電車の待ち時間が結構あったので、改札前で @dokechin さん達と立ち話。よい #1 になりましたね、五反田でまた飲みましょうね、三島いいですよね、通勤なければ住みたいですとか、そんな話をしていました。

三島駅、ギリギリJR東海エリアなので、東京へ向かうときはSuicaでくぐっちゃダメなんです。うっかりそれをしそうになって、慌てて窓口でチケットを買いました。

三島→東京山手線内

行きの新幹線とは違い、2時間東海道線に揺られながら、疲れ果てて品川駅までほとんど眠っていました。でも充実した一日だった〜。

まとめ

2013年12月11日のMishima.pm#0には行けませんでしたが(詳細は私のスライドの冒頭を参照してください)、今回は無事行けました。本当、行けてよかったと心から思えました。また数カ月後に行われることを期待して、次回も時間を空けてぜひ行きたいと思いました。今度はもっとゆっくりと旅程を組んで、観光っぽいことも含めて三島を堪能できればいいな。

Yokohama.pm#11 に参加してきました #yokohamapm

おがた (@xtetsuji) です。

2014年5月25日(日曜日)に横浜で行われたPerlの勉強会「Yokohama.pm#11」に参加してきました。

ブログを書くのが6月末と遅くなってしまったのですが、今回のイベントは有意義だたので、多少遅れても記録として書いておきたいなと思った次第です。あとYokohama.pmと自分との振り返りも書いてみたくなったこともあります。

Yokohama.pmについてと、直近のYokohama.pmについて

Yokohama.pmはよくあるPerlの集まりである「地域.pm」の一つなのですが、以前は年一回くらいしか勉強会が開催できていませんでした。直近といえる数年間を列挙すると以下の様な感じ。

  • #7 2011年05月13日
  • #8 2011年11月18日
  • #9 2012年10月19日
  • #10 2014年02月21日
  • #11 2014年05月25日

#10 開催前に、主催側で「年一回も開けていない状況が続いているから、運営体制を変えてやっていこう」というやりとりがあったらしく、@yusukebe さんがリーダー、@mackee_w さんが副リーダーとして、3ヶ月おきくらいに開催していこうという流れになったようです。

私のYokohama.pmとの出会いは #8 を Ustream で観て、こりゃ勉強になると思ったのがきっかけだったようです。

そして実際に #9 に行きました。

#9 について書いた自分のブログ記事は無いようです。

そういえば #9 で、高校時代の後輩である @acidlemon 氏と再会したんでした。あの時は本当に驚きの出会いの場でしたね。向こうはこちらをTwitterでフォローしていて私がここにいるということを知っていたようですが、私のほうは全然知らなかったのでした。

そして #10 はプロントでのビール片手のオシャレ開催。#10 は本当に良い会場で、オシャレカフェが好きな自分にとって、ビールやピザなどの食べ物飲み物も振る舞われるという快適空間でした。感想エントリを書いていたので、そちらをご参照ください。

そして今回の #11。だいたい #10 から #11 は3ヶ月の間隔で、ちょうどよい間隔での開催が軌道に乗り始めた感があります。

2013年11月29日には「Yokohama.pm – 2013年ちょっと早い忘年会」という飲み会が催されたらしいのですが、私は当日は PerlBeginners#11 のほうに行っていたようです。

日曜日の勉強会という形式

今までは平日夜であったり土曜日夜という開催でしたが、今回のYokohama.pm#11はIT系勉強会があまり狙わない日曜日の夜というところを狙ってきました。これも主催者側の意図らしく、「平日夜が良いという人もいれば都合が悪い人もいる。そしてその逆もいる。参加者層を日曜開催ということで変えてみたかった」とのことでした。

今回のYokohama.pm#11のざっくりとしたタイムテーブル

本当にざっくりとしていて

  • 前半は @songumu さんによる1時間のライブコーディング
  • 後半は事前応募なしの会場挙手制のLT

という感じでした。

会場到着から開始まで

私は新江古田駅近く在住なのですが、横浜までは一度練馬駅まで行って、そこから副都心線と東急に乗り入れる電車に乗ると一本なのです。本当に副都心線で楽になりました。昨年のYAPC::Asia Tokyo 2013の会場も日吉駅近くの慶應義塾日吉キャンパスだったので、この電車が非常に便利でした。

練馬駅から横浜駅まで一本練馬駅にて。

18時に開始だと思っていたので急いで行ったものの、18時は開場で、開演は18時30分からなのでした。17時58分くらいに会場のビルに行って、会議室の入口で鍵が開いていないぞとかやっていました。一度一階に降りたら顔なじみの開催者のみなさんがやってきて、あぁそういうことかって思った次第です。

前半のライブコーディング

ライブコーディングというのは、その名の通り生(ライブ)でコーディングをしていくこと。音楽でいうところの即興演奏に近いものがあるでしょうか。普段は出来た完成形を発表しているプログラマですが、作る最中というものはどういうものなのかという興味もあって、時間が割ける場所では時々行われる催しです。今回はつい先日FA宣言をした @songmu さんがライブコーディングを行いました。

最初は「1時間ではCPANモジュールを作って上げるところまでいけない」とのことだったのですが、そこは@songmuさんの力で、Acme::BeerSushiをフルスクラッチから書くところから、CPANへアップするところまで、1時間で乗り切ったのはすごかったです。

今回書いたモジュールはビールと寿司の絵文字2つだけでプログラミングが書けるという、いわゆるBrainfuck系のお遊び言語を作るというものでした。本人曰く「これだけCPANモジュールをアップしていて、まだAcmeモジュールを作っていなかった」とのこと。今回、それが果たされる形になりました。

非実用的なモジュールではありますが、開発の流れ自体はテストからコーディングから公開まで、非常に参考になるものばかりでした。第一線の開発者によるノウハウがライブで映しだされて観られる機会って早々無いので、会場も食い入る様に見ていました。

私も流れるような操作を理解するのに一所懸命であまりメモを取っていません。録画があって後日公開されるらしいので、それに期待しましょう。

後半のその場募集のLT

メモとっていませんでした。

ライブコーディング同様、動画を撮っていたっぽかったので、それを期待しましょう。

懇親会

近所の居酒屋でした。

一部、横浜の家系ラーメンに行ってしまって30分くらい待っても帰ってこなかったので、もうこないのかってなっていました。

テーブルが2つに分かれていて、奥のテーブルで頼んだ注文も全部前のテーブルに吸い取られる事件が発生して、自分を含めて奥のテーブルの人達はお通しと最初の飲み物以外何も来ないという怪奇現象に悩まされました。奥のテーブルで腹減った状態が1時間位続いていて、これなら家系ラーメン食べに行けばよかったと思ったくらい。

ここはエンジニアの面白いところで、タッチパネル式注文機がテーブルを特定しているのかということを解析にかかります。実際のところ「テーブルは区別できる」という結論に至ったわけですが、それでもまだ前のテーブルに注文を無造作に持ってくる店員を大声で読んで「この状況をみて何かおかしいと思わない?」ってつい店員に強い口調で聞いてしまいました。怒ったわけじゃないけど、数年ぶりに店員に苦情言った。空腹は精神の平穏を乱してしまってダメですね。

その後、料理もちゃんと前と奥のテーブルできちんと区別されて配膳されはじめて(やっぱり区別できるじゃん!)ようやく奥のテーブルにも平安が戻ったところで、家系ラーメンに行った人が戻ってきました。どうも相当な時間並んで、さらに相当な時間注文で待たされたらしい。奥のテーブルで起こっていた珍事を知らない人たちが、飲み物を注文し、ようやく到着した食べ物を食べるという平和な光景でした。世界を良くしていくためには誰かが何か行動しないといけないし、後世の人は知らず知らずのうちにその恩恵を受けているという縮図的なものを見た感じでした。

話も弾んで、23時過ぎに店を出て各自帰宅となりました。

まとめ

日曜日の夜開催という点、主催者側の「平日夜や土曜夜という参加者層を変えたい」という狙いは大いに当たったと言えるものでした。

ただ、個人的に日曜日の夜だと月曜日が厳しい…。横浜近郊に住んでいれば良いのですが…。その辺は無理せず、参加できるときに参加するというスタイルがいいかなと思いました。

#8 でUstreamを見て行きたいと思った勉強会。今回も生放送ではないですが録画は後日公開される予定らしいので、行けなかった方はそれを待ちましょう。きっとエキサイティングなトークの数々が見られるはずです。

Hachioji.pm#41 に参加してきました #hachiojipm

おがた (@xtetsuji) です。

2014年6月21日に行われたHachioji.pm#41に参加してきました。

私のATNDのイベント参加ページを見てみると最近はHachioji.pm結構常連なんですが、あまりレポートらしいレポートを書いていなかったので、今回からは短くても書こうと思いました。他の勉強会のブログ記事でもそうなんですが、すぐ書かないともう書かないという法則もあるので、すばやく書く人を見習っていきます。あ、あと、思い出せたら#40以前も振り返りたいと思います。

とりあえず、お約束の居酒屋LTでトークした資料をアップしました。今回のテーマが「セッション」だったので、先日開催したガラケーイベントの余韻が冷めていなかったこともあって、ガラケー時代のセッションの昔話をしてきました。

18時開催なんですが、いつもHachioji.pmが行われる土曜日は慌ただしかったり疲れていたりで、遅刻の常連なんですよね。今回は前日金曜日に朝まで飲んでいたこともあって、起きたら17時で現地到着が20時30分くらいでした。私のために主催の@uzullaさんがLT開始を待っていてくれていたりと、お気遣いさせてしまいました。今度は18時から参加できるようにします。

内容としては、Hachioji.pm自体がゆるい会なので、飲み屋でお酒を飲みながら最近のトレンドを話たりする感じです。今回もそう。Yoというアプリが流行っていたので、なんか参加していない人にHachioji.pm参加者達でよってたかって投稿したりしていました。

私のYoアカウント名はxtetsujiです。でもこのアプリもClick Clickerくらいの鮮度なのかなとか思ったり思わなかったり。こういう流行りものは出てすぐに飛びついて一瞬楽しんだもの勝ちなのかもと最近は思います。

他の方々の参加ブログ記事も参考になります。

GoやDartやGroovyなど、GoogleやAndroid周辺言語が話題でした。Goはとにかく有用性が理解されて次のフェーズに進んでいるし、Android界隈でも開発効率などでGroovyを採用したり、Kotlinと言ってみたり、Google自体もJavaリスク(というかOracleリスク)を避けたいという思いもあるんじゃないかという仮説が立てられたりと盛り上がりました。世間の盛り上がりの割には、Swiftはキーワードとしてチラッと出ただけで特に話題にも上がらなかった感じ。

今回は、@__papix__ 氏が @uzulla さんとGotanda.pmの懇親会の流れからの再度の老害vs若者のプロレスをして(というか巻き込まれて)、無理やり「老害滅ぼしてこ」とか言いながらポーズを取らされたりして撮影会になっていたのがハイライトでした。ちょうど23時近くなって帰ろうとしていたころの出来事。本当に楽しい。

若い人が活躍するこの業界では、mod_rewriteやガラケーの話をしている私も老害なのかもしれませんが、それでも害にならない年長者としてこれからも若い人を支援していきたいですね。なんというか自分が老害になったら、いっそのこと若い人に滅ぼして欲しいくらいです。

若い人といえば、ついにWEB+DB PRESS Vol.81(2014年6月24日発売)で商業誌デビューした@moznion氏も元気そうでなによりでした。今号も面白い連載が目白押しっぽいです。

私のトークの中で「mod_rewriteを使ってディレクトリに見せかけた左側セッションを環境変数に入れる」という古風な手法を紹介したものの、これには決定的にまずい点があったのですが、時間や面倒だったりで省いたので、ここで補足。

環境変数に入れたセッションIDは、環境変数なわけでプロセス単位で保持されるわけです。あの単純なmod_rewriteだけだと、そのままpreforkしたプロセスが次のリクエストを処理した時にURLにセッションがない匿名アクセスだと、環境変数にセットした値が上書きされることもなく消されることもないので、ダメなんですよね。匿名アクセスは無くて全部に対してセッションを配るという実装だったり、もうちょっとmod_rewriteを工夫して左側セッションがない場合に当該環境変数をカラにするという設計であれば大丈夫です。

本来であればリクエスト単位で保持すべきデータはApache noteを使えという話になるのですが、PHP(mod_php)であればapache_note関数で読めるけどPHPならビルトインのセッションを使うよってなるし、CGIであればnoteを読む方法がたぶんないので、結局環境変数に頼る感じだったんですよね、2006年頃のPerl CGI期では(PSGIとPlackは2009年登場です)。自分の場合は、mod_perlで高速化していたPerl CGIのエミュレート環境(Apache1.3だとApache::Registry)だったので、2008年くらいの案件では自分のしていることを理解した上で、$cgi->r->notes->get(‘session’) とかやっていました($cgiはCGIのインスタンス)。

あと、同じApacheでVirtualHostを切るなりして違うサイトとか管理ページでも同じセッションの枠組みを利用している時に色々と混濁してしまう点にも注意しなきゃならなかったりします。一度それで痛い目を見たなと後で思い出しました。2014年にもなってこの仕組みを使う人はあまりいないとは思いますが、この場で補足しておきました。満足。

Hachioji.pmは面白いし気軽だし、@uzullaさんのPHPを始めとした豊富な経験が聞けたりと、非常にお得な「エンジニアのオフ会」なので、中央線沿線に住んでいるエンジニアの人は土曜日暇であればぜひオススメしたいです。次回も予定が空いていれば参加します。

「シニアエンジニアによるガラケー大戦回顧録」というイベントを開催した話 #garake_kaikoroku

10年弱ガラケーでウェブ開発をしていた おがた(@xtetsuji) です。

2014年6月8日に「シニアエンジニアによるガラケー大戦回顧録」というイベントを開催させていただきました。

最初は「3人くらい集まってワイワイとガラケー時代のことを語れればいいな」くらいに考えていたら、2万人くらいフォロワーがいる人にRTされて、その日一日中iPhoneが震えっぱなしでした。意図に反して、人によっては悪ふざけと取られて批判されるかもしれないという内容だったので、自分もその日一日中震えっぱなしでした。

結果的にATNDのページには相当のブクマやLikeがついて、一人反響に驚いていました。

めちゃくちゃバズったガラケー大戦回顧録

ネットの人もジョークがわかってくれる人がほとんどで安心しました。まぁ「近寄ってはダメだ」とか言ってくれる人も良い人です。

「まだ有効なNDA等には注意してくださいね」といったことは周知しつつも、バッドノウハウとか闇とかアレすぎて、文脈すっ飛ばしてブログに書くと色々問題がありそうなネタばかりだったので、以下では詳細までは書いていません。気になる方は実世界で私をつかまえてこっそり聞いてください。問題ない範囲でお話します。

かなり面白い人々が集まった

参加者は、@kaz_hiramatsu さん以外は実際の面識がほとんど・全くない人ばかりでした。

日本のC++の第一人者として有名な江添亮さんが参加することになったとき、多くの人に「江添さん来るけど大丈夫なんですか?」って言われました。ネットでは怖い人だと思われているのかな。本人のブログで信念を持った文章を書いているからなのかもしれません。でも実際に会ってみたら、頭の回転が凄まじく早い、口や手といったI/Oも相当早いけど頭の回転のほうが遥かに早くてすごい、という人でした。ダメなものはダメと断罪する人だったけど、怖い人ではなかったですよ。物凄い人であったことは事実で、また一人そういう人に会うことで自分もしっかりしなきゃと思わされて、とても良い経験でした。

メールで問い合わせを頂いた上で参加くださった方ともお会いして、楽しい話ができました。

当時貴重なガラケー向け情報サイトke-tai.orgを運営していて、今はインフィニットループの代表取締役である@keitaiorgこと松井さんも、札幌から参戦していただきました。Hokkaido.pmですれ違ったことはあったのですが、実際に挨拶をして名刺交換をしたのは今回が初めてでした。

会場に選んだ「レストラン・スカイキャロット」について

三軒茶屋のランドマークタワー「キャロットタワー」の上階にある「レストラン・スカイキャロット」を会場にしました。とても眺めが良かったです。

電話で10名予約をして席が用意されたのですが、電話予約の時から噛み合わないやりとりを何度もしていたら、店を出るときに意外なことを言われて、やっぱりなーとか思いました。私は悪くなかったんですが、私達が結果的に得をしたのか損をしたのか、ちょっと書けない。

なんか枝葉のことまで書けないことだらけの会すぎて困る…。会の実際の内容も含めて、実情を知りたい人は私を捕まえてこっそり聴いてください。大事なことではないのですが、二回言いました。

集合

主催が遅刻するわけにいかないので、とりあえず13時までに会場に向かいます。ちょっとギリギリかなと思っていたのですが、なんとかたどりつけました。

一人、キャロットタワーに興奮します。

会場に到着して予約名を言ったら、既に江添さんがいらっしゃいました。初対面。

続々と人が集まってきます。松井さんは札幌から直行で遅れるとあった通り、しばらくは松井さん以外の9人で食事をしつつ歓談。

私の個人名刺入れがドラクエ2のROMカセットのデザインのやつだったので、最初がドラクエ2の設計に関する話から始まるところ、シニアエンジニアっぽい感じです。

その後、松井さんも合流して10人揃います。揃って食事しつつ歓談。

話題いろいろ

「Tomcatが動かないことが発覚して、急遽シェルスクリプトから標準入力を読んでJavaのコマンドラインに与えるJava CGIを…」といった話がでて、「え?Java CGI?」と会場が驚きに包まれたり…。あんまりガラケー関係ない話ではありますが、ガラケー時代のサーバサイド技術の混沌期を感じさせる話題です。これはツイートしていいって言われたのでツイートしました。誰が言ったかはヒミツ。

終始、江添さんトークがすごかった。ドワンゴの今からC++に関することまで。エンジニアやエンジニア経験のあった人は楽しめただろうけど、それ以外の人を置いてきぼりにしてしまったかなとか、主催者として後で不安になったりしたくらいでした。

その他にも個別に書けない(書く許可を取っていない)話題をいくつもいただけて、主催者として非常に楽しめたイベントでした。

トークと、私が考える過去からの教訓からより良く学ぶ方法

事前トークを募集したのですが誰もいなかったので、結果的に私のトークだけでした。発表したかったけど、雰囲気がわからず準備できなかったという人はいました。発表といっても、特にプロジェクターとかはなく、大きな文字のスライドをノートパソコンに写してかかげて見せる形式。少人数だからできる形式ですね。

これもまた、ちょっと文脈無視では公開できない内容なのですが、せっかくなので一枚見せます。モザイクだらけですけど。

スライドよりクリスタルタワー、モザイク入り

このイベント、「8年前の今日」にガラケー開発で貴重な体験をしたネタを「供養」するために開催したというネタばらしでした。スライドの一部分をファイナルファンタジーIIIのストーリー仕立てにしたら、これもドラクエ2と同様にシニア世代にうけたようで良かったです。

当時は本当に大変だったけど、3年6年と年月が経つにつれ、当時の関係者と当時を振り返って笑えるようになりました。そして8年の時を経た今、同じ失敗を繰り返さないよう、一見ネガティブと思われることもポジティブに変えて、こういうことはどんどん共有したほうがいいんじゃないかなという私からのメッセージでもありました。

話題としての失敗っていうのは、そういう文脈を伝えられなかったり伝えづらい文章の形で公開してしまうと、どうしてもネガティブなものと捉えられられて、本来伝えたい過去からの教訓というものが霞んでしまうんですよね。こういうのをポジティブな文脈に替えて誤解なく伝えられるのは、実際に顔を合わせて話をすることしかないんだよなーとは、よく思うところです。

ネットには成功体験記事は多いけど失敗体験記事が少ないのは、恥を公開したくないといった側面の他に、どうしても読み手にネガティブな印象を与えてしまうからじゃないかと思っています。勉強会や懇親会といった場でなら失敗談であるとか技術の廃れといったことを聞けるのは、このネット時代であってもリアルに出会える場所が重要であることを物語っていると思います。

「ネガティブ良くない、ポジティブに行こう」というのには大賛成なのですが、失敗談から学ぶときに一見ネガティブととられかねない話題は避けては通れないと思っています。ガラケー開発の闇も同様。ガラケー開発の闇ほどではないものの、今もスマートフォンの断片化などが問題になっています。そういうものもポジティブに変えて考えていこう、この会にはそういうテーマも根底に設けたつもりです。

ちなみに昔ほど今の開発現場の闇が深くないと考えられる理由として、ガラケー時代以降の勉強会文化によって横の情報連携が活発になったこと、昔よりもはるかに開発現場のツールチェーンが進化したことなどが挙げられていました。

NDAというものの影響がはるかに大きいガラケー開発の世界

江添さんも直近のブログで指摘してくれていましたが、勉強会文化が普及しなかったり横の情報連携が停滞したりといった要因は、やはり巷でNDAと呼ばれている秘密保持契約によるものが大きいなと感じました。

それは「発売日・正式リリース日までの口外を禁ずる」といったAppleやGoogleがよくやる期間限定タイプの最近よくあるパターンなものではなく、ほぼその技術が存在し続ける限り恒久的に続くNDAを結ばなくてはならないものです。ハードウェア的なものは理解できなくはないとしても、ソフトウェア的なことに関してもことごとくNDAの世界が広がっているのがガラケー開発の世界でした。

絵文字の世界も闇が深いです。ガラケーから外部SMTPサーバへ絵文字入りメールを出すと、いわゆる「ゲタ」(〓)になることは有名な話ですが、特別な申請を経てキャリア側の特別な許可が下りることでこれを回避することができます。そうでなければGmailやYahoo!メールの挙動を説明することはできませんし、3キャリア(WILLCOMやE-MOBILEも入れるともっと?)間での絵文字の相互運用を説明することはできません。

観測事実として、絵文字には各キャリア統一テーブルが存在するのです。とはいえ、実際に絵文字を「統一」したのはUnicodeコンソーシアムに働きかけたGoogleやAppleでした。実際に3キャリアの下で統一された絵文字コードはこのUnicodeではありません。もしそうであれば、ドコモなどを差し置いてGoogleが申請する道理もないですし、GoogleはドコモとのNDA違反をすることになります。すなわち観測事実として、NDAを結んでいない人が知らないテーブルが存在するのです。私は前職でこのテーブルについて偶然知り得てしまったのですが、これは各キャリアとのNDAが今も有効なので当然ながら今回も話すことができませんでした。

日本のガラケーキャリアが閉鎖的な絵文字テーブルを運用している間に、GoogleやAppleは標準化を提案し、美味しいところを持って行って主導権を握るのです。

これは絵文字の例だけではありません。AndroidであったりiPhoneであったりといったスマートフォンのエコシステムと比較したガラケーの世界は、似たり寄ったりの話ばかりです。GoogleやAppleが好きか嫌いか国粋主義者か否かは別として、日本のガラケーキャリアがガラパゴスと揶揄されるゆえんがわかる話ではないでしょうか。

「公式サイト」という言葉も生んだガラケー業界。公式サイトになるためには、それなりの体裁をなした企業が溜池山王(ドコモの本社があるところです)に何度も通わなければならず、一度作った公式サイトの企業間譲渡も制限されるといった不自由さ。そりゃ、どこにも出向かず、お金さえ払えば、たとえ無名の個人だってウェブからアプリをアップロードして全世界展開させてくれるGoogle(Android)やApple(iPhone)に飛びつくに決まっていますよね。公式サイトの課金手数料もNDAだと思うので書けませんが、それよりもはるかに高いと言われる30%というGoogleやAppleに払う手数料も、実際に参勤交代をすることもなく、日本だけでなく世界展開させてくれると思えば安いものです。ガラケー全盛末期の時代はキャリアのトップサイトより影響力を握ったソーシャルゲームプラットフォームに載せるために、キャリアの手数料にソーシャルゲームプラットフォームの手数料も更に上乗せされた額が乗ったわけです。この流れは、公式サイトやソーシャルゲームプラットフォームをすっ飛ばしてGoogle PlayやAppStoreに直接載せるという今の「パズドラモデル」を推進させる流れにもなったように思えます。

今後のガラケー

スマートフォンが使いづらい、スマートフォンの料金体系が高いといったことを嫌う一定層から、今またガラケーが支持を集めています。会の参加者も、私を含めてガラケーとスマートフォンの二台持ちという人も見受けられましたが、そういう人であってもガラケー開発のノウハウは記憶をたぐり寄せるという、いにしえの技術になってしまっています。ke-tai.org の松井さんでさえもです。

しばらくは一部の愛用者からのガラケーの支持も続くとは思いますし、ガラケーが完全になくなることは今後数年は無いとは思いますが、今後はガラケーとスマートフォンの内部的な垣根はどんどんなくなっていって、外側をガラケーに似せた「ガラスマ」が進化し、適切な料金プランとともにガラケー愛好家に浸透していって、根底のガラケー開発の知識はほぼ過ぎ去った知識と言える時代もそう遠い未来ではないのではないかと思えます。

会の終了後

13時から始まったこのイベント、17時に予定通りお開きとなりました。

会計を済ませて、少しみんなで三軒茶屋の名所を散策。

二次会っぽいものに行く人は残り、そうでない人は解散という流れ。5名が帰路につき、5名が残りました。

二次会は居酒屋。とはいえ昼食はしっかり食べているし、アルコールは飲まなかったものの飲み物も結構飲んでいたので、皆さん数杯飲んで満足。

ここでは江添さんのC++話が炸裂しました。

レトロゲームやネトゲの話にもなったのですが、どんなゲームも結局一年くらいで飽きるし、一番のクソゲーであり最もプレイ時間が長い「現実」というゲームに投資しておいたほうが良いと満場一致したのが面白かったです。

21時頃解散。

まとめ

「江添劇場」はすごかったです。C++へ興味湧きます。

二次会にも来てくださった @halmatch さんは、ゲーム業界寄りの話も含めて興味深い話題を色々と提供してくれて、また会って話をしてみたいと思いました。他の勉強会などの集まりとかでつながりが持てると嬉しいです。

予想外に多くの人に注目はされたこのイベント、コメントで「行きたい」という人も多く見受けられ、それに対して江添さんが冗談まじりに「ドワンゴで大規模に勉強会形式でやりますか?」と振られたものの、みんなで「逆に大規模にやったら、発表者出てくるのか…?」といった心配事もあったり、なかなか性質が難しいイベントだなと思った次第です。この規模だからアットホームに各人の真意が正しく伝わって、過去から学んでポジティブに行こうという認識が持てたけど、人が多かったどうなるんだろうとか…。大きな会場が提供されて自分が主催をするとしても、誤解の無い進行は難しいだろうなって感じはします。2012年に一度行われた「失敗カンファレンス」も、今になって概要を見ると、扱いづらい話題を扱った難しいイベントだったんだなと思わされます。

普段はPerlの勉強会ばかりに行くので、そこでは顔見知りの人と話せて楽しいという反面、新しい人との出会いが最近少なかったので、今回のイベントは主催者ながら本当に刺激的でした。

このイベントや続編の開催などに興味のある方、ぜひとも私をリアル世界でつかまえてこっそり聞いてくださるか、Twitterで #garake_kaikoroku ハッシュタグをつけてツイートしてくださると嬉しいです。

これからも様々な経歴を持った方々と様々な場所でお会いして学んでいきたいです。よろしくお願いします。

お薬手帳

「お薬手帳」を持参しないと20円得する話

胃潰瘍の消化器外科やら咳の呼吸器内科やらと、通院マイスターになりつつある おがた (@xtetsuji) です。

最近こんなニュースがありました。

要約すると「お薬手帳を持っていかないと20円自己負担額が安くなる」というもの。2014年4月からのようで、複数の診療科にかかっている自分からしたら、そんなの初めて知ったということで、本当なのかと昨日確認してきました。

実際に確認しにいったのは、東京都の中野駅近くの調剤薬局。私がずいぶん以前から常連の場所で、普段私がお薬手帳を持ち歩いていることを薬剤師の方々が知っている薬局です。

  • 薬剤師「お会計は920円です。お薬手帳はお持ちですか?」
  • 私「えっと…ネットで最近見たんですが、お薬手帳を持っていると20円負担が増えるって本当なんですか?」
  • 薬剤師「はい、本当です」
  • 私「それって具体的にどういう行為にお金がかかっているんですか?」
  • 薬剤師「このお薬手帳に貼るための処方したお薬の一覧が書かれたシール、これをお出しすることが通常の3割負担で20円のご負担になります
  • 私「私って普段はお薬手帳を持っているんですが(今日は持っていたもののの隠しましたが…)、実はスマートフォンのアプリで服用履歴を管理していて(薬剤師の方に見せる)、これを以前初めて行った調剤薬局で見せたらとても薬剤師の方の参考になって話が早かったのですが、そういうのを見せてアドバイスをもらうことで金は取られないのですか?」
  • 薬剤師「こういうアプリもあるんですね。参考になります。あくまで先ほどお話した通り、当薬局ではお薬手帳に貼るための処方したお薬の一覧が書かれたシールを出すことで負担が発生します」
  • 私「私はアプリで服用記録をしていて満足なのですが、ここで要らないといったら20円引かれますか?」
  • 薬剤師「はい」
  • …といいつつすぐに900円に直された領収書が出てくる

少なくとも私の行きつけの調剤薬局では本当でした

とはいえ、薬の飲み合わせというのがあるのも事実。でも、メモでも何でも自分でとっていて、お薬手帳以外の手段でそれを薬剤師に伝えてもこの負担は発生しないらしい(どこでもそうかはわかりません)という話を聞いたので、じゃぁ自分で管理したほうがいいやというのが本音です。

というか通院マイスターになると、お薬手帳がかさばって大変なんですよ。しかも過去のお薬手帳をどうするかとか悩ましいし。大昔のお薬手帳を持っていて、そういう薬を飲んでもアレルギーがなかったとかってことを言おうにも、直近のお薬手帳はまだしも普通は大昔のお薬手帳なんて持ち歩いていないし、スマートフォンアプリで管理するのが良いよなぁというのが最近の意見です。

最近私が使っているアプリは、iPhone/Android両対応の「総合お薬検索」というアプリです。初回に多少面倒なユーザ登録が必要ですが、サーバ上でデータを持ってくれて、複数端末で使った時にもデータを同期してくれるのがすごい便利です。また先発・後発かかわらずかなりの薬のデータベースを持っていて、入力も簡単なのが良いです。

先日、お薬手帳を持たずに病院に行って、急に初めて入った調剤薬局で、初診者恒例で書かされる各種アンケートを書いた後、薬剤師が飲み合わせについて困った顔をしながら一つ一つ聞いてくるなかで、このアプリで記録している服用履歴を見せたら一気に解決したようで、豆に記録しておくものだなぁと思いました。私のようにライフログ大好きな人ならすんなり入れるんじゃないでしょうか。その前に病気しないに越したことはないのですが、人間生きていればどうしても病気にかかってしまうのは常。日頃から準備しておくことに越したことはなさそうです。

iPhone版はこちら:

Android版はこちら:総合お薬検索 – Google Play の Android アプリ

先のリンクの記事を読むと、今回の制度改定には医療行政の思惑だったりがあるようですが、医薬分業でコストがかかっているのなら利用者にとっても国にとっても良くないよなぁとか思います。薬剤師の雇用創出的側面もあったり、医師と薬剤師の二重チェックといった部分や、医師の利益操作を避ける意味での医薬分業という意義もあるのだと思います。ただ、病院行った後、調剤薬局であれこれ面倒なことをして薬を受け取る手間とか、そういうコストを考えると、もっと利用者や国にとって良い形があるんじゃないかなぁと思う次第です。

なんだか2014年はアクティブに活動していけそう

おがた (@xtetsuji) です。

当時それ以前から悪運続きではあったのですが、2010年にどうしようもない転職エージェントに出会ったところで人生どん底に落ちてしまい、はいあがるために2011年7月から一転してオープンな活動を始めるまで大変な時期を過ごしたっていうことは何度も書いたり話したりしました。

2012年と2013年のYAPC::Asia Tokyoへの大舞台登壇や、2014年2月の転職などを経て、ようやく色々な活動が軌道に乗りつつあります。

今現在進行形でやっている活動や、これからやりたいことを含めて、2014年も半分近く過ごしたので振り返ってみたいと思います。共感してくれて一緒に活動してくれる仲間募集中ですまた、かなり長いエントリなので、時間のない人は大きな文字だけ流し読みして「あとで読む」にぶち込んでいただければ幸いです

このエントリは2014年5月に書かれましたが、しばらくのあいだは加筆する予定です。

時間がある人向けの参考エントリ:

Perl入学式の運営側に入りました

3年目を迎えたプログラミング言語Perlの初心者向け勉強会「Perl入学式」、今まで2013年度のサポーターをやらせてもらっていたのですが、2014年度はより運営に近い形で参加しています。2014年度からはサポーターだけでなく、勉強会の運営方法の議論だったり、資料作成だったり、一部の講師だったりをさせてもらっています

これからもPerlを軸に、幅広い活動をしていこうと思っているのですが、Perl入学式は初心者に向けてアプローチできる絶好の場であります。しかも毎月定期的に行われている。たとえ手弁当でもそこで得られるものは自分にとって大きいと思い、色々と手を上げて作業させてもらっています。大変だけど、最初からこれをやっていた人も無報酬でやっていたわけで、コミュニティ発展のために自分も力になりたいと思った次第です。

これについては色々と盛りだくさんなので、興味があれば以下の記事を読んでみてください。

PerlBeginnersの共同運営者になりました

これもPerlの勉強会なのですが、PerlBeginnersという勉強会の共同運営者になりました。

今までは @ytnobody さんが一人で主催をして全てを一人でやっていたのですが、#12の懇親会のときに色々と大変だという話を聞いて、運営チームを立ち上げて複数人体制で運営をしていくことになりました。

ほぼ隔月で約2年間続けられたわけですが、当日 @ytnobody さんが突発的な仕事だったり病気だったりになった場合に主催できないという属人的危険性をはらんでいました。2年続けてきて、だいぶ多くの人に知られて定期的に20人程度の人は来るようになった勉強会になった今、そういう不安定な状況を解消しようと運営チームが立ち上がりました。今まで予定した日時に開催出来ていたことは、@ytnobody さん一人でやっていたことを考えると「運が良かった」とすら言えると思います。その辺の冗長化も考えた運営チーム発足となりました。

運営チームと言っても、現状は主宰者の @ytnobody さんと私の二人体制ではありますが、今後様子を見つつ徐々に増やしていこうと考えています。

2014年5月23日に新体制初の #13 を行いましたが、ちょうどというか @ytnobody さんが仕事で来られるかどうかわからない状況だったので、私が会場を開ける担当となりましたが、今回は @ytnobody さんの仕事が無事に終わったので事なきを得たのでした。こういう状況のための運営チームといっても過言ではありません。

執筆業へ進出したい

私には書籍を書くという夢があります。これ、実は水面下で良いお話をいただいていて、もしかしたら今年あたりに共同執筆者という形ですが実現できるかもしれません。私の頑張り次第である部分も大きいのですが。夢は言えば叶う方向に向かうものなんだなぁと思わされます

1冊書いたら満足とは思っていませんし、今後も人の役に立つアウトプットはしていきたいので、どんどんインプットもして、それに応じたアウトプットをしていきたいと思っています。

とかく、文章を書くというのは時間のかかるものです。このブログを書くのだってゆうに数時間はかかっています。1000文字以上のそれなりの品質の文章を書くというのは、多くの人にとってそれなりの時間がかかるものだと思います。

ブログ等といった広義の執筆も続けていくつもりではありますが、これからは電子書籍かなと思っています。自分自身もKindle PaperwhiteKindle Fire HDXを買って読書と書籍に対する概念が変わりました。紙の書籍はとてもあたたかみのある良いものではありますが、保管場所は有限です。特に東京での保管コストは高いと言わざるをえないでしょう。

今後、電子書籍はどんどん普及していくことでしょう。それに伴って、紙の書籍よりも出版障壁の低い電子書籍への出版も増えていくものと思われます。私もその流れに乗って電子書籍で自分の知識を出版していきたいと考えています。もちろん「電子書籍だから値段も内容も妥協」なんてことはしないつもりです。

とはいえ紙の書籍や雑誌へは一度は書いてみたいですね。もう5月末ではありますが、今年中に実現できるよう、邁進していきたいです。

新たな勉強会の立ち上げや、教育事業をやりたい

ここ最近はPerlの勉強会がブームです。色々な新規勉強会が告知され、既存のも含めて告知されるとすぐに定員が埋まってしまいます。

Perl入学式in東京も五反田の会社であるガイアックスさんが毎回会場など全面的にサポートしてくださっていますが、特に五反田界隈のPerl企業がとても元気です。

  • Gortanda.pm
  • 五反田Perl
  • Yokohama.pm (最近になって不定期開催から定期開催になった)
  • Hachioji.pm (毎月の飲み会勉強会)

最近はPerl入学式つながりで、時間があるときにPerl入学式の「卒業生」の方と中野で会って個人レクチャーをしたりしています。

そういう話を他の勉強会の懇親会でしたら「Nakano.pmを作ればいいじゃないですか」と言われたりしました。確かに「もくもく会」的なものでもいいから、隔週でやるのも悪くないかなと思って、実際に中野駅周辺で会場探しなどを始めています

ここまで来ると、Perlにこだわるのも、それにこだわらない活動をするのもアリだなーと感じています。Perlをやることを目的として楽しむことも大切だと思いますが、私達は人生の何らかの目的を持っていて、それを実現するための手段を日々探しているものです。それを実現するための一つの手段がPerlであり、また別の目的を実現するためにはPerl以外の手段が必要な場合もあります。

中には「金を払ってでもマンツーマンで個人レッスンを受けたい」という需要もあるようです。cyta.jpなどがそういう人とのマッチングサービスを行っていて、家庭を持っている人に比べて自由な時間の多い独身の自分は、そういうところでお金をもらって人にモノを教えるのも悪く無いと思いました。世の中、金で人の時間を買ってでもいいから深く学びたいという人だっているという需要に答えることは悪くないと思っています。cyta.jpには登録したのですが、登録審査の面接に行けていない状況です。こういう審査が厳格だというのは好感が持てますね。

手弁当や無報酬でコミュニティに尽くすことも大事なのですが、自分を安売りすることだけはやめたほうがいいと思っています。無報酬コミットも、最終的には自分の名声を高めたり、教えた人が業界をめぐりめぐって間接的にでも自分の利益になるかもしれないと考えて行動することが大事なんじゃないかなと思います。そうじゃないと持続的に活動できない。

私が住んでいる中野区などの自治体と協力できないかとか考えたりもして、実際に中野区の課に電話をしたりと行動に移したりもしているのですが、電話ではあまり良いアクションはもらえていません。中野区には「中野アフターシックス」という中野区役所の若い意欲的な職員の勉強会があるらしく、テーマが自分の考えているものに近い時に出てみようと機会をうかがっています。政治思想云々に関わらず、今後自分の住んでいる街を良くしていくためにも、行政との関わりを増やしていくことは悪いことではないはずです。これは特に既婚者や子供を持った家庭であればなおさらではないでしょうか。

また中野区に新しく誘致された大学のキャンパスとの連携も出来ないかと考えています。明治大学が中野セントラルパークにキャンパスを新設して、そこに理工学部が併設されていることを考えると、若い優秀なIT人材の拠点としても中野区は有力な一つじゃないかと思っています。まだ実際にアプローチはしていませんが、明治大学には一度アプローチしてみたいと思い、手元で準備をしたりしています。

また会社主催の勉強会も出来そうな雰囲気で、期待していますし、そのために細々とネタを貯めています。最近は社内勉強会も盛んで、個々人が業務で忙しくて定期的な開催はできていない状況ではありますが、その成果が社内から社外へ何らかの形で出していこうという事を会社の役員が課題として持っているところは、非常に頼もしく思っています。この会社に転職できてよかったと素直に思えるポイントです。

純粋数学の勉強会をやりたい

私は数学科出身です。最近はプログラミング活動ばかりで数学からは遠ざかってしまったのですが、たまにやってみると面白い。もっと数学へ時間を割いて、数学の楽しさを再び体験したいと考えています。

どうせなら多くの人で数学の楽しさを享受できないものかと、とりあえず夢を声に出すメソッドで「純粋数学の勉強会というものをやりたい」と言っていたら一部から期待されているらしく、これの実現も模索しています。こうやってブログに書くのも夢を声に出すメソッドの一環です。

会場探しに関しては、上述のように中野区にアクションをかけたり、大学へのアクションを模索したりしています。またPerlBeginnersの共同運営者になって、主宰者である @ytnobody さんから会場を借りるテクニックというのも学べて、本当にありがたいと思わされます。

数学の勉強会は、統計学などの実用に近い勉強会は社会人向けで幾つか行われているようです。そういうのも大切ではあるのですが、自分がやってみたいのは、どちらかというと業務や社会の役に直接は役に立たないけど非常に示唆にとんで興味を駆り立てられる数学というものです。具体的なテーマを言えば「素数」とか

私は功利主義やお金を稼ぐことに対することへの大切さも身を持って体験しているのですが、行き過ぎた功利主義への反論というか皮肉も大好きで、よく「それってなんの役に立つんですか」といった質問に対して「何の役にも立たないんですよ」と笑顔で言って楽しむことが多いです。とかく数学科なんかに進学したら、当時超就職氷河期と言われた時代、外野はそういう質問ばかりするわけです。完全に慣れました。というかそんなことを言ったら、大学の学問なんてどれも実利になるかと言われたらどれも変わらないでしょう。私も「残念ながら数学の整数論といった分野も、現代のコンピュータ時代の暗号化理論の中で最重要分野となってしまいました」と皮肉を込めて何度も言っていました。大学生に学問の功利主義的質問をする人は「大学行くくらいなら職業専門学校に行った方がいい」って素直に言ったほうがいいです、本当に。

整数論の話が出ましたが、数学科時代、そんなに整数論に興味はありませんでした。というか整数論の研究室が最も難しいと言われていたことや、数学に興味を持ったのは高校2年の微分積分論からだったので、微分積分論を包含した解析学の研究室へ進むことになりましたが、やっていたことはフーリエ積分の概念を拡張して完全に代数学として抽象化したものをやっていて「代数学やりたいと思わなかったんだけど…」というのが正直な感想でした。逆に整数論の研究室に進んだほうが、素数の分布を調べたりするのに重要な関数の積分を使ったりといったことをするので「素数の理論に興味あるし、整数論の研究室に行けばよかったかも」とも思いました。とはいえ、解析学の研究室の教授は日本でも有名な数学者で、非常に勉強になった大学院2年間であったことは事実です。

私と同世代に中島さち子さんという数学者がいます。現在の本職はジャズピアニストですが、日本人女性として初めて数学オリンピックで金メダルを受賞したり、高校生当時から論文や数学書を書いたりといったすさまじい人でした。高校生向けの数学雑誌などでそういう活躍を見て、当時数学に興味を持っていた高校生の私は衝撃を受けたものです。そんな中島さち子さんも、私が大学院を卒業する頃には研究活動を聞かなくなり、結婚して子育てをしているという話を聞いていたのですが、そんな彼女もここ数年になってまた数学活動を再開したという話を聞きました。比較にならないすごい人ではあるのですが、ブランクを経てもまた数学という活動をやる姿勢に、大いに感銘を受けたことは事実です。

誰もが中島さち子さんのような天才にはなれませんが、近づこうと頑張ることは自由です。中島さち子さんも素数の学問の一つである「ゼータ理論」を主に業績としています。そんなことを考えながら、我々一般の社会人も素数を研究したっていいじゃないかと、現在やり方などを模索している最中です。

ラジオなどの音声媒体への進出したい

エンジニアの世界では情報の提供方法が時代とともに変わってきています。一時期流行ったポッドキャストという手法が、今エンジニアの世界で脚光を浴びています。

非常に著名なエンジニアであるTatsuhiko MiyagawaさんによるRebuild.fmから始まり、riywo’s Podcast職質テックトークといったポッドキャストが続々と登場しました。最近ではボケてで有名なオモロキのCTOでJPA理事でもある和田裕介さんによるDandy.fmなどが躍進しています。

実は職質テックトークの第3回に出演させてもらったりして、ポッドキャストに出演するという夢は叶えられたのですが、実際にポッドキャストを立ち上げたり、もっと別のポッドキャストの番組に出演したりといったこともやっていきたいと考えています。そのためにも、自分のしゃべりをより聴きやすくするといったトークの技術も磨いていきたいと日々意識しています。

自分の声って録音したカセットテープを聴いても鳥肌が立つのですが、大学時代のアルバイト仲間に「おがた君って声やしゃべり方がNACK5の長谷川雄啓に似ているよね」って言われて、「えっ、こんな声でもラジオでDJできるの?」って思ったというか思い上がった経験があります。実際、自分の声の良し悪しって自分では判断できないもので、大人気の声優さんも当時は自分の声が嫌いだったりとかっていうことはザラにあることらしいです。みなさんも自分の声を録音して聞くのが苦手という人は多いのではないでしょうか。

しゃべるのは好きで、内容は置いといても延々としゃべっていられる自信はあるので、ポッドキャストとはいわず、実際にFMやAMで電波をとばしているラジオ局で番組を持ってDJをやってみたいという夢を持っています。それも、前述の大学時代のアルバイト仲間に言われた言葉がキッカケなような気もします。そして2011年から勉強会やカンファレンスで人前で時間制限を設けてトークをすることに慣れてきたこともあるでしょう。

エンジニア向けのポッドキャストに出演して語れるトーク力や技術力を磨くこともそうですが、ラジオのDJであったり、もっとラジオという媒体にコミットできればなーとも思っています。最近ではテレビの視聴率低下という話は聞きますが、ラジオといった音声媒体は今だからこそ可能性が広がっている部分もあります。

エンジニア向けポッドキャストの流行も、iPhoneがいつでもどこでもポッドキャストを回収できるようになったというソフトウェア的・ネットワーク回線的な要素も強いでしょう。また、radikoらじる★らじるといったインターネットを通じたFMやAMのリアルタイム配信も始まって、ラジオの新しい時代が来ている感じがします。

最近、コミュニティFM「練馬FM」の開局を目指している練馬放送の関係者と偶然お会いして、支援は惜しまないという話をしたところ、そのあたりでも話が進みつつあります。すでにあらゆるプロによってDJという枠は埋まっているらしいですが、ラジオという媒体を伸ばしていく活動はしていきたいと考えています。

ピアノと作曲をやりたい

小学生の頃からクラシック音楽が好きで、今でも毎日NMLでクラシック音楽を聴き漁っているのですが、ピアノと作曲をやることが昔からの夢でありました。

作曲自体は、中学時代から楽理の書籍を買ってリコーダーの曲を作曲したりしていたのですが、和声というものに対する理解が進まず、そのための第一歩としてピアノを習いたいと考えています。ピアノ曲自体への興味は、クラシック音楽全体の中ではそれほどないのですが、作曲ツールや楽理解析ツールとしてのピアノを学びたいと考えています。

私はベートーヴェンを心の底から尊敬しています。私も交響曲という芸術で自分を表現したいという夢があります。死ぬまでに一曲は交響曲を書きたい。え、ゴーストライターに書かせればいいって?サムラゴーチの話は後述するから

歩けばコンビニと歯医者と美容室だらけの日本ではありますが、ピアノ教室もそこら中にあります。ただ、どこに行くかという決定打が無いのです。このあたりも音楽に携わっている人に紹介してもらおうと、日々おすすめの教室を聞いて回っている最中です。そんな中で二胡のおすすめの教室は聞いたのですが、二胡をやるかどうかは迷い中です。

あとは部屋を片付けて電子ピアノを買うだけです。部屋の片付けは大変ですが、電子ピアノの投資はグランドピアノほどではなく、ちょっとしたパソコンを買う程度です。

嘘をつく人の研究

よく「人間観察が好き」という人がいます。そして「人間観察が好きとかいう人、ちょっとキモい」という意見もあったりして、面白いなぁと思います。「人間観察が好き」って女性に多いと思うのですが、「音楽が好き」くらい他愛もない主張で、社会人になったら誰もが初対面の人に対して「こいつカルト宗教やねずみ講やってないよな」って警戒するのが普通だと思っています。別に性善説・性悪説は別として。

私は田舎出身で田舎丸出し状況大学生だったので、カルト宗教に軟禁されるところからからエウリアンや高額商法に閉じ込められるところ、ねずみ講の勧誘までひと通り体験しています。性悪説と言ってしまうと極端ですが、人間観察というよりもその対象人物が関わるに足る危険人物ではない最低ラインを越えているかという観察は社会人は普通にするものだと思っています。

危険人物に共通しているのは、自分の領域に引き込むために「嘘をつく」ことです。危険人物でなくとも嘘をつく人というのはそこら中にいて、上述のような経験を経て、私は嘘をつく人の心理を研究することが大好きになりました特に社会を震撼させるような嘘をつく人の心理は超大好物です。騙された側の出方というのも興味深い。今からこれをテーマに社会学の大学に入学したいくらいです。

昔から最近まで、社会を震撼させるような嘘をつく私の研究題材となったのは以下の三人です。

特に旧石器捏造事件は熱中して、実際に「遺跡」に行ったり、藤村新一に会って話をするにはどうすればよいか考えたくらいです。

佐村河内守については、事件以前から交響曲HIROSHIMAの存在は知っていたのですが、無調音楽が嫌いだということと、(後の嘘だとわかる)聴覚障害などを商業主義にし過ぎだろうと敬遠していました。CDが回収騒ぎとなってしまった今となってはCD買っておけばよかったと思いました。NMLで配信してくれないかな。私の尊敬しているベートーヴェンを冒涜してくれた人として、後世まで「世間を震撼させた嘘をついた人」「私の尊敬しているベートーヴェンを冒涜した人」として徹底的に研究しようと思います。

そんな長年の研究(?)でわかったのは、嘘をついてもバレる、嘘をついてもいいことがまるで無い、ということでした。当時ゴッドハンドとして名声を得ていた藤村新一も、実際は葛藤を抱えながら不安とともに生活していたことは、のちになって明らかになることです。

私は時々不眠になって朝起きられない体質にあるのですが、そういう時、会社には遅刻の理由として、正直に寝過ごしたと言うことにしています。拡大解釈すれば体調が悪いと言えないこともないのですが、それは言っても遠因であって、本当に体調が悪いときにオオカミ少年になる可能性があるからです。

一時は不眠で通院していて睡眠薬を処方されていた時期もあるのですが、今は不眠は脱しました。とはいえ朝早起きが苦手なのは子供の頃からなので、体質といった部分もあるでしょう。今は処方された薬の副作用で昼夜を問わず眠くなるので困ったものです。正直に理由をいうことによって自分を律することが出来て、また薬の副作用に対する耐性も出来て、最近は遅刻もしなくなりました。

お金を稼いで節約して、好循環を築きたい

前述のように手弁当や無報酬でイベント運営に協力したりしていますが、自分の中長期的な人生を俯瞰した時に、持続的な活動をするためにはお金を稼ぐ必要もあると考えています。職業プログラマーとして会社勤めをしていますが、終身雇用制が瓦解した今は、明日に何が起こるかわかりません。いつかは地元に帰りたいとも考えているので、今の会社と相思相愛だから大丈夫…という話でも無いのです。同じような状況の人は少なくないのではないでしょうか。

個人的に活動するといっても、サーバ代であったり交通費であったり、時間をコストに換算しなくても直接かかってくる費用というものはあります。せめてそういうものが相殺されるくらいの収入が定期的に入る状態をまず作り、あわよくば会社の収入に頼らずとも生活できるくらいのお金が入るような体制が築ければ良いと考えています。

最近では副業といったものの是非であったり法律的根拠の皆無な点を説いた記事を見かけます。会社員としての仕事を真っ当にこなしていることを前提にすれば、私は副業については賛成な立場です

前職は規約で副業を禁止している会社だったのですが、「私はAmazonでアフィリエイト収入を月に数百円もらっているが、そのために書いたブログ記事なども副業になるのか」と聞いて回っても、偉い人から管理部署まで、答えられる人がいませんでした。「小銭だから大丈夫じゃない?」という発言は答えになっていません。同僚の「確定申告しなくちゃいけなくなったら副業と言われそうだよね」という発言が一番的を射ていましたが、労少なく儲かってしまって確定申告をする羽目にになったら副業だと言われて活動を禁止されてしまうのでしょうか。本当よくわかりません。私も調べては見たのですが、労働関係の法律で副業禁止に対する法的根拠が明確に関連付けられるものは無いように思えました。これは前職退職の多くの遠因の一つです。

「エンジニアが収入アップするには転職しか無い」というのは多くの場所で事実になっているように思えます。会社に長く勤続しても、エンジニアという職種では大きな収入アップは望めない場合が多い。その割に、優秀な人は高給で引き抜こうとするので、エンジニアの収入アップは転職という手段に限られると揶揄される一面は良くない風潮だと思えます。

とかく年収という話はタブー視されていますし、私も蜘蛛の巣を突くような議論をしたくはないので意識的に避けてはいるのですが、個々人が本職を含めた生活全般でもっと所得アップできる仕組みづくりはしないといけないと考えています。それが年収を暴露する風習を作ることで実現できるか、今の私には分かりません。

私達30代が60歳になった時には確実に年金制度は崩壊しています。年金とは積立制度ではなく、現在の老人世代に払う費用であり、それは平均年齢が60歳から70歳だった高度経済成長期だからこそなりたつ制度でした。少子高齢化時代ではすでに年金制度は崩壊していると断言してしまってもよいことは長妻昭に聞かなくてもすぐに分かります。正直、今の国家や老人をないがしろにしてもいいというのであれば、国に年金を払うことをやめて、個人積立年金を契約したほうがいいのです。正直、残念なことに、ないがしろにされても仕方がないような尊敬に値しない老人が最近増えているように思えます。可能な限り年金制度維持のために税金を払って行きたいとは思っていますが、こういう老人がさらに増えるのであれば、老人優遇の政治に反旗を翻す意味でも、労働者世代は根底から考え直す必要があるかもしれません。

数十年後、年金制度が崩壊している中でどう生活をするか、この話はそういう中長期的な人生プランへの疑問提起でもあるのです。

健康とそれに対する投資を惜しまない

私は病気がちで、昨年2013年の12月に胃潰瘍で入院したり、色々な病院へ通院しています。

私の業界ではそう多くないようですが、働き盛りの男性は病院嫌いだったり自分が病気認定されるのを嫌う人が多く、病院受診をしなかったりするケースが結構あるそうです。そういう人が、突然大病を患って一気に亡くなってしまうという話も聞きます。

私はライフログが趣味で、自分に関するあらゆるデータを数値化したいという趣味があります。そういう意味でも病院は結構好きな方で、風邪でもすぐに病院に行ったりするくらいです。もちろん、痛いのは嫌だし未だに注射されるのは嫌なのですが、ちょっと体に異常があったら病院に行こうとするタイプではあります。「健康な人」が保険金泥棒と揶揄する典型的な人ですね、私って。

胃潰瘍入院のときも、「ちょっと内科に行ってみるか」と気軽な気持ちで行ったら、救急車で運ばれて緊急入院となったくらいです。大量出血で突然倒れて死ぬ可能性も十分あったということは後で聞かされました。何か体に異変を感じたら病院に行くことはとても大切なことです

最近は UP24 by Jawbone という、iPhone/Android端末とBluetooth通信をして、歩数や就寝を管理してくれるデバイスを購入しました。自分の行動が数値化されるだけで嬉しいのですが、歩かなかったり睡眠時間が足りなかったりした場合にアドバイスしてくれたりする機能がお気に入りです。一人で生活をしているとどうしても生活リズムが乱れがちになりますが、こういうアドバイザーがいるのは良いと感じます。この機械、1万6千円くらいしたのですが、健康への寄与を考えたらかなり安い投資だと思って買ってしまいました。まぁ、胃潰瘍の入院費用がそれの10倍位しましたからねぇ…。

UP24については1ヶ月使ってみて色々使い方がわかってきたので、別記事で書きたいと思います。

部屋の片付けと良質な作業環境とノマドワーキングを整備したい

部屋が散らかっています。冒頭の話になりますが、2010年からやる気が起こらなかったからなのと、最近は土日に勉強会などの予定がてんこ盛りで、時間がないからです。

カフェ巡りは好きなので、そういうわけでカフェで作業をしたりといったノマドワーキングでお茶を濁しているのですが、本格的に部屋を片付けようと思っている次第です。ちょっと今の状況だと来客呼べない。

キーワードとしては、自炊、料理教室、効率的な洗濯環境、断捨離といったところでしょうか。年始に書いたブログ記事にもそんなことが書かれていました。

ノマドワーキングについても、部屋を片付けたあとでも「別の場所で作業をする効果」というのはあると思っています。近所のカフェなどの営業時間などを把握したり、趣味の延長線上で新規開拓をしたりといったことをしていきたいなと思いました。

今まで目を向けてこなかった語学や経営といった勉強

YAPC::Asia Tokyoでは、毎年海外から著名なゲストが来るのですが、英語を聞いたり話たりすることに臆病になってしまい、結局交流できずといったことが続いていました。そんなことをとある人に話したら結構怒られてしまい、ダメだなぁと思った次第です。せっかく著名な開発者が海外から来ているのに、つたない英語でもいいから話さないと本当にもったいない。とかく日本人全般的にそういう傾向にあるようで、海外からきたゲストは結構ぼっちになっていて、そんなぼっち気味の海外ゲストを誘導したりする英語に堪能な方は、もっと日本の開発者はつたない英語でも積極的に話せばいいのにと思っておられるようです。本当にそう。反省しかできない。英語教室に通うかどうかわからないですが、英語を聞くことや話すことへの抵抗を無くして、今年は世界を広げます。あわよくば日本を飛び出して世界で働きたい。声に出すと夢が叶うメソッドです。

また、経営といったものも勉強したいと考えています。元々は先日祖父に言われたことで、詳細は割愛しますが、その話がごもっともだと思ったからです。

前の会社では、経営陣がコロコロ変わって、とある時期には実質的な経済犯罪といったことが行われたこともありました(上場企業なのでこれは公開情報です)。その後も経営不振が続いたり、経営が理解できればもっと発言に説得力が持てたんじゃないかと今になって思います。経営への参画は別として、平社員でも経営を監視する眼力は必要であると思わされました。

幸い今の会社は業績も好調ですが、経営への理解をすることは、自分の仕事がどのようにマネタイズされているのかといった意識を持つことにもなって良いことでしょう。

どうやって経営を勉強するかは悩みどころです。経営者セミナーに行けば莫大な金を取られるでしょう。書籍を買って学ぶとしても、玉石混交そうでどれから手をつけていいか分からない状況です。何かオススメの経営学習方法があれば教えていただけると幸いです。

結婚はしないんですか?

これ、今も祖父に言われるんですよね。一回この質問をされて親親戚の前で相当不機嫌になったことがあって、祖父以外の親親戚は聞かなくなりましたが、祖父だけはしぶとい。

そんな、くじ引きみたいな感じで女性とペアを組んで結婚できるほど現代は手軽じゃないんですよ。とかくメディアは虚構のような恋愛観を女性に振りまいて、統計人口的に多い男性のほうが不利な状況を生んでいます。

高度経済成長期を生きた今の老人は軽々しく結婚できるだろといいますが、あれは戦争直後で男性人口が減っていたのと、誰もが企業に入れて年功序列と終身雇用の中でお金をもらえたので、結婚のハードルというものが実質なかったからです。

今はテクノロジーが発展した平和でエキサイティングな世の中でありますが、そういった今の老人世代が体験した結婚へのハードルが低い時代ではありません。むしろ、男性人口が増え、働いても所得は増えず、メディアが発達したために虚構のような恋愛観に感化された女性が冗談のようなハードルの上げ方をしている時代です。

これは江戸時代中期と同じような様相なんですよね。江戸時代中期は太平の世となり、統計的に男性人口が増えていきます。また戦もなくなり、徳川幕府の方針によって取り潰される藩も出てきて武士を失業した浪人というのも出てきます。そうでなくても参勤交代などで藩の財政は圧迫され、武士の収入は上がる余地がありません。特に江戸といった地域では圧倒的に男性人口が高かったようです。これも現代の東京人と似たようなものでしょうか。なので、江戸時代に結婚できない男性というのは珍しくなかったようです。江戸時代でさえそうだったんですから、今の若者世代が責められても困りますよね。

エンジニア界隈でも女性エンジニアの人口を高めていこうとしています。少子高齢化でエンジニアに限らず今後どの職種でも人材不足を起こすことでしょう。エンジニア業界でも、女性を取り込むことでエンジニア不足の解消を図ろうとしているのです。数的に男性優位になりがちなエンジニアコミュニティ、女性エンジニアの増加にいやらしい考えを持つ人も少なからずいるようですが、私は今後職業選択の上であらゆる職業で男性女性という区別はなくなっていくのではないかと考えています。男性の所得だけでは生活できないという負の側面もありますが、女性の社会進出が増えていき、多くの職種が男女均等になり人数的に平滑化していくことでしょう。それは素直に喜ばしいことだと思います。

そうなったときに考えるのかですって?それはあと10年くらい先の話でしょう。

私は老若男女といった視点で人を見ていません。そこにいる人は老若男女関係なく人として素晴らしいかどうかという価値観しかない。その素晴らしい人がたまたま女性で、たまたま未婚で、たまたま私に好意を持って男女の関係で付き合うことができればそうするし、そうでない場合には何もしないといった単純かつ明朗な価値観しか私は持っていません。「喉は渇いても下水は飲むな」とはよく言ったもので、今の時代、無理して結婚しても「腹を壊す」ことは心得ておいたほうがいいと思います。特に高度経済成長期を生きた老人は。

ここでは私が独身であるという表明をしていますが、私は仮に女性と付き合っても、仮に結婚しても、そのステータスは隠すと思います。まぁ結婚式とかは女性先導のイベントなので、そこで多くの人に広まってしまう可能性はあるかもしれませんが、個人的に男女関係や結婚の話は年収くらいタブーでもいいと思います。というか男女関係の話って酒場で話すと面白いけど、公で話されているとイライラするというのが年収の話と共通なのは、私が高給取りではなく独身だからでしょうか

上述のように様々な活動をしていく上で、今後今まで以上に多くの人と出会うことになるでしょう。というか多くの人と出会って自分を成長させていきたいと思っています。そんな中で出会いの確率というのも微量ながら上がっていくのではないでしょうか。それくらいしか私は祖父にいう言葉がありません。

私自身、結婚したいとか女性と付き合いたいという欲求が他人と比べて少ない人なんだなというのは、他の男友達と話していて感じることです。ただ、女性と付き合いたい、結婚したいという欲求の高い友人知人には成就してもらいたいという気持ちはあるので、どのようにすると出会いが生まれて男女は惹かれ合うのかということは、常日頃から考えています。それが自分に活かされるかは別として。なんだか思考が「お見合いおばさん」になっている感じもするのですが、人間の感情を数値化したいというライフログ的・数学者的価値観が根底にあるからなのかもしれません。

すべての活動はつながってゆく

最近電車通勤していて目にとまる「男子との“三角関係”を解く“公式”は/大塚食品 マッチ、マッチピンク「青春と数学」編」の車内広告を見ていて面白かったのですが、恋愛に方程式や公式がないのは、恋愛が一階述語論理で記述できないからです。では高階述語論理を導入すれば恋愛が記述できるのか、冗談でそういう勉強会をやってもいいかもしれません。それにはHaskellがちょうどよいでしょうか。プログラムや数学といった活動につながりますね。

カフェ巡りは趣味ですが、行きつけのカフェが出来て、そこの店主と知り合いになって仕事以外の女性の知人が増えつつあります。特に深い知り合いでもなく、一度きり会ってFacebookで友人申請をする程度ですが、その女性の趣味傾向で、自分の男性の知人の中と合いそうな人がいたら、積極的につなげていきたいと考えています。

とある私の北海道の友人は行きつけの酒場で生き生きしているので、どうすればそんな生き生きできるのかと聞いたら「ここが自分のホームだからだ」と言いました。また、他の居酒屋では普通にしているとも。私にとってのホームは、前述のカフェなのかもしれません。慣れ合いの場を作れという意味ではありませんが、自分の活動の軸足、ホームを作ることは大切なことだと感じます。

ピアノの世界は数的に女性優位の世界なので、ピアノを習えば出会いの一つもあるでしょう。私は交響曲を作曲したいだけで特に出会いに期待はしていないのですが、もしかしたら祖父が喜んでくれるイベントがあるかもしれません。

手弁当や無報酬で行ってきた各種勉強会も、運営側に入ってみると内部では「属人性を解消していきたい」とか「実費くらいは捻出できないと継続的な活動ができなくなる」といった問題点を抱えていることを知りました。でもできれば参加者からはお金をとりたくないというのはどの勉強会でも一緒で、儲けるというか「赤字を出さない」ためにはどうすればよいかというのは、まさに経営的思考だったりします。

ラジオやポッドキャストでは、著作権フリーの楽曲が求められています。特にポッドキャストで歌を歌ったりすると、ジャスラなんとかが大金をふんだくりに来たりすることもあるそうです(私の収録のときにも「歌を歌わないでください」と注意されました)。私は作曲活動をすることで、他愛もないけど色々な状況で使える使用権フリーなBGMも作曲していきたいと考えています。それはポッドキャスト界隈やコミュニティFM界隈を盛り上げていきたいといったところにもつながります。そうした積み重ねが、芸術としての「私の交響曲」につながっていけばいいなと感じます。

何が危険で何が安全なのか、嘘をつく人の研究をもとにして、勉強会などで知り合った多くの人を危険な目に合わせないために、自分が身につけた情報発信力で啓蒙していきたいと考えています。とかく、参加している勉強会の性質上、Perlを仕事に活かしたいというビギナーの方から相談を受けることが時々あります。私が2010年に出会ったような、(嘘というよりは)ダブスタに満ち溢れた最悪の転職エージェントといった人売りを頼ることはさせない、そういう活動は啓蒙していきたいです。技術力との折り合いが付けば、私の職場や、他のマッチする職場への斡旋もやぶさかではありません。転職エージェントとは違い、私に法外な対価は要りません。

色々な活動をすることで、土日も忙しい日々を送っていますが、逆にリズムが保てるというメリットもあります。以前まで平日の睡眠時間を削って土日に眠り続けるという生活をしていましたが、そういうのはやめて、平日も土日もあまり差がない睡眠時間にしようとしています。なぜ人間は睡眠を取らないといけないのかという医学的な結論は出ていないそうですが、所定の睡眠時間を取らないと多くの人は健康を損なうという事は裏付けられています。UP24を買って睡眠を数値化出来た今、ようやく良いリズムが出来て、それが今の私の活動意欲につながっているのだと思います。

長い文章でしたが、いい年齢になった今さらながら色々な方面で頑張って行きたいと考えています。何事も始めるのに遅すぎることはない。協力してくれる方や仲間も募集しています。今後の私の活動にご期待ください。

Yahoo! TVの番組ページにあるYahoo!カレンダーへの登録リンクをGoogleカレンダーへの登録リンクに変更するChrome拡張機能をリリースしました

おがた (@xtetsuji) です。

長いタイトルの通りなんですが、手元でずっと使っていたChrome拡張機能の一つをChromeストアで公開しました。

どんな拡張機能なの?

何をするものかというとこのブログ記事のタイトルまんまなんですが「Yahoo! TV の個別番組ページにある Yahoo! カレンダーへの登録リンクをGoogleカレンダーへの登録リンクに変更する」拡張機能です。

Yahoo! TVを選んだ理由

正直、Yahoo! TV は今日本にあるテレビ番組サイトの中では一番使いやすいなと思って使っています。各番組ページにパーマリンクがあるところがいいんですよね。Bingテレビとかだとパーマリンクとかなくて、番組表の上にモーダルダイアログのように出てしまう。番組ページは固有のURLであってほしい派なので、昔も今もYahoo! TVに落ち着いています。

昔は日刊スポーツがテレビ番組サイトを運営していてそこもシンプルで良かったんですが、2012年頃になくなってしまってガッカリしたあとで落ち着いたのがYahoo! TVでした。

Yahoo! TV の各番組ページには、昨今流行りのFacebookやTwitterへのシェアボタンなどもついていたりするのですが、Yahoo!だからではありますが、カレンダーへの登録リンクというのはYahoo!カレンダーへのリンクなんですよね。Yahoo! Japanには失礼ではありますが、「Yahoo!カレンダーって誰か使っているの?」っていう感じで、私も結構ハードなGoogleカレンダーユーザだったり、周囲を見てもみんなGoogleカレンダーのユーザなので、ここに併記でもいいからGoogleカレンダーへの登録リンクを付けて欲しいって思うわけなんですが…。まぁ要望送っても付けてくれないだろうなと思って、自分で拡張機能を書いてしまいました。もともとはブックマークレットだったものを成長させたものです。

Yahoo! Japan自体は良いサービスをたくさんリリースしていて、Yahoo! TV以外にも色々とお世話になっているんですが、まぁ今見てもYahoo!カレンダーは使う気になれないですねー。Yahoo!自体もカレンダーでGoogleと戦う気は感じられない。

インストール方法

Chromeストアで公開したので、Google Chromeユーザは当該ページに行ってインストールすることができます。

プラグイン紹介ページ

今のところ (初期バージョン 0.0.0.1) では、tv.yahoo.co.jp へのページ読み取り権限くらいしか要求しません。本当に単純なことしかしていないので。

インストール権限は最小限

これをインストールすると、以前はYahoo!カレンダーへの登録リンクの部分がGoogleカレンダーへの登録リンクに変身します。

具体的には以下のようなリンクが…

プラグインのインストール前

以下のように変わります。

プラグインのインストール後

カレンダーに登録ボタンを押せばGoogleカレンダーへの登録画面になります。

ちょっとした機能の話

機能としては、Google Event Publisherという機能を使っていて、たんにイベント情報を所定の全ユーザ共通のイベント登録リンクにクエリ文字列を伴って渡しているだけです。

ということもあって、現状この制限でできていないのが「番組情報全てを渡す」という部分。ちょっとでも長いとクエリ文字列の長さの制限に引っかかってしまうからです。これはEvent Publisherを使っている分にはどうしようもない。やるとしたらYahoo!カレンダーの番組ページ側でコピー支援をすることくらいかな。

一応、イベント概要部分に番組紹介の一番最初の抜粋を入れるようにしたのですが、うまく入らない場合があって、それはまぁ後でいいかと割り切ってリリースしました。手元で自分だけが使う状態にしておくと、そういう改善意欲が湧いてこないってのがあって、GitHubで公開して、Chromeストアにも載せるという作戦に出たわけです。

まぁコードはZIPを伸長したりGitHubでも公開しているので見られますが、ひどいひどい。私がまだJavaScriptを全然知らない時に見よう見まねで書いたブックマークレット時代のひどい痕跡がそのままなんですが、まぁ動いてくれるし危険なこともしていないし、公開することで自分も改善意欲が湧いたり、誰か綺麗にリファクタリングしてくれるかなとか思って公開しました。そういうライフハックです。

要望ありましたら、Twitter @xtetsuji にご連絡くださるか、http://tetsuji.jp/ に書かれている私への連絡方法のどれかでご連絡いただければ、出来る限り対応します。

Chrome拡張機能の開発方法やChromeウェブストアへの公開方法といった話については、また後日ブログを書こうと思います。ではでは。

二項演算子の間の空白の意味

おがた (@xtetsuji) です。インフラ志望で10年以上前にオープン系IT業界に入ったのですが、今では当時やろうとも思わなかったウェブプログラマーをして生活しています。

今回はタイトルの通り、二項演算子の間の空白の意味。コードレビューがある文化の人達はこういう議論をしたことがあるのかな。私はそういう文化がほとんどなかったので、単に持論を持っているだけでして、今回はその持論を書いてみようかなと思ってブログを書き始めました。Qiitaに書こうかなと思ったんですが、エッセーに近いのでたまにはプログラム的話題をこっちにも書いてみようかなと。

事の発端

先日、会社でJavaScriptの初心者向け研修が行わていて、自分は参加対象じゃなかったのですが、講師の話が漏れ聞こえてきました。「あぁ、基礎的なことをやっているんだな」って感じでしたが、講師が言った「イコールは代入です。イコールを代入に使ってしまったので数学的な比較はイコールイコールになりました」とか、そうだよねぇって聴いていたわけなんですが、一つ漏れ聞こえてきた解説で気になったことがありました。

「イコールの両端の空白は見やすさのためです」

いや、それは半分正しくても、本当の意図はそこじゃないんじゃないの?と。

演算子の優先順序

演算子には優先順序があります。JavaScriptにも当然ながら演算子の優先順序があります

私は、空白や空白類文字がこの演算子の優先順序や結合力を惑わしてはいけないし、それを表現するようになっているべきと思っています

空白が表現する演算子の優先順序

一番簡単な例は、加減乗除でしょう。足し算や引き算よりも掛け算や割り算のほうが優先順位が高くて、左から計算される(評価される)ことは中学までに習うことで、誰もが知っていることです。

2980円のものを買って消費税がかかったんだけど1000円の割引クーポンを持っていたとしましょう。

2980 * 1.08 - 1000

こういう計算式を書くのが普通で、普通に左に掛け算があるから左から計算しても大丈夫だと思うでしょう。ただ、こう書くとどうでしょう。

2980 * 1.08-1000

マイナス記号の両方に空白がありません。普通のプログラム言語では二項演算子の前後の空白についてはあまり気にされませんし、まさに見やすさ以外の意味はないのですが、あたかも「くっついているほう」が先に計算されると、油断している時や心が弱っている時に勘違いしてしまうと思いませんか?

これは誰もが知っている二項演算子の簡単な例ですが、もし普段あまり使わない二項演算子の組み合わせでこれをやられて惑わされたとき、あなたは正しい判断ができるでしょうか。

Perlにも演算子の優先順序がありますが、空白で惑すことはいくらでもできます。

my $result = 2 * 3 ** 5

2に3の5乗をかけているのですが、空白が等しく入っているので、べき乗演算子 “**” の優先順位が掛け算演算子より高いことに気づかない人は惑わされるでしょう。一番良いのはカッコを使って明示的に優先順位を表すことですが、プロジェクト内で比較的自明な場合は空白のありなしで結合力の強弱を表すことが暗に行われることもあると思います。これは簡単な例なので良いのですが、カッコだらけになって見づらくなるという意見もあるので、なかなか悩ましいです(Lispをしこたまやっていると、カッコが見えなくなるというプログラマ的進化を遂げられるらしいのですが)。

my $result = 2 * 3**5;

PerlでもJavaScriptでも、代入演算子 “=” の優先順序は非常に低いのです。なので、より優先順序の高い比較結果の真偽値を入れるということもできます。

var bool = x == y; // x == y の真偽値を bool に入れる

あれ、でもなんだか見づらいですね。カッコを入れるか、”==” の両端の空白を無くすか、色々なやり方があると思います。私も個人で書くプログラム、GitHubやCPANで公開するプログラム、社内プロジェクトで書くプログラムで、書き方をわけるかなーとは思います。

単項演算子や三項演算子

今回の話とはあまり関係ない話ではありますが、三項演算子 ” ? : ” の優先順位は、CやC系の言語やPerlでは「右結合」なのですが、PHPでは「左結合」なの、それを知らないとネストした三項演算子でハマる可能性があるので気をつけたほうがよいです。というかPHPでネストした三項演算子は(たとえカッコを付けて順序を明示しても)書かないほうがいいとすら私は思っています。C系の言語の普通の常識で読めないから。

単項演算子は二項演算子より高い優先順位を持っているケースがほとんどなので、少なくとも私自身は、文法上不必要な空白を入れて離す書き方をするのはケースバイケースかなと思っている派です。Perlでも、組み込み関数に見えるものが実際は単項演算子やそれと同等の優先順位だったりする場合があって、その場合には優先順位が高くなります。たとえば ref とか scalar とか。JavaScriptでもtypeofなどがこれに当たるのかな。これは英単語のキーワードなので、変数と空白一つを挟んで書く必要があったり、そのほうが自然な場合がありますが(Perlだとシジルがあるからくっつけて書けてしまう場合もあるかもしれないけど、なんか気持ち悪い)、あまり詳しくない人とソースコードを共有する場合には、明示的にカッコを付けて書くほうがよいかもしれません。

よくあるのは、否定演算子 “!” が変数とくっついていると見づらいから離す書き方。演算子の性質上、離して書いてもあまり大勢に影響がない場合が多いのですが、結合力を惑わさないように、私は否定演算子 “!” と変数を離して書かない派です。見づらいという意見には確かに同意しています。特にPerlのようにシジルがつく場合はそう。各エディタのシンタックスハイライトでどうにかしてほしいものですね。

まとめ

というわけで “=” の両端に空白を入れることの大きな意味は、代入演算子 “=” が大抵のプログラム言語の二項演算子としての優先順位でも最下位かかなり最下位に近いところにいるから、という、持論のお話でした。

たぶんプログラマの数だけ意見あるところではあると思いますが、あくまで一人のプログラマーの一つの持論ということで軽く考えていただければと思います。もし参考になったら幸いです。

2014年5月に3日間帰省しました

おがた (@xtetsuji) です。

2014年5月4日から5月6日まで、二泊三日で帰省しました。

最近は、近況報告とかブログに書いておくと、一部の読む人は読むし、自分にとってもまとまった情報としていいかなと思ったので、一応個人名刺にも刷ってあるこのメインブログに書くことにしました。Twitterで都度情報を流したりはしているのですが、まとめないとTwitterの情報は流れちゃうので、まとめるの大事かなと思います。

自分の場合、想定読者別にブログをいくつか分けて複数ブログに毛色の異なった記事を書いているんですが、まぁメインブログに何を書くかは私の自由ということで。読んで私の生活を知って楽しんでくだされば幸いです。

3月に帰省の予定を決めた

2月に転職をして1ヶ月経って、慣れないうちから仕事が忙しくなってきたので「転職してから3ヶ月経ったら精神的に疲れているかもなー」と思って気分転換がてら帰省しようと思いました。

マイルが余りまくっていたんですが、普段のゴールデンウィークだとマイル使って帰省とかできないんですよね。マイル枠の座席って相当限られているようで、すぐに埋まってしまう。

ただ、ゴールデンウィーク帰省を思い立ったのが3月だったので、2ヶ月前だったからかマイル枠が若干空いているのを発見して、ちょうど良い帰省プランを立てることが出来ました。有給は勤務半年後(8月初め)に付与されるので暦通りに行くしかなかったのですが、5月3日の便は満席だったものの、5月4日の便で帯広へ行けるので速攻抑えました。休暇は暦通りなので、6日に帰るしかなかったのですが、6日の便も最終便が空いていてラッキーでした。

普段なら先々の予定を決めるのが苦手でついつい先延ばしして、結局座席取りに苦労するというパターンなのですが、今回はすんなり決めることが出来ました。

今回の帰省の目的

二泊三日でできることは限られているんですが、以下の様なことができればいいなと思っていました。

  • 祖父の話を聞きに行く
  • cafe Jorro に行く
  • 母の日フライングとして、母にフォトビジョンをプレゼントして使い方を教える
  • 東京で出来なかった花見
  • @atashiro さんとバーベキュー
  • 先日の年末年始でうんともすんとも言わなくなった実家のWindows XPマシンをどうにかする
  • クラス会タスク

だいたい出来たこともあれば、出来なかったこともありました。@atashiro さんが別件で来れなくなってバーベキューは無しになったのと、時間と体力が足りなくてクラス会タスクができなかったことでしょうか。

Cafe Jorro に行く

子供の頃からこのすぐ近くに住んでいて、この古民家の前の住人の人も知っていたり、この付近を遊び場にしていたので、この田舎の古民家がまさかカフェに生まれ変わるとは驚きました。

開店は昨年2013年で、昨年秋に行ってみたのですが良い雰囲気で、帰省のたびに行っています。前回の来店時のことを店長さんに覚えてもらっていたようで声をかけてもらえて嬉しかったです。

祖父と話をする

以前から母づてに祖父が話したいことがあると言っていたと聞いていたので、空港から cafe Jorro に寄って、そのまま祖父母の家に行きました。高齢になって、昨年は入院することとかもあったものの、それでも健在で、今も毎日山登りしている元気な祖父なのですが、先々のことが心配になったのか、一時間くらい話を聞いてきました。自分の人生を左右しかねない話でもあったし、祖父とこんなに長い時間話したのは久々だったので疲れた。

フォトビジョンを母にあげる

Softbankから発売されているフォトフレーム「フォトビジョン」を、母にちょうどよいと思って2月あたりに買ったのですが、結局使い方を自分自身が把握するのは実家に持って行ってからになりました。転職してから仕事に慣れないうちから忙しかったのと、休日は勉強会か疲れて寝てるかのどっちかだったから。

とはいえ、シンプルな製品だったので、自分が操作するのを母に見てもらって覚えてもらいました。母には写真機能よりも、カレンダーと時計が大きく表示されて見やすい点がとても好評でした。前回iPad 2をプレゼントしたときのリアクションとぜんぜん違うので面白かったです。しかし、喜ぶポイントが見やすい時計かって感じですね。3Gの電波に時刻情報も乗っているし、電波時計並に正確な時計なので、時計としては月額840円の良質な時計なのかもしれません。

母には5年くらい前からSoftbankのガラケーを持たせていて、自分が支払う契約にしておいて家族間通話で無料にしているのですが、まぁ母親本人にあまりネットに興味が無いのに合わせて、年齢的にあの小さい画面でウェブを見たりはしないだろうと、S!ベーシックパックの契約はせずにSMS程度は送れる通話ケータイという感じにして費用を抑えていたのですが、写真くらいは手軽に送って見せたいなと思ったのでフォトビジョンを買ったのでした。

もともとそれは昨年iPad 2でやろうと思ったものの、あまり使ってもらえない割に通信コストがかかるのがあって、iPad 2の通信契約は解約してしまいました。

結果的に母には喜んでもらえたので、フォトビジョンはネットに対して能動的ではない親世代へのプレゼントとして良いかもしれないなと思いました。iPad だとどこかで能動的な操作が求められるのとは一線を画しています。フォトビジョンも操作があるといえばありますが、テレビと似た感覚なのがうまいところ。良いフライング母の日プレゼントとなりました

ちなみに実家にはインターネット回線がありません。母が使わないから。本人曰く、会社の昼休みにGoogleニュースを見るので十分らしい。会社ではパソコンを使って仕事をしているのですが、家に帰ってまでパソコンの画面を見て目を疲れさせたくないとは本人談。

個人的には帰省してインターネット回線が無いのは不自由なので、以前はADSLを引いていたのですが、新築して引っ越した街区が光化区域でADSLを引けなかったのと、戸建てで光回線を引くと相当コストがかかるので、普段使わないものにこんなに金は払えないと断念したのでした。ADSLの細い安い回線くらいなら引けたんですけどね。というわけで、自分が帰省した際は、普段は最低料金で寝かせているWiMAXルータを使って接続しています。

東京で出来なかった花見

今年の東京は、桜が咲いたと思ったら、あっという間に散ってしまった感じでした。週末に花見をしようと思ったけれど、天気が悪かったり悪条件も重なりました。

地元には「鈴蘭公園」という公園があって、ゴールデンウィークに帰省したときには花見に行っています。昨年も行きました。名所というほどではないのですが、いつ行ってもそれほど混雑もしていないし、隠れた穴場スポットです。

今年は4月末に突然夏日になるほど暑かったようで、すぐ咲いてすぐ散ってしまうんじゃないかと心配していたのですが、まだ若干残っていて安心しました。

桜の他にも色鮮やか

空が綺麗で桜も綺麗

桜の花の近影

 

写真管理ができていなくてどこにアップしていいものやら迷ったんですが、とりあえず撮影した写真をFacebookのアルバムにアップしました。アカウントがなくても閲覧可能です。

今後Flickrなどを整備してアルバムをそっちでも見られるようにしたいと思っています。

コンデジ(Canon CX3) を持っていったのですが電池切れに気づかず持ってきてしまい、結局iPhone 5で撮影したのですが、これでも結構十分なものですね。というかコンデジの電池切れに気づかない程度にはコンデジを普段使っていないというオチでした。

鈴蘭公園は、高校生まで住んでいた自宅が近くだったこともあって、よく行ったなーと思い出深い場所です。昔は名前の通りすずらんが鬱蒼と茂っている暗い公園だったのですが、今はすずらんに変わって芝生や木々が整備されて、日差しを取り入れて明るく開放感にあふれた、多くの人々がやってくる公園になっています。

実家のWindows XPマシンをどうにかする

学生時代か社会人になって早々に、Linuxノートパソコンを使っていた時、実家にもWindowsマシンがないと困ると思ってデスクトップマシンを買いました。いつ買ったのかすら覚えていないくらい昔です。当時はLinuxノートパソコンにVMwareとか入れて実用的な速度で動く時代ではありませんでした。

そのデスクトップマシン、先日の年末年始帰省で電源すら入らないことに気づいて、マザーボードのボタン電池を入れ替えたり色々と対策を講じたのですが、結局直らず、これをどうにかしようと思っていました。

とはいえ相当古いマシンで、既にサポート切れになったWindows XPときた。これが復旧したとしてもWindows 7を入れたりするのは非現実的だなと、ハードディスクからデータを吸い出す作戦に出ることにしました。このマシンがやっていることはせいぜい母のiPad 2の音楽データの管理くらいだったので、それさえ取り出せれば大したことありません。

分解が大変でしたが、とりあえずハードディスクを取り出したら容量がなんと80GB。

ハードディスクの中身を吸い出すためにパソコン工房に行ったんですが、ISAかSATAか分からずに結局接続キットを買えなかったというオチ。9割9分ISAだと思ったんですが。後で分解したらやっぱりISAでした。

母とパソコン工房でパソコンを見ていて、今ならデスクトップパソコンじゃなくてノートパソコンでもいいかもねなんて話をしていました。高性能なゲームマシンが欲しいとかじゃない限り、筐体開けてCPU取り替えたりPCIカードを挿して云々する時代じゃないですからね。

最終日の3日目はダラダラしていた

初日二日目と動き続けて疲れたのか、最終日の3日目はダラダラ過ごしていました。本当は2015年年始に行いたい同窓会タスクとかこなそうと思っていたんだけど、全然着手できず。

飛行機の予約が夜だったので、夕方に出る準備をして、母の自動車に乗せられて夕食を食べて、とかち帯広空港に向かいました。早く空港に到着したのと飛行機が遅れていたこともあって、とかち帯広空港に出来た新しいカフェで母とダラダラしゃべっていました。

最近は家族間通話無料でもあるし、電話も含めて親とのコミュニケーションは取るようにしています。それだけでも親孝行になると思っているし、早いうちから親孝行しておいたほうが色々と後悔が少ないっていうのはよく言われる話ですからね。

まとめ

このエントリ、単なる個人的なエッセーでしたが、短い帰省の日程を多少は有効活用できたかなと思います。長く帰省してもダラダラしちゃうことが多い中、こういう帰省も悪くないかなと。

あと、北海道の東側って桜の見頃はゴールデンウィーク前後であることが多いので、ゴールデンウィークの旅行に北海道を選ぶと、自分の土地と北海道で二回花見ができるかもしれませんよ。桜は東京の桜とは違う色合いですが、それもまた好き好きだし一興だと思います。

Perl入学式 #1 に参加してきました #Perl入学式

おがた (@xtetsuji) です。

2014年4月26日(土曜日)に行われた「Perl入学式in東京#1」に参加してきました。サポーターや講師側での参加です。

カレンダーを見ると、昨年度(2013年度)の「in東京#2」からサポーターとして参加していたのですが、今まで参加したというブログ記事を書いていなかったなーと思って、ちょっとでも感想を書いてみようと思った次第です。

昨年度のPerl入学式もサポーターとしてだいたい毎回参加していて、そこで得られた様々な人との貴重な出会いや知見などもまとめたいと思ってはいるのですが、それはまたの機会にします。長くなりそうだから。昨年度は本当に貴重な体験でした。

今回はサポーターだけでなく、より運営側に近い側で作業させてもらい、資料作成や後半の講義まで行いました。特に資料作成は想像以上に大変で、これを前2年間、校長を含む数人だけで回していたことを考えると、もっと運営側にコミットして助けていかないとなーと思った次第です。

Perl入学式の歴史

適当なことを書いているかもしれませんが、だいたいこんな感じです。

  • 2012年度に大阪で @__papix__ 校長がプログラミング初心者向け勉強会として開始。当時は毎月合計12回のペースだったらしい。
  • 2013年度は大阪の他に東京でも行われる。毎月から隔月合計6回のペースになり、in東京では各月の次月は同じ内容を話す「補講」が行われて、用事で来られない人向けの体制となった。当時大学院生である @__papix__ 校長が自腹で毎月大阪から上京していたというのは結構驚かれる話。
  • 2014年度はJPAの支援も受けつつ、福岡でも開催され、東京・大阪・福岡という三大都市での開催となる。この最初の「Perl入学式 in東京 #1」が先日2014年4月26日にありました。

そういえば今回、Perl入学式とは…といった部分のスライドも自分が書いたんでした。途中からサポーターで入った自分が書いてもいいものかなと思いながら書きましたが、校長チェックは通ったので、大きく間違ったことは書いていなかったと思います。

Perl入学式の体制

前年度までを踏襲して、今年度も以下のような感じになっています。

  • 講師:in東京であれば、だいたい @__papix__ 「校長」。他の都市は別途校長に依頼された人が担当する
  • 運営:グループウェア上で開催日時や会場の議論をしたり、資料を書いたりする人達
  • サポーター:当日会場内をまわって分からない人の個別サポートをする人達
  • 受講生:来てくださる方々

講師も運営もサポーターも有志で結成されていて、原則的に手弁当でやっています。また、パソコンを持ち込んでもらう必要がありますが、受講者(生徒)の皆さんの参加費は無料です(懇親会費は有料です)。パソコンを持ち込んでもらうのは、パソコンの貸出の手間やコストというよりも、学習環境を持ち帰って自習してもらいたいという考えのほうが先立っています。

運営・サポーターは何を目的に毎月手弁当で無料勉強会をやっているのか疑問に思う人もいるかもしれませんが、だいたいの人達がPerlコミュニティの促進だったり、Perlプログラマの育成といったことに大きな興味を持って集まっているわけです。とかくPerlは古いと揶揄されることも多い中、学びやすい言語であることも確かで、そういうことを伝えていきつつ、Perlの雇用促進までつなげていければいいなという感じ。これは私が思っていることで、運営・サポーターの人によって若干の考え方の違いはあるかもしれないけど、だいたい似たようなものでしょう。

今回私が担当したこと

前述ですが、今回は前年度のサポーター以上に踏み込んだ活動をさせてもらいました

  • 資料作成:後半部分を担当
  • 講義:後半部分の一部を担当
  • サポーター

後半の資料、半分くらいは昨年の資料をベースに2014年版として書きなおしただけなのですが、新たに書き起こす部分が校長から指示されていて、それを書き過ぎないように気をつけながら書いたものの、結構書きすぎて当日(4月26日)は30分オーバーしてしまったという感じです。

時間は常に気にしていたのですが、私の壇上でトークする経験って長くてせいぜい20分程度で、2時間の長丁場の時間見積もりができていなかったのは反省点ですね。

当日のお話

例年、1回目は環境構築から入ります。後々システムPerlを汚さないようにユーザPerlを作ることと、そのためにMac/Linuxでビルド環境を用意することを教えます。

だいたい人の集まりを待つので、13時を少し過ぎたあたりから開始。

自分は前年度の1回目を知らなかったのですが(顔を出し始めたのは2回目から)、これがなかなか大変。一歩間違えると、生徒さんの私物のパソコンの環境を壊したりしかねないのでハラハラものです。

MavericksからのMacは環境構築が楽なほうですが、それでもみんなが一斉にXcodeのダウンロードをしたらネットワークが詰まるということで、ここは次回の補講での課題となりました。

Windowsの人にLinux環境を作ってもらうという部分、今年度はUSBメモリによるブートできるUbuntuを使った方法も紹介したのですが、前年度同様にVMwareを使った方法も一緒に解説して、サポートコストが倍近くになったのは大変でした。結局、USBメモリによるブートの方法は、慣れていなくて会場で対応が疎かになってしまったのは反省点でした。

会場であるガイアックスさんの会場が先日最新鋭になったことで、環境構築の部分では、最初は1つの内容を投影していた2つのスクリーンを突然分けて、Mac編とLinux/Windows編で別進行となって、Mac側は急遽@tsucchiさんが壇上に立って講義をするという校長の無茶ぶりが面白かったです。そのために校長は、Macの人とLinux/WIndowsの人を最初から会場の真ん中で二分して座らせていたというのには、会場の設備を最大限に利用した良いアイデアだなぁと思った次第です。

2時間かけて環境構築を完了。15時からの後半は、校長が冒頭に話をしたあとは私のターンです。

とはいえ、スライドのビルドの方法を聴いていなかったのは段取りが悪かったと反省しています。Perl入学式用に魔改造(?)されたImpress.jsとは…。これも補講までになるべくプレーンな環境に近づけたいなと思いました。

私の書いた資料で私が壇上に立って、Perlの歴史やPerlでできること、そしてワンライナーからエディタを立ち上げて最初のプログラムを書くところまで話したのですが、資料の盛り込み過ぎだったり、講義の段取りが悪かったりで、結局30分オーバーとなってしまいました。色々反省点多い…。

運営・サポーターの人達と、懇親会に参加するために残った受講生の皆さんと会場の片付けをして、18時前に会場を後にしました。

懇親会

五反田のガイアックスさんでPerl入学式を開催したときのお約束 「居酒屋北海道 五反田店」。今回もそこでした。

色々と大変だった分、ビールがうまい。そして居酒屋北海道、食事もうまい。

今回初参加の受講生の方々や、いつものサポーターの方々と歓談をして、22時前には解散しました。

参考

「校長」として日々手弁当で講師をしている@__papix__さん、そしてJPAの理事として2014年度からPerl入学式の事業化に向けて尽力している@yusukebeさんが参加されている回のポッドキャスト「職質テックトーク」(by @moznion)を聴いてみると、Perl入学式についての思い、そしてPerlの様々な話題を聴くことができます。時間があればどうぞ。

今後の開催日程など

今回と同じ内容を行う「in東京 #1 補講」は、5月最終土曜日である2014年5月31日の予定です。また、in福岡#1が2014年5月10日、in大阪#1が2014年5月17日の開催となっています。

開催日程や詳細は公式ウェブサイトやTwitter @Perl_Entranceでアナウンスされるので、興味のある方はぜひチェックしてみてください。

Perlや他のプログラム言語、それを使ったテキスト処理やウェブ開発に興味があるけれど、プログラム言語を学ぶ取っ掛かりが見つからなくて…といった皆さんの参加を、運営・サポーター一同、お待ちしています。

MacBookやLinuxノートパソコンのバッテリー残量をウォッチしてImKayacでiPhoneに通知を送るPerlプログラムを作ったら地味に便利だった

仕事と個人で合計MacBook Air 3台に囲まれている おがた (@xtetsuji) です。

最近は複数のMacBook Airに囲まれている生活をしているのですが、現状バッテリーは自宅も会社も一つしかコンセントに繋いでいないという状況でなんとかなっています。ひとえにMacBook Airのバッテリーが持つから。一方の充電が完了したら、もう一方に充電ケーブルをつなぎ替えるだけで良いんです。当然ながら製品購入時に付いてくるものや予備で買ったものも含めて、ACアダプタは複数持ってはいますが、電源を挿す口が近くに足りていなかったり、会社に予備を置くのが面倒とか、そんな背景があります。

とはいえズボラな性格なので、こっちのバッテリーに充電してそのまま放置していたら、あっちのバッテリー残量がピンチということも結構あります。そこでMacBook Airのバッテリー残量を定期的に監視して、必要に応じて手元のiPhoneにプッシュ通知してくれるプログラムが欲しいと思って、思うままにサッと書いてみました。それが思いのほか便利だったので、せっかくなのでブログでご紹介してみようと思って記事を書いてみた次第です。

必要なのはPerlです。できればシステムPerlではなくユーザPerlが良いでしょう。モジュールはコアモジュール以外ではAnyEvent、Cocoa::Growl (存在する場合) 、WebService::ImKayac::Simple に依存します。Cocoa::GrowlはMacにしか対応していないし、WebService::ImKayac::Simple は最近登場したモジュールなので、Debian/Ubuntu のパッケージにもなっていません。そういうことを考えるとやはりユーザPerlを作る必要がありますが、そのあたりはPerlbrewやplenvの記事に譲りたいと思います。

やっていること自体は単純なので、最近のPerlのコアのみでも、もしくはシェルスクリプトでも頑張れば書くことはできると思います。

デーモン化とかは全然考えていないプログラムで、”&” でバックグラウンドに回して使う系のコマンドです。個人ユースのプログラムは面倒なので無闇にデーモン化しないというのが個人的な趣味なだけです。デーモン化が好きな方はApp::Daemonなどを使って改造していただくか、nohup や disown などを使ってください。詳細はプログラム内のPODを見てみてください。

標準ではホームディレクトリに WebService::ImKayac::Simple の設定ファイルが “.imkayac.yml” という名前で存在する必要があります。当然ながらiPhoneでImKayacのアプリをダウンロードして登録している必要があります。設定ファイルの書式は WebService::ImKayac::Simple のドキュメントを参考にして下さい。

上記のようなお膳立てでバックグランドジョブとして起動すると、バッテリー残量を10分おきにウォッチして、20% 50% 80% を上回ったり下回ったりした場合にImKayacで通知を送信します。また現在のバージョンでは、Cocoa::GrowlがインストールされていればGrowlでの通知も行い、要らないかもしれませんがお節介にも標準出力にも出してくれます。また充電が100%になったときに満充電になったこともお知らせしてくれます。監視のインターバルやバッテリー残量のしきい値の数々は、コマンドライン引数で変更可能です。詳細はプログラム内ドキュメントを参照してください。

こんな感じで通知が来ます。便利。

battery-watchdの通知の様子

適切なGitHubのリポジトリがあれば入れようかと思ったんですが、どこに入れてよいかわからない書き捨てプログラムとなってしまったので、とりあえず現状のものを $VERSION = “0.01″ としてGistに貼りました。

Linuxラップトップでも acpi コマンドでバッテリー残量を取得することが可能なので、それにも対応してみたつもりですが、現状Linuxラップトップが手元になかったので、この部分のコードはテストしていません。レポートお待ちしています。

まだ作りたてなので、色々と不具合のようなものがあるでしょう。レポートお待ちしています。

適切なリポジトリやパッケージ化の続報があれば、随時追記しています。要望ありましたら、Twitter @xtetsuji などにお気軽にお知らせください。

#!/usr/bin/env perl
# xtetsuji by 2014/04/19

our $VERSION = "0.01";

use strict;
use warnings;
use utf8;

use AnyEvent;
use Config;
#use Cocoa::Growl ':all';
use File::Basename qw(basename);
use Getopt::Long ();
use WebService::ImKayac::Simple;

use constant HAVE_COCOA_GROWL => eval {
    require Cocoa::Growl;
    import  Cocoa::Growl ':all';
    1;
};

if ( !HAVE_COCOA_GROWL ) {
    # Cocoa::Growl の無い環境ではとりあえず何もしないコマンドとして定義しておく
    *growl_register = sub {};
    *growl_notify   = sub {};
}

use constant APPLICATION_NAME => basename($0);
use constant GRAPH_DOWN       => -1;
use constant GRAPH_UP         =>  1;
use constant GRAPH_RELAX      =>  0;
use constant OSNAME           => $Config{osname};

my $p = Getopt::Long::Parser->new(
    config => [qw(posix_default no_ignore_case auto_help)]
);
$p->getoptions(
    'watch-percents=s'        => \my $watch_percents,
    'imkayac-config=s'        => \my $imkayac_config,
    'interval=i'              => \my $interval,
);

our $DEFAULT_INTERVAL = 600;

growl_register(
    app => APPLICATION_NAME,
    #icon => '',
    notifications => [qw/info/],
);

my $IMKAYAC_CONFIG_FILE = $imkayac_config || "$ENV{HOME}/.imkayac.yml";

if ( !-f $IMKAYAC_CONFIG_FILE ) {
    die qq(ImKayac config file "$IMKAYAC_CONFIG_FILE" is not found\n);
}

binmode STDOUT, ':utf8';

my @watch_percents = (20, 50, 80);

if ( $watch_percents ) {
    @watch_percents = split /,/, $watch_percents;
    if ( grep { !/^\d+$/ } @watch_percents ) {
        die "watch-percent option specify comma separated digits.\n";
    }
}

#chomp(my $hostname = `hostname`);
my $hostname = $Config{myhostname};

my $previous_percent = get_remaining(); # initialize

my $cv = AnyEvent->condvar;

my $im = WebService::ImKayac::Simple->new($IMKAYAC_CONFIG_FILE);

my $notify_callback = sub {
    my $response = shift;
    print $response . "\n"; # DEBUG?
    growl_notify(
        name => 'info',
        title => APPLICATION_NAME,
        description => $response,
    );
    $im->send(APPLICATION_NAME . ": " . $response . " ($hostname)"); # ok either flagged utf-8 or not.
};

my $timer = AnyEvent->timer(
    after    => 10,
    interval => $interval || $DEFAULT_INTERVAL,
    cb       => sub {
        my $current_percent = get_remaining();
        my $response = '';
        # process...
        for my $key (@watch_percents) {
            if ( my $res = graph_direction( $previous_percent => $current_percent, $key ) ) {
                if ( $res == GRAPH_UP ) {
                    $response = "${key}% を上回りました。現在${current_percent}%です。";
                }
                elsif ( $res == GRAPH_DOWN ) {
                    $response = "${key}% を下回りました。現在${current_percent}%です。";
                }
            }
        }
        if ( $previous_percent != 100 && $current_percent == 100 ) {
            $response = "満充電されました。";
        }

        if ( $response ) {
            $notify_callback->($response);
        }

        # reinitialize
        $previous_percent = $current_percent;
    },
);

$cv->recv();

sub get_remaining {
    if ( OSNAME eq 'darwin' ) {
        return get_remaining_mac()
    } elsif ( OSNAME eq 'linux' ) {
        return get_remaining_linux();
    } else {
        die "Unsupported your architecture yet\nPlease contact to \@xtetsuji by Twitter if you want to use this program!\n";
    }
}

sub get_remaining_mac {
    my $pmset = `pmset -g ps`;
    my ($percent) = $pmset =~ /(\d+)%; /;
    return $percent;
}

# 追加してみたけどまだ試していない
sub get_remaining_linux {
    my $acpi = `acpi -b`;
    my ($percent) = $acpi =~ /(\d+)%, /;
    return $percent;
}
# see: http://polamjag.hatenablog.jp/entry/2013/10/23/125843

sub graph_direction {
    my ($prev, $cur, $thr) = @_;
    if ( grep { !/^\d+$/ } ($prev, $cur, $thr)  ) {
        require Carp;
        Carp::croak "graph_direction error. ($prev, $cur, $thr)";
    }
    if ( $cur < $thr && $thr < $prev ) {
        return GRAPH_DOWN;
    }
    elsif ( $prev < $thr && $thr < $cur ) {
        return GRAPH_UP;
    }
    else {
        return GRAPH_RELAX;
    }
}

=pod

=head1 NAME

battery-watchd - battery watcher and observer for Mac and Linux laptop

=head1 SYNOPSIS

 battery-watchd &

=head1 OPTIONS

=head2 --watch-percents

 battery-watchd --watch-percents=5,10,15,20

Specify watch percents separated by comma.

=head2 --imkayac-config

 battery-watchd --imkayac-config=/path/to/config.yml

Specify your ImKayac config file path.

Default path is "$ENV{HOME}/.imkayac.yml".

This file format is YAML format. See below CONFIG FILE SYNTAX section.

=head2 --interval

 battery-watchd --interval=600

Specify watching interval seconds.

Default may be 600 seconds. You confirm it by following command.

 grep DEFAULT_INTERAVAL `which battery-watched`

=head1 CONFIG FILE SYNTAX

You can give a battery state by ImKayac.
So you have to tell this program ImKayac setting.
This program gives ImKayac setting file of YAML file.
It syntax is same as L<WebService::ImKayac::Simle>'s format.

Setting file's path is below "--imkayac-config" section.

=head1 DEPENDENCIES

L<AnyEvent>,
L<Cocoa::Growl>,
L<WebService::ImKayac::Simple>,
and some Perl5 core modules.

=head1 COPYRIGHT AND LICENSE

Copyright (C) 2014 by OGATA Tetsuji

This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself.

=cut

WWW::PushoverをCPANで公開しました

おがた (@xtetsuji / PAUSE: OGATA) です。

WWW::Pushover というモジュールを CPAN で公開しました。2014年4月15日現在のバージョンは、初期バージョンの0.01です。Mac OS X のクリップボード監視モジュールAnyEvent::Mac::Pasteboard以降、久々にCPANにモジュールをアップロードしました。

これはPushoverという海外のスマートフォン向けプッシュ通知サービスへのインターフェースです。もともとWebService::Pushoverというモジュールがあったのですが、重量級のモジュールをいくつも使っていたのと、PushoverにあるAPIでサポートしていないAPIが一部あったので、Perl5.14以降のコアモジュールだけで事足りるようなものを作りたくて、ずいぶん以前に作ったものをアップロードした次第です。

今回は Minilla の minil コマンドでひな形を作って作業していたのですが、念のためと FAKE_RELEASE=1 minil release をした後からおかしな状況になってしまい、結局 minil build したものを PAUSE の管理画面からアップロードするなど、混乱してしまいました。そのせいか、2014年4月15日時点でsearch.cpan.org/~ogata/metacpan.org/author/OGATA の一覧に WWW::Pushover が出てこないとか色々あってどうしたものかなと思ってはいるのですが、ひとまず cpanm WWW::Pushover と打つことでインストールはできるようです。このあたりは、次にPerlの勉強会に行った時にでもCPAN Authorの方に質問してみようかと思っています。頼れる人がいるの大事。

CPANにアップロードしたいものの色々な理由で踏ん切りがつかずGitHub止まりになっているモジュールはいくつもあるのですが、今後多くの人に有用なものは少しずつCPANにアップロードしていきたいと考えています。まだまだCPANへのアップロードは不慣れな点が多いのは、場数を踏んで解消していきたいところです。

英語ですが、ドキュメントにも書いてある通りいくつかの注意点があります。

  • Pushoverのスマートフォンアプリは、買い切りの有料アプリ
  • WWW::Pushoverを使うためには現状ログインをして自分専用の「アプリ」を作ってAPIキーを発行する必要がある

後者に関しては利用者の利便性のためにAPIキーを同梱しようか結構悩んだのですが、現時点では同梱していません。そのあたりはドキュメントにも書いてある通りです。

「日本だとImKayacがあるだろう」という意見もあるのですが、さすが有料のPushoverは高機能で、例えば以下の点がImKayacより優れているポイントでしょう。

  • Pushoverは通知のサウンドを選べる
  • Pushoverは通知の優先度を選べる
  • PushoverにはiOS版だけでなくAndroid版もあるし、iPadにもユニバーサルアプリ対応している
  • …その他色々

ImKayacは無料です(有料版もあります)が、ちょっと通知ごとにサウンドを替えてみようかなとか、AndroidユーザでImKayacを使えなかったユーザへの、もう一つの選択肢になるのではないでしょうか。

ちなみにAndroidには他にもプッシュ通知系アプリもあってAPI公開されているものもあるので、そのAPIラッパーも暇があったら書いてみたいと思っています。

Foursquareの本質とは何なのか

Foursquare大好き、ロケーションベースサービス大好きな おがた (@xtetsuji) です。

ここ最近、私の周囲ではGoogleからリリースされたAndroidアプリ「Ingress」が少しずつブームになってきています。いわゆる位置情報が取れるようになってから定期的に出てきた「陣取りゲーム」のようなものなのですが、グラフィックの秀逸さなどから、一部に熱狂的なファンを生み出しつつあるようです。 そんな中、「IngressはFoursquareより面白い」といった声も聞かれるようになりました。ただ、なんだか違和感を感じます。「Ingressってゲームだよな。FoursquareってIngressと比較されるようなゲームだったっけ?」と。

Foursquareは今や世界でも有数の位置情報のビッグデータを持った企業でありサービスです。FoursquareユーザがFoursquareでチェックインし続ける目的はそれぞれあるでしょう。そんなことを考察していき、私が考えるFoursquareの本質と、今後の展望について文章の形で考えてみることにしました。

とりとめもない長文になってしまったので、最初に結論を書きます。あとは興味と時間のある人だけ読んでいただければ満足です。また、太字だけを流し読みしていただいても嬉しいです。

結論としては

長文を読むのが面倒(いわゆる tl;dr)という人向けに結論だけ書いておきます。

  • 私が考える上でFoursquareの本質はゲームではない。新規ユーザを取り込むためにバッジといった「ゲーミフィケーション」を設けているのは呼びこみの一つに過ぎない。バッジ目的でFoursquareをしても、早晩頭打ちになる。
  • Foursquareは位置情報のビックデータを持つ有数の企業になった。今後はこの情報を使って、O2Oを仕掛けてくる。また、位置情報を欲する企業や団体と連携して音頭をとって収益モデルを築いていく。
  • ユーザがFoursquareを使う大きなメリットの一つは、ライフログであり、それは個人のビッグデータである。また、Foursquareが仕掛けてきつつあるO2Oの情報を使うことで、いわゆる食べログよりももっと汎用的なべニューランキングツールとしてユーザにメリットをもたらす。
  • 実際に興味のある人は、熱心なFoursquareユーザ(4sqer)と顔を合わせて語ると良い。4月16日のFoursquareの日に、全世界で4sqDay Meetupが行われる。2014年も東京でも行われる予定。私も行く予定です。

Foursquareはゲームではない

Foursquare自体、仕組みとして「バッジ」などといったコレクション要素のあるゲーミフィケーションの仕掛けを用意していますが、Foursquareの本質はここにはないと思います。 バッジを集めるためにわざわざ外出するという動機付けのもとに頑張っている人もいることは確かですが、多くの人はそうではないでしょう。後述の「位置ゲー」企業の中の一部は、自治体などとタイアップして観光誘導などで成功している例もありますが、Foursquareはそういうことを直近では行わないと思います。不正チェックインは論外です。

そうなると普段の生活圏内でチェックインをしてどれだけバッジが収集できるかといった話になるわけですが、一通り数十種類のバッジが集まったら、あとはほとんど手に入らなくなってしまうでしょう。 またメイヤーについてもゲーミフィケーション的要素ですが、これは「ユーザの中でも最も常連である」的意味合いしかなく、奪い合うものではないと思います。これも普段の生活圏内でチェックインしている限りは、それほど増えるものではありません。

要するにバッジやメイヤーといったゲーミフィケーション要素は、Foursquareの本質ではないと私は考えています。 もちろん、Foursquareユーザの中には様々な場所に足げく通い、バッジやメイヤーの収集に楽しみを覚えている人もいます。当然ながら、楽しみ方や活用方法は人それぞれではありますが、それがFoursquareユーザの大多数かと言われると私は否定的な方です。

位置情報とその実用と遊びの前史

いわゆるガラケー、ドコモなどでは基地局によるキロ単位の位置情報が取れる機能がありました(オープンiエリアなど)。その頃から、地図などを表示するという実用アプリが徐々に出てき始めました。まだ、精度的にもゲームに利用するには早い時期でした。 その後、多くのガラケーがGPS機能を搭載して、地図アプリなどが高機能化します。ガラケーにもGoogleマップといったPCでお馴染みの「実用アプリ」がガラケー向けにブラッシュアップして登場します。 そのなかでGPSの位置情報が、「実用」と対比される「遊び」(=非実用)に利用される事例が現れ始めました。スマートフォンの前の時代は、世界的には日本のケータイ(ガラケー)が性能的にも最高峰の携帯電話でした。この点でも日本が先行していたと言えるでしょう。特に「位置ゲー」という登録商標をひっさげて市場に切りこんできたコロプラはよく知られた企業です。このころ、コロプラという企業の前身である「コロニーな生活」が作られた頃から、企業や個人が多くの位置情報を活用したゲームを公開します。 しばらくは日本のガラケーによる位置情報を活用したゲームが先進していました。

その状況を塗り替えることになるのがスマートフォン、特にiPhoneの登場です。このころから、Foursquareのような位置情報サービス・ロケーションベースサービスと呼ばれる毛色の違うものが登場するのですが、その詳細は後述します。

Foursquareに至るまでのロケーションベースサービスの歴史、そしてGoogleの戦略

スマートフォンが登場する前後に、アメリカで「Dodgeball」というサービスが生まれました。これは実は今のFoursquareを作った人達によって作られた位置情報サービス・ロケーションベースサービスなのですが、ほどなくしてGoogleに買収されてしまい、そしてサービスが終了してしまいます。

Googleはというと、買収したDodgeballを無駄にしたというよりも、そのノウハウなどを利用して新しいものを作ったと想像しています。それが記憶にある人もいるだろう「Google Latitude」です。これはスマートフォンの位置情報を送信し続け、仲間達の間で位置情報を共有しあうというサービスだったのですが、セキュリティ上の懸念が優先してしまい、いまいち流行らず、そして数年ののち終了してしまいました。

Dodgeballを作った人達は、GoogleにDodgeballを売却した後、新しいロケーションベースサービスを作ります。それが今のFoursquareです。ちょうど高機能なスマートフォンが出てきた時代であったり、Gooogleにサービスを売却した人達が再度類似サービスを作ったという状況などが話題となり、Foursquareは一気に有名になっていきます。

当初は、日本も世界もスマートフォンをゲームに活用しようという機運が非常に高く、その括りでFoursquareも位置情報ゲームとし捉えられることが多かったように思います。ちょうど日本でのガラケー時代からのコロプラ勢などの影響もあるでしょう。ただ、当時のFoursquareの経営陣はゲーミフィケーション的要素はユーザ獲得の入口に過ぎないとしていたのだと思います。当時のFoursquareは収益モデルも確立しておらず、多くの人が先行きを不安視したりしましたが、現在は位置情報のビッグデータを持つ有数の企業として、対企業向けにそれを元に商売をしていることは知る人ぞ知るFoursquareの顔です。

ここで話を戻して、Googleはせっかく買収したDodgeballを閉鎖し、その後のLatitudeもサービス終了して、位置情報サービスの負け組となったのかというと、そうでもないようです。ユーザ数ではTwitterやFacebookに大きく水を開けられているGoogle+ではGoogleマップと連携したチェックインの概念を持ち込み、最新のAndroid端末のウリとなっている「Google Now」でLatitudeのような機能を持ち込み、そこそこの好評を得ています。また、冒頭に出てきた「Ingress」などにも経験が生きているのかもしれません。

Googleくらいの大きな企業ともなると、位置情報への投資と失敗は些細な出費なのでしょう。Googleがここまで失敗を繰り返してもロケーションベースサービスに興味をもったのは、一つはソーシャルメディアへの強いあこがれと、もう一つは自社のメインサービスとなったGoogleマップやGoogle Earthの進化といった理由があるのではないかと私は見ています。

FoursquareとGoogleは仲が良いかと言われると、そうでは無いように見えるところが面白いです。Googleマップの企業向けの利用料が格段に上がったときにいち早くGoogleマップの使用をやめた企業の一つがFoursquareです。FoursquareはOpenStreetMapを使う選択をしました。Foursquare自身も自分たちが作ったサービスを潰されて、しかもFoursquareの対抗サービスを定期的に出してくるGoogleに、あまり良い気分をしなかったことは大いに想像できるところです。

またFoursquareはGoogleのライバルとも言えるAppleとの接触を何度か図っています。記憶に新しいところでは、新しいiOSで採用されて大不評となったAppleマップのデータ改善にFoursquareが情報提供をしたという報道。これが事実であるかは不明ではありますが、FoursquareはどちらかというとGoogleよりもAppleに寄っているという見方は正しいのではないかと思います。

GoogleとFoursquareという軸で話をしてきましたが、私の想像なども入っているので、全て事実であるという保証は無いところはご注意ください。また、日本語のWikipediaの以下の記事を参考にさせていただきました。

今もFoursquareに熱心なユーザは何を目的に使っているのか

どの無料サービスにも言えることですが、サービスを何年も継続していると、登録はしたものの使わなくなったユーザと熱心に使い続けるユーザの二通りに分かれるのは常といえます。

では今もFoursquareをしているユーザのモチベーションとはなんなんでしょうか。

少なくともゲーミフィケーション要素は、何年もFoursquareを続けていくと薄れてきます。バッジも取れなくなるし、メイヤーも取れなくなる。

ユーザの目的の一つは「同報通信」的目的があるでしょう。Twitterの「○○なう」の代わりにFoursquareを使う人です。私もそれを実践して、カフェにいたら私に会いたい後輩がやってきたという出会いがありました。位置情報を公開する事のリスクばかりが取り沙汰されますが、一定のプライバシールールを意識することで、有用な出会いのツールになるのではないかと思います。

もう一つ、これが重要なのですが、ライフログ的使い方があります。FoursquareはiCalなどのフィードもしていて、いつどこに行ったのかという情報を後から振り返る機能をいくつも提供しています。GoogleカレンダーにiCalファイルを登録すると、何年も前のチェックイン情報を振り返ることができます。これが数年分たまると、とても興味深い自分のライフログ・個人版ビッグデータとなるのです。

今後のFoursquareはどこに向かうのか

Foursquareの本質が、少なくとも多くの人にとってゲームではないことは前述した通りです。

ではFoursquareの本質は何なんでしょうか。いったいFoursquareは今後どういった方向に向かうのでしょうか。

一つは位置情報のビッグデータを使って対企業に商売をするという方向性があります。これは純粋に位置情報が欲しい企業への情報提供というものでしょう。あまり一般ユーザには関係ない話かもしれませんが、AppleマップやOpenStreetMapが改善するかもしれないことを考えると、我々に無関係な話でもなさそうです。

また、日本でいうところの「食べログ」的な情報発信源になろうという目論見も垣間見えます。つまり、いまどきの言葉で説明すればO2O事業への参入です。既にFoursquareは、飲食店などのビジネスパートナー向けのアプリケーションをリリースしています。今後、日本での活動が活発化した際には、この分野での攻めもあることでしょう。以前からアメリカでは「Yelp」と競合すると言われてきました。2014年春、ついに日本にもYelpが遅れて上陸したわけで、Foursquareの動向には注目が集まります。Foursquareの経営陣は「世界で一番多いチェックインは新宿駅」などといった、日本を注目しているといった発言もたびたびしており、日本でのFoursquareの本格的な活動が楽しみであるというのが、Foursquareの一ファンである私の意見です。

飲食店に限らず、全世界の全ての場所「ベニュー」を包括的にレーティングし、それを一時発信元として発信できるのは、Foursquareなど一部の限られた企業だけでしょう。また、一連のステマ騒動や星3つ収斂問題を抱えている食べログの牙城が誰によって切り崩されるのかといった興味もあります。それはYelpかもしれないし、Foursquareかもしれません。外来のO2Oプレイヤーの活動から今後も目が離せません。

Foursquareのユーザと交流することでFoursquareの色々な面が見えてくる

既に周囲でFoursquareをやっているユーザがいないけど、なんとなく好きだからやっているというユーザは、FoursquareのMeetupなどに参加してみるとよいでしょう。

4月16日は4の2乗(square)が16であることから「Foursquareの日」とされており、その日に全世界でMeetupイベントが行われます。今年2014年も東京でイベントが行われます。

私も2012年に参加して、様々な目的でFoursquareをプレイする人達の様々な意見を聴き、非常に興味の持てる、幅の広いサービスだという印象を持ち、さらにFoursquareが好きになりました。

もしFoursquareに漠然とした興味はあるけど、その本質が何か分からないという人は、FoursquareのMeetupに顔を出すなどして、実際にFoursquareのコアユーザと話をしてみることで新たな視点が得られることは間違いないでしょう。初心者から開発者まで、様々な人達が集まった過去の4sqDay Meetupでしたが、みなさん非常に楽しんでいました。

上述の、2014年東京のFoursquare Meetupには私も参加します。後日レポートを書く予定ではいますので、もし興味があるけど出られないという方は、楽しみに待っていてくださると嬉しいです。

過去の4sqDay Meetupのまとめなどを引用して、この文章を締めくくりたいと思います。

皆さんのFoursquareライフが充実したものになることを願っています。

MacBook Air でハズレのLG製ディスプレイを引いた場合の対処方法

おがた (@xtetsuji) です。

2014年4月、個人でも会社でも「MacBook Air 13インチ 2013年モデル」を使っています。中のSSDのサイズが違うくらいで、あとはほとんど同じスペック。2014年1月に会社で使いたい機種を選ばせてもらえることになったとき、個人で使っているものと違うのがいいかなぁと一瞬思ったけど、まぁ同じ方が色々と無難かなと思った結果です。個人で買ったのは2013年6月、発売すぐです。

とはいえ最近気づいたのですが、会社で2台並べてみると、ディスプレイの色合いがぜんぜん違う。最初は会社のMacBook Airは外部ディスプレイに接続しているからカラープロファイルが違うのかなとか適当なことを思っていたのですが、個人で使っているMacBook Airの色合いの悪さが日に日に気になっていたので検索してみたら、見事にそういう記事がありました。

この記事は2012年モデルについての解説ですが、2013年モデルでも同様です。

Macでディスプレイの製造メーカーを調べる方法

ターミナルで以下のコマンドを実行すると、ディスプレイの製造メーカーが分かります。

ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | strings -6

もし「stringsコマンドが無い」といったメッセージが出てXcodeを入れるのに抵抗のある方は、システムに標準で入っている perl が使えます (2014/04/09 追記)。

ioreg -lw0 | grep IODisplayEDID | sed "/[^<]*</s///" | xxd -p -r | perl -E '$str = do { local $/; <>; }; say for $str =~/([x20-x6f]{6,})/g'

stringsコマンドはXcode Command Line Toolsが必要なようです。

stringsにはXcodeが必要

出力される結果は以下のパターンがあります。

  • LPから始まる文字列 → LG製造 → ハズレ
  • LTH、LSNから始まる文字列 → Samsung製造
  • Bから始まる文字列 → AU Optronics製造

自分個人のMacBook Airで実行したら以下の結果になりました。

LP133WP1-TJA7
Color LCD

見事にハズレorz。

会社のディスプレイは以下の結果になりました。

LSN133BT01A02
Color LCD

Sumsung製。やはり発色が良いのはこの違いだったか…。

具体的に言うと、LG製のディスプレイは白も黒もしまりがない感じになります。Sumsung製のディスプレイを見慣れると、薄ぼけた感じになるというか…。

ありがたい事に、LG製のハズレのディスプレイの発色をマトモにする方法があるということで、早速やってみました。

ハズレのLGディスプレイで発色をマトモにする方法

以下の方法はLG製のハズレのディスプレイへの方法です。他のアタリのディスプレイに施す必要はありません。逆に色が濃くなりすぎて見づらくなるのでやめたほうがよいでしょう。

  1. 有志が補正したプロファイルをダウンロードします。
  2. Finder で “/Library/ColorSync/Profiles/Displays/” を開く。さっきターミナルを開いているなら、open /Library/ColorSync/Profiles/Displays/ というコマンドを打てばOK。
  3. ターミナルで開いた Displays フォルダに、先ほどダウンロードした CustomMacRumors.icc をコピー。ここで認証が求められますが、適切なものなので承認します。
  4. システム環境設定 → ディスプレイ、と進みます。
  5. 「カラー」タブを開き、「このディスプレイのプロファイルのみを表示」のチェックを外します。表示項目が増えますが、下にあるほうの「カラー LCD」を選択します。
  6. 選択した途端に色鮮やかになったら成功です。黒色のしまり具合を見てみると違いがよくわかります。

チェックボックスを外して増えたカラープロファイル群

認証ダイアログが出た場合には「認証」を押して、管理者パスワードを入れて進めましょう。

Displayには認証が必要

これでLGのハズレディスプレイでも色鮮やかなMacBook Air 13インチ 2013年モデルになりました。Sumsung製のディスプレイと並べても遜色の無い色合いになりました。

その他

AppleがSumsungと喧嘩をしていることは有名で、今後はSumsung製ディスプレイの供給は減っていくのかもしれませんが、そこのところどうなんだろう…。

LGといえばNexus 5を作ったところとして記憶に新しいです。ただ、Nexus 5 の液晶ディスプレイには特に不満を覚えないのですが、これはLGが製造していないということなんでしょうか。それとも比較対象が無いから分からないだけとか?

参考

その他にも、検索をしてみると世界中で話題になっているようです。

比較対象が無くて、特にLG製でもいいやと思っているMacBook Airユーザの方、面倒がらずにカラープロファイルを入れ替えてみたら、見違えるほどMacBook Airの向こうに広がる世界が良くなりますよ。