サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ブラックフライデー
usagi.hatenablog.jp
このメモの経緯 VSのPCH(PreCompiled Headers)機能は "使うためにユーザーがする事" はもうたぶん20年以上昔から変わっていないと思うので "いまさら" なのですが、ぼちぼち使い方がおかしくてビルド時間を無駄にしているプロジェクトに関わります。そこで、ごく簡単にPCHの使い方についてメモを残す事にしました。 PCHは本来、正しく使えている限りにおいては「たいていの一般的なプロジェクトで何度も開発中に繰り返されるビルド時間を大幅に圧縮する効果を見込める便利機能」です。但し、正しい使い方を知らない人がプロジェクトへ参加して、わけもわからないまま関連のファイルや設定を弄ってしまうと、ほんの少し正しくない使い方をしただけでも本来とは逆効果にビルド時間が増加するだけ&ライブラリーの管理に謎の面倒さが生じたりする厄介者扱いになり得てしまいます。 PCH の正しい使い方 Note
現時点ではほぼダメです。試した中では唯一 conrod だけ日本語アプリを作る実用に耐えられそうです。 crate 日本語表示 日本語入力 コピペ UI部品の見栄え その他 conrod ○TTF可 ◎自然にできる ◎自然にできる ∞ 作り込み次第 vulkan対応で軽快, GL版だともっさり気味 druid ◎システム可、TTF可 ✘無理 △事実上無理 △ぼちぼち フォント回りや2Dドロー回りはたぶん界隈では最強 OrbTk ○TTF可 ✘無理 ✘無理 ○まあまあ 開発は活発なので続けばよくなるかも azul ○システム可 ✘無理 ✘無理 △ぼちぼち exampleにも動作しない機能、壊れた機能が多い。開発が不活性化していて事実上終了かも 日本語表示の(システム可)はシステムフォントを名前で指定すれば使えるものです。使えないものはフォントファイルをバイナリーで直接ロードする仕組みになって
note: 2D 系(eg. phaser, ggez, etc. )は今回のメモでは含めていません。 Lang Library License WebGPU WebGL native ES & wasm ES babylon.js Apache-2.0 Ready 2 %a n/a pure ES ES three.js (+A-Frame) MIT(+MIT) (unknown†1) 1 + (2) n/a pure ES ES playcanvas MIT (unknown†2) 2 %b n/a pure ES C++ Unreal Engine *1 (unknown) 1 %c D3D12, Metal, OpenGL wasm(Emscripten) C# Unity *2 (unknown) 2 %d D3D12, Metal, OpenGL wasm(Emscripten
Repos: https://github.com/usagi/rust-memory-container-cs 作ったので GitHub ↑ しつつ、なんとなくすごい久しぶりに Qiita に初心者さんに優しそうな雰囲気を装った解説↓ https://qiita.com/usagi/items/fc329895cebd3466910e も書いてみました。ちなみに reddit ↓ https://www.reddit.com/r/rust/comments/idwlqu/rust_memory_container_cheatsheet_publish_on_github/ にもポストしてみました。 reddit はとても参考になる議論がおおむね建設的にものすごい勢いで発生してくれるので嬉しいです。チートシートとしての意図と図面の都合による nitpick たちは README に注釈を付
今回のメモの Node.js は: node -v v13.5.0 です。先ずは Node.js 初心者らしく npm i ffi して死にました: npm i ffi ほか多数のエラーを観測し、死んでしまいました。☠ https://www.npmjs.com/package/ffi どんどん使われなくなっているので何か代替に置き換わったのだろうと思い調べてみると、 ffi は Node.js < 11 の時代で死んでしまったらしい事、 Node >= 11 用には fork した @saleae/ffi が対応しているらしい事がわかりました。 https://www.npmjs.com/package/@saleae/ffi https://github.com/node-ffi/node-ffi 既にこちらも Weekly download が怪しいですが、とりあえず npm i @
reddit の Rust コミュニティーに template-rust-backend-with-electron-frontend のリリースについてポストしたところ、主に2つ、 Tauri と NEON について話題になりました。( up-vote たくさんとちょうど使いたかったんだありがとう的なポストも頂きました。幸いです。 ) `template-rust-backend-with-electron-frontend` released : rust 1. Tauri vs. Electron ( 間接的には template-rust-backend-with-electron-frontend にも関連します ) こちらは template-rust-backend-with-electron-frontend にとっては via via 的な間接的でややオフトピックよりな感
ふぁっきゅーぐっぐー。できない?なぜ? たいていの一般人はおそらく、大きな画面やたくさんの画面への出力機能に埋もれて、そうしてようやくまともな生産性を得る機会が得られると考えていると思います。私もその一人です。 私は Goole PIXEL4 を発売日の少し前に充電スタンドと一緒に予約して購入し、届いてから幸せな人生を送っていました。世間では絵に描かれたようなアンチとファンのPIXEL4へのレビューとシェアの戦いが繰り広げられ、まったくその点には興味の無い私のPIXEL4のニュースフィードにもちらほらそれら偏った馬鹿げた記事へのリンクがサジェストされ私の指と脳を少しばかり煩わせていましたが、私は十分に幸せでした。 そろそろ本題に入りましょう。冒頭で答えは既に口汚く書いたような気もしますが、どういうことなのか、もう少しだけメモを書き残します。 Google PIXEL4 は USB-C ポー
タイトルが少しややこしいので最初に整理します。 このメモは: C++ のパッケージマネージャーの選択のはなし ただし: アプリはクロスプラットフォーム ( このメモでの具体例は Windows-10 & Ubuntu-19.04 ) アプリ全体(=このメモでは「ソリューション」とします)はいくつかの構成部品(=このメモでは「プロジェクト」とします)に分けて作られる プロジェクトの1つ以上に C++ を採用したい そのプロジェクト単位で C++ のライブラリーを管理できるパッケージマネージャーを導入したい → どうするのが楽そうかな のメモです。 選択肢と大雑把な検討 conan https://conan.io/ クロスプラットフォーム対応の C++ のパッケージマネージャーが欲しいの悩みに答えてくれる定番。 CMake でごにょごにょする vcpkg https://github.com
(※今回の記事は技術冒険譚の第0話、主人公の手記みたいなものです。ただの KiCad 初見プレイメモにつき、正しい解説や知識をお求めなのにこのページへ導かれてしまわれた不幸な方はそのままそっ閉じされる事をおすすめします。) 自作キーボード界隈の賑わいを眺めていると、しばしば KiCad というキーワードを目にした。おそらく PCB 設計に便利なアプリなのだろう…。今朝ほどからちらほらと Twitter で #meishi展 というハッシュタグも見かけ、これはどうやら meishi 互換サイズの自作キーボードの PCB 設計のみせあいっこの様相を呈している風でとても楽しげなのだ…。 と、いうわけで、思い立ったので私も KiCad で名刺サイズの自作キーボードの PCB 設計をしてみよう…と、 KiCad の初見プレイへと挑むのでした🐰 note: PCB = Printed Circuit
遠いむかしの記憶、 C# というか Visual Studio のプロジェクト管理システムにはバージョン番号の一部を自動採番する便利な機能があった、ような気がした。実際に執筆時点で現行製品の VS2017 で作った C# のプロジェクトの AssemblyInfo.cs にも次のコメントが自動的に書かれた状態で生成されていた。 // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] ビルド番号を自動採番にしておくと頻繁な開発とα版、β版の試供などを行うプロジェクトでは何かと便利が良い。そこで、 // 実際に現行の VS2017 で
(はてなブログの記事あたりの容量制限のため前の部分 §1.10. までは前の記事でどうぞ→Real Unreal Engine C++ 2017-12 (part-4/5) - C++ ときどき ごはん、わりとてぃーぶれいく☆) 1.11. UE4/C++ における入門的な「スレッド」ライブラリーの std 互換性 std UE4 promise TPromise future TFuture thread FRunnableThread PRIMISE-FUTURE-THERAD の std と UE4 の 比較は以前書いた記事がちょうどこのセクションに相当する。 C++ 標準の promise / future / thread に対応する UE4 標準の TPromise / TFuture / FRunnableThread の使い方 - C++ ときどき ごはん、わりとてぃーぶれ
状況 Visual Studio 2017 の cl.exe のメッセージを English にしたい。 “googlability” や “stackoverflowability” や “ue4-answerhubability” 的な都合でも合理的だし、 UE4 の UE4Editor から C++ コードをビルドした際に問題が生じた場合に UE4Editor のログ表示で文字化けが起こり、具体的にどんな問題が起きてしまったのか読めず、適当な端末なり Visual Studio なりを起動して"よっこらせ"と再度ビルドして確認する事になるのを避けたいのがいちばんの理由。 方法 “Visual Studio Installer” を起動する “Modify” –> “Language Packs” タブ “English” –> checked –> Modify (右下のボタン) “
0. はじめに この記事は Unreal Engine 4 (UE4) その2 Advent Calendar 2017 の DAY 1 に寄稿したものです。😃 1. 概要 std 慣れしたプロフェッショナルとしてある程度の経験と知識のあるベテランの C++er でも UE4 フレームワークの C++ ソースコードと対峙する上では、事前に知っておくと混乱の予防接種となるコツは多く、 API Reference や公式の解説も入門向けには整備が善いが、 C++er 向けには十分とは言い難い。 そこで、本記事では一般的なプロフェッショナルレベルの C++er を対象に、2章構成で次の内容を記す。 プロフェッショナル C++er のための UE4/C++ チュートリアル&予防接種 プロフェッショナル C++er のための UE4/C++ リアル・ベーシック それなりのボリュームとなるのでここで
「Tick が来ない!」、たまによくあるのは私だけでしょうか。 UHogeFugaComponent の TickComponent が来ない、 AHogeFugaActor の Tick が来ない、などなど。そんな場合の備忘録です。 疑い(1): bCanEverTick が false コンストラクター等で bCanEverTick が true になっていない場合に Tick が来なくなる。 true にすれば良いし、そもそも通常はデフォルトで true なのでこのミスの可能性はわりと低い。低いけど根本的なところなので一応最初に疑って確認、必要なら修正。 // Actor の場合 PrimaryActorTick.bCanEverTick = true; // Component の場合 PrimaryComponentTick.bCanEverTick = true; 疑い(2):
ASP.NETなどのいわゆる一般に言うCMSなど動的なフレームワークを用いるなどしているウェブサイトを何らかの理由(もう更新しない、閲覧用のスナップショットにしたい、など)で静的ウェブサイトへ変換したいニーズは普通にあるかと思います。 更新停止するサイトそのものは遺しておきたいけれど、動的ウェブフレームワークで稼働させる必要が無い場合、静的コンテンツ群、つまるところHTMLや画像などにしてしまえば、エンドユーザーの閲覧の快適さも良くなりますし、サーバー負荷も減ります。流行りのエコでございます。 以下、今の私ならこうするよっていう手順を紹介します。 0. 準備 最近のLinuxを適当に使える状態にします。(wget や msrp が必要になります。) MacOSXの事はよくわかりませんが、UNIX系なら紹介する手順はどうにかなるでしょう。 Windowsの人は捨てましょう余程低スペックなPC
別に使う必要に迫られた訳では無いのですが、"トライグラフ"というものを使ったあるプログラミング言語のソースコードのごく初歩的で簡単なコードのサンプルがこちらになります。 ??=include <iostream> int main()??< unsigned a??(??)=??<1,2,3??>; std::cout<<??-((a??(0??)??!a??(1??))-a??(2??)); ??> https://gist.github.com/4147031 "あるプログラミング言語"と言いましたがどう見てもC++な気はしますね?C++です。しかしまるで難読化されたかの様な難解なコードに見えますね?実は簡単です。 このコードをGCC-4.7.1/openSUSE-12.2(x86_64)で実行まですると、 4294967295と表示されます。(42じゃない点はご了承下さい) 実は先の
Related Entries C++ Advent Calendar 2012 / day 4th : Native-client vs. HTML5 ; C++ in the web-client-world! - C++ ときどき ごはん、わりとてぃーぶれいく☆ After care: C++ Advent Calendar 2012 / day 4th : Native-client vs. HTML5 ; C++ in the web-client-world! - C++ ときどき ごはん、わりとてぃーぶれいく☆ Introduction さて、先日書いた particle_system について最適化を進めてみようと思います。その為には particle_system 自体について、どこが全体の動作に対してボトルネックとなっているのかなど知らないと闇雲で場合に寄っては無駄な最
Qtまじやばい・x・ と、言う訳で先ずは簡単な触りから、この素晴らしく魅力的な世界に入ってみたいと思います。先ずは少し古いですがQt Quick 2.0について、2011年のデモ映像の真似っ子をしてみる事に。 本項の前提知識等 適当なデータ記述言語に関する基礎知識(例えばHTMLとかXMLとか) ECMAScriptの基礎知識 基礎的な端末の操作 or IDEの使用経験 ※今回はC++力は使いません。また、パーティクルシステムについては知らなくてもデモを見てパーティクルの意味(粒子)を考えれば分かる程度の浅い内容です。 教材 http://qt-project.org/videos/watch/whats-new-in-qtquick-2.0 準備 Qt5 (libqt5) http://software.opensuse.org/package/libqt5 QtCreator-2.6
RTTIで型情報を対話的に可視化したいと思うと、C++ではデマングルしないと割と読めません。extern "C"しておくとか邪悪臭いですし。 ところがデマングリングは処理系依存に触れる事になるので、ユーザーコードで扱いたいものではありません。そこで処理系依存のデマングルをラップしたライブラリーレベルでユーザーコードからは使いたいと思うのが一般的なプログラマーの思考かと思います。 Boost.Units にあるよ・w・ http://www.boost.org/boost/units/detail/utility.hpp 例えば、 #include <boost/units/detail/utility.hpp> using boost::units::detail::demangle; auto demangled_name = demangle(typeid(0).name()); こん
C++ Advent Calendar 2012 / 4th day (!) この記事はC++ Advent Calendar 2012の参加記事です ヽ(=´▽`=)ノ 記事の公開と本編内容が4th dayのリミットより数時間遅れてしまいました事をお詫び申し上げます。 Native-client vs. HTML5 ; C++ in web-client-world! 諸元 Published: 2012.12.4 By: Usagi Ito <usagi@WonderRabbitProject.net> Environments: (to see the last section of this entry) Abstract 世間ではHTML5が一般にも話題になり始め、徐々に持て囃される様になり、次第に一般にも浸透して来た様な気がする2012年のクリスマスシーズン、 (…中略…)、
執筆時点のAndroid NDK(r19)について。 知って措いた方良い事 JNIのCバインディングとC++バインディングはまったく別物 APIの名前は同じ挙句にC++版でも名前空間つこうて無かったりで、ありがちなC/C++対応と言いつつ実はCっていうパターンかと思いきやC++バインディングでは同名のAPIでパラメーターの数が違ったり、ポインターのポインターがポインターと参照になっていてAPIを使ったユーザー定義部分のコードをCとC++では変える必要があるなど設計がおかしい。 JNIは蛇殺し JNIのJAVAとCの名前空間の結合ルールが馬鹿なのでユーザー定義でsnake_caseのシンボルを使うと死ぬ。しかもAndroidで実行してランタイムエラーが出現するまで問題は顕在化しない。 この問題に対しsnakerの私は_の代わりに大文字の'X'を使う事にせざるを得なかった。例えば`jni_is
今期はAndroid開発の講座も担当させて頂いていて、学生さんに「Eclipseを使わないでAndroid開発する方法」を教える事になったのでメモ。 開発環境の準備 Android SDK の準備 公式/インストール解説 http://developer.android.com/sdk/installing.html 要約: SDK拾う→展開する→環境変数設定する(ANDROID_HOMEとPATH) export ANDROID_HOME=/path-to-android_sdk export PATH=$ANDROID_HOME/platform_tools:$ANDROID_HOME/tools:$PATH※ちなみに、archlinuxならAURにAndroid SDKもAndroid NDKもあるのでyaourtすればパスも通った状態で準備できる。他のディストリビューションでもそう
先ず、ベンチマーク結果とソースコードを示そう。 結果 LH-MAIN /tmp% node --version v0.6.13 LH-MAIN /tmp% node hash_depth.js { time: 1045, title: 'direct' } { time: 1155, title: 'array depth-1' } { time: 1503, title: 'array depth-2' } { time: 1636, title: 'array depth-3' } { time: 1905, title: 'array depth-4' } { time: 2106, title: 'array depth-5' } ソース usagi's gist: 2318809 — Gist var v = 'Lorem ipsum dolor sit amet, consec
Dart と JavaScript と Haskell と C++ で n-body (多体問題)のベンチマークしたよー。時間測定は全て time ちゃんです。 <※コメントにて runhaskell とコンパイル済みの .o 存在下の挙動について教えて頂き、 runhaskell について測りなおしました!> 結果と感想文 result graph ※Dartのcheckedモードは実際にはグラフの右端から大幅にハミ出しています。 ※ runhaskell は2時間ほど経っても完了しませんでした;w; result table 測ったデータを記録している生のスプレッドシートはこちら。 n-body benchmark - GoogleDocs 以下は簡易版。 Language - Implement compile [sec] run [sec] compile+run [sec] Ha
とりあえ図。 ソース。 環境。 LH-MAIN /tmp/test% uname -a Linux LH-MAIN 3.2.8-1-ARCH #1 SMP PREEMPT Mon Feb 27 21:51:46 CET 2012 x86_64 AMD Phenom(tm) II X4 940 Processor AuthenticAMD GNU/Linux LH-MAIN /tmp/test% php --version PHP 5.3.10 with Suhosin-Patch (cli) (built: Feb 6 2012 19:18:12) Copyright (c) 1997-2012 The PHP Group Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies LH-MAIN /tmp/test% cat
https://superuser.com/questions/1597409/warning-you-are-currently-using-the-remotefx-3d-video-adapter https://superuser.com/questions/1588725/remotefx-warning?noredirect=1&lq=1 これが出たら、 管理者権限で powershell を実行 Get-VMRemoteFXPhysicalVideoAdapter コマンドで Enabled が True になっているデバイスの Name を確認 Disable-VMRemoteFXPhysicalVideoAdapter -Name "NVIDIA Geforce RTX 3090" コマンドのように(2)で確認した Name を指定してデバイスの RemoteFX を無効
このページを最初にブックマークしてみませんか?
『C++ ときどき ごはん、わりとてぃーぶれいく☆』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く