<?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[harachanさんのフィード]]></title><description><![CDATA[Zennのharachanさん（@harachan）のRSSフィードです]]></description><link>https://zenn.dev/harachan</link><image><url>https://storage.googleapis.com/zenn-user-upload/avatar/8485cd2a72.jpeg</url><title>harachanさんのフィード</title><link>https://zenn.dev/harachan</link></image><generator>zenn.dev</generator><lastBuildDate>Wed, 08 Apr 2026 00:30:21 GMT</lastBuildDate><atom:link href="https://zenn.dev/harachan/feed" rel="self" type="application/rss+xml"/><language><![CDATA[ja]]></language><item><title><![CDATA[トランザクションの実装について考える]]></title><description><![CDATA[この記事はGMOペパボ エンジニア Advent Calendar 2025 - Adventar12日目の記事です。
昨日はてつをさんの「Upstash Redisを触ってみた」でした。
REST APIでアクセスできる、TCP接続が使えない環境でも利用可能なサーバーレス向けRedisサービスの紹介記事でグローバルレプリケーションもできることやダッシュボードが見やすくセットアップも簡単という使ってみたくなる紹介でした。
12日目はトランザクションの実装パターンのお話しです。
!

 忙しい人へのまとめ

複数サービス／複数DB／外部APIをまたぐ処理では、単一DBのACIDトランザクシ...]]></description><link>https://zenn.dev/pepabo/articles/2025-12-12_saga-pattern-distributed-transactions</link><guid isPermaLink="true">https://zenn.dev/pepabo/articles/2025-12-12_saga-pattern-distributed-transactions</guid><pubDate>Fri, 12 Dec 2025 06:00:01 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--cw9-OwBw--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2583%2588%25E3%2583%25A9%25E3%2583%25B3%25E3%2582%25B6%25E3%2582%25AF%25E3%2582%25B7%25E3%2583%25A7%25E3%2583%25B3%25E3%2581%25AE%25E5%25AE%259F%25E8%25A3%2585%25E3%2581%25AB%25E3%2581%25A4%25E3%2581%2584%25E3%2581%25A6%25E8%2580%2583%25E3%2581%2588%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_34:harachan%2Cx_220%2Cy_108/bo_3px_solid_rgb:d6e3ed%2Cg_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzA0ZTQxODhhYTMuanBlZw==%2Cr_20%2Cw_90%2Cx_92%2Cy_102/co_rgb:6e7b85%2Cg_south_west%2Cl_text:notosansjp-medium.otf_30:GMO%25E3%2583%259A%25E3%2583%2591%25E3%2583%259C%25E6%25A0%25AA%25E5%25BC%258F%25E4%25BC%259A%25E7%25A4%25BE%2Cx_220%2Cy_160/bo_4px_solid_white%2Cg_south_west%2Ch_50%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_50%2Cx_139%2Cy_84/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[ClaudeカスタムコマンドでPR作業が爆速になった話]]></title><description><![CDATA[
 忙しい人へのまとめ

ClaudeのカスタムコマンドでPRのサマリーとセルフレビューが自動生成できるように
自分で確認すべきポイントが一目で分かり、ミスや漏れの早期発見につながった
テストレビューの自動化で、テスト品質向上とレビュー工数の削減を実感


 なぜカスタムコマンドを作ったのか
普段の開発では、PRを出す前に変更点をまとめたり、自分でレビューしたり、テストの確認を行ったりと、意外と手間がかかります。特に大きな変更では、内容を丁寧に整理するだけでも結構な時間がかかっていました。そこで、LLMにお願いしてこれらの作業を自動化できないかと考え、Claude用のカスタムコマンドを作...]]></description><link>https://zenn.dev/harachan/articles/2025-06-11_claude-custom-command-productivity</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/2025-06-11_claude-custom-command-productivity</guid><pubDate>Wed, 02 Jul 2025 01:00:00 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--6aHlj6SE--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Claude%25E3%2582%25AB%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%25A0%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E3%2581%25A7PR%25E4%25BD%259C%25E6%25A5%25AD%25E3%2581%258C%25E7%2588%2586%25E9%2580%259F%25E3%2581%25AB%25E3%2581%25AA%25E3%2581%25A3%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[GitHub DiscussionをCLIで管理できるgh-discussionを作りました！]]></title><description><![CDATA[
 忙しい人へのまとめ
