You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert
LevelDBはSQLをサポートせず、クライアント/サーバ型でもなく、シングルプロセスからアクセスされることを想定したいわゆるNoSQLの高速なキーバリュー型データストアを実現するためのライトウェイトなライブラリだと説明されています。 ChromeブラウザでHTML5の仕様として策定中のIndexedDBを実装するものとして開発されたようです(ドキュメントに明記されていないのですが)。 LevelDBを開発した理由 LevelDBのWebサイトによると、LevelDBは以下の主な機能を備えています。 基本的な操作は、Put(key,value), Get(key), Delete(key) 1つのトランザクションとして複数の変更操作が可能 データは自動的に圧縮し保存される Hacker Newsの記事によると、当初はLevelDBを開発する代わりに平林幹雄氏が開発したTokyo Cabin
2024.09«12345678910111213141516171819202122232425262728293031» 2024.11 2010年10月23日に、六本木ヒルズにあるGoogle日本オフィスで開催された「Google日本語入力Tech Talk 2010」に行ってきました。Google Developer Day 2010の基調講演で本Tech Talkの存在を知り、興味がわいたことと、ちょうど東京出張の間に開催されることもあって応募、参加しました。以下に、その際に自分がとったメモや、本Tech Talkに参加された方のレポート、その他参考文献から文章にまとめました。 文章をまとめる際に私がとった方針は次の通りです。まず、私自身はMozcの開発に興味があるというよりも、Mozcの仕組みや開発手法に興味がありました。そのため、前述の部分を中心にまとめ、Mozcを改良する部
gtestとgmockが1.6.0からmake installできなくなってしまいました。今回は開発者からしたら不本意でしょうが、make installを有効化する方法を説明します。 その前に とりあえず背景から。先日リリースされたgmockの1.6.0をインストールしようとしたところ、make installが失敗するという現象にぶち当たりました。READMEやその他にもインストール方法は一切記述されていません(リンク方法は書いてありますが、記述に問題があります)。気になって調べたところ、開発者が意図的にmake installを無効化したそうです。 無効化した理由も調べてみました。gtestはコンパイルオプション次第でABIが大きく変わります。gtest/gmockはC++で書かれているので、ヘッダにもコードが多く記述されています。そのため、gtestを使う側でも、gtestインスト
Chrome版のFirebugことGoogle Chrome Developer Toolsですが、以前gihyoで解説したときよりさらに便利になっているので、少し紹介します(元はWebKitなので、そのうち(近いうちに)Safariでもそれなりに使えるようになるはずです)。 圧縮されたコードの整形 まず、目立つところからいきましょう。ちょうど先日更新されたChromeのdev版(12.0.742.0)に搭載されたばかりの機能で、minifyされているJavaScriptコードを読みやすいように整形して表示してくれるというものです(IE9の開発者ツールにも実装されている機能です)。 例えば、Google Analyticsのコードは圧縮されていて普通は読めません。 しかし、Chromeのデベロッパーツールなら、 このように整形してくれます。 やり方は簡単で、デベロッパーツールのScript
CityHash, a family of hash functions for strings. Introduction ============ CityHash provides hash functions for strings. The functions mix the input bits thoroughly but are not suitable for cryptography. See "Hash Quality," below, for details on how CityHash was tested and so on. We provide reference implementations in C++, with a friendly MIT license. CityHash32() returns a 32-bit hash. CityHash
超入門編¶ サルでも分かる Google C++ Mocking Framework Google C++ Mocking Framework とは何か? どうして Google Mock を使うのか? はじめ方 Mock Turtles の場合 モッククラスを書く どうやって定義するか どこに書くか テストでモックを使う 任意の Testing Framework で Google Mock を利用する Expectation を設定する 一般的な構文 Matchers:期待する引数は何か? Cardinalities:何回呼ばれるか? Actions:何をするべきなのか? 複数の Expectation を利用する 順序あり呼び出し と 順序なし呼び出し 不要な呼び出し 次のステップ (注意:分からないコンパイルエラーが出たら, Google Mock Doctor を試してください.
google-glogは非常に有名なロギングライブラリであり、その名前からわかる通りgoogleの人々によって開発されている。使い方は簡単で、 LOG(INFO) << "this is not a drill"; みたいな感じで、LOG()が返すオブジェクトoperator<<で記録したいオブジェクトをつなげていくだけで使える。とても便利である。実は、この便利さの裏には、実はいくつかのトリックが隠れている。適当に見た目を真似して作るだけでは、glogと同じような便利さは実現できないのである。今日は、その便利さを実現しているトリックを紹介したい。 なぜLOG()はマクロなのか まず、このLOG(INFO)というのは一見、関数もしくはクラスのコンストラクタかなにかに見える。しかしその実体は実はマクロで、以下のように展開される。 LogMessage(INFO).stream() LOGという
例えばこう、ディレクトリの名前とその中のファイル名を / でくぎって結合する関数を書くとします。引数が std::string でも使いたいし const char* でも使いたい、ということで、たいていは void JoinFilePathStr(const string& dir, const string& base, string* out) { out->clear(); out->append(dir); out->push_back('/'); out->append(base); }なんてのを書くんじゃないかと思います。この関数で問題になるのは const char* を渡すと不要な string object が一度できることで、敬虔な C++ 屋さんだと、 void JoinFilePathStr(const string& dir, const char* base,
Copyright (C) Mainichi Communications Inc. All rights reserved. 掲載記事の無断転載を禁じます
フルタイムで働きはじめて4ヶ月。 いろんなことがありました。 今日はインターンが来ているということもあり日頃のC++コーディングライフの中で大変重用しているツールを紹介します。といってもどれも有名なツールでググれば解説がでてくるとは思いますので、一言ずつだけ紹介してみます。みなさんも何かよさげなライブラリ・ツールがありましたら教えてください。 - valgrind/callgrind/cachegrind プログラムの実行結果を解析するツール群。まぁ、王道であえて紹介する必要はないかもしいませんが.。valgrindはプログラムのどこかでメモリが漏れているかどうかのチェックに使います.コードのどの部分で確保した領域がどこで漏れているかまで追跡することができます valgrind --leak-check=full command プログラムのどのが計算量的にボトルネックになっているかを調べ
Chromeのみ:わかっちゃいるけど、ついついやってしまうウェブでの「道草」。仕事のメールをチェックするために受信トレイを開けたはずなのに、Facebookに友人からメッセージが書き込まれたと知るや、仕事メールそっちのけでFacebookに直行してしまったり、Wikipediaで専門用語を調べていたつもりが、知らず知らずのうちに、サッカー選手のプロフィールページを見ていたりと、ウェブには誘惑がいっぱいです。そこで、こちらでは、そんな数多ある誘惑から自分を断ち切ってくれるChrome用拡張機能をご紹介しましょう。 「Chrome Nanny」は、指定したURLへのアクセスをブロックしたり、頻繁にアクセスしているURLの使用時間を示してくれる、ウェブ上でのセルフマネジメントツール。たとえば、午前9時から午後5時といった具合に、一定時間、指定URLのアクセスをブロックしたり、「60分まで」といっ
google-gtestにいつの間にかValue-Parameterized Tests(VPTと勝手に略します)という機能が追加されていました。 以前のgtestでは、実行される度に特定の値を変更しながらテストすることが面倒でした。例えば、boolのフラグを持っており、それがtrueかfalseかで挙動が変わるようなケースです。そのようなテストケースを書きたかったら、次のようにヘルパ関数を用意するか、テストをコピペして値を変更するなどの処理を書く必要がありました。 TEST(HogeTest, hogehoge) { hogeHelper(true); // trueでテスト hogeHelper(false); // falseでテスト }前者では問題が発生した時に異なるテストが同じ行番号を出力するため、問題の把握がしづらくなります。また、TESTがたくさんあった場合、それぞれにヘルパ
前回のValue Parameterized Testsに続き、今回はType Parameterized Testsというのを紹介したいと思います。コードがコンパイルできなかったらタイポしてるので本家の方を見てね。 Type Parameterized Testsとは Type Parameterized Tests(勝手にTPTと略します)とは、複数の型に対するテストコードを生成するための機能です。Value Parameterized Testsの型バージョンと思えばOKです。 例えばstd::vectorのユニットテストを考えます。 TEST(VectorTest, push_test) { vector<int> v; vにいろいろ }このとき、vectorにはいろいろな型を入れてテストをしてみたいですね。そうなると今までは TEST(VectorTest, int_push_t
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く