ただのメモ

開発で得た知識のアウトプット

【C++】「一つだけ必要な変数」の実装例を調べた

C++におけるプログラム中で実体が一つだけ必要な場合の実装例を調べてみました。特に、GitHubでStar数が多いものや開発が活発なものを対象としました。プログラムで共通した変数を参照するConfigやLoggerなどを想定しています。 ただ、グローバル変数とexter…

【meekrosoft/fff】 MSVCでWindows APIのフェイク関数を作ると多重定義となる (LNK2005)

先日からWindows APIを多く含んだC++プロジェクトのテストを書いています。その際、Windows APIのスタブ/モック用のフレームワークとしてfffを利用しています。 github.com しかし、READMEに沿ってWindows APIのフェイク関数を定義したところ、MinGW-w64では…

東プレ Realforce 91UDK-Gを静音化してみた

Realforceを静音化しただけの日記です。 3000円+膨大な作業量で、満足のいく静音化ができ、打ち感も最高になりました。 参考にしたサイトは、以下の通りです。 pasokatu.com www.mikantabenagara.com 実際に購入したOリングは、次のSilence-Xとかいう0.2mmで…

【Raspberry Pi 】SoftEther VPNとHTTPサーバを同居させて自分自身にアクセスする

Raspberry Pi(以下ラズパイ)をVPNサーバとして利用しつつ、自身のHTTPサーバにアクセスするための備忘録です。 VPNでローカルのHTTPサーバを見る 有線LANと無線LANがあるモデル どうしてもWi-Fiだけでやりたい 設定方法 SoftEther VPNのサーバをインストー…

Windows環境でwxWidgetsのインクルードやリンクが失敗する問題 (3.0.x, 3.1.x, Visual Studio 2019, MinGW)

今回はVisual Studio 2019でwxWidgets 3.0.5のビルドが失敗する問題と、MinGW-w64でwxWidgets 3.1.4のビルドが失敗する問題の対策です。 wxWidgets 3.0.5 + Visual Studio 2019 問題 対策 wxWidgets 3.1.4 + MinGW-w64 問題 対策 追記 素直にVisual Studioを…

GitHubリポジトリにSynopsys Coverity Scan Static Analysisのバッジをつける

C++

今回はGitHubのREADMEでよく見かけるCoverity Scanのバッジをつける流れのメモです。 ← コレ Synopsys Coverity Scan とは 今回利用するプロジェクト 手順 GitHubとの連携 プロジェクトの追加 解析 バッジを貼り付ける Synopsys Coverity Scan とは Coverity…

MinGWでUI Automationを使う (CMake, MinGW-w64, uiautomationclient.h)

C++のコンパイラを自由に選べる環境ならば、GNUのg++を利用したいと考えている人は少なくないかと思います。Windowsでは、MinGWやCygwinなどを利用することになると思いますが、付属されているWindows SDKが完全なモノとは限りません。今回は頻繁に利用され…

【VALORANT】無限ローディングの対処法

突然黒い画面になり、再起動後に次のようにロビー画面でフリーズしたので、その対処法です。 VALORANTは、チート防止のために多くの認証システムを導入しています。 Demolishing Wallhacks with VALORANT's Fog of War | Riot Games Technologyそのせいか分…

ラベルマップから二次元美少女イラストを生成する (SPADE pix2pix)

今回は、ピクセル上の位置情報から二次元美少女イラストを生成したのでその結果をまとめます。ソースコードは、GitHubで参照することができます。今は亡きChainerでの実装となります。 github.com モデルの概要 次の画像のようにSemanticなラベルと髪色の色…

GANを使ってデータセットを増やしたい【Semi-Supervised Anime Semantic Segmentation】

はじめに 事前知識 Semantic Segmentation DeepLab Atrous Convolution Atrous Spatial Pyramid Pooling (ASPP) 手法 概要 ネットワーク構成 損失関数 adversarial loss cross entropy loss semi-supervised loss Dilated FCNによる結果とその詳細 訓練済みR…

WebDNNでブラウザで動くGANを実装した話

本日は近年研究が盛んなGAN(Generative Adversarial Networks)をWebアプリにしてみようというだけです。 GANとは WebDNNとは WebDNNでConditional DCGANを実装 Python側の実装 JavaScript側の実装 実装結果 まとめ 参考文献 GANとは Generative Adversarial…

DropConnectを理解したかった

はじめに 全結合ネットワーク(No-Drop) Dropout DropConnect DropoutとDropConnectの比較 はじめに ディープラーニングを行う上で、過学習(overfitting)対策は欠かせません。実際にディープラーニングを行う際、データセットを訓練データ、検証データ、テ…

【iPhone】復元(初期化)後にアクティベートできない

本記事の内容は、知恵袋で同様の質問をし、自己解決した内容です。 そのまとめを詳細に記事にすることで、アクセス数を稼ごうという次第です。iPhoneの調子が悪く、バックアップをしたうえで初期化を行うというケースは少なくないと思います。その際、iPhone…

カラースキーム・テーマを他のテキストエディタ用に変換するツール【TeraPad, さくらエディタ対応】

C++

今回は、テキストエディタの色設定を相互変換できるツールの紹介です。C++の勉強の副産物として生まれたツールですので、TeraPadとさくらエディタにのみ対応しています。ソースコードはこちらです。 github.comGitHubのREADME.mdに実行方法がありますので、…

【C++】ofstreamでUTF-8 with BOMを出力する方法

C++

今回はC++の標準ライブラリのfstreamのwrite関数を用いた、バイトオーダーマーク(BOM)の付け方をご紹介します。 以前は標準ライブラリのcodecvtを利用することで変換できましたが、非常に分かりにくいうえ、C++17よりcodecvtは非推奨となっています。そこで…

【Qt】複数のウィジェットを含むカスタムウィジェットを作る方法

C++

今回は、Qtについての備忘録です。 前回と同様、学習のアウトプット目的で書いています。 ご指摘等ありましたら、コメントに書いていただけると幸いです。動作環境は以下の通りです。 【OS】Windows10 64bit 【CPU】Intel core i5-4590 【Qt】5.11.2 64-bit …

【Qt】CDBをデバッガとして利用する方法

C++

今回は、QtにCDBをデバッガとして設定する方法を解説します。Qtでデバッグ開始時に以下のようなエラーを吐かれてデバッグができないケースがあります。 The selected debugger may be inappropriate for the inferior. Examining symbols and setting breakp…

タスクシステムライブラリ tasksyslib リファレンス

C/C++対象のタスクシステムライブラリtasksyslibのリファレンスです。 GitHubでダウンロードする 規約等をみる InitTaskSys関数:タスクシステムの初期化 RegisterNewTask関数:タスクの登録 SetTaskParameter関数:タスクの設定 IsActivateRegdTask関数:タ…

インライン関数はヘッダファイルで実装する

C++

2020/3/6に更新しました インライン関数はC++やC99以降のC言語でサポートされています。このしくみは、マクロ関数のように呼び出しのオーバヘッドを避けることができます。 関数におけるオーバーヘッドとは、関数の定義が別のアドレスにあることが原因で発生…