Rails 環境別の設定ごと secrets.yml -> credentialへ移行

こんにちは。MUGENUPの林です。 私の担当サービスは、かつてRails 5.1以下を使っていた名残で、secrets.ymlで秘密情報を管理していました。 ※現在の バージョンは 5.2.3 です。 secrets.ymlとdatabase.ymlが手動管理ということは、変更漏れによるエラーが発…

新規に立ち上げるプロジェクトにWebpackじゃなくてParcelにした理由

お疲れ様です。MUGENUP エンジニアの崔です。今回は新規プロジェクトサービスを立ち上げる時にフロントエンドの構成でWebpackじゃなくてParcelにした理由に対して話します。 フロントエンドの話 新規プロジェクトのフロントエンドはVueにするように決まってV…

DiveでDockerイメージを覗いてサイズを減らす方法

お疲れ様です。MUGENUP エンジニアの崔です。今回はDiveというツールを使ってDockerイメージの中身を見る方法を紹介しようと思います。 なぜ必要? イメージを作るときにCentOSやDebianのイメージ自体も300から600メガになるし、パッケージを設置したり、重…

CTO Night and Day 2019備忘録

今年初めての参加となりました。 MUGENUPの前島です。 CTO nightとは Day 1 CTOのためのamazon カルチャー keynote Unconference CTO MidNight!!! Day 2 まとめ CTO nightとは AWSが主催する日本のベンチャー企業CTOが一堂に介し、各セッションやディスカ…

AWS AuroraをR3(旧世代)からR5(新世代)に安全に変更する方法

皆さん。こんにちは。MUGENUP エンジニアの崔です。 今回は、AWS AuroraをR3(旧世代)からR5(新世代)に安全に変更する方法をまとめてみました。 AWS Aurora Amazon Aurora は、MySQL および PostgreSQL と互換性のあるクラウド向けのリレーショナルデータ…

SavePoint の動き方 (テナント編)

皆さん。こんにちは。MUGENUP の osada です。 5月14日(木) に SavePoint(セーブポイント) という新サービスをリリースしました。 Save Point(セーブポイント) | クリエイティブに「安心」と「効率」をwww.savept.com MUGENUP がクラウドソーシングで培った…

ActiveJob から見るシリアライズとデシリアライズ

皆さん、こんにちは。プルリクで間違った指摘をして大反省中 の osada です。 プルリクで間違った指摘をして大反省中です。 下記のコードで、何を指摘したか、お分かりになるでしょうか? class NotificationJob < ActiveJob::Base queue_as :default def pe…

bower に table のカラムの表示/非表示を自由に選べるライブラリを追加してみた

皆さん。こんにちは。MUGENUP のosadaです。 電車を降りようとしたら、スマホを線路に落としました! 駅員さんにお願いして取っていただいたところ、 なんと画面が割れることもなく無事でした!ラッキー! そんな運が良い osada がお送りする今回は、bower …

【Rails】Scaffoldされたコントローラを読んでみる

こんにちは、MUGENUPの倉成です。 僕はRailsを使い始めてあと少しで丸2年になるのですが、初めの頃は覚えることがたくさんあって、とても大変だった記憶があります。 今回はそんな中でも、Railsで初めてWebプログラミングをする人向けに、コントローラのアク…

enctype='multipart/form-data'ってなんだ?

こんにちは、MUGENUPアルバイトの倉成です。 今回は僕が前々から気になっていた、フォームからファイルを送信するときのおまじないenctype="multipart/form-data"について調べてみたので、得られた知識をまとめて見ようと思います。 また、マルチパートの情…

意外と簡単。HTML5のデスクトップ通知を実装してみる

こんにちは、MUGENUPの倉成です。 最近はWebアプリでもデスクトップ通知が出来るものが増えていますよね。 今日はそんなデスクトップ通知の実装を取り上げてみようと思います。 便利なライブラリ デスクトップ通知はブラウザによって実装が異なり、各ブラウ…

【Rails】after_createが発動するタイミングはいつでしょう?

MUGENUPの倉成です。 今回はRailsのCallbackであるafter_createとafter_commitの処理順番を改めて確認し、処理順番を誤解していた事によって僕が遭遇した問題ついて記事を書こうと思います。 シチュエーション ブログ記事の新規投稿があった時、購読者に対し…

初めてのVimプラグイン開発とMUGENUPエンジニアのエディタ事情

初めまして!MUGENUPアルバイトの倉成です。こちらで書く初めての記事として、今回は僕が初めて作ったVimプラグインとMUGENUPエンジニアのエディタ事情について紹介しようと思います。 僕自身はMUGENUPでアルバイトを始めてから、Emacs, SublimeText, RubyMi…

Yammer に投稿したLGTMな画像を、GitHub に POST する Chrome 拡張を作ってみた

皆さん、こんにちは。MUGENUP の osada です。 今回のテーマは、 Chrome 拡張を作ってみた JS の BLOB として、画像をダウンロードする GitHub 経由で、S3 に POST する の3点です。 読者ターゲットは、 画像は S3 に置きたいけど、管理はしたい 人や、 <input type="file"> を…

ruby は メソッドに return が不要なのではなく、元々そうなっているだけ

皆さん、こんにちは。MUGENUP の osada です。 いきなりですが、問題です。 def if_expression(flag) if flag "NG" else "OK" end end Ruby は 最後に評価された値が返る と言われていますね。 では、上記のメソッドで if_expression false の返り値は、何で…

RailsプロジェクトのRSpec3.0.0へのアップデート

