A5:SQL Mk-2

開発のこと、日々のこと

2019/07/28
から 松原正和
0件のコメント

VirtualBox 6 に古いLinux(VineLinux 4.3)を導入する。

古いPostgreSQL (PostgreSQL 7.3 )の動作検証として、古いVirtualBox 6.0.10にLinux 7.3 を入れてみました。今どき何かの役に立つのかは知りませんが、何かの備忘録ということで…。

VineLinux 4.3自体の導入はすんなりと行きました。仮想マシンの作成は、タイプをLinuxに、バージョンは Linux 2.4 (32bit)を選択。メモリは 128MBがデフォルトでしたが、512MBに拡張、仮想ハードディスクは4GBから20GBに拡張しました。(なんとなく)

古いOSなので、VirtualBox Guest Additionsが入るかな?と思ったのですが、最近のUbuntuなどのように、Guest AdditionsのCDをマウントさせたら、自動実行とはいきませんでした。自動マウントまではしてくれるようでしたが、自動実行はしないようです。

とりあえずコンソールから、./autorun.sh を実行しようとすると、何かエラーが…。

詳細は良く分かりませんでしたが、(仮想)CD-ROMから実行ではなく、(仮想)CD-ROM内のVBox_GAs_6.0.10ディレクトリを適当なディレクトリ(ホームディレクトリとか)にコピーしてから実行するとうまくいきました。

しかし再起動してみると、解像度がなぜか640×480しか選べません。

とりあえず、/etc/grub.conf で「vga=0x318」(1024×768 24bitの設定値)などと記述してみるも…。

再起動してみると…、

848×480が精いっぱい。まあ、GUIでゴリゴリ何かをするわけではないのでこれで良しとします。

とりあえずは、昔ダウンロードして持っていた postgresql-7.3.21.tar.gz をドラッグ&ドロップで仮想マシンに転送し(これがしたかったので VirtualBox Guest Additionsを入れた)、以下コマンドでPostgreSQLをインストール

$ tar vfzx postgresql-7.3.21.tar.gz

$ ./configure --without-readline --without-zlib --enable-multibyte=EUC_JP

$ make

# make install

とりあえず、今日はここまで。

2019/05/06
から 松原正和
0件のコメント

A5:SQL Mk-2にテーブル設計機能を追加

これまでずっと要望があったのですが、Version 2.15.0 beta 4でようやくA5:SQL Mk-2でGUIで設計できる機能を追加しました。



これまで実装していなかったのは、テーブルの作成(再作成)はGUIでやるべきではなくDDLを書いてからやるべき派だったのと、各DB製品ごとのDDLの方言を吸収するのが大変ということがあったためです。テーブルをDROP後にCREATE TABLEでエラーになったりしたら最悪ですし。

とりあえずは、直接テーブルを作成または再作成するのではなく、そのためのDDLを作成してSQLエディタに展開するだけの機能です。

なお、再作成時はテーブルデータを消さずに再作成するためのDDLを作成します。(ワークテーブルに退避してから、DROP&CREATE、ワークテーブルからデータを戻してワークテーブルを削除する)

データを引き継ぐには列定義のグリッドで右端の列(引き継ぐ値(式))に記述します。基本的には「old.列名」を指定することになると思いますが、データ型が変わったり、列の長さが短くなったりするときは、変換を行う式を指定することになると思います。

あと、現状ではまだ作りかけの機能で、以下が未実装または不完全です。

  • オプションタブの機能(DB製品ごとのオプション項目…テーブルスペースとか、ストレージエンジンとか、キャラクタセットとか)
  • 参照整合性制約に未対応
  • トリガー機能に未対応(再作成すると消える? or エラーになる?)
  • 翻訳がまだ(英語リソース無し)
  • おそらく Oracle Database, Microsoft SQL Server, IBM Db2, PostgreSQL, MySQLのみの機能になるが、画面呼び出し時に現状ではDB製品の判別をしていない。
  • その他方針等が迷い中…。

新規テーブルを作成するには、DBツリーで対象DBを選択した状態で、メニューから[データベース(D)] – [新規テーブルの作成]を選びます。

既存のテーブルのレイアウトを変更するには、DBツリーで対象テーブルを選択し、右クリックメニューから[テーブル定義の変更(テーブル設計)]を選びます。

