Let's note SR3 を買ってUbuntu をインストールした

Let's note の32GB モデルが安かった(CF-SR3TSUCP)ので思い切って購入した。
タッチパネルである必要性はまったくない。
論文は書かない解析もしない、のにメモリ32GBでi7 なんて何するつもりなんだ、と聞かれても動画を見るかtex を書くくらいしかない。
パナソニック Let's note SR3 プレミアムエディション タッチパネル搭載モデル CF-SR3TSUCP 価格比較 - 価格.com
ASCII.jp:「レッツノートSR」実機レビュー = 12.4インチ3対2ディスプレーに5Gも搭載の完全新デザイン

Let's note オタクだが新品定価購入はしたことがない。
4,5年おきに中古で買うたびにUbuntu をインストールするのだが、毎回何かしら引っかかって手こずる。
前回はUEFI で手こずったのだが、今回はWindows 11 に搭載されている(?) BitLocker というディスク保護プログラムのせいでインストールに手こずった。
mikuhatsune.hatenadiary.com

まずRufus ではGPT でインストールUSB を作成する。
そもそもインストールイメージが6GB もあったのでダウンロードから時間がかかった。
BIOS でセキュアブートを無効にする。
ここまでは前回のRZ4やSZ5 へのインストールと同じだが、Windows 領域を残してデュアルブートにしようとすると、BitLocker を解除しないとできません、と出る。
BitLocker の解除は、GUI 的にはWindows ボタンから探っていくと、下記の通りになるが、システム情報では「BitLocker を有効にする」という状態になっているので、これから察するに解除状態のはずだが、Ubuntu のインストール時には、有効になっていて、インストールできない(パーティションが作成できない)。
BitLockerを有効 / 無効にする方法 | ドスパラ サポートFAQ よくあるご質問
他に探すと、CUI で解除コマンドを入力しないといけないようで、cmd をctrl+shift を押した状態で起動して管理者権限で実行して、

manage-bde -status

を実行すると、保護解除状態であるのに、結局インストールできないので、

manage-bde -off C:

C: はドライブを適宜選択する)としてみると、-status で確認している間に解除状況の%がどんどん変化していく(数分かかる)ので、解除完了してからインストールしてみると、できた。
Windows のディスク管理ツールでも、保護されているときはWindows のブートローダーのあるパーティションは、「保護」となっていたが、解除されると保護の文字は消えていた。
セキュリティに問題があるのかもしれないが、データが消滅して復旧できなくなった場合には潔く諦めることにしよう。

Windows 領域についてはいつものごとくリカバリUSBを作成しようと思ったら、Windows 11から(?)リカバリーイメージがLet's note 公式HPから入手できるようなので、これによりSSD内のリカバリ領域がない(?)ということらしいのだが、Ubuntu をインストールするときに普通にリカバリ領域があったがどういうことなん? と思いつつ、ダウンロードできるなら急いで作らなくてもいいか、と思いいきなりUbuntu をインストールした。事故ったらどうするつもりだったんだ?

予備試験短答を受けてきた

  • 4ヶ月前(2月)

そろそろ予備試験短答を総ざらいしようと思って問題演習に取り組むが、過去にやったスクール東京の演習問題はPDF化したので重たい。
と思って探していたらstudying が司法試験・予備試験の短答過去問を分野別に並べて解説付きで、無料会員登録するだけでスマホ・アプリから演習できることを見つけたので移動時間や麻酔中にポチポチ始める。
ログイン - スタディング 会員ページ

  • 3ヶ月前(3月)

出願最終日になって慌ててマイナポータルから出願する(21時くらい)。
出願すること自体に資格はまったくいらない(学歴もいらない)ので、出願することと受験費用を納めればよい。
最初の登録が反映されるまでに10分くらい、受験料振込が反映されるのに10分くらいかかったので、さすがに日付が変わる寸前はやめたほうがよいと思われる。

  • 1ヶ月前(6月)

