2015年9月3日木曜日

HDDのデュプリケーター

設計が使用しているPCでHDDのリードエラーが発生した。取り敢えず問題なく動作している様に見えるが、念の為に保守契約しているベンダーにHDDの交換を依頼した。


ハードのみの保守契約なので保守員はHDDを交換するがOS等のインストールは自分自身で行うことになる。

設計のPCにはCADソフトがインストールされている。このソフトのインストールと環境設定がとても面倒なのだ。慣れないと1日がかりの作業になってしまう。あ~、面倒だと思っていたときにネットでHDDのコピーというキーワードで検索したところ、玄人指向のKURO-DACHIがヒット。

近所のPC DEPOTに在庫有りとの事でPC DEPOTに買いに走った。税込みで6,020円。

ベンダーの保守員が到着したので事情を説明し、PCから取り外したHDDと新品のHDDを預り早速デュプリケート。

今回、7,200rpmの500GのHDDをデュプリケートしたが、所要時間は1時間30分。この時間だけをみると長い気もするが、まっさらなHDDを動作するまでに設定する作業時間の1日半と比較すれば実に短時間。また、利用者も早く仕事に復帰できるので、二人合わせて3人日の工数が削減できた。

このデュプリケートしたHDDでPCが起動したとき、保守員も6,020円ならば私も買おうかなと言っていた。

HDDのデュプリケーター、仕事の必需品となりそうな予感。

2015年6月8日月曜日

QRコードを読み取りメーラーを立ち上げるコマンド

当社では通信キャリアとしてKDDIと契約しているので、以下の内容はAUの場合であり、かつ確認した機種も限定的。他の機種やキャリアについては未確認。

宛先メールアドレス、メール題名およびメール本文をQRコード化し、それを携帯電話やスマホで読み取り、Gmailで簡単にメール送信出来るようにする。尚、ここでは、コマンドをQRコード化する部分については触れていない。

1) 携帯電話(E05SH)
 MATMSG:TO:hogehoge@hoge;SUB:題名をここへ;BODY:本文をここへ;;
をQRコード化すれば良い。それだけである。とても簡単。

2) スマホ(TORQUE)
 QRコードは携帯電話と同様
 QRコード読み取りアプリは、ZXing TeamのQRコードスキャナーを使用。因みに、イクス(株)、TWMobileのアプリは正しくメールが作成されなかった。
 
3) スマホ(iPhone5S)
 mailto:hogehoge@hoge?Subject=題名をここへ&body本文をここへ
をQRコード化すれば良い。
 QRコード読み取りアプリは、QR&Barcodeを使用。

スマホはどの機種でも同じだろうと思っていたら、TORQUEとiPhone5Sではメーラーを起動するコマンドが異なっていたのは驚きだった。逆に、E05SHとTORQUEで同じQRコードが利用できるのは評価できる。E05SHはシャープ製、TORQUEは京セラ製と、国産機種はAUの意向で同じ物がつかえるという事なのだろうか?

2015年5月7日木曜日

Microsoft Office 2013のライセンス移行

PCを買替えた場合、旧PCにインストールしてあるMicrosoft Office 2013(以下、オフィス)のライセンスは新PCに移行が可能なのか。

マイクロソフト ライセンス認証窓口に電話して確認してみた。

その結果、パッケージ版の場合はライセンスの移行が可能であり、その作業も簡単。
作業は、移行元PCからオフィスをアンインストール後、移行先PCにオフィスをインストールするだけだそうだ。

何と簡単なのだろう。感心。

2014年12月16日火曜日

VB.NET DotNetBarcodeクラスライブラリを使用してQRコードを印刷する

