[Java,JNI]JNIでクラス検索するときのパッケージ名

OracleのJNIドキュメントに載っているサンプルプログラムを参考にして、Cからパッケージ名付きクラスのmainメソッドを呼びだそうとしたんだけど、うまくいかなかった話。

Java Native Interface Specification
5. The Invocation API


これを元にして、 local.PropertiesSample クラスの main メソッドを呼び出してみよう。

[gcc]gccでC99とPOSIXを同時に使いたかったのだ

[Java][C]JavaのvolatileとCのvolatileでシグナルハンドラを作るときの注意を書いたけど、今どきのマルチスレッドプログラムとはシグナルハンドラを定義するやり方では相性が悪い。
というわけで、そんなときはsigwaitを使うのがいいみたい。

ところが、以下のようなサンプルプログラムを作って、コンパイルしようとすると、エラーメッセージがいっぱい出てきてしまった。

[シェルスクリプト]シェルスクリプトでの関数定義の記法

bashで関数を定義するには以下の3つの記法がある。

# 関数名()
func1() {
  echo 'func1'
}

# function 関数名
function func2 {
  echo 'func2'
}

# function 関数名()
function func3() {
  echo 'func3'
}

[Apex]現在の会計年度を取得するApexコード

開発中のForce.comアプリで、Apexコードから現在の会計年度を取得する必要が出てきました。
Apexの標準クラスからで簡単に取れるかと思いきや、そんなものはないらしいので自分で実装することにしました。

例えばエス・ジーはSalesforceの会計年度設定で「会計年度期首月」を12月、「会計年度の表記」を「期末月に合わせる」としているので、今日が2016年12月1日の場合、会計年度は2017年となります。これをApexコードで取得できるようにします。
↓のコードを参考に、期首月が1月のパターンを考慮しました。

[linux]そうだ、manpage作ろう

シェルスクリプトのようなコマンドラインツールを作成した時に使い方をreadmeファイルで提供することはよくある。
これをreadmeファイルではなく、もっとかっこよく提供したい。manやHTMLのように。

そんなときは、help2manを使ってみるといいかもしれない。
'help2man' Reference Manual

help2manは任意のコマンドに"--help","--version"オプションを与えて起動して、標準出力の内容からmanファイルを生成してくれる。

例えば、catコマンドのmanを作りたければ、以下のようにする。

$ help2man -o cat.1 cat