こんにちはmtjです。
ワクチン3回目を打ちましたが 自分の想定以上の副反応でした。
約3日は熱が出ていたのですが 熱は38度超えており体はかなりしんどいという合せ技でした。
スポーツ飲料、鎮痛剤は買ったほうがいいという助言が身にしみました。
これから打ちに行くという方は是非簡単に食べれる物 スポーツ飲料 鎮痛剤は用意したほうがいいかと思います
想像以上に動けませんでした。
こんにちはmtjです。
ワクチン3回目を打ちましたが 自分の想定以上の副反応でした。
約3日は熱が出ていたのですが 熱は38度超えており体はかなりしんどいという合せ技でした。
スポーツ飲料、鎮痛剤は買ったほうがいいという助言が身にしみました。
これから打ちに行くという方は是非簡単に食べれる物 スポーツ飲料 鎮痛剤は用意したほうがいいかと思います
想像以上に動けませんでした。
先日、あるクラスのソートのためにICompareble<T>を実装したラッパークラスを作成したのですが、
コードレビューの際にLinqのOrderByを使用すれば良いとの指摘を受けました。
以下のようなクラスとそのリスト、値の演算メソッドがあった際に、
class Hoge {
public int No { get; set; }
public int Value { get; set; }
}
var hogeList = new List<Hoge>(){ /* 要素たくさん */ };
int CalcHeavyForSort(int value) {
var ret = 0;
// 重い演算
return ret;
}
次のように書くことで、
hogeList = hogeList.OrderBy(x => CalcHeavy(x.Value)).ThenBy(x => x.No).ToList();
1. Valueの演算結果により昇順でソート
2. 1によるソートの順序内でNoにより昇順でソート
を実行してソートされたリストを取得できます。
降順ならOrderByDescending, ThenByByDescendingです。
特殊な比較を行いたい場合は、IComparerを引数に与えることもできるようです。
引数で与えたラムダ式の実行も1要素1回だけのようですので安心ですね。
(内部でラムダ式の戻り値のリストを作成し、
インデックス同士を比較するメソッド内でその戻り値リストへアクセスしているようです。)
雑ですが、もしも次のようにソート時に同じ重い演算を複数回実行する必要がある場合は、
hogeList = hogeList.GroupBy(x => CalcHeavy(x.Value))
.ThenBy(x => CalcHeavy(x.Value) * x.No).ToList();
次のように匿名クラスでラッパーを作り、それをソートすると良さそうに思います。
hogeList = hogeList.Select(x => new {
Source = x,
CalcedValue = CalcHeavy(x.Value),
})
.OrderBy(x => x.CalcedValue)
.ThenBy(x => x.CalcedValue % x.Source.No)
.ToList(x => x.Source);
Linqは便利で可読性が高く保守もしやすいので、
シビアなパフォーマンスが求められるケースでなければ積極的に使っていきたいです。
こんにちは。masugiです。
私の最近の休日の過ごし方を振り返ってみると、四六時中Youtubeの視聴、ネットサーフィン、twitterの徘徊のいずれかをしている気がします。
このような目を酷使するような休日の過ごし方によって、眼精疲労による頭痛がおこり、それが休日明けの業務まで続くことがありました。
私は休日はパソコンを長時間操作する習慣があり、長い時には1日中パソコンに向かっているのですが、
休日明けに頭痛に悩まされながら業務を行うはめにならないために、
(可能ならば)長時間にわたるパソコンの使用を控える、パソコンを長時間使用するときは定期的に休憩をとる、適切な姿勢でパソコンを使用するなど、
眼精疲労を予防することを心がけようと思います。
TextBoxコントロールのTextプロパティなどはプロパティウィンドウで複数行入力が可能です。
以下の画面のように右端の下矢印ボタンクリックで複数行用の入力ウィンドウがポップアップします。

