A5:SQL Mk-2

開発のこと、日々のこと

2022/01/22
から 松原正和
0件のコメント

A5:SQL Mk-2 Version 2.17.0 は Windows XP で動かないのか?

2022/01/22 にA5:SQL Mk-2 Version 2.17.0 を公開しました。

(同梱の history.txt では、2021/10/23 となっていますが、これは誤りです)

ところで、readme.txt を見るとわかるのですが、Version 2.17.0 から動作環境のOSが Windows Vista ~ となっています。これは、開発環境である Delphi 11 でビルドされた実行ファイルのサポートが Windows Vista 以降のためです。

ただ本当に動作しないのかというと、Delphi 11 にパッチを当て、実行ファイルの PEヘッダでサポートする最小OSバージョンを 5.1 に変更してやることで動作するようになるようです。ただ、全機能が正しく動作するかは確認できていません。起動して、DB接続とSQL実行を少し試した程度です。

もちろん、Windows XPでいまさら開発する人たちがいるとは思わないのですが、ごく古いFA等のシステムでは、きっとWindows XPは現役かと思います。きっとPC-9801 の MS-DOS で動作するシステムも現役でしょう。

PC-9801のMS-DOS ではさすがに動作しようがありませんが、A5:SQL Mk-2はごく古いシステムのトラブルシューティング等でも使われることを想定しているので、本当は動作環境に Windows XPも含めたかったのですが、Delphi 11が対応しない方針である以上、正式に動作環境に加えるのは残念ですが断念しました。

ただ、もし Windows XPで動作に問題がある場合でも、報告していただければできる限りは対処したいと思いますので、不具合を発見した場合は、掲示板にでも書いていただけるとありがたいです。

なお、Windows 2000では起動も失敗するようです。これは、残念ですが対応は難しそうです。

2021/05/04
から 松原正和
0件のコメント

Arm Mac (M1 Mac) 上で Wine を使ってA5:SQL Mk-2を動作させる方法

Arm Mac (M1 Mac)で、Wineを使ってA5:SQL Mk-2の動作に(とりあえず)成功したので、ここに手順を記します。
まだ安定しない場合もあるかと思うので、その場合は掲示板等で報告していただけるとありがたいです。
なお、Rosetta 2について記述していませんが、必要に応じてインストールするかOSが聞いてくるはずです。

前提(条件)

OS バージョン : Mac OS 11.3
Wineバージョン : Wine 5.0
A5:SQL Mk-2 Version 2.16.0 beta 35以降(Version 2.16.0の正式版が公開されたらそちらを使用)

A5:SQL Mk-2のダウンロードと展開

Vector からダウンロードする。
64bit版をダウンロードすること。

Homebrew のインストール

公式サイト

シェルから以下のコマンドを実行

インストール処理の最後に表示されるメッセージに従って以下を実行する。
(異なるコマンドが提示されたらそちらを実行する)

Wine のインストール

公式サイト

シェルから以下のコマンドを実行

winetricks のインストール(日本語フォントのセットアップ)

winetricks のインストールと日本語代替フォントのセットアップを行う。

winetricks 本体のインストール

MS ゴシック等の代替フォントをインストールする。

必須ではないが、必要に応じてメイリオフォントの代替フォントをインストールする。

RetinaMode

近年の Macでは、4Kまたはそれ以上のFullHD を超える解像度のディスプレイが多い。
Wineではこのまま実行すると、各ドットが縦横2倍にスケーリングされた表示になってしまう。
高解像度のディスプレイの場合は、それを活かすためにWineの設定を変える必要がある。
以下のコマンドでレジストリエディタを起動する。(レジストリエディタ自体、スケーリング表示されているはず)

HKEY_CURRENT_USER\Software\Wine\Mac Driver を開き(「Mac Driver」 はないので作成)、文字列型で RetinaModeY に設定する。

次に winecfg を起動する。

スケーリング表示がデフォルトの 96dpi になっているので、ディスプレイのサイズや解像度に応じて好みの値に修正する。(24〜27インチの4Kディスプレイなら168〜192dpiくらい?)

A5:SQL Mk-2の実行

A5:SQL Mk-2のzipファイルを展開したフォルダで以下を実行

Automatorを使って実行する場合

Automatorでは、書類の種類を「アプリケーション」として以下のように「シェルスクリプトを実行」で起動するようにする。

