10/6

 進捗報告

論文のイントロを作成した ( 2 session + )

 論文のイントロを書くための素材集めをすることができた.イントロはこの分野の現状がわかるように書かないといけないので,素材集めの部分では一番労力がかかる部分かもしれない.以前参照していた資料の現況を確認したり,市販製品のマニュアルを読んだりして,多少なり手元の素材を強化することができた.次のセッションでは素材集めを継続して,構成を作るところまで進めたい.

 素材集めにある程度見切りをつけて,構成を練ることができた.実際に構成をもとに文章を書き始めて,今半分くらい文章を書いているところである.次のセッションでイントロの文章を書ききって,次は,関連技術の素材を見直すなどしたい.

研究室紹介に参加した ( 60 mins ) 

 研究室の紹介に参加することができた.今日は1人に対して,研究室メンバーで集中砲火する形式になって,若干やりにくそうだったが,研究室でやっていることについては十分に伝わったかと思う.

logging機能の実装を進めた ( 1 session + )

 ロギング機能を作るために,ログ用の構造体を作成して,そこにデータをセットするための関数を作成することができた.今度は,このセット用の関数を使いながら,アクションの実行中にデータをセットしていくことができるようにしないといけない.今はこの作業の途中なので,次のセッションでも,引き続きアクション実施中にログをとれるようにする.

生活面

朝8時半起床.おおよそ8時間半睡眠.十分な覚醒度を得た.

昼はピリ辛の鶏肉がのった丼もの.コンセプトは忘れたけども,軽めで食べれた.

昼過ぎにキャンパス内を一周して,これによって十分な運動量を稼ぐことができた.

夜は豚しゃぶ,米であっさり食べれた.

10/4

 進捗報告

本読みをした ( 1 session + ) 

 講談社ブルーバックスの疲労とは何かをよみすすめて,もう少しで読み終わるというところ.この本は非常に面白い.疲労の話とかは全然追ってきてなかっただが,この数年ですごく進展しているようである.

UVCSの調査をした ( 2 sessions + )

 UnityのVersion Control Systemの設定がうまくいっていないので,その原因を調査するなどした.Web上でMergeできないブランチの情報を確認すると,当該のブランチでは画面が暗転するという問題が起こっているのだが,これはどのようなことなのか?

 この問題についてさらに調査すると,どうやらUnity ForumのQ&AにUVCSのバージョンが古いとうまくいかないということが書いてあって,マニュアルを見ながらアップデートしてみたがうまくいかなかった,ただ,UVCSのクライアントアプリケーションでチェックインしてみたらクラウド側では反映されているらしい.これはUnity Editor側の設定が悪いのか?


生活面

朝9時半起床.おおよそ8時間半睡眠.十分な覚醒度を得た.

昼はツナサラダと食パンを食べた.あっさりめ.

夜はそうめんを食べた.あっさりめ.

9/29

進捗報告

論文構成を検討した ( 4 sessions )

 論文に記載する内容を一通り書き出して,なんとなくの構成を考えることができた.これをもとに,もう少しかっちりと構成を作って目次としたいと思う.途中,WebUIの利用モチベーションをきちんと述べないといけない部分があるので,次のセッションで詳細に調べたいと思う.

 WebUIの利用モチベーションを調べると,法人の利用では,運用保守会社と利用会社で分けるみたいな利用があるらしい.個人の利用でも実家のルータを,遠隔地から管理してトラブルシュートをするというような使い方があるらしい.さらには,ルータに接続したUSBドライブを遠隔地から利用するというようなサービスもあり,これが脆弱性を発生させている事例があるらしい.

 利用のモチベーションを調べて,それを埋めて,大まかな構成を検討することができた.あとはこれを提出して意見をうかがうなどしたいところ.

 執筆スケジュールなどについても書いて,指導教員に提出した.後は返答を待つ.

セキュリティ機構の修正方針を検討した ( 30mins + )

 セキュリティ機構の開発に先日一区切りがついてきたところだが,検知遮断をきちんとやっていくうえでは,まだ問題がある.これをきちんとまともに使える検知機構にしていくためには,修正が必要なので,それをどのようにやっていくかを検討した.これもスケジュールを考えてやっていきたい.

VPS環境を整備した ( 30mins + )

国勢調査に回答した

 国勢調査の案内側舞ってきたので,回答した.そこまで時間はかからなかった.サクサクとマウスで選んで回答するだけ.

生活面

朝7時半起床.おおよそ7時間半睡眠.十分な覚醒度を得た.

朝は軽めにホットサンドを食べた.朝食の欠食を極力なくしていきたい.

昼は丼ものと飲み物で,軽めに食べた.ヨーグルトも食べれたのはいいことだ.

夜は,朝のホットサンドの残りと,うどんを食べた.あんまり元気じゃないので,軽め.




9/27

 進捗報告

Variableの機能を拡張した ( 1 session + 50mins )

 昨日作成したcookieの値の取得の部分のコードを書いて,それぞれのテストを書いて,想定通りに動いていることを確認できた.これにて,cookieについては完了なので,次にURIのRAWの方の値を取得できるようにしているところ.pathとWEBUIからドメインを再構築してその値を持っておくことで,Variable側で取得できるようになるはずだ.コード自体はかけたので,次のセッションでテストする.

 URI_RAWのテストを書いて,期待通りに値がセットできていることが確認できた.また,VariableのPicker側の方のコードも書いて,そのテストも通過できるようになったので,これにてURIのコードは完成.

 Variableの機能拡張がかなり長らくかかったが以上で,この作業は完了とする.main branchにマージして,次の計画を練る.

買い物に出かけた ( 2 sessions ) 

 夏休み期間中に続けていたセキュリティ機構の開発が一旦,一区切りがついたので,出かけた.明日大分に戻るので,この夏何度も出かけた店にまた訪れたりした.今年の夏は主に日向方面の店に足繁く通った.本屋とか,スーパーとか.非常に長い夏休みだった.そこまで穏やかではなかったが,昨年よりは落ちついて創作活動に取り組めた気がする.次はタスクを抱えていない状態で戻ってきたい.

本読みをした ( 1 session + )

生活面

9時半起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼は,米,シャケ,とんかつ,ひきわり,サラダでバランスよく食べれた.

夜はすき焼きをした.結構ボリュームがあったが食べれた.

買い物の先で2時間くらい歩いたので,これによって十分な運動量を稼ぐことができた.

9/26

 進捗報告

Variableの拡張を進めた ( 3 sessions )

 ファイル名や相対ファイルパスの格納までがうまくいったので,それに対するテストを作成し,テストが無事にパスすることを確認した.Variableのpickerの方でもこれらの変数をバッファから取得できるようにして,これらについてもテストを作成して,期待通りに動作することを確認した.今は,クエリストリングのパースをするためのプログラムを書いている.基本的には&でクエリを切り分けて,=によって,keyとvalueを取ってきて,ARGSに投げ込んだらいいと思っている.次のセッションでもこの作業を続けていく.

 クエリをパースするプログラムを書いて,テストケースを走らせて,期待通りの処理結果が得られることを確認した.ARGS_GETについてはVariable側ではすでに処理が出来上がっていたらしく,新たに作成する必要のある部分はなかった.クエリの次は,cookieの値をパースするプログラムが必要なので,それを書いている.容量はクエリストリングと似たようなものなので,似たようなコードを書いて,テストしていきたい.

 Cookieについてパースする関数を書き足して,それに対するテストも作成し,期待通りにCookieの文字列をパースして,バッファに値がセットされていることを確認できた.愚直に値を持つとバッファがごちゃついてしまうので,cookie用に新たに構造体を拡張する必要があった.さらに,VariableのPicker側でも,これらを拾い上げるコードも書いた.今はそのコードをテストするためのテストコードを作成しているところ.次のセッションでは,このテストコードを完成させて,Cookieの値が入らなくなった時にメモリを解放するための機能を書き足していきたい.

散髪に行った ( 1 session ) 

 だいぶ髪が伸びていたので,散髪に行った.散髪屋のおばさんの凄まじいマシンガントークを聞いて,髪がさっぱりした上に,おばさんの家庭事情にも非常に詳しくなった.とにもかくにもメガネとか,ヘッドセットをする時に邪魔だった横髪が減って,非常に快適である.


生活面

10時起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼は米,味噌汁,シャケ,サラダでバランスよく食べれた.

散髪の復路を歩いて帰ったので,これによって十分な歩行量を稼ぐことができた.

9/25

 進捗報告

物件情報を調査した ( 1 session )

 来年度から居住する地域をなんとなく決めようとして,物件情報を色々とみることができた.価格のレンジは結構広めで,下は2万円弱からある.リモートワークがそこそこに発生するので,仕事部屋と生活部屋を分けようと思っているが,どのようなスタイルにするのかについては,あまり明らかで無い.

Variableの機能を拡張した ( 3 sessions )

 昨日書いていたPostIteratorの処理をテストすることができた.どうやらライブラリの実装の問題でJSONでデータが渡っている場合には当該コールバッグが動かないみたいである.別のデータ形式で送信してみるときちんと期待通りの動作をしていることが確認できた.編集内容をコミットして,次はクエリストリングへの対応を始めた.クエリストリング自体を編集する必要はないので,取り出してきたらパースして,値をARGSにセットしていくだけ.クッキーに関しても同じような処理になりそうではある.

 クライアント側のプロキシのコードを整理して,クエリストリングを取る処理やファイルパスを取る処理をする関数をクライアント側に移してきた.これによってvariableのpicker側でガチャガチャと文字列を触ってクラッシュさせるというリスクを低減できた.次のセッションでも引き続きクエリ周りを扱うコードを書いて,できればテストまでいきたい.

 クエリストリングを抜き出してくるコードについてのテストケースを作成して,コードが適切に動いていることを確認できた.また,クエリストリングを除いてファイル名だけを残す関数がまともに動いていないことが判明したので,書き直して,これについてもテストを書いて,きちんと動いていることを確認できた.今は,ファイルパスから,ファイル名だけを抜き出してくる処理を記述しているとこ露である.次のセッションでも同様の作業を続けて,テストを実施するところまでやりたい.

生活面

10時起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼はホットサンド,ミネストローネ,鶏皮,サラダでバランスよく食べれた.

夜はシャケ,米,納豆,以下の焼き物,サラダでバランスよく食べれた.

9/24

 進捗報告

Variableのコードを拡張した ( 4 sessions  )

 昨日からVariableのコードを拡張していて,今日はVariableの中で一番目立つARGSを実装している.ARGSはARGS関連のVariable同士で微妙に取れるところが違うという,少し複雑なVariableなので専用の構造体を抜きに作ると複雑になってしまうと考える.そこで新しく構造体を作り,初期化関数や,値のセットをする関数,パースをする関数などを作る必要がある.今はその辺りの道具を揃えているという段階.次のセッションでも引き続き,ARGS関連の関数を設計していく.

 さらにコードを書き進めて,ARGS関連のユーティリティを書いて,Variable picker側でこれを拾い上げるための処理を書くことができた.今は,これに対するテスト用の関数を書いていて,POSTについては問題なく動いていることが確認できた.次はGETについてて書いて,その後にARGS全体について書く.次のセッションでもテストを引き続き書いていく.

 テストコードを書いて,ARGS関連の関数が適切に動作していることが確認できた.次はこのセット用の関数を使って,client proxyが値をセットできるようにコードを書き進めていく.

 クライアントプロキシ側でARGSの値をセットするためのコードを書き足した.これによってひとまずはPOSTデータに関しては,値がセットできているはずである.これをテストするために初めてクライアントプロキシについてテストを書いて準備する予定で,そのためのコードを書いている途中である.次のセッションでは,このテストコードを完成させて動作を確認し,クエリストリングのパースもできるようにする予定である.

 Post Iteratorの動作を確認しようとしたが,どうやら,そもそも該当するコードが実行されていないように見える.調べてみるとどうやらPost Processorの定義の仕方ががあまりよく無いということらしい.これは修正が必要.ちょっと詰まったので,別のことをしようと思って,ルールのオペレータの否定演算に対応することができた.また,複数文を拾ってきた場合の演算にも対応した.これが動くのかどうかテストできていないが,明日のテストでここも含めて確認したい.

内定式準備 ( 1 session )

 内定式の研修で使う事前課題をこなすことができた.時間がかかるものだと思っていたが,やり始めたら割合すんなりと書くことができた.まだ,本番までに時間があるので何回か見直すなどしておくと良いだろう.

生活面

朝10時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

昼は,チャーハン,ピーマンの炒め物,ほうれん草の和物,鶏皮とで,ボリュームがあったが食べれた.

夜は,生ハム,米,麻婆どうふ,キャベツの和物であっさり目で食べれた.夕方に鮭も食べたから,それも含めると結構食べてるかも.

9/23

 進捗報告

睡眠の本を読み切った ( 1 session ) 

 睡眠リテラシーを高めるために睡眠の超基本を読み切った.ここ数日で睡眠環境は改善してきていて,夜間の電気を薄暗くしたり,夕方位以降のカフェインを避けたり,寝る時にアイマスクをしたり,していてる.そして,寝れない時に布団に居続けるのもよくないということなので,布団に入って20分くらい寝れなかったら布団から出るようにしている.こうした改善の効果もあって,徐々に入眠はスムーズになってきているような気がしている.今後も,睡眠の改善を続けていく.

メモリエラーの解消をした ( 5mins )

 昨日の夜に発生したメモリエラーの出所の検討がなんとなくついていたので,そこのコードを少し変更したら,システムはクラッシュしなくなった.今回の修正は僅か5分で完了.すばらしい.

取得できるVariableを増やした ( 1 session +  ) 

 これまでは1個のデータだけを返してくる実装をしていたのだが,複数個のデータを一度に返せるようにVariableを拡張できた.これによってRequest headerの名前一覧をまとめて返したり,headerの保持する値をまとめて返したりができるようになった.テストも通るようになって,ヘッダ周りはかなり幅が広がった.今は,file_namesやfile_basenameを取得できるようにコードを書き進めている.このためにはクエリストリングを取り除くためのコードを書かないといけない.次のセッションでも引き続きこの作業を続けていく.

買い物に行った ( 2 sessions )

 昼間に買い出しの用があったので,ついて行ってニトリやトライアル,ミスターマックスなどを見て回ることができた.家具や,電化製品,文房具などをかなり見て回ることができた.来年の新生活もあるので,どのような部屋を目指すのか,レイアウトを考えたりしてみると良いと思う.

UnityのVCSについて勉強した ( 1 session + ) 

 Best practice for organizing a Unity projectを読み進めることができた.最初のうちはUVCSの基本的な用語の整理があり,リポジトリの管理方法などについての説明があった.今は,ファイル構造についての説明を読んでいる途中である.

生活面

10時起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼は鮭,米,味噌汁,卵焼きであっさり目で食べれた.

夜はハンバーグ,ピーマンの炒め物,鶏皮,ブロッコリー,米,おから,でかなりボリュームがあったが,バランスよく食べれた.

買い出しに行った先で3時間ほど歩いたので,これによって十分な運動量を稼ぐことができた.


9/22

 進捗報告

Checkerのコードを修正した ( 4 sessions )  

 request bodyに関するコードを修正することができた.どうやらリクエストをx-www-url-encodedの形式に直すコードに問題があり,データが適切にバックエンドに届いていないという問題があった.しばらくコードを書き直して,最終的にバッグエンドと適切にワンラリーができるようになったので,この問題は解決.色々な機能が揃ってきて,あとはvariableをきちんとハンドリングすることが大切になってきたので,次のセッションではvariableのコードをどんどん書き足していく.

 さらにコードを書き進めて,variableのrequest lineとquery stringを取得するためのコードを書いて,テストを通すと頃まで実施できた.今は,クライアントのIPアドレスを取得してバッファにセットするための関数を書いているところで,どうやらlibmicrohttpd側のconnection infoの中にその情報が入っているらしいので,それを抽出して文字列に変えてからバッファに書くようにする.次のセッションでも引き続きこの作業を進めていく.

 IPアドレスの抽出のコードを書き進めて,なんとなく完成系が見えるくらいのところまできた.connectionの情報をstruct sockaddr_inの形で抜き出せるので,ここからIPアドレスを得る.ただし,このままではアドレスが文字列型にならないので,inet_ntopという関数を使って,これを文字列に変換する.次回は,このコードが正しく動いているかテストしたいが,libmicrohttpdの構造体の中にあるものは,テストをセットアップするのが面倒だ.テスト用のConnection構造体みたいなのが作れればいいが,それも含めて次のセッションで考える.

 IPアドレスのコードについてテストをして,きちんと動作していることが確認できた.また,他にも,バージョンやボディについてもvariable_pickerの方できちんと拾って来れることを確認できた.ただ,テストの過程で,何か値をポストすると領域不足でクラッシュすることがあることに気づいた.明日はこの問題に対処するところからスタートする.

自己分析に対応した ( 40 mins )

 性格診断的なやつをやりなさいということだったので,ようやく対応した.SPIみたいな問題をまた解かされるのかと思っていたが,やってみたら性格診断だけだった.この手のアンケートに人間の性格をはかれるのかどうかについては疑問だが,兎にも角にも一つ作業が片付いて良かった.

生活面

11時起床.おおよそ9時間睡眠.高い覚醒度を得た.睡眠スケジュールが多少狂ってしまったが,そろそろ負債を返し切るくらいだと思うので,今日からまた目覚まし時計をかけて,寝るようにしたい.

昼は鮭,米,味噌汁でバランスよく食べれた.

夜は秋刀魚,米,小松菜炒め,味噌汁でバランスよく食べれた.おやつで栗食パンも食べたので,夕方以降は割とたくさん食べたことになる.

9/20

 進捗報告

Checkerの修正作業を進めた ( 1 session + 30mins ) 

 出発前に詰まっていたACの部分をデバッグすることができた.原因はregexのところとやはり同じのような物で,同じような作業をすることで直すことができた.これで,ルールが発火するかどうかの判定については全ルール分実施することができた.あとは,検査対象の文字列の取得のバリエーションを増やしていきたい.あとは,responseのbufferがリークしていて,かなり無駄になっているので,この部分を修正したい.次のセッションではresponse bufferのリークをなんとかしていく.

 レスポンスバッファのSIGSEGVを修正することができた.しかし,今までは,最後の処理がSIGSEGVで落ち続けていたので,メモリリークが報告されていなかったようであり,実は大量のメモリリークがあるということが判明した.なので,全体で換算すると90MB程度がリークしていて,組み込み機器では無視できないリーク量なので,修正が必要である.次のセッションでは,全体のメモリリークを見直して原因を調査していく.

睡眠リテラシーを高めた ( 1 session ) 

 睡眠の超基本を読み進めて,睡眠リテラシーを高めることができた.chapter3を読み切って,次はchapter4を読んでいる.前に一度読んだが,復習も兼ねてもう一回読んでいく.この本を読んで,だんだんと生活リズムを矯正してきている.

買い物に行った ( 2 session ) 

 かなり重荷だった作業に一区切りがついたので,息抜きに買い物に行った.ドラモリとイオンを回った.イオンのホームセンタにはかなり長い時間いた.

生活面

10時半起床.おおよそ9時間睡眠.ここ数日の睡眠負債をきちんと返すことができた.また,睡眠のパフォーマンスもそこそこ高かったと感じる.

昼は米,スープ,玉子焼き,サラダであっさりと食べれた.

夜は豚しゃぶ,オクラ,納豆,米,エリンギのバター炒めで,バランスよく食べれた.

9/17

 進捗報告

Checkerの調整作業を進めた ( 2 sessions + 40mins )

 regexの処理をparseのフェーズに移行することができた.これによって,regex patternsを実行時にコンパイルする必要がなくなるので,実行時間が短縮されるはずである.この作業は一発で成功した.難航する可能性もあったので,良かった.また,昨日の作業をcommitすることができた.これで,大分でも作業の続きができそうだ.regexについてはResponseのphaseでクラッシュするという問題があった.この原因を調査するとphase4でbinary dataが渡ってきた時に文字列終端を発見できないために,クラッシュするらしい.これについてはデータ長さを与えることで,なんとかなりそう.次のセッションではこの問題に対応する.

 データサイズをきちんとvariableのデータと合わせて提出する形にして,これをつかってregexのマッチングをするようにしたら,クラッシュせずに全てのマッチングをこなせるようになった.さすがにresponse bodyはデータ量が大きいからか,多少のもたつきを感じるが,もっと小さなWebサイトならそこまで問題にならないだろう.ただし,最後にacがregexと似たような問題でこけるようになった.今回はBuildACではなくて,parallelmatchingのほうだ.次のセッションではこの問題に対応する.最後のphaseで,ACのこの問題.結構ラスボス感がある.

 研究室の環境で試験をするために,研究室のWSLにOWASP Juice shopを入れようとしたら,npmがエラーを大量に出力して結局うまくいかなかった.ということで,ctfdを入れてみたところ,今度は見たことのない挙動をしてしまう.原因はよくわからないが,もう日も暮れたので帰ることにする.次のセッションでは,OWASP Juice shopの導入をする.それからWSLがあまりにも不安定なので,開発用のvpsを借りようと思う.

大分に移動した 

 大分のほうに用事があったので,特急に乗って大分に移動した.前日入りによって余裕を持てるのは非常に良かった.移動後にかつての研究室メンバーと再開することができた.なかなか元気にやっているようであって,良いことだ.

人工知能の勉強をした ( 1 session + 30mins )

 明日は人工知能関連の講義のTAをやることになったので,付け焼刃ではあるが,人工知能の知識をつけておこうと思って,特急でゼロから作る Deep Learningの2章と3章を読んだ. これによってパーセプトロンとニューラルネットの概念を復習することができた.学習に際してのポイントなどについては,より後の章に書いてあるので,帰宅後に読んでしまいたい.


生活面

朝8時半起床.おおよそ6時間睡眠.十分な覚醒度を得た.

昼は餃子と米,みそ汁でバランスよく食べれた.


9/16

進捗報告

Checkerのコードの調整を進めた ( 4 sessions + ) 

 setvarの文字列処理がらみのメモリエラーを解決することができた.また,数値代入の時の最後にこける問題についても原因を特定して解決することができた.これで,このアクションについての問題はしばらく大丈夫だとは思う.もう少しハードなテストケースも準備したいところだが,今はパフォーマンスの問題があまりに顕著なので,次のセッションで少しこの部分に手を入れてみる.

 パフォーマンスの問題を改善するために,ツリーの構築や正規表現のコンパイルに関する処理を全てパーサ側に持ってくるようにした.このためにコードをあちこち書き直すことになった.ただし,実際に動かしてみるとacのツリー構築の失敗関数の構築がメモリエラーを起こしているらしい.この問題はツリーのコードをもう少し細かく追わないと修正できない気がする.次のセッションではこの問題をもう少し細かく観察して,テストケースについても増強していく.

 ACのコードを見直したところインサートするところの処理が,おかしいことに気がついた.一文字がヒットするだけで文字列全体がヒットした扱いになっているらしい.先日GPTに相談して,指摘されて,確かにそうかと思って修正したのだが,元実装の方が正しかった.とはいえ,元実装の方はかなり意図の伝わりづらいコードだったので,元実装の意図を汲み取れなかったのは普通.次のセッションでは,この部分を書き換えていく.

 コードを見直したのだが,どうも釈然としない.FFのコードを無効にすると,とりあえずは動くので,できれば有効にするということで,進めていくことにする.FFのことを考えなければ,ルールの読み込みから実行までにかけてとりあえずは動くらしい.ユニットテストを見る限りマッチングも適切にできていそうではある.


