rez2のブックマーク (49)

  • 小野和俊のブログ:ソースコードのコメント率は20%を切ることが望ましい

    大学の研究室の教官は昔NTT研究所の所長をされていた苗村先生という人で(と言いつつ私は大学の研究室にほとんど顔を出していなかったのだけれど)、彼の発言のうち印象に残っているものの一つとして、昔はソースコードのコメント率が50%を切るものはドキュメント不足で品質が低いものとされた、という内容のものがあった。 今、改めて考えて、どのような言語であってもどのようなコーディング規約であっても、私はソースコードのコメント率は原則20%を切ることが望ましいと思う。可読性の意味でもメンテナビリティの意味でも、開発生産性の意味でも。私が考えるに、来コンピュータが読むためのものであるソースコードに人が読むためのコメントを付け加えなければならないのは、次の2通りの場合だけである。 1.公開されるAPI APIやソースコードそのものが公開される場合、利用者は不特定多数となり、利用者のスキルにもばらつきが出て、

    小野和俊のブログ:ソースコードのコメント率は20%を切ることが望ましい
  • 小野和俊のブログ:プログラマー風林火山

    アプレッソというベンチャー企業の CTO を務めて6年と2ヶ月になる。変化の激しいベンチャーに比較的長い期間身をおいていたので、社内外のいろいろなタイプのエンジニア仕事をしてきた。 あるエンジニアが参加することで開発チームが短い期間で大きく変わったこともあったし、開発チームのメンバーが15人いた頃よりも、お互い補い合えるエンジニアが5人くらいの頃の方が成果が出たりすることもあった。 そういう経験を重ねていくにつれ、私の中では、スターエンジニアと呼べる人たちの持っているものについての、いくつかの類型ができてきている。今まで一緒に仕事をしていく中で当に心強かったのは、最近エンジニアのキャリアパスの議論でよく言われるような財務のわかるエンジニアとか営業もできるエンジニアではなく、あるいは人と異なるユニークな能力を身に付けようとしているエンジニアでもなかった。ではどういうエンジニアが、というこ

    小野和俊のブログ:プログラマー風林火山
  • PHPコード最適化高速化TIPSまとめ | Webエンジニアのメモ

    TweetPocket PHPコード最適化高速化TIPSまとめPHP最適化 ベストプラクティス! 参考url: http://d.hatena.ne.jp/koto2/20080518/1211070116 01. static にできるメソッドは static として宣言しよう。(4倍速い) 02. echo の方が print より速い。 03. echo ‘文’,’字’; (カンマ区切り)の方が、’文’.’字’ (ドット連結)より速い。 04. ループの最大値は、ループ「内」ではなく「前」にセットしておこう。 05. 大きい配列のような変数は unset() してメモリを解放しよう。 06. マジックメソッド(例: __get, __set, __autoload)は使用を避けよう。 07. require_once はハイコストなのです。 08. include や require

  • PHPでマルチスレッド(バックグラウンド処理)を実現する方法 - EC studio 技術ブログ

    PHPで長時間かかる重い処理を行うとき、 マルチスレッドで動かせたらなぁ!と思うことがよくあります。 マルチスレッド処理を行うことで、時間のかかる処理を 複数同時に並列実行でき、高速化することができます。 (特に通信処理などで遅延がある場合に有効です) PHPにはpcntl_forkというプロセスをフォーク(複製)することが できる関数がありますが、これはPHPCGIモードで 動かしている場合にのみ有効です。 通常はPHPをApacheモジュールとして動作させていることが 多いので、これが使えないケースが多々あります。 他には、system関数などでシステムコールを行い、 など & を使って実行するという方法もありますが、 これもphpCGI版として実行できなければいけません。 システムコールで呼ぶプログラムをPerlなどで 書けばいいのですが、できればPHPで全部統一したいものです。

    rez2
    rez2 2012/03/24
    APIをマルチスレッドで叩けたらなあと思ってて見つけた。やってみよう!
  • メモ化 - Wikipedia

    メモ化(英: memorization)とは、プログラムの高速化のための最適化技法の一種であり、サブルーチン呼び出しの結果を後で再利用するために保持し、そのサブルーチン(関数)の呼び出し毎の再計算を防ぐ手法である。メモ化は構文解析などでも使われる(必ずしも高速化のためだけとは限らない)。キャッシュはより広範な用語であり、メモ化はキャッシュの限定的な形態を指す用語である。 メモ化という用語は1968年にドナルド・ミッキーがラテン語の memorandum(覚えておく)から作った造語である[1]。memorization(記憶、暗記)は同根語であってよく似ているが、メモ化という言葉は情報工学では特別な意味を持つ。 メモ化された関数は、以前の呼び出しの際の結果をそのときの引数と共に記憶しておき、後で同じ引数で呼び出されたとき、計算せずにその格納されている結果を返す。メモ化可能な関数は参照透過性を

    rez2
    rez2 2012/03/24
    DBに同じクエリを何度も叩きにいくのを防ぐために考えついた構造だけど、42年前に概念化されていた。
  • PHP :: static を使って関数をメモ化する [Tipsというかメモ]

    php では、下記のように static を使って返り値を記憶しておくことができます。 <?php function hoge() { static $ret = null; if ($ret !== null) return $ret; /** * * 大きなリソースを消費する何か複雑な処理が書かれるとする。 * * : * : * * ただし、この関数が呼ばれたタイミングや状態によって、返り値が変化する場合は * この手法(メモ化)は使えない。 * 同一プロセス内で何度呼ばれても返り値が同一の場合のみ有効。 * * 例えば、この関数内で下記のように、実行する時刻によって * 何か変化がある場合はNG * * $mode = 1; * if (date('g') > 10) { * $mode = 2; * } */ $ret = $result; // $result: 処理した結果を

  • MIYAVI WHAT'S MY NAME? - 30th B-DAY LIVE

    MIYAVI 30th B-DAY LIVE "From Tokyo 2 the world" 'WHAT'S MY NAME?' WHAT'S MY NAME? WORLD TOUR 2011 -NORTH & SOUTH AMERICA CIRCUIT- 20/10/2011 SanFrancisco, CA - Slims 21/10/2011 Los Angeles, CA - House of Blues 23/10/2011 Portland, OR - Hawthorne Theatre 24/10/2011 Seattle, WA - Showbox 28/10/2011 Chicago, IL - House of Blues 30/10/2011 Toronto, ONT - Phoenix Concert Theatre 31/10/2011 

    MIYAVI WHAT'S MY NAME? - 30th B-DAY LIVE
  • 言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー

    Twitterのタイムラインが面白すぎて、ついうっかり言語を擬人化して脳内で言語女子会なるものを開いてしまいました。なお、登場人物と実在の人物は1対1に対応しません。 undefinedとnullの両方必要なの? とあるプログラミング言語が集う女子会にて: Perl: そういえばさ、なんでJavaScriptちゃんってundefinedとnullの両方もってるの? JavaScript: えっ、未定義の変数にアクセスした時undefined返したいじゃない? Python: 例外投げて死ねばいいじゃん Ruby: 例外投げて死ねばいいよね Python & Ruby: ねー♡ Java: いやそこは参照型ならnull、数値型なら0で初期化すべきでしょ C: これだから最近の若い子は…初期化にだってコストが掛かるんだからね!デフォルトで初期化するなんて無駄遣いよ!必要な人だけが責任をもって初

    言語女子会: undefとnullは両方必要? - 西尾泰和のはてなダイアリー
  • iPhoneアプリ「アイドルマスター モバイルi」の無料配信が,AppStoreで2012年3月下旬にスタート。アイドルと一緒に,日本全国を駆けめぐろう

    iPhoneアプリアイドルマスターモバイルi」の無料配信が,App Storeで2012年3月下旬にスタート。アイドルと一緒に,日全国を駆けめぐろう 編集部:松隆一 さて,私は半世紀ほど生きているが,いよいよ旅立ちの日がやってきたようだ。北は北海道から,南は沖縄,小笠原まで,日全国,505か所のエリアが私を待っている! これまで旅行といえば,一人ないし同僚と仕事で出張という私だったが,これからは違う。765プロのアイドルが一緒なのだ。春香,金閣寺の前でちょっと記念撮影をしよう。帰りに銀座でお事だ。なんちゃって。なんて楽しそうなんだ。 あっ,いきなりすいません。えーと,なんのことかといえば,iPhone向けタイトル「アイドルマスターモバイルi」の配信が2012年3月下旬より始まるというお話だ。いきなりとっ散らかった感じなので,最初にまず重要なことから書いておくと,アイドルマスターモ

    iPhoneアプリ「アイドルマスター モバイルi」の無料配信が,AppStoreで2012年3月下旬にスタート。アイドルと一緒に,日本全国を駆けめぐろう
  • 少女を性奴隷、少年を戦闘兵に、ソーシャルで告発する「KONY 2012」とは?

    現時点で既にYouTube上で7500万回・Vimeo上で1670万回、合計9000万回以上再生されている「KONY 2012」というムービーはその中身や手法に対する賛否両論が主に英語圏を中心にして起きています。 KONY 2012 - YouTube このムービー自体はその名の通りJoseph Kony(ジョゼフ・コニー)という名の人物を有名にすることを主目的としています。なぜ有名にしようとしているかというと、まずジョゼフ・コニー(自称「ウガンダの預言者」)はLRA(神の抵抗軍)というウガンダ北部地域と南スーダンの一部などを中心にして活動している反政府武装勢力の指導者であり、自らを「霊媒」であると主張、自分だけに聞こえる霊の声に従い、「十戒」とアチョリの伝統に基づく神政政権の樹立を掲げて戦闘を30年近く続け、戦闘員の85%は11歳から15歳の誘拐した少年少女となっており、少年兵の場合は自

    少女を性奴隷、少年を戦闘兵に、ソーシャルで告発する「KONY 2012」とは?
  • Node.js チュートリアル | Node ビギナーズブック

    書について 書は、Node.jsでのアプリケーション開発を始めようとする皆さんに、 ”高度な”JavaScriptについて知るべきあらゆることを解説します。 よくある”Hello World”チュートリアルの、はるか上をいくものです。 ステータス 貴方が読んでいるのは、書のいわゆる最終版となります。 つまり書は、間違いが見つかった場合や、 Node.jsの新バージョンにおえる変更点を反映する時のみ、改訂されます。 最終更新日は2012年2月12日です。 書内のコードのサンプルは、Node.jsのバージョン0.6.10でテストしています。 ターゲット読者 書は、RubyPythonPHPJavaのような、少なくともひとつのオブジェクト指向言語を理解しており、 JavaScriptについてはあまり経験がなく、Node.jsについては全く経験がないという、 著者と同じようなバッ

  • ソーシャルゲームスケールアウトの歴史

    1. ソーシャルゲーム スケールアウトの歴史 gussan@Drecom Co., Ltd. Copyright © Drecom Co., Ltd. 12年2月20日月曜日

    ソーシャルゲームスケールアウトの歴史
  • 男女の違いを思い知った…学生にリレー小説を書かせたら教授も仰天の内容に : らばQ

    男女の違いを思い知った…学生にリレー小説を書かせたら教授も仰天の内容に 男女の間には、なかなか埋めがたい差があるものです。 コロラド大学で、教授が学生にリレー小説の課題を出したのですが、男女の違いを思い知らされる、かなりぶっ飛んだ結果となってしまったようです。 ※リレー小説とは、ひとつの作品の続きを別の人が順番に書いていき、みんなで作る小説のこと。 人気を呼んでいた文面をご覧ください。 教授は隣同士の学生にペアになってもらい、リレー小説を書かせたそうです。 課題: まずひとりが最初の一節分の短編を作ります。それをパートナーと私にメールし、受け取ったパートナーは続きを書き加え、それを二人で繰り返します。 前の人の内容をしっかり読み、話が流れるようにしなければいけません。話の終わりは二人が同意したところで完結とします。 そして以下のものが、実際に2人の学生によって教授に提出されたリレー小説だそ

    男女の違いを思い知った…学生にリレー小説を書かせたら教授も仰天の内容に : らばQ
  • 任意のPHPのバージョンと、任意のPHPUnitのバージョンを組み合わせて実行する。 - Feelin' Kinda Strange

    3ヶ月前にgistに書いてtwitterでつぶやいたきりでしたが、こっちにも記載。 いくつか方法はありますが、たぶん最低限の方法で、 任意のPHPのバージョンと任意のPHPUnitのバージョンを動かす方法です。 Ubuntuの場合を中心に書きますが、Windowsとかでもフルパス指定でやれると思います。 任意のPHPをmakeまでします。(方法割愛) 任意のPHPUnitをpyrusで任意のフォルダにインストールします。 PHPUnit 3.5の場合 3.4と3.5だとezComponentへの依存がありましたが、3.6からはなくなってようです。 bin/phpunitのインクルードバスを設定しなおします。 PHPUnit 3.5の場合 set_include_path(dirname(__DIR__).'/php' . PATH_SEPARATOR . get_include_path(

    任意のPHPのバージョンと、任意のPHPUnitのバージョンを組み合わせて実行する。 - Feelin' Kinda Strange
    rez2
    rez2 2012/03/04
    そういえばphp案件でユニットテストってやったことないなあ。
  • app-life.jp

    This domain may be for sale!

  • わかばマークのMacの備忘録 : Caffeine

    わかばマークのMacの備忘録 RSS * Admin * Write 初心者による Mac OSX の便利な使い方や、ソフトウェアの紹介など、Macのこといろいろ。

    rez2
    rez2 2012/02/28
    放置しとくとitunesが勝手に止まっちゃう問題が解決。有効にする時間が設定できるのもいい。
  • すべてのMacユーザーに贈る 便利でしかも無料なMacのアプリ100個紹介 | Last Day. jp

    私の周りでも『PCからMacにしました』という方が増えてきています。前回紹介した[Macを最大限にスピードアップさせる23の方法 | Last Day. jp]も沢山の方に見て頂けました。 今日はそんな方に朗報です。Macで使える便利でその上無料のアプリケーションを100個紹介致します。 Music & Video1.Boxee YouTube,Huluに代わる動画プラットフォームを目指すBoxee。Pandoraを聞く事もできます。 (標準:YouTube,Huluに代わる動画プラットフォームを目指すBoxee|gihyo.jp … 技術評論社) Boxee 2.HandBrake オープンソースのDVDや動画ファイルをiPhoneiPad対応動画に変換できるツールです。 (HandBrakeで字幕つきDVD/動画ムービーもiPod/iPhone/iPadへ一発変換 | iPod/iP

    すべてのMacユーザーに贈る 便利でしかも無料なMacのアプリ100個紹介 | Last Day. jp
    rez2
    rez2 2012/02/28
    こんなにいらん。
  • 槻ノ木隆のPC実験室

    既にニュースがあるように、バッファローは手のひらサイズの1TB NASである「LinkStation Mini」を発表。おまけに価格を発表時の89,250円から77,000円に改定するといった動きもあり、早速好評なようだ。内部に2.5インチの500GB HDDを2台搭載し、RAID 0/1の構成が可能で、USB HDDやUSBプリンタ、UPSとの連動まで可能という多機能ぶりを誇る。既に清水理史氏のレビューもあるが、改めて紹介したいと思う。 ●まさしく手のひらサイズ 今回はまだ出荷前のサンプルを借用した関係でパッケージは無いままである(写真01)。その体だが、まさしく手のひらサイズ。横に並べたのが2.5インチのSATA HDDだから、そのサイズの小ささがおわかりいただけよう。背面はこんな具合(写真03)で、電源スイッチとUSB、ACアダプタポート、Ethernetが並ぶ。Ethernet

    rez2
    rez2 2012/02/28
    ジャンボフレームを設定することでNASの速度が向上するのね。すべての機器を設定するのがめんどくさ。
  • LinkStation (LS-WXL/R1)のレビュー・評判と口コミ - BTOパソコン.jp

    やり過ぎタイトルですが、バッファローのリンクステーション。 現在最も安いと思われるNASで、LS-WXL/R1シリーズのLS-WX1.0TL/R1という型番。合計1.0TBの容量として500GBのHDDが2入っている、RAID0と1が可能なネットワークドライブ。 導入出来そうならバックアップ用としてかなりお勧めなので、簡単では有りますがどのような物か解説して参ります。 RAIDの0と1が出るので判らない場合はこれを。面倒なら絵だけでもどうぞ。 NAS用にRAID0とRAID1の構築を初心者用に図解NASNetwork Attached Storage)という言い方がややこしそうですが、簡単にいうとネットワークドライブ。外からも接続出来たり、中小企業でも使っている所は有るかと思いますが、家庭内LANの中にハードディスクのみがネットワークに参加しているような感じです。 現物の箱に有る図解よ

  • 月間11億PVのソーシャルゲーム「単車の虎」の裏側【3】 | Donuts Tech Lab.

    November 07, 201118:49 カテゴリ 月間11億PVのソーシャルゲーム「単車の虎」の裏側【3】 ツイート はじめに 今回は、単車の虎サーバ群のうち、メインとなるWebサーバの以下の3つについて紹介します。 MPM設定 APC セッション共有 なお、他の言語であればAPサーバを別に構築するのが普通ですが、PHPを使用している「単車の虎」ではWebサーバ=APサーバとして運用しています。 (nginx+fastcgiにも興味があり試してみたいところです) Apache MPM 設定 Apacheはさすがに歴史があるだけあって、枯れているという印象です。 他のコンポーネントは、細かいチューニングを行わないと全く性能が出なかったり、問題を解消するためにバージョン更新が必要になったり、使い方を工夫して問題を回避したり…と今までいろいろ苦労しました。しかし、Apacheに起因する問題