照明デザイン究極ガイドなど照明関係の本をいろいろ読んだ

照明デザイン究極ガイド 最新版

  • QA集。コーブ照明を検討しているのでその辺りのQAが参考になった。
  • 基本、造作なのでコストが大変。市販品を工夫でなんとか、みたいなのとは違う世界。
  • 後半の素材別の透光サンプル集がすごい。照明計画デザイナーはこんなことまで考えているんだね

住まいの照明設計

  • 空間の明るさ感の説明がわかりやすい
  • 説明が全般的にコンパクトでわかりやすい
  • コーブ照明のカットオフラインの話は学びがある
  • 居室ごとのポイントもわかりやすかった

世界で一番やさしい照明 (110のキーワードで学ぶ)

  • キーワードごとに2ページしか説明がないので割と物足りない
  • オフィスや商業施設の説明が多い

NA選書 照明ガイド

  • 最初のチャプターの、光による行動誘因、ベース照明としての間接照明の使い方とムラを抑える工夫などは役に立った
  • その後は公共施設、商業施設の説明がメインになるのであまりフィットせず

とっておき住宅デザイン図鑑

イデア集。こういうのをどれか一つでも入れると、面白い住宅になるのかもしれない。

福多 佳子 超実践的住宅照明マニュアル 増補改訂カラー版 を読んだ

LED完全対応版が出ているけど、基本的な説明は変わっていないと思うので、読んだのは古い方。

照明の本はだいたい、理論と実践というパートに分かれていて、

  • 理論パートでlm, lx, cdの説明から、光源ごとの用途、器具ごとの用途の説明
  • 実践パートでは、住宅での居室ごとでの考え方、作例、商業施設での作例

を説明しているのだけど、この本は、理論と実践のバランスがよく、住宅居室ごとの説明と作例も手厚くて、素人が個人住宅の設計を考える最初の一歩として、これを読むと一通りのインプットができる。良い本。

タスク・アンビエント照明という概念を学んだのだけど、全体を照らすアンビエント照明と必要な手元を照らすタスク照明という考え方はわかりやすい。全体を通して抑えておいた方がいい。

以下、読んでいるときのメモ。

  • 天井、壁面を照らすと広がりを感じやすい
  • フロアランプなどで光の重心を下げると部屋の安定感を印象づけやすい
  • ダイニングのペンダントライトは卓上から70mm
  • ダイニングにペンダントライトをつけても、全体を照らす照明もあった方がいい
  • 建築化照明のコーブ照明は30度傾斜とかさせると光がよく広がる
  • 玄関は段差を照らして強調するとアプローチしやすい

長野県の地方都市で100坪の土地を買った

岡山の事情を読んでなるほどと思い、手元に書いたメモを公開してなかったことを思い出したので公開しておく。


移住した先の上田市で土地を買った。こっちに引っ越してから1年も経ってないのに、展開の速さに自分でもびっくりする。

土地を買うにあたっての感想などを書いておく。

土地を買ってから住宅会社を決めたのでそれも後で公開する。Suumoカウンターや住宅展示場なども見たけど、それでは選ばなかったみたいな話。

いい土地は出てこない

全然出てこない。本当に出てこない。地方でもいい土地を買うのって全然簡単じゃなかった。

東京より地方の方が土地も買いやすいとか漠然と思っていたけど、出てくるのは基本的に新規の分譲地で、どこもいい土地はあらかた開発されているので、今から新規で出てくるのは公共交通から遠いところとか、ハザードリスク激高みたいなところばかり。

当たり前の話だけど、いいところだと高いし、すぐ売れてしまう。 いい土地というはもちろん人によるんだけど、

  • 買い物や交通の利便性がよく、
  • ハザード地域から外れていて、
  • 道路幅が狭すぎて消防車や救急車が入りにくいとかもなく、
  • 騒がしくなく寂しすぎもせず、
  • 車で出入りしやすいけど、乱暴な運転の車や騒音なども少なくて、
  • 公園などへも行きやすく、
  • 評判の悪くない学校の学区で、
  • 眺望がひらけていて、
  • 南側の採光を遮るものがなく、

みたいなところはだいたい多くの人にとってのいい土地で、そりゃまあ出てこないし、でてきても高いし、そして、すぐ売れてしまう。

いい土地は表に出てこない

