""
[c++] 2次元配列的な書き方
自分メモ
2次元配列
C++11 以前では、2次元配列はこんな感じで書いていました
|
|
これでも悪くは無いのですが、生配列を扱うと範囲外アクセスに気が付かない可能性が出てきます
そこで C++11 から境界チェックが出来る配列の std::array が登場しました
これを使えば、C-styleの配列のノリで扱うことが可能です
- std::array - cpprefjp
https://cpprefjp.github.io/reference/array/array.html
さらに2次元配列にしたければ std::array を std::vector に入れることで実現可能です
|
|
悪くなさそう
動作確認
|
|
結果
xy_raw[0][1]: 10
xy_raw[1][2]: 40
xy_array[2][0]: 40
コンパイル時に教えてくれるので助かります
参考
コンパイル結果:
https://repl.it/repls/StudiousImaginativeParallelcomputingC++ - Vector of Float Arrays - stackoverflow https://stackoverflow.com/questions/33711878/c-vector-of-float-arrays
[WindowsTerminal] Preview版のインストール&Git Bashを追加したい
Windows Terminal …どんなもんだろなと思って、使ってみました
もともとは、Gitのブランチ名をコマンドプロンプトに表示できたらいいのにー と思って調べたのでした
Windows Terminal に Git Bash (正確には Git for Windows ) が登録できるようなので、それをやってみました
Windows Terminal (Preview)のインストール
普通に 「Windows Terminal download」で検索すると、わたしの場合「マイクロソフトストア」のリンクがトップに来ましたけど
ストアとかよくわからんし…
よく見ると Windows Terminal は GitHub に公開されてます
ここから Preview版をGet★
3/19時点では、Windows Terminal Preview v0.10.761.0 のバージョンでした
以下、やったこと
1) msixbundle を実行するとこんな画面↓↓↓

2) インストールを押すと、わたしの環境ではエラーになりました

エラーメッセージ内容:
Microsoft.WindowsTerminal_0.10.761.0_x64__8wekyb3d8bbwe をインストールできません。このパッケージはデバイスと互換性がありません。このパッケージをインストールするには、OS バージョン 10.0.18362.0 またはそれ以降の Windows.Mobile デバイス ファミリが必要です。現在、デバイスでは OS バージョン 10.0.17763.1098 が実行されています。 (0x80073cfd)
おぉ。。。めっちゃ判りやすいメッセージが!
3) よくわからんけど、Windows Updateしてみます

4) もう一度ダウンロードした msixbundle を実行
5) 正常にインストールできたみたい!

6) 開くウィンドウのタイプを選べます

よしよし
タブに Git Bash を追加
先人が居てました。。。!
Adding Git-Bash to the new Windows Terminal - stackoverflow
https://stackoverflow.com/questions/56839307/adding-git-bash-to-the-new-windows-terminalWindows TerminalにPowerShell Coreを追加する - kkamegawa’s weblog
https://kkamegawa.hatenablog.jp/entry/2019/06/23/135124
あと中の人のスコット・ハンセルマンのブログも参考になりました
- Now is the time to make a fresh new Windows Terminal profiles.json
https://www.hanselman.com/blog/NowIsTheTimeToMakeAFreshNewWindowsTerminalProfilesjson.aspx
真似してわたしもやってみます
7) PowerShell で GUIDを取得します
GUIDの設定は、生成できるものであればなんでも良いみたいです
- mehulmpt/profiles.json - コメントに注目
https://gist.github.com/mehulmpt/16826be279bb9bf70310b465ca9c5de3
GUID生成サイトもありました(。・_・。)
わたしは PowerShell で作ってみます
> [guid]::NewGuid()
こんな感じで取得できました

8) Windows Terminal の settings を開きます
これは json ファイルになってました
わたしの環境では、以下のパスに存在していました
※ xxx… は編集しています、適当な文字列でした
C:\Users\akiko.kawai\AppData\Local\Packages\Microsoft.WindowsTerminal_xxxxxxxxxxxxx\LocalState\profiles.json
デフォルトの中身はこんな感じ↓↓↓
|
|
9) profiles の個所に以下を追加します
|
|
◆アイコンについて
アイコンの登録は ms-appxのURL のまんまが使えるみたいです
参考:
- Feature Request - List Icons in the default profiles.json - microsoft/terminal
https://github.com/microsoft/terminal/issues/1456
試しに Linux アイコンにしてみたら、ペンギンになりました(。・_・。)ノ

CMDアイコンだとこんな感じ

