どこかのだれかへ

ボク、プログラマ。

バイナリデータを拡張性高くするためにXmlみたいな構造を作ってみた感想

バイナリデータって拡張にすごく弱くて、以前苦労しました。バージョンごとに構造体を書いていて管理が面倒でコードも汚くなっていきました。 そこで考えました。key-valueみたく、識別子・サイズ・値を1セットとして、すべてのメンバーやブロックを構成す…

MVVMのViewModelの必要性を感じた

WPF

WPFではMVVM(Model/View/ViewModel)パターンを利用しますが、簡単なツールの場合はViewModelの存在意義があんまり無く、恩恵を受けにくく、その存在意義を忘れがちです。 ViewModelがある理由はView(WPFでいえばxaml関係)に関する都合を吸収するためですが…

Google XML Document Format Style Guide

UIエディタの保存にXMLを使用としたときに、要素と属性の使い分けをどうすればいいんだろうかと考えてたときに出会ったのが、Google XML Document Format Style Guideでした。 https://google.github.io/styleguide/xmlstyle.html C++のスタイルガイドはよく…

BitmapImageをbyte[]に変換する

各フォーマット毎にBitmapEncorderがあるので、コレを使います。 BitmapImage image = /*pngイメージ*/; var encorder = new PngBitmapEncoder(); encorder.Frames.Add( BitmapFrame.Create( image ) ); using( var stream = new MemoryStream() ) { encorde…

1行インライン関数は止めて欲しい

C++

C++の話です。メンバ関数をインラインで書くときに1行で書く場合はありますが、これは避けて欲しいです。なぜならここにブレークポイントを置いたときに引数の値とかを確認することが出来ないからです。 class Hoge{ public: // これはヤダ void Set( int v…

Null条件演算子というのを初めて知った

C#

WPFとMVVMについて色々調べていたら、C# 6.0からの可能でNull条件演算子があることを知りました。これめっちゃ便利ですね、だいぶコードがすっきりします。 C#はどんどん新しくなっていきますが、全然追ってないのでこんな浦島太郎状態なことに鳴ってしまい…

Elastic tabstops、というコードの整列を勝手にやってくれるヤツ。

Vimのプラグインでコードを整列してくれる良いプラグインないかと探しているときに見つけたのがElastic tabstopsです。 ※Elastic tabstopsのWebサイトより引用。 Elastic tabstops - a better way to indent and align code 公式サイトではVisual Studioのプ…

コロプラ特許訴訟って今どうなっている?

ということでググってみたら、つい先日、第5回審理やったみたいです。 毎回よくまとめてくれている方がいるので、そこから引用。 任天堂 VS コロプラ特許訴訟・第5回戦。ユーザに内緒で『ぷにコン』の仕様が変わっていた! | パテントマスター・宮寺達也の…

名前の末尾の数字をカウントアップして返すメソッド

C#

ツールとかで要素をコピーした時の新しい名前は、賢く末尾の数字がカウントアップしていくのが嬉しいと思うのです。 static string CountUpName( string name ) { Match match = Regex.Match( name, "(^.*)([0-9]+$)", RegexOptions.RightToLeft ); if( matc…

子が別のクラスのツリービュー

WPF

WPFにおける、親と子が同じ、再帰的なツリービューの表示は GitHub - tepp91/WPFSampleCollection: Function sample of WPF の中でサンプルとして提示していますが、親と子が別々のクラスの場合は、 <UserControl.Resources> <HierarchicalDataTemplate DataType="{x:Type mdl:Texture}" ItemsSource="{Binding PartList}"> <TextBlock Text="{Binding}" /> </HierarchicalDataTemplate> …</usercontrol.resources>

UIエディタを作る上で決めていること:その2

続きです。 のちのちスクリプトを書けるようにする これは将来的に、ですがMayaのmelが目標です。つまりあらゆる処理をスクリプトを介して行う事が出来るようにすることで大量のファイルを一括で処理できるようにしたいです。これをすぐにやるつもりはないの…

pathlib.globを複数の拡張子でフィルタリングする

pathlib.globをさらにジェネレータ式で書くことでフィルタリングが可能です。 C++ファイルの再帰リストアップの例です。 import itertools as it from pathlib import Path exts = ['.cpp', '.h', '.inl'] for filepath in (x for x in Path('.').glob('**/*…

UIエディタを作る上で決めていること

CEGUIを使おうと思ったけど、自分でビルドする必要があってその用意が大変でやってられないので、自分で作る事にしました。そして自分で作るならと、幾つか決めていることがあります。 ワークスペースはインゲームランタイムを使用する UIエディタでありがち…

os.walkをpathlibに書き換えて美しいコードに

pathlibの存在をつい最近知ったんですがすごい便利です。なぜ今まで知らなかったのか。 例えばディレクトリ内にあるcppファイルのリストを再帰的に取得する場合。 import os for root, dirs, files in os.walk('./'): for filename in files: base, ext = os…

席で傘を差している人がいた

先日、会社にて席で傘を差している人がいました。傘は白い半透明のビニール傘です。最初は乾かしているのかなと思いましたが、もう1つの可能性として液タブのために遮光しているのではないか、というのがあります。 液タブで作業しているとき、天井の蛍光灯…

Leet、という記法

最近はパスワードもセキュリティ的に「大文字小文字数字記号」を含むように言われることが多くなってきました。そんな時たまに「a」の代わりに「@」としてなんとなく似ている記号に置き換えたりする人もいると思います。 この、アルファベットを似た文字に置…

スパイダーマン、バグで「鳩ハンター」が辛かった。あとは「年中スーツ」だけ

先ほど「鳩ハンター」トロフィーを取得して、トロフィーの進捗は97%になりあとは「年中スーツ」取ればプラチナトロフィーです。 スパイダーマンやっている人からすると今の話を聞いて「ん?」と思った方もいるかも知れません。 「鳩ハンター」はマップにいる…

ビットカウント

C++

C++でのビットカウント方法をNoteに追加しました。すっごい久々。 https://tepp91.github.io/contents/cpp/bit-count.html

冬に向けて、PS4のゲームが続々出てきてやばい。

今日(昨日)はスパイダーマンの発売日でしたね。とりあえずさっきDL版買ってDL中です。本当は昨日予約する予定だったのに忘れてしまってせっかくの予約特典がもらえませんでした。残念。 10月26日にはレッドデッドリデンプション2が発売されます。 そして年…

DirectX12で作った方が良いのか?

先日のCEDEC2018のとあるセッションで「内製部分はもうDirectX12で作っていてずいぶん前にDirectX11は社内から駆逐された」という話があり、今自宅で作っているゲーム(?)もDirectX12にしたほうがいいのかと考えました。 DirectX12はWindows 10から動きま…

Unityはなぜリリースサイクルを変更したのか。Unity6がない理由。

Unityのライセンス回りを調べていたら、FAQに「Unity6はリリースされないのか?」という質問があり、「販売されないよ!詳しくはボログを見てね!」って書いてあった。 サブスクリプション! なぜ? – Unity Blog

CEDEC2018

今年もCEDECの季節になりました。今年はちょっと早いですね。 仕事のタイミング的に忙しいと思って、今年もタイムシフトパスを購入したんですが、実際のところはやることなくて暇なので後悔しています。現在の会社は自腹で個人的に行く場合でも丸一日CEDEC行…

腱鞘炎にはテーピングが良い感じ!

木曜日の夜に右手の小指に腱鞘炎の症状が出ました。プログラマとしてはある種の職業病とも言える腱鞘炎ですが、特に私はキータッチが強めなのでなりやすい傾向です。 キータッチをもっと柔らかくしてもキーは反応するのでそれはちょっと改善していきたいなと…

Stack<T>の複製が罠な件

C#

コピーコンストラクタで複製したつもりが、順番が入れ替わっている罠があり、今日引っかかりました。 Stack<int> stack = new Stack<int>(); stack.Push( 1 ); stack.Push( 2 ); stack.Push( 3 ); // 3, 2, 1 Stack<int> clone = new Stack<int>( stack ); // 1, 2, 3 StackはSta</int></int></int></int>…

キングダムハーツⅢの発売日が決定!

2019年1月25日だそうです。楽しみ! 発売日が決定したので、蓄えていたHDリミックスをやる時がついに来たようです。

グレイテスト・ショーマンはモチベ・ドーピングとして有効

昨日、グレイテスト・ショーマンを見たんですが、素晴らしかったです! ミュージカル映画だったんですが、どの曲も劇中の感情がもろに乗っていて、見ているこっちもとても気持ちが入りました。 またそれに合わせる踊るダンスとかも格好いい。そんな引き込ま…

体調をクズしやすい季節

最近はめっきり暑くなって、毎日半袖で過ごしていますが半袖で出社すると会社の冷房が寒いです。場所が悪いんですかね?時折冷房の風が当たるような当たらないような。 もともと冷え性と言うこともあり、最近は会社にはカーディガン一枚常備させておいて寒く…

Oculus Goが到着するまでを振り返ってみた

5月の上旬にOculus Goが発売されて、GW中に私も注文したのですが、色々あって手元に来るまで1週間近くかかりました。 恐らく順調にいけばもっと早かったんですが、今回はどういった流れでOuclus Goが手元に来るのがいろんな履歴をおさらいしておきます。 …

「ZIP、完全に理解した」「ソートの本」買いました

COMIC ZIN新宿店に行った際におもしろそうさうな同人誌があったのが買ってました。 COMIC ZINはこういった技術系の同人誌も多く扱っているのでおもしろいですね。 気が向いたら読みます。 COMIC ZIN 通信販売/商品詳細 ソートの本 COMIC ZIN 通信販売/商品詳…

GW明けでPW忘れる

今回のGWは9連休だったので今日は久々の出社だったんですが、PCのパスワードを完全に忘れてしまっていました。 今の会社はログインパスワードを1ヶ月半くらいで変えなくてはいけません(総務省曰く、頻繁なパスワード変更はセキュリティ的に効果が無い、む…