Slack API を使って、特定のチャンネルのメッセージと発言ユーザーを取得する #slack

概要 Slack の発言を分析したいみたいな話が職場であって、サクッと取れないかな〜と雑にシェルスクリプトで試してみた記録。 便利なツールとか既にありそうだけどね。。 Slack API を使って 特定のチャンネルから一定期間の発言を取得し 「投稿日時」 「そ…

Next.js で Material-UI と styled-components を使う #nextjs

概要 Next.js で Material-UI を利用しつつ、 styled-components でカスタマイズできる環境を構築した記録。 nextjs.org material-ui.com styled-components.com Next.js でプロジェクトを作る $ npx create-next-app Material-UI を install する $ npm ins…

CakePHP でカスタム Validation を追加しやすくする #cakephp

概要 CakePHP には独自に定義したカスタム Validation を使う方法がいくつかある。 Default のバリデーションプロバイダーを差し替えることで、アプリケーション全体で使うようなルールを追加しやすくする。 例えば「会員IDは 0 埋めを含む8桁の数字」のよう…

CakePHP で uploadedFile の Validation をテストする #cakephp #php

概要 CakePHP にはアップロードファイル用の validator が用意されていて便利。 ただテストをするときにちょっとめんどくさい点が2つある。 1つ目はファイルをアップロードするリクエストを作ること。 リクエストするデータとは別に $_FILES にも情報を突…

CakePHP4 と php8 の Docker コンテナを作った #cakephp #php

概要 公式 Docker Image の php:8.0-apache をベースにして、CakePHP のコンテナを作った。 DockerHub & GitHub に置いてある。 hub.docker.com github.com なんで作ったか ここ最近は仕事で触る中心が CakePHP になっているので、手元で色々試せる環境をサ…

KGDC Tech Conference で LT してきました #KGDC

speakerdeck.com 「息を吸うようにエラーを監視する」というタイトルで発表してきました。 イベントについて KDDI グループ会社それぞれの技術者が集まって主催するイベントです。 グループ会社とはいえやってることはそれぞれ違うので、アドテクの話だった…

「More Effective Agile」を読んだ

More Effective Agile “ソフトウェアリーダー”になるための28の道標作者:Steve McConnell発売日: 2020/06/11メディア: Kindle版 「CODE COMPLETE」のスティーブ・マコネルがアジャイルについて書いたということで読んでみた。 アジャイル関連の書籍はちょこ…

PHPStorm で PHP_CodeSniffer をかける #phpstorm

はじめに 開発環境は Docker を利用しており、最初は Docker 上の php を利用して連携しようと思っていた。 実際に連携自体はできるのだが、ホストマシンのスペックの問題なのか、避けられない遅延なのか、Inspection が走るたびに指摘事項が一瞬消えてまた…

「THE MODEL」を読んだ

THE MODEL(MarkeZine BOOKS) マーケティング・インサイドセールス・営業・カスタマーサクセスの共業プロセス作者:福田 康隆発売日: 2019/01/30メディア: Kindle版 以前勤めていた職場の同僚に勧められて、てっきりエンジニアリングの本かと思ったら、セー…

Developers Summit 2021に行ってきた #devsumi

デブサミに参加してきた。 行ってきた、といってもオンライン開催だけど。 event.shoeisha.jp なんとなく感じたこと 聴講したセッションやタイムテーブルを見てると、なんとなく「プロダクトマネジメント」と「EdTech」がトレンドなのかな―という気がした。 …

認証付きリクエストをテストする #cakephp

環境 CakePHP 4.2.1 cakephp/authentication 2.5.0 認証はセッション方式 概要 認証付きエンドポイントを何もせずにテストすると、(未ログインで)302転送されてしまう。 セッションに偽の認証情報を入れることで、認証を通り抜けてテストできる。 やり方 …

「「1日30分」を続けなさい!」を読んだ

「1日30分」を続けなさい!Kindle版: 人生勝利の勉強法55作者:古市 幸雄発売日: 2017/02/20メディア: Kindle版 「朝30分」を続けなさい!作者:古市幸雄発売日: 2016/10/20メディア: Kindle版 柴田さんのブログで紹介されていたこともあり、2冊合わせて読んでみ…

GitHub プロフィールを作る

概要 気になってた、GitHub のプロフィールカードを作ってみた。 出来上がりはこんな感じ。 作り方 Managing your profile README - GitHub Docs ここに載ってる。 ユーザー名と同じ名前で public リポジトリを作ると、 README に書いた内容が自分のプロフィ…

リモート環境下におけるスクラムイベントのちょっとした工夫 #リモートワーク #scrum #スクラム

これは コネヒト Advent Calendar 2020 5日目 の記事です。 はじめに コロナの影響もあり、現在は在宅勤務が中心になっています。 コネヒトの開発チームはスクラムを採用していますが、スクラムイベントもリモートで行うようになりました。 この記事ではリモ…

「入門監視」を読んだ

入門監視を読んだ 入門 監視 ―モダンなモニタリングのためのデザインパターン作者:Mike Julian発売日: 2019/01/17メディア: 単行本(ソフトカバー) 最近仕事で、アプリケーションのアラート周りの整理をしている。 一緒にやってる同僚がこの本の読書会を社…

Web API の JSON レスポンス等で、null を返すのかプロパティごと削除するのか

