<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>GitHub | hgrs&#039;s Blog</title>
	<atom:link href="/archives/tag/github/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>文字好きエンジニアの技術メモ</description>
	<lastBuildDate>Sun, 05 Apr 2020 18:01:44 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.3.1</generator>

<image>
	<url>/wp-content/uploads/2019/05/cropped-port_512-32x32.png</url>
	<title>GitHub | hgrs&#039;s Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>GitHub Pages でパスワードによる認証をつける</title>
		<link>/archives/422.html</link>
					<comments>/archives/422.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Sun, 05 Apr 2020 18:01:44 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[GitHub]]></category>
		<guid isPermaLink="false">/?p=422</guid>

					<description><![CDATA[はじめに GitHub Pages などの静的ホスティングサービスでサーバを自由にいじれない環境でも...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>GitHub Pages などの静的ホスティングサービスでサーバを自由にいじれない環境でもパスワードをつける方法です。</p>
<h2>デモ</h2>
<p><a href="https://higurashi-takuto.github.io/password/">デモサイト</a><br />
<a href="https://higurashi-takuto.github.io/password/check.html">ハッシュ値チェック</a><br />
<a href="https://github.com/higurashi-takuto/password">リポジトリ</a></p>
<p>パスワードは <code>password</code></p>
<h2>概要</h2>
<p>GitHub Pages などの静的ホスティングでサーバの設定ができない場合、パスワードによる制限をつけることが難しいです。</p>
<p>それでも、パスワードによって閲覧を制限したい場合に、今回の方法が使えます。</p>
<p>簡単な説明をするとパスワードによって制限したいページをハッシュ化された文字列の名前を持つディレクトリに入れることで、URI を用いた認証をつけます。</p>
<p>これにより、パスワードを知っている人のみがページへアクセスすることができます。</p>
<h2>仕組みの詳細</h2>
<h3>パスワードの入力</h3>
<p>あらかじめ正解のパスワードが入力された場合のハッシュ値（ デモサイトでは SHA-256 を使用 ）をそのままアクセスされるディレクトリの名前にしておきます。</p>
<p>訪問者はパスワード入力ページでパスワードを入力します。</p>
<p>パスワードが入力されたら、JavaScript でハッシュ化（ ライブラリは <a href="https://github.com/Caligatio/jsSHA">jsSHA</a> を使用してます ）し、XMLHttpRequest を利用してハッシュ値の名前を持つディレクトリの存在を確認します。</p>
<p>正常なレスポンスが返されればアクセスに成功とし、遷移します。</p>
<p>そうでない場合は、再入力を促します。</p>
<p>詳細なコードはリポジトリにある <a href="https://github.com/higurashi-takuto/password/blob/master/index.html">index.html</a> を見れば全てわかります。</p>
<h3>セキュリティ</h3>
<p>（ 専門ではないので間違いがある可能性があります。 ）<br />
上記の仕組みを見れば分かる通り、URI の存在を確認しているだけなので、それを知られるとパスワード無しで閲覧できてしまいます。</p>
<p>なので、ディレクトリリスティングの設定や noindex などを利用して、リンクを知られないようした上で SSL を利用しましょう。</p>
<p>しかし、簡単なパスワードを利用していない限りは URI を知られてもパスワード自体が知られることはないでしょう。</p>
<h2>おわりに</h2>
<p>簡易的ではありますが、静的ホスティングサービスでパスワード認証を利用する方法の紹介でした。</p>
<p>ちょっとした認証に利用できそうなので、使う機会があれば使っていきたいですね。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/422.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GitとGitHubの使い方</title>
		<link>/archives/294.html</link>
					<comments>/archives/294.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Tue, 28 May 2019 01:41:37 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[GitHub]]></category>
		<guid isPermaLink="false">/?p=294</guid>

					<description><![CDATA[はじめに 大学の研究室で後輩にGitとGitHubの使い方を教える会を前にやったので、ついでに記事と...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>大学の研究室で後輩にGitとGitHubの使い方を教える会を前にやったので、ついでに記事として残しておきます。</p>
<h2>Git</h2>
<h3>ダウンロード/インストール</h3>
<p>インストールされてなければ<a href="https://git-scm.com/download">こちら</a>からダウンロードし、インストールをします。</p>
<h3>初期設定(GitHub登録してからの方がいいかも)</h3>
<p>ターミナルから以下のコマンドを打ちます。</p>
<pre><code class="language-bash">$ git config --global user.name &quot;GitHubのユーザ名(じゃ無くてもいいけど揃えとくといい)&quot;
$ git config --global user.email &quot;GitHubのメールアドレス(じゃ無くてもいいけど揃えとくといい)&quot;</code></pre>
<p>ローカルでリポジトリごとに設定することも可能です。</p>
<h2>GitHub</h2>
<h3>登録</h3>
<p><a href="https://github.com/join">Join GitHub</a>からUsername/Email address/Passwordを入力しアカウントを作ります。多分躓くところはないと思います。</p>
<p>あと、GitHubは学生プランもあるのでオススメです。</p>
<h3>リポジトリ作成</h3>
<p>画像にあるように「New」から作成できます。</p>
<p><img decoding="async" src="/wp-content/uploads/2019/05/repo2.png" alt="" /></p>
<p>作成ができたら、リポジトリの情報を入力していきます。</p>
<p><img decoding="async" src="/wp-content/uploads/2019/05/repo1.png" alt="" /></p>
<h2>ローカルリポジトリ</h2>
<p>自分の手元で扱うリポジトリです。</p>
<p>リポジトリ単位で、バージョン管理を行うのですが大まかな流れは</p>
<ol>
<li>インデックスに追加</li>
<li>インデックスに追加されたものをコミット</li>
</ol>
<p>です。ここで行ったコミットがどんどん積み重なっていき、特定の地点のコミットに戻れたりします。</p>
<p>またブランチを切ることで、別バージョンの開発ができたりします。</p>
<h3>初期化</h3>
<p>以下のコマンドで、現在のディレクトリをGitリポジトリとすることができます。</p>
<pre><code class="language-bash">$ git init</code></pre>
<h3>インデックスに追加</h3>
<p>やり方は以下のどれかです。</p>
<pre><code class="language-bash">$ git add &lt;追加したいファイル/ディレクトリ&gt;
$ git add .   # 全て追加
$ git add README.md   # README.mdというファイルを追加
$ git add assets  # assetsというディレクトリを追加</code></pre>
<p>一番よく使うのは<code>git add .</code>だと思います。</p>
<p>ただ、これだと全てのファイルを追加してしまうため、Gitでバージョン管理しないものやアップロードされては困るファイル/ディレクトリ(例えばシークレットキーが書かれたファイルやビルドしたバイナリとか)まで追加されてしまいます。</p>
<p>そこで<code>.gitignore</code>というファイルでGitでの管理に含めないファイル/ディレクトリを指定できます。</p>
<h3>コミット</h3>
<p>次のどちらかで、コミットを登録しましょう。</p>
<pre><code class="language-bash">$ git commit -m &quot;コミットメッセージ&quot;
or
$ git commit  # エディタが開いてメッセージを打てます</code></pre>
<p>コミットメッセージは自由に打てますが、プロジェクトごとに書式が決まってたりもします。特になければ、変更点をわかりやすく書けばいいと思います。</p>
<p>またコミットの頻度も自由ですが、細かくやることを推奨します。1つの機能や何かタスクが終わるごとにやるといいでしょう。</p>
<p>ローカルリポジトリでの更新は<code>add</code>と<code>commit</code>があればいいので、この2つがもっとも高い頻度で使うことになると思います。</p>
<h3>ブランチ</h3>
<p>別バージョンの開発や、機能の追加/修正ごとなどに使うことがある、バージョンの枝分かれ機能です。特に他人との共同開発ではよく使うことになると思います。</p>
<p>コマンド一覧を示しておきます。</p>
<pre><code class="language-bash">$ git branch &lt;ブランチ名&gt;  # ブランチの登録
$ git checkout &lt;ブランチ名&gt;    # ブランチの切替
or
$ git checkout -b &lt;ブランチ名&gt;   # 上の二つをまとめてできる

$ git branch -d &lt;ブランチ名&gt;   # ブランチの消去

$ git merge &lt;ブランチ名&gt;   # 他のブランチと結合</code></pre>
<h2>リモートリポジトリ(今回はGitHub)</h2>
<h3>リモートリポジトリの追加</h3>
<p>先ほどの<code>git add</code>と似ていますが、こちらは<code>git remote add</code>を使用します。以下の通りです。</p>
<pre><code class="language-bash">$ git remote add &lt;リポジトリ名&gt; &lt;URL&gt;
$ git remote add origin https://github.com/hoge/huga.git # リポジトリのデフォルトの名前がoriginです</code></pre>
<h3>プッシュ</h3>
<p>ローカルリポジトリの変更をリモートリポジトリにアップロードします。以下の通りです。</p>
<pre><code class="language-bash">$ git push -u &lt;リポジトリ名&gt; &lt;ブランチ名&gt;    # -uをつけると次回からgit pushのみで良くなります
$ git push -u origin master
$ git push</code></pre>
<h3>プル</h3>
<p>リモートリポジトリから最新版を持ってきます。作業前に必ずやるようにしましょう。</p>
<pre><code class="language-bash">$ git pull</code></pre>
<h2>おわりに</h2>
<p>これで一通りの作業ができると思います。</p>
<p>ここに書いていないことや、困った時は先輩が残してくれた<a href="https://qiita.com/kohga/items/20819414da2972bc5e0d">作業別Gitコマンド集</a>を見れば、だいたい書いてあると思います。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/294.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>GitHubのデフォルトアイコンの謎</title>
		<link>/archives/279.html</link>
					<comments>/archives/279.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Fri, 24 May 2019 14:13:03 +0000</pubDate>
				<category><![CDATA[エンジニアの日記]]></category>
		<category><![CDATA[GitHub]]></category>
		<guid isPermaLink="false">/?p=279</guid>

					<description><![CDATA[はじめに GitHubのデフォルトアイコンはドット絵のようなアイコンですよね。 あれが何者なのか気に...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>GitHubのデフォルトアイコンはドット絵のようなアイコンですよね。</p>
<p>あれが何者なのか気になったので、色々と覗いてみました。</p>
<h2>ユーザごとに違うアイコン</h2>
<p>GitHubもそうですけど、Slackとかも初期アイコンがユーザごとに違うものってありますよね。どうやらそういうアイコンのことを<strong>Identicon</strong>というそうです。</p>
<p>特に、GitHubのIdenticonについては<a href="https://github.blog/2013-08-14-identicons/">GitHubのブログ</a>に書かれています。</p>
<h2>自分のアイコンを確認</h2>
<h3>現在のアイコンを確認</h3>
<p>Identiconを見る前に、現在設定しているアイコンを見てみましょう。</p>
<p>現在のアイコンは<code>https://github.com/&lt;username&gt;.png</code>から見ることができます。ちなみにこのアドレスからリダイレクトされるURLの最後の方に書かれている数字、または画像を保存した時の名前が自分のユーザIDとなっています。このユーザIDはあとでも見返すので、なんとなく覚えといてください。</p>
<p>アイコンを変更していない人はこの方法でもIdenticonを確認できます。</p>
<h3>Identiconを確認</h3>
<p>アイコンを自分で変更した人でもIdenticonを確認することができます。</p>
<p>Identiconは<code>https://github.com/identicons/&lt;username&gt;.png</code>から見ることができます。</p>
<p>懐かしいですね。しかしこの画像よく見ると、少しおかしいです…</p>
<h2>Identiconの謎</h2>
<p>画像の情報をみてみると、画像サイズは<code>420 x 420 px</code>のようです。なるほど。上下左右で<code>35 px</code>のマージンと縦横<code>5 x 5</code>のドット絵でそれぞれ<code>70 px</code>であれば<code>420 px</code>となります。</p>
<p><strong>しかし</strong></p>
<p>画像を拡大してみましょう。わかりやすく、<code>70 px</code>の境界線に線を引きました。</p>
<p><img decoding="async" src="/wp-content/uploads/2019/05/24fbc3b2c8fd518d680feb6503563f69.png" alt="" /></p>
<p>そうです。<strong><code>1 px</code>ズレている</strong>のです。</p>
<p>これは<code>5 x 5</code>の全てのドットで左上は<code>35 + 70(n - 1)</code>の座標にあるのですが、そこから塗りつぶしの範囲が<code>71 x 71 px</code>になっているのです。つまり、右と下に<code>1 px</code>ずつはみ出しています。</p>
<p>気づいてしまった時には気になって気になって仕方なかったです。</p>
<p>なんでこんな仕様になっているのでしょう…</p>
<h2>そもそもこのアイコンはどのようにしてできているか</h2>
<p>こちらは上記にブログに少し書いてあったり、他のサイトでも紹介されていますが、ユーザID（さっきも出てきましたが自分で決めた<code>username</code>ではなくGiuHubが側が発行したユニークな番号）から生成されます。</p>
<p>具体的にはユーザID（僕の場合は<code>29699789</code>）をMD5を用いてハッシュ値を得ます。得られた32桁（僕の場合は<code>696f9ab9a21cf934a3bb45c2352808bf</code>）の先頭15桁の偶奇から塗りつぶす/つぶさないを形を決定（図参照）。</p>
<p><img decoding="async" src="/wp-content/uploads/2019/05/icon.png" alt="" /></p>
<p>そして下7桁の内、前3桁から色相、中2桁を彩度、後2桁を輝度に割り当てることで色が決まります。</p>
<p>作り方をみても謎は解けませんでした…</p>
<h2>おわりに</h2>
<p>ほんとに<code>71 x 71 px</code>の謎が気になって仕方がない。</p>
<p>謎すぎる…</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/279.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
