タグ

programmingに関するsuttangのブックマーク (78)

  • Undo,Redoの実装って何十回もやってる気がする - あしあと日記

    undo,redoの実装って何十回もやってる気がする。毎回同じパターンだ。undo,redoが登場するような編集ソフトは大体同じパターンに落とせる。フレームワークも作った。ブログにそういう内容を書きたいが面倒くさい。需要があれば面倒でも書くんだけどなあ http://twitter.com/youpychan/status/994486992 という発言をしたら何人か反応を頂いたので書いてみることにする。 需要があるなら書こう。undo,redoだけじゃなくてグラフィカルな編集ソフト全般の話をいつかまとめたいと思っていたので、ちょいとシリーズで書いてみようかとおもう http://twitter.com/youpychan/status/994636764 書こうと思う。 まずUndo,Redoについて。 Unod,Redoってみなさんどういう風に実装しているでしょうか? 私はコマンドパタ

    Undo,Redoの実装って何十回もやってる気がする - あしあと日記
    suttang
    suttang 2008/11/10
    Undo Redoの実装サンプル
  • ロベールのC++入門講座を読んで C++ を初歩の初歩から再入門するよ - 前編 - ひげぽん OSとか作っちゃうかMona-

    前置き 自分の C++ レベルに絶望したので「ロベールのC++入門講座」を読んで再入門していく過程を日記に書いていきます。 「おまえはそんなことも知らずにコードを書いていたのか!」「それは間違い!」など叱咤激励募集中です:-) 読んでみたら、たくさんの驚きがありました。 スルーせずに読んでもらえると1つくらい役に立つことを提供できるかもしれません。 例えば5章のデフォルト引数に関数を使える例とか。 ルール 前置きはともかくはじめましょう。13:48にスタバで始めました。 読んで行くうえでいくつかルールを決めます。 知らなかったことは正直に知らなかったと書き、自分が読んで分かる説明を書く。 知識が曖昧だった所も同様に明確な説明を書く。 悩んだ内容を書く。 理解が怪しい所は必ずコードを書く。 さあ1章から読んでみよう。 1章 まずは使い方(13:50) 各 OS 毎に C++ の開発ツールを紹

  • Mac(BSD 系) のwc とlinux(GNU 系) のwc は行数の数え方が違うのね - LukeSilvia’s diary

    最近はlinux の勉強をしています。サーバ触ることになったからというのと、プログラミングの基礎知識が足りないと感じたためです。 プロセスとか、ストリームとか、その辺りの理解も曖昧だったしね。青木さんの「ふつうのLinux プログラミング」で勉強してます。超良い。 ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道 作者: 青木峰郎出版社/メーカー: ソフトバンククリエイティブ発売日: 2005/07/27メディア: 単行購入: 35人 クリック: 450回この商品を含むブログ (150件) を見る このの6章の練習問題に「wc -l」のように、ファイルの行数を数えるプログラムを書く課題があります。 例えば自分で最初に書いたのはこんなの。1文字ずつ読んで改行の数を数えるという超単純。 wc.c #include <stdio.h> #includ

    Mac(BSD 系) のwc とlinux(GNU 系) のwc は行数の数え方が違うのね - LukeSilvia’s diary
  • 例のアンケートについての解説と謝罪 - 西尾泰和のはてなダイアリー

    反感を買ってしまった例のアンケートですが、コメント欄ですごくいい話がされていました。 http://q.hatena.ne.jp/1221708568#c131208 プログラミングとはどうあるべきかという話になった時に、彼が "We're not smart enough (to know the answer.)" と言ったのが印象に残っています。 僕もその通りだと思います。 このアンケートが反感を買った理由の一つには、質問文の表現が「この質問者は自分は質を知っていると思っている」という誤解を招きやすいものだったことがあるのかな。実際は、漠然と「これよりはこれのほうが質的なのでは」と思うことはあっても、「これが質です」と人に教えられるほどの自信はありません。なのでこういう形でいろんな人の意見が聞けるのはとても面白いです: 【プログラミングとはどういうものかという質】とは何だと思

    例のアンケートについての解説と謝罪 - 西尾泰和のはてなダイアリー
  • オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です

    忙しい人のためのまとめ 一般に「オブジェクト指向プログラミング」と呼ばれる考え方には発案者が異なる二系統がある。(ただし簡単のため、次のうち前者から批判的に派生して生じたプロトタイプベースのオブジェクト指向はここには含めていない) アラン・ケイによる、変化に強い長期運用可能な遅延結合システムを SIMULA67 にあった「オブジェクト」をメッセージの受け手とすることで実現(オブジェクトにメッセージ送信)するアイデアに基づく「メッセージングのオブジェクト指向」と、 ビアルネ・ストラウストラップ(前後して抽象データ型を発案したリスコフ人、オブジェクトクラスを考えたニガードらSIMULA陣営、Eiffelのメイヤーらも同様の着想を得ている)による、ユーザー定義型(抽象データ型)を SIMULA67 にあった「クラス」という言語機能を使って実現(カプセル化、継承、多態性)するアイデアに基づく「抽

    オブジェクト指向の概念の発明者は誰ですか? - Smalltalkのtは小文字です
  • algorithm-code.com

    This domain may be for sale!

    suttang
    suttang 2008/08/13
    あとみ
  • Kira

    Kira is a programming language that compiles to PHP. PHP is the best platform for web applications, but the language operating the platform is out-dated for a modern world. In fact, the PHP language sucks. Kira is designed to bring a good language and modern techniques into play whilst taking advantage of all existing PHP and a massive army of PHP developers. See the new mission/faq page!

    suttang
    suttang 2008/06/26
    PHPにコンパイルするプログラミング言語。
  • Martin Fowler's Bliki in Japanese - 最小インタフェース

    http://martinfowler.com/bliki/MinimalInterface.html 最小インタフェースとはAPI設計のスタイルである。 ここでは、ヒューメイン・インタフェースと比較していく。 最小インタフェースの背景にある考えは、クライアントが必要な機能をすべて提供できるようAPIを設計するが、仕事を成し遂げるための必要最小限のメソッドしか提供しないというものである(両者の違いについての例がヒューメイン・インタフェースにあるので参照のこと)。 ヒューメイン・インタフェースの主張はそちらのページに書いている。 ここでは、最小インタフェースの根拠について述べていこう。 インタフェースの習得には時間がかかる。 膨大なインタフェースを持つクラスはうまく使われることが少ないため、 最初の段階ではインタフェースは少なくしたほうがよいだろう。 インタフェースを小さく保ち、それらのメソ

  • Martin Fowler's Bliki in Japanese - ヒューメイン・インタフェース

    http://martinfowler.com/bliki/HumaneInterface.html Ruby界隈で「ヒューメイン・インタフェース」という言葉を何度も耳にした。 この言葉は、クラスのインタフェースを記述する際のrubyistたちの姿勢(attitude)の一部を表したものである。 APIの設計については、2つの異なる考え方を対比していくと面白い(もうひとつは最小インタフェースである)。 ヒューメイン・インタフェースの肝は、みんなが何をやりたいかを見つけ出し、何度も起きることを簡単に行えるためのインタフェースを設計することだ。 最小インタフェースとの明確な違いは、ヒューメイン・インタフェースの方が大きくなる傾向があるという点だ。ただ、ヒューメイン・インタフェースの設計者はインタフェースが大きくなることをそれほど気にしてはいない。 以上のことは、ヒューメイン・インタフェースで設

  • ネットワークプログラミングの基礎知識

    ネットワークプログラミングの基礎知識 ここでは IP アドレスやポート番号、クライアントとサーバの役割などを説明し、 perl・C言語・Java などでソケット (Socket) を使った HTTP クライアントや POP3 クライアント、簡単なサーバを作成してみます。 要はネットワークプログラミングをやってみよう、ということです。 このページのサンプルプログラムは、RFC などの規格に準拠した「正しい」プログラムではありません。 また、全体的にエラー処理が不十分です (今後改善する予定です)。 あくまでも概要を理解するためのサンプルととらえてください。 もし気でしっかりとしたクライアントやサーバを書きたいなら、このページを読んだ上で、 さらに RFC を熟読し、そして wget・Apache・ftp コマンドなどのソースを参考にしてください。 このページに間違いを見付けたら、掲示板

  • 3D基礎知識

    座標変換 ・sin,cosについて 角度θがあるとします。ここでいう角度とは反時計回りならば正の値 時計回りならば負の値とします。X軸に対してθの角度をなしている 直線を考えます。この直線と半径1の円が交差している点のX座標の値が cosθ、Y座標の値がsinθとなります。 ・一次変換 (x,y)の点を反時計回りにθだけ回転させる場合(回転後の点は(x',y')) x' = x * cosθ - y * sinθ y' = x * sinθ + y * cosθ これを行列表現にすると |x'| = | cosθ -sinθ ||x| |y'| | sinθ cosθ ||y| 以下概念図 |x0' y0'| = x0 * ix + y0 * iy |x0' y0'| = |x0 y0||cosθ sinθ| |-sinθ cosθ| ・3次元の座標変換 x,y,z:変換前の座標; x',

  • Komodo Remote Debugging Package Downloads « ActiveState Code

    This page includes the client libraries required for remote debugging in Komodo. These files are also included in a Komodo installation (for local debugging). However, for convenience, they are also available as separate downloads for setting up remote debugging on systems where Komodo is not installed. Consult the Komodo Debugger documentation for information on configuring remote debugging. The

  • 翔ソフトウェア (Sho's) - オブジェクト指向 - プログラミング言語の歴史

    <HOME> ― <オブジェクト指向> ― <プログラミング言語の歴史> オブジェクト指向 色々なプログラミング言語に関する年表と系統図をご紹介します. プログラミング言語の歴史 年号 言語 語源 元と成った (影響元の) 言語 ハードウェア OS 開発方法論 1946 ENIAC 1947 1948 1949 Assembler 1950 1951 1952 1953 1954 1955 COBOL COmmon Busines Oriented Language 1956 1957 FORTRAN FORmula TRANslation APL A Programming Language COMIT 1958 ALGOL58 ALGOrithmic Language FORTRAN 1959 1960 COBOL60 COmmon Busines Oriented Language

  • FACEs: AS3:あなたの設定はどこから? - 私は ini から。

    余裕があるときには後で CMS をかませたりして楽しいかもしれない rss、みんなでちゃんとやる時には xml、急いで一人で作る場合は csv か tsv (タブ区切り)。csv ってダブルクォーテーションの処理を考え出すといちいちめんどくさいし、かといって tsv は他の人には渡せないから人柱確定だし。 これを php でやる時ゎ ini 形式※であります。レガシーな形式でありますが、連想配列とか2次配列にすぐ変換できるし、なにより設定ファイルだとみればわかり。php の parse_ini_file は ini2array な、とても便利な関数なのでASにしてみました。file_get_contents もおまけです。 家 parse_ini_file 家 file_get_contents ※ ini ファイルって何?って人は、インターネット・ショートカット (.url) を

    suttang
    suttang 2008/01/28
    初期設定はiniファイルに。 使い勝手はよさそうだけど、あんたら知識の幅が広すぎでしょ とは思う。
  • ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40

    高校生の時、数学の先生がこう言いました。 ゲームなんて、開発者が作ったルールの上で遊ばれるだけだ。 と。 その時、ゲーマーな自分はこう思いました。 ゲーマーは、開発者が作ったルールの上で遊ばれたい。 と。 というわけで、普段何気なくプレイしているゲームには、どのようなルール(アルゴリズム)があるのか。それを知るために、いろいろなゲームのアルゴリズムなどを解析しているページへのリンク集を作りました。 ほとんどのゲームのアルゴリズムは正式に発表されていないので、ユーザーの手による逆解析だったり、大学の研究による真面目な考察だったりします。(リンク先には、一部アルゴリズムと呼べないものも含まれています) 各種ゲームのプログラム解析 ドラクエ、FF、ロマサガのプログラム解析 DQ調査報告書(リンク切れ) ドラクエの物理ダメージ計算式は質的にどれも同じだが、細かい部分で微妙に違う RPG INST

    ゲーマーでなくても仕組みぐらいは知っておきたいアルゴリズムx40
    suttang
    suttang 2007/11/27
    ゲームの中身色々
  • [ActionScript 3.0] 四分木からグラフを構築して、最短経路を探索する。│miscellaneous

    下のデモでは赤い円を障害物と見立て、円に衝突しないように左上から右下まで最短ルートを求めて緑の線を引いています。 赤い円はマウスで移動できます。移動するごとにルートを再探索します。 次の手順でルートを探索しています。 1. 赤い円の位置を元に四分木を構成。(黒い線が四分木の境界です) 2. 四分木の領域の中心点を頂点と見立ててグラフを構築。領域同士が隣あっている場合頂点同士を結んで辺とする。(青い線がグラフの辺です) 3. 構築されたグラフを元にダイクストラ法で最短路を探索。(頂点間の距離を辺の重みとしています) 障害物がない部分では四分木の領域が広くなるため、必ずしも領域の中心位置が最短の経路上にくるとは限りません。 したがってこの方法で求めた経路が平面状の最短距離にはなりませんが、四分木の領域が広いということはグラフの頂点の数が減るわけですから 経路を求める際の計算量は少なくなることに

    suttang
    suttang 2007/11/15
    4分木から最短経路を探索する actionscript flash アルゴリズム
  • なぜ PEAR 標準コーディング規約のインデントはスペースのみなのですか?

    なぜ PEAR 標準コーディング規約のインデントはスペースのみなのですか? Stig Bakken による回答。 コードにタブを使用せずスペースを用いることは、すべてのエディタや ビューワにおいて共通した表示を保証する唯一の方法です。 タブを4つのスペースとして扱うエディタが多いですが、 8つのスペースとして扱うターミナルやユーティリィティも数多くあります。 例を示します。 printf("%s", $arg); この例では、7つのスペースが "$arg" の前にあります。 もしこのコードが 4スペース-タブのエディタで書かれるとすれば、 1つのタブおよび 3つのスペースとして記述されるでしょう。 もし他の開発者が 8スペース-タブのエディタで 同じファイルを編集すると,次のように見えるでしょう。 printf("%s", $arg); おなじように、8スペース-タブで書かれた次のコ

    suttang
    suttang 2007/10/23
    そもそも改行の場所に問題があるとは思わないのだろうか
  • 2007-10-18

    Seasarカンファレンスで、Seasar2入門セッションを、いろんな方に喜んでいただけるようにSeasar2ロードマップと復活のStrutsのセッションに変えるよというアナウンスをしたのですが、Seasar2の入門セッションはやはり必要だということで、元に戻すことになりました。 期待していた方ごめんなさい。でも、入門セッションのほうも面白いネタをいろいろしゃべるつもりなので、是非お越しください。 今後はやるフレームワークは「流れるようなインターフェース」を持ったものになるんじゃないかなぁと思います。流れるようなインターフェースの説明は、ファウラーたんのFluentInterfaceを参照してください。 Seasar2の新O/R Mapper(以後S2JDBCと呼びます)もこの「流れるようなインターフェース」を実現しています。例えば、JdbcManagerを使った検索はこんな感じになります

    2007-10-18
    suttang
    suttang 2007/10/18
    流れるようなインターフェースをもつフレームワークが流行るんじゃないか説。 確かに。
  • FFT (高速フーリエ・コサイン・サイン変換) の概略と設計法

    はじめに FFT とは離散フーリエ変換に関連する変換を高速に実行する一連の 計算方法のことです.ここでは,FFT の考え方とその設計方法について 具体的なプログラムを用いて示します.これは,FFT のライブラリを 作成したときのメモがもとになっています.専門的な説明は極力避けたので, エレガントでない説明になっているかもしれません.基礎知識として, 複素数の演算規則とフーリエ変換が何かということさえ知っていれば 理解できると思います.また,数学の知識がある程度あり 時間を節約したい方は, 1.2節と1.3節の要約(pdf 53KB) を一読していただければ速く理解できると思います. 目次 1 FFT 概略 1.1 離散 Fourier 変換 1.1.1 DFT の定義 1.1.2 DFT と通常の Fourier 変換 1.1.3 DFT の性質 1.2 Cooley-Tukey 型 FF

    suttang
    suttang 2007/10/09
    FFT 高速フーリエ変換
  • jpn.ph

    suttang
    suttang 2007/08/24
    障害物を避ける動き ポテンシャル法 障害物からの距離に応じてポテンシャル値を変化させる