ブログを再構築

ブログを再構築しました。長文を書くスペースが欲しかったので。 以前にうっかり Hugo を選んでしまったために細かいメンテナンスが積み重なっていて苦労していました。ver 1.0 以降の正式版がリリースされていないソフトなので仕方ないですが。 $ brew upgrade したらバージョンが v. 0.15 から v. 0.52 と3倍に。 テーマの書き方が変わっていて、 hugo server が動きませんでした。 使っていたテーマ はすでにメンテ終了。新しいテーマを探しました。 あるいは自前でテーマを書いてもいいですが、そんなことができるならバージョン更新で 苦労はしません。 とりあえず適当な基準でテンプレート Hermit を導入しました。 ページロードがある程度軽い。 記事てっぺんに謎の特大画像を出さない。 携帯からある程度読める。 開発が今の所継続されている。 昔はソースコードの可読性も気にしていましたが今はチェックしませんでした。長いコードは gist にでも輸出します。 あとだいたい次の作業をした記憶があります。 RSS がちゃんと出るか確認。結局全ての記事に more タグを仕込んでフルテキスト出すようにしました。 記事を content/post から content/posts に移動。Hermit は posts に記事を書かないとRSSリンクとかが壊れるので。公式にも書かれています。 about記事とかを埋めました。 視野に入っていてやってないのはアクセス解析。 GDPR 対策をつけるのがかなりだるくてつけていません。

2019-09-07 · Yu Sugawara

携帯版テーマの謎仕様

ブログのテーマの携帯版が気に入りません。今時はほとんどすべてのテーマが携帯に対応してますが、それがあまりうまくないのです。 気に入らないのは、携帯版の上画面半分を覆うタイトル画像です。多くのテーマが、かなり広い範囲をタイトルにとっています。例えば以下のとおり。 hugoのallegiantというテーマはこの通り。 base16というテーマはこの通り。 どちらも、タイトルが画面の半分以上を占拠しています。特に上のケースはタイトル内の隙間が多いことから、意識的に広範囲を埋めていることがわかります。なんででしょう。すし詰めにしろとは言わないものの、携帯の画面は小さいので、もっと節約して使って欲しいところです。 他のページ作成機であるWordPressやOctopressも似たようなものでした。何かの流行なんでしょうか。 ここまで使われているとすると何か理由がありそうです。ありそうなのは以下の2つ。 横にメニューや装飾を置けない以上、ここでデザインや、あるいは誰のサイトであるかアピールするしかない。 アクセス解析でスクロールを検出している。スクロールしない人は記事を見ていないだろうと。 見たところそういうアクセス解析はついていないので、上の理由でしょうか。スクロールすれば見えるので良い、と。

2016-01-28 · Yu Sugawara

お絵かきロジックソルバをZ3で書いた

SMT SolverであるZ3でお絵かきロジックソルバを書きました。練習です。 コードはこちら。 罠が何箇所かありました。まず、Z3 python bindingで多次元配列を作る方法がわからなかったので、1次元配列の添字を適当にスキップさせて二次元の図形用変数を作りました。これは自明。 解答を作ったあと、それを表示しようとしてハマりました。結果の配列をprintするとTrueやFalseが正しく出てくるのですが、それをアスキーアートに変えようとすると全てTrueになってしまいます。原因は以下のとおり。 >>> import z3 >>> q = z3.Bool('q') >>> s = z3.Solver() >>> s.add(z3.Not(q)) >>> s.check() sat >>> m = s.model() >>> m [q = False] >>> m.eval(q) False >>> not m.eval(q) False >>> help(m.eval(q)) Help on instance of BoolRef in module z3: class BoolRef(ExprRef) つまりm.eval(q)の返り値はBoolRefであってBoolではなく、FalseなBoolRefはpythonの真偽値としてはTrueを持つのでした。 ちなみに効率ですが、10x10の人手で解けるパズルを解くのに8秒とかかかります。ちょっとつらい。2^100の探索よりは圧倒的に速いですが、そもそも人手で解くことが可能なパズルならばもっと高速で解けて欲しいところです。不適切なツールだったということでFA。 それからz3で一般に困りそうなところ。そういえば数年前のICFPCでも困りました。 シングルプロセス 遅い時に高速化をどうすればいいかわからない。

