タグ

*プログラミングに関するmdoiのブックマーク (79)

  • コーディング規約をまとめてみた (Rails編) - bojovs::blog

    半年ほど前に書いた「コーディング規約をまとめてみた (Ruby編)」に引き続き、Railsのコーディング規約もまとめてみました。前回と同じように、できるだけ理由を併記するよう努めました (主観的なものも含まれていますが…)。 気に入らない規約や、この記事に書かれている規約以外にも気をつけていることなどありましたら、コメントなどで教えてもらえると嬉しいです (理由も合わせて書いてくれると助かります)。 Railsのコーディング規約は以下のページを参考にまとめています。 http://guides.rubyonrails.org/contributingtorubyonrails.html#follow-the-coding-conventions https://github.com/bbatsov/rails-style-guide 前提 コード例は「コーディング規約をまとめてみた (Ru

  • そろそろきっちりJavaScript | コラム | エンタープライズ | マイコミジャーナル

    Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます

  • Class-Based vs. Prototype-Based Languages - JavaScript | MDN

    クラスベース言語とプロトタイプベース言語 JavaC++ といったクラスベースのオブジェクト指向言語はクラスとインスタンスという 2 つの異なる実体があるという概念に基づいています。 クラスはあるオブジェクトの集合を特徴付けるすべてのプロパティ(Java ではメソッドとフィールドを、C++ ではメンバをプロパティと見なす)を定義する。クラスとはそれが表すオブジェクトの集合の特定のメンバではなく、抽象的なものである。例えば、Employee クラスで従業員すべてを含む集合を表す。 一方、インスタンスはクラスを実例にしたものである。つまり、そのメンバの 1 つということである。例えば、Victoria は Employee クラスのインスタンスとなることができる。このクラスは特定の個人を従業者として表すものである。インスタンスはその親クラスのプロパティを正確に保持する(それに他ならない)

    Class-Based vs. Prototype-Based Languages - JavaScript | MDN
  • JavaScript の不思議な面白さ - 第四回

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 前回の「第三回」ではよくある手法でプログラムの分離を試してみました。 そろそろこの連載も折り返し地点となります。 実はこの記事は、最初、小さな課題を与えられたプログラマが正攻法で突撃するもうまくいかず、策をろうしてやっと勝利、その知識を広めようとライブラリ化を行ったところで難題にぶち当たり、裏街道に突入。状況を打開する為にプログラム技術を駆使し、最終的にフレームワークとして完成させる、というストーリーになっています。 * さて、さっそく前回の答えですが「A」です。 まずは下のグラフをごらんください。 上記は、各実装でどれぐらい表示に時間が掛かるかを測定したものです。 単位は ms (ミリ秒=1000分の1秒)です。 重要なのは プ

    JavaScript の不思議な面白さ - 第四回
  • PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」:phpspot開発日誌

    PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」 2009年03月25日- XHProf Documentation (Draft) PHPプログラムを解析して何処が重いか?がブラウザ上で簡単に分かる「XHProf」。 通常、PHPでのプロファイリングというと、Xdebugでファイルを吐き出して、WinCacheGrindやKCacheGrindで読み込むというのが定番です。 ですが、この方法だと、ファイルを吐き出したファイルをGETして、ソフトに読み込ませる、というちょっと面倒な手順が必要でした。 XHProf を使えば、ブラウザ上で、プロファイリングが出来るみたいです。 XHProfの特徴 まず、セグメントごとの実行時間やメモリ利用の状況なんかがブラウザで見れます。 プログラムの構造を把握するのにも使えます。 プロファイリングの階層表示 2つのプロファ

    mdoi
    mdoi 2009/03/25
    プロファイル
  • PHPコーディングに関する最適化TIPS 2009:phpspot開発日誌

    PHP micro-optimization tips | Alex @ Net PHPコーディングに関する最適化TIPS というのがまとまっていましたのでご紹介。 元記事では、micro-optimization ということで、これらを直すのももちろんだけど、ロジックを直す方がパフォーマンスは改善されるということを言ってるようです。 個人的な勉強がてら、メモとして残します。 ・__call のマジックメソッドを使うと遅い ・staticなメソッドはインスタンス化したオブジェクトのメソッドより速い ・関数呼び出しは、staticなメソッド呼び出しより高速 ・ローカル変数へのアクセスはグローバル変数へのアクセスより速い ・グローバル変数へのアクセスは、オブジェクトのプロパティより速い ・オブジェクトプロパティへのアクセスは、__get, __set を使うと遅い ・初期化された変数はそうでな

  • MapReduce - naoyaのはてなダイアリー

    "MapReduce" は Google のバックエンドで利用されている並列計算システムです。検索エンジンのインデックス作成をはじめとする、大規模な入力データに対するバッチ処理を想定して作られたシステムです。 MapReduce の面白いところは、map() と reduce() という二つの関数の組み合わせを定義するだけで、大規模データに対する様々な計算問題を解決することができる点です。 MapReduce の計算モデル map() にはその計算問題のデータとしての key-value ペアが次々に渡ってきます。map() では key-value 値のペアを異なる複数の key-value ペアに変換します。reduce() には、map() で作った key-value ペアを同一の key で束ねたものが順番に渡ってきます。その key-values ペアを任意の形式に変換すること

    MapReduce - naoyaのはてなダイアリー
  • クックパッドのRailsリニューアル

    4. http://cookpad.com 1998 年オープン 「毎日の料理を楽しみにすることで心からの笑顔を増やす」ことのみを追求する 世界で一番!生活の役に立つサイト作り 5. おいしいものができたとき - 「レシピをのせる」 料理レシピを作って整理 みんなに公開 おいしいものがべたいとき - 「レシピをさがす」 公開されている 42 万品のレシピから今日べたい物を決める 作った写真をレシピ作者に送ることも

    クックパッドのRailsリニューアル
  • 公開APIを利用したサンプルサイトを作っていくよ

    新着記事一覧 2011/06/18 : 「allow_url_fopen=Off」の環境にて 2009/03/13 : Google AJAX Feed API 2009/02/27 : Twitter API 2009/02/24 : flickr API 2009/02/14 : JugemKey Web ad Fortune 無料API 2009/02/08 : 公開APIリンク集1-サムネイル系API 2009/02/06 : サムネイルAPI 2009/02/04 : Mozshot 2009/02/02 : HeartRails Capture 2009/01/30 : SimpleAPI ウェブサイトサムネイル作成API 次のページへ>> 公開API活用ガイドの第4章のサンプルや、その他のサンプルにおいて、「simplexml_load_file()」関数を使っているコードが

  • レコメンドエンジンのアルゴリズムの学術情報を一挙総まとめ

    February 10, 2009 14:31 レコメンドエンジンのアルゴリズムの学術情報を一挙総まとめ カテゴリ レコメンデーション ホットラボ Tweet ホットリンクは、創業以来8年間ずっと『究極のエージェント』を目指して会社を運営してきているので、レコメンドエンジン・データマイニング・テキストマイニング・WEBマイニング・対話エンジン等の技術はずっと開発してきました。 今回は、ホットリンクのレコメンドASPサービス「レコナイズ」の開発に際して、再度まとめたレコメンドエンジンに関する学術分野での基から最新までの論文などをご紹介しておきます。 (ホットラボ(ホットリンクの研究チーム)メンバーである産業技術総合研究所の濱崎さんが中心となって以前まとめてくれたものです) **********************************************************

    レコメンドエンジンのアルゴリズムの学術情報を一挙総まとめ
  • 集合知プログラミング 5.1 5.2 5.3 最適化 - DUNNO-CLEARブログ3.0

    集合知プログラミング 作者: Toby Segaran,當山仁健,鴨澤眞夫出版社/メーカー: オライリージャパン発売日: 2008/07/25メディア: 大型購入: 91人 クリック: 2,220回この商品を含むブログ (275件) を見る 今回もサンプルコード(python)から、Rubyへの書き換えに挑戦しました。 目標は一応サンプルコードに忠実にです。 5章の5.1から5.3までの、コスト関数の所までを書いてみました。 出版社から配布されているサンプルコードに間違いがいくつかあり苦労しました。 サンプルコードの正誤 PCI_Code\PCI_Code Folder\chapter5\optimization.pyの32,33行目 # サンプルコードのコード out=flights[(origin,destination)][int(r[d])] ret=flights[(desti

    集合知プログラミング 5.1 5.2 5.3 最適化 - DUNNO-CLEARブログ3.0
    mdoi
    mdoi 2009/01/11
    集合知プログラミングのあれ
  • はやいTCPサーバの書き方 - nyaxtのPC作業ログ

    cagra高速化にあたってのノウハウを一部公開してみます。また明日校正/更新します。つっこみ待ちです。 select(2)の代わりにepoll_wait(2), kqueue, /dev/epoll等を使う 他に山ほど解説ページがあるので略 大量のディスクリプタを処理するようなサーバの場合、多少効果があるかもしれません。しかし、クライアント数が少ない場合、劇的な性能の向上は見込めないとおもいます。クライアント数が多い場合は、1セッション1スレッドなモデルではOS側のタスクスイッチングのオーバーヘッドが効いてくることも多いです。クライアント数を増やすには複数のセッションを1スレッドで処理できるようにすると良いです。実装にあたっては、non-blocking ioを活用すると効果的です。 TCP_NODELAYを設定する Nagleアルゴリズムをオフにします。多少応答性が良くなります。 これっ

    はやいTCPサーバの書き方 - nyaxtのPC作業ログ
  • iPhoneアプリ開発関連情報 - もとまかのiPhone・iPod touch戯れ日記

    MacBookのセットアップが終わり、無事iPhoneSDKも動いてます(^o^)最近色々集めてた、iPhoneアプリ開発関連情報を以下に列挙しておきます。 最初にやること iPhoneアプリ開発の始め方http://d.hatena.ne.jp/yaneurao/20080831#p1 ネイティブアプリ開発に必要な機材http://iphone-dev.jp/modules/pico/index.php?content_id=3 MacBook 買った後にやったことまとめhttp://d.hatena.ne.jp/amachang/20080318/1205824212 MacBookAirを買ったあとにやったことまとめhttp://d.hatena.ne.jp/HolyGrail/20080305/1204729899 iPhone SDKの開発に入る前に読んでおきたい日語の資料(O

  • はてブユーザ間の類似度 - Life like a clown

    注目の動画問題と総合メディア論事件との関連 いつか書こうと思いつつ随分と放置していた話題.きっかけは,NO!と言えるようになりたい:「注目の動画」は当に劣化したのかより.注目の動画(特にニコニコ動画側?)にアイドルマスターやらアニメ関係の動画ばかりが挙がっていて[これはひどい]と言う話題が一時期盛んでした.これに関連して,ひとつ気になっていたことがあったので調べてみました. 注目の動画(ニコニコ動画)からidolm@sterタグのついているエントリを新しいものから50個抜き出して,それらのエントリをブックマークしているユーザの分布を調べました.その結果がこちら(完全なログ:user_dist_nicovideo.log).一番右がユーザ名で,その隣が50エントリの中でそのユーザがブックマークしていたエントリの数です. get 50 entries 0 47 Ubuntu 1 44 ak9

    はてブユーザ間の類似度 - Life like a clown
  • rubyでニコニコ動画をダウンロードするスクリプト | earth

    またまたmechanizeネタ。 今度はニコニコ動画をダウンロードするスクリプトです。 ランキング一位の動画をダウンロードしてきます。 require ‘rubygems’ require ‘mechanize’ require ‘kconv’ require ‘cgi’ agent = WWW::Mechanize.new #ログインする agent.post(’https://secure.nicovideo.jp/secure/login?site=niconico’, ‘mail’ => ‘メールアドレス’,'password’ => ‘パスワード’) #ランキングページから1位の動画ページへ遷移 ranking_page = agent.get(’http://www.nicovideo.jp/ranking/mylist/daily/all’) vid

  • rubyでニコニコ動画のコメントを取得するスクリプトを書いてみた | earth

    以前ニコニコ動画をダウンロードするスクリプトを書いたけど、 あれは純粋に動画だけで、コメントがダウンロードできてない。 ということで、今度はコメントもダウンロードしてみる。 はじめにざっとニコニコ動画の仕様をおさらいすると、 動画画面へアクセスする(例えばhttp://www.nicovideo.jp/watch/sm2721967) Flashデータを取りにhttp://www.nicovideo.jp/api/getflv?v={動画ID}へアクセス(動画IDは1でいうsm2721967) 2のレスポンスで動画に関する様々なデータが返ってくる 3のレスポンスの中のurl=hogehogeへアクセスすると動画をダウンロードできる だったけど、コメントはデータさらに2のレスポンスの中のms=hogehogeへアクセスすると取得できる。 ただしアクセスする際は <thread

  • C++ Style Guide

    Benjy Weinberger Craig Silverstein Gregory Eitzmann Mark Mentovai Tashana Landray This style guide contains many details that are initially hidden from view. They are marked by the triangle icon, which you see here on your left. Click it now. You should see "Hooray" appear below. Hooray! Now you know you can expand points to get more details. Alternatively, there's an "expand all" at the top o

  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

  • 言語のGC機能と参照カウント (前編) - moriyoshiの日記

    たまにはちゃんと書いたほうがいいかなと思って書いてみる。 あらまし 原始的な参照カウントベースのガーベジコレクションは、循環参照が発生すると、その参照に含まれるオブジェクトを回収できないという厄介な問題を抱えている。循環参照とは、1つ以上のオブジェクトが環状の参照関係を形成している状態のことで、このような参照を持つオブジェクトは、やがてルート (ある時点で言語ランタイムが管理しているすべてのスコープと考えてもいい) から辿りつけなくなって、解放されずにリークしてしまう。 この問題はいろんな LL 言語に見られる。 Perl の場合 use Devel::Peek qw(Dump); sub make_circular { my $foo = {}; my $bar = {}; my $baz = {}; $foo->{'bar'} = $bar; $bar->{'baz'} = $baz;

    言語のGC機能と参照カウント (前編) - moriyoshiの日記
  • Rexx - Wikipedia

    Rexx (Restructured Extended Executor) is a programming language that can be interpreted or compiled. It was developed at IBM by Mike Cowlishaw.[3][4] It is a structured, high-level programming language designed for ease of learning and reading. Proprietary and open source Rexx interpreters exist for a wide range of computing platforms; compilers exist for IBM mainframe computers.[5] Rexx is a full

    Rexx - Wikipedia