動かざることバグの如し

近づきたいよ 君の理想に

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

Capistrano3のデフォルトのデプロイタスクをoverrideする方法

環境 Capistrano 3.10 やりたいこと Capistranoにはデフォルトでdeploy: やgit:でたくさんのタスクが用意されていて、cap production deployでいろんなタスクが実行されるが、一部のタスクをオレオレにカスタマイズしたかった 方法 公式サイトにトピックがあ…

SSL証明書エラーのテストに使える badssl.com が便利

SSL証明書絡みのエラーは厄介である。が、その状況を再現するのって結構難しかったりする。 そんなときはbadssl.comが便利 期限切れの証明書 https://expired.badssl.com/ このサーバーが expired.badssl.com であることを確認できませんでした。セキュリテ…

Let's EncryptのワイルドカードSSL証明書の更新に苦労した話

経緯 一応ドメインを持っていて、turai.work ドメインを持っているのだが、Let's EncryptのワイルドカードSSL証明書で運用している。 期限も近づいてきたし、certbot-autoコマンドで更新するか〜と思って更新を実行したのだが /root/certbot/certbot-auto re…

GCPのGoogle Cloud Storage無料枠を使うには注意が必要

gcp

GoogleはAWSと違って半永久的に使える「枠」が用意されている。例えばUSリージョンの一番スペックの低いマシンならずっと起動していても課金されない(1台のみだが) AWSでいうEC2にあたるGoogle Cloud Storageにも無料枠が用意されている。さすがGoogle先生…

NodejsでGoogle Cloud Storageへファイルをアップロードしてみる

環境 nodejs v8.8.1 ここではAWSでいうS3にあたるGoogle Cloud StorageへNodejsでローカルのファイルをアップロードしたりしてしてみる。 サービスアカウントの作成 まずは権限設定 アクセスに必要なキーを含むJSONファイルをゲットする必要がある。 GCPコン…

GCP Cloud Functions 入門

gcp

