<?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>hgrs&#039;s Blog</title>
	<atom:link href="/feed" rel="self" type="application/rss+xml" />
	<link>/</link>
	<description>文字好きエンジニアの技術メモ</description>
	<lastBuildDate>Sun, 29 Aug 2021 08:16:30 +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>hgrs&#039;s Blog</title>
	<link>/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>さくらのレンタルサーバ（スタンダード）で Django 3.0 を動かす方法</title>
		<link>/archives/444.html</link>
					<comments>/archives/444.html#comments</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Thu, 23 Jul 2020 10:21:38 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">/?p=444</guid>

					<description><![CDATA[はじめに 僕はサーバをさくらのレンタルサーバのスタンダードプランしか借りていないので、サーバサイドで...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>僕はサーバをさくらのレンタルサーバのスタンダードプランしか借りていないので、サーバサイドでガシガシプログラムを動かすことができないのですが、Django を使って API を作りたかったので、その設定方法を紹介します。</p>
<h2>紹介する範囲</h2>
<p>今回は Django の WSGI を CGI を通して利用する方法のみを紹介します。</p>
<p>さくらのレンタルサーバで Python 自体を利用する方法や Django の細かな設定自体は紹介しません。</p>
<h2>CGI の設定</h2>
<p>さくらのレンタルサーバでは <code>mod_wsgi</code> が設定されていないため、Python を実行するには CGI を通さなければいけません。</p>
<p>そこで、 Django のプロジェクトルートに <code>index.cgi</code> を作成し、以下の内容を書き加えます。<br />
この際、パーミッションを <code>755</code> に指定するのを忘れないようにします。</p>
<pre><code class="language-python">#!/path/to/python

import sys
sys.path.append(&#039;/path/to/djangoproject/&#039;)

import cgitb
cgitb.enable()

from wsgiref.handlers import CGIHandler
from projectname.wsgi import application

CGIHandler().run(application)</code></pre>
<p>まず、1行目は使用している Python の環境をしてします。<br />
pyenv と pyenv-virtualenv などを使用している場合は <code>#!/home/username/.pyenv/versions/envname/python</code> などですね。</p>
<p>4行目は今使用している Django のプロジェクトへのパスを指定します。<br />
ここは <code>pwd</code> で表示される値をそのまま持ってくれば大丈夫です。</p>
<p>10行目の projectname は自分で設定しているプロジェクト名に変更します。</p>
<p>内部でやっていることは Django が設定している WSGI を CGI ハンドラーに載せて実行しているだけです。</p>
<h2>アクセスしてみる</h2>
<p><code>index.cgi</code> を入り口としているので <code>https://example.com/index.cgi</code> がルートになります。<br />
デフォルトの管理画面だと <code>https://example.com/index.cgi/admin</code> になります。</p>
<p>アクセスする際には <code>settings.py</code> の <code>ALLOWED_HOSTS</code> にホストを追加するのを忘れないようにしましょう。</p>
<p>またこのままだと <code>index.cgi</code> が常に入っていてダサいので <code>.htaccess</code> を用いて <code>index.cgi</code> 無しで見れるようにします。</p>
<pre><code class="language-text">RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.cgi/$1 [QSA,L]</code></pre>
<h2>おわりに</h2>
<p>以上、簡単でしたがスタンダードのさくらのレンタルサーバで Django を動かす方法でした。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/444.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Xcode Command Line Tools を入れ直す（ アップデートする ）</title>
		<link>/archives/439.html</link>
					<comments>/archives/439.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 08 Jun 2020 00:01:46 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Mac]]></category>
		<guid isPermaLink="false">/?p=439</guid>

					<description><![CDATA[はじめに macOS で開発しようとすると Xcode Command Line Tools は必須...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>macOS で開発しようとすると Xcode Command Line Tools は必須ですが、バージョンなどの問題で入れ直す必要がありました。<br />
その方法をまとめます。</p>
<h2>Xcode Command Line Tools のアンインストール</h2>
<p>Xcode Command Line Tools は <code>/Library/Developer/CommandLineTools/</code> に保存されています。<br />
なので、このディレクトリを削除することでアンインストールが行えます。</p>
<pre><code class="language-bash">$ sudo rm -r /Library/Developer/CommandLineTools</code></pre>
<h2>Xcode Command Line Tools の再インストール</h2>
<p>コマンドラインツールだけ入れれば良いので、以下のコマンドでインストールができます。</p>
<pre><code class="language-bash">$ xcode-select --install</code></pre>
<h2>おわりに</h2>
<p>最新バージョンじゃない場合など、エラーを引き起こす原因になるので、できる限り最新のものを使用したいですね。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/439.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi に Docker と Docker Compose をインストールする</title>
		<link>/archives/437.html</link>
					<comments>/archives/437.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Tue, 02 Jun 2020 03:00:51 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">/?p=437</guid>

					<description><![CDATA[はじめに ラズパイの環境構築の一環で Docker 周りの環境を用意したので、記録しておきます。 D...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>ラズパイの環境構築の一環で Docker 周りの環境を用意したので、記録しておきます。</p>
<h2>Docker</h2>
<p>Docker の公式に用意されているインストールスクリプトで簡単にインストールすることができます。</p>
<pre><code class="language-bash">$ curl -sSL https://get.docker.com/ | sh</code></pre>
<p>インストールが終わったら Docker のコマンドの権限をユーザに与えます。</p>
<pre><code class="language-bash">$ sudo usermod -aG docker &lt;username&gt;</code></pre>
<p>例えば、ユーザ名が <code>pi</code> ならば <code>sudo usermod -aG docker pi</code> となります。</p>
<h2>Docker Compose</h2>
<p>Docker Compose は Python の <code>pip</code> を使うと簡単にインストールできます。<br />
Python がインストールされていない人はインストールしてください。<br />
また、公式では環境を汚さないために、仮想環境を使用することが推奨されています。</p>
<p>まず、依存ライブラリをインストールします。</p>
<pre><code class="language-bash">$ sudo apt install libffi-dev</code></pre>
<p>次に Docker Compose 本体をインストールしていきます。</p>
<pre><code class="language-bash">$ pip install docker-compose</code></pre>
<h2>おわりに</h2>
<p><code>sudo apt install docker docker-compose</code> で全て入る未来は来ないんですかね？</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/437.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Mac に eGPU（ 外付GPU ）をつけて FF14 をプレイしてみる</title>
		<link>/archives/433.html</link>
					<comments>/archives/433.html#comments</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Wed, 29 Apr 2020 04:53:28 +0000</pubDate>
				<category><![CDATA[エンジニアの日記]]></category>
		<category><![CDATA[好きなもの]]></category>
		<guid isPermaLink="false">/?p=433</guid>

					<description><![CDATA[はじめに 僕は FF14 をやっているんですが、今まで PS3 → PS4 → Windows と遊...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>僕は FF14 をやっているんですが、今まで PS3 → PS4 → Windows と遊ぶ環境を変えてきました。今回はさらに、普段使用している Mac に移行したのでその感想です。</p>
<h2>環境</h2>
<p>使用環境は以下の通りです。</p>
<pre><code>Mac 本体
    デバイス名: Mac mini 2018
    OS: macOS Catalina 10.15.4
    CPU: 3.2 GHz 6コア i7
    メモリ: 32 GB

eGPU: Razer Core X

GPU: Radeon RX 5700 XT 8 GB

ディスプレイ: 2560 x 1080 px（ GPU から HDMI 出力 ）</code></pre>
<h2>FF14 を eGPU でプレイ</h2>
<p>※ 公式の動作環境に eGPU でのプレイに関する記載はありませんので、参考にする際には各自の責任でお願いします。</p>
<p>結論として、スペックが見合っていれば、問題なく起動・動作しました。</p>
<h3>設定</h3>
<p>eGPU を使用する設定に関しては、その他のアプリと同じく、FF14 のクライアントアプリを右クリックし、「情報を見る」から「外部GPUを優先」を選択すればできます。</p>
<h3>評価</h3>
<p>やはり Windows 版と比べ品質は大きく劣ります。</p>
<p><a href="https://www.pc-koubou.jp/magazine/22807#section02-04">この記事</a> によれば Windows 環境で RX 5700 XT は 4K 解像度 / 最高品質 で「非常に快適」が得られるベンチマーク結果です。</p>
<p>これを見て、いけるだろうと思って Mac で <code>2560 x 1080 px</code> の最高品質（ Maximum ）でプレイしたところ、数分でカーネルパニックを起こし、Mac がフリーズしました。</p>
<p>品質を下げれば動作は安定するので、現在は標準品質（ Standard ）でプレイをしています。</p>
<p>結果、安定してプレイしたいのであれば RX 5700 XT を使ってもフル HD 標準品質（ Standard ）が限界ということです。</p>
<h2>おわりに</h2>
<p>調べた限り eGPU で FF14 が遊べるかどうかの情報が少なかったので共有してみました。</p>
<p>試して欲しい設定などあればやってみますので、コメントなどお待ちしています。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/433.html/feed</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi で VNC( x11vnc ) を設定して画面共有する</title>
		<link>/archives/430.html</link>
					<comments>/archives/430.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Tue, 14 Apr 2020 03:54:41 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">/?p=430</guid>

					<description><![CDATA[はじめに ラズパイにを操作するのに、ディスプレイやキーボード、マウスを用意するのが面倒なので、mac...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>ラズパイにを操作するのに、ディスプレイやキーボード、マウスを用意するのが面倒なので、macOS から画面共有できるようにします。</p>
<h2>x11vnc のインストール</h2>
<p>x11vnc は VNC プロトコルを利用した画面共有を実現するためのものです。</p>
<p>Raspbian では以下のコマンドでインストールすることができます。</p>
<pre><code class="language-bash">$ sudo apt install x11vnc</code></pre>
<h2>x11vnc の設定</h2>
<p>画面共有の認証に使うパスワードを以下のコマンドで設定します。</p>
<pre><code class="language-bash">$ x11vnc -storepasswd</code></pre>
<p>パスワード入力すると <code>Write password to /home/&lt;user_name&gt;/.vnc/passwd?  [y]/n</code> と確認されます。こちらは次に説明する自動起動設定に使用するので <code>y</code> で解答します。</p>
<p>また、Raspberry Pi にディスプレイを接続している場合は、画面共有時、そのディスプレイと同じ画面、同じ解像度で表示されます。<br />
ディスプレイを接続していない場合は、「Raspberry Pi の設定」のディスプレイの解像度が使用されるため、解像度を変更したい場合はこちらを変更します。（コマンドラインから変更する場合は <code>sudo raspi-config</code> &gt; <code>Display Options</code> から設定します）</p>
<h2>自動起動設定</h2>
<p>起動時に毎回、手動で立ち上げるのでは、あまり意味がないので、自動起動の設定を行います。</p>
<p>まず、以下の内容の <code>x11vnc.service</code> というファイルを <code>/etc/systemd/system/</code> に作成します。</p>
<pre><code class="language-text">[Unit]
Description=X11vnc
After=multi-user.target

[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -forever -auth guess -rfbauth /home/pi/.vnc/passwd

[Install]
WantedBy=multi-user.target</code></pre>
<p>これは systemd という Raspbian で採用されているデーモンの設定ファイルで、それぞれのオプションについてはここでは説明しませんが、x11vnc に限らず、自由に自動起動の設定が行えるので、覚えておくと良いでしょう。</p>
<p>また x11vnc の実行オプションにこだわりのある方は上記の <code>ExecStart</code> の行にオプションを書き加えることで実行オプションを変更することができます。</p>
<p>上記の設定ファイルを保存したら、以下のコマンドで設定ファイルを読み込ませます。</p>
<pre><code class="language-bash">$ sudo systemctl daemon-reload</code></pre>
<p>次に、設定が正しく行えて起動できるかを確認するために以下のコマンドで起動します。</p>
<pre><code class="language-bash">$ sudo systemctl start x11vnc</code></pre>
<p>後述する接続方法で接続ができれば、以下のコマンドで、自動起動を有効にします。</p>
<pre><code class="language-bash">$ sudo systemctl enable x11vnc</code></pre>
<h2>画面共有の接続</h2>
<p>macOS から確認するには 画面共有.app を使用します。画面共有.app は Spotlight から検索すると出てきます。</p>
<p>アドレスには Raspberry Pi のホスト名か IP アドレスを指定します。</p>
<p>または、Finder からサーバへ接続（ Command + K ）をし、<code>vnc://raspberrypi.local/</code> に接続することでも画面共有を開始できます。</p>
<p>この際 <code>raspberrypi.local</code> の部分は環境によって IP アドレスやホスト名に適宜変更してください。</p>
<h2>おわりに</h2>
<p>これでラズパイ用の周辺機器がなくても操作できるようになりました。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/430.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Raspberry Pi で Samba を設定してホームディレクトリにアクセスする</title>
		<link>/archives/428.html</link>
					<comments>/archives/428.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Mon, 13 Apr 2020 03:21:05 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">/?p=428</guid>

					<description><![CDATA[はじめに ラズパイをセットアップしたので、ファイル共有の設定をしていきたいと思います。 Samba ...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>ラズパイをセットアップしたので、ファイル共有の設定をしていきたいと思います。</p>
<h2>Samba のインストール</h2>
<p><a href="https://www.samba.org/">Samba</a> は SMB プロトコルを利用したファイル共有を実現するためのものです。</p>
<p>Raspbian では以下のコマンドでインストールすることができます。</p>
<pre><code class="language-bash">$ sudo apt install samba</code></pre>
<h2>ホームディレクトリを設定</h2>
<p>インストールした Samba の設定ファイルは <code>/etc/samba/smb.conf</code> にあります。これを編集してホームディレクトリにアクセスできるようにします。</p>
<p>お好きなエディタか <code>sudo nano /etc/samba/smb.conf</code> のコマンドで以下のように編集してください。</p>
<p><code>#</code> の行はコメントなので入力する必要はありません</p>
<pre><code class="language-text"># [homes] より下を編集
# browsable = no を yes に変更
browsable = yes
# read only = yes を no に変更
read only = no
# create mask = 0700 をコメントアウト / もしくは権限変更
# directory mask = 0700 をコメントアウト / もしくは権限変更</code></pre>
<p>これで設定ファイルを保存すれば、ホームディレクトリにアクセスできます。</p>
<h2>Samba ユーザの作成</h2>
<p>Samba のユーザを作成するため以下のコマンドでユーザを作成します。</p>
<pre><code class="language-bash">$ sudo smbpasswd -a &lt;user_name&gt;</code></pre>
<p><code>&lt;user_name&gt;</code> は自分の好きなものにします。例えば <code>pi</code> の場合は <code>sudo smbpasswd -a pi</code> となります。</p>
<h2>Samba の再起動</h2>
<p>変更した設定を読み込ませるために以下のコマンドで、Samba を再起動します。</p>
<pre><code class="language-bash">$ sudo systemctl restart smbd</code></pre>
<p>これで他のデバイスからホームディレクトリに自由にアクセスできるようになります。</p>
<h2>他のデバイスからアクセス。</h2>
<p>例えば macOS からは Finder で Command + K でサーバへ接続し、 <code>smb:/raspberrypi.local/</code> に先ほど作成したユーザで接続すると、ディレクトリが選択できて <code>Home</code> を選ぶと、ホームディレクトリに移動できます。</p>
<p>この際 <code>raspberrypi.local</code> の部分は環境によって IP アドレスやホスト名に適宜変更してください。</p>
<h2>おわりに</h2>
<p>これでファイルの移動や共有が簡単になりました。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/428.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>macOS で Raspberry Pi 用に Raspbian を SD カードに焼く</title>
		<link>/archives/425.html</link>
					<comments>/archives/425.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Sun, 12 Apr 2020 00:47:48 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<guid isPermaLink="false">/?p=425</guid>

					<description><![CDATA[はじめに クローゼットに眠っていたラズパイを有効活用すべく、久しぶりにセットアップを行ったので、その...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>クローゼットに眠っていたラズパイを有効活用すべく、久しぶりにセットアップを行ったので、その記録です。</p>
<h2>Raspbian のダウンロード</h2>
<p>まずは OS 本体をダウンロードしてきます。</p>
<p><a href="https://www.raspberrypi.org/downloads/raspbian/">ダウンロードサイト</a></p>
<p>好きなバージョンを選んでダウンロードします。僕は GUI 環境が欲しかったので Raspbian Buster with desktop を選びました。</p>
<p><img decoding="async" src="/wp-content/uploads/2020/04/ad4867038f1d716ed71e1c47cbee5673.png" alt="Raspbian Buster with desktop" /></p>
<h2>SD カードに書き込み</h2>
<h3>SD カードのアンマウント</h3>
<p>書き込みに備えて、SD カードをアンマウント状態にします。</p>
<p>ターミナルから <code>diskutil list</code> コマンドを実行して、SD カードのデバイス番号を取得します。環境にもよりますが <code>/dev/disk0</code> や <code>/dev/disk1</code> などは macOS のために使用されるため、<code>/dev/disk2</code> 以降に割り当てられていると思います。</p>
<p>僕の環境では <code>/dev/disk2</code> であったため、これ以降は <code>/dev/disk2</code> の表記を使いますが、それぞれの番号に置き換えてコマンドを実行してください。</p>
<p>アンマウントは以下のコマンドで実行できます。</p>
<pre><code class="language-bash">$ diskutil unmountDisk /dev/disk2</code></pre>
<h3>OS の書き込み</h3>
<p>書き込みは <code>dd</code> コマンドを使用して、<code>dd if=&lt;path_to_os&gt; of=&lt;disk&gt;</code> の様に実行できます。</p>
<p>執筆時点で最新の Raspbian を使用して、カレントディレクトリに解凍してある場合は以下のコマンドで、書き込むことができます。</p>
<pre><code class="language-bash">$ sudo dd if=2020-02-13-raspbian-buster.img of=/dev/rdisk2 bs=1m</code></pre>
<p>ここで、気をつけたいのが、先ほど確認したデバイスは <code>/dev/disk2</code> であったのに対し、今回の入力では <code>/dev/rdisk2</code> を使用しています。</p>
<p><code>/dev/disk2</code> はバッファリングを使用しアクセスするのに対し、<code>/dev/rdisk2</code> は直にデバイスへアクセスするため、書き込みを高速化することができます。</p>
<p>またオプションの <code>bs=1m</code> も高速化のために使用しています。</p>
<p>どちらも高速化のために行っているので、<code> sudo dd if=2020-02-13-raspbian-buster.img of=/dev/disk2</code> という通常コマンドでも、問題なく書き込むことができます。</p>
<p>時間は記録してませんが 5 – 10 分程度だった気がします。</p>
<h2>Raspberry Pi で起動確認</h2>
<p>書き込んだ SD カードを Raspberry Pi に戻し、起動させます。ちゃんと起動すれば成功です。</p>
<p>セットアップが始まるので、ガイドに沿って進めていきましょう。</p>
<h2>おわりに</h2>
<p>前は FreeBSD で使ってたので Raspbian のセットアップは購入時以来だったのですが、ガイドに沿って進めるとめちゃくちゃ簡単に使えるんですね。</p>
<p>もっと苦戦するものかと思ってました。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/425.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<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>就活体験談</title>
		<link>/archives/416.html</link>
					<comments>/archives/416.html#comments</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Fri, 27 Mar 2020 12:16:50 +0000</pubDate>
				<category><![CDATA[大学院生の日記]]></category>
		<category><![CDATA[ライフスタイル]]></category>
		<guid isPermaLink="false">/?p=416</guid>

					<description><![CDATA[はじめに この記事の執筆時点（ 2020年3月 ）で M1 の学年なので、所謂21卒の就活をしていま...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>この記事の執筆時点（ 2020年3月 ）で M1 の学年なので、所謂21卒の就活をしていました。無事、内定をいただき、就職先も決まったので就活の体験談を書こうと思います。</p>
<h2>そもそもなぜ就活をしていたか</h2>
<p>学部の時から <a href="https://typeproject.com/">タイププロジェクト</a> というフォントを作っている会社でエンジニアのインターンをしていて、来年4月からも是非と言われていました（ フォント会社のエンジニアって何するの？っていう方は是非 <a href="/20191102001058">こちらの記事</a> や <a href="/tag/%E3%83%95%E3%82%A9%E3%83%B3%E3%83%88">フォントタグ</a> を参考に ）。</p>
<p>そのため、就活をしなくても、しれっと入社！みたいなルートもありました。</p>
<p>ただ、インターンとして約1年半働いて、ここを新卒で選ぶ会社とすることの良いとことそうでないことがわかってきたので、他の企業も見始めました。</p>
<h2>インターン先の良いところ悪いところ</h2>
<h3>良いところ</h3>
<h4>好きを仕事にするので楽しめそう</h4>
<p>このブログからもわかるようにフォント関係のことが好きなので、単純にそれが仕事になるので楽しめます。</p>
<h4>人が良い</h4>
<p>社員が10人程度と少ない人数で作業をするので、人間関係が悪いと辛そうですが、そういうことは一切ないので、働きやすいです。</p>
<h3>良くないところ</h3>
<h4>エンジニアが少ない</h4>
<p>エンジニアが僕含め2人です。強いエンジニアが多くいた方が成長しやすいし、お互いに良い影響があると考えているので、少ないのは残念です。</p>
<h4>アウトプットが減る</h4>
<p>趣味でフォント関係のことをやろうとすると、内容によっては NDA や会社でコードを書くので、個人的なアウトプットが減ってしまいます。ただこれに関して言えば、例えば OSS や製品開発、ブログや登壇などを会社でやるといった解決方法もあったかもしれません。</p>
<h4>ドメイン知識の偏りが強い</h4>
<p>フォントのエンジニアというマニアックな職業は需要がとても多いわけではありません。今後のキャリアを考えると、フォントというドメイン知識の偏りが強く、転職などが困難になりそうな気がしました。</p>
<h2>就職先の探し方</h2>
<p>上記の良くないところを改善できるような企業を探していました。</p>
<p>ただ、探していたと言ってもすごく積極的に就活をしていたわけではなく、スカウト型（ 逆求人 ）のサイトに登録していたぐらいです。<br />
登録していたのは3つで感想と共に紹介したいと思います。</p>
<h4><a href="https://www.wantedly.com/">Wantedly</a>（ プレミアムアカウント ）</h4>
<p>一番よかったです。僕のユーザページは <a href="https://www.wantedly.com/users/24415997">こんな感じ</a> です。内定先の企業も最初は Wantedly 経由で連絡をもらいました。</p>
<p>スカウトの届く企業も平均的にレベルが高く、プロフィールも書きやすかった気がします。</p>
<h4><a href="https://offerbox.jp/">OfferBox</a></h4>
<p>良くなかったです。特にプロフィールがすごく書きにくかったです。URL の記入がめんどくさかったり、ポートフォリオを書くところがないので、エンジニアには向いてない気がします。</p>
<p>それとくるオファーも適当なのが多く、全然興味を持てませんでした。</p>
<h4><a href="https://www.vivivit.com/">ViViViT</a></h4>
<p>デザイナ向けですが使ってみたかったので使ってみただけで、あまり本格的には使ってないので、なんとも言えません。</p>
<p>上記のサイトで来たスカウトで気になるところがあれば、話を聞きに行ったという感じです。<br />
話を聞きに行く条件としては以下の点をメインに見ていました。</p>
<ul>
<li>Web 系</li>
<li>給与が月35万以上（ 年収400万強~ ）</li>
<li>働き方がある程度自由（ 時間とか服装とか環境とか ）</li>
<li>アウトプットが多い（ エンジニアが強い ）</li>
</ul>
<p>事業内容に強いこだわりはなく、まあ興味がある方が良いけどぐらいの感覚でした。</p>
<p>期間としては、2019年11月 – 2020年2月で、就活をしていました。合同説明会や大学主催のイベントなどには一切行っていませんし、リクナビ / マイナビも登録していません。<br />
実際に選考を受けたのは2社で説明を聞きに行ったのは6社ぐらいです。</p>
<p>ちなみに、就活期間中一度もスーツは着てないし、髪も赤だったり青だったり明るい茶色だったりしました。</p>
<h2>選考で考えていたこと</h2>
<p>基本的に、提出した情報は <a href="https://hgrs.me/">ポートフォリオ</a> / <a href="https://github.com/higurashi-takuto">GitHub</a> / このブログ です。<br />
特別に企業ごとに「ここはこういう企業だから ES / 面接ではここを強調しよう！」みたいなのは一切していなくて、どこの企業の選考でも同じこと（この記事に書いているようなこと）を言っていました。</p>
<p>それで落ちるなら、そもそも僕はその企業に向いていないんだろうし、入ってもどこか無理して働くことになるだろうからです。</p>
<p>なので所謂 ES 対策、面接対策、就活セミナーのようなことは何もしてなく、就活も楽に終えられた気がします。</p>
<h2>結局、どこ入るの？</h2>
<p>2021年4月から <a href="https://corp.freee.co.jp/">freee株式会社</a> でエンジニアとして働きます。</p>
<p>決めた理由としては上記で挙げた「話を聞きに行く条件」に全て当てはまるということと、freee が掲げている <a href="https://jobs.freee.co.jp/benefits/">「マジ価値」</a> という考え方にすごく共感し気に入っているからです。</p>
<p>マジ価値指針にあることはどれもある意味当たり前で実現されてたら良いに決まってるっていうことなんですが、それを言語化して会社全体として掲げており、かつそれを実現 / 体現できているように感じました。<br />
それが一番の決めてだった気がします。</p>
<p>それと、オフィスにファミレスみたいなドリンクバー（ サントリーのドリンクディスペンサー ）があるのが良いですね！</p>
<p>まあ、まだ入社したわけでも働いているわけでもないので、実際に入社した頃にまた何か書こうと思います。</p>
<h2>おわりに</h2>
<p>就活に対する思いをつらつらと書いてきましたが、誰かしらの参考になれば幸いです。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/416.html/feed</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>【macOS】Python の環境構築 — pyenv と pyenv-virtualenv —</title>
		<link>/archives/418.html</link>
					<comments>/archives/418.html#respond</comments>
		
		<dc:creator><![CDATA[hgrs]]></dc:creator>
		<pubDate>Fri, 20 Mar 2020 09:53:54 +0000</pubDate>
				<category><![CDATA[技術メモ]]></category>
		<category><![CDATA[Python]]></category>
		<guid isPermaLink="false">/?p=418</guid>

					<description><![CDATA[はじめに 僕なりの macOS で Python 環境を作るためのお話です。 pyenv と pye...]]></description>
										<content:encoded><![CDATA[<h2>はじめに</h2>
<p>僕なりの macOS で Python 環境を作るためのお話です。</p>
<h2>pyenv と pyenv-virtualenv</h2>
<p>ここでは Python の仮想環境を <a href="https://github.com/pyenv/pyenv">pyenv</a> と <a href="https://github.com/pyenv/pyenv-virtualenv">pyenv-virtualenv</a> で作成する方法を紹介します。</p>
<h2>pyenv</h2>
<h3>Homebrew を用いたインストール</h3>
<p>macOS を使用している場合は <a href="https://brew.sh/index_ja">Homebrew</a> を用いてインストールすることができます。Homebrew をインストールしていない場合はリンク先のインストールコマンドを実行しましょう。</p>
<p>pyenv のインストールコマンドは以下の通りです。</p>
<pre><code class="language-bash">$ brew install pyenv</code></pre>
<h3>Git を用いたインストール</h3>
<p>pyenv の GitHub リポジトリをクローンしてくることでもインストールすることができます。</p>
<p>コマンドは以下の通りです。</p>
<pre><code class="language-bash">$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv</code></pre>
<h3>パスの追加と初期化</h3>
<p>インストールした pyenv を使用できるように、パスを通し、シェル実行時に初期化をしてやる必要があります。</p>
<p>今回は最新の macOS 標準の Z Shell( zsh ) の方法を紹介します。<br />
Bash を使用している方は適宜 <code>.zshrc</code> を <code>.bash_profile</code> などに読み替えてください。</p>
<p>実行するコマンドは以下の通りです。</p>
<pre><code class="language-bash">$ echo &#039;export PYENV_ROOT=&quot;$HOME/.pyenv&quot;&#039; &gt;&gt; ~/.zshrc
$ echo &#039;export PATH=&quot;$PYENV_ROOT/bin:$PATH&quot;&#039; &gt;&gt; ~/.zshrc
$ echo -e &#039;if command -v pyenv 1&gt;/dev/null 2&gt;&amp;1; then\n  eval &quot;$(pyenv init -)&quot;\nfi&#039; &gt;&gt; ~/.zshrc</code></pre>
<h3>Python バージョンの追加</h3>
<p>仮想環境のためのバージョンを追加するにはバージョンを指定し、以下のコマンドで追加できます。</p>
<pre><code class="language-bash">$ pyenv install x.x.x</code></pre>
<p>この際、インストール可能なバージョン一覧は <code>pyenv install -l</code> で確認することができます。</p>
<p>また、アプリケーションをビルドする場合などはフレームワークとしてインストールする必要があります。コマンドは以下のとおりです。</p>
<pre><code class="language-bash">$ env PYTHON_CONFIGURE_OPTS=&quot;--enable-framework&quot; pyenv install x.x.x</code></pre>
<h2>pyenv-virtualenv</h2>
<h3>Homebrew を用いたインストール</h3>
<p>pyenv と同じく Homebrew でインストールできます。インストールコマンドは以下の通りです。</p>
<pre><code class="language-bash">$ brew install pyenv-virtualenv</code></pre>
<h3>Git を用いたインストール</h3>
<p>こちらも pyenv と同じく Git でもインストールできます。コマンドは以下の通りです。</p>
<pre><code class="language-bash">$ git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv</code></pre>
<h3>初期化</h3>
<p>pyenv 同様に、初期化のコマンドを追加します。</p>
<pre><code class="language-bash">$ echo &#039;eval &quot;$(pyenv virtualenv-init -)&quot;&#039; &gt;&gt; ~/.zshrc</code></pre>
<h3>仮想環境の追加</h3>
<p>仮想環境を追加するには以下のコマンドを実行します。</p>
<pre><code class="language-bash">$ pyenv virtualenv x.x.x &lt;name&gt;</code></pre>
<p>例えば、Python 3.8.2 で test-3.8 という名前の環境を作りたい場合は以下のようになります。</p>
<pre><code class="language-bash">$ pyenv virtualenv 3.8.2 test-3.8</code></pre>
<h2>仮想環境の指定</h2>
<h3>グローバル</h3>
<p>特別に、環境が指定されていない、グローバルな環境で使うバージョンを指定するには <code>pyenv global</code> を使用します。例えば先ほど作成した <code>test-3.8</code> を使用する場合は以下のようになります。</p>
<pre><code class="language-bash">$ pyenv global test-3.8</code></pre>
<h3>ローカル</h3>
<p>カレントディレクトリで、特定の仮想環境を指定する場合には <code>pyenv local</code> を使用します。例えば先ほど作成した <code>test-3.8</code> を使用する場合は以下のようになります。</p>
<pre><code class="language-bash">$ pyenv local test-3.8</code></pre>
<p>このコマンドを実行すると、ディレクトリに <code>.python-version</code> というファイルが追加され、そこに、指定した仮想環境が書き込まれます。</p>
<p>また、<code>pyenv activate &lt;name&gt;</code> を使用することで、仮想環境を一時的に起動することもできます。</p>
<h2>仮想環境の確認</h2>
<p>現在作成されている仮想環境の一覧を取得するには <code>pyenv versions</code> が使用できます。また、一覧ではなく、現在の環境で適用されているものを知りたい場合には <code>pyenv version</code> で確認できます。</p>
<h2>おわりに</h2>
<p>ここで紹介した他に必要そうなコマンドが出てきたら、追記していきます。</p>
]]></content:encoded>
					
					<wfw:commentRss>/archives/418.html/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
