川崎RUBY会議の運営(会場係)をやりました

2016年8月20日に「川崎RUBY会議01」が開催されました。私は会場係として運営に参加いたしました。

regional.rubykaigi.org

こっちは twitter まとめ

togetter.com

運営に参加したきっかけ

数年前から毎月第4水曜日に「kawasaki.rb」という地域RUBY勉強会を行っていまして、今回は、kawasaki.rb の主催者である @chezou さんが「川崎RUBY会議01やるよ!!!」とお声を掛けてくださったのが始まりです。わたしは、kawasaki.rb の会場として会社の会議室を提供することが多かったので、そのご縁もあって、このRUBY会議の会場係として運営に参加させてもらったのでした。

参加者の皆さんのレポートご紹介

さっさとブログ書けばいいのに、忙しいとか何とかでグズグズしていたら既に1週間以上経過してしまいました。そうこうしている間に、参加者のすごい皆さんがいろいろな素敵なレポートを書いてくださいましたので、ここでは、私などがぐたぐた書くよりも、それらレポートをまとめ的にご紹介したいと思います。

最初にご紹介するのは、基調講演をしていただいた @mametter さんのブログです。@mametter さんの講演は「Ruby で高速なプログラムを書く」ということで、「Optcarrot」というファミコンソフト(NES)のRUBYエミュレータを開発した経験から、いかにしてプログラムを高速化すべきか?という非常に参考になるお話しでした。高速化する上での心構えとか必見ですね。コミッタおそるべしです。

d.hatena.ne.jp

お次は、@ryonext さんのレポートです。そういえば、この前の kawasaki.rb でもためになる話を聞かせてもらいました。あざました。

ryonext.hatenablog.com

続いては @koic さんのブログです。懇親会で初めて知り合ったのですがとても楽しい人でした。紹興酒カメと果敢に戦っていた姿が印象的で、また機会があればぜひ飲みたいですね。

koic.hatenablog.com

こちらは、「RubyRoombaをハックする」というタイトルで発表された @kon_yu さんのレポートです。ルンバと猫の組み合わせが最強なので、ぜひ動画見てほしいです。

konyu.hatenablog.com

そしてこちらは「Railsエンジニアが サーバーレスアーキテクチャに 手を出したよ」を発表した @pachirel さん。個人的に興味ありありだったのでありがたいお話でした。

pachirel.hatenablog.com

次は、一緒に運営した @Peranikov さんのレポートです。ペラちゃんは 「Rubyistを誘うScalaの世界 2.0」という ScalaRUBYではなく?)の話を発表した人でもあります。相変わらず面白い人だ。

norizabuton.hateblo.jp

そしてここでのトリはやはり主催者である @chezou さんのブログです。会場の件とかご心配おかけしました。本当にお疲れさまでした。
サイトリンクになぜか Elixir本の画像・・

chezou.hatenablog.com

しばらくすると、本家のるびまレポートが出るので楽しみに待っていましょう。

会場の様子とかの写真

せっかく会場係やったので設営した会場とか懇親会の写真でも貼って終わりにします。

会場設営の様子 f:id:ngzm:20160828165428j:plain

エントランスのポスター(かわいい) f:id:ngzm:20160828163522j:plain

会場の張り紙 f:id:ngzm:20160828165423j:plain

始まる前にインドカレー食って会場に戻るところ(スタッフTシャツもかわいい) f:id:ngzm:20160828163520j:plain

Java 勉強会もやってた f:id:ngzm:20160828163521j:plain

セッション中 f:id:ngzm:20160828163523j:plain

懇親会にでた紹興酒カメの封印を解くお店の大将 f:id:ngzm:20160828163524j:plain

紹興酒カメを飲み干した記念 f:id:ngzm:20160828163519j:plain

とにかく最高に楽しい1日でした。運営やらせてもらって本当によかったです!

凍結したはずなのに・・故人ゆうちょ銀行口座に振込みがあった

