Linux,Windows,環境構築

こんにちは、しきゆらです。
Railsと戯れ始めたわけですが、MySQLを動かすために結構時間がかかってしまいました。
serviceで自動起動する方法がわからず、毎回service mysql startとして起動しています。

さて、今回はserviceコマンドを使ってMySQLを立ち上げようとしたときにおこった問題と解決方法をメモしておきます。

 

Ruby,Windows

こんにちは、しきゆらです。
今回は、Railsさんと仲良くなるための施策として、公式のチュートリアルを進めながら理解を深めていこうと思います。

Railsと戯れることが多いのですが、まだまだ仲がいいとは言えません。
デプロイで苦戦した記憶があるのと、Rails流のお作法をきちんと把握しきれていないことが要因です。
そこで、手軽にできて楽しそうなRailsチュートリアルを一通りふれながらRails流のお作法を学んで行きます。

今回は、Rails Guidesにある「Railsをはじめよう」というものをやっていきます。
基本はガイドにある通りですが、一部違うことをすることがあるかもしれません。
この時はきちんと記載します。

 

0. なぜ本ではなく無料のガイドを使うの?

Railsに強い先輩に、良さげな本はないかを聞いたところ、本よりも公式情報のほうがよい、ということを伺いました。
実際、少し見てみるとブログや技術系サイトの情報よりもわかりやすかった気がします。

あとは、大きい要因としては公式情報なので信用できるはずだからです。
発売されている本は、間違っていないか等をきちんと調査しているとは思いますが、動かなかった場合

  • 自分の環境・記述が悪い
  • 本の内容が間違えている
  • Rails、関連するライブラリのバグ

等々様々な要因が考えられるわけです。

たいていの場合、自分の環境や記述が間違えていることが多いですが、本の内容自体が間違えていることも意外と多くあります。
また、本の場合は情報の更新がされないので、本革のミスの場合は正誤表を確認しながら作業を進めないといけません。
これは面倒ですよね。

その点、Rails Guidesは(ほぼ)公式情報である上に、きちんと最新情報も書かれているようです。
安心感が違いますよね。
一応、公式サイトや定義を確認しようということもいわれたので、公式のものを使っていきます。

では、実際にガイドをもとに作業を進めていきます。

Ruby,Windows,環境構築

2020/08/19 追記

こちらの記事が割と検索に引っかかってみてくれているようなので追記しておきます。
最近関連した記事を追加したので、よろしければこちらもどうぞ。
【Ruby/Win】Windows上のAtomからWSL2上のrubocopを利用する 2020年版

本文

こんにちは、しきゆらです。
今回は、Windows上でRubyの開発環境を整える方法をメモしておきます。

以前までは、DockerやWSLを使って開発ができそうな状態までをメモしてきました。
しかし、少し前に画期的なものがMicrosoftから発表されました。
そう、WSL2です。

以前までのWSL(以下、WSL1)から大きく改善され、個人的には普段使いできるのでは?という状態までなっています。
今回は、WSL2を導入してWindows上でRuby環境を構築、rubocopで変なコードを怒ってもらうところまでをまとめます。

日記

先日、プルリクを送るとLGTMとだけ返ってきました。
最近話題(?)のLGBTかと思いましたが、違いました。

調べてみると「Looks Good To Me」の頭文字をとったもので「いいと思うよ」程度の意味らしい。
つまりは、コードを見たけど問題ないと思うよ~ってな感じでしょうか。

Looks Good To Me

言わずと知れたマージトリガー

参考:https://qiita.com/kenboo/items/d18bf97354f4d5b42cdf

初めて書かれると何を言ってんだ???と思いますが、わかれば4文字で伝わるので良さそうですね。
しかし、こういうのをどこかにまとめておいてほしい。
所見では確実にわからないと思いました。

 

おわり

Linux,Ruby,Windows

皆さん、Sinatra使っていますか?
簡単なWebアプリであれば一瞬でできてしまうような、Webアプリケーションフレームワークです。

しかし、簡単なので機能をたくさん増やしていたり、処理が多くなってくるとどうしても起こるのが「全体像が見えにくくなる」ということ。
機能やエンドポイントごとに分割したい、と思うこともあるでしょう。
私は思いました。
その方法を調べてみたので、まとめておきます。

