とーますメモ

Ruby on Rails / Goなどの学習メモ

【MacOS:Catalina】"default interactive shell is now zsh" を非表示にする方法

とりあえずはbashを継続して使用したいのにターミナルを開くたびに、タイトルのメッセージが表示されるのは鬱陶しいので情報を探したところ以下の記事がヒット。www.addictivetips.com単純に以下を「.bash_profile」に書けばOK export BASH_SILENCE_DEPRECAT…

【Rails】migrationファイル実行時に同時にSQLを実行する方法

作成するmigrationファイルの処理は、1つのカラムを追加するというシンプルな処理のみを行う。 しかしdefault値は設定せず、全レコード上の作成されるカラムには、特定の値を埋め込みたいという要件があったため migration実行時にカラムを追加後、その特定…

【MySQL】フランス語などのアクセントが正しく取得できない。

以下が参考になった。mysql – selectクエリを使用してアクセント記号のない文字でカラムをフィルタリングする方法 - コードログ utf 8 - How to conduct an Accent Sensitive search in MySql - Stack Overflow以下のように「COLLATE utf8_bin」を付ければ良…

【Rails】ActiveRecordの属性メソッドを上書きする

使用しているWebアプリの1つに Railsが管理しているDBではない、他のDBからのデータを取得する必要があった。当たり前の話だが、Railsではapplication.rbのtime_zoneの設定のため 日付取得の際に自動で、タイムゾーン変換が行われる。thoames.hatenadiary.j…

【Rails】難しすぎる!? Timezone(タイムゾーン)についてのメモ

自分用メモ。大事なことは全て以下のページにあった。 qiita.com qiita.com上記の内容から重要なポイントを抜き出すと以下の通り。 1)タイムゾーンの設定 システムまたは環境変数のタイムゾーンとapplication.rb(time_zone)が同じならば、 Time.nowでもTim…

【Rails】サービスクラスについて自分なりにまとめてみた

最近、設計した画面が4〜5個のモデルが絡む画面があった。 その時コントローラー内で実装した場合、肥大化することが容易に想像でき、 またどれか一つのモデル内で実装する処理としては複雑なため「サービスクラス」が必要なのではないかと思い調べてみた…

【Rails】Form Objectを使ってみた

Formオブジェクトについての説明は省略。自分なりの定義方法は以下ファイル名: XXXX_form.rb クラス名: XXXXXForm 配置ディレクトリ: app/forms/[参考] 【Rails】FormObjectを使ってほしい - Qiita

【Rails】Rails4で親モデル用のサブディレクトリを作成し、STI(単一テーブル継承)をやってみる

サブディレクトリの作成 サブディレクトリを配置する場所は app/models内。ディレクトリ名はここでは「app/models/parents」とした。Rails4ではmodels直下しか読み込まれないので 「config/application.rb」内に以下を追加し、models内のサブディレクトリ内…

【Laravel】Mac上で環境構築をしてみる

[前提] ※1 homebrewが既にインストールされている ※2 DBはMySQLを使用する Composerのインストール Railsでいうgemみたいなパッケージ管理ツールであるComposerをインストールし ComposerからLaravelをインストールインストール $ brew install composer 確…

【CakePHP2.x】メンテナンスページを作成する方法

今更だが、古いCakePHP2.x系のソースを修正する必要があり、 メンテナンスモードを簡単に実装するため、以下のプラグインを使用。github.comただ、TOPページはCakePHP3.x系のものっぽいので、 branchesをたどり、以下の2.x系のソースをダウンロードして使用…

【Python】Pythonを学習してみて思ったこと

自分用メモ。普段はRubyを使っているので、 以下の本を読みながら思ったことをメモしていく。 なにかの言語を既に触っているんだったら、1日あれば十分読める。独学プログラマー Python言語の基本から仕事のやり方まで作者: コーリー・アルソフ,清水川貴之…

【Python】簡単な開発環境構築

Pythonの基本環境構築は前回の記事で書いたので、その続き。 thoames.hatenadiary.jpアプリの起動を逐一「pipenv shell」=> 「python app.py」とかするのが面倒くさいので Pipfileに以下のように書いておけば、「pipenv run start」とすることでアプリを一発…

【Python】Python初心者がMac上で環境構築をしてみる

homebrewが既に入っており、Python3環境を作成するのが前提。新しい言語を使用するときに、自分がまず調べることは以下の2つ。1)デバック方法の把握 2)グローバル環境を汚染せず「プロジェクト毎の環境(バージョン及びパッケージ)」が構築できるツー…

【Python】デバック方法について

自分用メモ。Rubyのbyebugみたいなやり方を探していたら、 以下の一行を入れれば良いだけ。 import pdb; pdb.set_trace()でも長すぎる・・・JetBrainsのPyCharmやVSCode入れれば、上記のコード入れなくても ブレークポイントをエディタ上でつけられるので良…

【WordPress】Wordmoveで、ローカルのDocker環境をProductionのDocker環境へpushする

以前の記事の続き。 thoames.hatenadiary.jp以下がプロダクション環境のdocker-compose.ymlの設定。 本当は細かく各ミドルウェアのバージョンを指定したほうが良いが 今回は省略。またこの記事ではWordMoveのmovefile.ymlの説明も省略する。 version: "3" se…