概要 表題の通りの疑問なのですが、個人的な結論は出ていないです。 返しても意味がないなら消してよいのではという意見 まぁそうだよねぇ、という気がする。 softwareengineering.stackexchange.com required と nullable は同様に扱おうという意見 クライ…

AWS CLI v2 の Docker イメージで JSON が Parse Error になる #AWS #Docker

概要 AWS CLI を Docker Image 使って利用してみたのだが、出力に jq を噛ませたところ parse エラーになった。 出力に制御文字が入り込んでいるみたい? tty オプションを外してみたら解消された。 動作環境 Mac OS 10.15.5 Docker for Mac Docker version …

GAS (Google App Script) の Moment.js の出どころを調べる #gas

gas

概要 GAS でも Moment.js が使えるらしいが、どこもプロジェクトキーを書いてあるだけだったりして、出どころがよく分からない。 そもそもプロジェクトキーはサポートが終了したようなので、スクリプトIDを知りたい。 Moment.js の公式サイトや GitHub リポ…

「SCRUM BOOT CAMP THE BOOK」にコラムを書きました (そして旧版の思い出) #scrumbcbook #devsumi

SCRUM BOOT CAMP THE BOOK【増補改訂版】 スクラムチームではじめるアジャイル開発作者:西村 直人,永瀬 美穂,吉羽 龍太郎発売日: 2020/05/20メディア: Kindle版 5/20 に SCRUM BOOT CAMP THE BOOK の増補改訂版が発売されました。 学習と成長を促進する Scru…

「みんなの Java 」を読んだ

みんなのJava OpenJDKから始まる大変革期!作者:きしだ なおき,吉田 真也,山田 貴裕,蓮沼 賢志,阪田 浩一,前多 賢太郎発売日: 2020/03/06メディア: Kindle版 主に Java のリリースサイクルの変更とか、結局 JDK どれ選んだらいいの?みたいなところを整理し…

「ドメイン駆動設計入門」を読んだ

ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本作者:成瀬 允宣発売日: 2020/02/13メディア: 単行本(ソフトカバー) 最近は言葉が独り歩きしているような気もするドメイン駆動設計の本。 DDD に限らず設計の話は抽象的になりがちなので…

Javaの単一ファイル実行を試してみる #Java

概要 みんなの Java 読んでいたら、Java の単一ファイル実行試してみたくなったのでやってみた。 環境 Mac で試した。 Java のバージョンは12。 $ java -version openjdk version "12.0.1" 2019-04-16 OpenJDK Runtime Environment (build 12.0.1+12) OpenJD…

Localstack の SQS を使ってみる #AWS

AWS

概要 AWS サービスの Mock ツール、LocalStack で Amazon SQS を使ってみました。 かんたんに扱えるので、ローカル環境での開発等に重宝しそうです。 github.com Localstack の構築 いろんなやり方があるようですが、 docker-compose でやるのが楽そうです。…

「テスト駆動開発」を読んだ

テスト駆動開発作者:Kent Beck発売日: 2017/10/14メディア: 単行本(ソフトカバー) 自分程度のキャリアでも、テストを取り巻く環境は大きく変わったと思う。 テストコードは多くの場所で当たり前になった。 それでも、日々のプログラミング(テストコードに…

「みんなでアジャイル」を読んだ

みんなでアジャイル ―変化に対応できる顧客中心組織のつくりかた作者:Matt LeMay発売日: 2020/03/19メディア: 単行本(ソフトカバー) 同僚の何人かが読んでいたので手にとってみた。 「アジャイル」という言葉は「単なる方法論」あるいは「宗教のような何か…

SQL アンチパターンを読んだ

SQLアンチパターン作者:Bill Karwin発売日: 2013/01/26メディア: 大型本 ちょこちょこつまみ読みはしていたけれど、改めて通しで読んでみた。 そこそこキャリアのある人であれば、どこかで見かけ、そして苦しめられたパターンがいくつかあると思う。 この本…

1365. How Many Numbers Are Smaller Than the Current Number

LeetCode の挑戦ログ Problem https://leetcode.com/problems/how-many-numbers-are-smaller-than-the-current-number/ 数字の配列が与えられる それぞれの値より少ない値がいくつ含まれているか数える その数を同じ index の配列にして返す Solution class …

1342. Number of Steps to Reduce a Number to Zero

LeetCode の挑戦ログ Problem https://leetcode.com/problems/number-of-steps-to-reduce-a-number-to-zero/ 正の整数が渡される 偶数なら 2 で割る、奇数なら 1 を引く 0 になるまでの回数を数える Solution class Solution { public int numberOfSteps(int…

PHPUnit のモックで、引数に応じて戻り値を変更する #php #PHPUnit

概要 returnValueMap を使うと引数に応じて戻り値を変更できる 例外を返したいときは returnCallback() を使うと便利 returnValueMap を使う returnValue に [引数, 戻り値] の配列を渡すと、引数に応じた戻り値を返す Mock を作れる。 引数が複数ある場合は…

課題に正面から取り組むこと

経験を積むと、実現が難しい方法で苦しんでるときに、より容易な回避方法が浮かぶようになる。 手元に並べられる選択肢が増えるというか。 それはいいことなんだけど、「より最適な解として」別の手段を選んでるつもりで、「難しい方法を避けるために」別の…