なとりうむのメモ帳

アナログな趣味が多めのしがないIT系エンジニア。技術のこと、好きなこと色々書きます。

Excelで日付を曜日表示にする

Excel関数は使用頻度が低いとあっという間に忘れちゃうのです…。
と言うことで、日付の表示を曜日にする方法をすっかり忘れちゃったので調べました。

www.atmarkit.co.jp

TEXT(セル指定,"aaa")

そうだ!そうだったね!!!と思い出して大満足です。
私は普段"aaa"しか使わないのですが、色々表記を変えれるんですって。

表示形式コード 曜日の表示形式
aaa 月、火、水、木、金、土、日
aaaa 月曜日、火曜日、水曜日、木曜日、金曜日、土曜日、日曜日
ddd Mon、Tue、Wed、Thu、Fri、Sat、Sun
dddd Monday、Tuesday、Wednesday、Thursday、Friday、Saturday、Sunday
表示形式コードと曜日の表示形式の関係

ほえー英語表記もできるんですね。それは知らなかったです!
貼った記事には1行で日付と曜日をつける方法も書かれているのですが、セルの長さが伸びると読み辛くなるのが苦手であまり使いません。

 

 

You Tubeの著作権とBGM

たまにYou Tube Liveを利用してるのですが、BGMの著作権でのトラブルがかなり多いそうです(Liveに限りませんが)。
何気なく使おうと思ったBGMが問題ないか調べるのは大変です。
なぜならこうなっているからです。

support.google.com

音楽ポリシーの一覧では、曲とその著作権者が設定した現在のポリシーが表示されます。この一覧には、その音楽を使用した動画を YouTube で公開するとどうなるかということだけが記載されています。

著作権者は、所有する音楽を YouTube で使用できるかどうか、また使用した場合にどうなるかを指定する著作権ポリシーを決定します。このポリシーによって、動画が表示されるかどうか、またどのように表示されるかが決まります。音楽ポリシーの一覧に掲載されている音楽を使用すると、著作権で保護されたコンテンツを使用していることを通知する著作権侵害の申し立てが届きます。

はい…楽曲ごとにポリシーが異なっているんです。
当たり前ではあるのですが、毎度調べる必要があるので大変不便ですね…。

なので悩まず使えるBGMが欲しいですよね。
You Tubeがきちんと提供してくれていますよ。
帰属表示が不要なものを選べばより楽です。
BGMだけではなく、効果音も配布されています。

ページへの行き方は次の通りです。
You Tubeの右上の自分をアイコンをクリックし、クリエイターツールへ移動します。
クリエイターツール>作成>オーディオ ライブラリ

f:id:na11_nato:20180515220747j:plain

ここから好きな楽曲を選ぶだけです。
かなりたくさん入っていますから選ぶのも楽しいですね。
私が放送で流しているBGMは全てここから取得した帰属表示不要なものです。

利用方法については下記のページにあります。

support.google.com

無料の音楽の帰属と収益化

  • 動画に帰属を表示する: トラックの横に帰属表示が必要なことを示すアイコン  が表示されている場合は、必ず動画の説明欄にそのアーティストのクレジットを表示してください。帰属について詳しくは、クリエイティブ・コモンズのウェブサイトをご覧ください。

  • 動画の収益化: 無料の音楽は Content ID による申し立てを受けないため、それらの音楽を使用した動画は収益化できます。音楽の商用利用が認められていることを表示するように求められた場合は、音楽の正確なタイトルと、YouTube オーディオ ライブラリからダウンロードしたことを記載するようにしてください。詳しくは、権利の申し立てを目的とした追加文書の提出についての記事をご覧ください。 

 ということだそうです。
こういった規約類は変更されることがあるので、まめにチェックしておきたいですね。

Gmailで他メールアドレス宛のものもまとめて受け取る

複数メールアドレスを持っていらっしゃる方はかなり多いでしょう。
私もそうなのですが、最近はGmailがメインなのでプロバイダとかのメールをGmailで見たいんですよね。
PCを買い替えるたびにメーラーの設定をするのも面倒ですからね。
もう設定されている方も多いかと思いますが、Gmailで他のメールアドレスもまとめて受信できる設定を残しておきます。

  1. Gmailにログインし、"設定"を開きます。
  2. "アカウントとインポート"をクリックします。
  3. ”他のアカウントでメールを確認”の"メールアカウントを追加する"をクリックします。
  4. 下記のどちらかを選択します。
    ”Gmailifyでアカウントをリンクする”
     ログインするだけでOKです。
     対応しているドメインの場合はこちらを利用利用した方が便利です。
    " 他のアカウントからメールを読み込む(POP3)"
     上記の設定が利用できない場合はこちらを選択します。
     通常のメーラーのような設定が必要が必要です。
  5. 4.で選択した内容に合った設定をします。
    " 他のアカウントからメールを読み込む(POP3)"を選択した場合はサーバーの設定などが必要です。
  6. 設定を保存した上で受信ができることを確認します。
    できない場合は設定を見直しましょう。

