横あるき

変なことを書き綴るサイトです。

ブログをオレオレCMSからHugoに移行した

移行の経緯

前回の記事から半年経っていますね。何でこんなに間が空いたかを説明できるような納得感のある理由があるかといえば、ないです。

しいて言えば(やっぱりある)、3年前に作って使っていたシェルスクリプトなCMS、site.shでブログを管理していましたが、

  1. データと処理がごちゃごちゃでつらい
  2. 記事執筆用のオレオレフォーマットを拡張したくても面倒くさい
  3. シェルスクリプトで全部やろうとするのが良くないのでは?
  4. 他の言語だとかなり良さげなのが既にあるので作り直すのもな…

という堂々巡りを2年くらい前からやっており、微妙なsite.shの使い勝手の悪さで、記事を書くモチベーションが下がっていました。それで、この度ようやくHugoに移行する決心がついたというわけです。

Hugoを選んだ理由

  • site.shが完成しようかという時に初めて知った静的サイトジェネレータがHugoだった
  • 生成が早そう

という2点がメインです。Go言語が好きと言えるほど使ったことはないです。が、テンプレート処理が標準パッケージなところとか、ありものを組み合わせている感じがして好きです。1

Hugoでサイトを組んでみた印象としては、色々なやり方があって、ベストプラクティスっぽいものはなさそうだなあということです。それだけ作り方に幅があるのは良いことだと思いますが、どこから手を付けたら良いか迷いましたので、ポイントかなというのをいくつか紹介したいと思います。

Hugoでサイトを組んでいた時の気づき

ArchetypesSection Templatesの関係性

  • contentディレクトリ下の構成でSectionが定まる
  • archetypes/<section>.mdを作るとhugo newでSectionにあわせた雛形を作ってくれる
  • mdにtype: <section>で明示的に指定することもできる。(省略しても良い)

