2018年のカレンダー

SDのサイトで毎年載せていたやつですが、こちらに引っ越します。

2018年カレンダー(PDF)

# しかし去年はこのページの更新もできていなかったのですね……。

例によってイラレのJavaScriptで作ってあります。コードを見たい方は、以下。
元号が変わって、祝日もまた変わることが決定しているようなので、来年はまた微調整ですね〜。

// Calendar Script for Adobe Illustrator CS〜CS6/CS20xx
//CSの場合は文字コードをShift_JISに、CS2の場合はUTF-8にすること
 
//初期値いろいろ(長さ系の単位はすべてピクセル)
 
//ドキュメントサイズを決定
var docX = 1280;
var docY = 854;
 
// ベースのフォントサイズ;
var fontSize = 10; 
 
//1日あたりの幅
var calDX = 26;
var calDY = 26; 
 
//1月あたりのブロックの幅(「s(日曜)」から「s(日曜)」まで)
var blockX = 200;
var blockY = 250; 
 
//カレンダーの最初の表示位置
var baseX = (docX - (  blockX * 5 ) - (calDX * 6 ))/2 ;
var baseY = 500; 
 
//複数年にまたがるかどうかのフラグ
var yearTimes = 0;
 
docObj = documents.add(DocumentColorSpace.RGB,docX,docY);
 
function setColor(r,g,b)
{
  var tmpColor = new RGBColor();
  tmpColor.red = r;
  tmpColor.green = g;
  tmpColor.blue = b;
  return tmpColor;
}
 
pObj = docObj.pathItems.rectangle(0,0,1280,-854);
pObj.fillColor = setColor(255,255,255);
pObj.stroked = false;
 
txtColor = new RGBColor();
 
docObj = activeDocument;
 
