Developers Summit 2017 Summerに参加してきた ~アウトラインメモ~

Developers Summit 2017 Summerに参加してしきました。

event.shoeisha.jp

参加したセッションのアウトラインメモを残しておきます。中途半端なメモのところもありますがそこはご愛敬ということで。資料が公開されているものはリンクを張っておきました。

なお、資料は公開され次第、以下でまとめられていくようです。

codezine.jp

※一部、私個人の解釈でメモしているものもあり、発表者の方の本来の意図とズレているものがあるかもしれませんがご了承下さい


エンジニアコミュニティを推進する企業文化 ~楽天での5年間のコミュニティ活動・社内勉強会からみえてきたこと~

1000人以上が来場するようになった楽天テクノロジーカンファレンス、事業部門から発案された社内ハッカソン、着実に収益基盤を確立してきたScrum Gathering Tokyoなどを手がけてきた立場から、どうやって社内外のコミュニティを居心地がよく、イノベーティブな場にするのか、私なりの体験と考え方を話したいと思います。

  • 楽天株式会社 川口 恭伸

内容

speakerdeck.com

  • コミュニティ運営やカンファレンス開催はなんか成功している感じはするし、はたから見ると楽しそう
    • 実際はそんな簡単ではない
  • 結局はプロジェクトとか商売のコツと大差ない
  • Tipsなど
    • 月単位のマイルストーンを決める
      • いつ開催案内する、登壇者募集するなどはきっちり決めておくと楽
    • 集まる日を決める(専任でできる人はいないので皆でやる日を決める)
    • 同じ会場で何度もやる
      • 場になれるのでトラブルがなくなる
    • 色んなカンファレンスに参加していろいろパクる
    • 人手は常に足りない問題
      • いきなり増やすとイベントの目的などのコンテキストを揃えるのが大変
      • 常連さんをどんどん運営側に引き込んでいく
    • 引き継ぎはなくしたい
      • どんな作業も一人でやらないでチームでやっていれば引き継ぎはなくなる
  • 楽天カンファレンスをやっている理由 → 楽天をふつうにしたい
    • ふつうというのはどこでもやっている状態

所感

時間配分が間違っていて途中で時間切れになってしまって残念でした。スライド後半まで話が聞きたかったですね。

コミュニティやカンファレンスに関する細かいTipSや考え方が確認できて良かったです。社内で技術イベントを主催しているので学べる部分がかなりありました。
会場を固定してそこで何度もやるのはやはり重要ですよね。ちょっと違うだけで変なトラブル出てきますし。現にデブサミ雅叙園に固定したらいろいろとうまくいくようになったそうです。
最近、仕事もプライベートもバタバタしていてなかなか勉強会やカンファレンスに参加できていないのですが何とか時間を作って参加していく気持ちが高まりました。やっぱ色々なイベントを見てパクらないとですよねー。

SoRとSoEをつなぐ「エンジニアの役割」と「企業の課題」

非IT企業のパーソルキャリアが、SoR型開発とSoE型開発を混在させ、その中でエンジニアがどのように価値発揮したか、また価値発揮させるための企業側の課題についてお話します。

  • パーソルキャリア株式会社 清田 馨一郎

内容

  • SoEとSoR
    • ジェフリー・ムーアが2011年に出版したホワイト・ペーパーにより広まったビジョン
    • Systems of Engagement and the Future of Enterprise IT
    • SoEとSoRは対立するものではない
    • BiModal戦略の登場(ガートナーが提案)
    • 枯れたことだけではダメ。新しいことだけでもダメ。ビジネスによいものを選択するのが大事
  • 社内事例
    • 新規システムにSoE
    • SoRのサブシステムをSoEで開発
    • これらにチャレンジして行く中で内製化の大切さを実感
      • 社内に知見が貯まる
        • 外部ベンダーに頼んでいると知見が貯まらない
      • プロダクトオーナーの育成、開発メンバーの育成、IT部門の本気度などが必要
  • なぜ非IT企業で内製化ができたか
    • 最初は優秀なエンジニアが必要
      • トップがテクノロジーで会社を変えるという強い意志を示す
      • 共感したエンジニアが入ってくる
    • エンジニアの採用
      • メディア露出、勉強会への登壇や主催
    • 社内風土
      • エンジニアの価値をしてもらう
      • 小さい成果をコツコツ出す
      • 所属部署以外へ積極的に絡んでいく
    • プロジェクトを回せることをアピール
      • IT部門、企画部門の人などを巻き込んでいき一緒に開発できることを認知してもらう
  • 内製化により見えてきたこと
    • 非エンジニアとのエンゲージメント
      • エンジニアが能動的に動くことが大事
        • 社内調整などの地道な活動も必要
        • エンジニアの方から非エンジニアの方に歩み寄り関係性を築いていく
    • 非エンジニアの上司との関係性
      • 非エンジニアの上司はTech Leadなどに権限を委譲する
        • エンジニアのことが分かる人がエンジニアに関する権限を持つことが大事
    • 変化が激しく、現場は混乱しがち
      • 次々に登場する新テクノロジーの目利きができる力が必要
      • アーキテクトが必要
    • 企業風土
      • 現場に権限が与えられているか
      • チャレンジが推奨されているか
        • 失敗が許されていないと新しいことはできない
        • 従来プロセスを見直して無駄を改善していく勇気
        • チャレンジするためにはしっりとした基盤(土台)が必要
      • トップの強い意志があるか

