StudyCS.log

ただの日記

2021/10/14(cpawctf)

ただの日記。

cpawctf
cpawctfに取り組んだ。
ctf(capture the flag)にはある期間のみで開催されるものと、常時取り組めるものとの二つがある。cpawctfは後者で、時間の関係で前者に参加しにくい場合や、そもそもctfに不馴れな初心者にはありがたい。
今日解いた問題はflagが黒で塗りつぶされた画像ファイルからフラグを読み取るという問題で、中身の諸ファイルを見ながら適切なソフトウェアで開くと答えにたどり着けた。
このワンギミックある感じが面白い感じである。

インスタントコーヒー
インスタントのコーヒーって酸化してて不味いイメージがあったのだが、湯に溶かすタイプを購入してみたところ普通にうまくて感動した。たしかblack in boxという製品名だったと記憶しているが、これは渋味が全然なくて飲みやすいですね。

2021/10/13(わさびぐりとら)

ただの日記。
 
SF名作
 昨年度に流行していたSF作品、三体を読み始めた。まだ1章を読んだだけなので感想は差し控える。
 内容以外の点として、文体は比較的読みやすいと思う。SF作品の文体といえば、奇妙な概念や凝った比喩が大量に出現して、毎回イメージに手間取るのが常だがこの作品は普通にスラスラと読みながらイメージできるレベルにとどまっている。とはいえ色々な概念が出てきてはいるので、作者の文章力の高さが効いているということなのだろう。
 
セキュリティ勉強進んでない
 講義の準備と課題の回答にかかる時間、無気力で死んでる時間の2つでほとんど24時間が経過してしまう。本来セキュリティ勉強のプライオリティは高いはずなので、もっと一日のうちの早い時間をこれのために当てることが重要だろうと実感。どうも空き時間というのは一日の終わりに集中するもので、今まではそこでセキュリティと数学の勉強時間を確保していたが、一日の終わりは疲労で勉強どころではないのだ。講義で頭がつかれるというよりは、対面講義に切り替えたことによる対人コミュニケーションの増加が疲労度を上げているのだと思う。
 
GT入門
 GT(Green Triangle)はヨーヨのストリングトリックではよく見る形で、〜グリーントライアングル、あるいは〜GTという名前のトリックの場合、いろいろな変形を経た後、最終的にGTの形に落ち着くという流れになっている。
 妙に複雑なイメージがあったので今まで練習してこなかったのだが、ふと見つけたワサビGTがかっこよかったので練習してみることにした。わさびGTは入門的なスラックトリックの一つで、たわませてつくった輪の中にヨーヨーを投げ込んで最終的にGTの形に持っていく。
 実際に練習をしてみると意外と簡単に習得できた。練習時間はおそらく1時間弱だろう。技量はそこまでいらないようだ。他にスナップGTも習得してみたが、こちらも意外と簡単に習得でき、構造さえわかってしまえば簡単に習得できるのがGTであるという所感を得た。もちろんスラックの要素がたくさん入る場合には技量が求められるのだが。
 ところでGTの発展先にはどのようなものがあるのだろうか。最終的にGTに落ち着いた後、どのようにGTを処理するかが問題になるだろう。
 例えばコンボトリックを考えるときに重要になるのが技の連続性である。技の連続性を確保するためには、ある技の終了地点、あるいは途中のどこかの形が次のトリックの開始地点になっている必要がある。技の連続性を保ちやすい形としてはフーディーニマウントや1.5トラピーズは典型的かつ理想的な形であろうと言えるだろう。これらに対してGTというのはどうだろうか。ストリングにストリング巻き付いているGTのなかでヨーヨーを自在に移動させるのは難しいと思われるので、結局GTからコンボを続けようとするならスラックトリックを何某か使って無理やりレール系に持っていくしかないような気もする。
 と初心者が考えてみたが、基本的な問題なので既にいくつかの定石が確立されているんだろう。

 

2021/10/10,11(学び直し)

ただの日記。
 
