まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf


昨年、転職しました。
サラリーマンの年末調整(ここでは確定申告と各種控除と両方まとめてこの言い方とします)は、普通は転職先の会社でやってくれるのですが、退職/入社のタイミングとか、退職元/転職先の対応スピード感とかよってはそのための書類の入手に時間がかかり、転職先での年末調整申し込み期限に間に合わないことがあります。そういう人はこの時期に自分で税務署に行って申告する必要があるわけです:
http://www.nta.go.jp/tetsuzuki/shinkoku/shotoku/tokushu/


大好きなお金のためとはいえ、貴重な休みを使うことになるので一発で終わらせたいもの。というわけで事前準備をしっかりしておきましょう。そんな自分用備忘録です。
zei



まず所得税の年末調整をする必要があります。これは1年間の中で複数の会社から給与をもらっていた場合にその調整を行う必要があるものです。必要な書類としてはこれら全ての会社から出してもらう源泉徴収票です。例えば6月末に退職して、1カ月休んで、8月から新しい会社になった場合であれば(1)1月~6月分の源泉徴収票を転職前の会社から、(2)8月~12月分の源泉徴収票を転職後の会社から出してもらって、それぞれ入手する必要があります。3箇所以上で働いた(給料をもらった)場合も同様で、全ての会社の源泉徴収票を取り寄せておく必要があります。

次に保険などの控除の還付。これは「年末調整書類に貼り付けるやつ」です。保険の控除証明とかのあれ。年末調整を行ってない場合は貼り付けてないはずなのでそれを用意、と。

また、還付金の振り込先を指定するために預金通帳が必要になるようです。そうなの?と思ったけど、確認したらそう言われました。


2014/02/23 追記
通帳までは必要ありませんでしたが、振込口座を指定できるようにしておく必要があります。


そして印鑑、これも忘れずに、とのこと。


2014/02/23 追記
印鑑は使った記憶なし。


これらを持って自分が住んでいる自治体の税務署へ。基本平日しか開いてませんが、この時期は週末も開いていたり、週末の特定の日のみ開いていたりするようです。自分の税務署がどこにあって、いつ開いているのか、あらかじめ確認しておくのがいいと思います。

で税務署へ行って、確定申告書Aの用紙をもらって記入、だそうですよ。

こんなもんでいいのかな? 実際に申請して、追記次項があったらこのブログエントリに書き足します。

2014/03/14 追記
無事還付手続きが行われました。

 

無料のオフィススイート製品の1つである LibreOffice のバージョン 4.2 が出たと聞いて、使ってみようと思い立ちました。

Windows など普通にインストーラ/アンインストーラを使える環境であれば特に気にならないのですが、僕のメイン環境の1つが Debian ベースの Kali Linux  で、ここに LibreOffice 4.1 をインストールした時は DEB パッケージ形式のモジュール一式をダウンロードして、

# dpkg -i *.deb

のようなコマンドでまとめてインストールしました。

今回、LibreOffice 4.2 を導入するにあたり、インストールそのものは前回と同様にダウンロードして展開してインストール、でいいのですが、その前に導入済みのバージョン 4.1 をアンインストールする必要があります。アンインストーラのようなものはないけど、さてどうする?

手順としては LibreOffice 関連の導入済み DEB モジュールを1つずつパージしていけばどうにかなるわけで、それをシェルスクリプトでまとめて実行するように記述すればいいですよね。

導入済みの LibreOffice DEB モジュール一覧はこのコマンドで作れるはず:

# dpkg -l | grep libreoffice | awk '{print $2}'

というわけで、このコマンドで(DEBパッケージを使って)導入済み LibreOffice のアンインストールができるはずです:

# dpkg -P `dpkg -l | grep libreoffice | awk '{print $2}'`


アンインストール後に、改めて最新版の LibreOffice をダウンロード&展開して、インストールすればOK!


 

(追記 2015.01.05)
記事タイトルでは対象バージョンを 10.1 にしていますが、2015/01/05 現在は同じ手順でバージョン 10.5 が導入されるようです。


IBM 製リレーショナルデータベースである DB2 を CentOS に導入する手順を紹介します。
2014020100

