905. Sort Array By Parity

LeetCode の挑戦ログ Problem https://leetcode.com/problems/sort-array-by-parity/ 正の整数からなる配列を渡される 偶数 -> 奇数の順にソートする 偶数 -> 奇数であれば他の順序は問わない Solution class Solution { public int[] sortArrayByParity(int…

転職ドラフトに参加してみました

はじめに こちらの記事は転職ドラフト体験談投稿キャンペーンに参加しています。 job-draft.jp 転職のあらましは別記事に書いてあるのですが、転職ドラフトにも参加してみたので、この記事を書いています。 su-kun1899.hatenablog.com 転職ドラフトに登録し…

832. Flipping an Image

LeetCode の挑戦ログ Problem https://leetcode.com/problems/flipping-an-image/ バイナリマトリックス(二次元配列)が渡される 各行をひっくり返した後、反転させる Solution class Solution { public int[][] flipAndInvertImage(int[][] A) { return Ar…

就職します

就職活動終わりました ブログにも書いてたんですが、年末で前職を退職して就職活動してました。 無事に次のところも決まったので、どんな感じだったのか軽くまとめておきます。 su-kun1899.hatenablog.com 謝辞 ブログや SNS で公開してたこともあり、本当に…

1299. Replace Elements with Greatest Element on Right Side

LeetCode の挑戦ログ Problem https://leetcode.com/problems/replace-elements-with-greatest-element-on-right-side/ 配列の右側で最大の値に置き換えた配列を作成する 配列の最後に -1 をつける Solution class Solution { public int[] replaceElements(…

数字の配列を降順にソートする #java