所感

SoEとSoRの詳しい話ではなく、この考えを元に企業のエンジニアリング文化をどう変えていったのか?という話でした。
外部に委託することがメインだった企業がどのようにエンジニアリングができる会社に変わっていったのかの知見を知ることができました。 さらっと発表していたがこの裏にはかなりの苦労があったんだろうなーと思いました。
エンジニアの価値向上のための方法、社内風土の形成は参考にしたい。 特に非エンジニアの方との関係性の構築は気をつけないとですよね。お互いの立場が違うことを認識しないで話しちゃうとどうしても対立してしまうので注意しないとですね。

Yahoo! JAPANのコミュニティが生み出す価値

企業主体のコミュニティを立ち上げたYahoo! JAPAN。そこに至った背景や、コミュニティを通じてYahoo! JAPANのエンジニアやデザイナーに起きた変化、そして、これから世の中に与えていく影響についてお話しします。

  • ヤフー株式会社

内容

www.slideshare.net

  • 社員の勉強会参加、登壇は積極的に支援
  • LODGEというコワーキングスペースをオフィス内に設ける
    • 技術勉強会などにも利用してもらっている
  • 企業がコミュニティを形成する目的は?
    • 採用 → 一般的
    • 成長 → こっちの話をする
  • なぜコミュニティから成長を生み出したいのか
  • 社外コミュニティの参加支援
    • 支援はありがたいが、自分たちの課題を解決できるとは限らない
    • 規模の大きなイベントに偏りがち
    • 行く人と行かない人のギャップが生まれる
    • → それなら企業がコミュニティを形成してしまおう
  • ヤフーが形成するコミュニティ
    • 課題を解決することを目的にする
      • 同じような課題に取り組む企業とも共有しやすい
    • 課題を解決する場として定着させる
      • 勉強しに行くのではなく課題を解決する場に
    • 複数領域をまたげるように(iOSAndroid、デザインなど)
      • 各領域を1つの目的で繋げることがキモ
      • 全体をまたいでフォローする組織がある
        • 色々な領域を見ることで共通課題を見つける
    • 実現する上で乗り越えたこと
      • とにかくオープンに開催
      • 小さな成果をとにかく拡散する
        • コミュニティ全体の成果となるように意識
      • ときには自らハードルを下げていく
    • 現れてきた成果
      • 導入するツールの意思決定が行いやすくなった
      • 小さいチームの施策を大きなチームが導入

所感

ヤフー自らが主体となってコミュニティーを運営している目的やその効果が説明されたセッションでした。 勉強しに行くのではなく課題を解決する場であるという考えが素敵でした。
小さな成果でもどんどん発信していくスタイルはやっぱ大事ですよね。こういう文化があるというのもいいですね。
しかし、あまりに内容がひどいと逆に信頼を損ねることにも繋がるのでは?とも思いました。この辺りの線引きをどうしているのか気になりました。ヤフーさんだけではなく各社何かしらのレビューフローとかあるのか気になるところ。

コミュニティ活動と企業の相互作用 ~コミュニティへの貢献と組織活動への還元~

本セッションではコミュニティへの貢献が企業の組織にどのように影響するのか、実際の事例と開発での体験を通して、コミュニティと企業の相互作用について紹介します。

  • 株式会社メルカリ/株式会社ソウゾウ 上田 拓也、日高 正博

