Dockerコンテナ内で make: /bin/sh: Operation not permitted

GitLab CI のジョブ実行環境として Docker イメージ composer:2 を使っていたのですが、 make: /bin/sh: Operation not permitted というエラーによりジョブの途中で停止していました。単純な make コマンドが実行できないようです。

この問題に関係するのは以下のようでした。

https://github.com/alpinelinux/docker-alpine/issues/146
https://wiki.alpinelinux.org/wiki/Release_Notes_for_Alpine_3.14.0#faccessat2

まとめると以下の状況です。

  • Alpine 3.14.0 からシステムコール faccessat2 を使うようになったため、ホストOSで以下を必要とするようになった
    • runc v1.0.0-rc93
      • containerd.io 1.4.3-2 (DebianリポジトリのDockerの場合)か、Docker Desktop 3.3.0 (WindowsかMacのDockerの場合)に含まれる
    • Docker 20.10.0 以上
    • libseccomp 2.4.4 以上

弊社では、GitLab runner が動作しているサーバーの Docker バージョンを最新にしたらエラーが起きなくなりました。

WebClassのInternet Explorerサポート終了(2021年7月末)のお知らせ

平素は弊社製品 WebClass をご利用いただきまして誠にありがとうございます。

WebClass は、2021年7月末リリース予定のバージョンより、推奨ブラウザから
Internet Explorer 11 を除外することとなりましたのでお知らせいたします。
Windows をご利用の場合は Microsoft Edge など他のブラウザでご利用いただきますようお願いいたします。

WebClass のサポートブラウザからの除外について

皆様もご存知のとおり、Microsoft 365もInternet Explorer 11のサポートを
今夏終了することがアナウンスされ、Windows10 の標準ブラウザは Microsoft Edge に切り替わりました。
現在 Internet Explorer は ActiveX などを使用する、レガシーなシステムの互換性維持のために残されてる状況です。

Microsoft 365 アプリの Internet Explorer 11 のサポート終了

このような状況から、今後WebClassは、最新のWeb技術を取り入れたモダンなブラウザをサポート対象とし、
さらなる機能強化とパフォーマンスの向上を目指すことといたしました。
ユーザの皆様のご理解を賜りますようお願い申し上げます。

類似レポート検知機能のスコアについて

WebClassでは、レポートの剽窃検知機能として、「類似レポート検知」という機能が用意されています。この機能は、提出されたレポート同士を比較して、それらの類似度をスコアとして表示することができます。

こちらのスコア算出の挙動について不可解な点があると指摘されておりましたので、今回いくつかの観点からスコアの変動について調査しました。

調査方法

  • 同じ文章にスペース・改行を入れた場合と入れない場合を比較
  • 10文字~12,000文字程度の文章をWikipediaから切り抜いて比較に使用
    • 全く違う文章・全く同じ文章それぞれで比較
    • 英語文・日本語文それぞれで比較
    • 同じ文章の繰り返しが含まれる・含まれない文章で比較(引用の多いレポートを想定)

調査結果

  1. スペース・改行はスコアに影響する。
    • 同じ文章でもスペースが抜けるだけで5~10程度スコアが低くなる
  2. テキストの長さによりスコアが変動する。(図1,2)
    • 基本はテキストが長くなるにつれスコアが下がる傾向
    • 極端にテキストが短い場合に、極端にスコアが高く
  3. 全体的に日本語文のほうが、スコアがはっきりする。
    • 違う文章のスコアが低い(図1)
    • 同じ文章のスコアが高い(図2)
  4. 同じ文章を繰り返し使うとスコアが高くなる。(図2 緑線)
    • 重複によるスコアが積み重なる?


      図1: 全く違う文章の比較


      図2: 全く同じ文章の比較

まとめ

今回の調査から、スペースや改行・文の長さ・英語文日本語文などの違いでスコアに5~10程度の変動があることが分かりました。そのため、これらの挙動を把握した上で、あるいはある程度の誤差をご承知の上ご使用されることをおすすめします。また、100文字程度以下の短い文章では異常なスコアが出ることから、この機能に使うレポートは100文字以上になっているものを対象にすることをおすすめします。(レポート課題作成時に「100文字以上」の文字数制限を付けることも可能です。)