function calendar(theYear__,theMonth__){
var wrtMonth= new Array(0,31,28,31,30,31,30,31,31,30,31,30,31);
var wrtDate = new Array("S","M","T","W","T","F","S"); //曜日の表示文字列を定義
 
var yearCol = [153,153,153];
var monthCol = [64,64,64];
var weekCol = [0,84,71];
 
//■↓一週間分の色(赤輝度,青輝度,緑輝度)
var wrtColor= new Array([144,144,144],[26,26,26],[26,26,26],[26,26,26],[26,26,26],[26,26,26],[128,128,128]);
var special = new Array(3,21, 9,23, 1,1, 2,11, 4,29, 5,3, 5,4, 5,5, 8,11, 11,3, 11,23, 12,23);
var specCnt = 15; //よくわからない。祝祭日11個にHappy Mondayの+2、ということで下の定義だけでいいのでは?
var specCol = [144,144,144]; // 休日の文字色
var theDate = new Date(); // 日付オブジェクトを生成
var monthNames = new Array("january", "february", "march", "april", "may", "june", "july", "august", "september", "october", "november", "december"); //月の表示文字列を定義
var specCnt = 13; // Happy Monday対策
if (theYear__){ // 年月が指定されていた場合は年月を再設定
  theDate.setYear(theYear__); // 指定年を設定
  theDate.setMonth(theMonth__-1); // 指定月を設定
}else{
  theYear__ = theDate.getFullYear();
  theMonth__= theDate.getMonth()+1;
}
// 閏年だったら2月を29日にする
if (((theYear__ % 4 == 0) && (theYear__ % 100 != 0)) || (theYear__ % 400 == 0)){
wrtMonth[2] = 29;
}
// 春分/秋分の日を求める(1980-2099まで) #special[0]special[2]では???
special[1] = Math.floor(20.8431 + 0.242194 * (theYear__ - 1980)- Math.floor((theYear__ - 1980)/4));
special[3] = Math.floor(23.2488 + 0.242194 * (theYear__ - 1980)- Math.floor((theYear__ - 1980)/4));
theDate.setFullYear(theYear__); // 指定年を設定
theDate.setMonth(theMonth__-1); // 指定月を設定
theDate.setDate(1); // 日付を1日にし曜日を次の行で取得
var count = theDate.getDay();
var day = 0; // 曜日カウンタを0にする
var date = 1; // 日付を1日にする
var flag = false; // 休日&日曜日フラグ
var hFlag = false; // 休日フラグ
var xFlag = false; // 成人の日/体育の日等の、Happy Mondayで変動する系の休日
var i,j;
var week = 0; // 2000年からの体育の日と成人の日対策
var calX = 0; //■カレンダーを表示する相対座標(X)
var calY = 60; //■カレンダーを表示する相対座標(Y)
drawColor([0,0,0]); // 色の初期化
 
//年の描画。複数年にまたがるかどうかで処理を分岐
drawColor(yearCol);
 
if(yearTimes < 1){
    if( calMonthStart == 1){
      write(theYear__, 1174, -200,146,"HelveticaNeue-Light",5,Justification.RIGHT);
    } else {
      var nextYear = Number(theYear__) + 1;
      write(theYear__  + "–" + nextYear, 1174, -200,146,"HelveticaNeue-Light",5,Justification.RIGHT);
    }
}
yearTimes++;
 
//月名の描画
drawColor(monthCol);
if(theMonth__ == 12) {
  var theMonth = 12 ;
} else {
  var theMonth = Number(theMonth__) % 12;
}
write(theMonth, 0, 0,18); // 相対座標(0pt,0pt)に描画
write(monthNames[theMonth -1], 20, 0,12,"MyriadPro-Regular",400,Justification.LEFT); // 相対座標(20pt,0pt)に描画
 
drawColor(weekCol);
for(i=0;i< 7;i++) {write(wrtDate[i], 0+i*calDX, 30, 10); } // 曜日書き出し
 
//日付の描画
flag = false; //デフォでfalseにしとく(休日が日曜日だった場合、trueに変える)
 
for(i=1;i<=wrtMonth[theMonth]+count;i++){hFlag = false; // 休日だったらtrue
    if (day >=count){
    wrt = ""+date;
    for(j=0; j< specCnt; j++){
    if ((special[j*2] == theMonth) && (special[j*2+1] == date)){
        drawColor(specCol);
        if ((day % 7) == 0) flag = true; // 休日が日曜日だったらtrue
        hFlag = true; }
    }
date++;
if ((day % 7) == 1) week++; // 月曜日の場合は週の数を増やす
}else{ wrt = " "; }
// 1月と7月と9月と10月の休日処理(Happy Mondayの処理)
xFlag = false;
if ( ((theMonth == 1) || (theMonth == 10)) && (week== 2) && ((day % 7) == 1)) xFlag = true;
if ( ((theMonth == 7) || (theMonth == 9)) && (week== 3) && ((day % 7) == 1)) xFlag = true;

truedate = date-1;
//var thisD = new Date("09-" + truedate + "-" + theYear__ ); 
var thisD = new Date(theMonth + "-" + truedate + "-" + theYear__ ); 
y = thisD.getFullYear();
m = thisD.getMonth() + 1;
d = thisD.getDate();
yb = thisD.getDay();
var thisDate = y + "-" + m + "-" + d;

var shuubunD = new Date("09-" + special[3] + "-" + theYear__ );
y = shuubunD.getFullYear();
m = shuubunD.getMonth() + 1;
d = shuubunD.getDate();
yb = shuubunD.getDay();
var shuubunDate = y + "-" + m + "-" + d;

var calcWeekCountInTargetYearAndMonthByDate = function(year, month, day) {
   var d = new Date(year, month, day);
   return Math.floor((d.getDate() - d.getDay() + 12) / 7);
}

function getDateOfWeekOfDay(year, month, week, day) { //第n週のd曜日、の算出。日付だけ戻す。
	// 1・指定した年月の最初の曜日を取得
	var mydate = new Date(month+"/1"+"/"+year);
	var firstDay = mydate.getDay();
	// 2・求めたい曜日の第1週の日付けを計算する
	var day = day - firstDay + 1;
	if(day <= 0) day += 7;
	// 3・n週まで1週間を足す
	day += 7 * (week - 1);
	// 4・結果
	result = new Date(month+"/"+day+"/"+year);
	var Y = parseInt(result.getFullYear());
	var m = parseInt(result.getMonth())+1;
	var d = parseInt(result.getDate());
	return (d);
}


gwdate = getDateOfWeekOfDay(theYear__,9,3,1);

if ( theMonth == 9 && (shuubunD.getDate() - truedate  == 1 && truedate - gwdate == 1)  ){
  xFlag = true; //「9月における「国民の休日」」成立!
}

if (xFlag){
  drawColor(specCol); 
}else{
  if ((hFlag == false) && flag == false) drawColor(wrtColor[day % 7]);
  if (((day % 7) == 1) && flag == true) { drawColor(specCol); flag = false;}
}
////////drawBox(calX, calY); //■枠を表示する部分。しない場合は行ごと削除
write(wrt, calX, calY); //fontSize明示せず
calX += calDX;
if (day % 7 == 6) { calX = 0; calY += calDY; }
day++; // 1日増やす
} // end of for()
 
}// end of function calendar()
 
