投稿

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

Firefox で複数のタブを閉じる時の確認をしない設定変更

イメージ
すべてのタブを閉じてよろしいですか? Firefox のこのダイアログ、正直いらないですよね。 消す方法を考えた時、[ツール] - [オプション] に 「同時に複数のタブを閉じる時は確認する」 があるのですが、実はこれではありません(笑)。 アドレスバーに about:config と入力する。動作保証対象外になります!と表示されますが、無視して 「危険性を承知の上で使用する」 をクリックします。 検索バーに warnoncloseothertabs と入力します。 browser.tabs.warnOnCloseOtherTabs が出てきますので、ダブルクリック。値が false 担っていることを確認。 Firefox をすべて閉じて、再起動します。 これでうっとうしい 「タブを閉じる確認」 からオサラバできます。お疲れ様でした。

IE11 は OS によりいつまで使えるか違うのでサポート終了日を一覧にまとめた

イメージ
IE 11 は、最新版にしている限り、OS のサポート期限と同じサポートライフサイクルとなっています。 2020 年 1 月 15 日(水)までサポート Windows 7 の IE 11 Windows Server 2008 R2 の IE 11 (Windows Server 2008(無印)の IE 9 はこの日までサポート) 2023 年 1 月 11 日(水)までサポート Windows 8.1 の IE 11 Windows Server 2012 R2 の IE 11 (Windows Server 2012(無印)の IE 10 はこの日までサポート) 2025 年 10 月 15 日(水)までサポート Windows 10 の IE 11 2027 年 1 月 12 日(火)までサポート Windows Server 2016 の IE 11 サーバー OS の IE を閲覧に使うことはないはずですが、IE のコンポーネントを使った「何か」のようなものはある…んですかね? 閲覧に使っているという話であれば、一般的には Windows 10 の 2025 年 10 月がデッドラインという認識で良さそうです。

モバイル Suica アプリのログイン画面でパスワードを忘れた場合

イメージ
iPhone の モバイル Suica アプリを始めて使う場合、記名式の Suica を登録後、次にアプリを起動すると「ログイン画面」が表示されます。 ん? パスワードってなんだっけ? となりますね。

Tech21 の iPhone X 用ケースを購入した

イメージ
iPhone X にしたので、Tech21 のケースにしてみました。

Chrome で hulu の「動画の再生中に問題が発生しました...」 が発生する

イメージ
普段はアプリで観ているのですが、PC で観ようとしたらこうなりました。 Chrome と Firefox では「申し訳ございません。動画の再生中に問題が発生しました。更新ボタンを押していただくか、インターネットの接続状況をご確認ください」と表示されます。 調べたところ、解決方法は ありません 。 IE で再生するしかないようです。 今どき IE のみ対応って……。

うざい日経のメール配信を停止する

イメージ
日経から送られてくるメールを削除するのが日課という人は多いのではないでしょうか?w

New Tab Redirect がおかしいので一旦 削除した

イメージ
chrome://apps/ が消えない Google Chrome の拡張機能・New Tab Redirect。 Chrome 61 から? 新しいタブを開いた際に「chrome://apps/」が消えずに、そのまま検索キーワードを入力すると「(検索キーワード)chrome://apps/」とおかしなことになる減少が発生するようになりました。 アプリのショートカットから開けば良いので、一旦 削除しました。

Windows 10 で SONY ZX300 の USD-DAC の音が出ない

