mind.

学んだことの記録

Rails APIモードのテンプレートリポジトリを作った【解説編】

概要 前回の記事の解説です。 learning-mind.hatenablog.com テンプレートリポジトリ github.com Gemの選定について 「Rails Gem おすすめ」で検索してヒットした記事をいくつか読みつつ、普段仕事で使っているGemと合わせて選びました。 どんなプロダクトで…

Rails APIモードのテンプレートリポジトリを作った(2023年12月版)

完成したリポジトリ github.com なぜやるのか 新規プロジェクトを立ち上げるときに初動で躓きたくなかったからです。 早く作って試せる状態にしておいた方がRailsメリットを活かせると考えています。 方針 Rails APIモード cloneしてから以下の手順でRailsの…

Flutter APIキー等を記載した秘匿ファイルを読み込むflutter_dotenv

やりたいこと Flutterアプリで使うAPIキーをソースファイルに書かずに使用したい。 やり方 .envファイルを作成する .envを.gitignoreに追記する flutter_dotenvをインストールする main()で.envファイルを読み込む 必要な箇所で環境変数を読む .envファイル…

Flutterアプリの動作確認用テンプレート

備忘録として。 import 'package:flutter/material.dart'; void main() => runApp(RootWidget()); class RootWidget extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( home: TestWidget(), ); } } class Test…

intellij使うときに.gitignoreに書くこと

# Ignore intellij .idea/* .generators **/dgph # Flutterの場合

Javascript cookie内の特定の値のみを取り出す正規表現

hogehoge_cookieの値だけを取り出す document.cookie.replace(/(?:(?:^|.*;\s*)hogehoge_cookie\s*\=\s*([^;]*).*$)|^.*$/, "$1") こういうノウハウって運良く知る機会があったので助かりましたが、知らないままだと自力で正規表現作ってたんだろうなって思…

Rails APIモード + Vue.jsでアプリを作成する手順

やること 環境構築 OS Rails Vue.js コーディング Rails Vue.js 動作確認 参考書籍 やること RailsでAPI実装 Vue Routerを使う フロントエンドアプリケーションはVue.jsで実装し、バックエンドアプリケーションはAPIサーバーとしてのみ機能するシステムを作…

Rails + PostgreSQLでカラムをキャストできない型に変更する方法

トラブル時の状況 bit_varying型のカラムをinteger型に変更したかったがCAST()で雑にキャストできなかった 一旦string型に変更してからinteger型に変更しようとするマイグレーションを実行したが、string型で処理されてしまった 解決方法 カラムを削除する変…

『SCRUMMASTER THE BOOK 優れたスクラムマスターになるための極意――メタスキル、学習、心理、リーダーシップ』を読んで

感想 スクラムマスターのあるべき精神が完結にまとめられた本です。 ページ数もそれほど多くなく、説明も端的でわかりやすいので読みやすかったです。 こんな人におすすめ スクラムガイドを読んでスクラムの概要は理解できたものの、スクラムマスターとして…

Railsチュートリアルで作成したサンプルアプリをDockerで動かす手順

雑に備忘録 基本的な内容は下記ページに書かれているもので、それをRailsチュートリアルで作成したサンプルアプリ向けにまとめました。 docs.docker.com ローカルPCで動かす想定です。 以下、コマンドとファイルの記載内容 nano Dockerfile FROM ruby:2.5 RU…

AWSでEC2インスタンスを最小構成で作成する手順

最小構成でWebサーバー用のEC2インスタンスを立ち上げる手順をメモしておきます。 後述する書籍の内容を参考に、チェックシート的な使い方ができるようにしました。 目標 VPC、サブネット、EC2インスタンスそれぞれ一つずつ作成し、EC2インスタンスにSSHでロ…

GitLabをhttpsでアクセスするように設定した後はGitLab APIのオプションにverifyを追加する

仕事で使っているGitLabをhttpsに設定したときにバックアップに使っているスクリプトを変更し忘れたので自戒を込めて書きます。 Pythonで確認 元にしたコードは下記の以前書いた記事に記載しています。 learning-mind.hatenablog.com def get_all_user_email…

『アマゾンのすごいルール』を読んで

どのような本か アマゾンで敷かれているルールについて、著者である佐藤将之さんがアマゾン社員時代に経験したこと踏まえて説明されている本です。 内容は、2018年に出版されたということもあり、紹介されているルールはネットニュースでの話題になったこと…

PCの再起動時にplymouthが止まってGitLabが起動しなかった件

困った…… 仕事で使っているGitLabのサーバーPCを再起動した後、いつも通りブラウザでページを開こうとするとエラー画面が表示されました。 サーバーにSSHで入って状態を見ると、GitLabとそれに関わるプロセスが起動していませんでした。 設定は、システム起…

『NETFLIXの最強人事戦略~自由と責任の文化を築く~』を読んで

どのような本か三行で 全員が事業に関する問題についても知る権利がある そこで働いていたことを誇れるような会社にしよう 「10試合」ごとに人事考課を行う 感想 一見大胆に見える人事戦略ですが、エピソードを交えながら説明されているのでとても説得力があ…

セルフホストしたGitLabにhttpsでアクセスできるようにする。ドメイン名を使用せず、警告を出さずに――

