Posts for: #2022/01

spring boot の xml 変換の仕組み

0時に寝て吐き気がして3時に起きて、断続的に仮眠をとってみたけど、それでも気分悪くて5時から起きてた。昨日の晩ご飯食べて寝てから吐き気が出てきた。なにかの食べ合わせなのだろうか。コロッケとその後にチョコレート食べたのが悪かったのか。普通にオフィスへ行ってお仕事してたら直った。

spring boot の xml 変換

いまお手伝いしているお仕事で spring boot で SOAP の xml 通信しているサービスがある。任意の文字列を受け取って任意の文字列を返すような仕組みで設計されていて、xml の変換処理を jackson を使ってアプリケーションコードで書いていた。

これをやるならミドルウェアでやるべきだなと思って spring boot のドキュメントを調べてみた。Error Handling のように例外が発生したときの処理をフックする ResponseEntityExceptionHandler のようなミドルウェアに近い仕組みはあるが、通常のレスポンスに対して行う処理はなかった。代わりに HttpMessageConverters という、レスポンスを変換する仕組み自体は操作できないが、変換する変換器は置き換えたり拡張したりできるようになっている。レスポンスのデータフォーマットのカスタマイズをしたい場合は HttpMessageConverters で行うというのが spring boot 的なやり方にみえる。

さらに調べていると Write an XML REST Servicejackson-dataformat-xml がクラスパスにあれば jackson の ObjectMapper を使って xml に変換するよと書いてあって、試しにレスポンスのオブジェクトを返したら自動的に xml に変換されるという振る舞いを確認できた。つまり、アプリケーションコードで xml の変換処理を自前で実装しなくてもほぼ同じことを spring boot のデフォルトの仕組みでやってくれるというわけだ。jackson の ObjectMapper のカスタマイズがしたいときもいくつかやり方がある。例えば、 @Configuration をもつ Config オブジェクトで次のような bean を生成すれば任意の設定にカスタマイズした ObjectMapper が使われるようになる。

@Bean
public Jackson2ObjectMapperBuilderCustomizer configureObjectMapper() {
    return builder -> {
        builder.serializationInclusion(JsonInclude.Include.NON_EMPTY);
    };
}

最初のフォロワー

0時に寝て4時に起きた。1時間ほどだらだらして1時間ほどドラクエタクトして6時半にバッチの初動監視をしてた。

bizpy 勉強会

Python で機械学習をやってみる勉強会 を開催した。わたなべさんに講師を務めていただいた。スタッフが2人いると、1人は勉強会が円滑にまわるようにサポートに注力できる。1人だと、講師として説明するのに精一杯で質問を拾い上げたり、わかりにくい説明を補足したりするといったことがリソース制約上できない。今回は私がサポート役だったので随時、質問をしたりしていた。

今回の勉強会は質問がたくさん出た。いつもは1-2人が数個といった回数なのに、今回は5-6人から十数個の質問がでて、口頭でもいくつものやり取りが発生した。あとで振り返って考えると、おそらくこれは私が質問をぽんぽんしていたからだと考えられる。

TED に デレク・シヴァーズ 「社会運動はどうやって起こすか」 がある。最初のフォロワーが重要という話が出てくる。静かな勉強会で最初に質問するのは勇気がいる。質問して他の人の邪魔にならないか?講師から質問を嫌がられないか?質問が的外れだったら恥をかかないか?など、最初に質問する人が躊躇する理由はたくさんある。私が簡単な質問や的はずれな質問、講義をぽんぽん止めているのをみているうちに、そういうことをやっても大丈夫な勉強会であることが参加者へ自然と伝わる。その結果として参加者から多くの質問が出るような勉強会になったのではないかと考えられる。

質問が多くでる=コミュニケーションが活発だとコミュニティの価値も上がると思う。今後もサポート体制のようなものはうまく仕組み化して勉強会に取り入れていきたい。

ブロックチェーン考察

1時に寝て6時半に起きた。昨日はほぼまる一日頭痛でしんどかったけど、寝たら直った。朝から集中してコードを書いてた。

ブロックチェーンは未来なのか

次の記事を読んだ。

ブロックチェーン:膨張する看板に偽りはないか - 誠実なプロセスの必要性 -

