HEXO を vagrant 上で使ってみる

HEXO

今まで middleman に手を加えてサイトを作ってたのですが、
ビルドが遅かったりなんで HEXO を試してみたら速いしよさげ。

インストール

nvmを入れる

1
2
3
4
5
$ curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash
$ exit
% vagrant ssh
$ nvm --version
0.33.1

node.js を入れる

1
$ nvm install stable

hexo を入れる

1
$ nvm install hexo-cli -g

プロジェクトを作成する

共有フォルダ上だとシンボリックリンクのエラーが出るので、それ以外でやる。

1
% hexo init proj

ソースファイルを共有フォルダにする

_config.yml をいじる:

1
2
3
4
# Directory
#source_dir: source
source_dir: /home/vagrant/src/hexo/source
public_dir: public

参考サイト

フィギュアスケート・チートシート

チートシート

チートシートとは、いわゆるカンニングペーパーのことで、覚えておくべき、でも忘れてしまいがちな事項を一枚紙にまとめておくものです(プログラミング等でよく用いられる)。

フィギュアスケート(のルール)の場合、基礎点や要件、レベル特徴など、年々変更されるため覚えておくのが難しく、それらをまとめていつでも参照できるようペーパーを作ってみました。

内容としては、以下のとおり:

  • vol.1: ジャンプ規定
  • vol.2: スピン規定
  • vol.3: ステップ規定、PCS

文字数やスペースの関係でかなり説明を省いており、正確性には欠けますので、必要に応じてハンドブック等を確認してください。
修正コメント等は @ataru_kodaka まで。

2016-17年シーズン準拠版

PDF:

[フィギュアスケート・チートシート2016-17準拠PDF版ver1.05 (PDF:760KB)]

画像:

<% 1.upto(3).each do |i| %>


<% url = “/images/cheat_sheet_vol#{i}.png” %>


<% end %>



2017冬イベント「光作戦」

参考サイト

マップ

E1乙

潜水艦隊で3回出撃でサクッとクリア

E2乙

削り:輸送

TP:400

  • 熊野(司令部)、江風(大発)、皐月(大発ドラム)、霞(大発)、朝潮(大発)、千代田甲(二式水戦)
  • 鬼怒(20.3x2、大発)、秋月(対空)、潮(10cm高角x2、ドラム)、大潮(10cm高角x2、大発)、プリ、鈴谷(夜偵、照明灯)

試行:

  1. A:116
  2. A:116
  3. C:0
  4. A:118
  5. A:50 → クリア

ゲージ破壊:機動部隊

  • 熊野(司令部)、天城、葛城、雲龍、サトラガ、千代田甲(二式水戦):対空485-524
  • 鬼怒(20.3x2、大発)、秋月(対空)、江風(大発)、大潮(10cm高角x2、大発)、プリ、鈴谷(夜偵、照明灯)

E3乙

  • 彩雲輸送:潜水艦6(紫雲2)w/決戦支援
  • ギミック解除:I:潜水艦6
  • ゲージ削り、攻略
    • 戦艦4、ちよちと
    • 阿武隈、綾波、摩耶、夕立、妙高、北上

middleman v4 の collection と resources 機能を使ってみる

middlemn v4 では resources と collection というのが導入されたらしいのですが、公式ドキュメントを見てもいまいち分かりにくいです。どうやらわざわざextension で manipulate_resource_list() を使わなくても手軽にリソース操作ができるっぽいですね。

resources を使ってみる。

とりあえず、すべてのリソースに ‘foo’ というローカル変数を使えるようにしてみます。config.rb に

1
2
3
resources.each {|res|
res.add_metadata(locals: {foo: "YES! FOO!!!"})
}

と書くだけで、*.html.erb で

1
foo? <%= foo %>

と使えるようです。確かに便利ですね。v3ではこれをするのには Middleman::Extension から派生させたクラスを作って manipulate_resource_list() を書いてそのクラスを Middleman::Extensions に register して activate して、、、という手順を踏まなければなりませんでしたから。

collection を使ってみる

ドキュメントのタグの例題が分かりにくいので、ここでは、「見てほしい記事に mitene: 100 とかフロントマターにつけて大きい順に表示する」というのをやってみたいと思います。