イメージ
SONY NW-ZX300。いいですよね。初日に買いました。 イチオシ機能の一つに、PC との接続をウォークマンの音質で楽しめる USB-DAC があります。 しかし、私もそうですが、これが動作せず音が出なくなる不具合が多数報告されているようです(Windows 10 だけ?)。 初回インストール時は音が出ますが、再起動すると「スピーカーまたはヘッドフォンが接続されていません」と表示され、認識されなくなります。 一応、USB-DAC 機能は SONY 製の Music Center for PC というソフトしか推奨されていませんが、どの音源でも(例えば YouTube )聴きたいところです。 そのうちドライバアップデートで直るかもしれませんが、とりあえず以下の方法で USB-DAC 機能を使用できます。 Music Center for PC で USD-DAC で聴く 正攻法です。今のところこれで音が出るはずです。 Music Center for PC を起動する。 [ ツール ] - [ 設定 ] - [ オーディオ出力設定 ] を選択する。 出力モードを ASIO にする。 Sony Audio Driver を選択して、OK ボタンを押下する。 この設定を行うと、一応音楽は聞けます。 ドライバを入れ直して USB-DAC で聴く ややトリッキーな方法です。あまりオススメできませんが…。 ZX300 を一度 PC から外す。 デバイスマネージャーを開く(Windows キーを押して「dev」とか入れるとおなじみのが出ます)。 サウンド、ビデオ、およびゲーム コントローラーを展開する。 WALKMAN を選択して [ デバイスのアンインストール ] を行う。 ZX300 を PC に接続する。 デバイスに再び WALKMAN が認識され、自動的にドライバがインストールされる。 この方法なら、PC のすべての音が出るようになる…はずです。 ただし、再起動するとまた認識されなくなります。Oh... 管理ソフトの Music Center for PC などもそうですが、どうもソフトウェア周りがダメすぎる印象です。ハードウェアだけではなくこういう部分もしっかり作ってから出荷してほしいですね。 [追記]

C# 7.0 で「コンパイラの必須型 TupleElementNamesAttribute が見つからないため~」のエラー

イメージ
C# 7.0 からメソッドの戻り値に複数の Tuple 型を返却できるようになり便利になりました。しかし、ターゲットフレームワークを.NET Framework 4.7 に変更していざ試してみるとビルドエラーが…。 エラー CS8137 コンパイラの必須型 'System.Runtime.CompilerServices.TupleElementNamesAttribute' が見つからないため、タプルを利用するクラスまたはメンバーを定義できません。参照が指定されていることを確認してください。 どうやら NuGet から System.ValueTuple をインストールする必要があるとか。 System.ValueTuple で検索して、インストールします。

OneNote 2016 は規定のフォントを変更できない

イメージ
OneNote の規定のフォントを変更するには、 [ OneNote オプション ] - [ 基本設定 ] - [ 規定のフォント ] で変更できる「そうです」。 OneNote 2016 で既定のフォントを変更する - support.office.com しかし、新しくページを作った際に、 規定のフォントはここで指定したフォントになりません。 OneNote2016 フォントが自動で切り替わる不具合 - answers.microsoft.com 不具合だそうです。 でも、おそらく次期バージョンまで修正されないでしょうね…。

C# 6.0 から Console.Writeline が簡単な書式で書ける

イメージ
Console.WriteLine("Hi!"); Hello World でお馴染み、みんなが大好きな Console.WriteLine メソッドが、C# 6.0 からは簡単な書式で書けるようになりました。 「cw」とタイプした後、Tab を 2 回押すやり方の方がひょっとしたら早いですけどねw

Backlog を無料で利用する方法

イメージ
有料プランだけになったのか?と思いましたが、まだフリープラン自体は残しているみたいですね。右下に小さくリンクが設置してあります。 フリープランはスタータープランに近い感じですが、総容量は 100M です。 かなり少ないですね…。 フリープランで利用できる機能をおしえてください https://www.backlog.jp/faq/service/post-71.html

git log コマンドプロンプトの操作方法

イメージ
git log でログを表示させた際に、(END)で止まってしまい、「なんだこりゃ、どのキーを押せばいいんだ!?」となったのでメモ。 まず「h」を入力するとヘルプを出せます。 戻りたいときは「q」です。 これでコマンドプロンプトを開き直さなくていいですね。

Visual Studio でソースの編集箇所を git stash で退避する

イメージ
改修作業中に「やっぱりこっちのバグを先に直して!」という声をかけられることも多々あります。 Git の場合、修正内容をコミットするか、元に戻さないとブランチを切り替えられませんが、git stash で修正内容を一時的退避することもできます。