内容

  • エキスパートエンジニア職がある
    • 社外の活動5割、社内の活動5割で行える
  • 技術をアウトプットするところに技術が集まる
    • 社内で得た知見をコミュニティに伝えるのが基本
      • 実際にプロダクトを開発しないと得られない知見がある
    • 外のカンファレンスで得た知識を社内勉強会でチームに共有
    • チームメンバーに、勉強会への登壇や、Techブログの記事依頼も仕事のひとつ
    • 社外と社内で情報を回して知見を集めていくというサイクル
  • 技術コミュニティを通じて知見を得る
    • 1社が取り組めるプロダクトの数には限界がある
    • 色々な会社が参加しているので自分たちがまだ知らない知見を得ることができる
  • 海外カンファレンスへの参加
    • 日本で得られない知見を得る
    • 日本で得た知見を共有する
      • 日本のコミュニティのレベルは決して低くない
  • コミュニティで得た知見を社内に還元する
    • いくつか社内勉強会があるがだいたいが週1でやってる
    • 情報共有だけでなく社外へのアウトプットの練習の場にもなっている
    • Go Fridayのポリシー
      • 短期的なインパクトよりも継続することが最も大事
      • 資料の準備を頑張らない
      • スキップしない
        • 1度スキップするとクセになる
        • 雑談ベースでもよい
  • 技術教育と技術コミュニティ
    • ビギナーを支援していく
      • 敷居を下げていく活動が大事
      • ビギナー向けの情報や書籍は重要
      • 体系的に書かれた資料が必要
      • ハンズオン、学んだことをLTでアウトプットしてもらう
  • 貢献と還元を考える
    • 同期的な活動
      • 勉強会、カンファレンス
    • 非同期的な活動
      • 書籍の執筆、ブログ、情報共有
    • この2つを通じて貢献していく
    • 敷居が高いと感じるなら、自社プロダクトで使っているOSS部分の不具合報告、動作報などをフィードバックしてみるところから初めてみる
  • コミュニティへの貢献が組織を変える
    • エンジニア自身の知見がたまる
    • 社外から技術的なフィードバッグを獲得
    • 新しい技術を取り入れ、作っていく土壌の育成

所感

メルカリのブログに書かれていて既に知っている内容もありましたがこうやってまとめて聞けると良いですね。
社内の活動の成果と、社外の活動の成果の流れのサイクルを本当にうまく回していて素晴らしいです。 社外の活動に工数の半分を使ってもよくそれもきちんと評価に結びつけているということもすごい。

外部への関わりを評価する仕組みを自分が今いる組織にも入れられないか考えてみたいです。

組織と文化のリファクタリング

一度は良かれと思って始めたチーム体制や評価制度、あるいは社内の勉強会など…いつの間にかうまくワークしなくなった社内の「組織」や「文化」はありませんか。クリエイターたちが前向きに業務に打ち込んだり、モチベーション高く開発を維持するために、リブセンスで行った取り組みをご紹介します。

  • 株式会社リブセンス 海野 拓、内山 高広

内容

speakerdeck.com

speakerdeck.com

  • クリエイターの組織作りの事例紹介
    • 組織の特色
      • 事業部長が強い
        • ビジネス出身なのに自ら開発始める
      • 色濃い越境型組織
        • 職種の違いはあまりない
        • 営業もSQL平気でたたく
    • 課題
      • 事業部長に頼りきってしまう
      • 教育にコストがかかる
      • 評価に不公平感がでる
    • 評価の仕方の明文化
      • キーワードとして分かるように
      • 課題解決力だけでなく技術力でも評価
    • いろいろあって組織が再編成される
      • でも、今までやってきたことが次の組織へ
      • 良いところはそのまま取り入れられていった
  • 文化の形成、社内勉強会をリファクタリングした話
    • テーマ縛りのLT大会やってる
      • 昔は読書会だった
      • アウトプットの場にしようということからスタート
    • 最初始めたときは10回で終わった
      • 毎週一人一人と消えていった
      • 理由は飽きてきたから
      • いつも同じ人が発表しがち
      • ガチ勢じゃないと参加しづらいと思われがち
      • 内輪ノリになりがち
    • どう復活したのか
      • 取締役の退任がきっかけ
      • その時に、あれは良い文化だったと言ってもらった
    • 勉強会の良かったところを言語化する
      • これにより趣旨は悪くなかったことが分かった
    • 趣旨は変えずに内部を変えることに→リファクタリング
    • 新規参入者の促進
      • これまで参加してくれて人の楽しみは奪わないように
      • いつも発表してくれるコアメンバー以外にもアプローチできるように
    • また飽きていくことは大いにあり得る

所感

組織の再編成を乗り越えて、今までの取り組みが全社の評価制度の見直しになったのはすごいですね。良いところを次にも繋げていける体制は素晴らしいと思いました。組織が強くなるとプロダクトも強くなるという言葉が印象的でした。
自己組織化といっていましたが自立的な組織ですね。やっぱ大事だよなあ 社内勉強会をリファクタリングした話も印象的でした。1度はマンネリ化してしまったものを趣旨は変えずに中身を変えていくという取り組み素晴らしいですね。
こういう勉強会ってどうしても内輪になりがちなので新規参入者のことを考えていくことは本当に大事だと思います。敷居を下げているつもりでも対象者はそうは思っていないってことになりがちなんですよね。

