kiyo_hikoのブログ

メモ+日記?

ActiveRecordでDB更新したらログ吐かせたい

データの変更とか追いたいから、モデルがsaveされる(DBが更新される)ごとにログ吐くようにする。

以下2手順にて実現

1.モデルの共通的なベースを作る(前準備)
2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)

もっといい方法あるかもし、このやり方がうまげって保証無し。

手順1.モデルの共通的なベースを作る(前準備)

まずモデルにアプリ内で共通的に使う拡張機能を付ける。
このやり口はやっとくと便利な取り組みだと思ってる。開発とか数件しかしたこと無いけど。

ここでやることは2種類

concernという仕組み使ったモジュールを書き、これをアプリの標準的なモデルに取込ませる。

やること1.concern例:

共通の機能はActiveSupport::Concernを継承したモジュール書いてそれにメソッドとか定義。

models/concerns/regular_model.rb

# このアプリの共通的なモデル拡張
module RegularModel extend ActiveSupport::Concern
  def common_method
    # 何か共通的な処理
  end
end
やること2.model側の取込み例

modelのコードに以下の「これ」を追加。→ concernで定義した機能をmodelが持つ!

class Unko < ActiveRecord::Base
  # ↓これ
  include RegularModel
end

手順2.ベースのafter_saveフック内でログを吐かせる(やりたかったこと)

先にコード例。そのあと補足1点。

models/concerns/regular_model.rb

# このアプリの共通的なモデル拡張
module RegularModel extend ActiveSupport::Concern
  included do
    after_save :after_save_log
  end

  def after_save_log
    logger.warn "#{Time.now.localtime.strftime('%H:%M:%S')}#{self.class.name}が更新されました。" # ← ログ出力
    self
  end
end
補足1.includedてなんなの

ペラペラのモデルにフック書くなら

after_save :method_name # メソッド名シンボルを書く

でいいはずなのだけども、この方式はそのままconcernには持ち込めない。
includedで囲ってやる必要がある。

ruby on rails - Is it possible to define a 'before_save' callback in a module? - Stack Overflow

included do
  after_save :method_name
end

複数のWebページを巡回して自動でスクショとりたい

CrenaHtml2jpg というソフト

Windows環境下で手早くて有用そう。
GUIコマンドラインからWebページのスクリーンショットが取れる。

www.picolix.jp

作業を楽にするため、コマンドライン用に自動化バッチファイルを書いた

自動化ソフトの更に自動化。

getss.bat

@echo off
setlocal

for /f "tokens=1,2 delims= " %%a in (url.txt) do (
  CrenaHtml2jpg -o%%a -fjpeg -w1920x1080 -s1920x1080 -l5 -p -q92 -t25 -u%%b
)

endlocal
exit /b

バッチ使い方

getss.bat と 同じフォルダーに url.txt というのを置いて、

1.jpg http://www.yahoo.co.jp
2.jpg http://www.google.co.jp

みたいな感じで画像ファイル名+半角スペース+URLを記述して保存。

> getss.bat

課題

ログインを要求するサイトには何か別のしくみがひつようなのかな

参考にしたサイト

stackoverflow.com

はてブにMyベストタグを作った

あとで読み返してすごがるとかうけるために「○○Myベスト」というタグを置いた。それだけです。
たとえば雑学とかエロとか。

はてブの読み返したさを管理するいい方法ないかなー。。

雑学Myベストに関するkiyo_hikoのはてなブックマーク
エロMyベストに関するkiyo_hikoのはてなブックマーク

Rubyでゼロ埋め文字列 (printf %0s的な何か)

なんとなく必要になって書きました。

def printf_0n(n, str)
  n <= str.length and return str
  "#{1.upto(n - str.length).map{0}.join}#{s}"
end

旅行(2) 計画2~広島旅行前半

年末年始の広島旅行記

旅程の計画は画像のようになった。
計画してすぐ出発したから、既に旅程の半分ぐらいに差し掛かりつつある。
10連休ぐらいあれば1週間ゆっくり止まりたかったけどさほど日数がなく、4泊の行程でただいま2泊めである。

旅程の計画の画像

