pslaboが試したことの記録

はてなダイヤリーからはてなブログに引っ越してきました

この日記は現在実行中の減量記録を含む個人的なメモとして始めましたが、最近はコンピュータやガジェット、ハック、セキュリティネタのほうがメインになっております。

はてなダイヤリー時代はカテゴリ分けが適当だったのですが、これはそのうち直します。


Sencha Architect インストール環境での Sencha Cmd の場所

Sencha Architect には Sencha Cmd が含まれているので、Ext JS での直接の開発もそのまま行けるはずなのだけど、インストールパスを時々忘れてしまうのでメモしておく。

Windows の場合はここらへんのフォルダのサブディレクトリに Sencha Cmd がインストールされているはずです。

%USERPROFILE%\bin\Sencha\Architect\Cmd

私の環境では、Sencha Cmd の2つのバージョンが存在していました。

C:\Users\pslabo>dir %USERPROFILE%\bin\Sencha\Architect\Cmd
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は 6C4B-8866 です

 C:\Users\pslabo\bin\Sencha\Architect\Cmd のディレクトリ

2018/02/15  10:03    <DIR>          .
2018/02/15  10:03    <DIR>          ..
2018/01/24  10:50    <DIR>          6.5.1.240
2018/03/02  20:47    <DIR>          6.5.3.6
2018/01/24  10:50    <DIR>          repo
               0 個のファイル                   0 バイト
               5 個のディレクトリ  36,408,737,792 バイトの空き領域

C:\Users\pslabo>

そこで以下のように実行してみると、確かに sencha.exe が存在していました。

C:\Users\pslabo>%USERPROFILE%\bin\Sencha\Architect\Cmd\6.5.3.6\sencha.exe
Wat!
configFile: C:\Users\pslabo\bin\Sencha\Architect\Cmd\6.5.3.6\sencha.cfg
Sencha Cmd v6.5.3.6
Sencha Cmd provides several categories of commands and some global switches. In
most cases, the first step is to generate an application based on a Sencha SDK
such as Ext JS or Sencha Touch:

    sencha -sdk /path/to/sdk generate app MyApp /path/to/myapp

Sencha Cmd supports Ext JS 4.1.1a and higher and Sencha Touch 2.1 and higher.

そうすると、あとは環境変数の Path をここらへんに通しておけば Sencha Cmd がコマンドプロンプトから使えるようになります。

USB-CなMacBookにMagSafe ACアダプタで充電できるELECJET製の変換アダプタを買ってみたら、サードパーティ製のMagSafeアダプタが使えなかった

MagSafeなACアダプタ、余ってませんか?

MagSafeなMacBook ProからUSB-Cのモデルに切り替えると、多分、MagSafeなACアダプタが余っていると思うんですけど、いかがでしょうか。

少なくとも自分の場合は、自宅常備、携帯用の2つのMagSafeアダプタがあります。また、

新旧のMacBook Pro を普段から2台持ち歩く変な人には、ACアダプタ規格問題は結構困る

現在でも普段から2台の新旧MacBook Proを持ち歩いている身としては、ACアダプタが2種類必要なのは結構困ります。

普段は MagSafe AC アダプタと Anker Power Core Fusion 5000 を携帯しているのですが、Power Core Fusion では Macbook Pro を充電するにはパワーが足りず、どちらかというとこれは非常時のバックアップ用です。

ヘビーに使うことがわかっている場合は純正のUSB-Cアダプタ、または Anker PowerPort 5+ をカバンに収めるのですが、それを忘れると大変困ってしまいます。

そんなところに見つけたのが、ELECJET Anywatt One です。こちらのリンク先は製造販売元のページ。深センからの出荷で日本向けにも出荷してくれます。

[USB-IF Certified] ANYWATT ONE: MagSafe or Square to USB C Power Delivery Adapterelecjet.com

こちらは Amazon へのリンクですが、この記事の投稿時点では品切れ中のようです。

