sumikko engineer blog

すみっこが落ち着くエンジニアのブログです。

メモ

rails migration

migrationするたびに調べるのがめんどくさいのでメモ。optionも使う場合はapi documentを見る。 コマンド rails generate migration <migration_name> テーブル追加 # 簡単に書けるやり方 create_table(:members) do |t| t.column :name, :string, limit: 60 end # ひとつず</migration_name>…

scpでコピーしたくないファイル・ディレクトリを除外する

Google検索してもrsync使えば?という記事が多いのでメモ。 lsコマンド実行後にgrepで除外してscpの引数に入れることで対応。 scp -r `ls | grep -v not_published_file_name | grep -v .not_published_file_directory` ${HOST_USER}@${HOST}:${PATH}

eclipse

基本設定 // コメントの日本語が文字化け 一般 > 外観 > 色とフォント > テキストフォント > 日本語に対応したフォント(MS ゴシックなど) // タブ・空白を表示 一般 > エディター > テキストエディター > 空白文字を表示にチェック // gitの差分表…

dockerコンテナからhostにリクエストできるようにする

dokcer-composeでアプリを立ち上げていましたが、外部サービスにアクセスする処理にスタブサーバーを使いたかったので対応しました。docker-composeに組み込んでもいいのですが、それをやるほどではなかったので組み込まなかったです。 docker host内でプラ…

Javascript/Date.toJSON

日付をJavascriptで取得してサーバーにリクエストしたときに日付がずれてしまったので、その対応。原因はtoJSONメソッドを呼ぶとUTCに変換されてしまうため。そのため日付にJST分足して対応した。下記の例は2020-11-25日に実行。 const now = new Date(); co…

jenkins/pipeline

最低限動かすのに必要なスクリプトのメモ。 cronの設定やビルド数の制御などもjenkinsファイルにそのまま書いたほうがGUIで入力しなくて済むしポータブル。 postセクションの「failure」は失敗したときのみ実行される。「cleanup 」はステップの成否にかかわ…

Docker/メモ

Dockerコマンドでよく使うメモ # imageの一覧 docker images # コンテナの一覧 docker ps -a # 停止しているコンテナの起動 docker start <container_name> or <container_id> # 起動しているコンテナで標準入力 docker exec -it <container_name> or <container_id> /bin/bash # コンテナのログ docker logs <container_name> or <container_id> # image</container_id></container_name></container_id></container_name></container_id></container_name>…

Angular/動的コンポーネント

ngComponentOutletを使う。Angularではパスとコンポーネントが紐づいて表示されるので、パスはそのままにしてビューと紐づくコンポーネントのみ変えたい場合(タブメニュー等)に使える。動的テンプレートは表示しているコンポーネントに紐づくのでテンプレ…

Angular/動的テンプレート

NgTemplateOutletを使う。ngTemplateOutletContextはテンプレートに対して値を埋め込みたいときに使える。ngTemplateOutletContextは$implicitをキーにしてletで$implicitに指定したオブジェクトを取得することができる。指定した値を取得したいときはlet-va…

webpack/file-replace-loader

webpackを使っていて本番環境、開発環境でバンドルするファイルを変えたい場合(外部のタグを呼び出すときのキーを分けたいなど)にプログラムでisProductionメソッド等を定義して設定変更を散らかさないようにしたくないときに使います。バンドルするファイ…

Angular/動的にscriptを読み込む

外部のタグを埋め込むときにAngular内部だとscriptタグが自動で削除されてしまい、またタグを置く箇所がAngularアプリケーションの管理外の箇所「head」タグと「body」タグの後ろなどで困りました。SPAで作成しているので不要になったらタグも削除したいので…

Angularのお役立ち記事

Angularの理解を深める記事をメモ。 Routerの理解 indepth.dev リロード URLとコンポーネントが紐づいておりURLが変更にならないとコンポーネントがリフレッシュされないので、それの対応策。個人的にはリクエストパラメータにdateを数値で表現することでURL…

indexeddb