最近、私のタイムラインでも Web 3.0 というキーワードをみかけるようになってきて、どうやらこれはブロックチェーン技術をベースにした分散型のなにかを表しているらしい。間違っていたらごめんなさい。暗号資産や NFT といった投機的な目的でビジネスを展開したい人たちも多いようにみえて、真っ当にやっている人たちもいるのだろうけど、儲かればなんでもいいみたいな風潮にみえていて、私の中ではあまり関わりたくないキーワードになってきている。

記事でも書かれている通り、分散と言いながら巨大な台帳になることからインフラを管理できるコンピューティングリソースが大規模化し、運用上は個人がすべてのリソースを保持することは難しいことから、プラットフォーマーや大企業が分散台帳のリソースを管理するような在り方になっていくのではないかと推測する。結局のところ、インフラをすべて大企業が賄うのであれば、そもそも効率の悪いブロックチェーンのような技術を使わなくても既存の中央集権的なシステムで構築する方がはるかに効率的ではないか?という問いに対するアプリケーションの答えは海外送金だけしか私は認識していない。海外送金は中央集権的なシステムが存在してなく、非常にコストが高いため、ブロックチェーン技術で分散台帳を構築しても安価に済む。

いまのところ、グローバルなシステムをブロックチェーン技術をベースにした開発にすることで、各国で独立してシステム開発が進められるメリットがあるという話しでグローバルベンダーはブロックチェーン技術を使ったプラットフォームを開発しているようにはみえる。それはそれで理に適っているようにも聞こえる。一方で個人向けのキラーアプリやキラーコンテンツはまだ私からはみえない。NFT がそれになるのかな?と一瞬思ったけど、ちょっと調べてみただけでは、現時点ではそうなりそうに思えない。研究開発や新しい技術の試行錯誤としてブロックチェーンはまだまだ未知の領域があるのだろうけど、大して便利でも効率がよいわけでもないものを未来であるかのように喧伝しているのは忌避を感じるのでもうしばらくは様子を見守りたい。

会員制バー予約

先日チラシでみかけて 会員制バー に申し込みしてみた。おそらく招待会員というサブスクリプションに入ったので試しに行ってみることにした。明日 bizpy の勉強会があるのでそのふりかえりを兼ねて、土曜日に講師のわたなべさんと一緒に行くのを予約した。2018年に神戸に引っ越してきて近くに知り合いがいなくて、その後、地域の勉強会へ行ったり、会社を辞めたりしながら、コロナがあって、なんやらかんやらで近くに一緒に飲みに行ける知り合いができた。初めて行くお店はわくわくする。楽しみだ。

国民健康保険の保険料

0時に寝て4時に起きて2度寝して7時に起きた。こんなこと滅多にないんやけど、朝からずっと頭痛があってしんどかった。早めにお仕事を終えて帰ったら少しよくなってそのまま寝てた。

国民健康保険の保険料

以前にも書いた明石市長 の次のツィートをみかけた。

国民健康保険って自治体ごとに保険料が違うんだとか思って、健康保険の仕組みを調べ直した。健康保険制度は大きく分けて2通りある。会社に勤めていない人のための国民健康保険と、会社に勤めている人のための会社の健康保険。うちの会社の健康保険は 全国健康保険協会 (協会けんぽ) に加入している。中小企業のデフォルトが協会けんぽなのかな?健康保険の運営者を保険者と呼び、どんな会社でも加入できる保険者として協会けんぽがある。有名な保険者として関東ITソフトウェア健康保険組合があるけど、関東ITソフトウェア健康保険組合の加入基準 を満たさないと加入できない。例えば「被保険者数が20名以上であること」という条件があるので社員数が少ない企業は加入できない。一般論として、健康保険組合の方が協会けんぽよりも保険料が安いという利点があるらしい。そうでなければ、健康保険組合を作ったり、そこに加入する利点も小さくなるし。

会社を辞めたり、定年退職したりすると75歳まで国民健康保険に入る必要があるみたい。住むところにこだわりがなければ、保険料の安い自治体に住んでもよいのかもしれない。

JUnit5 のテスト拡張

1時に寝て5時に起きて2度寝して9時に起きた。前日呑んでたのであまり眠れなくて体調よくない。

JUnit5 的なロガーのテスト

お仕事でログ管理の機能開発をしている。カスタムロガーを使って出力するメッセージを加工している。設計が固まってきて機能も作り込むようになってきたので出力内容が意図した構造化ログになっているかをテストしたい。JUnit5 の機能と log4j の機能を組み合わせてカスタムロガーのテストの仕組みを作ってみた。

まずログ出力した内容を取得するオブジェクトを特定するためのアノテーションを定義する。

