2017-12-18

今年最後の Rails Girls Tokyo, More! で気づかせてもらったこと

この記事は、Rails Girls Japan アドベントカレンダー の18日目の記事です。

12/17(日) は、今年最後の Rails Girls Tokyo, More! を、弊社 ケーシーエスキャロットで開催しました。

Rails Girls Tokyo, More! は、kurotakyさんや、okuramasafumiさんもお話されているように、
月1回ペースで開催されている勉強会です。
Rails Girls の参加者の方の継続的な勉強の場としてだけではなく、
Ruby / Rails を学びたい方のための会です。
Rails Girls Tokyoは、毎回参加希望者の方が多く、抽選となってしまっているのが現状です。
こちらのMore!の方も、コーチがついて教えてもらえる勉強会となっているので、
参加したい方は、 にお声かけください~


今日は、いつもコーチで参加して頂いている igaigaさんと、okuramasafumiさんがコーチとして参加して頂いて、
参加者の方も3名だったので、マンツーマンで参加者のやりたいこと進める形となりました。

Railsチュートリアルを進める方、たのしいRubyを読みながら進める方、
書いてある説明がわからなかったり、書いてある通りにやってもうまくいかない場合には、
コーチが説明してフォローしながら、各自進めていきます。



「routing って、どれくらいわかっていたら大丈夫ですか?」

「正規表現。。。これ、みんなわかるものなんですか?」

そうですよね、そうですよね、そう思いますよね のような質問も
コーチの経験を含めて「今の時点でなら、このくらいわかっていればいいんじゃないかな」というのを教えてくれます。

2012年9月に鳥井さんが初めてから、第38回目になるのですが、
初心者の方が、Ruby/Rails を学ぶには、とてもよい勉強会だと思っています。


そして今日は、年内最後ということで、早めに勉強会を切り上げて、クリスマスパーティーをしました。



ブッシュドノエルを作って持っていきました。
(運ぶために、タッパーを上下逆さまにして入れていったので、ケーキがのっているのがタッパーの蓋...)


ケーキ食べながら、色々なお話をしました。
参加者の方でも、他の勉強会や、RubyKaigiに参加してみたい と思っている方が結構いらっしゃるようなのですが、
やはり誰も知り合いのいない勉強会に一人で参加するのは、敷居が高いとのこと。
(女性の参加者自分だけ...ってことになることもありますからね...)


「うん、うん、わかるわかる。昔、私もそうだった~」と聞いていたら、
「えもりさんが参加する勉強会、『今、参加してますー』じゃなくて、「申し込みました」のツイートしてくれればいいんですよ~」とのご意見を頂きました。

!!!!
気づかなかった!!!そこね!!!

これからは、申し込みしたらツイートするようにします。
知っている方が参加するって知ったら、「参加してみよう」と思う方がいるかもしれないので、皆さんも「行くよ!」のツイートするとよいと思います!
(恵比寿方面を見ながら...)
 
ちなみに、次参加予定は、これです。
Speee×Asakusa.rb Ruby2.5リリースパーティー
通常ミートアップも参加しているAsakusa.rbメンバーなのですが、
申し込みが遅れて、危うく参加できないところでした。
(増枠してくれてうれしい!)

最後に、、、
「Rails Girls オーガナイザーをやると、Railsエンジニアの方とたくさん知り合えますよ?」

2017-12-17

コツコツの積み重ねの結果

この記事は、ケーシーエスキャロット Advent Calendar 2017 17日目の記事になります。

ちょっと前の記事が、もうちょっと加筆したいことがあるので、
(疲労がたまってたりして滞っている..)
先にこちらの記事をシュッと書きました。

社内の人は、私が Rails Girls という
世界的なワークショップのお手伝いをしているということを
知っている方もいると思います。
(スポンサーもやってるんですよー)
 サイトの更新もやったりしているのですが、