【Docker】docker-composeで立ち上げたphpmyadminコンテナのbashに入れない

phpmyadminコンテナ内で使用されているconfig.inc.phpの中身を見たかったので 以下のコマンドでphpmyadminのコンテナに入ろうとしたが入れなかった。 $ docker exec -it [container_id] /bin/bash ※ちなみにphpmyadminのイメージは公式の「phpmyadmin/phpmya…

【セキュリティ】Ubuntu上で、Auditを使用しファイル監視を行ってみた。

以下のサイトがすごくまとまっている。 第7章 システム監査 - Red Hat Customer PortalAuditを使用することで、システム上のファイルやディレクトリの読込/書込情報を追跡し、監視ログを出力することができる。 またそれに付随するログ検索ツール(ausearch…

【cron】改めてcronの設定方法について勉強し直してみた

今までなんとなく使ってきたが 以下の3つのパターンで設定することができるらしく 何が違うのかはっきりさせたかったので、学習し直すことにした。1)/etc/cron.(daily|weekly|monthly)/内に設定する方法 2)crontabコマンドで設定する方法 3)/etc/cron…

【SSH】ログイン時にSlackに通知する

下記のサイトさんのやり方を参考に作成 [Linux]SSHログイン時にメール/Slackで通知する – 備忘録の覚書以下の"XXX.XXX.XXX.XXX"箇所は信頼できるIPを設定 半角スペースを入れることで複数指定可能。 e.g.) "XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY"{{ slack_login_…

【Lynis】[ACCT-9622] プロセス・アカウンティングの設定をする

Enable process accounting [ACCT-9622] https://cisofy.com/lynis/controls/ACCT-9622/ プロセス・アカウンティングを行うことで ユーザー自身が自由に編集・削除可能な history とは別で、詳細なコマンド履歴を残すことができるようになる。 ユーザがコマ…

【Lynis】表示された警告や推奨設定の詳細を調べるコマンド

以下のように[show details テストID]でそのテストの詳細が表示される。 $ sudo lynis show details PKGS-7392 [参考] How to Perform Security Audits With Lynis on Ubuntu 16.04 | DigitalOcean

【Lynis】Suggestionsの項目を無視する方法

以下の記事を参考 How to Perform Security Audits With Lynis on Ubuntu 16.04 | DigitalOcean 設定ファイルを編集 $ vi /etc/lynis/custom.prf 以下は設定例 # Lines starting with "#" are comments # Skip a test (one per line) # This will ignore sep…

【Lynis】[BOOT-5122] シングルユーザモードでもログインできなくする

自分用メモ。以下方法を行うことでデータの損失その他あらゆる不具合、不都合が生じた場合についても、一切の責任を負いません。 あくまでも自己責任でお願いします。 Set a password on GRUB bootloader to prevent altering boot configuration (e.g. boot…

ドキュメントの追加(書込)と検索(読込)

前回の記事の続き。 thoames.hatenadiary.jp 前準備 その後、プロジェクト用のディレクトリを任意の場所に作成例)デスクトップにsampleディレクトリを作成 $ cd Desktop $ mkdir sample Firebase CLIの設定 $ firebase init 続く画面では、FirestoreとHosti…

Mac上でFirebaseを初期設定を行う

既にHomebrewが入っていて、 Firebase用のGoogleアカウントを既に所持していることが前提。後述するFirebase CLIのセットアップでは ・Database ・Firestore ・Functions ・Hosting ・Storage が選択できるが、 自分の場合は、FirestoreとHostingを選択する…

Mac上でFirebaseを初期設定を行う

既にHomebrewが入っていて、 Firebase用のGoogleアカウントを既に所持していることが前提 インストール nodebrew Node.jsをバージョン管理できるnodebrewを先にインストールする。 $ brew install nodebrew 以下のコマンドをうち、表示されたパスを~/.bash_p…

【Mac】HomebrewでMySQLをインストールする

自分用メモ※homebrewが既に入っている前提 ※またSequel Proを使用するためには現時点では、デフォルトのMySQL8.0はサポートされていないので 追記の5.7をインストールする必要がある。 インストール $ brew install mysql 2018/11/30時点だと、MySQL8.0がイ…

【WordPress】Wordmoveを使用して、本番環境と開発環境を同期させてみる

Wordmoveについての詳細は省くが、簡単に説明すると Wordmoveとは、WordPressの環境を簡単に、移行させることができるRuby製のツール。github.com使用例としては、以下のような用途で使用できる。 ・記事やプラグインの設定などを一度ローカルで行って問題が…

【fail2ban】再起動すると今までBanしたIPを再度ScanしBanするため、同じメールが大量に届く問題

自分用メモ。また実際に検証したわけではないのあしからず。調査したところ、同じようなことを思っていた人がいた。 github.com github.com received duplicates of all ban report emails.Also this is "reimplemented" in newer version (>= 0.10) - since…

【fail2ban】BanしたIPアドレス一覧と、間違えてBanされてしまった場合の対象方法

fail2banで「sshd」のjail設定されているものとした場合、 $ sudo fail2ban-client status sshd と打てば、sshdのjailでBanされたIPアドレス一覧が表示される。また誤ってBanされている場合のIPを戻す方法は $ sudo fail2ban-client set sshd unbanip {BANし…