IssueOverflow で記事を書く時に使ってる Makefile

このブログもある程度記事を書き慣れてきたので現在使っている Makefile を公開してみます。 なぜ make を使うのか Golang ベースのプロジェクトでは make が利用されることが多い, と みんなの Go 言語 に書かれていました。そのため, このブログでは Golang 製の Hugo を使っているため build や新しい記事を追加する場合には make を利用しています。 このところ Ruby をお仕事で多用しているので rake を使うのも手なのですが, 勉強も兼ねて make を採用しています。これまであまり make を使ってこなかったので細かい部分で時々ハマったりしています。 Makefile の内容 make でコマンドを実行するためには Makefile が必要です。IssueOverflow 執筆時には次のコマンドを用意しています。 setup: 必要なコマンド等をインストール server: ローカルサーバを起動 build: 記事をビルド article: 新しい記事ファイルを追加 アセット用ディレクトリを用意 branch を article/something-title に変更 help: Makefile に用意されたコマンド一覧を表示 Makefile 自体は次の内容になります。 ## setup setup: go get -u -v github.com/kardianos/govendor go get -u -v github.com/spf13/hugo cd $(GOPATH)/src/github.com/spf13/hugo && govendor sync && go install go get github.com/Songmu/make2help/cmd/make2help go get -u -v github.com/mattn/go-colorable pip install Pygments git submodule sync git submodule update --init --recursive ## local server server: hugo server --buildDrafts --watch ## build build: hugo -v ## article ex: make article TITLE="title" article: git checkout master hugo new articles/`echo $(TITLE) | tr '[:upper:]' '[:lower:]' | sed -e 's/ /-/g'`.md mkdir -p content/articles/`date +"%Y"`/`date +"%m"`/`date +"%d"`/`echo $(TITLE) | tr '[:upper:]' '[:lower:]' | sed -e 's/ /-/g'` git checkout -b article/`echo $(TITLE) | tr '[:upper:]' '[:lower:]' | sed -e 's/ /-/g'` ## help help: @make2help $(MAKEFILE_LIST) $ make help を実行した場合, 次の内容が表示されます。 ...

2017/01/08 · Yuya MATSUSHIMA

自営業プログラマの姓が変わることによる影響

年内に書いておきたいことの 1 つに「結婚を期に改姓すると不都合がないのか?」ということがあります。なぜかというと男性女性問わずよく聞かれるからです。年末もすでに大晦日を迎えてしまっていますが隙間時間を使ってパパっと書いておこうと思います。 事務手続きまわりは朧気な記憶で書いているので書き忘れているものがあるかもしれません。ご注意ください。 結論 そんなに影響ない 手続きは面倒くさい 困るのは本人よりも周りの人 ID つける時は気をつけましょう 前提 改姓以前の私のステータスは次の状態でした。 個人事業主 青色申告してる 国保 契約書の名義はもちろん本人 次男 入籍を機に改姓することになった (婿) 改姓前にしたこと 取引先への連絡 次の内容を各社ご担当者様宛にお知らせしました。 入籍すること 姓が変わること 入籍予定日前後は諸手続き含めてバタバタする可能性があること 改姓完了後は通知書を発行すること 取引先に対しての混乱を防ぐための事前連絡です。 通知書については契約書の名義が旧姓のため, 改正後も有効な文書として明確化するための手続きです。自分が法務であれば欲しい文書ではあったので求められる前から用意しておきました。 契約関係の調査時に名義が途切れて謎が増えるのは大変なのです。 印鑑の作成 契約書用に使っていた印鑑一式はすべて旧姓のものになってしまうため新しい印鑑を発注しました。入籍して改姓した後にすぐに必要になるため早めに用意しておきました。 入籍&改姓 婚姻届を提出するだけです。ただし私が国保だったので保険証の発行手続も必要でした。 改姓後 手続きがたくさんあります。正直覚えていません。記憶にある限りで書き出してみます。 銀行の口座名義変更 三菱東京 UFJ 銀行は群馬県に支店がないため大宮まで行く必要が 地銀はすぐそこに支店があって助かりました 個人事業用と個人用を含めるとかなり大変 クレジットカードの名義変更 携帯電話の名義変更 免許証の書き替え 実は入籍日を調整した結果, 名義書換ではなく免許更新で対応 税務署へ改姓の書類提出 取引先へ改姓した旨を書面で通知 この他にも個人事業で使用しているタイムズカーシェアの名義が云々などいくつかありましたが, 多すぎて覚えていません。 改姓して困ったこと 手続き上の手間や変更当時の「誰だお前」のようなやりとりを除けば本人は特に困ったことはありませんでした。 どちらかというと取引先各社の混乱が大変そうでした。旧姓でメールが来たり新姓旧姓混合で書類が作られるということがありました。この点に関しては申し訳なく思っています。 また, プライベートにおいては「とりあえずなんて呼べばいいの?」問題が起こったりもしていますが, 実際のところ適当に運用されています。 ID の問題 ID の取扱については失敗したと思っています。ID はプログラマであれば Twitter, Slack や GitHub で使用するアカウント ID のことです。 この ID は改姓後も引き続き yterjaima を利用しています。コミットログの前後関係が途切れてしまうためです。改姓の可能性が少しでもある人は少なくとも名字 (姓) を ID には含めないほうが良いですね。 ...

