タグ

Programmingに関するlindenのブックマーク (178)

  • 404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス

    2006年11月16日16:55 カテゴリLightweight Languages オブジェクトは難しくない。難しいのはクラス 大人だからオブジェクトは難しくなる。子供にとっては実はオブジェクトは自然で自明で簡単だ。 オブジェクト指向を正しく理解する:ITpro オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。事実、オブジェクト指向というのは最初は子供向けだったのだ。 このことを、現在「オブジェクトとはなんぞや」という大人たちは忘れてしまっている。 それで、オブジェクトとは何か、といえば、「自分が何が出来る

    404 Blog Not Found:オブジェクトは難しくない。難しいのはクラス
  • オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup

    オブジェクト指向はしばしば,とっつきづらく難しい技術と言われます。その理由の一つには,対象とする分野が広く,それぞれに深みがあることが挙げられます。しかし,それ以上にこの技術を難しくしている落とし穴とも言うべき原因が二つあると筆者は考えています。それは比喩を乱用する説明の仕方の問題と,「もの中心」を意味するコンセプト自体の問題です。 そこで特集では,「オブジェクト指向という言葉をよく聞くけど,実際どんなものかよくわからない」という方のために,初心者/入門者が陥りやすい落とし穴を明確にしながら,オブジェクト指向の全体像を説明します。余計な先入観やまぎらわしいたとえ話に惑わされなければ,オブジェクト指向そのものはそれほど難しい技術ではないことを理解していただきたいと思います。なお,オブジェクト指向プログラミング,デザインパターン,分析/設計といった個々の技術については特集2以降でそれぞれ解説

    オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup
  • 日記のまとめ - ゲームプログラムめも日記

    日記の中で、個人的に役に立つだろうと思った記事をまとめたページです。 ゲームプログラム えぐぜりにゃ〜ソース解説 えぐぜりにゃ〜ソース解説 えぐぜりにゃ〜ソース解説2 えぐぜりにゃ〜ソース解説3 えぐぜりにゃ〜ソース解説4 OMEGAさん作成のゲーム「えぐぜりにゃ〜」のソースを解説したものです。 ゲームデザインの参考になったり、シューティングを作成するときのアルゴリズムなど、 色々勉強になると思います。 カットイン座標の算出 カットインの座標の算出方法 カットイン加速度算出のソースコード あると便利なカットイン座標の算出方法について。 曲線 曲線 1つ上のレベルのシューティングを作るうえで欠かせない「曲線」について。 キャラの管理・状態遷移 有限状態機械(Finite State Machine) 「状態遷移」を意識してコーディングすると、見通しの良いプログラムになります。 具体的には、h

    日記のまとめ - ゲームプログラムめも日記
  • GameDev

    🎉 Celebrating 25 Years of GameDev.net! 🎉 Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

    GameDev
  • 定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup

    このパートでは,プログラミングを勉強するうえで欠かせないアルゴリズムの中でも定番中の定番を紹介します。ソート(並べ替え)やサーチ(検索)などの機能は今では標準のライブラリとして提供されています。実用的なプログラムを作るときにそのものずばりをいちいち書く機会は少ないかもしれません。しかし定番のアルゴリズムは,様々に形を変えて普段のプログラミングに登場します。 解説を読んで仕組みがわかったら,ぜひそれをプログラムにしてみてください。読んだだけではプログラムを書けるようにはなりませんし,プログラムを書いてみて初めて,実は十分に理解できていなかったと気付くことがよくあります。しかもアルゴリズムは特定のプログラミング言語に依存しないので,一度身に付ければ,後でどんな言語を学ぶ場合でも役に立ちます。 1番目から6番目まではソートのアルゴリズム,7番目から9番目まではサーチのアルゴリズムです。一つひとつ

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
  • どうなっているの?あのソフトの仕組み - 今からでも遅くない!アルゴリズム入門:selfup

    Webの全体像を効率よく取り込み,分類する 「YSTのシステムは大まかに三つの機能に分かれます(図2)。最初は世界中のWebページをYSTのシステムに取り込む『クローリング(crawling)』という機能です」(Yahoo! JAPAN,リスティング事業部 検索企画室の宮崎光世氏,以下同)。 取り込むと簡単に言っても,Webページの数は膨大なうえ,更新の頻度や情報の質などがまちまちです。すべてのページに同じようにアクセスしていると非効率なことこの上ありません。そこで,限られた時間で質の良い検索ができるようにするための工夫をしています。例えば,クローリングを繰り返すうちに頻繁に更新されることがわかったページは短いサイクルでチェックし,ほとんど更新のないページはチェックの頻度を落とす,といったことをしているそうです。 ただ,更新の頻度が単に高いだけではダメです。重要性が高いと考えられるWebサ

    どうなっているの?あのソフトの仕組み - 今からでも遅くない!アルゴリズム入門:selfup
  • 再入不可能な関数を C で実装する - いやなブログ

    再入不可能な関数を C で実装する 一度実行したら二度と中身を実行できなくなる再入不可能な関数を C で実装してみます。通常、このような関数はシングルトンなどの静的なデータの初期化に使いますが、ここではデータについては考えないことにします。 static 変数をフラグに使う まずは最も単純な方法から見ていきます。次の関数は static 変数をフラグに使って再入を防いでいます。厳密に言えば関数そのものには入ってしまっていますが、ここで気にしないことにします。 void once(void) { static int entered; // 最初は 0 if (entered == 1) { // すでに入ったことがある場合は return; // すぐ出る } entered = 1; // 初回の場合のみ、何かを実行する } この方法はシングルスレッドのプログラムではうまく動きますが、マ

  • いやなブログ - 文字列操作の比較表: Ruby, Python, JavaScript, P...

    文字列操作の比較表: Ruby, Python, JavaScript, Perl, C++ Ruby, Python, JavaScript, Perl, C++ の文字列操作の比較表を作りました。配列操作の比較表の続編です。間違いなどがあったらご指摘いただけると助かります。 Ruby (String) Python (str) JavaScript (String) Perl C++ (std::string)

    linden
    linden 2006/10/24
    Perlとc++の対比が助かる
  • Google Code Search

    Search packages with names matching regexp. (A package's name is its URL or CVS server information.) package:perl.*\.tar\.gz Frodo  package:linux-2.6 int\ printk

  • 【ハウツー】これは便利! ソースをググれ - "Google Code Search" (1) Google、またも強烈な新サービス | エンタープライズ | マイコミジャーナル

    Googleがまたも強烈なサービスを実験的ではあるが開始した。プログラマは歓喜で同サービスを迎えるとともに、ある種奇妙な不安と高揚感を覚えることになるかもしれない。 稿では4日(米国時間)にGoogleが開始した"Google Code Search"を使ってみる。 図.1 まいどお馴染み、Google 検索画面 Google、新サービス続々 インターネットの巨頭、Google。同社の提供する高性能な検索エンジンは、ときに「インターネットはGoogle」と揶揄されるほどのものだ。シンプルなインタフェースと優れた検索性能には定評があり、ほとんどの地域において検索エンジンのトップランナーであり続けている。 Googleは基となる検索機能(テキスト検索、イメージ検索、ビデオ検索、ニュース検索、地図検索、携帯向け検索、パーソナルページ)以外にも多くのサービスを提供している。中でも次のサービスは

  • サービス終了のお知らせ

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

    linden
    linden 2006/10/03
    なにやら便利そう
  • IBM developerWorks IBM's resource for developers - Japan

    IBM Developer is your one-stop location for getting hands-on training and learning in-demand skills on relevant technologies such as generative AI, data science, AI, and open source.

    IBM developerWorks IBM's resource for developers - Japan
    linden
    linden 2006/09/12
    某所のバナー広告に釣られた
  • Doxygen: Main Page

    Generate documentation from source code Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages such as C, Objective-C, C#, PHP, Java, Python, IDL (Corba, Microsoft, and UNO/OpenOffice flavors), Fortran, VHDL, Tcl, and to some extent D. Doxygen can help you in three ways: It can generate an on-line docu

  • CMSとモバイルとフィードと四畳半社長: 腐ったコードとプログラミングの三段階

    CMSとモバイルとフィードと四畳半社長 東京都文京区郷でとあるCMS開発会社を営む社長のブログ。さっきまで「越後のCMS問屋」だったのですが、会社が新潟に移転したと勘違いされたようなので変えました。 モバイル、ゲーム、フィード、Ajax、Flash、ハイテクグッズあたりのはやりモノが好きです。 最新作「メルルーの秘宝」がドワンゴから提供中 週刊アスキーで「2045年の週刊アスキーをつくる」連載中 遠い記憶によると、たしかジョエル・オン・ソフトウェアでは、どんなに腐ったコードでも、一度動いたものはなるべくゼロから書き直さないほうが良い、とされています。 確かに、最近のコードは複雑を極めていて、いくら腐った状態でも、リファクタリングする時間的余裕がない場合などはそのままなんとか力技で動かしてしまうことがあります。 しかし混雑を極めたコードは、他人はもちろん、人すらもある部分がなにを意

    linden
    linden 2006/08/25
    「正直、○○先輩のコードって汚いですね」
  • http://homepage1.nifty.com/_mat/computer/algo.html

  • 衝突判定のアルゴリズム

    2 つの図形の衝突判定 (コリジョン判定) のアルゴリズムをまとめます。 図が用意できておらず見難いですが、ご勘弁を。 太字はベクトルを表します。 線分と三角形 線分を p+tl、 三角形を (1-u-v)q0+uq1+vq2 で表します (t, u, v は媒介変数)。 Tomas Moller のアルゴリズム を Cramer の公式で解きます。 0.0≦t≦1.0, 0.0≦u, 0.0≦v, u+v≦1.0 なら交差と判定します。 半直線と三角形 線分と三角形の場合と同様の計算を行います。 0.0≦t, 0.0≦u, 0.0≦v, u+v≦1.0 なら交差と判定します。 点と球 点と球の中心の距離の 2 乗を求めて、 その長さが球の半径の 2 乗以下なら交差と判定します。 線分と球 線分の始点から終点へのベクトルを v、 線分の始点から球の中心へのベクトルを c とします。 v・c

    衝突判定のアルゴリズム
  • MSDN ライブラリ 2006年6月版、無償配布中

    いつの間にか無料になっていたようです。知りませんでした。CD-ROMイメージ4枚分なのでものすごい大容量ですが、ローカルに置いてささっと利用できるというのはなかなか魅力的なのではないかと。 ダウンロードは以下から。 ダウンロードの詳細 : MSDN ライブラリ 2006年6月版 Welcome to MSDN Library http://msdn.microsoft.com/library/ja/ またMSDN サブスクリプションを年間契約していただくと、年 4 回最新の MSDN ライブラリの CD-ROM をお手元にお届けします。 今までオンラインで参照して面倒だな~と思っていた人にとっては朗報。というかMSDNの年間契約高すぎ。いくらか改善はされているようですが…。

    MSDN ライブラリ 2006年6月版、無償配布中
    linden
    linden 2006/07/29
    日本語版は助かる。最近太っ腹(?)のM$
  • ソースコードの盗み方|悪態のプログラマ

    悪態のプログラマとある職業プログラマの悪態を綴る。 入門書が書かないプログラミングのための知識、会社の研修が教えないシステム開発業界の裏話は、新人プログラマや、これからプログラマを目指す人たちへのメッセージでもある。 プログラミングを行う際に、既存のソースコードを流用することは多い。自分が過去に書いたコード、周囲の仲間が持っているコード、ヘルプや書籍に掲載されているコード。ネットで探せば、最新技術やマイナーな技術のものでも、何かしら発見できることだろう。 Yahoo!Google のような一般的な検索エンジンでも、適切なキーワードを指定すれば、ソースコードを検索することができる。コードによく出てくる文字列(例えば、C言語なら「include」や「void」など)を含めて検索すればよいだろう。 こうした一般のページ検索では、コードの解説や関連情報なども見つかるので有意義だ。しかし、一方

    ソースコードの盗み方|悪態のプログラマ
  • ATL/WTLプログラミング 2:ダイアログとコントロール:CodeZine

    はじめに 前回は、ATLでウィンドウを作成しました。今回はモーダルダイアログ、モードレスダイアログ、さらにコントロールについて説明します。 対象読者 ATL/WTLによるWindowsプログラミングに興味があり、C++やWin32APIによるWindowsプログラミングの基的な知識がある方。 必要な環境 サンプルはVisual C++ 6.0で作成し、Windows 2000で動作確認しています。 ATLモーダルダイアログ ウィンドウを作成するためにはATLのCWindowImplクラスを使用しましたが、ダイアログを作成するためにはATLのCDialogImplクラスを使用します。 以下に示すのは、[Hello]ボタンを押すと「Hello, ATL/WTL」というメッセージボックスを表示するだけの、簡単なプログラムのソースコードです。このプログラムでは、CDialogIm

  • yacc入門

    このページでは、yaccの実践的な入門講座を目指します。 YACC(Yet Another Compiler Compiler)は、コンパイラの開発を手助けしてくれるソフトウェアです。BNF(Backus-Naur Form)という形式で文法を記述すると、構文解析のためのプログラムを自動生成してくれます。つまり、YACCは構文解析の自動化ツールです。 YACCの入力は、YACC文法ファイル(拡張子は通常.y)で、この中にはBNFで書かれた構文ルールと、C言語で記述された各構文毎の処理(セマンティック・アクション)が書かれています。 YACCは、YACC文法ファイルを読みこみ、C言語のソースを出力します。 したがって、YACCを習得するためには、BNFの書き方と、C言語を知っていることが前提となります。 YACCの種類とインストール kmyaccについて bisonについて YACCを使って