PG日誌

受託系 PG が C# の事を書いています

c#のイベントのnullチェックがめんどくさい

c#

イベントってWPFとかだとたくさん呼ぶことがありますが、いちいちイベントにインスタンスが入っているかどうかを確認するとコードがnullチェックだらけになってしまいます。 普通こんな感じです。 // イベントの宣言 public event Action<object, EventArgs> HogeEvent; // イベ</object,>…

クラリネットの運指表

クランポンの楽器を買ったときについていたクラリネットの運指表が横に長すぎて取り回しが悪かったのでA4サイズに加工してみました。最低音~最高音まで網羅していて、それぞれの変え指も豊富なので、現時点で多分どのサイトに掲載されているのよりも詳しい…

cocos2d-xのUSING_NS_CCについて

cocos2d-xのUSING_NS_CCはCCPlatformMacros.hに以下のように定義されています。 #ifdef __cplusplus #define NS_CC_BEGIN namespace cocos2d { #define NS_CC_END } #define USING_NS_CC using namespace cocos2d #define NS_CC ::cocos2d #else #define NS_…

C# の const と static readonly の使い分け

c#

c#でプログラム書いてるとコードを書いているときは、constとreadonlyの区別ってあんまりありませんよね。ついつい定数は全部、constと書いてしまいます。 public static class HogeDefine { public const uint MaxLength = 10; public static uint DataSize…

現在のコードページで表示できない文字を含んでいます。

VisualStudio2013以降で以下警告メッセージが出た時の対処法です。 コードページの警告 hogehoge.cpp : warning C4819: ファイルは、現在のコード ページ (xxx) で表示できない文字を含んでいます。データの損失を防ぐために、ファイルを Unicode 形式で保存…

Windows10のフォントが汚すぎる...

これは、、、、汚すぎない?フォントが。強制的にWin10へ移行させて移行した先が地獄とかWinのユーザー調教厳しすぎます。何YuGothicって。。。 細すぎてかすれてるしぼやけてんじゃん。ちゃんと描画できないのに何で採用した? 目が悪くなったのかと思って…

VS2015 Communityのダウンロード超遅い

VisualStudio2015 Communityのダウンロードは時間にもよると思いますが死ぬほど遅いです。速度が100~200Kbyte/sec程度しか出ない感じです(現在進行形)全体で10G以上あるみたいなので始めるときは覚悟したほうがよさそうですね・・・ トホホ・・・どうやら…

Windows10のアクティブウインドウに色をつける

マイクロソフトのごり押しに負けてWindows10にしたものの、今までのOS使用歴がVista → 7 → 8 → 8.1 → 10 で強制的にOSを変更させられて地雷ばっかり踏まされてばっかりなので少々辟易しています。自宅のPCが不可抗力でWindows10に強制変更させられたのですが…

VisualStudioのスペースとタブの表示・非表示

うへぁ・・・何この表示??!VisualStudio2013を操作中に何かのキーを押してしまったらしくスペースが「.」(ドット)でタブが「→」矢印で表示されるようになってしまいました。元に戻し方がわからない、、、、 と思い、メニューを探していたら編集 > 詳細 > …

VisualStudio2013へ.NET Framework4.6.1を導入する

ちょっと前に、VisualStudio2013へ.NET4.6の導入の仕方を書いたけど.NET4.6.1も同じような手順で導入できます。 4.6.2の導入の仕方 takachan.hatenablog.com 4.6の導入のしかた 前に書いた記事です。takachan.hatenablog.com http://blog.hatena.ne.jp/Takac…

カクヨムのフォントはWindowsユーザーにはお洒落すぎる

はてぶでホットエントリーを眺めていたら「カクヨム」という単語を見つけました。「なろう」と並んでるので何かと思っっていました。何でも、カドカワとはてなが新しく始めた小説投サイトらしいです。開設して間もないみたいですが、何故かヘイトを集めてい…

C# でスレッド ID を取得する

c#

マルチスレッド処理中にログを出力したい時にスレッド番号があったらいいなと思ったので調べてみました。捕捉: GUIアプリのasync/await/Invokeが絡む画面操作関係でこの出力すると全部同じ値になってしまいます。UIがシングルスレッドアパートメントなので当…

コードのコメントはシンタックスじゃなくセマンティクスを書こう

