やる気がストロングZERO

やる気のストロングスタイル

作業メモ

brew upgradeしたらrailsが起動しなくなったので対応したメモ

久々にbrew upgradeを実行したらopensslのなんかが読み込めなかっただかなんだか言われて、railsが起動しなくなった。 bundleもbrewも「ほしいライブラリを便利にインストールしてくれるツール」くらいの認識であまりどういう動きをしているか認識してなくて…

こんなセッションIDは嫌だ

ログイン周りってだいたい既に出来上がってて自分で実装したことなかった。 知識としてはなんとなく知ってたけど「俺が考える最強の契約管理システム」でもログイン機能つけないといけないなーと思ってセキュリティを含めて改めて勉強したのでメモ。 参考)…

vimとtmuxの設定メモ

エンジニアになった当初からターミナル作業を華麗にやることに憧れている。 現状の設定と操作方法をメモっとく。 以下、参考にしました https://blog.craftz.dog/my-dev-workflow-using-tmux-vim-48f73cc4f39e マスタリングVim作者:Ruslan Osipov発売日: 202…

【Go】interface{}、reflectionについて調べたメモ

Goで「型は異なるが共通する処理(型が違うだけで、行いたいことは共通)」を書こうとしたとき、どうやればいいのかよくわからなかった。 C#だとジェネリクスとか使う感じのやつ。 Goだと引数をinterface{}でうけとって、reflectionを使ってなんやかんややる…

kubernetesクラスタで永続化データを扱うのは難易度が高いのでやめたほうがいい

仕事でkubernetesの本番運用を検討して思ったことをまとめる。 あくまで「kubernetesをとりあえず動かせる」程度の理解レベルにての話で、知識豊富な専門家が取り組むのであればこの限りではないと思う。 kubernetesクラスタで永続化データを扱うのは難易度…

scpコマンドの挙動でハマった(ちょっとだけGo)

Goを書いていてsshでファイル転送したかったが、Goでのいい感じのクライアントが見つからなかったので普通にscpコマンドを実行させることにしたが、 scpコマンドの挙動でハマった。 雑にメモ。 やりたいこと remoteの/var/data/ディレクトリの中身を localの…

【Go】gorpにdecimal型を認識させる

経緯 データベースライブラリにgorpを使ってみている。 gorpでは(gorpというより、database/sqlの範疇かも)Goのint型はDBのintと、GoのstringはDBのtextやvarcharと、みたいに自動的にマッピングされて意識しなくてもデータやり取りができる。 Goには標準…

Goのエラーハンドリングについて

したいこと なにかエラーが出た時に、ログから 「なにが発生したのか」 「どこで発生したのか?」 がわかるようにしたい。 Go標準のerrorはスタックトレース情報を持ってない errors.New("エラーメッセージ") これだとスタックトレース情報がない。 エラーが…

vimでyamlを書きやすくする:Vundle管理でvim-yamlプラグインを入れた

普段IDEを使ってるけど、プロジェクト外のyamlをちょっと編集したい時とかvimで編集することがある。 デフォルトだとインデントがいい感じにならないので設定した。 Vundle vimのプラグイン管理ツール。人気っぽいので深く考えず採用した。 GitHub - VundleV…

docker-compose.yamlのcommandで"&&"とか"&"をつかったコマンドを使いたい。

こんな感じでcommandを書くとコンテナ起動に失敗した。 version: "3" services: webapp: build: context: ./dir dockerfile: Dockerfile-alternate args: buildno: 1 command: 'yarn install --check-files && bundle exec rails s & nginx -g "daemon off;"…

業務でTDDしにくいけどTDDしてみた

業務でもTDDをやるのは有用だと思ってる。 個人的には必須だと思ってる。 いままで数カ所の現場で働いてきたけど、なぜかTDDを導入しているところは無かった。 有用だと思う理由とか経験 実装完了し、コードレビューや開発内手動実行テストが通った後、最終…

【覚書】Ubuntuのシェルをfishにした

環境 Ubuntu 18.04.3 LTS デフォルトシェルをbashに戻した zshを使ってたけどとりあえず、bashに戻した。 fishをパッケージからインストール GitHub - fish-shell/fish-shell: The user-friendly command line shell. sudo apt-add-repository ppa:fish-shel…

【Docker Ceotos7】systemctlが使えるようにする

dockerでcentos7のコンテナを作って普通にsystemctlを使うと怒られる # systemctl Failed to get D-Bus connection: Operation not permitted privilegedオプションを有効化し、/sbin/initで起動してやると使えるようになるらしい。 version: '3' services: …

【Docker】何もしないコンテナを起動しっぱなしにしたい時

こんな感じで、tail -f /dev/nullが実行されるようにしておく。 # docker-compose.yml version: '3' services: master: image: ubuntu:18.04 command: tail -f /dev/null 他にも何もしないwhileループを書く方法とかもあるっぽい。

【RubyMine】docker-composeのコンテナ内の実行環境でラインデバッグするための設定

dockerコンテナ内にしか実行環境がない(ローカルでは実行できない)場合にrubymindeでラインデバッグ出来るようにするための設定を調べて設定した。メモ。 ここを見ながら設定したらできた。 リモートインタープリターとしてのDocker Composeの使用 - ヘル…