Word で 表が勝手に太字になるのを直す

イメージ
表を挿入したときに左列が勝手に太字になってしまう事象の直し方がわかりました。

タイムリーのケースで内蔵ブルーレイドライブを外付け化

イメージ
TIMELY OPTICAL-CASE525SATA 5 インチの内蔵ブルーレイドライブが余ってしまっていたので、眠らせておくのも勿体ないので外付け化しました。

Visual Studio の Git で存在しないリモートブランチを削除する

イメージ
チームエクスプローラーのブランチでは、Pull Request 後に消したリモートブランチであっても表示が残ります。ローカルに複製された設定が残っているからです。 右クリックから「リモートからブランチを削除」で消していくのもいいのですが、これはフェッチコマンド(-p)で一発削除(整理)することができます。 [アクション] - [コマンドプロンプト] を開く git fetch -p を実行する これでリモートに存在しないブランチ表示が消えます(現在のリモートリポジトリと同一になる)。

「対象のパスが長すぎます」を 7-Zip File Manager で一発削除する

イメージ
「対象のパスが長すぎます」で削除できないファイルを削除する ファイル名の長さは、対象のフォルダーに対して長すぎる可能性があります。短いファイル名に変更して再実行するか、またはより短いパス名がある場所に移動してください。 なにかの拍子に削除できないファイルが混入した際に、Windows のエクスプローラーからは削除できなくなってしまうことがあります。短いパス名にも変更できません。 これは Windows の化石のような互換性維持(フォルダ名+ファイル名の長さ限界)のための「仕様」なので、そのままでは削除できません。 一番簡単に削除したいなら 7-Zip File Manager というソフトを使います。 7-Zip https://sevenzip.osdn.jp/ 削除したいフォルダを開きます Shift + Delete を押下します(右クリックの削除では削除できない) 注意点として、この方法で削除した場合はごみ箱に移動せずに削除されることです。 誤って削除しないよう気をつけて実行しましょう。

Windows で MeCab のユーザー辞書をコマンドから作成する

イメージ
MeCab のユーザー辞書を作成する方法です。ユーザー辞書を作成するための CSV を作成し、mecab-dict-index.exe を叩くだけです。MeCab がインストールされている必要があります。

Azure 上で Web.Config を設定する際にハマった

イメージ
Azure に配置した Web アプリケーションにおいて、アプリ設定から Web.Config の値を上書きすることができます。 Web.Config は " や & などを実体参照(" とか & 等)にエスケープしますが、Azure で設定する際にはエスケープせずにそのまま " や & と記述します。 接続文字列や URL 等でよく設定することなので、Azure に乗せたら動かない、ということが起こってしまいますね…。

[C# 7] int.TryParse の out 変数を省略する

イメージ
C# 7 の TryParse TryParse 系は使用する前に変数を用意しておかなければならず、ときに無駄な変数を宣言するという微妙なコードになってしまうこともありました。 C# 7 からは第二パラメーターに渡す変数の仕様が少し変更されて便利になりました。 out にそのまま変数宣言ができるように _ の登場により TryParse の変換結果がいらない場合でもスマートに書けるように var s = "0"; // true, 判定だけをしたい var b = int.TryParse(s, out int _); // i は宣言されるため、以降の処理で使用可 int.TryParse(s, out int i); // 1 i = i + 1; out の後は var でも OK 。 C# 7.0で知っておくべき10の新機能(前編) http://www.buildinsider.net/language/csharplang/070001

コマンドプロンプトでは Ctrl + V ではなく Alt + Space と E, P

イメージ
コマンドプロンプトの貼り付けショートカットキー コマンドプロンプトでペーストを行う場合は、Ctrl + V ではなく、Alt + スペースキーでメニューを出した後、E, P と押します。

Selenium Builder と IE11 で UI テスト

イメージ
Selenium による UI テスト http://www.seleniumhq.org/ Selenium はポピュラーな UI テストツールですが、Firefox のアドオンである「Selenium Builder」を使えば、テストケースをプログラムしなくてもテストケースを作成することができます。

ASP.NET MVC のカスタムエラーページ

イメージ
ASP.NET で 404 等のエラーが発生した場合、デフォルトで用意されているエラー画面が表示されます。 Web.Config にカスタムエラーページを設定することで、独自のエラーページを表示させることができます。 <system.web> <customErrors mode="On"> <error statusCode="404" redirect="~/404.html"/> </customErrors> </system.web> 例)404 エラー発生時にルートに配置した 404.html を表示させる。