Automator用のアイコン画像ファイル
上記アイコン画像を開いて、画像をコピーしておく。
ファインダーからアプリケーションフォルダで、A5:SQL Mk-2のAutomatorのアイコンを選択し、右クリックメニューから「情報を見る」を選択する。
左上のロボットのアイコンをクリックし、選択状態になったら、⌘Command+Vでペーストすると画像を変更することができる。

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

A5:SQL Mk-2 で MySQL のジオメトリ型のテキスト表示を実装中…ちょっと困り中

PostgreSQLについては、Version 2.15系からテキスト形式(EWKT形式)でGeometry型を表示できるようになったものの、他のDBではテキスト形式表示できていませんでした。ようやく、MySQLのGeometry型をテキスト形式で表示できるように修正中。

ちょっと困っている(これのせいで実装が遅れていた)のが、PostgreSQLとは緯度経度が逆ということ。PostgreSQLでは Point(経度 緯度) のような形式でテキストを扱うのに対し、MySQLでは Point(緯度 経度) 形式で扱います。地図表示のライブラリでのテキスト形式の扱いもPostgreSQLと同様、Point(経度 緯度)のようです。

POINT(35.713768 139.777254) で入力すると出力時にはPOINT(139.777254 35.713768) で出てくるとかトラブルの原因になりそうで不安です。…どうしよう。

2021/03/27
から 松原正和
0件のコメント

A5:SQL Mk-2 で#FFFFFF形式の色表示

Web開発をするときに、DBに色値を格納することもあると思います。一般的には #FFFFFF形式で表される色値です。

開発中のベータ版で、色値として判定される文字列がDBに格納された場合に、色表示を行うロジックを作ってみました。

少し悩ましいのが、データ型やカラム名は特に判定せず、データが#FFFFFF形式の場合に 色表示してよいのかということ。色値を表すDBのデータ型は(普通は)ありませんし、”COLOR” や “COL” をカラム名に含むもの…と判定して出すのもなんだかイマイチです。

あと、red や blue などの名称で色を表現することもありますが、今のところこれは非対応…どうすべきか。いるのか?。

誤判定して色表示してしまうと少し表示がうるさい感じかなとも思いますが、特に困るものでもないような気もします。何かご意見などあればいただけると嬉しいです。

~追記~

名称でもカラー表示するようにしました。

…商品マスタ(とか)に “Salmon” とか”Tomato”と入っていたら色表示されてしまいますが…とりあえず、良いことにしましょう。

2021/02/21
から 松原正和
1件のコメント

CSV/TSVファイルからテーブル作成(インポート)

A5: SQL Mk-2 Version 2.16.0 beta 23で「CSV/TSVファイルからテーブル作成(インポート)」機能を追加しました。CSVファイルから型を類推して新規テーブル作成&インポートする機能です。

各カラムの型は変更することもできます。

これまでもこの機能の要望はあったのですが、テーブルはきちんと設計してから作る派なので、簡単にテーブルを追加するような機能はつけていませんでした。(DB管理者から怒られそう?)

CSV(TSV)からふらっとテーブルを作るような需要というのは多いもんでしょうか…。

2021/02/21
から 松原正和
0件のコメント

書式付きのSQL文をコピー機能

Version 2.16.0 beta 24にて、SQLエディタから、SQL文をHTML書式でコピーする機能をつけてみました。HTMLのソースがコピーされるのではなく、HTMLコピー機能を使ってカラー書式付きでコピーする機能です。グリッド(結果セット)から罫線付きでコピーされるのと同じような仕組みです。

普通にSQLエディタで範囲選択して、Ctrl+C押下でHTML形式にてコピーされます。Officeなどでは、HTMLコピーを受け入れられるので、貼り付けるとカラー構文表示のまま貼り付けられます。

HTMLコピーを受け入れないアプリケーションではこれまで通りプレーンテキストでSQLが貼り付けられます。

あまり利用頻度自体は多くないので、やりたいなとは思っていたものの、なかなか実装できていませんでした。個人的にはパワポの資料などでも、ちょっとしたSQL文を貼り付けたりすることもあるので、ちょっと便利になるかもと思っています。

2021/01/17
から 松原正和
0件のコメント

M1 MacでCrossOver for Mac 20 を使ってA5:SQL Mk-2を動作させる。(あまりうまくいかない。)

2021/05/04 追記 以下は古い記事です。Wine 5.0 を使用して Arm Mac での動作に成功したので、そちらを参照するようにしてください。

変節してまで M1 MacMINIを買ったので、なんとかA5:SQL Mk-2がMacOSで動作するように頑張っています。