railsのrake taskをcron実行する

普通にcrontabでこんな感じで設定したけど動かなかった。 */10 * * * * cd /app && bundle exec rake rake:task RAILS_ENV=production 最終的にはwheneverというgemを使って解決した。 GitHub - javan/whenever: Cron jobs in Ruby なぜ動かん? cron実行の…

docker-compose execでcdしたい

普通にやるとエラーがでる $ docker-compose exec service_name cd /your_dir/ && bundle exec rspec bash -cでやるとできた。 $ docker-compose exec service_name /bin/bash -c "cd /your_dir/ && bundle exec rspec"

yaml難しい

yamlの記法で地味にハマる事が多い。。 ここで実行してみて出力を試してみるのが早い。 YAML Checker CGI - YAMLの文法 フォーマットチェック このyamlを実行すると jobs: - one - two: requires: - one こう解釈される 'jobs' => [ 'one', { 'two' => { 're…

【Rails】autoloadについて

app/以下に自分でディレクトリをほってclassを定義したときにどのように呼び出したらいいのかよくわからなかったが、ここに記載されてた。 railsguides.jp app/some_dir/some_class.rb だったら以下の名前でclass定義して class SomeClass ... end 以下の感…

【rails】既存DBの初期migrationファイルの作り方

参考) Rails - schema.rb(既存DBを使ったアプリ作成) - Qiita rails db:schema:dump でschema.rbを生成する マイグレーションファイルにschema.rbの中身をコピペする class CreateTables < ActiveRecord::Migration[5.0] def change # ここにschema.rbの…

【rails】dockerを使ってproductionでの確認ができる環境を構築する設定ファイル郡を作った

インフラ知識詳しくないので、とりあえず最低限動くところまで。 github.com これは何? railsの開発サーバーでの開発と、 dockerを使ってproduction環境での確認ができる環境を構築する設定ファイル郡 バージョン ruby 2.6.3 rails 6 構築方法 railsの新規…

Twitter APIを使うために必要な作業

地味に複雑で忘れるのでメモ。 網羅はしていないので、不足があれば公式で調べる。 Getting started — Twitter Developers developer登録 (以前は登録の必要はなかった) twitterに開発者として登録する必要がある。 twitterアカウントに紐づく。 100文字程…

ネットワークの疎通デバッグ(ping, traceroute, curl, nslookup)

あまりネットワーク周りの調査をする機会がなかったのでふわっとしか認識してなかった疎通調査の方法についてまとめる。 nslookup ドメイン名からIPアドレスを引けているかの確認ができる。 nslookup example.com ping ネットワーク層での通信疎通が確認でき…

【Docker】長期稼働でi-nodeを使い切ってしまう?

※一時解消はできたが原因解明には至らず。 Dockerの勉強の一環で、Twitterの投稿から画像リンク(コスプレ関係)のurlを収集して一覧しているwebサービスをEC2インスタンス一つにDockerコンテナで構築している。 http://cos.mixmaru.com 構成 appサーバーコ…

【rails】コード読んだメモ

rubyのコードリーディングの練習でrailsのコードを少し読んだのでメモ railsでのautoloadについて railsではActiveSupportというmoduleが使われていて、色々便利な機能を提供してくれているらしい。 その一つにActiveSupport::Autoloadがあって、これをexten…

【Rails】 Capybaraの使い方メモ

参考) https://www.rubydoc.info/github/jnicklas/capybara/Capybara https://github.com/teamcapybara/capybara https://qiita.com/morrr/items/0e24251c049180218db4 railsへのインストール Gemfilesへ追記し、bundle installでインストールする。 rails …

【Rails】RSpecの使い方メモ

参考: GitHub - rspec/rspec-rails: RSpec for Rails-3+ RSpec Expectations 3.8 - RSpec Expectations - RSpec - Relish インストール Gemfileに追記 # Run against the latest stable release group :development, :test do gem 'rspec-rails', '~> 3.8' …

Railsの開発環境とステージング環境をDockerを使って構築したのでメモ

Railsの開発環境とステージング環境をDockerを使って構築してみた。 注意:Docker周りインフラ周りについてエキスパートではないので本当にこれが要求を満たせているのかは不明 ディレクトリ構成 . ├── app │ ├── Dockerfile # webサーバー構築用 │ ├── conf…

【Django】ロギング設定について

いまいち使い方・設定の仕方がよくわからなかったので色々しらべた。 現状の知識をメモっとく。 Djangoで使われているロギング機構は、 別にDjango独自の機能ではなく、pythonの標準で用意されているloggingが使用されているという事のよう。 なので、特にDj…

pyenvでインストールしたpythonのpipでインストールしたuwsgiをwebサーバーで使用するための設定

webサーバー環境で実行されるuwsgiを、pyenvで入れたpythonのpipでインストールしたuwsgiにするにはどうすればいいのか考えた。 pyenvでインストールされたpython関連のコマンドを使うには予め export PYENV_ROOT="$HOME/.pyenv" export PATH="$PYENV_ROOT/b…