メニュー

関連ページリンク

トップ > tohokuaiki > tohokuaiki - 人気ブログ(Blog)検索結果詳細 (2008年12月3日 8時)

[はてブ][JavaScript][ニコニコ動画][Flash]はてブのiframeブックマークレットでembedにwmode=”opaque”指定してるから呼び出した後ニコニコ動画とかでコメント入力できないかも

新はてなブックマークのブックマークレットは今までみたいに新しいウィンドウではなく、ページ内にiframeのdivで出てくるようになったわけだけど、Flash上でもちゃんと表示されたので「あれ?」って思った。


前におんなじようにそのページをブックマークするブックマークレットを作った時があって、

その時はJavaScriptのレイヤーよりもFlashの方が上に来てしまったのよね。


で、その当時調べた結果はembedのwmodeを指定するってやつでした。

参考:javascriptのドロップダウンメニューがFlashに隠れる。 | ちぷろぐ

wmodeの値にはtransparent(透明化)とopaque(不透明化)があるけど、値はそのときの気分でいいみたい。

なんしか、wmodeがあればいいのです。

wmodeの値は、 opaque推奨。transparentはなんやかんやとバグがあるらしいので。

つまり、wmodeを指定してあるようなページでは自分で作ったブックマークレットも上手くFlashの上にJavaScriptで作ったdivが出てきてくれたわけです。


ただ、今回のはてブのブックマークレットはwmode指定をしてないFlashの上にもちゃんと表示されてるので「あれ?」ってなり、調べてみた結果wmodeをopaqueにしてたと。


そうなるとwmodeのopaqueについての話だけど、確かこれやると日本語入力できなかったんじゃないかな?って。

参考:graffiti-blog: wmodeのクセ

* ホイールが効かなくなる

* 日本語入力ができなくなる(Mozilla系?)

* 日本語を確定するまで枠内に文字が表示されない(IE)


ということで、試しにニコ動の動画でブックマークレット使った後にコメント入力しようとしたらできなかったと。

# 僕の環境だけかな?Firefox3.0.3でwindowsXP。


なんだかんだ長々と書いたけど、そもそもFlashで日本語入力する機会が僕にとってあまりないし、コメント入力してからブックマークすれば良い話だから案外どうでも良いことです。

じゃあ何でわざわざ書いたかと言えば、僕の環境だけかもしれないし、実は解決策があったりするのかなとか思ったし、もう少し言えばはてブのブックマークレットが進化してくれればそれを真似できるからいいなと思った次第です。

作者:lesamoureuses

更新日:2008年11月11日 14時56分

このブログのホーム

[カンファレンス]はてなブックマークリニューアル発表会見に行ってきた。検索すごかった。

はてなブックマークリニューアル発表会のお知らせ - はてなブックマーク日記 - 機能変更、お知らせなどに行ってきました。

結構早口での発表だったのに、あっという間に時間が過ぎてしまっていた。

と言うことで、発表で漏れた話とかまだまだありそうな感じでした。

発表会に出た人はアルファ版を使えるということでざっくり使ってみた感想とか

  • 発表会について
    • みんな写真ガンガン撮るのね
      • カンファレンスとかとは違ってガンガン写真撮る様子に驚いてしまった
    • Preferred Infrastructureの太田さんが言っていた「検索に人を感じることができる」ってのは良い言葉だなと思った
      • 昔のY!の検索みたいな「人によるランキングとかカテゴリー分け」が駄目だなってところから、「機械的にランキング」するGoogleみたいのが出てきたけど、やっぱりゴミは多いし、結局情報の取捨選別は人がしないといけないよねという流れですよね。そのツールとしてブックマークがあるけど、まだまだ便利になる可能性がたくさんあるなぁって感じた。
  • 検索すごい
    • 発表するだけあって検索の速さはすごいな
      • 自分のブックマーク内を検索してみたところ、2005年のが87msで出てきた
    • 自分のブックマーク内の検索ならページ遷移せずに昔のも一気に出せるのがいい
      • position:absolute;でちっちゃいdivがページに被さり、そこに結果が表示される
  • タグサジェストで今までいくつ使ったかって数字が出るのはいいな
    • あんまり使ってないタグを選んでしまって記憶から消えてしまってたので
  • 「お気に入り」とか「スターフレンド」については実際に他の人も交えないと全体像が見えないので楽しみにしとく
  • ここがちょっと
    • 自分のブックマークを検索するときに被さるdivがデカイ
      • 僕のモニターが小さいのが悪いのかもだけど、結果リストを全部を見るためにスクロールしないといけないのよね。
      • なのでスクロールしては上に戻り「次のページ」を押すことになった
      • 検索結果数変更できるのかな?と思ったけど設定とかにはなさそう
    • 検索結果のdivをxで消した後にもう一度表示できない?
      • 一度結果リストのdivを消しちゃうと、検索窓でEnterを押しても駄目だった
      • 一度消してもう一回入力が必要(消す人はもうリスト要らないだろうからってことかな?)
    • ブックマーク追加の時のタグ入力方法は変わらなかったのか
      • このUI変えちゃうと不満が出ちゃうから仕方ないのかな?またgreasemonkeyとかの開発で入力補完しようか
    • 自分のコメントを編集するときのUIにちょっと違和感
      • 自分のブックマークリストの場合、編集の鉛筆と削除のxが出てコメントの編集とかクリップの削除ができるのだけど、編集の方は鉛筆部分でないところをクリックしても編集モードになるのよね。
      • 自分のコメントをコピペしようとして編集モードになってちょっと困った。
    • コメントのユーザアイコンを間違えてクリックする(これは慣れだな。あんまり使わないし)
      • ユーザアイコンをマウスオーバーすると[▽]が表示され、それをクリックすると「お気に入りに追加」「非表示に追加」のメニューが出てくるんだけど、[▽]を押そうとして間違えてユーザアイコンの方クリックしちゃう。あわわわってなる。
    • ブックマークレットが人によっては重いかも(僕のPCの性能が低いせいか、タグ多すぎるせいか)
      • 公開までにパフォーマンスあげるのかも
      • inlineで表示させるのでタグを取ってくるのに時間がかかってるのかな?
      • デフォルトで「一部のタグ表示」になってるんだけど、「すべてのタグ表示」の状態でブックマークレット閉じちゃうと、次に使うときに全てのタグ取ってこようとするからタグ多いとやばい
      • Firefox3でやってたらちょっと固まってしまった。でも僕のFirefoxは固まるのがデフォルトなので仕方ない
    • あとinlineのブックマークレットになるとframe使ったページがブックマークできないかな
      • いまどきframe使わないでよって話ですね。
      • でも、堀さんと宮村くんがブックマークできないよ!
      • [2008-11-07追記]今試したらできるようになってた!document.getElementsByTagName('frameset').length調べて、framesetだったらページを飛ばすのかぁ。なるほどー。

発表内容のメモは以下。

はてブについて

  • ユーザ数(2008/11現在)
    • 195,000
  • 被ブックマークエントリー総数
    • 1,000万件
  • 登録ブックマーク数
    • 3,100万件
  • UU(Google Analytics)
    • 300万/月

id:naoyaあいさつ

  • 発表会の理由はぜひ記事にしてもらいたいため
    • 何が変わるかを多くの人に正確に伝えてもらいたい

現状はてブの問題点

  • 乏しい検索機能
  • 古めかしいデザイン、UI
    • 作ってから結構経つので仕方ない
  • 画一的な話題
    • いろんな話題があるのに特定のが目立ち過ぎてる
  • 低い「お気に入り機能」の利用率
    • 現在は15%くらいのユーザしか使ってない
  • 強すぎるページ制作者への影響
    • コメントのネガティブ攻撃
  • 拡張しづらい内部システム
    • 合宿でドンっと作ってしまったため、上記の問題点を解決をしづらい設計になってる

ユーザに向けての新要素

  • 保存:新しいUI
  • 発見:検索機能
  • 共有:ソーシャル性強化で共有しやすく

リニューアルモチベーション

  • 拡張しやすいようにコードを奇麗にしたい
  • 今後の改善に備える(大きく2つ)
    • 検索やUIなどの「機能層」の改善
      • 今回のリニューアルで提供できる
    • メディア性、コメント問題などの「社会層」の改善
      • 今後半年かけて力を入れたい
      • 前段階として、まずは「お気に入り機能」を強化した

スクラッチからの再開発

  • 一から再開発
    • より拡張しやすくを考えた
    • テスト駆動開発で安定性を上げた

機能の変更点

  • 全文検索搭載
    • ブックマークしたページの本文を検索して結果を表示
  • ソーシャル性、コミニティ性強化
    • お気に入り、お気に入られ、タブ機能
  • UI改善
    • ページ遷移をしない検索
    • より自然な導線づくり
      • タグの一括変更など、既にある機能にも「こういう機能ないですか?」と問い合わせが来ていた
  • テキストマイニングによるカテゴライズ
    • ベイジアンを使った自動カテゴリー分類

検索技術

  • Preferred Infrastructureと協力
  • はてブ内全体検索
    • ブックマークしたページの本文を全文検索
      • 本文を抽出してインデックス化(web検索と同じ)
    • 検索結果に自分のコメントや「お気に入り」のコメントが出てくるため、検索結果をさらに自分で取捨選別できる
    • 「あの記事なんだったけ?」を解決するための機能
    • ただし、ユーザのコメントやタグは検索対象ではない
  • 自分のブックマーク内検索
    • インクリメンタル検索
    • 過去の記事も瞬時に(2005年のもすぐに出てきた)
    • 検索窓にキーワードを入れると検索結果リストがページにかぶさる感じ
    • タグ、コメントも検索対象
      • こっちにはページ本文は検索対象に入らない