GitHub DiscussionをCLIで効率的に管理できるGitHub CLI拡張機能「gh-discussion」を作成しました！

GitHub Discussionをコマンドラインから一覧表示・詳細表示可能
カテゴリー別フィルタリングやコメント表示にも対応
ブラウザを開かずにDiscussionの全ての情報を確認できる
GitHub CLIの標準機能として自然に統合される

https://github.com/harakeishi/gh-discussion

 動作の様子




 GitHub Discussionって何？
GitHub Discu...]]></description><link>https://zenn.dev/harachan/articles/2025-06-10_github-discussion-cli-extension</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/2025-06-10_github-discussion-cli-extension</guid><pubDate>Tue, 10 Jun 2025 14:20:00 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--WWV4TAlZ--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GitHub%2520Discussion%25E3%2582%2592CLI%25E3%2581%25A7%25E7%25AE%25A1%25E7%2590%2586%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258Bgh-discussion%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258A%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%25EF%25BC%2581%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[Docker Composeのポート衝突を自動解決するgoposeを作った話]]></title><description><![CDATA[
 忙しい人へのまとめ


gopose は Docker Compose のポートバインディング衝突を自動で検出し解決する CLI ツールです

docker-compose.yml を直接書き換えず docker-compose.override.yml を生成して衝突を回避します
並列処理による高速スキャンや詳細ログ出力など便利機能が盛りだくさん
AI と連携して並列開発を行う際 (git worktree 等) のポート衝突をスマートに回避できます


 goposeの特徴

✅ 非破壊的: 元の docker-compose.yml を変更しません
✅ 自動検出: システムの使...]]></description><link>https://zenn.dev/harachan/articles/2025-06-09_gopose-intro</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/2025-06-09_gopose-intro</guid><pubDate>Sun, 08 Jun 2025 15:00:00 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--9fHwxufb--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Docker%2520Compose%25E3%2581%25AE%25E3%2583%259D%25E3%2583%25BC%25E3%2583%2588%25E8%25A1%259D%25E7%25AA%2581%25E3%2582%2592%25E8%2587%25AA%25E5%258B%2595%25E8%25A7%25A3%25E6%25B1%25BA%25E3%2581%2599%25E3%2582%258Bgopose%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[sqlcの未使用クエリを削除するコマンドを作った話]]></title><description><![CDATA[このブログは GMOペパボ エンジニア Advent Calendar 2024 🎄 の22日目の記事です。
21日目はTsuyoshi Mikamiさんの「go-milterの話」でした。
https://rsym1290.hatenablog.jp/entry/2024/12/21/092052
MTA（Mail Transfer Agent）に対してメールフィルタリングの機能を提供するmilterをGoで実装できるパッケージの紹介でした！
メールに対して色々処理ができ、スパム検知など色々できそうですね！
!

 忙しい人へのまとめ
sqlcの自動生成元となるクエリのうち、コード内で...]]></description><link>https://zenn.dev/harachan/articles/882a4612ff3905</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/882a4612ff3905</guid><pubDate>Sun, 22 Dec 2024 16:20:29 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--f-Likxpw--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:sqlc%25E3%2581%25AE%25E6%259C%25AA%25E4%25BD%25BF%25E7%2594%25A8%25E3%2582%25AF%25E3%2582%25A8%25E3%2583%25AA%25E3%2582%2592%25E5%2589%258A%25E9%2599%25A4%25E3%2581%2599%25E3%2582%258B%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E3%2582%2592%25E4%25BD%259C%25E3%2581%25A3%25E3%2581%259F%25E8%25A9%25B1%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[Goでinterface{}からstringに変換するのがこんなに泥臭いはずがない]]></title><description><![CDATA[
 interface{}からstringに変換