買い物に行った ( 1 session ) 

 所用で大分に帰る必要があったので,特急の切符を取りに駅に行った.そのついででスーパーにいって,色々みてきたりもした.


生活面

11時起床.おおよそ9時間睡眠.高い覚醒度を得た.入眠に関してもそこまでの困難さがなかった.

昼はうどんを食べた.キウイフルーツと合わせて,あっさり目で食べれた.

9/15

 進捗報告

チェック機構のデバッグを進めた ( 5 sessions +  )

 チェック機構のオペレータのデバッグを進めて,メモリエラーをなんとか解消することができた.これによって,フェーズ1に関してはチェックをかけながらページをロードすることができるようになった.それはそれで非常に良いことなのだが,現状の実装では初期設定のフェーズでやるべき処理が実行時に回っている部分があり,ページの読み込み速度が非常に遅くなってしまう.そのため,処理の移動を次のフェーズに実施したい.そして,テストケースも修正する.

 setvarのコードを見返したら,文字列を全くうまくハンドリングできていないことに気がついたので,書き直している.おそらく途中で,別のタスクに移ってしまって,未完成のままに次の作業に進んでしまったのだろう.テストケースも一部に対してしか書かれていない.次のセッションではこの部分の書き直して,テストするところまで進みたい.

 さらにsetvarのコードを書き直して,代入の式の左右を別々に取得するように書き換えることができた.このコードによって文字列がきた場合でもハンドリングできるようになるはずだが,まだテストしていないので,次のセッションで検証したい.

 setvarのコードのテストをしてみて,コードにミスによってメモリエラーが出たりしているのを確認した.原因を特定して,この部分を治すことができたが,大規模な書き換えの結果以前動いていたコードが動かなくなってしまった.次のセッションでは,この部分を直していく.

 問題の原因を調査したところ,代入時の型の指定が間違っていたことが原因だった.これによって前述の問題は解決され,文字列のtokenizeについてもきちんとできることが確認できた.ただし,文字列の写しがうまくいかない.このためには片方をダブルポインタにしないといけない.この作業を次のセッションでやっていく.

生活面

昼はおにぎり,味噌汁,鮭で軽めに食べた.夜はスペアリブ,米,春雨スープ,納豆でバランスよく食べれた.夕方に地区を一周歩いていて,コンビニにも行って,十分な運動量を稼げた.


9/13

 進捗報告

睡眠のメカを勉強した ( 2 sessions + )

 ニコニコのポイントが余っていて,9月末で失効するので使いきれという通知が来た.これはBookWalkerという外部サービスと連携して使えるということなので,講談社ブルーバックスから刊行されている睡眠の科学を買って読んでみている.

 睡眠にはレム睡眠とノンレム睡眠があり,これらには別種の役割があることが知られている.ノンレム睡眠では,脳活動が同期的になり,レム睡眠ではバラバラに活動する.レム睡眠では,感覚器からの入力は低減されていて,脳内の内的な刺激で覚醒状態に近いレベルで活動している.ノンレム睡眠では,外部からの刺激はシャットアウトされている.

統計学の勉強を進めた ( 1 session + )

 はじめての統計学の第6章の練習問題を解き終えることができた.これで6章を突破.t分布を使った区間推定や点推定の方法についても,ある程度練習を積むことができた.サンプルサイズをどの程度必要かという話題も出てきて,結局は誤差をどの程度許容するのかによって変わってくる.誤差をεに抑えたいときは,だいたい(zσ/ε)^2程度のサンプル数を確保すれば良いということだった.次のセッションからは第7章に入ってくる.次の章はχ2検定を扱う.

ACのコードをデバッグした ( 2 sessions )

 ACのコードがルールファイルを与えることでなぜかSIGABRTを引き起こすという問題があるので,それのデバッグを進めることができた.デバッガで回してみて,とある入力によって,ある関数がコケるという部分までは特定できた.ただ原因は依然として不明.次のセッションで,この入力をさらに注意深くみていきたい.

 さらにACのコードをチェックすると,メモリの取る量を1 byte分間違えていて,それで境界外の書き込みをやっているのが問題だった.これを直して,さらに,ワードの追加であったバグも修正して,長らく放置していた問題を解決できた.


生活面

11時起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼はとんかつ,米,味噌汁,サラダでバランスよく食べれた.

夜はビーフンとチキンできちんと食べれた.

夕方にマルイチまで90分くらい歩き,これによって十分な運動量を稼ぐことができた.


9/11

進捗報告

Bufferの要素取得の実装を進めた ( 2 sessions + 40mins )

 Bufferの要素取得の実装を進めることができた.これによってリクエスト側の要素取得を色々とできるようになってきているが,レスポンスとは一転してリクエスト側は取得が非常に多様になっていて,まだまだ実装量が全然追い付いていないという感じ.ひとまずは型枠だけ取ってしまって,それから中のものを一つづつ実装していこうかという感じ.場合によっては,構造体自体の仕様にも手を入れることになるかもしれない.

 実装を進めて,型枠を取り続けた.もう少しで型枠は取れると思う.Buffer類のメモリリークが途中で気になって,これを直し始めたのだが,完全には治せなかった.インタフェースのポインタの扱いが間違っているかもしれない.

 さらに実装を進めて,リクエスト側の型枠を大体取ることができた.バッファ類の変更によって,テストが通らなくなるという事態があったが,これについても修正した.ヘッダなど一部についてはリクエストをすでに取得することができるはずだが,他にも色々取り方を実装しないといけないので,次回以降のセッションで一つづつ実装していきたい.

設定ルールを個別に読み込むように変更した ( 1 session ) 

 設定ファイルとセキュリティルールが,今までは混在した状態で読み込まれていたので,それらが個別に読み込まれるように変更した.まずはconverterのコードを変更して,設定ファイルとルールファイルを別のファイルに出力するようにした.加えて,データファイルについてもここでコピーをかけることにした.pythonのファイルコピーにはshutilという便利なものがあり,これを使うことでデータファイルのコピーはスムーズにできた.それができたら今度はparser側のコードに設定ファイルを読み込むための機能を付け足して,今までのparsing関数では新たに追加されたデータファイルを無視するように修正した.これらをmain側で呼ぶようにして,最終的にこれらのファイルが個別に読まれていることを確認できた.

統計学の勉強を進めた ( 1 session + )

 統計学入門を読み進めて,第6章を突破することができた.第6章は色々な仮設検定手法を紹介するというもので,その計算の詳細には立ち入らなかったが,様々なシチュエーションでどの検定手法を選べば良いかということを勉強した.1標本では,ある母平均を仮定してt検定を実施するなどが可能.2標本同士の比較でもt検定などが実施できる.この際,等分散性と正規性を確認することが必要だが,どちらもそれを検定する手法があるということだった.しかし,仮説検定では中心となるある一点を帰無仮説に置かないといけないという都合上,正規性をもつことや,等分散であることがその1点になってしまい,検定で正規性を持たないという対立仮説に対して帰無仮説を棄却できなかったとしても,その帰無仮説自体をサポートすることはできないから,それらを積極的には主張できないという問題があった.3標本以上では,分散分析や多重比較があった.分散分析はF値を元に検定をする.多重比較には,それぞれの標本同士を比較するTukeys' Testや基準の群を設定してそれと他の群を比較する Dummes' Test,右肩上がりになっているかを検定するWilliams' Testなどがあった.分散分析から多重比較に移っていく流れが多いが,結果が食い違うときはむしろ多重比較のみに絞った方が良いということだった.

生活面

12時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

昼食はうどんを食した.割合あっさりと食べれた.

夜はチャーハン,チキン,納豆,切り干し大根でバランスよく食べれた.


9/10

 進捗報告

Bufferの要素取得を実装した ( 3 sessions )

 レスポンスバッファから所望の要素を拾い上げてくる処理を実装することができた.ルールセットを見返してみると,レスポンスに関しては色々な部分を取ってくるという感じでもなかったので,そこまでコード量を書かなくても実装がある程度形になった.リクエストについてはもう少し色々な部分を取ってきたりするので,工夫が必要.次のセッションではレスポンスの処理を一旦テストして,それができたらリクエスト側の要素の拾い上げにも対応していく.

 さらに書き進めて,レスポンス側のコードのテストケースを作成し,意図通りにコードが動いていることを確認することができた.途中でSIGSEGVが何度か起こったので,デバッグ作業が発生したが,テストによっていくつか修正点を見つけることができたので良かった.次のセッションではリクエスト側の処理を書き進めていく.

 リクエスト側ではリクエストラインを再構築できるように書く必要があるので,それに対応していた.途中で,proxyが通信を通過してくれないという問題が発生して,デバッガが途中で全く関係ない部分を指摘してくるので大変混乱したのだが,読み込めていないファイルがあることが原因だった.それから,bufferが解放されていないことによるメモリリークにようやく対応した.これでテスト実行後の大量のaddress sanitizerの出力を消し去ることができたので,いい感じだった.

9/8

 進捗報告

統計学の勉強を進めた ( 4 session + )

 統計学入門を読み進めて,確率分布や推測統計の基本的なアイデアを復習することができた.推測統計では,母集団を何らかの確率分布とみなし,得られた標本から母数を推測する.この際,全くのゼロから推測を始めるのは難しいので,通常は数学的な確率分布に母集団が近似すると仮定してから話を始める.標本を抽出する際には完全なランダムで値を抽出することが望ましいが,それが難しい場合には,層別に値をとったり,クラスタごとに値をとったりする.

 さらに同書を読み進めて,信頼区間の概念について学習した.ある値から標本平均を計算すると,それと母集団の真の平均には誤差があることになる.これを標本誤差という.標本誤差の分布については,中心極限定理によって,その分布は正規分布に近似され,サンプルサイズが大きい時には標本誤差は0に近づくことが知られている.このことから,得られた値から,0から±2σの区間を計算すると,その区間に95%の確率で真の平均値を含んでいることが期待できる.なお,サンプルサイズが十分に大きくできないケースでは,標本誤差はt分布に近似されることが知られており,こちらを使うケースも多い.

 それからまた読み進めて,仮設検定の基本的な流れと過誤について学習できた.t分布を用いた検定では,まずは分散を計算して,それを元にt値を計算する.そのt値が得られた標本間の差ということになるので,これを元にp値を計算して,それが有意水準を下回っているかどうかを確認する.下回っている場合には統計的に有意な差が見られたと言えるし,そうでなければ統計的な有意な差は見られなかったということで,帰無仮説は棄却できない.統計的検定がミスするのは2種類のミスがあり,帰無仮説が正しい場合に,帰無仮説を棄却して対立仮説を採択してしまう第1種の過誤と,対立仮説が正しい場合に帰無仮説を棄却できない第2種の過誤とがある.


生活面

10時半起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼はビーフンを食べた.野菜多めで,ボリューミーだったが食べれた.夜は卵焼き,豚しゃぶ,米,納豆でバランスよく食べれた.

夕方にスーパーやドラッグストア,100均の中を1時間以上歩き回った.また,作業時間の合間の休憩時間に椅子を持ち上げたりして,これによって運動量を稼げた.

9/6

進捗報告

A* pathfinding projectを試してみた ( 3 sessions )

 A* pathfinding projectのfree版を導入することができた.Pro版はAsset Storeにあるのだが,Free版は公式サイトでpackageデータを落としてきて,自分でローカルから入れる形式になっているようだ.あとは,これの使い方を学ばないといけないので,ドキュメントを読んでいる.次のセッションでもドキュメントを読んで使い方を勉強していく.

 ドキュメントを読んで,Unity上で試しにscanを実施するところまでやってみた.Tilemapの設定をして,A*のPathfindingのコンポーネントを付与したGemeObjectをマップに合わせてScanをすると,青線が引かれて,移動可能な経路の大枠が作られたらしい.次のsessionでは,試しにAIPathを付与したコンポーネントを配置して,ターゲットを置き,経路が計算されるかを試してみたい.

 試しに必要なコンポーネントをアタッチしたりしてみたが,プログラムがエラーを吐いてゲーム全体が落ちてしまう.どうやら,アップデートをかける関数が古いプロトコルをで通信をしようとしてUnity側がそれを落としてしまうらしい.どうせプロ版へのアップデートはしないので,update用のスクリプトに直接手を入れて,アップデートにまつわるところをコメントアウトして回ったら動くようになった.で,経路はどうもいい感じに計算されているので,これを使って,動き回るためのスクリプトを書いていきたい.どのようなデータ型で経路が保持されるのかは要調査.単方向リストか配列ならとても都合が良いのだが.スピードはどうするのか?

Redditのアカウントを作り直した

 なぜかRedditの僕のアカウントが永久BANを食らっていたので,アカウントを作り直した.紐づけただけで投稿がないアカウントというのはspamと間違われやすいのか,知らないが迷惑な話ではある.ついでなので,興味のある板をフォローしたり,アバターを真面目に作ったりしてみた.

Checkerのルール適用のコードを書き進めた ( 1 session ) 

 Checkerのルール適用のコードがphase1の分しか書かれていなかったので,別のphaseでも使えるようにコードを拡張した.この作業の結果phase 2,3,4,5でも同じ関数を実行できるようになった.また,SecRuleだけでなく,SecActionについても実行できるようになった.途中で,responseの引数の値を打ち間違えていたことでSIGSEGVが起こっていたが,最後の1分でミスに気づいて修正できた.これで一旦統合の作業は完了か.mainにmergeして,次の開発用ブランチを作ろうか.


ゲーム開発会議に参加した ( 1 session )

 ゲーム開発会議に参加して,今週の進捗状況について色々と報告することができた.向こうの進捗も聞いたが,序章のストーリーが少しづつ形になっているようで,いい感じだった.こちらも今週は新しいスクリプトを入れたりして,動きが増えたのが良かった点.

生活面

10時半起床.おおよそ5時間睡眠.それなりの覚醒度を得た.

昼間はハッシュドポテトなどを軽めに食べた.

夜は春雨スープを食べた,非常にあっさりでいい感じだった.

9/5

 進捗報告

Checkerのコードを修正した ( 4 sessions  )

 Checkerが実際のルールを読ませるとコケる問題について対応することができた.結局のところ原因は,Contextが0初期化されていないことだった.仕様上 "0"という文字列がそこにないと最初の値すらセットできないということになっているので,”0”という文字を入れて回る初期化関数を書いたらコケずに走るようになった.値のセットは,初期化以外の処理でも使うことになるので,外部に切り出しておくべきだと思う.次のセッションでは,この処理を書き足して,それに対するテストも準備するようにしたい.

 さらにコードを書き進めて,初期化関数のテストを書くことができた.そろそろテストがごちゃついてきて,見通しが悪くなってきている.そこで,関数ごとに切り分けたりしてテストを整理している.次のセッションでは,この作業を完了して,初期化関数の値のセットを専用の関数でやるようにやりかえていく.

 さらにコードを書き進めて,値のセットをするための関数を書いている.ただ,今回のケースでは複数ある選択肢から狙った変数だけを,狙った値で書き換えるということなので,うまくやらないと,コードがだらだらと長くなってしまう.スマートに書くのはむずかしいきがするが,列挙型でフィールドを指定するようにすることで多少は読みやすくなったかも.

 テストの作成をして,値をセットするための関数が動いていることを確認することができあ.これで,初期化関数の一連の作業は完了.もう一度動作の見直しをする.


生活面

13時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

昼はピラフとサラダを食べた.あんまり食欲がなかったが,なんとか食べれた.

夜は米,豚肉,鰹のたたき,卵焼き,サラダ,納豆でバランスよく食べれた.

夕方に1時間ほど小学校までの通学路を歩いて,十分な運動量を稼ぐことができた.


9/4

 進捗報告

BTの記事を書き進めた ( 2 sessions )

 BTの記事を書き進めることができた.Actionの説明を書き終えて,Decoratorの説明も全て書き終えることができた.継承関係の部分についても説明を入れることができた.これにて,本文の部分は全て書き終えることができたので,見直しをして,概要とか,リンクとかを整備したら公開できる.次のセッションではそれらの作業を実施したい.

 さらにBTの記事を書き進めて,本文以外のところの文章も書き終えることができた.3回ほど見直しをして,ミスを修正するなどして,公開にこぎつけた.その後に,前パートのリンクを更新したりした.次のセッションでは,Part3の作成を始めたい.

Parserのデバッグ機能を拡充した ( 2 sessions )

 Parserにメモリ使用量を計算するための機構を追加することができた.これで,ルールがどれくらいのメモリ量を食っているかを手計算で求めたり,推測したりする必要がなくなるので,これはとても良いことだ.何のルールに対してのメモリ量計算も大体かけたのだが,テストがSIGSEGVでこけていて,どうもサンプルデータのパースがうまく行っていないらしい.原因を次回のセッションで調査する.

  デバッグを進めて,サンプルデータのフォーマットに問題があることを特定したので修正した.そこからさらにメモリ容量が適切に計算されているかどうかを確認するテストケースをいくつか作成して,手計算でもとめたメモリ容量と実際の計算値が一致することを確認できた.これにて,メモリ容量の計算関数は完成とする.

Checkerの検査機能の開発を進めた ( 1session + )

 checkerとproxyの統合作業を進めた.この前はその雛形のところまでを書いていたのだが,proxyの動きを改善するためにproxy側のコードをそこそこ変えたというところと,checker側のコードで他の種別のルールをサポートしたということで,加筆修正が必要になった.で,統合のためのコードがなんとなく書けたので,実際のデータとルールとで動かしてみたらメモリエラー.原因を探ってみると,コンテキストの初期化をNULLでやっていて,これがからかどうかをチェックする時に0と比較して真なら文字列が入っていない,みたいな仕様になっているらしい.これはとても面倒だ.力技だが,0\0みたいな文字を入れておくか?次のセッションで,この問題に対応して,ひとまずルールがこけずに全て走るようにしたい.

9/3

 進捗報告

BTの記事を書き進めた ( 3 sessions )

 BTの記事を書き進めることができた.制御ノードの図表をつくって,コードを貼り付けて説明を書くところをやっている.SequenceNodeの説明までが書き終わっているところだが,Selectorのコードを貼り付けたところで,リファクタリングが十分に住んでいない部分に気がついてしまって,コードを直し始めた.次のセッションでは,このコードを修正して,SelectorNodeの説明を書いていく.

 SelectorNodeのコードを修正して,制御ノードについてはあらかた説明を書き終えることができた.現在は末端ノードの説明を書いているのだが,実際にゲーム上で使う末端ノードを汎用的に作ることはできないので,ここで定義するAction NodeやCondition Nodeは,あくまでそれ専用のノードを作るための雛形であるということを説明しないといけなくて,図表を作るところまで行ったが,その説明がうまく書けていない.次のセッションでは,ここの説明を拡充していく.

 さらに書き進めて,DecoratorNodesのコードを貼り付けたり,ActionやConditionの説明を書いたりした.Actionの説明をかけていて,今はConditionNodeの説明を書いているところである.しかし,Conditionにもコードの気に入らない部分があるので,先をそっちに直している.

買い物に行った ( 1 session )

 ミスターマックスに買い物に行って,食料品や電化製品を見て回ることができた.今日は,工作用品とか,カー用品とか,普段あまり注目しないとも割合きちんと見て回った.


生活面

12時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

朝は米,魚,玉子でシンプルに決めた.夜は山芋鉄板焼き,米,味噌汁,鮭でバランスよく食べれた.

買い物先で1時間以上歩き回っていたので,これによって十分な運動量を稼ぐことができた.後は,無酸素的な要素も入れようと思って休憩時間に椅子を30回ずつ持ち上げたりしていた.



9/2

進捗報告

Parserを調整した ( 4sessions )

 Parserの機能を調整してmarkerに対応するための一連の処理を書くことができた.これによってphase1においては,適切に新しいmarkerが追加されているのを確認することができた.しかし,複数フェースに同時に追加するという場合には,一つのオブジェクトが複数のリストに追加されようとするため,参照の書き換えがおこって意図しない動作をするようになる.そのため,この種のルールに関しては,オブジェクトのコピーをする必要がある.次のセッションではそれに関する処理を書いていく.

 さらに作成をすすめて,オプジェクトのコピー処理を追加して,全てのリストにMarkerが追加するようにした.途中,意図しない連結が起こったり,メモリがリークしたりというトラブルもあったが,最終的には全て解決して,SecMarkerの追加作業は完了した.ただし,まだParserは完全ではなくて,ファイルが命名通りにソーティングされていない.これはルール実行の上で重要な点ではあるので,次のセッションではこの問題に対応する.

 さらに改修を続けて,ルールファイルのソートを実装した.これによって,ルールが意図した順序で実行されるようになった.セットアップファイルが名前の問題で末尾に回ってしまうのだが,これはparserよりはconverter側の問題なので,そちらで解決するようにしたい.あとはここまで書いてきたParserの機能が十分にテストされていないので,次のセッションでテストを書いていきたい.

 さらにコードを書いて,ルール種別ごとのparseと,リストへのアペンドについてのテストケースを作ることができた.これによってparserの主要な機能の正常系は大体テストできた形.異常系のテストも準備することが望ましいが,ルールに関しては異常系の入力値が大量に届くということは考えにくいので,他のテストを書いて手が空いたタイミングで書いていきたい.この業務の最後のタスクは,ルールのサイズの計算の関数を書き直すことなので,次のセッションで対応したい.

 さらにコードを書き進めて,メモリサイズの計算の関数を書き直している.actionやvariableはそれ専用のメモリサイズ計算用関数を作った方が良いと思うので,それを作っている途中である.

生活面

11時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

朝はシャケ,ご飯,味噌汁でバランスよく食べれた.


9/1

 進捗報告

プログラミングの書き方本を読み進めた ( 2 sessions )

 プログラミング作法を読み進めた.8章の移植性についての章を突破して,9章の記法についての章を読んでいるところ.8章の後半ではバイトオーダーが移植性に与える影響などについて確認した.リトルエンディアンとビッグエンディアンが混在しているような環境では,例えばintファイル保存したデータが元通りの値で解釈されるとは限らない.これを回避するためにはpack / unpackを実装して,固定の順番でデータが解釈されるように調整する.あるいは,テキストへの変換が可能なら,極力テキストデータとして保存することでこの問題は回避できる.

 さらに読み進めて,プログラミング作法の最後まで読み切ることができた.9章の記法では,作業に適した言語を選択することの重要性と,それがない場合に自分でそれを作る方法があれこれと解説されていた.また,jvmをはじめとする仮想マシン向けの言語の実装や,jitコンパイルについても紹介された.

 全体的にこの本は,プログラミングに関連する様々なトピックについての明確な判断基準をを養成してくれるものになっていて,非常に良いものであった.

