2016年11月17日木曜日

Xperia XZを購入。初期レビューなど。

自分の持っている機種はXperiaZ3Compact
ただ、これはZ1fを購入した後、水没で携帯保証サービスを頼った際に送られてきた代替機。

というわけで、3年ぶりに機種変更。


【購入のきっかけ】

Z3Compactは充電のためのスタンドがあるのですが、それを使わない場合、防水キャップを外して充電ケーブルを差し込む必要があります。
その防水キャップの劣化。(いったん交換しているので二度目の劣化でした)
XZは防水でもキャップなしで充電可ということで(当然他の要素もあるのですが)購入を決めました。

【Z3Compactとの違い】

スペック云々はすぐにわかる話なので、そうではない部分の違いをいくつか。

1)充電ケーブルの互換はありません。
  既存のケーブルを利用するためのアダプタを購入するか、別途用意が必要です。
  私の場合、docomoでアダプタを1つ(500円程度)、その後、amazonで2個1000程度のものをいくつか購入しました。

2)MHL出力ができません。
  私の場合これが案外大きい話題でした。
  自家用車で移動する際にMHL接続で映像をナビに映すことが多かったのです。
  ケーブルを挿してもうんともすんとも言わず、公式の情報を見てもわからず、
  同時に購入したdtabCompactも同様MHL出力できなかったので諦めました。

3)指紋認証
  仕事用としてiphoneも持っており、そっちは当然ながら指紋認証で使っているので
  Android端末でもそれができるのは大きかったです。

【他の個人的な感想をいくつか】

ホームアプリが〇
今まで(というかAndroid2.x系の頃から)は、AdwLauncherというホームアプリを使っていて
それに慣れすぎていたので、最近のホームアプリをきちんと使う機会がありませんでした。
アプリ一覧から検索ができるのは〇

時計ウィジェットが〇
右上に時間出てるのでわざわざ・・・。と思ったのですが、ワンクリックでアラームが出せるので
ホームに時計アイコンを置いておく必要がなくなりました。
ウィジェットなら、曜日とかも出るのでプラスアルファとしての価値も出てると思います。


【まとめ】

昨今のスマホはいっときのパソコンのように、性能が頭うちになってきている気もしますが、
それでも新しい機種は性能、操作性ともに上がってくれているのでうれしい限りです。
ガジェット類も諸々整理が必要そうなので、関連記事をまとめていきたいと思います。

2016年9月29日木曜日

写真転送スマホアプリFotoSwipeが便利 (Windowsでも使えるよ)

FotoSwipeは、簡単な選択操作でスマホからスマホ、PCとスマホ間で写真の送受信ができるアプリです。
PCの場合には、ブラウザでの利用となりますが、近くにいる人同氏がアプリを起動して
片方で送信、片方で受信の操作をするだけで、写真を送る(受ける)ことができます。

[公式サイト・PCからの操作]
http://fotoswipe.com/

[Android]
https://play.google.com/store/apps/details?id=com.fotoswipe.android&hl=ja

[IOS]
https://itunes.apple.com/jp/app/fotoswipe/id828636068?mt=8


【実際に送受信してみる】


・送る人は、「写真を選択」して、「送信」を押すだけ。(写真個別選択、フォルダ選択も可能)
・受ける人は「受信」を押すだけ
 設定により、パスコード(数字5桁)を入力しないと送受信できないようにすることもできるため
 誤って他の人が受け取ってしまうようなことも避けることができます。

【設定でできること】


・「画像を圧縮するかどうか」が指定可能。
 圧縮するとデータ通信量を抑えることができます。

・データの使用を制限
 wifi接続環境じゃないと、転送ができなくなります。誤って携帯通信環境で大容量の画像を
 送ってしまうようなことはなくなりますね。

まとめ

機能的にはたったこれだけです。
ただ、使い勝手抜群。携帯で撮影した写真をすぐにパソコンへ送って記事に添付するなんてこともこれを使えば大幅に手間を低減することができました。
仲間と撮った写真の共有にも便利ですね。

おまけ

どうやって通信しているのかをざっくりと調べてみたところ、送信側の端末にはaws(Amazon Web Service)へのネットワーク接続履歴がありました。
この接続先へ大量のデータを送信しているので、画像はaws経由で送受信されている気配です。
それと、フランスとアメリカ(シアトル)
こちらは量も少ないので、使用履歴や広告かな?

いずれもSSLなので暗号化はされてます。
awsにいったん蓄積された画像がきちんと消えているかどうか。はわかりませんので
もし万が一にでも写真が公開されるのはまずい!というようなケースでは注意も必要かと思います。

2016年9月14日水曜日

Windows10でVPNに接続できなくなったときの備忘録

自宅には光回線でインターネット環境を構築していて、たまに、自宅内のNAS等へアクセスするためにVPN接続を利用しています。

今回、新しいPCをWindows10でセットアップしてVPN接続しようとしたところ
「リモートコンピューターにより接続が拒否されました」と出たのでトラブルシューティングのうえ、対処を終えたので備忘録。

結論としては、「認証の際にCHAPが必要」との事でした。

はじめに

自宅環境

プロバイダ:OCN
光回線 :フレッツ光
ルーター:NTT PR-400KI (この機器はVPNサーバー機能を持っていて、IPアドレスが変わるとメールで知らせてくれるという便利なものです)
VPNサーバ設定:事前共有鍵有のL2TP/IPSEC

接続環境:

1) Xperia Z3Compact Android 6.0.1  ※これは以前設定したのでつながる。
2) Windows10 ※これが今回新規設定なのでつながらない。

起きた現象

ユーザーおよびパスワード認証の際に「リモートコンピューターにより接続が拒否されました」と出て、エラーで終了する

疑い1:事前共有鍵が違う?

事前共有鍵を変更して再度接続を試すと、ユーザー認証するまでに時間がかかるようになりました。
エラーは確認していませんが、事前共有鍵の違いではじかれていたと思います。