先日、凍結したはずの口座に振込みがあり、大いに奇異を感じたのでここに記録しておく。

凍結した口座は、7月下旬に亡くなった母の口座「ゆうちょ銀行」である。

母が亡くなってしばらくは、悲しすぎて落胆しているわ、混乱しているわ、それでも葬儀とか役所とかで結構やることがあるわで、結局、この口座を凍結したのは8月上旬になってからであった。

ここで少し解説すると、銀行というのは口座名義人が亡くなるとその口座を直ちに凍結しなければならない。凍結された口座は、たとえ家族であってもお金の出し入れはできなくなる。そして凍結を解除するには、故人の一生分の戸籍を取り寄せたり、法定相続人全員の実印入りの署名をもらったりで、まぁ面倒な手続が必要である。場合によっては凍結解除までに半年以上を要するケースもある。一見して非常に面倒臭いが、凍結とはすなわち「故人の財産を守る」「相続人の権利を守る」上で不可欠な措置なのである。

ところが!である。8月15日を過ぎて郵便局で確認してもらったら、凍結したはずの母の口座に年金が振り込まれていた。

「凍結したはずなのにどうして??」と、ゆうちょ銀行窓口の人に問い合わせると次のような説明があった。

8月上旬にお母様の口座を凍結されているが、その直前に年金の支払い処理が走っていたので、そのまま振込みが実行されました。

つまり、、老齢年金というのは、支払い月の一日に支払い処理が実施されており、その後に凍結しても、当月15日には自動的に振り込まれてしまうらしい。

ということで、凍結したはずの故人の口座でも振込みがあったりするので要注意だ。もしかすると、逆に引落としされることもあるのかもしれない。「ゆうちょ銀行」に限った話なのかもしれないが、こうなると「故人の財産を守る」とか「相続人の権利を守る」とか、ちょっと危うい。

HPE ProLiant DL20 Gen9 サーバに Centos 6.7 をインストールする手順メモ

ここでは、HPE ProLiant DL20 Gen9 サーバに Centos 6.7 をインストールする手順をメモっておきます。

結構ハマりました。どのようにはまったかについては、次の記事を読んでください。

ngzm.hateblo.jp

なお、この記事が書かれたのは、2016年7月上旬です。数か月もすれば、状況が異なってくると思いますのでご注意ください。


BIOSで「Virtual Install Disk」を有効にする

1) マシンを起動し、F9キーでBIOS設定画面を表示させる。

2) システム構成を選んで、

f:id:ngzm:20160709193158j:plain

3) BIOS/プラットフォーム構成へ

f:id:ngzm:20160709193159j:plain

4) システムオプション

f:id:ngzm:20160709193200j:plain

5) USBオプションを選択

f:id:ngzm:20160709193201j:plain

6) そうすると、仮想インストールディスク(Virtual Install Disk)の設定があるので、それを有効にする

f:id:ngzm:20160709193202j:plain

7) BIOS 設定を保存して、マシンを再起動します


Centos 6.7 をインストー

1) 普通にDVDメディアからブートします

f:id:ngzm:20160709193203j:plain

2) インストーラが起動する。

f:id:ngzm:20160709193152j:plain

3) 言語(ロケール)を選択

f:id:ngzm:20160709193150j:plain

4) キーボードタイプを選択

f:id:ngzm:20160709193151j:plain

5) このあたりで必要なドライバがないと言ってくるので「Use a driver disk」を選択

f:id:ngzm:20160709193153j:plain

6) Driver Diskの選択で「/dev/sda1」が出ているはず!なのでこれを選択

f:id:ngzm:20160709193154j:plain

7) 続いてDriver Image を選択する必要があるようなので「Linux」をクリック

f:id:ngzm:20160709193204j:plain

8) さらに「Red Hat Linux」を選ぶ

f:id:ngzm:20160709193155j:plain

