5月 072019
 

HTTP/2 理解メモ同様に、自作プロキシ (Nekoxy2) で実装した際の HPACK (RFC7541) への自分なりの理解をまとめたものです。
解説とかは他サイトのほうが良いかと。

HPACK は RFC の Appendix に具体例がたくさん載っているので、分からなくなったらそこを眺めると良いでしょう。

※RFC7541 ではバイト数は厳密に「オクテット数」と表現されているが、ここではバイト数とオクテット数は同じ意味とする

Continue reading »

4月 262019
 

自作プロキシ (Nekoxy2) の HTTP/2 (RFC7540) 対応にあたっての私なりの理解をまとめました。
HTTP/2 の解説自体は他サイトのほうがわかりやすかったり正確だったりすると思うので、あくまでも参考程度に。

RFC においては SHOULD とか MUST とかの違いは重要ですが、ここに書くの面倒なので必要に応じて調べましょう。

HPACK(RFC7541) については RFC も別だし長いし記事を分けます。
HPACK 理解メモ – CAT EARS

Continue reading »

4月 192019
 

英語版(ndp48-devpack-enu.exe とか)を入れれば直る。

各国語版は Language Pack でしかない。
にも関わらず、少なくとも .NET Framework 4.8 時点ではブラウザの言語設定を見て勝手に言語選択されて Language Pack (ndp48-devpack-jpn.exe とか)がダウンロードされてしまう。
ので一旦ブラウザの言語設定を英語にし、英語版をダウンロードしましょう。

4月 152019
 

Azure AD のカスタムドメインを追加しようとしたところ、指定の TXT レコードを登録してもどうしても検証が通らなかった。

詳細を見たところ、セルフサービス サインアップとやらが怪しい……

調べてみたところ、どうやら Office 365 等でメールアドレスを使ってサインアップした際、当該ドメインの組織が存在しない場合は非管理テナントとかいう管理者が存在しないテナント/ディレクトリが勝手に作成されてしまうらしい。

セルフサービス サインアップで登録されたドメインの対処方法 – Exchange ブログ JAPAN

この非管理テナントが存在する限り、Azure AD にそのドメインを登録することができない。

↑のブログに従い、Office 365 管理センターから非管理テナントの管理権限を奪取。
その後セルフサービス サインアップで作成されたユーザーの UPN を変更するなどして登録したいドメインを抹消。
そして無事に Azure AD にカスタムドメインを設定できましたとさ。

※このようなことが起きるため、会社メアドなどで勝手に MS サービスにセルフサービス サインアップすることは禁止すべきらしい。

10月 182017
 

※TCP は詳しくないので間違いあるかも

発生していた問題

  • 2017/10/17のDMMメンテ後、Nekoxy を通した通信で osapi.dmm.com サーバーだけが応答しなくなった
    • 他のサーバーは問題ない
  • Nekoxy が利用している TrotiNet 単体でも発生する
  • 上流に Fiddler 等のプロキシを挟むと発生しない

影響

  • Nekoxy を利用していたアプリケーション全般で DMM のゲーム等ができなくなっていたかと
    • 提督業も忙しい!
    • 七四式電子観測儀
    • 回転母港
      など

何故発生するのか

  • osapi.dmm.com が複数の TCP パケットに分割された HTTP リクエストを正常に受け取ってくれないため
    • 上流に別のプロキシを挟むと、上流プロキシが Nekoxy に代わってサーバーと TCP おしゃべりするため、その実装がこの問題に触れていなければ通信障害は発生しない

Continue reading »

5月 242016
 

UWPのデバッグ実行になぜか失敗するので、slnフォルダをDドライブからCドライブに移動したら解決した件 – 銀の光と碧い空 とよく似た話です。

環境

  • Visual Studio Enterprise 2015 Update 2 (14.0.25123.00)
  • Windows 10 Pro (10586.318)

現象

なんとなく適当に作った UWP アプリをデバッグ実行しようとしたら、配置時に謎エラーで失敗するという事件がありました。

uwpdeployerrorDEP0700

2>------ 配置開始: プロジェクト:App1, 構成:Debug x86 ------
2>レイアウトを更新しています...
2>レイアウトにファイル (合計 1 MB 未満) をコピーしています...
2>必要なフレームワークがインストールされているかどうかを確認しています...
2>アプリケーションをレイアウトから実行するように登録しています...
2>DEP0700 : アプリケーションの登録に失敗しました。 (0x80073cfd)
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
========== 配置: 0 正常終了、1 失敗、0 スキップ ==========

謎エラーすぎる……

回避策

そういえばソリューションの場所は C ドライブじゃないとダメなことがあるという話を聞いたことがあるなぁと思い出し、とりあえず C ドライブに移動してみたところ、配置に成功。。

2>------ 配置開始: プロジェクト:App1, 構成:Debug x86 ------
2>レイアウトを更新しています...
2>レイアウトにファイル (合計 1 MB 未満) をコピーしています...
2>必要なフレームワークがインストールされているかどうかを確認しています...
2>アプリケーションをレイアウトから実行するように登録しています...
2>配置が完了しました (0:00:00.808)。完全パッケージ名:"849f1e2c-968a-4b2b-89be-d96d35be59ea_1.0.0.0_x86__mwdbezcnebgk4"
========== ビルド: 1 正常終了、0 失敗、0 更新不要、0 スキップ ==========
========== 配置: 1 正常終了、0 失敗、0 スキップ ==========

イミガワカラナイ……

9月 032015
 

条件をよく忘れるのでメモ。

条件

  • ItemsPanelVirtualizingPanel であること
    • だいたい VirtualizingStackPanel
  • VirtualizingPanel.IsVirtualizingTrue (既定値) であること
  • ScrollViewer.CanContentScrollTrue であること
    • 既定値は False
  • グループ化してる場合は VirtualizingPanel.IsVirtualizingWhenGroupingTrue

ListView なんかは初めから仮想化有効だけど、Template 弄る時なんかに無効化されてしまったりするので注意

既定値が気に食わないやつとか

  • VirtualizingPanel.VirtualizationModeRecycling
    • 使いまわしたほうがパフォーマンス良い
  • VirtualizingPanel.ScrollUnitPixel
    • 既定値の Item はスクロールしてる感乏しい
    • タッチだとカクカクしてなおさらキモい

サンプル

[xml]




















[/xml]