惰性Log

技術系の話題を中心に書いています

NeovimからVSCodeのlaunch.jsonやtasks.jsonでタスクを実行

概要 Visual Studio Code(以下VSCode)ではタスク管理に.vscode/tasks.jsonを、起動やデバッグに.vscode/launch.jsonへ書いて実行することが多いと思います。当然ですがNeovimではこれらのタスクをそのまま実行することはできませんので、Neovimを使う際はmak…

コンピュータの計算誤差の種類のまとめ

もう記憶にないが、以前何かしらの講義のメモを下書きに残しておいたらしい。勿体ないので公開する。 内容的に恐らく1年次の時の講義だろう。 計算誤差 代入誤差 2進数で表せない値の代入 0.1, π, e(ネイピア数)など 丸め誤差 有限桁の小数の範囲を超える…

プログラマ向け音楽サイト「musicForProgramming」

少し前から気に入っているサイトがある。 https://musicforprogramming.net/ musicForProgrammingというサイト。 イカしたインタフェースとアニメーションをしており(主観)、執筆時点では64曲収録されている。 どんな曲があるかというと。主にアンビエント…

VSCodeとWindows TerminalでDeveloper PowerShellを起動する

TL;DR Windows Terminal C:\Program Files\PowerShell\7\pwsh.exe -noe -c "&{Import-Module 'C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/Common7/Tools/Microsoft.VisualStudio.DevShell.dll'; Enter-VsDevShell 677f3018}" Visual St…

Effekseerをemscriptenで動かす その2 ファイルローダ編

前回、ファイルローダがどうのこうの言ってから2ヶ月が経過してしまった。 Effekseerの標準のテクスチャローダではテクスチャを読み込むことができない。が、インターフェースが提供されているので各々で実装することはできる。 NenEngineに実装されている…

Effekseerをemscriptenで動かす

はじめに やり方としては2種類ある。(多分) jsファイルとして出力し、Three.jsなどのJavaScript用グラフィックスライブラリを使用して動かす 静的リンクライブラリとして出力し、既存のC++プロジェクトとともにリンクして直接動かす 今回は、2番の方法を…

OpenAL実装ライブラリ、MojoAL

オーディオAPIとして有名なOpenALは、扱いやすくて人気があるがライセンスがLGPLなので扱いが難しい。 そこで近年、zlibライセンスで開発されているオープンソースのSDL2上でOpenALのAPIが実装された。 開発したのはSDLの製作者でもあるRyan C Gordon氏。 使…

ゲーム制作向けライブラリを公開した

ドキュメントも何もないし一人で使う予定なので公開と言えるのか分からないが、ゲーム制作に使う用のライブラリを公開した。 github.com sinenの名前の由来は「思念」から。あとアイヌ語で「一人」の意味もあるらしいので丁度良かった。 DXライブラリよりも…

DockerでFactorioサーバーを建てるメモ

結論 sudo mkdir -p /opt/factorio sudo chown 845:845 /opt/factorio sudo docker run -d \ -p 34197:34197/udp \ -p 27015:27015/tcp \ -v /opt/factorio:/factorio \ --name factorio \ --restart=always \ factoriotools/factorio 何故わざわざDockerで…

VisualStudioのプロジェクトをコマンドラインからビルドする

新年です。だからなにって訳ではないですが。 最近、コマンドラインからビルドしたいなーと思っていて調べたところMSBuildというのが使えるらしい。 はてなブログタグに登録されているくらい。 場所は C:\Program Files (x86)\Microsoft Visual Studio\2019\…

Vulkanメモ

この記事は落書きです. Vulkanに関する日本語の情報が少ないので、落書きでももしかしたら需要あるかもしれんので公開することに. とはいえ、仕様書を読んだわけではないので信頼性は低い。 初期化 インスタンスの生成 ウインドウの生成やらをしておく. 私は…

Visual Studio Code のターミナルでDeveloper Command Prompt を起動する

なぜ? いちいちVisual Studio を毎回起動するのがめんどくさくなってきた。だらだらアニメでも見ながらプログラムを組みたいときだってある。 MSBuild使えばコマンドラインからビルドできるので、VSCodeのターミナルから起動すれば色々便利! 結論 "setting…