線形代数のやりなおし
 ベクトル解析をしたり、画像処理を行ったりするときに線形代数の知識を前提として話を進めることがある。しかし、線形代数をあまり体系的に振り返りながら進めてこなかったので定理や公式の存在を認知こそしているものの、その数学的なイメージや背景、つながりなどはあまり理解していなかったりする。このままではより高次元な話をするときに、足元で躓きそうだ。
 ところで、大学に入って1年半ほど。ようやく一般教養の単位も取り終えて、すこし手が空いている時期である。この時期を利用して、きちんと線形代数のイメージを固めてみようと試みている。頭からやり直しているが、部分的には理解している、という部分も多いのでそこまで苦にはなっていない。驚くのは序盤で紹介されているにもかかわらず、全く理解していない概念があったりすることだ。例えば”体”なんかは言葉だけ走っているものの、その実はよくわかっていなかったりする。いま現時点での認識としては、何かのベクトル空間が属することができる空間(?)みたいなイメージではあるのだが、よくわからない。勉強が進んできたらわかるかもしれない。
 
画像処理の演習
 画像処理の演習講義に行ってきた。講義開始時にいくつかの小課題が与えられ、講義時間内でどれだけ完成させるかで成績が決まる。講義室の慣れない環境(単にデバイスが違うということだけでなく、普段あまり馴染みのないソフトウェアを使う)ということもあり、90分の制限時間は非常に短く感じた。というか何よりもメンタルに良くない。後半のストレス値はなかなかのものだった。
 まぁこれ15回も繰り返したら、ストレスのかかった状態で手を動かす能力はかなり向上しそうなもんだ。
 
Java入門2
 先日Javaに入門してから約1週間。ようやくクラスを使ってオブジェクト指向プログラミングっぽいことをする段に入った。普段書いている言語がCであることもあって、オブジェクト指向には馴染みがなかったが、pythonで少し練習を積んだおかげでスムーズに入門できた。とはいえ、いまだにJavaに対する好感度はあまり高くない。クラスをいちいち定義しなくちゃならないのも、メソッド名が長いのも、スコープを短くするための文法があるのも、大規模なソフトウェアを開発する際には威力発するのであろうが、どちらかというとコード片を書くことが多いので堅苦しさのほうが印象として先行してしまうな。

 

2021/10/7(コーディングの練習)

ただの日記。
 
コーディングの練習
 プログラミング関連の演習では、時間内に完成したプログラムの数が成績に直接に影響する。そのため、限られた時間と制限時間による切迫感の中ですばやくコーディングするためのコーディングスキルと強靭なメンタルが肝要である。こういった練習をするのに競技プログラミングはうってつけである。競技プログラミングの問題は難易度が様々で適切な難易度が選択できるし、Atcoderのバーチャルコンテスト機能を利用すれば制限時間のなかで急いで実装する練習も積める。
 ということで、今日は久々にAtcoderにログインを果たし、競技プログラミング用のディレクトリも作成し、気持ちを新たにしたところである。毎日固定で時間を確保して頑張っていこう。あんまりリアルタイムのコンテストには参加していないので、いまだに灰色コーダなのだが、徐々にレートも上げていきたいところだ。
 
 人工知能に関する講義を取った。今日は第一回なので毎度のごとく歴史回(講義にかかわらずコンピュータ・サイエンスの分野では、講座第一回や教科書第一章は歴史回にするのが通例である。)。記号で世界を表現しようという世界観から、曖昧さを許容する世界にシフトしていき、そのうち深層学習があらわれて、とヒートアップしてき、自動運転技術への展望などで良い雰囲気になった。おお、この分野は未来を作ってる感がある!と感極まったところで1990年代、人工知能冬の時代を振り返るトピックに。あ、ぼくはこのぶんやのけんきゅうはやめておくことにします。はい。
 
教科書の主題を省略するな
 もうまただよ。また大学生協だよ。大学生協が教科書販売の際に主題を略して副題だけリストに載せたりするものだから、僕の求めてる教科書がリストに乗っていることを理解できず、何度も教科書購入のために大学に出向く羽目になった。某英語資格のために割高の情報商材を売りつけた件も然り、バイトのふざけた接客態度も然り、毎回生協さんの適当な仕事には感激させられますよ。全く。
 