2016/12/31 · Yuya MATSUSHIMA

ansible で private な GitHub Releases からファイルをダウンロードする方法

GitHub の private リポジトリで開発を進めている Golang プロジェクトがあります。CiecleCI 上でビルドを行ってバイナリファイルを GitHub Releases にアップロードしているものがあります。 これまでは「手動で最新版ファイルをダウンロードして ansible でデプロイする」といった方法を取っていました。都度行うには手間なので ansible の playbook 1発で実行させたくなりました。 実行したい処理 特定の GitHub Releases から最新版のファイルをダウンロード ansible 実行対象サーバのファイルと差し替え GitHub Releases の各バージョンには 1 ファイルのみ アップロードされている状態 準備 GitHub の API にアクセスする必要があるため Personal Access Token を取得します。管理画面 から新しいトークンの作成ができます。権限は 1 番上の repo にチェックを入れるだけです。 取得したトークンを環境変数に設定します。(実際には direnv を使っています) ...

2016/12/01 · Yuya MATSUSHIMA

middleman-vcs-time で正確な sitemap.xml を出力する

Middleman で Web サイトを作る場合, sitemap.xml の lastmod はビルドされ出力される時刻に統一されてしまいます。 sitemap.xml の仕様を考えると可能な限り lastmod は正しい時刻が望ましいです。現在開発中サービスの都合もあり「どうすれば正確な時刻を出力できるか?」と思い悩んでしばらく時間が経ってしまいました。 Twitter で rubygems middleman で検索して眺めていたところ, この問題を解決してくれそうな拡張機能がひっそりリリースされていることに気づきました。 middleman-vcs-time | RubyGems.org middleman-vcs-time 概要 README によると, Provides means to look up the last-modified times of Middleman sitemap resources according to version control. Supports Git with a fallback to filesystem metadata. README.md: https://github.com/AndrewKvalheim/middleman-vcs-time/blob/master/README.md とのことで, VCS (Git など) の最終変更時刻をベースに Middleman の sitemap リソースを書き替えてくれるようです。現状では Git をサポートし, フォールバックとしてファイルのメタデータを参照します。とのことで。 sitemap リソースについて sitemap リソースはドキュメントでいうと サイトマップ のことです。 Middleman は Web サイトデータを出力する前にビルド対象のファイルを収集し, sitemap リソースというデータを用意してからファイル出力を行います。この sitemap リソースは各ページのタイトル, 元ファイルパス, 出力先ファイルパスやら何やらのデータを持っています。この sitemap まわりは拡張機能の開発や凝ったサイト構成にならないと関わらない部分なので難しいです。 ...

2016/11/29 · Yuya MATSUSHIMA

Hugo でブログ始めました

過去に e2esound.com 業務日誌 や 技術ブログ | e2esound.com を書いてきました。諸事情重なった上に検討したところ「事業とは別でブログを用意しておいた方が良さそう」という結論に至ったので新しいブログを始めました。 このブログの開始に伴って 2 つのブログは更新を停止しています。 このサイトの技術構成 今のところではありますが, 現状では次の構成です。 Golang 製静的サイトジェネレータ Hugo デザインは hugo-zen をベースに syntax highlight を Pygments ベースに変更 リポジトリ github の private repos デプロイ CircleCI で github の master ブランチを awscli で処理 サーバ AWS S3 AWS CloudFront AWS CertificateManager AWS Route53 最近増えているらしい静的サイトベースのブログサイトで, とりあえず一通り自動化してる。といった構成になっています。 なぜ Hugo なのか いつもであれば静的サイトジェネレータには Middleman を採用していますが, 今回は Go 言語ベースの Hugo にしました。 Hugo は Golang ベースで作られているため Win, Mac 環境問わず動作し, 尚且つ処理が高速らしい噂を耳にして Middleman のユーザとしては気になる存在でした。 今回は私個人のブログサイトなので更新時に一緒に作業する人の学習コストを無視でき, このところ Go 言語を書いている都合 Go のプロダクトをいじっておきたいという気持ちもありました。 ...

2016/11/22 · Yuya MATSUSHIMA