ゆかりすたーをリニューアル公開

Meteorゆかりすたーをリニューアルし、ゆかりすたー METEOR として、Ver 1.06 α を公開しました。

ゆかりすたー METEOR(メテオ)はニコカラ動画ファイルを整理し、「ゆかり」(持ち込みカラオケ用のブラウザリクエストツール)から検索できるようにするツールです。データベースを活用することにより、タイアップしている番組名や歌手名などの付加情報を含めて整理するので、単なるファイル名検索にとどまらない高い検索性を提供することができるようになります。

ゆかりすたー METEOR は、ニコカラりすたーの後継ソフトとして開発しています。ニコカラりすたーは一時点でのリスト化機能のみを提供していましたが、ゆかりすたー METEOR は、ゆかりと連携した高度な検索性の提供を目的に、リアルタイムでのリスト化機能と検索用データベース構築機能を提供します。

更新内容

外観にマテリアルデザインを採用しました。

出力するゆかり用リストがゆかりの新仕様に対応しました。リストから曲リクエストをする際の必要クリック数が減少しています。

ゆかり検索対象フォルダーを追加した際、今まではサブフォルダーもすべて開いた状態で表示していましたが、今回より、親フォルダーのみを表示するようにしました。サブフォルダーを見たい場合は、フォルダーの左側をクリックすることで展開されます。

その他、細かい改善をしています。今回の更新内容を含む課題対応履歴についてはこちらをご覧ください。

Windows Defender について

Windows Defender がゆかりすたーの動作に悪影響を及ぼす場合があり、エラーが発生したり、処理速度が異常に遅くなったりする例が報告されています。

ゆかりすたーを使う際は、Windows Defender を使わないことをお薦めします。

詳細についてはこちらをご覧ください。

更新・新規インストール方法

ゆかりすたー(初代)およびゆかりすたー METEOR(以降、ゆかりすたーシリーズ)は自動更新機能を搭載しています。既にゆかりすたーシリーズをお使いの方は、ゆかりすたーシリーズを起動すると、3 日以内に更新のアナウンスが表示されます。

すぐにアップデートしたい場合は、環境設定ウィンドウのメンテナンスタブを開き、「今すぐ最新情報を確認する」ボタンをクリックすることで、アップデートを開始することができます。

Ver150to168右のようなダイアログが表示されますので、「はい。今すぐ更新します」をクリックしてください。

ゆかりすたー更新版インストール画面に案内が表示されますので、案内に従って操作をして下さい。

ゆかりすたー更新完了ほどなくして、ゆかりすたー METEOR の更新が完了します。

これから初めてゆかりすたー METEOR を使う方(新規の方)や、手動でゆかりすたー METEOR を更新したい方は、下記サイトからどうぞ。

旧作について

ニコカラりすたーおよびゆかりすたー(初代)は開発を終了しました。

今後はゆかりすたー METEOR をご利用下さい。

ゆかりすたーリニューアル作業中

動画ファイルリスト化ツール「ゆかりすたー」をリニューアル中。

画面デザインを今風にアップグレード。

見た目以外の部分では(というかこちらが本命なのだが)、使用しているフレームワークを WinForm から WPF (Windows Presentation Foundation) に変更。将来的な拡張への基礎としている。

YukaLister


次のパソコンを軽くイメージ その 2(2019 年)

この前イメージした次のパソコンを少し修正。

ストレージの考え方を修正。前回は作業用ディスクとして RAM ディスクを用いることを前提にメモリを増やしたが、今回は RAM ディスクを廃して Optane SSD とする方針に変更。

というのも、作業用ディスクに無圧縮 AVI を出力することを想定した場合、フル HD、60 fps だと音声込みで 1 分当たり 21 GB 必要となり、6 分の動画で 126 GBも必要となってしまう。メモリでは賄いきれないため、速度と耐久性を兼ね備えた Optane SSD を選択。

Optane の容量は、以前に調査した C ドライブ必要量 100 GB に加えて、動画出力 126 GB となると、最低でも 250 GB は必要。

Optane は速度の速い 905P シリーズが良いが、低容量は U.2 接続しかないので(U.2 → M.2 変換はそこがボトルネックになると嫌なので避ける)、速度のやや遅い 900P シリーズで妥協する。

また、一応 Blu-ray も付けることとした。

というあたりを、BTO で見積もってみた。さすがに Optane は選べなかったので、別途購入ということにする。

サイコム:Radiant GZ2800Z390 基本部分 144,960 円(送料別)

V-SPEC:第 8/9 世代 ATX スタンダード 基本部分 165,090 円(送料別)


本体

詳細はサイコムベース。
パーツ型番想定価格(税込み)
名称次期メインマシンイメージ その 2(2019 年)
304,960 円
基本部分サイコム Radiant GZ2800Z390
144,960 円
マザーボードASRock Z390 Pro4
- 円
CPUIntel Core i9-9900K- 円
CPU クーラーCoolerMaster Hyper 212EVO
- 円
セラミックグリスCPU 付属品- 円
メモリ16 GB- 円
SSDOptane SSD 900P 480 GB HHHL
80,000 円
SSDSATA 4TB
80,000 円
マウンタSSD 付属品0 円
光学ドライブ
(Blu-ray)
LG BH14NS58
- 円
ビデオカードオンボード
- 円
LANオンボード
- 円
ケースFractal Design CORE 2550S Black- 円
電源SilverStone SST-ET550-B(80PLUS Bronze)
- 円

周辺機器

