予測不可能な決定系

決定論的なのに予測が不可能……つまり, そういうことだよ

Code2015 に参加した

Code2015に参加した。

終わってからけっこう時間が経っちゃったけど、
覚えてる範囲で今年も参加した感想を簡単に書いておく。

Opening Speech

@DrewRobbinsさんの基調講演。

今年も3つの単語からなるキーワードを元にしたお話。

今年は

「Eat. Drink. Sleep.」

  • どこで情報を収集し、どこでそれらを共有するのか (Eat)
  • 次々と生みだされる技術やサービス、デバイスの中で何に興味を持っているか (Drink)
  • 今どういうことに取り組んでいるか ((not) Sleep)

これらの情報をOneNote Onlineを通じてイベント中に共有しよう、
という内容だった。


毎年キーになる言葉は変わるけど、
その本質的な部分は初めての時にあった
「Learn. Practice. Share.」
からブレずに、それに肉付けをしている感じになっているんだと思う。

きんぎょばち

今年も結局セッション抜けて温泉行ったりプール行ったりせずに、
ずっと何らかのお話を聞いてた。

自分が聞いていたのは

1日目
  • @jsakamoto さんのWindows環境でのPHP開発
  • チャックさんの「Beyond Openness of the "Death Star"」
2日目
  • にいやまさんのしーぴーゆーの話
  • @jsakamoto さんの「Raspberry Pi を使って、Web 技術を UI にして、スマホからLEDやモーターなどを操作してみる」

急遽にいやまさんのしーぴーゆーの話が2コマ連続になって2日目の2コマ目をどっち行こうか迷ったけど、
結局元から聞きたかった @jsakamoto さんのラズパイの話を聞いた。
最後はラズパイ使った話じゃなくなってたけど、やっぱり実物のデバイスが絡む話は面白いなぁ。

だしもの

去年のコードゴルフに相当するだしものとして今年は
脆弱性ゴルフ」と「QRコードクイズ」が用意されていた。

脆弱性ゴルフ」は事前に用意されたサービズ(Zabuton)に仕込まれた脆弱性を探すというもの、
QRコードクイズ」はQRコードを読みそこにあるクイズを解こうというものだった。

かろうじて自分にできそうだったのは「QRコードクイズ」だったので、なんとなく頑張ってみた…
結果今までで一番真面目にコードを書いた年になった気がするけど、
最終的には自分のIT教養のなさを痛感する結果になってしまったなぁ…まだまだ精進が足りないです。
(Base64とか名前しか知らないレベルなんで。。)

その他

今年も宴会中に参加者の体(心?)をはった大喜利があったり、
VRで遊んでみたり、
温泉入ったり、
朝方までコード書いてたりしてた。
なんかトータルで遊んでた気分だった。


今年も充実した楽しい2日間を過ごすことができました。
参加者の皆様、そして今年も開催してくれたスタッフの皆様に感謝です:)

Azure CLI で Azure の仮想マシンを操作する

手元のマシンにWindowsの開発環境が欲しくてAzureでVMを作ることにした。
とりあえずサブスクリプションの準備をしてポータルでVisual Studio Community 2013の使えるVMを作成してリモートデスクトップで接続できるところまでは確認。


普段使わないときはVMを落としてるから、使うときはポータルからVMを起動→リモートデスクトップで接続という流れになるけど、
どうせならいちいちポータルから起動しないでコマンドで起動して接続したほうが楽そう…
ということでAzure CLIを使ってみることにした。

その際の手順やハマった点のメモ。


基本的にはMicrosoft Azure 自習書シリーズの公開の「17: コマンドラインによる Microsoft Azure 管理 Mac,Linux 編」からダウンロードできるPDFに沿って作業した。
こうしたドキュメントが日本語で読めるなんて素敵な限りだ。

インストール

なにはともあれコマンドのインストール。
Azure CLI ツールを動かすにはNode.jsが必要なのでまずはそのインストールから。

ドキュメントではCentOSへのインストール例が載っているけど、自分のマシンはUbuntuなのでyumではなくaptitudeでインストール

$sudo aptitude install nodejs npm
$node -v