日程に関わる部分だけ抜粋

f:id:kiyo_hiko:20170101225305p:plain:w200:left
f:id:kiyo_hiko:20170101225316p:plain:w200:left

前半の行動と感想

初日:12/31

初日は朝、モサッと起きてのぞみ乗って広島駅に降り立った。

着いたのが14時ぐらいであるが、ホテルのチェックインは15時であることが事前にわかっており、本当はそれに合わせて着きたかった。
新幹線予約がギリギリだった弊害である。なるべく早く予約しないとダメだな。。

暇つぶしにいきなりゲーセンに行く(ダメ人間)。
その後駅至近のホテルにチェックインし、夕方市内散策。
徒歩で白鳥→広島城原爆ドーム平和記念公園と歩き回り、アーケード街のフタバ図書で買い物したりして帰投。
あと路面電車って歩行者的にはどう相手をすればいいのかわからなくてビビっていたけど、だいたい車と同じような感じで信号で停まったり?していたし特に気にしなくていいことわかった。広島市街を3時間ぐらい歩いた。

漫才とかクイズサバイバーとか笑ってはいけないシリーズ見たりしてゲラゲラしてたら年が明けた。めでたい。
ベッドで気がついたら寝ていた。

2日目:1/1

尾道行くつもりだったが午前中超寝てしまって行動開始タイムとか13時だったし呉に行くことにした。

f:id:kiyo_hiko:20170101153231j:plain:w400

往路はgoogle:image:227系でかっこよかった。
歴史の見える丘に徒歩で行って大和ミュージアム見学してフラフラしてた。展示内容が充実しすぎてて午後から行くと全然時間足りないこと判明した。
駆け足で回ってしまい、いつかちゃんとフルでみたい。

  • 企画展示で写真技術とかやってた。
    • ベスト・ポケット・コダックとか国産のコピー製品?とかあった
  • 呉の歴史とか見た
  • 金剛の缶?とかあった
  • 艦船模型いっぱいあった。高雄。ちょうど夕日が差して、壁に艦橋のシルエットが映ってかっこよかった。

f:id:kiyo_hiko:20170101163127j:plain:w400

  • 1/10大和

f:id:kiyo_hiko:20170101160019j:plain:w400

  • 人との比較でスケール感

f:id:kiyo_hiko:20170101163808j:plain:w400

あと歴史の見える丘行ったらDDH-182「いせ」が見えた。

f:id:kiyo_hiko:20170101144524j:plain:w400

そのあとフタバ図書で本見たりしていた。クルーズとかあったけど行けなくてショックを受けた。
帰りは黄色い各駅停車で帰った。呉駅のホームが超寒かった。呉市街+ミュージアムと緑地?を4時間ぐらい歩いた。

f:id:kiyo_hiko:20170101165534j:plain:w400

潜水艦の下にハルヒ痛車が居た。

f:id:kiyo_hiko:20170101151755j:plain:w400

夜になったら脚にガタが来てて辛くなった。モウ歳なんで今後旅行とかあれば歩く距離とかも検討する必要がありそう。
あるていどゲーセンで遊んで帰投。

旅行(1) 計画1

帰省とか考えなくていい天涯孤独な独身のうちに年末年始使って旅してくることにした。
旅程を練っており、そのとき考えたことの記録。

30日になってから計画立て始めたので即席の雑なプランだけど、先月の株式売却益が10万程度あるし、あるていど金で解決できそう

計画前構想

コンセプト:行ったことのない大阪以西の本土に行きたい
(中学高校の修学旅行で行った京都が今まで行った本土の西の限界な模様)

  • 予算:8~10万円程度
  • 行先:広島
妄想

計画たて中:寄り道する?

尾道いくなら今治までチャリ乗れるんでは?と思い調べる。

など、もやりもやりと考えてルートを勘案してみたら、2つの候補になった:

  • サンライズ瀬戸で高松まで行って予讃線今治か松山で1泊、翌朝自転車で四国を離れ本州上陸、尾道泊まる
  • オレンジフェリーで大阪南港を出発し東予港に朝到着、そのまま自転車で本州に渡り、尾道泊まる