皆さん、こんにちわ。MUGENUPの narikazu です。6月2日にRSpec 3.0.0がリリースされました(Myron Marston » RSpec 2.99.0 and 3.0.0 have been released!)。RSpec 3.0.0での変更点はMyron Marston » Notable Changes in RSpec 3あるいは、その日本語訳のRS…

【MySQL】`SELECT id FROM news ORDER BY published_at DESC` と `SELECT * FROM news ORDER BY published_at DESC` では結果が異なることについて

皆さん、こんにちは。 暖かくなってきたので Tシャツとサンダルで通勤しちゃったりする方、 MUGENUP の osada です。 服装に気を使わなくてよい(わけではないのですが)というのは、 エンジニアの利点の一つですよね。 さて、先日、こんな現象が持ち込まれま…

gem の内部を書き換える2つの方法 + おまけ(後から明示的に dependent: :destroy を止める方法 Rails3 限定)

皆さん、こんにちは。MUGENUP の osada です。 いきなりですが、 gem の内部を書き換えたい! と思ったことはありませんか? globalize というgem が、内部で has_many :translations, dependent: :destroy を実行するのですが、このdpendent: :destroyを止め…

「Qiitaの中の人とQiita:Teamを使う人と共に理想のチームについて考えてみませんか?」というイベントに出てきました

こんにちはMUGENUPの伊藤です。 2014年5月15日(木)に開催された「Qiitaの中の人とQiita:Teamを使う人と共に理想のチームについて考えてみませんか?」というイベントでQiita:Teamを使う人としてお話させていただきました。 MUGENUPでは昨年の夏頃からQiita…

ドメイン名を使ってEC2を運用していたら、ELBのスケールアウトで苦労した話

2014年5月14日 13時00分 修正 タイトルが誤解を招くものだったので、「なぜ URL に www を付けるのか。または、サブドメインなしでは CNAME が使えない件」から変更致しました。併せて、画像に Public IP と Private IP の明記を行いました。 皆さん、こんに…

【Rails3.2】【バッドノウハウ】includes 使用時に where で ドットを使うと想定外になるかも知れない件、または、なぜRails4 から references が必要になったのか

皆さん。お久しぶりです。MUGENUP の osada です。 某死にすぎるゲームの1周目をクリアしたので、戻ってまいりました! 目標を達成するために大事なことは観察力である、ということを思い知らされるゲームでした。 さてそんな今回は、Rails 3.2 の includes …

MUGENUP勉強会を開催しました!

こんにちは、MUGENUPの伊藤です。 今回は先日2/27日に開催した勉強会をまとめてみました! 当日は外部の方を6人お招きし、全部で12人での開催となりました。 開催までの流れ MUGENUPの開発部では隔週木曜日に勉強会を開催しています。 元々は少人数でそれぞ…

Rails 4.1 の spring で paralell_tests を使う方法

みなさん、こんにちは! 2週間ぶりのご無沙汰、MUGENUP の osada です。 ruby 2.1.0、Rails 4.1 で開発した、みなゲー編集部が正式リリースとなりました! よろしくお願いします。 さて、そんなRails 4.1の新機能として、プレローダーspringが標準装備となり…

【探検】Railsカラム更新のメソッド1

初めに 皆さん、初めまして。そして、明けましておめでとうございます。株式会社MUGENUP 開発部の奥田です。 今回、初めて技術ブログを書くことになりました。よろしくお願い致します。 何回かに分けてRailsのカラム更新メソッドについて書いていき、今回はu…

【拡張】論理和できるenumを書いてみた【gem】

新年あけましておめでとうございます! MUGENUP の osada です。 2014 年は挑戦の年、ということで、MUGENUP でも新しい事業を初めています。 ゲームライター・編集者募集中|みなゲー みんなで作るゲーマー向けの攻略サイト「みなゲー」。 その攻略記事を書…

【悲報】ActiveSupport::Concern の ClassMethod はモジュールメソッドになる件

皆さんこんにちは!「太鼓式マッサージ?面白そう!」と思ったら「タイ古式マッサージ」でした。MUGENUP の osada です。名前って難しいですよね。 ところで、ActiveSupport::Concern の ClassMethod で定義したクラス変数が、どこにあるか、ご存知ですか? …

シンボルでも文字列でもアクセス可能なHashを使おう!ActiveSupport {Hash編}

皆さんこんにちは!遅れてきた最年長ルーキー MUGENUP の osada です。 さて皆さんは初めてオープンクラスという概念を知った時、驚かれませんでしたか?私はとても驚きました!だって、基本クラスさえもオーバライド可能なんですよ? [コラム]オープンクラ…

最速で!最短で!真っ直ぐに!Facebookグループの書き込みを監視する方法!

皆さん、こんにちは!WAというと Web Application ではなく、RPGの方を思い出す MUGENUP の osada です。 いきなりの個人的な話で恐縮ですが、私が初めて書いたWeb Application はPHPでした。当時 Web というと、「SSI で include」したり、「perl で cgi」…

Startup Live! に登壇してきました

こんにちは、MUGENUP CTOの伊藤です。 12月1日の日曜日にリクルートキャリアアカデミーホールで開催された「Startup Live!」というイベントに、パネルディスカッションのパネラーとして登壇してきました。 Startup Live!ってなに? 開催概要についてはatndな…

should を捨て expect を使うようになった、たった一つの理由

皆さんこんにちは。スーパーのビニール袋は濡れタオルを触ってから開ける方、MUGENUP の osada です。 今回はexpect について調査したことを書きたいと思います。 ターゲットは、rspecが上手く書けなくて、気が付くと3時間もテストを書いている、というよう…