タグ

Cに関するsnailramperのブックマーク (114)

  • lsのソースを読んでないのはプログラマとしてかなりまずいのではないでしょうか - Creative Gear

    ある程度プログラムが書けるようになったらば、次にするべきことは、他人の書いたプログラムを読むことである。・・・と、どっかで聞いた気がする。どこで聞いたのか見たのか覚えてないんですが、これって一理あると思うんですよね。 もっと突っ込んで言えば、他人の書いた良質なプログラムを読むことは、プログラムを書くことと同じぐらい。。。いや、それ以上に重要なプラクティスなのかも知れない。   スポーツや武道、それだけじゃなく、将棋や囲碁、それに伝統芸能やモノ作りにいたるまで、まず最初に学ぶべきことは『基礎』です。野球なら正しいバッティング・投球のフォームを身に付けることだったり、将棋であれば定石を覚えることであったりと、初心者は必ず「基礎」を覚え、身に付けるところから入るものでしょう。プログラミングで言えば、プログラミング言語の構文を覚えたり、基的なデータ構造やアルゴリズム等を勉強することが「基礎」に値

  • ViewVC Repository Listing

    / Repository Listing Name base csrg doc ports socsvn ViewVC Help Powered by ViewVC 1.1.27

  • 【ハウツー】Cアプリを高速化せよ! - 正式リリースされたgoogle-perftoolsを試す (1) google-perftoolsとは | エンタープライズ | マイコミジャーナル

    google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト

  • ValgrindでApacheモジュールのメモリバグを見つけよう - ひげぽん OSとか作っちゃうかMona-

    mod_uploaderの作者さんがまとめている開発Tips(http://acapulco.dyndns.org/mod_uploader/module_dev.htm)にあったデバッグ方法を試してみました。 Valgrind http://valgrind.org/ Valgrindはメモリ周りのバグや、スレッド系のバグを自動的に検出してくれるツールです。 インストールは ./configure make make install で完了です。 a.out(-gオプションでコンパイルしてください)のメモリ周りのチェックを行う場合は valgrind --leak-check=yes a.out とやると、こんな結果が出力されてメモリリークしている場所がずばり表示されます。 ==19182== 40 bytes in 1 blocks are definitely lost in los

    ValgrindでApacheモジュールのメモリバグを見つけよう - ひげぽん OSとか作っちゃうかMona-
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

    OMakeすごい。OMakeはマジですごい。 OMakeはGNU makeの代替品みたいなものなんだけど、正直なところこのツールの強力さはGNU makeと比べると失礼なくらいすごい。これのおかげで、「コード修正→ビルド→デバッグ→コード修正→・・・」のループの、ビルドにあたる作業がほぼ消え去った。 ファイルの依存関係の解析がとにかくすごい。よくあるユースケースなんかの場合、最小限の手間でほぼ完璧に依存関係を網羅して、よしなにビルドしてくれる。 とりあえず、はやみずが実際に使ってみたケースを例にとってそのすごさの一端を紹介しようと思う。 case study 論より証拠ということで、自分が OMake を試しにつかってみたケースを紹介する。C言語でスタティックライブラリを作っていて、それに加えて簡単なテストプログラムを書いている。 /include/ 以下にヘッダファイルが全部ある /sr

    OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん
  • Mathematical Information Technology

    サイトについて アルゴリズムとデータ構造 平方根 開平方のアルゴリズム 平方根のアルゴリズム 初期値の改良による平方根計算の高速化 ソート 基ソート 基ソートの改良 高速なソート 高速なソートの改良 その他のソート ソートの様々な比較規則 クイックソート、マージソートのマルチスレッド化 SortApplet 数値の0埋め ヒープ 直接挿入法 連結リスト 数列の和 εアルゴリズムによる級数計算 オイラーの変換による交代級数の加速 数学 素数 素数 試行除算による素数判定 フェルマーテストによる素数判定 素数定理について Javaによる素数の判定 Javaでの平方根計算アルゴリズムの改良による素数判定の高速化 一ケタの素数の倍数を取り除くことによる素数判定の高速化 データ構造の変更による繰り返しの高速化 素数に関する情報源 ソフトウェア開発 LSI C-86 Ver. 3.30c 試

  • オレオレSQLの作り方〜MySQL編〜 - よねのはてな

    オレオレ言語全盛期の炎暑の候、いかがお過ごしでしょうか。 オレオレSQLの作り方〜PostgreSQL編〜に続き、オレオレSQLの作り方〜MySQL編〜という事で MySQLに、自作のSQL関数(UDF)を組み込むやり方を簡単に紹介します。 MySQLは名の通り、私のSQLなのでオレオレSQLには持ってこいですね。 簡単に言えば select oreore(); select oreore(column1, column2) from table1; 自分で定義したC言語のoreore関数をDBに組み込んで使おうという事です。 最終目標は、SQLの結果でJSONを返そうと思います。 select json(a, b) from c;の結果で { "aaa" : 1, "bbb" : "abc" } 固定値を返す関数 早速、固定で999を返す関数を作ってみます。 ※バージョンはMySQL5.

    オレオレSQLの作り方〜MySQL編〜 - よねのはてな
  • JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記

    はじめに JavaScriptCore (WebKit/Safari の JavaScript エンジン) を C 言語に組込む方法を調べてみました。 解説はソースコード中のコメントを見てください。 まず 以下のコードを hoge.c とかいう名前で保存します。 #include <JavaScriptCore/JavaScriptCore.h> static JSValueRef jsGlobalPrint( JSContextRef ctx, JSObjectRef jobj, JSObjectRef jobjThis, size_t argLen, const JSObjectRef args[], JSValueRef* jobjExp); int main(int argc, char** argv) { if (argc == 1) exit(0); // ---- グローバル

    JavaScriptCore (Safari の JavaScript エンジン) を使って C 言語から JavaScript を実行する - IT戦記
  • 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found

    2008年05月09日22:00 カテゴリ書評/画評/品評Lightweight Languages 「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 アスキー改めアスキーメディアワークスの鈴木様より献御礼。 Unix/Linuxプログラミング 理論と実践 Bruce Molay / 長尾高弘訳 C言語を通してUnix/Linuxの仕組みを学べる良著。Perl/Python/Rubyクックブックのレシピを、レシピを並べる(遅延学習的)のではなく、レシピの難易度順に並べ直して、実践を通して理論を学ぶことが出来るように仕立ててある。 書「Unix/Linuxプログラミング理論と実践」では、以下の目次のとおり、実際のUnixコマンドを「再発明」することで仕組みを学んでいく。 目次 - Unix/Linuxプログラミング 理論と実践にないのでBooksデータベー

    「Cクックブック」 - 書評 - Unix/Linuxプログラミング 理論と実践 : 404 Blog Not Found
  • 言語別ゲームプログラミング制作講座一覧 - ネットサービス研究室

    プログラミング言語別にゲームプログラミングについて解説しているサイトをまとめてみました。ジャンル別ゲームの作り方とアルゴリズムまとめもあわせてお読みください。 Java Javaゲーム作りますが何か? ガメラボ Javaゲームはじめました。 JavaRPGを作ろう! Javaによるゲーム解説 JavaScript JavaScriptゲームの作り方 ゲームの作り方 by BFF (^==^)ドリームキャストでJavaScript JavaScript でテトリスみたいなゲームを作ろう! C++ 0からのゲームプログラミング DirectXでゲームを作ってみよう ゲームプログラミング講座 ゲームプログラミングWiki マルペケつくろーどっとコム http://www5b.biglobe.ne.jp/~u-hei/ サラリーマンの俺が無料ソフトだけで3Dゲームを作るスレ まとめ ゲームつく

  • C言語のソース実装 - Florian’s NewestDiary

    id:minekoaさんの以下のエントリーを読んでつらつらと。 [C++] 漢の言語(http://d.hatena.ne.jp/minekoa/20080310/1205146973) 一時期、何でもかんでも巨大なライブラリアーカイブ(.a,.lib)に放り込むというコーディングスタイルを持っていた時期がありました。 結構いろんなメリットがあって、 ライブラリ自体が巨大でも、ライブラリ内のモジュール依存性が低いと実際にリンクされるのは一つだけ。 C言語はエントリーポイントを一つしか持てないので、ユニットテストがやりづらいのを切り分けられる(番時もmain関数のみのソースをリンクするのみ) コンパイルの時間が省略される まぁ、生でC言語を触ることが極端に減ったのでこの辺の好みは今となってはあまり生かされていないのですが、他にもこんな方針を同時に立てていました。 関数は1画面以内。それも、

    C言語のソース実装 - Florian’s NewestDiary
  • emacs C++ 開発環境 link集 - niitsumaの日記

    emacsでc++開発を行うための情報を集めました。まとめをここでしています 以下それぞれのリンク Emacs で C 言語プログラミングを始める人へのイントロダクション 初心者向けdocment 以下の2項目が役立つ タグジャンプ ここで説明しているtagファイルの作成方法 $ find . -name "*.[chCH]" -print | etags - はubuntu7.10では動かなかった 関数名の補完入力がM-tabでできる タグジャンプはここで説明してるetagより後述のgtagの方が便利 Benjamin Rutt's Emacs C development tips (English) complieをする窓の大きさを小さめにする方法 インデントを自分好みにする方法 etagの使い方。Emacs で C 言語プログラミングを始める人へのイントロダクション よりも詳しく解説

    emacs C++ 開発環境 link集 - niitsumaの日記
  • Polipo ― a caching web proxy

    Polipo is no longer maintained When it was first written, Polipo was probably the best HTTP proxy available. Since then, the web has changed, and HTTP proxies are no longer useful: most traffic is encrypted, and a web proxy merely acts as a dumb intermediary for encrypted traffic. Polipo will no longer be maintained. Here are some alternatives: if you need your HTTP traffic to originate from a rem

  • Ichinose Memo(2008-02-07)

    ■ [mac] gprofの代替 Macを10.5 Leopardにしたら何故かgprofが使えなくなってしまった。動作はしているようなのだが、肝心の経過時間のデータが全部0になってしまう。それでgprofの代替になるものを試してみた。 用はプログラム内の関数がどれだけCPU時間を使っているか見たいだけなのだが、コマンドラインツールだとあんまり良さげなのはなかった。GUIベースのものだと、LeopardではInstrumentsとSharkというのがそれっぽいもののようだ。 InstrumentsはLeopardで導入されたDTraceという新しい技術を用いたものなのだけど、ちょっとオーバースペックな感じだ。単一アプリケーションのプロファイリングというよりもシステム全体のパフォーマンスを計測できるもののようだ。システム全体が見えてしまうので、rootユーザでないと動かせないというものちょっ

  • enbug diary(2008-02-02)

    _ 日常 当は朝のうちに行くつもりだったのに、 結局夕方になってから、 No Country for Old Men を観に行った。 原作の評判は聞いていたのだが、映画も割と評判良さそうだったので、 見に行く気になった。 少々オーソドックスなストーリーと言えなくもないが、 映画の世界にどっぷり浸かれて、かなり良かったー。 ハリウッドじゃ、最近はゲームやコミックの映画化が多くて、 どうしても勧善懲悪な内容になりがちで、 少々傷気味だっただけに、 こういう善対悪にならない構図は非常によろしい。 一応善に限りなく近い存在であるシェリフは常に事件から一歩退いた位置にいるし、 観客の多くが一見善と捉えがちな主役は所詮こそ泥だ。 どっちの方がより恐ろしい存在か程度の違いしかないと言っていい。 たぶん、この映画で最も重要なテーマは自分の運命の決め方なんだと思う。 われわれは常に何かを選択しながら生き

  • clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション

    Emacs エディターで C 言語のプログラムを書く人向けに、入門用の解説がないように思う。そこで、知っておくと便利な機能をまとめてみた。 読者は、Emacs の操作とカスタマイズが最低限できる人を対象にしている。つまり、C-x C-f といったショートカット・キーが使えて、.emacs の設定ファイルがいじれる人。各機能について、基的な使い方とその効果、あと最低限の設定について書き出した。 目次 ソースの色付け インデント アラインメント コメント info マニュアル スペル・チェック タグ・ジャンプ 関数名の補完入力 コンパイルとエラー行ジャンプ ChangeLog ファイル 1. ソースの色付け Emacs は、C 言語のソース・ファイルを解析して、if や for といったキーワードに対して、自動で色を付ける。 色を付けることでソースにメリハリが生まれ、可読性が上がる。また、ス

    clmemo@aka: Emacs で C 言語プログラミングを始める人へのイントロダクション
  • 第10回 ソースを読もう

    ソースコードの読み方テクニック ソースコードを読み解くときは、まずプログラム全体の枠組みを理解することが有効でしょう。プログラム全体を読む必要はないのですが、自分の欲しい情報がどこにあるのかを見つけ出すには、プログラム全体の構造のイメージをつかんでおくと便利なのです。ここで最も役に立つのはソースファイル名です。 たいていのソフトウェアのソースコードは幾つかのファイルに分割されていますし、各ファイルにはプログラムの機能に関連した名前がついています。例えば、メモリ管理について知りたいときには「memory.c」とか「gc.c」などという名前の付いたファイルが怪しいといえます。 それで見つからない場合には、プログラムのスタートであるmain関数(Cの場合)からたどっていくことになります。ここでもプログラム全体を読む必要はないので、個別の関数の働きは関数名から推測して、必要そうなところを探すのに集

    第10回 ソースを読もう
  • Mersenne Twister: A random number generator (since 1997/10)

    English Version News: MTToolBox をGitHubで公開しました。(2013/10/04) TinyMTをリリースしました。 (2011/06/20) MTGPをリリースしました。(2009/11/17) SIMD-oriented Fast Mersenne Twister (SFMT) をリリースしました。 SFMTはオリジナルのMersenne Twisterより約二倍速く、 よりよい均等分布特性を持ち、零超過初期状態からの回復も高速です。 SFMTのページを見てください。 (2007/1/31) お願い:使う時にemailを一通下されば、 今後の改良のはげみになります。 どんなささいな問題点でも、見つけ次第御連絡下さい。 m-mat @ math.sci.hiroshima-u.ac.jp (このメールアドレスは スペースを抜いて手で打ち直してください)

  • IPA セキュア・プログラミング講座:C / C++言語編

    IPA 独立行政法人 情報処理推進機構 セキュリティセンターによるセキュア・プログラミング講座:C / C++言語編

  • Lisp500

    [up] | news license installation usage bugs features Is your program large and complex? Are you tired of Greenspunning? Now, in only 500 lines, here we have an informally-specified bug-ridden implementation of Common Lisp, ready to meet your needs. -- Christophe Rhodes Lisp500 is a 500-line implementation of an informally specified dialect of Lisp. It attempts to be not too bug-ridden. Unfortunate