動かざることバグの如し

近づきたいよ 君の理想に

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コマンド…

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

git

古いタグとか残しっぱなしにすると、残念ながらSourceTreeが重くなってしまうので一気に削除したかった 以下削除コマンド コマンド git tag | grep "2018" | xargs git tag -d $i | xargs git push origin :$i 結論 やはりxargs最強なんだなぁ みつを

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…

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で記述されて…

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

唐突だが、癒やしを求めて猫カフェに行ってきた。 都内にもいろんな猫カフェがあるが、今回は横浜に用事があったのでその近辺で探したところ、猫カフェぷちまりーという場所を見つけたので行ってみた。 正式名称は 猫カフェ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を(…

Tensorflow+kerasで機械学習する時にCPUが多いと遅い件

概要 どういうわけか、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年の半分が過ぎてしまう。 半年を上半期/下半期と釘付け、買ってよかったものを備忘録としてまとめてみる。 基準としては「その期間中に初めて買って個人的によかったもの」とする。 目薬 サンテビオ シミない…

リアルタイムに手を検出できるJavascriptライブラリ「handtrack.js」

TensorFlow.jsというのがあって、これはTensorflowで作成したモデルをブラウザで使えるようにできるライブラリなのだが、これを利用して手の検出をリアルタイムにブラウザ上で行えるライブラリを使う機会があったのでメモ。 その名もhandtrack.js サンプルコ…

脳死でCNNによる画像分類 on TensorFlowするメモ

データは Fruits 360 dataset | Kaggle # kerasでやろうとしていたがどうもtensorflowに吸収されたっぽい # 参考: https://book.mynavi.jp/manatee/detail/id=79420 # よって tensorflow.keras と奇妙に見えるがこれで正しい import tensorflow as tf from t…

chmod 600 /home/thr3a/.kaggle/kaggle.json https://github.com/Kaggle/kaggle-api

GCPにGPU環境を立てたメモ

ドライバのインストール add-apt-repository ppa:graphics-drivers/ppa apt update apt install nvidia-driver-430 dockerのインストール 公式ドキュメントのとおりにするだけ nvidia-dockerのインストール dockerでCUDAを使うために必要 nvidia-dockerのラ…

runtime=nvidiaを有効してdocker buildする

環境 docker nvidia/cuda:10.0-runtime-ubuntu18.04 やりたいこと docker build時にも --runtime=nvidiaしたい!!!!!!! 周知の通り、nvidiaはDockerに対してランタイムという形でCUDA環境を提供している。つまり、nvidia-dockerをインストールすると、…

TensorFlowでTensorBoardを使う MNIST版

環境 Python 3.6 TensorFlow 1.13 今年中にはTensorFlow2.xが出るのだろうか、、、 やりたいこと TensorBoardを試してみたかった。が、Qiitaをかいつまんで実行してもうまくいかない。。。 そこでMNISTの最小のコードを使ってサンプルを作る。 TensorBoardな…

インストールされたOpenCVのバージョンを確認するコマンド

環境 Ubuntu 18.04 OpenCVバージョン確認する! 自分が入れたサーバーなら流石にどのOpenCVを入れたか分かるが、プリインストールされていたり、他人がインストールしてた場合はバージョンがわからない。そこでコマンドで確認する方法をいくつかまとめておく…

Puppeteerで位置情報取得を有効化して現在地を偽造する

環境 Nodejs 12 puppeteer 1.17 概要 puppeteerは本当に便利で、やろうと思えば(大抵のことは)なんでもできる。今回は現在位置をうまく偽装してみる。 コード 今回は東京駅にセットしてみる。ただしデフォルトではブラウザの左上の確認プロンプトが出てし…