疑い2:ログインIDとパスワードが異なる?

念のため、いつも使っているIDとパスワードのほかに、一つ新しく追加して設定。
それでも変わらず。

原因をネットで調べる

自分では手に負えなくなったのでgoogleさんへ問い合わせ。
「認証」でPAP,CHAPにはチェックを入れてます。という文言を発見。これか!


↓これです↓


設定をいじる

Windows10の場合
コントロールパネル → ネットワークとインターネット → ネットワーク接続でネットワークのリストを確認できますが、その画面で 対象のVPNを右クリック → プロパティ を開くとこの画面が出てきます。

※「設定」というWindows10特有の画面から設定を変えようとしても出てきません。

そのうえで、「セキュリティタブ」を開き、「データの暗号化」で「次のプロトコルを許可する」を選択、標準ではPAP , CHAPともにチェックはついていませんので、CHAPにチェックを入れます。

その後、接続を試し、接続完了、自宅内ネットワークへも接続ができたので本日のミッションは終了です。

まとめ

PR-400KIへのVPN接続にはCHAP認証が必要です。

2016年8月15日月曜日

docomo Xperia Z3 Compact のAndroid6.0.1で内部ストレージを増やす

先日(2016/8/9)に、Xperia Z3 Compact SO-02G のAndroid6.0.1アップデートが公開されました。

個人的に待ち望んでいたのが外部SDカードを内部ストレージの一部として利用できる点。
これにより、アプリをSDカードへ移せるようになります。

画面からポチポチ設定とできないという噂は知っていたのですが
実際も画面からは設定できませんでしたので、少し手間をかける必要がありました。

なお、実施にあたってはこちらのサイトを参考にさせて頂きました。
詳しい説明、ツール類の準備方法等詳しく説明されていますので
まずはこちらをご覧頂ければと思います。(シンさん勝手にリンクして恐縮です)

Android 6.0 MarshmallowでSDカードを内部ストレージとして使用する方法
http://xinroom.net/mobile/so-02g-mm-sd-card-internal-storage/

なお、本作業実施の際には、事前にSDカードのバックアップをお奨めします。



以下は実施してみて自分がはまったこと、気づいたことの備忘録です。
※私は64GB(Toshiba製)のmicroSDカードを利用しています。


外部SDの編集コマンドで例外エラーが発生した。

まず出だしからはまった感じです。手順通り進むことができませんでした。

実施したコマンド

sm partition disk:179,64 mixed 50
※179,64 の部分はお使いの機器により異なります。

発生したエラーの内容

java.lang.IllegalStateException: java.util.concurrent.TimeoutException

おそらく、パソコン側から送った命令に対し、Android側からの応答がなく、タイムアウトになったものと思われます。
このエラーが発生した後は再度手順をやり直してもうまくいきませんでした。
そのうえ、Windowsパソコンに挿すと、認識できないディスクとなってしまい、Androidに挿しなおしてもSDカードとして認識しませんでした。

対処

1) SDカードを完全にフォーマット

以下サイトよりツールをダウンロードし、起動、SDを指定してフォーマットすることによりSDカードそのものを初期化できました。
ツールの使い方等は「SDフォーマッター」などで検索し各自ご確認ください。

https://www.sdcard.org/jp/downloads/formatter_4/

2) 利用する領域を狭めてコマンド実施

sm partition disk:179,64 mixed 75
これにより、勝手に再起動してくれるようになりました。手順通りとなった感じです。
その後、しばらく待つと、Androidが無事起動し、内部ストレージの一部として認識されるようになりました。(画像参照)

※画像は、諸々いじった後のものなので領域の使用量などが変わっています。


ひとまず認識したので、当初目標はクリアといった感じです。

その他の注意点

自分なりに引っかかったところ、内部ストレージを拡張した後に気づいたところをメモしておきます。

mixedの指定をする際、その後の数字は外部SDの割合(%)を意味する

※外部SD扱いとは、今まで通りのSDとして使うという意味として使っています。
※外部SD扱いにしておくと、通常のパソコン等からも読み書きができます。
例1:50%を外部SD扱いとする場合
sm partition disk:179,64 mixed 50
例2:75%を外部SD扱いとする場合
sm partition disk:179,64 mixed 75
自分の場合はパソコンからもデータ書き込みをしたりするため、外部SDとしての領域は必要でした。そのため、内部ストレージ用16GB(25%)、外部SD用48GB(75%)として作成しています。

内部領域は増えても、移動できるアプリと移動できないアプリが存在する。

内部ストレージの拡張が完了すると、移動できるアプリの場合、画面に選択肢が出るようになります。
画像:「設定」→「ストレージ」→「アプリ」から対象のアプリを開いたもの


一方、移動できないアプリの場合、選択肢そのものが出てきません。


また、上記画像の選択肢のなかから「外部SD」を選択するとその時点でアプリをSDへ移動してくれるのですが、移動にあたってはいろいろと注意が必要です。
状況によっては再インストールが必要となる可能性もあるため、アカウント等は事前にバックアップを取っておいたほうが良いかと思います。

ケース1. 移動する選択肢が出てこないアプリ

・docomo標準アプリ
・google関連アプリ(map,chrome等)
その他諸々とありましたが、機器と密接にかかわっているのだろうと判断し諦めました。

ケース2. 移動はできるが、その後、起動しなくなるアプリ

・パズドラ →起動できなくなりました。
・モンスト →起動はできましたが、アカウントがリセットされてしまったため、本体に戻したところ復旧しました

ケース3. 移動、起動はできるが、その後動作がおかしくなるアプリ

・Evernote
 データベースが作成できないという例外エラーが出るようになり、アンインストール、再インストールをしても変わらずでした。
 その後、SDカードを外した状態でインストールすると正常に動作するようになりました。
・ジョルテ(カレンダーアプリ)
 「ウィジェット」が選択できなくなってしまう事象となりアンインストール、再インストールで現象が
 改善されました。


