百均ではじめるガーデニング

品目 百均 コメント
ほぼ発芽してる。しない場合は日当たり、水など他の問題
移植ゴテ とくに問題なし
鉢、プランタ 強度や通気性の問題はあるものの、とりあえず使いには問題なし
園芸ハサミ 使えるは使えるけど、使い勝手やキレ味はいまいち
用土 × 分量が少なくコスパ悪い。また水はけがよくなく質もいまいち。ホームセンター、園芸店で買うべし。12L300円ぐらいの培養土。

2015冬イベント

1.雪風改  Lv96
 [5連(酸素)/5連(酸素)/探照灯](夜戦カットイン)
2.夕立改二 Lv84
 10高角/10高角/33号電探
3.綾波改二 Lv83
 10高角/10高角/33号電探
4.神通改二 Lv84
 3号砲(+4)/3号砲(+4)/夜偵
5.北上改二 Lv112
 [53艦首(酸素)/5連(酸素)/甲標的](夜戦カットイン)
6.秋月改  Lv89
 10高角+高射(+2)/10高角+高射(+2)/13号電探改

雪風改    五連酸素×3
妙高改二   3号 2号 水上偵察機 照明弾
筑摩改二   3号 2号 瑞雲12型  32号電探
利根改二   プリンツ砲×2 三式弾 FuMOレーダー
足柄改二   3号 2号 水上観測機 照明弾
秋月改    10cm連装高角+高射装置×2 13号電探改

時雨改二 Lv95 五連装酸素★+4×2、三連装酸素★+9
筑摩改二 Lv92 3号砲★+4×2、夜偵、14号電探
利根改二 Lv74 3号砲★+1、15.5副砲×2、照明弾
秋月改  Lv85 秋月砲★+4×2、13号電探改
那智改二 Lv72 3号砲★+4、10cm高角(砲架)、レーダー、94式高射★+4
妙高改二 Lv72 3号砲★+5、15.5副砲×2、照明弾

秋月改(秋月砲x2 13号改)
那珂改ニ(2号砲x2 探照灯)
足柄改ニ(3号砲 2号砲 32号 照明弾)
羽黒改ニ(3号砲x2 FuMO 32号)
大井改ニ(甲標的 SKCx2)
雪風改(5連酸素魚雷x3)

(1)時雨改二 Lv83 61cm五連装(酸素)魚雷,10cm連装高角砲+高射装置,13号対空電探改
(2)秋月改 Lv63 10cm連装高角砲+高射装置,10cm連装高角砲+高射装置,13号対空電探改
(3)妙高改二 Lv91 61cm五連装(酸素)魚雷,61cm五連装(酸素)魚雷,照明弾,九八式水上偵察機(夜偵)
(4)那珂改二 Lv87 20.3cm(2号)連装砲,20.3cm(2号)連装砲,九八式水上偵察機(夜偵)
(5)大井改二 Lv83 SKC34 20.3cm連装砲,SKC34 20.3cm連装砲,甲標的
(6)龍鳳改 Lv91 烈風(六〇一空),天山一二型(友永隊),九七式艦攻(友永隊),流星(六〇一空)

AEHJKルート

秋月改 Lv61 10cm+高射装置×2 13号改電探
木曾改二 Lv122 13.3副砲×2 甲標的
那珂改二 Lv54 SKC34×2 32号電探
北上改二 Lv134 13.3副砲×2 甲標的
五十鈴改二 Lv72 20.3cm(3号) 20.3cm FuMO25レーダー
雪風改 Lv88 艦首魚雷 5連装魚雷×2
~~~

2015春イベント「第十一号作戦」

2015春イベント - 第十一号作戦

  • 全6面:甲クリア @司令部レベル:106
  • E-3,4,5に札付き
  • 獲得艦娘
    • ローマ
    • リットリオ
    • 秋津洲
    • 高波
    • 葛城

資源

  • 開始前資源:89k/74k/160k/37k/1115
  • クリア時資源:51k/40k/124k/36k/918
  • 増減:-48k/-34k/-36k/-1k/-197

