2018-08-29
TechProblem
Sorcery's Testing-Rails guide is based on Rails4 and does not work with Rails5.2.
With include Sorcery::TestHelpers::Rails::Integration
, I got:
TasksControllerTest#test_should_get_index:
NameError: undefined local variable or method `page' for #<TasksControllerTest:0x00007fff19df4a10>
test/controllers/tasks_controller_test.rb:7:in `block in <class:TasksControllerTest>'
2018-08-12
Tech以下の記事で「解説はまた後ほど」と書いたので、簡単な解説を書く。
TRICK2018とは
RubyKaigi 2018 仙台に合わせて行われた、「普通でないRubyプログラム」のコンテストである。
2018-08-04
Techfetch APIを使ってRailsのAPIを叩くものを作っていて、GETはうまく行ったのだけど、POSTしようとしたらCSRF関連のエラー(ActionController::InvalidAuthenticityToken
)になってちょっとはまった。
原因
fetch APIはGETもPOSTもできるのだけど、デフォルトではCookieをサーバに送らないという仕様になっている。
RailsのCSRF対策は「送られてきたトークンをセッションに保存されたものと比較する」というものだが、セッション情報はデフォルトではCookieに保存される(CookieStore)ので、Cookieをサーバに送らないとセッションにトークン情報がないぞということになり、InvalidAuthenticityTokenになる。
修正方法
fetch APIの第二引数に{credentials: "same-origin"}
を入れてCookieをサーバに送らせることでうまく行った。
2018-07-05
TechTRICK 2018に応募した作品です。
解説はまた後ほど…
SVG Graph Generator
グラフ構造をDSLで記述すると、そのようなSVG画像を生成するプログラムです。
$n={};$e=[];class Array;def -@;self;end;def -(o);$n[self]=1
2018-07-01
Techもう一月経ちますが、仙台で行われたRubyKaigi 2018に参加していました。
TRICK2018
今回はTRICKの審査員として登壇しました。登壇といっても僕がしたのは審査作業くらいです。主催のmameさんお疲れ様でした&ありがとうございました。
togetterで皆さんの悲鳴をまとめていますが、楽しんでいただけたようで良かったです。
2018-05-23
Techこのブログがhttpsになった。ほぼコマンド一発だったのでびっくりした。
やったこと
とりあえず公式サイトを見る。https://letsencrypt.org/ Get Startedを押す。サーバにSSHで入れるかどうかで手順が違うらしい。入れる場合はCertbotというのを使えばいいらしいのでVisit the Certbot siteを押す。
https://certbot.eff.org/ セレクトボックスがあるのでApacheとCentOS6を選択。
https://dl.eff.org/certbot-auto というコマンドを取ってくればいいらしい。中身はシェルスクリプトだった。sudo ./certbot --apache するとpython3のインストールが始まった。そのあとメールアドレスやドメイン名を聞かれる。答えると何やら設定が変更されたらしい。試しに https://yhara.jp を叩くとアクセスできる。ええ、これだけ?
あとはAutomating renewalの項のsudo certbot renew --dry-run
を試して、うまくいきそうだったのでrootのcrontabに追加して終了。いやあ、めちゃめちゃ簡単ですね。
一応/etc/httpd/conf.d/を見てどうなったか確認したほうがいいと思うけど、それにしてももうちょっと手間かかるもんだと思ってたので拍子抜けした。すごいなぁ。
2018-05-22
Tech文脈
僕のmacbookにはVMWare Fusionが入っていて、その上でLinux(Ubuntu)とWindowsを動かしている。仕事は主にLinuxでやっていて、Excelなどが必要なときはWindows、それ以外はmacという使い分けなのだが、ここで問題になるのが日本語入力切り替えキーである。
IMEはmac/linux/winのいずれもgoogle日本語入力(mozc)をインストールしている。そのためIME on/offが環境によらず同じキーでできるのが理想なのだが、macbook本体のキーボードに加えLet's Split(自作キーボード)を併用していることもあり全ての環境で条件を揃えるのが難しかった。
今回、ようやくそのような状況を構築できたので、手順をメモしておく。
理想
2018-05-21
TechUsually you can install Ruby with rbenv and ruby-build for Ubuntu. However, I needed to install older Ruby (2.3.7) and got an error.
Error
Just running rbenv install 2.3.7
stops with "Failed to configure openssl. It will not be installed." , even I've installed libssl-dev package.
Reason
On Ubuntu 18.04, libssl-dev
is openssl 1.1.0, which is not compatible with Ruby 2.3.
Solution
- download openssl-1.0.2o.tar.gz https://www.openssl.org/source/
- unpack,
./config
and make
CONFIGURE_OPTS='--with-openssl-dir=/home/yhara/bin/openssl-1.0.2o' rbenv install 2.3.7
2018-05-16
TechRubyでブラウザゲームを作るためのライブラリ、DXOpalの1.2.0をリリースしました。
変更点は以下です。
- draw_xxのzオプションがうまく動いていなかったのを修正
- Sound#stopメソッドを追加
- singletonなどが使えなかったのを直した
- shiftやctrlキーが使えるようにした
2018-03-13
Tech昨年秋のRubyKaigiに参加したとき、コミッタである中田さんから私の書いたコードがRuby trunkで壊れているという連絡をいただいた。そこで、それを修正するプルリクエストを書いた。
といっても、diffは以下の1行だけ。
-_ { return }
+_ { yield }