環境設定が完了したあとでも諸々とハードルは高そうですが、少なくとも、内部ストレージが数百MBを切ってしまって困っていた自分にとっては重要なアップデートになってくれたことは事実です。

公式な手順ではない以上、これからも諸々不具合等出るとは思いますが都度工夫こらしつつクリアしていければと思っています。
※最悪全再インストールでしょう。

2016年7月20日水曜日

Sakura VPS + CentOS 6.8でkernel panicになったので対処

普段から使っているSakura VPSの管理用サーバーに突然接続できなくなり、Webの管理メニューから強制再起動、その後の一部始終メモです。

結果としては、カーネル関連の再インストールをしただけで復旧することができました。
サーバー管理者ながら、Kernel回りには触れたことがなかったので、備忘録として残しておきます。

まず結果だけ

yum clean all
yum reinstall kernel
reboot
3つのkernel関連パッケージが再インストールされ、その後の再起動で問題なく起動したため終了です

発覚までの経緯

いつも使っているWebアプリにつながらない。
Web管理画面から管理コンソールを開き、起動ログを確認していたところ、謎のメッセージがでて処理が止まってしまっていることが発覚。
ログを読む限り、ハードディスクが見つからない。
ハードディスクの故障!?なんてことも疑いましたが、まずはブートローダー(GRUB)を開いてみることに。(ハード起動後F2で選択画面)

過去のKernelが選択できたので選ぶと無事起動。
どうやらハードディスクの問題ではなさそうです。
なお、ハードディスクを疑ったのは、並列で稼働しているSakura VPSが普通に起動していたため。

kernelが更新された?

yumの更新ログを確認
cat /var/log/yum.log

Jul 14 03:29:03 Updated: kernel-firmware-2.6.32-642.3.1.el6.noarch
Jul 14 03:29:12 Installed: kernel-2.6.32-642.3.1.el6.x86_64
Jul 14 03:29:14 Updated: kernel-headers-2.6.32-642.3.1.el6.x86_64
Jul 14 03:29:21 Installed: kernel-devel-2.6.32-642.3.1.el6.x86_64
いました。 これが原因である可能性が高いです。
原因となりうるケースをネットで検索していく中で、initrdが書かれないという事象があった事に遭遇。

grub.confの内容調査