config.rb:

1
2
3
mitene = resources.select {|r| r.data.mitene }.sort_by {|r| r.data.mitene}.reverse
collection :mitene, mitene

というふうに、collection() を使って、あるシンボルに対して、resources から始まるチェーンから作られたオブジェクトを紐付けしてあげます。そうすると mitene.html.erb でそのシンボルを使って、

1
2
3
4
5
6
7
<h2>みてね!</h2>
<ul>
<% collection(:mitene).each do |res| %>
<li><%= link_to(res.data.title, res) %></li>
<% end %>
</ul>

というふうに、集めておいたオブジェクトを呼び出せるようです。

また、config.rb:

1
2
mitene = resources.select {|r| r.data.mitene }.group_by {|r| r.data.mitene }
collection :mitene, mitene

とハッシュにしてあげて

1
2
3
4
5
6
7
8
9
10
11
<h2>みてね!順</h2>
<ul>
<% collection(:mitene).sort_by {|r, v| r}.reverse.each do |key, items| %>
<li><%= key %>
<ul>
<% items.each do |res| %>
<li><%= link_to(res.data.title, res) %></li>
<% end %>
</ul>
<% end %>
</ul>

と受け取ることも出来ます。

ちょっとリソースに手を加えたり、特定の条件のリソースを集めておいてテンプレートで使うということが手軽にできそうな感じです。

また分かり次第追記していきます。

フレームワーク構想

middleman ベースで作りたいと思ってること

  • middleman-blog だとソースファイル名に日付をつけることが前提になってるのがイヤ(frontmatterに date: つければいいんだけど)
    • hack してみたけど、あんま美しくならない
  • game/kancolle/event/2015-summary.html.md をつくると、自動的に game/index.html, game/kancolle/index.html, game/kancolle/event/index.html にサマリー作ってほしい
  • デザインは http://grabacr.net/ さんとこがいい感じ
  • archives は月別があればいい
  • 連載記事サポート機能
    • software/middleman/01-ready.html.md, …/02-start.html.md とかすると title に自動的に 第n回とか入ってほしい
  • pagination は欲しい
  • tag はあんま使わない

ってんで
http://atarukodaka.github.io/software/middleman/middleman-akcms.html 
のように動くのを akcms と銘打って https://github.com/atarukodaka/middleman-akcms/ としてみたけど、いろいろごちゃごちゃしてきてどうしようかと。

問題、提案など

  • resource にインスタンスをつけたいんだけど、Middleman::Sitemap::Resource 直にモンキーパッチあてるのは避けたいし、
    • manipulate_resource_list() で each resource に extend してもいいんだけど、pagination するときに ProxyResource を new すると extend されてないんでモニョ. clone してもパラメータ上書きできないし
    • link template は apply_uri_template するよいか proxy resource へのハッシュを持っておいて link_to() するほうが楽だと思うんがねえ
  • 自動サマリー、タグ、アーカイブ、ペジネーションなどをまとめるとごちゃごちゃするので別にするか
    • タグ、アーカイブは、v4 だと collection 機能でサクッとできるっぽいし

middleman-akcms 文書管理拡張機能のご紹介

概要

middleman のディレクトリごとのサマリーを自動生成する文書管理システムを拡張機能として作ってみました。

akcms - Ataru Kodaka Content Management System - atarukodaka/middleman-akcms

動作サンプルはこちら:Home - Ataru Kodaka Site

スナップショット:


スナップショット

foo/bar/baz.html を作成すると、foo/bar/index.html, foo/index.html, index.html といったディレクトリサマリーページを自動生成します。これにより、どのリソースからも parent, children でたどることができるようになります。

その他、月別アーカイブ、タグ、ペジネーション、breadcrumbなどをサポートします。
付属テンプレートでは bootstrap3をサポートします。

インストールと使いかた

middleman4 を入れた状態で、テンプレートを指定してプロジェクトを作ります

1
$ middleman init proj --template git@github.com:atarukodaka/middleman-akcms.git

後は通常どおりにprojに入って bundle install し、source/ 以下お好きなようにファイルを作って中身を書き build や server 回します。