4ヶ月くらいかかってようやく全問演習を終えた。
AI 実力予想というものがあって最終的に97/210点と予想された。個別には憲16刑15民17民訴14刑訴14商12行8点だった。
行政法は行政庁が行わなければならない義務なのか努力義務なのかそういう細かいところをきちんと覚えていないが故にポロポロ点をこぼしてしまっていた。
判例問題も結末はわかっていても細かい判旨を覚えていなくて間違えることが多かった(憲法にも通ずる)。
商法は機関とその選任、あと訴訟関係があいまいにしか覚えておらず点がとれていなかった。なのでもう思い切って積んでいたシケタイを読むことにした。

実際の勉強時間はこんな感じだったようである。

伊藤塾と、LECの模試2回分を昨年も買っていたので今年度も買って解いてみるが、法律科目だけでは95点前後しかとれず、AI実力予想に完全に予想されてしまっている。
昨年度分の模試3回分と、なんとか令和4-7年分を解いてみるが、これも110点くらいまでしか取れない。詰んでいる。

  • 1週間前

電子出願したから受験票はどうなっているのかわからなかったが、マイナポータルから取得して紙に印刷して持ってくるシステムのようで、マイナポータルから探したが全然見つからず焦ったが、受験情報の⇩をクリックするとPDFがダウンロードできるようになっていたので安心した。

  • 4日前

水曜日から平日を丸々休みにしておいたのに、木曜日にバイトをいれたら6件もあてられてしまい、平日の最高額を稼ぎ出したが疲労困憊する。
その後も祇園祭や直前土曜も子供に付き合って結局勉強せずに本番に突入する。

  • 当日

前日入りしようと思っていたが、結局ホテルも取ってないし朝から80分くらいかけて電車で行く。大阪会場(近畿大学)なのだが最寄りに行く近鉄電車に乗り換えたあたりから陰キャ感が増してきてなんだろこれ…と思ったらコミケの既視感だった。
駅から10分くらい歩かされた。
余裕を持って集合時刻8:45より早くついたらそもそもまだ教室に入れなかった。8:45に教室に入れたが、そこから説明開始の9:15まで手持ち無沙汰だったので次があれば直前に来ようと決意した。

  • 民法・商法・民事訴訟法

いつも分量が多くて演習中も全問解こうとすると時間が足りてない。民法で35分かかっていたので商法で巻き返そうと思ったら商法を8問くらい解いたところでもう50分経っていたので焦る。
なんとか解いて民事訴訟法に行くと、1問目から文字数が多くて焦る。しかも誤答を選べなのにばっちり正解を2つ書いていた。
既判力の問題は飛ばした。もちろん間違っていた。
最後は泣きながら残り1分で全問終えた。見直しはできなかった。

  • 憲法・行政法

憲法の解答欄が1-5 のパターンがあることに少し動揺する。
憲法・行政法は毎回わかっててもわからんでもサクサク行くので40分くらいで終えたがどちらもまったく手応えなかった。

  • 刑法・刑事訴訟法

過去問セットを解くようになって一番得点できるようになった科目なので少し自信がついた、と思ったら1問目から不真正不作為犯なんて出るし該当するものをすべて選んだ組み合わせはどれか、なんていう選択肢があるし長文穴埋め問題はかなり自信がなくなってくるし泣きそうだった。
刑事訴訟法は最初はテンポよく解いていたが後半は時間がきつくなって全選択肢検討は諦めて運良く該当した肢とセットになっているものだけ検討してなんとか時間内に終えた。

  • 一般教養

模試ではだいたい10問しか合わないので10問を目標に解こうと思ったが英語問題が模試より訳わからなすぎて6題分解けなかったため普通の問題を解かざるをえなくなった。
理系問題もなんかようわからんし辛かった。

終わってから当直があるので電車ですぐ仕事に向かった。
とりあえずアガルートの速報と、SNSでみかけたChatGPTに一般教養を解かせた速報では

アガルート 伊藤塾 辰巳 LEC}
民法 18 18 18
商法 18 18 18
民事訴訟法 22 22 58(計) 22
憲法 19 18 18
行政法 12 12 31(計) 12
刑法 23 23 23
刑事訴訟法 19 21 42(計) 19
一般教養 33 33 33 33
合計 164 165 164 163

