東京マルイ M3ショーティー エアーショットガン・エアーガン 対象年令18才以上 e2075zeni21663-サバゲー、ミリタリー

クラウンモデル エアーコッキングボルトアクションライフル タイプ96 シニア フルセット NITRO.vo 東京マルイ MP5用 Keymod キーモッドハンドガード

東京マルイ M3ショーティー エアーショットガン・エアーガン 対象年令18才以上 e2075zeni21663-サバゲー、ミリタリー

Top page  1/40
東京マルイ M&P 9L PCポーテッド ガスブローバック ガスガン ミリタリー サバゲー 装備タナカ ガスガン ルガー P08 4インチ HW トグルアクション | TANAKA ハンドガン ピストル ガス銃 18才以上用 18歳以上用【店内全品2%OFF!】S&T G36C IDZ R.A.S 電動ブローバック FDE【180日間安心保証つき】

東京マルイ M3ショーティー エアーショットガン・エアーガン 対象年令18才以上
追記、Issue送ったらLaravel 6.1.0で修正されました。バージョンアップでOKです(^-^)

今月頭に新しい長期サポート版 (LTS) となるLaravel 6.0がリリースされたわけだが、やったー!LTSだー!と飛びついたら一個だけバグっぽい現象に遭遇したので対処法書いとく。発生したのはバージョン6.0.3。

現象としては、Laravel 6.0にアップグレードした後に、次のような例外が発生するというもの(以下エラーログから抜粋)。
しかし5.8の時は動いていたのに何故?と思いLogManagerを見てみたところ、Laravel 5.8→6.0でMonolog 2.0が入ってくるようになった結果バグったようだ。
具体的には、Monolog 1.xの頃はタナカ モデルガン S&W M29 パフォーマンスセンター フラットサイド 3インチ HW Ver.2にsetFormatter()があったのだが、2.0ではそれがマルシン ガスガン モーゼルM712 ノーマルバレル HW マルシン工業 MARUSHIN ヘビーウエイト ハンドガン ピストル ガス銃に分離されたようで、後者を継承していないハンドラーを使うとエラーになってしまう様子。
今回使用していたNullHandlerは、HandlerInterfaceだけを実装するダミーのハンドラーだったので、その条件に該当していた。

Laravelの単純バグな気がするので、すぐに修正されると思われるが、今回はとりあえず以下のようにsetFormatter()付きのNullHandlerを定義してそれで回避した。
上記以外は今のところこれといった問題も無く、各種ライブラリの対応も進んできたので、無事6.0に移行できそうである。
5.5も5.8も来年にはサポートが終わってしまうため、以降する方はお早めに。

Tag: MAGPUL PMAG10 GL9 G19 9x19 タナカワークス S&W M29 カウンターボアード HW ブラック 6.5インチ ガスガン リボルバー 本体

G&P フラッシュライト&バーティカルフォアグリップ (A)東京マルイ 電動コンパクトマシンガン マック10(フルセット)

『新品即納』{MIL}マルシン工業 金属製モデルガン コルト・SAA45・STAGECOACH(駅馬車モデル) ウォールナット木製グリップ仕様 組立キット(2017年新価格版)

またASP.NET Coreネタ。今度はASP.NET Coreの自動テストで、APIレベルのテスト (統合テスト, Integration tests) を行う方法について。バージョンは引き続き2.1。

統合テストの方法については、公式ドキュメントにも以下のように説明がある。
が、いろいろ説明が冗長だったり、かと思えば足りなかったりと、最初にこれだけ見ても正直分かり辛い。
なので、実際に統合テストを行うのに必要な要点とかをまとめてみる。
(最終的なテストの実装例はGR4 100Y Plastic Blow Back Folding 電動ガン G&G参照。)

東京マルイ ガスブローバック コルトガバメント マークIV シリーズ'70 18才以上用

まずテストプロジェクトの作成。Visual Studioで、公式のサンプルに合わせてxUnit.netのテストプロジェクトを作る。
(ただし、統合テストの仕組み自体はテストライブラリによらず共通と思われる。)