下記のように、interface{}からstringに変換するのは多々見る記述ですよね。
value := interface{}("test")
value.(string)

 こういったときどうします？
では、下記のようなmapを同様に要素をすべてstringにしたいときはどうしますか？
values := map[string]interface{}{
		"int":    int(10),
		"float":  float64(10),
		"string": string("hello"),
		"byte":   []b...]]></description><link>https://zenn.dev/harachan/articles/ddea0e7fd3b08f</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/ddea0e7fd3b08f</guid><pubDate>Thu, 23 Feb 2023 07:28:51 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--Kp2XiTF4--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Go%25E3%2581%25A7interface%257B%257D%25E3%2581%258B%25E3%2582%2589string%25E3%2581%25AB%25E5%25A4%2589%25E6%258F%259B%25E3%2581%2599%25E3%2582%258B%25E3%2581%25AE%25E3%2581%258C%25E3%2581%2593%25E3%2582%2593%25E3%2581%25AA%25E3%2581%25AB%25E6%25B3%25A5%25E8%2587%25AD%25E3%2581%2584%25E3%2581%25AF%25E3%2581%259A%25E3%2581%258C%25E3%2581%25AA%25E3%2581%2584%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[godocの記法まとめ]]></title><description><![CDATA[godocの記法を実例付きでまとめてみました。

 Overview
// godocの記法をまとめます
package godocnosusume
上記のように、packageの上に文章を書くとdocのOverviewに表示されます。



 コード
/*
コード:

  func hoge(){
      fmt.Println("hogehoge")
  }
*/
func (p *Person) SetName(name string) {
	p.Name = name
}
上記のように１行あけて、インデントするとコードブロックのようになります。



 型へのコメント