ソーシャル性の強化

  • 「お気に入り」を強化
    • 「お気に入られ」機能の搭載
    • 相互リンク性を高めた
  • 自分がブックマークした記事に他のお気に入りのユーザがどんなコメントを付けたかわかる
    • id:TAKESAKOよりも4日も早くブックマークしたよ」とか悦に入って楽しくなれる
  • 人気エントリーにもお気に入りユーザが登録しているかどうかが表示される
    • 情報の取捨選別
  • どこにもかしこにもお気に入りユーザが表示される
  • 情報収集の軸をもっと強化した
    • 新機能「タブ」により、外部コミュニティの人間関係をはてブに持ち込んだ
  • 「タブ」:それぞれのタブに関するブックマークリストを表示する
    • 「お気に入り」タブ
      • 自分のお気に入りのユーザがブックマークしたリストを一括表示
      • 「お気に入りのユーザのうち3人以上がブックマークした記事」で絞り込むことなどもできる
    • 「グループ」タブ
      • 自分が入ってるはてなグループのブックマークが表示される
    • 「スターフレンド」タブ
      • はてなスターのブックマーク表示
    • 上手く行くかわからないけど、今後「マイミク」や「twitter」のリストも持ってきたい

自動カテゴライズによる記事分類

  • 今のカテゴリは多分誰も見てないよね
    • しかもカテゴリが全然合ってなかったりする
  • カテゴリ機能一新
    • もうはてブはITだけじゃない
    • 今までもいろんな話題が多かったけど、技術系が目立ちすぎてた
      • Diggも技術系が多かったけど、カテゴリを入れたら他のも目立つようになったという記事を見た
    • ベイジアンで学習
      • Complement Naive Bayes
    • 新聞記事なら90%正確に分類できる
    • ざっくり8項目に分けた(今後はもっと細分化したい)
  • 機械だから間違うことがあるけど、ユーザが変更できる
    • それを機械学習し、より自動分類が正確になる
    • 過学習で悪さされることを考慮し、機械学習の制限も考えている

ユーザ操作を快適に

  • ブックマークリストからブックマークしようとしたときにページ遷移するのは億劫だよね
    • [B!]でページ遷移なしにどんどん追加できるよ!その時もタグのサジェストはしてくれるよ!
  • あるユーザのコメント非表示も可能
    • コメントのユーザアイコンにマウスを置いてクリックすれば「お気に入りに追加」と「非表示に追加」のメニューが現れる
  • ブックマークレットも一新
    • ページの中でinlineでブックマーク
    • タグサジェスト時に、タグをどのくらい使ってるかの数を表示してくれるため、あんまり使ってないタグを間違って使わずに済む
  • AutoPagerize,キーボードショートカットはそのまま使えるようにしてある
  • spam判定も入れてある

ユーザ向けのお詫び

  • デザインをユーザカスタマイズできなくなった
    • テーマ作ってくれた方など申し訳ない
    • 検索のインクリメンタル機能を入れたためHTML構造を考え直した
    • 正式版までにはある程度の自由度
      • ただし、そこまででかくは変更できない予定。色変えたりだとか
  • エントリー概要編集機能廃止
    • 有意義な利用ケースがなかった

本文抽出などのシステム内部の話

  • 本文抽出ライブラリ開発
    • サイボウズ・ラボ社のオープンソースを基に開発
      • ExtractContent
  • はてなブックマーク内のクローラ
    • 検索結果をフレッシュに保つ
    • リンク切れコンテンツの管理
    • Hadoopを用いた大規模クローラ
      • インターンシップの学生が1ヶ月かけて作ってくれたのを基に

検索技術について(Preferred Infrastructure側から発表)

  • はてなとは今年の夏に技術提携
  • ACM/ICPC世界大会13位、未踏ソフトウェアで有名
    • インフラに強い
  • 全文機能の概要
  • ブックマークされた全ページ約1000万件の内容を検索
    • 「はてブらしい」ランキング
      • ブックマーク数、情報鮮度をリアルタイムに計算
    • 検索キーワードの関連キーワードも出せる
    • ランキングアルゴリズム
      • 必ずしも公式サイトが上位にこない
      • 技術系の話題には非常に強い(カテゴリー機能によって今後いろんなカテゴリで強くなることを期待してる)
    • リアルタイム性を追求
  • 検索エンジンSedueの紹介
    • 未踏ソフトウェアの成果を事業化
    • 検索用インデックスを出来る限り圧縮
      • オンメモリでの検索を実現
      • 漏れのない検索
    • モバイル検索のhttp://froute.jp/などで使われている
    • 特徴
      • スケーラビリティ:文章が増えても台数増やせば平気
      • 耐障害性:インデックスを移せばOK
      • 即時性
  • 検索機能の今後の展開
    • Web全体を対象にした検索エンジンの構造
      • ブックマークされたページをシードにする
      • 汎用的な検索エンジンへの進化
    • 検索精度の向上・周辺機能の拡充
      • 表記揺れの対応:「Yahoo/yahoo」などの大文字小文字も今は対応できてない
    • 検索クエリログを使用した精度向上

スケジュール

  • 11/4アルファ版公開
    • 発表会に参加したのみ
  • 今週から来週頭にパブリックβ開始
    • どこまでのユーザに限定して提供するかは考え中
  • 11/25に既存バージョン停止
  • 2009初旬Firefox拡張リリース
  • 2009以降はてなブックマーク市民、モバイルリニューアル

ロードマップ

  • リニューアル直後
    • バグフィックス
  • リニューアル完了後
    • Firefox拡張など新機能の提供
      • プロトタイプはできてる
    • 「社会層」の改善に向けての取り組み
    • はてなブックマーク市民
      • はてなダイアリーの市民のように何かしらのメリットをもたせたい
      • 「はてなブックマーク議員」(あんまり良い名前思いつかない)も考えてる
  • 予定
    • モバイル版リニューアル
    • 検索範囲の拡大
    • コメントのモデレーション機能(ネガティブコメントをどうしようか)
      • まだ仕様固まってない
    • ディスカッションを追える機能を作ろうと思ってる
      • はてブは議論が途切れて追えなくなってしまうと言われているので
      • プロトタイプは出来てる

質疑応答

  • どうして発表会?
    • メディアに広げてほしい
    • 広報チームができた
    • その日までにがんばるためのプレッシャー
  • ユーザのターゲット層
    • 今までのはてブの話題をもっと分散させてより話題を多様化させたい
  • 収益化の戦略
    • 検索の機能による検索連動型広告
    • 「広告増えるんじゃない?」って事前の声が多かったけど増やしてない
      • 増やせば収益上がるけど、使いづらくなるから自分も増やしたくない
  • ユーザのメリットは?
    • UIとコミュニティの強化
  • デメリットは?
    • ユーザ向けのお詫びのとおりデザインとかごめんなさい
  • APIの仕様は?
    • 不具合がでなければ仕様はそのままでいくつもり
    • 現バージョンをそのままもってくるつもりなので大丈夫だと思う
  • リニューアルの明確な目標値は?
    • 来年の夏までに20万人ユーザを30万
    • UUを倍の600万くらいにする
    • 現在はお気に入り機能を15%くらいのユーザしか使ってない
      • 6,7割に使って欲しい
  • 世界的にみて新しいことは?
    • 検索技術のアルゴリズム
      • google,yahooでは検索できないものを検索できる
    • カテゴリの自動化
    • お気に入りのソーシャル性
  • ダジャレはこれからも書けるのか?
    • もちろん
  • お気に入りのユーザをどうやって探せば良いか?
    • 社内リリースの時もその話はあった。お気に入りのリコメンド機能を作りたい
  • システムの安定性、レスポンスは?
    • 主要なページは1秒以内
      • 現行版も速くて0.3秒で返せてるので、もう少し速くしたい
  • プライベートとパブリックの機能については?
    • エントリー単位のプライベート化は今まで通り考えてない
    • プライベートに設定していても、お気に入りに登録した人は見れる機能は作ってある
  • 近藤社長からのコメントなどはあった?
    • 週に1回ブレストをやってまとめた
      • スターフレンドは近藤社長の提案
      • コメントをもっと使おうというのも言われた
  • カテゴリのベイジアンだと悪さの学習が出来ると思うけど?
    • ユーザ限定フィードバックにしようかとも考えてる
    • まだ考え中だけど、はてなブックマーク市民がやるとフィードバックがかかるなど
  • Sedueは他のサービスにも入れるの?
    • 検討してるけど、発表できる段階までいってない→「はてなアイディアの検索使えないから入れてほしい」と言われて苦笑い
  • 本文抽出の時に特定URLの場合はここを取るとかある?
    • 登録してる。今20くらい。
    • amazonとかはAPIがあるのでそれを利用したりしている

他の人のまとめとかははてなブックマークリニューアル発表会を開催しました - はてなブックマーク日記 - 機能変更、お知らせなどに出てると思う

作者:lesamoureuses

更新日:2008年11月5日 11時30分

このブログのホーム

[カンファレンス][EngineerSummit]ネガティブ方向の話がテーマだったと知らずにエンジニアの未来サミット行ってきた

パネラーの一覧と学生との対談ってキーワードだけで面白そうと思って行くこと決めてたから「泥が何とか」とか「10年下積み」とかそういう話になるとは思ってなかった

  • 全然調べずにカンファレンスとかセミナー行っちゃうのはちょっとまずいかな。モチベーション上げるための手段になってるからどんどん行きたくなっちゃうんだよな。

第一部は学生との対談だからもっと身近な話ばかり出てくるのかと思ったら何だか変に「日本の会社」とかそういう抽象的な話題になってた。

  • 自分が学生の時は不安な気分とかなかったから「何が不安なのか」とかそういう学生の言葉をもっと聞きたかったな
  • やっぱり弾さんと吉岡さんの絡みが面白いな。時間気にせずで良いならずっと見ていたい気分だった。
    • 両方とも反論+極論に近かったりするから平行線になってまとまらないのかな。聞いてる側からすると似たようなこと言ってるのになぜか言い合いになってる感じが面白かった。
  • id:naoyaが上手い具合に話を戻してくれたんだけど、結局ふんわりしちゃった。
    • 「もっと色んな情報を学生に教えてあげたいからどういうことを知りたいか教えて欲しい」って言葉は学生にとっては嬉しい言葉だったと思う。
  • id:nipotanの発言がもっと聞きたかったな。デザイナーで仕方なくコード書く方に行ったらそっちの仕事にハマったとかそういうのが身近な話で良かった。あと残糞感発言とてもよかった。
  • 今日の企画はひがさんの「月一回ひがやすを飲み会」のお知らせだったってことで良いと思う。