例として、以下のような形でアプリケーションを作成しているとします。

[ruby]
# app.rb
require 'sinatra’
class MyApp < Sinatra::Application
get '/’ do
'hello’
end
end
[/ruby]

今回は、エンドポイントごとにファイルを分割していきます。

 

Ruby,Windows

こんにちは、しきゆらです。

タイトルが長くてよくわからないかもしれません。
問題と解決方法を、メモしておきます。

問題

WSL上にrbenvを用いてRuby2.6.3をインストールして簡単なWebアプリを作成しようとしていました。
適当なディレクトリにbundlerを使ってSinatraとUnicornをインストールし、起動テストを行いました。
最初は問題なくUnicornが起動したので、一度停止させておきました。
再びUnicornを立ち上げると、うまく立ち上がりません。

Unicornはデフォルトではターミナルにエラー等を表示しないので、エラーログをファイルに吐き出すようにしてありました。
エラーログの中には、このようなエラーが記録されていました。
code:error
F, [2019-05-22T22:52:13.998205 #22482] FATAL — : error adding listener addr=/path/to/sinatra_app/tmp/sockets/unicorn.sock
ArgumentError: socket=/path/to/sinatra_app/tmp/sockets/unicorn.sock specified but it is not a socket!

どうやら、ソケットファイルが問題のようです。

解決方法

根本的な解決方法ではありませんが、tmp/sockets/unicorn.sockファイルを削除すると問題なく起動するようになりました。

しかし、再度Unicornを停止した後Unicornを再起動すると再び上記のエラーが表示されます。
Unicorn停止とsockファイルの削除は同時に行うと、無駄な時間がかからないかともいます。

解決方法があればコメントやTwitter等から教えてほしいです。
というか、そもそもsockファイルと普通のファイルの違いなどもきちんと理解できているわけではないので、この辺も含めて調べる必要がありそうです。

今回は、場当たり的な対処法までをまとめておきました。

 

おわり

日記

こんにちは、しきゆらです。
今回は、うれしさのあまりTwitterにも投稿しましたが、RealForceのキーボードを購入したのでメモしておきます。

 

RealForce?

恥ずかしながら、私は同僚から教えてもらうまで存在を知りませんでした。
調べてみると、東プレ株式会社が提供している金融機関やデータ入力など業務関係で使われているキーボードのようです。
耐久性や静穏性が高いのが特徴ということでした。
キーボード(REALFORCE) | 電子機器関連製品 | 製品情報 | 東プレ株式会社

Windows,環境構築

こんにちは、しきゆらです。
今回は、Windowsで開発環境を整えていきます。
Windows環境での開発環境としてWSLを使って環境を整えていこうと思います。

 

Windows,日記

こんにちは、しきゆらです。
今回は、少し間が空きましたが作成した自作PCのスペックを図っていきたいと思います。

 

ベンチマーク?

よく聞くベンチマークとは何か。
簡単に言えば、メーカーや型番の異なる製品等の性能を同じ指標で評価するためのものです。

例えば、CPUで言えばIntel製CPUとAMD製CPUではそもそもメーカが異なるため単純な比較はできないでしょう。
また、Intel製CPUでもi3やi5などのシリーズや、世代によっても性能が異なります。
これらを比較するために、同じ処理をさせてどのくらいスコアに差が出るかを測定するのがベンチマークです。

今回は、CPUとGPUのベンチマークをとっていきます。

なお、自作PCのスペックは以前までの記事を参照してください。

 

 

Linux,Mac

こんにちは、しきゆらです。
今回は、screenコマンドを知ったのでメモしておきます。

Linux等を触っていると、時々時間がかかる処理を走らせることがありますよね。
私の場合は、aptやyum、dnf等のパッケージマネージャでのアップデート関係やrbenvなどで環境を整えるときなどです。
このようなコマンドをSSH越しに実行しているときに、途中で接続が切れると悲しいことになりますよね。

そんなことが起きても大丈夫なようにしてくれる魔法のコマンドが「screen」コマンドです。
できることはいくつかあるようですが、よく使うのがセッションの管理でしょう。
今回は、簡単に使い方をまとめておきます。