cat /etc/grub.conf
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:  You have a /boot partition.  This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,0)
#          kernel /vmlinuz-version ro root=/dev/vda3
#          initrd /initrd-[generic-]version.img
#boot=/dev/vda
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1
terminal --timeout=10 serial console
hiddenmenu
title CentOS (2.6.32-642.3.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-642.3.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
title CentOS (2.6.32-642.1.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-642.1.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-642.1.1.el6.x86_64.img
title CentOS (2.6.32-642.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-642.el6.x86_64.img
title CentOS (2.6.32-573.26.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.26.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-573.26.1.el6.x86_64.img
title CentOS (2.6.32-573.22.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.22.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-573.22.1.el6.x86_64.img


確かに、先頭の部分にinitrdの記載がありません。

修復を試みる

initrdを書けば直る可能性を意識しつつ、何かしらの不整合も疑うこととし、再インストールと判断。
yum自体の動作不良も疑うため、キャッシュはクリアしたのちに再インストール
yum clean all
yum reinstall kernel
/etc/grub.confの内容を確認 (抜粋)
terminal --timeout=10 serial console
hiddenmenu
title CentOS (2.6.32-642.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-642.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-642.el6.x86_64.img
title CentOS (2.6.32-642.3.1.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-642.3.1.el6.x86_64 ro root=UUID=12d557fa-b0a0-4011-bcb0-fa93c7b06543 rd_NO_LUKS rd_NO_MD SYSFONT=latarcyrheb-sun16  KEYBOARDTYPE=pc KEYTABLE=jp106 LANG=C rd_NO_LVM rd_NO_DM nomodeset clocksource=kvm-clock console=tty0 console=ttyS0,115200n8r crashkernel=auto
        initrd /initramfs-2.6.32-642.3.1.el6.x86_64.img
すべての行にinitrdが書かれたので、復旧されたと判断、再起動

起動したので、終了となりました。

2016年7月6日水曜日

MySQLでコメントの文字コードを間違ってしまった場合の探し方

日々データベースを操作していると、ついうっかり、テーブル定義のDDLをShift-JISで作ってしまう場合があります。

そんなとき、すぐわかれば作り直しでよいのですが、気づかず運用してしまった場合に
MySQLのWarningsを確認することで対処する方法をメモします。

【要約】

・文字コード違いのデータが格納されている場合、MySQLのCUIで教えてくれる。

【カラムコメントの確認と直しかた】

 $] mysql -uroot ~ ログイン
> select column_comment from information_schema.columns where table_schema = database();
> show warnings;

 警告があると、教えてくれます。

変更方法(通常のALTER TABLE MODIDY です)
> ALTER TABLE TABLENAME MODIFY COLUMNNAME char(2) DEFAULT NULL COMMENT 'コメントを記載';

【テーブルコメントの確認と直しかた】


> select * from information_schema.tables where table_schema = database();
> show warnings;
> alter table TABLENAME COMMENT 'テーブル名';

2016年6月1日水曜日

MySQLにてtoo many connections のエラーが出たときの対処

稼働中アプリを動かしていたところ、システムエラーが発生しました。
エラーログを見てみると [ too many connections ] と。
MySQLのエラーということはわかったので、mysqlサーバーへコンソールログインして確認、処置を行います。

現在の接続状況を確認

> show processlist;
+------+-------+-----------------+-----------+---------+------+------+------+
| Id   | User  | Host            | db        | Command | Time | State| Info |
+------+-------+-----------------+-----------+---------+------+------+------+
| 1944 | user  | hostname : port | dbName    | Sleep   |    6 |      | NULL |
+------+-------+-----------------+-----------+---------+------+------+------|
140 rows in set (0.00 sec)

ここでいうところのrows が接続数

設定の確認

> show variables like "%max_connections%";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 151   |
+-----------------+-------+

現在は151

> show variables like "%wait_timeout%";
+--------------------------+-------+
| Variable_name            | Value |
+--------------------------+-------+
| innodb_lock_wait_timeout | 50    |
| table_lock_wait_timeout  | 50    |
| wait_timeout             | 28800 |
+--------------------------+-------+

8時間って・・・長いし。(デフォルトでした)

一時しのぎとしてオンラインで設定変更

> set global max_connections = 300;
からの確認

> show variables like "%max_connections%";
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 300   |
+-----------------+-------+

変わりました。

永続設定

/etc/my.cnfへ記載します。
[mysqld]
wait_timeout=3600
max_connections=200

2016年5月26日木曜日

稼働中SVN環境にリポジトリを追加する

svnadmin create RepositoryName
chown apache RepositoryName

※apacheの部分は実環境のユーザーで。

Googleマップの「スター」についている名前の変更方法

Googleマップをよく活用しています。

手持ちのスマホがAndroidであることもその要因の一つですが、それ以外にも
・タイムラインが使える(勝手に情報収集しているということはさておき)
 https://www.google.com/maps/timeline
・ナビの予測時間が精度高い。
・マイマップで地点を登録/記憶できる(マイプレイス機能)

などなど、日々使っています。


そのうえで、「スター」の編集をしたいと思い調べていたところ、
「Googleブックマーク」からできることが分かったのでメモ。

https://www.google.co.jp/bookmarks/

サイト名を変更すると、「スター」の名前が変わります。

確認するときにはGoogle Mapにアクセスして、左上のメニューアイコンをクリック

「マイプレイス」⇒「保存済み」とたどります。

私の環境ではスマホは即反映されたのですが、パソコンでは変わるまで時間がかかりました。
(たぶんキャッシュの関係かと思いますが原因究明はしませんでした)


「スター」は、気軽に使える機能なので、こういった細かいことができるのはうれしい限りです。


いろいろ登録していくと個人情報のかたまりみたいになっていってしまうのは気がかりですが
そこは二段階認証などでクリアするとして、便利な機能はどんどん使っていこうと思います。


2016年5月2日月曜日

VisualStudioでLocalDBを使うときのメモ

照合順が異なることで日本語の文字化けが発生してしまったため作業手順をメモ

そもそも

ソリューションエクスプローラなどから追加できる「サービスベースのデータベース」は照合順序が「SQL_Latin1_General_CP1_CI_AS」となっている。
変更するにはALTER DATABASEにて行う。

実施するコマンド

ALTER DATABASE [データベースのフルパス] COLLATE Japanese_XJIS_100_CI_AI_WS

mdfの場合、物理パス名を指定する。
フルパスは以下のコマンドで取得可能

SELECT DB_NAME()

対応している照合順序を取得する方法

SELECT name, description FROM sys.fn_helpcollations()
WHERE name like '%JAP%';

エラー5072が発生したとき

発生したメッセージ

ALTER DATABASE が失敗しました。データベース 'DBNAME' の既定の
照合順序をJapanese_XJIS_100_CI_AI_WS に設定できません。

何かの接続があることが原因(のはず)

・プロセスを確認
select * from sys.sysprocesses

・KILLコマンドで該当の接続を切断(SPIDは上記SQLで取得可)
KILL [SPID]


SVN commitが失敗したうえにCleanupに失敗したときの対処

※WindowsPCで処理をしていた時の出来事です。

現象

SVN対象のフォルダに大きめのzipを作っているさなかにSVN COMMITをしてしまい、
SVN COMMIT対象としてzipの一時ファイルが認識されてしまいました。
COMMIT前にzipファイルへと置き換わってしまったため、
SVNとしては「COMMITしようとしたファイルがない」と怒ります。(当然です)

試したこと

クリーンアップをしろということで以下を試してもダメ。
・tortoirseSVNからクリーンアップ(当該フォルダ)
・tortoirseSVNからクリーンアップ(ルートのフォルダ)
・ルートフォルダをコマンドプロンプトで開き「svn cleanup」

ちなみに、コマンドプロンプトから実行したときの応答が以下
svn: E155009: Failed to run the WC DB work queue associated with 'D:\Project\dev', work item 76284 (file-commit trunk/sub1/sub2/sub3/zia09324) svn: E720002: Can't set file 'D:\Project\dev\trunk\sub1\sub2\sub3\zia09324' read-write: 指定されたファイルが見つかりません。
えぇ、zipに変わってしまいましたとも。すみません。

処置

多少無理やりかもしれませんが、上記の「見つからないファイル」⇒ここでいうところの「zia09324のファイル」を対象のフォルダに作成したうえで、ルートフォルダから svn cleanup を行うことで現象を解消することができました。
作成するファイルは何でも大丈夫です。(私はゼロバイトファイルを作りました)

追伸

原因究明のためにリポジトリブラウザから対象のフォルダがどうなっているかをのぞいてみたのですが、zip09324というファイルはありました。
作ったファイルを削除、コミットすることでリポジトリからも削除することができました。

まとめ

・コミットするときはファイル操作やめましょう。
・もし失敗したら、リポジトリ側とファイル構成を合わせてからクリーンアップしましょう。
・コマンドプロンプトからのSVN操作は細かいことも教えてくれるので役に立ちます。

2016年4月22日金曜日

利用者へのサポートについて(雑記・まとまっていません

IT業におけるサポート業務というのは環境状況において諸々あると思うのですが、
今までなんとなく対応していた業務クラウドソフトのサポート業務を
見直す機会が出てきたため、今現時点の発想をまとめておこうと思います。


注) まとめといいながら、今現時点ではまだまとまっていません。


以下、サポートの切り口です。

1) 電話

なんといっても対応が早い。日本語解釈の違いなどによる意思疎通ズレも少なくなります。
反面、時間をとられてしまうので使い方には要注意。
高度化するとCTIなどになると思いますが、現状そこまでは不要です。
やり取りした情報を、FAQとしてデータベース化するための仕組みも必要です。

2) メール

双方とも、時間を気にせず発信できるのがメリットです。
文章(データ)として残るので、あとあとのためにも役に立ちます。
CC等の活用により、関係者とも情報共有できるのも強みです。

3) 訪問

対応で言ったら一番早いですよね。問題は立地や移動時間やそこで発生する実費。
サービス対価を頂けるのであれば問題ない方法です。

4) 遠隔リモート

立地は関係なし。直接環境を見れるのでズレが少ない。
デメリットがあるとすれば、リモート環境構築までに少しだけ、手間が発生するということ。
この楽さに利用者が慣れてしまうと、いつでもどこでも聞いていて「リモートで見てほしい」となってしまう事でしょうか。
⇒メリットとするケースもあると思うのでケースバイケースです。

5) チャット・メッセージングツール

メールと、電話の中間でしょうか?
時間がとられつつ、データは残りつつ、問い合わせは解消できる。

6) 掲示板

