技術書典6の感想など

技術書典6に本を出す側で無事に参加出来たので、今回もその感想を残しておこうと思います。技術書典への頒布側での参加は2度目となります。
前回は、疲れと解放感から感想まとめまでが時間が掛かっていたのですが、今回は後処理で色々と作業をしていて遅れました。

頒布内容の紹介は別ページを参照ください。

やっぱり物理本はいい

今回も前回同様、物理的な本を出す、ということを重要視していました。但し今回は電子版の用意をしてみることにしました。
物理本の印刷関連は前回体験したので、今回のチャレンジは電子版のダウンロードカードをどうするか、といったところでした。

サークル:すらりんラボが採った方法は以下の2つです。

  • 対面電書でのコード発行
  • BOOTHでのパスワードzipの配布

ここまで準備して挑んだのですが、電子版単体としては売れ行きは今ひとつでした。きっと技術書典という場所も関係しているのでしょう、圧倒的に物理本に人気がありました。
物理本が無くなってから、仕方なく電子版で妥協という方も居たのではないかと思います。

ダウンロードカードですが、安価な価格設定でバリアブル印刷可能なところを見つけるのが大変ですね。
シリアルコードを自分のプリンタでシールラベル印刷して、カードに貼る形式も最悪ケースで考えていましたが、色々と考えると BOOTH でのパスワード zip の配布が一番手軽だと思います。
手軽な方法が採れるということは、コストを抑えられるので物理本のオプションで電子版を付けられる!ということにも繋がります。今回バリアブル印刷でコストを掛けてしまったため、別料金を頂く形になってしまいました。これがさらに問題に繋がったわけですが・・・後ほど。

続きを読む


VisualStudio2019 オフラインインストール準備

Visual Studio 2019 が公開されました!
とりあえずインストールをと思いつつも、今は時間がないのでオフラインインストール出来るように仕掛けてみました。

Visual Studio 2019 のインストーラーファイルを取得した後で、コマンドラインで、 “vs_professional.exe –layout D:\VS2019Ja –lang ja-JP” と打ち込んでファイルを収集させてみました。
この方法は従来通りで変わっておらず、うまく動き出しているようです。


技術書典6に向けて追い込み中です

今週の初めに告知したように、技術書典6へ参加してきます。
DirectX12 や Vulkan の入門書籍を今回は用意しました。
一緒に参加する相棒は3Dオーディオ入門という書籍を書き上げてくれました。

・・・というより、みんな最後の締め間際の追い込み作業中です。

すらりんラボは技術書典6に参加します

なかなかブログ更新出来ていない点がありますが、その分これらの冊子に力を入れたので、是非見てもらえたらと思います。


RDPでGraphicsAPIは実行出来るか実験

前回、RDP で OpenGL アプリを起動させる方法を考えましたが、そもそも他のグラフィックスAPIではどうなのか、気になってきたので調べてみました。

RDP で動作するか?

  • OpenGL : 動作しない
  • DirectX11 : 動作する
  • DirectX12 : 動作する
  • Vulkan : 動作する

まさかの OpenGL だけが動作しないという状況だったようです。確認したのは、2台とも Windows10 1809 の環境で、デスクトップPCとノートPCという構成でした。
低レイヤーグラフィックスAPIのDirectX12/Vulkan らが RDP 経由でも使えたという点で驚きました。画面を単なる画像として送るなら、これらの動作に納得もあるのですが、かつては DirectX9 や OpenGL がリモートデスクトップ環境下で動かなかった時代を味わったために動作しないという思い込みがあったようです。

プログラムコードで考えてみると、デバイスコンテキストが不要な API だと動作しているようですね。あとは、画面ロック・UACの暗転でいわゆるデバイスロストが発生しない時代になってきたから、というのもありそうです。


リモートデスクトップで OpenGL アプリを操作したい

Windows のリモートデスクトップで OpenGL を使用したアプリケーションの起動は出来ないことは、経験上知っていたのですが、OpenGL アプリを起動した状態で、リモートデスクトップ接続すると問題なくアプリが使用できる、という話を聞きました。

RDP接続後にOpenGLアプリを起動したい

事前にOpenGLアプリを起動した状態で、他の端末から RDP で接続すれば問題なくアプリは操作できますが、事前に起動しておくことが不可能な時もあります。
また、アプリケーションを終了してしまって、再度起動したいということもあると思います。

このようなときには、 tscon コマンドを使うとよいようです。
このコマンドを用いるとセッションを切り替えることができるようなので、一度物理的なコンソールを持つセッションに切り替えてアプリケーションの起動をする、という方法が使えます。このときに、一度リモートデスクトップは切断されてしまいますが、再接続すればアプリケーションが起動した状態から再開できます。

アプリケーションの起動をするまでを次のような内容でバッチファイルにして、起動する際にはこのバッチファイルを実行するようにします。

