これは エキサイト Advent Calendar 2019 の9日目の記事です。 はじめに 先週の12/1(日)に PHP Conference Japan 2019 があり、そこでチームにクリーンアーキテクチャっぽい設計手法について導入してみた話でLT登壇してきました。 そのときの総合的な(?)…
はじめに 今回、12/1にPHP Conference Japan 2019 beyond.* に参加したので自分用にまとめます。 phpcon.php.gr.jp 実は、弊会社が協賛していて企業ブースに出展していて、自分も含めて3名ものLT登壇があり、普段の感覚とは大きく違いました。 発表者の話とT…
Slack botへのメンションをトリガーとした何かしらを作るにあたって、とりあえずの練習として「botへのメンションがあったらその内容をオウム返しする」ものを作りました。 そのとき、無限ループに陥ってしまったので、それを回避する方法です。 Slack bot自…
前回はセキュリティグループIDをソースに指定してセキュリティグループを作成する方法について書きましたが、今回はその流れでルールを書いていたらハマった話です。 ohshige.hatenablog.com セキュリティグループIDをソースに指定してセキュリティグループ…
セキュリティグループを作成するときに、インバウンドのソースとして別のセキュリティグループIDを指定する方法はとても便利です。 よく使うのは、AWSで踏み台サーバを用意してアプリケーションサーバにはその踏み台サーバ経由でしかsshできないようにする場…
はじめに しばらく前に会社の同僚からすすめられて読んだので今更ながらまとめます。 「3年目までに身につけたい 一生役立つ101の原理原則」という副題がついているにもかかわらず、3年目どころではない私でも楽しめました。 プリンシプル オブ プログラミン…
Terraformとは、多くのクラウドやその他のサービスを対象にInfrastructure as Codeを簡単に実現できる、便利なツールです。 その使い方は様々なところで紹介されているので良いとして、実際に実務として利用しようとした場合にTerraformをどこで実行するべき…
はじめに たまにはボードゲームの話でもしようと思います。 最近はボードゲームも人気になり、ボードゲームと言えば人生ゲームやUNOだけではないということも多少広まっている気がします。 そこで、よく知られたボードゲームと似ているが、それとは違うもし…
AWS CodeDeployを使っていて少しハマったのでメモとして残しておきます。 CodeDeployでデプロイする場合、どこのコードを使ってどんな方法でどこにデプロイするか色々なパターンがあります。 EC2 or オンプレ GitHub or S3 インプレース or Blue/Green Elast…
AWSのAuroraからGCPのBigQueryにデータを転送する必要があり、最終的にEmbulkを使うことに落ち着いた話です。 最初は、AWS Data Pipelineを使ってAuroraからS3にエクスポートしてBigQuery Data Transfer Serviceを使ってS3からBigQueryにインポートするフロ…
AWSのData Pipelineを使って、AuroraからS3でテーブルをまるっとエクスポートしようというときがありました。 テンプレートとして「Full copy of RDS MySQL table to S3」が用意されているので、さくっとできるかと思っていましたが、そうでもありませんでし…
とある理由でPC上でのクリックを自動化したかったため、色々ツールを調べていました。 Windowsだといい感じのツールはあるようですが、Macだと手軽に使えて良い感じのツールは無さそうです。 ということで、今回はクリック自動化に求める内容もすごく単純な…
タイトルの通りです。 EC2インスタンスを作成した後で、CodeDeployを使いたくなり、色々設定してやってみてもなかなかデプロイに成功してくれませんでした。 必要なRoleはアタッチしているはずですが、以下のようなエラーが出続けました。 The overall deplo…
PHPでGoogle Play Developer APIを使ってAndroidのレシートを検証したいときは、こんな感じでやればOKです。 ohshige.hatenablog.com APIを実データで叩くだけなら問題ないのですが、モック化したいということがありました。 モック化のやり方は良いとして、…
AWS CodeDeployは、EC2、Lambda、オンプレサーバなどへのデプロイを自動化してくれるサービスです。 デプロイのリビジョンタイプとして、アプリケーションをS3に置いておくかGitHubに置いておくか選ぶことができます。 GitHubに置いておく場合はCodeDeployが…
LaravelにはStorageというファサードがあり、ローカルだろうがS3だろうが簡単ファイル操作を簡単に行うことができ、とても便利です。 例えば、localにファイルを設置したい場合は、 Storage::disk('local')->putFile('', $file); などとすることができ、loca…
LaravelにはStorage というファサードがあり、ローカルだろうがS3だろうが簡単ファイル操作を簡単に行うことができ、とても便利です。 config/filesystems.phpのdisksにはデフォルトで以下のような設定があります。 'disks' => [ 'local' => [ 'driver' => '…
はじめに AtCoderで競技プログラミングを始めてから半年が経ったので久しぶりに中間報告としてアウトプットします。 開始3ヶ月時点でのブログはこちらです。 ohshige.hatenablog.com 開始1ヶ月時点でのブログはこちらです。 ohshige.hatenablog.com 現状 現…
PhpStormにおけるLaravelの補完といえば laravel-ide-helper ですが、Blade内でエンティティ等の補完をする方法がわからなかったので調べました。 結論としては、これです。 blog.jetbrains.com 例えば、以下のようなエンティティがあったとします。 name = …
PHPでは、変数をあらかじめ宣言していなくてもエラー無しでいきなり配列の代入ができるということを、恥ずかしながら初めて知りました。 $hoge[] = "hoge"; var_dump($hoge); array(1) { [0]=> string(4) "hoge" } 同様に、こんなこともできます。 $hoge["ho…
調査してもほとんど情報を見つけることができない「Acknowledge」の挙動について超簡易的にまとめてみます。 以降、間違った情報もある可能性が高く、課金処理は慎重に実装されるべきなので、鵜呑みにはしないようお願いします。 基本的にはこちらの続きで、…
このブログをはじめてから半年が経ちました。 毎週1記事はアップするようにして、よく続いているなと自分でも思っています。 もともとは2019年になったタイミングで何かやってみようと思い立ったのがキッカケでした。 ブログの目標はお小遣い稼ぎでも有名に…
前回はAndroidのレシート検証について超簡易的なメモを残したので、その流れでiOSについても超簡易的なメモを残します。 ohshige.hatenablog.com 参考: レシート検証プログラミングガイド iOSの場合、公式の特別なライブラリは無いようなので、PHPからその…
GoogleのAPIを操作するためのPHP向けライブラリとしてgoogle-api-php-clientがありますが、Androidのレシート検証に際して使い方がイマイチわからなかったので、メモとして残します。 github.com 前提として、Google Play Consoleを使って、OAuthトークンや…
はじめに 知人から以下のような相談を受けました。 Googleカレンダーの決まった予定が終わったタイミングで、その予定の詳細を予定参加者にSlackで通知したいが、簡単にできる方法を知らないか? IFTTTとSlackの連携や簡単なGASなら知識はあるようでしたが、…
はじめに IFTTTとGoogle Apps Scriptを使って、Googleカレンダーの予定が終了したタイミングでSlackに通知してみます。 Googleカレンダーに登録されている予定が終了したタイミングで、Slackに @ohshige 「〜〜〜」の予定が終わりました。 と通知してみます…
はじめに Google Apps Script から Slack API を呼んでメンション付きで特定のチャンネルに投稿してみたのでまとめます。 Slack API Incoming Webhooks の URL を取得 まずは、 Incoming Webhooks の設定をする必要があります。 このページに従って進めれば…
はじめに 今回は 言語処理100本ノック 第4章: 形態素解析 の後編です。 これまでの ohshige.hatenablog.com ohshige.hatenablog.com 第4章: 形態素解析 Python 3.7.0 でやっていきます。 問題の解釈違い、間違い等ありましたら、教えていただけると幸いです…
はじめに 今回は 言語処理100本ノック 第4章: 形態素解析 の前編です。 これまでの ohshige.hatenablog.com ohshige.hatenablog.com 第4章: 形態素解析 Python 3.7.0 でやっていきます。 問題の解釈違い、間違い等ありましたら、教えていただけると幸いです…
はじめに 私の本職はWebエンジニアなわけですが、エンジニアはあらゆる作業を自動化したい怠惰な生き物です。 ルーチンワークはプログラムとして記述しバッチ化し、様々な通知はslackに一本化して飛ばし、集中すべきときに集中できるようにそれ以外のときは…