タグ

Rubyに関するdefiantのブックマーク (149)

  • BundlerでC拡張を含んだgemを公開する - Qiita

    はじめに Qiitaに初投稿します。とりえず、前にブログに書いたネタをそのまま投稿することにします。 先日、immutable_list というgemを公開したのですが、 思っていたよりも簡単に rubygems.org に登録することができて感動しました。 gemを作るには、色々な方法があるようですが、最近だとBundler を使う方法が一番シンプルで良さそうです。 RubyGems に gem を登録するためには、gitのリモートリポジトリが必要ですが、ここでは GitHub を利用します。 あと、よく質問されるのですが、RubyGems に登録するために審査は一切ありません。 Tips: gemの命名方法 題とはズレますが、gemの命名にはルールがあるので軽く紹介します。 gemname には、小文字のアルファベット、数字、ハイフン、アンダースコア、ドットが使用可能のようです。 ハ

    BundlerでC拡張を含んだgemを公開する - Qiita
  • Ruby拡張モジュール マルチスレッドでの性能向上

    Ruby の VM は giant lock の塊で、スレッドといっても実行できる Ruby VM のコンテクストはひとつだけで、それを時分割多重で動かすのがふるーい Ruby のスレッドだったらしい。なるほど Ruby のスレッドの性能が低いって言われていたのはこれのことだったのね。リンクするライブラリの都合上 CentOS 6 で作業を行っていたので、そのまま標準の Ruby 1.8 を使っている限りこれはどうにもならないんだけど、 Ruby 1.9 へアップグレードすると、 Ruby が管理しているオブジェクトを触らない前提で giant lock を解放できる仕組みがあるらしい。 Ruby のマニュアルには下記のように書いてある。 ネイティブスレッドを用いて実装されていますが、 現在の実装では Ruby VM は Giant VM lock (GVL) を有しており、同時に実行され

    defiant
    defiant 2013/10/28
  • Ruby拡張モジュール 入門以前

    こんにちわ。安定して世の中の5年ビハインドを追う hasegaw です。 Ruby というと 10年近く前に tDiary のレイアウトとかいじるために数行書き換えた程度しか経験がなくて Ruby プログラミングなんてできなかったワタクシですが、この度 Ruby で改めて Hello World いたしまして、というか Ruby は書けないけども Ruby の拡張モジュールを C(++) で実装して色々わかったことを。 ■最低限の実装 拡張モジュールはC言語(もしくは後述の方法によりC++言語)にて記述できる。以下のファイルを hoge.c としてローカルディレクトリに置く。ファイル名はなんでも良い。 #include "ruby.h" VALUE hello_func(VALUE self, VALUE s) { printf("hello %s\n", RSTRING_PTR(s));

    defiant
    defiant 2013/10/28
  • homebrew で入れた openssl を使って Ruby をコンパイルすると SSL 利用時に証明書エラーが発生する場合の対応 - Qiita

    さて、皆さん割と homebrew で openssl 入れて brew link しちゃってる人も多いと思います。そんな環境でその openssl を使って Ruby をコンパイルすると、OpenSSL 利用時に証明書エラーが発生します。 $ pry [1] pry(main)> require 'open-uri' => true [2] pry(main)> open('https://www.google.com/').read OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed from ~/.rbenv/versions/2.0.0-rc2/lib/ruby/2.0.0/net/http.rb

    homebrew で入れた openssl を使って Ruby をコンパイルすると SSL 利用時に証明書エラーが発生する場合の対応 - Qiita
  • Ruby - Bundler で gem パッケージ作成!

    mk-mode.com Linux, Debian, IT, Server, PG, Ruby, Rails, Python, C++, Fortran, PC, MariaDB, math, GIS, etc... Ruby で gem パッケージを作成するには、 NewGem や Jeweler を使用する方法もあるようですが、今回は Bundler を使用する方法について記録してみました。 0. 前提条件 OS は Linux Mint 14 Nadia(64bit) を想定 Ruby 1.9.3-p385 を使用。 Git がインストール済みである。 試験的に作成する gem パッケージ名は test_gem とする。 今回は、テストについては考えない。(gem パッケージを作成することが今回の目的なので) 1. gem パッケージ Bundler インストール gem パッケージ

    Ruby - Bundler で gem パッケージ作成!
  • gemパッケージの作り方

    Railsの開発ではgemを使わないと何もできないが、ふとgemってどう作るんだろうという疑問がいまさらわいてきた。 ということで自分でgemパッケージを作ってみた。 gemを作るためのnewgemという便利なものがあったのでそれを利用してみた。 1 newgemのインストール まずはnewgemをインストールする。 $ gem install rubyforge $ gem install newgem 2 ひな形の作成と編集 newgemコマンドを発行して作成するgem(mygemtest)のひな形ファイルを生成する。 $ newgem mygemtest -T rspec create lib/mygemtest create script create History.txt create Rakefile create README.rdoc create PostInstall

  • 君がOpsでもRubyで書いたライブラリはGemで配ろう - Qiita

    Infrastracture as code流行の副産物として、もうOpsはある程度Rubyでライブラリを書けるようになりました。 折角Rubyでライブラリを書いたなら、安全&ラクに配布するためGemパッケージにしましょう、出来る人には今更でしょうが知らない人は真似してみてね。 ちなみに意外と誤解されてる点、gemにする=Rubygems.orgで公開する、ではありません、してもOKというだけで。 目標 gemファイルを置いて、gemコマンドで自分のライブラリをサーバに導入する。 こんなかんじで。 gem install -l my_libs-0.0.1.gem じゃあやってみましょう。 Gemの雛形をつくろう Gemの作り方は色々あるようですが、私はもっぱらbundlerです。 bundle gemで必要なファイル群を作成します、便利ですね。 $ bundle gem my_libs c

    君がOpsでもRubyで書いたライブラリはGemで配ろう - Qiita
  • Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog

    2010年02月03日21:31 Ruby Rubyで "&" を使うと幸せになれるらしいよ (*´Д`)ノ なんか似たようなタイトルを見たことあるな…まぁいいか。 Perlで+を使うと幸せになれるよ (*´Д`)ノ - (゚∀゚)o彡 sasata299's blog ブロック処理 ( do...end もしくは {...} ) の例としてはこのような3種類があります。 #1 ブロックの中に直接処理を書く方法 #2 ブロックの中でやらせたい処理の Proc オブジェクトを呼び出す方法 #3 ブロックを使わずに Proc オブジェクトに & を付けて渡してあげる方法 3つとも全く同じ処理です。#3 みたいに書く事も出来るんですね〜。& が Proc オブジェクトをブロックに変換してくれます。 #1 3.times do puts 'hogehoge' end proc = Proc.new

    defiant
    defiant 2013/02/15
  • デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方

    95MB/sで現在世界最速のmicroSDHCカード、SanDiskのExtreme Proを使用した場合、既存の製品であるEye-Fi、FlashAir、Flucard Proをはるか後方に置き去るスピードが出ます。4kのシーケンシャル書き込み38.98MB/sに注目。 これまでは無線LAN内蔵SDカードを使おうとする場合、スピードか、利便性かのトレードオフを迫られたのですが、そうした葛藤は過去のものとなりました。 速さも、利便性も、その両方が我らの手中にあります。 PQI Air CardはARM CPUを搭載。 # cat /proc/cpuinfo Processor : ARM926EJ-S rev 5 (v5l) BogoMIPS : 421.06 Features : swp half fastmult edsp java CPU implementer : 0x41 CPU

    デジカメ内部でRubyを動かす狂気!無線LAN内蔵SDカードアダプタPQI Air Cardの間違った使い方
  • Rubyステップアップ [pepaborubyistさん] - ブクログまとめ

    Ruby学習者に送る10冊の +αです。この半年間、はじめて書くところからRubyを学習してきた私が、実際に読み通して、よかった、勉強になったと感じたを厳選してまとめました。 Ruby入門 まずはRubyそのものについて学習しましょう。基礎から、応用まで。 参考: - http://booklog.jp/q/3494 - http://blog.kentarok.org/entry/2012/05/29/230254

    Rubyステップアップ [pepaborubyistさん] - ブクログまとめ
    defiant
    defiant 2012/10/26
  • 第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp

    はじめに SinatraやRamazeといったRubyのWebアプケーションフレームワークに興味をお持ちの方であれば、Rackという名前をしばしば目にしているかもしれません。どうやら様々なフレームワークに使われているらしいのだけど、そいつが一体なんなのかよくわからない、そんなあなたのために今日はそのRackをご紹介したいと思います。 様々なフレームワーク、様々なアプリケーションサーバ しばらく前なら、Ruby on Railsブームの真っ只中、Rubyと言えばRails、Webアプリケーションを作るならRails、といったイメージを持たれていた方も多かったと思います。実際にWebアプリケーションを作ったり、Rubyに触れたりしたきっかけがRailsだったという方も多いでしょう。 しかし最近は、RubyのWebアプケーションフレームワークと一口に言っても、非常に簡単にアプリケーションが書けて

    第23回 Rackとは何か(1)Rackの生まれた背景 | gihyo.jp
  • 入門 Sinatra

    Webサイト、Webサービス、WebアプリケーションをRubyで作成するためのDSL、それがSinatraです。書は、基的なRubyのプログラミングを理解したプログラマが、Sinatraを使い始めるために必要な知識をコンパクトにまとめた書籍です。ルーティング、ビュー、キャッシュなどを使ったアプリケーションの書き方から、内部構造の解説や、サブクラス化を用いたModularスタイルのアプリケーションを解説。さらにはカスタムブログエンジンを例に、アプリケーション構築の全体を紹介します。なお書はEbookのみの販売となります。 はじめに 書の対象読者 書の構成 基礎 さらに詳しく 実践 書の表記規約 サンプルコードの利用について お問合せ先 1章 準備作業 Sinatraの特徴 フレームワークなのか MVCを実装するのか 誰が使用するのか 実際のプロジェクトはどのようなものか 問題点は

    入門 Sinatra
  • Rubyで2Legged OAuthリクエストを行う - よしだ’s diary

    TwitterAPIを叩くサンプルは見つかったけど、純粋な2Legged OAuthのやり方が見つからなかった。 だからメモ。 リクエストボディを指定して、リクエストを送る前にoauth!メソッドを呼ぶだけ。 #!/usr/bin/ruby require 'rubygems' require 'net/http' require 'oauth' consumer = OAuth::Consumer.new('CONSUMER_KEY', 'CONSUMER_SECRET') http = Net::HTTP.new('g-storage.appspot.com', 80) req = Net::HTTP::Post.new('/storage') req.set_form_data({:method => :ls, :format => :json}) req.oauth!(http,

    Rubyで2Legged OAuthリクエストを行う - よしだ’s diary
  • いまさら聞けないRake入門

    2. 自己紹介 cuzic といいます きゅーじっく と読みます Ruby 暦は かれこれもう10年くらい 近況 通勤時間は iPod で英語字幕付きで Tech Talk を見ています Google Tech Talk の多くは英語字幕データ付で公開 英語リスニングの訓練と最新技術のキャッチアップの両立 英語字幕付きで動画を見るために、専用のツールを開発 今回はそのツールについて、紹介 今後の勉強会予定 3 月 25 日(土) なんかするかも 5 月 12 日(土) メタプログラミング Ruby 読書会 #3 JR尼崎駅徒歩 2 分の場所で開催予定 3. ビルドツールの主な使い方 ビルド 定義されたルールに従った処理(コンパイルなど)   ex ) *.c を *.o にコンパイル 依存関係の処理があるときに便利   ex) hello.c と hello.h のどちらかが更新されていた

    いまさら聞けないRake入門
  • Ruby製Webアプリでの入力チェック手順 - 岩本隆史の日記帳(アーカイブ)

    今回はRuby製Webアプリでの入力チェック手順について考えてみる。Ruby1.9を使い、Railsなどのフレームワークは使わない前提だ。 文字エンコーディングの妥当性検証こそが重要 徳丸浩さんの『体系的に学ぶ 安全なWebアプリケーションの作り方』には「入力処理」として下記3つの処理が挙げられている。 (a)文字エンコーディングの妥当性検証 (b)文字エンコーディングの変換(必要な場合のみ) (c)パラメータ文字列の妥当性検証 このうち(c)は単なる書式チェック(文字種や長さなどのチェック)なので、アプリの要件にしたがって粛々と行えばよいだろう。 (b)も必要な場合にだけ行えばよいので、さほど重要ではない。 重要なのは(a)で、これをいかにRubyで実現するかだ。同書では(おそらく意図的に)Rubyへの言及はなかった。 Rubyでは(b)→(a)→(c) RubyのStringには、St

    Ruby製Webアプリでの入力チェック手順 - 岩本隆史の日記帳(アーカイブ)
  • DIARY SYSTEM Ver.4

    2004 01 02 03 04 05 06 07 08 09 2004年9月:1エントリ 10 2004年10月:1エントリ 11 2004年11月:1エントリ 12 2004年12月:1エントリ 2005 01 02 03 04 2005年4月:13エントリ 05 2005年5月:18エントリ 06 2005年6月:28エントリ 07 2005年7月:42エントリ 08 2005年8月:39エントリ 09 2005年9月:41エントリ 10 2005年10月:22エントリ 11 2005年11月:20エントリ 12 2005年12月:35エントリ 2006 01 2006年1月:12エントリ 02 2006年2月:6エントリ 03 2006年3月:10エントリ 04 2006年4月:17エントリ 05 2006年5月:9エントリ 06 2006年6月:12エントリ 07 2006年7

  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

    GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠

    GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ
  • Sinatra 1.2.0 リリース | gihyo.jp

    2011年3月4日、Rubyで書かれた軽量Webアプリケーションフレームワーク「Sinatra 1.2.0」がリリースされました。Sinatraはその記述量の少なさにより人気を博し、PythonのFlaskやScalaScalatra、JavaScriptのExpressJsなど、多くの言語でSinatra風フレームワークが次々と登場するなど大きな影響を与えています。シンプルでありながらも、十数ものテンプレートエンジンに対応し、簡単に切り替えられるなど柔軟さも兼ね備えています。 今回の1.2.0のリリースにて行われた主なアップデートは次のとおりです。 テンプレートエンジン「Slim」「⁠Markaby」のサポート レイアウトに異なるテンプレートエンジンを使える:layout_engineオプションの導入 before/afterフィルタで条件指定のサポート 名前付きキャプチャのサポート(

    Sinatra 1.2.0 リリース | gihyo.jp
  • プレス発表 プログラム言語RubyのJIS規格(JIS X 3017)制定について:IPA 独立行政法人 情報処理推進機構

    IPA(独立行政法人情報処理推進機構、理事長:藤江 一正)に設置したRuby標準化検討ワーキンググループ(委員長:中田 育男 筑波大学名誉教授)にて原案作成を進めてきたプログラム言語Ruby技術規格書が、JIS規格、JIS X 3017として、2011年3月22日に制定されました。 JIS規格化されたことにより、Rubyの相互運用性(*1)が向上し、Rubyを用いてより生産性の高いプログラム開発・システム開発が可能になります。 概要 Rubyは1993年に日で発案され、開発が開始された、日発のプログラム言語です。豊富な機能と簡便さとを併せ持ち、高機能なアプリケーションを簡潔に記述できる等の特長から、セールスフォース・ドットコムや楽天など、国内外に有名な数多くの会社のアプリケーション開発やシステムの開発に用いられています。また、島根県や福岡県などは、Rubyを核とした地域ソフトウェア産

  • 負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋

    負荷試験ツール インターネット破壊を公開しました。 こちらはずっと社内で負荷試験に使用していたツールです。社内で使用していたものなので、ソーシャルアプリ向けの機能などが多少追加されていますが、もちろんんそれ以外のWebアプリケーションでも使用できます。 基的にはApache JMeterのようなWebアプリケーションむけのシナリオ負荷試験ツールです。コマンドラインオペレーションだけで実行でき、サーバー上で簡単に負荷試験を実施できるのが特徴です。POSTリクエストなどはもちろん、レスポンスのチェックやUserAgentの偽装、ランダムな値をパラメーターにセットする機能も実装しています。 注意: 当然ながら自分の管理下にないサイトに向けて負荷試験ツールを実行するのは絶対にやめてください。非常に危険です。 物騒な名前がついていますが、これは完全にわたしの小児的感性の趣味によるところです。地震で

    負荷試験ツール「インターネット破壊」を公開しました : DSAS開発者の部屋