読んだとプログラミングに関するswallow_lifeのブックマーク (24)

  • ちょっと変わったLisp入門 - @IT

    Lispの一種であるScheme。いくつかある処理系の中でも気軽にスクリプトを書けるGaucheでLispの世界を体験してみよう(編集部) 「Gaucheでメタプログラミング」と題して、これからGaucheを使ったプログラミングの連載を書かせていただきます吉田裕美です。よろしくお願いいたします。 Gaucheとは 今回の連載で取り上げるGaucheはハワイ在住の日ハッカー、川合史朗さんが作った、Lispの一種であるSchemeのオープンソース処理系です。 Gaucheの特徴は、PerlRubyのように気軽に使える軽い処理系だということです。Perl同様に正規表現や文字列操作が行え、ちょっとしたツールの作成にも使えます。しかし、非常に強力なCommon Lisp風オブジェクトシステムを持ち、Lispならではのマクロに加え、Webやグラフィックスなどの豊富なライブラリも持っているので実用

    ちょっと変わったLisp入門 - @IT
  • SeasideへGO!!(第2回)

    1. はじめに 1.1 コンポーネントで Web プログラミング 今回から Seaside を使ったプログラミングに入っていきましょう。 Seaside ではコンポーネントというものが開発の基になります。 まずはコンポーネントとは何なのかを簡単に解説し、その後で、実際にサンプルアプリを作っていくことにします。 2. コンポーネントとは? 2.1 V+C = コンポーネント Seaside におけるコンポーネントとは、表示、およびイベントハンドリングを行う部品のことです。 GUI のライブラリでも、まさに「コンポーネント」と呼ばれるものが登場します。 (場合によってはウィジェットやコントロールなどと言うこともあります。 この辺りの用語はフレームワークによって多少のブレがあります)。 皆さんもボタンコンポーネント、リストコンポーネントなどといった言葉を耳にしたことがあるでしょう。 いわゆる

    swallow_life
    swallow_life 2008/09/09
    Seaside。Smalltalkすごいな。
  • WSHでDOM (Shibuya.js in Kyoto) - てっく煮ブログ

    Shibuya.js in Kyoto にて「WSHでDOM」というタイトルで発表しました。開発に一週間、プレゼン作りに一週間かけた渾身のネタです。プレゼン作りにあたっては、2ページ目のイメージ写真を撮るために祇園祭に出かけたのが楽しかったです。資料に使ったフォントは「アニトM-教漢(無料版)」です。素敵なフォントが比較的自由なライセンスで公開されていて大変ありがたいですね。無料版なので、一部漢字が使えずに文章の変更を余儀なくされましたが、おかげで小学生にも読める分かりやすい資料になりました。ソースコード:http://coderepos.org/share/browser/lang/cplusplus/dom4winui/trunk/srcプレゼン 全画面で見る:http://tech.nitoyon.com/misc/shibuya-js-kyoto/Slide.swfソース:http

  • SeasideへGO!!(第1回) | オブジェクトの広場

    等である。 Seaside はこうしたルールを全て破った Web アプリケーションフレームワークだ。 Web 開発でこれまで叡智とされてきたことを放棄してみると何が得られるのか? 実に多くのことが、得られたのだ。 つまり、Seaside では今まで Web 系でお約束とされてきたことに反する以下のような特徴を持ちます。 できる限り状態を保持する URL は一過性のものを使う テンプレートを利用しない なんだかめちゃくちゃのようですが、意味もなく反逆しているわけではありません。 これにより、隅から隅まで、徹底してオブジェクト指向の Web アプリフレームワークを実現しています。 一般的な Web アプリフレームワークは、だいぶ洗練されてきているものの、まだまだ手続き指向であるものが多いと言えます。 オブジェクト指向でプログラミングというよりは、フレームワークが用意する複雑な設定ファイルをいろ

  • IBM Developer

    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 Developer
  • ガベージコレクションの実装法と評価

    1.はじめに プログラミング言語とはシステム化する対象物を抽象化し、コンピュータで処理可能なコードを記述するために用いる人工言語である。プログラミング言語はコンピュータの機械語と一対一の対応をもったアセンブラから始まり、コンパイラを用いて機械語に翻訳することを前提としたコンパイラ言語、インタプリタと呼ばれるプログラムがソースコードを解釈し実行するスクリプト言語と、記述できる抽象度を高める方向へと進化してきた。 プログラミング言語はその存在理由から、より抽象度の高い記述が行えること、すばやい開発を行える事が求められる。抽象度の高い記述とは、プログラムがどういう処理を行うか(HOW)ではなく何の処理を行うか(WHAT)を記述しやすい構文、機能を持っていることを、すばやい開発とは記述性の高さ、コードの密度の高さ、バグの発生しにくい構文、機能を持っていることをさす。 この抽象度の高い記述、すばやい

    swallow_life
    swallow_life 2008/06/26
    ななめよみ。C言語でLisp処理系と保守的マークアンドスイープGCを実装。難しい。
  • 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(ウィキ)
  • クラスタリングによる迷路作成アルゴリズム

    はじめに クラスタリングアルゴリズムにより、解くと絵が浮かび上がる 迷路を作成する方法を紹介する。 クラスタリングとは ウェブのリンク情報や、mixiの友人関係など、ネットワークの性質を 知りたいことがよくある。このとき、ネットワークの性質として このネットワークにおいて任意に選んだ要素Aと要素Bはつながっているか? このネットワークは全体がつながっているか? つながっていないとしたらいくつのグループに分かれるか? 要素数最大のグループはどれか? などの情報が欲しくなる。このような解析をするときに 必要となるのがクラスタリングである。 クラスタリングとは、同値関係のリストが与えられたときにグループ分けを することである。たとえば、 友達友達友達である と定義すると、友人関係は同値関係を作る。 その上で、 A君とB君は友達 C君とE君は友達 B君とD

    swallow_life
    swallow_life 2008/06/19
    意外と難しい。pair1とpair2を作成する処理はかかれていないので自分で考える。
  • IBM Developer

    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 Developer
    swallow_life
    swallow_life 2008/06/06
    ext4ファイルシステム。
  • Mercurialではじめる分散構成管理:第1回 「分散」への第一歩 〜 ローカルでの複製|gihyo.jp … 技術評論社

    Linux/Unix環境ならパッケージ管理経由での導入が簡単です。 Windows環境への導入は、Cygwinを常用しているならCygwinのsetup.exe経由でPythonスクリプト形式を、そうでないならインストーラ経由でのバイナリ形式の導入が簡単です。 それぞれのインストール手順に関しては、別途詳細を説明したページを参照してください。 インストールが済んだなら、早速使ってみましょう。 まっさらな状態からリポジトリを作成する手順は次ページ以降で説明しますので、手近な対象としてMercurial自身のリポジトリを複製してみましょう。 コマンド1 % hg clone http://selenic.com/repo/hg mercurial-repo requesting all changes adding changesets adding manifests adding file

    Mercurialではじめる分散構成管理:第1回 「分散」への第一歩 〜 ローカルでの複製|gihyo.jp … 技術評論社
    swallow_life
    swallow_life 2008/06/05
    Mercurialは空のディレクトリを扱えない。注意。
  • コンパイル時にC#のコードの欠陥を指摘するツール「Coverity Prevent for C#」:CodeZine

    米Coverityは4日、新たにC#をサポートするソースコードの静的解析ソリューション「Coverity Prevent for C#」を発表した。7月から出荷を開始する。 Coverity Preventは、ソースコードのコンパイル時にソフトウェアの欠陥を指摘するソフトウェア。ソースコード内で考えられる全てのパスを解析し、システム障害、メモリ破壊、セキュリティの脆弱性、パフォーマンス低下、といったソフトウェアの重要な欠陥をテスト以前に検出し、修正コストの軽減や、品質の向上に効果を発揮する。また、既存のビルドプロセスと簡単に統合できるようになっており、コード変更やハードウェアの追加などは不要。 今回のCoverity Prevent for C#では、対応言語を単に拡張しただけでなく、Micorsoft .NET Frameworkに解析エンジンを再設計・最適化したとしている。 価格

  • Xenで学ぶ仮想化技術

    <目次> オープンソースの仮想化ソフトとして最も注目されている「Xen」の仕組みと使い方を説明します。 そもそもなぜ仮想化が必要なのか,仮想化技術とはどのようなものなのか,などの基から,仮想サーバーの設定方法や高度な機能などの実践・応用までを全6回で解説します。 第1回 ●仮想化とは何か 第2回 ●Xenのインストール方法(前編) 第3回 ●Xenのインストール方法(後編) 第4回 ●仮想環境のネットワーク構築法 第5回 ●仮想サーバーを設定する 第6回 ●Xenの高度な機能を使う

    Xenで学ぶ仮想化技術
  • IBM Developer

    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 Developer
    swallow_life
    swallow_life 2008/05/30
    Rope。使用推奨領域がかぎられているので誤らないように。
  • IBM Developer

    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 Developer
  • 第11回 デバイス・ドライバ

    前回までの10回の連載で,プロセス管理やメモリー管理,ファイル・システムといったカーネルの基機能を一通り解説しました。 しかし,これまで解説してきた機能は,ほぼプロセッサと主メモリーだけを対象とするものばかりです。ファイル・システムはハード・ディスクなどの補助記憶装置と関連が高いのですが,主メモリー上にRAMディスクを作成した場合などを考えれば分かる通り,必ずしも補助記憶装置を必要とはしません。 これに対し,カーネルにはもう一つ重要な役割があります。それは,コンピュータに接続されているさまざまなハードウエアの制御です。 最近のコンピュータには,非常に多くの周辺機器が接続されています。モニターやキーボードはもちろん,ハード・ディスクやCD-ROMドライブなどの補助記憶装置,ネットワーク・インタフェースや各種USBデバイスなどさまざまな周辺機器が挙げられます。カーネルは,こういったさまざまな

    第11回 デバイス・ドライバ
    swallow_life
    swallow_life 2008/05/23
    キャラクタデバイス、ブロックデバイス。
  • IBM Developer

    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 Developer
  • なぜか変換できない vs. なぜか変換できる:最近の「MS-IME」は目に余る――よろしい、ならば「ATOK」だ (1/4) - ITmedia D PC USER

    変換方法によって視点の移動は大きく異なる。長文一括変換はキーストロークは少なくて済むが、逆方向への視点移動が大きく、一度に確認しなければならない変換結果も長い 最近、MS-IMEがおかしい。 日本語入力において、未確定文字入力後にどれくらいの頻度で変換を行うか、どうやって確定させるか、といったかな漢字変換の操作は、慣れが大きく関係してくる。つまり、変換の操作に正しい方法というものが存在するわけではない。例えば、筆者の場合は文節ごとに変換を行い、ひらがなはそのまま無変換確定、カタカナはF7で変換し、半角英数字は日本語入力をオフにしてから入力、と人間のほうがIMEに歩み寄るクセがついている。これは頻繁に確定を行うことで右から左という逆方向の視線移動を極力短くし、思考の寸断を防ぐためだ。 筆者の周囲を見る限りは、このような入力方法をとる人は少なくない。そうやって無意識のうちに、候補が複数あるか、

    なぜか変換できない vs. なぜか変換できる:最近の「MS-IME」は目に余る――よろしい、ならば「ATOK」だ (1/4) - ITmedia D PC USER
  • Gaucheをはじめてみませんか?

    Gaucheとは 連載では、今注目のプログラミング言語「Gauche」について解説しながら、簡単なWebアプリを作っていきます。Gaucheとは、ハワイ在住の日ハッカー「川合 史朗」さんが作ったLispの一種である、Schemeの処理系です。オープンソースで開発されています。 Gaucheの特徴は、Perlのように気軽に使える軽い処理系でありながら、正規表現、CommonLisp風オブジェクトシステムなど、Scheme標準にはない拡張機能や豊富なライブラリを持ち、実用的なプログラミングが行える点です。 最近「Gauche」に関するも出版され、「第4回:都内大手3書店の3月ベスト3発表!(http://www.thinkit.co.jp/article/49/4/2.html)」でも紹介されているように売れ行きも好評です。それは、なぜでしょうか? 筆者はLisp、特にSchemeの持

  • 第9回 ファイル・システム(後編):ITpro

    これまで2回にわたって解説したファイル・システムですが,今回は,その締めくくりとしてファイル・システムの最下層部分(ハードウエアに近い部分)について解説していきます。 過去の記事の繰り返しになりますが,Linuxのファイル・システムは図1のような階層構造を採っています。VFS(Virtual File System)という抽象化層を用意することで,さまざまなローカル・ファイル・システムに対応しやすくなっているのです。ローカル・ファイル・システムは,「ファイル」の形式のデータを「ブロック」の形式に変換し,それをデバイス・ドライバを通じてハード・ディスクなどの記録装置に記録します。 図1●ファイル・システムの構造 ローカル・ファイル・システムが処理したブロック・データを,ブロック入出力共通層で処理してから,デバイス・ドライバを使ってハード・ディスクに書き込みます。 今回解説するのは,ブロック・

    第9回 ファイル・システム(後編):ITpro
  • ITmedia エンタープライズ:遅れた日本のソフトウェア開発 その原因はここにあり!?:作業環境を改善せよ さもなくば日本のエンジニアは壊滅する! (

    作業環境を改善せよ さもなくば日エンジニアは壊滅する!:遅れた日のソフトウェア開発 その原因はここにあり!?(1/3 ページ) 米グーグルでは事がタダに。米マイクロソフトではソフトドリンクが飲み放題。そのほか、米国のIT企業の多くでソフトウェア開発者は全員、個室を与えられている――こんなこと、日の企業であるだろうか? 驚愕!? 海外企業における個室の作業スペース 米国のみならず先進諸国においては、ソフトウェアエンジニアの労働環境は総じていい。世界一巨大なソフトウェア会社のマイクロソフト、欧州最大のソフト開発会社として有名なSAPで働いた経験から、そう感じる。どちらの会社も、さまざまな側面において一部から厳しく評されることもあるが、そんな評判とは裏腹に、エンジニアの労働環境は良かった。 ご存知かもしれないが、米マイクロソフト社のオフィススペースは筆者が勤めていた当時、完全な個室型

    ITmedia エンタープライズ:遅れた日本のソフトウェア開発 その原因はここにあり!?:作業環境を改善せよ さもなくば日本のエンジニアは壊滅する! (