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時間睡眠.覚醒度自体は十分である.

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

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