実行する際には、管理者権限ありのコマンドプロンプトで実行してうまくいきました。一般権限のコマンドプロンプトだと、このままのバッチではうまく動作しない可能性があります。

他にもセッションのIDが必要な場面では、 “query session” を実行してみて、どのようなセッションが生きているかを見てみるのもよさそうに思います。


VisualStudio の HLSL テンプレートがおかしい その2

以前に、 VisualStudio の HLSL テンプレートがおかしい として、修正したシェーダー用のプロジェクトテンプレートですが、 Visual Studio 2017 の更新をしたら、また妙な状況になってしまったようです。
もしかすると、先の手作業の修正が引き金で新規にインストールした場合には、おかしな構造ながらも正常に動くのかもしれません。

続きを読む


Visual Studio Graphics Debugger の終了

Windows 10 October 2018 Update (1809) で、 Visual Studio 2017 の Graphics Debugger が正常に動かなくなりました。最近は Vulkan を勉強していることが多く、 VS の Graphics Debugger は使っていませんでした。再び D3D12 の勉強を再開した今日、この問題を発見しました。

最初は、今の D3D12 のために、色々と新しいインターフェースを使ったのが問題で失敗したのだろうと考えていたのですが、どうやらそうではないようです。
仕様として 1809 バージョンの上では VS 付属 Graphics Debugger は使えないということになったようです。

続きを読む


読書

年末年始には久しぶりに本を買いました。
まだざっとしか読んではいないのですがアタリでした。

近年はゲームエンジンがゲーム作成(プログラミング)の主流となりつつあるので、C++で組んでいく方は随分と敷居が高いものになっている気がします。
そのせいもあってか、書籍の形で出版されることは無くなってしまったと思っていたので、出てきたことに嬉しく思いました。
内容の方も十分で、これから勉強をするのにもよいなと思います。

1つ興味深い点としては、ゲームエンジンでよくあるコンポーネントシステム型のやり方で C++ にてエンジンをくみ上げていくのが面白いです。
昨年秋の技術書典では当サークルでは C++ を使っての、割とコンポーネントシステム型を意識したシステム作りの本も出していました。

C++で挑む 2Dアニメーションシステム制作演習 (BOOTHへの商品リンク)

ゲームプログラミングC++が人気のある書籍になってくれれば、まだまだC++でやれる!ということと、コンポーネントシステム型の開発は間違いではない(むしろアタリ)という自信にもなるので、期待しています。

そして積み本となったのが、ドラゴンクエストXを支える技術 です。一緒に買ったのですが、読む時間が取れずでした・・・。


GitLab on Docker の続き

少し前に GitLab を Docker で構築する記事を書いたのですが、既に現状のものと合っていないことがわかりました。
しかも、以前の手順のままでは動作する環境が限られてしまう感じでした。

なにが変わったか

SSL のために、 Let’s Encrypt を使用するようになったようです。
公開されるサービスで、そのサーバーが外と直接つながっているような場合には問題にならないでしょう。

しかし、Let’s Encrypt と通信できないような状況下では構築に失敗してしまいます。

新しい構築手順

以前の手順通りに、 docker-compose.yml を取得してきます。
そして、 SSL を使わないで構築するよう設定を書き換えます。
これには次のように編集します。

初期状態で SSH が有効だったので、 22番ポートのフォワーディングは変更しています。
見ての通り、 letsencrypt の設定を無効化としています。これにより、内部的に構築するようなものであっても docker-compose は成功すると思います。

自己証明書 SSL で使う

未検証ですが、let’s encrypt を無効化した状態で、手動で自己証明書を作成すればできそうな感じです。
hostname に設定した名前で、証明書のファイルを検索するような動きをみせていたので、 hoge.pem,crt,key などを /srv/gitlab/config/trusted-certs ディレクトリの中においたら認識してくれるのではと予想しています。


VMware Player の uEFI NTFS 対応

VMware Player は uEFI による起動に対応しています。
しかしながら読み込めるファイルシステムとして NTFS は標準対応していないようなので、これをなんとかしたいと思います。

uEFI の起動

VMware Player は BIOS による起動がデフォルトです(VMware Workstation 12 Player)。
これを uEFI での起動とさせるには、 仮想マシンの vmx ファイルに以下のように編集(追記)します。

この状態で、 FAT32 でフォーマットした USB メモリから Windows やら Linux やらを起動できると思います。

動機: NTFS への対応

最近、 Windows のインストールファイルが 4GB を超えつつあります。そうなると FAT32 では1ファイルの制限に引っかかってしまうので、 NTFS を使いたいところです。
幸いにして、自作PC 界隈の uEFI では NTFS が読めるものが多いようなので、 VMware Player でも使えるようになったらなぁというところでやってみます。

続きを読む