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年最後のエントリがこれになるとは。

「難しい」で終わらせないって話と、今年買ってよかったもの10選

このエントリは GMO Pepabo Managers Advent Calendar 2019 の 12/9 のエントリです。昨日はTamonさんによる「Concorde effect」でした。

割とすぐ書き終えてしまったので、後半に「今年買ってよかったもの10選」を続けて書いたら、好きが溢れてしまいました。それではご覧ください。

“「難しい」で終わらせないって話と、今年買ってよかったもの10選” の続きを読む

IIJ mioからdocomoにMNPした

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

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

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

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

ドメインからネームサーバーをしらべてスプレッドシートに記録するGAS

タイトルの通りなのだけど、ドメインのリストからネームサーバーを調べて、結果をスプレッドシートに出力するGASを書いた。きっとシェルとかでやるようなことだと思うけど、ググったらこのページがヒットしたので、GASでもできるならと試してみた。

“ドメインからネームサーバーをしらべてスプレッドシートに記録するGAS” の続きを読む

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

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'