サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
GPT-4o
www.keisuke69.net
はじめに まず、大事なこと イベント開催告知まで 開催告知初日 2日目 3日目以降 企画に関して 認知に関して 最後に 本記事の内容を以下のイベントで話します。YouTube Liveでオンラインです。 【天下一武道会裏話】3000人集客のためにやったことなど話します - connpass はじめに 去る2024年2月1日に『第1回 AWSコスト削減天下一武道会』という勉強会を開催しました。 このイベントはわたくし、西谷が個人で企画して運営したイベントですが最終的な申し込み数は3692人とかなりの規模になります。 これがどのくらいの数かと言うと昨年Connpassで募集されたイベントで1番のものが日本ディープラーニング協会主催のイベントでちょうどGPT4が発表されて大注目を浴びたタイミングで開催されたものであり、4900人以上とすごい数になっています。さすがにこれには及ばず、2番目に多かっ
昨日、2024年2月1日に自身が企画・運営をした『第一回AWSコスト削減天下一武道会』というイベントを終えました。申し込み人数としては最終的には3692人の人がConnpass上で申し込んでくれました。 この数は個人が企画して開催するIT関連の勉強会としては類を見ない規模だったのではないかと自負しております。 もちろんテーマとか色んな条件が重なってのこの数字ではありますが、集客のために意図的にやったことなどもありました。それらが予想以上の効果を出したわけですがその辺の話に興味のある方も多そうだったのでこちらについては別途イベントを開催して話すことにしました。 no1.connpass.com こちらは2月5日の12時からオンラインのみで開催します。 イベントの振り返りですがまずは素晴らしい発表をしていただいた登壇者の方々にお礼を言いたいです。ありがとうございます。 発表内容もさることながら
はじめに すでに2024年も10日目が過ぎて、もちろん仕事始めもしているのですが昨年中に間に合わなかった振り返りとかをしていこうかなと思います。 前提 自分は株式会社Singular Perturbations(以下SP)というスタートアップで取締役CTOをしている。この会社は『犯罪予測』というテクノロジーを研究開発し、それをもとにしたソリューションをプロダクトとして提供している。 また、これとは別に妻と一緒に会社をやっている。とはいえ自分はこの会社のオーナーではあるが代表取締役社長は妻となっている。自分は役員ですらない。 2023年を一言で言うと 『停滞』の一言につきる。といってもこれはあくまでもエンジニアとしての停滞という意味。 どういうことかというと2023年はプロダクトの開発ということ自体をあまりしなかったのもあるし、仕事としてソフトウェアエンジニアリングの観点で新しいこともあまり
毎年恒例のやつを今年も書きます。画像はBingが生成した謎画像です。カメラ買いすぎやろ。 はじめに 良かったもの Anker 733 Power Bank (GaNPrime PowerCore 65W) (10000mAh 30W出力モバイルバッテリー搭載 65W出力USB充電器) lapset 俯瞰撮影 スマホスタンド ファンケル (FANCL) 睡眠 & 疲労感ケア Apple Pencil(第2世代) Bose Companion 2 Series III multimedia speaker switchドック ゴリラシート-EXECUTIVE- Hagibis 「国内正规品」 多機能airpods掃除道具 LEDライト目に優しい led ライト LED読書ライト マグネット付き モバイル液晶モニター プロメテウスモニター 14インチ miyoshi co.,ltd MCO 折り
昨年までは毎月買った本やマンガとそれらに対する一言コメントをブログで書いていたんだけど今年はそれをやらずに来てしまったので今年かった本で良かったものをいくつかピックアップして紹介する。 実際にはもっと数多く買ってるし、買っただけで読んでいないものも多い。2023年に買った本はマンガも合わせて合計で366冊、そのうちマンガ以外は151冊だった。 なお、対象は自分で買った書籍だけ。つまり献本とかでいただいたものはこの対象に加えていません。 ちなみにいずれの本もすべて電子書籍で購入している。全体ではAmazonのKindleを中心に一部オライリーのeBookなんだけど、選んだものはすべてKindleで買ったものだった。 というわけで紹介していく。 AWSで実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか フロントエンド開発のためのセキュリティ入門 知
Remote Containerで実行している環境間で通信をする場合についてのメモ。 状況としては開発中のプロジェクトAとプロジェクトBがあって、それぞれ同じマシン上でRemote Containersを使って開発をしている状況。 プロジェクトAがREST APIを提供するプロジェクトでコンテナ内でローカル開発サーバが起動していて、仮にhttp://localhost:3000/で待ち受けてるとしよう。 その状態でプロジェクトBからこのAPIをコールしたい。 まず、普通にlocalhostでアクセスするのはもちろんダメ。 ではコンテナに割り振られてるIPでのアクセスはどうかを試してみる。コンテナに割り振られてるIPアドレスはdocker inspectで確認できる。 docker psで確認したいコンテナのIDを確認してdocker inspect <コンテナID>を実行して出力結果のIP
はじめに 6月21日(水)に『俺たちの本当にやりたかったDevDay(俺たちのDevDay)』を無事に開催できたので記録がてら簡単に振り返っていきます。読み物なので長いです。 このイベントが行われることになった経緯とかはこちら。 俺んとこ 来ないか?『俺たちの本当にやりたかったDevDay』を開催することにした - Sweet Escape 当日まで 当日までのあれこれを時系列で。 まず、このイベントをやるって決めて会場も決まってない状態でConnpassでイベント作って公開したのが4月24日。ちなみにこの会場決まってない状態でイベント作ったことが後々面倒なことになるのだけどそれは後ほど。ありがたいことに翌日にはクラスメソッド株式会社さんに会場提供いただけることが決まった。 その後、本家のCFP結果が決まるまで特に進展はなく5月1日に本家のCFPの結果が発表されたので早速俺たちのDevDa
というわけでやります。 connpass.com まだ詳細は決まってないけど良かったら来てね。 今回はこのイベントにまつわる話です。ダラダラと書いたので長いです。 はじめに 2023年の6月21日から22日にAWSの開発者向けイベントであるAWS DevDayが開催される。このAWS DevDayではCall for Proposal(CFP)という形でセッションが公募されている。 細かいルールとかはこちらを見ていただくとして、採択されるかどうかには一般の人からのリアクションの数も参考にするという。 さて、転職してからはめっぽう外部で登壇するってことは減っている。 これは今の僕は有限である時間の割り当て先としてそういった活動ではなくプロダクト開発に直接的に関係することにあてたいからだ。 とはいいつつもたまにはそういうこともして世の中にアピールしておかないとなってことで僕もCFPを出した。以
GoogleのPlay StoreでAndroidアプリを配信するときに最近だとapkファイルをアップロードするのではなくてaabファイルをアップロードする。 そしてこのアプリへの署名はPlay Store側でやってくれるけれども、その署名された証明書のフィンガープリントを別の何かに登録するケースがある。例えばFirebase AuthenticationでGoogleサインインを実装したい場合とか。 その署名自体はGoogle Play Console上で確認できる。リリースの『アプリの完全性』にある『アプリの署名』タブに表示されている。 今回はそのフィンガープリントを実際にデバイスへPlay Storeからインストールされたapkから確認したい場合の手順。 基本的には実機をPCにつないだ上での話ですが、そのあたりは割愛。 まずはデバイスにadbで接続して取り出したいapkのパスを見つけ
2022年も最終日ということでこのブログで今年1年どんな記事が見られたのか振り返ってみることとします。 もともとブログは2つあって、このブログは技術系、もう一個はアウトドアや買い物関連、ポエミーなものはnoteで書いていたのですが面倒になってこのサイトに一本化したので今となってはごった煮となっています。 今年はこのブログを含めて53本の投稿をしました。2021年が50本なのでちょっとだけ増えましたね。VIVA右肩上がり! というわけで2022年だけのランキング行ってみます。なお、集計期間は2022年1月1日から2022年12月31日の9時までです。 意外だったのはPVとはてぶの数は必ずしも比例しないということです。例えば同じ2022年に投稿したものでも5位の記事より7位の記事のほうが圧倒的にはてぶの数は多いんです。10倍以上の差があります。 1位〜3位 1位 【超重要な追記あり】Docke
はじめに 先日、エンジニア界隈では有名なポッドキャストであるfukabori.fmに出させていただきまして、そのときのトピックがサーバーレスでした。 ポッドキャストはこちらで聞けますのでぜひどうぞ。 fukabori.fm そこでもいろいろお話ししたのですが改めて話せなかったことなども含めて書こうかなと。つまり、ポエムです。散らかった文章な上に少し長めなのでお時間のある方だけどうぞ。 なお、サーバーレスの黎明期の話とかそういう思い出話は以前に書いたこちらの投稿があります。 サーバーレスと僕のこれまでとこれから - Sweet Escape 今回は思い出話ではなく、サーバーレスに個人として魅力を感じ、仕事としてその良さを広めたり、実装のお手伝いをし続けてきた自分がそういった仕事から離れた2022年現在どういう風に向き合ってるかについてのポエムです。 前提 現在の自分は株式会社Singular
メモです。でも結論からするとうまく行かずに挫折。この投稿はその失敗の記録である。 はじめに タイトルどおりなんですが、Mapboxにはカーナビみたいなturn by turnのナビゲーションを実現するためのNavigation SDKというものが存在しています。でもiOSとAndroid向けにしかありません。 今回はReact Nativeでナビゲーションを実装してみたかったのでいろいろと探してみるとやりたいことをやってくれているであろうOSSを発見しました。 github.com 個人の努力が公開されているのかと思いきやHOMEEというUSはシカゴにある企業のリポジトリでした。 最終的にこれを使うかはわからないのですがひとまず試してみることとします。 導入 パッケージのインストール自体はyarnで簡単にできるのですが、それを使えるようにするための作業がiOSとAndroidそれぞれで必要
SQLに関するメモ。前提としてPostgreSQLを使っています。 以下のようなTimestamp型で日時の情報を持つテーブルがあるとする。 id: integer timestamp: timestamp with time zone 1 2022-01-01 00:00:00+00 2 2022-02-01 00:00:00+00 3 2022-10-01 00:00:00+00 4 2022-10-01 00:00:00+00 5 2022-12-01 00:00:00+00 で、月ごとの件数を集計をしたい場合、何も考えずにこんなSQLを書く。 SELECT to_char(timestamp, 'YYYYMM') AS MONTH, count(id) FROM table1 GROUP BY MONTH ORDER BY MONTH; そうすると得られるのはこんな結果。 mont
はじめに 近頃Zoomとかで話をするときに背景について聞かれることが増えてきたので過去に別ブログに書いた記事をアップデートしつつこちらのブログに持ってきました。背景と言ってもバーチャル背景ではなくリアル背景なのですが、その話です。 時期的には2020年くらいの話です。 我が家っていうか自室です。もともと7畳ほどの部屋を自室として使っていたのですが、まあなんの変哲もない部屋だったんですね。普通に白い壁紙が貼られてる感じのよくある普通の部屋です。 リビングは一部の壁面をエコカラットにしていてとてもいい感じなんですが。 なので以前から部屋の雰囲気を変えたいなーと思っていたわけです。そんな中で新型コロナウィルスが流行してリモート会議・ビデオ会議が多くなってきてました。Zoomのようにバーチャル背景がある場合はいいんですが、当時在籍していた会社ではその機能がないミーティングツールを使うことが多かった
このブログはクラメソの方がこういうの書いていたので試しに書いてみた感じです。 AWS DevDay Japan 2022 に「AWS CDKでECS on FargateのCI/CDを実現する際の理想と現実 」というタイトルで登壇しました #AWSDevDay | DevelopersIO 資料 speakerdeck.com 発表理由とか AWSのDevDayはCFPを募集していることから応募した結果、無事に採択されて昨年に引き続きセッションをする機会をいただきました。実は2個出したんだけどもう一方はダメでした。 FirebaseのCloud FirestoreをやめてAWS上で構築したAPIへ移行するという話なんですが実は以前にも検討段階でこのブログで書いた内容です。今回はタイミング的に実際に移行した後ということで前回のブログの内容をアップデートするような内容となっています。 以前のブ
今作ってるAPIでは初めてNest.jsを使ってるんだけど、認可処理をどうしようかと考えたのでそのメモ。 ちなみにこの投稿では簡単な定義として認証(Authentication)とは利用者の本人確認、つまり通信の相手が誰であるかの確認とする。一方、認可(Authorization)とは利用者がシステム内、サービス内で実行できる操作の権限とする。 前提 TypeScript Nest.js Prisma Firebase Authentication 認証自体はFirebase Authenticationを使っているので、認可をどうするかが話の主眼。 なお、前提として認証はクライアントサイドでFirebase Authenticationが認証時に発行するJWTのトークンを取得してAuthorizationヘッダにBearerトークンとして渡すよくあるやつで対応しますが、ここに関しては本投
現在、Kindle本ストア10周年キャンペーンで最大50%OFFという大規模セールが進行中です。明日(10/25)までです。 amzn.to というわけでその中から自分が読んだ本、持ってる本でいいんじゃないのっていうおすすめ書籍をざっと紹介します。 1冊ですべて身につくHTML & CSSとWebデザイン入門講座 1冊ですべて身につくHTML & CSSとWebデザイン入門講座 作者:ManaSBクリエイティブAmazon 僕みたいなHTMLとCSSに苦手意識のある人がなんとなく読むのにとてもいい とはいえ前半は入門編なので実際には4章以降の定番レイアウトをどう実装するかってところくらい AWSコンテナ設計・構築[本格]入門 AWSコンテナ設計・構築[本格]入門 作者:新井 雅也,馬勝 淳史SBクリエイティブAmazon 佐々木さん他NRIの知人たちによる書籍 AWS上でのコンテナに関する
今回はバックエンドAPIでページネーションをどうやるかについての話なので、よくある無限スクロールUIのようなフロントエンド側の実装に関する話はしない。あくまでもAPI、もっと言えばRESTfulなAPIのリクエスト・レスポンスにおけるページネーションの話。 本気で深く考えるというよりざっくり検討したときの話です。 はじめに REST APIを実装するにあたってリスト系のAPIを提供する場合に必須といっても過言ではないのがページネーション。大量のリソースをレスポンスする場合にそれらを一気に返してしまうことは応答速度、転送量、クライアントサイドでの扱いづらさなどなどに繋がるので必須と言える。 最近、新たなAPIを開発するにあたってページネーションをする必要があったこともあり、今回はこのページネーションをどうやって提供するか整理して改めて検討してみた。 前提 TypeScript Nest.js
いつもAmazonで見つけて気になった本とか、自分がよかった本、セールになってる本をちょこちょことTwitterとかで紹介してるんだけど、2022年9月30日(金) 00時00分 ~2022年10月13日(木) 23時59分の期間で開催されている『【最大50%OFF】Kindle本読書の秋キャンペーン』のコンピュータ・ITカテゴリの書籍が定番本が多かったのでまとめて紹介します。 ちなみにいずれも自分が過去に実際に買って読んだ本ばかりだけど、正直なところ昔読んだやつは細かい内容を覚えていないものもある。 キャンペーン自体は技術書以外もいっぱい対象になっています。むしろ自分は技術書以外のおすすめを教えてほしい。 amzn.to 定番になってる本はこういう機会にとりあえず買っておくと読みたくなったときに良い。それ以外にも自分は今すぐには必要ないけど近い将来役に立ちそうだなと思えるようなものはこう
備忘録です。 最近、React Nativeで作ったアプリをBitriseでビルドするのを試しています。 Bitrise - Mobile Continuous Integration and Delivery このBitriseというプラットフォームはとても使いやすくて、ビルドのためのワークフローの定義も直感的にできました。 ところがAndroidのビルドに失敗してしまうんですよね。以下のような感じでOutOfMemoryErrorが出ています。 > Task :app:mergeExtDexDebug FAILED D8: java.lang.OutOfMemoryError: Java heap space com.android.builder.dexing.DexArchiveMergerException: Error while merging dex archives: a
メモです。 最近、GraphQLを使い始めた。AWSのAppSyncを使っている。 GraphQLではスキーマの情報をschema.graphqlとかschema.jsonとかってファイルで定義する。AppSyncをマネージメントコンソール上でポチポチと作った場合もこのファイルがダウンロードできる。 さて、実際にGraphQLを使ったアプリはTypeScriptで書いている。TypeScriptと言えば型だ。というわけでGraphQLのスキーマ情報からTypeScriptの型を生成したいんだけどAWSのガイドとかだとこのあたりAmplifyを使ったガイドしかない。そしてAmplifyはいろんな理由でできれば使いたくない。 実際にGraphQLへのクエリとかもAmplifyは使っていない。なのに型情報の生成のためだけにAmplify使うの嫌だなーと思ってTwitterでブツブツ言ってたらこん
既存のデータベースをPrismaでマイグレーションできるようにしたくなった。理由はいろいろあるがやはりローカル環境 → 開発環境 → ステージング環境 → 本番環境へとDBの定義を反映していくのが手作業はさすがにないなと思えてきたからだ。もちろん実際には毎回SQLを直接手で入力なんてことはないだろうけど。 あとは他の人が開発するのにDBのセットアップをする際にも楽だ。 というわけで導入しようとしたのだがそれなりに悩んだりしたのでメモを残しておく。 前提 すでに存在しているDBをPrismaのmigrationツール管理下におく これまでは直接DBにDDL文を実行して定義などしていた DBの定義はprisma db pullを実行してsyncしていた やっていく まずは既存のDBの定義とPrismaのモデルを同期します。普段からやってるものの念の為。 prisma db pull 同期したら
最初に断っておきますが、僕自身はOSSのライセンスを理解しようとし、尊重していますが、ライセンスそのものの詳細に詳しいわけではないのでもしかしたら間違っていることがあるかもしれません。その際は優しく指摘してください。優しくね。 昨今、アプリケーションを開発するにはWebであれモバイルであれ、オープンソース(OSS)のライブラリを利用することが多いかと思います。 その際に問題になってくるのが各ライブラリのライセンス表記でして、多くの場合はそのライブラリを利用して開発したものに関して著作権表記等を求められるライセンスで配布されていることが多いと思います。比較的制限のゆるいとされているMITライセンスなんかもそうですね。 WebなんかだとJSのソース見れるのでどこかに記載されていれば問題ないのかと思います。一方でiOSやAndroidといったいわゆるネイティブアプリというのはそうはいかないよねっ
FirebaseのFirestoreをやめることにしたので雑なメモを残しておく。なお、まだ走り始めたばかりなので、内容には間違いや考慮不足も多数含まれる可能性があるので読む人はその点注意を。あと、あくまでも雑なメモなので細かいところは書いていない。 なぜ脱Firestoreするのか? なぜGraphQLではなくREST APIなのか? 移行にあたって検討したこと、決め事 ドキュメントIDをどう扱うか サブコレクションをどう扱うか 配列やマップといったフィールドのタイプをどう扱うか 追記: Mapの配列をどうするか Firebase Authenticationとセキュリティルールで実現しているセキュリティ機能をどうするか では実際にどんなテーブル設計にするのか 次にやること なぜ脱Firestoreするのか? まず、脱Firestoreする理由は ユースケースとしてFirestoreでは対
最近、一意な識別子について検討することがあったのでその検討メモ。 一意な識別子とは つまり、重複しない、ユニークな識別子(Identifier, 以下id)のこと。ここではRDBのテーブルにおける主キーとして使うことを想定かつ前提としている。したがって、主キーの要件であるユニーク性を持ったidをどうやって生成していくか。 そんなのDBの連番でいいじゃんて話もあるがここではその話はせず、あくまでも一意な識別子をどう生成するかの話に絞る。 選択肢 一番有名だと思われるUUIDを筆頭にいくつかの選択肢がある。 UUID ULID CUID Nano ID 他にもTwitter発のSnowflakeとか今はDeprecatedになってるshortidなどがあるが、キリがないのでここでは上記の4種類だけで簡単に比較した。また、実際にはUUIDはバージョンによってSpecが異なるがここではバージョン4
折りたたみ自転車のDAHON K3を購入したのは以前のブログでもお伝えしたとおり。 このDAHON K3、折りたたみ自転車の割によく走る。思ってたより全然走れる感じなので買ってからよく乗ってる。 まさに徒歩と車の中間くらいで行動範囲が広がったし運動にもなっていい。 DAHON ダホン K3 14インチ (KAA433) 折りたたみ自転車 3段変速 アルミフレーム ミニベロ 軽量 コンパクト 小径車 通勤 通学 サイクリング (ホワイト×ブラック) [並行輸入品] ノーブランド品 Amazon で、ちょっと調べてみると結構カスタムできるみたいなので色々調べたりしつつ楽しむように。 というわけで、ここまでのカスタムだったりつけたパーツだったりをまとめてご紹介。 といっても僕はガチの自転車好きってわけでもなく、知識もあまりないので割と定番の内容ばかりになっている。 ## センタースタンド DAH
はじめに Twitter等で僕のことを知ってる人はご存知の人も多いのですが、実は今年の4月から小3の娘とYouTubeのチャンネルをやってます。 本当ならチャンネル名とかをここで公開して宣伝したいところなんですが、いろんな考えから完全に名前とか顔とかも含めて僕とのつながりも一切出さない感じでやってます。 動画のジャンルとしてはゲーム実況が中心です。たまに娘自体の日常的な内容もあげてます。 さて、演者としては娘がメインでやってるわけですが実際のところ動画の撮影や編集とかは僕がやってるんですね。そしてゲーム実況、かつVTubeってことで全くそっち方面の知見がなかったのですがなんとか固まってきたので同じような人の参考になるかもということで公開しておきます。きっと今後もアップデートされていくとは思うんですがまずは今時点の環境ということで。 はじめに メイン動画 ゲーム実況の撮影環境 構成 キャプチ
はじめに マルチパートアップロードをするには さっそく実装する まとめ ソースコード はじめに こちらの投稿の続きにあたります。 React NativeでAWSのS3にファイルアップロードする処理を実装するにあたり、AWS Amplifyを使わずにAWS SDKを使って実装しようというものです。理由などは前回の記事に書いているのでそちらを参照してください。 前回は普通にアップロードするところまでは簡単にできるっていうところまでやったので、今回は本命のマルチパートアップロードを実装してみます。 マルチパートアップロードをするには AWS SDKを使ってマルチパートアップロードをするには、1. マルチパートアップロードの開始、 2. 各パートのアップロード、3. マルチパートアップロードの完了、という大きくわけて3つのステップが必要です。それぞれJSのAWS SDKだと、CreateMult
先月に引き続きAudibleを活用しています。問題はやはり聞くのと読むのでは速度に差があって聞くほうが遅いということ。というわけでAudibleは2.5倍速で聞いてます。これが限界。 今月は仕事で認証認可について考える機会が多かったのでそれ関連の本が多め。 書籍 Web APIの設計 自然な英語で話せる・書ける動詞120 プロを目指す人のためのTypeScript入門 マンガでわかるJavaScriptのPromise はじめての設計をやり抜くための本 まつもとゆきひろ 言語のしくみ 哲学人生問答 雰囲気で使わずきちんと理解する!整理してOAuth2.0を使うためのチュートリアルガイド OAuth、OAuth認証、OpenID Connectの違いを整理して理解できる本 Web API: The Good Parts FACTFULNESS(ファクトフルネス)10の思い込みを乗り越え、デー
次のページ
このページを最初にブックマークしてみませんか?
『Sweet Escape』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く