Kenichi Maehashi's Blog

脳内コアダンプ

RSS
Category: Computer
ブログを書くのが遅くなりましたが、先週末にリリースしていました。ダウンロードはこちらから。変更点について詳しくは更新履歴をご覧ください (Mac / Windows)。
今回のメジャーアップデートにあたって、プライベートアルファテストで 31 名、パブリックベータテストで 93 名 の方にご協力いただきました (後者はダウンロード数ベース)。フィードバックをくださった皆様、ありがとうございました。
なお、今回のリリースからサポート OS が OS X Yosemite 10.10.5 以降 / Windows 7 SP1 以降に変更になりましたのでご了承ください。

何周遅れなのかという感じですが、今回のリリースでようやく Cocoa / Retina / 64-bit 対応ができました。また、あわせて Windows でも Hi-DPI に対応しました。最近 Windows 10 マシンを新しく入手したのですが高解像度なマシンだとデフォルトで Hi-DPI になっているのですね。旧バージョンの LM を動かした時、あまりのレンダリングの汚さに愕然としました...。
これらは当初 LM 3.x で対応しようと思っていたタスクだったのですが、macOS Mojave で 32-bit アプリのサポートが drop (一応起動はするが API のバグフィックスはされなくなる) ということで急遽対応を進めました。(ちなみに、LM 3.x はそれなりに動くところまでは来ているものの、時間不足とモチベーション低下(!)のためにあまり進捗が出ていません。ゼロベースで書き直したものとしてリリースするつもりでしたが、予定されていた新機能を徐々に LM 2.x 系に混ぜ込んでリリースしていった方が良いかもしれない。)

今回のアップデートでは機能性は殆ど変わっていないのですが、内部的には開発環境の移行 (2011 Release 4.3 から 2018 Release 1 ヘ)、macoslib との決別、Carbon 依存コードの Cocoa 向けの書き直し、Retina / Hi-DPI 対応のために複数解像度の画像アセットへ差し替え、などなど結構大きな変更が入っています。早速いくつかバグリポートもいただいている (外部ソフトウェア連携、iTunes Script 周りなど) ので、可能であれば 8 月中にもう一度リリースしたいところです。

Mojave 対応については、Developer Beta を検証用マシンに導入して色々触り始めている段階です。基本的には問題なさそうですが、Dark Mode 対応に開発環境のアップデートが必要なほか、AppleEvent の送信に権限モデルが導入されるなど、対応のためにもう一波ありそうです。
Category: Xojo
今年の 1 月に公開した Xojo Instruments の v0.2.0 をリリースしました。
内容は以下の通りです。
  • Xojo 2018 Release 1 サポート
  • パフォーマンスの向上
  • Xojo Instruments の GUI 要素をスナップショットから除外するよう改善
  • "Track Backreference" ボタンを追加
  • dot コマンドのパスを自動的に検出するよう改善
  • GC 済みのオブジェクトを参照グラフで選択すると NilObjectException が発生する問題を修正
  • コードプロファイルを有効にして実行すると NilObjectException が発生する問題を修正
特にパフォーマンスの向上が目玉です。手元のプロジェクトでは 30 秒ほど掛かっていたスナップショットの採取が 8 秒程度まで短縮されました。中規模のプロジェクトでも使いやすくなったと思います。
Category: Computer
追記(2018-07-29) 正式版リリースに伴いベータ版の配布は終了しました。

Cocoa / Retina / 64-bit 対応 & Hi-DPI 対応版のベータを配布します。
皆様の環境でお試しいただき、このブログのコメント欄または Redmine にてフィードバックをいただければ幸いです。