eurekaの普遍的に優秀な人材として成長し続けるための組織づくり

エウレカでは、100名を超える多様なバックグラウンドを持ったメンバーひとり一人が気持ちよく働ける環境づくりと、いかなる環境においても活躍できる普遍的に優秀な人材として成長し続ける組織作り、文化作りについて紹介させて頂きます。

内容

www.slideshare.net

  • 自律と自立
  • 自己組織化されたチームが必要
  • タックマンモデルをベースにした
  • ドラッカー風ワークショップ
    • 嫌なことも好きなことも分かる
    • その人の地雷を避けることもできるようになる
  • インセプションデッキ
    • 判断基準に迷ったときの判断基準に
    • プロジェクトに対する認識のズレを減らせる
  • チーム内の対話を増やすことが大事
    • チームで対話して合意することが大事
  • チームの問題を自分事に
    • 偉い人の問題と考えないで自分の問題として扱えるように

所感

時間オーバーで最後まで話が聞けないのが残念でした。
自己組織化されたチームを作るためにどのような活動をしてどのような効果があったのか理解できました。
チームメンバーのことを知るためにドラッカー風エクササイズを実施するのは是非やってみようと思いました。 あとは、問題を自分の問題にするのは意識したい。ついつい、上の人が悪い、会社が悪いとか考えてしまいがちです。最近こういう傾向になりがちだったので改めて今抱えている問題を考え直したいと思いました。

コミュニティを長く続ける秘訣

本セッションでは、10年継続している企業主催コミュニティ、1年間でのべ6000人以上が参加した個人主催コミュニティ、そして年間600回もの勉強会が開催されるコワーキングスペースを運営するそれぞれの立場から、コミュニティのグロースや、持続的に運営する方法について語ります。

内容

企業主催の勉強会を10年続けたノウハウダイ公開

  • 株式会社ビープラウド 佐藤 治夫

www.slideshare.net

  • BPStudyは2007年9月から始めた(丸10年)
  • 今までに320人の方が発表してくれた
  • フリージャンルで多くの人に話せる勉強会
  • 心が折れそうになることも
    • 開催テーマの企画
      • 倒産する人が見つからない、見つかっても日程が合わないなど
      • 解決策 : 新刊技術書をチェック、カンファレンスページのチェックなどを行う
    • 集客
      • 50人会場で20~30人来れば人が集まっている感がでる
      • 解決策 : 告知時の導線の改善、Webページの紹介文の改善
      • ドタキャン対策
        • リマインドのタイミング、参加枠の調整など
  • なぜ発表するのか
    • 発表テーマを探す→自分の経験が整理される→勉強会で話す→自分の専門分野が見えてくる自信がつく→キャリアが変わる
  • 発表したら良い内容
    • 本に書いていない内容
      • やってみて得た知見、最新情報、コツ・独自の理論、デモ・ライブコーディング

個人主催でも4000人が集まった、IoTLTグロースの秘訣を探る

  • dotstudio株式会社 菅原 のびすけ

speakerdeck.com

  • なぜ参加人数が増えているのか?
    • 「IoT 勉強会」で調べると検索の上位になるから?
    • 毎回会場を変えている
    • 告知する媒体を分けている
    • 半数が新規、半数がリピーター。このバランスが良い
  • Tips
    • 頑張りすぎないのが大事
    • お客さん意識は特にしない
    • 片付けとかもみんなで
    • IoTLTは運営は2人しかいない

コワーキングスペースでたくさんの勉強会を支えてみて

  • コワーキングスペース茅場町 Co-Edo 田中 弘治

  • 会場費は参加者ひとり1,000円

  • 懇親会開催にも対応
  • 最初1フロアで運営していたが今では3フロアに
  • 会場を貸す側からみた良い勉強会とは
    • イベント内容を端的に説明できている
    • タイトルだけで申し込みしたくなるのが理想
    • 日程調整などの段取りが上手だと同日の進行もスムーズな傾向
    • 来て欲しい人が明確になっている
    • 開始時刻だけでなく開場時刻もきちんと書く

所感

長いことコミュニティを運営している方、継続的に集客しているコミュニティを運営している方、勉強会の会場を提供している方のノウハウや取り組み方を学ぶことができました。

BPStudyは継続的に月1回開催を10年間も続けているとか本当にすごいです。告知文を改善するためにWebライティングを学ぶというのは良さそうなので早速勉強しようと思いました。

IoTLTの緩い感じすごく良かったです。特に頑張りすぎないという話は印象的でした。参加者をお客様意識しないという考えは大事だなあと思いました。 どうしても「参加するんだからちゃんと対応しろよ!」という人が出てきてしまうと思いますが、そうは思わずに「緩い感じでもいいじゃん!」って人達が集まるようになってくるから良い雰囲気が継続できるのかなと思いました。