環境 vagrantで起動したCentos7.6 GitLab12.10をインストール済み サーバーのIPアドレスは「192.168.33.10」 手順 下準備 sudoを打たなくていいようにする sudo su - オレオレ認証局用ディレクトリ作成 cd /etc/ssl mkdir myCA cd myCA mkdir newcerts mkdir…

『みんなでアジャイル ―変化に対応できる顧客中心組織のつくりかた』を読んで

なぜ読んだのか 昨年の6月に認定スクラムマスター試験に合格してからというものの、会社でスクラムの知識を活かすこともなく過ごしてきたので、リマインドがてら読んでみようかと思いました。 どのような本か アジャイルの原則として以下の3点を挙げ、それら…

『交渉力 結果が変わる伝え方・考え方』を読んで

なぜ読もうと思ったのか 別の本を買いに本屋に立ち寄ったらかなりの数が平積みされていたのが目についたことと、会社との交渉事に役に立つかと思ったので読みました。 どのような本か 大阪の府知事と市長の両方を経験した橋下徹さんの交渉の経験談を軸に、交…

『短期間で〝よい習慣〟が身につき、人生が思い通りになる! 超習慣術』を読んで

なぜ読もうと思ったのか 前回と同じくYouTubeで見た動画の影響です。 youtu.be コロナウィルスで外出自粛中ということもあり、これを機にどうにか良い習慣を見に付けたいと思いました。 どのような本か 研究論文を根拠に習慣を身につけるためのテクニックが…

『イシューからはじめよ ― 知的生産の「シンプルな本質」』を読んで

なぜ読もうと思ったのか この動画を見て真子社長が「必読中の必読」と言っていて気になったので読んでみました。 www.youtube.com 僕は日頃イシューを持って仕事をしておらず(イシューってなんやねんレベル)、仕事にやりがいを感じられていないので、少しで…

『大学4年間の経営学見るだけノート』を読んで

なぜ読んだのか 仮面ライダーゼロワンでZAIAコーポレーションが飛電インテリジェンスを「TOB」するって展開になったときに、「TOBってなんやねん」と物語についていけなくなりそうになった自分が会社員として恥ずかしくなったのでこれを機に上滑りだけでも覚…

GitLabのProjectに所属しているメンバーの一覧を取得するスクリプト

なぜ Emails on push機能で送信したいメールアドレスの一覧を取得したかったからです。 送信先は各Projectの「Integration Settings」の「Recipients」で設定することができます。 職場ではProjectのメンバー全員にpush時のメールを送信するというルールにな…

cronでシェルスクリプトを実行するとき環境変数はcrontabに書く必要がある

やってみる スクリプト result.log echo $TEST > /home/vagrant/share/result.log TESTはユーザー定義の環境変数です。 cronのスケジュール cronで実行するプログラムはcrontab -eで行います。 失敗例 16 * * * * /home/vagrant/share/cron_test.sh 事前にこ…

Python3でファイルの更新日時でソートする

記事を書くほどの題目でもないのですが、備忘録として。 正しいコード import os file_list = os.listdir() sorted(file_list, key=lambda f: os.stat(f).st_mtime) ファイルの更新日時でソート済みのリストオブジェクトが取得できます。 自分で調べたときは…

cronで実行するプログラムは絶対パスを書くこと

なぜ? これを知らなかったので仕事で丸一日悩んでました……。 試してみる 下記のようなコードを書いてみました。 import datetime with open("file.txt", mode='a') as f: f.write("{}\n".format(datetime.datetime.now())) ファイルに現在時刻を追記する、…

GitLabで管理しているリポジトリの過去のコミットを削除する方法

なぜやるのか サイズの大きすぎるファイルを追加してしまい、cloneに時間が掛かるようになったのでrevertして事なきを得ようと思ったのですが、revertして削除してもcloneには時間がかかるまま~ということがありました。 (ロールバック時にファイルを復活で…

CentOS7のPCに2TBを超えるHDDを増設する

マスクよりアルコール消毒液が欲しい。 ポイント 2TBを超えるHDDはfdiskコマンドでパーティションを作成すると2TBまでしか認識されない。(GPT パーティションは開発途中のため自己責任でという旨の警告メッセージが表示される) fdisk /dev/sda WARNING: fdis…

GitLabで特定のGroupのすべてのProjectのpath名を取得するコマンド

劇場版SHIROBAKOを見に行きたい。 目標 GitLabで特定のGroupのすべてのProjectのpath名を取得すること なぜやるのか バックアップとしてgit cloneコマンドでリポジトリの実データを保持しておきたいからです。 リポジトリを都度cloneしてくるのは手間ですが…

GitLabCIをHello Worldで試す【ビルド編】

左右独立型ワイヤレスイヤホンを使い始めた。かなり良い。 自動ビルドのメリット トピックブランチをリモートへpushしたときにビルド確認ができれば、誤った変更をデプロイする前に修正することができます。 やること GitLabのProjectにC言語でファイルをア…

『チーズはどこへ消えた?』を読んで

連休終了間際のメンタルを改善していく どんな本か 2匹のネズミと2人の小人の物語を通して変化を恐れず行動することの大切さを説いた本です。 96ページという比較的薄い本ですが、内容は濃い良い本でした。 変化に適応する この本で登場する小人は、チーズが…