ソフトウェア開発

Cloud Functionsを利用して、SlackからChatGPTを呼び出すSlack Appをつくる

はじめに ChatGPT APIの練習として、N番煎じだが、SlackからChatGPTを呼び出すSlack Appを実装した。 Appの概要は、メンションで受け取ったメッセージをChatGPT APIにリクエストし、返答を同チャンネルに書き込む。 ふるまいの前提となるようなキャラクター…

Cloud FunctionとCloud Schedulerで読書ログをリマインドする

背景 色々試して行き着いた読書方法 まとめたメモは、Notionのリマインド機能を使って、1か月後に「自分にメモを読み返すように通知」を飛ばしています こちらのブログに刺激を受け、 自分も読書ログを書いているが、完全に書きっぱなしになっているのをなん…

Cloud Functionでランタイムのサービスアカウントとは別のサービスアカウントをコード上で利用する

環境 Cloud Functions 第2世代 リージョン:asia-northeast1 ランタイム:PHP 8.1 利用方法 デプロイしたソースは /workspace 配下に置かれるため*1、 サービスアカウントのキーファイルも一緒にデプロイし、 環境変数 GOOGLE_APPLICATION_CREDENTIALS に /wor…

Google One VPNを使ってみた

charlie1012.hatenablog.jp 先日から港区立産業振興センターのコワーキングスペースで活動することが増えたので、VPNを契約し、利用している。 Minato City Wi-Fiのセキュリティに関する注意事項 以前からGoogle Oneの有料会員だったこともあり、アップグレ…

docker-php-ext-installのjオプションは同時に実行するジョブ数

タイトルが結論である。 Cloud RunのPHPサンプルを調べているときに、下記のnprocの結果を引数にしているjオプションが気になり、調べた。 RUN docker-php-ext-install -j "$(nproc)" opcache php-docs-samples/Dockerfile at d4e33719cb0ddeb38324b8f07109b…

GoogleCloud認定試験Associate Cloud Engineerに合格した

Associate Cloud Engineerとは Google Cloud 認定資格の一つであり、Foundational,Associate,Professionalと分けられる真ん中の資格である。 イメージとしては情報処理技術者試験の基本情報技術者試験のGoogle Cloud版というの近いだろう。 Associate Cloud …

『コーディングを支える技術』/この技術はなにを解決し、なにが嬉しいのか

コーディングを支える技術――成り立ちから学ぶプログラミング作法 WEB+DB PRESS plus作者:西尾 泰和技術評論社Amazon どんな本か 「歴史」と「比較」を利用しながら、プログラミングの進化をたどっていける本です。 どんな人にオススメか IT系のエンジニア、…

Dockerでよく利用されているAlpineは他のLinuxディストリビューションと比べて、どれだけ軽量なのか

はじめに Dockerを使っていると、AlpineのイメージをベースにDockerfileを記述していくことがあるかと思います。 Alpineという存在、軽量らしいということは知っていても、いまいち正体が把握できていなかったので、Alpineについての情報をまとめます。 Alpi…

PhpStormで開いているファイルとプロジェクトツリーを同期させる設定

設定方法 Projectを右クリック -> Always Select Opened File にcheck hoge どういうときにこの設定するのか? PhpStormの検索は強力です。 ⌘O:クラス検索 ⇧⌘O:ファイル検索 ⌥⌘O:シンボル検索 Macであれば上記のようなショートカットで範囲を絞りながら検索…

BEAR.Sundayを採用した理由

2019/04/02 下記の箇所を修正と追記 もちろん、それぞれ別のインターフェイスで実装すればいいじゃないかという話もあるとは思います 前置き 先日のPHPerKaigi2019で 「たった1人のAPI開発 BEAR.Sundayで解決した課題たち」という題目で発表させていただきま…

カラーテーマを変更して、快適なSlackをあなたに

Slackはサイドカラムを中心にカラーテーマを設定することができます この記事ではカラーテーマの設定の仕方やカラーテーマの共有方法についてご紹介します Slackは毎日使うことも多いはず、お気に入りのカラーテーマでなSlack生活を! カラーテーマを設定し…

超簡単!5分でつくるSlackBot

charlie1012.hatenablog.jp 上記の記事を活用して、「5分プログラミングSlackBotとmonolog」というタイトルで 5分でSlackBotを実装するライブコーディングLTを発表しました Monologを活用したBotは簡単ですが、応用範囲は広く、有用です 日々の数値報告やエ…

PhpStorm Tips [随時追記 最終更新:2018/07/30]

DirectoriesでExcludedを設定するとindexの対象から外せる そんなに node_modules が重要ではないプロジェクトとかだと、 こいつを設定しておくとindexもはやくなり、検索もノイズが減るので幸せ 省電力モードがある 外出先などで利用のときは設定しておくと…

APIのレスポンスのステータスコードについて悩んだ話 200 vs 404

ユーザーのお気に入りがない場合は200?404? /users/123/favorites/articles 上記のURIで示されるリソース「ID:123のユーザーがお気に入りに設定している記事」 これが0件だったときに、返すべきレスポンスは200なのか、404なのか この判断にすごく悩みました…

monologのHandlerを利用してSlackBotをつくる

概要 PHPをお使いの皆様にはおなじみのmonologを利用してSlackBotをつくる方法を紹介します monolog github.com PHPのLoggingライブラリ PHPのLoggingライブラリではほぼ一択でmonologです SlackBot SlackBotには大きく2種類あります 一方通行の投稿 投稿内…

