Ruby で条件式として XOR(eXclusive OR;排他的論理和)演算を書く必要ができた。 えっと,xor なんて演算子あったっけ?と思ったら無かった。 そうか,じゃあ &&, || があるんだから ^^ かな? 見たことないけど。と思ったらこれも無かった。 ええーっ!! 無いんかい。 め,めどい。 えっと,eq1, eq2 を何らかの式とする。評価値を論理値として使い,
Ruby で条件式として XOR(eXclusive OR;排他的論理和)演算を書く必要ができた。 えっと,xor なんて演算子あったっけ?と思ったら無かった。 そうか,じゃあ &&, || があるんだから ^^ かな? 見たことないけど。と思ったらこれも無かった。 ええーっ!! 無いんかい。 め,めどい。 えっと,eq1, eq2 を何らかの式とする。評価値を論理値として使い,
Caution この記事はDHHファンの妄想によるシナリオが多分に含まれます。 というかほとんどです。 成り立ちが間違ってることも当然あるように思うので話半分で読んでください。 これは一体 最近のRailsフロントエンドやDHHの活動には一連の流れがあるわけですが、一部トレンドに沿ってない部分がある故にそれが汲めないというところがあるのではと思います。 それらの流れを記憶が定かなうちにつないで記録しておこうという記事です。 前提知識 Railsの生みの親、Rubyist Basecamp(社) DHHがCTOやってる会社 Basecamp(サービス) Basecamp(社)が開発してるプロジェクト管理ツール Trixを開発してたある日 Basecamp(サービス)に組み込まれてるリッチテキストエディタのtrixをcustomElements使って開発してたある日、DHHはあることに気づく。
Ruby Advent Calendar 2019 1日目の記事になります。 本記事では Ruby 2.7 で実装される Numbered parameter っぽい機能をピュアRuby で実装してみたいと思います。 またこの記事の実装は以下の記事を参考にして書いています。 Rubyのブロックつらい問題を解決する暗黙のブロックパラメータ - Qiita 4年以上前にこういうのが書かれていたのすごい。 Numbered parameter とは Numbered parameter、略してナンパラです。 ナンパラは『暗黙的にブロックの引数を参照する構文』になります。 通常ブロックで引数を受け取る場合、仮引数を定義して受け取ります。 # it という名前の仮引数を定義して、それで引数を参照する [1, 2, 3].map { |it| it.to_s + it.to_s } # => ["11
RDSをSSHトンネルしてRailsのDBに指定した時にハマった時のメモ。 セキュリティを考慮して、RDSは同じVPC内からしか接続できない(publicにしない)設定をし、 VPC内のEC2サーバを経由して指定したIPからだけSSHで接続できるようにした(SSHトンネル)。 ここまでは、下記URLの通りやったらすんなりできた。 http://chxo.com/be2/20040511_5667.html https://blog.cloudpack.jp/2014/12/16/connect-to-amazon-rds-mysql-in-vpc-with-ssh-portforward/ ローカルの3307ポートにフォワードしているので、下記のmysqlコマンドで接続を確認して、
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 3行まとめ Twilioなら、自分だけの電話番号を簡単取得。 SMS受信のタイミングで任意のAPIをキックしてくれます。送信者の情報も取得できるので、それを用いて認証機能を実現。 コストは1通(1認証)あたり1円!(ただし最初にチャージが必要なので初期投資2000円から) 概要 SMS認証とは ユーザ登録を行うメディアにおいて、 不正なユーザ(いわゆる複アカなど)の防止策として有効な対策の一つです。 例えばこちら等。 FullCourt https://www.fullcourt.co/ja/docs/samplecode/smsaut
2016-12-10T11:53:08.561Z 6452 TID-ovouhwvm4 INFO: Loading Schedule 2016-12-10T11:53:08.561Z 6452 TID-ovouhwvm4 INFO: Scheduling HelloWorld {"cron"=>"0 * * * * *", "class"=>"HelloWorld"} 2016-12-10T11:53:08.562Z 6452 TID-ovouhwvm4 INFO: Schedules Loaded 2016-12-10T11:54:00.212Z 6452 TID-ovoulivew HelloWorld JID-b35f36a562733fcc5e58444d INFO: start Hello world 2016-12-10T11:54:00.213Z 6452 TID-ovoul
Rails 6に上げると”DEPRECATION WARNING: Initialization autoloaded the constants ActionText::ContentHelper, and ActionText::TagHelper.”のような警告が出るRubyRails 2021-2-18追記:新しく記事を書き直しました この警告に対処する最新の知見を以下のページに書き直しました。 今後はこちらのページを参照してください。 【Rails】Initialization autoloaded the constants ActionText::ContentHelper and ActionText::TagHelper 警告の解決パターン - Qiita ここから下の内容はRails 6.0リリース当初に書いた古い知見なので、これを参考にするのは筆者として推奨しません。
Cognitoとは この記事が一番わかりやすかった。 http://qiita.com/imaifactory/items/b66cdf91118e3be6fe17 前提 test.png がおいてある ARN(arn:aws:iam::00000000000:role/Cognito_photo1Auth_DefaultRole)にS3の操作権限を設定してある { "Version": "2012-10-17", "Statement": [{ "Action": [ "mobileanalytics:PutEvents", "cognito-sync:*", "s3:*" ], "Effect": "Allow", "Resource": [ "*" ] }] } require 'aws-sdk' # Cognitoクライアントを作成する cognito_identity = Aws
ユーザー認証周りのAPIを作っていたのですが、その中でJWTの仕組みを使いました。使い方はシンプルで分かりやすく比較的簡単にセキュリティ向上を見込めると感じたのですが、日本語の資料がまだ少なく敷居が高い印象でした。使ってみたら予想以上に便利だったのでメモを共有します。 間違いなどありましたら指摘お願いします。 JWT概要 JWTは「Json Web Token」の略 JWTはjsonをトークン化する仕組み 改ざん出来ないjsonと思ってもらえればOK Signed JWT JWTがサポートしている署名アルゴリズム HMAC : 共通鍵方式 RSA : 公開鍵方式 ECDSA : 楕円曲線暗号(あまり使われ得ていない) 運用 秘密鍵と公開鍵を作っておく 送りたいデータを秘密鍵でエンコードし、レスポンスとして返す 帰ってきたJWTをセッションに保存 受信側は公開鍵を使ってトークンをデコードし、
はじめに RailsログをJSON形式にしたいだけなんですが、解決方法が意外とめんどくさかったので、ググってたどり着いた誰かのためにメモを残しておきます。 「Railsログ JSON」で雑にググるとlogrageというgemをいれるとよさそうな感じです。 https://github.com/roidrage/lograge gem入れるだけでバーンといいかんじのJSONになることを期待したのですが、以下の記事に書いてあるとおり、このgemはコントローラのアクセスログや例外しかJSON形式で出ません。 https://qiita.com/amanekey/items/b921ef73d871dac299eb おもむろに Rails.logger.info("foo") とかしてもJSONにならなくてそのまま出力されちゃう。 つまりこんなかんじ。 {"method":"GET","path"
この記事は クラウドワークスアドベントカレンダー2019 12日目の記事です。 概要 こんにちは、怒り駆動リファクタリングを生業としている @MinoDriven です。 弊社リファクタリング専門チーム「バグハンター」で現在実施中のリファクタリング設計について紹介致します。 ドメイン駆動設計 を用い、Railsレガシーコードに対しViewとControllerを ActiveRecord非依存 に変更する設計です。 状況 弊社ブログの過去エントリにあるように、弊社サービスcrowdworks.jpはサービスインから8年経過し、 30万行 を超えるモノリシックRailsアプリになっています。 開発生産性が低下してきています 。 生産性低下の課題を解決しようにも、大規模な上に複雑かつ密結合な構造になっており、 マイクロサービスへの移行も、リプレイスも困難な制約 があります。 そこで半年前にリフ
AASM - Ruby state machines ここを参考にしました。 https://github.com/aasm/aasm/blob/master/README.md https://github.com/aasm/aasm/blob/master/CHANGELOG.md ※2014年に本記事を投稿してから、細々と継続的にアクセスがあるようです。AASMの仕様は投稿当時と最新版でもそれほど変わっていないようですが、ご利用にあたっては必ず上記GitHubのREADMEとCHANELOGの確認をお願いします。 概要 AASMはRubyのclassに有限オートマトンを追加するライブラリ。2014年10月現在でも精力的に開発が進められている。以下の内容は gem version ~~~3.4.0~~~ 4.9.0 に準拠する。 http://techblog.heartrails.c
AngularとRailsを組み合わせてみる 前回の記事ではAngular+NestJSの組み合わせについてピックアップをしましたが、今回はRuby on Rails5とAngular8の組み合わせでwebアプリを作成している記事があり、読んでいてとても面白い内容だったので翻訳に挑戦しました! どちらも個人的に気に入っているフレームワークなので、世の中にこの組み合わせでの開発が増えてくると嬉しいです。 Angular8とRails5 (*以下記事の翻訳) あたなはどうか知らないが、学びやすく、素早く書けて、オープンソースという理由で私はRuby on Railsが大好きだ。また、Ivyというクールな新しいレンダーエンジンを導入したAngularの新バージョン、Angular8のリリースにもワクワクしている。 もしあなたが私と同じでこれら2つのフレームワークに関する興味をわかってくれて、でも
これはなに? トレタのAPIでは、電話番号の正規化をするのにcountries gemを使用しています。countries gemを利用することで各国の情報(国、通貨、電話番号など)が取得できるようになります。 しかし、一部電話番号周りで正しくデータが入ってない箇所があったので、libphonenumberベースのgemであるphonelibに置き換えるために調査をしたメモです。 libphonenumberとは? https://github.com/googlei18n/libphonenumber 電話番号のパースやフォーマット、バリデートができるライブラリ C+、Java、JavaScript用 googleが作成、保守している countries gemを使ってるのになぜlibphonenumberが必要だったのか? countries gemを利用すれば基本的に問題がないのです
サイトメンテナンス時には HTTP 503 Service Unavailable を返すようにするのが SEO の観点から好ましいです。 設定を行う箇所として、ロードバランサ、Rails アプリ、Web サーバなど色々な選択肢が考えられますが、今回は「環境変数のみを用いて設定変更を可能にする方法」を説明します。 背景 「新機能デプロイ時、メンテナンスモードに切り替えたいんだけど、そんな手間のかかることはしたくなくて、社内の IP から以外は全部 503 返したいだけなんだよなー。あと、アプリエンジニアだけで完結させたいなー」 メリット システム構成次第なところもありますが、環境変数 の変更はロードバランサ、Rails アプリ、Web サーバの設定変更に比べ、非常に手間が少ないです。 例えば、AWS OpsWorks ではブラウザ上から簡単に環境変数の変更、デプロイによる反映が行なえ、もの
warning Integrity check: System parameters don't match error Integrity check failed error Found 1 errors. ======================================== Your Yarn packages are out of date! Please run `yarn install --check-files` to update. ======================================== To disable this check, please change `check_yarn_integrity` to `false` in your webpacker config file (config/webpacker.yml).
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く