モヒカンは正義

プログラマー風林火山で言う「風のエンジニア」になりたい(比較的)若者Webエンジニアの備忘録

"[skip ci]" とコミットメッセージに書くと、CIをスキップできる

TravisCIやCircleCIを使ってCI/CDするのはだいぶメジャーになりましたね。 ドキュメントのみの更新時やwipのときなど、「git commitはしておきたいけどCIは走らせなくて良いだよな〜」というときありますよね。 そういうとき [skip ci] とコミットメッセージ…

ゆるゆる無限LTというクレイジーイベントへ参加してLT3本やってきた

自分もワイワイしている若者ものづくりコミュニティ Oysters主催、ゆるゆる無限LTというクレイジーイベントへ参加した。 oysters.connpass.com 会場はウィルゲートさん提供。サンクス! 雰囲気 無限LTとwはwww 他の人の LT を聞きながら、LT の資料を作る。 …

MySQL8をバージョンアップしたら起動しなくなった

背景 個人プロダクト用にMySQL8を運用していて定期的にバージョンアップを行っている 8.0.14 から 8.0.16 にマイナーバージョンアップしたところMySQLが起動しなくなった ファーーーーーーー pic.twitter.com/FrFW5kfi1K— ぴんくもひかん (@pinkumohikan) A…

2019/4/21 ISUCON練習記 こんにちはAlibaba Cloud編

TL; DR 9月頭にISUCONの予選があるよ Alibaba CloudでISUCON5を動かしたぞ ISUCONってなんやねん? Iikanjini Speed Up Contestだよ!(雑) isucon.net インフラからアプリと全域に渡るパフォーマンスチューニングのコンテストで、お題となるWebアプリをガ…

Scalaで使うテンプレートエンジンの検討 (Scalate、Twirl、Beard)

Scalaでテンプレートエンジン使いたくなったので調べた。 www.scala-lang.org 探し方 GitHubでホスティングされているホットなものを探す。 github.com こういうのを探すときは、 そこそこstarがついている (= みんなに使われている) 定期的に新バージョンが…

CircleCIでdockerを使うときはバージョン指定を忘れないこと

学び CircleCI上でdockerを動かすとデフォルトではバージョン17.09っていう化石エンジンで動いてしまうので気をつけるべし。 背景 とあるOSSアプリ のCIをCircleCIでしようと思って悪戦苦闘していたら、こういうリプを貰った。 よい子はちゃんとバージョン指…

貴族会のLT大会で「貴族のための仮想通貨 売買BOT開発 入門」というテーマで話してきた #kizokukai

遅くなったけど、貴族会の第3回LT大会へ参加してきたので参加レポートをば。 What’s the 貴族会 LT大会? こ↑れ↓ kizokukai.connpass.com 場所はウィルゲートさんの提供。オフィスきれい。あざます! 貴族会とはなんぞね? 貴族会はトリキ好きな酔っぱらいの…

Docker for Macが路頭に迷わないようにたくさんメモリを食べられるようにする

こんにちは。 軽量でポータブルな開発&実行環境としてDockerが人気ですね。 僕は数年前までは開発環境にはもっぱらVagrantを使っていたのですが、最近は仕事でもプライベートでもDockerしか使ってないです。 Dockerは単純に捨てやすい開発環境という使い方…

30日間brew cleanupしてなかったらbrew upgradeのついでに実行されるようになっていた

僕は仕事でもプライベートでも開発環境としてMacBookを使っているのですが、毎朝 brew upgrade コマンドを叩いています。今日は何が上がったかな?を確かめるのが日課です。これをせずにbrew installをした日にはたくさんのupgradeが走ってめちゃめちゃ待た…

travis encrypt-fileに気をつけろ!2回コマンド叩くと復号に失敗する!?

なんか釣りっぽいタイトルになってしまいましたが、そんな意図はありませんw CI/CDツールとして良くTravis CIを使っています。CDの際などにアプリ設定やDB接続情報と言った機微情報を扱うとき、travis-cliの travis encrypt-file というコマンドを使うとTr…

使わなくなったWAONの残高をAmazonギフト券に変えた

大学生時代の住処の近くにイオン系スーパーマーケットがあったので良くWAONを使っていたが、上京してからは全く使わなくなった。 それからしばらくWAONのことを忘れていたが、年明けにふと思いだして残高が勿体無いのでどうにかしようと動いた。 作戦を立て…

MySQL5.7以降でユーザ作成時にパスワードポリシーで怒られるときの回避策

MySQL5.7.8以降でゆるいパスワードでユーザを作成しようとした際、下記のようなエラーが表示される mysql> create user "user_name"@"localhost" identified by "some_weak_password"; ERROR 1819 (HY000): Your password does not satisfy the current poli…

大規模サービス構築インターン Sunriseのサポーターをしました

VOYAGE GROUPのエンジニア向け大規模サービス構築インターン Sunrise 2018でサポーターをしました Sunrise 2018 Sunriseってなんやねん? Webサービスを作るインターンや個人でWebサービスを作る開発者が増えてきましたが、実際にサービスを作って利用者が増…

口頭で話したことは必ず文字に起こす

口頭で話したことは絶対に文字に起こして、相手へ共有したほうが良いと思っている。 それは電話であろうが、対面であろうが、関係ない。 なぜか? 証拠を残すため 悪意が有っても無くても、言った言わなかった問題は絶対に起こる。 心理学的には、ひとは一ヶ…

スマホの分割払いを滞納したら記録され、次の分割払いの審査にひびく