第二部は打って変わってテーマが奇麗にまとまってた。

  • id:tokuhiromの「飲みに行くから仕事切り上げって感じにすると酔ってその後は仕事できなくなるから仕事とプライベート上手く分けられて良いよ」って発言笑った。でもやっぱりみんな仕事とプライベートはそんなに分けてない印象だった。
    • id:Yoshioriの「夢の中でコンパイルエラーが起きてわぁって起きたり誰でもするよね。」とかなってみたいな。

全体通して、泥臭いだとかIT業界が暗いだなんてことよりも「より良くしよう」って前向きな考えをもってる人ばかりだったのが印象的。

  • と言うか、「泥がなんとか」って話をするセミナーだったってことに行ってから気づいたよ。
  • あと、「SIer、SIer」っていっぱい言葉が出てきたんだけど、意味わからないまま聞いてた。SIerって何かよくわからん。「友達がよく使ってたなぁ。もっとちゃんと意味聞いておけば良かった」ってちょっと後悔した。ISPの会社に勤めてるけど、そんな単語周りの人使わないんだよな。

以下メモ。聞き間違ってることあるかもなので間違いあればコメントください。

オープニング

  • イベントの企画動機・経緯
    • ITのイメージが悪くなってるっぽい
      • 業界の実際を伝えたい
    • ひがやすを氏がIT業界のネガティブ面のことをブログに書いた
      • 学生の夢をもたせてあげたい
      • 弾氏のアルファギークの話が元となり、技術評論社さんに企画してもらいたいと。

アルファギークvs.学生 - エンジニア業界の過去・現在・未来、そして期待と現実

自己紹介
  • 学生
    • スーツ萌え
    • 「パソコンに精通してないので空気読めない発言しちゃうかも」→弾氏「私が一番読めないから大丈夫」
  • アルファギーク
    • 弾さんと吉岡さんの絡み
    • ひが氏から経緯の説明。泥ばかりでもないし、良い所でもないからそういうのを全部言いたい。
会場の年齢
  • 25-29歳が一番多く、次が30-34歳のIT業界にいる人ばかりなので「学生に向けて」という目論みがいきなりずれた笑
  • 吉岡氏から
    • ITって言っても色々分野があるから、話をしていて各々の話がズレてしまうことがあるので気をつけよう
  • じゃあそれぞれのセグメントを聞いておこう
    • ひが氏:会社はSIer。でも、自分は自由にできてる。オープンソース。
    • 吉岡氏:ソフトウェア製品開発、販売。OS作って売ってるプログラマ。
    • 伊藤氏:Webサービス。独立系。ただ、前職のニフティでは作り方が違った。ニフティは企画して協力会社さんに作ってもらう。
    • 谷口氏:ライブドアは色々やってる。データセンターもある。昔は受託開発もやってたけど、お金回りがあんまりよくなく、効率がよくなかったので今はやってない。
    • 弾氏:組み込み系以外は一通りやってる。今コンサルティングをやってるけど、自分で手も動かしてる。
泥のように働くって何?
  • 谷口氏:はてなキーワードでは何て書いてある?抽象的でよくわからないよね。
    • 10年って定義がよくわからないし。自分は違う業界から来たから(ホントに肉体労働だった)特に泥が何とかってことに対して何とも思わない。
  • 伊藤氏:そもそもの記事でカンファレンスでの泥発言を大きく取り上げ過ぎ。
    • 元々の発言者は土台作りがあってシステムが作れるんだよってことを言いたかったんだと思う。
    • 実際にすごいできる人が入社してすぐに何かデカいもの作れるかと言ったら作れないと思う。周りに一緒に作る人がいるわけだし、自分一人で作るのとはわけが違う
  • 吉岡氏:発言主に言葉を選んで欲しかったなと。どのセグメントかもわからずIT一緒くたに思われてしまった。
    • メディアは面白おかしく取り上げるのは仕方ないのだから、もう少し言葉を選ぶべきだったと思う。
    • 下積みでの学習もあると思うよ。
  • ひが氏:巻き気味なので学生にバトンタッチ→弾氏「そうそう。そう思ってたんだよ」
  • 学生:泥のように働いてるってIT業界だけじゃないと思うんだけど、何でIT業界だけ強調されてるの?
    • 弾氏「日陰で評価されずに働くってのが意味として含まれてると思う」
    • 最近IT業界がとりあげられ始めたから強調されてるだけじゃないかな?
    • 「泥のように」の定義がよくわからないな。
    • 博士取っても企業はそこを評価しないから泥のように働いてるのと同じような気がする
      • 弾氏「Google行くといいよ」
みんなのアンケートから
  • 35年定年説について。大学卒業して10年経って32歳だから日が当たるのは3年だけなの?
    • ひが氏:35歳でSeasarに関わり始めた。35歳定年説なんてない
    • 吉岡氏:人のせいしちゃダメ。これ今日の結論だから。自分でやりたければやればいいんだよ。
    • 伊藤氏:1年ぐらいは下積み。自分に日が当たったのは社会人3年めぐらいから?だと思う
      • さっきから話に出てる「プログラミングやればいいじゃん」でプログラミングを書ける人は問題ないと思う。
      • 問題は自分がプログラミングを書けるかわからない人、どうしていいかわからない人だと思う。
      • そういう人は「自分は何ができるか、何が面白いか」を考えるのが良いと思う。
    • 谷口氏:「何となくデザイナー制作やってみたい」ってところからWeb業界に入ってきた。
      • 仕事がなくなって仕方なくコードを書き始めたわけだけど、それが自分にとっては楽しすぎたのが今もコードを書いているきっかけ。
      • 前に某SIerさんと話をしたけど、その人たちは20代で「コード書きたくない」って言ってた。そういう人が定年説を作ったんじゃないかな?自分にはそのネガティブ思考がわからない。
    • 吉岡氏:受託屋さんは作ったものを企画会社にあげてしまうのでモチベーションが下がるんじゃないかな?オープンソースや自分でサービス作ってると自分とアタッチするのでモチベーションが上がると思う。
コードに興味がある?できあがったものに興味がある?
  • 学生(CTO):自分のコードにはあまり興味ない。作ってできたものに興味がある。(この発言に弾氏がショック受けてた)
    • 伊藤氏:コードに興味がないってのもあっても良いけど、一応CTOは技術面を見る人だから興味は持った方が良いと思う
    • 学生:
      • はてなのインターンに参加したときに自分の技術がまだまだだと感じたけど、自分の技術を社会に役立てたい。
      • お客さんから感謝されると嬉しいからそういうことをしたい
      • コードよりも製品を見たい。大学に入ったときにはコードを書きたいと思ったけど、実際に勉強して行くうちに「製品を作って行くプロセス」に興味を持った。コードを書く人とのコミュニケーションのためにプログラムを勉強したい。
    • 弾氏:僕はiPhoneを見ると加速度センサーまで見える。製品を見たときにそこまで見たい。
    • 伊藤氏:技術を知ってるとそこから製品が作れる。加速度センサーの技術を知ってるからiPhoneが作れるように。
    • 学生:技術を知ってると「これはできない」の判断ができると思うから技術を身につけたいとは思う。
    • 吉岡氏:それはないよ。作ってみないとわからないから。
      • あと、弾さんは言葉でみんなの背中を押そうと語ってるんだけど上手く伝わってなんだよなぁ。伊藤氏はコードで表現していて、そういう人が増えるともっとみんなコードに興味を持つんじゃないかな?
    • 学生:外から「泥のように働け」って言われるのは嫌。自分の好きなコードを書きたい。
    • 弾氏:好きなことやってるうちに成功するという例もあるよ。
    • 谷口氏:アルファギークって言葉が謎すぎる。自分自身はアルファギークだとは思ってない。
      • アルファギークって「好きに発言してみたら社会が動いちゃう」ような人だけど、そういう人たちも実際はアルファギークって呼ばれるまでは下積みがあったよ。
    • ひが氏:とりあえず泥にこだわっても生産性がないから、もうちょっと話の幅を広げましょう。
SIという業界にいる人が結構いるからひが氏自身の話
  • 吉岡氏:ひが氏に質問。SIerに入ると受託をするよね。そういう業務をやりつつSeasarを作って会社に認められたんだと思うんだけど、どうやったの?
    • ひが氏:自分は人を管理するのがあんまり好きじゃなく、コードを書くのが好きで、だから会社の評価も低かった。
      • ただ、左から貰ったものを右に渡して差額を設けるってのはいつか崩壊するよと会社に訴え続けていた。コードを書ける人を大切にしないといけないと伝えた。
    • 吉岡氏:そういうことを自分でやったというのが大切だと思う。言うだけで手を動かさない人は多いけど、手を動かした成功例があるってのはみんなの希望になる。
    • 弾氏:でもそれって「運がいい」って言われちゃう
      • 吉岡氏:「そりゃ運がいいに決まってるけど、宝くじ買わなかったら当たらないでしょ。まずは動かないと。」
    • ひが氏:歳取ったらマネージャになるみたいな会社のルートが決まってるかもしれないけど、そのルートから外れて世の中を認めさせる一歩を踏み出さないと人生は変わらない。
      • 何か動き出そうとしてる人は、まずOSSに取り組んで一歩踏み出すのが良いと思うよ。
マネージメント議論
  • 弾氏:(マネージメントの話と、OSSが良いって話に絡んで)OSSは規模にもよるけどマネージャが足りないという例がある
    • 伊藤氏:マネージメントは大事。インターンの力を活かせなかったのはこちらの責任もある。
      • 35歳定年説の話とかになるとみんな管理者おざなりにしてプログラマの話になるけど、マネージメントはおざなりにしちゃダメ。
      • マネージメントが上手くまわっている時はエンジニアも生き生きする
      • そして重要なのはそのマネージメントが技術を持っていないといけない。
    • 吉岡氏:プロフェッショナルな人が管理をやるのが重要
      • OSSは金になるか?は無駄な議論で、どうやって金にするかを考えるべき。
    • 学生:質問。Seasarをマネージャが理解してたらOSSに行かなかった?
    • ひが氏:会社では自分の名前もコードも出ない。自分はOSS好きだし、だからOSSで出して、また製品をより良いものにしたかった。
    • 会場から:Seasarを出した後に会社はどう変わったの?
    • ひが氏:変わってきている。まずはコードを書けるようにならないといけないということで新人研修をやり出したりしている。