@Documented
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface LoggerTestWriter {
}

JUnit5 の Declarative Extension Registration の仕組みを使って、テストケース非依存な setup/teadown のメソッドを定義する。ExtensionContext から拡張するテストケースのインスタンスを取得できる。テストケースインスタンスに定義されている @LoggerTestWriter アノテーションがついたオブジェクトを lgo4j の Appender としてインジェクションするようなコードを setup/teardown (beforeEach/afterEach メソッド) で定義する。Appender のインジェクション周りは Log4j 2でログ出力をテストするサンプルソース の記事を参考にした。

public class SetupLogAppender implements BeforeEachCallback, AfterEachCallback {
    private static String APPENDER_NAME = "logger-test-appender";

    private Optional<Writer> getWriter(ExtensionContext context) throws IllegalAccessException {
        var testInstance = context.getRequiredTestInstance();
        for (var field : testInstance.getClass().getDeclaredFields()) {
            if (field.isAnnotationPresent(LoggerTestWriter.class)) {
                return Optional.of((Writer) field.get(testInstance));
            }
        }
        return Optional.empty();
    }

    @Override
    public void beforeEach(ExtensionContext context) throws Exception {
        var writer = this.getWriter(context).orElseThrow(() ->
                new IllegalStateException("@LoggerTestWriter のアノテーションをもつ Writer を定義してください"));
        addAppender(writer, APPENDER_NAME);
    }

    @Override
    public void afterEach(ExtensionContext context) throws Exception {
        var writer = this.getWriter(context).orElseThrow(IllegalStateException::new);
        removeAppender(APPENDER_NAME);
        if (writer instanceof StringWriter) {
            var stringWriter = (StringWriter) writer;
            stringWriter.getBuffer().delete(0, stringWriter.getBuffer().length());
        }
    }

実際にテストを書くテストクラスは次のようになる。

@ExtendWith(SetupLogAppender.class)
public class MyLoggerTest {
    private static final MyLogger logger = new MyLogger(MyLoggerTest.class.getName());

    @LoggerTestWriter
    StringWriter writer = new StringWriter();

    @Test
    void testDebugMap() {
        logger.debug("my-message")
        assertEquals("my-message" writer.toString());
    }

@ExtendWith で指定した SetupLogAppender クラスの beforeEach や afterEach がそれぞれのテストメソッドごとに呼ばれて、Appender のインジェクションが @LoggerTestWriter のアノテーションをもつ writer を使って行われる。この writer にはログ出力した文字列が記録されるようになる。これで、テストメソッドで logger に対して出力したメッセージを writer から取得できるので意図したメッセージが出力されていることをテストできる。カスタムロガーのテストケースごとに再利用可能な拡張をきれいに実装できた。

ワーケーション延期

1時に寝て8時に起きた。

ストレッチ

今週も開発に集中していてあまりストレッチができなかった。今日の開脚幅は開始前165cmで、ストレッチ後166.5cmだった。先週と同じぐらい、もしくはちょっとよくなったぐらい。先週から引き続き、ふくらはぎとふとももの後ろが張っている。ここ最近は開発に集中していて1日あたり10-12時間ぐらい椅子に座っているので疲労しているのだと推測する。毎週ストレッチを受けていると疲労改善になってよい。

ワーケーション延期

これまで 準備を進めてきたワーケーション が2週間後になった。もともとこの企画はオミクロン株が発見される前だったので1月末に予定していた。年末年始を挟んでオミクロン株の感染流行を今週みてきて延期することに決定した。兵庫県 新型コロナウイルスの検査・陽性者の状況 によると、直近の陽性者数は次のように推移している。2週間後は5,000人ぐらいの陽性者数になるのではないか。諸外国の推移をみていると兵庫県のピークの陽性者数は1日1万人ぐらいまで増える可能性がある。

  • 1/10: 167
  • 1/11: 113
  • 1/12: 511
  • 1/13: 903
  • 1/14: 929
  • 1/15: 1191

残念だけど、次回の目処は5-6月ぐらいに3回目のワクチン接種を終えてからになるだろう。

呑み

21時から勉強会に参加して23時過ぎに終わって晩ご飯食べてなかったので、帰りに仲のよい焼き鳥屋さんのお店に寄って晩ご飯を食べた。26時までやっているので24時頃に言っても普通に食べものを出してくれる。1時間ほど飲み食いして法人決算や消費税、共済のこととかを話してた。マスターも個人事業主から法人成りしたようで、話してみたら私と同じで創業2年だった。業界は違っても行政手続きは共通点も多いだろうから情報共有できそう。

引越考察

0時半に寝て5時半に起きた。昨日からワールドトリガーのエンディング曲で 雲外憧憬 を聞いている。歌詞がワールドトリガーの世界観ともあっているし、タイトルの雲外憧憬という言葉に驚いた。四字熟語のように読めるけど、たぶん違う?こんな言葉よく思いつくなと感心してしまった。apple music の英語表記だと Aspiration Beyond The Clouds と訳されている。

