やる気がストロングZERO

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

作業メモ

windows wsl2側でGUIアプリケーションを起動し日本語入力ができるようにする

やりたいこと:windows wsl2側でGUIアプリケーションを起動し日本語入力ができるようにする wslを導入してGolandで開発作業をしようとしたらGolandの設定がうまくいかない。GoのSDKがどこか聞かれて、wsl側のそれっぽいものを指定しても拒否。Ubuntuで使って…

Go echoでPOST複数パラメータをsliceで受け取る方法

postでidを以下の様に複数送った時、 id = 1 id = 2 Go echoでスライスで取得するには以下のようにすると取れた func (cont *Controller) Create(c echo.Context) error { ..... params, err := c.FormParams() if err != nil { //パラメータ取得に失敗 c.Er…

OSSコードリーディングをスムーズに進めるためのメモ

OSSのコードリーディングをしてみる中で、内容を把握するためにして良かったと思った事をメモっておく。 リーディング対象にしたもの: github.com ※主にはfilebeat

Filebeat + Logstashでrails6のログをElasticsearchへ取り込む設定

FilebeatとLogstashを使ってrails6のログをElasticsearchへ取り込もうとしたがなかなか難しかったので書く。 rails6のログをそのまま取り込んでもデータとして使えない 構造化されていない 複数行で意味をなしているものがある 対応設定(具体的な設定ファイ…

Elastic Stackのセッティングメモ

Elastic Stackのセッティングをしてみたのでメモ。 対象OSはUbuntu18.04 参考) www.elastic.co Elastic Stackで作るBI環境 Ver.7.4対応改訂版 (技術の泉シリーズ(NextPublishing))作者:石井 葵発売日: 2019/11/29メディア: オンデマンド (ペーパーバック)…

GKEからHerokuに引越したまとめ

実験・練習としてnekone.loveというtwitterに投稿されてる猫画像をひたすら表示しているサイトを運用している。 以前、k8sの使用感とかの確認のためにGKEを使って運用してたが、今回Herokuに移行したのでその時の作業メモなどを書く。 k8s(GKE)はなんだかん…

gomockを使って「N回目呼ばれたらエラーを返す」を実現する方法

mockを使ってのテストは主に「起こしにくいエラーを再現する」場合にのみ使っている。 gomockにて、「N回目呼ばれたらエラーを返す(それ以外は実際の処理が実行される)」モックの用意の仕方をメモする。 スタブを使う。 github.com ctrl := gomock.NewCont…

GoでもRubyのirbみたいにREPLを使いたい

Rubyのirbとか、rails_consoleが便利なので、Goでもそういうの出来ないか探したら作ってくれてた。 motemen.hatenablog.com インストールして、使いたいメソッドがあるパッケージをimportして使えば普通に使えた。 「実行したい処理のコードはあるけど、外部…

GROUP BYでまとめてそのLASTやFIRSTを取りたい場合のsqlの書き方(window関数を使う)

以下のような有効期間テーブルから、、 id ユーザーid 有効期間from 有効期間to 1 1 2020-6-1 2020-7-1 2 1 2020-7-1 2020-8-1 3 2 2020-5-1 2020-6-1 4 2 2020-6-1 2020-7-1 以下のようなデータ(ユーザー毎に最新の有効期間のレコード)を取得したい id ユ…

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の新規…