Clotho の偶感録

個人用メモを世界に垂れ流す。

あれから 7 ヶ月経ったけどまた GhostText のことやってる

Visual Studio Code の GhostText 拡張をいじる

ようやく懸念事項が片付いて,放置していたブログでも書くかなあといざブログ編集画面を開き Sublime Text 3 を起動しつつ GhostText のアイコンをポチってみたのだけれども,ここ最近は仕事で Visual Studio Code (以下 VS Code) を触ることが多くて気に入っていたので,Sublime から VS Code に環境を移行しようかなあということで自宅 Mac をたちあげポチポチやってみたところ,

GhostText と VS Code がつながらない (またか)。

www.kagura-c.info

まーブログ放置する直前の最後の記事でぶち当たった 「ポート使われちゃってる問題」 ふたたび,ですな。

あーそういえばポート変えなきゃなー知ってる知ってる,と VS Code の GhostText 拡張の設定を探し回ったところ……無い。

愕然として GhostText 拡張のページを見てみたら,GitHub へのリンクがあるのでしかたない GitHub 行きゃソースあんだろちょっと眺めるかー……と。

ハードコーディングしてあるぜ……。

しょうがない,自分で対応しますか。

調べてみたところ,VS Code の拡張を作るためには node.js とかあればいいらしい。

  • Visual Studio Code の GhostText 拡張をいじる
    • 前提
    • 拡張を作るための準備 (開発環境)
    • ghosttext-vscode リポジトリを開発環境にクローン
    • VS Code 拡張インストールファイルを作る
    • 作った拡張ファイルを VS Code にインストール
    • つかいかた
      • うまくいかないとき (私の場合)
        • 1. Enable GhostText してない
        • 3. キャッシュ残ってる
  • そういえば AdSense

前提

Git の知識と macOS の Terminal でいろいろできる知識が必要です。
(説明なんもしてない)

続きを読む

話題の詫びソースコードを眺めてみた

スマホゲームでのガチャの排出に関するトラブルなんてもう耳タコレベルの話題だとは思うんだけど,バンダイナムコゲームスの『ドラゴンボールZ ドッカンバトル』 で詫びソースコードが出てくる斬新な対応が目を引いたね。
(詫び石は配布済みみたいだよ)

当該ゲームには全く手を出してないんだけど,ソースコードの量がチラッと見てすぐに終わる感じなのでチラッと見て気になったことを記事にしてみた。

f:id:clotho_moirai:20171118103539p:plain

「ドラゴンボールZ ドッカンバトル」一部ガシャの「出現キャラ一覧」及び「出現キャラ提供割合」表示に関する不具合につきまして

というわけで今回はひたすら IT 系。

  • そもそもの問題
    • ソースコードをプレスリリースに出すとか
    • 公開範囲が足りん
    • というわけで
  • 詫びソースコード (前掲の記事から引用)
    • ダメなところ
      • コメントを付けるべし
      • 命名規約を詰めるべし
        • CardDatas 型
        • getMasterCardDatasByIds メソッド
        • exists 変数名
      • typedef したならそれ使うべし
      • typedef すべし
      • 名前空間を付けるべし
      • たいした話じゃない
    • いいところ
  • 気になること
  • おわり。
続きを読む

短信——煮詰まった

仕事忙しくてブログを纏める時間がないんですわー。
明日からの 3 連休はキャンプに行けるようにがんばる。

ところで煮詰まってるんでぶつくさ言わせて欲しい。

詳細は全てはしょるけど,ASP.NET MVC 4 の DataAnnotations で CompareAttribute をつけたモデルの検証で,検証失敗させても ErrorMessage に与えた文字列がブラウザに表示されなくて悩んでるんだよね。
リソースにしても変わらないし CompareAttribute のカスタムはほとんど 1 から作る感じっぽいし。どうしようかな。

Model はこんな感じ。

public class FugaViewModel
{
    [DataType(DataType.Password)]
    [Required(ErrorMessage = "パスは必須だよ")]
    [RegularExpression(@".{8,}", ErrorMessage = "8 文字以上入れなよ")]
    [Display(Name = "ぱすわーど")]
    public string Password { get; set; }
}

public class HogeViewModel : FugaViewModel
{
    [DataType(DataType.Password)]
    [Required(ErrorMessage = "確認用パスワード入れなよ")]
    [Compare("Password", ErrorMessage = "上とパスワード違うぞ")]
    [Display(Name = "ぱすわーど (確認)")]
    public string PasswordForConfirm { get; set; }
}

で,"ぱすわーど (確認)" 欄の内容が "ぱすわーど" と違うときは 「上とパスワード違うぞ」 ってエラー表示して欲しいんだけど,「'ぱすわーど (確認)' と 'ぱすわーど' が一致しません。」 っていうデフォルトのメッセージになるんだよね。

どうしたもんか。

低レベル・デバッグ


その昔は Windows のドライバーとかの開発に,Compuware 社の SoftICE を使ってたもんだけど,10 年くらい前に販売終了してしまった。
x64 とかドライバー署名とかマルチセッションとか,何か Vista 対応が困難な制限に引っかかったんだろうなーと想像はしてるんだけど,まーあの頃はあの頃で面白かった。

今どきは VMware Workstation + (シリアル接続) WinDbg ですな。
ネットワーク関係なけりゃ何となく遅いシリアルじゃなくて Ethernet 接続にするんだが,オフラインじゃないと追えないバグとかもあり得るしねー。
IEEE1394 とか USB 接続できそうなメニューが気になってる。しかし VMware 側の設定をどうするか調べないといけなくて手を付けてないのだ。シリアルでも VMware なら困らないレベルのレスポンスは出るんだよね。

WinDbg はコマンドいろいろ覚えなきゃいけないのが辛い。
"!analyze -v" とか "lm" くらいは覚えたけど "!wow64exts.sw" とかコマンドの存在自体忘れて 「ぎゃースタックこわれてるー」 とかやるし。
低レベルですみません。

www.vmware.com

Download the Windows Driver Kit (WDK) | Microsoft Docs