v2.4.8.3 からの変更点は以下の通りです。
  • 新機能
    • Cocoa / 64-bit 対応 (Mac のみ)
    • Retina 対応 (Mac のみ)
    • Hi-DPI 対応 (Windows のみ)
    • 編集メニューに「取り消す」を追加
    • HTTP プロキシ認証で Digest 認証をサポート
  • 改善
    • 歌詞 GET の最新仕様に対応
    • 歌詞ナビの最新仕様に対応
    • LyricWiki の最新仕様に対応
    • UI の改善
    • HTTPS 接続時に TLS 1.2 を利用するように改善
    • 他社製 IM との互換性を向上 (Mac のみ)
    • メイン画面の透明度調整機能を削除 (Mac のみ)
  • バグフィックス
    • 検索結果の選択時に意図せずスクロールしてしまう問題を修正
    • 印刷時、ページ設定が破損している場合に致命的なエラーが生じる問題を修正
    • 起動時にウィンドウの位置が上にずれる問題を修正 (Mac のみ)
なお、今回のリリースからサポート環境が以下の通り変更となります。
  • macOS版: macOS High Sierra 10.13.x / macOS Sierra 10.12.x / OS X El Capitan 10.11.x / OS X Yosemite 10.10.5
  • Windows版: Windows 10 / 8.1 / 7 SP1
ダウンロード:
  • Lyrics Master 2.5.0.4 Beta1 (macOS)
  • Lyrics Master 2.5.0.4 Beta1 (Windows)
ベータ版では起動時に Debug ウィンドウが表示されますが、閉じていただいても構いません。また、ベータ版には利用期限が設定されていますのでご了承ください。

今回のベータ版公開にあたって、31 名の方にアルファテストでご協力いただきました。大変ありがとうございました!
Category: Computer
個別に記事を書くほどでもないのだが、最近作ったライブラリ/ツールをまとめて紹介。
  • pypict
    • Microsoft PICT (Pairwise Independent Combinatorial Tool) というペアワイズテストケース生成ツールの Python バインディングライブラリ (Cython)。
    • テストモデル(パラメタ/制約条件)を、PICT の DSL ではなく Python の辞書/関数で与えることができるのがポイント。
    • Microsoft PICT はデフォルトでは Linux の共有ライブラリがビルドできなかったので pull-req を出した (Microsoft プロダクトへの初コントリビュート)
    • CLA に sign する過程で CLA Assistant というプロジェクトを知る。コントリビュータの CLA 同意状況を GitHub のログインと紐づけて管理してくれるようだ。便利そう。
  • nvget
    • NVIDIA Developer サイトから、ユーザ認証の必要なファイルを CLI でダウンロードするツール。NCCL のバイナリを Web ブラウザでダウンロードしてから scp するのが面倒だったので書いた。
    • 実装は Selenium の Python Binding と Chrome + Chrome Driver。動作環境を用意するのが大変なので Docker イメージの利用がオススメ。
  • cuda-docker-generator
    • 任意の Docker イメージに任意のバージョンの CUDA/cuDNN をインストールする Dockerfile を自動生成するツール。非 LTS な Ubuntu や Fedora 環境とかに CUDA Runtime を突っ込んだイメージを作りたいときに便利。
あと、sensorbee-python の 0.3.2 をリリースした。依存ライブラリである websocket-client の v0.48.0 が出て、ついに Python 2.6 で動かなくなってしまったので、Python 2.6 サポートを drop した。RHEL 6 で使いたい人もいなそうですし、大丈夫でしょう。
Category: Computer
検索してもあまりドキュメントや事例が無いのですが、Jenkins の Remote Access API を使うとジョブの情報を XML や JSON 形式で取得することができます。特に XML API では XPath-like なシンタックスでデータの検索を行うことができるため便利です。例えば、プロジェクトを GitHub Pull-Request Builder Plug-in でビルドしている場合、以下のような API 呼び出しで Pull-Request 番号に紐づく最新の Jenkins ビルド番号を逆引きすることができます。
http://${HOST}:${PORT}/job/${JOB_NAME}/api/xml?pretty=true&tree=builds[number,actions[parameters[name,value]]]&xpath=/matrixProject/build[action/parameter[name="ghprbPullId"+and+value="${PULL_REQUEST_ID}"]][1]/number/text()&wrapper=result

Jenkins おじさん向けの超ニッチ情報でした。