…。

もともと呉とか三原あたりでのんびり3泊ぐらいして戻って2日ぐらい自宅でまったりと思っていたが、これでは何かハードスケジュールであり、休んでる余地が薄い。。
年末年始休業は1週間ちょっとであり、今年はあまり余裕が無い。(有給は余ってて捨てまくってるけど使ってる余裕もない)

ということで便乗で四国行く案は却下とした。

道中にあたる大阪や神戸も行ったこと無くて行ってみたかったけど日程的に却下。どうせなら2~3週間ぐらいのバカンスほしい

計画たて中:広島で完結か

行きたいところリストアップしてみる

  • 尾道
    • ラーメン
    • 山?
    • 小道?

なお12/30、12/31は平和記念資料館はお休み、広島城もお休みだそうで、広島市内行くなら正月か。
呉では大和ミュージアムは開いてるものの、てつのくじら館はお休み、入船山記念館もお休み。

交通手段検討

余裕が無いので青春18きっぷムーンライトながらやローカル線乗り継ぎは却下。サンライズで岡山行くか、なければのぞみで岡山行く。
よくわからないが往復割引乗車券で往復3万円強?
新尾道行くのは岡山-尾道の所要時間を半減させられるが、乗り換えが発生してめんどくさそうだった

岡山-尾道山陽本線で1.5時間弱 1,320円
尾道-呉が山陽本線安芸路ライナーで2時間弱 1,660円
呉-広島が安芸路ライナーで40分 500円

であり、呉を泊地としてこのへんの見どころをうろうろしたい。
あと内陸では神龍湖というところすごそうだったけど、Google候補で心霊とかでてきてビビったし、時間も貧しそうなので行かない。
絞った旅程では、18きっぷは使うメリットなさげ

ラッシュとかも検討

帰省しないのに帰省ラッシュに巻き込まれるの避けたいので。
ピークは12/31が下り、1/3が上りっぽい。こりゃ1月4日まで旅先でごろごろするかな。

その他

カメラとか忘れずに持っていきたい。

天候的には晴れ時々くもりが続くと予想されている。
南部(広島)の天気 - Yahoo!天気・災害

詳細な旅程は引き続き練る

ポーラテックもうふの限界を越えたい

10月の少し寒目になった時期?にポーラテックもうふを買っていた。
ポーラテック毛布というのはシングルで850gというレッツノート並の軽さで非常識に力強い保温性を発揮する何かである。
体積的にもタオルケット並みである。


買ったとき(羽毛布団モウいらねー)と思って掛け布団とさよならしたけど、初雪を観測し気温も氷点まで下がるに至ってやっぱり寒いという結論なった。
(ポラも1枚でだいたい掛け布団0.8枚分ぐらいの保温力なイメージ)
ポーラテックもうふ1枚とパーカーで寝てるけど、モウ1レイヤーほど防寒に必要そう。

いま検討しているのは、

・ポーラテックはんてん
・ポーラテックもうふ2枚めを取得し重ねてかぶる
・ボア?っぽいちゃんとした冬寝間着を買う

物はできるだけ軽量コンパクトが好ましいけれども、どれにすれば最小の質量と体積で実現できるかちょっと悩ましい。

以前アルミシート被って居たこともあるけど、あれは寝具って感じしなかったから無理。

唐突にほしいものメモ

持ってる株が好調に上がっているし、そろそろ賞与だしで珍しく物欲を出してみる

なんと天井照明にスピーカーがついている。スピーカーほしいケード音楽とか滅多に聞かないし、持ち腐れそうな。。
バブルラジカセ売ってた時代とか阿呆のように音楽聞いてたけど何だったんだあの時代。。

キャスター付き椅子である。今は家ではパイプ椅子を使っていて、長時間座っていると尻が痛くなってくるしい。
数年前から目をつけていたサンワサプライのSNC-L8とかが価格対座りごこちよさげだけど、20kg近い重量物とか極力家に置きたくない。

やっぱりいまいち物欲がわかない。何もかもレンタルして過ごせるレベルの金持ちとか憧れる、物を持たずにすくすくと生きれそう。