普段なかなかコワーキングスペースを運営している人の話なんて聞く機会が無いのでCo-Edoの話は新鮮でした。
勉強会を主催する人を大切にしている気持ちがビシバシと伝わってきました。こういう方のおかげで皆が学べる機会が提供されているのですね。

全体所感

コミュニティについて1日を通して考えることができて非常に有意義でした。

オープンな技術コミュニティも社内の技術コミュニティもコミュニティであることには変わりありません。さらには忘れがちですが、企業内の組織もまたコミュニティなのです。

内部、外部のコミュニティをどう繋げていくのか、どう相乗効果を出していくのか、そんなノウハウを学べた気がします。
コミュニティを盛り上げる方法、継続する方法に決まった定石があるわけではないです。自分のコミュニティにあった方法を他のコミュニティからパクりつつ最善な方法を探し続けていくことが大事なのだと改めて思いました。

私自身、社内のTechイベントみたいなものを主催しているので今回得たことを取り入れていって、ゆくゆくは社外も巻き込んでの情報共有ができていけるように精進していこうと思います。

Amazon Echo Showが発表されました

噂されていたAmazon Echo Showが発表されました。

噂通りのスクリーンのついたもので、6/28発売のようです。

www.amazon.com

開発系情報を発信しているAlexa BlogにもEcho Showについての記事があがっています。

Introducing the All-New Echo Show : Alexa Blogs

商品説明と開発者Blogを見たファーストインプレッションをTwitterでつぶやいていたので忘れないようにまとめておきます。

音声アシスタント分野ますます面白くなってきました。 これによりAmazonの独走状態がさらに続くのか、それとも他社も負けじと何か出してくるのか楽しみなところです。

しかし、MicrosoftのBuildの前日に発表してくるとかさすがですね…これでCortana Skills Kitの存在がちょっと薄くなってしまう。

SlackのStatusを簡単に変更できるChrome拡張をつくった

作りました。

chrome.google.com

定型パターンを登録しておくとボタン押すだけでSlackのステータスを変更できます。

背景

先日Slackに自分の状態を設定できる新しい機能が追加されました。

slackhq.com

絵文字とテキストで自分の状態を表すことができます。

この手の自分の状態を表す機能は一般的にチャットツールと呼ばれるものには存在しています。 Skypeにもありますよね。連絡可能とか取り込み中とかでるアレです。

今までもユーザーがアクティブか非アクティブか、Do Not Disturbモードかどうかくらいの範囲ならユーザー状態を確認できました。

しかしこれだけだと、話しかけてもよいのか、忙しくて話しかけないほうがよいのか、今日何をやっているのかといった具体的な状態がわかりませんでした。

そこでこの機能を使えばそういった細かいこともメンバーに伝えることができるというわけです。

Chrome拡張にした理由としては何をするにしてもブラウザを起点とすることが多いと思ったからです。 JIRAやTrelloでタスクを確認するにしてもスケジュールを確認するにしても今の時代ブラウザ中心なので。

簡単な使い方について

使い始めるにはまずオプション画面からSlack API Tokenと絵文字、ステータステキストの組み合わせを登録しておく必要があります。
オプション画面はアイコンを右クリックして。「オプション」を選択するか、Chromeのメニューから「その他ツール」→「拡張機能」を選択して本拡張の「オプション」ボタンを選択します。

f:id:braitom:20170417230208p:plain

Statusは最大5件まで登録しておけます。定型パターンなので5つもあれば十分だと思ったので5つとしています。

絵文字とテキスト両方入れてもOKですし、どちらか片方だけを入力してもOKです。なお、絵文字を空白にするとSalckがデフォルトで💭をセットする仕様のようです。

また、5つ全てを登録する必要もありません。登録しなかった箇所はClear Setting扱いになるようにしています。このボタンを押すと設定したステータスをクリアしてくれます。

f:id:braitom:20170417230614p:plain

なぜ作ったか

もっとメンバーの状態を簡単になんとなく把握したいと常々思っています。

分報チャンネル等に自分のやっていることをガンガン垂れ流している人だと何やっているのか簡単に把握できますが、自分の作業をあまり垂れ流したくない人います。また、作業を随時垂れ流すということは習慣になっていない人からするとそれなりに負荷がかかります。 人によってはオンラインにいるもののRom専となり一切発言しないなんてことも起こりえます。

そうなると「あれ?お願いした作業進んでいるのだろうか?」とか「締め切りがもうすぐの仕事やっている気配ないけど何か他の作業いそがしいのだろうか?」などが気になってしまいます。 特に、リモートワークなどをしていて顔を合わせる頻度が少ないとこの辺りは問題になってきます。