DB2 は IBM 製のリレーショナルデータベースのサーバーおよび管理システムです。1980 年にリリースされた System 38 に組み込まれており、これが SQL を初めて採用した製品、と言われています(DB2 という単体製品としては 1983 年リリース)。リレーショナルデータベースとしての機能を持ちながら、XML DB 機能が統合されていたり、最新バージョンではビッグデータの統計処理に対応するための列ストア機能にも対応しています。

DB2 は本来有償の商用製品ですが、サポートが無いことも含めた特定の条件下であれば無料でダウンロードして利用することができます(商用利用も可)。その条件で提供されるエディションが Express-C と呼ばれています。無償版用のエディション名が与えられていますが、モジュールそのものに商用版との違いはありません。結構お得感のある製品と言えます。この詳しい条件については後述の「DB2 Express-C 10.1 for Linux クイックインストール」リンク先を参照してください。


インストール&セットアップの手順を紹介する上で最初にいくつかお断りを。まず現時点で DB2 の最新バージョンは 10.5 です。以下に Express-C 版(サポート無しの無償版)の導入手順を紹介しますが、Express-C でも 10.5 を入手すること自体は可能ですが、10.5 版のインストーラは独自のもので、よく言えば「インストーラーが最初に色々やってくれて便利」なんですが、悪く言うと「普段オープンソース製品を使っている人からすると独自すぎ&最初に色々すっ飛ばされると理解できない部分がある」のでした。というわけもあって、rpm で導入できるバージョン 10.1 を対象に紹介します。

また、IBM は公式には CentOS 上での DB2 の動作を保証していません(RHEL は対象):
DB2 Express-C 10.1 for Linux クイックインストール

私自身で試した範囲では RHEL 向けの手順をそのまま利用することで CentOS でも導入できて動作することを確認していますが、とりあえず注意が必要です。


では導入手順の紹介です。上記でも少し触れましたが DB2 は(現時点では)yum でサクっと導入できるものではありません。まずはインストールモジュールをダウンロードする必要があります。そしてその前提として IBM ID というユーザーIDが必要になります。登録自体は無料です。IBM ID を所有していない場合はダウンロード前に(誘導されて)作成することになります。

DB2 バージョン10.1の場合、"DB2 Express-C Team Blog" から直接リンクがあるのでこちらからダウンロードするのが手っ取り早いです。
http://www.db2teamblog.com/2010/11/rpm-and-deb-packages-for-db2-express-c.html

2014020101


上記サイト内の "Get RPM and DEB packages for DB2 Express-C" と書かれたリンクをたどると、DB2 バージョン 10.1 の、Linux 向けインストールパッケージ(RPM版とDEB版)が、32bit/64bit 用に用意されています。自分の環境にあったものをダウンロードしましょう。とりあえず今回は CentOS 用ということで RPM 版をダウンロードしますが、Ubuntu に導入するのであれば DEB 版を選択してください。
2014020102


ダウンロードが完了すると(RPM 64bit 版であれば) IBM-DB2-EXPC-latest.x86_64.rpm という300MB前後のファイルが見つかるはずです("lastest"バージョンではない気もするけど・・・)。これがインストーラーです。こいつを sftp などを使ってインストール対象の CentOS に転送しておきます。

で、RPM を使ってインストール・・・の前にしておくことあります。DB2 はインストール時に hostname コマンドで取得できるホスト名の IP アドレス解決ができるようになっている必要があるのでした。というわけでまずは hostname を確認と。。
# hostname
test.localhost.com (例です)
# 


このホスト名の IP アドレスが解決できるようになっていないといけないのでした。上記例であればこんな感じで確認します:
# ping test.localhost.com
ping: unknown host test.localhost.com
# 


IP アドレスの解決ができていないのであれば /etc/hosts を編集しておきましょう:
# vi /etc/hosts

XXX.XXX.XXX.XXX test.localhost.com (↑ホストのIPアドレス 127.0.0.1 でも可)


ここまでできれば RPM でインストールできます:
# rpm -ivh IBM-DB2-EXPC-latest.x86_64.rpm

正常に終了すると /opt/ibm/db2/V10.1/ 以下に IBM DB2 が導入されているはずです。