と合否ライン直上にいるっぽい。7/21 時点の伊藤塾での合格推定点は163点だった。
完全に落ちるものだと思っていたから論文の勉強してないしバイトと日程が被ってるからなんとかしなきゃ。

グラフで考える会社法の機関設計

会社法の機関を基本書でよくみる一覧表だけで理解できるとはとうてい思えない。
と思ってなにかいい方法がないのかと思っていたら、図で覚える機関設計というのを見つけた。
【渾身】図で覚える 株式会社の機関設計 (経営法務)【中小企業診断士】 – 中小企業診断士試験 一発合格道場
グラフというのはいわゆるネットワーク図のことである。

委員会のところは監査等委員会設置会社か、指名委員会等設置会社かの区別はあるが、経営層と内部監査機関のゴチャゴチャ具合がわかりやすくなったし、なにより本を読んでいて「…公開会社(ただし指名委員会等
設置会社を除く)…」みたいな記述があったときに、()内が長すぎて何をいまいちわかりにくかったのが、このグラフでどのノードを通ったグラフを構成している会社か把握できるようになったので、なんとなく読みやすくなった、気がする。
何より機関設計系の短答問題が確実に解けるようになったのでよかった。

library(igraph)
library(plotrix)
myellipse <- function(coords, v=NULL, params) {
    vertex.color <- params("vertex", "color")
    if (length(vertex.color) != 1 && !is.null(v)) {
        vertex.color <- vertex.color[v]
    }
    vertex.frame.color <- params("vertex", "frame.color")
    if (length(vertex.frame.color) != 1 && !is.null(v)) {
        vertex.frame.color <- vertex.frame.color[v]
    }
    vertex.size <- 1/1 * params("vertex", "size")
    if (length(vertex.size) != 1 && !is.null(v)) {
        vertex.size <- vertex.size[v]
    }
    vertex.size2 <- 1/1 * params("vertex", "size2")
    if (length(vertex.size2) != 1 && !is.null(v)) {
        vertex.size2 <- vertex.size2[v]
    }
    draw.ellipse(coords[,1], coords[,2], vertex.size, vertex.size2, col = vertex.color, border=vertex.frame.color)
}
add_shape("ellipse", clip=igraph.shape.noclip, plot=myellipse)


l <- rbind(
     c("株主総会", "取締役"),
     c("株主総会", "取締役会"),
     c("取締役", "監査役"),
     c("取締役会", "監査役"),
     c("取締役会", "監査役会"),
     c("取締役会", "委員会"),
     c("監査役", "会計監査人"),
     c("監査役会", "会計監査人"),
     c("委員会", "会計監査人"),
     c("取締役会", "会計参与")
     )
kikan <- c("株主", "経営層", "内部監査", "外部監査")
kikan.col <- adjustcolor(c("violet", "green", "orange", "cyan"), 0.3)
vertex.col <- c("止まれない"="cornsilk", "止まれる"="seagreen1")
g <- graph_from_edgelist(l)
lsugiyama <- t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2))
n <- norm_coords(t(matrix(c(1,1,0,2,1,2,0,3,1,3,2,3,1,4,2,2), nr=2)))
rownames(lsugiyama) <- rownames(n) <- V(g)$name
V(g)$label.font <- 2
V(g)$label.color <- "black"
V(g)$shape <- "circle"
V(g)$shape[match(c("取締役", "監査役", "監査役会", "会計参与", "会計監査人"), V(g)$name)] <- "rectangle"
V(g)$shape[match(c("株主総会", "取締役会", "委員会"), V(g)$name)] <- "ellipse"
V(g)$color <- ifelse(V(g)$shape == "rectangle", vertex.col["止まれる"], vertex.col["止まれない"])
V(g)$size <- 30
V(g)$vertex.size2 <- 20
V(g)$frame.color <- "black"
V(g)$frame.color[match("取締役会", V(g)$name)] <- "red"