9) ドライバの種類を選択。
DL20Gen9は、Dinamic Smart Array なので、「hpdsa」のものを選択すること

f:id:ngzm:20160709193156j:plain

この後ドライバのチェックが走る。
この瞬間やや緊張が走るが、無事ドライバを認識できればもう大丈夫!!

10) Centosインストールメディアをチェックするかどうかの確認
今回は、特に必要ないのでスキップ

f:id:ngzm:20160709193157j:plain

11) そうすると、普通にCentosのインストールが始まる

f:id:ngzm:20160709193205j:plain

あとは通常通りインストールを行えばOKのはず!!

以上、参考になれば幸いです。

HPE ProLiant DL20 Gen9 サーバに Centos 6 をインストールしようとしてハマった件

表題の通り、HPE ProLiant DL20 Gen9 サーバに Centos 6(特に明記しないが64bit版)をインストールするのに結構ハマったので、忘れないように記録しておこう。

なお、この記事が書かれたのは、2016年7月上旬であるが、あくまでその時点での情報であることにご注意ください。

このマシンです。
Gen9シリーズのサーバの中でも割とカジュアルなエントリータイプ。

www8.hp.com

Gen9というのは「Generation9」のこと、メジャーバージョンだと思えばいいだろう。

h50146.www5.hp.com

ちなみに、このマシンはHDD2台でRaid1を組んでいる。 そして今回インストールしたいのは、Centos6系 である。 *1

普通に Centos 6.8 をインストールしてみる

最初は何も考えずに、Centos「6.8」 のインストールメディアを入れて、ごく普通にセットアップする方法で試してみる。

案の定、最初のステップで、ハードウェアに必要なドライバが無いと言われ、そこから先に進めない状態となる。 まぁ、最初からすんなり行くとは思っていないのでそんなものか。

さっそくHPEのサポートに聞いてみる。と「Centos はサポート対象外なんで(笑)」と一蹴されてしまった。あれ?公式HPには、動作確認済みと書いてあるけど・・・

http://h50146.www5.hp.com/products/software/oe/linux/mainstream/product/hardware/pl_dl20_gen9/

よく読むと、確かに「正式サポート」対象外とも書いてある!!なんともはや。動作は確認したがサポートはしないということか?もうすこし分かりやすくしてくれ!!

とはいえ、こっちも切羽詰まっているので、いろいろ食い下がって聞いてみたら、しぶしぶ次の情報を教えてくれた。*2

  1. Gen9には「Intelligent Provisioning」という機能があって、Windows Server や RHELSUSE ならその機能からインストールする方法を推奨するが、Centosとなると可能かどうかはわからない。
  2. BIOSの設定で、「Virtual Install Disk」という項目を有効にすると、あらかじめハードウェアにプリ・インストールされているドライバ利用してインスコできるようになるが、これも RHELSUSE は用意されているが、Centosのドライバは無い。もしかすると、RHEL のドライバを流用できるかもしれない。

ということで、とりあえず「Intelligent Provisioning」とやらから試してみることにする。

Intelligent Provisioning で Centos 6.8 をインストールしてみる

不満たらたらの中、早速、Intelligent Provisioning を使って、Centos バージョン「6.8」 のインストールを試みる。。

が、コンフィグの途中で「有効なメディアではありません」というメッセージが表示されて、そこから先に進めない状況になる。

うーーんダメか。

Intelligent Provisioning で RHEL 6.8 をインストールしてみる

やはりCentos はダメか・・ということで、正式サポートされている RHEL をインストールしてみる。RHELのバージョンも「6.8」だ。

さっきと同様に Intelligent Provisioning を使用してインストール開始!するとなんと、Centos同様「有効なメディアではありません」が出て先に進めない状態に陥った。

あれあれ??なんだこれ? RHEL は正式サポートするって言ってたじゃん!!

Intelligent Provisioning で RHEL 6.7 をインストールしてみる