でNode.jsのインストールを確認しようとしたら失敗。。
どうやら標準パッケージから普通にインストールすると"node"ではなく"nodejs"というコマンドになってしまうらしい。
一応そのまま進めてみたけど、やっぱり途中で「node コマンドがないよ!」って怒られるので大人しくインストールしなおすことにした。

Ubuntu 14.04 に Node.jsをインストールする
上記記事を参考にPPAリポジトリを追加して再度インストール。
今度は無事に"node"コマンドがインストールされ、

$sudo npm install -g azure-cli
$azure 

で無事azureコマンドがインストールされるところまで確認できた。
(ここまで読んで初めてドキュメントにUbuntuへのNode.jsのインストールの記載があることを知る。。)

サブスクリプションへの接続

「発行設定ファイルによる認証」で接続情報をマシンにインポートする。
基本的には記載されているコマンドを順番に実行していくだけ。
途中で「無料評価版…」という名前のファイル(当然Azureのアカウント内容によってファイル名は異なると思う)がダウンロードされるが、どうにもこの名前だと補完がされずらいので名前を変えてからインポート。
最後にダウンロードした発行設定ファイルを削除して完了。


ここまででコマンドを使ってAzureを操作する準備が整ったのであとは実際にやりたいことに対してどういうコマンドを使えばいいかを調べるだけ。
以下は残りのドキュメントを読んでて気になったポイント。


いくつかコマンドを実行してみた感じだとazureコマンド以降の機能名や操作に補完が効かなくてちょっと打つのが面倒
(これは個人の設定の問題か??)

今回はあまり使用するつもりはないけど、一通り文書を見てるとBLOBの操作のファイルのアップロードの説明が間違えてる気がする…たぶん第一引数に転送したいファイル名、第二引数にコンテナ名、なんじゃなかろか。


想定としてはMacLinuxからAzure CLIを利用するっていうシナリオかと思っていたけど、
SSH接続の話でPutTTYやTeraTermを使ってSSH接続する話になっていたので、そうではないのかもしれない。


個人的にはコマンドでVMが起動できて状態を確認できれば満足なので

azure vm list
azure vm start name

あたりにお世話になるかな:)

eskk.vim で漢字の変換ができなくなったときのメモ

しばらく前からeskk.vimで漢字の変換が機能しなくなってた。


vimrcの設定は問題なさそうだし、仕事で使ってるWindowsでは問題なく機能していて、
変換が機能しないのは個人で使ってるUbuntu上だけだったので、
不便に感じながらもシステムのSKKを使ったり一時的に別のエディタを使ったりしてだましだましやってた。


そろそろ不便度が高まってきたので、重い腰をあげて調べてみると以下の記事を発見。


eskk.vim でハマった - yasu-n's blogeskk.vim でハマった - yasu-n's blog

久しぶりにeskk.vimを使用してみたら日本語変換できずハマったのでメモしておく。変更した点はOSのLANG設定とvimrcのlanguageのところ。色々試...


ここを参考にとりあえず

  • LANG: ja_JP.UTF-8 -> C
  • vimrc: language mes en_US.utf8

としたところ無事変換が機能するようになった。


しかしこの設定にするとGVIM全体の表示がやや残念な感じになったので、
片方だけ変更したり元に戻したりといろいろやっていると
元の設定でもきちんと機能していることに気づいた。
(一度変換されるようになると元に戻しても大丈夫??)


とりあえず今は動いているので問題ないけど、
もしまた変換できなくなったらこの辺りをとっかかりに調べればよさそうかな。


【2015-02-07:追記】
元に戻しても大丈夫ではなかった。
上記 LANG と vimrc の設定の時に変換した漢字がユーザー辞書に登録され、
設定を戻したときはそのユーザー辞書を見て変換されてるっぽい。
なのでユーザー辞書にある漢字は変換できるけど、
当然そこにない別の漢字は変換できなかった。
LANG と vimrc を C と en_US.utf8 にすればL辞書で変換できてるっぽいから、
やっぱり設定は変換できるほうにしておくことにする。
【追記おわり】

Code2014に参加した

毎年恒例になりつつある夏のイベントCodeに参加した.(三年連続三回目)

以下覚えてる範囲での感想をツラツラと

Opening Speech