これは MagSafe に取り付けるタイプの MagSafe - USB-C 変換アダプタです。これがあると USB-C な MacBook Pro が MagSafe AC アダプタで充電できるので大変助かります。これのおかげでカバンには MagSafe ACアダプタがあれば大丈夫になりました。

しかし充電できない組み合わせがあった

これを試していると、手持ちの MagSafe AC アダプタのうち、これと組み合わせてもUSB-Cで給電できない組み合わせがありました。

色々試してみたのですが、どうやら、このアダプタは Apple 純正ではない MagSafe AC アダプタを認識しない場合があるようなのです。

思い起こしてみると、2つ目の MagSafe アダプタは Amazon で購入しており、価格も Apple Store のものとは異なっていたので、正規品ではないものである可能性が高そうです。

アダプタが余っていれば地味に便利。だけど純正品ではないアダプタには注意

というわけで、便利だけどサードパーティ製MagSafeアダプタでは動かない可能性があるので、そこは注意が必要です。

OpenWRT/LEDEのファームウェアがtftpでうまく焼けないときにDD-WRTのシェルから焼いてみる

職場の倉庫からWZR-HP-G300Nを1台発掘したのだけど、調べてみるとファームウェアDD-WRTに書き換えられていました。

しかし現在のスタッフはそういうことをする方々ではないので、過去のadminがそういう運用をしていたらしい。

それはさておき、DD-WRTよりはOpenWRT派な自分としては、当然のようにOpenWRTへの入れ替えを試みました。しかしtftpでの流し込みを何回試してもうまくいかなかったので、代わりにDD-WRTのシェルから焼いたらうまく書き換えできました。

シェルから焼く場合は squash-fs-sysupgrade のファームウェアを転送したのち、mtd コマンドで以下のように実行します

mtd -r write lede-17.01.2-ar71xx-generic-whr-hp-g300n-squashfs-sysupgrade.bin linux

tftp での書き換えはコマンド投入のタイミング調整が必要なのでやりづらいことがありますが、シェルからのコマンド投入なら簡単です。

ネタ的には半年前に投稿した、こちらの内容と同じなのですが、滅多にやらない作業だし、ググっても見つかりにくいネタなので、自分の検索用のメモとして残します。

pslabo.hatenablog.com

まあしかし、こんな古い機器、かつフラッシュメモリの容量が少ない機器を今更使えるようにしても、あまり意味はなさげですが。。。

Windows 10 Enterprise をインストールした HP 製のPCにベンダ提供のドライバ類を追加インストールする

Windows10をクリーンインストールした環境にベンダー製のドライバや補助ソフトをインストールするのは案外めんどくさい

PCを調達すると通常はWindows 10 Home または Pro がプレインストールされていますが、社内のPC は Windows 10 Enterprise を標準的に利用するので、OS の入れ替えをすることになりました。しかし Enterprise への入れ替えでは既存環境を引き継ぐことができません。

そうすると、ハードウェアベンダーから提供されるドライバアップデートを改めてインストールせねばならない場合があります。しかしベンダーのウェブページから個別のドライバを探してインストールするのは面倒です。

今回は HP 製PCにドライバをインストールするのですが、色んなドライバがあってどうしたものかと思っているところにふと気づいたのが "HP Support Assistant" です。このツールがインストールされていると、そのPCに必要なBIOSアップデートやドライバアップデートが通知され、そのままインストールすることができます。

HP Support Assistant のインストール

ここらへんからダウンロードできます。 http://www8.hp.com/jp/ja/campaigns/hpsupportassistant/hpsupport.html

インストールして実行すると、インストールまたは更新が必要なドライバ類が通知されますので、優先度を考慮してインストールします。

ウェブページから個別のドライバの要不要を考慮しつつインストールするのにくらべると、大変お手軽に導入することができ、メンテナンスが捗ります。

Windows 10 1803 にアップデートする前に行っておきたい前準備

