投稿

2020の投稿を表示しています

JavaScript で F5 キーを無効化する方法

イメージ
JavaScript で F5 キーを無効化して、再読込をさせないようにします。 いくつか方法があるので、お好みの方法で。 JavaScript で記述する場合 やや古典的な書き方。環境を問わず使える方法です。 window.onload = function () { document.onkeydown = function (e) { return (e.which || e.keyCode) != 116; }; } jQuery で記述する場合 Common 等に追加しておくのが一般的でしょうか。 $(function () { $(document).keydown(function (e) { return (e.which || e.keyCode) != 116; }); }); BODY タグに書いちゃう こんな方法もあります。ASP.NET の部分ビューのように、レイアウトを切り分けているのであれば、この方法もあり。 <body onkeydown="return (event.keyCode != 116)">

Visual Studio で「 1 つ以上のエラーが発生しました」が出てデバッグできない

イメージ
デバッグアダプターを起動できませんでした。追加情報を出力ウィンドウで確認できる場合があります。 ……出力ウィンドウで確認できませんでした。 こういう場合、ほとんどの場合、表示されているメッセージは意味がわからない。 ブラウザを変える 例えば、Chrome でデバッグをしていて、このようなエラーが出たとします。 デバッグは停止しているけど、他に開いている Chrome のウィンドウ(タブ)は無いだろうか? 全てのウィンドウを閉じて、深呼吸してから(少し時間をおいて、プロセスが終了するのを待つ)、もう一度デバッグを開始すると、何事もなかったかのようにデバッグできる場合がある。 それでもダメなら、ブラウザを変えてみる。 ツールバーにある「▶」ボタンの右端をクリックすると、Web ブラウザーの変更ができるので、他のブラウザー(Edge とか)に変更するとデバッグできるようになります。 ……たぶん。(私はできた)

JavaScript で Alt キーや Ctrl キーと同時に押されたキーを取得する

