Github ActionsでHugoブログをデプロイする

このブログはGithub Pages + hugoで作っている。 デプロイは、「リポジトリにプッシュ → Github Actionsでデプロイ」をやっている。 Githubのデプロイはhugoの公式が用意してくれているスクリプトを使っている。 Host on GitHub Pages | Hugo ここのyamlスクリプトを .github/workflows/hugo.yaml にコピーして、リポジトリにプッシュするとActionsが登録される。 このActionsは main ブランチにプッシュされると動くようになっている。 実際に実行される内容は jobs にかかれている通りで、build -> deployの順番で処理される。 buildはhugoコマンドを使ってビルドが実行され、deployはビルドされたファイルをGithubPagesにプッシュする。 という感じ。簡単に自動化できてよかった。

June 8, 2024

Rails で Material Design を使う

自作のRailsアプリにマテリアルデザインを導入したのでメモ。 ネットで調べて ruby - How to add Materialize to rails 7 - Stack Overflow を参考に設定。 まず、Gemfileに以下を追加。 gem 'materialize-sass' gem 'sassc-rails' bundle install をしてgemを追加。 次に、 app/assets/stylesheets/application.css を app/assets/stylesheets/application.scss にリネームして以下を追加。 @import 'materialize'; app/assets/javascripts/application.js に以下を追加。 //= require materialize 以上で設定は完了。

June 2, 2024

Rubyスクリプトでbash実行する

今日、「Rubyスクリプトの中でbashを実行する」方法を調べたのでメモ。 `echo "Hello, World!"` # => "Hello, World! result = `echo "Hello, World!"` result # => "Hello, World!" バッククオートを使うと、bashコマンドを実行できる。 また、実行結果はそのまま変数に入るので、そこから処理を続けることもできる。 参考 Rubyでシェルコマンドを実行する方法 – ぺけみさお

June 1, 2024

こんにちは。Github Pages

以下の条件でブログサイトの作り直しを考え、GitHub Pagesを使って新しいサイトを作成しました。 Markdownで記事を書きたい なるべく無料で運用したい GithubActionsを使ってCI/CDを導入したい これまで、Gatsby + Netlifyで運用したこともありましたが、GatsbyやTSの知識が少なくて苦戦。 シンプルに静的サイトジェネレーターを使って運用したいと思い、Hugoを選択しました。 過去記事を持ってくるかは悩むものの、はてなブログにMarkdown形式で置いてるので、気が向いたら持ってきます。 (frontmatterの書き換えが面倒なので、やらないかも…)

June 1, 2024

僕のあとで読まないあとで読む

自分なりの「あとで読む」を設計し直したのでメモ。 基本方針は「どうせ後でしっかり読むことは殆どないので、概要だけは抑えておきたい」というもの。 かつ、自分がよく使うツールであるObsidianになるべく集約したかった。 で、考えたのが以下の手順 Inoreaderで気になる記事をStarにする StarしたURLをコピー Obsidian-ReadItLaterで記事のページを作る ChatGPTに記事の内容を要約してもらい、記事のページにコピペ InoreaderのStarを外す 1. Inoreaderで気になる記事をStarにする 特に技術系の情報収集にはRSSを頼っている。 なんだかんだで、最新の情報が勝手に入ってくるのは便利。 Inoreaderを使っている理由は特にないが、無料で150feedまで購読できて、お気に入りなどの基本的な機能が使えるのが気に入っている。 Inoreaderは情報の流入源として使っているだけ。 気になった記事をStarするのも、スマホで記事を読んでいるときだけ。 なぜなら、そのあとの記事ページを作ったりする操作はPCのほうが効率がいいから。 2. StarしたURLをコピー ここからはPCでの操作 InoreaderでStarにした記事のURLコピーするだけ 3. Obsidian-ReadItLaterで記事のページを作る DominikPieper/obsidian-ReadItLater というプラグインがあり、これを使ってObsidianにコピーしたURLの記事ページを作ってもらう このプラグインは本文の内容も記事ページに記載してくれる ただし、テンプレートを参照することはできない 自分の場合、「Readable ArticleにFrontMatterの内容も含めてページを作ってもらう」という運用をしている あとは記事の内容に合わせてタグ付けもここでしてしまう --- aliases: tags: "" cssclass: publish: false created_at: <% tp.file.creation_date() %> url: %articleURL% checked: stared: --- # 要約 # 本文 %articleContent% 4. ChatGPTに記事の内容を要約してもらい、記事のページにコピペ 記事の内容はChatGPTに要約してもらう WebPilotプラグインを導入し、以下のプロンプトで要約を実行してもらう 500文字だと少ないと感じるときもあるが、気になったら本文を読めばいいかと考えている。 あなたはプロの編集者です 共有されたURLの本文の内容を、制約条件に合わせて要約してください ## 制約条件 - 500文字以内 - Markdown形式の箇条書き - コードブロックとして出力 - 本文中の数字などは改変しない - 必ず日本語の文章として出力する ## URL このプロンプトで、Markdown形式の箇条書きになったコードブロックが出力されるので、「Copy code」を押して記事ページにペーストするだけ。...

