いものやま。

雑多な知識の寄せ集め

技術書典16オフラインにサークル参加してきた。

だいぶ時間が経ってしまったけど、5/26(日)に開かれた技術書典16オフラインにサークル「いもあらい。」として参加してきた。

技術書典16オフライン

出店の様子

今回は当日までの準備が遅れて朝がドタバタで大変だった。

サークル入場開始が9:30で、できるだけ早く入場してほしいという話もあり、家を早めに出る必要があったんだけど、荷造りや告知もできてない状態で、朝起きてから急いでやったり。

(当日朝の7:30頃に告知ページ作ってる・・・)

まぁそんな感じで大変だったけど、無事会場に到着し、準備ができてしまえば落ち着いたもの。 そのあとはいつも通りな感じだった。

出店の様子

新刊の話

さて、今回どうしてこんなに準備がドタバタになったかというと、新刊が全然間に合わなかったから。

TeX言語について調べるのに時間がかかって、執筆の目処が立ってリポジトリを作ったのが5/20(月)、そこからドドドっと書いてなんとか推敲前の状態に持っていけたのがイベント前日の5/25(土)といった具合。 本当にギリギリだった。

今回は見本としてコピー本を用意したんだけど、以前に手作りで製本した経験がちょっと活きた。

印刷する前にPDFのページ順を入れ替えておくのが肝なんよね。

内容としてはTeX組版ではなくプログラミング言語として使ってみようというもの。 TeXについて説明された本の多くは、組版の話とプログラミングの話がごっちゃになってて、しかも雑然とした順序で説明されてたりするので、かなり分かりにくい。 そこをプログラミングの話だけに絞って、かつ説明を前から順に読んでいけば分かるように整えたので、比較的分かりやすくできたと思う。 まぁそれでも難しいのがTeX言語の困ったところなんだけど。

推敲したものも6/4(火)にアップロードしていて、今日6/9(日)まで技術書典16オンラインで購入できるので、気になった人は手に取ってみてほしい。

(一応、会期後も電子版は購入可能で、BOOTHでも頒布予定)

今日はここまで!

TeX言語で遊んでみた。

技書博10で配ったフリーペーパーの内容をブログにも書いておく。

 \TeX = 組版

 \TeXといえば普通は組版を思い浮かべると思う。

けど \TeXが実際にやっているのは一列に並んだトークン(≒命令)を順に処理しているだけだったりする。 組版できるのはそういった命令の中に組版用のものがあり、その命令が処理された結果にすぎない。

なので \TeX組版以外で使うこともできる。

Hello, TeX.

まずはプログラムの基本の「Hello, world.」から。

% hello.tex
% 入出力用のマクロ(≒関数)
\def\ReadStdin#1{{\endlinechar=-1 \global\read0 to#1}}
\def\WriteStdout#1{\immediate\write0{#1}}

\ReadStdin\Name     % 入力を求めて\Nameに代入
\WriteStdout{Hello, \Name.}     % 出力

\end

これを実行すると次のようになる:

$ luatex --halt-on-error hello.tex
...
\Name =TeX
Hello, TeX.
...

\Name =と入力を求められるのでTeXと入力すると、それが使われてHello, TeX.と表示される (そして組版の命令はないので組版はされない)。

計算

整数変数(レジスタ)を用意して四則演算もできる。

% calc.tex;入出力用のマクロは省略

\ReadStdin\Input
\newcount \Value    % 整数変数
\Value = \Input     % 入力を代入

\multiply\Value by 2    % \Value *= 2
\WriteStdout{Value * 2: \number\Value}

\advance\Value by -3    % \Value += -3
\WriteStdout{Value * 2 - 3: \number\Value}

\divide\Value by 4      % \Value /= 4
\WriteStdout{(Value * 2 - 3) / 4: \number\Value}

\end

実行例は以下:

$ luatex --halt-on-error calc.tex
...
\Input =42
Value * 2: 84
Value * 2 - 3: 81
(Value * 2 - 3) / 4: 20
...

ちゃんと計算できてるのが分かると思う。

条件分岐と繰り返し

条件分岐と繰り返しだってできる。 繰り返しはマクロを再帰的に展開するので関数型っぽい。

% fibonacci.tex;入出力用のマクロは省略

