タグ

cとprogrammingに関するemergentのブックマーク (46)

  • C++ランゲージクイックリファレンス

  • Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!

    kazuhoさんがやってくれました。 ずいぶん前からjsonをC++でパース(SAXじゃなくてDOM)するのに小さいライブラリないかなーと思ってました。個人的にはjson-cというのを使ってたのですが、幾らか気に入らない所があったりビルドが少し手間だったりしていました。STLしか使わなくてvectorとかmapで表現されるツリー構造な物が欲しいなぁって思ってたんです。 とあるIRCで昨日、kazuhoさんと「ほしいですよねー」という話から始まって、githubにあるjsonxxとかも物色しながら「いいのないねー」とか言ってたらkazuhoさんが「もすこし綺麗に書けそう」って言い出して朝から格的に書き始めてついさっき出来上がりました。速いw 名前はpicojson とても小さく、実装コードだと300数十ステップ程です。しかもヘッダファイルだけなので管理が楽です。 試しにwassrのpubl

    Big Sky :: ヘッダファイルだけでC++から使えるJSONパーサ「picojson」が凄い!
  • 技術情報 | 株式会社きじねこ

    ここでは、当サイトに来られた方々に有益と思われるさまざまな技術情報を公開していきます。サイドメニューに、どのような技術情報を公開しているかのリストが表示されていますので、ご興味をもたれたページを是非ご覧ください。 技術情報に含まれる多くのページは、コメントを投稿できるようにしています。今後の改善のための参考とさせていただきますので、ご感想、ご意見、ご指摘などを残してくださると助かります。なお、当サイトに関わりない投稿、または不適切な表現が含まれる投稿に関しては、予告なく編集または削除させていただくことがございますので、あらかじめご了承ください。 当サイトに掲載しているソースコードは、ご自由に利用していただいてかまいません。ただし、何ら保証はありませんし、当サイト掲載ソースコードの使用および使用不可によって生じたいかなる損害に対しても、弊社は責任を負いかねます。すべて自己の責任においてご利用

  • 100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog

    例の冷却ファンを修理してもらいに秋葉原に行ったのですが、最近の同人ゲームのクオリティはすごいなあと感心していたら、その二階はもっととんでもないことになってて、ひとつ大人になってしまったmikioです。今回は、Tokyo Cabinetのテンプレート直列化機能を駆使して、たった100行のCプログラムでWebチャットシステムを実装してみます。 古式ゆかしいWebチャットシステム 10年くらい前にCGIスクリプトでチャットシステムを作るのが流行していたのを覚えている方も多いと思います。チャットログは現在のようにデータベースサーバに転送して格納するのではなく、ローカルファイルシステム上のファイルにCSVやTSVなどのフォーマットで格納したり、同じくローカルのDBMファイルに格納するのが主流でした。2ちゃんねるの「datファイル」もそのようなデータファイルの一種と言えるでしょう。 その頃から、CGI

    100行のCプログラムでWebチャットを実装する方法 - mixi engineer blog
  • bitsliceによる超高速ビット演算 : DSAS開発者の部屋

    bitslice とは Hack the Cell '09 に参加して知った、Cellに限らず一般的に使えるビット演算の高速化手法について紹介します。 Bitslice と呼ばれる手法では、ビット順を90度回転します。言葉で説明するよりもコードを見たほうが早いので、回転させるコードの例を見てください int x[32], y[32]; // x が元のデータ、y が回転後のデータ. for (int i = 0; i < 32; ++i) { int t = 0; for (int j = 0; j < 32; ++j) t |= ((x[j] >> i) & 1) << j; // x[j] の i ビット目を y[i] = t; // y[i] の j ビット目にする } この変換をすることで、y[0] には x[0] - x[31] の最下位ビットが、 y[1] には 2番目のビット

    bitsliceによる超高速ビット演算 : DSAS開発者の部屋
  • textdrop.net - このウェブサイトは販売用です! - textdrop リソースおよび情報

  • gdb tips - bkブログ

    gdb tips gdb を使う上で便利な tips を紹介します。基的な使い方をマスターしている人向けです。 .gdbinit の設定 ホームディレクトリに .gdbinit を置いておくと、gdb の起動の際に読み込まれます。私の場合は次のような設定をしています。 set history save on set history size 10000 set history filename ~/.gdb_history set print pretty on set print static-members off set charset ASCII set history から始まる最初の 3行は履歴に関する設定です。それぞれ、 gdb のコマンドラインの履歴をファイルに保存する、保存する行は最大 10000 行、ファイル名は ~/.gdb_history 、という意味になります。

  • 2008年にオープンソースプロジェクトは約1万7000件、47%がCベース | OSDN Magazine

    Black Duck Softwareは1月21日(米国時間)、2008年に誕生したオープンソースプロジェクトの件数を1万7000件と発表、この中から「今年のルーキー」としてトップ10を発表した。1位は、GnutellaをベースとしたマルチネットワークWebキャッシュプロジェクト「Beacon Cache」となった。 Black Duckによると、2008年に登録または立ち上がったオープンソースプロジェクトの数は1万7000を数えるという。だが、このうちの57%はダウンロード可能なリリースが1度公開されたのみというから、すべてのプロジェクトがアクティブではないようだ。 Black Duckはこの中から、ダウンロード数やコードの行数ではなく、リリースの頻度や開発活動を評価して「ルーキー」を選んだ。リリースの品質、インフラ、アプリケーション、ツール、コンポーネントなどを持つプロジェクトを上位

    2008年にオープンソースプロジェクトは約1万7000件、47%がCベース | OSDN Magazine
  • Super Technique 講座~longjmpと例外

    プログラムの流れを制御する手段として、いわゆる「構造化構文(for とか if とか)」、悪名高い「goto 文」などがあるのは周知のことだが、かなり特殊なものとして、「setjmp, longjmp」による「非ローカル分岐」と呼ばれるものがある。この「非ローカル分岐」は「非ローカル」と言うだけあって、ある関数の中から、別な関数に制御を移すことができたりする。まあ、そのために乱用すべきではなく、注意して使わなくてはならないライブラリ関数なのだが、実はこれは JavaC++ で言語の上で実装されている「例外」の基礎となるものである。だから、まずこの標準ライブラリ関数「setjmp, longjmp」について解説しよう。 → Java 講座の「例外」 setjmp, longjmp とは どうやって実現してるの? setjmp/longjmp の利用例~インタプリタ 補追1:setjmp

    emergent
    emergent 2009/01/07
    例外を実装するのに使用する
  • 構造体のサイズ違いで悩んだのでリンク時に検出 - memologue

    先日、次のようなC++のクラスが原因で少々悩みました。 struct A { #ifdef V2 int bar_; /* バージョン2以降でしか使わないメンバ変数(らしい) */ #endif int foo_; /* 以下略 */ }; このAを使っている.cppの一部は、g++ -DV2でコンパイルされており、残りは-DV2なしでコンパイルされていたのです。sizeof(A)が異なるオブジェクト同士がリンクされてしまい、まずいことになっていました。たとえば、次のようなa.hと、 // a.h struct A { #ifdef V2 int bar_; #endif int foo_; A(); int getFoo() const { return foo_; } void setFoo(int foo); }; a.cpp, main.cpp を用意して、 // a.cpp #i

    構造体のサイズ違いで悩んだのでリンク時に検出 - memologue
  • 監視型自動makeを実現するmakeauto.pl - 動物と暮らそう

    だいぶやっつけ仕事。 適当すぎて、なにからつっこめばいいかわからない。 perlを選んだ理由がわからない。 だれか説明してくれ。 d:id:lurker:20070227:1172511851を見て、監視しつつ自動でmakeしてくれたら楽だなーと思って、ググったりして出てきたソースをパクったりして、作った。 http://nais.to/~yto/tools/miharing/ これをもろパクリしまんた>< makeじゃないコマンドも監視しつつ自動でやってくれる。 $ perl makeauto.pl -d=no -e="perl %f" test.pl とかやって使う。 僕が常用して使ってるのは $ perl makeauto.pl -d=no -e="make" *.php */*.php 別コンソールでこれ起動しつつ、Makefile書き換えながらphpの動作チェック。 ソース書きな

    監視型自動makeを実現するmakeauto.pl - 動物と暮らそう
  • OMake つかったらC言語でプログラム書く手間がバカみたいに減った - 日記を書く[・ _ゝ・]はやみずさん

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

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

    Project "Alchemy" is now the Flash C++ Compiler (FlasCC) FlasCC lets you bring existing C/C++ code to the web, with high performance, across browsers. Leverage the entire Flash Runtime API from C++, deliver full GPU accelerated graphics, and reach over a billion people with no install using C/C++. Learn more and start using FlasCC Adobe Labs: Home | Technologies | Download | Community | RSS Feeds

    emergent
    emergent 2008/11/18
    C/C++をActionScript VMの上で動作させるためのコンパイラ
  • Google Code Archive - Long-term storage for Google Code Project Hosting.

    Code Archive Skip to content Google About Google Privacy Terms

    emergent
    emergent 2008/11/16
    C implementation of Cliff Click's lock-free hash table
  • Bison 2.3

    Bison This manual is for GNU Bison (version 2.3, 30 May 2006), the GNU parser generator. Copyright © 1988, 1989, 1990, 1991, 1992, 1993, 1995, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by th

  • Using GNU Autotools

    Foreword Foreword (1/2) This presentation targets developers familiar with Unix development tools (shell, make, compiler) that want to learn Autotools. The latest version of this document can be retrieved from http://www.lrde.epita.fr/~adl/autotools.html Please mail me corrections and suggestions about this document at adl@gnu.org. Do not send me any general question about the Autotools. Use the a

  • 特選フリーソフト 「GDB」― プロセス動作中にcoreファイルを出力 ―:ミラクル・リナックス

    日経Linux 2003年8月号掲載 ※掲載記事の内容とは若干異なります。 これまで Linux でできなかったこと GDB での動的 core ファイル生成 gcore.sh の使用方法 core ファイルの解析 まとめ これまで Linux でできなかったこと 様々なプログラムを開発する際、どうしても問題となるのがバグである。 プログラムの開発規模が大きくなればなるほど、また、開発者の人数が多くなればなるほど、プログラム中にバグの混入する可能性は高くなる。 何らかのソフトウェア開発を行う際には、工程として、設計、開発、そして品質を確保するための評価。という工程があるはずである。 この評価工程である程度のバグは取り除かれるが、中には取りこぼされたまま世の中にでてくるバグも存在する。 開発者としては、この取りこぼされたバグ(障害)ほど厄介なものはない。評価工程で発見できなかったため、その原

  • C言語でSingleton 2 - ココサブログ

  • Linuxカーネルの作り出す世界 − @IT自分戦略研究所

    連載は、ソフトバンククリエイティブ刊行の『ふつうのLinuxプログラミング』のうち第1部「Linuxの仕組み」の中から「第2章 Linuxカーネルの正解」と「第3章 Linuxを描き出す3つの概念」を、同社の許可を得て転載するものです。 書は、LinuxにおけるC言語プログラミングの入門書です。「Linuxの世界が何でできているのか」に着目し、「ファイルシステム」「プロセス」「ストリーム」という3つの概念を紹介しています。 なお、連載は転載を行っているため@IT自分戦略研究所の表記とは一部異なる点があります。ただし、Webで掲載するに当たり、(例えば「書は」としている部分は「連載は」としていること、図版などの省略など)、表現を若干変更している点がありますが、その点ご了承ください。 ■オペレーティングシステム 今どきのコンピュータにはオペレーティングシステム(OS:Operatin

  • 判別分析法&世界標準画像のコネタ

    判別分析法&世界標準画像のコネタ 中途半端なエロ画像の雑学だけ書くのも何ですんで、前半は少し真面目な話でも書いちゃう (^-^; 画像処理の基処理に二値化処理があります。簡単に言うとある閾値を基準に白/黒で画像を描くこと。 「その閾値はどうやって決めるねん?」という問題が出てくるんだけど、案外、その解決は難しい。とりあえずは有名所である『 Discriminant Analysis Method:判別分析法』を簡単に紹介してみますぅ♪ Discriminant Analysis Method :判別分析法 この手法の特徴は閾値の決定が統計的手法により自動で決定できることです。 えっと、イキナリですが、HTMLで書くのしんどいんでTEXで書いたのを画像化して張っとくんで見て下さい (^-^; つーか、気で知りたい時はマトモな書籍かサイトを参考(ry 多変量解析とかの専門書なんかを見ると、