//function write(txt, x,y, fontSize){
function write(){
    var textObj = docObj.textFrames.add();
 
    var fontSize = 11;
    var fontName = app.textFonts.getByName("MyriadPro-Regular");
    var trackVal= 0;
    var justification = Justification.CENTER;
 
    switch (arguments.length) {
    default:
    case 7: var justification = arguments[6];    // 第7引数まであれば justification に代入
    case 6: var trackVal = arguments[5];    // 第6引数まであれば trackVal に代入
    case 5: var fontName = app.textFonts.getByName(arguments[4]);;    // 第5引数まであれば fontName に代入
    case 4: var fontSize = arguments[3];    // 第4引数まであれば fontSize に代入
    case 3: y = arguments[2];    // 第3引数まであれば y に代入
    case 2: x = arguments[1];    // 第2引数まであれば x に代入
    case 1: txt = arguments[0];    // 第1引数まであれば arg1 に代入
    case 0:
    }
 
    //テキストプロパティの指定
    textObj.contents = txt;
 
    for ( j = 0; j < textObj.contents.length; j++){
        textObj.characters[j].size = fontSize;
        textObj.characters[j].textFont = fontName;
        textObj.characters[j].tracking = trackVal;
    }
 
    textObj.translate(baseX + x, baseY - y);
    for (var i=0; i< textObj.characters.length; i++){
        textObj.characters[i].fillColor = txtColor;
 
    //ハイフンの色の処理
        for ( j = 0; j < textObj.contents.length; j++){
            extraColor = new RGBColor();
            extraColor.red = 204;
            extraColor.green = 204;
            extraColor.blue = 204;
            if(textObj.characters[j].contents == "-"){
            textObj.characters[j].fillColor = extraColor;
            }
        }
    }
    textObj.paragraphs[0].justification = justification;
}
 
function drawColor(col){
txtColor.red = col[0];
txtColor.green = col[1];
txtColor.blue = col[2];
}
function setColor(r,g,b){
var tmpColor = new RGBColor();
tmpColor.red = r;
tmpColor.green = g; tmpColor.blue = b; return tmpColor;
}
 
//
var nextYear = new Date();
calYear = prompt("作成する年を入れてください",nextYear.getFullYear()+1);
calMonthStart = prompt("開始する月を入れてください",1);
 
storeX = baseX;
for (cy=0; cy< 2; cy++){ //■縦に2つ
    for (cx=0; cx< 6; cx++){ //■横に6つ
    calendar(calYear, calMonthStart);
    baseX += blockX;
    calMonthStart++;
    }
baseX = storeX;
baseY -= blockY;
}

今、休養中です

2015年より、心身の不調が限界に達し、しばらく休養に入っていました。