QRコードを印刷するのに便利なフリーソフトDotNetBarcodeクラスライブラリをVB.NETで使用した。その際、DotNetBarcodeクラスライブラリが生成するSystem.Drawing.Graphicsを印刷する方法が分からず悩んだのでここで紹介。

    Private Sub PrintDocument1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

        ' QRコードの幅
        Dim width As Integer = 100
        ' QRコードの高さ
        Dim height As Integer = width
        ' QRコードを印刷する座標X
        Dim positionX As Integer = 0
        ' QRコードを印刷する座標Y
        Dim positionY As Integer = 0
        ' QRコードとして書き込む文字列
        Dim qRString As String = "QR CODE"
        ' 100x100サイズのImageオブジェクトを生成する
        Dim qRCodeBitMap As Bitmap = New Bitmap(width, height)
        ' ImageオブジェクトのGraphicsオブジェクトを作成する
        Dim qRCodeGraphics As Graphics = Graphics.FromImage(qRCodeBitMap)

        ' DotNetBarcodeオブジェクトを生成する
        Dim bc1 As System.DotNetBarcode = New System.DotNetBarcode
        ' QRコードに変更する
        bc1.Type = DotNetBarcode.Types.QRCode
        ' CheckDigit文字を表示する
        bc1.PrintCheckDigitChar = True
        ' GraphicsオブジェクトにQRコードを書き込む
        bc1.WriteBar(qRString, 0, 0, width, height, qRCodeGraphics)
        ' Imageオブジェクトを印刷する
        e.Graphics.DrawImage(qRCodeBitMap, positionX, positionY)
        ' Graphicsオブジェクトを解放する
        qRCodeGraphics.Dispose()

    End Sub

2014年10月23日木曜日

VB.NET WebBrowserのバージョンはいくつ?

とあるシステム専用のWEBブラウザーを作るにあたり、VB.NETのWebBrowserコントロールを使用した。

コーディングが完了し、早速Webサイトを表示したらcss3を使用した部分が見事に崩れている。原因は、WebBrowserのバージョンにあった。デフォルトのままでWebBrowserを使用するとie7で動作する。今どきデフォルトがie7とは困ったものだ。

参考までに、WWWサーバー側で取得したブラウザー情報は以下の通り。
Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E)

バージョンを任意のバージョンに変更するには、
[HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_BROWSER_EMULATION]に新たに値を追加する。追加する値は、プログラム名=ieのバージョン
例えば、"AcroRd32.exe"=dword:0000270f

私は常に最新版を使用したいので、最大値のdword:ffffffffを指定した。
この時はこれで上手く行ったのだが後日正常に動作しないことがあったので、AcroRd32.exeと同じ値に変更した。これで期待通りに動作した。2014/11/06変更

これで思った通りに表示することが出来た。

補足)
正式な実行プログラム名がhogehoge.exeだとすると、Visual Studioでデバッグ中は実行プログラム名がhogehoge.vshost.exeになるので、レジストリには両方登録しておいた方が便利だよ。

2014年8月22日金曜日

Got a packet bigger than 'max_allowed_packet' bytes

WWWサーバーをWebARENA Suite X V1からV2に移行することになり、WrodPressのMYSQLデータベースをV1からエクスポートし、V2にインポートした。その際、首題のエラーが発生した。

これは、WebARENA Suite X V2 高機能データベースのmax_allowed_packetの設定値が1MBであり、かつインポートしようとしたファイル中にこの設定値を超えるデータがあったので、インポート出来ないと言うことみたいだ。

WebARENAのテクニカルサポートに電話で問い合わせたら、max_allowed_packetの設定値を一時的に最大値の12MBにまで拡大してくれた。これにより、無事インポート作業が完了した。

V1とV2とでは設定値に差があるとサポートの方が説明してくれた。


2014年8月4日月曜日

NET COMMONSの引っ越し

レンタルサーバーで使用していたMYSQLのファイルサイズが、一つのDBは100MB迄という上限を超えてしまったので、新規にレンタルサーバーを契約してnc(NET COMMONS)を引っ越すことにした。引っ越しついでに今まで使用していたドメイン名も変更する事にした。引っ越しが完了するまでは色々と悩んだが、終らせた今振り返ってみると、引っ越しは思ったよりは単純な作業だった。同じように引っ越しで悩んでいる人に手順をご紹介(※この手順は正しい手順ではない可能性があります。気付いたら指摘してください)。

・当社の環境
レンタルサーバーはNTT PC COMMUNICATIONSのWebARENA

・旧nc環境
サーバーは SuiteX V1
MYSQLは標準のもの(MAX 100MB)
ドメイン名は独自ドメインでhoge.com
IPアドレスは、hoge1
ncインストール先は、home/

・新nc環境
サーバーは SuiteX V2 スタンダード
MYSQLは高機能データベースMySQL5(MAX 10GB)
ドメイン名は独自ドメインでnc.hoge.com
IPアドレスは、hoge2
ncインストール先は、home/nc.hoge.com/ ※マルチドメイン設定