メールとほぼ類似だとは思いますが、登録した情報が第三者にも見れるという点では、メリットはあると思います。

7) ホームページ等での周知・公開

ホームページに関わらず、最近ではTwitterやLINEなどでも情報発信が行われています。
先手を打って情報公開する事により、メリットは出てきそうです。

結局は?

まだ整理の途中(上記以外の手段もまだまだあるはずです)ですが、結局は、ニーズを把握して、リソースを適切に割り当てられる方法を採用する事になると思います。

業務クラウドソフトのサポートであり、料金もクラウドに即した体系となっているため訪問は見合いませんし、とはいえ、訪問による利用者の信頼度向上は間違いないので、一方的に切り捨てる判断も難しい。

まだまだ検討・整理段階ではありますが、アイデアを絞って利用者のためになるサポート体系を構築・運用する必要があると思いました。

2016年4月14日木曜日

ActiveReportsのベーシックな利用方法

たまに使うので、いつも忘れてしまいます。

備忘録として

グループヘッダにグループ毎の集計を出力する方法は?
https://www.grapecity.com/tools/support/technical/knowledge_detail.asp?id=27280

グループフッタで集計
SummaryFunc = Sum
SummaryGroup = グループヘッダ名
SummaryRunning = Group
SummaryType = SubTotal

グループヘッダで集計
SummaryFunc = Sum
SummaryGroup = グループヘッダ名
SummaryRunning = None
SummaryType = SubTotal

書式

OutputFormat

WrapModeとCanShrinkのプロパティは切る

グループごとにページ

SummaryFunc = Sum
SummaryGroup = グループヘッダ名
SummaryRunning = Group
SummaryType = SubTotal


罫線など


レポートを複数作って、overlayでいける

2016年4月12日火曜日

ODB2 + Bluetoothで、車から各種情報を取り出すことが可能

まだ備忘録ですが。
※2014年あたりに実施した記事が下書きのまま残ってたのですがここにきて公開。
※価格等は当時のものです。

カーナビやデジタルタコメータなど、車から発信される各種信号を元に
データとの組み合わせで製品を構成しているものは多々あります。

そんな情報を、自分で思うように取り出してみよう。と思いました。


【用意したもの】

1) OBD2 の信号をBluetoothで取り出せるアダプタ (ELM327内蔵)
2) Androidスマートフォンおよびタブレット (いずれもAndroid 4.x系)
3) 車 (1台だとおもろくないので2台)
4) パソコン(Windows8搭載、Windows7のブートも可能) および、Bluetoothアダプタ

【結論】
・結構簡単にできます。
・車のメーカー、車種、販売開始時期により、取得できるデータはバラバラ。
・Bluetooth通信は、ペアリングでうまくいかないときがあるので、
 PCとかで通信を試みるなら、有線ものがお勧め。(USBとか232Cとか)


【詳細】

・使ったアダプタについて
 複数用意しました。
 これは、各方面いろいろ情報を調べていると、「壊れやすい」「当たりはずれがある」「同梱CDにはウィルスがある」など不安定、不確定要素満載だったためです。


 左から 1,000円、1,000円、4,500円 いずれもAmazonです。 obd2で検索すればヒットすると思います。
 最後のだけ高いのは、日本の会社から出荷、アプリがセット、到着までが早い。(1日でした)という理由で、残りの2つは海外からの直送、到着までに10~20日ほどかかるというのが理由です。

 また、ウィルスがどうこう言われているもの、海外直送の安いものです。(私の所では検出しませんでしたので時期にもよるのかも ⇒ 複数のウィルスソフトで検出なし)


・Bluetoothで接続 (Android編)

 先述のとおり、Android4.x系です。
 まずはアプリ同梱の製品を試してみました。
 ・ステップワゴン (DBA-RK1) ⇒ ほぼ OK
 ・カローラ (型忘れました 初年度登録 2004年) ⇒ ほぼNG

 使ったアプリは、OBD InfoSan! というものですが、ステップワゴンでは各種情報が画面へ出てきたのに対し、カローラではほぼ無応答でした。(唯一バッテリー情報が取れたので接続はできたのだと思います)

 他の無料アプリもいろいろ試したのですが同様でした。
 どうやら、カローラでは検証できないようです。

 ちなみに、この記事を書いている時点で、ステップワゴン + 他のODB2機器の組み合わせは試せていません。


