トップ 追記   RSS 1.0 FEED  

Journal InTime


2020-09-16 (Wed) [長年日記]

_ Google Apps Scriptで出勤日カレンダーを作った

新型コロナ感染症対策のため、NaCl松江本社の開発メンバーは2グループに分かれて営業日は交互に在宅勤務し、感染拡大の状況によっては全メンバーが在宅勤務に移行する運用をしている(というのは原則で、メンバーの都合でフル出勤したり、ほとんど在宅勤務の人もいる)。

連休明けなどで出勤日がわからなくなる人が続出したため、Googleカレンダーに以下のようなISUCONで負けそうなGoogle Apps Scriptで出勤日の予定を自動登録してみた。

var OFFICE_DAY_CALENDAR_IDS = ["xxxxx", "xxxxx", ...];

function createOfficeDayEvents() {
  var holidayCalendar = CalendarApp.getCalendarById('ja.japanese#holiday@group.v.calendar.google.com');

  var officeDayCalendars = OFFICE_DAY_CALENDAR_IDS.map(function (id) {
    return CalendarApp.getCalendarById(id);
  });
  var current = 0;
  var date = new Date("2020/09/01");
  var endDate = new Date("2020/12/25");
  while (date <= endDate) {
    var day = date.getDay();
    if (day != 0 && day != 6 && holidayCalendar.getEventsForDay(date).length == 0) {
      officeDayCalendars.forEach(function (calendar) {
        calendar.getEventsForDay(date).forEach(function (event) {
          event.deleteEvent();
        });
      });
      officeDayCalendars[current].createAllDayEvent("出勤日", date);
      current++;
      if (current >= officeDayCalendars.length) {
        current = 0;
      }
    }
    date.setDate(date.getDate() + 1);
  }  
}

2020-09-05 (Sat) [長年日記]

_ RubyKaigi Takeout 2020

新型コロナの影響でオンライン開催になったRubyKaigi Takeout 2020で、Magic is organizing chaosという発表をした。

TwitterのDMで催促を受けて発表可否の確認のメールに気づいたのが8/7で、動画の提出期限が8/13だったので、慌ててpull requestの残作業をやっつけて動画を作成したが、何とか間に合った。

オンラインということでどれだけRubyKaigi感が出るんだろうと思っていたけど、想像していたのよりRubyKaigiっぽさがあった。

と書いたけど、コミック版から読んだ人にもいくらか雰囲気が伝わっていて、いつか小説版を読んでもらえるといいですね。

スタッフ、発表者、視聴者のみなさん、ありがとうございました。

P.S. Proc#using導入は感想戦でRubyVM::ASTなりを使ったマクロっぽいものでいいじゃんと言われたりして苦戦中。それだとcaller bindingが欲しいし、毎回マクロ展開&評価をやるのは遅いと思うんだけど。

Tags: Ruby

2020-06-28 (Sun) [長年日記]

_ マツダコネクト用の曲名・アルバム名の修正

MAZDA3に搭載されているバージョンのマツダコネクトは楽曲やアルバムのソートがID3タグの曲名やアルバム名の辞書順で並び替えられてしまうので、曲名にトラックナンバーを、アルバム名に発表年を含めるツールを作成した。

macOSだと以下のコマンドでインストールできる。

$ brew install taglib
$ gem install number_tunes

以下のようにディレクトリを指定すると、そのディレクトリ配下のmp3/m4aファイルのID3タグをすべて書き換える。

$ number_tunes /Volumes/NO\ NAME
Tags: MAZDA3

2020-06-17 (Wed) [長年日記]

_ MAZDA3納車

MAZDA3

試乗動画を見て一目惚れしてGW明けに契約していたMAZDA3が納車された。 10年以上乗ったエクシーガとはお別れ。

グレード選択は、MTの設定があるファストバックの15S TouringとX PROACTIVE Touring Selectionでかなり迷ったが、家族5人で遠距離を走るケースもたまにあるのと、未来への投資の意味も込めて世界で初めて圧縮着火ガソリンエンジンSKYACTIV-Xが搭載されたX PROACTIVE Touring Selection (MT/FF)にした。 15S Touring MTも試乗したけど、街乗りだと15Sの方が軽快で楽しいかもしれない。

SKYACTIV-Xの感想は、正直普通のガソリンエンジンとの違いがわからないけど、前向きに捉えるとそれくらい完成度が高いということなんだろう。 エンジンのカプセル化とボディの遮音のおかげで音はすごく静か。 一応慣らしの間は3000回転以上回さないようにしているけど、6000回転まで気持ちよく伸びるらしいので楽しみ。

Tags: MAZDA3

2020-06-16 (Tue) [長年日記]

_ Comply Truly Wireless

Comply Truly Wireless

Jabra Elite 75tを長時間付けていると右耳が痛くなるのでイヤーチップをComply Truly Wirelessに変えてみた。

標準のイヤーチップよりマシになった気がする。あと、低音が強くなった。