/*
...]]></description><link>https://zenn.dev/harachan/articles/db3149c1a19c32</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/db3149c1a19c32</guid><pubDate>Fri, 20 Jan 2023 12:49:48 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--dQ9T7Lq3--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:godoc%25E3%2581%25AE%25E8%25A8%2598%25E6%25B3%2595%25E3%2581%25BE%25E3%2581%25A8%25E3%2582%2581%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[機械学習でFXの予測をしてみる]]></title><description><![CDATA[!
この記事の内容を使用して、いかなる損害を被ったとしても責任を負えないので、実際に試す場合は自己責任でお願いします。
また、機械学習にわかが書いている記事なので温かい目で見ていただけると幸いです。

この記事は、🎄GMOペパボエンジニア Advent Calendar 2022の18日目の記事です。
昨日は、june29さんの「ソフトウェアエンジニアが書いた文章をレビューするときに考えていること」でした。
https://adventar.org/calendars/7784
!
時間のない人のためのまとめ
この記事では、FXの日足過去データを使って翌日の終値を機械学習で予測をします。...]]></description><link>https://zenn.dev/harachan/articles/ff965f248b081c</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/ff965f248b081c</guid><pubDate>Sun, 18 Dec 2022 03:00:00 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--KBdJLKKn--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E6%25A9%259F%25E6%25A2%25B0%25E5%25AD%25A6%25E7%25BF%2592%25E3%2581%25A7FX%25E3%2581%25AE%25E4%25BA%2588%25E6%25B8%25AC%25E3%2582%2592%25E3%2581%2597%25E3%2581%25A6%25E3%2581%25BF%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[Githubで管理しているDBスキーマを見るTUIツールを作りました]]></title><description><![CDATA[
 忙しい人のまとめ
Githubに保管されているtblsで生成されたスキーマをターミナル上で見れるTUIツールを作成しました。
https://github.com/harakeishi/trv
↓動作の様子

主にできることは下記です。

複数DBスキーマへの切り替え
テーブル名orカラム名によるフィルタリング
テーブルの詳細表示
カラムの詳細表示

インストールは、ここからビルドされたものを持ってきて自分で配置するか、 下記を使用してください。
go install github.com/harakeishi/trv@latest
インストール後、trv とターミナルで打てば、初回...]]></description><link>https://zenn.dev/harachan/articles/9dc6b1e7e8e22d</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/9dc6b1e7e8e22d</guid><pubDate>Sun, 30 Oct 2022 03:45:25 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--DWf0j4Qf--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Github%25E3%2581%25A7%25E7%25AE%25A1%25E7%2590%2586%25E3%2581%2597%25E3%2581%25A6%25E3%2581%2584%25E3%2582%258BDB%25E3%2582%25B9%25E3%2582%25AD%25E3%2583%25BC%25E3%2583%259E%25E3%2582%2592%25E8%25A6%258B%25E3%2582%258BTUI%25E3%2583%2584%25E3%2583%25BC%25E3%2583%25AB%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258A%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[Go製CUIツールのバージョン表示に便利なパッケージを作りました]]></title><description><![CDATA[
 どういったものを作ったのか
今回作ったのは、curverというgoのパッケージです。
https://github.com/harakeishi/curver
curverは、goで作成されたCUIツールのバージョンの表示を簡単にしてくれるものです。
使い方は簡単で、以下のようにgo getしてimportすれば準備OKです。

shell
$ go get github.com/harakeishi/curver@latest


main.go
package main

import (
	"github.com/harakeishi/curver"
)

func main ...]]></description><link>https://zenn.dev/harachan/articles/7a688eeefad905</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/7a688eeefad905</guid><pubDate>Sat, 26 Feb 2022 10:08:03 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--yj_7dMzA--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:Go%25E8%25A3%25BDCUI%25E3%2583%2584%25E3%2583%25BC%25E3%2583%25AB%25E3%2581%25AE%25E3%2583%2590%25E3%2583%25BC%25E3%2582%25B8%25E3%2583%25A7%25E3%2583%25B3%25E8%25A1%25A8%25E7%25A4%25BA%25E3%2581%25AB%25E4%25BE%25BF%25E5%2588%25A9%25E3%2581%25AA%25E3%2583%2591%25E3%2583%2583%25E3%2582%25B1%25E3%2583%25BC%25E3%2582%25B8%25E3%2582%2592%25E4%25BD%259C%25E3%2582%258A%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[サイトがどこのサーバーで動いているか一発でわかるコマンド作りました]]></title><description><![CDATA[!
追記:whereisだとlinuxのコマンドの詳細を調べるコマンドと名前が被っているので、近々改名します
2/1追記：whrisに改名しました


 忙しい人のためにまとめ
サイトがどこのサーバーで動いているか一発でわかるコマンド作りました。
動作イメージは以下のような感じです。
$ whris zenn.dev                    
Target domain:zenn.dev
Target ip    :35.190.77.180

Network Admin:Google LLC (GOOGL-2)
Network name :GOOGLE-CLOUD
ip ...]]></description><link>https://zenn.dev/harachan/articles/0f6cf2bf521a1d</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/0f6cf2bf521a1d</guid><pubDate>Sun, 30 Jan 2022 05:43:30 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--6cxGxcVo--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2582%25B5%25E3%2582%25A4%25E3%2583%2588%25E3%2581%258C%25E3%2581%25A9%25E3%2581%2593%25E3%2581%25AE%25E3%2582%25B5%25E3%2583%25BC%25E3%2583%2590%25E3%2583%25BC%25E3%2581%25A7%25E5%258B%2595%25E3%2581%2584%25E3%2581%25A6%25E3%2581%2584%25E3%2582%258B%25E3%2581%258B%25E4%25B8%2580%25E7%2599%25BA%25E3%2581%25A7%25E3%2582%258F%25E3%2581%258B%25E3%2582%258B%25E3%2582%25B3%25E3%2583%259E%25E3%2583%25B3%25E3%2583%2589%25E4%25BD%259C%25E3%2582%258A%25E3%2581%25BE%25E3%2581%2597%25E3%2581%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[hugoを使った爆速ブログをカスタマイズする]]></title><description><![CDATA[
 前回の振り返り
前回は下記記事で、hugoを使いブログを作成しgithub actionsを使用した自動デプロイを設定しました。
https://zenn.dev/harachan/articles/a043e9a756cae4
今回はその続編で、投稿をリッチにするshort codeの紹介、投稿に画像を入れる方法、ページテンプレートのカスタマイズをやっていきます。

 環境



項目





OS
Ubuntu 20.04.1 LTS


hugo
hugo v0.89.1+extended linux/amd64




 投稿をリッチにするShort code
hugoには...]]></description><link>https://zenn.dev/harachan/articles/21d8f3a9f2ca4e</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/21d8f3a9f2ca4e</guid><pubDate>Mon, 08 Nov 2021 13:48:50 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--E8CI8MFI--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:hugo%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%259F%25E7%2588%2586%25E9%2580%259F%25E3%2583%2596%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%2592%25E3%2582%25AB%25E3%2582%25B9%25E3%2582%25BF%25E3%2583%259E%25E3%2582%25A4%25E3%2582%25BA%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[hugoを使って爆速でブログを作成する]]></title><description><![CDATA[
 hugoとは？
hugo(ヒューゴ）とは、goで作られたwebサイトを作成するフレームワークです。
公式サイトのトップページで「ウェブサイトを構築するための世界最速のフレームワーク」書いてあるように速さを売りにした静的サイトジェネレーターのようです。

公式ページ
使用できるテーマも数多く揃えられており、柔軟性もあるとのことだったので今回はhugoを使って実際にブログを作成してみました。
先に触ってみた感想なのですが、下記画像のように本当に多くのテーマが用意されており選ぶだけで楽しかったです。また、テーマのカスタマイズも簡単に行なえ自分好みにできるので結構体験良かったです。

テーマ...]]></description><link>https://zenn.dev/harachan/articles/a043e9a756cae4</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/a043e9a756cae4</guid><pubDate>Sat, 06 Nov 2021 12:23:19 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--2heIrHgz--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:hugo%25E3%2582%2592%25E4%25BD%25BF%25E3%2581%25A3%25E3%2581%25A6%25E7%2588%2586%25E9%2580%259F%25E3%2581%25A7%25E3%2583%2596%25E3%2583%25AD%25E3%2582%25B0%25E3%2582%2592%25E4%25BD%259C%25E6%2588%2590%25E3%2581%2599%25E3%2582%258B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[なんでPHPが実行できるかあなたにはわかりますか？]]></title><description><![CDATA[
 概要
友人とLaravelを使ってなにか作ろうとなり、記事を見てDocker環境を作成しました。
作成した環境は動いたのですが、自分にはなぜPHPもインストールされていないNginxのコンテナ上でLaravelが表示できているのかぱっとわかりませんでした。
さて、皆さんはなぜPHPもインストールされていないNginxのコンテナ上でLaravelが表示できているかわかるでしょうか？（挑戦的なタイトル＆煽りですみません）

 環境
このDocker環境の構成は以下のようになっています。

 ディレクトリ構成
project
├ docker-compose.yml
├ docker
│　...]]></description><link>https://zenn.dev/harachan/articles/cfa569b8c2175e</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/cfa569b8c2175e</guid><pubDate>Mon, 20 Sep 2021 04:42:47 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--IxrM5s5b--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:%25E3%2581%25AA%25E3%2582%2593%25E3%2581%25A7PHP%25E3%2581%258C%25E5%25AE%259F%25E8%25A1%258C%25E3%2581%25A7%25E3%2581%258D%25E3%2582%258B%25E3%2581%258B%25E3%2581%2582%25E3%2581%25AA%25E3%2581%259F%25E3%2581%25AB%25E3%2581%25AF%25E3%2582%258F%25E3%2581%258B%25E3%2582%258A%25E3%2581%25BE%25E3%2581%2599%25E3%2581%258B%25EF%25BC%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[VSCodeの置き換え機能の秘めたる力]]></title><description><![CDATA[
 秘めたる力？
VSCodeを使っていて最近まで知らなかった機能で結構便利だと思ったのが、置き換え時に変数をつかえることです。例えば、以下のようなCSVがあったとします。(データは気象庁から取得した2000年から2020年までの東京の月別平均気温です）
東京
年月,平均気温(℃),品質情報,均質番号
2000/1,7.6,8,1
2000/2,6.0,8,1
2000/3,9.4,8,1
2000/4,14.5,8,1
2000/5,19.8,8,1
2000/6,22.5,8,1
2000/7,27.7,8,1
...
2020/10,17.5,8,2
2020/11,14.0,8,...]]></description><link>https://zenn.dev/harachan/articles/0a064e1984e8a0</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/0a064e1984e8a0</guid><pubDate>Sat, 04 Sep 2021 05:41:18 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--IMpa2oMe--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:VSCode%25E3%2581%25AE%25E7%25BD%25AE%25E3%2581%258D%25E6%258F%259B%25E3%2581%2588%25E6%25A9%259F%25E8%2583%25BD%25E3%2581%25AE%25E7%25A7%2598%25E3%2582%2581%25E3%2581%259F%25E3%2582%258B%25E5%258A%259B%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item><item><title><![CDATA[GASでOCRを簡単に使えるんですか！？]]></title><description><![CDATA[
 この記事のひとことまとめ
GASでgoogle Driveのフォルダーにアップロードされた画像（PDFもいけます）からgoogle drive APIとDocumentApp ClassをつかってOCRし情報をテキストとしてとりだす方法を紹介します。
これを使うことで、以下のようなことができると思います。

紙のシフト表をスマホでとってDriveにあげてグーグルカレンダーやタイムツリーにシフトを自動登録する
レシートを読み込んで品名や金額をスプレッドシートに自動登録する


 はじめに
OCR（光学文字認識）をgoogleのAPIであるGoogle Cloud Vision APIで...]]></description><link>https://zenn.dev/harachan/articles/d910ef8b89720b</link><guid isPermaLink="true">https://zenn.dev/harachan/articles/d910ef8b89720b</guid><pubDate>Sun, 27 Jun 2021 08:26:24 GMT</pubDate><enclosure url="https://res.cloudinary.com/zenn/image/upload/s--ex80Fiy9--/c_fit%2Cg_north_west%2Cl_text:notosansjp-medium.otf_55:GAS%25E3%2581%25A7OCR%25E3%2582%2592%25E7%25B0%25A1%25E5%258D%2598%25E3%2581%25AB%25E4%25BD%25BF%25E3%2581%2588%25E3%2582%258B%25E3%2582%2593%25E3%2581%25A7%25E3%2581%2599%25E3%2581%258B%25EF%25BC%2581%25EF%25BC%259F%2Cw_1010%2Cx_90%2Cy_100/g_south_west%2Cl_text:notosansjp-medium.otf_37:harachan%2Cx_203%2Cy_121/g_south_west%2Ch_90%2Cl_fetch:aHR0cHM6Ly9zdG9yYWdlLmdvb2dsZWFwaXMuY29tL3plbm4tdXNlci11cGxvYWQvYXZhdGFyLzg0ODVjZDJhNzIuanBlZw==%2Cr_max%2Cw_90%2Cx_87%2Cy_95/v1627283836/default/og-base-w1200-v2.png?_a=BACAGSGT" length="0" type="false"/><dc:creator>harachan</dc:creator></item></channel></rss>