・Bluetoothで接続 (PC編)

 PCとBluetoothでペアリング。そして、PCで使えるアプリを幾つか入手して試してみました。
 現在継続中ではありますが、入手可能なアプリはバージョン違いによって動かなかったり、
 アプリが動いても [ELM327が正規品ではないですよ」というメッセージが出たり(ScanTool.net for Windows v1.21)
 ダウンロードまではできたけども、英語で、かつライセンスを求められて挫折したりと、

 結果、入手可能なアプリはいずれも今現時点動いていません。
 
 そのなかにWindows7じゃないと起動すらしない。ってものもあったりして、結果
 PCにおける検証はほぼWindows7でやっていました。

 たぶんWin8でも行けるんでしょうけどね。

 メインであれこれ検証していたのがカローラ。ってのもあって、なかなか進まない。
 とはいえ進めないといけないので、えいや。とアプリを作ってみる事にしました。


・アプリを作ってみる。

 今回使っているハードウェアの仕様としては

 PC (またはAndroid) <-> ELM327 <-> CANインターフェース (OBD2プロトコル)

 という構成のため、ELM327のコマンドを理解すれば良さそうです。

 ELM327は、データシートが公開されてます。これを理解すればOK
 http://elmelectronics.com/DSheets/ELM327DS.pdf

 また、ELM327の一部では、ODB2プロトコルを直接使えるとの事なので、以下を使えばOK
 http://en.wikipedia.org/wiki/OBD-II_PIDs#Standard_PIDs


 結果、PCアプリとして簡単に機器と通信できるものを作成して、以下のことまでは
 できるようになりました。
 スクリーンショットなど、いいものは用意してませんでした。。。


 ※先述の、カローラでの試行状況です。

・Bluetoothインターフェースを経由して、機器への接続 ⇒ OK
 ・[AT Z]コマンドを投げて、結果をもらう。 ⇒ ELMのバージョンが返ってきます。 OK
 ・[AT RV] コマンドを投げて、ボルテージを返してもらう ⇒ OK
 ・OBD2コマンド を投げて、[CAN ERROR] が返ってくる ⇒残念

 結果、全ては試せていませんが、ELMのコマンドは受け付けたようです。
 OBD2コマンドは、数値2桁 + 数値2桁で投げるようですが、間にはスペース要です。
 また、CRが必要です。


遊びでやるにしても、なかなか時間がかかりそうです。

暫く継続しそうなので続報あればまた纏めたいと思います。



いつもの備忘録(bash編)

日付を取得する
date +"%Y/%m/%d %p %I:%M:%S"

日付をsh内で使う

echo `date +"%Y/%m/%d %p %I:%M:%S"`
echo `date +"%Y%m%d%I%M%S"`

bashで使う比較演算子 (IBM)

http://www.ibm.com/developerworks/jp/linux/library/l-bash2.html


or xor

&& ||

if [ a = "1" ] && [ b = "2" ] ; then
fi


一から作るなんてあまりやらないのでこんなもの。
今後は増えるかな・・・・・ぁ

2016年4月8日金曜日

iReportのドキュメントを読んでみました

今回本格的にiReportを利用する機会が出てきたので、ドキュメントを探してみたところ、公式サイトに諸々のドキュメントがありました。

http://community.jaspersoft.com/documentation?version=29351

すべて英語ですが、無償でたくさんの情報が提供されています。そのなかで私が参照したのは、以下ドキュメントです。

iReport Designer
iReport Ultimate Guide (Updated Jan 15, 2013)


なお、有償ですが、日本語のドキュメントも提供されています。
http://jaspersoft.biz/document/product-manual


【ドキュメントサマリー】

総364ページ。もあり、私自身、英語読解力があるわけではないので、今回主に読んだのはプロパティ類です。それ以外の部分についても時間があれば読んでみようと思いますが、現状としては一般的なレポーティングツールの機能は備えているという前提として考えています。

【まずここは見たほうが良い】


・目次
 気になるキーワードがあれば頑張って読みましょう。

・CHAPTER3 BASIC NOTIONS OF JASPERREPORTS

この項を流し読みするだけでも、何ができるのかが想像できそうです。
  (表とか箇条書きとかサンプルコードとか)
 
 主だったところ
 ⇒3.5.1 The Type of an Expression
  Expressionは、データを表示するときに使うプロパティです。
  JasperがJavaで動いていることもあり、型を適切に処理するためには意識が必要です。
 ⇒3.5.2 Expression Operators and Object Methods
  演算子ですね。Expressionにて対応している演算子が列挙されています。
また、Expressionに定義するための記述例も書かれています。
 ⇒3.10 A Simple Program
  Javaで諸々制御ができるということが想像できます。今回はやらないので詳しく読みませんでした。

・CHAPTER5 REPORT ELEMENTS

レポートで使う要素ですね。
 ⇒5.1.3 Basic Element Attributes
  今回メインで扱う、プロパティについての説明がありました。

・CHAPTER6 FIELDS, PARAMETERS, AND VARIABLES

項目の構成要素である、フィールド(値項目)、パラメータ(引数?)、値(変数)の情報です。データでとってきた値の扱い、集計値の扱いなどはこのあたりの情報で行います。
ページ番号などもここの情報に書いてあります。

・CHAPTER 13 LISTS, TABLES, AND BARCODES

さらっと見たところ独自機能な気もしますが、簡単な操作で、表形式の帳票ができそう。
 テーブルは、グラフとかにも関係していそうです

・CHAPTER 15 CROSSTABS

見慣れない単語でしたが、内容見る限り、クロス集計のようでした。

【主なプロパティについて】


CHAPTER5に、プロパティに対する説明がありました。
「共通」のもの、「テキスト」に関するもの、「テキストフィールド」に関するものとわかれています。




【本記事のまとめ】

一つの記事で全部を書くのは難しいので今回はこれくらいです。
JasperReportはオープンソースであり、他の帳票ツールで有する機能はあったり、または
なくても有志により実装されるなどされています。

無償ドキュメントが英語なので敷居は上がりますが、ぜひ利用していきたいツールの1つかと思いました。

2016年4月6日水曜日

MySQLの接続状況の確認

運用中のMySQLに過去データを大量投入する必要があったため、接続状況を確認する方法を調べたのでメモ。

概略


1) \s にて、MySQLの稼働状況をチェックできる。 (今回の件とは直接関係なし)
2) show processlistにて、接続プロセス数、接続時間などを確認できる。
   接続時間(下記でいうところのTime)は、最終応答からの経過時間。