ここで、「6.8」がダメなら「6.7」でどうだ!という野生の感的なものが働く。その根拠は、ハードウェアが製造された時の最新バージョンは(「6.8」ではなく)「6.7」 であったのではないか?ということくらい。

ということで、Intelligent Provisioning で RHEL 6.7 をインストールしてみる・・・と、無事にインストール成功したではないか!!おおっ初めてOSが動くところを見た!

とにかく、最悪 RHEL「6.7」 であればインストールできることがわかった。でも、わざわざRHELで運用するほどちゃんとしたサービスでも無いし、できるだけ金をかけたく無いし・・ということで、できれば Centos をインストールしたい。

Intelligent Provisioning で Centos 6.7 をインストールしてみる

さて、RHEL「6.7」のインストールが成功となれば、Centos「6.7」 でも大丈夫じゃないか?という淡い期待を持ち始める。

ということで、さっそく同様の手順でインストールを試みる。

が、しかし「有効なメディアではありません」という見慣れた画面が表示されてしまった。なんだダメなんだ。期待した私が馬鹿だった。。

Virtual Install Disk を有効にして Centos 6.7 をインストール

もう Centos はダメか・・と半ば諦めかけていたが、最後の気力を振り絞り、「Virtual Install Disk」を有効にして、かつ、Centos「6.7」をインストールする方法を試すことにした。これで無理ならもう RHEL で行くしかない。

BIOS画面で「Virtual Install Disk」を有効に変更 *3 する。 そして、今度は Intelligent Provisioning を使用せずに、インストールメディアから普通に Centosインストーラを起動させるよ。

すると、ハードウェアに必要なドライバの選択画面が表示される。以前はここから進めなくなったのだが、今回はさっき有効にした「Virtual Install Disk」が見えている!さっそくこれを選択して、RHELのドライバを読み込ませてみると見事に認識した。。

なんだか期待が高まる中、通常通りの流れでインストールを進め、そしてついに、Centos「6.7」のインストールを正常に終了させることができた。おおー!!やっと目的のOSが立ち上がった。何かエラーがないか Syslog などでチェック、、Raid や ネットワークなど各種ドライバも正常にインストールできているようだ。

ということで、無事 Centos「6.7」をインストールすることができました。めでたしめでたし。

Centos「6.7」のインストールに成功したときの手順を以下にまとめました。詳細が知りたい方はぜひご覧ください。

ngzm.hateblo.jp

なぜ 6.8 は失敗したのか?

なぜ「6.7」はインストールできて「6.8」は失敗するのか?謎であったが、ここにきて理由がわかった。

それは、、「Virtual Install Disk」を有効にしてハードウェアに必要なドライバの選択画面で、RHELの場合は、「6.1」から「6.7」まではドライバが用意されているが「6.8」のドライバは存在しない、つまり、このハードにプリ・インストールされているドライバは「6.7」までなのである。

なお、RHELの7系については「7.0」と「7.1」が用意されているようだ。

まとめ

HPE ProLiant DL20 Gen9 サーバに Centos 6系をインストールするには、、

  • バージョン「6.8」はドライバが探せないので「6.7」を使用すること。
  • BIOSの設定で「Virtual Install Disk」を有効すること。
  • 「Intelligent Provisioning」は利用せずに、普通にメディアからブートしてインストールすること。

結構手こずったぞ。

ちなみに、HPから分社して、Hewlette Packard Enterprise という会社がサーバ関連を取り扱い、従来のHPは、プリンタとかの商売をするらしい。

*1:本来ならCentos7系 をチョイスすべきであるが、これはシステム条件により今回は対象外なのである。機会があれば別途試してみたい

*2:本当にしぶしぶな感じの対応だったのが全くもって残念。何のためにサポート契約したんだろう。。次はDELLを買うことを心に誓う。

*3:余談だが、この設定項目がどこにあるのか分かりにくく探すのが大変だった

Tokyo Ruby Kaigi 11 に行きました