早起きしたい
 書くべきコードもたくさんあるし、読むべき書籍もたくさんあるし、出かけなきゃいけない場所もたくさんあります。夜はこれ以上時間割けませんから、結局早起きするしかないんですね。ただ寝付きが悪いんですね。困るんですね。なんとかする方法を模索しています。カフェインも門限を定めてるし、寝る前は極力スクリーンを見ないように気をつけて入るんですけど、なかなかうまくいかないですね。

 

2021/10/6(ウエーバーフェヒナーの法則)

ただの日記。なんか今日とても疲れている。
 
UIを設計するために
 ヒューマンインタフェースの講義を受けることになった。UI設計とかのセンスが欠如しているので、この手の話には相当苦手意識があった。ただ教科書を見てみると結構数式が並んでる。なるほど人間の特性を調べて法則を絡めて設計しとけば僕でもそれなりのUIが設計できるのかもしれない。素晴らしい!この講義に突き進むぞ!!とりあえずウエーバーフェヒナーの法則。
 
数学関連
 ラプラス変換フーリエ解析の教科書を開いたら、前提知識のなかに偏微分方程式と重積分が含まれていた。前期に真面目に解析を勉強しなかったつけ払をするときが来たようだ(さっそく)。さて、解析の勉強をはじめよう。(なおベクトル解析)
 
読書
 オードリー・タンと52ヘルツのクジラたちを読み終えた。前者に関して言えば、政治の透明性や距離感を改善をする必要性を強く感じた。後者は重いテーマを扱ってるにもかかわらず毒気のない文体で読みやすかった。終わり方もきれいでよかった。読書メータで感想を書いたのでここでは多くは書かない。

2021/10/5(ネットワークわすれる)

ただの日記。
 
ネットワークは他の科目と合わせましょう
 なんだかんだで毎期毎期、何かしらの手段でネットワークを学び直している。去年の末は易しめの入門書で学んだ気がするし、今年度のはじめくらいはTryhackmeでネットワークのコースを一周した。にもかかわらず忘れる。とにかく2,3ヶ月くらい経つと綺麗サッパリ忘れている。プロトコルの名前とか、OSI参照モデルTCP/IPの各層の役割とか。POPとかSMTPとかIMAP4とかなにそれ?って毎回新鮮な気持ちで思いつつ、過去ノートに書かれた自筆の"POP","SMTP","IMAP4"を見て震えている。このノート書いたのはきっと僕じゃない、僕に似た別人に違いない。
 冗談はさておき、やはりネットワークはほか分野と並列して学ぶのが得策だろうと思う。並列させる分野としてはWebプログラミングとか、ネットワーク・セキュリティあたりだろうか。ネットワークの本とかにしても、ひたすら概念と技術の概要の羅列になりがちで、納得感がないのが問題だと思う。(最近ソースコードで体感するネットワークとかそういう名前の書籍もあるようだ。どうなんだろうか。興味はある)並列科目でソースを書いたり、セキュリティ関連の勉強でTCPストリームを作ったりして眼の前で何かが起こって納得感を持てれば知識も定着するのではないだろうか。僕自身にしてみても、プロトコルの名前を忘れるくせにNmapのオプションは覚えてるものだから、やっぱりそういうものなんだろう。
 
 昔からUS配列のキーボードを使っていてそれに慣れ親しんでいるので、突然日本語配列のキーボードを使うと変なところを押してしまう。これが普段の利用シーンなら多少のフラストレーションが発生する程度で大した問題にならないのだが、学校の演習講義の場合だと時間制限も相まってとにかく焦る。また、学校で指定されているscientific linuxIMEはよくバグる(仮想環境とibusの相性が悪いのか。単にibusが悪いのか。)。過去には使い慣れていない配列ゆえに言語切り替えで間違ったボタンを押し、演習時間中にIMEがバグった経験があり、それ以来日本語キーボードを打つのが怖くなってしまった。日本語配列恐怖症である。
 今までは演習がオンライン講義だったから良かったが、来週から対面での演習講義が始まる。もう恐怖で仕方がない。救いなのは演習講義の片方はWindowsで行われることか。windowsGUIがちょくちょくバグったり直ぐが、少なくともIMEがバグって入力不可能になった経験はない。