サンプル


mysql> \s
--------------
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:          132877
Current database:       sampledb
Current user:           root@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.1.73 Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    utf8
Db     characterset:    utf8
Client characterset:    utf8
Conn.  characterset:    utf8
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 61 days 17 hours 51 min 29 sec

Threads: 19  Questions: 99114337  Slow queries: 531  Opens: 2600916  Flush tables: 1  Open tables: 64  Queries per second avg: 18.579
--------------

mysql> show processlist;
+--------+-------+----------------------------+-----------+---------+------+-------+------------------+
| Id     | User | Host                        | db        | Command | Time | State | Info             |
+--------+------+-----------------------------+-----------+---------+------+-------+------------------+
| 132709 | app  | location.domain.ne.jp:10486 | sampledb  | Sleep   | 7045 |       | NULL             |
| 132710 | app  | location.domain.ne.jp:10588 | sampledb  | Sleep   | 6952 |       | NULL             |
| 132711 | app  | location.domain.ne.jp:10625 | sampledb  | Sleep   | 6717 |       | NULL             |
| 132712 | app  | location.domain.ne.jp:10840 | sampledb  | Sleep   | 5968 |       | NULL             |
| 132713 | app  | location.domain.ne.jp:10841 | sampledb  | Sleep   | 6169 |       | NULL             |
| 132714 | app  | location.domain.ne.jp:10915 | sampledb  | Sleep   | 6395 |       | NULL             |
| 132715 | app  | location.domain.ne.jp:10006 | sampledb  | Sleep   | 5986 |       | NULL             |
| 132716 | app  | location.domain.ne.jp:10062 | sampledb  | Sleep   | 5666 |       | NULL             |
| 132717 | app  | location.domain.ne.jp:10168 | sampledb  | Sleep   | 5666 |       | NULL             |
| 132718 | app  | location.domain.ne.jp:10429 | sampledb  | Sleep   | 5583 |       | NULL             |
| 132719 | app  | location.domain.ne.jp:10464 | sampledb  | Sleep   | 5577 |       | NULL             |
| 132870 | app  | remote.domain.ne.jp:33063   | NULL      | Sleep   |  475 |       | NULL             |
| 132871 | app  | remote.domain.ne.jp:41295   | sampledb  | Sleep   |  396 |       | NULL             |
| 132872 | app  | remote.domain.ne.jp:38509   | sampledb  | Sleep   |  470 |       | NULL             |
| 132873 | app  | remote.domain.ne.jp:37658   | sampledb  | Sleep   |  420 |       | NULL             |
| 132874 | app  | remote.domain.ne.jp:39027   | sampledb  | Sleep   |  370 |       | NULL             |
| 132875 | app  | location.domain.ne.jp:10031 | sampledb  | Sleep   |  165 |       | NULL             |
| 132876 | app  | location.domain.ne.jp:10032 | sampledb  | Sleep   |  203 |       | NULL             |
| 132877 | root | localhost                   | sampledb  | Query   |    0 | NULL  | show processlist |
+--------+-------+----------------------------+-----------+---------+------+-------+------------------+
19 rows in set (0.00 sec)

mysql>
 

2016年4月5日火曜日

Microsoft AccessのモジュールをVSS管理している場合のTips

VBA系のプログラムを利用して開発する場合、ソース資産等の管理にひと手間必要ですが
Accessの場合、追加ソフトを入れることでVisualSourceSafeへの接続ができるのでメモ。

今回は、Access2010です。Access2007でもできるようです。


【Access2010で使う場合に必要なソフトのインストール】


Microsoft Access 2010 ソースコード管理 をインストールするとリボンに機能が現れます
https://www.microsoft.com/ja-jp/download/details.aspx?id=6840

【VSSからデータを取得する場合】

1) Accessを起動
2) 「ソース管理」リボンにある「SourceSafeから作成」を選択するとVSSが起動する
3) VSSにてパスを指定すると、関連ファイルおよびデータベースファイルが作成される

【データをVSSから切り離す場合】


1)  リボン「ファイル」を選択「情報」から、「データベースの最適化/修復」を選択
2)  「最適化したデータベースをSource Code Controlから削除しますか?」と聞かれたら「はい」を選択

2016年4月4日月曜日

Win+MySQL5.1環境にMySQL5.7を共存させる方法

MySQL5.1で運用しているシステムがあり、検証評価のために5.7系を利用したいと思い
とりあえずとして自分で使えるWin+MySQL5.1の環境に対してMySQL5.7を導入した時のメモです。

【環境】

・Windows8 Pro(x64) + MySQL5.1(インストーラにてインストール)の環境
・MySQL5.7は公式サイトよりZipで取得


【手順】

・ダウンロードしてきたzipファイルを展開。パスは任意でよいと思いますが、私の場合ProgramFilesの中に直接ディレクトリを作って展開しました。
C:\Program Files\MySQL57

・my.iniを作成

・初期化を実施
mysqld --initialize

・コンソールにて起動

・別コンソールにてmysqlクライアントを起動

・パスワードを変更

ALTER USER 'root'@'localhost' IDENTIFIED BY 'aaaaaaaa';

・mysqld.logに記載

・コンソールの終了

・サービスとしてインストール
mysqld --install MySQL57
※サービスの削除は、mysqld --remove MySQL57

・サービスの起動
net start mysql

ひとまず起動したので、別途、マイグレーションの手順をメモしたいと思います。


2016年3月23日水曜日

MySQL 4.x系ではCREATE USERの構文が違う

ついつい忘れてしまうMySQLのCREATE USERですが、今回改めて実施したところ
はまってしまったので備忘録です。

結果としては、CREATE USER は、MySQL 5.x系からであり、MySQL4.xで実施する際には
構文が違うということでした。

NGケース


mysql> CREATE USER 'username'@'%' IDENTIFIED BY 'password';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to use near
'USER'test1'@'%' IDENTIFIED BY 'test12345'' at line 1

