出力を入力へ

プログラミングに関する基本的な事を中心にまとめます

プログラミング

リングバッファの識別子にビットマスクを用いる

言語によらず、プログラムを書くときの実装技術の1つ。 特にメモリの制約がゆるく、リングサイズに強い制約が無いときは (リングサイズが特定の値である必要が無く、一定以上であればよいとき) リングサイズを2のるい乗とし、識別子にはリングサイズ-1とする…

実行環境に応じてログの動作を切り替える

ローカル環境では標準出力(または標準エラー出力)にデバッグプリント文を出力し、 リモート環境ではなにもして欲しくない。 これをすべて自動で実現させるための方法についてまとめておく。具体的には、プログラミングコンテストでデバッグコードの除去ミス…

オブジェクトの比較に'=='演算子は使ってはいけないというあたりまえの話

Javaのようなオブジェクト指向言語を学べば1〜2日で習うであろう事に オブジェクトの比較に==は使ってはいけないということ。あろうことか、Javaを5年以上使っていながら このミスを犯してしまったので、そのミスをまとめておく。

Javaにおけるデバッグプリントの実装

目的: Javaでデバッグ実行時のみメッセージの出力を行いたい。

eclipseのインデント(タブ・スペース)設定変更

gistにソースコード貼り付ける際にタブ・スペースの 設定が気になったので、変更した設定まとめ。基本方針として、インデントはスペースのみにしたい。 これを実現するために、インデント設定と表示の設定を変更する。

Visual Studioにおけるビルド・リビルド・クリーン

最近、WindowsにてOfficeアドイン開発をしていた時に気付いたこと。 一般に予測される挙動とちがったのでメモ。

引数を利用しない場合でもWarningを出さない

いまさらながら知ったこと。C言語プログラミング時にコンパイルオプションにWallを指定するなど、 利用していない引数がある場合に警告を出している。 通常はこれば便利だけども、どうしても避けられない場合もある。これを解決する方法として、-Wno-unused-…

標準出力を変数に代入する方法あれこれ

シェルスクリプトにおいて標準出力(標準エラー出力)される文字列を変数に代入して取り扱う方法について。 対象とする関数として以下のものを利用。 sayHello(){ sleep 10 echo "hello stdout" echo "hello stderr" >&2 } 直接変数に代入する 変数messageに…

getoptの使い方

シェルスクリプトで引数処理をしてくれるgetoptがどうも上手く使えなかったので整理してまとめ。 既に似た情報は山程ネットにあふれているけどどうも一目でわからなかったので書き直し。とりあえず使える用なので 他のオプションとかgetoptsとの区別とかは無…