設定

config.rb

config.rb にて :akcms を activate し、各種設定をします。

1
2
3
4
5
6
7
8
activate :akcms do |akcms|
akcms.layout = "article"
akcms.directory_summary_template = "templates/directory_summary_template.html"
akcms.archive_month_template = "templates/archive_template.html"
akcms.tag_template = "templates/tag_template.html"
akcms.pagination_per_page = 10
end

使うレイアウトやテンプレート群を指定してください。
ペジネーションのデフォルト表示数/頁も指定できますが、
記事ごとに指定することもできます(後述)。

設計と機能

記事 / Article

以下の特徴を持ったリソースは、記事 (article) とみなされ:

  • ignored でないもの
  • 拡張子が .html あるいは .htm のもの
  • type: フロントマターで ‘article’ 以外のものが明示的に指定されていないもの

以下のメソッドを持ちます:

  • title:記事タイトル
  • date:日付(TimeWithZoneクラス)。date: フロントマターあるいは更新日時から生成
  • summary:サマリー表示
  • published?:出力するか。published: false でなければ真
  • prev_article:次の記事
  • next_article:前の記事
  • body:記事本文(レイアウト不使用)

そして、Middleman::Sitemap::Store クラス(sitemapオブジェクトが生成される)には、以下のインスタンスメソッドが追加されます。

  • articles():全ての article リソース配列(日付逆順ソート済)

これを使って、

1
2
3
4
5
<ul>
<% sitemap.articles.first(10).each do |article| %>
<li><%= link_to(article.title, article) %></li>
<% end%>
</ul>

などと最新10件の記事を表示することができます。

また、全てのリソースに、以下のメソッドが追加されます:

  • is_article?:article かどうか
  • to_article!:当該リソースを article 属性を持たせる

see https://github.com/atarukodaka/middleman-akcms/blob/master/lib/middleman-akcms/article.rb

ディレクトリサマリー / DirectorySummary

activate の際、テンプレートを指定するとディレクトリサマリー生成機能が稼働します。

1
2
3
activate :akcms do |conf|
conf.directory_summary_template = "templates/directory_summary.html"
end

これにより、例えば foo/bar/baz.html というリソースがあった場合、

  • foo/bar/index.html
  • foo/index.html
  • index.html

が(存在しなければ)テンプレートに従いプロキシリソースが生成されます。
その際、ローカル変数として、

  • directory: 当該ディレクトリの情報を保持するname, path メソッドを持つオブジェクト
  • articles[]:当該ディレクトリ下にある article のリソース配列

が渡されるため、

1
2
3
4
5
6
7
% cat templates/directory_summary.html.erb
<h1>Directory: <%= directory.name %></h1>
<ul>
<% articles.each do |article| %>
<li><%= link_to(article.title, article) %>
<% end %>
</ul>

などと当該ディレクトリの記事一覧を作成できます。

breadcrump

全てのリソースに、ancestors メソッドが追加されるため、以下のように
breadcrumbs を手軽に作ることができます。

1
2
3
4
5
6
<ol class="breadcrumb">
<% current_resource.ancestors.reverse.map do |res| %>
<li><%= link_to(res.data.title || res.directory.name, res) %></li>
<% end %>
<li class="active">current_resource.data.title</li>
</ol>

foo/config.yml

あるディレクトリに “directory_name: “というエントリを持つ config.yml が存在する場合、
resource.directory.name はその値が入ります。

1
2
$ cat source/foo/config.yml
directory_name: フー
1
2
$ cat source/foo/index.html.erb
<h1>directory: <%= current_resource.directory.name %></h1> <!-- 'フー' と表示される -->

タグ

options.tag_template

  • resource.tags: 当該リソースのタグ配列
  • sitemap.tags:タグ=>プロキシリソースのハッシュ

アーカイブ

options.archive_month_template

  • sitemap.archives:日付(TimeWithZone)=>プロキシリソースのハッシュ

ペジネーション

  • pagination?:ヘルパ関数
  • current_resource.paginator:
    • page_number
    • num_pages

シリーズ機能

options.series_title_template

config.yml

1
series: シリーズ名

Tips

.emacs