QtでUpdate関数を実装する

C++

目的 C++向けGUIライブラリ Qt には毎回実行されるような関数は用意されていない。 しかし、Qtにはシグナルとスロットという仕組みが存在し、それを使って自前で簡単に実装することが可能であることを知ったので記しておく。 シグナルとスロット シグナル及…

書籍「ゲームプログラミングC++」を軽くレビュー

Amazonレビューにでも書けば良かった気もしますが、ブログの方が気楽なのでここにレビューを書きます。 アフィだと思われないようにAmazonのリンクは控えますが、5000円程度です。 この本を買った目的 私がC++をちまちま書き始めてからだいぶ経ち、それなり…

std::shared_ptrでthisポインタを渡す

C++

はじめに 以下のコードはデストラクタが二回呼ばれて二重解放してしまう。 #include <memory> #include <iostream> class Test { public: std::shared_ptr<Test> GetPtr(){return std::shared_ptr<Test>(this);} }; int main() { auto ptr = std::make_shared<Test>(); auto ptr2 = ptr->GetPtr()</test></test></test></iostream></memory>…

WSL起動時のディレクトリをUbuntu18.04のホームディレクトリにする

経緯 大学の講義でWindows Subsystem for Linux(WSL)を入れろと言われたため、ネットで調べながら入れることに成功したがUbuntu起動時のディレクトリがC:/Users/ユーザ名になっているのがどうしても気持ち悪かったので調べることにした。 ちなみに、Ubuntu o…

VisualStudio2019で文字コードをUTF-8にして保存・実行する

経緯 最近、SDL2.0を使ってゲームを作っているが、文字の描画に使用しているSDL_ttfで日本語が表示されなかった。 原因は単純(ではないかもしれない)で、Visual Studioの標準文字コードがShift-JIS(or UTF-16?)とか何とかからだった。この辺の文字コードに…

Dell Inspiron 14 5485を買った

5万円未満でノートpcを購入した。 元が何万か忘れたけど、学割でいろいろやったら5万切っていた。 一応リンクを貼っておく。(アフィリンクじゃないので踏んでも私に金は入らない。) www.dell.com スペック: OS:Windows 10 Home CPU:AMD Ryzen 5 3500U(…

【Linux】デバイスのマウント方法

デバイスのマウント方法を毎回忘れてしまうので調べなおすのが面倒くさい。 メモ帳代わりにブログで書きなぐることにしました。 デバイスの確認 デバイスのマウント デバイスのアンマウント デバイスの確認 まずはデバイスの所在を確認します。 最初にデバイ…

wineの不具合を解消する

Elonaというフリーゲームをやりたくなったので、ManjaroLinuxにwine(windowsエミュレータ)をダウンロード。 すんなり実行はしたものの、MIDIが鳴らなかったり終了時にプロセスが残ってしまうなどの現象が発生。 検索してもなかなか出てこなかったので、ブ…

Vimの行末の「^M」を消す

VSCodeなどで編集した後にVimで開くとMみたいのが行末に表示されて鬱陶しいので消し方のメモを残しておく。 コマンドモード(ノーマルモードでコロン「:」)で %s/^M//g 注意点として、「^」はCtrl+v、「M」はCtrl+Mで打つこと。 一応解説 「%s/foo/bar/」 …

【Arduino】「Exception in thread "EventThread /dev/ttyACM0"...」の対処法

前回に続いて、またArduinoに躓いたので対処法を記載。 環境 Manjaro Linux エラー内容・対処法 ArduinoでソースコードのコンパイルとICへの書き込みは出来るのに、シリアルモニタとプロッタが開けない状態。 Exception in thread "EventThread /dev/ttyACM0…

【Arduino】「can't open device "/dev/ttyACM0" : Permission denied」の対策

エラーが出た。 実行環境:Manjaro Linux 18.0.4 内容 avrdude: ser_open(): can't open device "/dev/ttyACM0" : Permission denied とかいうやつ。 要するにアクセス権限が無いということなんでしょう。 Linuxに慣れているならすぐに解決できそうですが、…