参考サイト

マップ

E-1甲

水雷部隊(軽巡2駆逐4)ですんなりクリア。札なし。

E-2甲(連合艦隊)

水上打撃ですんなりクリア。札なし。

  • 主力:軽空母2戦艦2重巡2
  • 随伴:軽巡1重巡1雷巡2駆逐2
    k

E-3甲

軽巡1(那珂)高速戦艦1(榛名)重巡3(加古、古鷹、衣笠、プリケツ)軽空母1(飛鷹)

上ルートでクリア。

  • 現状資源:84k/68k/157k/38k/1088
  • 資源増減:-5k/-6k/-3k/-1k/-27

E-4甲(連合艦隊)

  • 主力:正空3(天城:烈風・司令、二航戦)、戦艦2(日向伊勢:三式)、重巡1(那智)
  • 随伴:軽巡1(夕張:WG42、探照灯)、重巡2(高雄パンパカ:三式)、戦艦1(金剛’:三式)、駆逐2(潮:照明弾、初春)

大破撤退数回、撃破撃ち漏らし1回

  • 現状資源:78k/65k/152k/36k/1047
  • 資源増減:-6k/-3k/-5k/-2k/-41

E-5甲

  • 鈴谷(探照灯)、比叡(三式)、山城(三式)、熊野、401

撃破で手間取るもしおいキラ三重でクリア。

  • 現状資源:73k/60k/148k/36k/1020
  • 資源増減:-5k/-5k/-4k/-0k/-27

E-6甲(連合艦隊)

削り(上ルート)

  • 主力:金剛(司令)、比叡、長門、陸奥、ちよ、ちと
  • 随伴:北上、神通、妙高、大井、夕立、綾波

撃破(上ルート)

  • 主力:ちよ(司令)、大和、武蔵、長門、陸奥、ちと
  • 随伴:時雨(カットイン)、神通(夜偵)、妙高(探照灯)、大井、綾波(照明弾)、北上(カットイン)

ボス撃破に数回手間取るも、北上カットインにより撃破。

  • 現状資源:51k/40k/124k/36k/918
  • 資源増減:-22k/-20k/-24k/-0k/-102

雑感

今までのイベントに比べると、かなり楽。
ボス撃破で何回か手間取ったところもあったが、
編成、装備の見直し、キラ付で突破可能。

本棚に飾ってあるフィギュアにLED照明をあてたい

ググってみた:

build status バッジをつける

バッジ

github 見てるとよく張ってありますね。

travis - build: pass

Build Status

テストが通ってるか調べてくれるの。各ruby のバージョンで rake test 回してくれて便利。

.travis.yml に

1
2
3
4
5
6
7
8
rvm:
- 2.2
- 2.1.0
- 2.0.0
script: "bundle exec rake test"
env: TEST=true

と書いて add, commit して git push。

Rakefile に

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
require "bundler/gem_tasks"
require 'rake/clean'
require 'cucumber/rake/task'
require 'middleman-core'
Cucumber::Rake::Task.new(:cucumber, 'Run features that should pass') do |t|
ENV["TEST"] = "true"
exempt_tags = ""
exempt_tags << "--tags ~@nojava " if RUBY_PLATFORM == "java"
exempt_tags << "--tags ~@three_one " unless ::Middleman::VERSION.match(/^3\.1\./)
t.cucumber_opts = "--color --tags ~@wip #{exempt_tags} --strict --format #{ENV['CUCUMBER_FORMAT'] || 'pretty'}"
end
require 'rake/clean'
desc "Run tests, both RSpec and Cucumber"
task :test => [:spec, :cucumber]
require 'rspec/core/rake_task'
desc "Run RSpec"
RSpec::Core::RakeTask.new do |spec|
spec.pattern = 'spec/**/*_spec.rb'
spec.rspec_opts = ['--color', '--format nested']
end

としとくと cucumber と rspec を回してくれる(middleman-blog のから)。

