misc.log

日常茶飯事とお仕事と

GitLab Pagesを使ってみる

新人研修でMarkdownをベースにWebページとして情報を公開するというのができないか、と思い、ちょうど今使っているGitLabのGit Pagesというものを使えないかと思ったのですこし見てみました。とりあえずはこちらを参考に。

www.gitlab.jp

とりあえず……20分ほどの作業で「ファイルをコミット、プッシュすれば自動的にファイル公開の仕組みが作動して公開される」というところまではできました。

f:id:frontline:20200904165507p:plain
GitLab PagesのプロジェクトでCI/CDが動く事を確認

公開するものはGitLabのプロジェクトとして作成され、URLに拘らなければ別にそのまま一般公開もできますし、対象を絞るならプロジェクトの参加メンバーだけに限定もできます。

ですが、これはあくまで静的なページを公開する仕組みで、Markdownからの変換をこれにからめるにはGitbookなどの用意や仕掛けが必要なんですね……。このあたりは別途調べてやってみるしか……ですが。少なくとも新人にはちょっと荷が重いのでこの線は無しだな……。

わかばちゃんと学ぶ Git使い方入門

わかばちゃんと学ぶ Git使い方入門

C#の設定ファイルが保存される場所はどうやってきまるか

備忘録。

C#で下記のように設定情報を保存した場合に保存される場所は、ユーザーフォルダの下です。が、そのフォルダ名にはハッシュ値のような英数字の羅列が入っています。そして、1つのアプリについて数個のフォルダができていることがあります。これ、なんなんだろう?と思っていたのですが、謎が解けました。

Properties.Settings.Default["設定項目1"] = settingValue1;
Properties.Settings.Default.Save();

パスに含まれるハッシュ値は下記の情報を元に作っているようです。

  1. アセンブリの厳密名(Strong Name)を用いる(アセンブリキャッシュとかに登録されるものの場合)
  2. 上記に当てはまらない場合は、アセンブリのパス

普通に作るアプリだと厳密名なんて付けないので、パスになります。ということは動かしたパスが違えば設定ファイルは別々になりますし、DebugとReleaseでそれぞれVisual Studioから実行すれば、それだけで2つのフォルダーが出来るわけですね。なるほど。

上記の事は下記サイトに記載されていました。

docs.microsoft.com

上記サイトはVisual Studio 2005でさらにVisual Basic .NETのものなので、Windows10も無かった頃の話で少しパスが違うのですが、設定ファイル「user.config」付近は

<appdomainname>_<eid>_<hash>\<verison>

で、やはりハッシュのようです。で、ハッシュ情報の生成については

<hash> is a SHA1 hash of evidence gathered from the CurrentDomain, in the following order of preference:

  1. StrongName
  2. URL

If neither of these is available, use the .exe path.

とのこと。なるほどね。同じような質問はstackoverflowにもあったようです。

stackoverflow.com

参考まで。

JavaScriptのsetMonthで指定する月はゼロ始まり……

話題のメモ。

会社の若手さんと不具合の件で話していて

  • 翌月末の日付を取得するのに、翌々月末になる事がある。
  • JavaScriptの処理で、月末に「2ヵ月後」という指定をすると、3ヵ月後になるケースがあった。

という話から、JavaScriptのsetMonthという「日付情報の月だけを特定の月に変えた情報を取得する」という処理の話に。下記のサイトでその仕様と説明を見たのですが……

developer.mozilla.org

const event = new Date('August 19, 1975 23:15:30');
event.setMonth(3);
console.log(event);

なぜか上記の処理で「4月19日」になるそうな……え?3って指定したのに!?

これですが、JavaScriptで月を表す数値を指定する場合は、0オリジン、要するに1月がゼロ、2月が1……という決まりで、0~11で指定するのだそうです。なんで?(笑)。たしかにECMAScriptの仕様を見ると

f:id:frontline:20200903011332p:plain
JavaScriptでの月は0始まり

www.ecma-international.org

あぁ……。そしてその辺りの質問や回答も

teratail.com

こたえ「仕様です」。ブログを書いてる人も

hacknote.jp

「伝統的にそう」だそうで。そして上記サイトによるとJavaScriptの開発者の人は「JavaのDateに倣った」ということをおっしゃってるそうな。そうなんだ。Javaとは違うのだよ、って言われてるのに結局根元はJavaを参考にしとんのかい!!ww

これですが、どうやら英語圏の方々は日本人のように数字で月を指定しないことになれており、0で始まろうが別に違和感を持たないのかもしれないという話がどこかで出ていました。なるほど。JAN、FEB、MAR、APR……。略称で書けば別に面倒でもないし。逆に数字でいわれることの方が、日本人に対して「今度の如月3日だけどさ」みたいな言い方をするような違和感を感じるのかも、というようなことを言っている人もいました。なるほどなるほど。

でも、判りづらいですよJavaScript。もう少し開発者フレンドリーにやってくださいよ、というのは一日本人として思うわけです。

ECMA-262 Edition5.1を読む

ECMA-262 Edition5.1を読む

  • 発売日: 2013/09/25
  • メディア: 単行本