M1 Macでは素のWineはまだ動作しないので、CrossOver for Mac 20を使っての検証を行います。きっと、M1 Macで動作すれば、Intel Macでも動作するでしょう(という期待)。

CrossOver for MacがGPLでソースが公開されていることを知らず、うっかり買ってしまいました。(そういえばWineはGPLだった…)。まあ、CrossOver for Mac(とWine)は素晴らしいソフトウェアだと思うので良いでしょう。

…検証して沢山の問題点が見つかり、すぐに「使える」とは言えない状況ですが、致命的なのがSQLエディタで数十行程度コピペするだけでA5:SQL Mk-2がフリーズしてしまう現象。

どうやら、SQLエディタで定義しているカラー構文表示の正規表現の処理で問題がある模様。A5:SQL Mk-2の内部で暫定的にWine動作時にカラー構文表示の一部機能を省略することにしてみました。とりあえずフリーズはしなくなったようです。

もう一つ困ったのが、テーブルエディタ等のグリッドで日本語を入力しても、確定しようとすると元の値に戻ってしまう現象。半角文字を1文字でも入力すると(その半角文字を消しても)大丈夫なようです。WineでなにかIME動作時のウィンドウメッセージが飛んできていないのかな…。これの修正(対処)はもう少しかかりそうです。

あとは、初回起動時にヒラギノフォントが見つかったらそれを使うようにしてみたり、テーマカラー機能が中途半端にしか動作しないので、システムデフォルトのグレーに直したり…。

少し意外だったのは、グリッドからExcelにコピペしたときに、罫線はつかなかったものの、書式が付いた状態でコピペされたこと。Wine経由でもHTML書式のついた表のコピペがサポートされるのですね。

Excelへの書式付きコピーはA5:SQL Mk-2のウリの機能なので、完全ではないにせよ動作してよかったです。

Excelへの直接出力や、Excelへのテーブル定義書出力は正しく動作しないようですね。MacOSにはCOMオートメーションがそもそも動作しないので、これは仕方ないです。

2021/01/17
から 松原正和
0件のコメント

A5:SQL Mk-2 で Shiftキー+タブのマウスオーバーでタブの内容をプレビューする機能を実装

あまり知られていないかもしれない機能ですが、これまでもShift+タブの×ボタンクリックで確認画面なしでタブを閉じる機能が実装されていました。

多くなりすぎたタブを整理するのに便利な機能…のはずですが、肝心のタブの内容が何だったかわからないと、閉じてよいタブか判断が付きません。

そこで、Version 2.16.0 beta 20から、Shiftキーを押しながらタブの上をマウスオーバーすると、一時的にアクティブタブを切り替える機能を実装しました。

Shift+マウスオーバーでタブの内容を確認し、不要なタブだったらそのまま×ボタンでクローズ(確認画面なし)できます。Shiftキーを離すか、マウスカーソルがタブ以外に移動すれば、Shiftキーを押す前にアクティブだったタブに自動的に戻ります。

これで不要タブの削除がはかどりますね。

2020/12/29
から 松原正和
0件のコメント

積年の澱のように凝り固まった偏見を変節して…

積年の澱(おり)のように凝り固まった偏見を変節して Mac mini を買ってしまいました。先に白状すると、Apple M1 のベンチマークを見てシングルスレッドのパフォーマンスにビビってしまったのです。

色々考えているところはあって、Mac向けの Sequel Pro (Sequel Ace)を評価してみたいとか、Wineとか使ってA5:SQL Mk-2の動作を確認したい(CrossOver for Macもあるし、そのうちWineもM1対応するよね?)とか、仮想環境なりBootcampみたいな仕組みが出てきてARM Windowsが動くようになるでしょ?(そのうちMicrosoftもARM Windowsのライセンス発売するでしょ?)とか、どうにも使えなかったら仮想通貨でも採掘させてみるか(やったことない)とか、若干楽観的な認識のもとMac miniを買ってしまいました。

ARM Windowsを評価するだけならARM Windowsマシンを購入するという手もあったのですが、Surface Pro Xは少々お高いですし、中古のARM Windows機はさすがにパフォーマンスが…。

Macbook Air (または Pro)も少々お高く、今年メインマシンの中身(CPU+マザーボード+メモリ+SSD)を8年ぶりに刷新した価格すら超えてしまうので却下です。Macのキーボードはキーストロークが浅すぎて許せないだろうなというのも(HHKB使い)。

