JACK PURCELL GORE-TEX HI 買った

ジャックパーセル買うのは随分と久しぶり。

ゴアテックス仕様の靴も3足目にもなると、雨が降ってようが降ってまいが履くようになってきた。

外部モニタとモニターアームを変更

自宅の作業環境は

  • MacBookPro
  • 外部モニタ1 (4K)
  • 外部モニタ2 (Full HD)

という構成だったので、外部モニタ2(Full HD)をやめて4K*2枚にすることにした。
視野角が広いIPSパネルにしようと思い、LGのものにした。

モニターアームも一本ずつ設置していたけど、ついでにまとめることにした。

もともと使っていたAcerの4Kモニタが28インチで新しいモニタは27インチ。
微妙にサイズが合わないのが気になるけど、机の上がすっきりしたので満足。

横に2枚まっすぐならべると視野に収まらなくなってしまうので、若干角度をつけて使っている。

RMagickで画像の色情報をテキストデータに変換する

「手元に数千枚の画像ファイル(10×10ピクセル)があり、この画像のカラーコードをピクセル単位でテキスト化したい」
というググってもなかなか出てこなそうなことをやったので、メモしておこう。

こういうグレースケール化された画像から #CCCCCC みたいなカラーコードを取得したい

ImageMagickをインストールして、

~/rgb via 💎 v2.5.1 took 17m31s 
❯ convert A1516.jpg txt:
# ImageMagick pixel enumeration: 10,10,65535,gray
0,0: (257,257,257)  #010101  gray(1)
1,0: (514,514,514)  #020202  gray(2)
2,0: (771,771,771)  #030303  gray(3)
3,0: (771,771,771)  #030303  gray(3)
4,0: (771,771,771)  #030303  gray(3)
・
・
(略)
・
・
9,9: (257,257,257)  #010101  gray(1)

使い方あってるか知らないけど convert ファイル名 txt というのをやると、↑のようにピクセルごとの色情報が1行ごとに出力された。

とりあえず1ファイルを対象にして欲しい情報が取れることは分かったが、手元には数千ファイルあるので繰り返し処理したい。

しかしシェルスクリプトはよくわからない

Rubyで書けないかなー?

お、RMagickというのがある。ということで以下のスクリプトを書いて実行してみた。

require 'RMagick'

files = Dir.glob('*.jpg')
for file in files do
  file_name = file
  image = Magick::Image.read(file_name)
  image[0].write(file_name + ".txt")
end
実行すると画像ごとにtxtファイルが作成される
テキストの中身には欲しい情報がある

大量のテキストファイルができたので、今度はテキストファイルから欲しい部分を取得し、一つのテキストファイルに保存するスクリプトを書く。