@DrewRobbinsさんの基調講演.

一昨年の"Learn, Practice, Share",
昨年の"Clone, Commit, Push",
に続いて今年の標語(?)は

"Connect, Grow, Impact"

コミュニティを通じて人と出会い,人の繋がりがコミュニティを成長させ,
お互いにインパクトを与える,という話.


実際に自分の場合は,社外の人と積極的に会おうとしないと社内のことしか知らないままになっちゃうし,
それだと世の中にある面白いことやすごい人たちを知るチャンスも当然なくて,
そんなの絶対もったいないと思う.
いろんな人と出会い,話をして刺激をもらうことは多いので,これからもこういうのを大事にしたいと思う.


ここからは主に"きんぎょばち".
2つのセッションに別れて興味のあるほうに顔を出して話を聞いたりディスカッションしたり.

.NETアプリケーションの国際化入門

@stknohgさんのお話.
.NETアプリケーションを国際化するときの具体的な話など.
いろいろとハマるポイントや闇が存在して思った以上に大変そうな話だった.
Excelにbahttextなんて関数あったのか…たぶん一生使うことはないな..

TypeScript入門

@chack411さんのお話.
TypeScriptの存在は知ってたけど,ちゃんと話を聞いたり調べたりしたことはなかったかも.
JavaScriptを普段全く使わない自分としては,その手の世界に入門したり遊んでみるには馴染みやすそうでいいかもしれないと思った.
開発環境がいろいろあるのも魅力的に見える理由の一つかもしれない.
(コマンドラインだったりVisual Studioだったりってこと)

宴会 & 温泉

ご飯はおいしかったし,温泉もよかった.
のんびり入っていると体が緩んで明らかにリラックスしていく感じがした.
宴会中の大喜利も面白かった…が,絶対自分は登壇したくないな,とも思った.
登壇者の皆さんお疲れ様でした.(コワイコワイ)

コードゴルフ

前年と同様にコードゴルフも今回のイベントの主要企画の一つだったように思う.
今回は前回と違いチーム戦ではなく,個人的に挑戦した人が2日目に成果を発表する,という形式だった.
自分は早々に諦めて見るに徹したわけだけど,
挑戦した人たちが大変な変態であることだけはよくわかった.
いや,マジですごいな,執念にも似た情熱を感じたりもしたし.
とりあえずはその変態コードを読んで理解してみるだけでも面白いと思う.

Onsen UIの紹介

@jnkyknさんのお話.
Onsen UI自体もそうだけど,Monacaってのも初めて知った.
モバイルアプリの開発事情とか,どういうツールがあるのかは全然知らないので,
いろいろ調べて知っていける良い機会だったと思う.

How to learn English as an engineer

@chack411さんのお話.
エンジニアとして英語とどう向き合っていくか,という話.
ちょっと何かを調べたり,公式なドキュメントを読もうと思うと英語を避けては通れないわけだけど,
英語を読んだり書いたりしてて困った時に皆さんどうしてます?,って感じで参加者が実際に普段使っているサイトやテクニックをみんなで共有したりした.
また,読み書きだけじゃなくて,聞いたり話したりするうえで経験者の実際にあった困ったことや,
その対策なんかの話もあった.
英語で映画や動画を見るというのもあったし自分もたまに見たりするけど,
もう少し意識してその量を増やそうかなとも思った.
また,OSやツールなんかの環境を英語にするっていうのもあった.
これも仮想環境とかで持っておいてたまに触ってみるのも新鮮でいいかもしれない.
あとは,よく言われていることだけど,
日本人は英語を話せないことを過度にネガティブに捉える傾向があるとのこと.
たぶんどういう風に話そうかモジモジ考えて結局話せないくらいなら,
ジェスチャー交えてガンガン話したほうがお互いにハッピーになれるんだと思う.

最後に

今年もスタッフの皆さんのおかげで楽しく刺激的な2日間を過ごせました.
ありがとうございました!

ssh コマンドのユーザーの指定方法について

特定の状況下において今までできていた鍵認証を使った ssh 接続ができなくて困ってたけど,
とりあえず解決したので,その個人的メモ.

特定の状況

