2018年5月 9日 (水)

Rubyの拡張ライブラリWin32OLEの昔話をしてみた

社内の勉強会で急遽、喋らなくてはならなくなり、前日にプレゼンテーション資料をでっちあげて、Win32OLEの昔話をしてみた。

| | コメント (0) | トラックバック (0)

2016年9月19日 (月)

[Ruby][Rails][Book] Agile Web Development with Rails 5

Agile Web Development with Rails 5 の Part II まで写経した。

でもって、何か動かないコードがあったりしたら、せっせと errata に投稿していた。 そしたら、電子書籍版の Acknowledgments に名前を載せてもらった。( 紙の本は未確認 )

写経してみて感じたことは、サンプルコードはスクラッチから書かれておらず、Rails 4 で書いていたものを Rails 5に移植したのではないかということ。

Task J:Internationalization の章は多少の手抜きが感じられる。 Task K: Deployment and Production の章はちょっとわかりにくかった。 Task K は、写経というより、適当にdeploy 用の環境を作ってcapistranoを使ってdeployできることを確認する程度で終わってしまった。 まあ、何にせよ、自分も少しは、Railsが少しだけわかるようになってきたという手応えを感じることができたのが、今回の写経の収穫である。

余談だが、Acknowledgements が正しい綴りだと思ってたんだけど、Acknowledgments も正しいことを初めて知った。

電子書籍は今だにβ版のままだな。

| | コメント (0) | トラックバック (0)

[JavaScript] コンソールで ES6 を試す

Babelでできるのかと思ったけど、インストールのやり方がまずかったのかうまくいかなかったので諦めた。

traceurを使ってみたら動いたので、こちらを使うことにした。

試したコードは

var name = "JavaScript";
console.log(`Hello World ${name}`);

とか

function calculateBill(total, tax = 0.13, tip = 0.15) {      
    return total + (total * tax) + (total * tip);
}
const totalBill = calculateBill(100);
console.log(totalBill);

など。

| | コメント (0) | トラックバック (0)

2016年7月24日 (日)

[Ruby][Rails] ActionCable in Agile Web Development with Rails 5

Agile Web Development with Rails 5 には、ActionCable を使う例が登場するのだけど、これが動作しない。の続き。


結局、errata を良く読み返してみて、app/channels 直下に products_channel.rb を配置すれば動くことがわかった。


更に、


class ProductsChannel < ActionCable::Channel::Base

よりも


class ProductsChannel < ApplicationCable::Channel

とした方が良さそう。


$ rails g channel products 

と実行して生成されるファイルでは、そうなっている。

| | コメント (0) | トラックバック (0)

2016年7月17日 (日)

[Ruby][Rails] ActionCable in Agile Web Development with Rails 5

Agile Web Development with Rails 5 には、ActionCable を使う例が登場するのだけど、これが動作しない。


Subscription class not found: "ProductsChannel"

写経している自分のコードが間違っているのかと思い、書籍のページからダウンロードしたソースを試してみたが、やっぱり同じエラー。
Vagrant 環境で試しているせいかと思って、ローカル環境で試してみても同じエラー。
errata を見てみたら、同じ現象が既に報告されていたので、自分の環境固有の問題ではなさそう。


ところで、ActionCable のサンプルをWebで眺めていると大概、redis をインストールしているのだが、この本ではインストールしていないし、config/cable.yml には


development:
adapter: async

となっていて、redis を使うようになっていない。開発環境では、redis がなくても、ActionCableが動作するのだろうか?


... githubを読むとどうもそうらしい。

| | コメント (0) | トラックバック (0)

[Ruby] Rails の render

Agile Web Development with Rails 5 を読んでいて初めて知った(ちゃんと認識した)こと。


View の中で


render @cart

とやると _cart.html.erb の中では、 cart を使って @cart にアクセスできる。

| | コメント (0) | トラックバック (0)

2016年7月 9日 (土)

[Ruby] Ruby or Rails

Ruby の機能か Rails の機能かを選択するクイズを10問出題するサイト。

Ruby or Rails

10問中9問しか正解できんかった。

| | コメント (0) | トラックバック (0)

2016年5月 7日 (土)

[Soft] Vagrant と Ubuntu 16.04

ふと思いたって、Vagrant で Ubuntu 16.04 を試してみようと思ったのだが、エラーが出てしまった。 Vagrant の設定を書き替えてみたり、Ubuntu 16.04 のイメージを別のにして試してもみたのだが、症状は変わらず。

Googleで探してみると vagrant の issue と同じ現象。

で、 このissue の中のコメント にあるように

geerlingguy/ubuntu1604 を試してみたところ、ようやくエラーなしで起動できた。

本当にやりたかったことは、Ubuntu 16.04 を起動することではなくて、その先にあるのだけど、ここで力尽きてしまった。

| | コメント (0) | トラックバック (0)

2016年2月29日 (月)

[Rails] Rails というか ActiveRecord というか Arel で SQL の case

いろいろ調べてみたが、Rails 5 beta3 でもまだ駄目だった。

<https://github.com/rails/arel/pull/400>

が arel にマージされているので近い将来には、arel を使えば、SQL の case に相当するものを arel を使って書けると思われる。

Rails 5 beta3 でインストールされるのは、arel-7.0.0 だったが、これには 残念ながら、含まれていなかった。

なので、普通に case を文字列で渡してやるしかない。

scope :sel_case_col1, -> { select( "case when col1 = 'AAA' then 'aaa' else col1 end as col1" ) }

| | コメント (0) | トラックバック (0)

2016年1月 9日 (土)

iPod nano が充電できなくなった

充電式の掃除機が駄目になったのに続いて、iPod nano も充電ができなくなってしまった。 買い替えるかなあ。

| | コメント (0) | トラックバック (0)

«ssh の known_hosts