技術力について
  • 会場から:学生時代からコードを書いてるといいと思うのだけど、そういう経験なく社会に出てしまうから問題なんじゃないかと思う。そういうことに解決方法はあるか?
    • 吉岡氏:それは解決できない。自分の人生は自分で決めなさいという話。
    • 伊藤氏:吉岡氏も弾氏もちょっと個人責任論に偏り過ぎなので自分の経験を話すけど、やっぱり勉強しかないし、勉強したら良い。
      • 自分は入社してから「技術がないとダメだ」と思い本を読みあさった。
      • 会社の仕事が忙しくて勉強できなかいって言うのなら会社やめたら良い。辞めても結構どうにかなるもんだよ。
    • 吉岡氏:自分の人生は自分の責任。自分が動物のカンでどこに行けば良いかを嗅ぎ分けないと。
    • 会場から:SIerは入社してからだんだんモチベーションが下がって行く気がする
    • ひが氏:技術力がないSIの会社は辞めた方が良いと思う。それと、下請けに流してるような企業も技術がなくなるからダメになるよ。
SIerって何?
  • 弾氏:SIerってのがよくわからない。外注はどうやってはじまったんだろう。
    • ひが氏:会社は社員を簡単に首にできないから必要以上に囲わないから。
    • 吉岡氏:会社は利潤が必要。人件費を削り出して負のスパイラルに入る。
  • 学生:中国やインドの事情はどうなんだろう?下請け孫請け問題は起きてないのかな?
    • 吉岡氏:技術がなく丸投げしてるビジネスモデルが崩壊するのは当たり前。
      • 中国やインドは技術がなくても丸投げせず本気で取り組んでる
    • 学生:じゃあ日本に足りないのは技術に足りないリスペクトなの?
    • 吉岡氏:それを評価する人が足りないし、ギークが足りない。
      • 技術者がそういう状況を作り出さないのも問題
    • 弾氏:IT業界ってのは生産業と違って人数で勝負ではなく、1人が200人分の仕事すればいい。
    • 学生:団塊世代がいなくなって何か変わらないの?
    • ここで吉岡氏と弾氏2人のターンでまとまらなくなった。話自体は昔の技術と新しい技術について。
どこの会社が良い会社なのか
  • 学生:(弾氏と吉岡氏の話が)あんまり良くわからないから違う質問したいんですけど。どの会社に入って良いかわからない。
    • 伊藤氏:学生はどういう情報がわかれば良いのかな?
    • 学生:リクナビとか以外の情報の取り方がそもそもわからない。
    • 伊藤氏:面白い会社はたくさん知ってるからその情報を学生に伝いたいんだけど、どうやって伝えたら良いか?
      • 学生も企業も両方ともが自己責任論になっちゃうと建設的じゃないからやめよう。
      • みんな面白い会社に行って、それ以外のつまらない会社が淘汰されたらいいじゃないか。
      • だからもっと学生と企業の距離を埋めたい
    • 学生:はてなのインターンに行ったけどとても良い会社だった。
      • でも、小さい会社は大変で、大きい会社だけが得してるよね。
    • 吉岡氏:小さい会社が大変なのは確かに当たり前。でも環境にしててもしょうがないよね。
      • 大きい会社だけが得をするという環境は変えられると思う。
      • インターンをして自分の会社の技術力を見せるなどすると学生に伝わりやすいから、小さい会社はそういうところで大きい会社に勝てる
    • 会場から:下請け多重構造が問題だと受け取ったのだけど、みんなどう思っているかもっと聞きたい
    • ひが氏:多重構造の上の方にいる会社はみんな潰れてしまえと思っている
      • 自分は会社の技術力を上げるように動いてる。まずは自分の会社を変えてみるのも必要だと思う。
まとめ
  • 弾氏:自分で何でやらないかが不思議。会社がダメだったら辞めても良いし、潰してしまっていいと思う。
    • 日本とかでかい話ではなく自分でどうするかが大事だと思う。
  • 谷口氏:今日の話は議論があんまりなくて、会場も学生たちも残糞感があると思う。
  • 伊藤氏:学生の考え方が結構毒されてるので、既に業界にいる自分はどうしたら良いかなと感じた。
  • 吉岡氏:自分の人生は自分で決めるしかない。
  • ひが氏:ひがやすを飲み会を月一回開くからみんなおいでよ。何か話そう。
  • 学生:
    • 今日の話を聞いて学生に足りない部分があると感じたけど、企業側も色々と変えてほしいと思った
    • 学生は動いてない人が大多数だからもっと変わらないといけないなと思った。
    • 技術をもっと付けたいと思った。
    • 小さい会社が大きい会社に勝てると良いな。

エンジニア、デザイナーたちの"30代"の生き方・考え方 - あのころの理想と今を熱く語る

仕事・仕事感
  • 受託の仕事について
    • 高井氏:CTC入る前はWeb系にいたけど、今のSIという職種とは結構やり方が違う
    • 湯本氏:Web系は個人がお客だけど、SIerは企業のオーダメイド
    • 松野氏:自分の会社は受託やってないのでお客さんがユーザ
    • 和田氏:SIerとWeb系が違うのはWeb系はサービスを出して終わりではなく、そこからスタートだと思う
  • 学生さんに自分の仕事のどこを押したい?
    • 高井氏:何がしたいかによるかも。集客したいならWebとか。
    • 松野氏:サービスは会社にいなくても作れるよ。
    • 湯本氏:コンサルは成果物が表に出にくい。表に出る頃には自分の手を離れているので。
    • 大谷氏:SIerもそうですね。
    • 和田氏:個人でできないことが経験できる。集客数が多いので障害とかそういうの。
  • 会社持ってる人の話も聞いてみましょう
    • 米林氏:自分は小さい会社なので何でもやってる。大きい会社がうらやましいって思うこともある。
    • 山田氏:自分も何でもやってる。経理とかまで。
    • 古川氏:ロケットスタートでも4000人くらいの会社でも、やってること自体はあんまり変わらなかった。
      • 大きい会社だと1億PV集めるとかミッションがあるけど、小さいと楽しくできるってのが違ったりするね。
  • 会場から:何でIT業界に入りましたか?
    • 山田氏:元々古物商やってて、HTMLとか書いてたらそれが仕事になっていった。手段が仕事になった。
    • 米林氏:他の仕事に比べてこの業界は世界に挑戦しやすい
    • 和田氏:元々は特に考えなかったけど、今はユーザのダイレクトなリアクションが楽しい。
    • 大谷氏:バイトで運用とか監視やってたら興味でた
    • 松野氏:運営からコーディングまでやっててユーザとコミニュケーション取れるのがモチベーションを保てる
    • 古川氏:呪いの掲示板をやってたら結構盛り上がって、そこからだらだらと。
    • 高井氏:大学に入ったのが96年で、インターネットをやったら興味が出てた
    • 湯本氏:ノリで。ISPでバイトしてて。居続ける理由は自分がやったことがダイレクトにすぐ返ってくる。
    • 庄司氏:お金がなくて仕方なくがきっかけ。
  • IT業界ならではのコミュニティ
    • 庄司氏:Javaのコミュニティやったらひが氏と知り合って、それで松野氏と知り合って…とかで、コミュニティひとつやってたらどんどん知り合いが広がって行った
    • 大谷氏:コミュニティやったら物理的に会わない人と色々知り合うようになった。
    • 米林氏:この業界はTwitterとかで飲もうって言ったら気軽に飲めたりとかそういうのがある。
    • 高井氏:学生さん視点で言うと、違う業界の人との知り合いを増やした方がいいと思う。この業界は付き合いがこの業界に偏ったりするので。
    • 湯本氏:終身雇用も終わってるし、会社だけに目を向けない方が良いよ
    • 古川氏:IT上で会えるのはIT業界の人になってしまうので他の業種とも絡んだ方が良いと最近思ってる
      • 最近はスチュワーデスと絡んだ。合コン的な意味で。
    • 庄司氏:飲めなくてもコミュニティに参加できるからそれを言い訳にしないでほしい。
    • 山田氏:名古屋にいる時からコミュニティに興味があって、そういうのに参加してたら東京に来ちゃった。これ重要。
  • コミュニケーション力に関連して英語力について
    • 和田氏:必要なスキルになってる。自分も苦手で勉強していかないとと思ってる
      • ただ英語さえできれば技術が中途半端でもいいってのは間違い。技術があった上で英語もできた方が良い。
    • 湯本氏:新しい情報は英語で入ってくる。でも母国語はちゃんと話せないとダメだからそっちもしっかり。
      • 英語はあくまで媒体。
    • 高井氏:自分もパッチ書いたりするときに英語書いたりするけど、それはそんな難しい英語じゃないからどうにかなるよ
    • 大谷氏:英語に恐怖心持たない方が良いよ。技術書とかも英語だったりするし。ただ、英語で話が通じるのはエンジニア同士だからっていう前提があったりもするけど。
    • 米林氏:(今までの話をふまえて)ただ、自分が20歳に戻れたら英語やりまくってたな。英語喋って自慢したいとか。
  • これをやっておいて良かったということ。
    • 庄司氏:25歳から何も持たずにこの業界に入って来て、何をやっておけば良かったかと聞かれればそれは全部だよね。
      • でもサポートの仕事はやっていて良かったと思っている
    • 湯本氏:自分がやりたいと思ったことをやる習慣
    • 高井氏:人がやっていないことをやったのが良かった。ググって誰かやってたらやらない。出てこなかったら自分でやってアウトプットする。
    • 古川氏:訴えられたり、警察沙汰になることがあるので法律はやっておいた方が良いなと思った
    • 松野氏:麻雀やっておけば良かった。若いうちは遊んでおけば良かった
    • 大谷氏:遊んで色んな人と会っておけば良かった
    • 和田氏:精神論だけど、自分で考えてスキルを上げて行くということ
    • 米林氏:若いうちに色々遊んでほしい。色々な人とあっておいた方が良い。
      • 特にIT業界は女子の比率が低いので女子と会える機会は逃さない方が新しいアイディアとかも貰える
    • 山田氏:色んな人に会っておくと良い。大人になればなるほど専門分野の方の人とばかり会うことになるから分野関係なく会うのが重要
