セガのWebアプリ実例

Ruby on Railsで作成されたWebアプリの実例が紹介されていたのでメモ。

techblog.sega.jp

上記のアセットライブラリやボット管理ツールは、この「Ruby on Rails」のバージョン4で作成し、このようなひな形から肉付けして発展させたものです。そして、その作業を助けてくれるのがRubyGemsです。

画像付きでこうやって実例を載せてくれるのは嬉しいですね。
勉強になります。

Ruby Hash#keyが返すキーの順序は不定?

  • 生成時の要素順
  • Hashクラスのメソッドが返す要素の順番
  • 1/17追記

Python3について調べていたら、辞書(dict型)の順序は不定*1という一文を見つけました。
以前「RubyのHashの順番」について調べていた事を思い出したので、忘れないようにメモ。

続きを読む

PATHの通し忘れで苦しんだメモ。

igrc.hatenablog.com ↑で苦しんだ後の話。
基本的な話だと思いますが私は苦しんだのでメモ。

OpenSSLでドタバタしてたら以下のエラーが出るようになってました。

# openssl version
openssl: symbol lookup error: openssl: undefined symbol: CMS_Attributes_Verify_it


とりあえずPATHを確認。

$ which openssl
/usr/local/bin/openssl

# /usr/local/bin/openssl version
/usr/local/bin/openssl: symbol lookup error: /usr/local/bin/openssl: undefined symbol: CMS_Attributes_Verify_it

# /usr/bin/openssl version
OpenSSL 1.0.1f 6 Jan 2014


/usr/bin/opensslにPATHを通せばいいみたいです。
PATHを設定します。

$ PATH=$PATH:/usr/bin/openssl
$ export PATH

$ which openssl
/usr/local/bin/openssl

???
パス(PATH)の確認と設定方法は? - Pocketstudio.jp Linux Wiki をちゃんと読んだら、

パスの優先度は左の方が『 優先 』されます。  コマンド『 echo $PATH 』あるいは『 env | grep PATH 』で出てきた左が優先されます。
たとえば、/usr/local/bin/perl と /usr/bin/perl があるとします。
環境変数 PATH で /usr/local/bin の方が優先されると、実際に実行されるコマンドは /usr/local/bin/perl となります。

としっかり書いてありました。
これを踏まえてやり直します。

$ which openssl
/usr/local/bin/openssl

$ PATH=/usr/bin:$PATH
$ export PATH
$ which openssl
/usr/bin/openssl

$ openssl version
OpenSSL 1.0.1f 6 Jan 2014


できました。
ただ、これだけではログインする度にパスを設定しなおさないといけないので.bash_profileexport PATH=以降に/usr/binを記述します。
先頭に記述するとその後ろに記述されているrbenvのPATHも書き換わるのでやめておきます。

PATHの優先順位を意識していて、ちゃんとコマンドの意味を理解していればしないミスでした。
気を付けます。

Ubuntu rbenvで古いruby(1.9.0)を入れようとした際にmake[1]: *** [ossl_ns_spki.o] Error 1で引っかかったメモ。

Ubuntu 14.04.5 LTS

Ruby1.9.0のインストール失敗。

BUILD FAILED (Ubuntu 14.04 using ruby-build 20171226)

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

Last 10 log lines:
                                           ^
In file included from /usr/include/openssl/asn1_mac.h:62:0,
                 from ossl.h:53,
                 from ossl_ns_spki.c:11:
/usr/include/openssl/x509.h:877:1: note: expected ‘const unsigned char **’ but argument is of type ‘unsigned char **
’
 DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI)
 ^
make[1]: *** [ossl_ns_spki.o] Error 1
make[1]: Leaving directory `/tmp/ruby-build.20180113163504.1885/ruby-1.9.0-0/ext/openssl'
make: *** [all] Error 1

結論から書くと、

# RUBY_CONFIGURE_OPTS="--without-openssl" rbenv install 1.9.0-0

でインストールできました。
初めはOpenSSLのバージョンのせいかな?と思い1.0.0や0.9.8を入れてみたのですが、どうもうまくいかない。
そんな中、↓のIssueを見つけて解決しました。

github.com

古いバージョンのrubyをインストールする際はOpenSSLを無効にする必要があるらしいです。(又は古いOpenSSLをインストールして指定)
でもこちらでも「0.9.8入れたけどエラー出てる」って書き込みがありますね。

一応、以上で解決しているのですが--without-openssl オプションに辿り着くまでに行った作業は以下に載せておきます。
土日を使い果たした作業の報告を↑だけで終わらせるのはあまりにも寂しいので。

続きを読む

Humble BundleのBook Bundle(1ドル~)で技術書が購入できる話

PCゲーマーの間でよく話題になっているHumble Bundleで1ドルから技術書(洋書)のバンドルが手に入るという話。
今回はPython本のBook Bundleでした。
f:id:igrc:20180111000749p:plain
Humble Book Bundle: Python by Packt (pay what you want and help charity)

かなり昔から実施しているので有名ですね。
支払う額が1ドル、8ドル、15ドルを超えるごとに貰える書籍が増えます。
15ドルが上限というわけではなく、それ以上の額を支払っている方もたくさんいます。
f:id:igrc:20180111001250p:plain


購入する際はChoose where your money goesで出版社・チャリティ団体*1・Humble それぞれにどれだけ配分するかを決めて購入できます。
他の人にプレゼントしたいときはgiftチェックボックスにチェックを入れてください。
f:id:igrc:20180111003141p:plain

購入後は右上メニューのpurchaseからコンテンツを選択することでダウンロードページへ遷移し、各形式でダウンロードできます。
giftの場合はgift codeを発行するボタンがあるはずなのでそれで他人へ譲渡できます。

f:id:igrc:20180111002122p:plain


一か月前にはオライリーJava本のBook Bundleが話題になっていました。*2

英語でも読めるよ、という方は毎月Bundleをチェックするといいかもしれないです。

ゲームの場合は日本語が入っているゲームがBundle化することも多いですし、ボーナスコンテンツとしてサウンドトラック等がダウンロードできたりもする*3ので、興味があれば利用してみるといいと思います。
(Civilizationシリーズがおすすめです)

*1:https://www.humblebundle.com/charities

*2:https://www.reddit.com/r/learnjava/comments/7ebde6/humble_book_bundle_oreilly_java_books/

*3:Alan Wakeバンドルの時は日本の限定版(xbox360版)に付属しなかったマテリアルがついてきた