RubyKaigi 2018 仙台に参加しました
もう一月経ちますが、仙台で行われたRubyKaigi 2018に参加していました。
TRICK2018
今回はTRICKの審査員として登壇しました。登壇といっても僕がしたのは審査作業くらいです。主催のmameさんお疲れ様でした&ありがとうございました。
togetterで皆さんの悲鳴をまとめていますが、楽しんでいただけたようで良かったです。
もう一月経ちますが、仙台で行われたRubyKaigi 2018に参加していました。
今回はTRICKの審査員として登壇しました。登壇といっても僕がしたのは審査作業くらいです。主催のmameさんお疲れ様でした&ありがとうございました。
togetterで皆さんの悲鳴をまとめていますが、楽しんでいただけたようで良かったです。
このブログが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/を見てどうなったか確認したほうがいいと思うけど、それにしてももうちょっと手間かかるもんだと思ってたので拍子抜けした。すごいなぁ。
僕のmacbookにはVMWare Fusionが入っていて、その上でLinux(Ubuntu)とWindowsを動かしている。仕事は主にLinuxでやっていて、Excelなどが必要なときはWindows、それ以外はmacという使い分けなのだが、ここで問題になるのが日本語入力切り替えキーである。
IMEはmac/linux/winのいずれもgoogle日本語入力(mozc)をインストールしている。そのためIME on/offが環境によらず同じキーでできるのが理想なのだが、macbook本体のキーボードに加えLet's Split(自作キーボード)を併用していることもあり全ての環境で条件を揃えるのが難しかった。
今回、ようやくそのような状況を構築できたので、手順をメモしておく。
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.
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.
On Ubuntu 18.04, libssl-dev
is openssl 1.1.0, which is not compatible with Ruby 2.3.
./config
and make
CONFIGURE_OPTS='--with-openssl-dir=/home/yhara/bin/openssl-1.0.2o' rbenv install 2.3.7
Rubyでブラウザゲームを作るためのライブラリ、DXOpalの1.2.0をリリースしました。
変更点は以下です。
昨年秋のRubyKaigiに参加したとき、コミッタである中田さんから私の書いたコードがRuby trunkで壊れているという連絡をいただいた。そこで、それを修正するプルリクエストを書いた。
といっても、diffは以下の1行だけ。
-_ { return }
+_ { yield }
会社のAtCoder会でARCのE問題をやったのだけど、解説を見て実装してもなかなか通らなくて大変だった。
「同じカードを複数の面に使うことはできない」という制約をうまく実装する方法がわからなくて、問題名で検索したところ、いくつか解説が見つかった。
もうすぐ出る予定のるびま記事に合わせて、DXOpal 1.1.0をリリースしました。
https://github.com/yhara/dxopal/blob/master/CHANGELOG.md
1.0.0からは、リクエストされたメソッドをいくつか追加しています。今後も未実装機能についてはリクエストがあれば対応するという感じでいくつもりなので、DXRubyのメソッドで足らないものがあればtwitterやgithub issueで教えてください。
git stashは便利なコマンドだけど、stashして、stashして、編集して、コミットして、popしてpopして…みたいなことをしてると、stashした時点とコードが変わっててpopできない、みたいなことがたまにある。
こういうとき、git stashのマニュアルを見ると、「手でconflictを解決してからstash popすること」と書いてある。けど、時にはとりあえずなんでもいいから無理やりpopしてほしい、という場合もある。
このようなときは以下の手順でgit stash pop --force的なことができる。
# 手元の変更をいったんcommitする(このコミットはあとで破棄するのでログは適当でよい)
$ git commit -a -m 'tmp'
これはWebAssembly Advent Calendar 2017の1日目の記事です。明日はyamachuさんによるElectronでWebAssemblyを使う話だそうです。楽しみですね。
アドカレ初日記事なので、WebAssemblyとは何か?という話を簡単にしておきます。WebAssemblyはWebのための新しいコンパイルターゲットで、Chrome/Firefox/Safari/Edgeでの動作が既にサポートされています。
Webのためのコンパイルターゲット、とは何でしょうか。WebAssembly以前は、JavaScript以外の言語をブラウザ上で動かそうと思ったらまずJavaScriptに変換してやる必要がありました。近年だとScala.js(Scala→JavaScript)やGopherJS(Golang→JavaScript)というプロジェクトがあり、古くはC/C++のコードをJavaScriptにするEmscriptenがあります。しかし例えばEmscriptenでC言語で書かれたゲームをまるごとJavaScriptにしたりすると、出力結果の.jsファイルが巨大になり、ダウンロードや読み込みに時間がかかってしまうという問題がありました。
これを解決するのがWebAssemblyです。.wasmファイルはバイナリフォーマットなので.jsよりずっと小さくでき、またパース処理も単純なのでロードも速くなります。WebAssemblyの登場により、JavaScript以外の言語をブラウザで動かすことがずっとやりやすくなったと言えるでしょう。