いったん、それに至るまでの「経緯」をくだくだしく書いてみたものの、いざ文章にしてみると死にたいとか死にそうだったとか、そいういう言葉の羅列は非常に安っぽい紋切り型でしかなく、あまり意味のあることにも思えなかったので、淡々と事実だけ、列挙します。

●2015年春頃より、心身の不調が限界に逹し、GW明け頃から、有限会社スタジオ・ポットSDを休職。最低限の緊急対応を除き、原則、すべての業務から離れる
●2015年5月、鬱病を治すための病院を探し、カウンセリングを主体としたクリニックに通院をはじめる
●(この間、月に数度くらいは会社にも顔を出し、残務の整理や打ち合わせも行うこともあった)
●全く病状が改善せず、情報を探しているうちに、自分の症状は「鬱病」とは少し違うのでは? ということに思いいたり、病院を変える
●新しい病院で「双極II型障害」の診断が下る
●2016年11月、SDを退職。
●同12月、精神障害者保健福祉手帳(3級)を取得

主観として語れば、以下のような感じです。

●とにかく何もかもが限界、と感じて、生きていく最低限のことだけを維持して、「仕事」的なものを極限まで放棄。「放棄する」ということにまつわる社会的な手順(各方面への連絡や手当てなど)をすべて放棄
●倦怠感と自責の念(と、なんだかんだで存在するわずかな残務処理)に苦しみつつ、「まあ、とはいえ、しばらく休めば働けるようにもなるだろう」と思いつつ、その実、1年の間、寝てるか太極拳の稽古をしているかでほとんどの時間を過ごす
●休養は数ヶ月程度、と思っていたが、なぜか一向に良くならず、むしろ悪化の一路を辿り、焦りはじめる。結論として、「元に戻ろう」と思っているうちは状況は好転しない、という結論に至り、退職、「障害者」として行政へのもろもろの申請等々、病気と「付き合っていく」ことを決意する

というわけで、みなさま、特に仕事で関係していた方々に対し、この間きちんとした報告をせず、申し訳ない限りです。

本来なら各所に出向いてご挨拶すべきことでありますが、私の場合、抑鬱状態を引き起こす、多くの要因が対人コミュニケーション時にむりやり自分を躁状態に入れてしまい、結果過剰に消耗する、というところにあるようで(倒れる前も、会議の翌日に心労で寝込む、ということがまま、ありました。単なる過労と思い込んでいたのですが、それ以上に、心理的にかなりの負荷になっていたようです。心が麻痺して、そういったことも感じとれないようになっていました)、すべての、そういった「社会人としてやるべき、もろもろの対処」を放棄しておりました。

これは対・クライアントであれ、対・社内であれ、友人・家庭のように親密な関係であれ、いずれもストレス要因になるようで、現在、対人コミュニケーションの総量を最低限にするよう、自制しております)、現時点でも文章の形にするのが精一杯という有様です。何卒ご寛恕いただければと思っております。

病状としては「完治」にはほど遠い状況で、業務として行なっていたIT業については、気力がある時は多少コミットできているものの、現在は開店休業状態、といったところです。

太極拳に日課として打ち込むことだけを、自身の最低ラインとして日々を過ごしています。
まずは今、ここにしっかり集中してから、次のステップを考えたいと思っています。

最後に、何もかも投げ出したことに文句ひとつ言わず、黙って後片付けを引き受けてくれたSDのみなさま、本当にありがとうございました。

「牛乳でお腹ゴロゴロ」を回避する

【警告】以下、ウンコウンコ連呼(ライム感)するので、そういうのは苦手な方はご遠慮ください

ワタクシ、「乳糖不耐症」というやつらしく、牛乳を一気に、大量に飲めない体質です(今書いて気づいてしまったが、小学生の頃はどうしていたのだろう。ほぼ毎日、給食の冷たい牛乳を200ml、問題なく飲み干してたハズなんですが。。腸内環境が変わったんですかね)。