Windows 10 1803 は RTM 候補のBuild 17133 が2018年4月初旬にリリースされたものの、ブルースクリーン問題(BSoD, Internal Preview の場合は BSoG) 等により一旦取り下げられ、2018年4月30日(US時間)に Build 17134 が改めてリリースされる見通しです。

実際のところ、Build 17133 の時点で自分のPCも BSoG が発生してインストールが完了しない問題が発生して大変困りました。最終的には復元ポイントに戻したのちに問題を引き起こしているソフトウェアを削除してアップデート完了したのですが、けっこう手間がかかりました。

そこで、Windows 10 1803 にアップデートする前に行っておきたい前準備を自分の体験したケースでメモっておきます。

  1. 復元ポイントを確実に残しておく
  2. 管理者権限を利用できるユーザアカウントでログインできることを確かめておく
  3. BitLocker を使っている場合は回復キーを確認しておく
  4. 特殊なソフトウェアやドライバをアンインストールする

復元ポイントを確実に残しておく

復元ポイントが残っていれば、何か問題があっても復元できるわけで、これが最も重要です。Windows 10 1803 にアップデートする前の状態の復元ポイントを必ず残しておきます。

仮想マシンの場合はスナップショットをとります。

管理者権限を利用できるユーザアカウントでログインできることを確かめておく

BSoD から回復させるためのトラブルシューティングでは、管理者権限による作業が必要な場合があります。管理者権限が使えるアカウントが不明だと、それらの作業が行えないので大変困ります。

特に、ドメインに参加しているPCの場合は、ローカルアカウントで管理者権限を持つアカウントがわかっていることが望ましいかもしれません。

BitLocker を使っている場合は回復キーを確認しておく

Windows 10 Professional 以上をお使いの場合は、BitLockerも設定していると思います。しかしトラブルシューティングの際には BitLocker で暗号化されたストレージを参照する際に回復キーが必要です。

回復キーが不明な場合はセーフモード等での起動ができず、詰みます。

特殊なソフトウェアやドライバをアンインストールする

自分のケースでハマったのはこのせい。

WindowsMac の外部ディスプレイとして iPad を利用できるようにする DuetDisplay のドライバをインストールした状態で Windows 10 1803 にアップデートしたら BSoG になりました。

手元の環境は DuetDisplay はすでにアンインストールした上で 17134 へのアップデートも済んでいるため、これから 17134 にアップデートする場合の挙動は正直よくわかりません。

しかし、ベンダー側が Windows 10 1803 での検証や動作保証を行っていないドライバは問題を引き起こす場合があります。だからといって、すべてのドライバを削除するわけにもいかないので、回復可能な手段を用意した上でアップデートを実施し、ダメだった場合は元に戻せる状況を用意しておきましょう。

ER/Studio 16.0 (2016) で IBM DB2 LUW に接続してリバースエンジニアリングするための環境を作る

ER/Studio はデータベースのモデリングツールであり、ER/Studio 上で論理モデルを編集した上で個別のデータベース向けの物理モデルを生成できるだけでなく、稼働中のデータベースに接続して物理モデルをリバース・エンジニアリングできるなど、なかなか便利なツールなのですが、DB2 LUW (Linux, Unix, Windows 向けのDB2) に接続しようとしたときに設定手順の文書が微妙に足りないので、手順のメモを残しておきます。

また、ER/Studio のバージョンは 16.0 (2016)、エディションは Developer Edition (RAD Studio Architect に含まれるエディション) を想定しています。

従って、ここで書いている手順は DB2 for z/OS (AS/400) 向けの手順ではありません。DB2 for z/OS へのネイティブ接続は ER/Studio Data Architect 以上でサポートされますので、RAD Studio Architect で ER/Stuido Developer Edition をインストールしても利用できません。(ODBC設定なら使えるかもしれませんが)

そもそもなぜ上手くいかないのか?

DB2に関する理解度が低い方が docwiki.embarcadero.com の記述を読むと、たぶん混乱するからだと思います。

