例:「このプログラムはC言語で書きました」=「このプログラムはGDBでひたすらデバッグしてvalgrindでメモリリークをチェックしました」 以下絵が続きます。チャートそのものはd3.jsで描かれていて、このgistを拝借して手を加えています。
1. メソッドをクラスメソッドにするときは、デコレータを使う あるメソッドをクラスメソッドにするとき、 Python ではデコレータを使うことができる。 2.1 組み込み関数 によると、(太字は引用者による) classmethod( function) function のクラスメソッドを返します。 クラスメソッドは、インスタンスメソッドが暗黙の第一引数としてインスタンスをとるように、第一引数としてクラスをとります。クラスメソッドを宣言するには、以下の書きならわしを使います: class C: @classmethod def f(cls, arg1, arg2, ...): ... ふーむ、ここでも第一引数が必須で、それがクラスを参照するということか。Python のこういう書き方は、最初とっつきにくいと感じた。 (+_+) デコレータの書き方としては、関数の前に @classmeth
3月は論文の〆切が2-3個あるので、それを避けるように引っ越し日程を詰めているのだが、なかなか難しい。もはや数万円高くなるくらいは諦めている (論文の〆切間際は1日でも時間を大切にしたいので……)。 [twitter:@hillbig] くんが以前紹介していた「IN THE PLEX グーグル ネット覇者の真実」 グーグル ネット覇者の真実 追われる立場から追う立場へ 作者: スティーブン・レヴィ,仲達志,池村千秋出版社/メーカー: CCCメディアハウス発売日: 2011/12/16メディア: 単行本購入: 8人 クリック: 447回この商品を含むブログ (55件) を見るを登美ケ丘イオン (NAIST から最寄りのイオン) で先日発見し (ちなみに高の原のイオンの書店にも何冊か入荷している)、少しずつ読んでいたのをようやく読了。ものすごいボリューム……。しかし少なくとも情報系の方は必読。
今まで,この連載では月ごとにテーマを決めて解説を行うというスタイルで行ってきました。今月はちょっと変則的なのですが,月の前半と後半に分けてみます。 というのも,今月の15日から4日間,Javaの最大のお祭りJavaOneがサンフランシスコで開催されるからです。また,前日の4月14日にはNetBeans Dayも開催されます。 4日間の会期中,テクニカルセッション,BOF,ハンズオンラボを含めて300以上のセッションが,朝8時30分から夜中の11時30分までびっちりと行われます。まさに,Java漬けの一週間です。 筆者もJavaOneに参加するので,今月の後半はJavaOneのレポートをお送りする予定です。 ブロックしないということはどういうこと? さて,話をNew I/Oに戻しましょう。 今回はノンブロッキングI/Oについて取りあげます。 ノンブロッキングI/Oとは,処理をブロックすること
newした配列は最後にdelete[]を使って解放するわけですが、「何個解放するか」は誰が知ってるのか。 コンパイラによって異なると思いますが、GCC 4.6では先頭要素の1つ前にサイズが入ってました。 #include <iostream> struct X { X() { std::cout << "ctor" << std::endl; } ~X() { std::cout << "dtor" << std::endl; } }; int main() { const std::size_t n = 3; X* xs = new X[n]; std::cout << *(reinterpret_cast<std::size_t*>(xs) - 1) << std::endl; delete[] xs; } ctor ctor ctor 3 dtor dtor dtorただし、デストラ
ソースコードのなかでバグが多いのは、より高頻度に、かつ最近になって集中的に直している部分。これが、グーグルで採用された「バグ予測アルゴリズム」であることを、先月の記事「グーグルはコードの品質向上のため「バグ予測アルゴリズム」を採用している」で紹介しました。 そのバグ予測アルゴリズムを実装したツール「bugspots」がオープンソースとして公開されています。 gitのレポジトリを分析 bugspotsはRubyで記述されており、gitのレポジトリから履歴を読み込んで分析し、どのモジュールにバグが含まれている確率が高いかを示してくれます。 以下のようにインストールして実行(説明ページから引用)。 $> gem install bugspots $> git bugspots /path/to/repo $> git bugspots . # (in current git directory)
I'm Michael Suodenjoki - a software engineer living in Kgs. Lyngby, north of Copenhagen, Denmark. This is my personal site containing my blog, photos, articles and main interests. Thursday January 21st, 2010 Every programmer is developing in group of programmers. The smallest group is yourself and yourself a couple of weeks later. If you can't communicate easily to yourself how can you expect to c
静的解析ツールって商用のものだと結構あるわけですが、 まぁ、基本的にこんなツールは有用性を示してもぽんぽん買ってもらえる訳もないので オープンソースに依存するわけです。 で、C++ならSourceForge.net: cppcheck かなあと思ってプロジェクトにかけてみたりするわけです。 静的解析ツールに求めるところは 「ノイズは少なく、でも怪しいところはちゃんと教えてね」 ということで、ずらーっと大量にerrorやwarningがでてもうんざりするわけです。 逆にあまりにも出さないと意味がないわけで。 ここが難しいところではありますが、 はてさて、まぁ、気休めだなあと思ってかけてました。 自分がこれがいいなと思ったのはSTLをちゃんと見てくれるよっていうところで、 std::vector<int> vv; for (std::vector<int>::iterator it = vv.
この記事はBoost Advent Calendar 2011の参加記事です。 Boostの数学ライブラリの一部を紹介したいと思います。 複素関数としての逆三角関数・逆双曲線関数C99の逆三角関数・逆双曲線関数を移植したものです。C++11に追加されたので、そのうち新規には使われなくなるかもしれませんが……。 逆三角関数・逆双曲線関数は多価関数なのでどういった分枝を取るかが問題になります。分枝についてBoostのドキュメントに書かれていないので明記しておきます。 arccos #include <boost/math/complex/acos.hpp> template <typename T> std::complex<T> acos(const std::complex<T>& z); 上で、実関数としてのと一致し、で連続となるように分枝をとります。 arcsin #include <
この記事はC++11 Advent Calendar 2011の参加記事です。(書きかけ) C++11には、C99の数学関数や浮動小数点数を扱う関数が追加されました。追加された関数のうち便利なものをいくつか紹介したいと思います。 C99との相違点今回紹介する関数はC99由来のものですが、C++11への追加に際して変更があります。1つ目の変更は関数の名前です。Cでは関数のオーバーロードができないので、float用、double用、long double用の関数が別の名前を使わなければならないのに対し、C++では同じ名前で使えます。例えばC99のガンマ関数は float tgammaf(float); double tgamma(double); long double tgammal(long double); のようにfloat, long doubleのものには接尾辞が付いてしまいます。
Boost Advent Calndar 2011に恐縮ですが参加させて頂きました。15日目です。 最初はBoost.Asioについてまとめるぞーと意気込んでいたものの変に長くなってしまったのでBoost.Asioの中のio_serviceに絞ったためこんなタイトルに成り申した。 Boost.Asioとは 主にネットワークのI/Oのような時間のかかってしまう処理を非同期的かつ簡潔に扱えるようにした便利なライブラリです。 ネットワークを中心に、シリアルポート、タイマー、シグナルのハンドリングなども扱えます。 と、いうわけでio_serviceです。 Windows環境にてVC++10、Boost1.48.0を用いています。 io_service 全てはこのクラスに始まり、このクラスに終わります。 各OSの提供するI/O制御への橋渡しをしてくれるもので、Asioの提供するIOサービス(dead
これは,C++11 Advent Calendar 2011 参加記事です.現在,開催されている Advent Calendar の一覧は Advent Calendar 2011 (jp) 開催予定リスト - Life like a clown を参照下さい. C++11 (C++0x) に関しての情報は 本の虫 や Faith and Brave - C++で遊ぼう でかなり詳細な記述がありますので,情報を探す場合は site:cpplover.blogspot.com や site:d.hatena.ne.jp/faith_and_brave 辺りを指定してググってみると良いかもしれません.この記事でも,該当ブログの記事をメインにリンク集を作成しています. 尚,自分の理解が追い付いてないものや見逃したもの等があるので,結構な抜けがあるかと思います. 概要 ざっと概要を知りたい場合は,
本記事は、Boost Advent Calendar 2011 の9日目の記事です。 本稿では Boost.Wave という C/C++ プリプロセッサライブラリについて書きます。 Boost.Wave とは Boost.Wave は、パーサコンビネータライブラリ Boost.Spirit によって書かれた C/C++ プリプロセッサライブラリです。 C/C++ プリプロセッサは言うまでもなく、某社のサーバでも利用されているという純粋関数型言語です。 主に HTML ジェネレータとして活用されているという噂です。 Boost.Wave を使うことによって、C/C++ プリプロセッサを C++ のプログラム内で処理したり、 あるいはプリプロセス中の各処理にフックして解析を行なったりすることが出来ます。 Quick Start まずは 本家ドキュメント の Quick Start のコードを読
はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28
とにかく手っ取り早く、出し入れしたい Python 独学ちゅうな感じです。とりあえず手元の Ubuntu で動けばいいやってことで。PyGTK 使います。 http://www.kano-lab.net/30af30ea30c330fc306e51855bb93092url77ed7e2eから丸パクリしました。 クリップボードから取り出す編。まず「ぱいぱいぱいそん」をコピーする。 >>> import gtk >>> clipboard = gtk.clipboard_get() >>> text = clipboard.wait_for_text() >>> print text ぱいぱいぱいそん 取り出せたー。んで、入れる編。 >>> clipboard.set_text(u'ほげほげ') >>> clipboard.store() 貼り付けると ほげほげやったー やりたかったこと ク
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く