GCPのバケットを作成 gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME] デプロイ gcloud beta functions deploy line-bot --project <YOUR-GCP-PROJECT> --stage-bucket <YOUR-GCS-BUCKET> --entry-point hook --trigger-http exports.hook = (req, res) => { console.log(req); console.log('logg</your-gcs-bucket></your-gcp-project>…

GASで3行でS3にアップロードする

gas

まず、ライブラリを登録します。 [リソース]→[ライブラリ]から、MB4837UymyETXyn8cv3fNXZc9ncYTrHL9を登録します。 function uploadS3() { var s3 = S3.getInstance('ACCESS_KEY', 'ACCESS_SECRET'); var data = UrlFetchApp.fetch("http://www.google.com")…

RubyのRestClientでエラー時に本文を取得したい

環境 ruby 2.5 RestClient 2.0.2 やりたいこと rubyにrest-clientというHTTPクライアントがある。 RestClientで404とか500とかエラーになった場合例外が発生してしまう。 よって以下のように例外をキャッチするようにする。 begin res = RestClient.get(url)…

docker-composeでアスタリスク(*)を含むコマンドを実行したい

なんでできへんのや 環境 $docker -v Docker version 18.06.1-ce, build e68fc7a $docker-compose -v docker-compose version 1.22.0, build f46880f やりたいこと docker-composeが起動している上で以下のようにするとdocker内でコマンドを実行できる。 doc…

どんなデータもぶっこ抜くWIFIアクセスポイントを作る

自分用メモ 環境 Ubuntu Python 3.6以上 mitmproxyのインストール pipで一発インストールできる pip install mitmproxy ここで mitmproxy を実行 Androidスマホでwifi設定の「プロキシ」を設定 IP: サーバーのIP ポート番号: 8080 でいける。がhttpsのサイト…

Cloud Functions+Puppeteerでサーバーレスなスクレイピング

いやこれはありだと思った。 準備 そもそもGCPのアカウントがないと始まらないのは当然として、手元の環境でgcloudコマンドがアカウント紐付いた状態で叩ける必要がある。(コマンドでCloud Functionsへデプロイをするため) gloudのインストールは以下を参…

VoTTでラベル付けしたJSONをAWS SageMaker用に変換する

VoTTとはMSが作った画像系機械学習に使うラベリングをGUIで行えるツール これのおかげでくっそダルくて発狂しそうなラベル付作業が少しだけ楽になる。神ツール が、当然マイクロソフト謹製の機械学習用アプリケーション(CNTK)ように作られているので、ライ…

FFmpegで指定時間ごとに静止画を切り出して連番画像で出力する

動画を機械学習されるあたり、画像に変換する必要があったのでメモ。なんかググって一番最初に出てきたサイトのオプションではできなかったので注意 1秒毎に〜枚画像を生成したい場合 -rオプションをつけることで指定フレームごとに抽出できる。以下のように…

EC2のT3インスタンスは安いがT3 Unlimitedで死なないように注意

aws

先日、EC2に新しいタイプのインスタンス、その名もT3がリリースされた。すでに東京リージョンでも使用可能になっている。 新しいインスタンス、 t3インスタンスがリリースされました | Amazon Web Services ブログ なんとスペックが30%上がった上にT2より安…

Rubyでcomparison of Float with NaN failedエラー

rubyでなんかバッチ回してたら、普段見ないエラーに遭遇した rake aborted! ArgumentError: comparison of Float with -6.94 failed ウチなんも悪いことしてないのにとか思ってたけど、やっぱり悪かった 原因 NaNのせい 当然だが、rubyでは0で割ろうとする…

iptablesミスってEC2インスタンスにSSHログイン出来なくなった時の対処法

の対処法 試したのはCentOSだけど、Ubuntuとか他のディストリビューションでも可能と思う sshできなくなったら復元は不可能 GCPみたいに画面を擬似的に映し出す機能はないし、ServersManVPSのようにiptablesを謎の力でリセットするなんてことはEC2では出来な…

sagemakerメモ

list conda_python3でよい Amazon SageMaker を使っておでん種を検出したかった | ハックノート オプション一覧:Object Detection Hyperparameters - Amazon SageMaker SageMakerで「うまい棒検出モデル」を作ってみた | Developers.IO

IPアドレスからリモートホスト名を一発で参照するコマンドを作った

いや、作ったと言ってもgethostbyaddrのエイリアス作っただけ( 逆引きする方法だが、頑張ればC言語でもいけるらしく、(参考:IPアドレスからホスト名への変換(gethostbyaddr):Geekなぺーじ)しかしまぁ面倒だよねってことでphpのgethostbyaddrメソッドを…

Rubyで特定の日が祝日かどうかを判別するメソッド

環境 ruby 2.4 やりたいこと 業務処理とか書いてて、特定の日が出勤日かどうか判別したい時がある。 ここでいう出勤日というのは 月曜日〜金曜日 勤労感謝の日とか元旦とかの定められた祝日ではない を指す。 それをtrue/falseで返してくれるメソッドがほし…

シェルスクリプトで引数オプションをパースするテンプレート作った

なんだかんだ言ってシェルスクリプトはどの環境でも動くから自作スクリプトを走らせるにはbashが一番だったりする。 しかしlinux系コマンドでよくある ./exe.sh -i hoge.txt -o out.txt -a みたいなオプションを自分で1から実装するのはつらい。そこでgetop…

ethtoolでネットワークのリンク速度を設定する

Linuxで1GのNICから10GのNICへファイルのコピーをしてたが、めっちゃ遅い。どうもネットワークデバイスが意図しないリンク速度として認識してしまってるらしい。いわゆるオートネゴシエーションが悪さしてるっぽかったので、無効化して手動でリンク速度を設…

Macってコマンドラインからソフトウェア更新できたんだな

mac

知らなかった もっと早く言えやボケ コマンドラインを使ってソフトウェアアップデートをリモートインストールする方法 - Apple サポート 更新の確認 softwareupdate -l --include-config-data ~ $ softwareupdate -l --include-config-data Software Update …

MacからGarageBandを完全削除して容量を確保する

mac

環境 MacOS sierra 音楽性の違いにより削除 突然ですが、作曲する?するならブラウザバックで。しないならGarageBandまるごと削除しよう GarageBandはApple謹製の作曲ソフト。プリインストールされれて気づきにくいが、結構容量を食っている。 削除手順 アプ…

UbuntuにClickHouseのインストールするまで

環境 Ubuntu 16.04 インストール 基本的には公式ドキュメントどおりに進めていけばおk /etc/apt/sources.list.d/clickhouse.listに以下を追加 deb http://repo.yandex.ru/clickhouse/deb/stable/ main/ で、インストール apt-key adv --keyserver keyserver…

ターミナルに雨雲画像を表示してくれるコマンドameshが便利

これは便利(確信 これから雨が降るのか、今降ってる雨がどれくらい長引くのか確認したい時がある。 かといってわざわざ雨雲でググるのも面倒なときはotiai10/ameshが最強 快晴でスクショが全く映えない (´・ω・`) ターミナルでameshを叩くだけで表示される…

Pythonで2つの日付からdate rangeを取得する

環境 Python 3 やりたいこと 2つの日付からfor文で日付を回したい場合 rubyでいう require 'date' (Date.parse('2017-12-01')..Date.parse('2018-1-31')).each do |date| puts date.strftime("%F") end 的なのをやりたい コード from datetime import date,…

pandasでMySQLに接続

めも 環境 Python 3.6 インストール pip install mysql-connector-python コード import mysql.connector as mc import pandas.io.sql as pdsql con = mc.connect( user ='USER', password='PW', host='localhost', database='DB') sql = 'SELECT * FROM tab…

MySQLで複数カラムのマージして出現回数をカウントしたい

やりたいこと 例えばdata1、data2、data3のカラムがあってそれぞれのカラムを合体して文字の出現回数を調べたい テーブル CREATE TABLE `hoge` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `data1` varchar(255) NOT NULL, `data2` varchar(255) NOT …

RailsでpumaのCPU使用率を取得する方法

環境 linuxでpumaで動作しているRails railsの負荷を計測するのは一筋縄ではいかず、一発でこうすれば取得できるってのはないのだが、なんとかして負荷度を計測したい。 ってときにtopコマンドでpumaのCPUの使用率を取得すると概算できることがわかったので…

サイドバーの追尾型広告でAdsense貼るとBANされる話

らしい サイドバー→に縦長の広告があって、スクロールするとついてくる広告って結構昔からあって、メジャーな手法だと思っていたが、それをAdsenseでやると利用規約違反らしい。 このことは公式ヘルプにしっかり明記されている AdSense ポリシーに関するよく…