軽い過敏性腸症候群でもあるので、朝とかは特にいけません。確実にお腹を下すのみならず、下したあとも腸内環境を破壊しまくるらしく、便臭にも影響が出ます。

一時はアカディなど購入して飲んでいたのですが、まあまあ割高だし、いつ、どこでも売っている、とは限らないので、これも続かず。

そんなこんなで、「まあ乳製品アレルギーではないし、ヨーグルトとチーズ喰ってればいいか……」と、諦めていたんですが、ここのところ運動後にプロテインを飲むことが増え、どうせ何かの液体と一緒に飲むなら、牛乳で流し込めばさらに+数グラムのタンパク質取れるな……と思いつき、さらに、疲労防止にはクエン酸だよねー、と考えを巡らしたところで、ふと、「めんどいから、いっぺんに牛乳+クエン酸(+プロテイン)摂取で済ませられないだろうか?」というところに思いいたりました。 続きを読む 「牛乳でお腹ゴロゴロ」を回避する

俺氏 vs. エアコン2017(冬の陣)

太陽黒点がどうこうとかで、 結構暖かい日もあったはずの3月も終盤になってみれば平均気温8.4度(東京)と、あいかわらず謎の天候が続きますが(ちなみに8度台だったのは2011年、2012年以来5年ぶり。百年単位で見ればそれでも高い方ですけどね)、先日、我が家のリビングのエアコンが壊れました。 続きを読む 俺氏 vs. エアコン2017(冬の陣)

「吉田沙保里選手の握力は20kgしかない」件

先日、TBSラジオ「安住紳一郎の日曜天国(2016年11月27日放送。「ラジオCLOUD」にはありませんが、まあ、探せばどっかで聴けるんじゃないかなあ。。)」を聴いていると、ゲストが吉田沙保里選手でした。この番組は、安住氏のこじらせ倒したフリートーク(ちなみに一番好きな話は「成人式をハシゴしてサボテンを貰った」話。最近では「カレーをおなか一杯食べるんだよう」が白眉だと思っている)と、中澤有美子さん(かわいい)の絶妙な合いの手、国内トップレベルではないかと思われるハガキ職人の投稿を楽しむ番組で、ゲストのコーナーはそれに比べると正直当たりハズレがあるんですが(※個人の感想です)、今回はレジェンド吉田沙保里選手、ということもあり、興味津々。

で、そこで衝撃的な発言が。

「握力は、中学のときに脱臼骨折してから力入らなくて、左20kgしかない。右も最高で40kgくらい」 続きを読む 「吉田沙保里選手の握力は20kgしかない」件

レイチェル・ザ・スター

ふだんこういうの全く観ないんですけどね。米国TVドラマ(最近は「TV」で放映されているのかどうかもよく分かりませんが。。何ていうの? こういうの)。

2周目にしてはやくも自己言及的ギャグが増えすぎだし、とっととシーズン3での日笠陽子大先生のご活躍を拝聴したいものだ、と思いつつgleeのシーズン2を消化中(……今頃?)。ようやくエピソード17まで辿り着きました。

gleeは、「プロムクイーンもスクールカースト最下層も少数人種もいじめっ子もいじめられっ子も、果ては身体障害者まで全員平等にクズ」、というとてもすがすがしい世界観で構築されており、中でもとびきりのクズがグリークラブの仕切り屋にしてミュージカルスターを夢見る、(一応)トップボーカリストであるレイチェル・ベリー。ルックスは悪くないのでしょうが(だがしかしとびきりのかわいこちゃんでも美人でもない)、メイクやファッションセンスが、男が見てもちゃんとクソダッサく見えるように演出されており、見事に好感度を下げているあたりはさすがです。

一方、R&B、ゴスペル、アレサばりのシャウト(体格もw)……といったブラックミュージックのナチュラルな魅力を武器に活躍するメルセデスは、実力はなかなかのもので周囲の評価も悪くないのに、グリー内では常に二番手。 続きを読む レイチェル・ザ・スター