周辺機器は前回から変更無し。
パーツ型番想定価格(税込み)
RAID ユニットWestern Digital My Book Duo WDBLWE0080JCH-JESN(流用)
※8TB、RAID 1 の運用で実効 4TB
※USB 3.0 接続
0 円
サウンドカードCreative Sound Blaster Digital Music Premium HD (SB-DM-PHD)(流用)
※USB 接続
0 円
スピーカーONKYO WAVIO GX-70HD(流用)
0 円
オーディオレシーバーONKYO WR-BT300(流用)
※Bluetooth で音声を受信してスピーカーに流す
0 円
ディスプレイ21.5 インチワイド液晶、IO DATA LCD-MF223XS(流用)
※HDMI 接続
0 円
ゲームコントローラーLogicool F310r(流用)0 円





C# で extended-length パス

Windows ではパスの長さは MAX_PATH(260)文字までということになっていて、C#(というか .NET Framework)のファイル系ライブラリも昔は 260 文字までのパスしか使えなかった。

260 文字を超えるとても長いパスを扱えるようにするのが extended-length パスで、単純に、通常のパスの先頭に "\\?\" を付与するだけで良い。

使い方


NET462extended-length パスは .NET Framework 4.6.2 でサポートされたので、プロジェクトのプロパティーでターゲットフレームワークを .NET Framework 4.6.2 以上にしたうえで、以下のコードを実行すると、正しく結果が得られる。

const String EXTENDED_LENGTH_PATH_PREFIX = @"\\?\";
String aPath = EXTENDED_LENGTH_PATH_PREFIX + @"C:\Tmp\とても長いパス\123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789A123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890B\1234567890123456789Z\1234567890123456789Y\VeryVeryLongPath";
MessageBox.Show("Len: " + aPath.Length.ToString() + "\nExists: " + Directory.Exists(aPath).ToString());

"\\?\" を付与しないと、フォルダーが存在する場合でも False が返されてしまう。

互換性

ターゲットフレームワークを .NET Framework 4.6.2 とすると動作する環境が限られてしまう。

.NET Framework 4.6.2 未満の環境でも、extended-length パスはサポートされないにしても、短いパスである限りは動くようにしたい場合は、ターゲットフレームワークを例えば .NET Framework 4.5 としたうえで、まず App.config の <runtime> に <AppContextSwitchOverrides> を追加する。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
  </startup>
  <runtime>
    <AppContextSwitchOverrides value="Switch.System.IO.UseLegacyPathHandling=false;Switch.System.IO.BlockLongPaths=false"/>
  </runtime>
</configuration>

実行時に .NET のバージョンを確認し、4.6.2 以上であれば extended-length パスを使うようにする。
private Boolean GetClrVersionRegistryNumber(out Int32 oClrVersion)
{
    using (RegistryKey aKey = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry32).OpenSubKey(@"SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\"))
    {
        if (aKey != null && aKey.GetValue("Release") != null)
        {
            oClrVersion = (Int32)aKey.GetValue("Release");
            return true;
        }
        else
        {
            oClrVersion = 0;
            return false;
        }
    }
}

private Boolean Is462()
{
    Int32 aClrVer;
    GetClrVersionRegistryNumber(out aClrVer);
    return aClrVer >= 394802;
}

private String ExtendPath(String oPath)
{
    // extended-length パスが使えない環境や、既に extended-length パスになっている場合はそのまま返る
    if (!Is462() || oPath.StartsWith(EXTENDED_LENGTH_PATH_PREFIX))
    {
        return oPath;
    }

    // extended-length パスにする
    // MAX_PATH 文字以上のフォルダー名をダイアログから取得した場合など、短いファイル名形式になっていることがあるため、
    // Path.GetFullPath() で長いファイル名形式に変換する
    return EXTENDED_LENGTH_PATH_PREFIX + Path.GetFullPath(oPath);
}

private void button1_Click(object sender, EventArgs e)
{
    try
    {
        String aPath = ExtendPath(@"C:\Tmp\短いパス");
        //String aPath = ExtendPath(@"C:\Tmp\とても長いパス\123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789A123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890B\1234567890123456789Z\1234567890123456789Y\VeryVeryLongPath");
        MessageBox.Show("4.6.2 or higher: " + Is462().ToString() + "\nLen: " + aPath.Length.ToString() + "\nExists: " + Directory.Exists(aPath).ToString());
    }
    catch (Exception oExcep)
    {
        MessageBox.Show(oExcep.Message);
    }
}

このようにすると、.NET 4.6.2 以上の環境で動作させると長いパス含めて正しく動作するし、.NET 4.6.2 未満の環境では長いパスは動作しないが短いパスなら動作する。


Intel Optane SSD メモ

インテルの Optane SSD のメモ。

Optane SSD は通常の NAND NVMe SSD と比べて、ベンチマーク上の速度は
  • ランダムリード:6~7 倍高速
  • ランダムライト:1.2~2 倍高速
  • シーケンシャルリード:やや遅い
  • シーケンシャルライト:1.5 倍高速
となっているが、実用上はそんなに変わらないらしい。

耐久性としては TBW が 8.76 PB と、NAND の優に 10 倍以上はある。

ラインナップは 2017 Q4 発売の 900P シリーズと 2018 年 Q2 発売の 905P シリーズ。905P のほうが多少高速かつ省電力。インターフェースはいずれも PCIe NVMe 3.0 x4 だが、フォームファクターはシリーズと容量によって異なる。
  • 905P:960 GB(HHHL / 17 万円)、480 GB(U.2 / 8 万円)
  • 900P:480 GB(HHHL / 8 万円)、280 GB(HHHL or U.2 / 5 万円)
【参考リンク】
カウンター


カンパのお願い
Amazon でお買い物の際は、下記で検索して頂けたら幸いです。
記事検索
最新コメント
  • ライブドアブログ