いい土地はインターネットにも出てないし、なんなら不動産屋ネットワークにも載ってない。出たらすぐ売れるはず。

不動産屋にも相談してたけど特に連絡もなかったな。むしろ、建築会社の方が積極的に土地を探してくれる(建てると儲かるので)けど、ネットワークに出てる土地は売れ残ってる土地なので、あんまり意味はなかった。

僕が見つけたのは、住みたいエリアをジョギングしたり散歩したりしていたときにたまたま見つけた土地で、不動産屋ネットワークに載ってない土地だった。立て看板の電話番号に電話して、それで買うことができた。

いい土地は高い

当たり前なんだけど、上記のような条件が揃った土地は相場より高かった。まあでも、地価が高い地域ということがもたらすメリットもあるし、地価はそんなに下がるものでもないので、その辺もひっくるめて納得して買った。

土地と税金

税金のこと全然知らない。土地って、更地より家屋がついてる方が全然税金安いんだね。

固定資産税

3年間、固定資産税額の2分の1が軽減 https://www.city.ueda.nagano.jp/soshiki/zeimu/2766.html

長期優良住宅なら5年 だけど、2022-03-31までの間に新築 だけど、延長するかもらしい https://www.city.ueda.nagano.jp/soshiki/zeimu/4494.html

耐火住宅とは鉄筋コンクリート造や鉄骨鉄筋コンクリート造など

不動産取得税の軽減措置 https://www.pref.nagano.lg.jp/zeimu/kurashi/kenze/aramashi/aramashi/fudosan/kegen/shikichi.html 0円になるくらい軽減されるようだ 不動産取得申告書っていつ提出するんだろう 県税事務所に電話してみるか

行政書士さんに支払う費用もけっこうかかる

行政書士さんに支払う費用もけっこうかかる。私道の共同所有分もあったりすると、その分も手数料かかってくる。安くない。

値切り交渉は不動産屋の仲介手数料も交渉するべき

マックスの「取引物件価格(税抜)×3%+6万円+消費税」とか普通に請求されたりするけど、こここそ値切り交渉すべき。両手取引なら絶対交渉したい。

バリューオブジェクトを利用しやすくするためのActiveRecord Attribute API, ActiveModel Attribute APIでのカスタムクラスの活用

サブジェクトが長い。

tl;dr

  • Attribute APIにはカスタムクラスを登録できるのでバリューオブジェクトを使うのに便利
  • 宣言に合わせて自動で変換してくれるので、デシリアライズのときにも便利
  • バリューオブジェクトを積極的に使っていきたい

ActiveRecord Attribute APIの利用

ActiveRecordにはAttribute APIというのがあって defaultlimit が指定できて便利です。 ActiveRecord::Attributes::ClassMethods

Boolean型の属性に"false""off" などのそれっぽい文字列を入れると false というBoolean型への変換をしてくれているのもこのレイヤーです。 rails/boolean.rb at d269b5a4cf3fbd8072927e6fda4a2e38dc640d2c · rails/rails · GitHub

Attribute APIにはカスタムクラスを定義することもできるので、バリューオブジェクトの利用も容易になります。

例えば以下のようなテーブルとそれに対応したモデルがあって、

# db/migrate/20211117084043_create_cakes.rb
class CreateCakes < ActiveRecord::Migration[6.1]
  def change
    create_table :cakes do |t|
      t.integer :price

      t.timestamps
    end
  end
end

# app/models/cake.rb
class Cake < ApplicationRecord
  attribute :price, :list_price
end

attributeとして list_price という型が指定されていると、バリューオブジェクトとして以下が定義されていて、かつ、シリアライザーが同時にこのように定義されていて、

# app/models/list_price.rb
class ListPrice
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :real_price, :integer

  def with_tax
    real_price * 1.1
  end

# スコープを狭める方がいいのでクラス内に定義
  class Type < ActiveModel::Type::Integer
   def cast_value(value)
      if value.is_a?(Integer)
        ListPrice.new(real_price: value)
      else
        super
      end
    end

    def serialize(value)
      value.real_price
    end
  end  
end

initializerなどでActiveRecordの型(ActiveModelの型とは区別されているので注意)として登録されていると、

# config/initializers/types.rb
ActiveRecord::Type.register(:list_price, ListPrice::Type)

