Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
 
      
  
 
  
  この記事は Heroku Advent Calendar 2015 の 23 日目の記事です。 はじめに HerokuからSalesforceのオブジェクトのデータを取りに行きたい場合、どうしますか? Heroku Connectという選択肢がぱっと浮かびますよね? 今回のAdvent Calendarでも取り扱った記事がちらほらあります。 Heroku Connectの注意点 Heroku Connect についてのあれこれ Heroku Connectを使うとPostgreSQLからsalesforceのデータが拾えるからめっちゃ便利ですよね。 特に小細工とか必要ないですよね? という訳でもうお開きにしていいですか。 いいわけ無いですか、そうですか。。 Databasedotcom(gem) 以下の条件でデータを取得したい場合があったとします。 Herokuからsalesforceにデ
 
      
  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? この記事は Crystal Advent Calendar 2015 、 12/25 の記事であり、『なんかリリースする』という淡い夢は叶わなかった記事です。 Crystal との1年 Crystal と僕が出会ったのが 6/7 のことで、いろいろ見ていて勉強会がしたくなったので Tweet をしたのが始まりでした(ちなみにこの時点で1行も Crystal は書いてない) http://t.co/umxUAFWY7K の勉強会したいんですけど有志いませんか — ハト先生 (@rosylilly) 2015, 6月 7 当時の Cryst
 
      
  (メモ。詳しくはあとで追記するかも。) "foo" "bar" の文字列連結ができない "foo" + "bar" を使う。 defined?(Foo)がエラーになる const_defined?(:Foo)を使う。 mrubyにdefined?(Foo)が実装されていない理由は、Fooが未定義でもエラーにさせないために特殊な実行が行われており、それを嫌ったためだったはず。 :"foo#{a}bar#{b}"形式のSymbol定義がエラーになる "foo#{a}bar#{b}".to_symを使う。 $:等の変数がない $LOAD_PATH等はあったりするのでこちらを使う。 RUBY_PATCHLEVEL等の定数がない 適当に定義して回避する? なお、2016年現在のmrubyにはパッチレベルの概念がない。github:mruby/mrubyのmasterとmruby forumのリリース
 
      
  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Rubyのスレッド周りを追ってみた。 最も効率が良いスレッドモデルは結論出ないんじゃないかと(物理的な環境、何を実装するか、性能以外の面でメンテナの問題とか)。 Ruby1.8系 「グリーンスレッド」 Ruby1.8ではOSではなくて仮想マシン(VM)上で実装されたマルチスレッドシステムを採用した。 これを「グリーンスレッド」という。カーネルでスレッドがサポートされていなくても動作する。 つまり、OSに依存せずにマルチスレッドを実現する。 メリット スレッドの起動、並列化の性能 Linux のネイティブスレッドの性能を上回る。つまり、ネ
 
      
  現在、ruby kaigi2016が京都で開催中ですね。ということで、rubyを超高速でインストールする方法を紹介します。 インストールの高速化シリーズ第2弾です。(第1弾はこちら→ Nodebrewを使ってNode.jsを超高速にインストールする方法) Rubyをインストールするのに時間がかかるのは、コンパイルに時間がかかるためです。 Vagrantのように何度も壊して使う開発環境の場合、構築の度にコンパイルを待たなければなりません。 構築の待ち時間を少しでも減らせたら・・・と、思っている方はたくさんいるのでは・・・? 今回紹介する方法を使うと、インストール時間が25秒以下になります(マシンスペック&ネットワークに依存しますが・・・) 検証環境 検証環境はVagrantを使っています。 OSとスペックは以下の通りです。
 
      
  ここ一年ほど Python でバックエンドエンジニアやってます。自分の勉強も兼ねて、デモ用 API を Ruby on Rails で作成 したので、その時の実装と参考にした記事をまとめます。 間違った内容を記述してしまうことがあるかもしれません。その際はコメント欄やツイッターなどで指摘していただけると助かります。 対象 Ruby on Rails で作成したアプリに API の実装を考えている方。 主に Grape と Devise という gem を使って API に認証機能を作成する方法について紹介します。 Ruby on Rails の環境構築や、フレームワークのメリット、API の仕組みなどについては紹介しません。 余談: 実装する背景と選択肢 Rails は API を提供するのみで、残りはすべてクライアントに委譲する、というのが目的です。 フロントエンドは AngularJS
 
      
  Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 先日スタック・オーバーフローでこんな質問に回答しました。 webサーバー、アプリケーションサーバー、Rackといった仕様や概念と、WEBrick、Unicorn、Pumaといった実装の関係が頭の中で結びつきません 質問者の方はwebサーバー、アプリケーションサーバー、Rack、Unicorn、Pumaと言った用語や概念の理解がこんがらかっているように見えたので、このあたりをきれいに説明している記事を探していたところ、以下の記事を見つけました。 A web server vs. an app server - Justin We
 
      
  はじめに 前回、「AWS SDK for Ruby バージョン 2 を使用したS3バケットへのオブジェクトアップロード」でS3へオブジェクトのアップロードを行いました。 でも、このままではアップロードしただけで、誰もアップしたオブジェクトにアクセスができないですね。。。 ということで、今回はアップロードしたファイルをブラウザからアクセスできるように期限付きURLの発行をしてみたいと思います。 ちなみに期限付きURLとはその名の通り、URLを発行してから10分だったり3日だったり1週間だったりと、利用できる期限を持たせたURLです。 1. アクセス先の準備 前回、「AWS SDK for Ruby バージョン 2 を使用したS3バケットへのオブジェクトアップロード」で作成したバケットを利用するので今回は省略します。 2. アクセスユーザーの用意 まずは、バケットへアクセスできるユーザーを準備
 
      
  前置き:Rubyのキューイングシステム Rails(Ruby)で非同期にキューイングしてくれるライブラリといえばSidekiqですよねっていうくらいSidekiqが好きなんですが、世の中のシェア的にはResqueなのかな。でも、Sidekiqの方が安定的に動かせているので僕は好きです(delayed_jobは知らない)。 ShoryukenというAWS SQSを使ったキューイングシステムもあり、RedisじゃなくてSQS使いたいっていう場合は、これも良いのかもしれないですね。まぁ、ローカルの場合面倒そうな感じもありますけど。 phstc/shoryuken まぁともかくSidekiqを導入してキューイングするっていうのは、もう超絶簡単にできるわけです。できるんですけど、実際にラフに運用していくと、キューがいつの間にかこけて処理待ちで埋まってたり、レアなケースで例外投げて死んでたりするわけで
 
      
  mrubyを使っていてsegmentation faultとか出て困ったことは無いでしょうか。こういう場合にgdbでデバッグするノウハウを書きます。gdbの使い方についてはここでは説明しません。 逆アセンブラ gdbでデバッグするならmrubyのバイトコードの逆アセンブラが必要です。標準ではcodedump関数が用意されていますが、なぜかここで説明するような使い方はできないようです。mrubyのJITで使っているものがここにありますので、コピーしてcodedump.cあたりにでも入れておいてくください。 これを使うと、変数mrbとirepが見えていれば、こんな感じでdisasm_irep関数を呼び出すことで逆アセンブルできます。見えていない場合、gdbのupコマンドで呼び出し元を辿っていて見えるところがあればそこで実行可能です。disasm_irepは値を返さないのでcallを使う方がよさ
 
      
  Railsで非同期処理っていったらDelayedJobとかResqueとかSidekiqとかいろいろありますが、 今回はShoryukenにチャレンジしてみます。 ShoryukenはAWS SQSからジョブ取り出すワーカーを簡単に作っちゃおうっていうGemなんですが、 今回は本物のSQSは貧乏なので使わずにFake SQSというSQS(っぽいもの)をローカルで立てることができるGemを使ってローカルのみで動くShoryuken Workerを書いちゃいましょう。 #登場人物 AWS SQS: すごく安くキューが使えるニクいやつ AWS-SDK: RubyからAWSを簡単に操作できるニクいやつ Fake SQS: SQSっぽいものをローカルに立てられるニクいやつ Shoryuken: SQSからジョブを取り出すニクいやつ #導入 あらかじめ適当なRailsプロジェクトを作っておきます。 い
