[VisualStudio] Visual Studioで使う改行コードを指定する方法

環境

元々これを調べたきっかけは、Unityで作ったプロジェクトファイルを開いたときに
改行コード に関する警告が必ず出ていたからです

There are inconsistent line endings in the ‘Assets/Script/xxxxx.cs’ script. Some are Mac OS X (UNIX) and some are Windows.

Windowsで作業してたとしても、Unityのプロジェクトはで作られたソースコードは
改行コードが LF なんですよね
Visual Studio のデフォルトは CR+LF

それで改行コードが混じってますよ~とVSが警告出してくれてたんですね。。。

プロジェクト内では、Windows と macOS が入り乱れている状態なので
CR+LF に統一も出来ず
LFに統一するしかない…

そんなときは、.editorcongfig ファイルを作成するのがおススメです!

.editorcongfig ファイル

[*]
end_of_line = lf
charset = utf-8-bom

end_of_line で改行コードを LF 指定にしています
あとUnityで日本語を扱うなら、Bom付きのUTF-8 が良いらしい(?)

この.editorcongfig ファイルをUnityプロジェクト直下に置けばOK

Visual Stusio で編集したコードでも、LFの改行コードとなりました

警告無く作業が出来るようになって、小さなストレスから解放♪


[Windows10] 範囲選択スクリーンショットを撮る機能の紹介

macには、範囲選択してスクリーンショットを撮る機能がずいぶん前からあるんですけど

Windowsはしばらくありませんでした…

でも(いつから出来るようになったのかよく知らないけど)
Windows10でも標準機能で、範囲選択スクリーンショットが出来るようになってたので
それを紹介しておきます


1) ウィンドウズマーク + Shift + s

を押すと、こんな↓↓↓範囲選択をする機能が現れます

2) 選択が終わると、クリップボードにコピーされます↓↓↓

3) さらに上記の
 「画像をマークアップして共有するには、ここを選択してください」
をクリックすると

切り取り&スケッチ ツールが立ち上がります!

これで簡単なお絵描きやトリミングが出来るようになりました

5) 良い感じに調整できたら、右下のファイル保存マークをポチッ!

ファイルが保存!やったーv(o ̄∇ ̄o)

もちろん、切り取り&スケッチツールを使わずに
好みのペイントツールを立ち上げて
Ctrl + v で貼り付けてもOK(・ω・)ノ

こういうシンプルな機能が欲しかった~


[MSMVP] 2019年7月 Microsoft MVP for Developer Technologies を再受賞しました

遥佐保(はるか・さお)です

今年も7/1付けでマイクロソフトさまより MVP を受賞させて頂きました
カテゴリー名称は Developer Technologies となります

去年はC++17の機能を勉強していく会を平日の晩にやっていました
(あの勉強会、ほんと楽しい…!)

なんと!10回めの受賞です!!
立派な古株><。

こうやってコミュニティ活動を行っていける環境に感謝しつつ
今期もまた楽しく、役立つ何かを発信し続けていければなと、改めて決意したのでした

今後ともどうぞ、
よろしくお願いします


[macOS] 自分メモ!Mac手に入れたら最初にすること(多少Windows風)

新しくMacを入手したときの、自分なりの設定とかインストールするものを列挙してます
Windowsに慣れた人ならきっとやりたくなるキーボード設定なども書いてます

完全な自分メモですが、Windows開発者の方の参考になればー!


最初の最初に入れたいソフト


AppleStore系

キー入力系の設定

日本語入力設定をカスタマイズ する

Caps Lockキー使ってないから日本語変換に使って、カタカナ変換不要にする

システム>キーボード>
 - 入力モードのカタカナをOFF
 - Caps Lockの動作「オフの時「英字」を入力」

キーボードの設定変更

コピペとか日本語変換をWindows風にする
(わたしの場合は外付けキーボードのみ変更しました)

以下、外付けキーボードを接続後に… (今回は英字キーボード)

システム>キーボード>キーボードタブ>
 修飾キー> Microsoft2.4GHz Transeiver を選択
  Controlキーを *Commandに変更
  Commandキーを ^Controlに変更

本当はMacに慣れようと思ってデフォルト設定で頑張っていましたが
Windowsで慣れまくった外部キーボードを利用するのは至難の業でしたので
設定ごと変更してしまいました(‘ω’)

<参考> 変更前の内臓キーボードの設定