以下のように、newするときに意識することなく、バリューオブジェクトを使うことができ、かつ、DBにアクセスするときは自動でキャストしてくれます。

irb(main):008:0> cake = Cake.new(price: 5400)
=> #<Cake id: nil, price: #<ListPrice:0x00005601c7c72a30 @attributes=#<ActiveModel::AttributeSet:0x00005601c7c72990 @attributes={"...
=> #<ListPrice:0x00005601c7c72a30 @attributes=#<ActiveModel::AttributeSet:0x00005601c7c72990 ...
irb(main):010:0> cake.price.with_tax
=> 5940.000000000001
irb(main):012:0> cake.save
  TRANSACTION (0.1ms)  begin transaction
  Cake Create (24.9ms)  INSERT INTO "cakes" ("price", "created_at", "updated_at") VALUES (?, ?, ?)  [["price", 5400], ["created_at", "2021-11-17 09:40:26.428082"], ["updated_at", "2021-11-17 09:40:26.428082"]]
  TRANSACTION (32.9ms)  commit transaction
=> true
irb(main):013:0> c2 = Cake.first
  Cake Load (6.4ms)  SELECT "cakes".* FROM "cakes" ORDER BY "cakes"."id" ASC LIMIT ?  [["LIMIT", 1]]
=> #<Cake id: 1, price: #<ListPrice:0x00005601c65a3f70 @attributes=#<ActiveModel::AttributeSet:0x00005601c65a3e80 @attributes={"re...
irb(main):014:0> c2.price.with_tax
=> 5940.000000000001
irb(main):015:0> c2.price.real_price
=> 5400

ActiveModel Attribute APIでの利用

Railsガイド にはないですが、ActiveModelで属性を定義するときにActiveModel::Attributes::ClassMethodsを使うと同じように定義ができて便利です。そして、ここでも同じようにカスタムクラスを使うことができます。

class Bread
  include ActiveModel::Model
  include ActiveModel::Attributes

  attribute :flavor, :string
  attribute :price, :list_price
end

ここで一つ注意なのは、ActiveRecordのAttribute APIの型の登録とActiveModelの型の登録は区別されているため、どちらにも使うには2回登録する必要があります。

# config/initializers/types.rb
ActiveRecord::Type.register(:list_price, ListPrice::Type)
ActiveModel::Type.register(:list_price, ListPrice::Type)

これらを登録すると以下のように、ActiveModelのクラスでもシームレスにバリューオブジェクトを利用できます。

irb(main):018:0> brea = Bread.new(price: 500)
=> #<Bread:0x00005601c8095d38 @attributes=#<ActiveModel::AttributeSet:0x00005601c8095c98 @attributes={"price"=>#<ActiveModel::Attr...
irb(main):019:0> brea.price.with_tax
=> 550.0
irb(main):020:0> brea.price.real_price
=> 500

ActiveModelでの入れ子シリアライズのときに便利

上記のシームレスな型の変換は、シリアライズの時にも便利です。というか、今回はこのニーズがあって、挙動を調べていました。

例えば、以下のような入れ子のActiveModelモデルがあったとして、

class Bread
  include ActiveModel::Model
  include ActiveModel::Attributes
  include ActiveModel::Serializers::JSON

  attribute :price
  attribute :wheat
end

class Wheat
  include ActiveModel::Model
  include ActiveModel::Attributes
  include ActiveModel::Serializers::JSON

  attribute :color, :string
end

そのままシリアライズすると、デシリアライズの時に型が戻らず、ハッシュとして復元されてしまいます。

irb(main):001:0> b1 = Bread.new(wheat: Wheat.new(color: 'white'))
=> #<Bread:0x00005556cc140258 @attributes=#<ActiveModel::AttributeSet:0x00005556cc140168 @attributes={"price"=>#<ActiveModel::Attr...
irb(main):004:0> b1.to_json
=> "{\"attributes\":{\"price\":null,\"wheat\":{\"attributes\":{\"color\":\"white\"}}}}"
irb(main):002:0> b2 = Bread.new.from_json(b1.to_json)
=> #<Bread:0x00005556cb9d74d0 @attributes=#<ActiveModel::AttributeSet:0x00005556cb9d7408 @attributes={"price"=>#<ActiveModel::Attr...
irb(main):003:0> b2.wheat
=> {"color"=>"white"}
# ハッシュなので使いにくい!!!!