普段使ってるメインマシンの調子が悪かったので久しぶりにOSを入れなおすことにした.

そこで今まで使ってたホームディレクトリ下にある .ssh ディレクトリを一時的に外付け HDD に退避して,
OS入れなおし後に新しいホームディレクトリに戻した.

そんな状況.

問題

入れなおし前までできてた VPS への鍵を使った接続ができなくった…

Permission denied

…困った.

やったこと

秘密鍵パーミッションを変更したり,
ssh コマンドに v オプションとかいっぱいつけてログ眺めたりした.
とりあえず秘密鍵が読めてないらしいけど,
どうすれば解決するかはわからない.

ムキー!

解決

友人に状況説明してログ見せたら,

友「鍵が読めてないね」
自「だよね」
友「どんなコマンド?」
自「こんなコマンド」

ssh -p *** -i private_key user@homuhomu

友「"user@"じゃなくて"-l user"使ったら?」
自「ほぅ,どれどれ…」

解・決!

まとめ

"user@"で指定した場合はサーバー側の情報使ってて鍵が読めなかったとそんな感じだろうか…
それだと入れなおし前に接続できてた説明できないけど,とりあえず解決はしたから良しとする(適当).

CLR/H #85 に行ってきた

10月19日のCLR/Hに行ってきた.


今回は個人的に興味ストライクな内容ではなく正直最初は行こうかどうか迷っていたんだけど,
結果的には参加できてよかった.
技術的な内容はそんなに多くはなかったけど,普段なにげなくやってることや考えてることを違う視点で眺めたみたいな感じだった.


以下,簡単な振り返り&感想

複数のMSテクノロジーで会社のITインフラを改善してみた!

ナオキさんのセッション.
タイトル通りMSの色々な製品を駆使して社内インフラをより良いものにしていったお話.

元々なんとなーく興味のある話で,普段当りまえのようにお世話になってるインフラについて,裏で頑張ってくれている人がいるから普段あまり不自由なく仕事ができているという当たり前で有り難い話.

内容的にもMSの製品やサービスで知らないものがたくさん出てきて,
普段業務で使ってるツールなんかももっと効率良くできるんだろうな…と思った.

都会とは言いがたい街で勉強会が続いている理由〜北海道北見市 Ohotech の事例〜

北見工大の西原 翔太 (@tomio2480)さんのセッション.
Ohotech の今までの実績や想い,これまでの苦労などのお話.

北見は自分の地元ということもあって Ohotech については前から気になっていたから,
その実績や規模なんかが具体的に聞けたのがよかった.
でも,それ以上にコニュミティを運営する上での苦労や考え,失敗や成功などの話を聞いていると,
これからの数学勉強会@札幌をどうしていきたいか…
などと考えはじめて,色々と考える起点となった…かもしれない.

ハイパーおやつタイム


おいしい!

エンジニアのためのパフォーマンス入門〜人は見た目が 9 割?〜

日本マイクロソフトの佐々木順子さんのセッション.
言動によって人はどういう印象を受けるか,良い印象をもってもらうためにはどういう点を意識すればいいのか,というお話.

プレゼンの時や初対面の人との会話などで良い印象を持ってもらいたいのはもちろんだけど,
それ以外にも相手や状況に応じて
「どういう印象を与えたいか」
を考えて,そのためにはどういう振舞いをすべきかを意識して行動することが大事.

一つ前の西原さんのセッションを例に理由とともに説明していた辺りは,
自分も感じていた印象を理屈で説明された感じで「おぉ!」ってなってた.

普段の何気ない言動からでもそういう部分を意識することで練習することができる.

具体的には,話すときの声の緩急や大小だったり,ジェスチャーや姿勢だったり,表情やアイコンタクトだったり,
服や身に付けているものの色だったり,空間の使い方だったり…
と項目として挙げると多いけど,
その中から1つ,2つでも自分に出来そうなことを少し意識していくだけでも大分違いそうな気がする.

まとめ

全体を通して「これがわかったー」とか「技術的にここが面白かったー」というものではなかったけど,
だからこそ色々なものを色々な視点で考える良いきっかけになったと思うし参加できて良かった.

今回のスピーカーの方々はもちろん,スタッフの皆さん,ありがとうございました..