もちろん作業の進捗だけが知りたいわけではありません。 最近何に興味があるのかとか週末何してたのかといったそういうことも気になります。こういう話題は雑談のきっかけにもなりますしね。

そんな時に便利なのがこのステータスです。 作業を始める前などに設定しておけばOKなわけです。 作業の状況だけでなく、自分の状態やハマっていることなんかを設定しておくのもよいと思います。

例えばこんな感じ。

  • 「💪 今日は○○の作業中心にやります」
  • 「🙅 今は集中タイム。なるべく話しかかけないで」
  • 「🙆 気軽に話しかけてもらってOK」
  • 「😵 ○○の実装にドハマり中…」
  • 「🎥 シンゴジラ見てきた。やばい」
  • 「⚔️ ドラクエはじめた」

しかし、いちいち入力するのはめんどくさいですよね。

こういったよく使いそうなものを登録しておいて気軽にステータス変更できるようにすればみんなこの機能を使うようになるのではと考えました。

これにより以下の効果を狙えるのではという期待があります。

  • チーム内の作業状況が把握しやすくなる
  • チームのコミュニケーションを促進するきっかけになる

さいごに

というわけでよかったら使ってみてください。 これがきっかけで皆さんのチームコミュニケーションの活性化に貢献できたら幸いです。

ステータスの使い方は各チームごとにいろんな個性が出る気がしているので面白い使い方、効果的な使い方等を共有したいものです。

何かChrome拡張に対する要望等がありましたらお気軽にTwitter等で連絡お願いします。

Bash on Ubuntu on Windowsにおけるpyenv経由でのPythonインストール

Bash on Ubuntu on Windowsにおいてpyenv経由でPythonを入れようとしたら軽くハマったのでメモ。

pyenv自体のインストールはドキュメント通りで問題無くできます。

github.com

さてさくっと入れるか。

[~] pyenv install 3.6.1                                   
Downloading Python-3.6.1.tar.xz...
-> https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
Installing Python-3.6.1...

BUILD FAILED (Ubuntu 14.04 using python-build 1.0.10-2-geef042a)

Inspect or clean up the working tree at /tmp/python-build.20170401003019.1617
Results logged to /tmp/python-build.20170401003019.1617.log

Last 10 log lines:
checking for --with-universal-archs... no
checking MACHDEP... linux
checking for --without-gcc... no
checking for --with-icc... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/tmp/python-build.20170401003019.1617/Python-3.6.1':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details

C compilerがないっぽい。gcc入れる。

[~] sudo apt-get install gcc

再トライ。

[~] pyenv install 3.6.1
Downloading Python-3.6.1.tar.xz...
-> https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz

Installing Python-3.6.1...

BUILD FAILED (Ubuntu 14.04 using python-build 1.0.10-2-geef042a)

Inspect or clean up the working tree at /tmp/python-build.20170401004019.6758
Results logged to /tmp/python-build.20170401004019.6758.log

Last 10 log lines:
creating Modules/Setup
creating Modules/Setup.local
creating Makefile


If you want a release build with all optimizations active (LTO, PGO, etc),
please run ./configure --enable-optimizations


/home/braitom/.pyenv/plugins/python-build/bin/python-build: 行 746: make: コマンドが見つかりません

今度はmakeがない。ですよね。ごめんなさい入れます。

[~] sudo apt-get install make

今度こそ。

[~] pyenv install 3.6.1

Downloading Python-3.6.1.tar.xz...
-> https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
Installing Python-3.6.1...

BUILD FAILED (Ubuntu 14.04 using python-build 1.0.10-2-geef042a)

Inspect or clean up the working tree at /tmp/python-build.20170401004228.15164
Results logged to /tmp/python-build.20170401004228.15164.log

Last 10 log lines:
  File "/tmp/python-build.20170401004228.15164/Python-3.6.1/Lib/ensurepip/__main__.py", line 4, in <module>
    ensurepip._main()
  File "/tmp/python-build.20170401004228.15164/Python-3.6.1/Lib/ensurepip/__init__.py", line 189, in _main
    default_pip=args.default_pip,
  File "/tmp/python-build.20170401004228.15164/Python-3.6.1/Lib/ensurepip/__init__.py", line 102, in bootstrap
    _run_pip(args + [p[0] for p in _PROJECTS], additional_paths)
  File "/tmp/python-build.20170401004228.15164/Python-3.6.1/Lib/ensurepip/__init__.py", line 27, in _run_pip
    import pip
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] エラー 1

zlibがないっぽい。すいません入れます。

[~] sudo apt-get install zlib1g-dev

