それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

手帳術を諦め、検索フォルダや日付フォルダをRubyで生成して代わりに使うことにした。


世間では4月になると手帳がはやります。色々なノート術やメモ術が紹介されます。ブームに乗っかろうと思ったけど、ブログのネタやコード断片が手帳にならない。あと検索インデックス作るのも面倒だったし。日付順に保存とか無駄が多い。

ライブラリを活用するのも面倒なので、日付毎にファイルを集めてくる手法を考えた。

日付毎に検索フォルダ

最近30日の検索フォルダを作る。

#!/usr/bin/env ruby
#--coding-- utf8
require 'rubygems'
require 'active_support/time'
$KCODE='u'
(Date.today-30.days...Date.today).each{|d|
  name=d.strftime('%Y/%m/%d')
  str='<?xml version="1.0"?>'+
    '<persistedQuery version="1.0">'+
     '<viewInfo iconSize="32" stackIconSize="0" displayName="検索場所: takuya" autoListFlags="0">'+
     '<visibleColumns>'+
     '<column viewField="System.ItemNameDisplay"/>'+
     '<column viewField="System.DateModified"/>'+
     '<column viewField="System.ItemTypeText"/>'+
     '<column viewField="System.Size"/>'+
     '<column viewField="System.ItemFolderPathDisplay"/>'+
     '</visibleColumns>'+
     '<sortList>'+
    '<sort viewField="System.Search.Rank" direction="descending"/>'+
    '<sort viewField="System.DateModified" direction="descending"/>'+
    '<sort viewField="System.ItemNameDisplay" direction="ascending"/>'+
    '</sortList>'+
    '</viewInfo>'+
    '<query>'+
    '<conditions>'+
    '<condition type="leafCondition" property="System.DateCreated" operator="imp" propertyType="string" value="'+d.strftime('N%HK%YK%mK%dUUUUUZZNNU')+'" valuetype="System.StructuredQueryType.DateTime" localeName="">'+
    '<attributes>'+
    '<attribute attributeID="{9554087B-CEB6-45AB-99FF-50E8428E860D}" clsid="{C64B9B66-E53D-4C56-B9AE-FEDE4EE95DB1}" chs="1" sqro="585" timestamp_low="138062678" timestamp_high="30135093">'+
    '<condition type="leafCondition" property="System.DateCreated" operator="imp" propertyType="string" value="'+d.strftime('N%HK%YK%mK%dUUUUUZZNNU')+'" valuetype="System.StructuredQueryType.DateTime" localeName="">'+
    '<attributes>'+
    '<attribute attributeID="{9554087B-CEB6-45AB-99FF-50E8428E860D}" clsid="{C64B9B66-E53D-4C56-B9AE-FEDE4EE95DB1}" chs="1" sqro="585" timestamp_low="37676936" timestamp_high="30135093">'+
    '<condition type="leafCondition" property="System.DateCreated" operator="imp" propertyType="string" value="'+d.strftime('N%HK%YK%mK%dUUUUUZZNNU')+'" valuetype="System.StructuredQueryType.DateTime" localeName="ja-JP">'+
    '<attributes>'+
    '<attribute attributeID="{9554087B-CEB6-45AB-99FF-50E8428E860D}" clsid="{C64B9B66-E53D-4C56-B9AE-FEDE4EE95DB1}" chs="0" parsedString="作成日時:&#8206;'+name+'" localeName="ja-JP" timestamp_low="37676936" timestamp_high="30135093"/>'+
    '</attributes>'+
    '</condition>'+
    '</attribute>'+
    '</attributes>'+
    '</condition>'+
    '</attribute>'+
    '</attributes>'+
    '</condition>'+
    '</conditions>'+
    '<kindList>'+
    '<kind name="item"/>'+
    '</kindList>'+
    '<scope>'+
    '<include knownFolder="{F3CE0F7C-4901-4ACC-8648-D5D44B04EF8F}"/>'+
    '</scope>'+
    '</query>'+
    '<properties>'+
    '<author Type="string">'+
    'takuya</author>'+
    '</properties>'+
    '</persistedQuery>'
    
    open("#{name.gsub('/','-')}.search-ms", "w+"){|f| f.write str }
}


これでかなり勝てる。

日付毎に整理したい人のために


日付毎のディレクトリを作り、ディレクトリを月ごとにまとめておいた。これで手帳術が気にならなくなります。手帳術やEvernote活用するより、今すぐ手に入るディレクトリとファイル名で対応した方が絶対速いって。

#!/usr/bin/env ruby
$KCODE='utf8'
require 'rubygems'
require 'active_support/time'
(Date.today-20.days..Date.today+300.day).each{|i|
  p_dirname = i.strftime('%Y年%m月')
  name = i.strftime('%d日')
  Dir.mkdir(p_dirname) unless File.exist? p_dirname
  Dir.mkdir("#{p_dirname}/#{name}") unless File.exist? "#{p_dirname}/#{name}"
  #Dir.mkdir("#{i.to_s}") unless File.exist? "#{i.to_s}"
}

さらにWEBサーバーに出せば?

アンドロイドでもiphoneでもいつでも確認できて便利です。Evernoteいらねー