Windows 10のタスクスケジューラでスケジュールされたタスクの名前を変更する方法
https://soundartifacts.com/ja/how-to/219-how-to-rename-scheduled-task-in-task-scheduler-on-windows-10.html
干支
干支(かんし、えと、中国語: 干支、ピンイン:gānzhī)は、十干と十二支を組み合わせた60を周期とする数詞。
$ irb irb(main):001:0> hs = ['甲','乙','丙','丁','戊','己','庚','辛','壬','癸'] => ["甲", "乙", "丙", "丁", "戊", "己", "庚", "辛", "壬", "癸"] irb(main):003:0> eb = ['子','丑','寅','卯','辰','巳','午','未','申','酉','戌','亥'] => ["子", "丑", "寅", "卯", "辰", "巳", "午", "未", "申", "酉", "戌", "亥"] irb(main):008:0> for i in 0..59 irb(main):009:1> print "#{hs[ i % 10 ]}#{eb[ i % 12 ]} " irb(main):010:1> end 甲子 乙丑 丙寅 丁卯 戊辰 己巳 庚午 辛未 壬申 癸酉 甲戌 乙亥 丙子 丁丑 戊寅 己卯 庚辰 辛巳 壬午 癸未 甲申 乙酉 丙戌 丁亥 戊子 己丑 庚寅 辛卯 壬辰 癸巳 甲午 乙未 丙申 丁酉 戊戌 己亥 庚子 辛丑 壬寅 癸卯 甲辰 乙巳 丙午 丁未 戊申 己酉 庚戌 辛亥 壬子 癸丑 甲寅 乙卯 丙辰 丁巳 戊午 己未 庚申 辛酉 壬戌 癸亥 => 0..59 irb(main):011:0>
該当日の修正ユリウス日を60で割って余りを求める。
修正ユリウス日(MJD)
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E9%80%9A%E6%97%A5#%E4%BF%AE%E6%AD%A3%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E6%97%A5%EF%BC%88MJD%EF%BC%89
グレゴリオ暦から修正ユリウス日への換算
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E9%80%9A%E6%97%A5#%E3%82%B0%E3%83%AC%E3%82%B4%E3%83%AA%E3%82%AA%E6%9A%A6%E3%81%8B%E3%82%89%E4%BF%AE%E6%AD%A3%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E6%97%A5%E3%81%B8%E3%81%AE%E6%8F%9B%E7%AE%97
修正ユリウス日が導入された理由
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E9%80%9A%E6%97%A5#%E4%BF%AE%E6%AD%A3%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E6%97%A5%E3%81%8C%E5%B0%8E%E5%85%A5%E3%81%95%E3%82%8C%E3%81%9F%E7%90%86%E7%94%B1
ユリウス通日の考案
https://ja.wikipedia.org/wiki/%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E9%80%9A%E6%97%A5#%E3%83%A6%E3%83%AA%E3%82%A6%E3%82%B9%E9%80%9A%E6%97%A5%E3%81%AE%E8%80%83%E6%A1%88
ユリウス日(理科年表オフィシャルサイト)
https://www.rikanenpyo.jp/kaisetsu/koyomi/koyomi_011.html
干支を表示するcalを作るぞ
(hscal.rb)
#!/usr/bin/env ruby require 'date' HS = ['甲寅','乙卯','丙辰','丁巳','戊午','己未','庚申','辛酉','壬戌','癸亥', '甲子','乙丑','丙寅','丁卯','戊辰','己巳','庚午','辛未','壬申','癸酉', '甲戌','乙亥','丙子','丁丑','戊寅','己卯','庚辰','辛巳','壬午','癸未', '甲申','乙酉','丙戌','丁亥','戊子','己丑','庚寅','辛卯','壬辰','癸巳', '甲午','乙未','丙申','丁酉','戊戌','己亥','庚子','辛丑','壬寅','癸卯', '甲辰','乙巳','丙午','丁未','戊申','己酉','庚戌','辛亥','壬子','癸丑'] if ARGV.size == 0 date = Date.today elsif ARGV[0] =~ /^(\d+)$/ date = Date.parse("#{$1}-01-01") elsif ARGV[0] =~ /^(\d+)-([1-9]|0[1-9]|1[0-2])$/ date = Date.parse("#{$1}-#{$2}-01") elsif ARGV[0] =~ /^(\d+)-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|1[0-9]|2[0-9]|3[01])$/ date = Date.parse("#{$1}-#{$2}-#{$3}") else puts "invalid argument" exit(0) end day = date.day month = date.month year = date.year lastday = Date.new(year, month, -1).day if month == 1 month = 13 year -= 1 elsif month == 2 month = 14 year -= 1 else #pass end mjd = ( 365.25 * year.to_f ).to_i + ( year.to_f / 400.to_f ).to_i - ( year.to_f / 100.to_f ).to_i + ( 30.59 * ( month.to_f - 2.to_f ) ).to_i + 1 - 678912 month = date.month year = date.year printf "%d年%2d月\n", year, month puts "Sun Mon Tue Wed Thu Fri Sat " cwday = mjd % 7 i = cwday while i % 7 != 4 print " " i -= 1 end (1..lastday).each do |d| printf "%2d%s ", d, HS[ ( mjd + d - 1 ) % 60 ] if cwday % 7 == 3 print "\n" end cwday += 1 end print "\n"
使ってみる。
$ ./hscal.rb 2022年 9月 Sun Mon Tue Wed Thu Fri Sat 1丁巳 2戊午 3己未 4庚申 5辛酉 6壬戌 7癸亥 8甲子 9乙丑 10丙寅 11丁卯 12戊辰 13己巳 14庚午 15辛未 16壬申 17癸酉 18甲戌 19乙亥 20丙子 21丁丑 22戊寅 23己卯 24庚辰 25辛巳 26壬午 27癸未 28甲申 29乙酉 30丙戌 $ ./hscal.rb 2022 2022年 1月 Sun Mon Tue Wed Thu Fri Sat 1甲寅 2乙卯 3丙辰 4丁巳 5戊午 6己未 7庚申 8辛酉 9壬戌 10癸亥 11甲子 12乙丑 13丙寅 14丁卯 15戊辰 16己巳 17庚午 18辛未 19壬申 20癸酉 21甲戌 22乙亥 23丙子 24丁丑 25戊寅 26己卯 27庚辰 28辛巳 29壬午 30癸未 31甲申 $ ./hscal.rb 2022-11 2022年11月 Sun Mon Tue Wed Thu Fri Sat 1戊午 2己未 3庚申 4辛酉 5壬戌 6癸亥 7甲子 8乙丑 9丙寅 10丁卯 11戊辰 12己巳 13庚午 14辛未 15壬申 16癸酉 17甲戌 18乙亥 19丙子 20丁丑 21戊寅 22己卯 23庚辰 24辛巳 25壬午 26癸未 27甲申 28乙酉 29丙戌 30丁亥
あってるかな?
sql server のバックアップファイルをリモートサーバに作成するスクリプト
(mssql_backup_full.bat) フルバックアップ
echo %date% %time% set workdir=%1 set dbname=%2 set filename=%dbname%_full.bak sqlcmd -S localhost\sqlexpress -U <ユーザ名> -P <パスワード> -Q "backup database %dbname% to disk='%workdir%\%filename%' %3 %4" net use Y: \\<リモートサーバのIPアドレス>\<ディレクトリ> /user:<ユーザ名> <パスワード> copy /y %workdir%\%filename% Y: net use Y: /delete
使い方
> mssql_backup_full.bat <workdir> <dbname> [with init] workdir・・・直接リモートサーバにバックアップを作成する方法がわからないので、一旦ここで指定したディレクトリ(絶対パス指定)にファイルを作成し、これをリモートサーバにコピーする。 dbname・・・バックアップするデータベースの名前を指定する。 with init・・・これを指定するとファイルを上書きする。なければ追記する。
(mssql_backup_log.bat) ログバックアップ
echo %date% %time% set workdir=%1 set dbname=%2 set filename=%dbname%_log.bak sqlcmd -S localhost\sqlexpress -U <ユーザ名> -P <パスワード> -Q "backup log %dbname% to disk='%workdir%\%filename%' %3 %4" net use Y: \\<リモートサーバのIPアドレス>\<ディレクトリ> /user:<ユーザ名> <パスワード> copy /y %workdir%\%filename% Y: net use Y: /delete
使い方
> mssql_backup_log.bat <workdir> <dbname> [with init] workdir・・・直接リモートサーバにバックアップを作成する方法がわからないので、一旦ここで指定したディレクトリ(絶対パス指定)にファイルを作成し、これをリモートサーバにコピーする。 dbname・・・バックアップするデータベースの名前を指定する。 with init・・・これを指定するとファイルを上書きする。なければ追記する。
美しい楷書 ―中国と日本―
企画展
中村不折コレクション
美しい楷書 ―中国と日本―
2022年6月28日(火)~10月23日(日)
https://www.taitocity.net/zaidan/shodou/
楷書
https://kotobank.jp/word/%E6%A5%B7%E6%9B%B8-42493
王羲之
https://kotobank.jp/word/%E7%8E%8B%E7%BE%B2%E4%B9%8B-38607
タイムラインを作るぞ(2)
ブロックタイプのカロリーメイトの販売期間をタイムラインで表示する。
販売期間のデータ
wikipedia:カロリーメイト
(caloriemate_timeline.txt)
チーズ味,1983-04, フルーツ味,1984-04, チョコレート味,1993-10, ベジタブル味,2000-09,2007 ポテト味,2007-04,2014 メープル味,2009-09, プレーン味,2014-09,2022 バニラ味,2022-03,
名称、発売開始年月、販売終了年月。
タイムラインを作るぞ - マイノート
のmy_timeline.pl を修正し、my_timeline2.plを作る。
主な修正点
・期間は年月日で指定できるようにした。年月日は年で表現する。
1981-01-01 → 1981 + ( 1 - 1 ) / 365 = 1981
1981-01-02 → 1981 + ( 2 - 1 ) / 365 = 1981.00274
1981-12-31 → 1981 + ( 365 - 1 ) /365 = 1981.99726
※月、日は省略してもよい。
月、日を省略したときは、その年の1月1日。日を省略したときはその月の1日になる。
・終了日を入力しなかった場合は、"-"をタイムラインの終了日まで継続するようにした。
・タイムラインの開始年、終了年、間隔(年)は、対数を使って自動計算するようにし、また、コマンド引数でも指定できるようにした。
タイムラインの年は、"間隔"*10 で割りきれる場合に表示する。
(my_timeline2.pl)
$ more my_timeline2.pl #!/usr/bin/env perl use DateTime::Format::ISO8601; use DateTime; $usage = <<"EOS"; 書式 $0 <event file> [<min date>] [<max date>] [<step>] 説明 event file : csv形式のファイル。 event name, start date, end date event name : イベントの名称 start date : 開始日または誕生日。フォーマットはyyyy[-mm[-dd]] end date : 終了日または没年月日。フォーマットはyyyy[-mm[-dd]] min date : タイムラインの開始年を指定する。 max date : タイムラインの終了年を指定する。 step : タイムラインのステップを指定する。単位は年。 EOS if( $#ARGV < 0 ){ die $usage; } $min = undef; $max = undef; $i = 0; open( FILE, $ARGV[0] ) || die "FILE: $ARGV[0] not found."; while(<FILE>){ chomp(); ($name, $start_date, $end_date) = split(/,/); $event[$i]{name} = $name; if( $start_date =~ /^(\d{4}(-(0[1-9]|1[0-2]){1}(-(0[1-9]|[12][0-9]|3[01]){1}){0,1}){0,1})(\?*)$/ ){ #print "$1, $2, $3, $4, $5, $6"; $event[$i]{start_date} = $start_date; $event[$i]{start_question} = $6; $temp = DateTime::Format::ISO8601->parse_datetime($1); $event[$i]{start_year} = $start_year = $temp->year + ( $temp->day_of_year - 1 ) / ( 365 + $temp->is_leap_year ); } if( $end_date =~ /^(\d{4}(-(0[1-9]|1[0-2]){1}(-(0[1-9]|[12][0-9]|3[01]){1}){0,1}){0,1})(\?*)$/ ){ #print "$1, $2, $3, $4, $5, $6"; $event[$i]{end_date} = $end_date; $event[$i]{end_question} = $6; $temp = DateTime::Format::ISO8601->parse_datetime($1); $event[$i]{end_year} = $end_year = $temp->year + ( $temp->day_of_year - 1 ) / ( 365 + $temp->is_leap_year ); }else{ $event[$i]{end_date} = ""; $event[$i]{end_question} = ""; $event[$i]{end_year} = "continue"; } if( $min eq undef || $start_year < $min ){ $min = $start_year; } if( $max eq undef || $max < $end_year ){ $max = $end_year; } $i++; } $n = $i; print "min:$min\n"; print "max:$max\n"; $diff = $max - $min; print "diff:$diff\n\n"; $a = int(log($diff)/log(10)); #maxとminの差から10を底とする対数を求める if( $ARGV[1] ){ $min = int( $ARGV[1] ); }else{ $min = int( $min / 10 ** $a ) * 10 ** $a; #下位の数字を切り捨てる } if( $ARGV[2] ){ $max = int( $ARGV[2] ); }else{ $max = int( $max / 10 ** $a + 1 ) * 10 ** $a; #下位の数字を切り上げる } print "range: $min - $max\n"; if( $ARGV[3] ){ $step = $ARGV[3]; }else{ $step = 10 ** $a / 10; } print "step:$step\n\n"; #年を描く for($i=$min; $i<=$max; $i+=$step){ if( $i == int($i) && $i % ( $step * 10 ) == 0 ){ print $i; $len = length($i) - 1; }elsif( $len > 0 ){ $len--; }else{ print " "; } } print "\n"; #線を描く for($i=$min; $i<=$max; $i+=$step){ if( $i == int($i) && $i % ( $step * 10 ) == 0 ){ print "+"; }else{ print "-"; } } print "\n"; #個々のイベントを描く for($i=0; $i<$n; $i++){ if( $event[$i]{end_year} == "continue" ){ $event[$i]{end_year} = $max * 10; #大きい数字にする } #print "$event[$i]{start_year} - $event[$i]{end_year}\n"; $status = "out"; for($j=$min; $j<=$max; $j+=$step){ if( $j <= $event[$i]{start_year} && $event[$i]{start_year} < $j + $step ){ if( $event[$i]{start_question} ){ print "?"; }else{ print "I"; } }elsif( $j <= $event[$i]{end_year} && $event[$i]{end_year} < $j + $step ){ if( $event[$i]{end_question} ){ print "?"; }else{ print "I"; } }else{ if( $event[$i]{start_year} <= $j && $j <= $event[$i]{end_year} ){ print "-"; }else{ print " "; } } } print " $event[$i]{name}, $event[$i]{start_date} - $event[$i]{end_date}\n"; }
使ってみる
$ ./my_timeline2.pl caloriemate_timeline.txt min:1983.24657534247 max:2022 diff:38.7534246575342 range: 1980 - 2030 step:1 1980 1990 2000 2010 2020 2030 +---------+---------+---------+---------+---------+ I----------------------------------------------- チーズ味, 1983-04 - I---------------------------------------------- フルーツ味, 1984-04 - I------------------------------------- チョコレート味, 1993-10 - I------I ベジタブル味, 2000-09 - 2007 I------I ポテト味, 2007-04 - 2014 I--------------------- メープル味, 2009-09 - I-------I プレーン味, 2014-09 - 2022 I-------- バニラ味, 2022-03 -
自動計算だとタイムラインの終了日が2030年になるので、終了年を2022年にする。
$ ./my_timeline2.pl caloriemate_timeline.txt 1980 2022 min:1983.24657534247 max:2022 diff:38.7534246575342 range: 1980 - 2022 step:1 1980 1990 2000 2010 2020 +---------+---------+---------+---------+-- I--------------------------------------- チーズ味, 1983-04 - I-------------------------------------- フルーツ味, 1984-04 - I----------------------------- チョコレート味, 1993-10 - I------I ベジタブル味, 2000-09 - 2007 I------I ポテト味, 2007-04 - 2014 I------------- メープル味, 2009-09 - I-------I プレーン味, 2014-09 - 2022 I バニラ味, 2022-03 -
タイムラインの間隔を0.5年に変更してみる。
$ ./my_timeline2.pl caloriemate_timeline.txt 1980 2022 0.5 min:1983.24657534247 max:2022 diff:38.7534246575342 range: 1980 - 2022 step:0.5 1980 1985 1990 1995 2000 2005 2010 2015 2020 +---------+---------+---------+---------+---------+---------+---------+---------+---- I------------------------------------------------------------------------------ チーズ味, 1983-04 - I---------------------------------------------------------------------------- フルーツ味, 1984-04 - I--------------------------------------------------------- チョコレート味, 1993-10 - I------------I ベジタブル味, 2000-09 - 2007 I-------------I ポテト味, 2007-04 - 2014 I------------------------- メープル味, 2009-09 - I--------------I プレーン味, 2014-09 - 2022 I バニラ味, 2022-03 -
小さいラップ買っとけよ!!
【大発見!そうめんがお店の品格になる方法 梅素麺】 道場六三郎の家庭料理レシピ~#52
jqを使って少し複雑な条件式でフィルタリングする方法をまとめてみた
https://qiita.com/ttiger55/items/150e9a18313a55841a32
aws ec2 describe-instances | jq -c '.Reservations[]|.Instances[]|[.InstanceId]' | wc -l aws ec2 describe-instances | jq '.Reservations[].Instances[] | select(.State.Name != "terminated")' | grep InstanceId