ライフスタイル
  • どんなプライベートを送ってる?
    • 米林氏:私生活が充実すると仕事もノってくる
      • どんなに忙しくても毎週土曜日はバスケ。たまにマラソン。家だと動画鑑賞(ニコニコ動画とかだよ)
      • 学生の頃は30歳の自分は見えてなかった。おっさんだと思ってた。楽しくないと思ってた。でも実際は今が一番楽しい。
    • 庄司氏:仕事とプライベートを分けようとか良く言ってるけど、自分はわけてない
      • 気になったら家でもやってるし、仕事中でもカード支払いの電話したりする
      • 1日8時間は人生の中で多い。それが「仕事」って感じで切り離しちゃうとつまらなくなっちゃうと思う。
    • 山田氏:自宅兼仕事場なので仕事とプライベートの境目はない
      • 女という立場で言うと最近は恋愛とかご無沙汰だったりする
  • 仕事とプライベートの切り分けはどう?
    • 庄司氏:切り分けられてる人はホントに切り分けられてるの?
      • 夢の中でコンパイルエラーが起きてわぁって起きたり誰でもするよね。
    • 古川氏:仕事中でもニコニコ動画見て一日終わって上司に怒られたので最近は考え直している所
    • 松野氏:飲みに行くから仕事を終わりにするってパターンにすると酔ったらその後仕事できなくなるからいいと思うよ。
    • 大谷氏:OSSをやってると、思いついた時が実装のときになってくる。
    • 高井氏:でも、もっと仕事とプライベートを切り分けてほしいな。せっかくプライベートな時間なので新しいことにチャレンジしてほしいな。
    • 和田氏:自分も別れてない派だけど、プライベートで好きなことをしていると結果的に仕事に繋がってるだけだと思う。
      • 最近トライアスロン出たいとか思ってるし好きに生きたらいいよ。
  • 40,50歳になった自分を想像したことある?想像するとどんな感じ?
    • 湯本氏:すぐ先の未来もわからない。3年後全然違う仕事してるかもしれないし。
      • 3ヶ月後くらいの長さで考えると軌道修正もしやすいかも。
    • 高井氏:30の今と20歳の違いを考えると、違う気づきがあった。って考えるときっと40,50になった時も新しい気づきがあるだろうからそれが楽しみ。
会場からの質問
  • 会場から(メガネスーツ):ホントのオフのときに電話で急に仕事の話来てもすぐ対応できるの?
    • 庄司氏:対処しないとどうしようもないから対処したというのが正直な所だし、それによって会社に不満もあったから給料を上げる交渉材料にもした。
      • でも、結果的にはそういう時間はあって良かったと思っている。
      • あと、アルゴリズムを考えついたときにコードを書かずにはいられない性格だ
  • (もう一つ質問)スチューワーデスとの勉強会の結果は?
    • 古川氏:和田氏と一緒にいったんだけどテンプレートみたいな返事が返ってきた。(和田氏:ホント、テンプレートだった)
  • 会場から:解決困難なときだとか、モチベーションが上がらない仕事がまわってきたときにどうしてるの?
    • 和田氏:出来上がった後の自分を想像する。そうすると楽しくなる。自分すごくね?って思える。
    • 庄司氏:モチベーション上がらなくてもできないといけないかなと思う。
      • 毎日のゴミ捨てにモチベーション上がらないのとやるので同じで処理しちゃう。で、飲み会とかで愚痴を叫ぶ。
    • 湯本氏:自分もプロジェクトに関わっている以上そういうことはある。でも自分で声を上げないと気づいてもらえないから声を上げるのは重要
    • 大谷氏:ゴミ捨てのようには自分はできなくて、自分のやりたいことを後にもってくる(もしかしたら自分はMかもしれない)
    • 古川氏:やりたくないことは先延ばしにしておくと半分くらいやらなくていいことになってたりするよ。
  • 会場から:タスクとして落ちてきているものと、将来的にやっていきたいこと・繋がることの比率は?
    • 庄司氏:9:1でモチベーションが上がらないタスクがほぼ
    • 湯本氏:8:2でやらなくちゃいけない仕事の方が多いけど、それをやらないとプロジェクトが進まないってことがあるのでささっと済ませる。
    • 高井氏:7:3でタスクの方が多いけど、特に嫌じゃない
    • 古川氏:1:9でタスクが少ない。タスクは仕組みやオペレーションで回せるのでバイトさんとかにやってもらう
    • 松野氏:わからない。日によって業務も違うので。ただ同じようなことはやらないようにしてる。
    • 大谷氏:6:4でタスクが多いけど、もう一つの方は仕組みで会社の将来的なこと。
    • 和田氏:4:6でタスク。資料作りとかミーティングがタスクで、そういうのは減らしたい。
    • 米林氏:8:2。経理とかそういうのもやらなくちゃなので。
    • 山田氏:1:9にもなるし9:1にもなる。全部が会社を続けていくためのことになるので、やらなきゃいけないことって考えるか将来に繋がるって考えるか。
  • 会場から:服装について
    • 高井氏:必要な服装をしたらいい。客先とか行くならしっかりするとか。
    • 庄司氏:必要な服装。客先に行くときはスーツとかもあるけど、普段はビーサンとか。
      • 仕事なんだからスーツを着ることが武器になるなら着るべき。
      • 色眼鏡は目にいいからってことで自分は色眼鏡かけてるから色眼鏡で見られても仕方ない(←残念ながらスベッた)
      • ただ、こういう格好していると「なんだこいつ」って思われるから、その後ちょっとがんばると「おぉ」って思われていいよ。
  • 会場から:会社って何だ?一言で。
    • 湯本氏:「舞台」自分が楽しく生きて行くための舞台でしかない。
    • 高井氏:「一人で出来ないことをする」
    • 古川氏:「なんかミッションを与えてくれるところ」会社はミッションクリティカルであるべき。個人でやる時は曖昧になるから。
    • 松野氏:「仲間で仕事するところ」一人でやっちゃうと原色をフンダンに使ったサイト作っちゃうし、デザイナーも営業も必要
    • 大谷氏:「ボケとツッコミ」会社の外に何かを出すことも重要だけど、会社の中にも喜びを与える
    • 和田氏:「自己表現の場」間違ってることは政治的なこととか関係なく間違ってるというべき
    • 米林氏:「生活」ライフスタイルの一部になってる
    • 山田氏:「自分を育ててる場所かつ自分で育てる場所(家庭とか家族とにてる)」
    • 庄司氏:「人としての軸」自分を形成してくれる。
パネラー同士の質問
  • 会社を設立されたきっかけや良いこと悪いこと
    • 古川氏:字幕.inの矢野さとるさんと何か作りたいなってことで作った。
      • 個人ではできないことができる。JASRACに個人でいってもダメだけど、会社だとOKでたり。
      • 個人で出来てしまう人が多いから「何で会社でやってるんだっけ?」ってなったりするのが難しい
  • ベンチャーから大企業へ転職して得たもの、失ったもの
    • 高井氏:福利厚生や安定を得た。失ったものはあんまりないけど、会社一丸となってってのがなくなったかも。
    • 湯本氏:大きい会社はルールがないとまわらないから個人の裁量が小さくなる。ただやりたいことの選択肢は広がる。
  • 古物商からWebデザイナーになって一番戸惑ったことってなんですか?
    • 山田氏:古本を扱ってたこともあり、周りはおじいちゃんおばあちゃんなのでのんびりと時間が動いてたけど、Webはスピードが速いよね。
    • 大谷氏:異業種から入りやすい業界だった?
    • 山田氏:MovableTypeでテンプレートを作ったり壊したりしてたら楽しくなって、ブログやってるような人に連絡取ってたらどんどん世界が広がって行った。
    • 庄司氏:どう思うも何も「金稼げる」ってことが重要だった
  • インフラ系のエンジニアと開発系のエンジニアでキャリアパスの違いがあるかと思うけどその違いは?
    • 和田氏:インフラオンリーの人ってそんないない気がする。アプリ作れたりとか。なのでそう変わらないんじゃないかな?
  • 会場から:どう評価されたい?
    • 古川氏:実は自分はあんまりエンジニアじゃない。やったけど結果が出ないってのはダメで、数字だけで評価されたい。
    • 米林氏:やっぱりそうで、どんなにすごい技術使っても売り上げが上がらなかったら意味がない。
      • 枯れた技術でも売り上げが良いサービスの方がお客にとって良いに決まってる
    • 庄司氏:会社からの評価か、お客からの評価によって話が変わってくる
      • YouTubeも買収されたから評価されてるけど、そうじゃなかったら赤字垂れ流して潰れてるだろうからお金だけで評価はできない
      • 自分は給料が低くてもお客の声が上がると嬉しい
  • 会場から:経営者側は技術者への評価をどうしてる?
    • 古川氏:短期的な売り上げがないと給料が払えないのでそこは我慢してもらうけど、将来に繋がることは評価して上げたい。
    • 米林氏:仕事以外のことでも将来に繋がることを評価するようにしてる
  • 会場から(ひがさん):給料に満足してるかどうかとその重要性
    • 庄司氏:もっと貰えるならもっと貰いたいけど、直結はしてない。
    • 湯本氏:大きな不満はないけど、やりたいことの方が優先度が高いのでお金には縛られたくない。
    • 高井氏:満足はしてる。ただ、給料は貰う側でなく支払う側の能力なのでそこは勘違いしない方がいい。
    • 古川氏:自分でやりたいことができてるからよい。あとは高井氏と同じで給料は支払う側の能力と同意。
    • 松野氏:不満はないけど、あればあるだけいいんじゃないかな
    • 大谷氏:妥当だと思ってる。給料は支払う側の能力に同意。
    • 和田氏:不満はない。ただ、日で割って自分がどのくらい貰ってるかは考えるようにしている。
    • 米林氏:給料払う側なので給料で評価してあげたい
    • 山田氏:支払う側の能力なのでそこは気をつけている
    • ひが氏:貰いすぎてるかなという気がしている。
