タグ

2009年5月18日のブックマーク (10件)

  • Perlのメソッド一覧 - Doge log

    スタッシュを教えてもらったので書いてみる。 canで調べてるのと同じ感じに。 static PyObject * perl_get_methodsnames(Perl_Object *self, PyObject *args) { char *module; HV *stash; HE *entry; PyObject *res; if (!PyArg_ParseTuple(args, "s:Perl.get_methodnames", &module)) return NULL; PerlInterpreter * my_perl = self->perl; PERL_SET_CONTEXT(my_perl); res = PyList_New(0); stash = gv_stashpv(module, FALSE); if(stash){ hv_iterinit(stash); wh

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

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

    小野和俊のブログ:ソースコードのコメント率は20%を切ることが望ましい
  • プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ

    プログラミングを始めてから今日に至るまで、 様々なタイプのプログラマーと開発を共にしてきたが、 驚くべき速度で高い品質のソフトウェアを作り上げるプログラマーには、 一つ共通の特徴があるように思える。 それは、「はまる」時間が極端に短い、ということである。 風のプログラマー」を指向しており、開発速度を重要視している。 例えば平成14年未踏ソフトウェア創造事業「PICSY」では、 発表直前に知人でプロジェクトリーダーの鈴木健にレスキュー隊として呼ばれて 2,3日でGUI全般と、クライアント/サーバー通信部分の設計と実装を終わらせたのだが、 このときなどは、大体の要件を口頭で聞いた後は、 ほぼまったく手が止まらずコードを書き続ける感じで開発をしていた。 「はまる」時間の長さは開発速度に直結するわけだが、 プログラマーが「はまる」場合にはある程度の傾向があると思うので、 今日は「はまる」プログラマ

    プログラマーの開発速度は「はまる」時間の長さで決まる : 小野和俊のブログ
  • バーベキュー優先度問題、あるいは人生における優先度の問題 : 小野和俊のブログ

    忘れられない思い出というのは意外とちょっとしたところから生まれるものだが、 私にとってのそんな思い出の一つに、大学生の頃の「バーベキュー優先度問題」というものがある。 簡単に言えば、バーベキューのために買ってきた肉が多すぎたのである。 この多すぎる肉をどのようにべ進めるかについて、私は二つの方法を考えた。 (2) まず安い肉からべ始める。途中でお腹一杯になってしまっても、デザート別腹理論的に 美味しい肉であればべようという気が起きて完できるだろう。 当時の私は、べ物を粗末にしてはいけないと殊勝(自己評価)なことを考え、 (2)を選んだ。しかし、肉が別腹に入るはずなど無く、結果として残ったのは べきれずに残された大量の上質な肉だった。 買ってきた肉をべきれず、しかも良い肉の方を残してしまったのである。 「ちくしょう!」、私は自分の判断の誤りを悔やんだ。そして敗北感に打ちひしがれ

    バーベキュー優先度問題、あるいは人生における優先度の問題 : 小野和俊のブログ
  • プログラミング格言集

    psychopathより。 金言、格言は古今東西いろいろあるのだが、ここではプログラミングに関する格言がまとめられていたので、抜粋して翻訳してみる。翻訳に間違い等があった場合は、コメント等で指摘してください。 We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil 私たちは、時間の約97%を占めるわずかな効率に関しては忘れるべきである: 時期尚早な最適化は諸悪の根源だ。 - C. A. R. Hoare Walking on water and developing software from a specification are easy if both are frozen 水の上を歩くのと、仕様に基い

  • もしもに備え生鮮食品が購入できる「ネットスーパー」まとめ・比較 - ネタフル

    関西方面では新型インフルエンザの感染が拡大中です。さらに感染が拡大し、人が集まるようなところへの出入りが困難になりと困るのは日々の買い物です。 そうでなくとも、外出できない理由は人それぞれであり、ネットから生鮮品を購入できたら便利に思うことは少なくないでしょう(我が家も細君が妊娠時に助かりました)。 そこで便利なのが、ネットで生鮮品を購入できる「ネットスパー」です。ネットから注文できる、日常生活用に生鮮品が購入できる、当日の配達が可能かどうか、といった観点からピックアップしてみました。 ////////// <イトーヨーカドーネットスーパー> 店頭で販売している新鮮な料品や日用品、新聞折込みチラシ掲載品(一部商品除く)など約3万点の商品の中からお選びいただけます。 エリア: 北海道、岩手県、宮城県、福島県、埼玉県、東京都、千葉県、神奈川県、愛知県、奈良県、大阪府、兵庫県(郵便番号か

    もしもに備え生鮮食品が購入できる「ネットスーパー」まとめ・比較 - ネタフル
  • 統計的に正しいランキングを行う方法をJavaで書く - バイオインフォマティクスって何ですか?

    Java | 統計的に正しいランキングを行う方法を見たのでちょっとJavaで書いてみる。はじめになにがしたいかというと、「レイティング」というのをご存じでしょうか。Amazonとかで商品を購入者が星つけて評価したりしてるやつ。ああいうので「良かったランキング」というのを作りたい。みんなが「購入して良かった」という評価をつけてる商品は、他の人にとっても「良かった商品」になる可能性が高い。いい商品だということがわかるわけです。問題点じゃあどういうふうにランキングをつければいいの?ということを考えると、次の問題にぶちあたる。評価してる人の数の違い。例えば、Aという商品は100人が評価していて、平均の星の数は 4.8 だとする。一方、Bの商品は1人が星5つで評価していたとする。このとき、Aの商品とBの商品ではどちらをランキング上位にすればいいだろうか?あなたならどちらを買いたい?Aはたくさんの人が

  • 少し前にはてなブックマークのJavaScriptが変わったかも - Mozilla Flux

    具体的にいつ頃からかは分からないのだが、最近、はてなブックマークの表示が従来よりもスムーズだ。コメントやスターがたくさんついたページを読み込んでも、スクリプトの処理が遅くなっている旨の警告が出ない。最初、ShiretokoのTraceMonkeyが改良されたせいかと思った。が、Firefox 3.0.10でも速くなっているのを感じる。 たとえば、『実環境のテスト……にはたぶんならない』で紹介した、「Firefoxノベルティセット欲しい!とは - はてなキーワード」のブックマークがそうだ。最初にコメントがずらっと表示されるところまでは同じだが、後からスターがブロックごとに順番に表示されていくように見える。以前スターは一気に表示されていたという記憶なのだが。 Webで検索したところ、「IT戦記」の『はてなブックマークのコンテンツの JavaScript を高速化する』と『はてなブックマーク J

    少し前にはてなブックマークのJavaScriptが変わったかも - Mozilla Flux
  • エクストリーム・プログラミング - Wikipedia

    エクストリーム・プログラミング、XP(英: extreme programming)は、 ソフトウェア品質 を向上させ、変化する顧客の要求への対応力を高めることを目的としたソフトウェア開発プロセスである。アジャイルソフトウェア開発の一つとして[1][2][3]、短い開発サイクルで頻繁に「リリース」することを推奨することで、生産性を向上させ、新しい顧客の要求を採用するためのチェックポイントを導入することを意図している。 エクストリーム・プログラミングの他の要素には、ペアでのプログラミングや広範なコードレビューの実施、すべてのコードのユニットテスト、機能は実際に必要となるまでは追加しない、フラットな管理構造、コードのシンプルさと明快さ、時間の経過とともに問題がよりよく理解されたことでの顧客の要求の変化を期待する、顧客やプログラマーでの頻繁なコミュニケーションなどがある[2][3][4]。この方

    エクストリーム・プログラミング - Wikipedia
  • Google CodeがGitではなくMercurialを採用へ - @IT

    2009/04/28 米グーグルは4月24日、ソフトウェア開発プロジェクトのホスティングサービス「Google Code」で、これまでのSubversionに加えて分散バージョン管理システム(DVCS)の「Mercurial」のサポートを開始すると発表した。現在はプレビューリリースで、一部のプロジェクト利用者に提供。一般リリースに向けて、いくつかの課題を解決していくという。Google Codeでは、Mercurialサポートのために、一般のMercurialがオブジェクトの保存に使うOSネイティブのストレージに代えて、グーグルの分散データベースシステム「BigTable」を使うように書き換えたという。 DVCSとしては、MercurialのほかにGitやBazaarが知られている。従来からある中央管理型のバージョン管理システムに比べて、分散開発がやりやすいことから、普及が進んでいる。例え