コードの構造とか文法を一生懸命説明するシンタックスコメント職人が世の中に結構いるみたいです。例えばこんなの // ログを出力する Log.WriteLine("ERROR", "Failed to hogehoge function."); Log.WriteLine("ERROR", ex.ToString()); コード見ればわかる…

C#のvarとtry~catchはクソじゃなかった

c#

例外をcatch節で受けるときにException型で受けちゃうとコードインスペクションで引っ掛かります。で、ネットでどうなってるのか調べていたときにメッチャパッションしてるエントリを見つけたので思ったこと書こうと思います。C#のvarとtry~catchが糞すぎる…

WCFで通信エラーになる場合

c#

c#とWCFでプロセス間通信をするためにNetTcpBindingを使って通信を行っていたら以下のメッセージが出力され通信エラーとなりました。 System.ServiceModel.CommunicationException: ソケット接続が中止されました。これは、メッセージ処理時のエラー、リモー…

Duet DisplayをiPad3で試してみた

iPad3は最近のOSにアップデートしてから(7に上げたくらい?)使い物にならないほど速度が遅くなったのでしばらく放置していました。全てが実用に耐えない激重状態で、嫌なら買い直せ的なスタンスが「これがApple教のお布施かぁ・・・」なんて感心していました…

ガチャの確立をシミュレーションしてみた

グラブルが確率を偽って景品表示法に違反しているだとか、To LOVEるのガチャの確率が異様に低いとか世の中ソーシャルゲーム内に設置されれているガチャで騒ぎが起きているようです。その確率で、実際にどれくらいガチャを引けば当たるのか、少し気になります…

AndEngineでdetachSelfしたときに例外が出る場合の対処法

StackOverFlowに普通に書いてあるありますが、自分用のメモまでに… 状況 AnimatedSpriteへAnimatedSprite.IAnimationListenerを設定して匿名クラス内でdetachSelfを記述したときに「IndexOutOfBoundsException」が発生する。 java.lang.IndexOutOfBoundsExce…

c#とJavaの微妙な違い

c#とJavaって基本的な構文は相当似てるんですが、やっぱり違う言語なので微妙に違います。両方を使い比べてみて、やっぱり全く違うんだな、と感じたことをいくつか書いてみようと思います。 アクセス修飾子 アクセス修飾時を省略したときの挙動 Javaの場合 c…

クォータービューを描画しよう

スマホゲーム向けにJavaとAndEngineでクォータービューを描画しよう思います。クォータービューのタイルチップは「ひし形だけでできているタイルチップ」と「足がついてるタイルチップ」 の2種類がありますが、今回ここで扱うのは後者の「足がついてるタイル…

何故かホッテントリ入りしてしまいました

「まさかこんなブログ誰も読まないだろ」なんてIT従事者にあるまじき思考でタイトルをミスリードした上、煽りを入れてたら見つかってしまいました。 (正直、170日以上前に書いたエントリーで存在を忘れていました)ネットに公開しているのだから当たり前です…

MahAppsのTreeViewをWPFで使ったときの話

MahAppsは、WPFでフォームやコントロールの見た目をユニバーサルアプリ風(旧メトロ風)に表示するためのUIライブラリです。 紹介はほかのサイトが詳しいと思いますが、コードがGitHubで公開されていて、紹介とドキュメントが以下のページに乗っています。http…

C# の static クラスとシングルトン考察

C# には言語固有機能として static クラスという機能があります。クラス自体を static と宣言することで、インスタンス作成を禁止し、static 宣言したクラスのインスタンスが複数作成できないようにします。ですがこの機能 GoF のデザインパターンのシングル…

AndEngineのButtonSpriteの制約

ButtonSpriteに設定する3つの画像、「pNormalTextureRegion」「pPressedTextureRegion」「pDisabledTextureRegion」 (それぞれ通常のボタン画像、押されたときの画像、ボタンが無効の時の画像)は、同じBitmapTextureAtlasから作成しないと例外になります。 …

AndEngineのFontのTextureOptions

おい・・・!おいーーー!!! くだらん事で相当悩んでしまった・・・!Fontを生成するときに作るBitmapTextureAtlasの第4引数に TextureOptions.BILINEAR 指定しろっつった奴だれー!?www謎のフチが付いてなんでやねんってなってたけどこれBILINEARE指…

