タグ

programmingに関するgfxのブックマーク (142)

  • premature optimization is the root of all evil - soutaroブログ

    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 http://blog.cnu.jp/2009/05/16/%e3%83%97%e3%83%ad%e3%82%b0%e3%83%a9%e3%83%9f%e3%83%b3%e3%82%b0%e6%a0%bc%e8%a8%80%e9%9b%86/ 「時間の約97%を占めるわずかな効率」は明らかに変なような気もするけど、この文だけを見ていても、良くわからない。だいたい97%ってどこから出てきたんだろう。残りの3%はなんだ? 適当に

    premature optimization is the root of all evil - soutaroブログ
  • 何故、私はPerlを続けるのか | taro-nishinoの日記 | スラド

    Jonathan Rockway氏は、いわゆるモダンPerlの旗手の一人です。Catalystのも書いています。彼は昨年8月に、Why I stick with Perlというエッセイを書いていました。 今何故、それを思い出しているのか言いますと、言語論争があちこちにあり、宗教論争と同じく永遠に終わらないのは誰の目にも明らかなのに、特に日において(私が日人だから余計に思うだけかも知れませんが)後発の言語信者が蒸し返すことが多いので、彼のエッセイを思い出した次第です。 今読み返しても、私の言いたいことと全く同じです。以下、私訳を載せて置きます。 何故、私はPerlを続けるのか 2008年8月4日 Jonathan Rockway 私は今朝、discussion about Perl on Hacker Newsに気づいた。その記事は、著者がPerlを好きな理由についてのものである。この

  • 「もの型」オブジェクトと「ひと型」オブジェクト - Perl入門ゼミ

    Perl › オブジェクト指向 › 「もの型」と「ひと型」 オブジェクト指向プログラミングにおいてオブジェクトは「もの」ではありません。 オブジェクトには、「もの」型オブジェクトと、「ひと」型オブジェクトの2種類があります。 1.「もの」型オブジェクト 「もの」型オブジェクトとは、「もの」を表現したオブジェクトです。以下は、オブジェクトですが、属性としてtitle( タイトル )とprice( 価格 )を持ちます。 my $book = Book->new(title => 'a', price => 2300); このような「もの」型オブジェクトはコンストラクタで、タイトルや価格などのの性質を設定します。「もの」型オブジェクトは、ハッシュに非常に近いものだと考えればよいと思います。もの型オブジェクトは構造化されたデータを表現します。 my $book = {title => 'a',

    「もの型」オブジェクトと「ひと型」オブジェクト - Perl入門ゼミ
  • 分散バージョン管理システムGitの使い方入門 | OSDN Magazine

    バージョン管理システムと言うとSubversionやCVSが有名だが、近年急速にユーザーを増やしているバージョン管理システムに「Git」 がある。GitLinuxカーネルの開発リーダーとして知られるLinus Torvalds氏が中心となって、Linuxカーネルの開発に使用する目的で開発した分散型バージョン管理システムである。2005年に開発が開始されて以来さまざまなプロジェクトでの採用が進み、現在ではPerl 5やRuby on RailsAndroid、Wine、X.orgなど、有名な大規模プロジェクトで採用されるに至っている。 記事では、このGitを使用するのに必要な「分散型バージョン管理システム」の基的な考え方を紹介するとともに、Gitの導入方法や基的なGitの使い方について解説する。 分散バージョン管理システムとは? GitLinuxカーネル開発で用いられることを前提

    分散バージョン管理システムGitの使い方入門 | OSDN Magazine
  • Perlプログラマと話していてもつまらない。

    Perlやり始めてとあるPerlサークルに出入りするようになった。 あいつらが集まると PHPer(笑)Rubyは認めるでもRubyコミュニティは嫌いperlが無ければネットはここまで発展しなかった日のネットの礎を築いた俺らのスキルに誇りを持つべきえがいはうざいdankogaiの上から目線がうざいけんすうの善人振る舞いがきもいダメな方のネタ帳ってどっちだよ?(場内爆笑)はてなは俺が育てたotsuneの観測範囲を見習おう(場内うなづく)tokuhirom半端ねぇHolyGrailの説教半端ねぇ(場内苦笑)miyagawaのコードはセクシー4大卒にろくなやつはいねぇ。miyagawa以外。高専or専門卒最強(乾杯が始まる)PHPer(2度目の笑) そんな話でループしてる。 2000年代はPerlの年だったと言うことができるけど、既に凋落は見え始めていて確実に2010年代はPerlの年ではなく

    Perlプログラマと話していてもつまらない。
  • そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー

    以前、とあるシステムのソースコードを読む機会があったのだけどあまりにひどかった。あのひどいコードでまあまあまともに動いているというのが逆に信じられない。今日昼ご飯をべながら少し話していたのだけど意外と知られていないようなので、話せる範囲でいかにひどいのか説明してみようと思う。 まず、ソースコードが大雑把に見積もって3750万行あるのだけど、その中でまともに機能しているコードは3%しかない。10分の1程度のソースコードで同程度の機能を実現しているシステムもあるのでほんとあのシステムのコードはゴミだと言っても過言じゃない(*1) プログラマとしてはなんでそのプロジェクトはそんな状態になってしまったのか気になるところだけども、まあ多くのプロジェクト同様、真相を知る人は誰もいない。でもまあ、実際に機能しているコードのコピーみたいなものがあちこちに散らばっていることからしてコピー&ペーストが盛んに

    そろそろ例のプロジェクトについて言及するか - 西尾泰和のはてなダイアリー
  • アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found

    2009年01月31日01:00 カテゴリLightweight LanguagesMath アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 これなのですが.... 同じ文字列のn回繰り返しを作る最速の方法を探求してみた - muddy brown thang ちょっとした事情により、ある文字列のn回繰り返しを作る関数 (PHPでいうところのarray_repeat(), Perlで言うところの「"..." x n」、RubyPythonで言うところの「"..." * n」) を高速に実装しなければならない状況に遭遇したのでベンチマークをとってみたところ、その結果がとても新鮮で驚いたので、これを共有しつつもダメ出ししてもらえないかなーと思って晒してみることに。 なぜかもっとシンプルな奴がなかったので。 以下、比較。初期値はIEにあわせてあります。Firefox/Saf

    アルゴリズム - 同じ文字列のn回繰り返しをlog n回で作る方法 : 404 Blog Not Found
  • 僕やはてながPerlを選ぶ理由 - naoyaのはてなダイアリー

    ご存知の通り、はてなのシステムはほぼすべてPerlで書かれています。そもそも僕がはてなに入った一つの理由に、僕が一番得意とする言語であるPerlを使ってシステムを構築していたという点があったりします。 世の中にはたくさんのプログラミング言語があります。PerlJavaRubyPHPPython、C、C++、lisp、Smalltalk、Cobol...数え上げたらキリがありません。そして、プログラマはかならずと言っていいほど、どれかひとつ以上の言語を愛しています。好き、ではなく愛しているのです。 自分が愛しているものを批判されると感情的になりやすいのは人の常、プログラミング言語の差異に関する議論は炎上しがちで、よく宗教戦争だなんて言われたりもします。その中で、言語なんてどれも一緒だなんていう乱暴なまとめがされることもよくあったりします。 しかし、何年かプログラマというものを経験して

    僕やはてながPerlを選ぶ理由 - naoyaのはてなダイアリー
  • Linus「C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが 簡単に生産されるようになってる」

    /15 [4] (21:54) 原文: http://lwn.net/Articles/249460/ From: xxx To: xxx Subject: Re: [RFC] builin-mailinfo.c をマシな文字列ライブラリを使うようにすること Date: Thu, 6 Sep 2007 18:50:28 +0100 (BST) Message-ID: <alpine.LFD.0.999.0709061839510.5626@evo.linux-foundation.org> On Wed, 5 Sep 2007, Dmitry Kakurin wrote: > > Git のソースコードを最初に見たとき、ヘンだと思ったこと: > 1. C++ じゃなくてただの C を使ってる。理由は謎。移植性がどうとか言わないで、 > そんなのウソに決まってるから。 *あんた* のほうこそ

  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

  • Eclipseのメリットを知ってほしい - プログラマーの脳みそ

    高機能なIDEを使え、という話題になった場合にはだいたい決まった反論がある。それは確かにIDEの欠点の部分で、要するにIDEを使うかどうかは、そのメリット・デメリットを秤にかけて傾いた方を選ぶべきだ。 私は仕事では主にJavaの開発をやっているのだけど、どうにもEclipseの機能を使えていない人が多い。もちろん、私もそれほどEclipseをマスターしているというわけではないのだけども、それでもテキストエディタでの開発に戻らないだけの十分な理由がある。そこを伝えたかったのがEclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそだ。 こうした大きな恩恵があるにも関わらず、「そんな恩恵があるなんて知らなかったから」という理由でEclipseを使わないなんて選択をして欲しくない。Javaの父たるジェームズ・ゴスリン氏もIDEの重要性を訴えている。もっとも彼が推すのはNe

    Eclipseのメリットを知ってほしい - プログラマーの脳みそ
  • Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ

    ソフトウェアはいろいろな作業の効率化に貢献してきた。プログラミングという作業も例外ではない。現代の高度なIDE(統合開発環境)はプログラマが単純でつまらない作業に時間を割かずに済むようにさまざまな機能を提供してくれる。 もうテキストエディタ+コマンドラインでのコンパイルなんて環境には戻れない。以下は自分が仕事でメインに使っているEclipseというIDEを使い続ける理由。 (追記)私は仕事では主にJavaの開発をやっている。C/C++/C#の開発では以下に挙げるメリットを享受できない部分があることを断っておく。 1. コードの自動補完 標準API+フレームワークのAPIで万単位のクラスが存在するので、暗記は無理。クラスに存在するメソッド名、フィールド名までの暗記はもっと無理。よく使う範囲なら暗記しているけど、typo -> コンパイルエラー -> 探して修正 の手間より、自動補完が断然効率

    Eclipseからテキストエディタに戻れない10の理由 - プログラマーの脳みそ
  • プログラミングと心理学 - てぃーまるにっき

    現在、大学で心理学を中心に勉強しているのですが、こんなを見つけて読んでみました。前半の社会心理学的アプローチの記述は、共感できる部分も多いのですが、時代が古くインターネットの利用が前提となっている現代にはあてはまらない部分もあり、適応読み替える必要があると感じました。 後半の認知心理学的アプローチの記述は、自分自身が現在認知心理学系を中心に講義をとっていることもあり、非常に興味深く感じました。 実際に仕事でプログラミングをしていると、人の書いたソースコードを読む機会が非常に多くありますが、その中には「何でこうなっちゃたの?」と思わされる記述が良くありますが、そんな中での一つをご紹介します。 ■ bcopy ってなんじゃらほい 時代は今から約10年と少し前のこと、WindowsNT4.0上でのアプリケーション開発をしていた時のことでした。開発言語はC/C++。VisualC++を使っていま

    プログラミングと心理学 - てぃーまるにっき
  • 酔っぱらった勢いでコードを書く際に大切なこと

    プライベートでコードを書く時は、たいていビールを飲みながらってな毎日のkentaro a.k.a. id:antipopです。こんにちは。 そんなわけで、ただでさえtypoが多いのに加えて、酔いにより手元はボロボロ。調子良く書いていても、つまらないtypoをいちいち修正してまわっていると、せっかくの気分のいい酔いも覚めてしまうというものです。そこで、コードを書く時には酒を飲まない、という以外の対策を考えてみました。 とにかく全部ぶっつぶす ひとはどうしたところで間違いを犯すものです。酔っぱらっていても酔っぱらってなくても、それは同じ。ならば、あり得る名前をあらかじめ定義してはどうか、と考えました。 たとえば以下のようなクラスを定義したとします。 package Hoge::Fuga::Piyo; use strict; use warnings; # ... (snip) ... 1; こ

  • GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)

    GC¥¢¥ë¥´¥ê¥º¥à¾ÜºÙ²òÀâ ÆüËܸì¤Î»ñÎÁ¤¬¤¹¤¯¤Ê¤¤GC¥¢¥ë¥´¥ê¥º¥à¤Ë¤Ä¤¤¤Æ¾ÜºÙ¤Ë²òÀ⤷¤Þ¤¹ ¥È¥Ã¥×¥Ú¡¼¥¸¥Ú¡¼¥¸°ìÍ÷¥á¥ó¥Ð¡¼ÊÔ½¸ GC ºÇ½ª¹¹¿·¡§ author_nari 2010ǯ03·î14Æü(Æü) 20:47:11ÍúÎò Tweet ¤³¤ÎWiki¤¬Ìܻؤ¹½ê GC¤È¤Ï¡© GC¤ò³Ø¤ÖÁ°¤ËÃΤäƤª¤¯»ö ¼Â¹Ô»þ¥á¥â¥ê¹½Â¤ ´ðËÜ¥¢¥ë¥´¥ê¥º¥àÊÔ Reference Counter Mark&Sweep Copying ±þÍÑ¥¢¥ë¥´¥ê¥º¥àÊÔ IncrementalGC À¤ÂåÊÌGC ¥¹¥Ê¥Ã¥×¥·¥ç¥Ã¥È·¿GC LazySweep TwoFinger Lisp2 Pa

    GC - GCアルゴリズム詳細解説 - livedoor Wiki(ウィキ)
  • エキスパートPerl - 変態モジュール総覧

    Perl の世界には、「変態モジュール」と呼ばれるモジュールがたくさん存在します。 これらは、モジュールの形態をとりながら、Perl の内部に踏み込み、蹂躙しているという恐ろしい存在です。 しかしながら、これらのモジュールは使いどころを間違えなければ非常に有用であり、あなたのプログラムに無限の可能性をもたらすことでしょう。 自分の足をどうやって撃ちぬくか、よく考えてからつかってください。 下記のモジュールたちは、それ自体が変態的なものもあれば、変態的なことをするときに使うモジュールもあります。 PadWalker PadWalker は変態モジュールの筆頭です。レキシカルスコープの変数を、レキシカルスコープの外から見たり書き換えたりできます。 peek_my peek_our peek_sub closed_over という4つの関数をサポートしています。 下記のようなありえない操作を可能

    gfx
    gfx 2008/12/09
    変態認定されたよー\(^o^)/
  • バベル案内

    Steve Yegge / 青木靖 訳 2004年9月 これは駆け足の言語案内だ — Amazon Developers Journalのために今月書いていたのだが、どうもこれを見苦しくないようにする方法を見つけられなかった・・・。 ひとつには、私はどうも粗野で口汚くなりがちで、オフィシャルな趣のあるAmazonの出版物に載せるのは不適切に思えた。それでかわりに誰も読まない自分のブログに押し込めてしまうことにした。読んでるのはあなたくらいのものだよ。どうも! もうひとつ言うと、これは当に書きかけのものであり、そこかしこの断片を集めたものでしかない。全然磨き上げられていない。これもブログエントリにする理由になっている。ブログなら別に良質である必要も完全である必要もない。単に私が今日考えたことというだけのものだ。ではお楽しみを! この駆け足の案内では、C、C++、Lisp、JavaPerl

  • Subversion

    バージョン管理ツールSubversionの基礎練習です。 Windows XPのコマンドプロンプトでSubversionの基的なコマンドを動かしていきます。 Subversionを学び始めるきっかけにどうぞ。 目次 はじめに ダウンロードとインストール リポジトリ用のディレクトリを作ります リポジトリを初期化します 新しいモジュールを作ってインポートします チェックアウトして作業開始 新しいファイルを追加します 新しいディレクトリを追加します 普段の作業はこんな風に進みます ファイル名を変更してみよう この文書に書かなかったこと 関連リンク 更新履歴 ぜひ、感想をお送りください はじめに Windows XPのコマンドプロンプトで、 バージョン管理ツールSubversionの基的なコマンドを動かしてみましょう。 この文書の通りに実行すると、 基的なSubversionのコマンドをひと

  • ムービー企画「 Subversion によるバージョン管理入門」WEB+DB PRESS Vol.39 誌面連動ムービー

    ムービー企画「Subversionによるバージョン管理入門」 WEB+DB PRESS Vol.39誌面連動ムービー バージョン管理ツールSubversionは、現在のプログラミング開発において欠かせないツールです。Subversionを利用することにより、ソースファイルの変更を管理することができます。また、複数の開発者がソースコードに対して同時並行に変更を施せます。 この記事では、Subversionの基操作方法をムービーでご紹介します。 なお、WEB+DB PRESS Vol.39、特集1「構成管理 実践入門」の誌面連動ムービーにもなっています。 誌面の第2章「Subversionによるバージョン管理入門」では、svnコマンドによるSubversionの使用方法をご紹介いたしました。 Windowsの場合は、第2章のコラムで紹介したTortoiseSVNを使って、GUIベースでSub

    ムービー企画「 Subversion によるバージョン管理入門」WEB+DB PRESS Vol.39 誌面連動ムービー
  • tokuhirom blog

    Blog Search when-present<#else>when-missing. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: ${entry.path} [in template "__entry.ftlh" at line 3, column 25] - Reached through: #include "__entry.ftlh" [in template "entry.ftlh" at