ごまなつ Blog

楽しく働ける世界を目指して

【C#】BinaryFormatterを用いた配列のコピーはかなり遅い

結論 配列をディープコピーしたいのであれば、一つずつコピーした方が良いです。 経緯 C#では、クラスの配列をArray.Copyしたときシャローコピーになります。正確に言うと、2階層目からシャローコピーになります。1次元の配列であれば、Array.Copyでディープ…

【C#】DataGridViewComboBoxを一度のクリックで開きたい

結論 F4を押す処理を追加する方法が出てくるが、F4はALTと同時押しするとアプリケーション終了になるなど、ショートカットキーに使われており何か起こる可能性があるのでお勧めしない。 CellEnterイベントで、DropedDownを使おう private void DataGridView_…

【C#】親フォームの中央に子フォームを表示したい

結論 親フォーム側で子フォームを呼び出すときに、 var frm = new Form1; frm.Owner = this; frm.StartPosition = FormStartPosition.CenterParent; 経緯 フォームアプリを作っており、子フォームにデータの内容を入力して、その内容を親フォームに反映する…

【C#】FolderBrowserDialogが使いにくいので、OpenFileDialog でフォルダを指定する

こちらの記事を参考にしています。 qiita.com 実現できるメソッド void BrowseFolder() { using (var ofd = new OpenFileDialog() { FileName = "SelectFolder", Filter = "Folder|.", CheckFileExists = false }) { if (ofd.ShowDialog() == DialogResult.O…

【C#】ドラッグ&ドロップが作動しないのは、権限が異なるため

ドラッグ&ドロップでファイルパスを取得する機能がWindowsアプリにあります。その機能を実装したにもかかわらず、VisualStudio上で動かしてもこの機能が動作しない。ドラッグ&ドロップできるときは、マウスカーソルが変化しますがそれすらも起こらない。調…

【C#】クラスの配列要素の代入は、シャローコピーになる

C#で、xmlファイルをシリアライズ・デシリアライズするためのクラスを宣言して、その内容を変更していました。そこで、配列要素の代入なのにシャローコピーに苦しめられたのでメモです。 public class exampleclass { [System.Xml.Serialization.XmlElement(…

【C#】ウィンドウの大きさに応じてパーツの大きさも変えたい

デフォルトでは、ウィンドウを最大化しても配置されたパーツはその大きさのままで、変更されません。そのため、不自然になります。ウィンドウの大きさに追従して、パーツを大きくするためには、Anchorプロパティを変更します。 Anchorプロパティ ウィンドウ…

【C#】配列のコピーは=でやってはいけない

基本的な話です。 配列aを配列bにコピーして、その後配列bの要素を変更したいとします。 a[3]=[1,2,3] b[3]; a=b; b[3]= b[3]+2; 普通にコピーするだけならこれでいいだろ、と思うのですが、これでは参照ごとコピーされ、a[3]の値も変更されてしまいます。つ…

【C#】ListViewで移動禁止にしたい

結論 private void listView1_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e) { if (e.IsSelected && (e.Item != selectedItem)) { if (isChanged) { e.Item.Selected = false; selectedItem.Selected = true; if (Counter)…

【C#】ListView_SelectIndexChangedは、一瞬-1がインデックスに入る

ListView_SelectIndexChangedは、ListViewの選択されているアイテムのインデックスが変更された時に発火するイベントハンドラです。なので、処理は private void ListView1_SelectedIndexChanged(object sender, EventArgs e) { //何らかの処理 } となります…

「アジャイルな強いチームを作るチームビルディング超実践ガイド」を読んでの感想

TL;DR チームビルディングのやり方がわからない人にぜひ読んでほしい。意義とやり方がわかる。 同人誌なのにカバーと帯がついてるよ。まるで商業誌のようになってるよ チームビルディング 私は組み込み系の職場であり、一人が担当製品のソフト面、一人が担当…

多くのボードゲームはなぜ4人用なのか

私の持論ではありますが、なぜ個人勝負のボードゲームが4人用なのか考えたことを書きます。 TL;DR 2人用だと万人受けしない、3人用だと一人勝ちする人が出る、5人以上用だとゲームが長くなりがち。4人用だと家族でやりやすいといった点もある(ヨーロッパの…

xmlファイルのencodingと実際の文字コードが異なっている場合どうなるか

結論 serealizeの行でエラーになります。文字コードをそろえればうまくいきます。 背景 XMLファイルを読み書きするにはいろいろ方法がありますが、今回はシリアライズ、デシリアライズを使って読み込むことにしました。XMLファイルの構造に従ってクラスを作…

ゲーミンググラスG-SQUAREからPLAIDeに乗り換えて2ヶ月経った

私はゲーミングアイテムを集めたり使ったりするのが好きです。そして視力が悪いので医療器具として眼鏡をかけています。2年前、ゲーミンググラスの存在を知り、G-SQUAREを使うようにしました。最近、PLAIDeというゲーミンググラスが発売され、そちらが気にな…

【Windows】範囲指定のスクリーンショットの撮り方はWindows+Shift+Sが簡単

WindowsPCでのスクリーンショットの撮り方は、Alt+PrintScreenとWinShotしか知らなかったのですが、Windows+Shift+Sでもスクリーンショットが撮れることを知りました。 Windows+Shift+Sは自分で範囲指定できる! PrintScreenだと画面全体、Alt+PrintScreen…

Alice, Bob, Carol,...,Zoe

暗号通信の分野では、登場人物の名前にAlice, Bob, Carolが使われます。たいていの場合、AliceがBobにメッセージを送り、第三者としてCarol、攻撃者としてEveが登場します。これらの名前の由来を調べてみました。 法則 Alice, Bob, Carol,Eveが暗号でよく使…

【C# .NET】関数名と行番号、ファイルパスを取得する

エラーのログを見るときに、関数名と行番号があるとどこが問題か特定しやすくなります。どうやれば表示できるのか調べました。 using System.Runtime.CompilerServices; public static string GetInfo([CallerLineNumber]int line = 0, [CallerMemberName]st…

ノロウイルス体験記(手洗いをしよう!)

ウイルスが話題となり、手洗いをするようになっていると思います。手を洗っていないが故に罹ってしまうほかのウイルスとして、ノロウイルスがあります。中学生の時にノロウイルスに罹ったことがあるので、その体験を書こうと思います。 簡潔に 水を飲むと即…

自分に合ったマウスの探し方

はじめに 自分が一番好きなのはこのマウスです。薬指を置く場所があるのが好きです。 Naga Trinity https://amzn.to/2SZ3nK9 人によって自分に合うマウスは異なるので、それを探すきっかけになると幸いです。 なぜマウスの話をするのか デスクワーカーはコン…

【Windows】よく開くページをキーボード操作で開こう

キーバインド設定の一つであるホットストリング機能を用いて、どんな画面でも特定の文字列をタイプするとWebページを開くようにします。 今回は、Amazonでお買い物をしたい人を仮定してamazon.co.jpを開きます。 Webページを開く AutohotKeyを使います。公式…

技術同人誌を書く人へ。宣伝は絶対にしよう!

表題の通りです。宣伝は絶対にしましょう。 なぜか 私の経験から話すと、宣伝をしていないと全然売れません。過去に2冊頒布し、どちらも宣伝を怠った結果、売れ行きは微妙でした。 逆に宣伝をしっかりしている方は売れている印象があります。そもそも、売れ…

解凍ソフト、何使ってる?

最近フリーゲームを再開した フリーゲーム全盛期は、zipとlzhファイルが多かったなと懐かしくなりました。解凍ソフトはLhaplusを使っていました。今ではExplzhを使ってるんですが、自分が使っていた解凍ソフトを紹介しようと思います。紹介するソフトはすべ…

簡単なポートフォリオを作った

HTMLとCSSで簡単なポートフォリオ(自己紹介程度)を作りました。 https://akrolayer.github.io/Portfolio/ なぜ作ったのか 自己紹介としてまとめておきたいことを書いておこうと思ったからです。 ホームページのデザインわからん… 一からCSSを使ってホーム…

Podcastを始めてみた

雑ホビ.amというPodcastを始めてみました。 anchor.fm 自分の趣味について、話していきたいと思っています。 なぜ始めたのか 今、私の観測範囲ではPodcastを始める人が続出しています。この流れに乗ろうと思いました。 なぜ趣味の内容にしたのか 自分が提供…

経理部の同期と1on1を試みた話

はじめに 先日の技術書典にて、1on1カードを購入しました。ですが、弊社は1on1の文化がある会社ではなく、私は社会人2年目のため1on1の機会がありませんでした。けれども、せっかく購入したのだから、使ってみたいと思い、同期と1on1をしてみようと考…

2020年の目標

2020年の目標 技術的な内容の登壇をする 転職活動をする 簡単にでも振り返る癖をつける 趣味にダラダラ取り組むのをやめる Podcastをやってみる 簿記の勉強をする 技術的な内容の登壇をする 昨年は8回ほど登壇しましたが、TCGとキーボード・マウスなどの趣味…

2019年を振り返る

2019年を振り返ります。日記形式です。 勉強会と出会う 正確には去年の12月ですが、そこから勉強会に参加し始めました。最初に参加した勉強会はしがないラジオmeetup2でした。その次に読書の技術を勉強する会に参加してエンジニアの登壇を応援する会…

ダブルチェックについて調べた内容の整理(やらかしアドカレ登壇内容)

本番環境でやらかしちゃった人Meetup〜聖なる夜の懺悔〜に参加して、発表した内容のまとめです。 yarakashi-production.connpass.com レポートは既にあるので割愛。 sogaoh.hatenablog.com 私の発表内容 speakerdeck.com やらかしの内容は、間違えると重大な…

第二回技術書同人誌博覧会にサークル参加した

12月14日に開催された、第二回 技術書同人誌博覧会にサークル参加しました。頒布した本はこちらです。 新刊 gomana2.booth.pm 既刊 gomana2.booth.pm 委託の本 booth.pm 以下は、しっかりしたレポートというよりはメモです。 当日朝 設営を行いました。正面…

化粧品業界の競合はリモートワークだと予想できた人はどのくらいいただろう

この記事はOysters Advent Calender 集え、牡蠣戦士!!! 9日目の記事です。 化粧品業界の競合はリモートワークだったということを聞き、思ったことを書きます。 化粧品業界の競合はリモートワークだった リモートワークでは、出社する必要がありません。…