June 18, 2023

ChatGPTを使ってみた感想

GPT4が出たあたりからChatGPTを使ってます。 しばらく使ってみたので、その感想をば。 普通に嘘を付く ネット上の情報を調べさせたり、専門的な内容を質問するとしれっと嘘情報を混ぜてくる テキストを渡して処理させるのは得意 要約・抽出・整形はいい感じにやってくれる ネットの記事やPDFのテキストをコピペして渡しても大丈夫 役割を明示するのは大事 「これからxxxをします」「あなたの役割はxxxです」といった内容を渡してあげると良い これまでとは異なるコミュニケーションが必要になりそう、という感覚がある 初級のプログラマーにお願いするぐらいの実装はやってくれそう 対GPTの文章力を養う必要がある 対人間のコミュニケーションは今以上に大事になる 何をしてもらうか どうやって人に動いてもらうか チームとしてどうやって成果を出すか まぁ、結局コミュニケーションなんですよね

April 22, 2023

プログラマのエディタ環境

プログラマにとって、エディタ環境は「完成しない城」のようなものである。 サグラダファミリアのようであるとも言える。 なぜ完成しないのか? 理由は幾つ考えられるが、一つは「新しい環境に合わせて更新が必要になるから」だろう。 プログラマが扱う技術のライフサイクルは極めて短い。 また、技術そのものも日々更新されていくし、現場で使用する技術も新しいものが採用される傾向にある むしろ、固定化された技術に満足してしまっていたら、プログラマとしてはあまり良くないとも言える 日々更新されていく技術・環境に合わせて、使っているツールも更新する必要が出てくる。 次に「現在のツールに満足できなくなる」という場合が考えられる。 現場で使用される技術同様、ツールそのものも日進月歩で更新され、また新しいツールも登場している。 一昔前ならサクラエディタでコードを書いている人もいたが、現在ではどのぐらいの割合で存在しているだろう。 近年では JetBrains製のツールに代表されるようなIDE環境を好んで使う人もいれば、VSCodeのようにプラグインを駆使して柔軟に設定が変更できるツールを使う人もいる。 自分の理解として「この言語・フレームワークを使うなら、このツールを使うのが良い」というものは存在していると考えている。 例えば、iOSアプリを実装するためにSwiftを書くのであればXCodeを使うだろう。 Javaを書く場合はIntelliJ IDEAが選択されることが多くなったように思う。 TypeScriptはVSCodeとの相性が良いし、VSCodeは他の言語で実装する場合も比較的書きやすい。(プラグインの追加が前提となるが) また、エディタとは異なるが、機械学習やデータサイエンスを扱う場合は、JupyterやPlutoを使うことも検討されるだろう。 もちろん、これらのツールも日々進化しているし、新しい選択肢が増えている可能性もある。 ちなみに、自分はNeovimを使用している。 VIMから派生したプロジェクトで、luaでの設定・プラグインの実装を可能にしたエディタだ。 プログラマとしての初期の頃の仕事が「Vimでコードを書くことを強制される」というものだったため、Vimは以前から使っていた。 そして、近年Neovimの存在を知り、VimScriptにそれほど思い入れもなかったため、Neovimに移行した 「自分で設定を書き、環境を構築していく」というのは、大変にめんどくさいものではあるが、「思い通りにメンテナンスできている」という感覚が味わえるので、とても気に入っている。 とはいえ、これまでも現場に合わせて、Vim, Eclipse, IntelliJ, RubyMine, Atom, VSCode, Neovimといろいろなエディタを使ってきたので、 来年もNeovimを使い続けている、という保証はどこにもない。