Base(Block)/Partial/Internal TemplatesとShortcodesの関係性

  • Base Templatesは{{ block }}にしたところを{{ define }}で書き換えられる
  • Partial Templatesはlayouts/partials/**.html{{ partial }}で使いまわせる
  • Internal Templatesはあらかじめ用意されたPartial Templatesみたいなもん
  • Internal Templatesをカスタムする場合はここをみてPartial Templatesにすればいい
  • 個人的には{{ block }}{{ define }}{{ partial }}はPugのextendsとblockincludesに似ていると思った
  • Shortcodesは記事の中で凝ったマークアップ構造を使いたい時に使う
  • Lookup Orderを見ながらテンプレートを配置すると良い

configの細かいところ

  • preserveTaxonomyNamestrueにしとかないと、タグの文字列がurlizeされる
  • hasCJKLanguagetrueにしとかないと、.Summaryがスペース区切りの単語数でカウントされて、RSSフィードのdescriptionとかめちゃ長くなる[^関連リンク3]
  • BlackfridayのplainIDAnchorsfalseにしとかないと、同じ文字列の見出しが2つあるとidが重複する

最近のHugo(0.32〜)は便利

  • 画像や動画をstaticに置かないといけなかったのが、<記事のディレクトリ>/index.mdで一緒に置けるようになった2
    • これは活用してる
  • 画像の最適化もしてくれるようになった
    • これは活用してない

Hugoに移行した結果

Markdownで記事が書けるようになったのは、前と比較したら良くなったかなと思います。勘違いしてほしくないのは、私はそんなにMarkdownが好きではないということです(面倒くさい人だ)。それでも、リストのネストが簡単に書けるようになったのは良かったですね。

それと同じくらい、Shortcodeが使えるようになったのも良かったです。site.shで記法を拡張したかったのは、任意のHTMLコードを使いまわせるようなところだったので。

今回移行するに当たってHugoのテーマも作成したので、参考になればさいわいです。

https://github.com/knokmki612/hugo-pencil-and-ruler

これで記事を書くペースが上がるといいなぁ…


  1. シェルスクリプトで頑張っていたからそう感じるのかねぇ…いや、シェルスクリプト的にはコマンドを活用すれば良くて、自分がそういう風にうまく書けなかっただけだな… [return]
  2. Hugo 0.32から記事と同じ場所に画像を置けるようになった - blog.ton-up.net [return]

9月のOSS Gate東京ワークショップに参加しました

ここ数回はイベントページの作成はワークショップが終わってすぐにされている(tdtdsさんいつもありがとうございます)のですが、今回は1ヶ月前になりました。募集期間が短いので参加人数がどうなるか不安でしたが、結果的にビギナーが11人、サポーターが6人となりました。私は今回サポーター枠(進行役)で参加しました。

当日

今回は初めてサイオステクノロジーさんに会場を提供していただけました!ありがとうございます!

サイオステクノロジーさんの会場入口

くわえて、特別な計らいとしてピザも提供してくださいました!!ありがとうございます!!!

普段は昼休憩の間に各自ご飯の調達もするので、会場に人が揃うのも午後パートの前の30分前とかなのですが、ピザだと会場を離れる必要もなく会話も活発だったと思います。

私もOpera系ブラウザの紹介とか、Gentooをデスクトップ用途にするススメとか出来ましたし、PiroさんのFirefoxアドオン、ツリー型タブに関する話を伺えたのもよかったです!

昼食のピザ

サポーター1人にビギナー3人のテーブルが3つと、サポーター2人にビギナー2人のテーブル1つで、あとはサポートメンターと進行役でうろつく感じでサポートしました。何回かサポートの経験があるサポーターだと、ビギナー3人のサポートも大丈夫そうですね。

私も参加しているビギナーの作業の様子が、ある程度分かるように回れたと思います。

午後のフィードバックの様子

私は進行役だったので、午前午後と時間を調整したり、スライドを交えて説明をしたのですが、アンケートの流し読みだけはなぜかどうしても誰かに代わってもらいたい気持ちが高まり、tdtdsさんに代わっていただきました。毎回アンケートで代わっていただいてますね…なぜだ…

ふりかえり中

チャレンジし(ようとし)たこと

今回の会場は移動できる大型のディスプレイがあったので、フィードバックする文章のテーブル単位でのレビューに使えるかも!と思い、サポーターにむけて一度すすめてみたのですが、使う人はいませんでした。

作業時間に入ってから行動したので、あまり紹介するときに注意を引けてなかったかもしれません。午後の説明の間に紹介すればよかったです。

アンケートふりかえりの所感

ビギナーはOSS開発の1歩目を体験でき、サポーターもビギナーをサポートしたり刺激を受けたりして、お互いに満足できたイベントとなりました。

会場もスライドも以前と違ったのでちゃんと進行役が出来ていたか不安でしたが、肯定的な反応が多く安心しました。次に進行役をするときは、もっとにこやかな感じで抑揚をつけて喋って進行したいです。

OSS Gateワークショップのスライドもサポーターやサポートメンターといった仕組みも良く出来ているので、私含め様々な人が開催に関わることができ、ワークショップとしてのクオリティをしっかり維持できているんだなあと思いました。

その他感想

今回は会場が違うことでネットワークやテーブルの勝手が違ったところなど、tdtdsさんが機転を効かせて対応なさっていたように思うので、私もそういう風になりたいなと思いました。

あと、私が初めてOSS Gateワークショップに参加したときから見ていただいているy-gotoさんに「進行役も堂々とできるようになったし、初めてあったときからだいぶ変わったよね。須藤さんの影響受けてるね」と言われて素直に嬉しかったです。まぁ…須藤さんに限らず、色々OSS Gate(とそれに参加する方々)の影響は受けていますね。

集合写真

直近のOSS Gateのイベント

  • 今月23日に東京ミートアップ
  • 11月18日に大阪ワークショップ
  • 11月25日に東京ワークショップ

があります。興味があったら参加してみてください。

RAVPower USB-A to USB-C ケーブルのレビューです

はじめに

この記事はRAVPowerさんの商品無料体験プログラムによって書きました。RAVPowerさんありがとうございます!

去年、RAVPowerの充電器とケーブルのまとめ買いをすると割引になるセールの時に、こちらの充電器ケーブルを購入したのですが、今でもとくに問題もなく気に入って使っています。なので、RAVPowerの製品について、少なくとも嫌いということはないですね。むしろ好感を持っていると思います。

それで、9月に商品無料体験プログラムの案内が来たので、ケーブルと充電器について応募したところ、両方送ってくださいました。まずケーブルをレビューしたいと思います。

商品のAmazonのページはこちらです。

Amazon | RAVPower USB-C to USB-A ケーブル ( 0.9m + 1.8m ) 56KΩ 急速充電 高耐久軍事用素材採用 Galaxy S8 / S8+ 、MacBook 、Xperia XZ 各種対応– ホワイト | RAVPower(ラブパワー) | 家電&カメラ 通販

スペック

Amazonに記載されているスペックを表にしてみました。

端子形状 USB-A / USB-C
ケーブルの長さ 0.9m + 1.8m (2本)
使用している抵抗 56kΩ
電源供給能力 12V / 2.4A
USB規格 USB 2.0

転送速度がUSB 3.1ではなく2.0の理論値480Mbpsが上限なのが気になりますが、Androidスマートフォンでの使用を想定すると、結局ファイルのやりとりでは標準的なMTP接続がネックになりそうなので、その限りにおいてはあまり問題なさそうです。

USB-A to USB-Cなケーブルは56kΩな抵抗を使用しないとヤバいらしいのですが、スペック上ではちゃんと56kΩの抵抗を使用しているようです。

また、このケーブルを充電に使用する場合に供給できる電力は、使用される充電規格によって異なります。充電規格について、前述のリンクと同じサイトの記事が参考になりました。

乱立するスマホ向け急速充電の規格について調べた | HANPEN-BLOG

それぞれの充電規格と、このケーブルで供給できる電力を表にしてみました。

充電規格 最大電流 最大電圧 最大電力
USB 2.0 5V 0.5A 2.5W
USB BC 5V 1.5A 7.5W
PowerIQ系 5V 2.4A 12W
Quick Charge (2.0〜) 12V 2.4A 28.8W

対応しているACアダプタとスマートフォンを持っていれば、Quick Chargeによる急速充電の恩恵を受けられそうです。そういうわけで、スマートフォンでのデータ転送/充電に適しているといえそうです。

あとは充電器とワットチェッカーを揃えて実際の電圧や電流を調べると良いのでしょうが、あいにく持っていないので保留です。(更新するかも)

開封

外箱の寸法は200mm * 108mm * 20mmです。かさばる大きさではないと思います。

外箱

取っ手をつまんで引き出すと、ケーブルが2本出てきます。手前のが0.9m、奥のが1.8mですかね

外箱からトレイを引き出したところ

トレイにケーブル2本が収まっている

カードがケーブルの下に同梱されていて、無料で12ヶ月の保証延長ができる案内と、問いあわせ先の情報が記載されています。日本向けの電話窓口があるんですね。

カード

保証方法と問いあわせ先が記載されている

ケーブル(0.9m)の取り出した状態と、両端のコネクタ部分の外観です。質感はマットでさらさらしています。ケーブルの直径は約3mmです。

ケーブルを取り出したところ

USB-C側の先端(正面)

USB-C側の先端(上)

USB-A側の先端(正面)

USB-A側の先端(上)

USB-A側のコネクタ部分にくぼみがあり、つまみやすいようになっています。良いと思います。

USB-A側の形状

ある程度ケーブルのクセが残っている感じはしますが、取り回しやすい部類に入ると思います。動画撮ってグネグネしてみましたが、まあ伝わりにくいだろうなー…

感想

USB-C関係のアクセサリーは対応している規格を注意深くチェックする必要がありますし、中には規格準拠を謳っていても適合していない製品もあり、使用するのが危険なものもあると聞きます。この製品の場合は、スペック上はとくに使用するのに不安な点はなさそうです。(検証する環境はないのですが)

あと、この商品は0.9mと1.8mの2本セットなのですが、0.9mは外出用、1.8mは室内用という感じに使い分けられますね。これひとつ買っておけば室内外をカバーできます。

私は充電ポートがUSB-CなZenfone 3とGPD Pocketを持っているので、活用したいと思います。

GPD Pocketを0.9mのケーブルで充電している様子

レビューに関する指摘、レビューしてもらいたい事項などTwitterで教えていただければ、できるかぎり応えたいなと思います。以上です。