タグ

Programmingとrubyに関するWatsonのブックマーク (37)

  • なぜJavaScriptで「76287755398823936」が正しく表示できないか、あるいはなぜRubyでも表せないか。 - ψ(プサイ)の興味関心空間

    Twitter住所特定実験」を開発中に気づいた事です。取得したツイートをサーバからJSONでクライアント側のJSに送る処理があって、当初この時にTwitterのツイートのIDをJSONに数値として含めて送っていました。 が、JavaScriptではこの値を受信してeval()した†1際、うまく変換することができず、たとえばChrome/Firefoxでは「76287755398823940」となり、微妙に異なった数値になってしまいました。 以下をクリックすることで、実際に実行できます。 javascript:alert(76287755398823936) IE8/9だと「76287755398823930」となり、まだ微妙に違った値になります。 ■doubleの精度の問題?? まず疑われたのはdoubleの精度の問題。一部では有名な話で、JavaScriptでは数値はすべてdouble

  • sourceforge.jp

    We’re getting things ready Loading your experience… This won’t take long.

    sourceforge.jp
  • 「末尾最適化」を正しく理解する - ブートストラッピングでコンパイラを作る日記

    以下の記事でPythonRubyの末尾再帰関数をループに変換する手法が「末尾再帰最適化」や「末尾呼び出し最適化」として紹介されているのですが、これらの用語を使うのは間違いです。 紹介されている手法(動的束縛を利用して制御フローを変形する手法)自体は大変面白いですね。 Pythonで末尾再帰最適化をする。 Rubyで末尾再帰最適化をする。 参考文献として以下を挙げておきます。 William D. Clinger "Proper Tail Recursion and Space Efficiency" ちゃんと読み直していないので、以下の説明に間違いがあるかも知れません。その場合はご指摘お願いします。 まず「末尾呼び出し(Tail Call)」は関数の一番最後の式(末尾式)であって、関数呼び出しであるものを指します。 void foo() { bar(); baz(); /* 末尾呼び出し

    「末尾最適化」を正しく理解する - ブートストラッピングでコンパイラを作る日記
  • 【翻訳】EventMachine入門

    dan sinclairさんのEventMachineの入門記事(PDF)を翻訳しました。 原文はここからダウンロード可能です: http://everburning.com/news/eventmachine-introductions/ (翻訳の公開と画像の利用は人より許諾済みです) 翻訳・内容の間違い等があればブログコメントやTwitterなどで遠慮無くご指摘ください。 EventMachine入門 Introduction うん、これから何を学ぶことになるのか、この導入のくだりがスタート地点として役に立つと思う。EventMachine とは何だろう。そしてそれは私たちのために何をしてくれるのだろう。さて、最初の部分は簡単だね。EventMachine は Reactor パターン(*1)の高性能な実装さ。 すげえ、いや、ちょっと待て、Reactor パターンって何だ? Wiki

    【翻訳】EventMachine入門
  • ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語

    速さが足りない!!!!! そんな時はプロファイリングの時間ですね。 Rubyには標準添付ライブラリとして profile というプロファイラがついてくる。でもこのライブラリはあまりに遅すぎて実用に耐えないから、多分誰も使っていない。ほとんどのRubyistは ruby-prof を使っていることだろう。 今回はこの ruby-prof を使って Ruby プログラムのプロファイリングする方法を紹介する。 計測する(ruby-prof) ruby-profはrubygemsで簡単に入る。 $ gem install ruby-profruby-profというコマンドラインツールがインストールされる。これを使うと、プログラムを変更することなく手軽にプロファイリングを行うことができる。ruby-profコマンドのusageは以下のとおり。 ruby_prof 0.9.2 Usage: ruby_

    ruby-profとKCacheGrindでプロファイル野郎になる - 昼メシ物語
  • データ型モデルと CRuby の型 - ドレッシングのような

    (改訂 2010.08.20) 参考文献を追加し、その内容に合わせて修正。 僕は、様々なアーキテクチャで動かせるコードを書こうとしているとき、long と void* のサイズの関係などが分からなくなって手を止める事が結構あります。後学のために一度整理しておこうと思い、表にまとめてみました。 モデル名 sizeof(int) sizeof(long) sizeof(long long) sizeof(void*) 主なアーキテクチャ LP32 2 4 - 4 ほぼ皆無 Win3.1など (16ビット環境) ILP32 4 4 8 4 ほとんどの32ビット環境 LLP64 4 4 8 8 Win64 LP64 4 8 8 8 64ビットのLinux ILP64 8 8 8 8 ほぼ皆無 SGI NOTE: sizeof(char) == 1 と sizeof(short) == 2 はすべて

    データ型モデルと CRuby の型 - ドレッシングのような
  • Rubyコーディング規約

    はじめに 文書は、Rubyによりコーディングを行う際の規約について述べる。 実際のプロジェクトに適用する際には、このコーディング規約をカスタ マイズして用いることを推奨する。 ソースコードの整形 インデント プログラムを読みやすくするため、インデントを適宜行う。インデント 幅は2とする。また、インデントにはスペースのみを使用し、タブは使用 しない。(環境によりタブ幅が異なるため。) 例: if x > 0 if y > 0 puts "x > 0 && y > 0" end end 一行の桁数 一行の桁数は最大80桁までとする。 空行 複数のクラスの区切には空行を挿入する。 例: class Foo ... end class Bar ... end 誤った例: class Foo ... end class Bar ... end また、クラス内の各構成要素の区切にも空行を挿入する。

  • Ruby・Python・JavaScript・PHPについてどう思いますか?:Tim Brayに聞いてみた - builder by ZDNet Japan

    サステナビリティの今と未来 企業戦略としてのサスティナビリティ推進 世界の通信インフラを支えるコルトの取組み 膨大なアクセスを支える屋台骨 高い安定性とパフォーマンスを両立 ZOZOTOWNが選んだストレージ基盤を解説 MSセキュリティ担当者が紹介 マルチクラウド環境の保護を追求する Microsoft Defender for Cloud 勝つためのクラウド活用術 New Value on Azure ビジネスを次のステージへ! ID管理の基礎知識 新しい働き方におけるITガバナンスの 向上にむけて 高い従業員満足度と安心・安全 新時代にむけた理想の業務環境こそ Anywhere Workspaceが目指す未来 新OSのWin11はどう進化したか ビジネス上の役割、開発の要因と Win11が目指した5つのポイントを紹介 現場主導のデジタル変革 ビジネス変革のための“ITの民主化” そして

    Ruby・Python・JavaScript・PHPについてどう思いますか?:Tim Brayに聞いてみた - builder by ZDNet Japan
  • まつもと直伝 プログラミングのオキテ 第18回 プログラムを高速化する(その2):ITpro

    この記事は会員登録で続きをご覧いただけます申込は簡単3分! 今すぐ会員登録(無料) 会員の方はこちら 【この画面が表示された方限定】 会員登録(無料)で14日間有料記事が読み放題 ※14日間試読付き登録会員のお申し込みはお1人様1回限り

    まつもと直伝 プログラミングのオキテ 第18回 プログラムを高速化する(その2):ITpro
  • PHPとRubyの文法面での比較

    PHPRubyの文法面および主要な機能にのみ注目して(ラフな)比較を行った。そのため、各種関数などにはほとんど触れていない。 式と文 やや便宜的な説明になるがPHPの式および文の特徴を以下に示す。 なんらかの記述を式と呼ぶ 式は値を持つことも持たないこともある 関数は必ず返り値を持つが、echoなど一見関数に見えるものの中には値を返さないものもある 文は式を;で終えたもの Rubyの式および文の特徴を以下に示す。 なんらかの記述を式と呼ぶ 厳密にいうと式は値を持つことも持たないこともあるが、Rubyではほとんどすべての記述が値を持つと考えてよい ifやfor、メソッド定義も値を返す 文は式からなり終端を明示するために;を付けてもよい 通常はつけない 複数の文字を一行に書くときには必要 ブロック 「ブロック」といったときPHPRubyで意味するところはかなり違う。 まずPHPでいうブロッ

  • Railsで日本語を使う時に必須のパッケージ Ruby-GetText

    Posted by masuidrive Sun, 02 Jul 2006 18:22:00 GMT Railsで日語アプリを使う時のサポートパッケージとしては、ActiveHeart が有名です。私もずっとActiveHeartを使ってましたが、RJS+Safariの文字化け問題解消のため、Ruby-GetText に移行することにしました。それぐらい自分で書いても良かったんですが、せっかくあるので使わないとw Railsの日語化ユーティリティとしては、今のところ最強な気がする>Ruby-GetText Ruby-GetTextはgemsで配布されているので、インストールしてみます。 Ruby-GetTextとActiveHeartを簡単に比較してみました。 Ruby-GetTextが有利な点 Safariで文字化けする問題も解消されます。RJS利用時も問題ありません メッセージをプ

  • まつもと直伝 プログラミングのオキテ第2回 (2)

    複雑さという敵 実際にオブジェクト指向プログラミングを進めるために重要な原則に戻りましょう。 ソフトウエア開発の最大の敵は複雑さです。人間の脳はあまり複雑なものを扱うことができないのです。記憶力と理解力に限界があるためです。人間は一度に把握できる概念の数に限界がありますし,複数のことを記憶しようとするとたいていいくつかは忘れてしまいます。 ソフトウエアを実行するコンピュータにはこのような制約はなく,コンピュータはどんなに複雑なソフトウエアだろうとも,どんなに処理するデータが増えようとも処理時間が長くなるだけで処理できなくなることはありません。世の中のデータ処理がどんどんコンピュータ化されるにつれ,ソフトウエアへの要求は増し,開発されるソフトウエアはどんどん複雑になってきています。 年々性能が向上するコンピュータの処理能力の限界よりも,人間の理解力の限界によるソフトウエア生産性の限界の方が,

    まつもと直伝 プログラミングのオキテ第2回 (2)
  • まつもと直伝 プログラミングのオキテ 第2回(1):IT Pro

    オブジェクト指向プログラミングを構成する3原則のうち,前回は「ポリモーフィズム」を学びました。今回はオブジェクト指向の歴史を復習した後,残りの「データ抽象」と「継承」について解説します。 オブジェクト指向プログラミングを構成する3原則は「ポリモーフィズム」,「データ抽象」,「継承」であると言われます。3原則を別の名前で呼ぶこともあります。例えば,「ポリモーフィズム」を「動的結合」と呼んだり,「データ抽象」を「情報隠ぺい」,「カプセル化」と呼んだりします。しかし,名前が違っても指し示すものは同じです。多くの人はオブジェクト指向プログラミングにこれらの原則が重要であると考えているようです*1。 オブジェクト指向の歴史 最近になってオブジェクト指向という単語を耳にした人にとっては,オブジェクト指向というのは新しい単語が山のように出てくる難しい概念だ,という印象を持たれることが多いようです。実際,

    まつもと直伝 プログラミングのオキテ 第2回(1):IT Pro
  • Rubyist Magazine - Rubyist のための他言語探訪 【第 2 回】 CLU

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、日 Ruby の会の有志による Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0058 号 バックナンバー Rubyist Magazine 0058 号 RubyKaigi 2018 直前特集号 Rubyist Magazine 0057 号 RubyKaigi 2017 直前特集号 Rubyist Magazine 0056 号 Rubyist Magazine 0055 号 Rubyist Magazine 0054 号 東京 Ruby 会議 11 直

  • まつもと直伝 プログラミングのオキテ 第1回(2):IT Pro

    いかに書くか プログラムの記述方法であるプログラミング言語に対して,「いかに書くか」というのがプログラミング・テクニックです。連載では,表1に示すさまざまな領域のプログラミング・テクニックに踏み込みます。 表1にあるコーディング・スタイルは,プログラムの書き方の細かい部分,例えば変数名の選び方や,関数の書き方などを含みます。 アルゴリズムは問題を解決する手順のことです。世の中にはさまざまなアルゴリズムが知られています。プログラムはアルゴリズムの具体化と言っても過言ではありません。 いくつかのアルゴリズムは,自分の力だけで考え出すのは 困難です。例えば,配列要素を大きさの順に並べ替えるソートのアルゴリズムは数多く知られていますが,既存のアルゴリズムを全く知らなければ高速なソートは実現できないでしょう。アルゴリズムはしばしば特定のデータ構造を伴います。かつて「プログラミングとはアルゴリズム+

    まつもと直伝 プログラミングのオキテ 第1回(2):IT Pro
  • まつもと直伝プログラミングの掟1(1) プログラミングとオブジェクト指向の関係(上):IT Pro

    この記事は会員登録で続きをご覧いただけます申込は簡単3分! 今すぐ会員登録(無料) 会員の方はこちら 【8/20まで】今なら年額プランが2カ月分お得! 詳しくはこちら ▼日経クロステック有料会員になると… オリジナル記事がすべて読める 専門雑誌7誌の記事も読み放題 雑誌PDFを月100ページダウンロードできる

    まつもと直伝プログラミングの掟1(1) プログラミングとオブジェクト指向の関係(上):IT Pro
  • まつもと直伝 プログラミングのオキテ 第1回(3):IT Pro

    この記事は会員登録で続きをご覧いただけます申込は簡単3分! 今すぐ会員登録(無料) 会員の方はこちら 【この画面が表示された方限定】 会員登録(無料)で14日間有料記事が読み放題 ※14日間試読付き登録会員のお申し込みはお1人様1回限り

    まつもと直伝 プログラミングのオキテ 第1回(3):IT Pro