A5:SQL Mk-2

開発のこと、日々のこと

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 の場合

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

2020/06/07
から 松原正和
4件のコメント

A5:SQL Mk-2 のジオメトリ対応

これまで、自分は「ジオメトリ」というものをよく知らなかったのですが、お仕事の関係上これからジオメトリ関連をよく扱うことになるので、A5:SQL Mk-2 のジオメトリ対応させていきます。

とりあえず、PostgreSQL(PostGIS)のGeometry型対応です。…なんか最近はMySQLでもジオメトリ対応している???。

Version 2.15.0出したばかりですが、Version 2.15.1でGeometry型対応をちょっと入れます。

↑ Version 2.15.0ではこんな感じ
↑ Version 2.15.1ではこんな感じ(予定)

Geometry型はユーザー定義型として、バイナリデータ型として扱われます。このままデータを取得すると、OpenGISのWKB形式(HEX表現)になってしまうのですが、これをA5:SQL Mk-2側で解釈してOpenGIS のEWKT形式( ST_AsText() 関数で得られる形式…多分)で表示するようにします。

本当は、地図も同時に出せるとよいのだけれど、それはもう少し後になると思います。

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

A5:SQL Mk-2 Version 2.15.0 とテーマ機能と高DPI環境の問題

A5:SQL Mk-2 Version 2.15.0 をマイクロソフトストアで配布し始めました。Vectorはもうちょっとかかるようです。

でさっそく不具合というか制限というか、どうしようもないのでわかってリリースしたのですが、A5:SQL Mk-2 Version 2.15.0のテーマ機能と高DPI環境はあんまり相性がよくありません。

テーマ機能は、見た目を変える機能で、Windows標準のコンポーネントをかっこよく(多分)見せる機能です。

一方、高DPI環境はこれまでのWindowsでは、96dpiを前提としていたフォントサイズをそれ以上(144dpiとか192dpiとか)とすることで4Kディスプレイなどで、文字や画像(用意した場合)をきれいに表示する機能です。(なお、A5:SQL Mk-2の高DPI対応では画像はこれまでのものを拡大表示しているだけです。)

で、高DPI環境で、テーマ機能を使った場合なのですが、どうも、ウィンドウのタイトルバーの高さが高くなりすぎてしまう関係上、ダイアログボックス等で、高さが足りなくなって一部ボタンが見切れてしまうようになってしまいました。

上の例ではかろうじてOKボタンが見えているものの、ダイアログによってはボタンの判別がつかない場合もあるようです。これは、利用しているライブラリの仕様上、修正が難しいと考えています。Version 2.15系では、高DPI環境下ではテーマ機能は使わないほうがいいかもしれません。

2019/12/22
から 松原正和
0件のコメント

カラー絵文字を使いたい(うまくいかない)

A5:SQL Mk-2で絵文字を使うと、こんな風に表示されます。


世の中にはカラー絵文字というのがあるそうで、WindowsではDirectDraw(DirectWrite)を使うとカラー絵文字が使えるらしい。何となくやってみたいなあと思い、テキストエディタコンポーネントをちょっと修正してみました。

カラー絵文字は表示されたものの、行番号が表示されないし、文字がちょっと見切れている。スクロールすると文字が消える…。文字描画だけをDirectWriteに変えただけではだめそうだ。どうやら、GDIとDirectDrawを共存というのは難しいらしい。グラフィック全ての描画をDirectDrawに切り替えないといけないようだ。

テキストエディタコンポーネントの描画をすべて修正するのは難しいし、この修正は当面リリースできなさそう?。

2019/10/27
から 松原正和
0件のコメント

A5:SQL Mk-2 ER図で自由に線を引けるようにしました。

A5:SQL Mk-2のERエディタでは、これまでリレーションシップの線は最大でも「横線-縦線-横線」又は 「縦線-横線-縦線」 など、3本の線までしか対応できていませんでした。これまでも、もっと自由に線を引きたいとのご要望は受けていたのですが、なかなか大変で実装できていませんでしたが、Version 2.15.0 beta 23でようやく対応してみました。

このモードはリレーションシップの線を選択して右クリックして、線種から「自由結線」を選択することで利用することができます。

最初は直線で表示されますが、直線の中間地点にあるグレーのハンドルをドラッグすることで頂点を追加できます。

頂点を削除するには、頂点の赤いハンドルを選択して右クリックメニューから「頂点の削除」を実行すると削除できます。

なお、サブモデルの機能を使えば、あまり複雑な線を引かなくとも(自由結線モードを使わなくとも)それなりにER図を描くことができます。あまり複雑な線を描くと、かえって分かりづらくなったりすると思います。https://a5m2.mmatsubara.com/tips/er_submodel/

2019/09/29
から 松原正和
0件のコメント

A5:SQL Mk-2のデフォルトテーマカラーを変更

90年代とか昭和とか言われるA5:SQL Mk-2のデザインセンスですが、テーマ機能を使うととりあえず、ぱっと見の見た目をマシにすることはできます。

ただ、このテーマ機能はやや重い機能であるとか、高DPIで使うとタイトルバーが細くなってしまうとかいろいろ問題があるため個人的にはあんまり好きではありません。

テーマ機能を実装するより前から、テーマ機能とはべつに「テーマカラー」機能を実装していました。テーマ機能がデフォルトの「Windows」であるとき、この「テーマカラー」機能が使えます。テーマカラーはA5:SQL Mk-2の背景色(通常は灰色の部分)を決定する機能です。これを変えるだけでもモダンとまではいかなくとも、そこそこ印象は変わるかもしれません。

今回、Version 2.15.0 beta 19から、このテーマカラーのデフォルト色を灰色(システムのボタン表面色)から「薄灰桜」というやや淡いピンク基調の色に変えてみました。(A5:SQL Mk-2のテーマカラーの色は日本古来の色の名前を使っています。)

今までのデフォルトのテーマカラー

新しいデフォルトのテーマカラー(薄灰桜)

どうでしょう?

なお、使用中の環境を更新していてテーマカラーが変わらないばあい、オプションダイアログの「全般」タブから選択することができます。