パネリストからのメッセージ(キーワード)
  • 山田氏:「プロポーズ」会社を選ぶってのは結婚と似てると思う。会社を良くするために自分も磨くべきだし、会社によって自分が伸びていく関係が良い。
  • 米林氏:「力戦奮闘」毎日全力は難しいけど、何でもいいから一つのことに力をいれてやって行く。
  • 和田氏:「つくって育てる」一人でWebサービスを作ることに注目がいって運用が地味な感じになってるけど、初めに言った通り、Webサービス作ってからお客さんがついてくるわけだから、そこもちゃんとやろう。
  • 大谷氏:「自楽自習」ミクロにいこう!まずは周りから良くしていこう。自分が楽するために、自分が楽しくあるために学習して行こう。
  • 松野氏:「面白いことやろう」未来により良いものを作ろうと思ってる。
  • 古川氏:「ひとりの力」ひとりで会社も変えられるよ。
  • 高井氏:「いのちだいじに」業界のこととか考えても大きいからまずは個人から変えていこう
  • 湯本氏:「未来はつくるもの」人に未来を作られるのは絶対に嫌。今やってることが絶対未来の自分を作っていくよ。
  • 庄司氏:「一緒に作る未来」未来は明るくしようとしてるし、絶対明るくなる。だからみんなで明るい未来を作ろう。

作者:lesamoureuses

更新日:2008年9月14日 0時9分

このブログのホーム

[カンファレンス]ITPro Challenge! 2008 見てきた

去年も面白かったけど、今年も面白かったな。

印象に残ってるのは、

  • 川崎氏の「意図的にシステムの弱い部分を作っておいて、そこがダメになりそうだったらスケールアップする」という話
    • あぁ、そういうやり方もあるんだなぁと思った。確かに全部潰れることは回避できるかもと。
  • 奥地氏の「できないから、やらない」ではない「やらないから、できない」
    • まさに自分のことを言われてる感じだった
  • 宮川氏の「What are you coding?」
    • Twitterで言葉を発言するのもCodeReposでコードをコミットするのも自分のエゴを時系列で並べてるという点で変わらないってのは目から鱗だった
    • あと「スピリチュアル系」笑った
  • 金子氏の「プログラミングしただけで犯罪」
    • 話の内容自体も面白かったけど、このことについて懸念してるのが良くわかった。やっぱり研究者なんだなぁと
  • ライトニングトークではひげぽん氏の「パフォーマンスを工数に入れる」
    • これはよく実感することなので「グラフにする」ってことも含めて実際にやりたいなと思う

という感じかな。


あとは、弾さんと吉岡さんの微妙にかみ合ってない感が面白かったです。

来年もやるといいな。モチベーション上がっていい。

セミナー聞く→モチベーション上がる→プログラミング→もっと書けるようになりたいなぁでちょっと落ち込む→セミナー聞く

のループだ。

以下はメモ。

あとで動画配信されたらまた見よう


モバゲータウンをこうして作った - 川崎修平氏(ディ・エヌ・エー)

  • モバゲーの話というより生い立ち
  • パソコン少年だった
    • ファミコンとかゲーム好き
  • 大学時代にunixとwebの世界を知り、パソコンに再度ハマる
    • フリープログラマとして
      • ここで開発スピードと危機回避能力がついた
    • オークション統計ページ(仮)を作成(現aucfan.com)
      • 自分で作ったサービスで喜んでもらえるのは嬉しい
      • 企業サイトと違って
    • 奥さんの家に光を勝手に引いたり、ペンギンの筐体のPCを置いたり
      • 「ペンギンかわいいから置いていいよね」的な感じで8台くらいに増えた
  • その後
    • ビッダーズ社員からメールで呼び出されそのままバイト
      • 最初は分析とパフォーマンス
    • 10個中1個当たればいいかという感じで3つくらい作った
    • モバオク、モバゲー
モバオク
  • 今の取締役「守安氏」に携帯用オークション作ってと言われた
    • ゼロから作っていいよと言われたのでやる気up
  • 開発に当たって
    • 自分の好きなことをどんどん取り入れたかった
    • サービスが成功してもヤフオクに流れないように
  • 開発内容
    • 絵文字の使い方が困難だった
    • フレームワークから作成した
    • SHM(shared momery)を使った高速リスティングの実装
  • 困ったこと
    • サービス開始当初は全然客が来なかった
      • あてがあったのだけど、そっちからの送客もなかった
    • 流行り始めたらサーバ増設が追いつかなかった
    • 携帯特有のトラフィックでネットワーク危機が限界
      • CDNで対応
  • 驚いたこと
  • ケータイユーザはものすごくページを見る
  • ユーザと運営者の距離が近く、反応もすごく早い
    • 問い合わせをtailしておいて、本番反映したらそこに不具合情報があがってくるとか
  • 新規サービス開発の進め方
    • 基本的に自宅開発で深夜作業
      • 作業中は基本的に連絡もとらない
    • 自宅サーバ上で開発中のサービスを公開しているので、他のメンバーはそこを見る
    • ドキュメントなし、引き継ぎはソース見ろ
  • 開発スタイル
    • やる気が出るまで横になって漫画
      • 北斗の拳とか男らしいの読んでモチベーション上げたり、げんしけん読んでまったりしたり、どうしてもダメな時は三国志読んだり
      • 休みまくると「そろそろ仕事でもやってもいいだろう」ってなる
    • 食事もとらない「午後の紅茶ミルクティー」
  • 運用の工夫
    • 意図的に弱い部分を作っておく
      • Apache1台に負荷をかけておいて、そいつがダメになったらサーバ増やすかという感じ
ポケロト
  • あんまり記憶にない
ポケットアフィリエイト
  • 2週間くらいで開発
  • 基本方針は自分が使いたいやつ
  • 開発内容
    • 安定
      • 1年ぐらいは手を入れてない
    • サーバはバックアップを入れて2台
    • モバゲーの足がかりになった
モバゲータウン
  • 開発期間3ヶ月
  • あんまりコミュニティーサービスを自分で使ってなかったから自分で使いたくなるコミュニティーサービスにしようとした
  • 開発内容
    • mixi,gree,ハンゲームの研究
    • アプリ用フレームワーク
  • 困ったこと
    • SNSを使わないので勘所がわからなかった
  • サーバ不足、ラック不足
  • 多人数開発前提じゃない作りなので、今結構大変
サービス作りの心がけ
  • 自分が作りたいものを作る
    • ユーザが使いたいサービスと一致するように訓練
    • 初めに想定しておいて、実際そう使われたかどうかをフィードバックで確認
  • こんなサービスが目の前に現れたらワクワクするという高揚感
  • これができたら自分はすごいという問題設定
技術について
  • ハッカーじゃない(なりたいけど)
  • 自分のものづくりのために技術を習得
  • 何かを思いついたらすぐに設計が頭に浮かんで実装できるようにしておく
  • 枯れた技術で作れる部分は、枯れた技術で作る
  • モジュール、ライブラリはできるだけ自分で書く
    • すぐに対応できるように全体を把握しておきたい
ひとり開発だと
  • 楽な点
    • イメージ通りのものが作れる
    • イマイチかもしれない機能も自分で作れるから試せる
  • 辛い点
    • ひとりよがりになる危険
    • だんだん飽きてきて寂しくなる
こんな環境で作れるのが理想
  • 作家と編集者のような関係
    • 作る側:実績、信頼、愛情、責任感
    • 任せる側:任せられるどうかを判断できる能力、適切なインプットと判断力
  • 自分は集客力のあるサービスを作ることに専念して、苦手な所は専門家に任せられる
    • サポートや営業など
質問など
  • セキュリティは?
    • ケータイに閉じてるのでそこは結構楽
    • 入り口はキャリアのGWから来るので
    • XSSなどはフレームワーク側で対応してくれる
  • iPhone対応は?
    • 今「ここから先はケータイで」ってなるのが面白いのでとりあえずそのままでいいかなと
    • LAN経由とかでも来るのでメアド認証になるから一段セキュリティのレベルが下がる
      • これ以上は今はあんまり言えない
  • モバオク、モバゲーの文化作りが大変と言ったけどどうだったの?
    • モバオクはPCを混ぜないということで文化を作った
    • モバゲーは、モバオクの気持ちのいいコミュニケーションを取ってくれるユーザに「新しいサービスできたよ」と案内して、気持ちいいコミュニケーションの土台を作った
  • どうして成功したと思いますか?
    • ケータイはランキングとか口コミが基本
      • 友達紹介時にポイント付けたりとか
    • モバオクは商品の質が良かったので、ある程度見てくれれば広まると思ってた
    • モバゲーはよくわからない
  • 他の技術社員は?
    • 自分の作った物をメンテナンスしてくれる
    • 新しいサービスも作ってる

オープンソースで育つエンジニアリング・スキル - 奥地秀則氏(nexedi)

  • 一端のエンジニアになるには新しいことに挑戦しよう
  • 注意事項
    • 発表内容はあくまで一つの考え方
      • 色んな人が居るから優越はつけられない
  • 表のプロフィール
    • 大学で数学、生物学、バイオインフォマティックス
      • 途中で大学院中退
    • 未踏ソフトウェア(GRUB2)
    • Nexedi
      • オープンソースERP5の開発
  • 裏のプロフィール
  • 1993年高校三年のときに初めてコンピュータに触れる
    • センター試験前に先生に追い出された→ゲーセン通い
  • 京大マイコンクラブ(KMC)で遊ぶ
  • 1998年GNUプロジェクトに参加
  • 2003年GRUB2を開始
    • これがやりたかったわけでなく、誰かがやらなくてはいけないのに誰もやってなかったから
      • IPAの枠組みではGNUプロジェクトとして出せなかったので、あとからGNUに組み込んだ
貴重な人材になる方法
  • あなたの存在が重要であるということ
    • あなたの代わりを見つけるのが簡単ではないということ
  • 方法その一:専門家路線
    • 一芸に秀でる
    • 条件:天才であること
    • 短所:中途半端だと干される、理解されないことが多い
  • 方法その二:複合路線
    • 数種の分野に卓越する
    • 条件:あきらめが良いこと
    • 長所:安定しやすい
    • 短所:立ち位置が微妙
  • 方法その三:オールラウンダー路線
    • 数多くの領域に精通する
    • 短所:雑用係になる可能性
  • 方法その四:汚れ仕事路線
    • 誰もやりたくないことをやる
    • 長所:案外儲かる
    • 短所:やりたいことはまずできない
私の哲学
  • 人生とは、世界をより良い場所にするためにある(自分にとって)
    • 本業に割かれる時間は膨大
    • 意に反することばかりやるのは無駄
  • 「できないから、やらない」ではない「やらないから、できない」
    • 無理だと思った時点で無理になる
      • でも本当に無理なことは絶対無理(楽観的な現実主義で)
  • 振り返ってみると
    • KMC時代は用語とか全くわからない
    • GRUBはじめたときにブートローダのことなんかわからなかった
    • Nexedi始めたときに経営のことなんてわかってない(勉強しようと思った)
  • 保険があれば手を出しても一応安心
