C言語では、複数のスレッドが共有する変数を単純にインクリメントすると期待通りの結果になりません。あるいは簡単なテストでうまく動いたとしても、高負荷になるとおかしな結果を返します。この手のバグは再現条件を揃えること自体が難しいので、はじめから安全なコードを書けるように挙動を知っておくことが大事です。
C++14では2進数リテラルが規格に加わりました。GCCやClangではCでも使えます。というか、もともとコンパイラの独自拡張機能として実装済みだったものが規格になったみたいです。使い方はこんな感じ。
今日はコンパイルの最適化オプションが単純なループと整数演算をどのくらい高速化できるかを見てみます。
Unix系OSのルートディレクトリ直下にある “/usr” はなんの略なのか。 巷の意見はおおよそこんな感じです。
「もちろん “USeR” の略でしょ。」 「あまいな。 “User Services and Routines” の略だ。」 「その “User SR” の略だっていうソースはあるの?」
どうもはっきりしません。そこで調べ始めたら、思いのほか深入りしてしまったので、今回調べたことを書いておきます。
「 おはこん番地は!? API」の新機能と、最近話題のHTML5のCanvas要素を使って 3D天球儀 を作ってみました。
日の出・日の入り時刻を計算する「 おはこん番地は!? API」に大幅な機能拡張を行い、Version 2.0 として公開しました。新たに月の出・月の入り時刻、太陽と月の位置、正午月齢、月相を計算する機能が追加されています。
旧バージョンとの互換性は保持していますので、既に利用中のアプリケーションはそのままご利用いただけるはずです。事前にご連絡頂きましたアプリケーションについては、動作を確認しています。
2009年5月27日のエントリ、 日の出・日の入りの計算でお伝えしたプログラムが完成しました。 その名も、 日の出・日の入り時刻計算 Web API おはこん番地は!? です。
古代より、文明は天文学と共にありました。 なぜかというと、天体の動きを観測することによって歴を作ることができるためです。
暦があれば、いつ農作物を植えれると効率よく栽培できるのかがわかります。 効率よく農作物を栽培できれば、それが文明の発展に結び付くわけです。