概要 数値の配列を降順にソートされたリストにする Stream の sorted を使う Collections の reverseOrder で降順になる サンプル int[] nums = {3, 6, 8, 1, 5, 4, 7, 9, 2}; List<Integer> sorted = Arrays.stream(nums).boxed() .sorted(Collections.reverseOrder(</integer>…

JavaScript で隔週判定する #javaScript

概要 GAS (Google Apps Script) のトリガーは隔週実行に対応していない。 なので、隔週判定を自前で実装してみる。 考え方 「基準日」と「判定日」を引数で渡す 「基準日」と「判定日」の経過時間を算出する 経過時間を一週間の経過時間で割る 結果が偶数で…

配列を任意のグループに分ける #javaScript

概要 JavaScript で配列を任意のグループに分ける。 例えば 7 人を 3 グループに分けると 3人-2人-2人みたいに分けたい。 考え方 「配列」と「分けたい数」を引数で受け取る まず割り切れる分を分けてしまう 余りを改めて配る 要素数が 7 だと 7 / 3 = 2 余…

アジャイルコーチングを読んだ

アジャイルコーチング作者:Rachel Davies,Liz Sedley出版社/メーカー: オーム社発売日: 2017/01/21メディア: 単行本(ソフトカバー) 永らく積まれていたのだが、ようやく読んだ。 僕はチームをリードする立場になったことはあってもコーチという立場になっ…

テストコードでのヘルパーとか重複とか

テストコードでのヘルパーとか重複について考えた。 gihyo.jp ちょっと調べたら、少し前のだけれども大御所の人たちの記事を見つけた。 僕もテストコード内のヘルパーや重複にはかなり慎重派。 もちろん見通しのよさや独立性っていう話もあるんだけれども、…

CircleCI で MySQL にパラメータを渡す #CircleCI

TL;DR command 要素を使うとパラメータを渡せる。 - image: circleci/mysql:5.7-ram environment: MYSQL_ROOT_PASSWORD: password MYSQL_DATABASE: test command: ['--character-set-server=utf8mb4'] こんな感じにすると動く。 経緯 Invalid datetime forma…

MySQL コンテナの起動を待つ #mysql #docker

概要 Docker で MySQL コンテナの起動を待つ方法まとめ nc で待つ nc コマンドで待つ。 CircleCI の Example にあった。 for i in `seq 1 10`; do nc -z 127.0.0.1 3306 && echo Success && exit 0 echo -n . sleep 1 done echo Failed waiting for MySQL &&…

マスタによくある適用開始日と終了日の命名

TL;DR RDB でのマスタ系によくある「適用開始日」「適用終了日」の命名ってどんなのがいいだろうかって考えた。 activated と deactivated enabled と disabled あたりがよさそう。 created modified みたいなカラム名を使うようなら特に。 その他の考えたや…

「現場で使える Ruby on Rails 5速習実践ガイド」を読んだ

現場で使える Ruby on Rails 5速習実践ガイド作者:大場寧子,松本拓也,櫻井達生,小田井優,大塚隆弘,依光奏江,銭神裕宜,小芝美由紀出版社/メーカー: マイナビ出版発売日: 2018/10/19メディア: 単行本(ソフトカバー) タイトルの通り、非常に実践的な本。 入門…

CakePHP3 のテストで Fixture を bake する #cakephp

TL;DR Fixture を bake する際のテンプレ bin/cake bake fixture \ --records \ --schema ${テーブル名} \ --count ${レコード数} \ --conditions "${WHERE句に書くような条件}" --records ( test ではなく) default のデータベースを元にテスト用レコードを…

「実装パターン」を読んだ

実装パターン作者:ケント・ベック,Kent Beck出版社/メーカー: ピアソンエデュケーション発売日: 2008/12/22メディア: 単行本(ソフトカバー) いつだったか前職の Slack で話題にあがっていて、目次を見るだけで名著の雰囲気が出ているし、ケント・ベックだ…

CakePHP3 で Migration を途中からやる #cakephp

概要 CakePHP3 で DB の構成管理を行っているが、何らかの事情でプレーンな環境で migrate できない場合の現実的な回避策としてのメモ。 プロダクションでは利用されているが、十分に開発環境で運用されていない場合などを想定。 現時点での dump を取得する…

AWS CLI の default profile が効かない #AWS

AWS

問題 aws cli で default profile が効かない現象に遭遇した。 --profile default でやると動く。 解決策 aws configure list とか aws configure get profile やってみると実は別のprofileセットされてたりしませんか?— キャンプ場を買う (@okazu_dm) 2019…

(2020-02-07 追記: 転職活動終わりました)【求職エントリ】転職活動してます

(2020-02-07 追記) 転職活動終わりました 今回の転職活動は終了しました。 su-kun1899.hatenablog.com 転職活動しています 現在働いている会社を2019年12月末で退職することになりました。 年明けから無職なので、次の会社を探しています。 1月までは就活し…

CakePHP3 を CircleCI でテストする #cakephp

概要 CakePHP3 を CircleCI でテストするようにするまとめ。 Database を使ったテストも出来るようにしています。 TL;DR 最終的な yml はこんな感じです。 version: 2 jobs: build: docker: - image: circleci/php:7.1.32-fpm-node-browsers environment: DA…

MySQL で日付の疑似表を作る #mysql

概要 MySQL で日付の疑似表を作るクエリ。 集計分析等で、データがない日付も一覧としては出したいようなケースでの利用を想定。 TL;DR 色々試してみたけど、以下に落ち着いた。 SELECT @seq := 0 AS seq , DATE('2020-01-01') AS ymd FROM dual UNION ALL S…

「よなよなエールがお世話になります」を読んだ

ぷしゅ よなよなエールがお世話になります作者: 井手直行出版社/メーカー: 東洋経済新報社発売日: 2016/04/08メディア: 単行本この商品を含むブログを見る ビールの「よなよなエール」を作っている、ヤッホーブルーイングの社長の本。 今年だったか去年だっ…

カスタム Docker Image を ECR で管理して、 CircleCI から利用する #AWS #Docker #CircleCI

概要 php のプロジェクトに CircleCI を導入した。 PHP の拡張(特に grpc 拡張)のインストールに時間がかかるため、独自イメージを用意してそれを使うことにした。 イメージの管理には Amazon Elastic Container Registry (ECR) を使ってみた。 ECR でリポ…

CakePHP3 でテストの置き場所を変更する #cakephp

概要 CakePHP3 では tests/ 配下にテストコードを書くことになっている。 何らかの原因(察して)でパスを規定から変更したい場合の修正箇所に付いてまとめる。 以降 tests/PHPUnit/ に変更すると仮定して記載する。 paths.php TESTS が定義されているので書…

Elasticsearch が応答しなくなった #AWS #Elasticsearch

概要 Amazon Elasticsearch Service で、Elasticsearch が突然死んでしまった 復旧方法が分からないので、結局別ドメインで作り直した 原因は結局わからないままだったので備忘録です。 想定される原因や、強制的に再起動する方法があったら教えてほしいです…

brew services に慣れていない

mac

docker で 9000番ポート使おうとしたら他が使っていると怒られた。 なんだろうと思って調べてみると php-fpm が使っていた。 $ lsof -i:9000 -P 起動したっけな、と思いながら無邪気に kill したけど再起動が走り止められない。。 自動で何か仕込んでたかな…

リリースしたらレゴを組み立てている

僕らはリリースするたびレゴを組み立てている。 それを「リリースレゴ」って呼んでいる。 リリースレゴとは レゴブロックをリリースの度に組み立てる。 ざっくり、下記のようなルール。 1案件を Production にリリースするたび、組み立て手順を1進める 1…

「ここだから話せるVPoEの現場」に参加した #kiitok_meetup

kiitok.connpass.com 最近また「人・組織」方面の関心度が高まってきて、面白そうだったので参加してみた。 年齢制限があったけど、ギリギリセーフ笑 参加して考えたこと VPoE になる人というのは、VPoE になろうとしたわけではない気がした。 たぶん自分の…

CircleCI をローカルで動かそうとしたら image が pull できない #circleci

問題 CircleCI をローカルで動かそうとしたら、なんかエラーになって動かない $ circleci build すると下記のエラーメッセージが出る。 Error: Could not find picard image: failed to pull latest docker image: exit status 1 解決策 メールアドレスでロ…

バッチ処理を作るときに考えていること

バッチ処理を作る必要があるときに、考えているようなことをまとめておく。 はじめに バッチは機能の実現方式であって、機能そのものではないと思っている。 なので、バッチ処理は単独で考えるものではないというのが前提。 とはいえバッチという手段を選ん…