Gmailでの受信はリアルタイムではなく、一定間隔ごとのまとめての受信となります。
今すぐ確認したい場合は、"設定">"アカウントとインポート">"他のアカウントでのメールを確認"にある"メールを今すぐ確認する"をクリックしてください。

また、Gmailifyの場合は送信時のアドレスを切り替えて利用することが可能になるのでかなり便利になりますよ。

まだ設定されていなかった方は試してみてはいかがでしょうか?

”robocopy”使ったら一瞬で自動バックアップができる

昔バックアップをSyncToyを使ってやっていたんですよ。

Download SyncToy 2.1 from Official Microsoft Download Center

でも最近”robocopy”コマンドを使えば一瞬でできるということを知ってしまいました…
ソフトなんか入れずに、バッチでできたんですね…。

robocopy <コピー元> <コピー先> /mir /log:<ログファイル> /NP

ってバッチに書くだけでミラーしてくれる…すごいです…。
ログファイルも吐いてくれるんです…。ちなみに上記で使っているオプションはこんな意味です。

  • /mir
    指定したディレクトリ以下をミラーしてくれます。
  • /log:
    ログファイルを吐くようにしてくれます。パスで指定すれば別のところにきちんと出力してくれます。
  • /NP
    コピーの進捗(何%まですすんだか)というログを出さないようにします。
    大量にログが吐かれてしまうのでこれは付けておいたほうがいいですね。

他にもオプションはたくさんありますが、よく使いそうなものをチョイスして載せておきます。

  • /R:<再試行試行回数>
    失敗したときに再試行してくれます。
    既定値が 1,000,000ですのでかなり多いです…。
  • /W:<再試行の待機時間>
    再試行をするまでの待機時間です。

他にも便利なオプションがたくさんあるので全量知りたい場合は別途調べてくださいね。

本コマンドがデフォルトで利用できるのはVista以降です。
もちろんWindows Serverでも2008以降で使えます。
バッチ1行書いてタスクスケジューラで仕掛けるだけなので最高です。
複数行書けばそれぞれ別の場所にもバックアップ取れるしいいですね。

Visual Studioのコード メトリックス値の説明

Visual Studioのコード メトリックス値、みなさん使ってますか?*1
これらの値をどのタイミングで目にするかと言えば、Visual Studioで出来上がったコードの規模測定するときですかね。
で、この数値一体なになのか?っていう話ですが、ちゃーんと公式が出してます。

コード メトリックス値

説明部分だけ引用しておきますね。

  • 保守容易性指数 - コードの相対的な保守容易性を表す、0 ~ 100 のインデックス値を算出します。 値が大きいほど、保守容易性が優れていることを示します。 色分けしたコード評価を使用して、コード内の問題部分をすばやく識別することができます。 緑色の評価は 20 ~ 100 の範囲にあることを示し、コードの保守容易性が良好であることを示します。 黄色の評価は 10 ~ 19 の範囲にあることを示し、コードの保守容易性が中程度であることを示します。 赤の評価は 0 ~ 9 の範囲にあることを示し、保守容易性が低いことを示します。

  • サイクロマティック複雑度 - コードの構造上の複雑さを測定します。 これは、プログラムのフローにある、異なるコード パスの数を計算することで作成されます。 複雑な制御フローが含まれるプログラムでは、十分なコード カバレッジを実現するためにより多くのテストが必要となり、保守性が低下します。

    System_CAPS_ICON_note.jpg メモ

    場合によっては、Visual Studio 2010 のメソッドのサイクロマティック複雑度の計算が旧バージョンと異なります。 詳細については、「コード メトリックに関する問題のトラブルシューティング」で Visual Studio 2010 のコードの複雑度の計算における変更点についての説明を参照してください。

  • 継承の深さ - クラス階層構造のルートまでのクラス定義の数を示します。 階層構造が深くなるにつれて、特定のメソッドおよびフィールドが定義または再定義されている場所を把握することがより困難になる場合があります。

  • クラス結合度 - パラメーター、ローカル変数、戻り値の型、メソッド呼び出し、ジェネリックまたはテンプレートのインスタンス化、基本クラス、インターフェイス実装、外部の型で定義されたフィールド、および属性による装飾を使用して、一意のクラスへの結合度を測定します。 適切なソフトウェア デザインでは、型およびメソッドの連携は高まり、結合性は低くなります。 結合性が高いということは、他の型への依存関係が多いために再利用や保守が困難なデザインであることを示します。

  • コード行 - コード内の行の概数を示します。 この数は IL コードに基づいているため、ソース コード ファイル内の正確な行数ではありません。 数が非常に大きい場合、型またはメソッドでの処理が多すぎるため、分割が必要であることを示すことがあります。 また、型やメソッドの保守が困難なことを示す場合もあります。

 「この数値だとよい」的なものはないですが、
ソース全体を測定した際に突飛に悪い数字がないかを見るのはいいかもしれませんね。
全体で最も数値が悪い部分をリファクタリング対象とするのもいいでしょう。
まあ、基本的にUnit Testが書きやすいようにコード分割していけばそんなにひどく読みづらいとか、理解できないほど長いコードにはならないとは思いますが…。
レガシーコードで酷い部分のテコ入れの基準にする使い方がよさそうです。

