「プログラミング」に関する日記(13)

プログラミング関係の話題。プログラミングコーナーを更新したとか、プログラミングの内容に踏み込んだ話とか。

<前 次>

レーダーチャート描画クラス

また、何も改良していませんが、オープンソース化しました。
一応サンプルだけは、サーバーによって動かないことがあるので修正はしましたけどね。

UWP

プログラミングコーナーに「Windows 10のUWPアプリを作る」を追加しました。
以前作っていた「牛乳飲んだ」の舞台裏ですね。
一番苦労したのはテスターとのバトルだったというわけです。

MifuminUITypeEditorとアンパンマンDB

昨日言っていたライブラリの件ですが、TGWSではバイナリを配布し、GitHubでソースコードを公開する方針にしてみました。
普通の人が普通に使う分にはDLLを参照し、ソースコードを直接使いたければGitHubからクローンすればいいのです。
ソースコード本体は共有プロジェクトに入れてあるので、共有プロジェクトを参照すれば、プロジェクトごとソースコードとして取り込むことができます。
アップデートがあれば、最新版DLLに差し替えるか、Gitリポジトリをプルしてくれば完了です。
ソースコードで使っていて、カスタマイズした内容があれば、それはきっとGitが知っているはずなので、それを手掛かりに開発者がなんとかできることでしょう。
ひとまず、EncodingEditorとEnumFlagEditorが似たような内容だったので、この方式の先駆けとして、一つにまとめてMifuminUITypeEditorとして公開しました。
今後も、似たようなものをまとめつつ、DLLとソースを再利用しやすい形で配布していこうと思います。

アンパンマンDB。
タイトルジェネレータの管理画面を作りました。
追加しか対応していませんが、とりあえず新キャラクターが出てきたときや変わったタイトルのときには素早く対応できるようになりました。

MifuminLib

うちのダウンロードコーナーで配布しているライブラリ的なものについて考えています。
総称してMifuminLibと呼んでいるわけですが、はっきり言って、一つ一つはめちゃくちゃ小さい。
だから、DLLとかいちいち作らず、ソースのまま自分のプロジェクトにぶち込んでね、というスタンスだったのですが、これが実は面倒。
自分の今作っているものと、外から持ち込んだもののソースが混在するわけだから、区別の手間がかかる。
ライブラリ部分も自分のコードと同じく編集可能だから、最新版が出ても、アップデートしていいかどうかの判別がしにくい。
ということで、ちょっと管理方法を変えてみようかと思っています。

アンパンマン日替わり紹介bot

音楽の紹介のための調整を行っていたのですが、リリース直前に、動作に影響ない程度の修正をしたところ、動作に影響ないどころか動作しなくなるバグを出してしまいました。
それ以外は結構念入りにテストしていたのですが、動作に影響ないと思って、最後の最後でテストを省いてしまいました。

直接的な原因は単純なスペルミスでした。
大した内容ではないから、簡単なコードだから、そのコードが動かなくても大勢に影響ないから、そんな気持ちがあったのだと思います。
大した内容ではないから甘く見て、簡単なコードだから確認を怠け、そのコードが“動いた”結果、全体として、全く動かなくなってしまったのでした。

現在は修正し、正常に動作しています。
正常に動いて当然で、異常があっても見つけられて当然のことで、正直、かなりショックでした。

TGWSDQX

TGWSDQX用のURL取得プログラムをUWPで書き直していました。
UWPにもウェブブラウザ的なコントロールは最新のEdge仕様になって搭載されていたのですが、従来のWebBrowserとはいろいろ勝手が異なっていて大変でした。
やっぱり非同期処理と、ソースの取得が難関でした。
非同期処理は、async、await、Dispatcher、AutoResetEventをバリバリ使うことで一応解決。
ソースの取得は、そのままではできないので、JavaScriptの任意のコードを実行できるevalをUWP側から呼んで解決。
source = await wb.InvokeScriptAsync("eval", new string[] { "document.documentElement.outerHTML;" });

funyak

SharpDX検討中。
…だったのですが、スマホで初期化に失敗しました。
SharpDXはUWP(Windows10限定)とWFP(7あたりでも使える)の両方に適用できそうだったのでいいかと思っていたのですが、案外うまくいかないものですね。
まあ、DuoCodeを使ったブラウザ版だとそもそもDirectXからして使えないので描画周りの使いまわしはそもそも完全にはできない前提だったのですが。

無題

Windows10向けにちゃちゃっとゲーム作るにはどうすればいいのか調査中。
本格的なゲームを作るための本格的な技術文書なら見つかるけど、個人でそれなりに面白いの作れたらいいなーというのにぴったりなのが見つからない。

SideCIとゲーム記

SideCI
GitHub上で自動的にコードレビューしてくれるサービスです。
ちょっと使い始めてみました。
とりあえずMifuminatorで試してみたところ、229個の修正候補が出てきました。

ゲーム記更新しました。
リトルノアです。
ぼちぼちやってます。

DuoCode

C#をブラウザ上で動くJavaScriptにコンパイルするDuoCodeなんてのを見つけました。
JavaScriptではあまり大きなものを作る気は起きないし、もともとC#で作っていたものをWebアプリ化するのには便利そうですね。

Unity

ちょっと触ってみました。
とりあえずカプセルを上下左右に動かせるようにして、その周りに別のカプセルがまとわりついてくるというのができました。
さすがにこれをそのままゲームにするというのは無理ですが、物理演算を有効活用したゲームというのは作ってみてもよさそうですね。

VB Decompiler Lite

VB6のソースコードの復元を試みるページ、ちょっと更新しました。
Variant型はコンパイル後も厄介ごとを生み出してくれるようです。

Node.js

Reactのコード自動コンパイルのためNode.js入れてみました。
自動とはいっても、ファイルを常時監視しているわけではなく、コマンド一つで実行される形式なので、全自動ではなく半自動ですね。

PHP7

うちで今使っているバリューサーバーがPHPの最新バージョンの7に対応したので、一部で試してみました。
内部処理に大きな変更が加えられたものの、互換性にはこれまで以上に気を使っていたらしく、5.6対応コードから全く変更なしでもそれなりに動いていました。
ただ、モジュール版を使えないのと、エラーの取り扱いが変わったことで、一部、正常に動作しないページが出てきたので、本格的に使うのはもっと先かな、といったところです。

<前 次>