ここからが RPM 版インストーラを使った場合の仕様(?)なのですが、通常の専用インストーラを使ってインストールした場合は、インストールと同時に管理に必要な各種ユーザー/グループも作成してくれたり、インスタンスを作ったり、その中にサンプルのデータベースも作ってくれたり、その中身も初めから入れておいたりしてくれます。要はインストールが完了した段階で動作確認程度の利用まではできるようになっています。一方 RPM 版の場合はそれらを別途手動で行う必要があるのです。まあ他のオープンソース RDB を使っていると後者の方が一般的だと思うのですが、要はこの段階ではまだ DB2 というサーバーモジュールがインストールされただけで、起動させるための初期設定もできていない状態だということです。


では DB2 サーバーを起動して、データベースを1つ作成して接続するところまでの手順を以下に紹介します。

DB2 サーバーを運用する上では3つの管理ユーザー/グループを用意して、指定しておく必要があります。まずインスタンス所有者としての管理ユーザー、次にユーザー定義関数やストアドプロシージャの実行権限を持った管理ユーザー、そして DB2 管理サーバーの管理ユーザー、およびこれらの所属グループです。今回はこれらのユーザーをそれぞれ db1inst1/db2fenc1/dasusr1 、またそれぞれの所属グループを db2iadm1/db2fadm1/dasadm1 として作成することにします(通常インストーラを使った場合のデフォルト設定と同じです)。


まずは管理用のグループを作成します。以下ではグループIDに997~999を使っていますが、既存環境とバッティングする場合は適当に変えてください:
# groupadd -g 999 db2iadm1
# groupadd -g 998 db2fadm1
# groupadd -g 997 dasadm1

次に管理ユーザーを作成します。以下ではユーザーIDに1002~1004を使っていますが、これも既存環境とバッティングする場合は適当に変えてください:
# useradd -u 1004 -g db2iadm1 -m -d /home/db2inst1 db2inst1
# useradd -u 1003 -g db2fadm1 -m -d /home/db2fenc1 db2fenc1
# useradd -u 1002 -g dasadm1 -m -d /home/dasusr1 dasusr1

そしてこれらの各ユーザーのパスワードを設定しておきます:
# passwd db2inst1
# passwd db2fenc1
# passwd dasusr1

ここまでの作業でやっと DB2 のインスタンスを作成する準備ができました。インスタンスの所有者を db2inst1 に、ユーザー定義関数やストアドプロシージャの管理者を db2fenc1 に指定するには以下のコマンドを実行します:
# /opt/ibm/db2/V10.1/instance/db2icrt -u db2fenc1 db2inst1

インスタンスが出来た所で DB2 サーバーを起動してみましょう。サーバーは root ユーザーでは起動できません。インスタンスオーナーである db2inst1 ユーザーで起動することになります:
# su - db2inst1
$ db2start
SQL1063N  DB2START processing was successful.
$

では起動した DB2 インスタンスに接続します:
$ db2
(c) Copyright IBM Corporation 1993,2007
Command Line Processor for DB2 Client 10.1.1

  :
  :

For more detailed help, refer to the Online Reference Manual.

db2 => 

何はともあれ、まずはデータベースを作成しましょう。コードセットは UTF-8 で、テリトリーコードを JP に設定した testdb というデータベースを作成します:
db2 => create db testdb using codeset utf-8 territory jp
DB20000I  The CREATE DATABASE command completed successfully.
db2 =>
※ちなみにこのコマンドの完了までに長い時間がかかります。コマンド入力し終わったらコーヒー一杯くらいは飲めそう(苦笑)。裏でどんな処理がされているのか分からないのですが、ここが MySQL などと大きく違う点の1つと言えるかもしれません。。

データベースに接続するには connect コマンドを利用します:
db2 => connect to testdb

   Database Connection Information

 Database server       = DB2/LINUXX8664 10.1.1
 SQL authorization ID  = DB2INST1
 Local database alias  = TESTDB

db2 => 

動いたー! d(o^ )


(2014/05/28 追加)
最後にこのサーバーへの外部アクセスを許可するための設定(というかおまじない)を db2inst1 ユーザーで実行します:
$db2set DB2COMM=TCPIP
$db2 update dbm cfg using svcename 50000

そしてこの一行を /etc/services に追加して再起動:
db2c_db2inst1   50000/tcp

(追加ここまで)


ここから先は普通の RDB 同様に、create table なり select なり、一般的な SQL の世界になります。



 

このページのトップヘ