*1:2017にもあるんですかね?

パスワードを定期的に変更しても特に意味はないです

様々なサービスで利用してるパスワード、みなさんどんな運用をされていますか?
昨年?一昨年?くらいから、「パスワードの定期更新を強制するのは意味が薄い」と話題になっています。
IT系のエンジニアさんや、ITセキュリティに関するお仕事をされている方、ネット住民のみなさんはご存知でしょう。
まだ知らないよーって方向けにまとめておきます。
社内で意味もない定期更新が行われている場合はぜひ運用見直しの場を設けてください。

日本国内で話題になりだしたのは下記がきっかけですね。
pages.nist.gov

強制的なパスワードの定期変更は、利用者に負担を強いてどんどん簡単なパスワードにしてしまったり、サービス間でパスワードを共有してしまい、解読された場合のリスクが跳ね上がってしまうという話です。
しかもこの定期変更をすることで解読を逃れられるのかと言えばそんなこともありません。
なぜなら、パスワードの解読なんて総当たりだったとしても短時間で終わってしまうからです。
パスワードを解読するには2008年の時点で*1かかる時間をIPAが公開しています。

www.ipa.go.jp

IPAではありませんが、企業が2012年にこんな内容を公開しています。

セキュリティ調査レポート Vol.3/パスワードの最大解読時間測定 【暗号強度別】 | サービス | ディアイティ

この細かい数字が実際合っているかはともかく、ハードの進化や処理の効率化によってぐっと時間が短くなることは容易に想像できますよね。

総務省ガイドラインを出しています。

安全なパスワード管理|社員・職員全般の情報セキュリティ対策|企業・組織の対策|国民のための情報セキュリティサイト

また、下記の記事では、定期変更に関して「共有アカウント」に対する言及をしています。
そもそも共有アカウントはダメでしょって話なので、気になった方だけ読めばいいと思います。

www.itmedia.co.jp

「色々運用を変えた方がいいのはわかったけど、これからはどうすればいいの?」って話ですが
利用者

  • サービスが変わればパスワードも変える
  • 短いパスワードは使わない
    ランダムの文字列を覚えるのが辛ければパスフレーズ*2にする
  • パスフレーズを使う場合は解読を難しくするため、本の一節や自身をよく知っている人だと分かる単語は使わず、少し変な文章にする

サービス運営者

  • パスワードを本人の意思で変更できることはOK(そりゃそうだ)
  • パスフレーズに耐えれるように、システムのパスワード文字数制限を緩和する
    *3
  • パスワードの最低文字数の制限を上げる*4
  • 複数の認証方法を組み合わせて使うとより安全(パスワード&指紋認証とか)

パスフレーズを使おうとすると、文字数制限で引っかかることも多いです。
サービスを運用している方にはぜひ制限の緩和をお願いします。
社内の見直しや、日々のサービス利用の見直しに役立つと嬉しいです。

*1:これ超重要です。今はもっとスペックが上がっているのでもっと短くなっています。

*2:ざっくり言うと文章にすることで覚えやすいけど長いパスワードのこと

*3:8文字とか12文字までだと全く足りないです。特に日本語の場合ローマ字入力になるので長くなりがちなのでしっかり余裕を持ったほうがいいです。

*4:最低でも12文字程度がよいのではないでしょうか。将来的なスペックの向上を想定するならもっと上げておいてもいいと思います

コマンドラインからIP Messengerを使う(リマインダなどに使えるよ)

最近は使っている人が少ないかもしれないですが、今でもまめに更新されている老舗チャットツールのIP Messenger
シンプルなUIが嫌いではなくて、地味に他チャットツールと併用していたりします。
データがサーバーに残らずすべてローカルで完結するので、今でも利用している方が結構いるみたいですね。

IP Messengerって何?って方は下記の公式ページをどうぞ。

ipmsg.org

しばらく前にIP Messengerを使ってサーバから定期お知らせをするなんて方法を取っていた時期がありますので、使い方を残しておきます。
超簡単なバッチとタスクスケジューラの組み合わせなのでWindowsデフォルト機能+IPMsgのみで使えるので環境に制限があるところではいいかもしれません。

IPMsgは、コマンドでメッセージ送信可能です。

"[IPMsgインストールフォルダ]\ipmsg.exe" [ポート] /MSG [IPアドレス/localhost] [送信したいメッセージ]

これだけです!とっても簡単ですね!
ポートは省略可能です。(デフォルトポート使っているなら不要です)
何行も書けるので、一度にたくさんの人に送れます。

利用例は下記の通りです。
大体他のものでもっといい方法があるので、こんなこともできるんだーレベルで結構です。

  • タスクスケジューラで設定して、定期ミーティング時間をお知らせする
  • 自動ビルド後のイベントに設定して、ビルド完了をお知らせする
  • タスクスケジューラに複数個数設定して、時間管理の目安に(ローカルにも投げれるので)

ソースは公式サイトで公開されているので、そっちが気になる方もぜひ見てみてください。