Hello World / plɹoM ollǝH

Programmers Live in Vain

Visual Studio 2022 でグラフィックスデバッガーをインストールする

Visual Studio Installer を起動して「変更」を選択 個別のコンポーネントタブから「DirectX用グラフィックスデバッガーおよびGPUプロファイラー」をインストール DirectX描画をしているプロジェクトを Visual Studio 2022 で開いて「デバッグ→グラフィック…

Windows10 で Brother の Bluetoothプリンタ PJ-663 のセットアップ手順メモ

仮想COMポートとか、SSPとか言われてもよくわからない。PCを変える度にハマりがちな気がするのでメモ プリンタの電源をいれる プリンタの追加からPJ-663を選ぶ パスコードを入力する(プリンタ本体裏のシリアルコードの下4桁) Win+R → control printers で…

WordPress で JWT Authentication を使って Python から投稿してみる

クライアントはWindows、サーバーはXserver。 1. JWT Authentication for WP REST API プラグインをインストール wordpress.org 2. FTPソフトを自分のPCにインストール WinSCPとかFFFTPとか winscp.net ja.osdn.net 3. FTPソフトからXserverのサーバーに接続…

WIN32APIでコマンドライン引数を取得する

ブログを見ないで公式ドキュメントを読め docs.microsoft.com GetCommandLine() CommandLineToArgv() を使ってリストで取得できる(要メモリ解放) #include <windows.h> #include <stdio.h> #include <shellapi.h> int __cdecl main() { LPWSTR *szArglist; int nArgs; int i; szArglist = C</shellapi.h></stdio.h></windows.h>…

C++11 template で暗黙の型変換を防ぐ

