WordPressからHugoに移行してみた

こんにちは、全力開発部の @konoka-iori です。 今回、WordPressからHugoにブログを移行したので、移行を決断した理由や技術の選定、記事の移植、移行後の運用、これからの課題などを書いていきます。 なぜWordPressからHugoに移行したのか この項目では、なぜWordPressからHugoに移行することを決断したのか、その理由を説明します。 WordPressの運用における課題 まず、WordPressからHugoに移行する理由の前に、WordPressをどのように運用していたかを説明します。 独自ドメインを取得。 日本国内のレンタルサーバー上にWordPressをインストール。 Team Parity のサイト部門に所属する2~3人程度で記事の執筆・公開。 Note 現在Team Parityはサイト部門を全力開発部に統合し、活動を終了しています。 作業フローとしては、次のような感じです。この間、常にTrelloやGuildedなどで情報共有や意思疎通が行われていました。 Trelloで新しい記事を申請し、承認をもらう。 WordPressにログインして記事を作成し、レビューを依頼する。 担当者がレビューする。 レビューが通れば公開する。 ほかにも記事の執筆や公開に関するルールやガイドラインがあり、それらの管理は Guilded やストレージサービスで管理していました。 このように外部サービスを多用していたため情報が分散してしまい、管理が煩雑になるだけでなく、記事を執筆する際にも複数のサービスを行き来する必要がありました。 運用面では、WordPress本体の更新やプラグインの更新、テーマの更新、バックアップ、セキュリティ対策など、WordPressを安全に運用するためには多くのコストがかかり、もはや技術的な負債となっていました。 Hugoに移行するメリット そこで、WordPressからHugoに移行することで、次のようなメリットがあると考えました。 GitHubでほぼすべてを管理・完結できる。 高速かつセキュアな静的サイトを構築でき、運用コストを削減できる。 お馴染みのMarkdown形式で記事を書けるため、記事の執筆がしやすくなる。 これらのメリットに惹かれて、WordPressからHugoに移行することを検討しはじめました。 懸念事項 一方で、次のような懸念事項もありました。 Hugoをはじめとする静的サイトジェネレーターに関する知識・知見がない。 WordPressのプラグインで実現していた機能をどのようにHugoで再現できるかわからない。 作ったサイトをどこでホスティングすればよいかわからない。 やはり、WordPressの強みはなんといってもプラグインの豊富さと、視覚的に管理がしやすいことです。これらをどこまでHugoで実現できるかが重要だと考えました。 技術選定 これらのメリットと懸念事項に悩みつつも、Hugoに移行するためにはどんな技術が必要なのかを洗い出しました。 Hugo: メインの静的サイトジェネレーター。 GitHub: サイト本体のバージョン管理。 記事のバージョン管理。 CI/CDの実行。 Cloudflare: ドメインの取得・管理。 サイトのホスティング。 静的サイトジェネレーターとしてHugoを選択した理由は、単純に有名で情報量が多いからです。 サイトの作成や記事の執筆・管理がGitHubで完結するからという理由もあります。 バージョン管理やCI/CDの実行にGitHubを選択した理由は、日頃愛用しているのがGitHubだからという理由もありますが、GitHub Actionsを使ったMarkdownの自動チェックなどを行えるからです。 ドメインの取得・管理やサイトのホスティングにCloudflareを選択した理由は、無料で利用できる機能が豊富に揃っているからです。 Cloudflare Registrar : .dev ドメインが格安で取得できる。 Cloudflare Pages : GitHub Actionsと連携して、静的サイトを無料でホスティングできる。 Cloudflare Fonts : Google Fontsよりもプライバシーやパフォーマンスに優れたフォントを読み込める。 Cloudflare Email Routing : 疑似的に独自ドメインでメールを送受信できる。 ほかにも、さまざまな機能が無料で利用でき、 HTTP/3(QUIC) などの最新技術にも対応していて、非常に魅力的でした。 Cloudflareのネットワークに最適化することで、サイトのパフォーマンス向上が期待できます。...

