動かざることバグの如し

近づきたいよ 君の理想に

2019-01-01から1年間の記事一覧

FactoryBotでmethodカラムを定義するとエラーになる件

背景 Railsのテストには外せないライブラリと言っても過言ではないテストデータの生成管理用ライブラリことthoughtbot/factory_bot しかし、あるテストでいつもどおりにモデルのテストデータを書いてたらエラーになった。 FactoryBot.define do factory :hog…

RspecでRailsのRakeタスクをテストしたい人生だった

結論 テストすべきロジックはモデルとかに書くべきで、直接Rakeタスクをてすとしなきゃいけないってことは何かがおかしい が、一応メモ 環境 Rails 5.2 コード 先に全部ロードしておく RSpec.configure do |config| config.before(:suite) do Rails.applicat…

Nuxt.jsにvue2-hammerを導入する手順

環境 Nuxt.js 2.8 概要 vue2-hammerというhammer.jsを簡単にVue.js上で使えるようにできるhammer.jsのラッパーである。 が、Nuxt.jsで使うときにはVuejs単体と違って若干ハマったのでメモ インストール 兎にも角にもまずはvue2-hammerのインストールから npm…

JavaScriptでスマホの長押しを検知する方法

やりたいこと スマホでとある要素を長押ししたときにイベントを発火させたい PCでもロングクリックで反応させたい 解決策 自分で色々実装するのはつらいので Hammer.js というライブラリを使う Hammer.JS - Hammer.js Hammer.jsではいろんなデバイス/ブラウ…

AWS-cliでインスタンス一覧取得時に名前も表示したい

aws

aws ec2 describe-instances \ --query 'Reservations[].Instances[].[InstanceId,PublicIpAddress,Tags[?Key==Name] | [0].Value]' \ --output text 参考リンク てかそのまんまだが Select tag value by key when using --query · Issue #621 · aws/aws-cli…

Squidで多段プロキシサーバーを実現する設定

構成 そもそも多段プロキシだが、Squidで受けたアクセスをさらに別のSquidへ流す仕組み 通常 [ client ] -> [ Squid server ] -> [ WEBサイト ] だが、これを [ client ] -> [ Squid serverZ ] -> [ Squid serverA ] or [ Squid serverB ] -> [ WEBサイト] …

jqコマンドで複数フィールドの値を1行に表示させる

たとえば {"users":[{"id":1,"name":"taro"},{"id":2,"name":"hanako"}]} のようなJSONがあったとして、 1 taro 2 hanako のように整形して表示させたかった 結論(2020年8月30日追記) jq単体でできた。コメントしてくださった方ありがとうございます cat t…

Railsで日付なしの内容だけのログを出力する方法