コードの書き方本についての記事を書いた ( 1 session + 60mins )

 プログラミング作法をついに読み終わり,手元のコードの書き方本を一通り読み終えることができたので,それをまとめるような記事を書いた.構成を考えてから文章に起こし,公開するところまでたどり着いた.まとめ作業まで済んだので,これにてコードの可読性を高めるタスクは終了.割と時間がかかかったけど達成できたよかったし,結構成長できた気がするのでやる価値があった.

生活面

12時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

昼は,スーパーで買ってきた天津飯を食べた.なかなかボリューミーだったが食べれた.

夕方に車で出掛けて,出掛け先の店内をしばらく歩き回ったので,これによって十分な運動量を得た.

夜はごぼう天うどんであっさり食べれた.

8/31

進捗報告

UVCSについて勉強した ( 3 sessions + 10mins )

 UVCSについて勉強を進めることができた.Unityのバージョン管理ツールであり,gitとは勝手が違うので敬遠していたのだが,Unityの管理をして共有する上では他に良さげなツールもないので使う他ない.Unity learn上で探してみると,Get started with Unity version Controlというコースがあったので,それを読んでいる途中.これで,基本的な概念とか,操作が拾えれば良い.

 さらにコースを読み進めて,クラウドの設定を確認したり,check inのながれ,branchの新規作成の流れなどを確認した.UVCSでは過去に状態に戻してから変更して,これを最新のワークスペースに反映するという機能があるらしい.これが過去の改ざんに思えてしまったのだが,調べてみると本質的には,末尾の変更リストへの追加で,インタフェース上でこういうことをできるようにしているだけらしい.コンフリクトがなければ,クラウドを経由して,最新のワークスペースで,過去のワークスペースでの修正を取り込める.

 さらにコースを読み進めて,完全に読み切ることができた.最後にはmerge conflictが発生した時の競合解決についての説明があって,参考資料もいくつか紹介されていた.最後には電子ブックの紹介もあって,こっちの方が解説は詳しそうなので,読んでみたら良いかもしれない.

https://unity.com/resources/best-practices-version-control-unity-6

生活面

12時起床.おおよそ6時間睡眠.十分な覚醒度を得た.

昼はパン,ミネストローネ,ハッシュドポテト,キウイでバランスよく食べれた.

夜もキーマカレー,レタス,春雨スープ(トッポギ入り)でバランスよく食べれた.

夕方には30分ほど散歩をしたので,これによって運動量を稼げた.

8/30

 進捗報告

Parserの機能を拡張した ( 2 sessions + )

 Parserの機能を拡張するコードを書き,Actionへの対応を進めることができた.コードの概形は欠けているのだが,想定外の挙動をすることがあるので,その対応をしている.

 さらにコードを書き進めて,Actionの追加と削除が適切に実行されることを確認した.Dumpの結果を見ても,きちんと所望のphaseに対してSecActionが追加されていることが確認された.作成と削除の関数を作る,Parse用の関数を作る,リストへのアペンドの処理を作る,リストの削除関数を合わせて改変する,ダンプの関数を合わせて改変する,という作業を繰り返していくことで,新しいdirectiveにも対応することができるということがわかった.今はSecMarkerに対しても同様の作業をして,listへの追加を図ろうとしている.markerの場合は全てのphase listに対して追加をかけないといけないので,それを綺麗に書けるのかどうかというところが勝負になってくると思う.

ゲーム開発会議に参加した ( 2 sessions )

 ゲーム開発会議に参加して,お互いに作業進捗を報告し合うことができた.僕のほうでは,近接攻撃や弾丸スプライトの仕様について説明して,今週取り組むべき内容について報告した.また,イベントシーンの作り方について資料を示して議論することができた.Ririnはストーリーの構成について考えた結果を報告していた.

生活面

10時半起床.おおよそ8時間睡眠.十分な覚醒度を得た.

昼はシャケ,米,味噌汁,ハッシュドポテトであっさりと食べることができた.夜はフライドチキン,米,春雨スープ,サラダでバランスよくべれた.

昼間には運動公園のグラウンドを歩き回ったので,これによって十分な運動量を稼ぐことができた.

8/29

 進捗報告

