RubyでCSVファイルに記載されたURLの画像をダウンロードする

書捨てのプログラムを作成したので貼る。

require 'csv'
require 'fileutils'
require 'open-uri'

csv_data = CSV.read('image_url.csv')
puts "start..."

csv_data.each do |data|
  id = data[0]
  url = data[1]
  sleep(2) #2秒待つ

  FileUtils.mkdir_p("./images/#{id}")
  begin
    open(url) do |file|
      open("./images/#{id}/0.jpg", "w+b") do |out|
        out.write(file.read)
      end
    end
  rescue OpenURI::HTTPError => e
    p e
  end


  p data
end

puts "complete!"

ビジネスエアポート東京という皇居の濠端を臨むレンタルオフィス

business-airport.net

JR東京駅からも徒歩7分とアクセス抜群で、「移動に便利」「お客様を招きやすい」と好評です。皇居の濠端を臨むロケーションにあり、ラウンジから見える豊かな緑が癒しを与えてくれます。

皇居の濠端を臨むという最高なロケーションだったので利用してみた。

会員でなくても一日5000円で利用可能。

安くない金額だが、皇居の濠端を臨みながら行う仕事は、エリートになった気分です。ただ、安価でいい場所は他にもありそう。

Laravelのベストプラクティス

Laravelの開発におけるベストプラクティスがまとめられている。

It's not a Laravel adaptation of SOLID principles, patterns etc. Here you'll find the best practices which are usually ignored in real life Laravel projects.

github.com

有益な情報がコンパクトにまとまっていて良い。

知っている内容は多かったが、LaravelからJavascriptにデータを渡す際に次のようにするのは新しい知見だ。Jsのオーバーヘッドは気になるが、確かにJsonで渡せば型情報を渡せるわな。

<input id="article" type="hidden" value="@json($article)">
let article = $('#article').val();

テキストエディタの正規表現でWhere In句の一部を生成する

a001
a002
a003

といった文字列から

'a001', 'a002', 'a003'

みたいなのをテキストエディタで生成したい。

CotEditorの場合次のとおりになる。

検索条件

^(.*)\n

置換条件

'$1', 

正規表現を図にするツール

正規表現を状態遷移図にするツール。自分の書いた正規表現を確認したい際に便利。検索エンジンで「Regexp Visualizer」あたりで検索すると類似のツールが出てくる。

Regulex:JavaScript Regular Expression Visualizer

f:id:Artisan:20190106215319j:plain

XMLでエレメントと属性のどっちに持たせるか問題

XMLスキーマを設計しているといつも悩む。

<person>
  <id>1</id>
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>
<person id="1">
  <sex>female</sex>
  <firstname>Anna</firstname>
  <lastname>Smith</lastname>
</person>

データ項目をエレメントと属性のどちらに持たせるか。StackOverflowにこの件に関して記事があった。

stackoverflow.com

まとめると次の通り。

  • 木構造にできるし、複数繰り返せるのでエレメントの方が優位
  • 属性は将来的な拡張性が無い
  • データはエレメント。データのメタデータは属性