February 15, 2023

DreamBowl2023を見てきた

Dream Bowl 2023とは? JAPAN U.S. DREAM BOWL 2023 | Xリーグ 公式サイト 全日本選抜とIVYリーグ選抜によるアメフトの試合 全日本選抜 全日本選抜60名(選抜54名+学生6名) 社会人チームに所属する外国籍の選手も選抜される IVYリーグ選抜 アイビーリーグ選抜52名 結果は? アメフト「ドリームボウル」、全日本選抜が第4Qに逆転TD許す…米アイビーリーグ選抜に惜敗 : 読売新聞オンライン 全日本選抜 20 - 24 IVYリーグ 途中、全日本が逆転する場面もあったが、最後は逆転されてしまった 全日本はRB トラショーン・ニクソン選手の活躍が目立った IVYリーグ選抜はQB ライアン・グローヴァー選手が良かった ロングパスの正確さと咄嗟の判断力、自分でボールを進められる機動力が光っていた 感想は? 初生アメフト・初国立でとても楽しめた NFLの試合を見ていたおかげで、ルールや試合展開にもついていけたし、色々考えながら見ることができた 客席に空席目立ったのが気になった 日本ではアメフトがまだまだマイナースポーツだなと感じた 観客だけでクラウドノイズを出せるような雰囲気のスタジアムに、将来なってほしい

January 23, 2023

asdfでRをインストールをしたときのハマりどころ

asdfでRをインストールしたとき、ライブラリ関連でハマったのでメモ 環境 Hostマシン: M1 Macbook Air OS: macOS Monterey(12.5) asdf v0.10.2 インストール手順 asdf plugin-add R https://github.com/asdf-community/asdf-r.git asdf r install latest 以下、自分がハマったところの対応方法 liblzma library and headers are required xzのインストールと関連ファイルのリンクを設定 brew install xz set -x LDFLAGS "-L/opt/homebrew/opt/xz/lib" $LDFLAGS set -x CPPFLAGS "-I/opt/homebrew/opt/xz/include" $CPPFLAGS fatal error: 'pcre2.h' file not found pcre2のインストールと関連ファイルへのリンクを設定 brew install perc2xz set -x LDFLAGS "-L/opt/homebrew/opt/pcre2/lib" $LDFLAGS set -x CPPFLAGS "-I/opt/homebrew/opt/pcre2/include" $CPPFLAGS fatal error: 'jpeglib.h' file not found jpegのインストールと関連ファイルへのリンクを設定 brew install perc2xz set -x LDFLAGS "-L/opt/homebrew/opt/jpeg/lib" $LDFLAGS set -x CPPFLAGS "-I/opt/homebrew/opt/jpeg/include" $CPPFLAGS 参考 [Python3 / pandas] pandasをアップデートしたら、lzmaなるmoduleがimportできないというメッセージが出た - Qiita ここを参考に、環境変数を設定した

August 13, 2022

数学関連のページを追加した

このサイトに数学関連の記事をまとめたページを追加した All note posts | piruty.com なぜ作ったのか? 個人的に数学を勉強していて、カジュアルにアウトプットを出せる場所がほしかった どういう仕組にしているか? 記事はJupyterを使って作っている NotebookをMarkdownとして出力 このサイトはGatsbyを使っているので、数学ページ用の一覧テンプレートを作成 GraphQLのクエリで数学関連のページを抜き出し、一覧を作成 コンテンツの中身自体はブログ記事と同じものを使用 今後どうしていきたいか? 数学関連のページを充実させていく 物理や機械学習にも興味があるので、これらのページも増やしていきたい

August 10, 2022