何か、テーブル設計の画面で何かアイディアがある方はご意見などいただければと思います。

2019/04/28
から 松原正和
0件のコメント

Windows 10 でタスクバーに消せない透明アイコンが残ったときの消し方。

これまで、Windows 10 で Windows Subsystem for Linux (WSL)の一つで、WLinux というのを使っていたのですが、これがいつの間にか、Pengwinという名称に変わっていました。

それはいいのですが、タスクバーにピン止めしていると、WLinuxの名前で透明なアイコンが残ってしまいます。しかも、右クリックしても、「WLinux」と「タスクバーにピン留めする」しか出てきません。なぜか「タスクバーからピン留めを外す」が出てきません。

困っていたのですが、以下のようなページを発見!!。

https://answers.microsoft.com/ja-jp/windows/forum/all/windows10%E3%82%BF%E3%82%B9%E3%82%AF%E3%83%90/7b7de726-695d-4524-b7c1-f314a02a5395

LINEアプリでも同じようなケースがあったようですね。

単に、Shift+右クリックで「 タスクバーからピン留めを外す 」が出るようになります。

分かってしまえば、なんだって感じのことですね。

2019/04/14
から 松原正和
0件のコメント

A5:SQL Mk-2でスキーマ間データ転送するとき、テーブルを指定できるようにしました。

これまでA5:SQL Mk-2ではスキーマ間のデータ転送をするとき、送信元と送信先の両方のスキーマに存在するテーブルがすべて転送対象となり、選択することができませんでした。

なぜ今まで付けていなかったのか不思議ですが、 ようやく、Version 2.15.1 beta 1で実装してみました。

今までは以下の画面で「転送」ボタンを押下すると、すぐに処理が走っていたのですが…、


Version 2.15.0 beta 1からは、その次に次のような画面が出てテーブルを選択できるようになります。

2019/04/14
から 松原正和
0件のコメント

A5:SQL Mk-2でテーブルを編集するとき、複数行をまとめて編集してサーバーに反映する機能を実装

タイトルが微妙に長いのですが、簡潔な表現が思いつかなくてこのようにしています。

これまで、A5:SQL Mk-2でテーブルエディタやSQLエディタの結果セットを編集したとき、1行ごと編集内容をサーバーに反映していました。

ただ、できれば複数行をローカルで編集して、一括でサーバーに反映したいという要望はそれなりにあったようです。このため、Version 2.15.0 beta 1でそのようなモードを付けてみました。ただし、デフォルトでは従来通りの動作で、オプションダイアログから「結果セットグリッド」タブで、「1行ごと編集をサーバーへ反映せず、複数行の編集をまとめてサーバーへ反映する」のチェックをオンにする必要があります。

この状態で編集を行うと、以下のように「サーバーへ反映」ボタンが出現します。(通常は非表示)



メニューにも「サーバーへ適用」と「ローカルの編集を破棄」が出現します。「サーバーへ適用」はCtrl+Sにショートカットを割り当てています。(SQLエディタではShift+Ctrl+S)

なお、編集した(サーバーに未反映の)項目は左上に赤の三角形を表示するようにしてみました。しかし、編集した項目には赤三角が付けられるのですが、なぜか新規登録した項目には赤三角が表示されませんでした。何とかしたいのですが難しいかもしれません。

なお、複数行の編集をまとめてサーバーへ反映するモードでエラーが起こった際は、「どの行がエラーを起こしたか」がエラーとして報告されません。ちょっと動作が微妙かなあとも思います。

2019/03/30
から 松原正和
0件のコメント

A5:SQL Mk-2 Vector版(ZIPファイル版)とMicrosoft Store版の使い分け

A5:SQL Mk-2 Version 2.14.1から従来のVectorで配布しているZIPファイル版のパッケージに加え、Microsoft Storeから直接インストールできるパッケージを用意しました。ここではその機能差と使い分けを書いてみたいと思います。