  • 雲外: 空のはるか遠いところ
  • 憧憬: あこがれること

明石市の調査

1ヶ月ほど前から 泉房穂明石市長 が twitter を始めた。私のタイムラインでもフォロワーの誰かがいいねしたり、リツィートしたりしてちょくちょくみかける。泉氏の暴言などがニュースで取り上げられたりするので地方都市の市長にしては知名度が高い方だろう。神戸市の隣は明石市なのでご近所の関心はある。明石市は日本の標準時子午線があって、学生の頃に 天文科学館 にも行ったことがある。いまも成年後見人の弁護士さんの事務所は明石市にあるし、運転免許センターも明石市にあるので年に数回ぐらい行く機会もある。ツィートを眺めていると58歳の市長が初めてやっているにしてはうまく sns を使いこなしていて、始めて1ヶ月ほどしか経っていないのに8万6千人ものフォロワーがいる。ブレーンが優秀なのか、本人がやっているのかはわからないけど、すごいことだと思う。

ツィートは当然、明石市のアピールが主なのでそれを眺めているうちに明石市よいところだなと好感度があがってきた。高齢者向けのサービスを廃止して育児や教育といった子ども向けのサービスを重視していて、それが子育て世帯にうけて、全国でも有数の人口増の中核都市となっている。当然、子育てに関係ない高齢者からは不満の声もあるみたい。私もその方針は支持したいと考えて、年寄りよりも子どもの教育に行政サービスのリソースを集中すればよいと思う。

いま神戸市に住んでいるのは大阪に通勤するためだった。コロナ禍により、フルリモートワークの世の中に移行したので明石市へ引っ越してもよいかもしれないと考え始めた。明石海峡大橋があるところなので実家の淡路島へ帰るのも少し近くなる。軽く検索していくつかみた雰囲気だと、賃貸マンションの家賃も神戸市より割安感がある。比較サイトによると住民税も神戸市より年間2万円安い。ただシェアオフィスの数、起業文化やベンチャー支援みたいなところは神戸市には相当に及ばない。そこは政令指定都市としての面目躍如といったところか。オフィスさえよい場所があったら住居もオフィスも明石市へ引っ越ししてもよいかもしれない。ひとまずアンテナを張っておく。

オフィスの引っ越し

明石市の話とは別に来期のどこかでオフィスを引っ越ししようかとも考えている。いまのオフィスも大きな不満はないので急いではいない。前に Joel on Software を読んだ ときに窓のないオフィスのストレスについて考えるようになった。気付いたら気付けなかった頃には戻れない。強くはないけど、ストレスの要因はなるべく排除したい。窓以外の不満でいうと働いているうちに備品も増えて部屋が手狭になってきた。引っ越し先候補の1つとして リージャス神戸国際会館ビジネスセンター がある。問い合わせしたら来週に内覧をさせてくれるらしい。交通アクセスやビルのグレードが高いので賃料もかなり高いだろうけど、他のシェアオフィスとの比較も含めて参考のために内覧してくる。

師範代としての振る舞い

師範代としての振る舞い

0時半に寝て6時半に起きた。

課題管理システムの使い方指南

いまお手伝いしているお仕事はスクラム開発をしている。課題管理システムに backlog を使っている。アリエルを退職後、この10年、私より課題管理システムを使いこなす開発者をみたことがない。0-9段階で言うと、師範代として私のレベルが8だとすると、他のメンバーは0から2ぐらいのレベルしかない。このぐらいの差がある。0というのはほとんど使っていないという意味。情報共有とは、メンバー全員がいつでもどこでも同じ情報を取得できる仕組みを確立した上で、情報の提供側ではなく、その情報を必要とする受け手が常に最新の情報を取得し続ける運用ができて初めて成り立つ。情報共有を成功させるには受け手の意識の問題が大きい。まずメンバー全員がやっていない時点で情報共有の価値が大きく毀損する上に、受け手が自律的に検索して最新の情報を取得するようにならなけば実務において生産性を向上させることにもつながらない。

役に立つ情報がないから検索しない、検索しないから役に立つ情報を書かないは表裏一体だ。まず役に立つ情報を溜め、受け手が検索して情報収集するようになり、検索の精度をあげるためにカテゴリやタグでラベリングし、業務に活かすために最新情報を更新するようになる。これをチーム全員でやるようになるのは一朝一夕ではできない。

そのため、私は課題管理システムの運用に関して特異な開発者である (言うてもアリエルなら普通) という前置きをした上で、チームの開発者も非開発者も課題管理システムをうまく使えていない。私が課題管理システムをどう使っているのかをみて、開発者が真似して同じように使い始める。そして、非開発者向けにはどう使えばよいかというプラクティスを機をみて提案したり啓蒙したりしている。これは半年から1年かかる作業だと見積もっている。というのは、私が半年ぐらい働いて実践的な課題管理システムの使い方をみせないと多くの人は学べない。半年ぐらい経って、普段私がやっている価値はどういうものかを実際の実務で理解した後、模倣者がやり始めて慣れてくるのに半年ぐらいはかかる。お手本をみせるのに半年、模倣するのに半年で1年かかる。いろんなチームを指導してきたのでチームがどのような学習曲線を辿るかは概ね推測がつく。これをコンテンツにしてビジネスしようといまは考えているので、こういう実践的な機会にコンテンツとしてのノウハウも溜めていこうと考えている。

みかん

実家からみかんが送られてきた。実家で作っているみかんなのかな?なんか微妙に腐り始めようとしている雰囲気もある。お正月に帰ったときから実家に置いてあったやつだろうと思う。段ボール箱の空きスペースを埋めるために入ってた 「りんちょこ」 というお菓子を初めてみた。冬季限定らしい。軽く食べてみると思いの外おいしい。えびせんべいをチョコレートでコーティングしていてチョコフレークの食感に近い。チョコフレークが好きな人にはうけると思う。お土産にもよさそう。

会員制バー

オフィスの郵便受けに KOBE SALON S という会員制バーのチラシが入っていた。新規会員を募集しているらしい。個人だったら全く興味はないけど、経営していると接待する機会がたまにある。前に顧問さんに経営コンサルティングを受けたときに交際費が少な過ぎるという指摘を受けた。交際費は5年後10年後のお仕事をとるための先行投資もしくは調査費用のようなものだという。そこで今期は交際費の予算に30万円を見積もっているが、現時点で46,971円しか使っていない。4月までにあと2-3件は飲みに行くあてはあるけど、このままいくと30万円は消化できない。コロナ禍というのもあるけど、何もしないと私は交際費を使わないので積極的に使っていく仕組みを作らないといけない。その一環として会員制バーは接待にいいかもしれない。すぐ退会するかもしれないけど、チラシをみた縁で入会してみる。

BizSTATION Light の初期設定

4時半に寝て7時半に起きた。なんか眠れなくてゲームしたり映画みたり記事を読んだりしてた。

BizSTATION Light の契約移行

年末に銀行支店で申し込みした Light の新規契約分の書類が届いた。早速 Windows マシンでログインするための初期設定を行った。セキュリティ設定を変更したり、電子証明書を取得したりとけっこう面倒くさい。流れ的にはこんな感じだけど、なんで Web サービスにログインするために OS の設定変更をしないといけないのかみたいなところの抵抗感がある。セキュリティ意識の高い Web アプリケーションの仕組みを垣間みる。