なので、この場合もwheat型を定義して登録してやると、

# app/models/bread.rb
class Bread
  include ActiveModel::Model
  include ActiveModel::Attributes
  include ActiveModel::Serializers::JSON

  attribute :price
  attribute :wheat, :wheat
end

# app/models/wheat.rb
class Wheat
  include ActiveModel::Model
  include ActiveModel::Attributes
  include ActiveModel::Serializers::JSON

  attribute :color, :string

  class Type < ActiveModel::Type::Value
    def cast_value(value)
      if value.is_a?(Hash)
        Wheat.new(value)
      else
        super
      end
    end
  end
end

# config/initializers/types.rb
ActiveModel::Type.register(:wheat, Wheat::Type)

JSON由来のハッシュからのデシリアライズのときにも、適切なバリューオブジェクトの型として戻してくれるので非常に扱いやすいです。

irb(main):001:0> b1 = Bread.new(wheat: Wheat.new(color: 'white'))
=> #<Bread:0x000056235a18a5f0 @attributes=#<ActiveModel::AttributeSet:0x000056235a18a500 @attributes={"price"=>#<ActiveModel::Attr...
irb(main):002:0> b2 = Bread.new.from_json(b1.to_json)
=> #<Bread:0x0000562359b33a08 @attributes=#<ActiveModel::AttributeSet:0x0000562359b33918 @attributes={"price"=>#<ActiveModel::Attr...
irb(main):003:0> b2.wheat
=> #<Wheat:0x000056235a176ed8 @attributes=#<ActiveModel::AttributeSet:0x000056235a176e38 ...
irb(main):004:0> b2.wheat.color
=> "white"

花井 架津彦 庭と住まいの照明手帖 を読んだ

照明の参考に読んでみたら、3分の1が外構、庭の照明について、3分の1が室内照明と庭との調和についてで、3分の1が室内照明についてでちょっと期待と違った。だけど、外構の作り方についてもすごく参考になって、読んでよかった。

外構を照らすことはそんなに考えてないけど、照らした時の映え方とか上から照らすことの価値とかわかりやすかった。

室内照明と庭との調和は、ガラスへの写り込みをどう制御するかがメインと理解。基本的には明暗の差を大きくして、ガラス側に光源や光の反射を向けないのが大切というのがわかった。けど、日本の一般住宅ってみんな夜はカーテン閉めるからそもそもガラスを意識しないよね。なんというか、夜にカーテンを閉めないで済む庭や中庭や眺めを持っている家ってほとんどないし、庭の照明の設置もほとんどないし。贅沢な話だ。

室内照明のパートはすごい。照明の配置を変えた比較の写真があってすごくわかりやすい。集中配灯の効果がよくわかる。廊下の照明が壁へ照り返して、それが建具を照らすと空間が美しくないとか考えたこともなかった。なんというか、照らすなら意図を持ってやれということなんだね。

もともとシーリングライトをつけるつもりもなかったし、ダウンライトつけまくるつもりもなかったけど、この本のおかげで結構良い照明計画が作れるんじゃないかと思う。

荻野寿也の「美しい住まいの緑」85のレシピ を読んだ

家づくりの検討が進んで外構も検討し始めていて、いくつか読んでみた中でこれが一番、素敵な作例があって役に立つ情報が載っている本だった。あんなオシャレな庭にする余裕はないけど、株立ちの並べ方とか木の選び方はすごく参考になった。

これもエクスナレッジの本。非常に助かる。

ブティック社はエクステリア&ガーデンという季刊誌を出しているのでそれのムックをいくつか読んでみたけど、どれも趣味に合わなかった。載っている作例もそもそもの雑誌のレイアウトも全く美しくなくて、全然内容が頭に入ってこない。

以下、眺めた本。

車を買って1年経った

1年前、上田に移住することに決めたので、車も買うことにした。

移住後に買ってもよかったんだけど、最初期だけでも車がないのは困るので、移住前に購入することにした。

車種を決める