つまり、ドメイン名もIPアドレスも違うという環境でのお引っ越し。


・手順
前提条件として、レンタルサーバーの設定(例えば、子ドメインの追加、マルチドメインの設定など)は終わっているものとする。※独自ドメインの場合、レジストラへの登録等の作業が必要だけど、その手順は割愛。
  1. 新nc用レンタルサーバーでhtaccessが有効であることを確認。確認方法はこちら
  2. 新MYSQLに旧MYSQLと同じデータベース名でデータベースを作成する。
  3. 管理者権限で旧ncにログインし、旧ncのサイトを閉鎖する。
  4. 旧ncをフルバックアップする。
  5. フルバックアップした旧ncを解凍。私の場合は、Windows PC上で解凍。解凍に使わせてもらったソフトはALZip。+Lhacaで解凍したら理由は不明だが解凍が不十分だった。
  6. 解凍した旧nc内のhome/.htaccessを削除 ※引っ越し先は、home直下ではなくhome/nc.hoge.com/の中なので、元の.htaccessとは内容が異なるから。
  7. 解凍した旧nc内のhome/webapp/config/install.inc.php の値を新nc用に変更
    // ----------------------------
    // ベースのURL値
    // ----------------------------
    define('BASE_URL', 'http://新ncのFQDN');
    例えば、define('BASE_URL', 'http://nc.hoge.com');
    // ----------------------------
    // データベース用設定値
    // ----------------------------
    define('DATABASE_DSN', 'mysql://DBユーザー名:パスワード@DBサーバー名/DB名');
    例えば、define('DATABASE_DSN', 'mysql://hogedbid:hogepass@localhost/hogedb');
  8. FTPソフトを使用して解凍した旧ncをnc.hoge.com/home/nc.hoge.comにコピー(バイナリーモード)。使わせてもらったソフトはWinSCP。
  9. nc.hoge.com/home/nc.hoge.com/webapp/config/install.inc.phpのパーミッションを444に変更。※これをしないとインストーラーが起動してしまう。
  10. パーミッションを777にするディレクトリ一覧
    index.phpがあるドキュメントルートディレクトリ(一般的にsrc直下 or src/htdocs直下)
    webapp/uploads以下のすべてのディレクトリ(ファイル)(chmod -R 777 uploads/)
    webapp/templates_cディレクトリ
  11. 解凍した旧nc内のbackup_full.sqlをテキストエディタで開き、http://hoge.com(旧URL)をhttp://nc.hoge.com(新URL)に全部置換。※この作業は、nc内のリンクを全部新しいurlに変更するために必要な作業。使用したエディタはMicrosoft社製 Visual Studio 2008。
  12. 置換したbackup_full.sqlを新MYSQLにインポート。インポートに使わせてもらったソフトは、BigDump。普通ならばphpMyAdminを使用してインポートすれば良いのだが、そもそも今回引っ越しする羽目になったのは、DBの容量が100MBを超えてしまった為。高機能データベースのphpMyAdminでは、インポート可能なファイルサイズが100MiBまでなのでそのままではインポート不可能。そこで、自動的にファイルを分割してインポートしてくれるBigDumpが大活躍。とても助かりました。
  13. これで新ncが動作する環境は整ったので新ncのurl(http://nc.hoge.com)に管理者でログオンし、モジュール管理から一括アップデート。※固定リンクの設定だとログオンした際、ページが見つからないとなってしまうが、慌てずアドレスに新ncのurl(http://nc.hoge.com)と入力し直せば大丈夫。※一括アップデートが重要。
  14. 固定リンクの設定をONにしている場合は、一旦OFFに設定後、再度ONに設定しなおし、.htaccessを作成しなおす。※nc.hoge.com/home/nc.hoge.com/直下に作成される。
  15. nc.hoge.com/home/nc.hoge.com/.htaccessの最終行に、php_value memory_limit 50Mを追加する。
  16. 旧ncサーバーにURL REDIRECTの設定をする。hoge.comをnc.hoge.comへリダイレクト。
  17. 完成

参考にしたurl
WebARENA NetCommons2
nc 4-07 バックアップ
BigDumpの使い方