files = Dir.glob('*.txt')
logfile = File.open('logfile.csv','a')
for file in files do
  File.open(file){|f|
    aaa = []
    aaa.push(f)
    f.each_line{|line|
      #カラーコード部分だけ抜き出す
      aaa.push(line.slice(/\#.*/).slice(1..2))
    }
    logfile.puts "#{aaa} \n"
  }
end

カラーコードのRGBのRだけ取得できればよかったので line.slice(/#.*/).slice(1..2) と書いた。

テキストファイルに

ファイル名 1ピクセル目のR値、2ピクセル目のR値、・・・100ピクセル目のR値

というフォーマットで記録していった。ここまでくればお得意のスプレッドシートの出番である。

これで必要なデータが並んだ表ができた。

ひとまずやりたいことは実現できたので良かったが、他に色々やり方ありそうなので今度同僚に聞いてみよう。

  • GASでできるかな?
  • javascriptのcanvasはどうだろう?
  • シェルスクリプトでやるには?

2019年最後のエントリがこれになるとは。

IIJ mioからdocomoにMNPした

10月の料金プラン改定を見てたら、格安SIMとそんな金額変わらない感じになってきたし、5Gのことを考えると古巣のドコモに戻っておくのもありだなーと思っていたのでMNPした。

店頭でないとMNPできないということだったので、週末にドコモショップへ行ってきて手続き。SIM差し替えた後に、IIJ時代のプロファイルを消さないと通信できなくてちょっとハマった。

あとは駅等で利用できるWi-Fi自動接続が思いの外快適だった。
(IIJを2年使って手に入れたエコネクトの無料特典はなかなか厳しいものがあったので…)

Amazonプライム1年無料のキャンペーンも始まったし、忘れずエントリーしないと。

ターミナルのプロンプトをカスタマイズした

Railsアプリにチャレンジやー、ということでターミナルを起動する機会が増えそうなので、いくつかのサイトを参考にしてターミナルをカスタマイズした。

ブランチ名出すようにしたり、コマンド実行後に改行を入れるようにしたり。
# git ブランチ名を表示
source /Library/Developer/CommandLineTools/usr/share/git-core/git-prompt.sh
source /Library/Developer/CommandLineTools/usr/share/git-core/git-completion.bash
GIT_PS1_SHOWDIRTYSTATE=true
export PS1='\[\033[32m\]\u@\h\[\033[00m\]:\[\033[34m\]\w\[\033[31m\]$(__git_ps1)\[\033[00m\]\n\$ '

# 出力の後に改行を入れる
function add_line {
  if [[ -z "${PS1_NEWLINE_LOGIN}" ]]; then
    PS1_NEWLINE_LOGIN=true
  else
    printf '\n'
  fi
}
PROMPT_COMMAND='add_line'

# alias
export LSCOLORS=exfxcxdxbxegedabagacad
alias ls='ls -G'
alias ll='ls -la'

Udemyで統計の勉強

の2つをセールのときに買っていたので、ちょっとずつ観ていたんだけどようやく観終わった。

特に[Rではじめる統計基礎講座]は、Rstudioで検定や重回帰分析のやり方について実際に手を動かしながら学ぶことができたので良かった。

重回帰分析って名前が強そうだから敬遠してたけど、Rにある便利関数のおかげで結果を求めるまでの手順は割とシンプルなことがわかった。

スプレッドシート使ってるとついつい平均値とって満足しちゃいがちだけど、データの分布を見る癖をつけないとだなあと、2本の講座を通して実感(どっちの講師も口酸っぱく言ってた)。

「正倉院の世界」展 と 「文化財よ、永遠に」展を観に行った

正倉院が東大寺の裏手にあることすら知らなかったんだけど、正倉院展のチケットをいただいたので、週末に行ってきた。

正倉院の宝物といえば頭に浮かぶ螺鈿細工の鏡や琵琶が見れて満足。銀製の香炉は構造が凝ってて面白かった。小学生くらいの男の子が構造の展示に釘付けになっていたな。

足利義政、織田信長、明治天皇が切り取ったという香木の展示も興味深かった。
時代が違う3人が一本の香木によって繋がってるんだなあ。
あと、明治天皇、結構大胆に切り取りましたね…って感想。

日が暮れてから観に行ったのだけどそれでも随分とお客さんが多かったなー。
先日のNHK特番の効果もありそう。

もう一つ。

平成館の「正倉院の世界」展とあわせて、本館の「文化財よ、永遠に」展も観てきた。せっかく来たしついでに観るかなーという軽い気持ちで行ったのだけど、すいません…素晴らしい内容でした。

経年劣化だけでなく災害(震災とか)で損傷した仏像の修復工程を学ぶことができる貴重な展示だった。そんな壊れ方したらもう修復とか無理でしょ…ってレベルの壊れっぷりから修復してて、専門家の技術はすごかった。

特に良かった仏像は 第一展示室の 不動明王立像の2体。
一体は表情の豊かさ、もう一体は光背に立体感があり、どちらも素晴らしかった。

第二展示室には金剛輪寺の十二神将のうち6体が展示されていて、これがめちゃくちゃかっこよかった…。サイズ感、鎧や衣に入れられた細かな装飾、躍動感のあるポージング(ジョジョ立ちのルーツは仏像説を提唱したい)、本体を際立たせる特徴的な台座など、どこをとっても素晴らしく、第二会場へ入った瞬間に目を奪われてしまった。

30分もあれば見終わる小さな展示だけどオススメ。