行ってきました。

regional.rubykaigi.org

実は前日に会社の懇親会がありまして、思いの外飲んでしまったので、完全に二日酔いな状態で午後からの参加となってしまいました。頭ガンガン。

会場は秋葉原コンベンションホールというところで、駅から近いし、すごい立派な会場です。

f:id:ngzm:20160604000040j:plain

私が拝見した講演からいくつかご紹介です。

高速Webサーバの作り方

奥一穂 (@kazuho) さん

午後一のセッション、私にとっては到着後すぐのセッションです。
のっけからレベルの高いトークに圧倒された感じです。なんせHTTP2での通信をいかに高速化するかという内容で、TCPレイヤーから最適化を検討し実装されています。TCP/IPとかソケットとか通信の仕組みを理解できていないとついていけなさそうな内容ですが、さらりと説明されています。すごいぞ 東京Ruby会議!!となりました。

Embed Ruby

須藤功平 (@ktou) さん

組み込みRubyについて、今回は C言語のアプリに Rubyを組み込む話です。組み込み系は詳しく知らない分野なので、へえーっという感じですが、C言語のfork()とRubyのfork()を混ぜるとクラッシュするとか、Groonga では mRubyのGCは使用しないとか、、いろいろ参考になりそうなところがありました。「組み込みは辛いので覚悟が必要」とおっしゃっていた通り、なかなか一筋縄ではいかないのは感じ取ることができました。

Image Recognition and code that shouldn’t exist

Aaron patterson(@tenderlove) サン

これまでに作ったすごいコードの話、まず「すごい」っていう意味を辞書で調べたら「素晴らしい」と「怖い」二つの意味があったので、今回もその2つの話をするという。。

素晴らしいコードは、Magic the gathering カードコレクションが8000枚以上あって、その価値を1枚1枚調べるシステムをRubyで書いた話。カードを写真に撮って、カード種類を認識し、人工知能を使って価値を推測するというもの。カードデータ収集が大変で、サイトから画像や人気度や価値のデータを収集してやっとデータベース作ったら、友達がそのデータは別のサイトからDLできるよと教えられて驚愕したとか、大変面白いお話しでした。

続いては、恐ろしいコードということで、RubyPHP で Phuby というライブラリを作った話。単に、やってみたかったからこのライブラリを作成したそうだが、やってみたら、いろいろな知識を得たのでOKだそうです。

最後に、笑わせたいコードを書いてみたということで、空白のコードが動くという一つのMagicが披露された。

No code is faster than no code

と言ってた。結局タネ明かしはしてくれなかった。どうなってる??

Opt carrot: A pure-ruby NES emulator

遠藤佑介 (@mametter) さん

Optcarrot というファミコンソフトをPCで遊べるエミュレータRubyで開発した話。Rubyは確かに早くないが、どれくらい速くなるのかの限界にチャレンジしたということで、そもそもは、Ruby3で、Rubyを3倍速くするためのベンチマークとして開発を始めたとのことです。

高速化に際して、そもそもNESのCPUとGPUボトルネックを調べた結果、GPUの処理時間がほぼ80%なので、GPUを高速化することが必要であると判明。ということで、CPUとGPUの処理時間を一定割合で分割したり、Catch up method にしたり、GPU で変更があったピクセルだけをレンダリングしたりして、20fpsに到達したとここと。

さらに、とにかく60fps達成を目指して、なんでもありでとにかく高速化をした話で、メソッドを展開してしまうとか、インスタンス変数をローカル変数に展開するとか、ループであらかじめわかっているだけ処理を書くとかを施した結果、ついに60fps達成したそうです。。デモを見たら無茶速くなってました。サプライズ余興も有りで大盛り上がりでした。

高速化に向けた、実に論理的なアプローチですね。すごい人です、職人技を見た気がしました。

その他

こちらから動画が見れるようです。 東京Ruby会議11 配信用 - YouTube