ジニーエフェクト気持ち悪いなーとか(止めた)、CommandとControlキーが分かれているのはいいとしても ⌘ とか ⌥ とか読めないんですけど?とか、スクリーンショットのショートカットがcommand + shift + 3とか直感的じゃないよね?とか、画面はリモート接続で使うつもりだったのにプロトコルがVNCなのはちょっと…うちは無駄に4Kディスプレイ2枚なせい?でVNCめちゃめちゃ重くて有線LANですら使い物にならないんですけど?とか、Finderにアドレスバーがなくてメニューからなんですか?(メニュー遠い…マウスの移動量が…)とか、Finderから右クリックで新規文書作れないの?とか、アプリケーションインストール時にダイアログが出て、アプリケーションのアイコンをアプリケーションフォルダのアイコンにドラッグ&ドロップしなければいけないの最初全く分からなかったんですけどこれは直感的なんですか?とか、かな漢字変換の未確定文字が明朝体なの気持ち悪い(Google日本語入力を導入)とか、いろいろ文句があるのはきっとまだ偏見が残っているのでしょう。

で、とりあえず、CrossOver for Macを評価してA5:SQL Mk-2を動作させてみました。…が、UX的にこれは酷いなーと。localhost以外への接続だとなぜか固まるとか、SQLエディタで文字を入力しているだけで固まるとか、CrossOver for Macの問題かWineの問題なのかRosetta 2の問題なのか、どこに問題があるのか判別できませんでした。MacOSや、CrossOver for Macのバージョンアップで解決してくれればいいのですが…。あと、 高DPIに対応していなくてフォントがカクカクになってしまうのがちょっと悲しいですね。それと、ショートカットキーが利かないと思ったらCommandキーではなくてControlキーでした。

…なんとなくですが、ショートカットキーとか×ボタンの挙動とか、WindowsのアプリケーションがMacのアプリケーションとして動くというより、Macの中にWindows環境があるといった動き方ですね。

なお、A5:SQL Mk-2自体のネイティブ対応ですが、ちらと考えはしたものの、

  1. GUI全部作り直し(100画面以上ある)
  2. カラー構文表示できるテキストエディタコンポーネントがなさそう(Delphi FireMonkey で動作するもの)
  3. Windows APIをガシガシ叩いている(ER図はGDI+に依存してるし…)

等の理由によりちょっとムリな状況です。

あとは、Sequel Ace評価してみました。A5:SQL Mk-2よりライトなツールでしょうか。あまり、高機能でなくシンプルなほうがわかりやすくていいのだろうか?とか思ってみたり。A5:SQL Mk-2もライト版作ってみるか?とか(いる?)。Macは(Linuxもだけど)Control+SpaceがOSに抑えられているので、Escapeキーで入力支援が働くのは良いかも。A5:SQL Mk-2はユニバーサルデザイン的な考慮からCtrl+Space以外にもF4で入力支援を利かせていたけれど Esc に変えようかなと思ってみたり。

当初使い勝手の面や、いろいろアプリケーションが動かないとか、持て余し気味だったのですが、最近ようやくdockerがベータ版で対応し始めたり、PallarelsがMicrosoftと協力してARM Windows動くかも?とかウワサみたいなものがあったり…とりあえず、MicrosoftさんからARM Windowsのライセンスが販売されるようになると嬉しいです。

2020/11/07
から 松原正和
0件のコメント

九九 計算尺(ペーパークラフト)

小学2年生になった子供たちが学校で九九を勉強し始めているみたい…ということで思いつきで「九九 計算尺」を作ってみました。九九の範囲内で整数の掛け算だけできる計算尺のペーパークラフトです。

PDFはこちらからダウンロードできます。

印刷用プログラムはDelphi製でgithubから3条項BSDライセンスで公開中です。

PDFまたは印刷用プログラムからA4サイズ横で印刷したら、以下の図に従って切りとって組み立ててください。精度が必要なのでハサミよりはカッターの方が良いでしょう。少し厚めの紙に印刷できると扱いやすいかもしれません。

本体は点線で山折りにし、のりしろの部分を折った下側に張り付けてふくろ状にして、中にスライダを差し込みます。

完成すると次のようになります。

使い方

かけられる数の▼の下に数字を合わせます。かける数の上の数字を読み取ると答えになります。

例)3×5=15 の場合

…今時親御さんでも計算尺とか知ってる人はどのくらいいるのだろうか…。