4度目の正直。

[~] pyenv install 3.6.1

Downloading Python-3.6.1.tar.xz...
-> https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz
Installing Python-3.6.1...
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/pyenv/pyenv/wiki/Common-build-problems


BUILD FAILED (Ubuntu 14.04 using python-build 1.0.10-2-geef042a)

Inspect or clean up the working tree at /tmp/python-build.20170401005207.30873
Results logged to /tmp/python-build.20170401005207.30873.log

Last 10 log lines:
                        upgrade) ensurepip="--upgrade" ;; \
                        install|*) ensurepip="" ;; \
                esac; \
                 ./python -E -m ensurepip \
                        $ensurepip --root=/ ; \
        fi
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0

あれ? ここで気づきました。そうだこれはUbuntuだった。

結論

ということで最初にまるっといれておけばOKです。

[~] sudo apt-get install git gcc make openssl libssl-dev libbz2-dev libreadline-dev libsqlite3-dev

教訓

Windows触ってるけどUbuntuだってことを忘れないようにしましょう。

Visual Studio 2017のテーマを変更する

Visual Studio 2017のテーマを変更する方法です。

正直、Visual Studioを真面目に使うのはVisual Studio 2012以来です。 実に5年ぶりです。 デフォルトダークなテーマがあったりとだいぶイケてる感じになっていて満足しています。

しかし、なんかコードが見づらい感じがしたので変更することにしました。

設定方法は特に難しいとことはありません。 以下のサイトでいろいろなテーマが公開されているので好きなものを選んで入れればOKです。

設定方法

具体的な手順に入っていきます。

テーマの選定とダウンロード

こちらから好きなテーマを探します。

私は定番のMonokaiを使うことにしました。

注意点としては「Visual Studio 2015」を選択した上でダウンロードすることです。今回Visual Studio 2017に適用しますが2015のものでも問題なく適用できることを確認しています。

f:id:braitom:20170316225850p:plain

テーマをVisual Studioにインポートする

  1. [ツール]>[設定のインポートとエクスポート]と進んで[設定のインポートとエクスポート ウィザード]を開く

  2. [選択された環境設定をインポート]を選択して[次へ]

  3. 現在の設定の保存画面になるので、現在の設定を保存するか上書きするかを選択して[次へ]

  4. インポートする設定コレクションの追加画面になるので、左下の[参照]から先ほどダウンロードしたテーマ(xxxxx.vssettings)を選択してインポートする

たったこれだけです!

おまけ

フォントも変更するとさらにいい感じになります。

[ツール] > [オプション] > [環境] > [フォントおよび色] > [フォント]から変更できます。

お勧めは、「Consolas」です。

さいごに

Before、Afterを見てみましょう。

Before f:id:braitom:20170316231625p:plain

After f:id:braitom:20170316231642p:plain

いい感じですね。

Windows 10の開発環境作り(2017年春編)

もう3月も半ばですね。気分はもう春です。

春ということで気分を切り替えるために、久々にまじめにWindowsを使ってみることにしました。 そのため環境構築まわりで何をやったのかをメモがてら残しておくことにします。

ちなみにこのマシンを買いました。

HoloLensアプリの開発もしたいのでGPUが欲しかったのでどうせならとGTX 1080積みました。とりあえずメモリも32GBに盛っておきました。

開発系

Chocolatey

Windowsのパッケージマネージャーです。 MacでもHomebrewに依存しまくっていたのでパッケージマネージャーがないとツラいので。

GUIで管理できるものもあるので入れたい人は入れておくとよいと思います。

Bash on Ubuntu on Windows

導入方法は以下の記事が分かりやすいと思います。 簡単にいうと、機能の有効化でWindows Subsystem for Linuxを有効にして開発者モードをオンにすればOKです。

Macと同様、zshを使いたかったので入れます。

$sudo apt-get install zsh

起動確認。

$zsh

デフォルトシェルをzshにするためchshコマンドで変更しようとしたのですがうまくいかないみたいです。 bash.exeを起動してもデフォルトzshになりませんでした。

しょうがないのでbashrcに以下を書いてbash起動時にzshを起動させます。

# Launch Zsh
if [ -t 1 ]; then
exec zsh
fi

これでbash.exeを起動したらデフォルトzshが使えるようになります。 Oh My Zshもそのまま使えました。

Maczshrcをそのまま使えるので楽ちん。

cmder

シェルです。 昔はConEmu - Handy Windows Terminalを使っていたが今の時代はこのcmderの方がイケてるらしいのでこっちを入れました。
複数タブを開ける、開くシェルの種類を選べる、テーマとフォントも色々と設定できるのでこれで問題無さそう。

