タグ

programmingとrubyに関するat_yasuのブックマーク (22)

  • 正規表現によるバリデーションでは ^ と $ ではなく \A と \z を使おう

    正規表現によるバリデーション等で、完全一致を示す目的で ^ と $ を用いる方法が一般的ですが、正しくは \A と \z を用いる必要があります。Rubyの場合 ^ と $ を使って完全一致のバリデーションを行うと脆弱性が入りやすいワナとなります。PerlPHPの場合は、Ruby程ではありませんが不具合が生じるので \A と \z を使うようにしましょう。 はじめに 大垣さんのブログエントリ「PHPer向け、Ruby/Railsの落とし穴」には、Rubyの落とし穴として、完全一致検索の指定として、正規表現の ^ と $ を指定する例が、Ruby on Rails Security Guideからの引用として紹介されています。以下の正規表現は、XSS対策として、httpスキームあるいはhttpsスキームのURLのみを許可する正規表現のつもりです。 /^https?:\/\/[^\n]+$/

  • RubyとPythonとC#のround関数のバグっぽい挙動について - hnwの日記

    (12/29 20:40追記)「(追記)なぜMySQLのdecimal型を例に使ったかについて」というセクションを追加しました。また、コメントを頂戴したので返信しました。 (12/29 21:30追記)C#について言えば「Math.Round メソッド (Double, Int32)」に内部実装がどうなっているか書いてあるので仕様通りであり、誤解しようが無いという情報を頂きました。ありがとうございます。そしてごめんなさい、確かにバグじゃないです! (12/29 21:50追記)Pythonのround関数のドキュメントにも誤差が入るかもしれないという記述があります。しかし、内部実装の紹介があった方がいつどういう誤差が入るかわかるので親切かなという気がします。また、浮動小数点数の性質上誤差が入るのは仕方が無いかのような記述に見えるのですが、浮動小数点数を使っていても誤差の入らない実装がありう

    RubyとPythonとC#のround関数のバグっぽい挙動について - hnwの日記
  • Rubyのcaseを〇〇(言語名)のswitch文だと思っている人たちにぼくから一言ガツンと申し上げたい

    Rubyのcase」を一瞥し「あー要は〇〇(言語名)のswitchね」などと早合点し、その後もその真の価値を知ることなく一生を終えるプログラマが近年跡を絶たない。加えて、「今更条件分岐?RubyはOOPなんだからポリモフィズムじゃね?」とか「HashにProc突っ込んでcallするのがオレ流。」とかうそぶく人たちもまた増加の一途を辿っている。 そんな世の中にあって、ぼくは一言、できればガツンと一言申し上げたい。生まれも育ちもRubyなぼくから、是非ともそんな人たちに「Rubyのcase」について一言申し上げておきたい。 ─ 問題1 ─ 名前name、レベルlevel、ポイントpointの各属性を持った複数のCharacterオブジェクトcharlie, liz, benがある。 class Character < Struct.new(:name, :level, :point) def

    at_yasu
    at_yasu 2013/02/25
    あとでよむ
  • Ruby 2.0.0-p0 リリース | Ruby

    SIZE: 13608925 bytes MD5: 50d307c4dc9297ae59952527be4e755d SHA256: aff85ba5ceb70303cb7fb616f5db8b95ec47a8820116198d1c866cc4fff151ed 特徴 主要な新機能 主要な変更点は以下のとおりです。 言語コア機能 キーワード引数: API 設計の新しい柔軟性 Module#prepend: クラス拡張の新しい方法 シンボルの配列を簡単に作るリテラル %i __dir__: 実行中のファイルのあるディレクトリ名 default UTF-8 encoding: 多くのマジックコメントが不要に 組み込みライブラリ Enumerable#lazy / Enumertor::Lazy: 無限の遅延ストリーム Enumerable#size: 遅延サイズ評価 #to_h: Hash へ

    Ruby 2.0.0-p0 リリース | Ruby
    at_yasu
    at_yasu 2013/02/24
    これを機会に、十年ぶりに、Rubyを再びやってみますかね。
  • 自分のコード綺麗って思ってんの? - ✘╹◡╹✘

    guideline.gem https://github.com/r7kamura/guideline 恐怖体験があって、震え上がり、少しでも綺麗なコードが書けるようなGemつくってる。複雑過ぎるメソッドや、使われていないメソッドが定義されていないかとか、長過ぎる行を書いてないかとか、簡単なチェックを自動化できる。こういうコードは綺麗ではないみたいなことがふわっと言われているよりは、綺麗ではないコードというのがコードで表現されている方が安心感があると思った。もしコーディングルールとして文書化したのでみんな守ろうみたいな感じにしても、コードを書くときに常にそれを覚えていなければ意味がないし、常にそういうことを気にしながら、ずっと緊張しながらコードを書かないといけない。そういう風に常に何かに気を配りながら作業するというのは、意識は高いけど、疲れるから極力やりたくないし、そもそも新しくその文化

    自分のコード綺麗って思ってんの? - ✘╹◡╹✘
  • 自分のための code を書こう

    元々小さなベンチャー企業でPHP仕事をしてそこそこに満足していた自分が、Rubyを知ってじわじわと病みつきになっていき永和システムマネジメントに入社、日中のRubyのお仕事では飽きたらず時間さえあれば個人的にプログラミングをしてときどきgemを作って公開するようになった簡単な経緯と、そこでやっていることをお話します。

    自分のための code を書こう
  • Octopress

    The way Octopress is being distributed and maintained is nearing its end. There are many things I've always disliked about how Octopress works. So before I talk about the exciting part, I'd like to tell you what's wrong with Octopress. What's wrong? If I'm being harsh, I'll tell you that as it is now, Octopress is basically some guy's Jekyll blog you can fork and modify. The first, and most obviou

  • 2. Exploring MRuby

    2. MRuby 探索 2012-05-18 (鈴) 1. はじめに 2. 構築 3. 構築過程再訪 4. 中間言語コード 5. おわりに 1 はじめに 章では組込み用 Ruby 処理系 mruby の作りと使い方を探索する。 執筆時現在,mruby はまだ正式にリリースされておらず, https://github.com/mruby/mruby から $ git clone https://github.com/mruby/mruby.git として最新の開発版を入手できる。 git [git-scm.com] をインストールしていない, あるいは通信経路・プロトコルの制限等により git が使えない環境でも同ページの Downloads リンクから HTTPS 経由で tar.gz ファイルをダウンロードできる。 現在,最新版の tar.gz ファイルの URL はリビジョンにかかわ

    at_yasu
    at_yasu 2012/06/05
    「そうしたなかで興味深く,産業的に重要な例外の一つとして,組込み用 Python 処理系 Python-on-a-Chip [google.com] (以下 p14p) があります」ほほぉ
  • MacRubyがiOSに来た!RubyでiOSのネイティブアプリ開発ができる「RubyMotion」登場:Rails Hub情報局:エンジニアライフ

    MacRubyがiOSに来た!RubyでiOSのネイティブアプリ開発ができる「RubyMotion」登場 Rubyを使ってiOS向けアプリが開発できる開発環境「RubyMotion」が登場しました。MacRubyプロジェクトの生みの親であるLaurent Sansonetti氏は7年間勤めたアップルを2011年暮れに退社して、新たにHipByteというスタートアップを立ち上げていたようです。 FAQや動画ビデオを見て分かったRubyMotionの特徴を列挙します。 Rubyを使ったiOSアプリの開発が可能 ツールは有償で199ドル(現在キャンペーンで149.99ドル) 無償版やオープンソース版はない 作成したアプリはAppStoreでの流通が可能 iOSのAPIの全てにアクセス可能 C/C++/Objective-Cで書かれたRuby処理系のMacRubyベースで1.9対応 Rubyコード

    MacRubyがiOSに来た!RubyでiOSのネイティブアプリ開発ができる「RubyMotion」登場:Rails Hub情報局:エンジニアライフ
    at_yasu
    at_yasu 2012/05/04
    社内用アプリぐらいにしか使えないかなぁ。
  • RSpecによるユニットテストの書き方 — recompile.net

    2012年04月19日 最近、新人のテストコードを見る機会があり、ユニットテストの書き方について考える機会があった。ユニットテストはテンプレートみたいなものがあるので、それさえ押さえれば、誰でも簡単に書くことができる。 ここでは、その方法について紹介したい。サンプルはRSpecで書くが、その他のユニットテストフレームワークでも、応用ができるとおもう。 はじめにごく単純化すると、テスト対象は状態を持ち、入力を与えると何らかの出力を行なうものである。入力が変われば出力は変化するし、状態が変化すると入力が同じでも出力が変わる(かもしれない)。 ユニットテストは、テスト対象の状態を操作し、与えた入力によって意図通りの出力を得られるかを確認する作業のことをいう。なので、ユニットテストを書くときには、オブジェクトの状態ごとにメソッド単位で入力と出力を確認するようにする。 RSpecの疑似コードで書くと

    RSpecによるユニットテストの書き方 — recompile.net
  • プレス発表 プログラム言語Ruby、国際規格として承認:IPA 独立行政法人 情報処理推進機構

    IPA(独立行政法人情報処理推進機構、理事長:藤江 一正)は、2008年にRuby標準化検討ワーキンググループ(委員長:中田 育男 筑波大学名誉教授)を設置し、Rubyの言語仕様の国際規格化へ向けた事業を進めてきましたが、この度、2012年3月31日に締め切られた国際規格承認のための最終投票の結果、Rubyが国際規格ISO/IEC 30170として承認されました。 Rubyは、ISO/IECにおけるプログラム言語規格の分野で初の日発の言語となりました。Rubyが国際規格となったことにより、Ruby言語仕様の安定性や信頼性が増し、Ruby関連事業の一層の国際展開が期待されます。 プログラム言語Ruby は1993 年にまつもと ゆきひろ氏により発案され、開発が開始された、日発のプログラム言語です。豊富な機能と簡便さとを併せ持ち、高機能なアプリケーションを簡潔に記述できる等の特長から、国内

    at_yasu
    at_yasu 2012/04/02
    おーー、おめでとう御座います
  • Ruby on Railsが簡単というのは嘘 - toyoshiの日記

    WinユーザがRailsアプリをこれから公開しようと思った場合 Windowsで学習を開始するのは不可能なのでLinuxをいれる でもWindowsで進めようとしてmsysGitをいれたりするが結局半日無駄にする なぜかgemが最新じゃないと怒られる gemを単純に使っても後から困るのでrvmかrbenvが必要。使い方覚えないといけない やっとRails3.2導入。javascriptエンジンが入ってないので起動しない やっと起動 HTML書いてるのは情弱だけ => hamlを覚える js書いてるのは情弱だけ => coffee scriptを覚える css書いてるのは情弱だけ => scssを覚える テスト書いてないコードはレガシーコードっていわれる しかたないのでRspecいれる => Rspec覚える ユニットテストだけではしかたないといわれcapybaraもいれる => capyb

    Ruby on Railsが簡単というのは嘘 - toyoshiの日記
    at_yasu
    at_yasu 2012/03/09
    TextMateよりChocolatのほうがいいよ!!稀によくまだバグるけど!!
  • モナドという言葉を使うことなく、純粋関数型言語の入出力を解説する。Rubyで。 - &lt;s&gt;gnarl,&lt;/s&gt;技術メモ”’&lt;marquee&gt;&lt;textarea&gt;¥

    これはRuby Advent Calendarの21日目の記事です*1。20日目は@sasata299さんのHerokuって便利だし利用までたった3ステップですお!!でした。 はじめに 当は「Pure Rubyで動くかっこいい形態素解析エンジンができた!!!」みたいな記事を書く予定でしたが、目標のクオリティに達しなかったのでリリースは延期されました。 クリスマスごろにリリースされるといいですね。 さて、この記事では、Haskellのような純粋関数型言語がどのように副作用を伴う処理を実現しているかについて、Rubyによる実装を使って解説します。モナドという言葉が全く出てこないのでアレルギーのかたも安心ですね。 純粋関数とは 同じ引数を渡す限り、どのような順番で何度呼んでも同じ結果が返るような関数のことです。 何が問題なのか puts 'hello!' res1=gets puts 'hel

    モナドという言葉を使うことなく、純粋関数型言語の入出力を解説する。Rubyで。 - &lt;s&gt;gnarl,&lt;/s&gt;技術メモ”’&lt;marquee&gt;&lt;textarea&gt;¥
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • Heroku | Cloud Application Platform

    We’ve transitioned to a Sustaining Engineering model to better serve the customers who rely on us every day. Our mission is simple: to provide the most stable, secure, and reliable environment for your apps and data. We will continue releasing features and functionality that align with our Sustaining Engineering goals and provide a more robust and efficient platform to our customers. Today we are

    Heroku | Cloud Application Platform
  • Ruby on Rails入門 | RubyLife

    Ruby on Rails は、Ruby 言語で開発された Web アプリケーションフレームワークです。Rails は、Web 開発を効率化し、短期間で高品質なアプリケーションを作成できるように設計されており、特にスタートアップや中小企業の Web サービス開発に多く採用されています。 Ruby on Rails には次のような特徴があります。

    Ruby on Rails入門 | RubyLife
  • GT Nitro: カーレーシング・ドラッグレーシングゲーム - Google Play のアプリ

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

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

    Sinatra is a DSL for quickly creating web applications in Ruby with minimal effort: require 'sinatra' get '/frank-says' do 'Put this in your pipe & smoke it!' end

  • Route 477

    GitHubindexHello source: index.md View on github | Report issue Generated by middleman 3.1.6. Powered by Ruby 2.2.2.

  • Twitter Streaming APIをRubyで試してみる - しばそんノート

    Streaming APIとは TwitterのStreaming APIをご存知でしょうか。 Twitter API Wiki / Streaming API Documentation 2009年4月頃から試験的に公開されているAPIなので、ご存知な方も多いと思います。2009年8月現在でまだαテスト中ですが、これを利用すると、push型でリアルタイムに情報を受け取ることができます。 TwitterAPIは基的にpull型なので、クライアントが能動的にリクエストを発行しなければ情報を受け取ることができません。しかし、1時間あたりのリクエスト回数、1リクエストあたりの最大データ数など、APIには様々な制限がかけられていますので、例えばリアルタイム性の必要なプログラムや、大量のtweetsが必要な統計プログラムなどの用途で通常のAPIを利用するのは厳しいものがあります。 そのような時は

    Twitter Streaming APIをRubyで試してみる - しばそんノート
    at_yasu
    at_yasu 2010/09/04
    うん。なるほど。わからない。あとで読む。