タグ

読とプログラミングに関するwireselfのブックマーク (12)

  • あらゆる数独パズルを解く

    Peter Norvig / 青木靖 訳 このエッセイでは、 あらゆる数独パズルを解くという問題に取り組む。制約伝播と探索という2つのアイデアを使うと、ごく簡単に解けるということがわかる(主要なアイデアはコードにして1ページたらずで、補足的なコードが2ページある)。 数独の記法と予備概念 最初に記法をいくつか決めておこう。数独パズルは81個のマス(square)からなる盤面を使う。数独ファンの多くはカラムを1-9で、行をA-Iでラベル付けしており、カラム、行、ボックスのような9個のマスの集まりをユニット(unit)と呼び、ユニットを共有するマスをピア(peer)と呼んでいる。パズルではマスのいくつかが空いており、他は数字が入っている。パズルの目的はこうだ。 それぞれのユニットのマスが1から9の数字の順列によって埋められるようにする。 つまり、1つのユニットに同じ数字が2度現れてはならず、そ

    wireself
    wireself 2011/08/30
    “なぜやったのか?(略)数独は「人間の知性に対するDoS攻撃」なのだ。(私の妻も含め)私の知る何人かがこのウィルスに冒されていた(略)彼らにこれ以上数独で時間を費やすべきでないと示せるかもしれないと思った。”
  • データベースの内部動作を知る

    SQLのプログラミングは奥が深い。特にパフォーマンスの観点から、そう言えるだろう。 みなさんご承知の通り、同じ結果を出すプログラムでも、SQLの書き方次第で処理時間に何倍もの差が生じ得る。効率の悪いSQLを書いてしまう原因は、多くの場合、リレーショナルデータベースの内部動作やアプリケーションに関する理解不足である。両者をよく知った上で最適なSQLを書けるようになることは、システムエンジニアとしての重要なスキルの一つである。 特集『基礎から理解するデータベースのしくみ』では、リレーショナルデータベースの内部動作について、基的な部分を分かりやすく解説している。SQLプログラミングに役立つことはもちろん、SQLチューニングやデータベース設計のための基礎知識としても不可欠だ。 イントロダクション ブラックボックスのままでいいの? Part 1:SQL文はどのように実行されるのか SQL実行までの

    データベースの内部動作を知る
  • 第1回 「モダンPerl」ってなんだろう? | gihyo.jp

    「モダンPerl」という言葉の流行 先日、国内有数のPerlハッカーである牧大輔氏が『モダンPerl入門』という書籍を刊行しました。 日Perlユーザーのハブサイトを目指しているperl-users.jpでも「モダンなPerl入門」と題して「古来から親しまれているPerl入門とはひと味違う、今風のPerl入門テキスト」を作ろうという動きがあります。 海の向こうでは、Perl 6の言語仕様の策定にたずさわっているクロマティック(chromatic)氏が「Modern Perl Books」というウェブサイトを開設して、「⁠モダンPerl」についての考察を始めました。氏はその名もModern::Perlというモジュール[1]を公開して「モダンPerl」の啓蒙に努めています。 個人の主義主張に過ぎないのでしょうか? でも、この「モダンPerl」とはいったい何なのでしょうか。 字面から「今風の

    第1回 「モダンPerl」ってなんだろう? | gihyo.jp
    wireself
    wireself 2009/02/24
    まさしく2000年以前の知識で停止しているのでチェックしてみる。/関係ないけど流し読みしてたらたまたま“助成金制度”の1文字目の後で改行してたので「“成金制度”!そんなのもあるのか」と一瞬驚いた件について。
  • http://www.hirax.net/articles/2004/04/12/dekirukana8_atokperl

  • 文字コード規格の基礎:ITpro

    この記事は,日経ソフトウエア 1999年10月号に掲載したものです。それ以降の情報が盛り込まれていませんので,現在とは異なる場合があります。 文字コード規格の基礎を手早く理解したい場合などにお役立てください。 文字コードは間違いなく情報を交換するための「決まりごと」なので,正確を期すため厳密な仕様が規定されている。だが,その仕様そのものを実装するプログラムを作る場合を除けば,プログラマが仕様の詳細を隅々まで理解している必要はない。六法全書を読んでいなくても問題なく普段の生活ができるようなものだ。 ここでは,通常のプログラミングをするうえで必要と思われる範囲のことを,なるべく簡潔に説明したい。「半角カナ」のような呼び名は正確さを欠くものだが,多くの人に伝わりやすいので説明の中でも使っていく。説明を簡略化するため「正確な仕様を知りたいときは規格書そのものを必ず参照してほしい」と書きたいところだ

    文字コード規格の基礎:ITpro
    wireself
    wireself 2006/11/24
    こういうまとめ記事がネットで簡単に読めるのはありがたい。できればあの頃に欲しかったなあ(遠い目)。
  • iv.xight.org - 情報視覚化

    ■ Information Visualization の用途 情報検索 データ解析 プログラムデバッグ ■ Information Visualization に必要な技法 必要なものだけ表示する技法 画面の表示可能領域に制限 情報を選択的に表示 ズーミング手法・フィルタリング手法・重要度計算手法・画面を歪ませて表示する手法 e.t.c. 全体と詳細を同時に見る技法 全体を概観しながら詳細も見ることが可能 ズーミングの応用 抽象データの画面へのマッピング技法 表示すべきデータがユーザ操作により変化 表示すべき情報をどのような位置,形,色で表示するか グラフの自動配置手法・階層構造の表示手法 e.t.c. 自動レイアウト技法 重なりがちゃんと見えるように グラフの自動配置手法の一つ? インタラクション技法 直接操作によって画面を移動・拡大させたり,条件を変更して動的検索を行ったりする手法

  • システム・エンジニアの基礎知識

    静岡理工科大学情報学部コンピュータシステム学科菅沼研究室のページです.主として,プログラミング言語( HTML,C/C++, Java, JavaScript, PHP, HTML,VB,C# ),及び,システムエンジニアとしての基礎知識(数学,オペレーションズ・リサーチやシステム工学関連の手法)を扱っています.

  • 元パソコン少年はマシン語の夢を見るか

    このブログの副題にもあるとおり、私は高校生の時から半田ごてを握ってパソコンをプリント基板から作ったり、アセンブラでプログラムを書いて雑誌に投稿していたりした、いわゆる「パソコン少年」の第一世代である。 そんな私が最初に C という言語に出会った時は、「Cでプログラムを書くのは素人だけだ。当のプログラマーはアセンブラだ。それも16進のマシン語を直接書けなきゃだめだ」などと生意気なことを言っていたものである。しかし、大学に入ってから作った Candy をディスプレイドライバーを除いて全てCで書いたのも私である。 C++ にも最初は抵抗があった。当初はコンパイラの性能も低かったので、とんでもないコードを生成していたし(コンパイラの吐き出したマシン語を読まずにはいられないたちであった)、「オブジェクト指向の質は言語ではない、プログラミングスタイルだ」(どこかで聞いたことがある)と言いながらあえ

  • CodeZine:JavaScriptにおけるオブジェクトの基本的性質

    はじめに JavaScriptはオブジェクト指向言語です。従って、そのプログラミングは、オブジェクトの生成やプロパティの参照、メソッドの実行などを組み合わせる作業と言えます。つまり、オブジェクトを上手く扱うことができなければ、JavaScriptの良いコードは書けません。また、JavaScriptにおけるオブジェクトの考え方は、JavaC++とは根的に違っています。 そこで、この記事では、JavaScriptにおけるオブジェクトの基的な性質について見ていくと共に、JavaC++といった他のオブジェクト指向言語との違い、JavaScriptにおけるオブジェクトの扱い方などを解説していきたいと思います。 なお、この記事はJavaScriptの解説ですが、その内容は、標準仕様のECMAScriptで扱われる範囲に基づいています。従って、同じくECMAScriptを元にしている言語(

  • 古川 享 ブログ: 私の知っているビルゲイツ、その12

    You are about to permanently delete this entry. When you delete an entry, you also delete any comments and trackbacks associated with it. This action cannot be undone. Delete|Cancel ビルゲイツ、自分の限界を知りプログラムを書かなくなったわけ 注:今日のブログは、フォント指定を外してみました。文字が大きすぎると思われる方は「表示(V)文字サイズ(V)」もしくは他のブラウザのフォントサイズ指定で好みの大きさに変更してご笑覧頂ければ幸いです。フォントサイズ変更後に改行位置や行間スペースがおかしい時には、当該ページの「更新」表示(V)最新の情報に更新(R)もしくはF5キーを押す(IE以外のブラウザの方は同様の当該ページ

  • なぜLispなのか

    Hofstadter『メタマジック・ゲーム』 ミンスキー「ゲーデルはLispを思いついておくべきだった。もし彼がLispを思いついていたならば彼の不完全性定理の証明はもっと簡単なものになっていただろう」 ゲーデルの証明の一番難しいところは、数学的体系に自分自身を語らせるところにある。天才のひらめきが何段階か必要になる。しかし、Lispは、少なくともゲーデルが必要としていた意味で、まさに自分自身を直接語ることができる ゲーデルはLispを発明した! 不完全性定理のLisp, Mathematicaによる記述 和田英一「Lispへのこだわり」(PDF) Eric S. Raymond「ハッカーになろう」LISP は、それをモノにしたときのすばらしい悟り体験のために勉強しましょう。この体験は、その後の人生でよりよいプログラマーとなる手助けとなるはずです。たとえ、実際には LI

  • プログラミング言語を作る

    このページの目的は、「独自のプログラミング言語を作る」ことです。 「プログラミング言語を作る」というのは、 やったことのない方からすれば、ずいぶん無謀な目標に見えるのかもしれません。 でも、いくつかの基礎知識さえ修得すれば、技術的には、 実はそんなに難しいものでもありません。 だったら、ひとつぐらい作ってみたいと思いませんか? なにしろプログラミング言語を作るなんて、 いかにもかっこ良さげじゃないですか。 私は作ってみたいと思いました。だから作ります。 プログラミング言語なんてもう山ほどあるのに、 今さら新しい言語なんて付け足して何をしたいんだよ! などというツッコミは入れてはいけません。 「なぜプログラミング言語なんか作るんですか?」 と聞かれたら、その答は そこにyaccがあるからだ。 で充分だろうと私は思います(yaccが何かは後述します)。 というわけで―― ただ私なんぞが新言語を

  • 1