\ReadStdin\Input
\chardef\Count = \Input     % 繰り返し回数

\newcount \I 
\newcount \Value

\def\Fibo(#1,#2,#3){% 今の回数, 前の数, 今の数
    \ifnum #1<\Count
        \WriteStdout{#3}
        \I = #1  \advance\I by 1
        \Value = #3  \advance\Value by #2
        \edef\Next{\noexpand\Fibo(\number\I,#3,\number\Value)}
    \else
        \edef\Next{\relax}
    \fi
    \Next}

\Fibo(0,0,1)
\end

これを実行すると1, 1, 2, 3, 5, 8, 13, ...とフィボナッチ数列が出力されるので試してみてほしい。

Goodbye, TeX!

ただ見ての通りかなりクセが強くて扱いづらい。 命令が一列に並んでるのを順に処理してるだけなので感覚としてはアセンブラに近いかも。 書くのも大変だし、それ以上に読むのが大変。 組版したいだけなのにね。

ということで。

 \TeXグッバイしたい!


今日はここまで!

技書博10にサークル参加してきた。

5/12(日)に第十回技術書同人誌博覧会にサークル「いもあらい。」として参加してきた。

技書博10

イベントの様子

技書博はいつも通りという感じで、人が大量に押し寄せるというわけでもなく、まったり進行。

出店の様子

今回は新刊が用意できなかったのでフリーペーパーだけ。  \TeX言語のことを少し書いたので、これはあとで記事で紹介したい。

そして今回の頒布で『オブジェクト・ウォーズ』の紙版はなんとか完売した。 いろんな方に手に取ってもらえたので嬉しいね。

今回は新刊もなかったということもあり、前回試したアンケートは実施せず。 でもそうするとやっぱり足を止めてくれる方は少ない感じがした。 アンケート、重要そう。

そういう意味で、斜め向かいのサークルさんが『推し組版技術』というアンケートをしてたのが興味深かった(終了時に写真を撮らせてもらった)。

『推し組版技術』アンケート

けっこうな方が足を止めてアンケートに回答してて、やっぱりフックとして強力よね。

Vivliostyleがやっぱりいいよなというのがあるけど、実際のサークルさんとしてはRe:VIEWを使ってるところも多いみたい。 あと \TeXはなんだかんだ昔から使ってる人がいて、それで票を集めてたみたい。

あとは今回のイベントもお昼ご飯が出たので嬉しかった。

無料配布のお昼ご飯

そして今回は10回目という節目だったこともあり、なんと樽酒がw

樽酒の祭壇w

バールのようなものでこじ開けていく

懇親会に出れなかったので飲めなかったけど、いやー、すごいねw

あと、初回と中止になった回を除いてサークル参加したということで、準皆勤賞で表彰してもらえた。

事前に伝えられてなかったのでビックリしたけど、こうして表彰してもらえるのはやっぱり嬉しい。 今後もアウトプットを続けていきたいね。

今日はここまで!

上牧温泉でまったりしてきた。(その3)

前回の続き。

矢木沢ダム

須田貝ダムをあとにして矢木沢ダムへ。

と思ったら、なんかダム管理用道路となっていて関係者以外立ち入り禁止の文字が。 これは入っていっても大丈夫なのかな?と心配になったんだけど、大丈夫そうね。 冬の期間とか夜とかは通れなくなる感じっぽい。

この管理用道路がけっこう長かったんだけど、右手にキレイな洞元湖を眺めながら進む感じでけっこういい。

そんなこんなで矢木沢ダムに到着。

矢木沢ダム

アーチ式のコンクリートダムを見たのは初めてかも。

奥利根湖と山々が広がる

放流用の水路

正面にあるイメージだったけど端の方にあるのね。

矢木沢ダムからの眺め

標高があって天気も悪かったりで、寒く感じたり。 このあと小雨も降り始めたし。

奈良俣ダム

管理用道路を戻っていったあとは湯の小屋温泉を通って奈良俣ダムへ。

その向かう途中でちょうど奈良俣ダムが放流してるのを見れた。

奈良俣ダムの放流!

いやー、これは運がよかった気がするw

奈良俣ダム

奈良俣ダムロックフィルダムで岩を組み上げたような感じになってる。 本当にゴツゴツの岩が積み重ねられてる感じなのね。

奈良俣ダムからの眺め

奈良俣湖

ダムの上から眺めた放流

考えてみると、ダム4つを回って重力式コンクリートダム、アーチ式コンクリートダム、ロックフィルダムと3種類のダムを見れたので、かなりお得な感じあるよね。

らーめん武尊

この日のお昼は宝川温泉の近くにある「らーめん武尊(ほたか)」へ。

宝川温泉に行くときにいつも見かけてて、でもお昼は大体宝川温泉で食べてたので、いつか食べてみたいなと思ってたラーメン屋。

行ったのが遅かったのでいくつかのラーメンは品切れで、野菜塩ラーメンを頼んでみた。

野菜塩ラーメン

たっぷりな感じで美味しかった。 麺がちょっと変わっててソーメンみたいな印象だったかな(うろ覚え)。

宝川温泉

帰りとなる4日目、5/2(木)は、宿をチェックアウトしたあとに宝川温泉へ。

この日は天気もよくて車を走らせていて気持ちよかった。

宿の駐車場からの眺め

天気がよくていい眺め

宝川温泉へ向かう橋

橋から眺めた利根川

宝川温泉

宝川温泉はやっぱりいいね。 以前はアブがちょっとやばかったときもあったけど、今回はそんなこともなく。 川を涼しい風が降りてくるので、温泉で温まったあとに川風で涼んでというのが最高に気持ちよかった。

ただちょっと変わってたところもあって、ご飯の提供はなくなってた。 ここで焼魚の定食を食べたかったんだけどなぁ。

藤原湖

河原で咲いてた桜

アップで

キレイな河原

GRILL&CAFE BAR -Minakami-

宝川温泉から戻ってきて、お昼をどうしようかと思ったんだけど、道の駅の近くによさげなお店があったので入ってみた。

https://thecampfire.jp/restrantbar-minakami/:embd

ハンバーグのセットを注文。

ハンバーグセット

切ってみると透明な肉汁が出てきていい感じ。 美味しかった。

肉汁溢れるいいハンバーグ

あとは道の駅でお土産を買ったりして帰路へ。

利根川のキレイな流れ


そんな感じで温泉とたっぷりの自然、お肉、あとダムを満喫してきた。 いい旅行だったなぁ。

今日はここまで!

上牧温泉でまったりしてきた。(その2)

前回は宿の話。

基本的には宿で温泉と食事を楽しみながらまったりと過ごしてたんだけど、少し出かけたりもしたのでその話を書きたい。

雨ニモマケズ

初日の4/29(月・祝)、13時ちょっと過ぎに水上に到着して、まず向かったのが「雨ニモマケズ」。

雨ニモマケズ

ここはめんつゆで食べる豚しゃぶのお店で、前にも来たことがあって、そのときにとても美味しかったのでまた来たいとずっと思っていたところ。 正直これをまた食べたくて水上に来たまである。

ランチのラストオーダーが13時半でけっこうギリギリだったんだけど、無事間に合ったのでよかった。

注文したのは前回と同じで3種食べ比べセット。

3種食べ比べセット

いやー、やっぱり美味しかった。 食べれてよかったなぁ。

ちなみにランチでトンテキもあってそっちも気になった。 ただ火・水はディナーのみ、木はお休みということで、食べる機会がなく。 うまく都合つけて食べてみたいよなぁ。

みなかみ町水紀行館

お昼を食べたあとは道の駅「みなかみ町水紀行館」へ。

ちょうど山桜が咲いててよかった。 足湯もいい感じだったしね。

桜と足湯

足湯気持ちよかった

足湯からの風景

天気はそんなによくなかったけど、景色がやっぱりよくていいよね。

利根川の水がキレイ

ラフティング気持ちよさそう

上牧散策

2日目の4/30(火)は上牧を少し散策。

ツツジと橋

橋から眺めた利根川

リンゴ園では花が満開だった。

リンゴ園

リンゴの花がキレイ

阿部りんご園

アップルパイとアイスコーヒー

このアップルパイも美味しかった。 持ち帰りもできたので最終日に立ち寄ってお土産として買っていったり。

上牧駅から大峰館へ向かう橋

この先に潰れてしまったホテルニュー上牧もあって、ちょっと覗いてみたけど中の様子は全然分からなかった。

藤原ダム

3日目の5/1(水)は水上のダム巡りをしてみた。

まず向かったのは藤原ダム。 ここは宝川温泉に向かう途中で通るので何度か行ったことがある。

藤原ダム

近くから

ダム湖がキレイ

以前はダムカードの配布を中止してたんだけど、今回は無事ゲットできた。

須田貝ダム

続いて矢木沢ダムに向かおうとしてたんだけど、途中で須田貝(すだがい)ダムがあったので立ち寄ってみた。

須田貝ダム

ここのダムカードはここでは配布してなくて、ダムに行ったことが分かる写真(つまり上の写真)を撮っておいて、みなかみ町水紀行館で見せることでもらえた。


長くなったので一旦区切り。

今日はここまで!

上牧温泉でまったりしてきた。(その1)

ゴールデンウィークということで3連休とって4/29(月・祝)〜5/2(木)に3泊4日で群馬の上牧温泉に行ってきた。

大峰館

今回お世話になったのは大峰館(おおみねかん)。

ここには日帰り温泉で一度来たことがあって、露天風呂がとてもよかったのを覚えてる。

ちなみに、去年行った館山やお正月に行った水戸もよかったのでどこに行こうか迷ったんだけど、日頃の疲れを癒すならサウナよりやっぱり温泉かなと思い、上牧に決めた。 ちょっと風呂に入りたいなと思ったときにいつでも温泉入れるのはやっぱり魅力的よね。

さて、4/29は自宅を10時半頃に出発し、車を3時間弱走らせて無事水上に到着。 お昼を食べて少し散策したあと、予定通りに15時頃に大峰館に到着した。

大峰館の入口

大峰館

そうそう、水上は山の方ということもあってか、ちょうど山桜が見頃を迎えている感じだった。 いろんなところで花が咲いててとてもよかったなぁ。

チェックインを済ませたら部屋へ。

部屋

部屋は本館のトイレのある部屋。

古さはあるものの設備はちゃんと整ってて、とても過ごしやすかった。 自分が泊まった部屋はけっこう広くて、4〜5人は楽に泊まれそうだったかな。 旅館によくある「あの空間」はなかったけどw

部屋では基本ゴロゴロして積読してた本やマンガを消化してた。 眠くなったら軽く寝たり、お風呂行きたくなったら温泉入ったりと、まさに湯治って感じ。

自然豊かで、外から聞こえてくる鳥や蛙の鳴き声が心地よかったなぁ。 音楽流せるようにスピーカーを持ってったりもしてたんだけど、結局使わなかった。

ちなみにWiFiもちゃんと飛んでてネットにも繋がった。 ちょっと回線速度は遅い気もしたけど、配信見れるくらいには大丈夫だった。 将棋ウォーズしようとするとさすがに遅延が気になったけど。

一応、少し残念だったことも書いておくと、自分の泊まった部屋だと窓が山側で眺めはちょっと悪かったかなぁ。 新館は窓が谷側にあると思うので、眺めもよさそうな気がする。 ということで次は新館の部屋にも泊まってみたいな。

風呂

お風呂は新館の方へ移動して階段を降りたところにある。

前に日帰り温泉で入ったときも思ったけど、やっぱりいい温泉。 こじんまりした露天風呂なんだけど、風情があってとてもいいんよね。

腰掛けるのにちょうどいい感じの石もあって、十分に温まったらそこに腰掛けて休憩もできたり。 繰り返すことで体の芯から温まってコリもほぐれる気がした。

お風呂を出たところには冷やした温泉も置いてあって、飲めるようになってたり。 ほのかな香りがするので苦手な人もいるかと思うけど、冷えてて飲むと気持ちいい。

入りたいと思ったときにいつでもすぐ入れるのもよくて、1日に4, 5回は入ったかなぁ。 1, 2回だけ他のお客さんがいたりというのはあったけど、基本貸切状態だったし。 贅沢だったなぁ。

料理

食事は朝夕の2食が出るプラン。

夕食はメインが上州牛の石焼で、おかずもいろいろ。

ある日の夕食

上州牛の石焼

この牛さんの美味しいこと。 あと写真にはないけど別の日に出てた岩魚の塩焼きとかも美味しかったなぁ。

朝食はおひつに入ったご飯に湯豆腐、そしておかずという感じ。

ある日の朝食

ご飯はお茶碗2杯分はあってたっぷりという感じ。 美味しくてとてもよかった。


宿ではそんな感じで、基本はゴロゴロしてたんだけど、少し出かけたりもしたので、それについては次に書きたい。

今日はここまで!

『Pythonでスラスラわかる ベイズ推論「超」入門』を読んでみた。

Pythonでスラスラわかる ベイズ推論「超」入門』を読んでみたので、軽く感想とか。

概要と感想

ベイズ推論の本はいろいろあるけど、この本は理論というよりツールとして活用することに重きをおいた感じの本。

サンプリングをどう計算するのかとかはライブラリ(PyMC)に任せてしまって本では解説せず、統計モデルの作り方と得られたサンプリングの結果の使い方の解説が中心になってる。 数理最適化でたとえると、単体法とかの解説はしないでPuLP使ったモデリングの解説をしている感じ。

そういうこともあってすごく読みやすかったし、実用としてはこういう本の方が助かるよね。 別に研究者として新しいアルゴリズムを作りたいとかでもないし。

数理最適化もそうだけど、理論とか勉強しても実際に使うときはライブラリ叩くだけで、一番壁になるのはモデルを作る部分なので、その部分がちゃんと解説されてるのはとてもよかった。

とくに興味深かったのは6章で、ABテストでの効果検証、線形回帰での要素の影響度合い、項目反応理論でのテスト評価といった内容が取り上げられていて、こんな感じで使うんだというイメージが持てた。 こういうのをいくつか知っておくと別の分析でも使ったりできそう。

ただまぁ、この本であらためて思ったけど、こういった統計モデルは分析に使うもので、予測に使うには力不足な感じ。 モデルとしては単純な線形モデルにすぎないからねぇ。 それをどう解釈するのかという部分、つまり分析としては、より慎重な解釈を与えてくれるけど、予測の精度が上がるわけではないからなぁ。

あと、実際に使うときにはちょっとジレンマがありそうな感じも。

データが少ない場合は事前分布の重要度が上がるので恣意性がかなり入りそうだし、保証できる範囲も広くなってしまって分析としての意味がどれだけあるのかとなりそう。

一方でデータが多い場合はサンプリングにかかる時間がだいぶ増えてしまって、実用的に使えるか分からないところが。 6.3節では50問のテストを1,000人が受けた結果を分析するタスクがあったけど、たかが50,000程度のデータ、パラメータとしては1,100程度しかないのに、サンプリングで数分が要求されたり。 実際にはもっと次元の多いデータを扱いたいことが多いわけで、オモチャの問題でそんなだとなぁという感じも。

それとこの本では時系列データの扱いがなかったけど、そのあたりも気になるところ。 続編とか出るのかな?

時系列データを同じような感じでモデリングするのを試したことはあって、でもモデルのサイズが大きくなってぜんぜん動かなかったというのがあった。 これについては時系列データ用の分布がいくつか用意されてるのでそれを使うとサンプリングが走るようにはなったんだけど、複雑なモデルを作るのはちょっとキツそうな感じも。 実際の問題で使い物になるんかなぁ。

もくもく読書会

今回本を読むうえで「もくもく読書」という予定を立てて読むというのをやってみた。

これは社内で読書会をやったときに、読書会という場が用意されているとちゃんと最後まで読み進められるという学びがあったから。

あと、connpassをためしに使ってみたかったというのも。

やってみた感想としては、やっぱり予定を立てておくのは効果が大きいと感じた。 実際、予定通りに8回でちゃんと最後まで読み通すことができたし。 計画立てておかないと他のこと優先したりで最後まで読めてなかった可能性高かったと思う。

予定を立てておくと読むペースとかも分かるのがいいところ。 いつ頃までに読み終わるのか分かったり、1回でどれくらいの時間かけて何ページくらい読めばいいのかとかも調整できる。

connpassを使ってみたのはまぁ微妙なところ。 使い方とかは分かったのでとりあえずよかったけど。 あと画像の仕様とか。 資料を貼っておけるのも悪くはなかったかな。

最後に今回の読書でメモったノートブックを貼っておこうと思う。

今日はここまで!