Posted 2024-06-23 ·  Konoka-Iori ·  Tech

NVAPIを使ったVRAMの取得

NVAPIって知っていますか? NVAPIとはNVIDIA社が提供しているAPIです。 NVIDIA社が提供している有名なAPIとしてはCUDAが存在しますが、CUDAとは違いNVAPIは搭載されているハードウェアの情報を取得することが主な使用用途だと思われます。 さて、私はGPUを酷使する機会が多少ながらもあり、その時にVRAMがどの程度使用されているかどうかを取得するためのNVAPIのコードを紹介します。 NVAPIをダウンロード まずは、NVAPIを以下のリンクからダウンロードしてきます。 今回この記事で利用しているNVAPIのバージョンは「R450」です。 Gameworks Download Center - NVIDIA Developer ダウンロードが終えたファイルの中には nvapi.h などのヘッタファイルがあり、ライブラリが入っているファイルがあることが分かります。 NVAPIファイルを、プログラムを作成する作業フォルダ内に配置してください。 VRAMの取得を行うコード C言語 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #include <stdio.h> #include "NVAPI/nvapi.h" #if _M_AMD64 #pragma comment(lib, "NVAPI/amd64/nvapi64.lib") #else #pragma comment(lib, "NVAPI/x86/nvapi.lib") #endif int main() { NvAPI_Status nStatus = NvAPI_Initialize(); if (nStatus == NVAPI_OK) { NvPhysicalGpuHandle hGPUHandles[NVAPI_MAX_PHYSICAL_GPUS] = {0}; NvU32 count = 0; nStatus = NvAPI_EnumPhysicalGPUs(hGPUHandles, &count); if (nStatus == NVAPI_OK) { printf("GPUS:%d\n", count); } else { printf("ErrorCode:%d\n", nStatus); } NvPhysicalGpuHandle hGPUHandle = hGPUHandles[0]; NV_DISPLAY_DRIVER_MEMORY_INFO_V1 MemoryInfo; MemoryInfo....

Posted 2020-11-13 ·  Rutsumi-Hinata ·  Tech

今日が祝日かどうかjpholidayを使って判定する【Python】

Pythonで今日が祝日なのかどうか判定する方法を備忘録もかねて書いておきます。 タイトルの「今日が祝日かどうか判定する方法」だけを知りたい方は「今日が祝日かどうか判定する」という項目からお読みください。 使うモジュール datetime jpholiday まず、pipで jpholiday というモジュールをインストールします。 shell 1 pip install jpholiday これでモジュールの準備は完了です。 jpholiday の使い方 まずは、基本的な使い方をマスターしていきましょう。 ちなみに、jpholiday のGitHubリポジトリはこちら です。 指定した日付の祝日名を取得 あらかじめ指定した日付の祝日名を取得します。 python 1 2 3 4 5 6 7 8 import datetime import jpholiday # 2020年1月1日の祝日名を取得する holiday_name = jpholiday.is_holiday_name(datetime.date(2020, 1, 1)) # 祝日名を出力 print(holiday_name) output 1 元日 指定した日付が1月1日ですので、出力結果は「元日」となります。非常に簡単です。 祝日ではない日付を指定した場合はどうなるのでしょうか。 python 1 2 3 4 5 6 7 8 import datetime import jpholiday # 2020年1月5日の祝日名を取得する holiday_name = jpholiday.is_holiday_name(datetime.date(2020, 1, 5)) # 祝日名を出力 print(holiday_name) output 1 None 出力結果は None になります。...

Posted 2020-08-15 ·  Updated 2024-06-02 ·  Konoka-Iori ·  Tech

スマートフォンでPythonを動かす方法!