.emacs や .emacs.d/init.el に

1
2
3
4
5
6
7
8
9
10
11
12
(require 'autoinsert)
(add-hook 'find-file-hooks 'auto-insert)
(setq auto-insert-query nil)
(setq auto-insert-alist
'(("\\.html\\.md$" . frontmatter-skeleton)
("\\.html\\.md\\.erb$" . frontmatter-skeleton)))
;; middleman-blog: article-front matter
(defun insert-article-frontmatter ()
(interactive)
(insert (concat "---\ntitle: \ndate: " (format-time-string "%Y-%m-%d") "\n\n---\n")))
(define-key global-map "\C-ca" 'insert-article-frontmatter)

とやっておくと便利です。

data/config.yml

著者名や著者・サイト情報をYAMLで記述します。テンプレートで data.config.author などと取れます。

スケートを始める話

始めてみる編

スケートを始めるには?

お近くのリンクのスケート教室に申し込むのが一番です。独学だと変な癖がつくし危険なので、最初は基礎を習った方がよいです。

教室が満員でなかなか入れない

リンクや時期によってはウェイティングリストが長くなることもあるようです。

リンクはどこにある?

首都圏だと、フルシーズンで神宮、高田馬場シチズン、東伏見、東大和、上尾、銀河など。
冬季のみは赤坂サカス、六本木、など。いずれもリンクは小さいです。

服装は?

塗れても大丈夫な動きやすいもの。上はTシャツにパーカーなどを羽織り、下はダボダボしてないジャージのパンツなど。スエットだと濡れが残るしダボつくので避けた方が吉。下にヒートテック的な股引をはくとよいですね。

そのうち専用のスケートパンツやスカートを用意しましょう。リンク付属の専門店やアイススペースなどで売ってます。

手袋は必須。リンクで売ってます。

靴は買った方がよい?

コーチと要相談ですが、教室に何回か通った後、続けられそうであれば早めに揃えた方がいいでしょう。貸し靴はエッジも甘いしブーツもよれてるので滑りにくく、余計にうまく滑れません。

どの靴がいい?

これもコーチと相談ですが、ブーツは小杉やオオタ、マルジュウなどの国産革製のほうが足になじんでよいです。軽いプラスチックのものは耐久性に欠けるし馴染みにくいので避けたほうがよいかと。トリプルを飛ぶのに軽さを求め、頻繁に靴を変える選手ならともかく、大人スケーターは多少重くとも革製が無難です。

ブレードはコロネーションエース一択でしょう。シールやパターンはまだ先です。入門用のセット靴はお勧めしません。

滑ってみる

とりあえずどうすればいいの?

  • ペンギンツー
  • ひょうたん
  • 交互に

転ぶのが怖いんだけど、、

転ぶときは転ぶので、安全な転び方を会得しましょう。

あ、ヤバい、とバランスを崩したら、体を捻って体を丸めつつ横に倒れましょう。頭を打つのが一番怖いです。

手で支えようとしないこと。下手に手を出すとポキッと折れます。

立ち上がれない、、

四つんばになります。片膝をついて、近くに人がいればそれに掴まりつつ、もう片方の足を出して立ち上がります。慣れれば大したことありません。

人とぶつかりそうで怖い
小さい子供やヨタヨタしてるレジャー客からは距離を取りましょう。周りの人がどっちに滑ろうとしてるのかを見つつ、突然その人が転んでも避けられる距離とスピードで滑ること。

うまい選手は勝手に避けてくれますが、脇をスピードを出してすり抜けられるのは怖いので、あまりに危ない時はスタッフに言って注意してもらいましょう。ホッケー少年が鬼ごっこしてるときがあります。

ひょうたんがうまくできない

基本ながら、結構難しいです。特に開いた後閉じるのが。

逆ハの字にすれば勝手に足が開いて進んでくのですが、すぐ止まっちゃうか、そのままマタサキになってしまいがち。

開いて進んだら、かかと側を押し出すようにブレードの少し後ろ目に乗ってあげると、足がハの字になって閉じてくれます。基本的にフォアでは少し後ろに乗ります。

片足滑走なかなかできない

まず両足ひょうたんをしっかり深くやります。外側の足でしっかり押します。徐々に内側の足を浮かし外側の足だけで滑ります。それがフォアインの片足滑走です。

同様に内側の足で押し、外側を浮かせればフォアアウトです。

フォアアウトでしっかりインを押し片足で長く滑りチェックの姿勢を取ればストロークになります。

滑ってみる続編

サポーターつける?

クロスがうまく出来ない

まずシャッセをやりましょう。

ターンで腰が回ってしまう

オフアイス編

筋トレは必要?

最初のうちは、軽い運動が問題なくできる程度の体力と筋力があれば問題ないので、無理にする必要はないです。スケートで必要となる内股の筋肉はつけにくいので、多く滑って自然につける、と捉えた方がよいかと。あと背筋も使います。

スケートのためというより、継続的に体操やウォーキングをやるのはもちろんいいですね。

二分のプログラムをスピードを落とさず滑りきりたいとか高いジャンプを飛びたいとかなってくると、股上げやダッシュなどで体力筋力をつけるのもありですが。

3群ランカー

必要戦果

E0全部割って(+705)、5-4を毎日15周して(+900)、適宜オリョクル・北方・東方クエなどをこなせば
およそ 1,700 ぐらいになるので、これくらいあれば500位には足りるかと。

5-4周回

下記二種類をローテーションさせて疲労抜きさせる。

中央ルート :潜水艦

安い、速いで効率が高い。HPの低いろーちゃんを旗艦にして、まるゆにダメコンを積ませる。
まるゆがボス前で大破することがそこそこあるが、ダメコン積んで進んでも、まず使われることはない。
まるゆを入れておくと被弾しても修理が速いため効率があがる。撃破率は若干落ちるが、さほど問題ではない。
ボスでは夜戦までやらないとC敗北することがある。

オール単縦。

北ルート:高速・ドラム4

高速戦艦1、空母2、重巡1は固定で。戦艦は連撃装備に徹甲弾、制空は360程度。

ドラム缶を積める駆逐艦を育成する場合は、駆逐艦(ドラム缶3)を旗艦にし航巡(+ドラム缶1)を加える。
積めない重巡などを育成する場合は、通常装備でそれを旗艦にし、航巡(ドラム缶4)を加える。

  • 駆逐艦(ドラム缶3) or 他種艦(連撃装備)
  • 戦艦(連撃装備、徹甲弾)
  • 航巡(ドラム缶1)or 航巡(ドラム缶4)
  • 重巡(連撃装備)
  • 空母 x 2 (制空360程度)

オール単縦。2戦目は複縦でもいいが、単縦でぶちのめしたほうが結局被弾も少ない。

  • 未改造駆逐艦だとさすがに大破することが多いので、演習などで改造レベルに達してからのほうがよい。
  • ボス戦では無理にS勝利狙いで夜戦をする必要はないが、残りが輸送艦のみで補給艦クエが残ってる場合などは行ってもよい。
  • 航巡はそれぞれ2隻ずつ用意し、数隻をドラム缶4搭載、それ以外を連撃装備+ドラム缶1にしてローテーションさせるとよい。

艦これ検証部問題メモ

概要

艦これ検証部まとめ Wikia - Wikia
をどうぞ。

主要人物

  • 検証部
    • 在籍
      • のいじ
      • 南条
    • 脱退
      • びいかめ
      • CC
      • オリカル
  • 批判者
    • 監察部
    • たのごろう
    • ktgohan(卵のひと)

音声ファイル

南条氏謝罪

6/26/2016づけ「お詫び」文書:http://www.asahi-net.or.jp/~JR7K-SGMT/owabi.pdf

  • 検証部部員への「オフレコ暴露話」はすべて虚言
  • 「のいじ氏にtwitter垢を任せていた」のも嘘

検証DB仕様

  • RDBM などは使っておらず json 形式のテキストデータを保持
  • 「人数」は UUID 数、つまり接続セッション数のこと。6月末時点で実人数は500人程度
  • 分析時はローカルのPCにダウンロードして行う
    • その「ダウンロードツール」はID, パスワードが埋め込まれており、それを入手すれば誰でもデーターをダウンロード可能。