概要 同一生成元ポリシーのためアプリケーションが別の生成元のデータにアクセスできないようになっている。 また従来のRDBではなくキーでインデックス付けされたオブジェクトを保存および取り出しを行う。 実装の流れ データベースを開く(必要があればオブ…

Angular/ngx-pagination

概要 Angularでページネーションを実装する機会があったのでメモ。ngx-bootstrapのページネーションではないので注意。PaginatePipe、PaginationControlsComponent、PaginationControlsDirectiveの3つの要素からなる。PaginatePipe、PaginationControlsCompo…

rails/日付操作

月末・月初はよく忘れるのでメモ now = Time.current * 月初 now.beginning_of_month * 月末 now.end_of_month * 昨日 now.yesterday * 翌日 now.tomorrow * N日月年前 now.ago(3.day) now.ago(3.month) now.ago(3.year) * N日月年後 now.since(3.day) now.s…

ポケモンカード/悪デッキ

ブラッキー&ダークライ、マニューラデッキ 環境が変わってしまったのでメモ。 マニューラGXの特性「シャドーコネクション」が戦略の肝。 マニューラGXの特性「シャドーコネクション」であくエネルギーを別のポケモンに付け替えることができるので、1ターン…

node/axios

PromiseベースのHTTPクライアント。標準モジュールのhttpモジュールを使うとコールバック地獄になるのでこちらを使用する。requestsはdeprecateされていたので使用しない。 メソッド 下記のようなインスタンスメソッドが定義されているので用途に合ったもの…

node/http

標準モジュールでのサーバーの作り方とクライアントのつくりかたのまとめです。下記5つのクラスからなるhttpモジュールを使用しています。npm installするのがめんどくさいので標準モジュールで作っています。めんどくさいのでお勧めしません。 項目 内容 Ag…

MySQL/変数

ユーザ定義変数とシステム変数(セッション変数、グローバル変数)の2種類がある。 ユーザ定義変数 ユーザ定義変数はセッション固有の変数のため他のクライアントから見えることはない。下記のように「@」を変数名につけ、SETステートメントを発行する。 SET…

ruby/Struct

クラス定義するほどでないけど、クラスとして扱ったほうが楽な時に使用する。 https://docs.ruby-lang.org/ja/latest/class/Struct.html ブロックを指定することでメソッド定義することもできる。 第一引数に文字列を指定することでStructのサブクラスとして…

ruby/ERB

ERBにテンプレートを渡し、resultメソッドにbindingを渡して実行することでテンプレートにバインディングされた結果が返される。 bindingはローカル変数のテーブルと self、モジュールのネストなどの情報を保持するオブジェクトのクラスです。 そのためbindi…

ruby/Net::HTTP

汎用データ転送プロトコル HTTP を扱うライブラリ https://docs.ruby-lang.org/ja/latest/library/net=2fhttp.html 大きく分けて下記の3つのクラスがある。 Net::HTTP Net::HTTPRequest Net::HTTPResponse Net::HTTPがHTTPクライアントでNet::HTTPRequestで…

webpack

webpackを使用するときのメモ package.json npm installコマンドを実行し開発に必要なライブラリをインストールする。 またnpm scriptsでビルドコマンドと監視コマンドを定義しておく。 { "name": "webpack project", "version": "1.0.0", "description": ""…

VSCode

基本設定 editor.tabSize editor.minimap.enabled editor.renderWhitespace files.eol files.encoding files.insertFinalNewline files.trimTrailingWhitespace ポータブルモード code.visualstudio.com

Git

初期設定 git config --global user.name penguin git config --global user.email penguin@example.com # ファイルのパーミッションを無視する git config core.filemode false # 日本語エスケープ無効 git config --global core.quotepath false # 改行コ…

MySQL/日付処理

計算 日付の計算はINTERVALを使用する +(-) INTERVAL 数値 単位 INTERVALの前にプラス、マイナスをつけないとシンタックスエラーになる。 select last_day(cast(now() as date)) + INTERVAL 1 day 文字列から日付型への変換 CAST(now() as DATE) 日付型の書…