E(g)$color <- "black"
E(g)$arrow.size <- 2
E(g)$width <- 2
E(g)$lty <- ifelse(apply(as_edgelist(g), 1, setequal, c("取締役会", "会計参与")), 3, 1)
E(g)$color <- ifelse(apply(as_edgelist(g), 1, setequal, c("監査役", "会計監査人")), "red", "black")

par(mar=c(0, 0, 0, 0))
plot(g, layout=lsugiyama, vertex.shape="none", vertex.label=NA, edge.color=NA)
pa <- par()$usr
y <- c(sort(unique(norm_coords(lsugiyama)[,2])), 100)
for(i in seq(kikan)){
  y0 <- y[c(i, i, i+1, i+1)]-diff(y)[1]/2
  polygon(pa[c(1,2,2,1)], y0, col=kikan.col[i], border=NA)
  if(i != 1){
    legend(pa[2], y0[1], legend=kikan[i], xjust=1, yjust=0, bty="n", text.font=2)
  } else {
    legend(pa[2], y[1], legend=kikan[i], xjust=1, yjust=0.5, bty="n", text.font=2)
  }
}
legend("topright", legend=names(vertex.col), pch=c(21, 22), pt.bg=vertex.col, bty="n", cex=2.0)
plot(g, layout=lsugiyama, vertex.size=40, vertex.size2=15, add=TRUE)
text(n["会計監査人", 1], n["会計監査人", 2], "大会社", adj=c(NA, -2))
xy <- colMeans(n[c("会計監査人", "監査役"),])
text(xy[1]-0.2, xy[2], "大会社\nかつ\n公開会社\nは不可", adj=c(NA, 0))
text(n["取締役会", 1], n["取締役会", 2], "公開会社", adj=c(2, NA))
text(n["会計参与", 1], n["会計参与", 2], "任意に設置可能", adj=c(NA, -2.0))
xy <- colMeans(n[c("取締役会", "会計参与"),])
text(xy[1]-0.10, xy[2], "非大会社\nかつ\n非公開会社\nは可能", adj=c(0.5, 1.2))

基本刑事訴訟法Ⅰ・Ⅱ

読んだ。

日本評論社の基本シリーズのひとつで、基本刑法や基本憲法などとクロスリファレンスがある。
手続理解編はやたら評価が高くて中古が出回っておらず、高かったがたまたま安い中古があったので入手した。
論点編は別冊になっているので、手続のみを記載している本編はそれなりに薄い(350Pくらいあるが)ので読みやすい。
通常の基本書にありがちな、途中に論点で迷宮に迷い込まないので手続きだけ勉強しようと思ったら、それなりに読みやすいが、どのみち論点は勉強する羽目になるので別冊と行き来しないといけないのは、手間といえば手間である。
基本シリーズに共通する、灰色の網掛けの設問や、本文で太字になっている箇所は、短答で出題されている部分であるので、勉強が捗った。

論点が別冊になっている。
伝聞例外がいまだによく理解できていない。

ページ参照が1章2節、のようなシケタイの感じなので、参照しようとすると非常に読みづらい。

基礎からわかる民事訴訟法

読んだ。

フリマサイトで投げ売られていたので初版だが買った。
2版も出ているが全然値段が下がらないし、コンパクト版というのもいいのか悪いのかいまいちわからないので手を出していなかった。

とにかくゴツいが、頻出論点は図を多用して説明してあることが多い。
既判力は、実務では使わないが、理論的な部分で試験的に問われるから重要、と裏事情的なことが書かれていることが多い。既判力の項や、相殺などは非常にページが割かれている。

灘高校の現役合格率

こんなツイートを観測した。


灘(兵庫) 主要大合格者数推移 - 進学校データ名鑑

2025, 2026年でなんとなく減少傾向に見えるので全体的になんとなく減少傾向に見えている。
が、実際にどうなのか。
東大、京大、医学部、東工大(東京科学大学)、一橋大学、のしかも現役、浪人混ぜのデータのようなので、灘高現役生の合格実績がどうかデータを取ってきた。
2008-2009年の東大理Ⅲ、京大医学部の現役合格者数が抜けていたのでこちらも参照した。
2008年度 東京大学合格者数 | 受験教育情報サイト:インターエデュ・ドットコム