今回、これと同じ挙動を自作のプロパティで行いたく、調べた結果、以下のように属性指定すると複数行入力が行えることがわかりました。
[Editor("System.ComponentModel.Design.MultilineStringEditor, System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a", typeof(System.Drawing.Design.UITypeEditor))]
public string Text {
get => _Text;
set {
...
}
}
こんにちは mtjです。
自分の親にプログラムは誰でもできると話したら数学ができないと難しいと返されたので表題に書いてある通りの事を考えました
個人的には数学は必要なとこは必要だけど、基本必要無いと思います。
計算を作ってコードを作る部分はありますが、基本はそこまで高度な計算は考えません。
大体出来合いのライブラリ側が計算はやってくれます
もちろん動作を理解する上ではできることに越したことはありませんが、数学が苦手だからプログラムを諦めているような人は一度プログラムを触ってみることをおすすめします。
自分は商業科、専門学校出なので数学Ⅱ、数学Ⅲなんて触ったことすらありません
それでもプログラムは普通に書けるので正直学校の成績とプログラムは結びつけるべきではないと思っています。
勉強するやる気とパソコン関係が好きならプログラムは誰でも書ける物と思っています。
今年の4月からインフォテック株式会社に入社しましたmasugiでございます。
これからよろしくお願い致します。
現在私は研修として、C#を用いたソフトウェアの開発の練習を行っています。
その際、要求仕様に関する不明点を質問しなかったり、要求仕様を(実際には正しく理解していないのに)正しく理解していると思いこんで実装を進めた結果、実装したソフトウェアの機能が要求仕様と違う、ということがありました。
練習だから良かったものの、これが実務だとお客様からお叱りを受ける、ということになりかねません。
このことから、要求仕様を正しく理解するために、どんなに些細なことでも不明点の質問や確認事項の確認を怠らないようにすることが大事だと感じました。
また、開発に関して悩んでいることがあったら、最適解が思いつくまで自分で悩み続けるよりも上司や先輩に相談した方が早いことがあることも学びました。
最後になりますが、研修で開発ツールの使い方やコーディングの仕方をしっかりと習得して実務に臨みたいと思います。
若手育成の目的で、先月からペアプログラミングを始めました。
本来は常にペアプログラミングを行なうのが良いのでしょうか、まずは週に数回行ってみて様子を見ています。
それでも、余裕が無くてなかなか時間が取れていないです。
こんにちは mtj です。
ゲームをよくする手前 購入した人にダメージをあたえる いわゆるクソゲーとなるものを購入する頻度は高い
購入したお金はもうどうしようもないが そこから友達と何故これが産まれたかを話し合うのはとても面白い
またプロジェクトで自分がこういう物を作らないようにするためのトレーニングにもなります。
ゲームは様々な要素が組み合わさってできています
・コントローラーでの操作性
・UI等のデザイン(配置等も含む)
・ゲームとして面白さ
・シナリオとして面白さ
・3D等グラフィック
それ以外にもジャンルによっては様々ありますが ゲームの内容によって何が足りないか
何故足りなくなったがだいたい想像できます
そういった要素ごとに色々考えながらマネージメントの本を読むとマネージメント力が上がると思います
また、ここからどうやったら面白くなる、改善案等も考えることでそのような製品開発のトレーニングにもなります。
是非マネージメントをやったことが無い人はクソゲーをクリアしてトレーニングしてみてください。
いい勉強代になると思います。
先日、USBカメラを接続するためにドライバのインストールを行ったのですが、
その際に以下のエラーが発生し、インストールに失敗しました。
「このハードウェアのデバイスドライバーを読み込むことができません。
ドライバーが壊れているか、ドライバーがない可能性があります。(コード39)」
結論から言うとWindowsセキュリティ設定が原因で、
Windowsセキュリティ->デバイスセキュリティ->コア分離->メモリ整合性をオフに変更
により解決しました。
以下、解決までの過程です。
1. 試行錯誤
次のようなことを試したのですが、解決も原因特定もできませんでした。
・カメラやケーブル、接続ポートを変更
・メーカーHPにてドライバの対応OS, CPUの確認
・ドライバを最新のものに更新
2. PC初期化
社内の他のいくつかのPCでは問題なく成功しており、
PC自体に原因がありそうだったのでPCの初期化も行いましたが、
それでもインストールは成功しませんでした。
3. メーカー問い合わせ・解決
にっちもさっちも行かなくなり、メーカーさんに問い合わせたところ、
次の手順でWindowsのセキュリティの設定を緩めれば良いと教えていただき、
無事解決しました。
スタート->設定->更新とセキュリティ
->Windowsセキュリティ->デバイスセキュリティ
->コア分離->コア分離の詳細
->メモリ整合性をオフに変更
原因となったメモリ整合性、PCによっては出荷段階で既にオンになっているようなので、
ドライバのインストールに失敗した際には確認してみると良いかもしれません。
その後、本件について補足情報などないか検索していたところ、
エラーメッセージ+エラーコードがタイトルの記事に解決策が掲載されているのを発見しました。
プログラミングの際はエラー発生の初期段階でエラーメッセージの検索をするのですが、
今回は失念していました。今後は気を付けたいです。
弊社で開発している、ある案件のVisualStudioソリューションを開くのが異常に遅い問題があり、
てっきりプロジェクト数が100個くらいあるのでしかたがないと諦めていたのですが、
原因がわかり速くなりました。
問題は「Microsoft Visual Studio Installer Projects」で作成したインストーラプロジェクトでした。
インストーラプロジェクトを含んでいるとVisualStudioソリューションを開いていからマウス操作がまともに行えるようになるまで1分くらいかかっていたのですが、
インストーラプロジェクトを省くとマウス操作が数秒で行えるようになりました。
今は、ソリューションに空のダミーインストーラプロジェクトを含むようにし、インストーラを作成するときだけソリューションファイルを置換してダミーインストーラプロジェクトから本番インストーラプロジェクトに切り替えるようにしました。
もっと早くに気づけばよかった。