ゲームマーケット2019秋でパタクルダイススマッシュ2を先行発売
ゲームマーケット2019秋でスピカデザイン様のブースにてパタクルダイススマッシュ2を先行発売しました!
gitでリモートに追加されたブランチが表示されないときは
git branchの-rまたは--remotesオプションでリモートブランチを表示すると、リモートにあるはずのブランチが表示されないときがあります。
$ git branch -r
チームの他の開発者が新しくリモートに追加した場合など、追加されたブランチが表示されされません。
こんなときに最新のリポートのブランチを確認するにはgit ls-remoteを使用します。
git ls-remoteを使用するとリモートリポジトリの最新の状態を確認できます。
$ git ls-remote
リモートリポジトリを指定する場合はリモートリポジトリの名前を指定します。
$ git ls-remote origin
新しくリモートに追加されたブランチが確認できたらgit fetchします。
$ git fetch
これでgit branch -rでリモートのブランチも表示されるようになります。
Railsでrescue_fromを使ってエラー処理を共通化する
Railsのコントローラクラスのrescue_fromメソッドは、例外が発生した場合に実行するメソッドを指定できます。
コントローラーで独自のエラページをエラー内容によって切り替えたり、
APIでエラーが発生した場合に処理を共通化する場合などrescue_fromメソッドを使うとスッキリします。
ということで、APIのエラー処理の共通化を考えてみます。
各APIコントローラーのスーパークラス
各APIコントローラのスーパークラスを作成し、サブクラスで発生した例外は全てここでハンドリングします。
Api::TuleApiErrorが発生した場合、Api::ApiControllerのtule_api_errorメソッドが実行されます。
下記の例ではトークンが不正な場合は、HTTPステータスを401 Unauthorized、それ以外の場合は200 OKを返しています。
HTTPステータスは、例外の内容によって適切な値を設定します。
class Api::ApiController < ActionController::API
include ActionController::HttpAuthentication::Token::ControllerMethods
rescue_from Api::TuleApiError, with: :tule_api_error
protected
# トークン認証
def authenticate
・
・
・
end
private
# エラー時のレスポンスを返す
def tule_api_error(e)
header = {result: e.code, message: e.message}
response = {header: header}
status = :ok
status = :unauthorized if e.code == Api::Result::HTTP_TOKEN_ACCESS_DENIED
render json: response, status: status
end
end
上記のコードでApi::Resultはエラーコードを定義しているクラスです。
EclipseでTomcatを起動するとタイムアウトになる場合の対策
EclipseTomcatを起動するとタイムアウトしてしまい起動できないときがあります。
サーバー ローカル・ホスト の Tomcat8 (Java8) は 45 秒内に始動できませんでした。サーバーがより多くの時間を必要とする場合、サーバー・エディターでタイムアウトを大きくしてください。
タイムアウトで起動に失敗する場合はTomcatの開始するまでのタイムアウト時間を長く設定します。
デフォルトで45秒になっているのでこの値を増やします。
CentOS 7にMySQLをインストール
CentOS 7にMySQLをインストールします。
さくらVPS 設定マニュアルを参考にMySQLのインストールを進めます。
環境
CentOS 7.7.1908
MySQL 5.7.x
rootで作業を進めます。
1. MariaDBの削除
CentOS7ではMariaDBがインストールされているため、MySQLと競合しないようにMariaDBとデータベースの削除が必要です。
# yum remove -y mariadb-libs
# rm -rf /var/lib/mysql
さくらのVPS CentOS 7でファイアーウォールの設定
パケットフィルタの設定
さくらのVPSのコントロールパネルでパケットフィルタの設定を確認すると、パケットフィルタの利用設定が利用する、接続可能ポートにSSH(22)が設定されています。
ファイアウォールの設定はサーバー側で行うので、パケットフィルタの利用設定は利用しないに設定します。
このあと、さくらのVPS - コントロールパネルでコンソールを起動しファイアウォールの設定を進めます。
さくらのVPSでCentOS 7にnginxをインストール
さくらのVPSでCentOS 7にyumでnginxをインストールします。
リポジトリの設定インストール方法については 公式サイトに記載されているので公式サイトの手順を参考に進めてみます。
事前準備
yumのユーティリティをインストールします。
$ sudo yum install yum-utils
yum リポジトリの設定にnginxを追加
/etc/yum.repos.d/nginx.repoを作成しリポジトリの設定を追加します。
$ sudo vi /etc/yum.repos.d/nginx.repo
公式サイトでと同様にnginx.repoに下記の設定を追加します。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
macOS Catalinaにアップグレードしようとしたら「コンピュータにmacOSをインストールできませんでした」
macOSをMojaveからCatalinaにアップグレードしようとしたら下記のようなメッセージが表示されインストールできない状態になってしまいました。
ディスクの空き領域が少ないためアップグレードできないようです。
コンピュータにmacOSをインストールできませんでした
Macintosh HDにはインストールに必要な空き領域がありません
インストーラを終了してコンピュータを再起動してからやり直してください。
「再起動してからやり直してください」と表示されているので再起動ボタンから再起動しても
macOSインストーラーが起動し同じエラーになってしまいます。
Macが復旧するまでにいろいろ試したことを書き残しておきます。