テストコードを書かなくても、自動的にアプリをテストしてくれるFirebase Test Labが凄い!

Firebase Test Labとは テストの種類 RoboTest InstrumentationTest 設定 実際にRoboTestをやってみた なにをやってくれるのか Warning,Error,Fatalのログ シミュレート時のスクリーンショットと動画 パフォーマンスモニタリング RoboTestは有効なのか? Q&A…

Let's EncryptでSSL化するぞ!PHP + nginx の基本設定ファイルあり

https://letsencrypt.jp/letsencrypt.jp Let's EncryptのSSL証明書で個人サービスをSSL化しました 手順とnginxの基本設定をまとめます 環境 Ubuntu 16.04.2 LTS nginx version: nginx/1.10.0 (Ubuntu) クライアントをインストール sudo apt-get install lets…

PHPを用いてTwitterにつぶやく

実装したリポジトリ github.com 利用ライブラリ vlucas/phpdotenv abraham/twitteroauth 準備 https://apps.twitter.com/ Create New App から アプリケーション を 作る つぶやくには Key and Access Tokens から 下記の4つを取得する Consumer Key Consume…

PHPでGoutteを用いてスクレイピングをおこなう

概要 スクレイピングを行う場合、 よく用いれられる言語として、PythonやRuby,node.jsなどがあげられると思います PHPでも基本的ななことはできるので、スクレイピングライブラリといくつかの例を紹介します 利用ライブラリ Goutte SymfonyのCssSelector and…

Androidアプリのリリース準備作業 その2

charlie1012.hatenablog.jp 前回の内容から追記 Google Play App Signingの流れ Use Play App Signing - Play Console Help 上記には新規アプリで利用する場合には最初からupload用の鍵で署名して [Google Play アプリ署名] に同意すれば使えるように書いて…

Androidアプリのリリース準備作業

アプリを実装して、手元の端末で動いた!さあリリースだ! そうはいかない Play Storeにリリースするまでにはやらなければならないことは結構あり、そこそこハードルがある 備忘録としても、毎回の作業手順をこの記事にまとめておく ※ Playアカウントの作成…

Qiitaストック

自分が書いたQiita記事の一覧 Mithril.jsをどういう設計でサービスに導入したか - QiitaBEAR.SundayのResourceにカスタムスキームを追加する方法 - Qiita

PHPでターミナル等のCLI標準出力に色などをつけるライブラリを公開しました

packagist.org PHPでターミナル等のCLI標準出力に色などをつけるライブラリを公開しました 類似のライブラリの場合は装飾の色をStringで指定することが多かったのですが、 typoや装飾を複数したい場合の対応などに不満があり、実装&公開しました インストー…

DroidKaigiに参加してモチベーションがあがって、個人でアプリをリリースした

正確にはDroidKaigiに参加してモチベーションがあがって、個人でアプリをリリースしたけど、リジェクトされて公開できなかった話です DroidKaigi 03/09-10にDroidKaigi 2017に参加してきました droidkaigi.github.io 昨年は1日だけの参加でしたがが、今年は…

【宣伝】Android版エキサイトニュースの一覧表示順ロジックをちょっと変更してCTRを5%向上させた話

弊社のAdvent Calendarに「Android版エキサイトニュースの一覧表示順ロジックをちょっと変更してCTRを5%向上させた話」という記事を書きました qiita.comexdev.exblog.jp 概要としては アプリの記事一覧表示順を変更してCTR5%向上 機械学習などの導入は簡単…

UbuntuにMySQLをインストールするところからテーブル作成までの方法

備忘録、第二弾! コピペでUbuntuにMySQLをインストールして、テーブル作成までOK MySQLをインストール user@ubuntu:~$ sudo aptitude update user@ubuntu:~$ sudo aptitude install mysql-server //rootのパスワードが聞かれますaptitudeのupdateを忘れない…

通常SSHでVagrantにログインする方法

参考サイト VagrantインスタンスにSSHでログインする - Qiita 基本的には参考リンク先の方法できます備忘録として自分のブログにもまとめます vagrant ssh普段は上記のコマンドでsshログインができるので、通常のsshコマンドでログインすることは少ないので…

自分でwebサービスを開発,公開して分かった3つのこと

とても参考にさせていただいたスライド エンジニア向け絶対に挫折しない個人サービスの作り方先日公開したwebサービス www.simpleit.info シンプルIT勉強会リストの紹介記事はこちら charlie1012.hatenablog.jp 個人でwebサービスを開発して、公開まで行…

SlimでシンプルなIT勉強会が探せるサービスを開発してみた【シンプルIT勉強会リスト】

前回 charlie1012.hatenablog.jp slimを使って簡単なwebサービスを開発してみました シンプルIT勉強会リスト www.simpleit.info 全体像 バッチで勉強会の情報が入ったファイルを生成しておいて、slimからそれを読み込んで表示するという、作りもシンプルなも…

PHPのインストールとslimフレームワークの導入

前回 charlie1012.hatenablog.jp 前提として上記の記事の設定が済んでいると仮定してします今回は PHP,Apacheのインストール、そしてslimフレームワークのインストールを行います PHPのインストール sudo aptitude install php5バージョンを確認しておきまし…