環境 Rails 5 やりたいこと 普通のログに吐くだけなら Rails.logger.info("メッセージ") で可能だが、先頭に日付のフォーマットが入ってしまったりしてしまう I, [2019-08-18T02:07:34.381971 #4116] INFO -- : Processing by VideosController#random as HT…

Rubyは何故 if else ではなく if elsif なのか

背景 例のごとくツイッターしてたらこんなツイートが流れてきた。 rubyきもelseifをなんでelsifって書かないとだめなん?Matzさんには悪いけど、これは嫌だ— ぬーばー またの名をぴろまね (@noober_ava) August 14, 2019 これは他の言語やってて、そのあとに…

Vue.jsでページ内リンクを使うなら「vue-scrollto」を使え

結論 Vue.jsでページ内リンク(いわゆるアンカーリンク)を使いたいならvue-scrolltoを使ったほうが幸せになれる そもそもアンカーリンクって何 アンカーリンク自体死語な気がするが、いわゆるページ内リンク リンクをクリックすることで同じページ上の任意…

PHPで「Fatal error: Allowed memory size of」エラーを発生させる4行

php

昔のメモ整理してたら出てきたのでメモ やり方 以下のコードを実行するとエラーになって実行が止まってしまう

クリックイベントとかを無効化するJavascript

環境 Chrome 他のブラウザは知らん(他人事 背景 絶対にニッチなニーズだが、特定のDOMの特定のイベントを削除したいとかスクロールイベントを無効化したい事があると思う(ない JSはやはりなんでもありなので、なんとかなる とりあえず動くコードよこせ 以…

AWS S3でディレクトリごとファイル一括削除する

aws

やりたいこと S3は各バケットにディレクトリごとにネストしてファイルをアップロードすることができるが、逆にファイルを削除したいときもある。 で、面倒なのでディレクトリごとまるごとサクッと消し去りたい コマンドで削除する方法 予め公式のawsコマンド…

Rails+RspecでUser-AgentとかHeaderを書き換えてテストする方法

環境 Rails 5.2 Rspec 3.8 背景 Rspecのテストで、今まではController specsだったが、今ではRequest specsが推奨となっている。 request spec - Request specs - RSpec Rails - RSpec - Relish いわゆる type: :request というやつ で、Request specsでHead…

Gitタグを一括で削除するコマンド

git

2023年4月26日追記 古いタグとか残しっぱなしにすると、残念ながらSourceTreeが重くなってしまうので一気に削除したかった 以下削除コマンド コマンド git tag | grep "2023" | xargs -t -I{} sh -c "git tag -d {} && git push origin :{}" 結論 やはりxarg…

Nuxt.jsにCSSフレームワークを導入するまでの手順

環境 Nuxt.js 2.8 背景 Nuxt.jsはVuejsを元に作られているので、CSSフレームワークを追加したいときは、「追加したいCSSフレームワーク vuejs」とかで検索すればインストール方法がすぐ出る。現に、bootstrap-vueとかvuetifyはそれ専用のライブラリが出てい…

はてなブログをHTTPS化した話

ついにこのブログもSSL化する時が来た 動かざることバグの如し うん、ちゃんと表示されてる( HTTPS化したあとにやったこと Google Search Console再連携 クソ仕様としか言えないのだが、Search Consoleではhttpとhttpsは分けて計測される したがって連携を…

iTerm2のステータスバーを真下に表示させる方法

mac

背景 Macユーザー御用達のターミナルアプリ、iTerm2だが、最近になってなんとステータスバーがついた Status Bar - Documentation - iTerm2 - macOS Terminal Replacement これでCPU使用率とか、ネットワークの速度、カレントブランチ等の表示、あと時計も表…

Gitlab APIを使って一括でユーザー全員を特定のグループに所属させる

環境 Gitlab 11 背景 全員が使えるプロジェクトが作れるグループがほしかった。 しかしGitlabの仕様上、グループ自体の権限を「internal」または「private」にしても、全員が閲覧プロジェクトにはなるが、結局そのグループに所属していないとそのグループ上…

RubyでSelenium+Capybaraで簡単スクレイピング

環境 Ruby 2.x Capybara 3.28.0 やりたいこと Selenium構文ツラいからCapybara使いたい人生だった(使った require "selenium-webdriver" require "capybara" require "capybara/dsl" include Capybara::DSL Capybara.configure do |capybara_config| capyba…

RubyでHeadless Chromeを操作してスクレイピング

環境 ruby 2.5 概要 RubyでスクレイピングするならMechanize一択だが、昨今のサイトではJavascriptが動かないとデータが取れないサイトも多い。 PhantomJSが死んでしまった今、Headless Chromeが1番いいのだが、Puppeteerはちょっと、、て時にRubyでやりた…

AWSを使ったRspecテストにはモックを使うと簡単

環境 Ruby 2.6 AWS SDK for Ruby V3 やりたいこと Rubyを使ってS3とか扱うこと全然あると思う。例えば以下はバケット一覧を取得して表示するコード require 'aws-sdk-s3' client = Aws::S3::Client.new( region: 'ap-northeast-1' ) bucket_data = client.li…

Github.comをブロッキングする方法

GitHubとは Wikipediaで調べてみました! それによると、 GitHub(ギットハブ)は、ソフトウェア開発のプラットフォームであり、ソースコードをホスティングする。コードのバージョン管理システムにはGitを使用する。Ruby on RailsおよびErlangで記述されて…

横浜の猫カフェぷちまりーに行ったら猫ハーレムで癒やされた件

2021年2月8日追記 PuchiMarry横浜元町店は閉店してしまいました。 以下過去記事 ほかのぷちまりー店もいいから是非 唐突だが、癒やしを求めて猫カフェに行ってきた。 都内にもいろんな猫カフェがあるが、今回は横浜に用事があったのでその近辺で探したところ…

OpenCVビルドメモ

sudo apt-get update sudo apt-get install -y build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt-get install -y libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev sudo apt-get install …

MySQLでToo many connectionsの原因クエリ特定の対処法

環境 MySQL 5.6以降 症状 max_connectionsの設定を大きくしているのにもかかわらず、なんらか悪いSQLが走ってしまってテーブルがロックしてしていまい「Too many connections」エラーになる。 対応方法 まずは焦らずロックの原因になってしまっているSQLを(…

CPU数が多いとTensorflow&kerasの機械学習が遅い件

概要 どういうわけか、CPUが多いサーバーだと学習に時間がかかるんじゃないかという話があった。そんなことないやろと思いつつ、公平にAWSでベンチマークを撮ってみたが、やはりCPU数が多ければ多いほど遅くなってしまう。。 検証環境 AWS p3.2xlargeインス…

mysqlslapでMySQLサーバーの負荷テストをサクッと行う

環境 MySQL 5.6 実はMariaDBにも同じコマンドが入っていたので仕様同じで使えるはず やりたいこと MySQLサーバーの負荷テストを「手軽」に行いたい やれやれまたツールの選定作業か、、と思って探していたらどうも公式がツールを「mysqlslap」という名前で出…

Unixドメインソケットをコマンドから生成する

一生に1回くらいの頻度で、Unixドメインソケットを自分で作りたいと思うことがあるはず(ない コマンド 調べてみると、意外にもLinuxのコマンドでは生成できないらしい。 で、何故かPythonで作れた /tmp/test.sockに作りたいUnixドメインソケットの絶対パス…

2019年上半期 買ってよかったモノまとめ

もう何日もすれば6月も終わる。つまり2019年の半分が過ぎてしまう。 半年を上半期/下半期と釘付け、買ってよかったものを備忘録としてまとめてみる。 基準としては「その期間中に初めて買って個人的によかったもの」とする。 目薬 サンテビオ シミない…