Rails 7.1.3でデフォルトのログが標準出力になっていたのでlog/production.logファイルに出力する方法。
やること
config/environments/production.rbにlogger設定を書く。
config.logger = Logger.new('log/production.log', 'monthly')
AIやプログラミングの情報をわかりやすく解説
Rails 7.1.3でデフォルトのログが標準出力になっていたのでlog/production.logファイルに出力する方法。
config/environments/production.rbにlogger設定を書く。
config.logger = Logger.new('log/production.log', 'monthly')
本番環境で動かす前にローカルでproductionを指定して動かしたら以下のエラーが出た。
HTTP parse error, malformed request: #<Puma::HttpParserError: Invalid HTTP format, parsing fails. Are you trying to open an SSL connection to a non-SSL Puma?>
原因はSSLでアクセスする必要があるのにhttpでアクセスしているからだ。
config/environments/production.rbのforce_sslをfalseにすれば良い。
config.force_ssl = true
ローカル環境でもsslでアクセスした方が良いかもしれない。やる方法はいくつかあるが今回は採用しない。
OSのバージョンはUbuntu 22.04.3。Nginxのインストール方法はこちら。
こちらのサイトをそのまま実行すれば良い。
$ sudo apt update
$ sudo apt install apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
$ echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
$ sudo apt update
$ apt-cache policy docker-ce
$ sudo apt install docker-ce
$ sudo systemctl status docker
$ cd /var/www
$ git clone https://${GIT_USER}:${GIT_TOKEN}@github.com/${GIT_REPOSITORY}
$ docker compose -f docker-compose.production.yml build
$ docker compose -f docker-compose.production.yml up -d
VPSを使って自分のWebサイトを作る方法を紹介します。VPSを使えば静的サイトも動的サイトも作ることができます。今回はConoHaのVPSを使います。月額460円から始められます。
今回は2GBのプランを12ヶ月で契約します。
ConoHaの会員登録を行いプランを確認します。今回はUbuntuの2GBを選択します。
お客様情報と支払い方法を入力すると契約ができます。
セキュリティグループの設定を行います。今回はWebサーバーとして使うのとSSHでの接続を行うので、IPv4v6-WebとIPv4v6-SSHを追加します。
コンソールからrootユーザーで最初に設定したパスワードを使ってログインできます。
ターミナルからもssh root@your_IP
でログインできます。
$ sudo apt update
$ sudo apt install nginx
$ sudo ufw allow 'Nginx Full'
$ sudo ufw allow 'Nginx HTTP'
$ sudo ufw allow 'Nginx HTTPS'
ipアドレスにブラウザからアクセスすればWelcome to nginxが表示されます。
ConoHaの管理画面は動作が少し重く感じました。管理画面を使うことはあまりないですが、どうにか改善してほしいです。
迷わなければ30分もかからずに終わると思います。
パソコンの使い方を説明するためにキーボードの入力を画面に表示してみる。
GitHubのKeyCastr を参考にそのまま実行する。
brew install --cask keycastr
Security & Privacyから許可をすると入力時に画面に出力される。
KeyCastrのアプリを開いて文字の大きさなどを設定できる。
ドラッグ&ドロップでどこに表示するかを変更できる。
ブログを書くときにWebページのリンクを挿入することはよくある。ページのタイトルをテキストで入力してURLをリンクとしてコピペするのは少し手間なので、一発でページタイトルとURLをコピペする。
YouTubeにも解説動画をあげています。動画の方が見やすい方はこちらをご覧ください。
Create Linkのページ: https://chromewebstore.google.com/detail/create-link/gcmghdmnkfdbncmnmlkkglmnnhagajbm?hl=ja
今回はHTML形式のフォーマットをしているす。
<a href="%url%">%htmlEscapedText%</a>
他にもmarkdown形式など自由に設定できる。
chrome://extensions/shortcutsからショートカットの設定ができる。他で使わない覚えやすいショートカットならなんでも良い。
フリーランスになったことをきっかけに名刺を作った。Canvaでデザインを作ってラクスルで印刷すると簡単にあっという間にできる。100枚741円で印刷から郵送までできてお手頃だった。
YouTubeにも名刺の作り方を投稿しているので動画の方が見やすい方はこちらを見ていただきたいです。
名刺を作るためにまずはデザインを決める。Canvaのテンプレートで名刺を検索するとたくさん出てくるので気に入ったものを選ぶ。
テンプレートが決まったら名前やメールアドレスなどを変更してあっという間に完成!
自分だけのデザインにしたければ画像を加えたりフォントを変えたり好きなように編集できる。
Canvaで印刷すると1,700円くらいかかる。
今回はラクスルの通常サイズ名刺印刷にする。料金は100枚で454円+送料200円。税込で741円だった。
発注してから4日後に名刺が100枚届いた。
SNSなどで繋がることが多く名刺は少しダサいイメージもあったがやすく良い感じに作れたのでやってみてよかった。もしデザインを変えたくなってもすぐに印刷できそう!
Pythonを使って過去のデータから未来を予測する方法を解説します。YouTubeにも投稿しているので動画の方が見やすい方はぜひ動画でご覧ください!
未来の株価を予測するために、過去のデータをPythonのstooqというライブラリを使って取得します。取得したデータをもとにpmdarimaというAIのライブラリを用いて学習を行い、学習したモデルを使用して未来の株価を予測します。
青色の線の過去のデータかAIが予測した未来のデータを緑色の線で描いています。
今回使用したコードはGoogle ColabというブラウザからオンラインでPythonが実行できる環境で公開しています。以下のリンクからアクセスして実際に動かしながら確認することで理解が深まると思います。
https://colab.research.google.com/drive/1RIouiTq43u1QqD6xA6aurLgCFTMHEi60
https://colab.research.google.com/drive/1RIouiTq43u1QqD6xA6aurLgCFTMHEi60
from pandas_datareader.stooq import StooqDailyReader
from datetime import datetime
start = datetime(2023, 11, 1)
end = datetime(2024, 2, 1)
brand = '1306.JP' #TOPIX
stooq = StooqDailyReader(brand, start=start, end=end)
data = stooq.read()
# 学習
train = data.Close.to_numpy()
train = np.flip(train) # 時刻が古い方から新しい方の順番にする
model = pm.auto_arima(train, d=2, seasonal=False, max_p=6)
import matplotlib.pyplot as plt
# 予測
p = 12
forecasts = model.predict(p)
# グラフ表示
x = np.arange(61+p)
plt.plot(x[:-1*p], train, c='blue')
plt.plot(x[-1*p:], forecasts, c='green')
plt.show()
正しい未来を正確に予測することは難しいですが、過去のデータから未来を予測するのはAIの得意分野の一つです。予想以上に簡単に実行できるのでみなさんもぜひ試してみてください。Google ColabのコードやYouTubeの動画も参考にしていただきたいです。