というわけで

OKケース


GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password';

2016年3月20日日曜日

iReportsで、グループ毎の集計値を合算して合計として表示する方法

見出しだけだとわかりづらいので例とともに。

データ例


伝票A 合計100円 , 明細 20円 30円 50円
伝票B 合計250円 , 明細 80円 170円

ここで、100円と250円を合算したい。
明細だと、一部計算がずれる場合があるので明細からの合計は行わない。


その他要件

・伝票毎で、グループが切ってある。


手順


1) Variablesを作成

 V_DENPYO_GOUKEI (名前は何でもよい) を作成、以下プロパティを設定。
 ・Cauculation : Sum
 ・Reset type : Report (これ重要)
 ・Increment Type : Group
 ・Increment group : DenpyoのGrou
 ・Variable Expression : $F{DENPYO_GOUKEI}.equals(null)? 0 : new Double($F{DENPYO_GOUKEI})

ResetTypeをReport以外に指定すると、想定値と異なる値を取得してきてしまいました。


解消できるまでに小2時間。


レポーティングツール類はプロパティの使い方が肝となることが多いと感じました。



追伸:

設定するフィールド側
text field expression : $V{V_DENPYO_GOUKEI}
Evaluation Time : Report

2016年2月22日月曜日

iReportで固定行数明細を作成する

iReportで、明細帳票を作成したい場合、シンプルにやろうとした場合にはDetailの各オブジェクトに罫線を引いて作成することが多いかと思いますが、ページの下段まで計算を引きたい場合などにはこの方法は利用できません。

Backgroundオブジェクトを利用すると、固定行数の表を持つ帳票を作ることが可能です。


【Backgroundオブジェクトの利用方法】

・Report Inspectorから、「BackGround」を選択して、「Maximize Background」をクリック
 自動でBackground用のレイアウト領域が表示されます。

その後、必要に応じてオブジェクトを配置します。

これだけで、実際のデータと関係なく、Backgroundに配置した情報が表示されるようになります。




【罫線の引き方】


もしかしたらもっと良い方法があるかもしれません。が、現状やった方法

1) 必要行数分の、横罫線をコピーペーストなどで作成する。
2) 一番上と、一番下に罫線を正規の位置(Topプロパティできっちり調整)に配置し、あとは適当においておく。
3) 全部の罫線を選択し、メニューバーの「Format」->「Vertical Spacing」->「Equal Vert Space」を選択すると、均等に配置される。



ページごとに【Background】を変える。


あまりたくさんあると大変かもしれませんが、以下のような設定で可能です。

1) 両方のオブジェクトを貼っておく。
2) Print When Expressinonに評価式を設定
  例) ($V{PAGE_NUMBER}.toString()).equals("1") ? Boolean.FALSE : Boolean.TRUE
  ⇒TRUEまたはFALSEを返す条件式が必要です。
  この式を設定した場合、2ページ目以降にしか出ないオブジェクトとなります。



【その他】

・ページ計を出したい場合
 Variablesを作成。
 例) 数量計
   Variable名:SURYO_TOTAL
   Variable Expression:$F{SURYO}.equals(null)?0:new Double($F{SURYO})
Calculation:Sum
Reset Type:Page
あとは未指定

Page Footerに、テキストを配置し、Text Field Expressionに、上記名前を割当
Text Field Expression:$V{SURYO_TOTAL}

2016年2月4日木曜日

ActiveReportsにてDistinctFieldプロパティを活用する。

【事例】

・伝票をまとめた、請求書のようなものがある。
・出力情報としては、
 ・伝票明細の情報を一覧として
 ・日毎で集計行を出力
 ・最後に、合計行を出力
・データとしては、単価金額は明細に持っていて、消費税は伝票毎に持っている。
・データ抽出処理で、伝票情報と明細情報を一緒に持ってきている。
 ⇒そのため、各明細に伝票の情報もついてくる

起きたこと
・日毎の集計行には税込みを出す必要があったので、税込みの項目をSumするのだけども
 当然ながら、複数行明細の場合にはそのままSumすると倍々になってしまう。


【対処】

・グループヘッダのプロパティにて「日」を条件とした枠を作る。
 ⇒これはまぁ普通の処理
・税込み金額を出すテキストのDistinctFieldプロパティに、「伝票番号」を指定
 SummaryFunc : DSum ←SumではなくDSum
 SummaryGroup:GroupHeaderxx
 SummaryRunning:Group
 SummaryType:SubTotal

伝票番号でDistinctしてくれて、Sumしてくれるようになりました。


ヘルプ
http://docs.grapecity.com/help/activereports-9/GrapeCity.ActiveReports.v9~GrapeCity.ActiveReports.SectionReportModel.TextBox~DistinctField.html

2016年2月1日月曜日

iReport DesignerからJaspersoft Studioへ移行が推奨されています

掲題の件

しばらく情報を追っていなかったら、iReport DesignerはJaspersoft Studioへの
移行を推奨していました。

【iReport Designer サイト】
http://community.jaspersoft.com/project/ireport-designer

英文サイトだったのでスルーしてましたが、きっちりわかりやすく書いてあります。

【JasperSoft Studio サイト】
http://community.jaspersoft.com/project/jaspersoft-studio

iReportのサイトからもリンクで飛ぶことができます。



現在の手持ち資産がiReport Designer 4.0.2で作成したころのデザイナファイルなので
そのまま移行できるかがまだわかりませんが、
なぜやろうとしたかというと、別件の技術調査でJasperReports Serverを利用する検討を
始めたからです。

JasperReports Serverに上記4.0.2のデザイナを読み込ませてみたところ、
一覧表形式でよくあるような、表のヘッダ部分に定義してあるタイトル文字が出てこなかったため
バージョンの問題だろうかと思った次第です。



この辺はJasperReports Server側の話題になるので本資料では割愛しますが
別途まとめておきたいと思います。