アメリカいる時にレンタカーとかジップカーとかで、

  • ボルボのセダン(高級車って運転するのラク
  • シボレーのSUV(でかいのはラク、サンルーフが開くのもかっこいいけど全然開けない)
  • ヒュンダイのセダン(真っ直ぐ進まなかったのでもう乗りたくない)
  • トヨタのカムリ(すごい普通)

とかいろいろ乗って、日本でもレンタカーとかタイムズカーシェアとかで、

とかを乗ってきて、レンタカーでスバルのインプレッサに乗ったら、運転もしやすくてかなりよかったのでスバルが候補に。

高速道路もそこそこ乗るので、運転支援は欲しいと思っていて、トヨタ、ホンダの運転支援も調べたり人に聞いたりしたけど、あんまり安定感もなさそうだったので、メーカーはスバルで選ぶことにした。

XVがいいかなと思っていたけど、予算の問題でインプレッサスポーツになり、新車にこだわる必要もなかったので中古で探すことにした。

中古の条件は以下にした。

  • インプレッサスポーツ
  • AVHが欲しかったので2018年モデル
  • 初めての車なので走行距離が10000km程度以内のもの
  • 長野で走るので路面凍結があるかもなのでAWD
  • カーナビは小さいのは嫌だったので8インチのディーラーカーナビ
  • 品質評価点が4.5以上

運転支援のアイサイトは車の車種と年式によっていろいろバージョンがあるみたいだけど、どれがどれでどういう機能があるのかがすごくわかりにくい。

2018 インプレッサに搭載されているのはアイサイト 3。機能は以下。

アイサイトの説明はこれが一番わかりやすかった。 アイサイトまるわかり便覧:2021年2月最新版 | スバルショップ三河安城 愛知県

中古車を探す

スバルが運営している中古車情報サイトSUGDASというのがあって、スバルのディーラーが扱っている中古車が検索できる。ここはAIS品質評価というのをやってくれていて、状態を数値として客観的に知ることができるし、評価レポートもかなり詳しくて、小さい傷でも位置とか深さとかを乗せてくれていて非常に良い。

だけど一つ難点があって、新着情報のお知らせメールとかを送ってくれない。だるいなーと思っていたら、SUGDASというのはグーネットのOEMだった。で、グーネットは新着お知らせメールがある。なので、グーネットで新着情報を受け取り、実際の情報はSUGDASで見るというのをやっていた。

でも、グーネットもSUGDASも閲覧済みリンクの色が変わらなくて腹が立つ。なので、ユーザースタイルシートで閲覧済みリンクの色を変えた。stylusでもいいんだけど、大したことでもないので自前でchromeエクステンション書いて使っていた。

GitHub - shrkw/chrome-ext-show-visited-link: show visited links on ucar.subaru.jp and goo-net

あと、スプレッドシートで比較したかったので、ページの欲しい情報をタブ区切りで表示するスクリプトとか書いていた。

中古車情報スプレッドシート
中古車情報スプレッドシート

5月から探し始めて、車を決めたのは8月。3ヶ月くらいかかっていた。

決めた車を買う

ずっと見ていると愛知、兵庫あたりで希望の車が出てくるのが多い。

第一候補にしたのも岐阜のスバル販売店。AIS評価に書かれているダメージをメールで写真を送ってもらって確認し、購入決定。サイドビューモニター付きで、Sスタイルという装飾付きのやつ。200万円行かないくらい。

運搬費でも6万くらいはかかるので、運転自体は嫌いじゃなかったので、新幹線で名古屋まで、ローカル線で販売店まで行き、現地で無事、受け取り。さっそく、東名高速で東京までのドライブ。東京はまあ、車が多くて走るのが大変だ。

車検証の住所変更

そんなこんなで車で長野まで引っ越し。引っ越しをすると車検証の住所変更が必要だけど、それほど難しそうじゃなかったので、自分で陸運局に行ってやることにした。

手続き自体は手引きの通りにやるだけで、1時間くらいでナンバープレートの付け替えまで完了。いい経験だった。

1年運転して

嬬恋へのドライブ
嬬恋へのドライブ

運転支援はやはりすごいラク。高速道路でACCとアクティブレーンキープがすごい便利なのは期待通りだけど、ACCは一般道での走る時も前方の車との距離を自動で適切にしてくれるので、普段からすごくラクになる。

燃費はだいたい13.9km/lくらいか。これはまあ仕方ない。

次に車を買うときは多分、EVになっているはず。いい感じのEVがたくさん出ているといいな。