設定したBash on Windowsを簡単に使えるよう設定しておきます。

  1. 「メニュー」>「setting」を選択
  2. 左サイドバーの「Startup」>「Tasks」

「+」を押して以下のように入力してます。

  • 名前: Bash::Bash on Ubuntu on Windows
  • Task parameters: -icon “%USERPROFILE%\AppData\Local\lxss\bash.ico”
  • commands: C:\Windows\System32\bash.exe ~ -cur_console:p

f:id:braitom:20170314234405p:plain

これでcmderから簡単にbash.exeが起動できます。

JavaScript関係

nvm

nodeはバージョンを切り替えてがちゃがちゃと試したいことが多いのでChocolaty経由で入れずにnvmを使います。 最近はWindows用のnvmとかあるんですね。

Macではnodebrewを使っていましたがnvmでも同じことができるので問題無いです。

Yarn

今の時代、特にデメリットも無いのでYarnを入れておいた方がよいので入れます。

インストーラーもありますがChocolaty経由でインストールできるので楽ちんです。

Python

PythonはChocolaty経由で入れました。

以下のコマンドで3系が入る。

choco install python

2系は以下で。

choco install python2

その他いろいろ

alt-ime-ahk

その名前とおりのツールです。左右のAltキーの空打ちでIMEの英数とかなを切り替えることができます。
英語キーボードを普段使っている、かつMacと同じ感覚で英数とかな入力を切り替えたいのでこれは必須。

OS起動時に勝手に起動して欲しいので忘れずにスタートアップフォルダへと置きます。

f.lux

ブルーライトカット効果のあるツールです。 時間毎に画面の明るさを調整できます。これがないと目が疲れてしょうがないのでいれます。

アプリランチャー

MacAlfredのようなランチャーが欲しかったのですがあまりしっくりくるものがありませんでした。

いろいろ試したのですが、「Win + S」の検索呼び出しで問題無さそうという結論に至りました。
アプリケーションランチャーとしてはこれで問題無いのですがファイルの検索がどうもいまいちイケていません。
なのでファイル検索はEverythingで補うことにしました。

Screenpresso

画面キャプチャツールです。指定した領域のキャプチャもできるし、編集ツールもいい感じです。
MacではSkitchを使っているのですがWindows版は開発中止になってしまっていたのでこれを使うことにしました。

Tower

GitのGUIクライアントです。 Mac版も最高でこれ以外のGitのGUIクライアントはもう使えない状態になっています。幸運にもちょっと前にWindows版がリリースされました。
使っている感じたまに不穏な動きをしますがMac版と同じ使い勝手なので課金しました。

その他

以下のような定番ツールは普通にインストーラー経由でインストールしました。

  • Chromeなどのブラウザ
  • VS Code、Unity、Visual Studioなどの開発ツール
  • その他もろもろ

TwitterクライアントとRSSリーダーアプリでいいものが見つかっていないというのが悩みです。
RSSリーダーのサービスはInoReader使っているのでそれに対応していると嬉しいのですが…
何かお勧めがあればぜひ知りたいです。

さいごに

ざっくりとこんな感じです。
メインマシンをWindowsへと久しぶりに切り替えましたが素晴らしいですね。というかWindows10が素晴らしい。特にBash on Ubuntu on Windowsは感動を覚えました。
Macのターミナル環境ほぼそのまま持ってくることができたのでいうことありません。
マシン性能がよいからなのかもしれませんが、VSやUnityでの開発もめちゃくちゃ快適です。

ただ、フォントがちょっとツラいです。目が悪くなったように感じます。そこだけが不満。

ということでHoloLensも買ったことですし、今年はMicrosoftに魂を売っていく感じでいきたいと思います。
でも、新しいiPhoneiPadが出たら買います。

音声認識や音声コントロール系ニュースまとめサイト始めました

Voice-Recognition-Tech.infoという音声認識、音声操作に関するTech系ニュースまとめサイトを始めることにしました。
イケている名前が思いつかず安直な名前となってます…

voice-rek.gather-tech.info

去年から始めたGater-Tech.infoの音声認識特化版というイメージです。

gather-tech.info

更新頻度やコンセプトに関してはこちらに書きました。

voice-rek.gather-tech.info

週1か隔週くらいでの配信を目指しますがネタの集まり次第って感じです。

今後どんどんと伸びてくるだろう分野だと思うのにこういったまとめサイトがないようなのでとりあえず始めてみようという考えです。

ということで、 第1回を書きました。

voice-rek.gather-tech.info

ちょっとどんなものか興味があったので、MediumのPublication機能使ってみています。
一緒にやりたい、何か記事を投稿してみたいという方はぜひCollaborationして下さい。

ということで、よろしくお願いします。