DateTime.TryParse の out を省略する

イメージ
TryParse メソッドでは第二パラメーターに対応する変数を out と共に渡さなければなりません。 var s = "2000/01/01 0:00:00"; var d = new DateTime(); DateTime.TryParse(s, out d); TryParse を判定だけに使いたい時には out を省略したいですが、省略自体はできない仕様です。 しかし、以下の書き方で一行で完結させることができます。 var s = "2000/01/01 0:00:00"; // value は変数名。なんでもいい。 DateTime.TryParse(s, out DateTime value); ちなみに、int の TryParse ではこの書き方はできません。 C#6.0 の言語仕様策定で却下されたそうです。 【関連記事】 [C# 7] int.TryParse の out 変数を省略する

ASP.NET MVC の Razor で Bootstrap Popovers の改行ができない

イメージ
Bootstrap の Popovers で改行をしたいときは、html: true に設定して、改行コード(br タグ)を入れれば改行されます。 ただし、ASP.NET MVC の Razor の値をセットしたい場合は、 @Html.Raw() で、HTML エンコードされていないデータをセットする必要があります。 Razor の値はそのままでは HTML エンコードされて出力されるため、 がそのまま出力されてしまうのです。

ASP.NET MVC での $ is not defined

イメージ
$ is not defined とは $ が定義されていないという残念なエラーですが、$ は jQuery の定義です。 ASP.NET MVC では、App_Start 内に Script や CSS をバンドル(まとめる)するための設定を書きますが、これを参照するページ(デフォルトでは _Layout.cshtml)では読み込み順序に気をつけなければいけません。 内に Style.Render を書いて、 直前に各種 js を書きます。

Bootstrap の Popover に CSS を適用させる

イメージ
Bootstrap の Popover に対して自作の CSS を適用させようとした際に、class 名を設定しても当たらなかったのでメモ。 Popover は JavaScript で生成されるエレメントのため、デフォルトのクラス名で指定する必要があるらしい。 .popover-title { } .popover-content { }

TS2304 名前 '$' が見つかりません。

イメージ
jQuery は初期設定では、TypeScript(.ts)内で読み込めません。これは、型定義ファイルが無いからです。 型定義ファイル(d.ts)を落とす 型定義ファイルは様々ありますが、NuGet から「jquery.TypeScript.DefinitelyTyped」を検索するのが簡単です。 パッケージのダウンロードが完了すると、Scripts フォルダ配下に typings > jquery > jquery.d.ts が配置されます。

C#で複数行の文字列を改行ごとに分割する

イメージ
文字列に対してある文字を元に分割したい場合(CSV ファイル等)、Split メソッド一発で簡単に分割できます。 var text1 = "あ,い,う,え,お"; // 「あ」「い」「う」「え」「お」の配列になる var result1 = text1.Split(','); 改行コードの場合は、こんな感じ。 var text2 = "あいうえお\r\nかきくけこ\r\nさしすせそ"; // 「あいうえお」「かきくけこ」「さしすせそ」の配列になる // StringSplitOptions.RemoveEmptyEntries は空行が無視される var result2 = text2.Split(new string[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

ローカルにある SQL Server 2016 Express への接続方法