スマートフォンでPythonを動かす方法はいくつかありますが、今回は「モバイルC」でPythonを使う方法をご紹介します。 といっても、モバイルCのPythonはおまけ程度の機能であり、 pip install などはできません。 あくまで簡易的なプログラムを組む、試しに実行してみる程度にしておきましょう。 しっかりとしたPythonの開発環境がほしい場合は、Pythonistaなどを使うことをおすすめします。 モバイルCの使い方と簡単なサンプルコード(C言語)はこちらの記事 に書いています。 Pythonのバージョン確認・準備 モバイルCに内蔵されているPythonのバージョンを確認しておきます。 「設定」ボタンから「基本コンパイラ」を選ぶと、「Python」の項目があります。 それをタップすると、Pythonのコンパイラを選ぶことができますが、デフォルトでは Python 3.7.0 しか用意されていないようです。 よってモバイルCで動くのは Python 3.7.0 のみとなります。 ファイルの作成・サンプルソースの入力 まずはモバイルCでファイルを作成します。 この時、拡張子を .c のままにせず、 .py に変更してください。 これで自動的にPythonでソースが実行されるようになります。 では、今回は test.py を作成してみましょう。 print 文の実行 早速、下記のコードを入力して動作を確かめてみましょう。 test.py 1 print("今日も全力開発!") そしてこれを実行すると output 1 今日も全力開発! と出力されるはずです。 モジュールのインポート 次に、モジュールをインポートして質問とURLの表示に間を置いてみます。 test.py 1 2 3 4 import time print("今日も全力開発!") time.sleep(1) print("https://blog.zenryoku.dev") これを実行すると 1 2 今日も全力開発! https://blog.zenryoku.dev 「今日も全力開発!」と出力してからURLを出力するまでワンテンポあれば成功です。 対話モードを使い方 モバイルCでも対話モードを使うことができます。 まず、下記の画像で赤く囲んでいる部分をタップしてください。 この赤く囲んでいる部分をタップするとターミナルを使うことができます。 次に、 shell 1 python と入力して実行します。するとPythonのバージョン等が表示され、使用できる状態になります。 試しに...

Posted 2020-08-15 ·  Updated 2024-06-02 ·  Konoka-Iori ·  Tech

モバイルC - スマートフォンでC言語が使えるアプリ

iPhoneやAndroid端末でプログラミングできるアプリをご紹介。スマホで簡単にC言語で書かれたプログラムを実行したい人にオススメです。 概要 対応OS 価格 iOS(App Store) 無料(有料版あり) Android(Google Play) 無料(有料版あり) それぞれOS名をクリックするとダウンロードページに飛びます。また、価格は記事投稿時点のものです。 有料版と無料版の違いですが、アプリ内では「広告なしで使うことができる」としか書かれていません。違いがよくわからないので、基本的には無料版でじゅうぶんでしょう。 対応している言語は下記の通りですが、言語によっては動作が不安定なので注意が必要です。また、複数コンパイラがある場合は好きな方を自由に選ぶことができます。 C(CPP1.2.10、Clang6.0.0) C++(Clang6.0.0) JavaScript(Duktape2.2.0) Python(Python3.7.0) Lua(Lua5.3.4) 「モバイルC」というアプリ名なので当然C言語がメインに取り扱われていますが、PythonやJavaScriptなどにも対応しています。 とりあえずC言語で何か実行してみる ものは試し、とりあえずC言語で何か書いて実行してみます。まずはファイルを作成してみましょう。 ファイルの作成 トップ画面の上を見ると、何やら4つボタンが表示されています。 番号 説明 ① ファイルを作成 ② フォルダを作成 ③ 設定 ?マーク ヘルプ まずは、①をタップしてファイルを作ります。 ファイル名は test.c にでもしておきましょう。 このとき、C言語ではなく他の言語を使いたい場合は拡張子を .py にしたり .js にしたりすればその言語で処理されます。 今回はC言語でプログラムするので拡張子は .c にします。 迷子対策に、ユーザーファイルの場所を記載しておきます。画面右下の家マークをタップしてもジャンプできます。 ユーザーファイル:data / CCR / UserFiles キーボードの使い方 編集画面になったら、画面の適当な場所をタップしてキーボードを表示させます。 デフォルトではモバイルC独自のキーボードが表示されます。 このキーボードに慣れるとまあまあ入力が早くなるので、特にこだわりがなければこのキーボードを使いましょう。 キーボードの上には、ツールバーが表示されています。これが使いやすい。コピペ、切り取りなどが簡単にできます。 番号 説明 ① キーボードを閉じる ② OSのキーボードに切り替える ③ コピー・カット・ペースト ④ カーソル移動・選択 ⑤ 元に戻す・やり直し ⑥ 実行(コンパイル) ⑦ キーボード拡張 「モバイルCのキーボードがいやだ!」という人は②のボタンをタップしていつものキーボードに戻すこともできます。...

