タグ

programmingとC++に関するkgbuのブックマーク (29)

  • LLVMのC/C++コンパイルエラーメッセージはわかりやすい | エンタープライズ | マイコミジャーナル

    LLVM is a robust system, particularly well suited for developing new mid-level language-independent analyses and optimizations. CやC++でアプリケーションを開発する場合、またはC/C++で開発されたオープンソースソフトウェアをコンパイルする場合に遭遇するコンパイルエラーや出力されるエラーメッセージは、C/C++に精通していなければ原因を予測しにくいことが多く、C/C++初心者を萎縮させる原因のひとつになっている。移植する段階でインクルードが必要になったとか、typedefを追加するといった簡単な対処でコンパイルできるものが、エラーメッセージの内容が理解できないために解決できないということはままある。 LLVM Project Blog: Amazing feat

  • PFIインターンに行ってきました。 - Blog by Sadayuki Furuhashi

    8月1日から8月31日までの1ヶ月間、PFI夏期インターンに行ってきました。 はてなインターンの 講義・課題・チーム 形式とは趣を異にして、個々人が何か1つのプロジェクトに取り組む方針で進みました。取り組むテーマは 新たに取り組みたい/今取り組んでいる 内容を前提に、既存の問題の中から近いテーマを見つけます(あるいはこじつける^^;)。 インターンの期間中の1ヶ月か2ヶ月の間に成果を出すのが目標! 取り組むテーマはスムーズに決まりました。何か自社で製品を作っていれば普通かと思いますが、探せば問題はいくらでもあるモノです^^ ちなみにPFIの製品は、全文検索エンジンやレコメンドエンジンなどです。 私は以下の4つのプログラムを実装しました: 既存の実装に代わるRPCフレームワーク MessagePack-RPC for PFI クラスタ管理ツール clx プロセス管理ユーティリティ daemo

    PFIインターンに行ってきました。 - Blog by Sadayuki Furuhashi
    kgbu
    kgbu 2009/09/09
    お手の物の素材なんだろうけど、夏休みの宿題としては豪華すぎ。MessagePack RPC, クラスタ管理ツール, daemontoolsの管理版, key-value storeのwrapper。自分には猫に小判だなw
  • steps to phantasien t(2008-03-16) C++ と Actor

    頭が痛いだけでなく, 寝ている時に頭の傷を庇うせいか首がいたい. 鞭打ちかもしらんけど... そして頭とセットで打った臀部もいたい. 満身創痍で出かける気力もなく, 家でうだうだしているところ. こんなに良い天気なのになあ. うだうだついでに貰ったの紹介. 最近貰った: プログラミング Erlang いただきました. ありがとうございます > 著者およびオーム社の中の方. Erlang の親玉が書いた入門書の翻訳です. Erlang は言語として特に斬新なところはなく, 処理系の提供するサービスの出来がいい, というのを伝聞で聞いていた. 読んでみるとたしかにそうだった. の内容も言語仕様(文法)の話は前半だけ. 後半は分散だとか並列の話をしている. 面白いのは後半. 私はお仕事の関係もあって分散メッセージングの仕組みには少し興味があったから, これはとても勉強になった. actor

    kgbu
    kgbu 2009/08/09
    Erlangの中身をC++とかで苦労してみようという話。コメント欄では10Kスレッドも不可能じゃないとかいう情報あり。
  • JavaScript の変数と delete 演算子: Days on the Moon

    Kanasan.JS JavaScript 第 5 版読書会 #1 にて delete 演算子の動作が話題に上ったそうです。そこで、それについてちょっとまとめてみようかと思い立ったはいいものの、ずるずると引き伸ばしているうちに年を越してしました。しかし、読書会 #2 の開催も決まり、もうこれ以上引き伸ばしているといつまでたっても書けなさそうなので、いい加減腹をくくって個人的にまとめてみようと思います。 JavaScript の変数 delete 演算子の対象 変数に対する delete 演算子 削除できるプロパティとできないプロパティ 変数の属性 delete 演算子の返り値 JavaScript の変数 delete 演算子の話に移る前に、変数とは何なのかおさらいしておきましょう。JavaScript において、変数とはプロパティの別名です。といっても、すべてのプロパティを変数というわけ

    kgbu
    kgbu 2009/05/27
    変数はプロパティだ、といわれて狐につままれたような気持ちになるが、スコープのプロパティだ、ということなのかしら?だからdeleteの働きも違う、ということ?
  • C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター

    これまでにC/C++ セキュアコーディングセミナーで使用した講義資料を公開しています。2010年度にセミナを実施した、文字列、整数、動的メモリ管理、書式指定文字列、CERT C セキュアコーディングスタンダード、ROSE については、それぞれ最新版の資料を掲載しています。 文字列 ユーザとソフトウエア間に発生するデータのやりとりの大部分は文字列によって行われます。 また、プログラム間でのデータ交換も文字列形式で行われるようになり、その結果、文字列表現や文字列管理、文字列操作における弱点がソフトウエア脆弱性を生み出しています。 文字列では、C/C++ 言語における文字列操作、一般的なセキュリティ上の欠陥と、その結果発生する脆弱性と対処方法について解説します。 C/C++ における文字列の特性 犯しやすい文字列操作の間違い 文字列の脆弱性 プロセスのメモリ構成 スタック破壊の仕組み コードイン

    C/C++ セキュアコーディングセミナー資料 | JPCERT コーディネーションセンター
    kgbu
    kgbu 2009/05/15
    2008年度にセミナーで使った講義資料が公開されている
  • http://atnd.org/events/451

    http://atnd.org/events/451
  • 累乗剰余のテスト - 西尾泰和のはてなダイアリー

    TopCoderとかでたまに出る「値が巨大になるのでNであまりを取って答えてね」のためにあまりを取る階乗とかを作って用意しておいた方がいいのかなー、なんてことをid:suztomoに話したらこんなサイトを教えてもらった: Spaghetti Source - べき剰余 で、今読んでいたんだけど、これって x * x がIntの上限を超えるときに powMod(x, 2) されても大丈夫なんだろうか。 というわけで試してみた。 int main(){ Int x = 1 << 30; DP(x); DP(x * x); DP(powMod(x, 2, 10)); DP(((x % 10) * (x % 10)) % 10); } 結果 x: 1073741824 x * x: 0 powMod(x, 2, 10): 0 ((x % 10) * (x % 10)) % 10: 6うん。正しい値

    累乗剰余のテスト - 西尾泰和のはてなダイアリー
    kgbu
    kgbu 2009/02/26
    C++のアルゴリズム実装repositoryとしてのSpagetti sourceって知らなかった。メモ。
  • 年末 - 兼雑記

    「… + 未知成分 10%」セミナー http://d.hatena.ne.jp/m-hiyama/20081225/1230191000 に参加させていただきました。 Erlang は思ってたより面白そうなものなんだなぁとわかりました。来年なんか言語勉強するとすれば Erlang とかそのへんかなぁ。 あと JSONP をわかってなかったことがわかりました。 あと檜山さんはとても話がうまくてステキだった。 言語雑談会 例年のごとく。しらいしさん主催ありがとうございましたささださん会場提供ありがとうございました。 今回の目標は Cryolite さんに C++ について色々聞くということだったんだけど、あんま時間が無くて予習がほとんどできなかった。でもなんか6時に起きたのでいそいそと予習…したら華麗に遅刻。朝は二日酔いもキツい感じだった。 しらいしさんの Haskell プレゼン。 「

    年末 - 兼雑記
  • Google C++スタイルガイド 日本語訳

    Text Drop 翻訳、プログラミング、写真、カメラなどについて書いてます。スタイルガイド/コーディング規約やチートシートなど、ちょっと便利なものを翻訳しています。 TEXTdropでは、C++プログラマーも利用できるパワフルな機能を搭載。C++のコードを書く際に行う手順や避けておきたい工程などを詳しく説明しています。コードスタイルラインの日語版では、日語訳やJ P Yへの換金もサポート。話題性があるオンラインカジノ 日円変換や入金の際のバグにも対応しています。統一性のあるコードを書くためのポイントや規約の種類を参考にする事ができます。

    kgbu
    kgbu 2008/12/22
    GoogleによるC++のコーディング規約。C++の素人である自分にはありがたみはよく分からないが、なんでもできるC++に有る程度制約をかけることで、バグが減ったり、保守が容易になることは理解できる。例外がダメなのは..
  • JPCERT コーディネーションセンター イベント情報

    C/C++ セキュアコーディング ハーフデイキャンプ 2009夏 part3 は受付けを終了いたしました。 お申込みありがとうございました。 脆弱性のない安全なプログラムを開発するために ~ソフトウエアの脆弱性が作りこまれる根的な原因を学び、問題を回避する~ JPCERTコーディネーションセンターは、C/C++ 言語で脆弱性を含まない安全なプログラムをコーディングする具体的なテクニックとノウハウを学んでいただくためのセミナーを下記のとおり開催いたします。 セミナーは 2009年1月29日から 3月26日に開催した「C/C++ セキュアコーディング ハーフデイキャンプ」を再講演するものです。 従来のプログラミング教育は、基的なアルゴリズムをどのようにコーディングするかが主なものでした。 しかし C/C++ 言語による開発では、基的なプログラミングだけでなくセキュリティへの十分な配慮が

    JPCERT コーディネーションセンター イベント情報
    kgbu
    kgbu 2008/12/10
    C/C++ 言語で脆弱性を含まない安全なプログラムをコーディングする具体的なテクニックとノウハウを学んでいただくためのセミナー、だそうです。
  • http://www.eva-01.jp/d/?date=20081105

    kgbu
    kgbu 2008/11/07
    Google ChromeのJavascriptエンジンであるV8を、他のアプリケーションに組み込む話。ビルドから。
  • Code Project

    Code Project - For Those Who Code

    kgbu
    kgbu 2008/11/07
    Tutorial and sample explaining how to use the V8 virtual machine inside your application.
  • google-glog: Application Level Logging

    ► 2025 (33) ► September (5) ► August (5) ► July (5) ► June (3) ► May (5) ► April (1) ► March (1) ► February (3) ► January (5) ► 2024 (39) ► December (4) ► November (1) ► October (1) ► September (3) ► August (4) ► July (4) ► June (4) ► May (5) ► April (4) ► March (2) ► February (6) ► January (1) ► 2023 (44) ► December (5) ► November (6) ► October (2) ► September (3) ► August (1) ► July (2) ► June (

    google-glog: Application Level Logging
  • Modern C++ Design(Loki)のTypeList(これは古い日記です) - Diary(uid)

    今日の日記はModern C++ Designを読んだ人とかLoki(Modern C++ Designで解説されているライブラリ)を使ったことのある人しか意味がわからないと思うのでご了承ください。 Modern C++ Designでは、型のリスト「TypeList」を可変長に扱うため、TYPELIST_1 〜 TYPELIST_50まで、要素の数に応じたマクロを用いることで対応している。つまり、 #define TYPELIST_1(T1) Typelist<T1, NullType> #define TYPELIST_2(T1, T2) Typelist<T1, TYPELIST_1(T2)> #define TYPELIST_3(T1, T2, T3) Typelist<T1, TYPELIST_2(T2, T3)> // ... #define TYPELIST_50(T1, T

    Modern C++ Design(Loki)のTypeList(これは古い日記です) - Diary(uid)
    kgbu
    kgbu 2008/10/01
    コンパイル時には、すべてのオブジェクトがimmutableなんで、関数型言語みたいな振る舞いになるってところが面白かった。[book]
  • Spaghetti Source - 各種アルゴリズムの C++ による実装

    ACM/ICPC(プログラミングコンテスト)系列の問題を解くことを目標にして,各種アルゴリズムを C++ で実装してみた.極めて意地が悪い類の問題には対応していないし,特定の入力に対して高速に動くということもない.計算量も最良とは限らない. これらを参考にする方への注意とお願い: これらの記述は正確とは限りません.参考文献を参照することを強く推奨します.間違っている場合は是非教えてください. これらのプログラムは間違っているかもしれません.各人で検証することを強く推奨します.バグがあれば是非教えてください. 分類が怪しいので,これはこっちだろう,ということがあればコメントを下さると助かります. 注意! 現在書き換え中 TODO 分類を正しく行う. 全体的に説明と使い方を詳しく. Verify していないものを Verify. ボロノイ図(いつになることやら……) 基 テンプレート グラフ

  • 動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary

    boost::shared_ptr は動的削除子 (dynamic deleter) と呼ばれる技法に基づいて実装されています.この動的削除子という技法で重要なのは, boost::shared_ptr が最終的に呼び出す解放処理が boost::shared_ptr のテンプレート引数の型に関係なく,コンストラクタに実際に渡されたポインタの型で,かつ boost::shared_ptr のコンストラクタの呼び出しの段階で 決定する,ということです. 以下のようなコードが,動的削除子の効果が一番分かりやすい例になるでしょう. class X{ public: ~X() { std::cout << "X::~X" << std::endl; } }; class B{ public: ~B() // virtual でないことに注意!! { std::cout << "B::~B" <<

    動的削除子 (dynamic deleter) - 意外と知られていない? boost::shared_ptr の側面 - Cry’s Diary
    kgbu
    kgbu 2008/08/05
    汎用の処理を書きたくなると、MaybeとかUnknownまで引き受けなきゃならないってことなのかしら。destructorはC++のキモな部分だけに興味深い、でも自分にはまるで理解できないけど(汗
  • それ (dynamic duck typing) C++ でできるよ +α - Cry’s Diary

    http://d.hatena.ne.jp/gnarl/20080801/1217523822 元のエントリが静的なものと動的なものを比較していますので,それに対する批判としてはまったく正当なものなのでそこには異論はありません.ですが,蛇足として, static duck typing が与えられればそこから dynamic duck typing を導出することは C++ ではできるんだよにゃ,ということは指摘しておきたいのです.これは,書籍のような整理された形でまとめられていない技法を用いますので,しばしばこういう議論の中で見落とされるのですが. それ C++ でできるよ,というのはつまり,要件が「ダックタイピングだと共通の基底クラス/インタフェースがなくても統一的やりかたで『かつ動的に』メソッド呼べる」だけなら, C++ でも特に問題なく記述できる,ということです.ただし,それが簡潔

    それ (dynamic duck typing) C++ でできるよ +α - Cry’s Diary
    kgbu
    kgbu 2008/08/05
    北京duck typingって美味しいのかどうか自分にはぜんぜんわからないけれども「複雑なことはlibraryの中に閉じ込めてある」というのにはなぜか感動した。C++の使われ方として自分が想定していた方向だったから?
  • CUDAを使う:tech.ckme.co.jp

    ここではGPGPU向け統合環境の一つ、NVIDIAのCUDA(Compute unified device architecture)を使って、大規模並列計算を行ってみる。 NVIDIAによれば、並列度の高い処理ではCPUと比べておよそ10倍以上の速さで処理できるという。 なお、CUDA環境をインストールすると、自動的にOpenCLも使えるようになる。OpenCLに関しては別項を参照。 目次 CUDAのインストール(Linux編) - LinuxにCUDA環境をインストール CUDAのインストール(Windows編) - Windows XPにCUDA環境をインストール CUDAのインストール(Mac OS X編) - Mac OS XにCUDA環境をインストール 初めてのプログラム - とりあえずCUDAでのプログラムに慣れてみます 拡散方程式を解く - より実用的な処理の一例として拡散

  • mixi Engineers’ Blog » 言語バインディングを書こう

    世田谷の某所から原宿まで自転車通勤しているのですが、そろそろ寒くなってきたので電車に切り替えようかと悩み中のmikioです。今回はTokyo Cabinetのスクリプト言語バインディングについて述べます。 スクリプト言語バインディングとは TCはC言語で実装されたライブラリで、C言語(C89、C99)およびC++言語のプログラムから利用することができます。CやC++は各種の計算処理やシステムコールの呼び出しを直接的に記述できるので高速に動作するプログラムを作ることができる反面、ポインタ演算やメモリ管理などで致命的なバグを潜ませやすいので非常に注意深くコーディングを進めなければいけません。つまり、プログラムの実行速度は速いが、開発速度は遅いということです。 それに対して、PerlRubyをはじめとするいわゆるスクリプト言語は、実行速度はCやC++に劣るものの、高水準かつ直感的な文法と強力な

    mixi Engineers’ Blog » 言語バインディングを書こう
    kgbu
    kgbu 2008/05/09
    本当に楽しそうにコード書いていて、いいなぁ
  • HackCraft—The RAII Programming Idiom

    Or rather, which languages is RAII appropriate for. As will soon be explained RAII depends on the way that constructors and, in particular, destructors, get called and the predictability of this happening. RAII can be used with: Languages which can have user-defined types allocated on the stack (“automatic” objects in C/C++ terminology) and cleaned up during normal stack cleanup (whether because o

    kgbu
    kgbu 2008/03/23
    リソースの取得すなわち初期化であるという話。使わなくなったリソースは解放すべしという話。それを実行するidiomについて。