◆GUIDについて
今回は GUID は適当なものを PowerShell で作りましたが
profiles.json の中の "defaultProfile" の値を
自分の Git Bash の GUIDに設定すると
Windows Terminal のデフォルト起動時のウィンドウに出来ました
◆profiles.json
profiles.json の全体像はこんな感じ
|
|
10) おぉ!Bashタブがリアルタイムに追加されてる!
Windows Terminal を開きっぱなしの状態でも
追加のタブを見ると Git Bash 項目が見えました
やったー

11) 作業したいブランチ名もちゃんと表示されてます
当然といえば当然

結構いろいろと簡単にやりたいことが出来た印象です
調べてもすぐ情報が見つかったし
WindowsTerminal、早く Preview 取れて欲しいですね♪
[GitHub Pages] カスタムドメインのDNS情報を更新する
去年、2019年の4月くらいから
GitHub Pages にファイルをアップすると、ワーニングが出るようになった
内容はこんなやつ
|
|
(* ̄- ̄)ふ~ん、よくわからんけど
何やらDNSの設定を変えないといけないのね
めんどくさー
後で後で…と思い続けて早10か月ほど…
さすがに対応しないと、自分のブログがアクセスできなくなるかもと焦り、重い腰を上げました
(前提条件)このブログの運用情報
- https://h-sao.com/ は GitHub Pages の上で動いてる
h-sao.comドメイン自体の管理は Valueドメイン を利用してる- 動いているリポジトリは https://github.com/h-sao/h-sao.com
- リポジトリの
masterブランチにはHugoで記載したのテンプレートファイルやマークダウンで記載したコンテンツ情報を置いてる - 同じく
gh-pagesブランチは、実際にサイトとして公開している html/css ファイルを置いてる - (おまけ)
masterに記事のマークダウンをpushすると
Webhooksに登録しているwerckerに通知が送られ
Hugoでhtml生成 &gh-pagesに htmlファイルなどをオートでpushする
というちょっとした自動化の仕組みになってる
- リポジトリの
カスタムドメインを GitHub Pages に割り当てる方法
調べてみると全然難しくなくて
上記のワーニングメールに書かれてたURLにアクセスしたら、全てが書かれてました
ただわたしにとっては真剣に読む気で読まないと頭の中スルー…って感じの内容だったので、ちょっと真剣に読んでみました
英語版はこれ↓↓↓なのですけど
ご丁寧に日本語版も提供されています
- カスタムドメインとGitHub Pagesについて
https://help.github.com/ja/github/working-with-github-pages/about-custom-domains-and-github-pages
これを見ながらやってみます
まずわたしのGitHub Pagesの設定画面は、こんな感じで黄色いワーニングが出てました

今までずーっと無視してきましたが、いよいよ解決する日が来ましたよ
わたしが割り当てているカスタムドメインは Apex ドメイン になっています
( www.h-sao.com ではなく、 h-sao.com としてアクセス)
日本語版の「カスタムドメインとGitHub Pagesについて」の説明を読んでみると、
「GitHub Pages サイト用のカスタムドメインを管理する」を参照してください。 とあるので、素直にそのリンクに飛びます
- 「GitHub Pages サイト用のカスタムドメインを管理する」
https://help.github.com/ja/github/working-with-github-pages/managing-a-custom-domain-for-your-github-pages-site#configuring-an-apex-domain
ここにありました! Apexドメインを設定する方法が!
A レコードのIPアドレスが書いてありました
185.199.108.153
185.199.109.153
185.199.110.153
185.199.111.153
あと、最初の「カスタムドメインとGitHub Pagesについて」には、こんな記載もありました
サイトには、カスタムドメインの一方または両方を設定できます。 Apex ドメインを使用している場合でも、www サブドメインを使用することをおすすめします。
ふむふむ、www は付けるのを推奨してるのね、了解
cname も追加してみました
# 設定するAレコード
a @ 185.199.108.153
a @ 185.199.109.153
a @ 185.199.110.153
a @ 185.199.111.153
# サブドメインも設定しておく
cname www h-sao.github.io.
Valueドメインの設定画面

これを設定すると、わたしの場合はちょうど15分後に設定が反映されました