先に普通の関数定義をして、そのあとテンプレート関数定義を書いて存在を消しておく class Hoge { public: void do_something(uint8_t* hoge) { printf(hoge); } template <class Ty> void do_something(Ty x) = delete; }; int main() { auto hoge = Hoge(); uint8_t </class>…

VSCodeでBlenderスクリプト編集環境準備

1. VSCodeをインストール code.visualstudio.com 2. Python Extension をインストール File → Preferences → Extensions 左のカラムに Python とかあるので(無ければ検索欄に入力する)インストール 3. Python Interpreterを設定 実行したいスクリプトがあ…

PycharmでBlenderスクリプト編集環境準備

1. Pycharmインストール www.jetbrains.com 2. Blenderインストール www.blender.org 3. Autocompleteをダウンロード github.com Blenderが最新すぎて↑になければ、古いものをインストールするか下記サイトの pypredef_gen.py を使ってAutocompleteのスクリ…

読み取り専用にできるチェックボックスを作る

class MyCheckBox(QCheckBox): def __init__(self, in_text=None): super().__init__(in_text) self._readOnly = False def isReadOnly(self) -> bool: return self._readOnly def setReadOnly(self, readonly: bool): self._readOnly = readonly def mouseP…

意外と悪くない Surface Go 2

非インフルエンサーによる Surface Go 2 レビュー Surface Go 2 を買った理由 Windowsノートが必要になった 性能ほどほどでよかった 2 in 1 のほうが都合が良かった たまたま Surface Go 2 が発表されてすぐのタイミングだった 良くない点 値段 ディスプレイ…

QListWidgetItemの位置やサイズを調べる

QListWidget::visualItemRectを使う。 例えばキーボードでコンテキストメニューを出したいとき等に使える。 class MyList(QListWidget): def __init__(self): super().__init__() def keyPressEvent(self, event): if event.key() == Qt.Key_Backspace: item…

なんだかんだ 10ヵ月間使っている Insta360 GO 簡易レビュー

購入後すぐレビューした記事はこちら dungeonneko.hatenablog.com このカメラで最近撮影した映像↓ 良いところ お出かけ先で気軽に身に付けて撮影できる スマホだけで動画編集してエクスポートできる 画質はそんなに悪くない カメラを意識されずに自然な映像…

QLineEditでEnter(Return)押したとき、フォーカスが勝手に移動してしまうのを防ぐ

何故かデフォルトの挙動ではフォーカスが他の場所に移動してしまう現象が発生したため、ラップして解決。 class MyLineEdit(QLineEdit): def __init__(self): super().__init__() def keyPressEvent(self, event): if event.key() == Qt.Key_Return: self.ed…

QLineEditのCtrl+Zを無効化する

eventFilterをいれれば解決できるようだが、eventLoopで毎回呼ばれるのか、パフォーマンスプロファイラ―などを使って調べてみるとこいつが上位に来るようになってしまう。必要なときだけ呼ばれるeventFilterようなものがあれば良いが、現在調査中。 class My…

QDialogを継承したダイアログ作成

QDialogButtonBoxを使うようにするとAccept, Rejectを使って直感的にDialogクラスとやりとりできるし、キーを押したときの挙動も統一できる(Enter押すとAcceptとか)。 class MyDialog(QDialog): def __init__(): super().__init__() buttons = QDialogButt…

QTreeWidget カレント項目を削除する

_index = self._treeWidget.indexOfTopLevelItem(self._treeWidget.currentItem()) self._treeWidget.takeTopLevelItem(_index)

QComboBox 開いたときにアイテムを生成する

showPopupを継承してその中でaddItemし直せばよい class ComboBox(QComboBox): def __init__(self): super().__init__() def showPopup(self): while self.count() > 0: self.removeItem(0) self.addItem('hoge') self.addItem('fuga') self.addItem('piyo')…

2020年 PhysXサンプルを動かす in VS2019

できらぁ! 1. gihubからPhysXのsdkを丸ごと落とす github.com 2. DirectX SDKインストール 次に、驚くべきことに、PhysXのサンプルでは未だにDirectX9のsdkを要求されるので、Microsoft DirectX SDK June 2010を落としてインストール ※Visual Studio 2010の…

ModifiedCubeMapGen

一枚にまとめられてる v-cross cubemap 等を dds に変換してくれるやつ いまだ現役?みんなは何使ってるんだろう? code.google.com 追記: みなさん Lys hdrlightstudio cmftStudio IBLBaker などを使っている模様

clang-format + VisualStudio2019

前にもちょっと書いたのですが、Visual Studio上でのclang-format設定のメモ書き 2019ではデフォルトで有効になってるのでソース上で Ctrl+K, Ctrl+D 押せばいいだけ 他のスタイルにしたい場合は「ツール -> オプション」から好きなの選ぶ clang-formatの書…

DirectX12 VisualStudioでグラフィックスデバッグが動かない

もうサポートしてないからPIXを使ってくれよな!と https://developercommunity.visualstudio.com/content/problem/417292/visual-studio-directx-graphics-debugging-tool-can.htmldevelopercommunity.visualstudio.com ダウンロードはここから devblogs.mi…

cv2 frost glass in python

ガウスブラーをかけるだけ Input Output img = cv2.imread("lena.png") img = cv2.GaussianBlur(img, (127, 127), 0) cv2.imwrite("result.png", img)

cv2 voronoi mosaic in python

Python版のサンプルが意外となかったのでメモ Input Output import cv2 import numpy as np def voronoi_facets(in_img, in_k): h, w = in_img.shape[0], in_img.shape[1] subdiv = cv2.Subdiv2D() subdiv.initDelaunay((0, 0, w, h)) points = np.append(np…

PySide drag start from QPushButton

Qt (PySide) は一部のWidget以外でドラッグ開始を実装しようとすると意外と面倒 ググると大体受け入れる側のサンプル出てきちゃうし class MyButton(QPushButton): def __init__(self, parent): super().__init__(parent) self._startPos = QPoint() def mou…

Unityの回転値を右手座標系に変換

まず平行移動のX方向が逆なのでxに-1を掛けます trans.x *= -1.0f; return glm::translate(glm::mat4(), trans); 回転値はZXYオーダーで、ZとY回転に-1を掛けます glm::mat4 m; m = glm::rotate(glm::mat4(), -rotate.z, glm::vec3(0.f,0.f,1.f)) * m; m = g…

ここがクソだよ Insta360 GO(修理手続き編)

前回、買ったその日にレンズに傷を付けてしまい、修理手続きしたのでその記録 TLDR Insta360 GOはレンズ修理できない本体取り寄せ 本体99USD+送料17USD 1. 私がとった手順 真似しないほうがいいです 公式サイトに修理用の入力フォームが用意されていたので …

ここがクソだよ Insta360 GO

辛口レビュー いいところはあちこちで散々書かれるので私がクソな点をまとめます YouTuberの販促動画だけ見て買って不幸になる人(私)がでないようにするためです まだ買ったばかりなので、使い込んでみての感想はまた別に書くかもしれません TLDR 1. 一度…

Tech Toolbox for Game Programmers @GDC2016

せっかくだから俺はこの動画を要約するぜ www.youtube.com 1. The Poor Man's Dialogue Tree お金を掛けないダイアログツリーの作り方 普通のやり方 Unityのアセットストア等で買うと高い サードパーティ製(本当に必要なものではない可能性がある) 退屈!…

程々に快適なゲーミングPCを5万円台で組む

経緯 GPD POCKET(初代)のバッテリーが膨張してしまったので、もうUMPCは懲り懲りということで久しぶりにデスクトップPCにしようと思い立ちました。ゲーム制作&遊ぶ用に安くてある程度3Dゲームも動くPCを探そうと思いましたがどれも予算オーバーなのでコス…

Visual Studio 2015/2017 でマルチスレッドのプロファイリング

拡張機能をインストールして 分析 -> 同時実行ビジュアライザー -> 現在のプロジェクトで開始 (日本語の場合) スレッドごとの状況見れるようになります

PySide2 + librosa + pyaudio + numpy, play audio repeatedly

import librosa import numpy as np import pyaudio from PySide2.QtCore import * from PySide2.QtGui import * from PySide2.QtWidgets import * import sys class Widget(QWidget): def __init__(self): super().__init__() self._audio = pyaudio.PyAudi…