Posted 2020-08-05 ·  Updated 2024-03-19 ·  Konoka-Iori ·  Tech

ConoHaVPSでMinecraftのサーバーを立てた話

昨今の情勢から私も例に漏れず自宅待機が続いており、暇な時間を少しでも有効活用するために、以前から使ってみたかった「VPS」で何かをやってみようと思い、 ConoHaVPS を使ってMinecraft(Java版)のサーバーを立ててみました。 サービスを利用できるようにするまで まずはサービスを利用するために必要な登録を行います。 以下の画像を使って説明していきます。 法人でなければ書く必要がありません。 自分自身の個人情報を入力してください。 メールアドレスを入力してください。 パスワードを入力してください。 Tip ConoHaにログインすると「ログインしましたよ」メールが届き、不正ログインなどに気づくことができるので頻繁に使うメールアドレスにした方がセキュリティ上良いです。 4のパスワードも、なるべく強固なものにしておいた方が良いでしょう。 完了したら、5のボタンをクリックして支払い画面に飛びます。 今回、私はこの記事を書く上で登録を終えてしまっているので多少操作に差があるかもしれませんが、支払い方法を説明します。 青いチャージボタンをクリックすると、チャージ金額とチャージ方法が出てきます。 チャージ金額は必要な分を入力して、あとの記入欄に自分のカード情報を入力して、青い「決済」ボタンをクリックすることによってチャージされます。 VPSをレンタルするまで さて、ここまで来たらあとはレンタルするだけです。 Important ConohaVPSはサーバー起動中のみに料金が発生するのでは無く、サーバーをレンタルしている間、使用料金が発生します。 私はこのことを知らなかったため、少しだけ料金が高くついてしまったことがあります。注意してください。 サーバーの追加を行うためには、真ん中の「追加」か横にある「サーバー追加」をクリックすると下のようなページに飛ばされます。 私は知人と集まれる時間だけMinecraftサーバーを開きたかったので「VPS割引きっぷ」は利用しないをクリックして必要なスペックのサーバーをレンタルしました。 そしてイメージタイプを選びます。初めてであれば「OS」を選んで、保存イメージがあるのであればそこから選択してサーバーを立てることができます。 root パスワードはメモ帳などで下書きしてからコピーをして貼り付けるのが良いでしょう。 Warning この root パスワードを忘れると保存したイメージを復元できなくなりますので注意してください。 VPSの設定 VPSサーバーにはSSHを利用して接続します。個人的には下記のソフトウェアがおすすめです。 Releases · TeraTermProject/teraterm - GitHub Contribute to TeraTermProject/teraterm development by creating an account on GitHub. これを使うことで簡単にVPSサーバーに接続することができます。 さて、サーバーのレンタルを終えたら上記画像にあるようにコンソールをクリックしてrootでログインしてください。初回ログイン時は上記の接続ソフトが使えないのでこのコンソールで使用してください。 ログインユーザーの登録 root ユーザーでのログインが終えたら、まずはユーザーの登録を行いsudo権限を登録したユーザーに付与します。 上記で紹介したソフトを使用するとこのような表示となり操作可能な状態となっています。 この状態は、rootユーザーでログインしている状態になっています。この状態で以下のコマンドを入力します input 1 sudo adduser 追加したいユーザー名 あとはパスワードを入力してEnterキーを押します。 最後に Is the information correct? [Y/n] と聞かれますので Y と入力してユーザー登録は終わりです。...

Posted 2020-03-04 ·  Updated 2024-06-14 ·  Rutsumi-Hinata ·  Tech