<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[dashi296さんのフィード]]></title><description><![CDATA[Zennのdashi296さん（@dashi296）のRSSフィードです]]></description><link>https://zenn.dev/dashi296</link><image><url>https://lh3.googleusercontent.com/a-/AOh14GgWiOmenakF0vxlO8t3sjU5cxcAA3MjbLVZujItEg=s250-c</url><title>dashi296さんのフィード</title><link>https://zenn.dev/dashi296</link></image><generator>zenn.dev</generator><lastBuildDate>Sat, 13 Jun 2026 03:55:31 GMT</lastBuildDate><atom:link href="https://zenn.dev/dashi296/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[GCPのサービスアカウントのKeyfile.jsonを環境変数で管理する]]></title><description><![CDATA[サービスアカウントのkey fileはjsonファイルでダウンロードできる。
しかし、Keyfile.jsonをそのままリポジトリに配置するのは、セキュリティ的にあまり良くない。
そこで良い方法が無いかと調べていたところ、下記のdiscusstionにKeyfile.jsonをbase64でエンコードして環境変数で管理するという良さげな解決方法があったので紹介する。
https://github.com/vercel/community/discussions/219#discussioncomment-128702
まずKeyfile.jsonの中身をbase64でエンコードしたものを...]]></description><link>https://zenn.dev/dashi296/articles/02a42890f0e6bf</link><guid isPermaLink="true">https://zenn.dev/dashi296/articles/02a42890f0e6bf</guid><pubDate>Mon, 01 Aug 2022 06:10:38 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--CY2szlQv--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GCP%25E3%2581%25AE%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2593%25E3%2582%25B9%25E3%2582%25A2%25E3%2582%25AB%25E3%2582%25A6%25E3%2583%25B3%25E3%2583%2588%25E3%2581%25AEKeyfile.json%25E3%2582%2592%25E7%2592%25B0%25E5%25A2%2583%25E5%25A4%2589%25E6%2595%25B0%25E3%2581%25A7%25E7%25AE%25A1%25E7%2590%2586%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:dashi296%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dXaU9tZW5ha0YwdnhsTzh0M3NqVTVjeGNBQTNNamJMVlp1akl0RWc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>dashi296</dc:creator></item><item><title><![CDATA[Reactでカメラを使って画像を撮影するダイアログを実装してみた]]></title><description><![CDATA[スマホやタブレットのカメラを使って画像を撮るダイアログを実装してみた。
最近仕事で扱ったため、備忘録として記事に残しておく。


 要件

想定端末はAndroid, iOSのモバイル端末
Webアプリ上でカメラを起動する
撮影ボタンを押して、画像をDataURL形式で保持できる


 コンポーネント構成と役割
下記の３つのコンポーネントに分けて実装した。


App.tsx

ダイアログの開閉
撮影した画像データのstateを保持
撮影した画像を表示



WebcamDialog.tsx

フルスクリーンのダイアログの要素
画面の向きによってWebcamコンポーネントを表示・非表示を...]]></description><link>https://zenn.dev/dashi296/articles/20b80f153fa481</link><guid isPermaLink="true">https://zenn.dev/dashi296/articles/20b80f153fa481</guid><pubDate>Sat, 21 May 2022 18:03:54 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--ZutXv1pE--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:React%25E3%2581%25A7%25E3%2582%25AB%25E3%2583%25A1%25E3%2583%25A9%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E7%2594%25BB%25E5%2583%258F%25E3%2582%2592%25E6%2592%25AE%25E5%25BD%25B1%25E3%2581%2599%25E3%2582%258B%25E3%2583%2580%25E3%2582%25A4%25E3%2582%25A2%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%2592%25E5%25AE%259F%25E8%25A3%2585%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:dashi296%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dXaU9tZW5ha0YwdnhsTzh0M3NqVTVjeGNBQTNNamJMVlp1akl0RWc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>dashi296</dc:creator></item><item><title><![CDATA[SlackのチャンネルIDの取得方法]]></title><description><![CDATA[

アプリ上のチャンネル名を右クリックして、リンクをコピーする
コピーされたリンクは https://xxx.slack.com/archives/XXXXXXXXXXX のようになっており、 XXXXXXXXXXXの部分がチャンネルID

]]></description><link>https://zenn.dev/dashi296/articles/4324507780a3cf</link><guid isPermaLink="true">https://zenn.dev/dashi296/articles/4324507780a3cf</guid><pubDate>Fri, 21 May 2021 18:05:17 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--UOZmm9Ha--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Slack%25E3%2581%25AE%25E3%2583%2581%25E3%2583%25A3%25E3%2583%25B3%25E3%2583%258D%25E3%2583%25ABID%25E3%2581%25AE%25E5%258F%2596%25E5%25BE%2597%25E6%2596%25B9%25E6%25B3%2595%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:dashi296%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9saDMuZ29vZ2xldXNlcmNvbnRlbnQuY29tL2EtL0FPaDE0R2dXaU9tZW5ha0YwdnhsTzh0M3NqVTVjeGNBQTNNamJMVlp1akl0RWc9czI1MC1j%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACMTiAE" length="0" type="false"/><dc:creator>dashi296</dc:creator></item></channel></rss>