東工大や一橋大の現役浪人まで確認していると面倒だったので、東大、京大、医学部、の現役浪人をなんとか調べた。

stan 的に考えると、各年度y に灘高3年生がN_y 人いるとして、合格者数Y_yは、合格率\theta_y から二項分布でサンプリングされるとする。
N\sim\rm{binom}(\theta_y, N_y)
合格率\theta_y は、モデルとしては難ありだが実装が簡単なので一次線形
\theta(t)=at+b
として、aが0より有意に離れているかが経時的な合格率の増減、b が切片としてベースの合格率、となる。
モデルとして難あり、というのは、合格率は以前の年度の影響を受けるだろうが説明変数を何も考えずに年度としているからであるが、許してほしい。

理Ⅲのみ、理Ⅲと京医学部、国公立医学部(理Ⅲと京医除く)、東大と京大(理Ⅲと京医除く)、東大と京大(理Ⅲと京医除く)と国公立医学部、で分けた結果が図となる。
結果として、経時的にはどの区分も合格率は95%信用区間的には増減していない。

理Ⅲの現役合格率は概ね6%、京医も合わせると13%が現役合格している。

n <- read.table(text="
入試年 卒業数 東大合格 東大現役 理3 理3現役 京大合格 京大現役 京医合格 京医現役 医学部合計 医学部現役
2003 217 88 66 6 4 55 32 15 5 48 23
2004 214 89 56 15 8 44 22 15 9 58 28
2005 215 101 72 21 18 54 34 22 19 82 53
2006 213 80 57 13 8 51 36 25 16 70 33
2007 216 100 73 11 9 33 18 15 9 65 31
2008 216 114 82 19 14 23 12 14 8 72 35
2009 217 103 66 15 9 37 24 22 15 68 39
2010 219 103 74 21 19 35 25 23 16 93 60
2011 219 99 75 17 14 45 28 25 15 88 51
2012 219 98 81 16 14 34 25 22 15 74 40
2013 224 105 80 27 21 41 27 24 19 91 55
2014 220 104 76 12 8 30 18 16 8 64 29
2015 219 94 72 15 11 36 22 21 14 66 37
2016 218 94 72 20 17 47 26 25 13 95 42
2017 220 95 75 19 17 39 30 21 18 83 52
2018 219 92 70 15 11 42 25 22 14 97 48
2019 219 74 59 21 17 48 33 26 19 90 58
2020 220 79 57 14 11 49 31 24 15 81 48
2021 216 97 75 12 10 34 21 14 9 50 38
2022 221 92 62 10 8 48 36 20 15 86 41
2023 220 86 66 15 14 42 31 17 14 76 46
2024 218 94 71 12 12 53 38 25 14 95 35
2025 214 77 59 9 7 50 37 19 14 84 46
2026 224 95 77 7 6 47 31 13 8 44 18
", header=TRUE)

library(rstan)
library(vioplot)
library(stringr)
rstan_options(auto_write=TRUE)
options(mc.cores=parallel::detectCores())

code <- "
data {
  int N;
  int Y[N]; // 合格者数
  int D[N]; // 一学年
}
parameters{
  real a;
  real b;
  real<lower=0> s;
}
transformed parameters{
  real<lower=0, upper=1> theta[N];
  for(i in 1:N){
    theta[i] = a*i + b;
  }
}
model{
  a ~ normal(0, 5);
  b ~ normal(0, 5);
  s ~ exponential(1);
  for(i in 1:N){
    Y[i] ~ binomial(D[i], theta[i]);
  }
}
"

m0 <- stan_model(model_code=code)
standata <- list(N=nrow(n), D=n$卒業数,
                 Y=list("東大・京大・医学部"=n$東大現役 + n$京大現役 - 2*n$3現役 - 2*n$京医現役 + n$医学部現役,
                        "東大・京大"=n$東大現役 + n$京大現役 - n$3現役 - n$京医現役,
                        "理Ⅲ・京医"=n$3現役 + n$京医現役,
                        "理Ⅲ"=n$3現役,
                        "国公立医学部"=n$医学部現役)
                )

# 上記パターンを一気にやる
fits <- mapply(function(z) sampling(m0, c(standata[c(1,2)], Y=list(z)), iter=2000, warmup=1000, chain=20), standata$Y)
ex <- mapply(function(z) extract(z, pars=head(z@model_pars, -1)), fits, SIMPLIFY=FALSE)
#p <- mapply(function(z) 100/(1+exp(-z$theta)), ex, SIMPLIFY=FALSE)
p <- mapply(function(z) 100*z$theta, ex, SIMPLIFY=FALSE)
cols <- c("red", "pink", "green", "skyblue", "orange")
alpha <- c(0.025, 0.5, 0.975)
x <- 1:nrow(n)

#png("nada.png", 840, 480)
par(mar=c(4, 5, 2, 10), cex.lab=1.5)
plot(range(x), c(0, 5)*10, type="n", xlab="", ylab="", frame=FALSE, xaxt="n", yaxt="n")
abline(h=seq(0, 5, by=1)*10, lty=3)
for(i in seq(standata$Y)){
vioplot(p[[i]], add=TRUE, ylim=100*c(0, 0.5), las=1, frame.plot=FALSE,
        rectCol=NA, lineCol=NA, colMed=NA, col=cols[i],
        xlab="", ylab="")
}
for(i in seq(standata$Y)){
  if(i == 1){
    mtext("20XX年度", side=1, line=2.5, cex=1.5)
    mtext("現役合格率 [%]", side=2, line=3, cex=1.5)
  }
  y <- 100*standata$Y[[i]]/standata$D
  lines(x, y, col=cols[i], lwd=3)
  points(x, y, col=cols[i], pch=15)
  lines(x, y, lwd=1)
  pa <- par()$usr
  y1 <- tail(colMeans(p[[i]]), 1)
  pp <- quantile(ex[[i]]$a, alpha)*100
  pb <- quantile(ex[[i]]$b, alpha)*100
  txt <- sprintf("%s %.1f%s [%.1f, %.1f]\n%.2f%s/年 [%.2f, %.2f]",
                 names(standata$Y)[i], pb[2], "%", pb[1], pb[3],
                 pp[2], "%", pp[1], pp[3])
  txt <- sprintf("%.1f%s [%.1f, %.1f]\n%.2f%s/年 [%.2f, %.2f]",
                 pb[2], "%", pb[1], pb[3],
                 pp[2], "%", pp[1], pp[3])
  #text(pa[2], y1, txt, xpd=TRUE, pos=4)
  #legend(pa[2], y1, legend=txt, xpd=TRUE, col=cols[i], pch=15, yjust=0.5, bty="n")
  legend(pa[2], y1, legend=txt, title=names(standata$Y)[i], xpd=TRUE, col=cols[i], pch=15, yjust=0.5, bty="n", pt.cex=2, title.adj=c(NA, 0.5))
}
text(pa[2], pa[4], "現役合格率 (%) [CI]\n年次増減 (%/年) [CI]", xpd=TRUE, pos=4)
axis(1, at=seq(nrow(n)), labels=str_extract(n$入試年, "\\d{2,2}$"), lwd=0, lwd.ticks=1)
axis(2, lwd=0, lwd.ticks=1, las=2)
box()
dev.off()

憲法判例の射程

読んだ。

2020年発行だが妙に評価が高くて中古でもそこそこの値段だった。
前版から9章分追加された、ということで、312Pから420Pへ大増量している。400Pならなんとか通読できるが、やはり300Pのほうが持ち運びしやすいので前版でもよかったが、前版もなんだかんだ高かったので結局2版を購入した。

基本的に判旨のみが突然載っているので、有名判例の概要は知っていて当然、となる。ただし、予備校本でも普通に出てくるものばかりであるので、一通り勉強していたらたぶんなんとかなる。
本書のレビューでよく見かける「判例を論点ごとにグルーピング」というのがわかりやすく、かつ求めていたものであったのでそれはよかった。
憲法判例の射程と「判例で書く」ためのインプット - だいたい正しそうな司法試験の勉強法
だが結局射程はよく理解できていない。