イメージ
Web システムにおいて、キーボードによるアクセスキーが要件にあった場合の対応。 キーの同時押し Ctrl キー, Alt キー, Shidt キー等の押下は、event でキャッチする。 その後、同時に押されたキーを判定する。 なお、やや冗長に見える書き方ではあるが、if 文を & で一行にまとめようとするとうまくいかなかった。 $(function ($) { $(window).keydown(function (e) { // Alt キーとの組み合わせをキャッチする。 if (event.altKey) { if (e.keyCode == 13) { alert("Alt + Enter"); return false; } } // Ctrl キーとの組み合わせをキャッチする。 if (event.ctrlKey) { if (e.keyCode == 13) { alert("Ctrl + Enter"); return false; } } // Shift キーとの組み合わせをキャッチする。 if (event.shiftKey) { if (e.keyCode == 13) { alert("Shift + Enter"); return false; } } }); }); ブラウザのショートカットキーは無効化できない なお、上記方法では、ブラウザのショートカットキーは無効化できない。 例えば、誤動作を防ぐ目的で「Ctrl + W (タブを閉じる)を無効化」といったことはできない。 同時押しするボタンのキ

C# の input string was not in a correct format エラー

文字列が変換できなかった場合に発生するエラーで、 例えば、string.Format で変換対象となる文字列の中に「{(中かっこ)」等の「意味がある」文字列が混ざっていると、このエラーとなる。 // エラーが発生する var s = string.Format("{今日の日付:{0}", DateTime.Today.ToString("d")); 文字列を組み合わせてから変換をかける場合などには、入っているデータに注意が必要。

Excel で入力した文字に勝手に取り消し線が入る

イメージ
……次の行には、取り消し線は要らない。普通の文字を入力するぞ。 なんでやねん。 これは、Excel のお節介機能のひとつ。 オプションを開き、 [ 詳細設定 ] - [ 編集オプション ] にある、 「データ範囲の形式および数式を拡張する」 のチェックを外す。 この機能は、同じ形式(この場合は取り消し線)が 3 行以上続いた際、次のセルにも自動的に同じセルの形式を適用するオプションのようです。 このオプションを解除して、他のセル(取り消し線の書式がないセル)をコピーしてから、もう一度入力してみます。 今度は大丈夫です。 Mac の場合、画面上部にあるメニューの「Excel」をクリックして環境設定を開きます(「command + , (カンマ)」 でも開きます)。 「編集」を開きます。 「編集オプション」にあります。

Windows 10 でネットワークにある NAS が表示されない

イメージ
エクスプローラーのアドレスバーに、「¥¥192...」という感じで NAS の IP アドレスを入力して Enter を押すと… なせかブラウザが起動して、アクセスできない現象が出ました。 ツールバーのアドレスからアクセス タスクバーを右クリックし、[ ツールバー(T) ] - [ アドレス(A) ] をクリックすると、タスクバーに「アドレス」という入力領域が表示されます。 ここに IP を打ち込んでみると… エクスプローラーから、対象の NAS が表示されました! タスクバーの「アドレス」と、エクスプローラーのアドレスバーの違いはよくわかりませんが、ひとまずこれで目的は達成できたのでよしとします。 Windows 10 のよくわからない挙動です。

コピーした行の挿入が表示されない時はフィルタされていないかチェック

イメージ
Excel を使っていて、右クリック時に「コピーした行の挿入(コピーしたセルの挿入)」が表示されないことがあります。 「並べ替えとフィルター」 で表示される行を絞っていないか? 並べ替えとフィルターで行の絞り込みをしている場合、「コピーしたセルの挿入」はできないのです。 並べ替えとフィルターを解除しないと、行全体のコピー & 挿入はできません。

Mac の エラーコード-50 は、ファイル名が長すぎるのでリネームする

イメージ
ファイルをコピーしようとして発生。 短い名前にリネームしたらコピーできました。

テレワークで眠くなったので CO2 モニターを買ってみた

イメージ
働き方が変わったことで、日本でもテレワークが一般的になってきました。 開発現場でも、ようやく在宅勤務が許可されるケースも増えてきたのではないでしょうか。 テレワークは眠い 在宅勤務は、通勤が必要なかったり、自分の生活スタイルで仕事をすることができたりと、メリットもありますが、在宅勤務を始めてから、現場に出て仕事をするよりも眠くなる(ぼーっとする)ように思いました。 睡眠時間が足りないという話ではなく、ひょっとして自室の二酸化炭素濃度に原因があるのでは? と考えるようになりました。 厚生労働省のビル衛生管理の指針 厚生労働省は、ビルの衛生管理の指針として、基準を発表しています。 これによると、温度は 17℃〜28℃、湿度は 40%〜70%、 そして、 二酸化炭素濃度は 1,000ppm 以下を推奨 しています。 そもそも、二酸化炭素濃度が高まると、健康には以下のような悪影響があると言われています。  450ppm 許容範囲  600ppm 匂いや空気のよどみを感じる 1,000ppm 軽い眠気が生じる 2,500ppm 健康への悪影響が想定される CO2 モニターを買ってみた まず、仕事をしている自室の二酸化炭素濃度を計測するため、 CO2 モニターを購入してみました。 私が購入したのは、気温と CO2 濃度が交互に表示され、 CO2 濃度によりランプの色が変わるシンプルな CO2 モニターです。 使い始めて驚愕したのは、部屋を締め切って作業をしていると、あっという間に 1,000ppm を超える数値だったことです。この状態で数時間作業をしていると、二酸化炭素濃度は、1,500ppm を超えていきます。 なにより、就寝中に締め切った状態でいると、 朝には 2,000ppm 近くまで CO2 濃度が上昇 していました。 最近の建物は機密性が高いといいますが、こういった悪影響もあるのですね。。 生産性を高める工夫に投資せよ CO2 モニター購入後は、時折 数値をチェックし、 二酸化炭素濃度が 1,000ppm を超えていた場合は換気するようにしました。 以前より、頭が冴えるように感じます。 意外に盲点なのですが、テレワークで生産性を上げるには

blogger robots.txt によりブロックされました

イメージ
Blogger でサイト運営を行っていると、Google Search Console から時々このようなメールが来ます。 結論から言うと、 なにもしなくてもよい 、みたいですね。 Bloggerでインデックスカバレッジの問題が検出される理由と対処について

VLCでも修復できないAVIを再構築する

イメージ
破損した AVI ファイルは、フリーソフトの VLC で修復することができます。 ほとんどの場合は VLC で修復できるのですが、稀に VLC でも修復できない(修復に時間がかかる、または途中で止まる)ことがあります。 そんな時に役立つソフトウェアが DivFix++ です。 AVIファイルのインデックスを再構築 DivFix++ は、破損した AVI ファイルのインデックスを再構築します。 フリーソフトで、Windows だけでなく、Mac と Linux にも対応しています。 「DOWNLOAD」 から、ダウンロードできます。 ダウンロードしたファイルを解凍し、「DivFix++.exe」を実行します。 英語表記ですが難しいことはなく、 「Source Files」に破損した AVI ファイルをドラッグアンドドロップし、 「Fix」ボタンをクリックすると AVI ファイルを自動的に修復してくれます。 (修復したファイルは、対象の AVI ファイルと同じ場所にコピーされます) VLC でも AVI ファイルのインデックスの修復ができなかった場合はお試しあれ。

Excel のグループ化でオブジェクトが折りたたまれない

イメージ
Excel のグループ化は便利です。 オブジェクトが折りたたまれない たまに、オブジェクトが折りたたまれないという残念な状況になります。 そんな時は「図形の書式設定」を開き、プロパティで「セルに合わせて移動やサイズ変更をする」に設定すればちゃんと折りたたまれるようになります。

マカフィーを解約した

イメージ
ウィルス対策として McAfee を使っていましたが、初期設定では自動更新されるんですね。 McAfee 自体に不満はありませんが、2 年間使用して、そもそも McAfee があったから助かった! というシーンがなかったので、解約しました。 解約はチャットか電話で、時間は 9 時から 18 時だけ 自動更新されてしまっていても、返金条件を満たしていれば返金(解約)できます。 マカフィー個人向け製品の払い戻し(返金)に関する規約 ドキュメント ID: TS102426 私はチャットで解約しました(電話の場合、通話料がかかります)。 チャットならレンスポンスも早く楽でした。土日でも大丈夫みたいです。 ちなみに、登録していたカード情報も削除してくれました。 サービスは良かったので、また機会があったら使ってみたいですね。 日本企業にありがちな、解約方法が分かりづらかったり、つなぎ止めをされるという馬鹿な話がなくて好感もてます。

VIsual Studio のインストール容量を減らす

イメージ
Visual Studio も 2019 になり、インストール時に必要となる容量はかなり減りました。開発する環境だけインストールするように柔軟に選べるようになったからでしょう。 (初期の VS では CD-ROM 5 枚組で半日作業でしたね。MSDN のヘルプもローカルにインストールしていましたしw) とはいえ、HDD 容量の少ないモバイルノートでは、数ギガ単位でもインストール時の容量を減らしたいものです。 ダウンロードキャッシュを無効にする Visual Studio のインストールは、オンラインインストーラーになり、ファイルをダウンロードしながらダウンロードする方式になっています。 このため、ダウンロードしたファイルをローカルにキャッシュする機能が備わっています。 これは変更時にいちいちダウンロードしなくて良い、ということで便利さもありますが、当然 HDD を圧迫します。 チェックを外すと、インストールや変更時に再度ダウンロード作業が発生するということなので、ローカル HDD の容量を少しでも削りたい場合はチェックを外しておくといいですね。 【 変更方法 】 Visual Studio Installer を起動 インストール済みコンポーネントの [変更] をクリック [インストールの場所] にある、ダウンロードキャッシュの「インストール後にダウンロードキャッシュを保持します」のチェックを外す

ASP.NET MVC Bundle で読み込みパフォーマンスを改善

イメージ
外部ファイルとした JavaScript や CSS ファイルを大量に読み込ませようとすると、サーバーへの要求が多く発生し、ページの読み込みが遅くなります。  ASP.NET MVC の Bundle 機能を使うと、これら静的ファイルの読み込みのパフォーマンスを改善させることができます。 バンドルとは ソリューションの中にある、App_Start フォルダ下に BundleConfig というファイルがあります。これは、ページに読み込ませる JavaScript, CSS のファイルを管理するためのもので、Bundle と呼ばれており、ASP.NET MVC 特有の機能です。 Bundle すると、読み込ませる JavaScript(スクリプトファイル)、CSS をひとつにまとめてくれます。ページ要求数を減らすことでパフォーマンスの向上を狙っています。 また、JavaScript, CSS ファイルの中にあるコメントや空白を削除して(ミニファイ化)ファイルサイズを減らすことで、ネットワーク負荷も低減させてくれます。 BundleConfig の設定方法 設定方法は、BundleConfig クラスの RegisterBundles メソッド内に、以下の文を加えるだけです。 true にすると、JavaScript, CSS ファイルがミニファイ化されてしまい、デバッグ時に追えないため、リリース時のみ有効にする設定がオススメです。 #if DEBUG == false BundleTable.EnableOptimizations = true; #endif

Windows 10 で ファイルに付けた評価の星を消す

イメージ
Windows のエクスプローラーで、間違えてクリックして「評価」が付いてしまうことがあります。消そうと思って、星のマークをクリックしても、全ての星を消すことができません。 評価は、「プロパティや個人情報を削除」 というメニューから消します。 「このファイルから次のプロパティを削除」 を選択し、「評価」 にチェック。 「OK」 ボタンをクリックします。 評価自体を消すことができました。 間違えて高評価にしてしまっても慌てなくて大丈夫です。

Office アプリケーションを正しく起動できませんでした (0xc0000142) を修復する

イメージ
Excel が起動できなくなりました。 Windows のアプリと機能から、オンライン修復を行うことで直りました。 Office をオンライン修復する プログラムの追加と削除を起動します。 アプリを検索します。「Office」や、365 の場合は「365」とタイプすると出てきますので、「変更」ボタンをクリック。 「クイック修復」を試してみて、ダメだったら「オンライン修復」を選択してみましょう。解決するはずです。

新しい Blogger で HTML モード に切り替える

イメージ
今までの Blogger エディター   新しい Blogger エディター 変わりすぎ…… HTML エディターの切り替えボタン これは所見ではわからない。 新しい Blogger は、使い勝手が変わりすぎて、今までに慣れた人ほど使いづらさを感じる。 しかし、待望の? iPad(Chrome) でも編集できるようになったのは良いね。 エディターが変更されました(2020/7/18 追記) 今度はタイトルの下、一番左のマークをクリックすると HTML モードになります。 コロコロ変えすぎ……。

ASP.NET と .NET Framework の関係と将来性

イメージ
ASP.NET と .NET Framework 業務アプリではどれを選ぶべき? 2020 年。.NET Framework が登場してから 20 年近くが経過しました。 そして、テクノロジーの進歩と時代の要求に合わせて、.NET Framework は大きな変化の時を迎えました。 私は .NET Framework 1.1 が登場した頃から .NET に関わっていますが、 今、ASP.NET と .NET Framework を選定する際にどうすれば良いか をまとめました。 .NET Framework と .NET Core、そして.NET まず、プラットフォーム(アプリケーション開発・実行環境)の話から。 大きなポイントはこの通り。 .NET Framework は 4.8 で最終バージョン 今後は、セキュリティパッチ等の提供のみ行われます。 .NET Core は、2020 年秋に登場する「.NET 5」に統合 新機能は .NET 5 に追加されていく。 もう少し詳しく説明すると、以下の通りです。 .NET Framework Windows サーバーに対応した、(従来までの).NET Framework。 サポート期間は、それぞれの OS のサポートライフサイクルに従うため、OS のサポートが続いている限りセキュリティパッチがリリースされます。 .NET Core マルチプラットフォーム(Linux でも動く)に対応した .NET Framework。 .NET Core は、3.1 が最終バージョンです。 3.1 は LTS(Long Term Support)で、リリースから 3 年間(2022 年 12 月まで)サポートされます。 .NET 5 .NET Core をベースに、Xamarin、Unity、IoT、AI 全ての分野、あらゆるデバイスをサポートする意欲的なプラットフォームです。 今後 マイクロソフトの .NET 投資全てはこちらに注がれます。 .NET 5 以降は、.NET 6, .NET 7...とリリースされていく予定です。 ASP.NET は複雑な状況 さて、.NET の Webアプリケーションフレームワーク である ASP.NET は

ASP.NET 業務アプリ開発時のフレームワーク選定

イメージ
現在の ASP.NET の状況 2020 年。 .NET 5 の登場を控え、フレームワークとしての ASP.NET を列挙してみると、これだけ種類があります。 ASP.NET Web Forms ASP.NET MVC ASP.NET Core MVC ASP.NET Razor ページ Blazor もう少し詳しく説明しましょう。 1. ASP.NET Web Forms Web の概念を意識させず、Windows Forms のアプリケーションを作成するように、高い生産性で Web 開発が行えたのは衝撃的でした。 一方で、マイクロソフト独自の独特な「お作法」が多く、そこは色々と批判も多い部分ですが、手軽に Web アプリケーションを作れるメリットは、今でもあります。 ViewState によるパフォーマンス問題はありますが(これはけっこう大きいですけど……)、今でも解説書の新刊が発売されている状況から、まだ現役で使っている現場もあるのかもしれません。 2. ASP.NET MVC MVC パターンによる Web アプリケーションの開発を行えます。 Web Forms とは概念が全く異なっているため、登場時、Web Forms 開発者はかなり戸惑いました(学習を諦めた技術者も少なくありません)。 テストのしやすさ、メンテナンスのしやすさ、そして、パフォーマンスの大幅な改善。 エンタープライズ向けアプリケーション開発の現場では、.NET 開発におけるメインの選択肢となるでしょう。 3. ASP.NET Core MVC もともと、ASP.NET MVC 6 として開発されていたものです。名前が変わって、Core MVC となりました。 .NET Core で ASP.NET MVC を選択すると、このフレームワークになります。 API、非同期、タグヘルパーといった機能が強化・追加され、従来までの ASP.NET MVC で「イケてない」部分が細かく改良されています。 今後は、こちらが主流になっていくものと考えられます。 4. ASP.NET Razor ページ MVC ではなく、Web Forms に近い概念をもっています。.aspx と .aspx.cs に別れていた

Excel セルの列幅を自動調整するには Alt + HOI (ホイ)

イメージ
Alt + HOI(ホイ)で列幅を自動調整 Excel で、入力した内容(文字)に応じてセルの列幅を調整するには、マウスでダブルクリックしているかもしれません。 これをマウスを使わずショートカットキーで行うと一瞬です。 ※ このコマンドは、選択されているセルに合わせます。 対象のセルにカーソルを合わせて、キーボードの Alt + H + O + I を押します。 Alt + ホイ です。 もう覚えましたね。

Apple Music の曲を再生するためには Apple Musicにサインインする必要があります。

イメージ
Windows Store でアップデートにエラーが出ていないか? Windows 版 iTunes で音楽を再生しようとした時に、こんなエラーが出た。 もちろん、サインイン済み、Apple Music を購読中。 まず試したのは、一度サインアウトして、再度サインインする方法。  → 解決せず。 次に試したのは、[ iCloud ミュージックライブラリをアップデート ] の実施。 (メニューの [ファイル] - [ライブラリ] )  → 解決せず。かつ、アップデート中は激しくマシン負荷がかかる。 最後に試したのは、iTunes のアップデート。 iTunes のアップデートは、Windows Store 経由で行う。 Windows Store を開き、アップデートをかけてみると……エラーが発生! 再試行したら、今度は成功。 iTunes を再起動させたところ、無事に症状が解決。 Windows アップデートに絡んだエラーなのか? Windows もイケてないが、iTunes もダメすぎる。

モックアップツールのおすすめ (開発者目線)

イメージ
業務アプリの世界では、開発者が画面もデザインすることが多々あります。 ただし、(残念ながら)ほとんどの業務アプリは、デザインのセンスが全くない、「ダサい」画面だったりします。 スマートフォンの Cool なアプリに慣れ、一般人でもデザインに対して目が肥えている現代。 業務アプリであっても、少しは画面デザインを Cool にしたい。 UX のこともあるけれど、まずは小綺麗な画面を顧客に提示するためには、モックアップツールが便利です。 開発者目線のモックアップツール モックアップツールを検索してみると、以下のことが分かりました。 ツールは英語のものがほとんど(国産のツールは、ほぼない) モバイル向けに特化しているものも多い(Web 画面をデザインしたい) 利害関係者たちにすぐに確認してもらえるよう、オンライン版が主流(ブラウザで、すぐ確認してもらえる)。 見た目はデザインできるけれど、その画面の後に「開発」が待っているのです。 テキストボックスやボタンに処理を入れることを考えてほしい。 私が使っても良いな、と思ったおすすめは次の通りでした。 MockFlow テンプレートが豊富。Bootstrap 用のテンプレートを選択すれば、ASP.NET MVC の画面デザインも簡単。画面遷移図、ワークフローも作成可能。 英語ツールだけど、なんとなくわかる。 タイプ:オンライン型(ブラウザ上で操作) 言語:英語 価格:1ユーザー $14 /mo, 3 ユーザー $29 /mo(フリープラン有) Bootstrap Studio ASP.NET MVC 向けの画面デザインをするためにあるようなツール(笑)。 レスポンシブ時のデザイン確認も一発でできる。 顧客に提示するモック作成に最適。最終デザインとの齟齬がない。 インストール型で、買い切り型というのも安心。 タイプ:インストール型 言語:英語 価格:$29 (1年間のアップグレード), $60(永続的にアップグレード可) ※ 日本の代理店から買うと上記値段ではない。 かなり高い 。 検索するとよく出てくる以下のツールは、私の要望には合わなかった。 prott オンライン型の国産ツール。 デザイナーファースト。モ

VB はいつまで使える? → もう新規開発で使うのは止めよう

イメージ
Microsoftは、今後 Visual Basic に 新機能は追加しない ことを明言しました。 ただし、サポートは継続するそうです。 Microsoft Plots the End of Visual Basic https://www.thurrott.com/dev/232268/microsoft-plots-the-end-of-visual-basic .NET 開発は C# で行うことになりますね。 今でも事実上そうなのですが、VB.NET を採用している業務アプリも、たまに見かけます。ただ、今後は VB を使っての新規開発は、いよいよ選択しづらい段階に入ったと言うべきです。 ひとつの時代が終わった気がしますね。

C# DataTable の先頭に行を追加する

DataTable に行を追加する DataTable に行を追加する場合、対象の DataTable に対して NewRow() することで、行を追加できます。その際、追加する方法によって、好きな場所に行を追加することができます。 そのまま追加する(末尾) var dt = new DataTable(); // DataTable に行を定義する dt.Columns.Add("CD", typeof(int)); dt.Columns.Add("Name", typeof(string)); var addRow = dt.NewRow(); addRow["CD"] = 10; addRow["Name"] = "山田太郎"; // 行を追加 dt.Rows.Add(addRow); DataTable の先頭に追加する 先ほどの例で追加した行の前に追加してみます。 var dt = new DataTable(); // DataTable に行を定義する dt.Columns.Add("CD", typeof(int)); dt.Columns.Add("Name", typeof(string)); var addRow = dt.NewRow(); addRow["CD"] = 10; addRow["Name"] = "山田太郎"; // 行を追加 dt.Rows.Add(addRow); addRow = dt.NewRow(); addRow["CD"] = 1; addRow["Name"] = "山本一郎"; // 先頭(ポジション が 0 の位置)に追加する dt.Rows.InsertAt(addRow,0); ちなみに、指定したポジションに既に行データがある場合、 その行の後ろに追加されます。 上記の例でポジションに「1」を指定すると、「山田一郎」は 2 行目に追加されます。

資料作成に役立つアイコン(商用利用可)

イメージ
PowerPoint で資料を作る際に使えるアイコンを配布しているサイトのまとめ。 SVG形式のアイコンは、拡大縮小も きれいにできます。 ICOOON MONO シンプルで使いやすいアイコンを配布しています。 商用利用可能なアイコン素材をフリー(無料)ダウンロードできます。 使用条件を守れば、クレジット表記、許可なしで利用可能。 ぱっと見、白黒のアイコンだけ? と思われますが、ダウンロードする際にカラーを自由に設定できます。 https://icooon-mono.com/ HUMAN PICTOGRAM2.0 「ヒト」に特化した素材を提供しているサイト。 スポーツ、店舗、イベント等、様々な素材があります。 http://pictogram2.com/ ICONFINDER 英語サイト。とにかく量が多く、カラーアイコンも多数 掲載されています。 配布しているアイコンは、有料・無料、どちらもあります。 https://www.iconfinder.com/ Simple Icons 英語サイト。企業のロゴを使いたいならこのサイト。 https://simpleicons.org/