今回の結果から、図3の「スコアの目安(旧)」にある「強い剽窃の疑いがあります」のレベルに達するのが、繰り返しが含まれるい場合や極端に文章が短い場合のみであることがかったので、このスコア区分をv11.9.0で図4のように修正しました。スコアが70程度あれば、かなり強い剽窃である可能性があるということをご留意してお使いいただければと思います。


    図3: スコアの目安(旧)


    図4: スコアの目安(新)

PhpStorm で Update Project 時に Merge するか Rebase するか

以下の説明は、PhpStorm に限らず、JetBrains の IDE なら同様のはずです。

PhpStorm で Git プロジェクトを扱っていると、リモートの変更を取得するために、Update Project ボタンを押しますよね。以下のように、Merge incoming changes into the current branchRebase the current branch on top of incoming changes のどちらかを選択しなければなりませんが、意味を知った上で選んでいますか?

Update Project

CLI から Git を使わず、IDE からのみ Git を操作していると、Rebase を知らない人もいるかもしれません。そういった初心者向けに説明します。

前提

コミットログが以下のような状態になっているとします。

ローカル master で一つコミット(一番上)したタイミングです。origin/master からはコミット一つ分進んでいます。

変更を Push する前に、Update Project したい。しかし実は、別の開発者が一つコミットをリモートに Push 済みだったとします。

Update Project 時に Merge ... を選んだ場合

Update Project 時に Merge ... を選んで OK を押しました。コミットツリーは以下のようになります。

Merge

別開発者が行ったリモートのコミットが最後にマージされ、マージコミットが作成されています。

Update Project 時に Rebase ... を選んだ場合

Update Project 時に Rebase ... を選んで OK を押しました。コミットツリーは以下のようになります。

Rebase

自分が最後に行ったコミットが一番後ろに付け足される形になりました。この時、マージコミットは作成されません。Rebase の方がコミットログがシンプルになることが分かると思います。

Merge と Rebase どちらを選ぶか?

コミットログのシンプルさが保たれるのは Rebase です。基本的に Rebase を選んでいいと思っています。

ただ、上記で説明した違いについては知っておくべきです。何か起こった時に対処するには、コミットログから過去を正確に知る必要があります。また、Git 自体の理解も重要です。全ての Git 操作を PhpStorm 上から行うことはできません。特にこの記事に書いてあることを知らなかった方は git rebase コマンドについて知らないことが多いかと思われます。よく使うことになるはずですので、是非調べてみてください。

修学カルテに外部評価機能を追加しました

修学カルテは、学生の定期的な振り返りと成果物の蓄積を通して、成長を客観的に示すことができる機能です。振り返り等の入力フォームを自由にカスタマイズできる点が大きな特徴です。
機能の詳細はこちらで確認できます。自分の環境で利用できるか調べる方法はこちらです(学習記録ビューア管理者である必要があります)。

今度リリースするWebClass v11.7に同梱される修学カルテには、外部評価機能が追加されています。これは、WebClassアカウントを持っていない学外の人に学生のカルテを公開し、内容を確認してもらったり、アドバイザーとしてコメントをつけてもらったりすることができる機能です。

学生が自身で公開設定を行います。アクセス用URLが生成されますので、URLとパスワードを外部評価者に伝えます。
外部公開設定
外部公開設定
外部公開設定

外部評価者が伝えられたURLにアクセスし、パスワードを入力すると、学生が公開したカルテを閲覧できます。
外部評価

WebClassアカウントを持っていない人も評価者にできることで、修学カルテを利用できる範囲がさらに広がると思います。ぜひ活用してみてください。

  • 外部評価するには、あらかじめカルテXMLで外部評価機能が有効になっている必要があります。こちらで紹介しているように、allow-external-login 属性を"true"にしてください。