よかったー!
[Git] Gitの歴史を書き換える関連
よくやらかすので自分メモ
事前準備
# 今いるブランチの確認
$ git branch
# ブランチに移動
$ git checkout feature/xxxxx
PR出す前、きれいな環境にしたいなどで整えておきたいこと
# 手動ブランチの取得/追従
$ git checkout feature/yyyyy
$ git pull
ローカル作業全てを無かったことにする
git fetch origin
git reset --hard origin/master
pushしてしまった歴史を書き換える
# 自分の名前のコミットを検索
$ git log --committer="Sao Haruka"
# ↑の gitlog より戻りたいハッシュ値を探す
$ git reset [戻りたいコミットのハッシュ値] --hard
# 強制push
$ git push -f origin feature/xxxxx
既に feature/xxxxx で誰かが作業していたら強制プッシュはあきらめる
不要になったブランチを削除する
要らないブランチは削除しとく
$ git push --delete origin feature/xxxxx
PRに不要なコミットが混じる
原因:
- ブランチが追従されてないのが問題
- マージ先が間違ってる
マージ先の最新を取っとくと大丈夫
[Git] Commit&PushしてしまったAuthor情報を変更したい
最近、GitKraken を使って更新をしています
Pro バージョンだとアカウント情報の切り替えが簡単に出来るので
会社用や個人用に切り替えて作業するのがとても便利です
しかしたまに切り替え忘れて、本来のアカウントじゃないやつでコミットしてしまって
意図しないメアドやユーザ名が入ったりして…(-“-;A …アセアセ
そんなときの変更の方法です
Author 変更方法
直前のコミットを変更したい場合です
$ git commit --amend
を使うと、コミット履歴が書き換えられるんですけど
これで書き換えると、コミットの作者(Author)は変わらず、コミッター(Commiter)が変わるだけです
Authorを書き換えるには
$ git commit --amend --author="Sao Haruka <sao@tmp.com>"
こうすると書き換わります
こんな感じね↓↓↓
|
|
書き換わったー!
サーバーに push しちゃってるとき
もし自分だけの作業ブランチでやってるのであれば、サーバーの履歴を強制的に書き換えることが出来ます
(共通ブランチでは、強制書き換えはやめよう)
$ git push -f [repository] [branch]
恐る恐るやってみる
|
|
事なきを得た(_・ω・)_バァン…
参考:
Git の Commit Author と Commiter を変更する
https://qiita.com/sea_mountain/items/d70216a5bc16a88ed932typoしてpushしてしまったコミットコメントを修正してpushしなおす方法
https://qiita.com/ykawakami/items/71b462057a8d714d7382
[Hugo] Hugoの環境をDocker上で動かす
今回の環境
- macOS Mojave
- Docker Desktop
- Hugo
このブログは Hugo というスタティックジェネレーターで作っています
Hugoは golang で動いているので、ローカルに Go の環境が必要なわけですが
以前、MacBookの中にダイレクトに Hugo をインストールしていたら、別で入っているGoのバージョンと、うまくかみ合わなくなったことがありました
解決に結構時間が取られちゃったので、もう macOSを使うときには、なんでもかんでも docker で分離しようと心に決めたのでした…
その方法です
やってみたら、超簡単でした
Hugo に対応した docker image をダウンロード
|
|
今回わたしは、klakegg/hugo のバージョンを使うことにしました
klakegg/hugo - docker hub
https://hub.docker.com/r/klakegg/hugoklakegg/hugo - GitHub
https://github.com/klakegg/docker-hugo
|
|
起動
|
|
超超超簡単でした。。。
これからも mac環境では docker さまに当分お世話になりますm(_ _)m
[VisualStudio] Visual Studioで使う改行コードを指定する方法
環境
- Windows10
- Visual Studio 2019
- Unity 2018
元々これを調べたきっかけは、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の改行コードとなりました
警告無く作業が出来るようになって、小さなストレスから解放♪
- (参考)Unityと改行コード - エフアンダーバー 個人開発の記録
https://www.f-sp.com/entry/2017/04/06/023709
[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開発者の方の参考になればー!
最初の最初に入れたいソフト
- Google Chrome インストール
Safariが気に入らないというわけではないけど…
https://www.google.com/chrome/

- VScode インストール
メモ帳代わりのものがないとつらい
https://code.visualstudio.com/
AppleStore系
Apple Storeにログイン
夜フクロウ インストール
Twitterクライアント、最初の方に入れたい(_・ω・)_バァン…
- DisplayMenu インストール
画面の解像度を変更できるアプリ、本来の解像度でみれる!!!
キー入力系の設定
日本語入力設定をカスタマイズ する
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 とか
- テーマカラーを変える
- 必要ならユーザを作る
- cTouch5(filesystem)入れる
- Google Art Project入れる
- Ublock origin入れる
アプリのインストール
あとは思いつくままに。。。
- GitKraken入れる
- Docker入れる
- Homebrew入れる
- neovim入れる
- Discord入れる
- 。。。
こんな感じかな