作成したプロジェクトでは、csprojファイルの冒頭をに差し替え、かつNuGetなりで以下のライブラリを参照している状態にする。
あと当然テスト対象のプロジェクトも参照する。
ここまでは普通のテストプロジェクトを作る場合とほぼ同じだと思う。

GunsModify  スライド 東京マルイG19用 Glock19 GM0377

ASP.NET Coreの統合テストには、2.1から 送料無料 東京マルイ スタンダード電動ガン AK47 世界で最も流通しているソビエトの名器 というクラスが用意されている。
これにジェネリックでテスト対象プロジェクトの KATO Nゲージ 205系 3100番台 仙石線シングルアームパンタ 4両セット 10-294 鉄道模型 電車 クラスを指定すると、そのStartupを使ってテスト用のサーバーが立ち上がり、そこにリクエストを投げられるようになる。
単にAPIを呼ぶだけで良いのであれば、これを直接そのまま使うこともできる。

Tag: ASP.NET マルシン ガスガン スーパーブラックホーク 7.5in ブラックHW 木製グリップ 新型6mmXカートリッジ

KATO Nゲージ 883系 ソニック リニューアル車 7両セット 10-288 鉄道模型 電車マイクロエース Nゲージ 小田急ロマンスカー60000形 MSE 改良品 増結4両セット A7573 鉄道模型 電車
S&W 442 CENTENNIAL Airweight 2in Nickel ガスガン タナカ製 - お取り寄せ品 【ガスガン】東京マルイ コルトガバメント マークIVシリーズ70 ホルスターセット

【店内全品2%OFF!】東京マルイ ガスハンドガン  デザートイーグル.50AE 10インチバレル

ASP.NET Coreネタ。ASP.NET Coreでは標準のロガーがあるが、そのままだとファイル出力ができないらしく、別途ライブラリを組み合わせるのが定番らしい(?)。
で、有名どころの「Serilog」を使ったのだが、ログを種類別に違うファイルに出力しようとしたら、ちょっと手間取ったので方法を書いておく。例によってStack Overflow等を参考にした。
最初に出来上がった設定を書いてしまうと、こんな感じ(使用例は『中古即納』{MIL}VFC/UMAREX ガスアサルトライフル HK416C GBBR(2.5953X) (18歳以上専用)(20130930))。
RWA RAINIER Arms ハンドガード 12.37inch。コードで設定する場合は同名のメソッドなどに読み替えてください。

ASP.NET Coreではロガー使用時に呼び出し元クラスを紐づけるものらしい(?)ので、そのクラス名でフィルタリングを行い、フィルタリングした結果をそれぞれのログファイルに出力している。
上の例では、AccessLogMiddleware のログを access.log ファイルに、EntityFrameworkCoreが出力するSQLログなどを sql.log ファイルに、それらを除外した残るログを app.log ファイルに出力している。
設定の構造的には、外側のロガーの設定の中に、Include/Excludeの設定をしたサブロガーがある形となっている。

クラスで分けられないケースは条件をもっと工夫する必要がありそうだけど、とりあえずこういう形で出力先を分けられますということで。

Tag: 東京マルイ ガスブローバック HK45 89式 スパイナルレイルハンドガード 東京マルイ電動ガンパーツ 4560329170403

エアガン 東京マルイ ハンドガン ガスブローバック GLOCK 34 ハンドガン 日本製 42696 G34 グロック (18ghm)

『中古即納』{MIL}東京マルイ 完全限定品 ガスブローバック センチネルネイン レオンモデル (18歳以上専用)(20150101) 引き続きASP.NET Coreネタ。ASP.NET Coreは標準でDIに対応しているのだが、標準のモノは何故か手動での依存関係登録が必須という面倒くさい仕組みになっている。
が、これを半分自動化して、クラス名やらのルールに基づいて一括制御できる「Williams By Bachmann 黄 Pine Lumber Company O Scale Operating Log Dump Car」というライブラリがあったので、それを紹介する。
(実は公式ドキュメントの端っこでも少し紹介されてはいるのだが、自分は最初全然見つけられなかったので。)

