yhara.jp

Recent Posts

「fetch APIでRailsのcreateアクションを叩くとInvalidAuthenticityTokenになる」

2018-08-04
Tech

fetch 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をサーバに送らせることでうまく行った。


TRICK2018応募作

2018-07-05
Tech

TRICK 2018に応募した作品です。

解説はまた後ほど…

SVG Graph Generator

グラフ構造をDSLで記述すると、そのようなSVG画像を生成するプログラムです。

$n={};$e=[];class Array;def -@;self;end;def -(o);$n[self]=1
(more...)

RubyKaigi 2018 仙台に参加しました

2018-07-01
Tech

もう一月経ちますが、仙台で行われたRubyKaigi 2018に参加していました。

TRICK2018

今回はTRICKの審査員として登壇しました。登壇といっても僕がしたのは審査作業くらいです。主催のmameさんお疲れ様でした&ありがとうございました。

togetterで皆さんの悲鳴をまとめていますが、楽しんでいただけたようで良かったです。

(more...)

Let's Encryptの導入がめっちゃ簡単だった

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/を見てどうなったか確認したほうがいいと思うけど、それにしてももうちょっと手間かかるもんだと思ってたので拍子抜けした。すごいなぁ。


mac/linux/windowsに全対応した日本語入力切り替えキー

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(自作キーボード)を併用していることもあり全ての環境で条件を揃えるのが難しかった。

今回、ようやくそのような状況を構築できたので、手順をメモしておく。

理想

(more...)

Install Ruby 2.3 on Ubuntu 18.04 LTS

2018-05-21
Tech

Usually 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

  1. download openssl-1.0.2o.tar.gz https://www.openssl.org/source/
  2. unpack, ./config and make
  3. CONFIGURE_OPTS='--with-openssl-dir=/home/yhara/bin/openssl-1.0.2o' rbenv install 2.3.7

DXOpal 1.2.0をリリースしました

2018-05-16
Tech

Rubyでブラウザゲームを作るためのライブラリ、DXOpalの1.2.0をリリースしました。

変更点は以下です。

  • draw_xxのzオプションがうまく動いていなかったのを修正
  • Sound#stopメソッドを追加
  • singletonなどが使えなかったのを直した
  • shiftやctrlキーが使えるようにした
(more...)


ARC062-E『AtCoDeerくんと立方体づくり』をRubyで

2018-03-05
Tech

会社のAtCoder会でARCのE問題をやったのだけど、解説を見て実装してもなかなか通らなくて大変だった。

「同じカードを複数の面に使うことはできない」という制約をうまく実装する方法がわからなくて、問題名で検索したところ、いくつか解説が見つかった。

(more...)

DXOpal 1.1.0をリリースしました

2018-02-05
Tech

もうすぐ出る予定のるびま記事に合わせて、DXOpal 1.1.0をリリースしました。

https://github.com/yhara/dxopal/blob/master/CHANGELOG.md

1.0.0からは、リクエストされたメソッドをいくつか追加しています。今後も未実装機能についてはリクエストがあれば対応するという感じでいくつもりなので、DXRubyのメソッドで足らないものがあればtwittergithub issueで教えてください。


Posts

(more...)

Articles

(more...)

Category

Ads

About

About the author