ZIPファイル版に対するMicrosoft Store版の機能差

  • ポータブルモードが利用不可
  • インストールフォルダにDMonkeyスクリプトを配置して機能拡張できない
  • 現在のところ、x64版のみの提供
  • Windows 10のみ
  • アップデートが簡単(自動的に更新されるはず…今後)
  • パッケージは署名され、実行ファイルは簡単には書き換えられない。
  • アンインストールが簡単(スタートメニューからA5:SQL Mk-2のアイコンを右クリックして「アンインストール」を選択)

これらの多くはMicrosoft Storeの制約・特性によるものです。Microsoft StoreアプリはインストールフォルダはC:\program files\WindowsApps配下等に制限され、インストールフォルダの書き込みは禁止されます。

ストアアプリは自動的に更新されるというのも注意すべきポイントです。

あとは、機能差ではないですが、リリース時の審査がMicrosoft Storeは遅くとも3営業日以内(早ければ数時間)なのに対し、Vectorは最近の傾向として2週間以上かかるようです。

これらのことからVector のZIPファイル版とMicrosoft Store版は次のような使い分けが必要です。

Vector ZIPファイル版を使うべきケース

  • ポータブルモードを使いたい
  • DMonkeyスクリプトを使い込んでいる
  • x86版が必要な場合 (32bit ODBCドライバを使うときなど)
  • Windows 10ではない
  • 不用意に更新されたくない(プロジェクトの期間中は同じバージョンを使いたい等)
  • 一度ダウンロードしてZIPファイルを会社のファイルサーバーなどで共有したい

Microsoft Store版を使うべきケース

  • 常に最新版を使いたい
  • 早く更新版を入手したい
  • セキュリティの厳しい現場での導入(Microsoft Storeが許可されていれば)
  • とりあえず試してみたい(気に入らなかったら手っ取り早く消したい)

これを参考にしてご自身の要件にあった方からインストールしていただければと思います。

2019/01/14
から 松原正和
0件のコメント

A5:SQL Mk-2のちょっとイイところ…ソースコード中から文字列リテラルを抜き出して貼り付け

アプリケーションを開発していて、SQLをプログラム中から実行する方法はいろいろありますが、プログラム中で文字列としてSQLを扱うことはよくあります。

こんな時、A5:SQL Mk-2ではSQLを含むプログラムのソースコードの中から文字列リテラルを抜き出してSQLエディタに貼り付けることができます。

やり方は以下の通りです。

・最初にプログラムのSQL(の文字列リテラル)を含む部分をざっくりコピーします。

・次にA5:SQL Mk-2のSQLエディタで、右クリックメニューから[コードストリッパー]の目的の言語を選択して貼り付けします。

・貼り付けを行うと、以下のようにコピーしたテキスト中から文字列リテラル部分が抜き出されて貼り付けされます。

これでプログラム中に記述されているSQLを手軽に抜き出し、テストすることができます。

ちなみに、コードストリッパーとはこちらから取った名前です。自分はコードストリッパーと覚えていたのですが、本当はワイヤーストリッパーというらしいです。

2019/01/14
から 松原正和
0件のコメント

A5:SQL Mk-2のダークモードとか

Windows 10 October 2018 Updateではエクスプローラにダークモードが追加されました。

まだアプリケーションは個別にダークモードに対応しなければいけませんが、A5:SQL Mk-2はテーマ機能で一応これに対応します。

オプションダイアログから「テーマ」機能を使うと様々な見た目に変更することができますが、個人的には「Carbon」あたりが、Windows 10のダークモードと見た目の親和性が高いと思います。ただ、「Windows」以外のテーマを有効にすると、ちょっとUIが重めになる気がするのでなんだか微妙だなとも思っています。

ちなみに、このテーマ機能は開発環境であるDelphiの持つ機能で、簡単にテーマ機能をアプリケーションに組み込むことができます。

ただ、個別のアプリケーションごとにダークモードに対応しなければいけない現状はあまりよろしくないですよね。白いUIのアプリケーションと黒いUIのアプリケーションを切り替えると目がチカチカしてしまいます。目に優しいはずのダークモードがこれではいけません。まあ、ブラウザとかは背景が白二しか使用がないですし、印刷前提のアプリケーションも基本白にせざるおえないですよね。

ところでWindows 7あたりまでは「Windows クラシック」に切り替えて色設定をカスタマイズすることで、割と簡単にダークモードっぽいことが全アプリケーションで有効になっていたのですが、このコードはWindows 10では残っていないのですかね。これまでずっとウインドウ背景は白とは限らず、文字の色は黒とは限らない…と気を付けながら開発してきたのですが…。