2016-01-19 · Yu Sugawara

Hugoでblogを作ってみる。

新しいことを始めようと何か書いてみます。ブログはありますがfc2で、いまさらfc2もないと思うので放棄して新しい物を作ることにしました。 はやりを探してHugoを採用。公式ドキュメントとコミュニティが充実しているので情報を探すのが楽です。Qiita/tags/Hugoとかに日本語の記事もあります。 やったこと インストール hugo serverでブラウザで読めるようになるまでチュートリアルをこなす。 適当な文章(これ)を書く。 テーマをいろいろ変えてみる。 G+リンクを付けてみる。 fontawesomeを更新してG+のアイコンを正しくする。 一部のテキストを適当に更新。 bitbucketチェックイン。 github pagesに突っ込む。 インストール $ brew install hugo Macだったのでこれで終了。LinuxならGolangと go get で終わりだと思います。 チュートリアル とりあえず公式のドキュメントを読めばよいです。quickstartを追いかけました。あとは適当に読めばよいです。Hosting on GitHub Pagesを読んでさくっとアップロードしてしまっても良いですが、私はそれを少し日和りました。 Install some themesの作業だけ地味に時間がかかります。テーマを全部落としてくるので。 テーマ テーマを選んでサイトのデザインを変えられますが、これがなかなか苦労しました。迷います。あと不適切なやつもアリマス。 テーマはHugo Theme Showcaseから探します。チュートリアルに従うとテーマが一通りインストールされているので、 --themes の引数を変えて実際に試すこともできます。 実際に触るとテーマがいろいろとバグってたりして楽しいです。自分で文章をいくつか書いて試すことをおすすめします。私が見つけたのは以下の様な例です。 プログラム片のスタイルが崩れる。 config.yamlに指定する変数名がtypoしているので、説明通りに設定しても動かない。 トップページの概要が崩れる。 github pages に突っ込む。 Hosting on GitHub Pagesに概要があります。しかし、あんまりよい手順に見えなかったので理解したうえで別の手順で行いました。 上までの手順を行いサイト例を手元に作る。public以下は作らなくて良い。 bitbuket.orgかどこかにgit pushする。 github.comに公開用レポジトリをつくる。ここには公開されるデータのみが入ることになる。 ウェブインターフェスを用いて適当なREADME.mdを置く。 ウェブインターフェスを用いてgh-pagesブランチを作る。 あとは以下のコマンドを実行。 $ git remote add gh-gh-pages git@github.com:gusmachine/tracker.git $ git subtree add --prefix=public gh-gh-pages gh-pages --squash git fetch gh-gh-pages gh-pages warning: no common commits remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Unpacking objects: 100% (3/3), done. From github.com:gusmachine/tracker * branch gh-pages -> FETCH_HEAD * [new branch] gh-pages -> gh-gh-pages/gh-pages Added dir 'public' $ ls public README.md $ git subtree pull --prefix=public gh-gh-pages gh-pages --squash From github.com:gusmachine/tracker * branch gh-pages -> FETCH_HEAD Subtree is already at commit b9beee57b9945c67e1f3848d9c06d74d3e806f6d. これで、レポジトリは次のようになります。 bitbucket.orgにはhugoの元データが入る。 public以下はgithub.comの公開用レポジトリをsubtreeとして持つことになる。git subtree pushで更新できる。 あと上のチュートリアルで疑問に思ったこと。canonifyurls: true は独自ドメインの直下に置くことにするならおそらく不要です。username.github.io/project/ 以下に置くなら必要そうですが。 残った項目 もう少し文章を足して見られるようにする。 画像を足す方法をまじめに見る。 hugo/Image path 画像はどこに置くのか、contentとstatic/imgとで争いが起きてます。とりあえずstatic/imgに設置。Google Photosに置くアイデアは、直リンクの生成が面倒で挫折。 タグの使い方を理解。 faviconを足す。 旧ブログから誘導。 月別アーカイブやカレンダーを足す。 Markdownだとサムネイルとクリックして大きい画像みたいな作業が面倒なので何か考える。

2016-01-02 · Yu Sugawara