んで、https://travis-ci.org にいって github 垢でログインして
当該レポをチェック。

coverall - coverage: 95%

Coverage Status

テストがどこまでコードをカバーしてるか調べてくれるらしい。

github 垢でログインして対象のレポをチェックするだけ。

code climate - code climate: 3.4

Code Climate

コードの品質をチェックしてくれるらしい。
4点満点。一文が長すぎたり複雑すると点数が落ちるっぽ。

同じくgithub 垢でログインして対象のレポをチェックするだけ。

extension覚書

extension が new されるのは

Middleman::CoreExtensions::Extensions::ClassMethods::register

##

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
bin/middleman
Middleman::Cli::Base.start
super (Thor)
Middleman::Cli::Console.console
require 'middleman-core'
autoload :Application 'middleman-core/application'
register Middleman::CoreExtensions::Request
register.....Middleman::Extensions::register defined in 'middleman-core/extensions'
registered[name.to_sym] = namespace
require 'middleman-core/extensions'
@app = Middleman::Application.server.inst
intract_with(@app)
IRB.irb nil, context

hook

defined at Middleman::CoreExtensions::Extensions::registered(app)

https://github.com/middleman/middleman/blob/v3-stable/middleman-core/lib/middleman-core/core_extensions/extensions.rb

  • :initialized
  • :instance_available
  • :after_configuration
  • :before_configuration
  • :build_config
  • :development_config

run at Middleman::CoreExtensions::Extensions::InstanceMethods::initialize

InstanceMethods は Application に include されるので、
結局 app.initialize の時に呼ばれることになる。

  • run :initialized
  • (activate :sprocket)
  • run :before_configuration
  • (load ‘config.rb’)
  • run :build_config if build?
  • run :development_config if specified
  • run :instance_available
  • (reload I18n)
  • run :after_configuration

Application

defined at Middleman::Application

https://github.com/middleman/middleman/blob/v3-stable/middleman-core/lib/middleman-core/application.rb

  • :before # Before request hook
  • :ready # Ready (all loading and parsing of extensions complete) hook
  • :before_build # Runs before the build is started
  • :after_build # Runs after the build is finished

ready
https://github.com/middleman/middleman/blob/5b39a33ab68a4022bbc49375c0e0d4740702b1ef/middleman-core/lib/middleman-core/core_extensions/request.rb#L53

Middleman::CoreExtensions::Request::ClassMethods::inst()

before

Middleman::CoreExtensions::Request::InstanceMethods::process_start(env, req, res)

Middleman の extensionを書くための覚書

まとめ中

基本

Middleman::Extension から派生させたクラスを作り(Middleman::Hello::Extension)、
そこに helper 関数の追加、 resource の manipulate、hook の追加などする。
そしてMiddleman::Extension.register(:hello, Middleman::Hello::Extension) した上で、
config.rb で activate :hello させれば有効になる。

参考

gem

% bundle gem middleman-hello とし gem のひな形を作る。
ファイル構成はいじる。

1
2
3
4
5
6
7
8
9
10
├── Gemfile
├── lib
│   ├── middleman-hello
│   │   ├── extension.rb
│   │   └── version.rb
│   ├── middleman-hello.rb
│   └── middleman_extension.rb
├── LICENSE.txt
├── middleman-hello.gemspec
├── README.md

lib/middleman-hello.rb

version情報と extension 本体を読み込み、register する。

1
2
3
4
5
6
7
require "middleman-hello/version"
::Middleman::Extensions.register(:hello) do
require 'middleman-hello/extension'
::Middleman::Hello::Extension
end

lib/middleman_extension.rb

middleman 本体に自拡張を読み込ませるために必要。
Middleman::Extensions.load_extensions_inpath() で読まれる。
これ忘れると template が動かないので注意。
なお ‘-‘ ではなく ‘
‘ なのでより注意。

1
require "middleman-hello"

lib/middleman-hello/version.rb

version 情報書くだけ。