日本語切り替えをWindows風に変更する

日本語切り替えが一番手に馴染んでしまってたので、設定を変更しようと思ったきっかけです

システム>キーボード>ショートカットタブ>入力ソース
 前の入力ソースを選択 を Alt+` に変更

(外部の英字キーボードで主に使う目的です)

Touch Bar のカスタマイズ

ファンクションキーを常時表示 にしたかったのと、画面ロック を入れたかった

システム>キーボード>キーボードタブ>
 Touch Barに表示する項目>F1,F2などのキー

システム>キーボード>キーボードタブ>
 Touch Barをカスタマイズ>画面ロックをTouch Barに入れる


この画面の下にタッチバーがあるので

システム系の設定

Finder をフルパス表示にする

Finder>表示>
 ステータスバーを表示
 パスバーを表示

時刻表示のカスタマイズ

Finder>日付と時刻>時計
 秒を表示をON
 日付を表示をON

パスワードの変更

もし変更する必要があるなら

Finder>ユーザとグループ>
 パスワード変更

指紋登録

思った以上に、指紋でのロック解除は良いです

Finder>
 Touch ID に指紋登録

ターミナルの設定

環境>プロファイル>
 Homebrew にする

このあたりまで来たら、平常運転可能v(o ̄∇ ̄o)♪

以下はおまけ!

Chrome Extensions とか

アプリのインストール

あとは思いつくままに。。。

こんな感じかな


[Git] Visual Studio 2019の中のGitコマンドを探せ!

Gitクライアント…

自然に入ってますよね、わざわざ入れなくても。。。( *´艸`)

Visual Studio 2019 が入ってる環境だったので、Gitクライアントくらいあるじゃろーと思って、検索してみたらありました!

わたしの場合の環境は、ここ↓↓↓

C:\Program Files (x86)
 \Microsoft Visual Studio
  \2019
   \Enterprise
    \Common7
     \IDE
      \CommonExtensions
       \Microsoft
        \TeamFoundation
         \Team Explorer
          \Git
           \cmd
            \git.exe

C:\dev>"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\cmd\git.exe" --version
git version 2.21.0.windows.1

C:\dev>

バージョンもそこそこ新しいです!

パス長いけど、これ使うか~( ^^) _旦~~


[Unity] エディタを開く前にUnityのバージョンを調べる方法

既存のUnityのプロジェクトを開くとき、バージョンを合わせて開きたいですよね、
開く前に!
そしたら事前にそのバージョンのUnityをダウンロードできますし!

そんなときはここのディレクトリを見ると良いです!

ProjectSettings > ProjectVersion.txt

バージョンがそのまんま書いています( ^^) _旦~~


[macOS] Homebrewインストールログ2019版

以前、2015年にも Homebrew をインストールしたログをこのブログに残していました
その時よりは、ずいぶん手順が楽になってたので、もう一度載せておきます

今回は、これの2019年度版です
2019/5/30現在、Homebrew のバージョンは 2.1.4 でした

macOSでのインストールログ(長いので省略版)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
# Homebrew入ってない状態
SAO-MAC:~ sao.haruka$ brew -V
-bash: brew: command not found

# Homebrew本家に載っているインストールコマンドを入力!
SAO-MAC:~ sao.haruka$ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
==> This script will install:
/usr/local/bin/brew
/usr/local/share/doc/homebrew
/usr/local/share/man/man1/brew.1
   ...(省略)
/usr/local/Caskroom
/usr/local/Homebrew
/usr/local/Frameworks

Press RETURN to continue or any other key to abort
==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin /usr/local/lib
Password:
==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/bin /usr/local/lib
==> /usr/bin/sudo /usr/sbin/chown sao.haruka /usr/local/bin /usr/local/lib
   ...(省略)
==> /usr/bin/sudo /usr/bin/chgrp admin /Users/sao.haruka/Library/Caches/Homebrew
==> Downloading and installing Homebrew...
remote: Enumerating objects: 20, done.
remote: Counting objects: 100% (20/20), done.
remote: Compressing objects: 100% (17/17), done.
remote: Total 123873 (delta 5), reused 13 (delta 3), pack-reused 123853
Receiving objects: 100% (123873/123873), 29.26 MiB | 6.32 MiB/s, done.
Resolving deltas: 100% (90744/90744), done.
From https://github.com/Homebrew/brew
 * [new branch]      master     -> origin/master
 * [new tag]         0.1        -> 0.1
 * [new tag]         0.2        -> 0.2
 * [new tag]         0.3        -> 0.3
   ...(省略) 
 * [new tag]         2.1.3      -> 2.1.3
 * [new tag]         2.1.4      -> 2.1.4
