久しぶり

コンスタントに更新するネタがないと、生存報告になるのはブログのお約束なのだと思う。 久しぶりすぎて、まず更新する仕組みが死んでいたので復活させることにした。 このブログは静的サイトジェネレータのHugo、ホスティングサービスのNetlifyで動いている。 Hugoはローカルでサーバーを動かして、サイトがどのように見えるか確認できるのだけれど、まずここで躓いた。エラーメッセージを見ると、どうやら使っていたデザインテンプレートが最新のHugoに未対応らしい。さくっと別のテンプレートに切り替え。 では、さっそくデプロイを……と思ったら、なかなか終わらない。 コンソールを見に行くとやっぱりエラーが出ている。ログを眺めてみると、デプロイ時のコマンドに旧テーマが指定されていた。 初期設定はNetlifyのウィザードにお任せしていたから、どこからどう設定すればいいのかわからない。変に楽をすると後から覚えるのが大変だ、と思いつつ、Netlifyの設定画面を片っ端から目を通す。が、見つからない。しばらく考えてから、エラーログを見ると、設定ファイルに記述されているらしい。 netlify.toml にあったのでよしなに変更して、再度デプロイ。無事に完了して、記事の公開にいたる、と。

August 15, 2022 · Kei

全角スペースを見やすくする

意図しない全角スペースに振り回されたので、プログラミング向けのフォントで解決することにした。 今回はmiiton/Cica: プログラミング用日本語等幅フォント Cica(シカ)を採用。 プログラミング向けフォントで調べるとほかにも色々出てくるので試すのもまた一興かと。

June 29, 2021 · Kei

炎上プロジェクトの消火方法

救援部隊として参加する場合はこのような流れだと聞いた。 メンバーレベルで助っ人参加して似たような動きをしたし、おおよそ正しい方法だと思う。 これらの方法を実践するには、プロジェクト関係者全員の協力が必要不可欠なのが厄介な点。 既存メンバーの休養、ケア やる気が溢れすぎているので、1週間ほど定時退社してクールダウンしてもらう プロジェクトの要件把握 当初の要件 現在の要件 プロジェクトの進捗の把握 何を作ったのか 何が出来ていないのか テスト状況の把握 どこまでテストしたのか どれぐらいのテストをしたのか バグの出方などから、テストの甘い箇所の洗い出しを行う バグ密度から割り出すが今回は割愛 増援の場合は既存メンバーとの関係構築 これから何を作っていくのかの再定義 優先順位の高い機能から実装し、低い機能は二次開発に回す 何ができていたのか、できていないのかなどの洗い出しには模造紙に付箋を活用していると聞いた。 一目でわかりやすく、メンバー全員で状況把握や意見を出し合いやすくなるのだそうだ。 一言でいうならば 仕切り直しが大事

April 12, 2021 · Kei

Still Alive

前回の更新から1か月ほど空いてしまった。 まだ生きてますとも。

April 4, 2021 · Kei

ドメインが高すぎて解約した話

要約 深夜のノリで軽い気持ちでドメインを契約したら1年間で43万円だった さすがに支払えない、と震えながらサポートセンターにキャンセルの依頼をして助かった 細かい話 このブログはNetlifyで運用している。標準のドメインだとやや恰好が悪いので新しく契約することにした。 ドメインの取得は過去に何回かやっていて、どのドメインも年数千円で維持している。その金額である程度の信用、移転してもURLが資産として活用できるのだから、コスパのいい投資だと思っている。 そんな金額にはならない、とどこかで油断していたのだろう。軽い気持ちでドメインを契約したらどうも、支払金額の桁数が多い気がする。 おかしいと思ってよくよく確認してみたら日本円にして43万円。 さすがにこれは重たい、と慌ててダッシュボードにキャンセルのボタンがないかを探す。しかし、見当たらない。 しばらく考えて、もう、サポートに直で頼み込むしかない、とチャットを開いて、間違って契約してしまったのでキャンセルしたい、とストレートに打ち明ける。 確認のやり取りのあと、希望する返金の方法の確認があり、滞りなくキャンセルされた。 契約するときはちゃんと、金額を確認しましょう、というお話でした。

March 1, 2021 · Kei

詳細設計書は必要?