少し時間が経ってしまったが、 "年収300万円以下はiPhone XSの割賦審査が通らない” tweetが話題になっていたとき、ふと気になって次のようなアンケートを取った。 スマホでもPCでも、割賦はローンなので滞納したら記録されて、次のローン契約に響くのってど…

ワイルドカード証明書はサブドメインでなくても利用できるのかどうかを調べた

背景 *.pinkumohikan.com 用のワイルドカード証明書が pinkumohikan.com ドメインでも使えるのかどうかが気になった。 これまでは pinkumohikan.com はドメインの階層(深さ)が違うので使えないと考えていたが、あるとき pinkumohikan.com でも使えるという…

Makefileを使ってcomposerをスマートにダウンロードする

やりたいこと composerをダウンロードしたい 繰り返し実行できるように、composerが既にDL済みのときは何もしたくない (毎回DLするのは無駄なのでやりたくない) やりたいことを叶えるMakefile .PHONY: setup setup: composer.phar # ここにアプリケーション…

IntelliJに "ext-json is missing in composer.json" って怒られた

背景 phpプラグインを有効にしているJetBrains IntelliJで、とあるphp拡張を利用した実装をしたとき下記のような警告がでた ext-json is missing in composer.json 「ext-jsonって確か組み込みモジュールだよなー。足りないはずはないし、なんで警告でるねん…

ブログをSSL対応させましたッ

時代はフルSSLなので追従しました staff.hatenablog.com SSL化してURL Schemeが変わるとソーシャルブックマークが(はてなブックマーク以外は)リセットされるし、Google Search ConsoleやAnalyticsの設定変更なども必要になってvery 面倒なので腰が重く、着…

LumenでCache DriverにRedisを使う

Laravelベースなマイクロフレーム LumenでキャッシュドライバとしてRedisを使おうとしていくつかハマったのでメモ (改めて公式ドキュメントみたら大体書いてたw)。 必要なこと Redisを使えるようにする Redisサーバの用意 (割愛) .env に REDIS_ 系環境変数…

#isucon8 予選参加して、無事爆死してきたンゴ

Iikanjini Speed Up Contestへ人生2回目の参加をして、無事爆死してきました ▼ チームメンバー がんばるぞ〜!起床に成功したので、今のところ優勝ペース#isucon #isucon8— 寝具突撃部隊 寝無理隊 (@pinkumohikan) September 15, 2018 予選おつかれさまでし…

名前をつけてgit stashする

gitには、今作業中なんだけどすぐに別の作業したくなって一時的に変更を退避させたいんだよねーという時に使える git stash という便利コマンドがあります。 gitを使い始めて6年ぐらいの先日、stashに名前をつけられることを知りました (厳密には名前じゃあ…

docker上でコンテナとしてdocker-composeを動かす

「dockerは動くがdocker-composeが動かない」というおもしろい環境のデバッグを手伝っていた際にdockerの公式ドキュメントを読んで、コンテナとしてdocker-composeを動かす方法が紹介されていて、とてもdockerっぽくて面白いなと思った。 Docker Compose の…

インスタンスが再起動するとホスト名の設定がリセットされる原因と対策

症状 ConoHa のVPSで /etc/hostname へホスト名を書いても、インスタンスが再起動すると初期値へ戻っている。 原因 インスタンスの初期化に使われている cloud-init というソフトウェアの「ホスト名を変更する機能」が有効になっているため。 なので、ConoHa…

AlpineLinuxでdigコマンドを使えるようにする

Dockerイメージを作る際のベースイメージとしてよく使われるOSに AlpineLinux がある。超軽量なのが特徴で、イメージサイズはわずか4MByte強!参考までに、CentOS7.4のイメージは約200MBある。 $ docker images alpine REPOSITORY TAG IMAGE ID CREATED SIZE…

CircleCI: docker_layer_cachingを有効にしてdocker buildでキャッシュを効かせる

CircleCIでdocker buildする際、初期状態ではbuild cacheが無効になっている。documentを漁っていたら、オプションでbuild cacheを有効にできるようだったので試してみた。 By default, the Remote Docker Environment doesn’t provide layer caching, but y…

Laravel tinkerで、DBへつながっていることを確認する

Laravel tinkerからデータベースへつながっていること (SQLを発行出来る状態になっていること) を確認したい!そんなとき コマンド DB::select('select 1'); 実行するとこんな感じ >>> DB::select('select 1'); => [ {#2300 +"1": 1, }, ] 赤くハイライトさ…

プライベートプロダクトのpackage.jsonのlicenseフィールドには "license: UNLICENSED" と指定すればいいらしい

package.jsonのlicenseフィールドに何も指定しないと、npm install or yarn installしたときに下記のような警告が出てしまって地味に目障り warning package.json: No license field プライベートプロダクトでpackage managerとしてnpm / yarnを使っているだ…

エンジニアとして働きたいなら、就活始める前に何か作るべきだと思うんだ

エンジニアとして就職したい学生や、エンジニアへの転向を考えている人に一言言うなら「まず何か作れ。話はそれから」。 人から信じてもらいたければ、言葉で自己を強調するのではなく、行動で示すしかない。 出典: 超訳 ニーチェの言葉 作るべき理由 1. エ…

2つの設定ファイルから空行やコメントを除いていい感じにdiffを表示するプチテクニック

▼ アイキャッチ画像は適当です ミドルウェアなどのバージョンアップやマイグレーションなどの際に、「今の設定ってデフォルトからどこがどう変わってるんだっけ?」って気になることありますよね? でも、単純に diff コマンドで差分を出すだけだと改行やコ…