AndEngineのCameraの指定方法

勘違いしていたのは自分だけかもしれませんが、AndEngineのEngineOptionのコンストラクタにBaseResolutionPolicyを指定する際に画面を引き延ばして指定するとタッチ座標が拡大/縮小された分の領域分、増減するのかと思っていました。。。

VisualStudio2013へ.NET Framework4.6を導入する

c#

ちょっと前に、VisualStudio2013へ.NET4.5.2の導入の仕方を書いたけど.NET4.6も同じような手順で導入できます。 4.5.2の導入のしかた 前に書いた記事です。 takachan.hatenablog.com 背景的なもの .NET4.6はVisualStudio2015買ってね。的な事をMSさんおっし…

paizaで杏ちゃんにサンタコスさせてみた

そろそろクリスマスですね!彼女の杏ちゃんにもサンタクロースの恰好を要求してもいいんじゃないですかね?!水着、メガネを杏ちゃんにご着用頂いていましたが今回はサンタコスに挑戦してもらいます。水着回の記事 takachan.hatenablog.comめがね回の記事 ta…

エースコンバット7に正直期待している

な、なんと!エースコンバット7の開発が発表されました!やったー!!http://ace-7.bn-ent.net/ace-7.bn-ent.netwww.4gamer.netPS4で発売みたいですね。 今のところ発売日は未定の様です。

paizaで杏ちゃんにめがねをプレゼントしてみた

昨日は杏ちゃんに水着を着てもらいましたが今日はめがねをプレゼントして様子を見たいと思います。Paizaのイベント paiza.jp水着回 takachan.hatenablog.comサンタコス回 takachan.hatenablog.com ショートカットに「めがね」きっと似合うと思います。ぐふふ…

VisualStudio2013で.NET Framework4.5.2を利用可能にする

普通にインストールすると.NET 4.5.1しか表示されません。 (最近のインストールイメージには入っているんですかね?) 背景的なもの 大体の事情は以下に書いてあるのですがMicrosoft .NET Framework サポート ライフサイクル ポリシー MSのサイトはすぐリンク…

paizaで杏ちゃんに水着を着せてみた

Paizaでお手軽なオンラインハッカソンのイベントが始まりました。paiza.jp 今回は着せ替えソシャゲ風の企画で、アンドロイドの杏ちゃんに着せ替えができるようです。着せ替えアイテムはコードを書いて問題に正解するとアンロックされていくようです。 突如現…

C# のプロパティ構文のアクセス修飾子の指定

c#

本来プロパティは、setter/getterのシンタックスシュガーです。c#は(自動実装)プロパティが便利すぎてsetter/getterだという事を高頻度で忘れてしまうので改めて基本的な事を確認したいと思います。 まずはプロパティの書き方 まず、書き方のおさらいです。s…

c#固有の構文はUMLでどう書けばいいのか?

最終的な実装言語がc#と決まっていて、設計を検討していて、資料作成にUMLを使うと表現が少々難しい事あります。Javaのコンテキストには無いc#固有の文を扱う時にどうやって書けばいいのかわからない構文がいくつかあるので表現方法をどうするか考察します。

はてなのプロフィール画像は反映が遅い

結構前にはてな側で仕様変更があったのか、プロフィールの画像の周囲が丸く縁どられるようになりました。最初アイコンを作った時は64pxの四角い領域の全体を使ってアイコンを書いていましたがちぎれると少し見栄えが悪いです。これが最初に作成した画像です…

C# の region の使いどころ

VisualStudio上でコードを折りたたむ機能で#region ~ #endgreionディレクティブというものがあります。「リージョン」と読みます。「レギオン」だと軍団で「L」と「R」が違うのでご注意を。そんなリージョンですが、以下のように public void Hoge() { #reg…

Webサイトを閲覧している時にどうしても気になること

はてブ経由でWebサイトを巡回していると個人ブログを見る機会も多いですがどうしても気になることがあるので書き起こしておこうと思います。 大きすぎるヘッダーと画像 ページを表示したときにブログのタイトルが表示されている領域が尋常じゃなく大きいペー…

c#のIPAddressクラスでIPv4のフォーマット検証はできない話

c#