エンジニアへの適性
  • エンジニアに必要な要素
    • 優れたシステムを提供したいという熱意
    • コンピュータの仕組みに関する知識
      • プログラミング能力がなくては理解することはできない
    • 実用性のあるシステムを構築する
プログラマになるには
  • 実際に書く
    • 車輪の再発明をすることで勉強
  • 他の人のプログラムを読んでみる
  • 他のプログラマと情報交換
オープンソースがスキルに与える効果
  • オープンソースでないと
    • このソフトってどうなってるの?と思っても中身が調べられない
  • 直接コードで対話できる
  • 外部のエンジニアと一緒に活動できる
    • GNUのプロジェクトで良かったことはすごいプログラマとコードについて話せる
  • 機会が平等に与えられる
質問等
  • フランスに行くきっかけ
    • 知人の紹介でやりたいことと合致してた
      • オープンソースばかりやってる会社だった
  • 保険はなんだったの?
    • 大学院やめたときはプログラミングで食べて行けるネタはあった
  • 外国で働くことの苦労は?
    • 外国で働くことよりもギークと働くということが大変だった
      • 自分がすごいということをアピールしないと認められない
    • ギャグ一つとっても言って良いかどうかわからないプレッシャーがあった
  • コンピュータから経営の方に興味が出たきっかけは?
    • 自分はコンピュータにガッツリだった人間ではなく変化が色々あったからすんなり入った
      • 新しいことができることの方が嬉しい
  • 経営としての考え方は頭の動かし方が違う?
    • 基本的にはモノの考え方は変わらない
      • ルールがあって、例外があって、それを処理して
  • コンピュータは決まりきった動きしかしないし感情もないから人間とは違うよね?
    • (コンピュータも感情あるかもしれないって雑談になった)

Why open matters - 宮川達彦氏(Six Apart)

  • 自己紹介(ホームかアウェイかよくわからなかったので)
    • サンフランシスコに住んでる
      • でも車とかもないしシリコンバレーとかとはまた別
    • エンジニア20人(うち日本人3人)、全体は100人くらい?
    • 2006.11に引っ越し
  • Agenda
    • スピリチュアル系の講演をやってるはてなのid:naoya氏の去年の内容を見て、昔話などをすると良いかなと思った
    • Open Source
    • Open Community
    • Open Platform
      • Open Web
Open Sourceに出会うまで
  • 1977神奈川県横浜生まれ
    • naoya氏や、Six Apartの2人と同い年
  • あんまり子供時代はコンピュータに触れなかった
    • 父親が元プログラマだったからコンピュータはあった
  • 1996に東京大学理科一類
    • 入学時に進路を決めなくていいのが良かった
    • 講義あんまり出ず、Netscape 3とかでネットサーフィン
    • たまたまオライリージャパンでアルバイト
      • バンドでメタルやってたら先輩にイベントで人足りないからと誘われた
      • それだけかと思ったけど、その後も事務仕事とか色々やった
      • スクリプト作った(今でもあってちょっとひいた。regist.cgiって間違った英語の名前あったりとか)
  • 1998情報科学科に最低点で進学
    • 今までの講義の評価で決まるのだけど講義行ってなかったからギリギリだった
    • C,C++,Scheme,Prolog,MLとかやった
      • オライリーだと物足りなくなってきた
    • オン・ザ・エッヂに友達がバイトしてたのでそこからバイト
      • 入社日は弾さんの1ヶ月ほど前
      • この1年後くらいに上場
    • 学業もPerlで自然言語処理とかやった
  • 1999夏大学院入試落ちる
    • ほぼ落ちることない試験
      • 一日の数学全くできなくて二日目行かなかった
  • 2000.03わざと1単位落として留年
    • さっきの話(奥地氏)の「保険」をかけた
  • 2000.04にオン・ザ・エッヂのデスマ案件
    • それまではバイトだからあんまり大きな仕事はやってなかった
    • 月曜日に納品、金曜日に何もできてない状態
      • 自分の範囲(認証のAPIとか)は土曜の朝には終わってた
      • これをきっかけに堀江さんに目をつけられる
    • 社内共通モジュール開発エースプログラマ
    • 時給2000円で月300時間
    • この頃
  • 2000.11 CPAN Authorになる
    • 初めにアップしたのは弾さんが作ったモジュールを汎用的にしてアップ
      • MacIE用のモジュール(あんまり使ってる人いなかったけど堀江さんが使ってた)
    • Linux Conferenceに参加
  • 2001.01にテクニカルディレクターとして入社
    • 学校は最後2週間行って卒業
    • CPANモジュールのパッチを送る
      • Mailling List,IRC
      • 英語は高校大学で好きだったけど、やり取り心配だった。でもどんどん送った
      • IRCは聞き取れなかったとかないからおすすめ
  • 2002春 Sledge開発(2003年オープンソース化)
    • バージョン1.1が4年に出てる安定したもの
  • オープンソース化について
    • 受注案件のプレゼンス確保
      • Javaのフレームワークとか出てて、Perlは古いって思われがちだったのでどんどん表に出して行った
    • OJT教育コストの低減
      • 人増やしてる時期だったので入社してくる人に「これ勉強しておいて」と言えた
    • 開発チームのモチベーション
      • 当時は思わなかったけど、今思うとオープンソースとして外に出ると自分のコードが世に出るのでモチベーションになる
  • モチベーションについて - CodeReposというmicro blogサービス(ネタ)
    • What are you coding?
    • Twitterで発言してるのと同じだと思う
      • 言葉かコードの違いだけ
    • 人間は自分のものを見てもらいたいというエゴがある
  • 2003 CPAN#1 Authorになる(現在は3位)
    • Software = People Credit counts
    • こうやってガンガン出してくと「何か面白いやついるぞ」ってことになる
      • 評価され信頼性が増える
Open Community/Communication
  • 2002冬 第0次ブログブーム
    • Movable Type
    • Impressive clean code & pluggable architecture
      • 他のアプリに比べてとても奇麗でpluginとかもよく考えられていた
    • Causual use of XML and RESTy APIs
      • トラックバックとか
    • 自分もpluginとかのコードを送ったりした
  • 2003.04 Shibuya.pm
  • 2003冬 livedoor Blog
    • 自分は1行も関わってない
  • 2004 Blog Hacks
    • その前にブログについて話して欲しいとnaoya氏に依頼したのがきっかけ
      • それまでオンラインの付き合いんだった
    • livedoor / Nifty 同業他社での共著
      • 同業他社で繋がってるということが不思議な感じだった
      • Open Communication Beyond Just Code
  • 2004 October Six ApartのBenと食事
    • 履歴書置くってと言われてCPANのURLを送った
      • 次の日の朝に「コード全部見たから入って」と言われた
  • 2005 Jan. Six Apartに入った
  • YAPCでの集まり
    • Community = People Get involved.
      • コードを書いて人と関われた
Open Platform
  • TypePad
    • 古いイメージがあるけど、もっとよくしたい
    • OpenIDなどの対応
  • Openってなに? - Community driven Open Standards
    • 誰かが取り決めたものを使うのではなく、使う人達が「こうしたらいいんじゃないか?」と話し合って決める
    • 日本でも追っかけるだけじゃなく、声を上げて
  • 大きい企業でない開発者は?
    • 今は色んな所で声を上げられるからそれを利用する
    • Web API 1.0
      • こういうのがあるから勝手に使ってね
    • Web API 2.0
      • ウチで走らせますよ
まとめ
  • 現在おかれてる環境にとらわれないで
  • コードはあなた自信を変える(世界を変えるだと他で言ってるので)
  • オープンな議論が財産になって行く
  • CODING IS NOT A CRIME. NOT CODING IS A CRIME.
    • コードを書くのは犯罪ではないって言葉があるけど、ちょっと言い換えて「コードを書かないのは罪だよ」と。
質問等
  • ライトニングトークはどこでも行われるようになったね

シミュレーション的発想によるプログラミング - 金子勇氏(Dreamboat)

  • 色んな所でWinnyの話はしたので生い立ちとか
自己紹介
  • Winny作者
    • プログラム作っただけで逮捕された人
  • プログミングは本来趣味
    • パソコンとの付き合いは長いけど仕事にはしてなかった
    • ちょっとしたフリーソフト公開
      • ここから発展して仕事
  • 経歴
    • 茨城大学大学院でドクター
      • オブジェクト指向によるシミュレーション
    • NiftyやINTERNET上でフリーソフト公開
      • NekoFlight(フライトシミュレータ)
      • 1998,1999年とかに作ったもので3Dのレンダリング部分を自分で書いた
    • 日本原子力研究所
      • 地球シミュレータでの可視化に関する研究
    • 引き続きフリーソフト公開
      • PS2出た頃
      • ゲーム向け物理演算関係が多い
    • 3DCGソフト会社
      • フリーソフトの商用化
    • IPA未踏ソフト第1期第2期に参加
      • 物理演算エンジン担当
    • 東大大学院特任助手
      • 戦略ソフトウェア創造人材育成プログラム
      • 東大の人ではない
    • Winny開発
    • 現在はDreameboad
いったい何者?
  • プログラマではない
    • 英語が話せても翻訳家ではないのと同じ
    • プログラムはアイディアの表現方法
  • シミュレーション屋
シミュレーションとは?
  • シミュレーション物理学
    • 第三の物理学
      • 複雑系などの検証(カオス系)
    • 理論物理学:実験結果と矛盾しない理論作り
    • 実験物理学:実験をして理論の検証
発想の根源
  • 自然科学的発想
    • 簡単なモデルから複雑な事象生成を好む
      • 仕様通りに動くのは楽しめない
      • 自分で作ったものがどのように動くかが楽しい
  • 作るプログラムは以外にシンプル
プログミラング方針
  • 初期設計はあまり重視しない
    • ベースとなる理屈は最も重要
  • 基本モデルは簡単な方が良い
    • そこから生み出される結果は複雑な方が良い
  • 予想外の結果を重視
    • 楽しい
    • バグはバグじゃない
  • 試行錯誤を重視
    • やってみると動く
    • 細かいパラメータをチューニングに落とし込む
    • テストプログラムは捨ててもいい
  • アプリ例