HEAD is now at 7c3bb36ca Merge pull request #6181 from Homebrew/dependabot/bundler/Library/Homebrew/ruby-progressbar-1.10.1
==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Tapping homebrew/core
Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
remote: Enumerating objects: 4996, done.
remote: Counting objects: 100% (4996/4996), done.
remote: Compressing objects: 100% (4787/4787), done.
remote: Total 4996 (delta 51), reused 809 (delta 16), pack-reused 0
Receiving objects: 100% (4996/4996), 4.01 MiB | 4.19 MiB/s, done.
Resolving deltas: 100% (51/51), done.
Tapped 2 commands and 4782 formulae (5,038 files, 12.5MB).
Already up-to-date.
==> Installation successful!

==> Homebrew has enabled anonymous aggregate formulae and cask analytics.
Read the analytics documentation (and how to opt-out) here:
  https://docs.brew.sh/Analytics

==> Homebrew is run entirely by unpaid volunteers. Please consider donating:
  https://github.com/Homebrew/brew#donations
==> Next steps:
- Run `brew help` to get started
- Further documentation: 
    https://docs.brew.sh
SAO-MAC:~ sao.haruka$ 

# インストールしたバージョンの確認
SAO-MAC:~ sao.haruka$ brew --version
Homebrew 2.1.4
Homebrew/homebrew-core (git revision 8bdd; last commit 2019-05-30)
SAO-MAC:~ sao.haruka$ 

インストールログの完全版はgistに載せています

途中はキーの入力を1回、パーミッション変更のためのパスワード入力を1回、聞かれるだけでした
コマンド一つで berw が使えるようになったので、とても楽でした


[Docker] Docker for Macをインストールして Ubuntu の起動や停止まで

Macbook Pro に Docker をインストール&テスト稼動させた時のメモ

数年前までわたしはmacのこと本当によく知らなかったので、初めて mac を使ったときには、こういったインストール方法もわからなかった…
誰かの役に立つかも知れないので、初歩的なところも書いておきます
勉強のためのメモなので、用語の使い方が間違っている可能性があります
間違いあれば、遠慮なく @hr_sao まで教えてもらえると嬉しい><

Docker for Mac のインストール開始

(1) このURLからインストールします

(2) Docker.dmg をダウンロードします

dmg ファイルは Windows で言う所の iso ファイルです
ダブルクリックしたら、マウント状態になります

(3) インストールします

マウントした直後はディレクトリが自動で開くので、
その中の Docker のクジラアイコンを、Applications フォルダにドラッグ&ドロップすれば、インストールは完了

(4) マウント解除します

その後は Docker.dmg のマウントを解除し(デスクトップにできたアイコンから解除できる)
ダウンロードした dmg ファイルはゴミ箱にポイしてOK

これだけの事なんだけど、最初は全く判らなかった…
何年もWindowsやLinux系OSで仕事してるのに、 Docker のクジラアイコンを、Applications フォルダにドラッグ&ドロップ
この作業の意味が、ほんと、よく判らなかった><。
イラストの矢印の通り、クジラアイコンを、イラストの上にドロップしようとして何もおこらないのに腹を立ててました
ユニバーサルデザインなんだろうけど、作業者にある程度の前提知識は必要なデザインなんだと思う
もちろん、「Applications フォルダに ドラッグ&ドロップ」に気がつかない私が悪いんですけど

(5) Dockerを初回起動させます

Applicationフォルダの中の Docker をダブルクリック!

(6) インストールの様子

↓メニューバーにクジラのアイコンが現れ、running になってるのを教えてくれます

↓バージョンを確認してみました(2019/5/29現在は Version 2.0.0.3)

↓ Preferences から利用するリソースの設定ができます