書評「太極拳で強くなれる! 最強呉式太極拳の戦闘理論」——太極拳界のティラノサウルスかもしれない

アマゾンのカスタマレビューに投稿したものを転載。「太極拳で強くなれる! 最強呉式太極拳の戦闘理論」のご購入はこちらからレビューの直リンはこっち。なお、書籍に先行して発売された、推手を中心に紹介しているDVD「呉式太極拳 最強推手要訣」のご購入はこちらから

「中の人」としては、中身の話をはじめるとつい全部説明したくなってしまうんですが、まずは手にとって欲しいのでがんばって自重。いざ作ってしまえばあれもこれもと後悔が残りますが、買って損はない内容にはなっているかと思います。制作裏話でも書くといいのかもしれないですが、まあそれだとAmazonの規約違反になりそうなんで。。

呉式太極拳の戦闘理論
呉式太極拳の戦闘理論
呉式太極拳は、「五大太極拳」のひとつに位置づけられる名流であり、制定拳の中でもその動きが取り入れられた套路が存在することから、名前だけは知られているにもかかわらず、こと日本では、「推手が強い(らしい)」「やたらと前傾姿勢をとる(らしい)」と、断片的な情報しか流通していなかった時代が続きました。

本書では、上海鑑泉太極拳社の呉式太極拳がどのような体系であり、どのような理論で闘い、どのような地平に到達しているのか、についての概観を明らかにします。

本書は、3つの意味でこれまでの太極拳入門書とは一線を画すものです。 続きを読む 書評「太極拳で強くなれる! 最強呉式太極拳の戦闘理論」——太極拳界のティラノサウルスかもしれない

ナクソス・ミュージック・ライブラリー(jp)は今すぐ総「曲」数表記を改めるべき

最近、@naxosrecordsさんにTwitterでフォローされたりして、本国サイトもチラチラ見ていたので思わずエントリ。 続きを読む ナクソス・ミュージック・ライブラリー(jp)は今すぐ総「曲」数表記を改めるべき

qemuネットワーク道-4

なんと、4年の月日が流れ去っていたのですねえ。。。

qemuで、何を今更の問題に遭遇。
それは、「qemuホスト(192.168.0.H)→ゲスト(192.168.0.G1)にメールすると、ちゃんと流れない」問題。/etc/postfix/main.cfを何度見直しても、「loops back to myself」となる。

これは困った。

続きを読む qemuネットワーク道-4

入隊十五日目

えっ、まだやってたの? ええ、やってます。タマに。

……ということで、忘れた頃に気付いたジャブの打ち方。伝統武術系をかじった人ならだいたい気付いていると思いますが、ビリー隊長の動きは伝統系のカラテの動きを多くつかっています。で、フツーに「ジャブ」とか「ワンツー」とか言ってますが、身体の使い方がボクシングと真逆です(多分)。

●漏れが考えるボクシングのジャブ(オーソドックス)

・左手前、左足やや前
・腰を左に切る
・肩が引ける反動で、左手が最初にあった位置から振り出される
・腰を右に切る(腰つーか、腹筋〜胸筋かな)
・左手が引き戻される

もちろん、スピード命だから、腰をグルングルン回すわけではないのですが、こういうイメージで打たないと、もろ手打ちになってしまうはず。
で、この打ち方だと、足は動かないんですね。むしろ、歩いている→止まる←ここで打つ、みたいな感じ。

しかし、ビリー隊長の動きでは、打ち終わりで右足のかかとが上がっている。従前の打ち方だと、打ち終わりは筋肉で「壁」を作って拳を急停止(引き戻し)させなければいけないので、カカトが浮くなんてことはあり得ないわけです。だから、「ジャブ(前進)→ジャブ(前進)→ジャブ(前進)」とか言われると「やりにくいなあ」とか思っていたわけです。なんか、「弾んで!」とかいってるし、力入れづらいし。

「ビリー隊長のジャブにはリアリティがない」
そう思っていた時期が漏れにもありました。(AA略) 続きを読む 入隊十五日目