まとめ
  • シミュレーションの面白さ
    • 予想外の結果が出てくること
    • その割に作るのが簡単
  • シミュレーション的プログラミング
    • 流れ
      1. 思いついたアイデアを最低限で実装
      2. テストラン
      3. 小変更(パラメータ)
      4. 大変更(根本)
    • 離れた概念を組み合わせると面白いことができる
  • 少しでも先に進むことが重要
    • 一気に飛び越えようと無理をしない
    • 初めに作るのは最低限のシンプルなもので良い
  • 無駄なことをしない
    • 如何に手抜きできるかが重要
    • ポイントとなる箇所だけは手を抜かない
    • プログラムの速度最適化と似ている
  • 本来は何か思いついたらこまめに公開すべき
    • フィードバックで色々変えられる
    • 自由に公開できたら良いのだけど。。
  • プログラムは表現手法
    • 検閲しないようにしてもらいたい
  • 自分の仕事は裁判に勝って「プログラムするだけで逮捕」という状況をなくしたい
質問等
  • 今ゲームではシミュレーションが当たり前になってるけど何かネタはありますか?
    • if文とかで判定せず、人工知能が面白い

ライトニングトーク

シンプルWEB基盤技術 - 柳瀬隆敏氏
  • ブラウザのウィンドウは簡単に画面が切り替えられる
    • GUIは簡単に変えられないからマルチウィンドウになってる
  • JavaApplet + Swingで実装できる
Cutter - 須藤功平氏
  • C言語用フレームワーク
    • xUNIT
    • テストのしやすさとデバッグのしやすさを重視
  • スクリプト言語のようにテスト登録なし
  • diff表示でデバッグのしやすさをあげてる
    • Emacsでジャンプできる
YAMLとJSON用のスキーマバリデータとデータバインディング - 桑田誠氏
  • YAMLとJSONは関連ツールが弱い。そこでKwalify
    • パーサ(パース前とパース後の両方のデータ)
    • スキーマ定義にオブジェクトの変換などがかける
  • スキーマ定義もYAMLやJSONで記述
ホワイトボード型CMS「SaasBoard」 - 久保田秀和氏
  • Webをフリーレイアウト
  • 文字や絵や画像が書ける
  • Sprite
    • マイクロコンテンツを統一的な方法で自由に配置
    • idのついたdivに子要素のdivの入れ子
  • コンテンツの参照方法はx,yをパラメータで持つ(固定URLも可能)
ギーク図書館 - 阪本真一(quill3)氏
  • 引っ越し先に大きな図書館があって、そこに技術書がたくさん置いてあった
  • 図書館のUIが最悪だった
    • 3000件結果があるのに1000件までしか表示してくれないとか
  • 機能
    • 図書館のデータをぶっこ抜いてきて、Amazonから検索(画像とかも)
    • タグ検索とか
    • 新着図書のRSS配信
  • これから
    • 大阪府立図書館にしか対応してないので他の図書館にも対応したい
  • 学んだこと
    • 他人に文句言うくらいなら自分尾手を動かす
    • 自分専用のサービスを作って公開
    • 小さく作って大きく育てる
パフォーマンスチューニングの基礎の基礎 - 蓑輪(ひげぽん)氏
  • Moshの開発絵の苦労した経験を元に
  • 結論
    • むやみに良いデザインを壊すな
    • 最初にゴールを決める
    • 計測
    • パフォーマンスを工数に入れる
  • やってはいけないこと
    • パフォーマンスを後回しにすると作ってから使い物にならないとかある
    • 「ここがいかにも遅そうだから」はダメ。計測して確かめる
  • 短いサイクルをまわす
    • 開発時は良いデザイン、良いコードに専念
    • 計測
    • チューニング
  • 計測を半自動化して楽しくする
  • グラフを描くと一目瞭然
    • いつから遅くなったか、いつから早くなったかがわかる
エロ目ジェネレータのすべて - 原田均氏
  • 顔写真をエロ目にするWebサービス
  • OpenCV+PythonのCGI
ならべて/narabeでの英語サービス挑戦 - 秋元裕樹氏
  • 日米同時リリース
    • やってみたかった
    • 成功よりもやってみたかった
  • ganchiku.comの世界をまわるフリーランス大野氏が開発
  • 日米リリースについて
    • 開発はsymfonyの機能で補完
    • 文化の違いを気をつけた○とチェックとか
IT業界で学生がこの先生きのこるためには? - ujihisa氏
  • タイトルはネタでVimの話
  • Vimscriptはかわいい
コモンズ・マーカーができるまで - 星暁雄氏
  • 任意のページにコメントを付けられて、そこに自動スクロールしてくれる

弾さん

  • まとまらない感をみなさん持ち帰ってください

吉岡さん

  • 技術は教えれるけど、スタイルや気持ちはコピーできないからそういうところを押さえてくれればいいな

作者:lesamoureuses

更新日:2008年9月6日 2時22分

このブログのホーム

[perl]Google talkでメールを送るスクリプト

会社の人とか、よくメッセンジャー使う人とかとのやり取りはメッセンジャー使えば良いんだけど、

僕の周りはPC立ち上げていない人の方が多く、たいてい携帯でメールが飛んできます。


で、僕はPC立ち上げてるので携帯にメール来たらそれをPCから返したいなって思ったりしてました。

ちまちま携帯で返すよりもサクッとキーボード打ちたかったりするわけです。

昔はPCのメーラ立ち上げてメールしたりもしたんだけど、

ちょっと面倒だし、せっかくメッセンジャー立ち上がってるならそれ使えたらいいなと。


ググってみたんだけど、そういうアプリ見つからなかったので勉強兼ねて作ってみました。


手順は

  1. メールを送る役割をしてくれるgoogle talkユーザのアカウントをとる
    • 例えばexample@gmail.comとか
  2. 上で作ったアカウントにアクセスするgoogle talkユーザを決める
    • これはいつも自分が使ってるアカウント。例えばmy@gmail.comとか
    • 一応セキュリティ上、操作できるクライアントを決めておいた方よさそうなので。
  3. 自分の携帯アドレスを登録
    • 携帯に返信来て欲しいので。例えばmobile@t.vodafone.ne.jpとか。
  4. 自分の友達のメアドと、それにわかりやすい名前をつけたもののマッピングを作る
    • 例えばfriend1@t.vodafone.ne.jpって友達はfriend1とか
  5. これらをYAMLファイルに書いて、google talkのクライアントになるperlがそれを読み込み起動する
  6. で、「@名前」と先頭につけて空白で区切った後にメッセージ投げるとそのユーザへメールが送られる
    • 「@friend1 こんにちは」ならfriend1@t.vodafone.ne.jpに「こんにちは」が送られる
    • 複数人に送りたかったら「@friend1 @friend2 こんにちは」とやる

まずperlのコード(gtail.pl)

#!usr/local/bin/perl

use strict;
use warnings;

use utf8;
use AnyEvent;
use Carp;
use Encode;
use Email::MIME;
use Email::MIME::Creator;
use Email::Send;
use Net::XMPP2::IM::Connection;
use Net::XMPP2::IM::Roster;
use Net::XMPP2::IM::Message;
use YAML::Syck;

use Data::Dumper;
use Devel::Peek;

my $yaml = 'gtalk.yml';
my $conf = YAML::Syck::LoadFile($yaml);

my $j = AnyEvent->condvar;
my $con = Net::XMPP2::IM::Connection->new(
    %{$conf->{login}},

    #override_host => 'talk.google.com',
    resource => "Net::XMPP2"
);

$con->reg_cb(
    session_ready => sub {
        my ($con) = @_;
        print 'Connected as ' . $con->{username} . "\n";
        my $immsg = Net::XMPP2::IM::Message->new (    # 毎回うざければ送信しない
            body => 'こんにちは',
            to   => $conf->{address}->{_owner},
        );
        $immsg->send($con);
    },
    message => sub {
        my ($con, $msg) = @_;
        # ownerのクライアントからじゃないと操作できないように
        return if $msg->from !~ m/ ^$conf->{address}->{_owner} /xms;

        my @body = split /[\s]+/, $msg->any_body; # body is flagged utf8
        my @users;
        while (1) {
            last if $body[0] !~ m{ ^@(.*) }xms; # @がついてる限りuser

            push @users, $1;
            shift @body;
        }
        my $reply = $msg->make_reply;
        $reply->add_body("send failure.");
        my $res = (@users) ? send_mail(\@users, join ' ', @body) : undef;
        $reply->add_body("send to @users: @body")
            if $res && $res->type eq 'success';
        $reply->send;

        print "Message from " . $msg->from . ":\n"
            . encode('utf-8', join ' ', @body) . "\n---\n";
    },
);

print "Trying to connect...\n";
$con->connect;
$j->wait;

sub send_mail {
    my ($users_ref, $body) = @_;
    my $from = $conf->{address}->{_from};
    my $to = convert_address($users_ref) || return; # 当てはまるアドレスなければundef

    warn "send to $to\n";
    warn "body: $body\n";

    # http://perl-users.jp/modern_introduction_perl/email_send.html
    # メールオブジェクトをつくる
    my $mail = Email::MIME->create(
        header => [
            From    => $from,
            To      => $to,
            #Subject => encode('MIME-Header-ISO_2022_JP', 'subject'),
        ],
        attributes => { charset => 'iso-2022-jp' }, # ないと文字化ける
        parts => [
            encode('iso-2022-jp', $body),
        ],
    );

    # Email::Send で送信する
    my $sender = Email::Send->new({ mailer => 'Sendmail' });
    $sender->send($mail);
}

sub convert_address {
    my $users_ref = shift;
    my %address = %{$conf->{address}};
    my @addresses = @address{@$users_ref} || return; # yamlにアドレスがなければundef

    my $to = join ',', map {
        (ref $_ eq 'ARRAY') ? join ',', @$_ : $_;
    } @addresses;

    return $to;
}

で、これを起動させるためのyamlファイル(gtalk.yml)

login:
  username: example
  password: example
  domain: gmail.com
address:
  _owner: my@gmail.com
  _from: mobile@t.vodafone.ne.jp
  friend1: friend1@t.vodafone.ne.jp
  friend2