c#にはIPAddressクラスがあります。プリニティブ型と同様にParse, TryParseメソッドが用意されています。しかし、これをIPv4のフォーマットの検証に使うと思わぬ落とし穴にはまることになります。 文字列を4つの1バイト数値と3つのピリオドで成る文字列かど…

インフルエンサーという意識が高すぎる言葉

出社前に朝のニュース風ワイドショーを見ていたときでした。経済の話をしてるのにコメンテーター(これも知識人顔をした輩)が、突然インフルエンザの話を始めて「はぁ?こいつ何言ってんだ?」と思った事がありました。 出社中に少々考えてみたがあれは「イン…

職場で同僚や上司に殺意を抱く瞬間

ご注意 以下本文に、非常に刺激の強い言葉、例えば「殺す」や「死ね」が頻繁に出てきますが、あくまで個人の心の中での出来事なので実際に行動に及ぶ意志や意図は一切含まれていません。通報しないで下さい。 広い意味でIT業界の端っこの方でプログラムを書…

WCFの大容量通信でハマった話

c#

WCFでオブジェクトの数が多い(リストに10万件弱)を通信しようとしたところクライアント側で以下のメッセージが表示されました。 System.ServiceModel.CommunicationException: 基礎になる接続が閉じられました: 接続が予期せずに閉じられました ---> Syste…

プログラミング時の集中力を高めるサイト

家でプログラム書いている時って職場と違って部屋がシーンとしてるんですよね。 シーン・・・カチャカチャ、ッターン!!ってあんまり集中できないので、環境音楽をかけてます。 色々使ってみたのですがシンプルで使い勝手のいいいつも使うサイトが固まって…

AndEngineについて

開発が2013年の年末で終わったのかな?更新が無いし今やUnityとかCocos2d-xの方が生産性が高いし、周辺ツールやコミュニティの活発さではAndEngineはもう日本ダメじゃぽいけど一応Javaを勉強するという意味で使っています。 チュートリアルを読む 本家のチュ…

現在のAndroid開発環境のメモ

ちょっと違うパソコンで作業することになった時に自分の開発環境ってどうなってたっけ??と思うことがあったので開発環境をメモっておこうと思います。 使用しているツール 項目 名前 バージョン IDE AndroidStudio 1.3.2 Plugin lombok Downloadしたまま …

Windows版AndroidStuidoで見やすいフォント

さっき色々いじってたらAndroidStudioの設定が吹き飛んでデフォルトの表示がされたんですが、衝撃的なフォントが表示されました。なんだこれは...と思ったらMSゴシックさんじゃないですか。 画像は色だけ復元したときのキャプチャです。右側のコードエディタ…

AndroidStudio 1.3でlombokを数日使ってみた感想

数日前に以下のエントリでlombokをAndroidStudio環境へ導入しましたが、数日使ってみての感想です。takachan.hatenablog.com 使っている機能 自分が使っている機能はシンプルに以下の2つだけです。 @Getter/@Setter val @Getter/@Setter 使うとこんな感じに…

AndroidStudio 1.3でlombokを導入してみた。

仕事では専らc#使ってるのでJava使ったときの機能不足感と記述の冗長さが気になった*1ので、自宅のAndroid開発環境にlombokを導入してみました。以下、導入した時の手順メモです。最近リリースされたばかりの、AndroidStudio1.3 + lombok plugin 0.9.6.14で…

c#とWPFでマンデルブロ集合を表示してみた

せっかく夏休みなのでc#とWPFでマンデルブロ集合を表示してみました。 ちなみに数学的な理解はそんなにしていませんので数式の意味とか方程式的な解説は他のサイトさんをご確認ください。ちなみに前回テトリスを作った時の記事はこちら。テトリスを c# と WP…

お知らせアイコンのバッチ機能がうっとおしい

アイコンの上に小さい赤い丸の中に数字が書かれている通知アイコンありますよね? あのアイコン通知アイコンって言うんですか?あれって、通知が来たことをお知らせしてしてくれるものだと思うんですが、 ユーザーが何らかのアクションを起こす 何らかのレス…

スマホでディズニーキャラクターが使えないと指を刺される現実

Lineのツムツムってアプリありますよね?ディズニーキャラクターのパズル風のゲームです。 ディズニーが絡んでるのかLineの技術力なのかわかりませんがアプリ自体は結構丁寧に作ってあってゲーム性も高いです。ただ、スマホなのでルビーという課金要素があり…