まず、見つけた中で一番詳しい解説ページはこちら。以下の解説もベースはこちら。
ScrutorはDIライブラリではなく標準DIの依存関係登録に特化したライブラリとのこと。
なので、DIライブラリを丸々差し替えたりせず、あくまで標準ライブラリを使って開発が行えるのがメリット。

Scrutorを使ったDIの例はこんな感じ。Startup.cs の ConfigureServices() での依存関係登録がこういう風になる(使用例はガスブローバック サムライエッジ スタンダード モデル)。
上記は大体メソッド名のまんまだが、解説すると実行元のアセンブリ(つまり自プロジェクト)にある XxxRepository または XxxService を、Scopedのライフサイクルで一括登録している。
AsSelfWithInterfaces() はクラスの実体とインタフェース双方をDIに登録する奴。

これはかなりシンプルな例だが、解説ページを見ると分かるように、他にも外部のアセンブリを見たり、インタフェースを目印に探したり、名前空間で絞ったり、重複時の動作を変えたり…といろいろ設定できる様子。

実際の現場では、この例のようにクラス名などで絞り込めることが多いので、この仕組みで十分実用的だと思う。
(一部例外的な奴だけ手動で登録すればいいのだし。)
クラスが増えるたびに手で全部登録するのは流石に非効率的すぎるので、こういうのを使って効率化していきたい。

Tag: Streamlight TLR-7タイプ ウエポンライト BK ブラック 高輝度 小型 コンパクト 20mmレイル ハンドガンにも G19用 レプリカ【店内全品2%OFF!】S&T スターリング 電動ガン【180日間安心保証つき】東京マルイ HK45 電動ハンドガン バッテリー 充電器 フルセット 【店内全品2%OFF!】UFC-SC-50BK 4×32 R/G トリプルレール スコープ BK

ガスドライブポップアップターゲット「シャキットマン」スターターセット

ASP.NET Coreネタ二個目。ASP.NET Core標準のユーザー認証(?)のASP.NET Core Identityは、勝手にユーザーテーブルとか作ってくれるわけだが、ちょっと古いMySQLのutf8mb4データベースだと、自動生成されるテーブル定義が有名な『新品即納』{MIL}サイトロンジャパン TR-X 1.25-4.5×24IR CQB ショートスコープ(20161116)エアガン コッキングライフル ボルトアクション Type96 タイプ96 ジュニア スコープ付き」に引っかかってしまってマイグレーションエラーになる。

一応解説すると、この問題はMySQL (InnoDB) のインデックスが貼れる列の最大値が通常767バイトなので、utf8mb4だと VARCHAR(191) を超えるとエラーになるという話。自動生成されるテーブルは、列が VARCHAR(255) なのでアウトである。

最新のMySQLなら最大値が上がってて大丈夫とかそういう話もあるけど、今回はアプリ側で列サイズを191文字まで削って対応しようとした。
が、自動生成のテーブルはEntityクラスが無いので、いつものアノテーションでは列サイズが設定できない。
どうしようかと思ったら、Fluent APIなら普通に自動生成のテーブルもカスタマイズできたのでそれで対応した。
こんな感じ。Entityを継承して使っている場合はそちらを指定する。

なお注意点として、Eメールは仕様上254文字までありえるらしいので、こうやって削ってしまうと、正しいメールアドレスなのに使えない人が出るかもしれない(あんま居ないと思うけど)。
もしきちんとやるなら、MySQLのバージョンを上げるとか設定を変えるとか、またはそもそもEメールはASCIIで十分な筈なので列の文字コードだけ変えるとか、そういう対応をした方がよさそう。

Tag: ASP.NET NITRO.Vo KRISS VECTOR クリスベクター キーモッド レイルハンドガード M 『中古即納』{MIL}MGC 発火モデルガン ガバメント コンバット カスタム(20150223)

E&L AIRSOFT AK-105 マルゼン FIXED スライド ガスガン P99 スペシャルフォース