イメージ
SQL Server 2016 Express に Management Studio 17 から接続します。 インスタンス名の確認 基本的に SQL Server のインスタンス名は固定ですが、バージョン違いで色々とインストールされているとわからない場合があります。 マシンにどのインスタンスで SQL Server が入っているのかは、SQL Server インストールセンターの「インストール済み SQL Server 昨日の検出レポート」で確認できます。 SQL Server 2016 セットアップ検出レポートという html が出力されます。 インスタンス名は、おなじみ「SQLEXPRESS」です。 Management Studio から SQL Server Express へ接続 Management Studio からは、接続先マシン名と対象インスタンスで接続できます。 ローカルからなので、localhost\sqlexpress となります。

float で高さがずれる問題を overflow の設定で直した

イメージ
float で div コンテナを横並びのレイアウトを組んだ際に、高さがズレてしまう事象が発生。 原因がいまいちわからなかったのですが、float を格納している div コンテナに overflow: hidden; を入れて解決しました。 float のデモページも参考になります。 Clear Float Demo http://webdesignerwall.com/demo/clear-float/

C# の i++ と ++i におけるインクリメントについて

イメージ
C# においてインクリメントを行う場合は、「i++」など、「++」と表記することが多いです。しかし、「++i」のように「++」を頭に持ってきても同様の動きとなります(内部的には若干異なるらしい)。 数字をインクリメントする // インクリメント var i = 0; i++; // 1 Console.WriteLine(i); ++i; // 2 Console.WriteLine(i); i++を文字列にする しかし、以下のような書き方をすると… var i = 0; // 0 Console.WriteLine(i++.ToString()); ひょっとすると想定した結果ではないことに驚くかもしれません。 「i++」は、インクリメント前の数値が返却されます。 ++iを文字列にする では、こう書いたらどうなるでしょうか? var i = 0; // 1 Console.WriteLine((++i).ToString()); 「i++」は、インクリメント後の数値が返却されます。 二つの式を比較すると、「++i」の場合はカッコで括らないと ToString() できません。「i++」はそのまま ToString() できます。これは i そのものを返却するからですが、このあたりの挙動を見ると、内部的に異なった動作であることが理解できます。 ちょっとした違いなのですが、あまり気にしないで書いている部分なので、ちゃんと動作確認をしないととんでもないバグが出てしまう可能性があります。 もちろん、一番わかりやすいのはこのような書き方です。 var i = 0; i += 1; // 1 Console.WriteLine(i.ToString());

ファイルパスから拡張子を除いたファイル名を取得する

イメージ
ファイルパスからファイル名を取得する System.IO.Path クラスには、ファイル名を操作するための便利なメソッドが用意されている。例えば、ファイルパスからファイル名を取得する場合は、GetFileName メソッドを使う。 var filePath = @"C:\hoge\hoge-1\test.text"; // test.text var fileNameWithExtension = Path.GetFileName(filePath); ファイル名から拡張子を除く 取得したファイル名から拡張子を除いたファイル名だけを抽出したい場合は、ChangeExtension で拡張子を置換してしまえば取り出せる。 var filePath = @"C:\hoge\hoge-1\test.text"; //test var fileName = Path.ChangeExtension(Path.GetFileName(filePath), null);;

C#で先週の月曜日や日曜日を取得

イメージ
DayOfWeek という enum から今日の曜日を引き、さらに 6 日前の日付まで遡る(AddDays)することで算出します。 var today = DateTime.Today; // 先週の月曜日 var mondayOfLastWeek = today.AddDays(-(int)today.DayOfWeek - 6); // 先週の日曜日 var sundayOfLastWeek = today.AddDays(-(int)today.DayOfWeek - 7);

C#の匿名型をリストにする

イメージ
匿名型はリストにすることもできます。 var anonymous = new[] { new { hoge= "ほげ", hogehoge = 10 }, new { hoge= "ほげー", hogehoge = 20 }, new { hoge= "ほげーー", hogehoge = 30 }, }; // foreach で回す foreach (var a in anonymous) { Console.WriteLine(a.hoge); Console.WriteLine(a.hogehoge); }