タグ

Programmingとprogrammingに関するlarkerのブックマーク (616)

  • 普通のやつらの下を行け: C でバックトレース表示 - bkブログ

    普通のやつらの下を行け: C でバックトレース表示 普通のやつらの下を行けの第2回として、今回は glibc の関数を使って C でバックトレース (スタックトレース) の表示を行ってみます。 バックトレースとは バックトレースとは、大ざっぱに言うと、現在の関数に至るまでの道筋です。たとえば、次の Ruby プログラムを実行すると、 1 / 0 の行で例外が発生して、バックトレースの表示とともにプログラムは異常終了します。 def foo 1 / 0 end def main foo end main この例では main から foo を呼び foo の中の 1 / 0 の部分で例外が発生しています。 % ruby divide-by-zero.rb divide-by-zero.rb:2:in `/': divided by 0 (ZeroDivisionError) from div

  • キミのコードが汚い理由 ― @IT情報マネジメント

    リスト1は、同じ処理を繰り返すようなコードで初心者プログラマーがよく使う幼稚なスタイルで書かれている。必ずしも複雑ではないが、筆者には散らかっていて効率が悪く見える。リスト2の方が複雑な条件になっているが、Javaを理解していれば、かなり読みやすい。唯一疑問を抱くかもしれないとしたら、最後の「else if」の中にある条件の最初の部分だけだ。このクローズに来るということは、どちらかのプレーヤーが勝ったことを意味する。 いずれのインプリメンテーションも間違ってはいない。実際、これらはどちらも非常に小さく、つまらない例にすぎないので、これらのリストでコードがいかにクリーンか論ずるのはあまり有益ではない。ただ、何をもってインプリメンテーションがクリーンなのかについて読者の興味を深めることはできるだろう。 クリーンなコードについて扱った記事、Webサイト、書籍は多数存在する。何をもってコードをクリ

  • http://wwwdoi.elec.nara-k.ac.jp/html/jisyu/xprg/index.html

    X Window System プログラミング HTML版 目次 1.乗り換えの指針 コラム Linuxの弱点 2.Xlibを使う ●基はXCreateWindow()とイベント配送 ●定番 hello Xlib版 <リスト1:x1.c> ●スレッドを使う  ●グラフィックの描画 <リスト2:x2.c> 3.ツールキットを使う ●Xt <リスト3:x3.c、Sample3> ●Xaw <表4 Xt、Xawで利用できる主なウィジェット> <リスト4:x4.c、Sample4> ●GTK+ <リスト5:x5.c> おわりに <表5:コンパイル方法> コラム 奥の手:Java <リストA:Class1.java> アプリケーションの開発において、Windows環境からLinux/UNIXに乗り換える場合

  • C言語 Super Technique 講座

    このページは、C言語の中級テクニックを中心に解説する。長らくプログラマをしていると、C言語の面白い使い方例が蓄積している。これらを一挙公開するために、このページを作ったのである。しかし、単にCに留まらず、他の言語の面白い特徴なども紹介していく。 内容的にはかなりヘヴィである。当然のことながら、「ポインタ虎の巻」程度の内容はちゃんと使いこなせることを前提とする。意外な技、落し穴、派手なテクニックなど、内容満載だが、ちゃんとデータ構造とアルゴリズムなども説明できれば良いと思う。(まあ、ぼちぼちやってきいます...) 以下の目次には手引きのために、評価がつけてある。凡例として示す。 レベル その解説で記載されている内容のレベル 有用度 その内容が実際に役に立つものかどうか 邪悪度 その内容が薦める方法が、一般的なコーディング規約の中で「邪悪」とされがちなものであるか否か。関数ポインタの活用(濫用

  • http://www.math.kobe-u.ac.jp/~takada/index.html

    larker
    larker 2007/01/09
    お絵かきソフトのサンプル
  • http://www.mlb.co.jp/linux/mld-ml/200001/msg00686.html

    larker
    larker 2007/01/09
    XWindow programing 色設定
  • MOONGIFT オープンソース - Programmers Notepad 2 - プログラマのためのテキストエディタ

    無制限に増やせる仮想デスクトップソフトウェア キーボードショートカットやマウスでの移動など、多数の仮想デスクトップを素早く切り替えられる仮想デスクトップソフトウェアです。 無制限に増やせる仮想デスクトップソフトウェア ノートPCなど、画面の狭いコンピュータの場合、仮想デスクトップソフトウェアを使って有効活用する方法もある。○○の作業用といった具合に仮想デスクトップごとに作業を区切れば生産性も向上する。 これまでも仮想デスクトップは幾つか紹介してきたが、今回はVirtual Dimensionを紹介しよう。 今回紹介するオープンソース・ソフトウェアはVirtual Dimension、使い勝手の良い仮想デスクトップソフトウェアだ。 Virtual Dimensionは無制限に仮想デスクトップを追加することができる。起動すると、開いているウィンドウがアプリケーションアイコンで表現されており、そ

    larker
    larker 2006/12/26
    プログラミング向けエディタ
  • 初心者への GNU autoconf のススメ

    初心者への GNU autoconf のススメ Lynx Optimized Pages! This page is written in Japanese. 147220 accesses since 2001/07/27. 16 accesses per day. [ TOP ] 目次: はじめに なぜ autoconf? インストール 実際に使ってみる ひとまずプログラムを書く configure.in を作る Makefile.in を修正する configure.in を見ながらいろいろ修正する config.h を作ってみる 終わりに 謝辞 変更履歴 はじめに このドキュメントは、初心者とはいえ C プログラミングができて Makefile を記述することが 可能な人を対象にしています。 「使ってみたいけど、とっかかりがわからない」という人に読んでほしいです。 なぜ autoc

  • 【インフォシーク】Infoseek : 楽天が運営するポータルサイト

    日頃より楽天のサービスをご利用いただきましてありがとうございます。 サービスをご利用いただいておりますところ大変申し訳ございませんが、現在、緊急メンテナンスを行わせていただいております。 お客様には、緊急のメンテナンスにより、ご迷惑をおかけしており、誠に申し訳ございません。 メンテナンスが終了次第、サービスを復旧いたしますので、 今しばらくお待ちいただけますよう、お願い申し上げます。

    larker
    larker 2006/12/15
    autoconf、automake の使い方
  • Part4 Javaで作るオリジナル言語

    Part4では,Lisp(リスプ:List Processor)インタプリタをJava言語を使って作っていきます。Lispは非常に歴史が古く,様々な分野で利用されている言語です。しかし,皆さんの中にはLisp自体をよく知らないという方もいらっしゃるかもしれません。どんなものを作るかわからないままでは面白みも半減してしまいますから,まずはLispのごく基的な動作を紹介しましょう。 まずは簡単Lisp講座 Lispの質は,すべてがリスト(正確にはS式,詳細は後述)で表現されることにあります。リストは要素を順序付きで並べたもので,“(1 2 3 4)”のように要素の並びをカッコでくくって表記します。このリストの要素は1,2,3,4の四つです。 「すべてがリストで表現される」という言葉の通り,Lispではプログラムもこのようなリストとして表現します。Lisp処理系は,与えられたリストの一つ目の

    Part4 Javaで作るオリジナル言語
    larker
    larker 2006/12/05
    やさしいLispインタプリタの作り方
  • オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup

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

    オブジェクト指向を正しく理解する - 特集 オブジェクト指向は難しくない!:selfup
  • TAKESAKO @ Yet another Cybozu Labs: Brainf*ckで100までの素数を列挙してみるテスト

    キミならどう書く 2.0 - ROUND 1 - LL Ring の前哨戦として「キミならどう書く 2.0」の開催です! お題は「100までの整数から素数を列挙せよ」です. ということで、世界最小のコンパイラ/インタプリタと言われている Brainf*ckで1~100までの素数を列挙してみました。 ちなみに brainf*ck で prgramming するのは今回が初めてです。 Wikipedia語版の解説より 開発者Urban Müllerがコンパイラがなるべく小さくなる言語として考案した。実際、Muellerが開発したコンパイラのサイズは123バイト(キロバイトではない!)、インタプリタは98バイトしかない。また、実行可能な命令はわずか8つしかない。 処理系には十分なサイズのbyte型配列とその要素のひとつを指すポインタがある。ポインタを「>」「<」命令で移動させながら、そのポイ

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

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

    定番アルゴリズムを徹底理解! - 今からでも遅くない!アルゴリズム入門:selfup
    larker
    larker 2006/11/02
    定番アルゴリズムの解説
  • A. WEBプログラマコース

  • ベンチ、文字列の連結、繰り返し - FAX

    JavaScript malaさんからコメント頂きました。 連結する文字列の長さによると思います。巨大な文字列を+=で連結すると特にIEでかなり遅くなります。[a,b,c].join("")とかstr.push(a,b,c)とか、メソッドの呼び出し回数を減らすようにすれば殆ど多くのケースでArray#push+joinの方が早いと思います。 そうか!なんか自分でArray#push&joinを使うと遅いのに、みんなそっちが速いといってるのは、str.push(a,b,c)で一度に詰めるからなんですね。でもループの中で一個ずつ詰めていったり、ちょこっとした文字列だったり、アプリケーションのメインターゲットのブラウザがFirefoxだったり、やっぱり状況によって利用すべきテクニックは結構違うのかなぁと思います(負け惜しみ)。Firefoxは、str[4]みたいにキャラクターを取れるところとか、

  • Rubyを仕事に使うべし! Part1 なぜ仕事で使うとうれしいのか:ITpro

    プログラミング言語Rubyが注目を集めています。Ruby関連の書籍が次々と出版され,2006年6月には国内初の大規模Rubyイベントである「日Rubyカンファレンス2006」が催されました。また,Rubyで書かれたWebアプリケーション・フレームワークRuby on Rails(以下Rails)が話題となり,Rubyの高い生産性が一般に知られるようになってきました。 Rubyの生産性はJavaの10倍とさえいわれます。なぜRubyは生産性が高いのでしょうか。それは,Rubyはいろいろな言語から優れた所を集めた「いいとこ取り」言語だからです。Rubyの特徴は「構文が強力なので,迅速な開発ができる」「人に優しい言語なので,楽しくプログラミングできる*1」「問題が起こりにくいように設計されているので,初心者でも簡単に安全に作業でき,熟練者は高度なプログラミングを行える」といった点です これらの

    Rubyを仕事に使うべし! Part1 なぜ仕事で使うとうれしいのか:ITpro
  • 使いながら覚えるGDB

    はじめに プログラムのデバッグと言えばひたすらprintfを挿入しまくっていたある日、 デバッガなる便利な代物があるということを知った。なんでもプログラムを一行 ずつ実行できて、変数の値をその場で確認できるらしい。これは是非使ってみねばと 思い、UNIX環境で使えるGDBというデバッガを試してみた。が、何がなんだかさっぱり 分からない。Webを検索するとマニュアルの日語訳が見つかった。これで勉強すれば 使えるようになるかも、と読み始めるも、いきなりm4がどうのこうのだの、意味不明 の文章が続く…。 これは私がGDBを使い始めた時の話だが、似たような経験を持っている人が他にもいる と思う。 GDBのマニュアルは初心者にはすこし敷居が高い。 GDBに限らずマニュアルというものは初学者が参考書として用いるのには 適していない。というのも、マニュアルの類は情報量が多い分、重要な部分を 見つけ出す

    larker
    larker 2006/09/10
    デバッガ
  • ITmedia エンタープライズ:Ajaxを理解する4つのポイント (1/6)

    Ajaxはどのように実現されているのだろうか? こんな疑問に応えるべく、サンプルを挙げてみよう。Ajaxの基は、単に「JavaScriptでHTTP通信をする」というだけに過ぎないことが分かる。 オンライン・ムックPlus「Web2.0で変わるWebプログラミングの常識」の第1回目では、Ajaxが使われる背景と、どのような場合に適しているかを解説した。 今回はサンプルアプリケーションを取り上げていこう。ポイントは、もっとも基的な例に限定したことであり、開発者である読者が今すぐにでも既存のWebアプリケーションへ組み込むことができるよう配慮した点だ。 まず最初に、以下の図2に示す2つのテキストボックスに注目してほしい。その「和」と「差」をそれぞれ計算し、結果を埋め込むという処理を挙げてみよう。 「和」と「差」を計算する処理の部分は、サーバ側に用意したPHPプログラムで行うことにする(図3

    ITmedia エンタープライズ:Ajaxを理解する4つのポイント (1/6)
  • 第1回 OCamlを試してみる

    「プログラミング言語理論」という研究分野がある。この分野の研究者たちは,「ML」「Haskell」「Scheme」あるいは「λ計算」「π計算」(円周率計算のことではない)など,多くのプログラマにとっては聞いたこともない言語やモデルについて,日夜研究している。そのような言語は,C,C++JavaPerlRubyなど,今の世の中で広く使われている言語とは見た目や考え方が違いすぎて,「難しい」「役に立たない」などと思われがちだった。 ところが,その状況が最近になって微妙に変化している。 HaskellやLispなど「関数型言語」についての記事が,専門の学会誌ではなく,一般の技術誌に掲載された(日経ソフトウエア2006年6月号「Haskellによる関数型プログラミング入門」など)様々なフリーソフトウエアがML,Haskell,Schemeなどで開発されたプログラミング言語の研究者ではなく,普

    第1回 OCamlを試してみる
    larker
    larker 2006/08/09
    MLというプログラム言語のObject Camlの説明
  • 20.12 jpeg -- JPEGファイルの読み書きを行う