Vuetifyのdatatableのカラム数を動的に変更する

headersをcomputedにして、filterの条件でカラム数を制御する。 環境 Vuetify 2.1.0 サンプル <template> <v-data-table :headers="headers" :items="items" :options="options" > </v-data-table> <script> export default { computed: { headers() { return [ { text: 'Important', align: 'center', sortable: true, value: 'important', }, { tex…</template>

Vuetifyでレスポンシブなwidth、heightを取得する

以下のプロパティからレスポンシブな値が取得できる。 $vuetify.breakpoint.width $vuetify.breakpoint.height 環境 Vuetify 2.1.0 サンプル <template> <v-data-table :headers="headers" :items="items" :options="options" :height="$vuetify.breakpoint.height - 200" > </v-data-table> </template> 参考 Breakpoints — Vuetify.js

iOSのSafariでWebKitBlobResource error 1

JavascriptからAPIを叩いて、ファイルをダウンロードしていたところ、iOSのSafariから以下のように言われてしまった。 Safari cannot open the page. The error was: "The operation couldn't be completed. (WebKitBlobResource error 1)". MacのSafari、Ch…

Sidekiqをsystemdに登録する

公式サンプルがありました。ありがたい。 sidekiq/sidekiq.service at master · mperham/sidekiq · GitHub 以下、上記の冒頭部分を引用。 # # This file tells systemd how to run Sidekiq as a 24/7 long-running daemon. # # Customize this file based on…

composed_ofでhas_manyぽくする

ActiveRecordなオブジェクトとPOROなオブジェクトを、1対多で関連付けたかった。 環境 Rails 6.0.2 Ruby 2.6.5 方法 POROでエンティティクラスを定義する POROでエンティティの集約クラスを定義する ActiveRecord継承クラスと集約クラスをcomposed_ofする サ…

CentOS7でmariadb-libsをアンイストール後、libmysqlclient.so.18に依存するパッケージをインストールできない

以下の流れを辿る。 mariadb-libsをアンイストールする。 MySQLの関連パッケージをインストールする。 net-snmpをインストールしようとするも、エラー(libmysqlclient.so.18)が発生し、インストール失敗に終わる。MySQLはインストールしたはずでは。。。 …

SQLite3でタイムゾーンをUTCに変更しつつミリ秒をInsertする

strftime(format, timestring, modifier, modifier, ...)を使用する。 環境 SQLite: 3.28.0 対策 formatに'%Y-%m-%d %H:%M:%f'を指定する。(%fがSS.SSS) modifierに'utc'を指定する。 例(Ruby) require 'sqlite3' SQLite3::Database.new("something.db")…

DockerfileのCMDでワイルドカードを使用する

以下のようにCMDにワイルドカードを含むDockerfileを作成し、実行するとエラーになってしまう。 $ cat Dockerfile FROM busybox CMD ["ls", "/bin/*"] $ docker run --rm built_image ls: /bin/*: No such file or directory リファレンスを参照すると、シェ…

docker build時に名前解決でエラーになる

docker buildすると以下のようなエラーが出力されてしまう。 Failed to open TCP connection to github.com:443 (getaddrinfo: Try again) (SocketError) 環境 macOS 10.14.6 docker 19.03.2 対策 以下にて、docker daemonにDNS設定を追加する。 Preferences…

SSH越しにroot権限が必要なテキストの内容をコピペする

$ ssh -t hostname "sudo cat /var/log/messages" | pbcopy もしくは、 $ ssh hostname "su - -c 'cat /var/log/messages'" | pbcopy 必要に応じてパスワードを入力する。 環境 macOS 10.14.6 参考 ssh - SSH先のテキストの内容をローカルのクリップボードに…

AnsibleでAWSの任意のNATゲートウェイを削除する

NATゲートウェイは、存在するだけで1時間ごとに課金される模様(料金 - Amazon VPC | AWS)。 不要になったら簡単に削除できるように、Ansible化しておきたい。 環境 Ansible 2.8 方針 ec2_vpc_nat_gateway_factsモジュールのfiltersオプションを使用して、…

MySQLでRENAME DATABASEするワンライナー

MySQLに"RENAME DATABASE"構文は存在しないため、"RENAME TABLE"構文で全テーブルをリネームする手法が取られるようです。 環境 MySQL 5.7 ワンライナー new_db_name、old_db_nameを適宜置き換えてください。 パスワードは、お好みの方法で指定してください…

Gitでリモートブランチの更新の有無を戻り値で判定する

Git

git diffにquietオプションを指定すると、戻り値で判定できる。 差分がなければ0が返り、あれば1が返る。 $ git diff --quiet master origin/master $ echo $? 0 $ git reset --hard xxxxxx $ git diff --quiet master origin/master $ echo $? 1 環境 git …

Ansibleメモ

環境 Ansible 2.8 registerを使わずに、なければ空のファイルを作成し、あれば何もしない - name: Create an empty file if file not exists copy: dest: /tmp/file.txt content: '' force: no 追加したyumリポジトリを無効化する - name: Disable epel repo…

Ansibleでgroup_varsが読み込まれないと思ったら

Ansibleでgroup_varsが読み込まれないとしばらく悩んでいたら、デフォルトでは変数を優先度に従って上書きするようだ。 $ cat group_vars/db.yml mysql: root: password: password $ cat host_vars/db1.yml mysql: cnf: server_id: 100 上記の場合、host_var…

Ansibleで接続ユーザー名とホームディレクトリを取得する

ansible_factsから取得できる。 環境 ansible: 2.8.0 例 tasks: - name: debug debug: var=ansible_facts['env']['USER'] - name: debug debug: var=ansible_facts['env']['HOME'] 参考 Using Variables — Ansible Documentation

EC2からSoftetherVPNクライアント接続したい

EC2をSoftetherVPNクライアントにしようとして、接続時に少々トラブったのでメモ。 Ubuntu16.04では、問題なかった。 環境 Amazon Linux 2 SoftEther VPN Client Ver 4.29 インストール VPN Serverのインストール手順を、適宜クライアントに読み替えてインス…

Rubyでバイナリ(ASCII-8BIT)文字列を扱うならString#bが便利

Rubyで文字列をバイナリ(ASCII-8BIT)エンコーディングで扱いたいときは、String#bが便利です。 "\xFF\x00".b.encoding # => #<Encoding:ASCII-8BIT> 環境 Ruby 2.6.1 参考 class String (Ruby 2.6.0) 関連 RubyでString.newデビューした - 料理とソフトウェアは似ている</encoding:ascii-8bit>

RubyでString.newデビューした

Rubyでバイナリ文字列と文字列リテラルを比較すると、、、 it { expect([255].pack("v")).to eq "\xFF\x00" } Failure/Error: it { expect([255].pack("v")).to eq "\xFF\x00" } expected: "\xFF\u0000" got: "\xFF\x00" (compared using ==) 環境 Ruby 2.6.…

Rubyをドキュメント生成せずにbuild(install)してみた

Rubyをドキュメント生成せずにbuild(install)した場合、ファイルサイズをどの程度削減できるか比較してみた。 環境 Ruby 2.6.1 ruby-build 20190130 ドキュメント有り $ ./xbuild/ruby-install 2.6.1 /opt/ruby $ du -sh /opt/ruby/ 154M /opt/ruby/ ドキュ…

Gitをソースからビルドしたらなんかでかい

Git

ファイルサイズがでかい 最新バージョンのGitを使いたかったので、ソースからビルドすると、 パッケージインストールした場合と比べて、ファイルサイズが大きい気がする。 バージョンも環境も違うことを承知の上で、サイズを比較すると、、、 ソースからビル…

Debian8(Jessie)のタイムゾーンを非対話的に変更する

環境 Debian8(Jessie) 方法 # echo "Asia/Tokyo" > /etc/timezone # dpkg-reconfigure -f noninteractive tzdata

docker buildがcode 137でexitする

どうやら、Dockerに割り当てたメモリが枯渇すると発生する模様。 メモリの割当を増やすと解決しました。 環境 macOS 10.14.2 Docker 18.09.1 参考文献 Docker Container exited with code 137 `build` fails on component non-zero exit code when `docker b…

RubyのI18n.tで明示的にロケールを指定する

I18n.t("hello", locale: :ja) 参考文献 Rails国際化 (I18n) API | Rails ガイド 備考 Hashで指定することを忘れるのでメモ。

RubyのArrayから順序を保ったまま固まりを抽出する

例えば、こんな感じのデータがあったとします。 data = [ { x: 0, y: 1 }, { x: 1, y: 1 }, { x: 2, y: 1 }, { x: 3, y: 0 }, { x: 4, y: 0 }, { x: 5, y: 1 }, { x: 6, y: 1 }, ] ここから、順序を保ったまま、y == 1のデータだけを抽出したいとします。 En…

Docker上でSystem Specが失敗する

現象 Docker上でRspecを実行すると、 $ cat docker-compose.yml version: "3" services: app: image: xx/customed_ruby command: 略... bundle exec rspec $ docker-compose up Chromeがクラッシュしている模様。 app_1 | 6.1) Failure/Error: visit "/" app…

Debian9ベースのイメージにMySQL5.7をインストールする

環境 18.06.1-ce Dockerfile FROM ruby:2.5.3 ARG MYSQL_VERSION="5.7" ARG MYSQL_CONFIG_VERSION="0.8.10" RUN set -x && \ apt-get update -qq && \ : "mysql" && \ apt-get install -y lsb-release && \ echo "mysql-apt-config mysql-apt-config/select-…

Rubocopで除外対象ファイルをとにかく除外する

結論 $ rubocop --force-exclusion [file1, file2, ...] 環境 Rubocop 0.59.1 本題 Rubocopでは、設定ファイルにて除外対象ファイルを指定できます。 AllCops: Exclude: - Gemfile 一方、コマンドライン引数で検査対象ファイルを指定できます。 $ rubocop Ge…

RubyMineでRSpecするときによく使うショートカット

RubyMineでRSpecするときに、よく使うショートカットを用いた手順のまとめです。 エディタ領域を縦に分割して、右側にテストコード、左側にテスト対象コードを表示しながらテストしています。 環境 RubyMine 2018.2 準備 以下のKeymapを設定しています。 Spl…

FUSEをマウントしたディレクトリを、Dockerのvolumeとしてマウントしたい

ホストにて、FUSEをマウントしたディレクトリを、Dockerコンテナから参照しようとすると、Permission deniedになってしまう。 # ls volume_directory ls: cannot access 'volume_directory': Permission denied 対策 参考文献の通り、設定を変更する。 ホス…