  1. OS の事前設定
  2. 電子証明書の設定
  3. ワンタイムパスワードのデバイス登録
  4. ログイン用パスワードと取引用パスワードの設定

年末年始を挟んだので少し時間がかかるかもしれないと窓口の担当者は言っていたが、そういうこともなく2週間程度で書類が送られてきた。しばらくは有償プランにはせず、無償プランのまま運用する。現時点では、明細が月1-2件ほどしかないので、有償プランが提供する API サービスによる会計システムとの連携をしなくても事務手続きの工数的にもまったく困らない。いずれ明細が増えたときのための準備として契約を移行しておいたという話し。

log4j2 の yml 設定

0時半に寝て6時半に起きた。だいぶ開発に集中してきて朝も起きれるようになってきた。

log4j2.yml を読み込む

log4j2 のログ設定を整理していて設定ファイルを読み込む順番は次のようにドキュメントに記載されている。java ライブラリのこういった手厚いルールはややうんざりするところもあるけど、是非はともかく、ファイルフォーマットの違い、ファイル名の違いで読み込む優先順位がある。歴史のあるライブラリだから要求を聞いているうちにこんな感じになったんだろうと推測する。

  1. Log4j will inspect the “log4j2.configurationFile” system property and, if set, will attempt to load the configuration using the ConfigurationFactory that matches the file extension. Note that this is not restricted to a location on the local file system and may contain a URL.
  2. If no system property is set the properties ConfigurationFactory will look for log4j2-test.properties in the classpath.
  3. If no such file is found the YAML ConfigurationFactory will look for log4j2-test.yaml or log4j2-test.yml in the classpath.
  4. If no such file is found the JSON ConfigurationFactory will look for log4j2-test.json or log4j2-test.jsn in the classpath.
  5. If no such file is found the XML ConfigurationFactory will look for log4j2-test.xml in the classpath.
  6. If a test file cannot be located the properties ConfigurationFactory will look for log4j2.properties on the classpath.
  7. If a properties file cannot be located the YAML ConfigurationFactory will look for log4j2.yaml or log4j2.yml on the classpath.
  8. If a YAML file cannot be located the JSON ConfigurationFactory will look for log4j2.json or log4j2.jsn on the classpath.
  9. If a JSON file cannot be located the XML ConfigurationFactory will try to locate log4j2.xml on the classpath.
  10. If no configuration file could be located the DefaultConfiguration will be used. This will cause logging output to go to the console.

log4j2 Automatic Configuration

普通 java は xml で設定を書くけど、この設定ファイルの読み込みルールをみたら yml にも対応しているならその方がよさそうとか思うやん。log4j2.xml から log4j2.yml に書き換えて試してみると、ログ設定が有効にならない。どうも log4j2.yml を読み込んでいないようにみえる。ググっていると jackson-dataformat-yaml を依存関係に追加しろといった内容をみつかるけど、どういう理屈でそういう仕様になっているのか、まったく理解できない。なによりも読み飛ばしたというログが出力されないから設定ファイルを読んでいるのかどうかすら気付けない。これは知ってないとはまるポイントの1つ。

<dependency>
    <groupId>com.fasterxml.jackson.dataformat</groupId>
    <artifactId>jackson-dataformat-yaml</artifactId>
</dependency>

自己肯定感の考察

0時に寝て8時に起きた。

自己肯定感、高いか低いか

前になにかの記事で読んだことに、自己肯定感が高い人は困難な状況にあってもうまく折り合いをつけてやっていけるという。例えば、パワハラ気質の上司がいても、それは上司がおかしいのだと解釈して、なにを言われても全く自己否定やネガティブな感情にならないという。あるとき、別のイベントで起業家を養成するために幼児の頃から徹底的に自己肯定感を高めるためのカリキュラムを実践しているという話を聞いたことがある。田舎でのほほんと生きてきた人間とは幼児の頃から育ちが違う。

ふと自分の自己肯定感はどうだろう?とか考えるときもある。もうこの歳になって自己肯定感がどうこうで悩んだりすることはないけど、なにか事象が発生したときにまずは自分が悪かったんじゃないかと疑ってかかるところから思考が始まる。ネガティブな事象が起こると、自分が気付けば防げたとか、もっと機転を利かせばうまく対処できたんじゃないかと考えたりする。自己評価は5段階なら、自分で振り返って不満がなかったら3で、なにかあったら2をつける。そのため、多くのケースで360度評価が乖離する。たまたま野球部だったせいもあるかもしれないけど、基本的に監督に叱られるのが普通のような感覚をもっている。もっと言うと、他人から褒められた経験があまりないから褒められてもどう反応していいかもわからない。嬉しくないわけではないけど、相手に気を遣わせてしまって申し訳ないなとか思うこともある。

良くも悪くも私は他人に関心がないし、他人からの評価にはもっと関心がない。自分が取り組んでいる課題を自身の基準でうまくできたかどうかにしか興味がない。わりと他人に素っ気ない態度をとってしまうときもある。一方で他人から咎められると一通り自身の基準に当てはめて理が通っていればへこむときがある。褒められてもそれほど嬉しくないのに咎められたらへこむというのは、自己肯定感の高低によって変わったりするのかな?とか考えたりしていた。言うても、もうこの歳になると褒められることも咎められることもないのであまり気にする機会すらないのだけど。