タケユー・ウェブ日報

Webシステム受託会社の業務の中での気づきや調べごとのメモ。

Ruby

Ruby で SSLサーバ証明書の内容を確認する

cert_content = <

Ruby による Amazon Personalize の使い方

AWSの機械学習レコメンデーションサービスである Amazon Personalize を案件で利用したのでSDKの使い方メモです。 Amazon Personalize aws.amazon.com Amazon Personalize は、機械学習の知識がなくても、簡単にレコメンデーションをアプリに組み込むことが…

Ruby で Firebase User を作成

動機 Firebase Auth を使ったWebアプリの Rails System Spec を書きたい フロントエンドで Firebase JavaScript SDK を使っているため、バックエンドでのstubでは書けない サンプルコード(一部抜粋) Google::Apis::IdentitytoolkitV3::IdentityToolkitServ…

aws-sdk-ruby で AWS CodeCommit の SSH キーを登録する

まとめ SSHキーペア生成は OpenSSL::PKey::RSA#generate を使う アップロードは Aws::IAM::Client#upload_ssh_public_key を使う 事の起こり 開発中のWebシステムでは、必要に応じてAWS上のリソースを生成しています。 CodeCommitへのコミットに使用するIAM…

Rais.env.development? みたいな文字列がその値か?真偽値をとれるやつを使いたい

こういうのです。 Rails.env.production? # Rails.env == "production" と同じ ActiveSupport::StringInquirer クラスを使います。 role = ActiveSupport::StringInquirer.new("admin") role.admin? #=> true ActiveSupport::StringInquirer activesupport/l…

ruby aws sdk v2 SimpleWorkFlow(Aws::SWF::Client)メモ