![[Rails] Shoryuken + FakeSQSで非同期処理 - Qiita](https://cdn-ak-scissors.b.st-hatena.com/image/square/c25e4d8e93c70b73a7cbe91c56be5447bf323acb/height=288;version=1;width=512/https%3A%2F%2Fqiita-user-contents.imgix.net%2Fhttps%253A%252F%252Fqiita-user-contents.imgix.net%252Fhttps%25253A%25252F%25252Fcdn.qiita.com%25252Fassets%25252Fpublic%25252Farticle-ogp-background-afbab5eb44e0b055cce1258705637a91.png%253Fixlib%253Drb-4.0.0%2526w%253D1200%2526blend64%253DaHR0cHM6Ly9xaWl0YS11c2VyLXByb2ZpbGUtaW1hZ2VzLmltZ2l4Lm5ldC9odHRwcyUzQSUyRiUyRnFpaXRhLWltYWdlLXN0b3JlLnMzLmFtYXpvbmF3cy5jb20lMkYwJTJGNzE5MzMlMkZwcm9maWxlLWltYWdlcyUyRjE0NzM2OTg5OTA_aXhsaWI9cmItNC4wLjAmYXI9MSUzQTEmZml0PWNyb3AmbWFzaz1lbGxpcHNlJmZtPXBuZzMyJnM9ODc2NzIzMTNmZmY4YzE0OWZkMzRjYzQ2MTBkYmU2YzU%2526blend-x%253D120%2526blend-y%253D467%2526blend-w%253D82%2526blend-h%253D82%2526blend-mode%253Dnormal%2526s%253Dee49030bed31a7cf347f0da43dd99d0d%3Fixlib%3Drb-4.0.0%26w%3D1200%26fm%3Djpg%26mark64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTk2MCZoPTMyNCZ0eHQ9JTVCUmFpbHMlNUQlMjBTaG9yeXVrZW4lMjAlMkIlMjBGYWtlU1FTJUUzJTgxJUE3JUU5JTlEJTlFJUU1JTkwJThDJUU2JTlDJTlGJUU1JTg3JUE2JUU3JTkwJTg2JnR4dC1hbGlnbj1sZWZ0JTJDdG9wJnR4dC1jb2xvcj0lMjMxRTIxMjEmdHh0LWZvbnQ9SGlyYWdpbm8lMjBTYW5zJTIwVzYmdHh0LXNpemU9NTYmdHh0LXBhZD0wJnM9NTAxYjliYTlmNDI2ZTcyYWE5NTI1Yzg1MDRiMTFhMGY%26mark-x%3D120%26mark-y%3D112%26blend64%3DaHR0cHM6Ly9xaWl0YS11c2VyLWNvbnRlbnRzLmltZ2l4Lm5ldC9-dGV4dD9peGxpYj1yYi00LjAuMCZ3PTgzOCZoPTU4JnR4dD0lNDBpZW1vbjdzdGFycyZ0eHQtY29sb3I9JTIzMUUyMTIxJnR4dC1mb250PUhpcmFnaW5vJTIwU2FucyUyMFc2JnR4dC1zaXplPTM2JnR4dC1wYWQ9MCZzPTMwYmM5ZmI5MTZkZGQxM2UwZmI2OGQ0MzZlNTQxYWFi%26blend-x%3D242%26blend-y%3D480%26blend-w%3D838%26blend-h%3D46%26blend-fit%3Dcrop%26blend-crop%3Dleft%252Cbottom%26blend-mode%3Dnormal%26s%3D704851537978ce6e098f41052c86563f) 
      
  リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く