ここらへんを見ると "IBM DB/2 OS/390 / IBM DB2 LUW" 向けの接続には "IBM DB2 Connect" が必要、と書かれています。 サポート対象データベース プラットフォーム - ER/Studio Data Architect

また、ここらへんを見ると "IBM DB2 クライアント ユーティリティの対応バージョン" を用いる旨、書かれています。 さらに IBM DB2 for LUW には "ODBC データ ソース アドミニストレータで指定した ODBC データ ソースを使用します。" と書かれています。 データベースに対するネイティブ接続または直接接続の使用 - ER/Studio Data Architect

結局、何が必要なのか、良く分からなくなってきませんか?

ネイティブ接続できるはずなのに、ODBCデータソースの設定が必要、みたいなことが書いてあるし。

では、と思って DB2 向けの ODBC ドライバだけインストールした環境で接続を試みてみても、ネイティブ接続は思ったようには動いてくれない。

db2abind64.dll が無い、みたいなメッセージが出て先に進めないし、db2abind64.dll で検索しても、そのものズバリの情報がイマイチ見当たらず、「後方互換性のために残されている」的な情報は見つかるものの、ODBCドライバにはこのDLLは含まれていないのです。

必要なもの

結局、ソフトウェアやドライバとして何が必要かというと、IBM Data Server Client Packages が必要です。この記事の作成時点では 11.1.* を使用していますが、もっと新しいバージョンが無いかどうかは個別に確認してください。

以下のリンクは11.1のダウンロードリンクです。IBM ID でのログインが必要なので、持っていない方は作成してください。

http://www.ibm.com/support/fixcentral/swg/quickorder?parent=ibm%7EInformation%20Management&product=ibm/Information+Management/IBM+Data+Server+Client+Packages&release=11.1.*&platform=Windows+64-bit,+x86&function=fixId&fixids=DSClients-111-ntx64-RECOMMENDED&includeRequisites=1&includeSupersedes=0&downloadMethod=http&source=fc

ここで "v11.1.3fp3_ntx64_client.exe (691.37 MB)" という、一番大きいインストーラを入手しておきます。(他のインストーラでも良いかもしれないけど、最小構成については検証していません)

インストールのサマリ

v11.1.3fp3_ntx64_client.exe は WinZip の自己展開型アーカイブなので、実行して展開された中身の setup.exe を実行します。(しかし、今の時代に自己展開型アーカイブで配布するのはアリなのだろうか?)

インストール構成としては、下記2点くらいが注意点でしょうか。

  • IBM Data Server Client バージョン 11.1.3.3
  • コンパクト構成 (200 - 300MB)

環境設定のサマリ

環境設定では、ODBC接続設定が必要です。ER/StudioからのDB2接続では、ODBCの機能とネイティブドライバの機能を併用するのですが、基本的な接続はODBCで設定された内容を参照しているようです。

ここらへんは RAD Studio/Delphi/C++Builder のデータベース接続機能である FireDAC の DB2 コネクタでも同じような挙動のようです。

ここでは DB2 側で接続エイリアスを作成したのち、それを ODBC ドライバで使用するように設定しています。

db2 catalog tcpip node [ノード名] remote [DB2サーバのホスト名またはIPアドレス] server [ポート番号(50000)]
db2 catalog database [データベース名] as [DB接続エイリアス名] at node [ノード名]

ER/Studio のリバースエンジニアリング設定

  • 接続方法 = ネイティブ/直接族
  • 対象データベース = IBM DB2 UDB
  • データソース = ODBC接続名
  • ユーザ名、パスワードは DB2 側で設定されているものを指定

おおむね、こんな流れでER/StudioからDB2 LUWへの接続やデータベースのリバースエンジニアリングが行えるようになります。

DB2 ODBC Client のバージョン、ダウンロードURL、サーババージョンとの組み合わせ

9.5, 9.7, 10.1, 10.5 はここらへんから辿ってダウンロードできる。 www-01.ibm.com

クライアントとサーバの組み合わせはこの辺を見る www-01.ibm.com