日本のRails Girlsのサイト (http://railsgirls.jp/) の contributors では、今 #4となっていて45 commitsとしています。(しかも1回間違えて仕事用アカウントでcommitしている...)

本家 (http://railsgirls.com/) の方は、#16 (102 commits) で、実は日本で1番commitしています。
(Rails Girls 本家のサイトリポジトリは、privateなので見えません)


たかが、サイトの更新...と思う人もいるかもしれませんが、
1週間以上前に終わったイベントが、Upcoming Eventに残っていたりするって、
メンテナンスされていない感じがして、気になるんですよね...

最初の頃は、pull request 出すのも1週間くらい迷っていたりもしましたが、
今は「あ、直ってないから pull requestだしとこ」くらいの気持ちになっています。

「誰かがやるから、自分はやらない」のではなくて、
「気づいたから、やっておいたよ!」をコツコツ積み重ねた結果です。

 GitHubで会ったことないエンジニアに「ありがと!」とか言われると、
2~3日嬉しいですw

みんなも、そういう想い味わったことありますか?

2017-12-11

私的 Rails Girls 2017の振り返りと2018にやりたいこと

この記事は、Rails Girls Japan アドベントカレンダーの10日目の記事です。

昨日は、okuramasafumiさんの「 Rails Girlsのコーチを初めてやってみて」でした。
More! のコーチにも参加して頂いて、ありがとうございます!


2017年ももうすぐ終わりなので、今年これをやったぞーと、来年はこれやってみたいぞーというのをあげてみたいと思います。

2017年振り返り

2017年、コーチなどでお手伝いした Rails Girls Japanのイベントは、
以下の3つでした。

Tokyo 7th

Tokyo 7thは、Kyotoでもオーガナイザーをしていた atttsumi さん と、Tokyo 5thからコーチで手伝って頂いている sinamon129 さんがオーガナイザーでした。
いつもの熟練コーチの他にも、初参加して頂いた学生コーチの方がいて、
新しい風~が吹き始めた感がしました。

atttsumi さんと sinamon129 さんのコンビが、どんどん動いてくれたので、
私はアフターアフターのお店探しと、当日の写真係くらいでした。
二人のパワーすごい~と感心した回でした。

Toakasaki 1st

群馬で初開催ということで、お手伝いに行ってきました。
オーガナイザーの近藤さんと大畑さんには、Tokyo 7thのスタッフで参加して頂いてのですが、すごく頑張ってる雰囲気が伝わってきたのが印象的でした。
インストールデイを終えて、satomicchy とご飯でも軽く~と思っていたら、
河野夫妻と合流 & 意気投合して、忘れられない 高崎の夜を過ごしました。

あと、実は同僚が申し込んで参加していましたw
普段は組み込みの仕事をしている方なのですが、Rubyコミュニティの楽しさを体験して欲しくて、前々から誘っていたのですが、今回の高崎でやっと重い腰をあげてくれました。
参加した感想聞いたら、「すごっく美味しかった!(ランチの鳥めしと焼きまんじゅうが気に入ったようです) 楽しかった!」だそうです。


Tokyo 8th

Tokyo 1st 参加者で、More!も参加して頂いている shokolateday さんがオーガナイザーでした。
コーチの素振りで、「この業界に入った理由」をコーチの方々に聞いてみたいということで、皆さんに質問したのですが、そういう話を聞いたことがなかったので、
知らなかったーというお話も聞けて、普通に面白かったです。
SNS映えしそうないいね♡の枠を作ったりと、デザイナー魂が火を噴いた回でした。
いつもの心強いコーチ以外にも、マネフォや万葉さんからのコーチも多く参加して頂きました!
女性コーチも増えて、本当にうれしい限りです!

Rails Girls Tokyo, More!

毎月開催している Rails Girls の参加者の方や、Rails に興味ある方のための勉強会です。
3月の年度末に、年度の振り返りということで、ゆる~いLT大会をして、
skypeで yotii23さんとkatorieさんに参加して頂いて、
おふたりの赤ちゃんを拝見しました~!とってもかわいい!!!
当時、育休中で、この機会に色々勉強をされているとのことでした。
お子さんのいる方でも、More!に参加できる方法とかも今後検討していきたいなー。

また、今年は参加して頂いたコーチの方から、色々アドバイスを頂けました。
「こうしたらもっとよくなるんじゃないかな?」とか、「こういうのやるのはどうだろうか」とか、本当にありがたいです。
2018年、少しずつ進めていきたいなーと思っています!

Rails Girls Japanメンバーとして

Rails Girls 開催のお手伝いの他に、年間スポンサーの方にメールを出したりしました。
前は、何度も見直していた英語メールも、だいぶ慣れた気がします!
だいぶ、鍛えられました。

その他

Rails Girls とはあまり関係ありませんが、
RubyKaigi 2017の時に、「エモリハウス」というのをやりました。
女性で一人でホテルに泊まるのが抵抗ある人もいるかなーと思ったのもありますが、
「みんな一緒だと、楽しいじゃん?」というのが一番の理由です。

いつも一緒にわいわいやっている Rails Girls のメンバーの他にも、
pupupopo88 さん、shio_chanさん、imaz さん(...台風で来られず...😢)もご応募頂いて、ありがとうございました!

2018年やりたりこと

Rails Girls Tokyo, More!

先日参加された方がお話されていたのが、「プログラミング教室に通っているけれど、講師も参加者も男性ばかりで、すごくいずらいので、More!ありがたい」ということだったので、毎月開催を、2018年もやっていこうという気持ちです。
あと、先日、okuramasafumiさんと話していて出てきた案なのですが、
今の月1回週末に昼頃から集まり、夕方までする以外に、
平日の夜、時間を決めて、チャットをオンラインにしておいて、作業を行う。
作業をしていてわからなかったら、その時に質問するというのはどうかな?というのがありました。

でね、気づいちゃったんですよ。
チャットなら、Tokyoだけで限定する必要もないんですよね。
ということは、More!開催しているところで、協力しあえば、開催回数も増やせるのでは?

【業務連絡】More!を主催している方々、後で連絡するので、↑相談させてください!


あとは、Rails Girls 参加の後、どうやってRailsの勉強を進めていくか... というところが課題となっています。
作りたいアプリがある人は、それを作ればいいのですが、作りたいものないけど、
勉強は続けたい人は、どうしよう?というのが悩みどころです。
gitコマンドの勉強の回とか、簡単なアプリとか、カリキュラムのようなものをいくつか準備しておくといいのかなーというがあったので、それも2018年検討してみたいなーと思っています。

最後に

来年も皆さんに協力してもらいながら、やっていこうーと思っていますので、
ご協力お願いします!

明日は、TakayaKanatoさんです!
参加者の方ですね!楽しみ~!

2017-12-09

女子エンジニア忘年会でLTしてきた話

この記事は、株式会社ケーシーエスキャロット アドベントカレンダーの8日目の記事です。

昨日、女子エンジニア忘年LT会 2017 で、LTしてきたので、そのお話を。

Wedding Parkで開催されました。
CyberAgent, GitHub, Goolgle もスポンサーだったようです。
フォトジェニックなカップケーキ!!! もちろん撮りました。





今回は、「技術のお話してください」とお声がかったので、何を話そうかと考えていたのですが、Rubyでない方も多いかなーと思って、
”What's your favorite method?" というタイトルで話をしてきました。

初めてRubyKaigiで発表した後に質問しにきてくれた方にされた質問で、
その後、何度かこの質問されたことがあるので、
知らないエンジニアと話すきっかけ言葉 みたいなものだと、個人的に思っています。

今回知らない方も多そうだったので、この話をしてきました。
自分の好きなメソッドの話と、 この一言をきっかけに、 ライブラリ(gem) のコードの中、ライブラリを作った人とつながって、世界が広がっていくと楽しいよ!というお話をしてきました。

プログラマーの方が多かったのだけれど、言語聞いたら、Rubyはほとんどいなかった...
PHPの方が多かったみたいです。
参加者の方もCyberAgentグループの方が多かったのかな?
スタッフの方に聞いたら、CyberAgentグループの女性エンジニアの方たちで、
もともとLT大会みたいなことをやっていて、
今回は公開して開催したそうです。

新人の方や、急にCTOになった方、プロジェクトリーダーされている方と
色々な方のLTがあって、和気あいあいした感じで楽しんできました!
もちろんお料理も美味しかった!



Rubyコミュニティや、他のイベントに出かけるようになって気づけたことなのだけれど、社外の色々な人と話をするのは、とても刺激になります。
色々な話を聞いていると、「あ、これ、あれで試せそう~」と新しい考えがわいてきたり、
新人の方の話も、当然私の頃とは時代が違うわけで、聞いているだけで、
「おぉぉぉー、すごい」と素直に思います。
新人の頃なんて、よくC言語で無限ループ作って、Ctrl+C を押してた記憶しかないですもん。

今回このアドベントカレンダーを勢いで作ったのも、
ちょっと、こういう社外のイベントに参加してもらうきっかけになったらいいなーと
個人的に思ったからなのでした。


「私なら何書くだろ?」って考えて、社外の何かに興味をもってもらえたら嬉しいなー。

2017-12-04

家に未来がやってきた

我が家に Echo Dot がきた。

実は、会社の忘年会のBINGOの景品に、Google Homeと、Echo Dotのリクエストをだしていたんだけれど、
Twitterで、抽選しているのを見かけて申し込んだら、抽選にあたったのでした。

前に見ていた FOXのキャッスルというドラマで、スマートスピーカのネタの回があって、「未来だ!!!」と思ってみていたのだけど、
まさか、我が家にもそんな未来がやってくるなんて!

配達されてすぐに実家に行く用事があったので、そのままAmazon段ボールごと実家へ持って行って、開封。

wifiのセットアップもしてたら、姪っ子と甥っ子が来て、設定終わるなり、
「アレクサ!〇〇かけて!」「アレクサ!〇〇かけて!」... 彼らが飽きるまで、曲最後まで聞けなかった...


まだ家電の環境はないので、音楽やラジオかけたり、スケジュール確認したり、
時間や、交通情報確認したりするくらいかなーと。
あとは、レンタカーで遠方に行くときに、iPadでAmazon Prime Musicをよく聞いていたので、
これ、持っていったら、とても快適そう!

今週、リアルえもりハウス忘年会があるので、BGMとか勝手に選んでもらおう!


あと、実は Google Home もポチっとしたので、近日中にやってきます。

2017-12-03

ActiveRecordを使って複数DBにアクセスする(その1)

この記事は、株式会社ケーシーエスキャロット アドベントカレンダーの2日目の記事です。
ちょっと公開が遅くなってしまいましたが、やっていきます。

1日目に準備をしたので、今日はいよいよプログラムを書いていきましょう。
以下のような構成で作成していきます。


config/database.yml


own(development) / other(other_development) のKEYで接続情報を記載します。


default: &default
  adapter: mysql2
  encoding: utf8
  pool: 5
  username: root
  password:
  socket: /var/lib/mysql/mysql.sock

development:
  <<: *default
  database: multi_connect_development

other_development:
  <<: *default
  database: other_multi_connect_development

lib/common/user.rb


own /other のUserクラスの親クラスとなるクラスです。

同じ構造のテーブルにアクセスするので、共通のクラスを作って、
このクラスは、AciveRecord::Baseを継承します。


class Common::User < ActiveRecord::Base
end

lib/own/user.rb, lib/other/user.rb のそれぞれのデータベースにアクセスするためのクラスとしています。

lib/own.rb


lib/own.rb には、autoload でUserクラスの読み込みと、DBの情報を返す connectメソッドを定義しておきます。


module Own
  autoload :User, 'own/user'

  def connect
    MultiConnectConfig.config["development"]
  end
  module_function :connect
end

DB接続は、establish_connection をモデルクラスに記載するとできるとの情報を見つけたので、
lib/own/user.rb には、establish_connection を記載します。

lib/own/user.rb



class Own::User < Common::User
  establish_connection Own::connect
end

また、other 側も同様に記載しておきます。


bin/multi_connect.rb


実際の呼び出すプログラムは、以下のように書きました。
config/database.ymlを管理するクラス(MultiConnectConfig)を記載しています。
(別ファイルにすることが望ましいです)

そして、Own側とOther側のUserの1件目をそれぞれ呼び出すプログラムです。


class MultiConnectConfig
  file_path = "./config/database.yml"
  @@config = YAML.load_file(file_path)

  def self.config
    @@config
  end
end

p Own::User.first
p Other::User.first



結果


以下のエラーになりました。
(2.5からbacktraceの出力が逆になる予定で、この2.5-devのバージョンも逆になっています


[vagrant@rg batch]$ bundle exec ruby bin/multi_connect.rb
Traceback (most recent call last):
        14: from bin/multi_connect.rb:19:in `
' 13: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/querying.rb:3:in `first' 12: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/relation/finder_methods.rb:122:in `first' 11: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/relation/finder_methods.rb:531:in `find_nth' 10: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/relation/finder_methods.rb:538:in `find_nth_with_limit' 9: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/relation/delegation.rb:44:in `primary_key' 8: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/attribute_methods/primary_key.rb:74:in `primary_key' 7: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/attribute_methods/primary_key.rb:88:in `reset_primary_key' 6: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/attribute_methods/primary_key.rb:74:in `primary_key' 5: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/attribute_methods/primary_key.rb:86:in `reset_primary_key' 4: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/attribute_methods/primary_key.rb:98:in `get_primary_key' 3: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/model_schema.rb:331:in `table_exists?' 2: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/connection_handling.rb:88:in `connection' 1: from /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/connection_handling.rb:116:in `retrieve_connection' /vagrant/adventcalendar/batch/vendor/ruby/2.5.0/gems/activerecord-5.1.4/lib/active_record/connection_adapters/abstract/connection_pool.rb:930:in `retrieve_connection': No connection pool with 'primary' found. (ActiveRecord::ConnectionNotEstablished)

No connection pool with 'primary' found.
primary って何でしょう? 次はこのエラーを見ながら、進めていきます。

そして3日目は、naokishi の 「資格取得のススメ(仮)」です。

naokishi と一緒に青物横丁で仕事していたのは...もう17年くらい前!?
チームが変わって、同じプロジェクトで仕事することはなくなったけれど、
いい意味で「サラリーマン気質」で、いつもみんなを気遣ってくれるのは、
あの頃も今も変わらずです。

最近は、お互い日本酒党になったので、また美味しいお酒飲み行きましょう~

2017-12-02

Rails Girls Guides「Test your app with RSpec」を本家に合わせてみる

この記事は、Rails Girls Japan Advent Calendar 2017 の2日目の記事です。

今日は、「Test your app with RSpec」の章が、昔の記法のRspecのままで古いので、
本家に合わせてみましょう。

こちらは、日本語訳されていません。
翻訳に参加する場合は、issueを作成するとREADME.md に書いてあるので、issue を作っておき、今度翻訳することにします。

さて、本家の内容と合わせるために、本家のリポジトリを確認します。

本家のサイトはpull request を作成する予定がいまのところないのであれば、直接cloneしてしまいましょう。


$git clone git@github.com:railsgirls/railsgirls.github.io.git

diff コマンドなどで、対象のファイルの差分を一応確認してみます。


$cd railsgirls-jp.github.io # Rails Girls Guides(日本語訳)のディレクトリに移動
$git checkout -b sync_testing # 作業するためにブランチを作ります
$diff -u _posts/2014-01-30-testing.markdown (本家サイトのレポジトリをcloneした場所)railsgirls.github.io.git/_posts/2014-01-30-testing.markdown

たくさん修正されています。
この _posts/2014-01-30-testing.markdown はそのまま本家のファイルをコピーすればよさそうなので、
本家のファイルをコピーして、pull requestを出しましょう。


$cp (本家サイトのレポジトリをcloneした場所)railsgirls.github.io.git/_posts/2014-01-30-testing.markdown _posts/2014-01-30-testing.markdown
$git add _posts/2014-01-30-testing.markdown
$git commit -m '本家サイトの内容で更新'
$git push origin sync_testing

昨日と同じように、GitHubの画面で pull request を作成して終了です!

今日のpull request

Rails Girls Guides「Carrierwave を使ってサムネイルを作ってみよう」のPRを送った話

この記事は、Rails Girls Japan Advent Calendar 2017 の1日目の記事です。

私が言い出しっぺで、昨年から始めたRails Girls Japanのアドベントカレンダーですが、
空いている日をもっと埋められないかな~と、今朝思っていたら、閃いてしまったのです。



このRails Girls Guies(日本語訳) は、Rails Girls 本家のGuideの日本語訳になっています。
更新は、Rails Girls ワークショップの開催前に、コーチの方達が
1~4(インストールからアプリの公開まで)を一通り確認した時に、
Ruby や Railsのバージョンが古くなっていたりしたときに、主に更新されていますが、
本家の情報の更新に合わせても有志によって、更新されています。

リポジトリは公開されているので、古い情報を見つけたら、
気軽にプルリクエストを送って欲しいので、いつも私がやっている修正する方法を記載します。

では、いってみましょう。

(初めての方)GitHubからソースを取得する


【前提】既にGitHubアカウントを持っているものとします。

Rails Girls Guidesのリポジトリをブラウザで開きます。

画面右上にある Fork ボタンをクリックします。



すると、自分のアカウントにRails Girls Guidesのリポジトリがコピーされます。

ターミナルを開いて、clone します。

$git clone git@github.com:[アカウント名]/railsgirls-jp.github.io.git

# ssh の設定をしていない人は、https で取得
$git clone https://github.com/[アカウント名]/railsgirls-jp.github.io.git


ガイドの修正を始める前に、branchを作成して、そこで作業しましょう。


$git checkout -b update_thumbnails


Rails Girls Guidesは、Railsではなく、jekyll という静的なサイトを作るのに便利なRubyで作ったツールです。

以下の方法で、起動できます。

$cd railsgirls-jp.github.io
$bundle
$bundle exec jekyll serve --watch [--host 0.0.0.0]

ブラウザで、http://127.0.0.1:4000/ を開くと、Rails Girls Guides(日本語版) のトップ画面が表示されます。

さて、これで準備できました。


では、修正していきましょう。


修正したいファイルを見つけます。
jekyll では、_posts フォルダ内のmarkdown形式のファイルがあり、このファイルが画面に表示される元ファイルになります。

jekyll を起動して、ブラウザで表示すると、markdown形式のファイルを、_sites 以下にhtmlファイルに変換したものが表示されています。

(_sites 以下のファイルを修正しても、markdownを修正しないと jekyll を再起動すると修正は消されてしまうので、注意が必要です)


今日は、「Carrierwave を使ってサムネイルを作ってみよう」で使っている gemのバージョンを新しくしようと思います。

Rails Girls では、できるだけ最新のRuby, Rails のバージョンを使っているので、
修正するガイドもそのバージョンに合わせて、動作確認を行ってください。
(12/1現在、 Ruby 2.4.2, Rails 5.1.4のバージョンの環境となっています。)

主に、以下の点の確認をします。
  • リンク先が切れていないか
  • リンク先は正しいか (本家サイトと比べてみたりする)
  • 使っているgemのバージョンは最新か
  • 記述してある内容通りに実行して正常に動くか

今回は、ダウンロードのリンクの修正と、gem のバージョンを修正しました。


$git add _posts/2012-06-03-thumbnails.markdown
$git commit -m 'update thumbnails section'
$git push origin update_thumbnails

これで、GitHub上のサイトに、修正したブランチが作成できます。
GitHubの画面からPull Requestを作成して、終了です!

後は、レビューされてマージされるか、コメントもらうのを待ちましょう!

本家のpull requestも作成しました。

2017-12-01

ActiveRecordを使って複数DBにアクセスする(準備編)

この記事は、株式会社ケーシーエスキャロット アドベントカレンダーの1日目の記事です。

Rubyの部署に所属しているemorimaです。

今年は、会社支援で RubyKaigi 2017 と、Ruby World Conferenceに参加させてもらいました。
また、株式会社ケーシーエスキャロットは、10月に開催した Rails Girls Tokyo 8th でもスポンサーや、Asakusa.rb の会場にもなっております。

Rubyの会社ではなく、組み込み系やスマフォアプリ作成の仕事もしています。
昨年から、ETロボコンにも参加している社員もいるので、この後のどこかでお話が聞けるかな~


さて、これから、ActiveRecordを使って複数DBにアクセスするプログラムを作っていこうと思います。
前に作った時に、うまく接続が切り替わらずに、色々調べることになったので、
その内容を書いていこうと思います。


今日は準備から。

Databaseの作成は、Railsを使って簡単に作ってしまいましょう!

環境


Rubyruby 2.5.0dev (2017-11-30 trunk 60945) [x86_64-linux]
Rails5.1.4
Databasemysql Ver 15.1 Distrib 5.5.56-MariaDB, for Linux (x86_64)


データベース作成


rails コマンドで、新規アプリを作ります。

$rails new multi_connect -d mysql
$cd multi_connect

Gemfile 上の 18行目の uglifier のコメントを外して、users テーブルを作ります。


$rails g scaffold user name:string
$rails db:create
$rails db:migrate

別のDatabaseを作ります。

config/database.yml のdatabase定義を変更して、
rails db:create, rails db:migrate を実行します。


そして、2つのデータベースにデータを登録しておきます。
同じデータを登録すると、正しく接続したかがわからないため、
私は、'taro', 'jiro' で分けて登録しました。

データベース1



MariaDB [multi_connect_development]> select * from users;
+----+--------+---------------------+---------------------+
| id | name   | created_at          | updated_at          |
+----+--------+---------------------+---------------------+
|  1 | taro-1 | 2017-11-30 11:44:53 | 2017-11-30 11:44:53 |
|  2 | taro-2 | 2017-11-30 11:44:53 | 2017-11-30 11:44:53 |
+----+--------+---------------------+---------------------+
2 rows in set (0.00 sec)

データベース2



MariaDB [other_multi_connect_development]> select * from users;
+----+--------+---------------------+---------------------+
| id | name   | created_at          | updated_at          |
+----+--------+---------------------+---------------------+
|  1 | jiro-1 | 2017-11-30 11:45:15 | 2017-11-30 11:45:15 |
|  2 | jiro-2 | 2017-11-30 11:45:15 | 2017-11-30 11:45:15 |
+----+--------+---------------------+---------------------+
2 rows in set (0.00 sec)


さて、準備はできました。
次は、実際に接続するRubyプログラムを書いていきましょう。

明日は、「ActiveRecordを使って複数DBにアクセスする(その1)」になります。

2017-11-28

オトナとRuby (3回目) に参加してきました

1日目

11/25 殻殻工房でオトナとRubyに参加してきました。
 
前回torubyに参加した時は、ようさんとしなもんさんと酒蔵巡りしながら向かったけれど、
今回は、山ガールのようさんは、朝早くに山登りに行ったので、
しなもんさんと、 栃木市内の太平山に寄って、紅葉を見ながら向かいました~


のんびり🍡食べながら、紅葉を見てから、那須に向かい、途中でようさんと合流。
遅めの昼ごはんを食べて、途中気になった地酒やさんへ。

澤姫という栃木のお酒を購入。
この澤姫、恵比寿にあるSAKEビストロ Na-Na の店員さんのご実家の酒蔵。
前にRails Girls Tokyoの2次会で使わせていただいたお店で、
お料理も美味しいし、普段飲んでいる日本酒とは違ったタイプの日本酒がおいてあるので、
その後も何回か足を運んでいるのでした。

あと、酒器がなかったので、3人でそれぞれ購入。
私は、 寺門広気さんの力が抜けた感じのデザインが気にいって、それを購入しました。


宿に戻って、スライドの準備とかをして、少し前にそろそろ行こうか~と出て着いたのが、
17:38頃...
 まだお店が空いていなくて、スマフォの電気を頼りに、また宿まで戻りました。




 街灯もなくて真っ暗な夜道、すごいこわい。
その分、星はとてもキレイでした。


またお店に行って、いよいよオトナの時間。
美味しい料理とお酒を食べながら、みんなの発表を聞くって贅沢。

結婚しました報告があったり、miwaさんのキッチンタイマーのお話が聞けたり、タイマーのデザインしたsekiさんのお話があったり、sekiマニア(SM)の米澤さんのお話があったり、
本業土建屋さんでCADの話があったり、、、
薪ストーブで暖かい店内でゆるい感じで時間が流れながら、
ほんと、いろんな話を聞けて、すごく楽しかったです!!!

お酒を注文しにカウンターに行ったら、カウンター近くでmiwaさん中心に女子会が開催されていて、靴用カイロをもらいました♪
2月に行く予定の新潟で使おうかな♪


気づいたら、宿の門限 23:00 を回ってる!
楽しい時間って、本当にあっという間。
慌てて宿に戻りました~


そして、部屋で2次会。
買ってきた日本酒を飲みながら、楽しかったねー。あの話すごくよかったーと
3人で色々お話してました。

しなもんさんは、その時、1時間おきに「めっちゃよかった」とツイートしてましたw

2日目

8時に米澤さんたちが泊まっていたパンのいえで朝ごはん。
プリプリしたソーセージと、カリッとしたパンのホットドッグを頂きました。
美味しくて幸せ~

その後は、米澤さんと宿泊組のみんなで、芦野温泉へ

旅館というか、施設がすごく大きくてびっくり!
テニスコートは4面はあったし、食事処では毎日歌謡ショーとか、色々イベントやってるし、
予想以上でした!
温泉はというと、薬湯が有名とのことで、なんとも複雑な香りのする温泉でした。
薬湯でない温泉もあって、それはぬめりが強くて、お肌がすべすべになる感じ。
食事処でご飯食べたり、のんびりしながら、1日温泉入ったり出たりしたい。。。

ここで、米澤さん達と別れて、那須に戻って、CHEESE GARDENでチーズケーキ購入。
あと、米澤さんが履いていたかわいいモカシンのお店(オーダーメイドで作れるらしい!) を見てきました。
形まで決めたんだけど、色の組み合わせがありすぎて、決められなかったので、
次回まで色々見て決めてこよう!ってことにしました。


那須付近は、こだわりのお店が多くて面白いので、もっと頻繁に遊びに行きたい!

2017-07-31

第34回 Rails Girls Tokyo, More!

第34回目のRails Girls Tokyo, More! は、みんなのウェディングさんが会場。


食べたいと思って、途中でチーズタルト買って行ったら、
昨日スーパーに行った時に、レモンタルトもおやつで買っていて、
「どうしてもタルト食べたい人」状態になってしまった...

その他にも、みなさんが持ってきてくれていて、お菓子充 ♪


今日はいつもの方々以外にも、5th 参加者の方が参加してくれたのだけど、
iPad Pro ということで、クラウドでの環境構築~。
rin922619 さんが、初めてということだったけど、フォローしてくれて助かりました!!!

8月は19日(土) か 20(日) 開催かな~


明日は7月最終日~

仕事は落ち着くから、ちょっと色々滞っていたやつに取り掛からねば~

2017-06-25

TXrbに参加してきた

今日は、第10回 TX.rbに参加してきた。

場所は、TX.rb ということで、
つくばエクスプレスの柏の葉キャンパス駅から近い KOILが会場。

KOILという場所は、秋葉原の駅に看板があって、気になっていたので、こういう機会に来られてよかった。
オープンなスペースの場所を貸して頂いているそうで、
会場脇にはPepperくんもいて、卓球台もあって、
柏の葉にこんないいところあったんだ〜というのが感想。

3Dプリンターや、レーザーカッターも時間で貸してもらえるみたいだし、
電話の声とかでうるさい会社より、とても快適なのでは?


会場にいたPepperくん
LINEで友達になると送ったメッセージを読み上げてくれる


TX.rbは、もくもく会ということで(後で発表することがあったらする)、
CFPの英語の更新をして、その後は興味のあることのC言語のプログラムを読んでいた。

使っている構造体とか知らなくて、色々メモして、理解しながらだったので、
読めたコード量は少なかったけれど、1つずつ理解していくしかないから、これからも頑張る。

他の人はRubyに限らず、興味のあることをやっていたし、
IT関連でないKOILで作業している方がフラ〜っとやってきて、一緒に卓球したり、
近くに住んでいる人は、気軽に参加できる勉強会だな〜と思った。


新しい場所で、新しい人に出会えて、色々お話して、ワクワクした1日だった!

2017-06-19

第33回 Rails Girls Tokyo, More!

6/18(日) は、Rails Girls Tokyo, More! を自社で開催。

Tokyo 6thの参加者の方と、7th 開催後、毎回出席していただいている方、
いつもの方に加えて、
高崎帰りのsatomicchyも寄ってくれました。

今回は、自分の作りたいものを作っている方が多くて、プログラム書けると便利になるな~を感じてくれたら嬉しいな~。

おやつは、高崎土産のチーズケーキでした。
チーズが濃厚だった。

2017-06-18

Rails Girls Takasaki 1st

Rails Girls Takasaki 1st

Rails Girls Takasaki 1st の弊社がスポンサーしたので、コーチもしてきた。

担当の方がプログラミング経験のない方だったので、インストールデイに、インストール終わった後に Try Ruby のサイトで簡単な説明をしながら、Rubyに触れてもらった。

画面右側のprompt上で、説明するために、色々コードを試してみたんだけど、あれ、勝手なコード入力するとダメなのね...


今回、Windows担当だったのだけれど、特に環境面での問題もなく herokuへのデプロイまで無事完了できた。
前日のインストール時には String, Array, Hash の説明をしたのだけど、Rails Girls のワークショップでは、全くでてこないので、実はインストールの後には 翌日のワークショップに関連付けられる何かをやった方がいいのかなぁ。

ワークショップでは、お菓子はガトーハラダのラスク、お昼は鳥めし、更にお昼時間に抜け出して買ってきた群馬名物 焼きまんじゅう!!! と、群馬グルメを満喫した。
もうお腹いっぱいのワークショップだったw

 オーガナイザーの近藤さん、スタッフ、コーチの皆さん、お疲れ様でした!

Takasaki's Night

 インストールデイの後に、satomicchy と一緒にご飯を食べにでかけたら、コーチ参加していたご夫妻を発見。
近くのお店に入ろう~と行ったら、既に営業が終わりの張り紙...
他のお店に電話したらいっぱいとのこと...

ちょっと遠くなるけれど、気になってた日本酒のお店に連絡したところ、入れるとのことで行ってみたら... 路地の奥でちょっとわかりにくい場所... でも、見つけてしまった!!!

2000円でいいよ~と言って、4人の前にこれを並べられる...



これ以外にも惣誉のぬる燗が出たり、店主のまるさんと盛り上がり、「ちょっとだけ残ってるから持って帰っていいよ」と、なぜか全員一升瓶を抱えて帰ることに..

高崎の夜は最高だった。

2017-06-14

第414回 Asakusa.rb

弊社開催でした。

RubyKaigiのCFPが今週末締め切りということで、そこらへんの話などをした。

という私も 頑張って submitしないと。

既にEarly Birldチケットが発売されているわけだけど、まだあるのかな?

「広島遠いのかな」
「まぁ、京都の先ですからねぇ~」
「え?広島って遠いんですか?」
「ここ(Asakusa.rb)で聞いたのが間違いでした」

という会話をしたりしました。

※今日調べたら、札幌から電車だと 12時間以上かかる...アメリカ行けるじゃない。

2017-04-22

Rails Girls Tokyo, More! (第31回)

今日は、第31回 Rails Girls Tokyo, More! 。
会場は、東銀座駅から近い、みんなのウェディングさんでした。

初めての訪問で、まず驚いたのはお借りした会議スペースに
種類の異なるストレッチ/筋トレマシンが6台もある!!!

会社で気分転換にストレッチ/筋トレをしたくて、会社の忘年会のビンゴ景品に
フラットベンチを希望した私としては、羨ましい環境でした。


More! の方は、今日はコーチの方も多く参加して頂けたので、
先月のTokyo 7th の参加者の方、いつもの参加者の方と、
マンツーマンでできたので、よかった!
その間、Tokyo のissue を片付けたり、予定しているところの進捗聞いてみたりしていたのでした。


そして、今日は誕生日だったので、みんなにお祝い頂きました!
改めて、ありがとうございます!!!
(気を使わせてしまったようで、申し訳ない...)





東銀座だったので、「久しぶりにナイルレストラン行ってみよう〜」と思っていたら、
心の声がダダ漏れていて、「いいこと思いついた〜♪」と声に出してましたw
残っていた8名で、ナイルレストランへ。

夜だけど、「ムルギーランチ」食べてきました。美味しかった!




2017-01-31

火傷をした


昨日、出かけるのでマイボトルに紅茶を入れてた時に、中蓋が緩んでいる気がして(中蓋は上からただ乗せるタイプ)、上から人差し指でぐっと押し込んだら、中蓋がボトルの中に落ち込み、押していた人差し指がボトルにダイブ…。そして熱い紅茶が吹き出して、火傷してしまった。

右手の手首から、親指あたりにかけて、みるみる赤くなったので、慌てて流水で暫く冷却…。


昨日は、Rails Girls Tokyo, More!を自社で開催する日だったので、痛みが引いたくらいに出かけたのだけど、会社に着く頃には、ビリビリしてきて、会社の冷凍庫にあった保冷剤を養生テープで止めて、過ごしていた…。

今日は触ると、少し違和感があるくらいになったけれど、火傷したところがまだらになっている...。


幼稚園の頃に、炒飯についてくる中華スープで腕を火傷した時(親の言うことを聞かずに、炒飯食べたさに手を出した結果デス)、母が毎週自転車の後ろに乗せて、医者に連れて行ってくれたのを思い出した。腕に跡が残らないか、母がすごく心配していて、外で包帯は外さないように、包帯を外す時には、跡が残っていないかを入念に調べてたな。

水ぶくれにもならなかったし、このまま自然治癒で跡も残らなければよいけれど。


2017-01-23

私学女子校の教育理念を調べてみた

'女子力'のツイートで、私学の女子校ならいざ知らず~とあって、
私学の女子校(中高大)育ちとしてはモヤっとして、色々な女子校の校訓とかを一部調べてみた。
校訓がない学校は、教育理念等をあげてみた。


桜蔭中学校・高等学校
勤勉 ・温雅 ・聡明であれ。
責任を重んじ、礼儀を厚くし、よき社会人であれ。

女子学院中学校・高等学校
HPトップに Bible Verse for the Year 2016 として、以下が記載されていた。
 狭き門から入りなさい  マタイによる福音書 第7章13節

雙葉中学校・高等学校(雙葉学園)
徳に於ては純真に 義務に於ては堅実に

白百合学園中学高等学校
従順:真の自由を生きるよろこび
勤勉:能力をみがき役立てるよろこび
愛徳:互いに大切にし合うよろこび

共立女子中学高等学校
誠実、勤勉、友愛

大妻中学高等学校
恥を知れ

山脇学園中学校・高等学校
校訓は見つからず。
建学の精神は、「女性の本質を磨き、いつの時代にも適応できる教養高き女性の育成」とある。

フェリス女学院中学校・高等学校
教育理念は、以下。
For Others

東洋英和女学院 中学部・高等部
学院標語として、以下。
敬神:心をつくし、精神を尽くし、思いを尽くし、力を尽くして、あなたの神である主を愛しなさい。 マルコによる福音書 12章30節
奉仕:隣人を自分のように愛しなさい。 マルコによる福音書 12章31節

東京女学館中学校・高等学校
教育目標は、以下。
高い品性を備え、人と社会に貢献する女性の育成

跡見学園中学校高等学校
教育理念は、以下。
知性をみがき、情操を養う
すこやかな身体と合理的精神を養う
共生する心を育む
自律し自立する女性の育成

実践女子学園中学校・高等学校
建学の精神は、以下。
品格・高雅・自律・自営


そもそも女子校は、自立できる女性のための教育、聡明さを理念にしているところが多い印象で、「古くからある性差別から自立するため」にあると思うのよね。


あと、「女子力」って言葉自体が、「聡明さ」が感じられなくて、残念すぎる。

2017-01-09

GitHubの2段階認証でログインできなくなった

年末、携帯の機種変更をして、
N501i時代から使っているガラケーの回線をスマフォに、スマフォ回線を解約したところ、
スマフォ回線が、GitHubの2段階認証のSMS通知先でした...

そして、リカバリコードも見当たらない...という事態。


新年早々やっちまったー と、かなり焦りました。

頼りになるGoogle先生に聞いてみたところ、日本語で見つかるのは、
「締め出しくらわないために」のやっておくこと。
私には、遅すぎる情報です...


後は、「締め出されたら諦めて、別アカウント作る」。
みんな、もっと頑張ろうよ...


調べてGitHub Supportに連絡して、2段階認証を解除してもらえたので、
私のような人のために、手順を残しておきます。


  • GitHubのSSH keyを以下のコマンドで確認する。

ssh -T git@github.com verify 
Please provide the following verification token to GitHub Support.
(SSH keyが表示される)

  • GitHub support のページから、2段階認証でログインできなくなったこと、tokenを送るので2段階認証を無効にしてもらいたいというお願いを送る。
  • Supportの方から、リカバリコードのファイルをコンピュータやバックアップ、メールから探してみてねとメールが届く。
    • リカバリコードのデフォルトファイル名(github-recovery-codes.txt か、github_2fa_recovery_codes.txt)も教えてくれて、とても親切!!!
  • 探したけどなかったから、tokenを確認して解除して欲しい旨の返信をする。
  • Supportの方から、「2段階認証解除したよ!」という連絡と、リカバリコードのダウンロード方法とかのモロモロの親切な情報が届く。

という手順で済みました。

GitHub Supportの方は、すぐ対応してくれて、素晴らしい!!!


皆さんは、こういうことのないように、事前にリカバリコードファイルをダウンロード忘れずに!