1
2
3
4
5
module Middleman
module Hello
VERSION = "0.0.1"
end
end

lib/middleman-hello/extension.rb

extension 本体。ヘルパー関数書くなり resource に module 追加するなり
proxy追加するなり。

1
2
3
4
5
6
7
module Middleman
module Hello
class Extension < Middleman::Extension
...
end
end
end

config.rb

ここまで準備したら activate :hello とすると、
拡張機能が有効になる。

helper関数

簡単なものから

config.rb:helpers do

config.rb に書き下す:

1
2
3
4
5
6
% vi config.rb
helpers do
def hello
"Hello, World"
end
end

extension.defined_helpers=[]

Middleman::Extension.defined_helpers を使う:

1
2
3
4
5
6
7
8
9
10
11
12
module Middleman
module Hello
module Helpers
def hello
"Hello, World"
end
end
class Extension < Middleman::Extension
self.defined_helpers = [Helpers]
end
end
end

option

1
2
3
4
5
6
class Extension
option
def init
app.set :hello_settings, options
..

独自テンプレート

middleman init PROJ –tempate hello で source/ などを含めて
プロジェクトを作れるテンプレートを作る。

テンプレートファイル群

lib/middleman-hello/template/ 以下にテンプレートで使うファイルを置く。
Middleman::Template::Base から派生させ、テンプレート作成を行う。
主に build_scaffold()。

1
2
3
4
5
6
lib/middleman-hello/template/
├── config.tt
├── shared
│   └── Gemfile
└── source
└── index.html.md

Thor, invoke などを使ってるもよう。

作成設定

Middleman::Templates::Base から派生させて build_scaffold() で実体をコピーなどする。
Middleman::Templates.register() で登録する。

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
35
36
% vi lib/middleman-aks/template.rb
require 'middleman-core/templates'
module Middleman
module Hello
class Template < Middleman::Templates::Base
class_option "css_dir",
default: "stylesheets",
desc: 'The path to the css files'
class_option "js_dir",
default: "javascripts",
desc: 'The path to the javascript files'
class_option "images_dir",
default: "images",
desc: 'The path to the image files'
def self.source_root
File.join(File.dirname(__FILE__), 'template')
end
def build_scaffold
template "config.tt", File.join(location, "config.rb")
source = File.join(location, "source")
directory "source", source
[:css_dir, :js_dir, :images_dir].each do |dir|
empty_directory File.join(source, options[dir])
end
end
end
end
end
Middleman::Templates.register(:aks, Middleman::Aks::Template)

デバッグ時

~/.middleman/hello に template.rb を置くと Middleman::Templates::Local がそれを見る。

1
2
3
% mkdir -p ~/.middleman/hello && cd ~/.middleman/hello
% ln -s <extdevdir>/lib/middleman-hello/template.rb .
% ln -s <extdevdir>/lib/middleman-hello/template .

cucumber で middleman extension の開発とテスト

概要

テストのフレームワーク。自然言語っぽく書けるのがいいらしい。
middleman extension の開発で使うことを想定。

参考:

インストールと使い方

ただ使うなら gem i cucumber だが、
extension なので middleman-hello.gemspec に入れておく。

