Rails Follow-up Osaka #12を開催した
rails-follow-up-osaka.doorkeeper.jp
会場提供は株式会社エイチームさんでしたーヽ(´▽`)/
ありがとうございましたっ!
チームにjoinしたての方が環境構築に手間取っていたのでサポートできた。
具体的にはRMagickのインストールに失敗していた。
なんだかImageMagickのバージョン6でないとダメみたい。
なので、Homebrewでバージョン6をインストールした。
$ brew install imagemagick@6
しかし、ImageMagickなんてないと怒られる、、
brew infoを見るとconfigのパスを通せと言っているので
$ echo 'export PKG_CONFIG_PATH=/usr/local/opt/imagemagick@6/lib/pkgconfig' >> ~/.bash_profile $ echo 'export PATH="/usr/local/opt/imagemagick@6/bin:$PATH"' >> ~/.bash_profile $ brew link --force imagemagick@6
無事インストールすることができた。
今後、同じように環境構築でハマらないようにドキュメントにおこしておこうってアドバイスしました。
その後、全員で懇親会へ
楽しかったーヘ(^o^)ノ
神戸.rb Meetup #64 へ参加した ヘ(^o^)ノ
参加してきたメモ
ちょっとできるエンジニアが1人で色々やってもあんまり会社としてもメリットないよってお話
他のメンバーと一緒に階段を1段ずつ登っていかないとダメだよねってお話 できるエンジニアがいなくなると何も残らなくなってしまう、、
成果をちゃんと計測しようねってお話
試したい事があったらぱっと作って、成果を計測するようにしようってお話
Dokcerのお話
Dokcerの導入事例もいいけど、保守や運用事例が欲しいなってお話
Webフロントエンド ハイパフォーマンス チューニングどうよ?ってお話
- 作者: 久保田光則
- 出版社/メーカー: 技術評論社
- 発売日: 2017/05/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
HTTP2.0っていいよってお話
React のお話
Componentからif文をなくしちゃえーって話とPromiseの使い方を話した
Shinosaka.rbの資料を作成した
2ページしかできなかった、、
責任を譲渡することの大切さのお話
ある程度まかせることで人は成長できるというお話
泉州水ナスは美味しいというお話
美味しかった
JWTのお話
JSON Web Tokenだよー WebとMobileアプリに対応してるよー(Backendは1つでOK)ってお話 マイクロサービスには向いてるかもってお話
フロントエンドのエラー通知
GraphQLのお話
今週末にShinosaka.rbでテーマとしてイベントするけど、Kobe.rbでサーバーレスなGraphQLをお話しようかという
Shinosaka.rbの飲み代のお話
今日の懇親会は3,000円だった、なぜShinosaka.rbは飲み代が高いのかってお話
HUAWEI P10のライカカメラはすごいって話
カメラに詳しくないので僕はわからなかったが、詳しい人がみるとまぁまぁすごいらしい
TDD
FeatureテストもTDDでかくべき(バックエンドはstubで)ってお話
Getting started with Mastodon ヘ(^o^)ノ
Today, I attended this event.
But I failed to setup Mastodon.
The reason for the failure was a bug in cld3-ruby.
Fortunately this bug was fixed.
Setup for macOS
$ gem install foreman $ brew install protobuf redis $ git clone git@github.com:tootsuite/mastodon.git $ cd mastodon $ bundle install --with development $ yarn install --pure-lockfile $ bundle exec rails db:setup $ redis-server /usr/local/etc/redis.conf $ foreman start
Enjoy Mastodon ٩( ‘ω’ )و
Kunibiki.rb #3に参加したヘ(^o^)ノ
発表内容
Railsアプリ開発者のためのDocker入門 by セラリンさん
rails + reactでアプリ作成 by 吉岡さん
React, Vue.jsなどフロント回りのお話でしたー
参考資料
めんどくさがりの僕はフロントエンドとバックエンドを分けて運用もシンプルにしたい!ってお話をした by ぼく
TDDBC Toyamaに参加してきたー by えびちゃん
参考資料
松江オープンソースラボ
懇親会
Rubyやフロントエンド、Dockerなど面白いお話が沢山できましたー
懇親会も美味しいお魚とお酒が最高だったよ
ローカルネタなど楽しかったなー
また機会があれば参加しますん(^^)
Ruby Kaigi 2017でまたお会いしましょうー
I love CODE ヘ(^o^)ノ
Tmuxを使ってプロジェクトの開発環境をいっぱつで起動するヘ(^o^)ノ
一つのプロジェクトで複数のタブを開いて作業したりしませんか?
Rubyのアプリケーションであれば foreman を使ったりするかもしれませんが、、
Shinosaka.rbで今回のテーマにぴったりなプロジェクトがあるのでそいつを使って試してみます。
まずは セッションを作成してみましょう。
$ echo "SESSION_NAME=tebukuro" >> bin/tmux_launch.sh $ echo "tmux new-session -d -s \$SESSION_NAME" >> bin/tmux_launch.sh
実行権限をつけてあげます。
$ chmod u+x bin/tmux_launch.sh
スクリプトを実行してattachしてみましょう
$ sh bin/tmux_launch.sh $ tmux attach -t tebukuro
tebukuroというsessionにattachできました。
exit
で tumuxを閉じましょう。
tebukuroは同じリポジトリにbackend(rails)とfrontend(Koa)が混在してます。
server
という名前のwindowを作成し、スプリットしたwindow上で実行してみましょう。
windowを作成します。
$ echo "tmux new-window -t \$SESSION_NAME -n 'server'" >> bin/tmux_launch.sh
作成したwindow上でRailsを起動してみます。
$ echo "tmux send-keys 'bundle; bin/rake db:migrate; bin/rails s' C-m" >> bin/tmux_launch.sh $ sh bin/tmux_launch.sh $ tmux attach -t tebukuro
Railsが無事起動しました。
次はfrontendですがwindowをスプリットしてKoaを起動してみましょう。
$ echo "tmux split-window -h" >> bin/tmux_launch.sh $ echo "tmux send-keys 'yarn; yarn start' C-m" >> bin/tmux_launch.sh $ sh bin/tmux_launch.sh $ tmux attach -t tebukuro
Koaも起動しました。
最後にattachも追加しましょう。
$ echo "tmux attach -t \$SESSION_NAME"
せっかくなのでこの修正をPRしました。(mergeされるかどうかわかりませんが、、)
Happy Hacking٩( ‘ω’ )و
Destructuring Object in ES6
often use
const props = { label: 'label', text: 'text' } const { label, text } = props console.log(label) #=> 'label' console.log(text) #=> 'text'
default value
const props = { label: 'label' } const { label, text = 'text' } = props console.log(label) #=> 'label' console.log(text) #=> 'text'
alias
const props = { label: 'label', text: 'text' } const { label: l, text: t } = props console.log(l) #=> 'label' console.log(t) #=> 'text'
others
const props = { label: 'label', text: 'text', required: true, visible: true } const { label, text, options } = props console.log(label) #=> 'label' console.log(text) #=> 'text' console.log(options) #=> {required: true, visible: true}
Happy Hacking٩( ‘ω’ )و
Jestでcontextを使うヘ(^o^)ノ
Environment
Jest 18.1.0
Jestでは context
が使えません、、
なので、使えるようにしてみましょう。
とはいっても、contextはdescribeのエイリアスです。
global変数を定義してみましょうヘ(^o^)ノ
// setupTestFramework.js
global.context = describe
このsetupファイルをテストを実行前にloadします
// package.json "jest": { "setupTestFrameworkScriptFile": "./setupTestFramework" }
// App.spec.js import React from 'react' import renderer from 'react-test-renderer' import App from '../../client/components/App' describe('<App />', () => { let tree context("when naem is 'Jest'", () => { const component = renderer.create( <App name='Jest' /> ) it("should display 'Hello Jest'", () => { tree = component.toJSON() expect(tree).toMatchSnapshot() }) }) })
$ yarn test PASS __tests__/components/App.spec.js <App /> when naem is 'Jest' ✓ should display 'Hello Jest' (4ms) when naem is 'React' ✓ should display 'Hello Jest' (1ms) Test Suites: 1 passed, 1 total Tests: 2 passed, 2 total Snapshots: 2 passed, 2 total Time: 1.164s Ran all test suites.
contextが使えるようになりましたー
Happy Hacking٩( ‘ω’ )و