結論から言うと、 「詳細設計は必要、詳細設計書も必要」 と考えている。 ただ、コスパの良い詳細設計書の書き方は見つかっていない。 作る上では考えているのにアウトプットができないとはこれいかに。 詳細設計書とは ウォーターフォール型の開発だとこのようなドキュメントが作られる。 要件定義書 クライアントと話して何が必要なのかをまとめたもの 基本(外部)設計書 要件定義書をもとに画面や機能を詳細化したもの 詳細(内部)設計書 基本設計書をもとに各画面、各機能を具体化したもの これをもとにコードが書かれる 単体試験仕様書 実装した各画面、各機能単位のテストのための仕様書 単体試験エビデンス 単体試験の結果をまとめたもの 結合試験仕様書 システム全体のテストのための仕様書 結合試験エビデンス 結合試験の行った結果をまとめたもの 詳細設計書をもとにコードを書いたり、単体試験仕様書を考えるので、ないと困る代物である。 不要といわれる理由 Excel方眼紙を使った詳細設計書のメンテナンスを経験するといらない、と言いたくもなる。 ただでさえ、セルの結合と解除でぐずぐずになりやすいのに 手動で版管理する 共同編集ができない(新しいExcelではできる) あたりが組み合わさると、編集コストがかさんで気軽に直せなくなる。あるいは、修正するファイルを間違えたりする。 仕様書とコードの乖離が激しくなると、仕様書を見る機会は減り、仕様を考えている人と実装する人が直接やり取りして完結するようになる。 そして、納品物として必要だから書いているそれらしい仕様書、という本質を見失ったドキュメントが誕生する。 そういう背景はあるものの システムを作る上の共通の言語として、詳細設計書は必要だと思う。 ごりごりのフォーマットに落とし込んだ何かではなくてもいい。詳細設計を考えた時のアウトプットをすることで、自身の理解が深まるし、まとまっていればのちの改修作業で重要な情報になる。 ほかの人の読みやすさを少し意識すれば、自分はこのように考えています、と説明もしやすい。 案 詳細設計書 Excelかスプレッドシート 図式を使えるのは表計算系ソフトなので、セル結合は避けるなどルールを作って編集コストを下げられるのでは? Markdown対応のWiki 簡単な表組ならできるし、表現力は十分にあるように思う MkDocsなどのドキュメント生成ツール Markdownで書いてさっとアップできる テーブル仕様書 テーブル定義ファイルから自動生成 丁寧にコメント入っているなら定義ファイルを読めば事足りそう 関数・API仕様書 コードから自動生成 自動生成前提でコメントが入っているなら、コードを読めば事足りそう ざっと思いつくのはこんなところ。 改めて調べてみると、様々なやり方、ツールがあるので、コスパよくドキュメントにできるかもしれない。 雑感 今のところはMarkdown対応のWikiにまとめている。Excel方眼紙でないだけでやる気でるのだから面白い。

February 21, 2021 · Kei

Ruby on Railsをアップデートした話

サービスのホスティングをしているherokuからRubyのバージョンが古いとアップデートを促すメールが来た。 調べてみると、どうやら、このままだと数か月後にデプロイできなくなるという。 それは困るのでアップデートをすることにした。 現行 新 heroku-16 Stack heroku-20 Stack Ruby 2.3 Ruby 2.5.8 Ruby on Rails 4.2.6 Ruby on Rails 4.2.11.3 heroku-20 Stackの要件をコンパクトに目指す。 大まかな作業手順は確立していて、どんなGemを使っているのか、どんなコードを書いているのかで細かくわかれる。 アップデートの流れ Railsのアップデート 1回目のGemのアップデート この時点では大した変化なし Rubyのアップデート 2.3 -> 2.5だと破壊的な変更はないので特に悪影響出ず 2回目のGemのアップデート jQuery UIのファイル構成が変わって、画面が表示されなくなった。新しいパスを定義して無事起動するように 動作確認と不具合対応 各画面を開いて、表示が崩れていたり、動かない処理がないかの確認など 幸い、大きな問題はなかった デプロイテスト デプロイできるのかのテスト ここでメモリ消費量削減とパフォーマンス向上で導入していたビルドパックの対応状況があやしいことが発覚。あやしく見えただけで実は問題がなかった リリース いろいろやってきたことで、リリース自体は無事完了。準備は大事 アップデートの結果 Rubyの高速化の恩恵が非常に大きく、レスポンスが平均して1秒近く速くなっている。 あわせてタイムアウトが減った。 メモリ消費量の最大値が削減されて、システムリソースに余裕ができた。 一部ファイルアップロード機能の不具合が改善された。 どうやらGem由来の不具合だったらしい。 一週間強の作業でこの成果は大成功だろう。 課題 人力テスト テスト自動化が必要 Ruby on Rails 5とRuby on Rails 6 Gemの更新はもちろん、Rubyの変更もあり、コードに手を加える必要がある そこそこの規模感なのでそれなりの時間がかかるだろう はてさて、どうやっていこうか。

February 14, 2021 · Kei

Netlify CMSの導入

何だかままならいのでメモだけ。 既存のHugo製サイトにNetlify CMSを導入する。GitHubを使ってNetlify以外でのホスティングの場合 | tabosque.com Failed to persist entry: API_ERROR: Branch not found · Issue #4564 · netlify/netlify-cms 「NetlifyCMSのOAuth認証」Githubで失敗する件を解決した | 東京夜7時

February 13, 2021 · Kei

faviconを追加した話

faviconがないも寂しいのでfaviconを追加することにした。 dotgridで画像を作成する Favicon Generatorでfaviconを生成する static ディレクトリに生成したファイルを入れる デプロイ という手順で終わり。 dotgridは点を打った順番に線を引いてくれるタイプのソフトなので、絵が描けなくてもそれらしいものが作れて神! 参考 faviconを作る(HUGO) - Qiita

February 13, 2021 · Kei

ブログ作成

Hugo Netlify GitHub HTMLの生成はHugo、バージョン管理などはGitHub、ホスティングにはNetlify。 設定がややこしいところがあったものの、公式のドキュメントに従って進めていけば問題なし。 好きなエディタで書いて、git pushしたら記事が投稿できるのはなかなか面白い。 参考 Host on Netlify | Hugo この手順を踏めばOK 子猫を保護したので Hugo + Netlify を使って爆速で里親募集ページを作る - Qiita HugoとNetlifyで静的サイト構築するメモ(themeはsubmoduleを利用) - Qiita

February 13, 2021 · Kei