swf = Aws::SWF::Client.new 失敗したExecutionを取り出す WORKFLOW_DOMAIN = 'myworkflowdomain' resp = swf.list_closed_workflow_executions( domain: WORKFLOW_DOMAIN, start_time_filter: {oldest_date: 24.hours.ago}, close_status_filter: {status: …

Amazon Linux 2015.09 に capybara-webkit gem をインストールしてRubyでブラウジングする

Installing gems capybara-webkit gem gem入れるまでがツラい。→ AmazonLinux 2015.09 に Qt5 WebKit をインストール sudo ln -s /usr/lib64/qt5/bin/qmake /usr/bin/qmake sudo gem install capybara-webkit --no-ri --no-rdoc Building native extensions.…

Ruby AWS SDK v2 でS3の署名付きURLを発行する

Aws::S3::Presignerを使います。 基本 s3 = Aws::S3::Client.new signer = Aws::S3::Presigner.new(client: s3) signer.presigned_url(:get_object, bucket: 'your-bucket', key: 'path/to/object') URLの有効期限を設定する たとえば、購入者に向けてダウン…

クラスの属性は、クラスの特異クラスでattr_xxxxx

やりたいこと クラスごとに値をもたせたい サブクラスやスーパークラスに共有したくない こういうとき、クラスのインスタンス変数を使うわけですが、attr_accessorみたいにクラスマクロ的なの使ってわかりやすくしたいです。 答え クラスの特異クラスでattr_…

Amazon SNS + SQS な構成をAWS Ruby SDK V2で自動化する

Amazon SQSへのキューイングの際、直接SQSを使っても良いですが、SNSを使うと抽象度が高くなり捗ることもあります。 CloudWatchを使ってログを残すこともできますし、便利です。 http://dev.classmethod.jp/cloud/aws/sns-topic-should-be-placed-behind-sqs…

Aws::S3::Clientでリージョンをまたぐコピーをするときは、コピー先のリージョンを明示してやる。

たとえばダウンロード販売のコンテンツを置く場合など 長期間ホストするファイルの容量が大きい 頻繁なリージョン間転送(EC2など)は発生せず、インターネットへの転送がメイン そこまでダウンロード速度を要求しない こんなとき、S3バケットを価格の安いリ…

Amazon Cognito Identity でFacebookやTwitterログインの名寄せをしてみた

この記事はQiitaに書いた奴のコピーです。 AWS SDK for Ruby V2のCognitoIdentity::Clientクラスを使ってみました。 サンプルコード logins = { 'graph.facebook.com' => 'facebook_oauth2_access_token', 'api.twitter.com' => ['twitter_user_token', 'twi…

CarrierWave + TinyPNG によるお手軽画像最適化gem

CarrierWaveにTinyPNG APIによる画像最適化Processorを追加するgemを作りました。

S3 あるディレクトリ(プレフィクス)のオブジェクトを一括削除(AWS SDK for Ruby)

railsのaws-sdk gemを使ってs3のフォルダ(folder)を削除する 上記記事の方法はSDK v1のものなので。 削除対象のkeyのリスト作成回りとが非常にダサいですが、取り急ぎこんな感じでしょうか。 s3 = Aws::S3::Client.new pager = s3.list_objects(bucket: buck…

Elastic Transcoder ジョブをキャンセルする(AWS SDK for Ruby)

Elastic Transcoder ジョブをキャンセルする http://docs.aws.amazon.com/ja_jp/elastictranscoder/latest/developerguide/canceling-a-job.html ステータスがまだ [Submitted] になっているジョブをキャンセルできます。このステータスは、Elastic Transcod…

aws-flow-ruby でheartbeartを使ってタスクの進捗率を把握したり死活監視できるようにしておく

Amazon Simple Workflow Service (SWF) from Amazon Web Services Japan 実⾏行行時間の長いアクティビティのサポート ・定期的なハートビートの実⾏ というわけでその方法を調べたのでメモ。 default_task_heartbeat_timeout Activityクラスでハートビート…

AWS::SimpleWorkflow::Errors::ValidationException 1 validation error detected: Value '' at 'decisions.1.member.scheduleActivityTaskDecisionAttributes.activityType.version' failed to satisfy constraint: Member must have length greater than or equal to 1

[AWS SimpleWorkflow 400 0.470025 0 retries] respond_decision_task_completed(:decisions=>[{:decision_type=>"ScheduleActivityTask",:schedule_activity_task_decision_attributes=>{:activity_id=>"Activity7",:activity_type=>{:name=>"EncodeActivit…

aws-flow-ruby で失敗したタスクを失敗の種類に応じて繰り返す

SWFでタスクが実行できなかった場合はリトライ、エラーならそこで終了など、コントロールしたい。

Rails + Grape + Rspec でサブドメイン(constraints)のテストを行う時は integration_session.host= を使う

問題 Rails.application.routes.draw do constraints subdomain: /^api/ do mount Api::HogeApi => '/hoge' mount Api::FugaApi => '/fuga' end constraints subdomain: /^(?!api)/ do # non API routes end こんな感じのとき、Grapeのドキュメントにあるよ…

gemspecの依存先にGitHubのプライベートリポジトリを指定する

公開したくない(できない)gem同士の依存関係の処理方法についてメモ。 hoge_gem/hoge_gem.gemspec spec.add_runtime_dependency 'private_gem' hoge_gem/Gemfile source 'https://rubygems.org' gemspec gem 'private_gem', :git => 'https://xxxxxxxxxxxx…

RubyKaigi 2014 個人的メモ(2日目)

RubyKaigi2014へ入ってきた。せっかく3日も仕事もせず2万円のチケットを購入して参加したので、少しでも多くのことを身につけたいと思うので、印象深かった内容を書き出しておく。

RubyKaigi 2014 個人的メモ(1日目)

RubyKaigi2014へ入ってきた。せっかく3日も仕事もせず2万円のチケットを購入して参加したので、少しでも多くのことを身につけたいと思うので、印象深かった内容を書き出しておく。

Flow.js + S3 + Ruby で分割アップロード バックエンド実装メモ

Railsアプリでの大容量ファイルのアップロードのため、Flow.jsを使って分割アップロードを実装しました。その時の実装メモ。

Ginza.rb で IntelliJ IDEA を布教してきた話

Ginza.rb みんなmac + CUIでアウェー感すごかった。前回の挙手でわかってた。だからこそ、あえてやった。

Rails 4.1 + RequireJS + AngularJS で Single Page Application を作ってみるテスト

Rails 4.1 + RequireJS + AngularJS で Single Page Application を作ってみる

IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートデバッグ on Rails

リモートインタプリタ上でも簡単にデバッガを使用することができました。捗りますね。

IntelliJ IDEA 13.1 + Ruby plugin 6.5.0.20140314 DE リモートインタプリタ Rails開発

IDEA+Ruby pluginのリモートインタプリタ機能で、Windowsホスト上のIDEAで開発中のRubyプロジェクトを、仮想マシン上のRubyインタプリタで動作させたり、デバッグしたりできます。

Windows 8.1 で berkshelf 3.0 をインストール(dep-selector-libgecode問題)

Windows環境でBerkshelf3をインストールしようとして嵌まったもののなんとかうまくいきました。

AWS::ElasticTranscoder::Client

クラウドメディア変換サービスのAPIクライアントライブラリの利用サンプル。

faker

# Faker Perlの`Data::Faker`ライブラリのように偽データを生成します。