Code2013 に参加した

去年も参加したイベント:CodeJpに今年も参加してきた.

http://codejapan.jp/2013

今回は去年よりもさらに"コードで語る"というのが意識されたイベントで,その為の企画が多かった.

一日目

Drew Robbinsさんのキーノート

まずはDrewさんによるキーノート.
去年教えてくれた
"Learn, Practice, Share"
の合言葉をふりかえってから,ちょっとしたクイズ.
何の言語で書かれた"Hello, World"かを当てるものだったけど半分以上分からなかったorz

その後に最近のトレンドや動向などからどういったものが注目されているのかの話があり,
最後に"Learn, Practice, Share"を一歩押し進めた具体的な方法として,

Learn -> Clone
Practice -> Commit
Share -> Push

という置き換えがあった.
確かに今ならこういった方法が一番取っ付きやすくて有益だと思う.

きんぎょばち

今回のイベントのメイン,きんぎょばち.
Teach Me・Teach Youと題して,
「×××を誰か教えて!」 or 「×××なら説明できるよ!」
というテーマを事前に募集して,その中から適当にテーマを選びグループになり各々でワイワイやるという試み.

一日目は

  • Google Chorme拡張の作り方
  • Python + Django の話
  • webアプリのUIテストの自動化

に参加したけど,特に自動UIテストの話は使ってる技術は違えど普段自分が仕事で四苦八苦している部分でもあったからかなり興味深かった.

フリータイムなど

前回は夕食前に水の王国ラグーンで少し遊んだんだけど(一日目だけ利用料がイベントの参加費に含まれている),
今回はきんぎょばちが盛り上っていたのもあって,気がつけばあと少しで夕食という時間だったためラグーンで遊ぶことはなかった.
(ちょっと残念だけど,本来は正しい時間の使い方か..)

コードクイズ

去年に引き続いてのコードクイズ…のはずだったけど,どうやら回線(というかDB)の調子が悪くてあまりにもレスポンスがにぶかったので次の日に順延.
こういうトラブルも御愛嬌.

その後

各々温泉に入ってからは麻雀組や翌日のコードゴルフ(事前にお題が発表されている)に取り組む人がいる中,
自分は別のことでもくもくしたり普段はなかなか話せない人とずっと歓談してた.
(最初こそコードに関する話だったけど後半は全く関係ない話だった(ゲームとか漫画とか…).それはそれでいい…かな…)

二日目

コードクイズ

去年と同様に事前にサイトで問題を募集して皆で解いてスコアを競うという形式.
景品が魅力的でもっと頑張りたかったけど,問題が難しくて当てずっぽうで解いた問題もかなりあった.
やはり高得点を狙うには自分で問題を出すしかないか…

コードゴルフ

あるお題のコードに対していかに短かく書きかえることができるかを競うコードゴルフ
お題はJavaScriptで書かれたデジタル時計.
お題のコード自体は前日に発表されていて,当日に発表されたチーム単位で一つの成果物を出し,
最終的なコードの短かさを競った.

自分はJavaScriptを書いたことがほとんどなくアルゴリズムの部分も誰もが考えつくような部分しか思いつかなかったからチームの役には全く立てなかったけど,
JavaScriptのテクニックやコードを短かく書く技術などの話が聞けたのは面白かった.

なによりも各チームが出してきたコードが変態的すぎて…ただただ凄かった..

きんぎょばち

今回最後のイベントきんぎょばち.
途中からテーマが増えたのもありいろんなテーマが残っていたけど,
チームを越えてさらにコードゴルフに取り組む組やHadoopについての組があるなか,
自分は(コードじゃないけど)Drewさんとの英会話に参加した.
普段の自分の生活では英語で誰かと話す機会なんてそうそうないので意を決っして参加してよかった.

帰り

行きも帰りも車で送ってくれて,コードゴルフではそのあまりにも変態的なコードで優勝の立役者となった@sandinistさんが
「やっぱり考えるのは楽しいし,うまくいくと嬉しいですよね」
と言っていたのが妙に印象的だった.


今年も参加できて良かったし,スタッフの方々には感謝感謝です.
では皆さん,来年もまたコードを語り・コードで語りましょう!