ブックマーク / zenn.dev/bs_kansai (14)

  • [K, U] extends [U, K] ← ナニコレ

    タイトルは初見時の自分の気持ちでした。内容は結構あっさりしたもので、5分あれば読めると思います。 「あーなるほどね」となった方はわざわざ読む必要がない記事っぽいです。 型の互換性チェック 一言で言ってしまえばそういうことです。KとUが互いに置き換え可能かどうかを確認しています。 これがKとUのままだと分かりづらいのですが、適当な型に置き換えてみると分かりやすいです。 type Test1 = [1, 1] extends [1, 1] ? true : false; // true type Test2 = [number, number] extends [number, number] ? true : false; // true type Test3 = [string, string] extends [string, string] ? true : false; // tru

    [K, U] extends [U, K] ← ナニコレ
    toshikish
    toshikish 2024/07/16
  • Google I/O 2024で発表されたFirebase Data ConnectをVSCodeのエミュレーターで試してみた

    執筆時点でIDXを使った記事は見かけるものの、VSCodeを使ってローカルで試している日語記事は自分はまだ見かけていないので、おそらく日語では初の記事なんじゃないかと思います。 少なくともZennでは自分が最初の1人でした。 Firebase Data Connectとは Google I/O 2024で発表されたFirebaseの新機能です。 これを使うことで、GraphQLを介して、Cloud SQL For PostgreSQLへアクセスしデータのCRUDが可能になるようです。 Getting Start 記事執筆時点では限定公開プレビュー版なので、利用するためには限定公開プレビューへの申し込みが必要です。 申し込みはFirebaseプロジェクトの管理画面上から可能です。 ただし申し込み後すぐに使えるわけではなく、Googleさんの方で手続きをして頂いたのちに利用可能となります。

    Google I/O 2024で発表されたFirebase Data ConnectをVSCodeのエミュレーターで試してみた
    toshikish
    toshikish 2024/06/29
  • <T, K extends keyof T> をちゃんと理解する

    TL;DR TypeScriptでライブラリなどを覗いているとよく見かける<T, K extends keyof T>について、問題を分解してきちんと理解する試みです。 extends この場合のextendsの役割は継承ではなく、制約です。 例えば以下のようなイメージ。 type StringOrNumber<T extends string | number> = T type A = StringOrNumber<string> type B = StringOrNumber<number> // Type 'boolean' does not satisfy the constraint 'string | number' type C = StringOrNumber<boolean> type User = { id: number; name: string; }; cons

    <T, K extends keyof T> をちゃんと理解する
    toshikish
    toshikish 2024/06/20
  • Google I/O 2024で発表されたFirebase App HostingでNext.jsのSSRを試す

    先日のGoogle I/O 2024でFirebaseの新機能が発表されました。 これを読んでいて気になったのが、App Hostingという機能です。どうやらAngularNext.jsのSSRをサポートしてくれるようになったようです。 自分はboobyというOSSコントリビュートしやすそうなリポジトリを探せるサービスを過去にリリースしています。 これのホスティング先として最初に検討していたのがFirebase Hostingでした。が、「?SSRどうやって動かすんだ?」と思いながらデプロイのための調査をしていたところ、どうやらCloudRunなどのサーバーサイドランタイムも使いながらでなければ動かせないということに行きつきました。 これまでやってきたCSRのHostingと異なり色々と手間が増えるなという結論に至り、結果初期構築が楽なVercelにデプロイすることにしました。当時の奮

    Google I/O 2024で発表されたFirebase App HostingでNext.jsのSSRを試す
    toshikish
    toshikish 2024/05/18
  • テックカンファレンスに「なんとなく」や「ただ楽しいから」で参加してない?

    この記事を書くきっかけ PHPカンファレンス小田原の参加レポートを書いたところ、武田さんからこんなフィードバックをいただきました。 こんなふうに褒めていただいて、恐縮です。 けど、これまで自分はオフラインのテックカンファレンス[1]に3回しか参加したことがありません。遠征かつ何泊かするのは今回が初めてでした。 にも関わらずこう言っていただけるような行動がきちんとできているようです。実際時間が凝縮されている感覚は自分でもあって、カンファレンスに参加すると2,3日くらいのできごとのはずなのに1週間分くらいの出来事に感じます。 では、「なんでそう感じるんだろう?」を考えてネタにしてみたら面白いんじゃないだろうか。そう思って筆を取ったのがこの記事です。自分は人に褒められたとき、「なぜ褒められたのか?」を振り返ります。詳しくはこの記事に。 そして自分のカンファレンスに対するスタンス「なぜカンファレン

    テックカンファレンスに「なんとなく」や「ただ楽しいから」で参加してない?
    toshikish
    toshikish 2024/04/18
  • Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?

    この記事のモチベーション 「php-fpmとはなにか?」を知るため、PHPのドキュメントを見ました。 しかし、ここに書いていることはまあそうなのですがあまりに焦点が絞られ過ぎてて「php-fpmとはなにか?」に対する答えとしては少し不十分な気がしていました。 例えるなら数学の問題に答えるにあたって、途中式を飛ばしたり証明の過程を飛ばしたりというような感じ。 不十分というのは、それを理解するための段階をすっ飛ばして答えだけが書かれている状態のことを指しています。 その不十分なところを自分も曖昧にしか理解できていない気がしており、いい機会なので整理しておこうというのがこの記事のモチベーションです。 そのためこの記事は、「php-fpmとはなにか?」をプロセス→Webサーバー→実行方式と順を追って説明していく構成になっています。 「細けぇこたぁいいんだ、おらぁ今すぐ答えだけ知りてぇンダ」という方

    Re: WebサーバーアーキテクチャとPHP実行方式の理解から始めるphp-fpmとはなにか?
    toshikish
    toshikish 2024/02/24
  • ソフトウェア開発者としての寿命を延ばすためのバイブル(20代時点版)

    先日、『SOFT SKILLS』というを読みました。 『SOFT SKILLS』を読んだ内容は別途、note にまとめています。 上記の記事を書いている際に、「日版の、それも 20 代のうちに読んでよかったをまとめたら面白そうだし有益なんじゃないか」と思いました。 "ソフトウェア開発者"としてのバイブルは人によって異なります。なぜなら人によって専門が違うからです。Java が専門の人にとって、C#の書籍はバイブルたり得ないでしょう。 しかし、ソフトウェア開発者の"人生"としてのバイブルであれば、皆一様に同じレベルで共感してもらえるのでは?と思いました。 ということで今回は『SOFT SKILLS』に書かれている、 キャリア セルフマーケティング 学習 生産性 資産形成 フィットネス マインドセット の順に自分が 20 代前半で読んでおいてよかったと思う。 そして、ソフトウェア開発者

    ソフトウェア開発者としての寿命を延ばすためのバイブル(20代時点版)
    toshikish
    toshikish 2023/12/22
  • 2023年に読んでよかった技術書

    おそらく 2023 年に Zenn で出す最後の記事になるかと思います。 タイトルの通り、2023 年に読んだの中で、特に素晴らしかったものをご紹介します。 とはいえあまり今年は技術書を読んだ印象がなく… というのも、特定の xx(例えば Next.js、Ktor)といった部類に関しては公式のドキュメントを読むことがほとんどになり、書籍に求めるのは公式ドキュメントに書かれていない何かや誰かの経験・ノウハウになったからだと思います。 この記事を書くにあたって今年読んだを振り返ってみても、やはり十数冊程度(それでも月に 1 冊は読んでた)のでインプット:アウトプットの割合的には良いバランスではないかと思っています。 ただ、先に述べた通り公式ドキュメントに書かれていないなにかを売っているというのはどれも当の意味で価値があるものであり、皆さんにも当に意味のある情報にお金を使っていただける

    2023年に読んでよかった技術書
    toshikish
    toshikish 2023/12/20
  • 個人開発アプリをRemix + Cloudflare D1に移行してみた

    この記事は『blessing software 夏のブログリレー企画』の5日目の記事です。 昨日はasukaさん(@a_skua)の「Flutterを用いたWeb開発の今後について考える」が公開されました。 次回はKanonさん(@samurai_se)の「私がエンジニア勉強会を作り、ブログリレーを主催するまで」です! はじめに 以前、Type Challenges Judgeという、type-challengesのオンラインジャッジを作りました。 Type Challenges Judgeは、type-challengesの問題の回答の正誤判定を行ったり、自分がどれくらい正解したかや、他の人の回答が確認できるアプリです。 このアプリをRemix + Cloudflare(Pages、D1)に移行してみた[1]ので、やったことについて書こうと思います。 技術スタックについて Type Ch

    個人開発アプリをRemix + Cloudflare D1に移行してみた
    toshikish
    toshikish 2023/08/06
  • Reactを使うならReact Developer Toolsの再レンダリング時ハイライトくらい設定してくれ

    モダンフロントエンドについて初めて書きます。お手柔らかに。 最近 ReactNext.js に入門したのですが、入門時点で一番最初に知っておきたかったことについて書きました。 「React 初心者が useState とかを学習する前にまず一番にやることはこれ」っていう内容です。。 タイトルは自分への戒めです。 TL;DR この記事を読むと React Developer Tools の簡単な使い方を知り、useState の再レンダリングについて動きがイメージできるようになると思います React Developer Tools これのこと。React を使った開発をするのであれば、必ず導入しないといけないレベルのもの。 再レンダリング時ハイライトの設定 React Developer Tools をインストールした後、F12 を押下して Component を選択この歯車を押下す

    Reactを使うならReact Developer Toolsの再レンダリング時ハイライトくらい設定してくれ
    toshikish
    toshikish 2023/05/22
  • Google Bard で試してみたこと 8 選

    TL;DR こちらのツイートで紹介されていた内容が気になったので、紹介されていた内容 8 選を翻訳するとともに、自分でも試した結果を共有しようと思います。 Google Bard はこちらから 1. 2021 年 9 月以降の情報にも応えてくれる ChatGPT は 2021 年 9 月までの情報しか教えてくれませんが、Bard は直近のニュース内容にも対応しています。 2. 音声入力 ChatGPT はテキスト入力のみですが Bard は音声入力にも対応しています。 3. Google ドキュメントまたは Gmail へ 2 クリックでエクスポート可能 例えば Gmail へエクスポートするとこんな感じです。 4. URL を渡すと Web ページの内容を要約してくれる 例えばこのページの URL を渡すとします。 結果はこんな感じです。 5. 複数の下書き案を提供してくれる 「他の回答

    Google Bard で試してみたこと 8 選
    toshikish
    toshikish 2023/05/17
  • 勉強法について考え続けた自分が行き着いた『アジャイル勉強法』というひとつの答え

    🏃 はじめに 今度、このような勉強会が開催されます。 ここで、「もし自分が"勉強法"を説明するならどうするか?」をふと考えていると、観点が2つあることに気づきました。 学習のワークフロー 学習の方法それ自体 この二つの観点から自分の勉強法について言語化してみようと思います。ただし前提として、ソフトウェアエンジニア向けというのがあります。 📚 アジャイル勉強法Zenn Book になりました!! この記事で説明している以上に詳しい内容を Zenn Book の方には書かせていただいております! この記事を読んでみて、より詳しく知りたいとなった方はぜひ Zenn Book の方もよろしくお願い致します。 1 章は無料で読めます! ⏰ 学習のワークフロー サイクルはこんな感じです。 年間の計画を立てる タスクに細分化して GitHub Project に登録していく 週単位で消化するタス

    勉強法について考え続けた自分が行き着いた『アジャイル勉強法』というひとつの答え
    toshikish
    toshikish 2023/05/07
  • GASとChatGPTを組み合わせてZennとQiitaの急上昇記事を紹介するTwitter botを作った

    はじめに idea カテゴリで投稿するか迷いましたが、一応 ChatGPT へリクエストを投げる GAS のコードも紹介しているので、tech 記事で投稿することにしました。 ほしかったもの Qiita には急上昇記事を紹介する公式アカウントが存在しています。 が、Zenn には公式のそれが存在していませんでした。 一応公式アカウントがピックアップとして紹介しているものの、おそらく手動。(そう思うのは、GW 前から更新が止まっているから) とにかく一番欲しかったものは、Zenn の人気記事を数時間間隔で教えてくれるなにかでした。 そしてどうせなら Qiita の記事も紹介する機能をつけようと思いました。 "なにか"には SlackLINE bot という選択肢があったのですが、しかし単に記事だけを紹介しつづける無機質な bot は可愛くないと思っていました。 せっかく"私"が作るのな

    GASとChatGPTを組み合わせてZennとQiitaの急上昇記事を紹介するTwitter botを作った
    toshikish
    toshikish 2023/05/06
  • LaravelのMiddlewareはどのように動いているのか?

    はじめに こちらの記事の続編で Laravel Breeze の Remember me 編を書こうとしていました。 その際にソースを追っかけていたのですが、Remember me について解説するためには、auth ミドルウェアを見る必要がありました。 そして、Middleware 見るためには Laravel の呼び出しライフサイクルから見ていく必要があったのですが、結果として Remember me よりも複雑でしたので別記事として公開することにしました。 なので、Remember me 編に入るまでにこちらの記事を読んでおくと、スムーズかと思います。 また内容が Laravel のコアな部分についてなので、つよつよ Laraveler 達に 「クソ記事」「こんな程度で技術記事書いてるとか」 みたいに叩かれそうで怯えながら公開したのですが、Twitter でびっくりするくらい沢山の良

    LaravelのMiddlewareはどのように動いているのか?
    toshikish
    toshikish 2023/04/28
  • 1