# mimemagicの最新動向 https://hackmd.io/@mametter/mimemagic-info-ja この文書は[ruby-jp Slack](https://ruby-j

はじめまして、2018年7月入社の sue445です。自称「フルスタックキュアエンジニア」です。最近はpixiv PAYのチームでRailsを書いたり社内gemを作ったりしています。 好きなプリキュアはキュアピースです。 前置き 先日Rails 5.2.1がリリースされました https://weblog.rubyonrails.org/2018/8/7/Rails-5-2-1-has-been-released/ pixiv PAYでもその対応を行っていて、先日本番環境にRails 5.2.1を投入しました 💪 ググると特定のバージョンでのアップデート方法はいろいろ見つかるのですが、どのバージョンでも使える汎用的な方法が意外になかったので紹介しようと思います。 Rails 4.1系以降はだいたいこの方法でアップデートしてきたのでそれなりに実績のある手法だと思います。 筆者スペック 初め
架電芸人エンジニア*1の西(id: kohtaro24)です。最近スマホをiPhoneからBlackBerry KeyOneに変えました。物理キーボードの重量感を楽しんでいます。 現在はRubyKaigi2018に参加するためはるばる仙台まで来ており、RubyKaigi2018の二日目に開催されたコード懇親会についてレポートしたいと思います。 コード懇親会 "コード"懇親会ですのでイベント概要もGithubリポジトリ上で公開されています。 github.com 以下の引用にあるように、コード懇親会はお酒ではなくコードを媒介して懇親することをコンセプトに設計されています。 スポンサーをSpeeeが努めさせていただき、クリアコードの須藤(@ktou)さんにイベントコンセプトやデザインをリードしていただきました。 Rubyは楽しくプログラミングできることを大事にしているプログラミング言語です。み
技術部開発基盤グループのシム(@shia)です。 最近は cookpad のメインレポジトリを開発しやすい環境に改善するために様々な試みをしています。 この記事ではその試みの一つとして不要な gem を検出し、削除した方法を紹介したいと思います。 背景 cookpad は10年以上にわたって運用されている巨大なウェブアプリケーションです。 巨大かつ古いアプリケーションには昔は使っていたが、現在は使われてない依存性などが技術負債として溜まっています。 事業的観点から技術的負債を完全返却するのはコストとのバランスが悪いことも多いです。 これは20万行を超えるプロジェクトを幾つも抱えている cookpad のメインレポジトリも例外ではなく、その規模から使ってないと思われる依存性を探しだすのも大変な状況でした。 どうするか 人が頑張るより機械に頑張らせたほうが楽ができるし、何より確実です。 ですの
ピクスタ開発部で毎日ヒィヒィ言いながらエンジニアをやっております @muramurasan です。 今回はPIXTAのとあるリポジトリにおいて、未使用のメソッドを削除しようとした際、gemを組み合わせることで、効率的かつ安全に削除することができたという話をしたいと思います。 よくやる方式 外部の勉強会などで、「未使用のメソッドを削除する際にどうしているか?」ということを聞いた際、よく聞くのが「未使用らしきコードを見つけ次第、ロギングを行うメソッド呼び出しを挟み込んでいく」というものでした。 この方式は、動的なメソッド呼び出しにも当然対応できますし、お手軽なので、一般的に好まれているようです。 問題点 ただし、この方式では以下の問題点があると私は考えています。 そもそも、未使用らしいメソッドを見つけるのが大変 プロダクションコードを汚してしまう これらの問題を解決するために、PIXTAでは
依存するgitリポジトリが数十あり、Mac上でしか動作しないビルドを動かしている、Jenkinsの移行をすることになった。 Jenkinsについては詳しくない。もちろん勉強すりゃいいという話なのだが、アラフォーで覚えが悪いので、今回は自前で簡単なCIサーバを書いてみました。今回のプロジェクトはRubyメインなので、Rubyで。 JenkinsはMovable Typeであり、Wordpressである 僕は、JenkinsをMovable Type/Wordpressのようなソフトウェアだと捉えています。 Movable Typeは「ブログ」というコンテンツ形式を広めたソフトウェアです。Wordpressは、Webの管理画面経由で簡単にプラグインを導入することができ、CMSとしてエコシステムが確立しています。 JenkinsのおかげでContinuous Integrationの概念は広まっ
本記事はRubyについて書かれたものではありますが、Python、JavaScript、Javaなど、全ての言語コミュニティに当てはまる事実を述べたものです。依存関係が引き起こす負の連鎖は誰のためにもなりません。 上の図は、私がこれまでに使用した全てのRailsアプリの依存関係を可視化したものです。以下の例はいずれも、どこかで聞いたことのあるものではないでしょうか。 何百ものエントリを含むGemfile 本番環境で読み込まれるテスト用Gem 数百メガバイトもRAMを食うRailsのプロセス Rubygemsシステムは、それを再利用する誰もが容易にRubyのパッケージを作ることができるという点で、賞賛に値するものです。しかし、その便利さが意味するところは、そうしたGemと他のGemを非常に安易に結び付け、さらにそれが、「インターネットでダウンロード」され、数百もの依存関係を持つRailsアプ
Ruby の HTTP クライアントライブラリ Faraday が便利そう Ruby の HTTP クライアントライブラリ Faraday が便利そう API ラッパの開発には RestClient gem だとか OAuth の必要なものは Net/HTTP + OAuth gem を使ってた Twitter gem や Instagram gem など API ライブラリのソースを読んでみると Faraday gem というものがよく使われてた なんとなく気になったので Faraday について調べてみた ついでに Tumblife gem を Faraday を使うようにした 以下そのメモ Faraday って何? Faraday is an HTTP client lib that provides a common interface over many adapters (su
こんにちは。会員事業部ビジネス開発グループの高田です。 クックパッドは今年、株主優待制度として、プレミアムサービス一年間無料クーポンを贈呈しました。本エントリではクーポンコードを打ち間違えて、意図せず他の人のクーポンコードを使用するのを防ぐために工夫した話をご紹介します。 はじめに クーポンコードは入力のしやすさを優先して数字だけの文字列にしました。はじめは rand 関数を使って生成しようとしていたのですが、数字の打ち間違えや順序間違いで、意図せず誤使用してしまうのを防ぐためにチェックサムを加えるのがいい、と同僚から助言をもらいました。 いくつか調べて見たところ、Luhn アルゴリズムが上記を満たしていたので利用することにしました。 Luhn アルゴリズムの利用 Luhn アルゴリズムとは、誤り検出のためのチェックサム符号で、1 桁の間違いや隣接する数字の順序間違いを検出できるという特徴
Opal Ruby to Javascript Compiler It is source-to-source, making it fast as a runtime. Opal includes a compiler (which can be run in any browser), a corelib and runtime implementation. The corelib/runtime is also very small. Opal Documentation opal.min.js opal-parser.min.js Use the CDN Opal is hosted on GitHub . You can join the community by chatting on Gitter at opal/opal or on Freenode IRC (chann
BUNDLED WITH って何? bundler 1.10.0 以降で作成された Gemfile.lock では、BUNDLED WITH というセクションがあって、使用された bundler のバージョンがトラックされるようになっている [3485] 。 例えば bundler 1.9.0 で作成された Gemfile.lock のあるプロジェクト上で、 最新の bundler 1.10.3 を使用して bundle install --path vendor/bundle すると、 Gemfile.lock には以下の差分ができる。 これをもう一度 1.9.0 で bundle install すると、上の文字はきれいさっぱり消える。 BUNDLED WITH の何が困るか 多人数で開発するときには、この変更は微妙に邪魔で、意図しない Gemfile.lock 変更が出てしまうことで
■ メール通知の代わりにPushbulletを使う 使っているサーバのちょっしたステータスが変わったのを知りたかったり、毎朝念のため数値を監視してるサービスなんかがあって、cronでメールを飛ばすようにしていたのだけど、見てすぐ捨てるものばかりなのでPushbulletで代替してしまうことにした。どうせ確認するのはスマホだし。 PushbulletのAPIはシンプルだけど、もっと楽するためにgemを探すといくつか見つかるが、pushbullet gemは作りがいまいち。個人的にはruby-pushbullet gemがいい感じだったのでこれを使うことに。といってもこんな程度(pushmeコマンド): require 'pushbullet' Pushbullet.api_token = 'MY_API_TOKEN' Pushbullet::Contact.me.push_note(ARGV
簡単なサンプルと解説を書いてみました. Yasuriでお手軽スクレイピング よろしければ使ってみてください>< Yasuri とは Yasuri (鑢) は簡単にWebスクレイピングを行うための、"Mechanize" をサポートするライブラリです. Yasuriは、スクレイピングにおける、よくある処理を簡単に記述することができます. 例えば、 ページ内の複数のリンクを開いて、各ページをスクレイピングした結果をHashで取得する ページ内の複数のテキストをスクレイピングし、名前をつけてHashにする ページ内に繰り返し出現するテーブルをそれぞれスクレイピングして、配列として取得する ページネーションで提供される各ページのうち、上位3つだけを順にスクレイピングする これらを簡単に実装することができます. 例 require 'yasuri' require 'mechanize' # Nod
スタートアップ界隈でのRuby on Rails利用率は割と高く感じる。 みんなが使っているから使う?それだけではないはず。なぜ使うのだろう。 railsの特徴を考える。 規約縛りの哲学 周辺gemのエコシステム webの進化への追従の速さ 規約縛りの哲学 Convention over Configurationてやつ。規約を決めて、それに沿えば、フレームワークに乗って素早く開発できるようになる。規約で縛ることでRailsに流れる哲学に従うことを強制化している。 外れると痛い目を見る。Railsに乗るということは電車に乗って簡単に遠くまで行けるということ。Railsから降りるということは電車からも降りるようなものだ。中途半端な理解で突き進むと線路からすぐに降りて歩くことになる。 スタートアップでRailsが採用される一番の理由は、 簡単に遠くまで行ける だと思う。ただ、そんなにうまい話は
はじめに これは ドリコムAdventCalendar の1日目です はじめに 1日目:ドリコムを支える中間ポイントシステム 一応自己紹介 プリキュアおじさん 嫁はキュアピース 開発の背景 ソーシャルゲームの歴史 中間ポイントについて 前受金と資金決済法について 有償ポイントと無償ポイント 複雑な売上計算 ドリコムの中間ポイントシステム(dpoint)について 自分の役割 重要なこと dpointが導入されているアプリ 課金フロー iTunesでの中間ポイント購入 GooglePlayでの中間ポイント購入 ポイント消費 dpointのリリースノート gemのボリューム date_discreterというgemを作りました どういうgem? 月の歯抜けを調べる 日の歯抜けを調べる 時間の歯抜けを調べる dpoint改修時のつらみ DBのスキーマ変更する場合は導入してるアプリ全部での影響を調べ
2014年12月にRuby 2.2がリリースされる予定です1。 Ruby 2.2にはRuby 1.9.1のときに外されたtest-unitというテスティングフレームワークが再びバンドルされる予定です。Rubyのテスティングフレームワーク周りに詳しくない人にはよくわからない状況でしょう。そこで、Rubyのテスティングフレームワークの歴史を説明することで状況を整理します。 名称の整理 この説明の中ではたくさんのテスティングフレームワークが登場します。似たようなものもあるため、最初にテスティングフレームワークの名称を整理します。この説明の中で登場する名称は次の通りです。 RubyUnit Lapidary rubyunit Test::Unit test/unit test-unit miniunit minitest RSpec 違いがわかりますか?ざっくり説明すると次の通りです。 RubyU
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 本当は、RubyWorld Conf辺りでこういう内容も交えてなんか話せればいいなあと思ってたんだけど、CFPに落ちたのでQiitaにポエムを書いてみました。 Railsはそれなりに学習コストはかかりますが、慣れてくるとデフォルトで便利なものが揃ってるしサードパーティライブラリも豊富で、未だに最も便利なWebアプリケーションフレームワークの一つだと思います。 なので、最近のスタートアップ界隈ではRailsで開発をスタートする、という話をよく耳にします。(個人の感想です) しかし、Railsは本体に新しい要素をガンガン取り入れてくるので、
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く