1
2
3
4
5
6
7
8
9
10
11
12
13
% vi middleman-hello.gemspec
...
Gem::Specification.new do |spec|
...
spec.add_runtime_dependency "middleman", "~> 3.3"
spec.add_development_dependency "bundler", "~> 1.7"
spec.add_development_dependency "rake", "~> 10.0"
spec.add_development_dependency "cucumber", "~> 1.3"
spec.add_development_dependency "aruba", "~> 0.6"
spec.add_development_dependency "therubyracer"
spec.add_development_dependency "pry-byebug"
spec.add_development_dependency "rb-readline"
`

debug 用に pry なども入れておくとよい。

1
% cucumber features/xxx.feature

features/xxx.feature

どうテストするかの規定書

1
2
3
4
5
features
├── activate.feature
├── archives.feature
├── support
│   └── env.rb

詳しくは後述。

fixtures/xxx-app/:テストするための道具や箱

テストするために使うconfig.rb や source/* などを入れておく。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
fixtures/
├── archives-app
│   ├── config.rb
│   └── source
│   ├── archives_template_month.html.erb
│   ├── archives_template_year.html.erb
│   ├── game
│   │   └── kancolle
│   │   ├── memo.html.md
│   │   └── memo.html.md~
│   └── index.html.md
├── empty-app
│   ├── config.rb
│   └── source

feature の書き方

features/support/env.rb

使うのを require しとく。middleman/step_definitions を使えば大抵どうにかなる。

1
2
3
4
5
PROJECT_ROOT_PATH = File.dirname(File.dirname(File.dirname(__FILE__)))
require 'middleman-core'
require 'middleman-core/step_definitions'
require File.join(PROJECT_ROOT_PATH, 'lib', 'middleman-hello')

xxx.feature の文法

1
2
3
4
5
6
7
8
9
10
11
Feature: 機能、つうかやることのの説明。namespace みたいなもんか
Scenario: シナリオ。これやるとこうなるはずえす
Given a fixture app "empty-app"
And a file named "config.rb" with:
"""
activate :hello
"""
When I run `middleman build --verbose`
Then the exit status should be 0
And the output should not contain "Unknown Extension: hello"
  • Given: 前提条件
  • When:こうすると
  • Then:こうなるはず

And は、直前の 上記3つのどれかと同じ。続き。

大抵、以下のひな形でどうにかなる

1
2
3
4
5
6
7
% vi hello.feature
Feature: hello
Scenario: hello
Given the Server is running at "hello-app"
When I go to "/hello.html"
Then I should see "Hello, World"

step definitions

fixtureの用意

テストする

add cucumber into gemspec or Gemfiles

1
2
% export CUCUMBER_COLORS=failed=white:failed_param=white
% bundle exec cucumber features/activate.feature

failed で黒字に赤いのは見にくいので、白くしてある。.bashrc などに加えておくと吉。

middlemanページの目次を作る

設定

markdown エンジンとして redcarpet を使い、:with_toc_data を true にセットします。

1
2
3
% vi config.rb
set :markdown_engine, :redcarpet
set :markdown, :fenced_code_blocks => true, :autolink => true, :smartypants => true, :tables => true, :with_toc_data => true

ヘルパー関数

ヘルパー関数を加えます。上記設定がされてる必要があります。

1
2
3
4
5
6
7
8
9
10
% vi config.rb
helpers do
def render_toc(page)
if config.markdown_engine == :redcarpet && config.markdown[:with_toc_data]
toc = Redcarpet::Markdown.new(Redcarpet::Render::HTML_TOC)
text = File.read(page.source_file)
toc.render(text)
end
end
end

partial template

パーシャルテンプレートを作ります。bootstrap を使ってることを想定してます。
ページのfrontmatter に “show_toc: true” としておくと、最初から目次を表示します。
そうでなければボタンを押したら表示。

後はお好みのテンプレートで partial(“partials/toc”) してください。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
% vi source/partials/_toc.html
<% page ||= current_page %>
<!-- toc -->
<% toc_class = (page.data.show_toc) ? "collapse in" : "collapse" %>
<aside class="toc">
<button type="button" class="btn btn-default collapsed btn-sm" data-toggle="collapse" data-target="#toc_content">ToC</button>
<div id="toc_content" class="<%= toc_class %>">
<% if toc = render_toc(current_article) %>
<%= toc %>
<% else %>
<div>
redcarpet :with_toc_data needs to be available. add into config.rb as below
<pre class="highlight syntax ruby"><code>set :markdown_engine, <strong>:redcarpet</strong>
set :markdown, :fenced_code_blocks => true, :autolink => true, :smartypants => true, :tables => true, <strong>:with_toc_data => true</strong>
</code></pre>
</div>
<% end %>
</div>
</aside>