↓Windows XPで試してみた手製ダークテーマ(A5:SQL Mk-2のテーマ機能ではなく、Windowsの設定変更)

2018/12/15
から 松原正和
0件のコメント

プリウス・ドライビング・シミュレータ

今日(2018/12/15)はJJUG CCC 2018 Fallだからというわけでもないですが、ちょっとJavaネタ。

大昔、かれこれ16年ほど前に作ったプリウス・ドライビング・シミュレータ。初代プリウスのハイブリッドシステムのシミュレーション(推測含む)を行うプログラムでブラウザから実行できましたが、Javaアプレットで作っていたため、今ではほとんどのブラウザで動作しなくなりました。もう作った本人もオワコンかと思っていたのですが、今日、フランスの技術インストラクターをしている方から動かし方の質問を受けました。

ブラウザではもうほぼ動かすすべはないのですが、ダウンロードすることで今でも動作させることができます。もちろんJRE(またはJDK)は必要です。

JREのダウンロード

ThsSimulator.jar をダウンロードしてダブルクリックすれば(JREがインストールされていれば)実行されます。

実行イメージ

起動直後の状態ではモーターとエンジンのスライダを操作して動力分割機構の遊星歯車の動作を決められますが、「運転する」チェックボックスをクリックするとアクセルとブレーキの操作でプリウスの動作をシミュレーションできます。

ちなみにものすごーく細かい機能ですが、以下のような機能があります。

・ブレーキを踏むとブレーキランプが点灯する

・ギアをRレンジにすると、後退灯が点灯する

・ずっと走り続けると、燃料計のメモリが減っていき、0になると停車する。

(画像ないのでレッツトライ。アクセル全開でも4時間ほどかかる?)

技術的なことをちょっと書くと、今はもう存在しないBorland JBuilder (JBuilder 6 Professional)で作られています。自分が初めて書いたJavaプログラムでもあります。

ソースコードはライセンスは特に明確になっていませんが、こちらのページからダウンロードできます。

2018/11/30
から 松原正和
0件のコメント

お家の外壁塗装しました。

我が家も建っておよそ10年、そろそろ外壁やコーキング材の痛みなどが見え始めてきました。

そろそろかなあと思っていたところに、株式会社あらたさん(東京都足立区)の営業が訪問されたので、見積を取ってもらい最終的に外壁塗装の工事をお願いしました。

あらたさんに見ていただいた問題のある所は大体以下の箇所

  • コーキングの劣化(複数個所…全般的に。前から気になってた)
  • サイディング材の破損(こすれによる表面のはげ)
  • 軒天の破損(劣化によるひび割れ)
  • サイディング材にコケ発生(日当たりの悪い部分にちょっと)

あらたさんは2018年10月にできたばかりの小さな会社さんですが、スタートアップの方が気合入れてやってくれるかなと判断し、お任せしました。大きな会社と違い、職人さんが下請け孫請けなどにならないのもまあ、よいところかも。

もとは、茶色地にアイボリーのアクセントカラーの家でしたが、思い切って色を変えてみて白地にアクセントカラーで黒に近いグレーにしてみました。デザインセンスは自信ないですがモノトーンにしておけば何となくモダンな感じになると思ったので。白地はかなり明るくニュートラルな白です。屋根も明るめのグレーで太陽光の反射率(遮熱)優先です。

ちなみに、お値段は実のところかなり予算オーバーでした。小さな(安い)家なので、補修費用もそれほど掛からないだろうとの目論見だったのですが、そうもいかないようです。しかし、耐久性の高い塗料を使うことで何とか期間当たりのコストは当初の予定通りにすることができました。ちゃんと想定通り(17~18年ほどは)長持ちしてほしいです…。

(塗料の銘柄は壁はアステックペイントリファイン1000SQLi-IR、屋根は同じくアステックペイントのスーパーシャネツサーモFです。)

仕上がった感想は…なかなか良いかなと思っています。なんとなく?モダンな感じになった気がしますし、新築時のワクワク感というか、嬉しさが少しよみがえった感じがしました。