parserのコードを修正した ( 1 session + 

 Parserのコードに手を加えて,昨日作成した基底構造体でもって,種類が混在するルール群をリストにまとめることができた.デバッグ用の関数で一覧を出力してみたところ,変更前と変わらない動作ができている.現在は別種のルール形式に対応するユーティリティを作っているところである.次のセッションではSecActionへ対応を進める.



生活面

12時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

8/28

進捗報告

本読みをした ( 1 session )

 昨日読んでいた偶然の統計学を読み切ることができた.最後の結びでは統計的に有意であることが,繰り返すことよって弱まるという話があって,それが面白かった.ある件について95%で正しく推論できるとしても,それが100件あると,全てが正しく推論される可能性は0.95 * 0.95 * 0.95 ... *0.95となり,とても低い確率になる.統計学ではこの手の問題を解決するための色々なテクニックもあるらしい.そこら辺は,勉強していきたい.

 プログラミング作法の方も読み進めることができた.移植性の部分で,標準ライブラリに固執することが,結局将来的にそのシステムをいろいろな箇所で使う上での早道になるという話だった.どうしても分ける必要がある時は,プログラムの制御構造と女権コンパイルの構造が混在するのは避けて,ファイルごとに分割して管理したり,環境を抽象化したインタフェースを定義してそれを前提に実装を進めたりすると良い.

Parserの修正作業を進めた ( 2 sessions + )

 Parserのコードの修正を進めて,大幅なメモリリークの正体を掴んで修正することができた.これでによって,今までずっと出力され続けていたaddress sanitizerの警告がようやく鳴り止んで,かなり気分が良くなった.今は,SecRule以外のルール体系への対応を進めている.そのためにここまで書いてきたインタフェースもいくつか書き直しになっているので,次のセッションでその作業に対応する.

 SecRule以外への対応を進めるために,ルールリストをこれよりも汎用的な基底構造体で持つことにした.そのために,SecRule用の構造体の中身を整理して,上位の構造体で,これまでと同様の操作ができるようにしようとしている.どうにも,実装がスムーズにいかず,結局一回git reset --hard HEADを実行することになったが,今度は慎重にやっているので,うまくいくと思う.次のセッションでも同様の作業を継続する.

Home Labbingについて調べた ( 1session + 30mins )  

 昨日紹介したhome labbingの入門記事を読み切り,どのように機材を選んで拡張を図っていけば良いかのイメージを掴むことができた.とにかくいろいろな記事を読んで慎重にハードを選んで行って,小さなミニプロジェクトをいくつも走らせながら段々と大きくしていけば良いという感じだった.情報源としては同サイト(linux blog.io)のほか,redditの/r homelabにも多くの情報が詰まっているということだったので参考にしたい.

生活面

8時半起床.おおよそ7時間睡眠.十分な覚醒度を得た.

朝は米,シャケ,味噌汁,海苔でバランスよく食べれた.

8/27

進捗報告

proxyとcheckerの統合作業を進めた ( 3 sessions )

 昨日はmakeが通らないというところでストップしていたのだが,問題の原因は単純でlink時にライブラリを作るためのコンパイルフラグを付与していないだけだった.これでbuildをできるようはなったのだが,どうにもparserがルールファイルを読み込むときにこけているらしい.問題箇所はどうも文字列コピーをやっている箇所らしい.おそらく,事前に準備したメモリ以上のパラメータが渡されたときにこけるらしい.なぜreallocで取り直すようになっていないのか.事前に長さを見てからmallocする形式になっていないのか不明だが,そのように書き直す作業を進めているところである.

 Operatorの文字列を渡される文字列を見てからチェックスするように変更した.それから渡ってきている文字列がfreeされていないことに気づいて,parserのメモリリークを一つ減らすことに成功した.あとはdisposeがきちんと動いてくれればleakはしないと思う.Variablesについても書き換えたが,このせいでTest側で値を直接書き込めなくなったので,値をセットするためのutilitiyを追加で作っている途中.これも一応完成したので,Testでこれを使うようにして全てきちんと動けば,Actionにも同様の処理をすれば良いだろう.

 さらにコードを書き進めて,VraiablesについてもActionについてもSet系のコードを作ってテストを通すところまで進めることができた.で,どうやら,cJSONがStringfyで返しているメモリ領域は新たに確保されたものではなくて,cJSONのオブジェクトが持っているメモリ領域のようであり,これをfreeすると,cJSONのfinalizerのfreeとでdouble freeになってコードが落ちるという問題が起こった.これについては,わかりにくい部分なので,コメントに残しておくこと.

本読みをした ( 4 sessions )

 偶然の統計学という本を読み進めることができた.読んでみると,教科書というよりは読物系の本で,いわゆる偶然の出来事と思われるものが統計的に考えると,十分に現実にありうるということをひたすら説明している本であった.宝くじの奇跡とか,偶然の一致,霊的現象などなど,いろいろな事象をぶった斬っている.

Home Labについて調べた ( 1 session )

 Home labbbingの情報を漁ったりしていた.宅内LAN環境の参考で,最近かなりhomelabbingの情報を見ていて,これについて,包括的なガイドが見つかったので読んだりしている.以下のリンクは非常に面白いものだと思った.

https://linuxblog.io/home-lab-beginners-guide-hardware/

生活面

1時起床.おおよそ3時間睡眠.それから8時に寝て,12時に起きたので,トータルで7時間くらいの睡眠で,十分な覚醒度を得ることができた.

昼はチャーハンを食べた.これはカレー風味で,あっさりと食べれた.夜はハンバーグ,叩き,米,味噌汁,卵とじとで,バランスよく食べれた.

夕方に30分ほど散歩に出掛けて,十分な運動量を稼ぐことができた.


8/25

 進捗報告

proxyのコードを調整した( 2 sessions + )

 response側のバッファに対してもheaderの構造体の変更を反映することができた.本日の目標は,とにかくWebページをきちんと適切に表示できるようにすること.以前は,welcomeページを表示するということをテスト項目にしていたが,welcomeページは例題として単純すぎたので今回はjuice shopを対象にする.juice shopは割合複雑な仕掛けでできていて,ページの表示もリッチだし,取得するファイルも多いし,画像のようなバイナリファイルも含まれるので,juice shopがきちんと動けば,それはwebuiでも適切に利用できることの証左と言える.

 コードの修正を繰り返して,とりあえずサーバのレスポンスがいくつかクライアントのところに返せるようにはなってきた.SIGSEGVなしで,きちんと動き続けているというのを見ることができるのはいい体験だ.現状の問題はpathの解決がきちんとできていないところで,ドキュメントルートのファイルはきちんと取れても階層化されたところのファイルのパスがきちんと解決されていないから,画像やcssの取得に失敗している.次のsessionではこの問題に対処していく.


生活面

12時起床.おおよそ8時間睡眠.十分な覚醒度を得た.昨日は何も聞かずに寝た.

昼は鮭,ひきわり,米,味噌汁でバランスよく食べれた.

夕方にゴミ捨てを兼ねた散歩をして,地区を一周した.これによって十分な運動量が稼げた.

夜は豚肉,ほうれん草,サラダ,米,納豆でバランスよく食べれた.

8/24

 進捗報告

近距離攻撃用の弾丸を実装した ( 1 session )

おでかけをした ( 2 sessons )

 日曜日ということで,家族でお出かけをすることができた.ホームセンター,イオン,ブックオフ,ドラッグストアなど,いかにもfamiliesが行きそうな場所を巡って,ウィンドウショッピングを楽しむことができた.

8/23

 進捗報告

目的地への移動プログラムを書き進めた ( 5 sessions )

 目的地への移動プログラムについて検討することができた.どうやら,A*アルゴリズムというものを使うことにより,障害物を避けつつも短い経路を計算することができるらしい.そしてunityでは,A* findingpath projectというpackageが提供されていて,これを使うことでその処理を使うことができるということがわかった.次のセッションではこれを試してみたい.

 また,Unityのversionのbranchを統合しようと思って久しぶりにUnity version controlを触ってみたりした.しかし,僕のブランチがクラウドワークスペースにないとか,なんとかで,結局mergeが反映されない問題が発生して,これと2session格闘したけども解決できなかった.Unity version controlの仕様は正直って,馴染みがなくてわかりにくいが,使えないと困るので調査したい.

 Reticleの実装を見直したりした.Atan2(x, y)と思って作っていたら,Atan2(y, x)が正しい順番であり,この勘違いによる実装を直して回っている.これまでは逆にしていたために変な結果になるところを-1をかけたりして直していたのだが,ようやく解決できそう.

 Reticleの修正が完了して,この流れで武器や弾丸などのマネージャーに潜んでいるAtan由来の問題も治して回ることができた.meleeWeaponに関しては,2piを超えた処理を終了するみたいな謎の終了条件で動いていたので変なところで攻撃が終わっていた.この問題は速やかに修正された.

 次のセッションでは敵機のmelee Weaponについて書いていきたい.基本的には敵機での場合は全てを弾丸として扱うことで,処理を単純化するつもり.

花火大会に行った

 花火大会の花火を見に行くことができた.割と円形ではあったが,小粒の色とりどりの花火が重なって連続するスタイルのものがあり,それが綺麗だった.後は,火の軌跡が柳のような格好で残存するタイプの厳かなものも気に入った.

生活面

昼は米,ウインナー,玉子,味噌汁でバランスよく食べれた.

夜は米,ハンバーグ,エリンギ,キャベツ,叩きで,かなりボリュームがあったが食べれた.

花火大会に行く過程で海岸を歩いたので,これによって十分な睡眠を稼ぐことができた.

8/22

 進捗報告

proxyのコードを調整した ( 5 sessions )

 テスト環境でproxyが落ちる原因を調べることができた.どうやら,ServerProxy側のコードに問題があって,必要なバッファが確保されていないらしい.そして,全体的にコードの意図がわかりずらい.ということで,過去の関数群を書き直したりしている.テストも十分に作成されていないので,書き直して意味が明確になったものから順にテストにかけていきたい.

 libcurlのslistを組みた立てる関数を全体的に書き直して,テストを通すところまでできた.headerの処理にこの関数を使っていて,空値がやってきた時の処理まで作って,防衛的に仕上がった.

 bufferのコードが全体的にごちゃごちゃしていて,メモリをどこで取って,どこで解放しているのかと言うところが追いづらくなっているので,構造体を追加して整理した.これによって,初期化の処理が相当にわかりやすくなった.初期化したメモリ領域に対してデータをセットする関数を準備して,ここにreallocの処理も書いて仕舞えば,メモリ管理の見通しは格段に向上するのではないかと考えている.

 確保したコードの上に値をセットするための関数を準備することができた.これによって,クライアント側のプロキシのコードをやりかえてやって,動作テストを実施しているところ.これがうまくいったら,サーバ側のコードも本格的に手を突っ込もう.

 さらに作業をして,クライアント側のコードがきちんと動作していることは確認できたので,同じような変更をサーバ側に対しても施しているところ.サーバ側はなぜかバッファの事前確保をやらない設計になっていたみたいで,このせいで動的なメモリ確保があちこちに散財していて管理限界を迎えている.なので,次のセッションの変更でこれらを一元的に管理できるように改変したい.

ゲームキャラクタの動きの実装を進めた ( 1session ) 

 キャラクタのBTノードの調整をすることができた.これによって,持ち時間通りの行動をとるようになった.弾丸の発射レートが異常な部分があったのだが,この問題もBTノードの終了のタイミングが誤っていたことが原因であり,修正された.さらに弾丸の発射方向がおかしい問題についても修正され,これについては,atan2に与える引数の襦袢が逆になっていることが原因であった.次のセッションでは,キャラクタのランダムに動かしたり,目的の地点に対して移動できるようにするためのアクションノードを実装していきたい.

生活面

朝8時半起床.おおよそ8時間睡眠.十分な覚醒度を得た.

ブランチで,ベーコンと野菜の炒め物,鮭,米,味噌汁,ひきわりでバランスよく食べられた.

夕方に地区を一周散歩して回って,十分な運動量を稼ぐことができた.今日は過ごしやすい気候で散歩には適していた.

夜はイカの煮物,ロールキャベツ,米,ひきわりでバランスよく食べれた.

8/20

 進捗報告

プログラムの書き方本を読み進めた ( 1 session )

 プログラミング作法を読み進めて6章を読み終えることができた.6章はテストに関する話題であって,テストによっていかにしてプログラムのバグを見つけるかという話題が中心的であった.まずは手動でテストケースを書いていく場合には,境界条件を攻めるようなコードを書くこと,既存の実装と比較する回帰テストを実施することが説明されている.また,機械によるテストでは膨大なテスト入力が発生するケース,ランダム値が与えられるケース,バイト列が与えられるケースなどをテストすると問題を見つけやすくなるということだった.

 今は7章の前半を読んでいて,ここは最適化について説明している章.

テスト環境を構築した ( 2 sessions )

 Proxyの開発を進めるための,バックエンドのWebサイトを提供できるようにした.セキュリティ機構なので,バックエンドのサイトはやられサイトとして提供されるものが良いだろいうということになり,OWASP Juice Shopというのを立ち上げて,構築自体はそこまで難しくはなくて,規定のバージョンのnodejsをインストールして,これで,owasp juice shopのコードをビルドして,起動するだけ.ただし,インストールが時間がかかるので,2 sessionを費やした.

住民票記載事項証明をとりに行った ( 2 sessions ) 

 住民票の記載事項証明を役所に取りに行くことができた.役所の窓口に話したら10分もかからずに解決した.この手の書類仕事は早めに済ませておくに限る.

 役所ついでにニトリやヤマダ電機に行ったりして,色々と見て回ることができた.

ブログを書き進めた ( 60mins )

 Juice Shopの導入に少し時間をかけたので,それをネタにしてブログ記事を作ることができた.途中のversion関連のトラブルの話題を落とさずに書けた点は良かったと思う.

生活面

11時起床.おおよそ8時間睡眠.十分な覚醒度が得られた.

昼は鮭,米,味噌汁,納豆でバランスよく食べれた.

外を出歩いたついでに歩き回ったので,これによって十分な運動量を稼ぐことができた.

夜は米,サラダ,ソーセージ,エリンギの炒め物でシンプルに決まった.

8/21

 進捗報告

プログラムの書き方本を読み進めた ( 2 session )

 プログラミング作法をさらに読み進めて,7章の性能の章を突破して,8章の移植性の章に入ることができた.性能の章では主に最適化の話をしていて,最適化に際してはまずは時間計測とプロファイリングによって変更が効果的に機能しているかを絶えず確認しながらやっていくことが大事だということだった.最適化のための変更としては,最も根本的な解決はホットスポットのアルゴリズムやデータ構造を変更することだった.そのほかにはコンパイラの最適化レベルを高く設定したり,コードのループ回数や条件処理を見直すことも有効だった.その他の最適化手法としては,より小さいデータ型を使う,一つのデータがに複数のデータを押し込める,キャッシュを利用する,専用のアロケータを使う,スタック領域を使う,入出力をバッファリングする,といったような手法があった.

書類提出作業を完了した

 就職活動関連の書類提出作業を完了することができた.昨日に集めてきた書類たちをcamscanで画像にして,これをevernoteのファイル形式の変換機能を使ってpdf化して提出した.しばらくはこの書類たちが受理されるかどうか,定期的に確認していく.

BTのデモプログラムを整理した ( 2 session )

 BTのデモプログラムにおいて,自機と敵機で同様の処理をしている箇所があったので,キャラクタクラスというのを作って汎化することにより,冗長さを排除することができた.ついでに当たり判定を与えている処理の変数名が明瞭でない部分が結構あったので,再度命名をやり直したりして,最後にテストプレイをやってみて,動作が変更されていないことを確認した.

 このプログラムをテストするためのテスティングフレームワークをひたすら探していたのだが,結局それらしいものを発見することはできなかった.junitを使ってテストするということも考えたが,pdeはjavacでは直接コンパイルできないので,これをjavaに焼き直す作業がまた面倒である.なのでやめた.processingについても,今後はそこまで使う予定がない.テスティングフレームワークがないんじゃ,まともに検証もできないし.

生活面

朝はパン,味噌汁,キウイであっさりと決まった.

昼もうどんであっさりと食べれた.

8/19

 進捗報告

セキュリティ機構の開発を進めた ( 1 session + )

 点数の加算の部分の実装をして,それらをテストするところまでできた.

本読みをした ( 1 session + )

生活面

13時起床.おおよそ9時間睡眠.十分な覚醒度を得た.

8/18

進捗報告

セキュリティ機構の開発を進めた ( 4 sessions ) 

 アクションの点数加算部分の処理を書き足すことができた.とりあえずはSetvarのインストラクションをtokenizeする処理を書き進めている.この処理については,だいたいイメージ通りのコードが出来上がったので,現在はこれをテストするコードを書いている.

 もう少し作業を進めて,tokenizeする部分についてはテストが通って,適切に処理されていることが確認できた.テストを拡充するのは一旦止めて,実際にcontextの値を書き換える処理を実装していきたい.

 コンテキストの値を書き換えるためのコードを書き始めた.代入元を値に変換し,代入先のアドレスを保持して,演算子をもとに処理するという流れ.実際にルールを見ながら個別の処理を書いていくと単純な変換だけではうまくいかない部分も多い.これは,contextの方にも要素を増やしていかないといけないか.いずれにしても,また明日.

買い物に行った ( 2 sessions )

 イオンに行ったりした.外の空気に触れるのは大切だ.帰省するたびに,それなりの頻度で行っているので,懐かしさみたいなのはあまりなくて,純粋な親しみ.オクラが安かったらしい.68円.

生活面

10時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

昼はシャケ,米,メカブ,味噌汁,豆腐でバランスよく食べれた.

買い物先で歩き回ったので,これによって十分な運動量を稼ぐことができた.

夜は麻婆豆腐,サラダ,米,ひきわりでバランスよく食べれた.

8/17

 進捗報告

宅内ネットワーク環境について書き進めた ( 2 sessions )

 新しく導入したLinuxマシンについての記事を書くことができた.導入経緯から説明してマシンスペックの紹介,OSの導入,宅内LAN環境の作業用セグメントへの追加,使用感など,関連する話題にはあらかた言及することができたように思う.Archの導入については,すでにわかりやすく解説された記事がたくさんあるので,バッサリと省略した.

統計学の勉強を進めた ( 2 sessions )

  はじめての統計学の4章をあらかた読み終えることができた.現在は4章の章末問題を解いている途中である.ここで,一様分布と正規分布について学習した.自然界の多くの現象は正規分布に近づくということで正規分布周りの計算をしっかりと抑えることが重要なようである.この章を抜けたら様々な分布についての話は終わりで,次からは母集団の推定に入っていく予定.説明が不足していると感じる点は別の教科書もパラパラとチェックしたりしながら進めている.

セキュリティ機構の開発を進めた ( 1 session + 30 mins )

 アクションのスコアリングの部分の実装を進めることができた.値のセットの部分がインストラクションとして上がってくるのでこれをtokenizeするコードを書いた.これによって,インストラクションを解釈して,値をセットできるように実装を進められるはず.もう少し作業すればできそうだが,使っているキーボードの打鍵音が大きく,夜間は住人に迷惑がかかるのでまた明日

生活面

朝3時起床.5時間程度の睡眠.そこまで寝られなかった.徐々に生活リズムを朝型に矯正して行って,1日の早いうちに頭脳労働をするようにしていきたい.そこからしばらく活動したが,明け方にどうしても眠くなったので昼まで寝た.これによって十分な覚醒度を得ることができた.

昼はスコッチエッグ,サラダ,米,マスカットでバランスよく食べれた.

夕方に1時間半ほど歩いて,これによって十分な運動量を稼ぐことができた.夕暮れ時で風景がいい感じだった.

夜ははらみ,生野菜,米,ウインナーで香ばしいものを食べて,焼肉っぽい感じだった.

8/16

 進捗報告

コードの書き方本を読み進めた ( 1 session ) 

 プログラミング作法のインタフェースの章を読み切ることができた.それで,今はテストの章を読んでいる.インタフェースの章では,メモリの取得と廃棄,ファイルの開閉などの責任を誰が持つかという話がされていた.これらは,レイヤを揃えて,メモリを取得した関数が廃棄をやり,ファイルを開いた関数がファイルを閉じるように設計するべき.また,エラー出力にも十分な情報量を持たせないと開発者のデバッグのやる気を削ぐので,erroroなども併用して,情報量を稼ぐ.それから,プログラムを落としてはいけない時は,下層の関数ではエラーの代わりの値を返すようにして,上位の関数でエラーをハンドリングするようにする.回復処理は最小限でいいが,ライブラリが処理を続行できるくらいには立て直す必要がある.

セキュリティ機構の開発を進めた ( 1 session + ) 

 アクション部分を主に書き進めていたのだが,コードがごちゃごちゃしていて,行ったり来たりが非常にストレスフルであり,また,十分にチェッカ自体が交通整理されていない感もあったので,思い切って切り分けたら,かなり認知負荷を下げることができた.コードを書き足すことも重要だが,常にリファクタリングを続ける姿勢,常に認知負荷を下げ続ける姿勢,これを維持していきたい.

生活面

12時起床.おおよそ9時間睡眠.十分な覚醒度を得た.

昼は鮭,米,味噌汁,のりとでバランスよく食べれた.

夕方に1時間くらい外を歩いたので,これによって十分な運動量を稼げた.

夜は惣菜をいろいろ食べたりケーキを食べたりした.年齢が一つ上がった.

8/15

 進捗報告

ゲーム開発を進めた ( 3 sessions )

 ゲーム開発を進めることができた.弾丸に関するクラス,敵キャラクタに関するクラスを全体的に整理した.敵キャラクタについては,敵キャラクタ全般に対して適用するクラスと,キャラクタ固有のクラスに分けているので,キャラクタ全般が取りうる行動に関するメソッドは前者に実装して,キャラクタ固有のメソッドは後者に実装する.

 タイルマップへの衝突を設定する方法を確認して,テスト用のバトルシーンに対して,壁の衝突を設定できた.これによって,キャラクタが壁からはみ出して動くということがなくなった.これを設定するためには,タイルマップにcolliderを付与して,マップを構成する要素のinspecterでcollisionを発生させるかを選択すれば良かった.ここで,各タイルが衝突判定をやっていると,計算量が上がる上に,タイルとタイルの間のギャップがスタックの原因になりうるので,composite colliderというのをマップにさらに適用して,もとのcolliderのused by compositeにチェックマークを入れる.これで,衝突判定のあるブロック同士の衝突判定範囲が統合されて,全体の大きな当たり判定として扱われるので,ブロック間のギャップを消すことができて,また,計算量も抑制できるということだった.

 さらに開発を進めて,プレイヤーに向かって飛んでいく弾丸オブジェクトを作成し,敵キャラクタがそれを投げてくるようにした.ツリーに追加したアクションを敵キャラクタがとっている様子は確認したが,レートが高すぎるので,一度実行した後に待つ処理がうまく行っていないのかと思う.次のセッションでこの問題に対応する.

図書館に行った ( 2 sessions ) 

 図書館に行って統計学の本を探すことができた.そのあと,新しくなったくまざわ書店にも行って,きちんとした教科書も一冊手に入った.これで,さらに勉強を進めることができそうだ.

統計学の勉強を進めた ( 1 session )

 主に教科書として使っているはじめての統計学が計算練習ばかりで疲れるので,カジュアルめの統計学入門を読み進めた.1 sessionで3章の半ばくらいまで進めることができた.この本は練習問題が全くないうえに具体例もほとんどないので,サクッと進める.足場はかたまらないが,扱っているトピック自体ははじめての統計学よりもかなり広い範囲を扱っているので,見通しを確保する用途で使っていきたい.僕の記憶が正しければ5章では,もう仮説検定に入るので,はじめての統計学が仮説検定に行き着く前に,この本で先に触れることになりそう.

Dictationを進めた ( 1 sessions ) 

 数日空いたが,Dictationを数分分進めた.カジュアルめな動画だけでなくて,技術よりの動画についてもDictationの対象にしようと思っていて,今興味のあるhome labについての動画を漁ったりしてみたが,やたらと早口だったり,イギリス訛りが強かったりで,Dictationの素材としては,あまり適当と言えるものはみつらかなかった.なので,もっと生活に近いものを中心に置きつつも,たまに箸休めで聞くくらいの塩梅でとりあえずは進めていこう.

 十分に身についたと言えない状態では,手を離すと聞き取れなくなる.完全に聞き取れるようになるまでは毎日やっていくことが重要だ.

生活面

9時半起床.おおよそ11時間睡眠.十分に高い覚醒度を得た.

朝は米,スクランブルエッグ,味噌汁でバランスよく食べれた.

図書館や本屋を梯子するついでそこそこ歩いたので,これによって運動量を稼ぐことができた.

夕食は米,チキン,きのこ,野菜でそこそこのボリュームで食べれた.

8/13

 進捗報告

統計学の勉強を進めた ( 1 session ) 

 はじめての統計学の第3章の練習問題を解き終えることができた.ここの練習問題で,とくに二項分布にまつわる計算については訓練を積むことができた.4章以降はもっと別の確率分布についても見ていく.ここまでで学んだ分布はベルヌーイトライアルで結果が得られるものに対して適用する分布だったが,これ以降の章でもっと別の対象にも確率分布が適用できたらいい.

セキュリティ機構の開発を進めた ( 2 sessions ) 

 Contextの値を拾ってくるところのテストコードを完成させることができた.テストコードを書いている過程で,どうしてもうまくいかない部分が出てきてしまって,それには,テスト対象のコードを変更する必要が出てきたので,それに合わせてそこそこの量の変更をかけた.子によってコードの構成はより単純にになったし,テストも全部書けるようになった.

 contextに関してのvariablesがひと段落したので,actionについてもコードを書き始めた.一番重要なのは値のセットだと思うので,それを書いていく.しかし変換後のルールを見てみると十分に解釈済みの形式に変換されたとは言えない具合で,自分でこの文を解釈するためのコードを書かないといけない雰囲気.

ゲームのコーディングを進めた ( 1 session + 60mins ) 

 ゲームのコードを見直すことができた.特に近距離武器の実装について見直した.敵キャラクタに対して武器を振らせるように,武器のコードを改変しようとしたが,しばらく考えてやっぱりやめた.キャラクタの位置とカーソルの位置から武器の表示位置を調整して表示し,攻撃に際してもこの武器側のメソッドを使うという実装のつもりだったけども,敵キャラクタがカーソルを持って,それを元に攻撃をするという構図にするべきかというと,そうではない.そこに対称性は別になくてもいいんじゃないかと思って,やめた.

 武器のコードをさらに直して,とりあえず納得できるレベルになった.

生活面

11時30分起床.おおよそ9時間睡眠.十分な覚醒度を得た.

昼はやきそば弁当を食べた.かなりカロリー高めだったが,割とあっさりと食べれた.春雨スープも飲んだ.結局糖質が高すぎて眠くなったので,昼寝をせざるを得なかった.

夕食は米,鮭,ひきわり,野菜炒めでバランスよく食べれた.

チョコレートとか,ブラックペッパーがかかったおつまみや,アメリカンドッグなど,間食をちょこちょこやっていた.


8/12

進捗報告

宮崎に戻ってこれた ( 2 sessions ) 

 宮崎県に戻ってくることができた.昨日は大雨の影響で散々空回りした挙句,結局変えれないという惨事に終わったが,偶然父親が大分を通りかかったということで,これに便乗することにより宮崎に来るまで戻ってこれた.1時間半ほど車に乗って,途中で道の駅に寄るなどすることもできた.

作業環境を再構築した ( 2 sessions ) 

 実家の作業環境を作り直すことができた.電源タップが全然足りないことに途中で気づいたので,ミスターマックスに行って6口の電源タップを買ってきた.ネットワークも接続し直して,これで,普段通りに作業できる状況に戻った.

論語を読み進めた ( 1 session ) 

 論語を読み終えて,感想を書くところまで進めることができた.全体としてはかなり断片的なのできちんと理解するなら背景を詰めていくところからやらないといけない.仁なる人を目指すというのは良いと思うけど,理想主義もかなり混じっているし,儒学の元々の思想が現在の思想と噛み合わないところもあるから,落とし所をさめないといけない.具体性にも欠けるので,それをやったとして,仁が達成されているのかというのを見極めるのは難しいし,それで弟子も孔子に教えを仰いでいる.そこで孔子が適切にジャッジを下していたのかどうかというのも今となってはわからない.判断できない.

採点業務の結果を提出した ( 50mins )

 あちこちに散っていた今期の採点業務の結果を統合して担当教員に退出することができた.採点業務には結構な時間を使ってきたが,これで一応は仕事納めということになりそう.半期おつかれっした.

生活面

昼は米,味噌汁,鮭,ひきわりでバランスよく食べれた.

買い物の過程であちこち歩き回ったり,海を見に行ったりしたので,これによって十分な運動量を稼げた.

夜は豚しゃぶを食べた.ポン酢でさっぱりと食べれた.

8/9

進捗報告

Dictationをした ( 2 sessions )

 今日も2sessionほどDictaionをやって,だいたい5分から6分くらいの尺の分の音声を正確に聞き取ることができた.今日は,聞き取れた塊を書いて行って,極力動画を止めずにスクリプトを書いていくことによって,より効率的に作業を進められるように工夫してみた.スクリプトの塊を歩い程度書いて,もう一回戻って,間の文章を埋めて行って,最後に何度も聞き直して,単語のミスとかを修正していくのが効率的かなと思っているが,まだまだ模索段階だ.1sessionで10分くらいの尺を文字起こしできるようになるのが目標.

ゲームプログラミングを進めた( 3sessions )

 ゲームキャラクタの動きをBTを使って作ろうとしている.とりあえず,右へ移動するだけみたいな簡単な挙動は再現できているので,攻撃とか,ランダム移動とかをできるようにして,これを組み合わせた動きをなんかできるようにする.

図書館の本を返却しに行った 

 図書館の本の返却することができた.期限が来ていて,お盆期間中の休館で延滞してペナルティを食らってしまうので危なかったのだが,滑り込みで対応できてよかった.

生活面

12時起床.おおよそ9時間睡眠.数日ぶりにまとまった睡眠をとることができて,十分な覚醒度が得られた.

洗濯物を取り込んで,次の便を回すことができた.洗濯機が止まったので,干すところまでこなした.あんまり乾きは良くなさそうだが,干さないことには始まらないので,未来への投資.

床の清掃をした.デスクの配置を見直したことで,壁際に家具を置かなくなったので,掃除がやしやすくなった.





8/8

 進捗報告

BTの記事を書き進めた ( 1 session ) 

 BTの概要について記事を書き進めて,part1を公開することができた.ここで概要については割合丁寧に解説したので,なんとなくのイメージを掴んだ状態で具体的な実装に話を移していくことができるはずだ.part3のゲームの雛形部分がノイズになるかもしれないが,これを抜かしてしまうとデモコードの大半が説明がないということになってしまうので悩ましいところ.

https://horik.hatenablog.com/entry/2025/08/08/105630

市内の用事を片した ( 2 sessions ) 

 市内に用事があったのを片すことができた.2件の本屋にも回って,統計の本を色々と見ることができた.自分が想像している以上に実用上で求められる統計の分野が多岐に渡るということがわかった.

HTML&CSSの勉強を進めた ( 2 session )

 HTML&CSSデザインブックを読み進めて,Chapter4を走り切ることができた.これによってニュースサイト風のTimeswitchを完成させて,アイコンとかの使い方を練習することができた.ボックスを並べて値をいれて,間隔を調整して,装飾を入れて,レスポンシブなデザインに対応して,という流れにもだいぶ慣れてきた.

生活面

朝8時起床.おおよそ5時間睡眠.そこそこの覚醒度を得た.全然覚醒度をが維持できなかったので,帰宅ごとに2時間くらい寝た.

昼間にしないを歩き回ったので,それによって十分な運動量を稼ぐことができた.

深夜に世田谷食品の惣菜と,包みピザみたいなのを食べることができた.コーヒーのせいでああまり食は進まなかなった.


8/7

 進捗報告

BTの記事を書き進めた ( 1 sessions )

 Behavior Treeの実装を開設するブログ記事を書き進めることができた.Part1では,具体的な実装以前の,全体としての重要概念をなんとなく理解するというところに重きを置いて執筆を進めている.このsessionでかなり書き進めることができたので,次のsessionでPart1については公開できそうだ.スライド資料もいい具合に数を増やしていて,視覚的にわかりやすいものができていると思う.

Dictationをした ( 1 session ) 

 今日も1 sessionぶんDictationを進めて,だいたい3分くらいの尺を正確に聞き取ろうとして見ることができた.go offが離れるということから転じて発射される都会の意味で使われることを知った.shotとかemitとか,ringとかの代わりに使われることがある.あとTed edというyoutubeチャンネルが5分弱くらいの尺で,色々なトピックを扱ってわかりやすい動画を作っていて,対象として非常に適当な感じ.これで固めると,傾向が偏りすぎるからあれだけど,ネタに困ったら消化して行きたい.

通信の検査機構を書き進めた ( 3 sessions ) 

 通信の検査機構を今日も書き進めていって,検査対象部分をとってくる部分の処理を形にすることができた.もともとは文字列ですべての検索結果を返すようにする予定だったが,取得する値は文字列だけでなく,数字や真理値もあるので,変換の過程でどうしてもheap領域の目盛確保が必要になってしまうという問題があった.これについては,検査部分の取得関数がとりあえずvoid *で値を返してきて,それとは別で型の情報を受けて,呼び出しもとでキャストすることでうまいことやるという方針をとり,事なきを得た.

 さらに1session作業して,検査対象の抽出部分のテストのひな型を書き,そこで使うためのサンプルデータを作成した.サンプルデータは本家のCRSの初期値に準拠して作っていった.この作業が結構時間を要した.

生活面

昨日の夕方に寝て,0時前に目が覚めたので,日付変更時点から作業開始.覚醒度はかなり高め.

夜食として,煮物とフルグラを食べてコーヒーを飲むことができた.

明け方に眠気が来たので,そこから寝始めて昼過ぎぐらいに起床した.

8/6

 進捗報告

チェック機構の開発を進めた ( 2 sessions )

 HTTPパーサのテストを一通り終えて,サーバ側のプロキシについても関連する部分についてはテストを実施することができた.ここからさらにデータの一部を拾う部分を作っているところ.

書類仕事をした ( 1 session ) 

 会社関係の書類仕事を一つ片づけることができた.指導教員がなぜかとても丁寧に案内してくれたので,非常にはかどった.12月はこのタスクに一日を費やしたが,本日は1 sessionでだいたい片が付いた.

 さらに,必要書類を集めるたびにあちこちをめぐって,必要書類の3つのうち2つについて入手のめどを立てることができた.最後の一つに関しては地元に戻れば手に入るはずなので,


生活面

8時半起床.おおよそ5時間睡眠.負債がなかったので十分な覚醒度を得た.

昼は15時くらいにチャーハンを食べた.あまり調子が良くなかったが軽かったのでさらっと食べれた.


8/5

 進捗報告

Web3の本を読み進めた ( 2 sessions )

 かなり長期間積読していた,テクノロジーが予測する未来という本を読み始めて,全体の2/3くらいの位置まで到達することができた.Web3とかNFTとか,デジタル庁が熱心に探索しているということは知っているけども,僕の周りではやっている人がいないし,あんまり調べずにきた.この本はそこら辺の技術を解説するというよりは,やっている人たちの空気感を扱っていて,空気感を知ると僕も少し興味が出てくるという感じ.

 さらに読んで,最後までたどり着けた.結局技術的な部分はわからなかった.ただ色々と関連キーワードは出てきたのでその辺りをとっかかりにしたい.例えばEthreamあたりが良いのではないか.

HTTPパーサをテストした (  3 sessions ) 

 HTTPパーサの各関数をテストして,無事に動くことを確認できた.また,それらの関数を接合した上位関数も作成して,これについてもきちんと動作することを確認した.メモリの解放をするための関数がどうやらHeader部分に関して動かないケースがあるようだが,これについては後ほど改善することにして,とりあえず先に進めることにする.

 Parserが動くようになったということで,それを使っているプロキシ側のコードについてもテストケースを書いていくようにする.

 それから次の展望として,テストデータが生成できたことで,外部依存なしに固定的な状態で,システムをテストできるようになったので,これによってVariableの抽出も描けるようになったはず.これを使って,ひとまずはデータが安定しているResponse側から書いていくというのが手堅いかと思う.

部屋の模様替えをした ( 2 session ) 

 部屋の机の配置を変更するなどして,2sessionで配線を含めての再配置を完了することができた.壁に面して作業をし続けるのは,なかなか辛いものがあったので,この変更は成功だったと思っている.あとは,後ろがすぐ壁というのにも安心感がある.

Dictationをした ( 1session )

 Youtube動画を見て5分くらいのDictationをやることができた.Dictationに関してはしばらくは習慣にしておきたいと思っているので,できれば毎日1sessionくらいやっていきたいところ.基本的にはYoutube動画を対象にしていく.

生活面

14時起床.おおよそ6時間睡眠.割合十分な覚醒度を得た.

虫が非常に多くて,いちいち相手をしていられないので,バルサンを焚いて一網打尽にした.その間に2時間ほど外を歩いてマックを買ってくるということまでできて,非常に効率的に動けたし,運動量も稼げた.

夜はマックで買ってきたバーガーと,ポテト,ナゲットなどをゆっくり食べれた.


8/3

 進捗報告

ブログを書き進めた ( 2 sessions + 30 mins ) 

 BTについて紹介するブログ記事を書き進めた.論文の関連する部分を読み切って,part1の構成を考えて文章を書き進めた.part2に関しても構成を決めて,それをブログの下書きに起こすところまでやった.part1に関しては,本文の文章が1/3かけたところまでで止まっている.図表を作ったりするのに時間がかかった.次のsessionではpart1の文章を完成させて,公開するところまで漕ぎ着けたい.全体としては4 partの構成なので,完成するたびにどんどんと公開していきたい.

HTMLとCSSの勉強を進めた ( 1 session + 60 mins )  

 HTML5&CSS3デザインブックを読み進めることができた.この本の一番長い章であるchapter3を通り抜けて,とりあえずブログみたいなページをHTMLとCSSだけで書いていって,ボックスの使い方とか,CSSでの修飾とかをどうやっていくかという感覚を取り戻すことができた.chapter4に入って次はニュース系サイトを作っていく.

catの改良を確認した  

 cccatの改良を確認することができた.このプログラムは,catやlessでファイルを確認する際に文字列をセンタリングして表示するためのプログラムであり,マニュアルやドキュメントをワイドディスプレイで読む時に非常に役に立つ.今回の修正によって,横に長い文字列が入っているドキュメントの場合でも折り返して表示できるようになったらしい.これによりさらに使い勝手が向上した.

生活面

14時起床.おおよそ13時間睡眠.これによって高い覚醒度を得ることができた.

夕方には30分ほど近所をぶらついて多少なり運動量を稼ぐことができた.

夕方にオムライスを食べた.かなりボリューミーに感じたが,なんとか食べられた.


8/1

 進捗報告

ブログサイト制作の練習をした ( 2 sessions ) 

 HTML5 & CSS3のChapter3の演習を進めることができた.2 sessionsでおおよそ50ページくらい進めて,配置したボックスに要素を入れていって,その体裁を整えていくという作業の流れを理解することができた.ボックスの配置作業はBox〜とかいてあるdiv要素をfloatで浮かせて思い通りの場所に配置するというだけのことなのだが,初めにこの作業をしておくことによって,後の作業がかなりスムーズに進んだ.体裁を整える作業では,マージンを調整したり,カラーやフォントを調整したりという作業の他に,レスポンシブウェブデザインでの設計をするという部分も練習することができた.

SF小説を読み進めた ( 1 session ) 

 連日通りたったひとつの冴えたやり方を読み進めた.もうそろそろ終盤か.

採点業務を進めた ( 2 sessions  ) 

    C言語のTAの採点業務を一気に片付けることができた.12個の課題をしたから順にひたすらに返却していく.フィードバッグのループもある程度回って,ほとんどの人の点数が上がってきたので,高い点数がつけられてとても嬉しい.

生活面

鳩よけネットが鳩避け対策用のもろもろ(忌避剤やスパイク)が不要になったので,撤去した.これによって,ベランダが随分とすっきりとした気がする.

昼過ぎにクラスメートと一緒に学内を散歩して,これによって十分な運動量を稼ぐことができた.


7/30

 進捗報告

チェッカのコーディングを進めた ( 2 sessions ) 

 チェッカーのコーディング,特にテストについてのコーディングを進めることができた.これによって,Operatorはあらかた期待通りに動いていること言うことを確認することができた.テストケースを各作業にも少しづつ慣れてきて,テストを書くのも楽しくなってきた.ボトムアップで少しずつ足場を固めていっている感じがとても良い.

 チェッカーをこれ以上進めるためにはVariablesを適切に取ってくる必要があるのだが,これをするためにはProxyのbufferの状態をとってこないとテストケースが作れない.しかし,放置している間にproxyがどうやら動かなくなってしまっているので,この問題を修正する.proxyの動作を保証するテストケースも現状では全く存在していないので,テストケースを書いてregressionも防止していく.テストケースについてはcurlで作れそうな予感がする.

Linux講義課題を提出した ( 30 mins )

 Linuxの講義の課題スライドを修正して提出することができた.発表が3週前のことなので,危うく提出し忘れるところだったが,学校で言われて思い出したので,作業にとり書かれた.修正内容はexecvpの図示の部分だけだが,その部分については先日読み終えたLinuxのしくみにほとんど答えがそのまま書いてあったので,その通りに描いた.

HTTPトラフィックデータを作成した ( 2 sessions ) 

 curlを使うことでHTTPのトラフィックデータを作成することができた.今回はHTTP通信を対象としているので,HTTPでの通信を確認する必要があったが,幸いにもnginx.orgがhttpでの接続を許可していて,これの内容をダンプすることで,サンプルができた.サンプルが取れたので,このデータを元にテストケースを新たに作成して,http parserの動きを確認するなどした.status lineに関しては適切に動作しているのを確認したが,http headerに関してはsegumentation faultが発生しているらしく,どうも,これが接続不良の原因の一つになっている気がする.次のセッションではこの問題を修正したい.


TA勤務確認表を提出した

 C言語のTAについての勤務確認表を提出することができた.事務の人がなかなか捕まらなくて何ラウンドが行き来することになったが,最終的に提出できたので結果オーライ.事務の人と夏休みの過ごし方について話すなどした.

生活面

10時半起床.おおよそ6時間睡眠.十分な覚醒度を得た.

昼は生協で牛丼を買って食べるなどした.牛肉のほか玉子焼きも乗っていて味付けも良かったように思う.割とあっさり食べれた.

夕方にキャンパス内を散歩した.かなりの晴天で散歩日和だった.アップダウンのあるルートを選択したので,十分な運動量を稼ぐことができた.


7/28

進捗報告

ルールチェッカの開発を進めた ( 2 session + 50 mins ) 

 ルールのチェックをするためのコードを書き進めることができた.パターンマッチングなどの道具立ては完成しているので,これをオペレータとして呼び出して,アクション群を実行するかどうか判断するというところまでとりあえず進めたいところ.

 また,テストケースについてもCUnitを使った初めてのユニットテストを動作させることができた.Makefileとだいぶ長らく格闘したのだが,2時間の戦いの末勝利した.これによって,コードの一部分を切り出してテストをするということが簡単になったので,統合テスト前のチェッカーの動作の確認などにも役立てたいと思う.

C言語TAに従事した ( 1 session ) 

 本日もC言語のTA業務に従事することができた.そろそろ期末シーズンということもあり,受講者の関心ごともC言語からそのほかの科目の期末テストに移ってきていて,その話が多めだった.C言語から外れてOSやファイルシステムなどについても言及することができた.


生活面

朝9時起床.大体6時間睡眠.十分な覚醒度を得た.

7/27

 進捗報告

TGでBTの動作を確認した ( 1 session ) 

 TGにBTのコードが適切に動作していることを確認することができた.コードを持ってきて,さらにはキャラクタを動かすようなアクションのコードを作成し,これを持ってきたBTで引っ掛けて呼び出す.最終的にビルドして動かしてみるとアクション通りの動きをしているように見える.この実装をするためにはBT Managerみたいなオブジェクトが必要かと思っていたのだが,名前空間を定義してこれを使って別ファイルから読み込み,ローカルでオブジェクトを使い捨てるようにしたらそんなことをする必要はなかった.名前空間はこれまでこのプロジェクトであまり有効に使いきれていなかった.これを使うことにより削減できるオブジェクトがいくつかありそうだと感じる.兎にも角にも,今回の作業によってTGのUnityのコード上でも任意のNPCを作成可能になった.

SF小説を読み進めた ( 1 session + 45 mins )

 たったひとつの冴えたやり方を読み進めた.今は多分三部目の作品を読んでいる. 

単体テストを始めた ( 1 session + 45 mins ) 

 CUnitというテストフレームワークを使って単体テストを書く方法を勉強することができた.まだ,パーサのテストが完成していないのだが,関数群の使い方は分かったので,makeが通るように書き換えていき,毎回これをビルドするたびにこれが実行されるように書き換えていきたいところ.

生活面

13時起床.おおよそ8時間睡眠.十分な覚醒度を得た.中途半端に寝て起きるよりはきっちりと休んだほうがスピードが出るので,気をつけていきたい.

夜間に1時間ほど散歩をして,これによって十分な運動量を得た.

7/26

 進捗報告

ブログを書き進めた ( 1session + 20 mins)

 技術ブログの方を久しぶりに更新することができた.Linuxの本のブックレビューと,普段使いのツールのエラー修正方法の紹介とで2件の更新になった.ブックレビューは書き方がいまだに安定しない部分があるが,大体は下書きの構成通りに書いた.1日置いてから読み直したらあんまり的を得ていない批判をしている部分があったので反省して描き直した.ツールのエラー修正については,修正すべきコード例をきちんと示しながら修正していて,コマンド操作も省略せずに書いているので,pedaのエラーにぶつかった多くの人にとって有用なものになったと思う.あとは,関連しそうなワードで調べたときに上位に出てきてくれるかどうかだが,これは祈るしかない.

 次のブログセッションでは,宅内LAN環境について久しぶりに書きたい.Linuxの開発マシンが追加されたので,図表にそれを反映したい.

bashの本を読み進めた ( 1 session ) 

 入門bashを読み進めて,2章のコマンドライン編集のところまで来ることができた.コマンドライン畳でのヒストリーの行き来が覚えられないということをいつも言っていたのだが,これはデフォルトではemacsのバインドになっているらしくて,これをviのバインドに変更することができるらしい.これはかなりよいものかもしれない.

統計学の勉強を進めた ( 1 session ) 

 第2章の練習問題を突破して,第3章の確率の話に辿り着くことができた.今は理論確率のところなので,まだそこまで難しくはないので,一気に次のセッションで行けるところまで行きたい.相変わらず統計らしい話にはまだ行き着けていないので,ペラペラと後の方のページを定期的にめくってはモチベーションを維持している.

TGに対してBTのコードを移動した ( 2 session ) 

 TGに対してBTのコードを移動してきて,ひとまずはtick()が動いていることがか確認できた.ここからはいくつかのleaf nodeを実装していき,それをrootに接続して動作を確認していきたい.

7/24

 進捗報告

ブログを書き進めた ( 1 session ) 

 久しぶりに技術ブログのほうの記事を書き進めることができた.今回は無難にブックレビューとなる予定で,Linuxのしくみを読み終えたのでその感想をまとめている.他にも書こうと思っていたが,まだ書いていないというのが結構あって,それらのネタについても順次消化していきたいところ.とりあえず記事の構成を考えてしまえば,あとは早いという印象を受けているので,白紙に構成を書き出してみるというところからスタートしたい.

単体テストの本を読み進めた ( 2 sessions )

 単体テストの考え方/使い方を3章の後半まで読み進めることができた.ここまでの内容で単体テストの基本パターンであるAAAパターンについて学び,また,AAAの各要素の記載に際してどのようなことをに気を付ければよいかを学んだ.また,単体テストの命名に際しては,テストが検証するアプリケーションのふるまいに対してストレートな命名をすべきであるということを学んだ.次のセッションでは3章を読み切り,続く第二2部に進み,テストケース作成のより具体的な話題について学んでいきたい.

DDoSツールについて調べた ( 40mins )

 クラスメートと一緒にDDoSツールについて調べることができた.Github上でスターの多いDDoSツールを探し,そのコードを見た.ほとんどのツールが驚くほど単純なコードで動作しており,python製のものについては,ipとportを指定してrandom byteをwhile true内のsendto()でひたすら送るだけ,という構造で動いているものが多かった.こんなのなら素人でもすぐに作れそうだ,という印象.DDoS自体がコンセプトは単純なのではあるが,防御側がエントロピーをはじめとしたいろいろな概念を使って防御を試みているのに対して,攻撃側が何も考えずに5行くらいのスクリプトを回しているだけ,という非対称性がなんとも面白いところではある.

研究テーマについて議論した ( 1 session ) 

 クラスメートの研究テーマについて議論をすすめた.5人くらいで楽しくお話をした.技術的にどういうことをやっているのかということはそこまで難しくないのだが,やはりこの手の問題は,課題からきちんと出発しないと,途中で議論の流れがおかしくなってしまうな.常に課題から出発する意識を持つということが重要である.

ルールのパーサのコードをリファクタリングした ( 2 sessions ) 

 ルールのパーサのコードを全体的にリファクタリングすることができた.しかし,このコードは結構な量のメモリリークを起こしているらしい.クリティカルな原因は把握できていないのだが,どうも,メモリの割当量をリサイズしている部分がよくないみたい.多分新調する方向でのリサイズは割合安全とできるのだが,逆方向は結構鬼門なのだろう.なかなかうまくデバッグできない.

生活面

昼はゼリー類を食べたりした.時間がなかったけども,栄養量的にはそこそこ良かったのではないかと思う.

夕方にクラスメート一緒にキャンパス内を散歩したりして,これによって十分な運動量を稼ぐことができた.

夜は帰り際に買ってきたトルコライスを食べるなどした.ボリューミーではあったが割合あっさりと食べれた.

7/23

 進捗報告

AC法によるパターンマッチングを実装した ( 1 session + 20 mins )

 AC法のコードを引き続き書き進めて,とりあえずきちんと動作することを確認することができた.コード自体は400行弱で,可読性にもかなり配慮して書いたのでメンテ性もそこそこにある.これによってパターンマッチングに必要な2つのアルゴリズムの実装が完了したのが大きい.あとは,これを大枠を書いたコードのほうに当て込んでいって,ガンガンルールチェック用のコードを完成に持っていくだけだ.

Linux課題をクリアした ( 40mins )

 Linuxのカーネルモジュール作成の課題のレポートを作成して,提出することができた.プログラム自体は完成していたので,その結果を取り直して,レポートにまとめるだけであり,作業はそこまでかからなかった.これで,今週分のプログラムも提出できて安心できた.

統計学の教科書を読み進めた ( 2 session )

 はじめての統計学の2章を読み進めることができた.大体2章の内容を終えて,現在は最後の後の練習問題に取り組んでいる途中である.第2章までの内容で,平均値や中央値,最頻値といったcentral tendencyに関する値と,分散や標準偏差,変動係数といった散らばりに関する基本的な値の計算の練習をした.生データからこれらを計算する値と度数分布表からこれらを計算する練習をした.もうしばらくは基礎的な内容が続きそう.先をちらっと見たところ検定に入るのは7章からみたいなのでだいぶ先だ.

生活面

12時起床.おおよそ10時間睡眠.十分な覚醒度を得た.

昼過ぎにキャンパス内を散歩した.今回はグラウンドを目的地として設定し,グラウンド内を1周歩くことができ,これによって十分な運動量を稼ぐことができた.

7/22

 進捗報告

チェッカーのコーディングを進めた ( 2 session )

 ルールのチェッカーのコーディングを進めることができた.ルールの順次適用のための関数を作成して,その中でオペレータに応じた操作と,点数の加算をする予定である.まだ,必要な関数が色々と間に合っていないので,動く物は作れないのだが,大枠がなんとなくつかめたのは重要なことだ.引き続き実装を進めていきたい.

ACの実装を進めた ( 2 session ) 

 ACの実装を進めて,この結果,なんとかfailure functionsの実装の方法の検討をつけることができた.とりあえず各ノードで,前ノードを参照して,前ノードのfailure functionsのトランジション先をとってきて,ここから,そのノードが持っている値によってトランジションができるかどうかを確認することによって,failure functions用のテーブルを作成することができる.現在はテーブルの作成と初期化まではできるようになったが,値のうち替えの部分があんまりうまくいっていないようである.これをいい感じにデバッグしていきたい.

進捗報告書を作成した ( 70mins )  

 今週分の進捗報告書を作成することができた.今は実装段階にあるので,実装上のさまざまなアルゴリズムについての説明が主体になっている.


生活面

5時40分起床.おおよそ8時間睡眠.十分な覚醒度を得た.



7/21

 進捗報告

ACの実装を進めた ( 2 sessions ) 

 ACの実装を進めて,とりあえず分岐がきちんと作れるようになった.これによって,テスト用のファイルを読み込ませてみて,きちんと文字列全体がprefix treeとして保持できるようになった.これはACの上ではgoto functionを実装することと同義だが,各ノードの遷移用の情報を2次元配列から,ポインタの探索に変えたことで,メモリ使用量は抑えられているはず.次はそれぞれのノードがtransitionに失敗したい時のfailure functionとしてどのノードを持つべきかを計算する関数を実装していく必要があるが,これについてはアルゴリズムがどういうものだったか忘れたので,論文を読み直してから実装方策を考える.

採点業務を進めた ( 1 session ) 

 採点業務を進めて,後半から数えて3つ分の課題に対して言おうすることができた.一つの課題の回答がキャッシングされたら,素早く回答を返せるようになるので,短時間で一気にやってしまうことが重要だ.採点に関しては,若干甘めにつけないとこれは0点ばっかりになってしまうので,気をつけよう.

TA事前学習をした ( 1 session ) 

 C言語のTA業務に備えて,本日扱う内容のプログラムを読み込むなどした.今回は単にコードを実装するというよりは速度を測定するという部分に重きが置かれていて,ある程度サイズがある文字列ファイルを色々なソートアルゴリズムでソートして,その時間を計測する意という内容になっている.ソートアルゴリズム中の操作についても,二分探索など,探索アルゴリズムを適用することで高速化が可能になるということであった.

C言語のTAに従事した ( 1 session ) 

 本日もC言語のTA業務に従事することができた.今日はいろいろなソートのアルゴリズムの動作検証であり,動作時間を図ることでソートアルゴリズム間の性能差を見ることができた.今日の入力データにおいては,データの配置がごちゃ混ぜになっていたので,挿入ソートが異常に遅かった.

生活面

1時起床.大体4時間睡眠.とはいえ,昨日はほとんど寝て過ごしたので,睡眠負債はほとんどなし.

床の清掃をした.これで埃を一掃した.また,可燃ごみを廃棄した.この時期はごみを溜めないことが重要である.

昼には生協で買ってきた麻婆豆腐をたべた.スパイスが効いていて,かなりすんなりと食べれた.

昼過ぎに山のふもとのローソンまで歩いた.アップダウンのある道を40分ほど歩き,これによって十分な運動量を稼ぐことができた.

7/20

 進捗報告

Arch Linux導入 ( 4 sessions )

 新しく購入したBMAXの1万円のマシンに,Arch Linuxを導入することができた.Arch LinuxはLinuxディストリビューションの一つで,とにかく無駄な機能のないシンプルな使い心地が人気のディストリビューションである.Ubuntuをはじめとして他の奥のOSには複数のバージョンが存在していて,それが結構数字を刻んでいくわけだが,Arch Linuxにはひとつしかバージョンがなくて,それをひたすらアップデートして使い続けることができるため(ローリングリリースという),いちいちバージョンごとに乗り換える手間が省けてとてもいい感じ.

 ISOについてはたったの1.3GBしかなくて,インストールメディアは他ディストリビューションと比べると圧倒的に小さい.これは,インターネット接続を前提としていて,必要最小限のパッケージすらがISOに含まれていないからというのも理由の一つだが,最も大きい理由はインストーラが存在しないことである.他ディストリのISOにはインストーラが入っていて,それに従うことでOSをPC本体にインストールできるが,Archにはそれがない.そのため,ISOが非常に小さい.

 インストールはそこそこに手間がかかる.手順としては,まず,ディスク上のパーティションを切るところから始める.OSをまともに動かすためには,EFIを動かすための領域と,Swap領域,それからOSとユーザデータを入れる領域の3つを切る.今回はそれぞれ512MiB,512MiB,残りの全領域とした.このマシンはSSDが128GBあるから,116GiBくらいユーザが好き勝手使える.領域が切れたらそれぞれをフォーマットする.EFI SystemsはFAT32,SWAPはswapfs,残りの領域はext4でフォーマットした.フォーマットしたらディレクトリをマウントする.swapfsに関してはswaponで,swapに割り当て,EFI Systemsは/mnt/boot (/boot),残りの領域は/mnt/ (/)にマウントする.そこまでできたら/に対してArchの最小構成をインストールしていく.そこまでできたら,ようやくSSD側のArchにログインできるようになるから,ログインして,GRUBの導入と,諸々の設定(ネットワーク設定,ユーザ名の設定など)を済ませる.ここまできたら,ようやくSS側のシステムが利用可能になるので,リブートをかけて,ログインする.

 SSD側のシステムが立ち上がるようになったら,普段使っているソフトを入れて,SSHDを立ち上げて普段使いのmacからログインできるようにする.これで導入作業が完了.GUIなんてものはないので,全てCUI上で実施する.特にパーティションを切ったりという作業は普段あまりやらないので,とても勉強になった.


7/19

進捗報告

小説を読み進めた ( 1 session ) 

 長らく積読していたSF小説を読み進めることができた.読んでいるのはたったひとつの冴えたやり方(原題は The Starry Liftらしい)というもので,短編集なのだが,現在は3つ目の話を読んでいるというところ.SFとミステリーに関してはネタバレについは,かなり風当たりが強いので詳細について言及することは避けるが,まぁ面白いな.

TGのコードをリファクタリングした ( 4 session ) 

 TGのコードにBTのコードを移しつつもリファクタリングを進めることができた.BTのコードをProcessing用に書いて,これは文法的にはJavaのスタイルをとっているので,C#をもとに作られたUnityスクリプトにも容易に移行することができた.また,それに伴った周辺のコードもかなり書き直して(コードによっては100%書き換え),可読性がかなり高めることができた.今読み直しているコードは昨年のこのくらいに書かれたコードが主なのだが,忙しかったということや,可読性への意識がそこまで高くなかったということもあり,かなりコードの品質が低い.それを全面的に書き直していくと,当時と今のコーディングスキルの差が感じられて,これは体験としてはそこそこ良いものだ.

 また,最近はAIコーディングの流れが結構あるので,試しにgithub copilotを導入してみた.github copilotをVSコードに導入すると,コメントなどをコード中に書いておくと,その途中をAIが書いてくれるという感じ.また,インラインチャットで,書いて欲しいコードとか,修正したい理由とかを書くと,それに沿ってコードを書き換えてくれる.ただ,書いてくれるコードの品質はお世辞にも高いとは言えない状況があって,また,頼んでなくても続きのコードの提案をひたすらしてきて,それが全く的を得ていないことがほとんどなので,コーディングに全く集中できない.ということで,AIコーディングの本格導入に関しては,もう少し先延ばしにすることになった.オープンソースの人たちがAIによるコミットをウザがっている理由が少しわかった気がする.

生活面

16時起床.12時間睡眠.かなり高い覚醒度を得た.

夕方はグラタンを買ってきて食べた.結構美味しく食べれた.

夜に学校に忘れ物をとりにいき,それによって40分ほどの散歩が発生したので,十分な運動量を稼ぐことができた.


7/18

 進捗報告

neko.cを改良した ( 1 session ) 

 クラスメートの作成したneko.cというプログラムを改良することができた.端末の幅を実行時に取得して,それをもとに文章の表示のセンタリングをする.また,オプション類についても綺麗に整理することができた.

 このプログラムは普通にすごく便利で,日常的にすでにかなり使っている.湾曲のワイドディスプレイを使っているとマニュアルとかドキュメント類が左端に寄ってしまってかなり読みにくいのだが,このプログラムを使うと画面の真ん中にそれらを持ってくることができ,とても読みやすくなる.なぜなのか,この手のオプションはlessとかの中には含まれていなくて,端末側でもそれをささっとやるいい感じのコマンドがないので,困るのだが,今回これが解決されたということで非常に嬉しい限り.

regexのテストをした ( 2 sessions + 40mins ) 

 Regexのマッチングを適用するために,PCRE2を導入し,これをテストすることができた.PCRE2の使い方自体はpcre2demoというマニュアルページがあり,これを見ながらコードを書いていくことでマッチングを実施することができた.手順としては準備をしてから,regex patternをコンパイルし,コンパイル済みのマシンを使って,subjectにマッチングをかけるという形になっている.

 インタフェースをととのえて,mainの側ではpatternを投げ込んで,マシンを準備する関数を呼び,評価用関数にsubjectを投げ込めばbooleanで評価結果が返ってくるという形にした.この評価関数を実行して,trueだった場合に値を加算していくようにすればregexの検査は実施できるようになるはずだ.

Linuxの本を読み終えた ( 1 session + 45mins )

 Linuxのしくみを読み終えることができた.全体として図表が多めで,実験も多かったので,言っていることは理解しやすかった.概略を掴むというところに関して非常に良い本で,また,カーネルに関しては,こういった概略を掴むための入門書が不足していたという部分もあるので,非常に貴重だったと思う.学校の講義がちょうどこの本に連動してカリキュラムが組まれていたというのもあって,半期の間少しずつ勉強しながら読めたというところも恵まれた点だった.実装については,結局それぞれについてもっと勉強して,最終的には実装を追っていくということをしないと理解できないと思うので,ステップアップは必要だし,それが前提の記述だと思う.

TGのコードを整理した ( 1 session ) 

 TGのコードを書き足す前にコードを整理することができた.TGではこれまで,オブジェクトごとにディレクトリを分けてきたのだが,これによって,コードがかなり散財していて,管理がかなり面倒になっていた.この手の業務はそれぞれの業務ごとに作業が切り分けられるのがデフォなので,なんだかんだでファイルの種別ごとにディレクトリが切り分けられているのが正義だと思う.

生活面

12時起床.10時間睡眠.十分な覚醒度を得た.昨日は睡眠不足で一日中よくわからないことを口走っていたので,元に戻ってよかった.


7/16

 進捗報告

Linuxの本を読み進めた ( 2 sessions )

 試して理解Linuxのしくみを早朝から読み進めることができた.今日のところで,7章と9章を読み終えた.7章はファイルシステム,9章はブロックデバイス,主としてHDDについての内容であって,関連があったので読みやすかった.ファイルシステムにはext4とかのほかにもtmpfs,procfs,sysfsなどが用途ごとに使われている.それからネットワーク越しで使うものではnfsとかcephfsがある.ブロックデバイスに関しては,アクセス順序でスピードが落ちたりするので,順序を効率化するI/Oスケジューラが存在していて,また,空間的参照局所生を活かすためにreadaheadという機能がある.I/Oスケジューラに関してはブロックデバイスが十分に高速な場合(NVMe SSDなど)には,むしろボトルネックになるケースがあるが,readaheadについては,どちらの場合においても良好な結果を示した.

市内でショッピングした ( 2 sessions )

 単体テストの本が欲しかったので,市内の本屋に出かけた.目的の本を無事入手することができた(単体テストの考え方/使い方).東急ハンズにも行って,切れていたインクを補充したりできた.その後にミスドに行って,コーヒー片手に本を読み進めたりした.帰り際にドラックイレブンに行って,生活用品を補充したりできた.トータルで3時間くらいのショッピングで満足できた.

Linux講義レポートを作成した ( 1 session ) 

 明日提出のLinux講義レポートを提出することができた.コマンドのソースコードを読み直して,挙動を説明した.この講義のrepositoryがかなりごちゃごちゃしていたので,きれいに整理して,見通しが良くなった.来週の部分についてはまだできていないが,ソース自体は完成しているので,あとはレポートに実行結果を記載するだけという状況にはなっている.

Regexライブラリをテストした (  + 30 mins ) 

 Regexのライブラリをテストしかけた.PCREは使い方自体はシンプルな感じであった.

Unitテスト本を読み進めた ( 1 session + 50mins ) 

 単体テストの考え方/使い方を2章の中盤くらいまで読み進めることができた.これによってテストの考え方が大まかには古典学派とロンドン学派の二つの学派に分かれていることが分かった.古典学派はa unit of behaviorを単体の単位として,ロンドン学派はa unit of codeとして,1クラスを単体の単位とする.テスト対象が依存している他のオブジェクトについてはモックで置き換えることになるが,古典学派では共有依存しているオブジェクトのみを置き換えて,ロンドン学派では共有依存と可変依存をモックで置き換える.

生活面

4時半起床.だいたい6時間睡眠.昼頃に仮眠するかも.案の定10時くらいに4時間くらい仮眠して,これによってようやく十分な覚醒度を得た.睡眠負債も返済できた.

朝から床の清掃をした.これによって床の埃が目につかなくなった.

洗濯を1ラウンド回して,月曜日の突然の雨の分をやり直すことができた.干すところまで行ったので,あとは待つだけ.

昼はミスドでドーナツを食べた.チュロスとポンデリングを頼んだ.チュロスを食べたところで電車の時間が来てしまったので,残りは持ち帰った.コーヒーを併せて飲んで,覚醒度が高まった.

市内を歩き回ったので,本日はそれによって十分な運動量を稼げた.

7/15

 進捗報告

ルールパーサを拡張した ( 10min )

 phase5のルールに対応できるようにルールパーサを拡張することができた.作業内容としてはこれまで作ってきたパーサの実装と全く同じコードをつくって数字を5に打ちかえるだけの簡単なものであり,10分で実行結果を確認するところまで辿り着けた.

進捗報告書を作成した ( 60min ) 

 1時間くらいかけて進捗報告書を作成することができた.先週はライブラリ選定に時間を使っていたというのは言い訳で,インタプリタをめちゃくちゃ書いていたので,あまり研究上のコードは書かなかった.今週はライブラリを使いながら点数を足し上げる処理を書くのと,AC事態を実装するのが重要なタスクになる.

ACアルゴリズム実装 (  2 session + 60min  ) 

 新しくブランチを切ってACの実装を始めることができた.とりあえずノードの構造体を書き始めて,再帰的にinsertとdumpの関数を作り,freeする関数まで作って幸先の良いスタートを切ったのだが,どうもブランチを追加する処理でセグメンテーションフォールが出力される.これのデバッグをする必要がある.

Python画像処理のTA ( 1 session ) 

 Pythonの画像処理の研修でTAを担当することができた.今回の講義では,システム上のトラブルも色々とあって大変だったが,なんだかんだで楽しくやることができた.

生活面

 10時起床.おおよそ7時間睡眠.十分な覚醒度を得た.

 昼はからあげ丼を食べた.なかなかボリュームがあったが,食べれた.

 夕方に40分ほど散歩した.図書館で本探しをして,楽しく過ごせた.十分な運動量が稼げた.

7/14

進捗報告
GNU Coding Standardを読み進めた ( 2 sessions ) 
 GNUのCoding Starndardを2session分読み進めて,Chapter1,2,3とchapter5の半分を読むことができた.研究用のコードはGNUのコーディングフォーマットに寄せている形でコードを書いていて,この形式に近づけるとなんだかんだで,かなり綺麗に書けるということが経験的にわかっているので,最終的にはこのフォーマットを準拠する形に変えていきたいと思っている.ブロックのインデントが割合特徴的で,関数の{が関数処理の最初の行の一列目に現れる.ifやwhileに関しても{は改行するが,関数とのみ間違えを防ぐために2space分下げる.
int 
main (void) 
{
    if (condition)
      {
        process;
      }
    return 0;
}
という感じ.

TAの準備をした  ( 15min )
 5限のTAで使うプログラムを15分くらいかけて読んで,動作を理解することができた.これで質問されてもなんとかなると思う.コードの品質については先週のサンプルプログラムと比較するとかなりマシになっていると思う.

Regexのライブラリを探した ( 1 session )
 Regexのライブラリを色々と探してよさげなライブラリを選定することができた.組込み向けとか,軽量化のために様々なslreや,tiny-regex-cをはじめとしたさまざまなライブラリが開発されていることが分かった.しかし,処理したいマッチング用の文字列がperlの方言で書いてあるので,この記法への互換性は残さないといけない,ということでpcre2に落ち着いた.
 pcre2のソースを手に入れることができたので,実際にbuildしてみた.

C言語のTA業務に従事した ( 1 session ) 
 今日もC言語のTA業務に従事することができた.今日は二分探索だったのだが,問題そのものは二分探索と関係のない部分だったのでアルゴリズムで悩んでいる人はいなかった.そろそろ様々な期末テストが実施されているということで,化学とか数学とかの問題を解いている人もいる.ここらへんも学び直したいけど,今は勉強は基本PBLでやることにしているので,作りたいものがないと勉強を始めるということにならない.特に作りたいものが思い浮かばないからなぁ.

Proxyのリファクタリングを進めた ( 1sessions + 40 mins )
 Proxyのコードをリファクタリングすることができた.サーバ側のプロキシが,かなり色々なコードが入り混じっていてごちゃごちゃとしていたので,これを切り分けたりして,また,うまく動作していない関数についても全面的に書き換えて,整理することができた.これにより,今後のデバッグが楽になったと思う.次のセッションでは,それぞれのサーバコンポーネントについてのテストケースも記述していきたい.
 
ACの論文読みをした ( 1session ) 
 ACのコードを書くために,ACの論文を読むなどした.これによって,gotoテーブルの作り方とfailure functionの作り方を知ることができた.ツリーのたどり方についての基本的な考えも理解できた.アルゴリズムとしてはそこまで複雑ではないので,数百行で書けそうではある.明日時間をみて実装を進めていきたい.

生活面
11時起床.おおよそ10時間睡眠.十分な覚醒度を得た.
昼は生協で,コロッケ丼を食べた.白身魚も入っていて,割合食べやすかった.
夕方4時にクラスメートと一緒にキャンパス内を35分ほど散歩した.雨上がりということもあり,割合涼しかったので快適に散歩できた.十分な運動量を稼げた.
夜は米,春雨スープ,鮭の3点セットでバランスよく食べれた.
深夜にも1時間ほど運動して,これによって気分が上向いた.

7/12

 進捗報告

コードのリファクタイングを進めた ( 2 session + 60min )

 昨日にクラスメート一緒に描いたbook-meterのコードを時間をかけてリファクタリングすることができた.今回はmainのファイルから主要な機能に関係のないヘルパー関数的なものを全て,本構造のデータを処理するためのファイル群に映して,また,誤解を招くようなインタフェースになっていた部分についても修正することができた.

 shell_modokiのコードについても多少リファクタリングを進めていって,とりあえず良い感じになったので,公開することにした.これでShellModokiのタスクは本当に終了.全体を通して,結構楽しくプログラミングができたという印象.

ゲーム開発会議をした  ( 1 session ) 

 ゲームの開発会議を実施することができた.今週は特に進捗についての話はなかった.シナリオとまではいかなかくても,そもそもどういうストーリーのスタイルに落とし込むかが決まらないと,コーディングが進んでいかない.よくわかっていないものをコードに起こすことは不可能だ.

生活面

12時起床.だいたい9時間睡眠.十分な覚醒度を得た.

夕方にエアコンの清掃をした.フィルターを水洗いして,フィンを洗浄スプレーで洗浄していった.今回はちょっと高価な洗浄スプレーを使ったので,効果を期待したい.無香料のものを買ったのだが,こっちのほうが前回よりいい感じだった.

夜は米,春雨スープ,世田谷食品の魚のあんかけみたいなもの.美味しく食べれた.

7/11

進捗報告
採点業務を進めた ( 2 session )
 C言語講義の採点業務を進めることができた.これ以上課題が増えることはないので,ひたすら再提出を打ち返し続けるフェーズになっている.とはいえ,もうすでに3ラウンド目くらいに到達していて,すでにまともなレポート群は通過済みなので,題意を満たしてくれない人々にひたすらお願いしてなんとか題意を満たしてもらうという,そんな様相.

水平ワークショップ ( 1 session )
 水平ワークショップでここ数年の特にマルウェアなどの脅威の調査状況について聞くことができた.どの話も非常に面白くはあった.研究にも役立てそうなので,新しく知った情報を元にリンク集を組み直すなどしたい.

Book-Meter推進 ( 2 session )
 我らのブックメータプロジェクトに新しいメンバを加えることができた.彼はC言語を研究で使うらしいので,このプロジェクトはその練習台として非常に良いものになると思う.今回は,実際に目の前にコードの説明をしながら一つの機能を追加していって,コードの全容を把握してもらった.


生活面
朝9時半起床.おおよそ11時間睡眠.十分な覚醒度を得た.
昼は生協で弁当を買って食べた.割合あっさり食べれた.野菜が歯に引っかかった.


7/10

 進捗報告

Shell Modokiの実装を完了させた ( 6 session ) 

 Shell Modokiのコードをひたすらに書き足して,elif elseにも対応して,fizzbuzzが実行可能になるまで持っていくことができた.加えて,このコードについて説明する簡単なプレゼン資料も作成することができた.後半はかなりデバッグが大変だったが,漫然とlldbを叩き続けることにより,問題の原因を特定して,解決することができた.とにかくデバッガを振り回す力を身につけることが,効率的なソフトウェア開発においては重要である.

Shell ModokiのREADMEを書いた ( + 40min )

 Shell ModokiのコードについてのREADMEを書くことができた.スライド資料にリンクを掲載したのだが,飛び先でソースファイルについての説明が一切ないのはさすがに不親切かなと思ったので,動作方法と実装された機能,ソースファイルの解説などを入れた.READMEを書くと突然しっかりとしたプロジェクトのような見た目になるのが不思議である.


7/8

 進捗報告

進捗報告書を作成した ( 1 session )

 進捗報告書を作成することができた.今回も下書きをして,それをもとに文章を起こしていった.先週までで何を実装していけばよいか,という詳細を考えることができた.全体の見通しを確保できたことが大きい.実装の手が軽くなった.今週は,この結果を用いてどんどんコーディングを進めていきたい.

PythonのTA に従事した( 1 session )

 PythonのクラスのTAに従事することができた.今回はDXの色々な関係者とたくさん雑談できて,割合楽しい時間を過ごせた.Pythonを教えるということが一番重要な業務ではあるのだが,講義で課されている課題が非常に簡単なので,この部分で教えるべき部分は特になさそうだ.

Shell_Modokiのコードを書き足した( 2 session ) 

 Shell_Modokiのコードをさらに書き足して,if, whileのなかのcondition上で算術演算を実施できるようになった.-というトークンを別トークンとして切り出したことで,condition上の処理では思わぬ副作用が発生したが,これまでのコードを書き直し,ことなきを得た.今はこのconditionの中で変数を扱えるように変更を加えている途中であり,これがうまくいけば,ifやwhileが変数に駆動して動くようになるはずだ.そこまでできれば,fizzbuzzはできたも当然である!

色々読んだ ( 1 session ) 

 SFとか,マルウェアのレポートとか,Unityのコーディングフォーマットとか,そういうものを特に集中するわけでもなかったけど,ダラダラと読んで,忙しさをリセットできた.

生活面

12時起床.だいたい8時間睡眠.十分な覚醒度を得た.

空き缶を廃棄することができた.缶・瓶のターンは1か月の中でも希少なので,このタイミングを逃さずにキャッチできてよかった.

夕方にキャンパスを少し長めに散歩して,十分な運動量を得た.

夜は帰り際に買ったトルコライスを食べた.なかなかボリューミーだったが,昼を欠食していたので,さらっと食べれた.

7/7

 進捗報告

論文読みをすすめた( 1 session + 30min ) 

 パターンマッチングの論文を読み進めることができた.ちょうどAC法というマッチングの方法を勉強しようとしていて,YARAをこれ使って効率化しようという内容だった.AC法自体は,1975年くらいからある,かなり歴史のあるアルゴリズムで,ツリー構造を辿ってマッチングをするアルゴリズムなのだが,それぞれがfailure nodeというようなものを持っていて,移動する先がなくなった時にそこに移る.AC法は移動先の設計が秀逸で,ちょうど,rootノードからその直前文字列を読み込んだ先にあるノードに対して移動する.なので,1回の読み込みで,オーバラップも発見できるという触れ込み.

セキュリティ機構のリファクタリングをした ( 1 session )

 セキュリティ機構のプロキシ部分を少し整理することができた.サーバ側のproxyのhttp parserの動きが不安定な部分があって,それは,自前実装の関数が複雑すぎることが原因でデバッグが難しいので,これを綺麗にしようとして,処理を切り出したりとかをしている.明日は,ここにセキュリティ検査機構を組み込む処理を足していこうと思っていて,今日のコードも引き続いて改善していきたい.Unitiyのコーディングにもあったが,良いコードは1日にしてならず.新しいコードを書き足していくとともに,作業時間の固定の割合を既存のコードのリファクタリングに回して,何度も同じコードを読み直しながら書き換えていく.この繰り返しによって,ようやくまともなコードというのが出来上がっていくというわけ.

CRSの調査を進めた ( 1 session + 30min )

 今日もCRSの調査を進めて,922-multipart-attackと994-application-session-fixationを読み切ることができた.ここまでで,だいたい半数以上のルールを検査したわけで,どういうルールの構造があるかということが,理解できた.残りのルールに関しては,もう明日まででは調査が終わりそうにないので,ここまでで分かったことで,コーディングの指針を定めて,残りのルールの読解は,それと並走する形で進めていくことにする.おそらく毎日3時間くらいをこれに当てれば,一週間で読み切れると思う.XSS,SQLI,RCEがラスボス級で,2000行くらいルールがあったりするので,これが時間を食いそうだ.

C言語TA( 1 session + 30 min )

 今日もC言語のTAに従事することができた.本日はハッシュテーブルの実装についての話だった.コードの品質が不足していて,かなりわかりにくいコードになっていたので,TAに行く前に自前で書き直して,これによってよく理解できたので,説明も淀みなくできた.次回は二分探索で,ツリーの構築とか,少し複雑な処理が入ってくるので,頑張っていきたい.

生活面

12時起床.おおよそ9時間睡眠.十分な覚醒度を得た.

外が晴れていたので,洗濯物を処理することができた.洗濯機を回して,干すところまで進めたので,あとは待つだけである.

夜は,米,シャケ,春雨スープの3点セットで,バランスよく食べれた.

7/6

進捗報告

shell_modokiの算術演算の実装を進めた

 8時間くらいコーディングをして,与えらた算術式を計算して,その答えを返すという処理を実装することができた.オペレータの優先度を見ながら算術式をツリー構造に変換して,そのツリー構造をもとに再起的に計算を進めて,最終的な答えを得るというプログラム.この機能はshell_modokiの算術式のオペランドを開くための機能に過ぎないのではあるが,算術式をパースするということ自体が,なんだかんだで一つの処理系であって,コーディングは結構大変だった.ただ,これによって算術式は暑かるようになったので,あとはこれをcondtionノードの実装に組み込んで,ifやwhileの中で使えるかを確認していく.

githubの自己紹介文を書き換えた

 githubの自己紹介文を更新することができた.前の自己紹介文は,ずいぶんと前に書いていたもので,自分の現状とはマッチしなくなってしまっていたので,更新できてよかった.自己紹介文を書くときはCS学科の学生ということで,端的に書きすぎているきらいがいつもあるのだが,github上ではアマチュアプログラマを名乗るという方針にして,以下のようにした.

I'm an amateur programmer living in Japan. Security is my major. On Github, I'd like to contribute to projects in GameDev, CLI utilities and Secuity Mechanisms!

 字数制限が結構厳しくて,これでちょうど最大字数という感じ.

CRSの読解を進めた

 今日も3時間くらいCRSのルールを読み進めて,response953-data-leakages-php,request930-aplication-attack-lfi,request931-application-rfi, response-952-data-leakages-javaを読むことができた.これで細かいルールを片付けたという感じ.これで, ようやく残り10個ファイルくらい.かなりルールも読み慣れてきた.正規表現も読み慣れてきた.明日1日使って,全部読み切ってしまって,実装の方針を決めたい.

 生活面

12時起床.6時間睡眠.そこまで睡眠負債がなかったので,十分な覚醒度を得た.

昼は紅茶スコーンとエピを細かくしたようなものを食べた.結構量があったけど食べれた.

昼間に学校に出かけて行って,その行き帰りで十分な運動量を稼ぐことができた.

夜は,米,春雨スープ,世田谷食品の宅食の3点セットで,バランスよく食べれた.


7/3

 進捗報告

Unityコーディングフォーマット読み

 Unityのコーディングフォーマットをきちんと設定して,TGでは,このフォーマットに準拠していこうと考えていて,そのためにUnityコーディングフォーマットを読み始めた.今のところ3章の半ばくらい.基本的にはMSのコーディング標準をベースにしていて,Sunのコーディングフォーマットと,そこまで大差ない感じ.割合簡単に導入できそう.TGでは,単純にコーディングフォーマットが不揃いというところだけでなく,可視性の設定が雑なところがあるので,そのあたりも併せて整備していきたい.

Linux講義出席

 1限のLinuxの講義に出席することができた.今回はLinuxカーネルモジュールを実際に作ってみるというような内容だった.きわめて単純なLKMはコードもわいあい簡素.これを発展させてドライバとか自作してみたら面白いと思う.アイデアはあるが,これが走り出すかは不明.他のタスクの進捗次第.

if文実装

 講義後に2時間ほど作業を進めて,昨日の続きを書いて,if文を実装することができた.ifの実装ができたら,whileは似たようなものなので,昨日のコードを見ながら実装していけば,何とかなりそう.あとはconditionの中で,算術演算とか,変数の展開とかができるようになったら,fizzbuzzに手が届くと思う.

while文実装

 if文の実装から,さらに1時間ほど作業を進めて,while文を実装することもできた.ifのコピーかと思ったけど,想像以上にあちこちにコードを書き加える必要があった.あとは,conditionの中の算術演算ができるようになったら良いと思う.もう一息だ.

本読み

 家に帰って,読みかけだった本を2冊読むことができた.1つはクロスバイク図解マニュアル,2つ目は風の谷のナウシカ第7巻.これで.ナウシカについてはシリーズを通して全部読んだことになる.感想は後ほど整理したい.

生活面

 朝7時起床.だいたい5時間くらい睡眠.十分な覚醒度を得た.

 昼は生協のそぼろ三食丼を食べた.あっさりとしていて,非常に食べやすかった.

 夕方にt_h_氏とともにキャンパスを一周分散歩した.セミが活発に活動しているみたいなので,木に接近して様子を観察するなどした.これによって十分な運動量を稼ぐことができた.

7/2

進捗報告

shell modokiプログラミング

 6時間くらいかけてshell modokiをさらに拡張して,if文をparseできるようになった.conditionの解釈にかなり手間取ったのだが,時間をかけてデバッグして何とかなった.

生活面

12時半起床.おおよそ9時間睡眠.十分な覚醒度を得た.


7/1

 進捗報告 

CRSルール読解

 3時間ほどかけて,さらにルールを読み進めることができた.今日はresponse999,request949, response 980が読み終わった.901がもう少しで読み終わる.ファイル数で数えるとだいたい1/3以上が読めた形.ルールの進行にも段々と慣れてきたので,明日はもっと早くルールが読めると思う.

進捗報告書作成

 だいたい1時間ほどで,進捗報告書を作成することができた.ブログ的なフォーマットについても段々と書き慣れてきて,下書きさえきちんと書けば,ものの30分くらいで文章を空らしく起こすことができる.

資格説明会聴講

 クラスメートが資格取得の体験について説明しているのを聞くことができた.もう3回もやっているということで,かなり話慣れた感じではあった.モチベーションとか,そのあたりに焦点を置いて話をしていたのが良かったと思う.

旅行話

 ゼミの後に,研究室にいたたくさんの人と,旅行話でかなり盛り上がった.あちこちに行った話とか,各地のスポットの話とか,資格取得の話とか,バイトでの面白話とか,そういうのを色々聞けて非常に楽しかった.

ShellModoki実装進め

 ShellModokiの実装をさらに進めて,今日はconditionを扱うためのコードをtokenizerに追加して,これによって,conditionと,その中で使う算術演算の演算子$(())をトーカない図できるようになった.また,conditionを持っておくための構造体を追加して,これにデータを読み込むためのparserの関数も追加した.まだテストしていないので,早急にifを追加してテストしたい.

生活面

朝9時半起床.だいたい6時間睡眠.十分な覚醒度を得た.

昼は生協のもやし唐揚げ丼.あっさりと食べられたには食べられたのだが,あまり美味しくはなかった.

夕方に散歩に出掛けて図書館横の塔を制覇することができた.これでキャンパス内の建物はほぼ全て網羅できたと思う.十分な運動量を得た.

夜は米,鮭,春雨スープの3点セットでバランスよく食べることができた.

6/30

 進捗報告 

CRSルール読解

 いつもの演習室で3時間ほどCRSを読み進めることができた.今日は,905-common-exception, 913-scanner-detection, 911-method-enforcement, 900-exclusion-rules-before-crsを読んだ.ココらへんのルールは,登録されているルール本体自体はそこまで多くなくて,説明と制御に関わるものが多いという感じで,割とさらっと読めた.この調子でどんどん読んで,CRSのルール読解タスクを進行させていきたい.

帰宅後にさらに3時間ほどCRSを読み進めて,921-protocol attackと901 initializationを途中まで読んだ.これらのルールは結構長いので,時間がかかるが,全部チェックすると決めたので,どんどん読み進めていく.

C言語TA

 今週もいつものごとく学部生とC言語について学ぶことができた.先週からは,もうすでにC言語自体の言語仕様を新たに学ぼうというフェーズではなくなっているので,特に教えるようなこともなくなってきているのだが,データ構造についてはまだあまり理解されていなさそうなので,色々と説明する余地がある.

ハコワールドを見た

 昨日見る時間がなかったハコワールドを見ることができた.今回が最終回で,これまで割と長く16週?くらい続けて見てきたものがついに終わってしまったという感じ.ゴールはかなりきれいな感じだったので良かった.視聴者参加型なのも新しくて面白かった.キャラクタづくりのエッセンスがかなりあったので,見直して勉強したい.

生活面

 朝10時半起床.だいたい8時間睡眠.十分な覚醒度を得た.

 昼は生協で3色そぼろを食べた.ちょうどよいサイズであっさり食べれた.

夜にペットボトルを廃棄することができた.これでによってキッチンの床面積が広くなった.

6/29

進捗報告

正規表現の勉強を進めた

 詳説正規表現という本を3時間かけて,50ページほど読み進めることができて,今2章の後半にいる.ここまでで,正規表現のコンセプトと,極めて基本的な文法について学んできて,それをコード内で使う方法も確認することができた.実際のセキュリティルールで使われる項目はまだカバーしきれていないので,少なくとも3章まではきちんと読むことが必要だろうと思う.

ファイル一式転送

 昨年のクラスメート(現在は所属が変更になった)だった人から,昨年分のプレゼンファイル一式を送ってくれという連絡を受けて,これについて学校に行って対応をすることができた.出かけるついでにパッと片せて,向こうも喜んでいるみたいだったので,良かった.

出かけた

 週末なので,少し遠く前行こうと思って,ホームセンターあたりまで遠出して,運動量を稼ぐことができた.ホームセンターでシャンプーとエアコンクリーナーを補充して,それから台所で使うボードと筆記具を買い足した.このごろ,台所で印刷した書類を読んでいることが多いので,そこで十分に役立ってくれるだろう.

ShellModoki拡張

 ShellModokiで複数行の入力を受け付けるべきか判定して,必要な場合には複数行を読み込むように改変をすることができた.これによってifやwhileの中にコードブロックを置くことが可能になる.次は,ifやwhileのconditionをパースできるようにパーサを拡張する.conditionの形式は[ オペランド1 オペレータ オペランド2] みたいな形式をひとまずはサポートすることにしよう.

生活面

12時起床.だいたい10時間睡眠.高い覚醒度を得た.

床を清掃して,ほこりを綺麗に取り払うことができた.

6/28

 進捗報告

リーダブルコード読み

 リーダブルコードを3時間くらいかけて再読することができた.関数とかコメントの解像度を上げるとか,コードをヘルパー関数を適宜して切り分けるとか,そいういう表層的な部分に関しては,以前読んだ時よりはかなりできるようになってきているという感覚.内容も以前よりは遥かに理解できた.ライブラリの機能をきちんと把握しておくということは,重要だと思うので心がけていきたい.あと,テストケースはきちんと綺麗に整然と書くことも意識したい.

README整備

 昨日書いたコードのREADMEを4時間くらいかけて,整備することができた.文章を書いて,それを校正してから,理解を助けるための図表をいれて,とやっていたらかなり時間がかかった.英文は完璧ではないが,一応grammarlyでscore 80くらい出ているので,読めば意味はわかるだろうと思う.これで,このプロジェクトもひと段落がついたというところで,達成感.人生が進んでいくなぁ!

採点業務

 今日も1時間半ほど採点業務に従事して提出されたレポートを捌くことができた.これで,今週の頭も採点業務に頭を抱えなくて済むはずで,週初めをスムーズにスタートするための非常に良い投資になった.

生活面

朝4時起床.睡眠時間は3時間くらい.明け方にもう一度寝るつもり.明方に寝て正午に起きた.大体6時間睡眠.これで十分な覚醒度を得た.

プラごみを廃棄することができた.今週はゴミを溜めずに,適切なタイミングで廃棄し続けることができた.

お昼はのり弁を食べた.かなりボリューミーだったけど食べれた.

洗濯物の昨日分を回して,全ての洗濯物を片すことができた.

散歩に行って,地域一帯を40分くらいかけて歩くことができた.これによって十分な運動量を確保した.

夕飯は,米,鮭,春雨スープでバランスよく食べられた.

6/27

 進捗報告

敵AIコードの大幅リファクタリング

 6時間ほどかけて,昨日まで書いたスクリプトを大幅にリファクタリングをすることができた.コーディングフォーマットとしては基本的にSun microsystemsのフォーマットに準拠する形で,全体を綺麗に書き換えつつ,フォーマットを詰めていった.複雑な処理をしている箇所にもコメントを入れていったり,セクションを分けていくことをして,なんとか,読んだら処理を終えるレベルになってきた.まだコメントが不足している部分はあるので,そのあたりを補ったりしつつ,今度はreadmeをちゃんと書くという作業を進めていきたい.

自己紹介文

 ポータルサイトの自己紹介文を考えて,とりあえず埋めることができた.内容はもう少しやりようがあると思っているので,定期的に更新していきたいと思う.あまり固い内容だと,とっつきにくくなるので,カジュアルな自己紹介文を考えて,これを随所で使いまわしていきたいところ.このポータルサイトに限らず.

README作成

 大体2時間強くらい作業して,BTデモのREADMEを書き進めた.いったん構成を紙に書いてから,READMEの編集を始めた.文章自体は英語で書いていて,英作文にはそこまで自信がないので,文法上どれくらい性格なのかはわからないけれどもとりあえず書いていく.で,だいたいBTのアルゴリズムの説明と,このプロジェクトの概要を示すことができた.文章の添削は明日grammalyとか使ってやることにしよう.あと,自分のキャラクタAIの動作の説明が書けていないので,それについても書いておくこと.

生活面

朝9時起床.おおよそ9時間睡眠.十分な覚醒度を得た.

床の清掃を2ラウンドしたのちに,洗濯物を回収できた.これによって,さらにもう一便洗濯機を回して,先週分の洗濯物を掃けさせることができた.

家の周りを一周して,その後に学校にも行ってみて,これで,運動量を稼ぐことができた.

夕飯は,米,鮭,春雨スープの3点セットで,結構食べれた.

6/25

 進捗報告

敵AIスクリプト作成

 敵AIのスクリプトを1時間半ほど作成することができた.これによって,当初予定していたツリーを全て組んでみて,動作を確認するということができた.しかし,なぜ,ここまでうまく機能し続けていたはずの近接攻撃用のクラスが突然動かなくなって,原因が以前としてよくわからないので,デバッグが必要である.それから,リピーターも適切に機能していないようで,行動の繰り返しがなされていないから,デバッグが必要.

 追加でデバッグ作業をして,近距離攻撃用のクラスを直すことができた.コンストラクタの中でthisを使い忘れていたのが原因だったみたいだ.

 そこから,さらにデバッグ作業をすすめて,リピート動作も実装できて,最終的にツリー通りにキャラクターが動作することを確認した.敵の難易度調整などの別の問題もまだあるけど,兎にも角にもBTのデモ実装が完了したということで,一仕事を終えることができた!

myshellプログラミングを進めた

 これまでのmyshellのコードを新しいリポジトリに移していて,その過程で,かなりのリファクタリングをすることができた.シェル自体をprinter, executor, tokenizer, parserの4パーツに切り分けて,mainはあくまで,それらをまとめるためのプログラムという位置づけ.この構成にすることで,それぞれのコードがかなり簡潔になり,更に改良を加えるための見通しの良さを再び確保することができた.

 そこからさらに1時間半ほどすすめて,複数行の入力にも対応することができた.これによってWhileやIFの解釈をするための準備ができる.まだ入力内容の連結操作ができていのいので,この処理を書いて,関数として切り出してやる予定.そのあとはparserをガリガリ書いて,対応するexecutorの関数も書いていく.

正規表現本読み

 正規表現の本を読み始めて,1時間くらい読むことができた.正規表現はWAFルールを読み解く上で非常に重要であるので,ここから毎日ガンガン読み進めて,正規表現力を高めていきたい.大体一週間くらいを目処に読んでいく.

CRSブログ読み

 CRSのバックナンバーを読み始めて,2017年の記事をいくつか読んで見ることができた.読んで見ると,プロジェクトの重要人物や,依存度の高いライブラリ,プロジェクト全体で問題とされていること,そもそもとして全員が難しいと考えていること,などの背景情報がかなり摂取できて,非常に良い.バックナンバーが結構あるので,過去から現代に遡る形で読み進めていきたい.


生活面

7時半起床.大体7時間睡眠.十分な覚醒度を得た.

部屋の床掃除をいつもの三倍ほど入念に実施することができた.これによって,床の埃を大体一掃できた.

昼は,今日も生協で買った唐揚げ丼.暑くて食欲減退しがちなのだが,割合食べやすいから,いい感じ.

夜は米,鮭,春雨スープの3点セット.来月に入ったらフルグラを復活させる方針.

6/24

 進捗報告

演習室城塞化

 演習室のLinux環境をセッティングすることができた.これによって,これまで研究室や家でやっていた作業をすべて,演習環境でも快適にできるように なった.この時期は研究室のクーラーが入らないので,演習室でいかに作業できるようにするか,という点は非常に重要.

進捗報告書作成

 今週分の進捗報告書を1時間30分程度かけて書くことができた.先週まででparserのコードがだいたい書けたので,これをつかって通信をチェックできるようにして行きたい.実験環境はfabricがエラーを起こしているので,これもデバッグしたい.fabricのドキュメントを読んで,きちんとこのライブラリを理解した上で,問題を解決したいところ.

進捗報告

 ゼミで,先週分の進捗を報告することができた.また,この時間を使ってTAの講義の自習をすすめることもできた.google colaboratoryはうまく使えば,GPUを結構使えるので,いいと思う.しかし,講義資料がPlayボタンを押し続けるだけの内容になるのは全く面白くはないと思う.

TA勤務

 夏休みの集中講義に向けての事前研修というので,TAをやった.今回のはChatGPTの使い方を学ぼうみたいな,内容で,このご時世でそんなの知らない人いないでしょという内容では合った.なので,勤務自体も特に何も問題もなく,良い休憩時間となった.

生活面

9時半に起床.おおよそ8時間睡眠.十分な覚醒度を得た. 

昼は生協の唐揚げ丼を食べた.よくわからないコンセプトだが,チャーハンの上に唐揚げが乗っている.ボリューム自体はちょうどよかったので,あっさりと食べれた.

夜は米と酒,コーンスープの3点セットを食した.なかなかボリュームがあった.

6/21

 進捗報告

採点業務をこなした

 先週分の採点業務を4時間くらいかけてこなすことができた.これで,来週の頭にバタバタせずに済むというところで,かなりいい感じだ.採点自体も慣れてきて,だんだんとスループットが上がってきた.見るべきところを決めて,パッパとチェックしていくことが大事だ.この課題は,普通にフォーマットがきちんと決まっていないのが原因で,無駄に人々のリソースを消費している感が強いのが,なんともなー.

 昼過ぎに,今度は再評価の作業を45分ほど進めた.再評価だと評価が甘くなりがちだけど,それはそれでいいかという感じ.これについては,完全にボランティアだし.

配当金を受け取った

 昨年に買った株についての配当金を受け取ることができた.投資額が少額であるため,当然配当金も少額なのだが,それでも,投資をした結果として何をかを受け取るというのが初めてだったので,謎の充足感があった.

統計本読み

 研究室で2時間ほど本読みをして,はじめての統計学の第1章を読み終えることができた.第1章の振り返り問題は,データを数え上げて分布表とヒストグラムを作成して,その傾向を比較したりするといったもので,難しさはないものの,単純に作業量が多かったの時間がかかった.今のところ,この本は多くの確認問題を解きながら,すこしずつステップアップしていく方針で,時間はかかるものの,引っ掛かりはなくスムーズに進行することができている.

 また,途中で正規表現の本も読み始めた.正規表現はWAFルールを読解するうえで必須なので,これについても勉強を進めていきたい.

ゲーム開発会議

 2時間半ほど作業を進めて,遠距離攻撃と近距離攻撃を組み合わせた敵キャラクタを作成することができた.これをゲーム会議でも共同開発者に見せて,テストプレイしてもらったりした.結構敵キャラが強くなったので,アクションを楽しめるようになっている.あとは,弾幕要素をきちんと想定通り実装できることを確認するところまで,明日でやれれば理想だ.

生活面

朝5時半起床.大体5時間睡眠.覚醒度は普通くらい.昼に仮眠を挟むかも.昼に1時間ほど仮眠を挟んだら,眠気を解消できた.

昼は学校に行く途中で買ったメロンパンとナン.どちらも割とあっさりと食べられた.

一応休日ではあるが,学校への往復を1回挟むことにより,運動量を稼ぐことができた.

帰り際に電気代を支払うことができた.先月分はそれほど高くなかったので,損害軽微.

夜はいつもの,米,スープ,鮭の3点セットで,バランスよく食べれた.

6/20

 進捗報告

論文紹介を聞いた

 クラスメートの論文紹介を聞くことができた.起床時刻的に割とピンチだったけど,日々鍛えている競歩能力のおかげでブザービータで到着.内容自体は,小テストを生成AIで作るという内容で,馴染みやすい内容ですんなり理解できた.いい感じに内容を踏襲して,もっと面白い小テストを作ってほしい.

アルパカトーク

 昼過ぎにアルパカを飼育したらどのくらいかかるかについて話して盛り上がった.どうやらアルパカの飼育は法的には問題がなく,また,ランニングコストも他動物に比べてとても高いというわけではないらしい.その流れで,家で飼育しているペットの話や,アニメの話などをした.響けユーフォニアムが面白いらしい.

ゲームデモプログラミング 

 今年度に入ってから長らく入っているゲームのデモプログラムに近接攻撃を実装することができた.剣を表現するクラスを実装し,それを振り回すためのメソッドを実装した.そこまでできたら,今度は剣についてのヒットチェック用の関数と,それによるダメージ計算処理を実装した.これが非常に大変で,結局追加で500行くらい書き足す必要があった.ヒットチェックも結構処理が複雑で,ホワイトボードで計算をしながら実装した.結局6時間くらいの格闘の末,ようやく正常に動作するようになった.そこからは,距離に応じてプレイヤーとの距離を詰めるアクションを実装したりして,敵の動きもそれらしくなった.格闘線にについては,敵キャラもなかなかの強さなので,遠距離攻撃を混ぜないと処理するのは厳しいくらいの難易度になった.

生活面

昼は生協のチキン南蛮弁当を食べた.割とすっきりと食べることができた.

昼過ぎに散歩をして,普段はアプローチしないルートでラウンジに近寄ってみた.道らしい整備はされていなかったが,草むらを足でかき分けて進んだ.これによって,道なき道を進むことへの抵抗感がなくなり,今後の散歩ルートを可能性を広げることができた.運動量は十分に稼げた.あと,クーラーが入っている快適なラウンジを数箇所発見できた.

6/19

 進捗報告

picoCTF2025振り返り修了

 echo valleyのwriteupをいくつか読んでみて,方針を確認することができた.しかし,現状のレベルのではこの問題のライトアップは理解できないと判断.この問題は捨てることにした.これにて,当日解けなかった問題の振り返りは完了.このプロジェクトは終了することにする.ここからは,バイナリ解析について,教科書的なものを読んで勉強して,もう少し実力をつけるようにしたい.Web問題は引き続きCTFでレベルアップを図っていく.

Linux講義出席

 1限のLinuxの講義に出席することができた.今回はLinuxの開発を取り巻く社会的背景についての話題で面白く聞けた.

卒業生と通話

 研究室を昨年卒業して外部に進学した人と久しぶりに話をすることができた.かなり元気そうだった.生活は充実しているらしい.研究室の中で流すいい感じのBGMを教えてくれた.

研究発表を聞いた

 クラスメートの研究発表を聞いた.内容については,かなり紆余曲折あったようだが,練習の時よりもかなり歯切れがよくなっていてよかったのではないかと思う.

SecRuleList

 5時間くらいコーディングに取り組み,結果として,ルールをリスト構造で持てるようになった.リストとして持つための構造体を新たに定義し,そこにルールを追記することができるようにして,最後にはそれらをまとめて解放するための機能も追加した.保持している内容をダンプするような関数も書いて,これによって,上手く機能していることを確認できた.これで,とりあえずは第1バージョンのparserということでmainブランチにマージしてしまうことにしようか.

生活面

朝5時半起床.大体5時間半睡眠.覚醒度は高め.全然疲れがなかったので,あんまり寝つきが良くなかった.日中にもう少し運動量を稼いで疲労させないといけない.

昼は塩ネギ丼を食べた.塩気が効いていて,かなりあっさりと食べることができた.

昼過ぎに散歩に行き,大学図書館の中を歩き回ることで,運動量を稼ぐことができた.

夕方に昼寝したら,かなり元気になった.

6/16

 進捗報告

Catコマンドの歴史調べ

 UnixのCatコマンドの歴史を色々と調べることができた.The Source History of Catというページに色々と書いてあった.初版のcatはPDP-7向けの初版のUNIXに載せられたもので,これは初版のUNIXがassemblerで書いてあったのでassemblerで書かれている.著者はUNIXの著者の1人であるKen Thompson.その後にSecond editionのcatがPDP11のUNIX向けで書かれたのだが,この時にファイルが渡されなかった場合に標準入力を読むという仕様が追加された.そのあとは,the seventh editionのUNIXの時に,cでの実装に書き直された.この時のオプションは-uだけだったが,のちの4BSDの時に,現在のようなオプション体系になった.1990年代に突入するとAT&Tとのライセンス問題で,BSD /Net2において多くのコードが書き直され,catコマンドも1991年にKeven Fallによって書き直された.この時のコードは多かれ少なかれ現在でも引き継がれていて,Mac OSにおいても,この時のバージョンのコードの多くが流用されているという話だった.なお,Linuxのcatについてはかなり別の系譜の話のようで,この記事では登場すらしなかった.

採点業務対応

 2時間くらいかけて,C言語講義の採点業務を片付けることができた.かなり集中して取り組んだので,割合すぐ片付いた.この手の作業量だけがひたすらに多いタイプのタスクは,タイプレッシャーをかけて一気に片づけることが肝要である.

C言語TA

 C言語のTAで,学生とC言語の練習をすることができた.今回はゲームの製作ということでそこそこの盛り上がりを見せたので良かったのではないかと思う.来週からはアルゴリズムの実装になるので,そこそこに頑張ってほしい.

生活面

 7時半起床.だいたい5時間睡眠.覚醒度自体は十分である.

 朝はフルグラを食べた.欠食を回避できて良かった.

 外が晴れていて,今日は雨も降らないようなので,朝一番で洗濯機を回した.これにより,手元に洗濯物バッファが全て掃けた.


6/15

進捗報告

近況聞いた

 親らから電話があって,それで地元の近況を知ることができた.祖母は庭仕事に際して,何らかの理由により大ジャンプを繰り出した結果,着地に失敗して足を打撲し,踵にヒビが入って2ヶ月のギブス生活を余儀なくされているらしく,その結果仕事も在宅に切り替えたが,喋り声が大きすぎるので,業務上の会話内容が近所に筒抜けになっているらしい.あと,世田谷食品はいい感じだったので,定期購入でもいいかもしれませんね,的な話をした.

picoctf2025振り返り

 1時間半くらいライトアップを読んで,SSTI2とApriti sesamoを解き直すことができた.phpファイルについては末尾に〜をつけることでコメントを含めてロードできるというところ,それから,sha1()の関数は文字列を要求していて,それ以外を渡されると警告と共にnullをreturnするという仕様を使うことが重要であった.こういう仕様の利用は流石に知っていないとできないような気もするが,勘所が掴めいれば,その場で調査して辿り着きそうな気もするな.量をこなして能力を開発していきたい.これで,あと,当日着手したものの解けなかったのは後2問.次のセッションでこのタスクとも片をつけられそう.

catコマンド勉強

 catコマンドをネタにして何か話を作ろうと思って,catのマニュアルを読むことができた.catで何かオプションを伴うことっていうのは僕のユースケースではあまりないのだが,色々用意自体はされている.bsdとcoreutilsでは結構オプションが違っているので注意する.

catコマンドコード調べ

 catコマンドのコードを読んで,動作の確認を進めることができた.550行目くらいからmainが始まって,そこから300行くらいmainが続くのがcat.cの内実なのだが,かなり色々なことをやっている.特に重要なのがinputとoutputのファイル情報をそれぞれ得るところで,inodeとかを取得して,読み書きの単位(io_blksize)を設定したりしている.それが無事にできたらようやく実際の読み書きがされるという流れ.

生活面

11時半起床.だいたい8時間睡眠.十分な覚醒度を得た.

昼飯はトルコライスを食べた.割合あっさりと食べれた.

洗濯物を回収することができた.午前の日差しのおかげで,しっかりと乾いていた.これで来週雨続きでもなんとか持ちそうだ.

夜は肉じゃがと,米,フルグラの3点セットで,バランスよく食べれた.ようやく体重が46kg台まで回復した.50kg手前くらいが,これまでの経験上安定していたラインなので,ここくらいまでの取り戻すことを当分の目標としたい.

6/14

 進捗報告

gitのbranch表示

 .bashrcを改変して,git上で,今自分がどこのブランチにいるのかをプロンプトに表示できるようにした.この設定はzshのほうでは当たり前に使っているけど,学校のbash環境ではなぜか使っていなかった.学校の環境もmacに合わせてzshにしてしまうという手もあるが,bashはbashで使い慣れたものなので,もう少し使い続けてみよう.設定をするためにはgithub上に上がっているスクリプトを使うだけで,良くて,割合簡単だった.これに伴ってプロンプトも変更して,以下のようなフォーマットになった.

 (first_rule_parser) horik@DESKTOP-4OAURST[~/develop/RouterWebShield/tools]$

実験スクリプト回収作業

 昨年の春ごろに書いていた自動化のスクリプトを回収することができた.なぜかこれらのスクリプトが色々なところに点在していて,ディレクトリを行ったり来たりして,何とか全部見つけることができたので,開発中のリポジトリのテスト用ディレクトリの放り込んでコミットすることで,事態を収拾することができた.しかし,スクリプトを読み直してみると,環境依存がかなり強いスクリプトになっていて,よその環境で使える代物になっていない.なので,設定ファイルを切り分けるとかして,なんとかまともに使えるレベルのものにしていきたい.

ランダムスタック実装修正

 2時間くらいデバッグ作業を続けて,ランダムスタックのバグを何とか直すことができた.所要時間が底を尽きた後も,場合分けせずにスタックの操作が行われていたことと,スタックトップが僕が思っていた数字より一つだけ常にずれていたことがバグの原因であった.このバグと延べ時間では6時間くらい戦っていたので,実装できてよかった.これで,もっと別の面白い作業に手を出せるし,このプログラムのゴールも見えてきたというもの.

ゲーム開発会議

 ゲーム開発会議でRirinと近況について話し合うことができた.また,ゲームについても色々と話をして,BTの作り方についても話をすることができた.色々難航してはいるが,今後もゲーム作成を頑張っていきたい.

生活面

11時起床.大体8時間睡眠.十分な覚醒度を得た.

昼はコンビニで買ってきた,メロンパンとパウチタイプのゼリーを食べて,コーヒーも飲んだ.必要なカロリーとカフェインが充填されて元気になった.

夜は,トリの照り焼きと米,フルグラの3点セットで,バランスの良い食事を摂ることができた.

昼間に学校に行ったので,これによってある程度の運動量を稼ぐことができた.

明日の午前中が晴れらしいので,これを狙って夕方に洗濯をすることができた.明日の日差しに望みをかける.

6/13

 進捗報告

英語聞き取り

 Youtube動画の英語聞き取りをやってみようと思い立って,4本くらい真面目に聞いて新しく覚えた言い回しとかメモったりとかを90分試してみることができた.基本的には旅系とか,そこら辺を中心に拾っていく予定で,楽しみを兼ねて続けていこうと思っている.

HTML&CSS本読み進めた

 大体2時間くらい読みすすめて,chapter1とchapter2を読み切ることができた.ここまででboxを組み合わせる方法を学んで,実際にブログサイトみたいなレイアウトをchapter3で作ってみようという流れ. boxの敷き詰める方法をいろいろ学ぶとかなり汎用性が高くて,この基本コンセプトを知っていれば,いくらでも応用が効きそうという印象.かなり良い構成なのではないかと思う.

近況報告

 出掛けて,最近の生活状況などについて医者と話したりした.今日は医者側が体調不良ということで休みだったので,別の人と話したのだが,今日の人は紙を出してきて,目の前でめちゃめちゃメモをとりまくってて,いかにもカウンセラ風だった.医者も様々だ.

ルールParser作成

 今日は3時間くらいコーディングをして,これによって,ルールを配置しているディレクトリからルールファイルを探してくることができるようになった.ディレクトリ操作をC言語でやることってあまりないのだが,当然,OSを作成するのに使われている言語でもあるので,そうした標準機能が提供されていて,dirent.hというヘッダファイルをインクルードすると,ディレクトリ操作用の関数が使えるようになる.これでファイルを探してくること自体には成功した.ただ,なんかか一部ルールで読み込み時にメモリに収まりきらないものがあるらしいので,エラーが出る.この部分については明日明後日で修正をかけていきたいところ.

生活面

今日は1時半くらいに目が覚めてしまったので,日中の覚醒度がずっと低いままだった.夜はひたすら寝るという基本的なルールを守っていきたい.

夜は海老カツのオーロラソースがけ.いい味だった.

昼間は市内を歩き回ったりしたので,十分な運動量を稼げた.覚醒度さえ高ければもっと楽しめたはず.


6/11

 進捗報告

parser開発

 1時間半ほどプログラムを書くことで,parserがオブジェクトを解釈して,きちんと単一のルールを保持できるようになった.中身をダンプしてくれるデバッグ用の関数を作成して,構造体の中身を確認したところ,完全に意図通りの格納になっていた.あとは,単一のルールに関しては,今やや過剰にメモリが取られているので,アロケートされているメモリ量をフィッティングする関数があれば良いと思う.それから,このルールを複数連ねてリストとして操作して使えるようにしたいところ.これについては,phaseというactionの値をみながら,やっていけばうまくいきそうだと思っている.

HTML本読み

 1時間半くらい本読みをして,HTML5&CSS3デザインブックを50ページほど読み進めることができた.Webページを作るということは,ボックスをいかにページに敷き詰めていくかということで,そのためにCSSのfloatや,ボックス化,メディアクエリなどを使っていけばよかった.レスポンシブWebデザインについてはCSSだけで,かなり対応ができそうな形だった.

Linux課題提出

 Linuxの課題に1時間ほど取り組んで提出することができた.参照局所性の内容で,キャッシュに対して何がロードされるのかということを考えて,効率について検討することができた.

生活面

 朝11時起床.大体9時間睡眠.覚醒度は高め.自律神経も安定.僕が何も考えなくてもエコシステムが勝手に全てを調整してくれることに対する信頼感を得た.

 昼は生姜焼きを食べるなどした.かなりあっさりと食べれた.

6/10

 進捗報告

進捗報告書作成

 大体2時間くらいかけて,進捗報告書を作成することができた.ブログ的なフォーマットで実装を割合詳細に説明している.今回のまでのところでルールのダンプまではできているので,これを確保済みの構造体に移していけば,単品のルールは出来上がり.これを連結したのちに,その上を操作できるようにしていく.一応,大学院生の本分は研究なので,研究上でやることが明らかになっていると,結構安定する.今後も道筋をしっかり照らしながらやっていきたい.

ゼミ参加した

 ゼミで進捗報告をすることができた.前回は時間ぎりぎりだったが,今回は少し時間に余裕をもって到着できたので良かった.なぜか司会進行において高い評価を受けた.

picoCTF 2025振り返り

 picoCTF 2025で解けなかった問題をだいたい4時間弱かけて振り返ることができた.WindowsAPIの問題はpicoではよく出題されるようになってきて,なじみがなかったのだが,Writeupをときながらfrida-toolsを振り回してみると,なんとなく動きがわかるようになって,とても面白いと思った.SSTIについては要勉強.昨日のN0PSの問題へはSSRFとかが問題になっていて,単純なSQLiやXSS以外の問題も割合多く出題される傾向にあるから,Webのセキュリティを広く勉強することが得点のために必要だと感じる.

生活面

10時半起床.だいたい7時間睡眠.十分な覚醒度を得た.

朝はフルグラを食べることができた.

昼間,研究室に向かう過程でダッシュしたので,これによって運動量を稼ぐことができた.

6/9

 進捗報告

採点業務完了

 2つ分の課題の採点を完了することができた.先々週分は課題が4つあって,大変だったのだが,本日2つ分.先週2つ分と分けてやって,なんとか終えることができた.回答不備が結構多くてフィードバッグが時間がかかるのだが,課題の内容を一度把握して仕舞えば一息でいけるので,1セッション2個くらいでまとめて片すのが良いと思う.

N0PSCTF振り返り

 N0PSCTFで解けなかったblogの解法を1時間くらいかけて理解することができた.これはSSRFの問題らしく,ブログとして表示するページをバックエンドからロードしてきているのだが,実は正規のバックエンド以外にアクセスすような入力を書くことができるという話だった.こういうのをSSRF(Server-Side Request Forgery)という.このページはhttpで始まり,backendを含むようなURLに対してcurl_requestを投げていて,この文字を作る必要があるのだが,backendをパスに含むと,backendに行ってしまうとどうにかする必要がある.そのためにbasic認証の構文を使うと良くて,http://backend@127.0.0.1:8080/みたいなことをするとbackendというユーザによって,127.0.0.1:8080/にアクセスするみたいな意味になるので,これで題意を満たせる.なお,writeupを読んで,こうしたWeb問題に関しては,まずはいろいろとfuzzyな入力をして,いかにエラー文を引き出すかというところが重要なポイントなのだろうということを学んだ.

C言語TA

 C言語のTAとして3時間程度C言語を教えることができた.今回は構造体とポインタが混在する話で,C言語学習の壁が反り立っているが,なんとかみんな頑張っている感じだった.構造体もポインタも,それが活かされるシーンがわかると使いたい気持ちになってくるはずなので,ユースケースの話を多めにしている.

parser開発

 研究室で3時間半ほどrule_parserのコードを書き足して,これによって,ルールファイルを解釈して読み取ることができるようになった.また,読み取った単語を格納する先の構造体についても整備し,この構造体の作成と廃棄をするための関数も作成することができた.これらの経験を通してcJSONの使い方もだいぶわかってきた.この進展は結構大きい.パーサの作成についてはかなり希望が見えてきた.あとはこの構造体に実際に単語類をコピーしていく部分と,ディレクトリを調べて適用すべきルールファイルを列挙し,これらを順番に処理していくこと,リスト構造として保持していくことなどを作っていけばよいと思う.

生活面

朝9時半起床.おおよそ7時間睡眠.十分な覚醒度を得た.

生ゴミを廃棄することができた.この時期は湿度が高いので,生ゴミのハンドリングをミスらないことがとても大切である.

朝はフルグラを食べた.

昼はファミマのおろしぽんずをとんかつにかける弁当を買って食べた.おろしポン酢のおかげで割とあっさり食べれた.

夜は米,鳥のたきもの,フルグラの3点セットだった.味が良かった.

6/8

 進捗報告

CTF参加

 午前中は2時間くらいCTFの問題に取り組んで,2問を追加で解くことができた.中国語圏では中国語,ロシア語圏ではロシア語で検索をかけることが東側のOSINT問題を解く上では重要かなと思う.今回のCTFで飛行機や船のトラフィックを追う練習をすることができた.また,画像中でランドマークを探すのがうまくなったと思う.

掃除

 床の掃除と水回りの掃除を30分くらいかけて丁寧に行うことができた.水道の流れが悪くなっているのを感じていたのだが,掃除をすることできちんと水が流れるようになったのでよかった.床のホコリも綺麗に払うことができた.

BT実装推進 

 BTの実装を3時間くらい進めて,乱数の生成と削除についてのアクションノードを作成することができた.これにより,スタック用オブジェクトに対して生成した乱数を追加したり,また,スタックトップを削除したりできるようになったが,どうも,これを使った条件の判定がうまくいっていないようである.原因を調べるとシーケンスノードのコードに問題があった.これを修正することでコードがとりあえず進行するようになったが,まだ結果に違和感がある.次回のセッションでは,この問題を修正していきたい.Cでは,gdbやlldbを使ってデバッグするのが板についてきたが,Processingではいまだにprintデバッグをやっている.そろそろもっと高度なデバッガほしいところ.

フィルタ交換

 シャワーのフィルターの交換に対応することができた.これで今月もきれいな水を使うことができる.フィルター交換の人曰く,もう梅雨入りが近いらしい.備えは十分にしたので,あとは洗濯物のマネジメントだけに細心の注意を払っていく.

親と電話した

 1か月半ぶりくらいに親に連絡を取ることができた.総菜セットが送られてきたので,そのお礼の電話.世田谷食品の15色セット.これで,バリエーション豊かな晩飯を準備(?)できる.それはそれとして,1時間半くらいかけて,近況を詳細に報告した.実家の近況も詳細に知ることができた.父親が52歳になったらしい.猫が7歳になったらしい.

良いコードを書く技術を読んだ

 良いコードを書く技術の最後のフレームワークのところを読み切り,読了できた.最後のフレームワークのところは全然馴染みがない分野なので,あんまり理解度が上がらなかった.それはともかくとして,この本を読んでテストとかパフォーマンスチューニングについてはセオリー通りにできていないということが分かったので,ユニットテストとか,テストの本を読んで勉強したいと思った.

Linux課題

 Linuxの課題を45分間程度取り組んで,体裁を整えることができた.途中で取得結果に不備があることが分かったので,また明日か明後日にこの値を取り直す必要があるかもしれない.空き時間を見つけて対処しよう.

ルールのパースをやりかけた

 今日もルールのパーサを作ろうとしていて,学校の環境でも開発準備を整えたりすることができた.あと,ディレクトリをproxyと分割して,それぞれにおいてMakefileを置くことにしたので,これによって,結構開発がやりやすくなった.ルールの方は,空の構造体を変える関数を書きかかっているところで,タイムオーバー.これを明日書いたら,とりあえず一列の単純なリストでルールを持ってみるか.

生活面

朝8時半起床.大体5時間半睡眠.特にパフォーマンスの低下は感じない.

珍しく朝散歩をして,これによって割と元気が出た.こっちに越してきて1年目くらいはよく朝に散歩をしていたのだけど,いつの間にかやらなくなった(昼の散歩はよくやっているが).これを機に朝の散歩を再開しても良いかもしれない.

夜は世田谷食品の中華料理を食べてみた.かなり味が良くて,パクパク食べれた.

6/7

進捗報告

CTF参加

 クラスメートと一緒にCTFに参加して4時間半ほど真面目に問題に取り組むことができた.今回のCTFは頑張れば解けるというレベルの問題になっていて,面白くやれている.明日まで続くので,明日も引き続き頑張りたい.

ルールパーサ実装

 ルールのパーサを実装するためにJSONライブラリの挙動を確かめながらコードを書き進めることができた.やっているうちにルール側のフォーマットが少し都合が悪いことがわかったので,変換器のコードを書き換えて,都合の良いJSONに変えたりした.これで,パーサは描きやすくなったと思う.ただ,若干挙動が怪しいところがあるので,明日デバッグする.うまくいけば明日リストに持ち込むことまでできると思う.

生活面

12時半起床.だいたい9時間睡眠.今日の睡眠はかなりハイクオリティな睡眠が得られた.

昼はおにぎりを2つ食べた.夕方は鮭,米,フルグラの3点セットを食べた.

6/6

 進捗報告

3分間ネットワーク読み

 大体4時間くらいかけて,HTTP&メールプロトコル基礎講座を読み終えることができた.HTTP1.1の仕様について解像度が上がったのは良い感じだった.これで3分間ネットワーキングシリーズに関しては制覇した形.読みやすいのか読みにくいのか,正直どっちでもない微妙な読み味の本というのがいまのところの印象なのだが,とりあえず一周できたところはよかったかな.

敵AIコード作成

 敵AIのコードをかなりリファクタリングすることができた.経路の計算は経路用のユーティリティクラスとして分けることにした.これによって,敵キャラのActionノード側のコードはかなりスッキリした.かなりスッキリしたところで,そこに乱数がらみのコードを追加しようと思ったのだが,乱数がツリーの中で何度も利用されている時に,下のレベルで生成した乱数によって,上のレベルの乱数が上書きされてしまう事態を避けられないということがなんとなくわかって,乱数をスタックで管理する方針に切り替えた.

生活面

10時半起床.驚きの15時間睡眠.昨日は3時間睡眠くらいで頑張っていたので,ここで負債を返した形.自律神経が整った.

昼はのり弁当を食べた.割合サラッと食べれたと思う.

夜はハンバーグとフルグラ,米の3点セット.十分なタンパク質を摂ることができた.

6/3

 進捗報告

進捗報告書作成

 先週の進捗をまとめて,進捗報告書を作成することができた.先週末のブログ作成のおかげで,こうした文章をバーッと書く能力を高めることができているので,今回の進捗報告書も割と情報量多めでかけた.作成時間はだいたい2時間くらいだ.これによって,次回やることも明確になってきたので良かった.構造化された進捗報告の作成を意識しよう.

進捗報告した

 全体で進捗報告をした.進捗報告書の構造が明らかだったので,割合スムーズに読み上げられたと思う.

採点業務

 90分かけて,課題1つ分の採点を終えることができた.割合丁寧なフィードバッグを返しているので,時間がかかるが,これによって人々が丁寧に課題に取り組んでくれるようになるように祈っている.課題はあと2つなので,毎日1つづつ返していけば間に合うだろう.

採用関連作業

 何がとは言わないが,採用関連の作業を一つ完了することができた.だいたい25分くらいで完了した.

生活面

11時30分起床.8時間睡眠.高い覚醒度を得た.

6/2

 進捗報告

採点業務

  3時間くらいつかって,課題2つ分の採点業務を終えることができた.学生の回答も様々で,摩訶不思議な回答も面白い.でも,結局は普通に正しいことを書いているレポートが一番楽なので,まじめに書いてほしい.体裁については,インデントをしろということをたくさん書いているけど,インデント自体が通じていないということがなんとなくわかってきたので,TAの時に気づくたびに指摘していく流れでやろうと思っている.

C言語TA

 今日も3時間くらい学部生とともにC言語を学ぶことができた.ポインタの話も深まってきて,メモリ構造との対応がづけが求められいる.ここら辺はどうも初学者にとっては大きな壁らしいけども,説明するとみんな意外とわかってくれているという所感を今のところ得ている.

CTF Writeup 

 昨日参加したCTFのwriteupを2時間半くらいかけて仕上げることができた.軽ーく書くつもりだったのだが,技術説明がめちゃくちゃに長くなり,結局10000文字弱の長い記事になった.構造体の説明とかをきちんとやったからだと思う.回答としては割合納得感のある解説に仕上がったと思う.満足.技術ブログの更新頻度が上がって非常に嬉しい.

生活面

12時起床.9時間睡眠.高い覚醒度を得た.

昼はそぼろ丼みたいなのを買ってきて食べた.ミニサイズだったのでさっくりと食べれた.

夜はハンバーグと米,フルグラの3点セットを食べた.きちんとした量を食べられたので良かったと思う.

ペットボトルを廃棄することができた.玄関前のゴミ袋が結構嵩張っていたので,すっきりした.

5/31

進捗報告
parserプログライング

 cJSONを試すことができた.cJSON自体は非常に良いものであり,使い方も単純で,イベント駆動のようにユーザの知らないところで処理をしてきたりもしないので,使いやすい.で,ルールに関しては,1つのディレクティブにつき,1種の構造体を当てるにことにしたので,その通りに書いて行った.ただ,JSON変換後のルールの各フィールドがいるのかいらないのか,判断がつかなかったので,本家のCRSとか,modsecのreference manualとかを見ながら,一つ一つ判断していった.今回のセッションで,代替SecRuleに関しては,扱い方の目処がついたという感じ.

外出

 休日らしく自転車を走らせて買い物に行くことができた.Type A - Type CのUSBケーブルと Type C - Type CのUSBケーブルがそれぞれ追加で1本必要だったので,ホームセンターで購入した.100円ショップにもいって,季節の品を見たりもしたが,まだ梅雨みたいな製品は出ていなかった.帰り際にアタックスにも行って,食料品を調達するなどした.

実験環境整備

 実験環境のRaspberry Piの接続が再起動後も維持されるように設定をすることができた.設定作業はトラブルシューティングの連続で全体で5時間強かけて,なんとか設定を完了した.Lanアダプタ由来の問題は,Linuxのデバイスの扱い方に起因しているようで,Linuxはdev~というデバイス名を認識した順に追加していくので,あるときdev2だったデバイスが次の起動でもdev2である保証はないということみたい.これを固定かするためには,udevルールを記載して,ネットワークデバイスが常に同じネットワークデバイスとして扱われるように設定する.ここまでできたら,再起動してルータの両側から取れることを確認する.ルーティングの永続化に関しては,/sbin/routeをつかって,行うようにすることで,両側からのルーティングの設定についても再起動後に維持されるようにできた.

本受け取り

 この前探していたHTML+CSSの本を受け取ることができた.また風の谷のナウシカの全巻セットも入手できた.

生活面
朝9時起床.だいたい6時間睡眠だが,割合高い覚醒度を得た.

夕方にのり弁を食べた.かなり力つきかけていたので,割合スッキリ食えた.

運動量はホームセンターまでのサイクリングで週末レベルの運動量を稼ぐことができた.

5/30

 進捗報告 

RDP接続方法紹介

 3時間20分くらいかけて,WindowsマシンへのRDP接続についてブログ記事を書くことができた.ずっと前から書こうとおもっていたのに書いていなかったネタで,書き始めたら3400文字くらいになって,結構長くなったが,過不足なく書けたと思う.キーボードの整合性の問題とスリープ設定の話まで行くつもりだったが,それを入れるととても長い記事になってしまうので,それについては別の記事として書くことにした.

キーマップ変更方法紹介

 さらに1時間30分かけて,キーマップの変更方法についてのブログ記事を書くことができた.RDPの話とこの話を分けたのは正解であって,それはやはり,この話も書き始めると結構な分量になったからで,これだけで1500文字くらいはあった.おそらく上の話と繋げてしまうと話が長くなりすぎて,読者が離脱してしまっていただろう.キーマップに関しはPowerPointでの画像説明なども加えて,そこそこに分かりやすく書くことができたと思う.それから1日に2記事書くことなんて,今までになかったことなので,達成感が結構ある.

rule parserライブラリ選定

 JSON形式のなんかルールみたいなものの羅列を読み込んで,ルールを示す構造体に変換していきたいので,そのためのライブラリを選んだりして,一つよさそうなのを決めることができた.組み込みとかで低リソース消費でやろうとおもったらやrapidjsonとかcjsonが有力なのだが,両方を見比べた結果cjsonのほうがとっつきやすそうだったので,とりあえずこれで進めることにした.

生活面

10時起床.だいたい8時間睡眠.高い覚醒度を得た.

夕方に1時間弱散歩をすることで,運動量を確保できた.今日は少し早いペースで歩くことを意識した.

昼は海苔弁当を食べた.割合あっさりと食べれた.

5/28

 進捗報告

BTのデザイン

 敵AIの行動パターンの一例を考え,それを実装するためのBTの構造を考えることができた.パワーポイントで50分くらいひたすらノードを並べることで,表現できた.これによって,追加で実装するべきアクションノードは乱数の生成をするためのアクションと,閾値を超えているかを判断するためのコンディション,近接攻撃くらいなものだということがわかった.ツリー自体をきちんと設計できれば,実装量はそこまで増加せずに,色々な行動を表現できるということがわかり,なかなかいい感じだ.希望が持てた.

スライド修正

 4時間弱作業して,スライドの修正作業を終えることができた.想定質問も考えたので,とりあえず資料自体の準備はこれで一旦完了.あとは,前回,時間を少し残して最後のスライドに至ったので,目安時間を現行のところに書いて,チラチラみて時間調整できるようにしたい.

発表聞いた

 クラスメートの発表をきいた.おそらく組み込み機器上で暗号化を実施するという話だったと思う.みた感じ,アイデア自体はすでにかなり試みがありそうな内容だったが,どうなのだろうか?組み込み機器担当の学生が今年は二人とも卒業してしまったので,組み込みセキュリティの話は久しぶりに聞いたかたちで,懐かしい感じがした.

binaryサイズ確認

 nginxのバイナリサイズと自分のproxyのサイズを比較して見ることができた.手元のlinux環境で,それぞれをソースコードからビルドして,ls -lでサイズを確認した.nginxの場合は,ビルドした直後で3.7MB程度で,僕のproxyは74KBだった.バイナリは変数名や関数名といったシンボル情報を落とすとサイズが大幅に減少するが,nginxの場合はstrip後のサイズが800KBであり,僕のproxyの場合は68KBであった.modsecの方がどのくらいになるのかも興味があるので,ビルドが終わり次第確認していきたい.

生活面

朝8時起床.9時間睡眠.十分な覚醒度を得た.

昼はパウチのゼリーとおにぎりを食べた.あんまり食べる時間が与えられなかったので,さっと食べれるものを選択した.案の定さらっと食べれた.

昼過ぎに散歩をして,電気電子の学科の塔の中を歩いてみた.あの塔は,物資が無造作に廊下や研究室に放置されていて,棟内も若干暗めで,どことなくインダストリアルな環境に4画面のコンピュータと殴り書きのホワイトボード.いわゆるステレオタイプなハッカーの巣窟といった様相で非常に良かった.あの塔に関してはまた行きたい.