さて、これで準備完了( * ´ω`* )

Ubuntu を起動させてみる

macOSのターミナルを起動します

以下、作業の流れをそのまま記載しています

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# ubuntuのイメージはまだ持っていない
SAO-MAC:~ sao.haruka$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE

# ubuntuをsearch
SAO-MAC:~ sao.haruka$ docker search ubuntu
NAME                                                      DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
ubuntu                                                    Ubuntu is a Debian-based Linux operating sys…   9572                [OK]                
dorowu/ubuntu-desktop-lxde-vnc                            Docker image to provide HTML5 VNC interface …   303                                     [OK]
rastasheep/ubuntu-sshd                                    Dockerized SSH service, built on top of offi…   217                                     [OK]
consol/ubuntu-xfce-vnc                                    Ubuntu container with "headless" VNC session…   179                                     [OK]
ubuntu-upstart                                            Upstart is an event-based replacement for th…   98                  [OK]                
ansible/ubuntu14.04-ansible                               Ubuntu 14.04 LTS with ansible                   97                                      [OK]
neurodebian                                               NeuroDebian provides neuroscience research s…   57                  [OK]                
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mysql-5      ubuntu-16-nginx-php-phpmyadmin-mysql-5          50                                      [OK]
ubuntu-debootstrap                                        debootstrap --variant=minbase --components=m…   40                  [OK]                
i386/ubuntu                                               Ubuntu is a Debian-based Linux operating sys…   18                                      
1and1internet/ubuntu-16-apache-php-5.6                    ubuntu-16-apache-php-5.6                        14                                      [OK]
ppc64le/ubuntu                                            Ubuntu is a Debian-based Linux operating sys…   13                                      
1and1internet/ubuntu-16-apache-php-7.0                    ubuntu-16-apache-php-7.0                        13                                      [OK]
1and1internet/ubuntu-16-nginx-php-phpmyadmin-mariadb-10   ubuntu-16-nginx-php-phpmyadmin-mariadb-10       11                                      [OK]
1and1internet/ubuntu-16-nginx-php-5.6                     ubuntu-16-nginx-php-5.6                         8                                       [OK]
1and1internet/ubuntu-16-nginx-php-5.6-wordpress-4         ubuntu-16-nginx-php-5.6-wordpress-4             7                                       [OK]
1and1internet/ubuntu-16-apache-php-7.1                    ubuntu-16-apache-php-7.1                        6                                       [OK]
darksheer/ubuntu                                          Base Ubuntu Image -- Updated hourly             5                                       [OK]
1and1internet/ubuntu-16-nginx-php-7.0                     ubuntu-16-nginx-php-7.0                         4                                       [OK]
1and1internet/ubuntu-16-apache-php-5.6-zend-2             ubuntu-16-apache-php-5.6-zend-2                 2                                       [OK]
pivotaldata/ubuntu                                        A quick freshening-up of the base Ubuntu doc…   2                                       
1and1internet/ubuntu-16-php-7.1                           ubuntu-16-php-7.1                               1                                       [OK]
smartentry/ubuntu                                         ubuntu with smartentry                          1                                       [OK]
1and1internet/ubuntu-16-sshd                              ubuntu-16-sshd                                  1                                       [OK]
pivotaldata/ubuntu-gpdb-dev                               Ubuntu images for GPDB development              0                                       
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
# ubuntuをpull
SAO-MAC:~ sao.haruka$ docker pull ubuntu
Using default tag: latest
latest: Pulling from library/ubuntu
6abc03819f3e: Pull complete 
05731e63f211: Pull complete 
0bd67c50d6be: Pull complete 
Digest: sha256:f08638ec7ddc90065187e7eabdfac3c96e5ff0f6b2f1762cf31a4f49b53000a5
Status: Downloaded newer image for ubuntu:latest
SAO-MAC:~ sao.haruka$ 

# imagesの中にubuntuが入ってる
SAO-MAC:~ sao.haruka$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
ubuntu              latest              7698f282e524        12 days ago         69.9MB
SAO-MAC:~ sao.haruka$ 
1
2
3
4
5
6
7
# dockerでubuntuサーバを何も考えずに起動
SAO-MAC:my_docker sao.haruka$ docker run -it ubuntu

# docker経由でubuntuにアクセスできた!
root@387ef5142f09:/# ls
bin  boot  dev  etc  home  lib  lib64  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
root@387ef5142f09:/# 

このままexitするとubuntuが止まってしまうので、control + P、Q で抜ける

1
2
3
4
5
# dockerでubuntuが起動してることを確認
SAO-MAC:my_docker sao.haruka$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
387ef5142f09        ubuntu              "/bin/bash"         4 minutes ago       Up 4 minutes                            dazzling_leakey
SAO-MAC:my_docker sao.haruka$ 
1
2
3
4
5
6
7
# さっきのubuntunに再ログイン(コンテナIDを使ってログインしてみる)
SAO-MAC:my_docker sao.haruka$ docker attach 387ef5142f09
root@387ef5142f09:/# 

# exitで抜ける
root@387ef5142f09:/# exit
exit
1
2
3
4
5
6
7
8
9
# 起動中のコンテナの確認(何も動いてない)
SAO-MAC:my_docker sao.haruka$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

# 停止しているコンテナも表示させてみる (Exited状態)
SAO-MAC:my_docker sao.haruka$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                      PORTS               NAMES
387ef5142f09        ubuntu              "/bin/bash"         8 minutes ago       Exited (0) 10 seconds ago                       dazzling_leakey
SAO-MAC:my_docker sao.haruka$ 
1
2
3
4
5
6
7
8
9
# 停止したものを再起動させるときは start コマンドで(今度はコンテナ名でログインしてみる)
SAO-MAC:my_docker sao.haruka$ docker start dazzling_leakey
dazzling_leakey

# コンテナが起動してる
SAO-MAC:my_docker sao.haruka$ docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
387ef5142f09        ubuntu              "/bin/bash"         10 minutes ago      Up 3 seconds                            dazzling_leakey
SAO-MAC:my_docker sao.haruka$ 
1
2
3
4
# ubuntu停止
SAO-MAC:my_docker sao.haruka$ docker stop dazzling_leakey
dazzling_leakey
SAO-MAC:my_docker sao.haruka$ 
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
# コンテナはExited状態で停止している
SAO-MAC:my_docker sao.haruka$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS                     PORTS               NAMES
387ef5142f09        ubuntu              "/bin/bash"         2 hours ago         Exited (0) 6 minutes ago                       dazzling_leakey

# コンテナを削除
SAO-MAC:my_docker sao.haruka$ docker rm dazzling_leakey
dazzling_leakey

# ubuntuコンテナが無くなった
SAO-MAC:my_docker sao.haruka$ docker ps -a
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
SAO-MAC:my_docker sao.haruka$

ふぅ、、、これで Docker 初学者になれたかしら

<参考>

色々なサイトがありましたが、わたしの理解が一番進んだのは、以下のサイトでした


[Chrome] Google Chromeでモバイル画面を見る User-Agent Swither for Chrome

タイトルそのまんま(‘ω’)
自分メモ

モバイル画面を PCのChromeで見るエクステンションはたくさんありますが、 わたしはずっと「User-Agent Swither for Chrome」を使っています

ただ、そろそろ新しいエージェントにしたいなーと思う今日この頃…
User-Agent Swither for Chrome の更新は、2017年8月3日で止まってるから、新しいモバイル端末の種類が増えてないのよね…(+_+)


まぁそれでも今は不自由してないので、一応紹介(‘ω’)

Chromeのバナーにこんな感じで表示されます

超便利(*^▽^*)

2年くらい前は、Glenn Willsonさんという方が、個人で提供して下さっていたみたいですが

2019年4月30日現在は、提供元が google.com になっています!

良い感じに買ってもらえたのかな~?
こういうのを見ると、ちょっと嬉しくなりますね(‘ω’)

なんで2年前の画像を持ってるのかというと、
2年前にこの記事を書こうと思って、そのままアップしてなかったからでした…
たはー

でも、これを書きながら、新しいエージェントさがそーっと思いました

どなたか、おススメのユーザエージェントを書き換えるChromeエクステンション教えて下さい~


[C++] std::optionalの使い方を紹介しました

少し前ですが、std::optional について nakameguro_feature.cpp vol.13 で発表したので、その資料を置いときます

私的感想としては、optional を使うと
値取得に失敗しても、例外を書くことなく if で処理出来る のが、なんだか良いなぁと思った次第でした

あと、optional の無効状態をどう表すか?
reset() / std::nullopt / {} のどれよ?
という話は、参加者の人たちの意見も GitHub の検索結果と同じで
reset() に軍配があがっていました(‘ω’)

こういう意見交換の場は、本当に恵まれてるなぁ~しみじみ

次回は 3 / 28 (木)開催で、vol.18 です!

お時間ある方は、ぜひお立ち寄りください~!