この素晴らしい世界に変革を!

とある物忘れの激しい高専生による備忘録

高専カンファレンスART in 明石 参加記

はじめに

みなさん、今回はお久しぶりでもないですね。ヤマゲンです。今回は明石工業高等専門学校で行われた、高専カンファレンスART in 明石に参加、登壇させていただいたので、その参加記を記せたらなと思います。

カンファに行った経緯

高専カンファレンス自体は、以前行った高専カンファレンス in 西京(記事はこちら)に続いて二回目だったので、特に抵抗なく、スルッと参加を決めました。まあそんなに遠くなかった(当社比)ので、小馴れた手付きで交通手段とか宿を確保して割といい感じのコンディションで臨めたと思います。ちょっとした旅行は慣れたものですね。お金と時間さえあればもう割とどこでも生きていける気がします。

カンファレンス

明石高専に着くまで

その日は三宮近くのカプセルホテルを取って宿泊していたのですが、早朝に夜行で来ていたオタクたちに呼ばれてガストに行ったりゲーセンに行ったりしました。このとき初めてmaimaiをやったのですが、これがまたとても楽しくて、なんか割とハマってしまいました。帰っても時間が空いたらやりに行きたいと思います。

途中で僕の高専の後輩と合流したりいろいろあって、なんとか明石高専にたどり着いたわけです。

明石高専についてから

何気に外部の高専に行くのは宇部高専に続いて2校目でなかなか比較がしづらいですが、明石高専はかなり平地にあるなっていうのが第一印象でした。他の高専の方々も言っていましたが、高専の校舎は山の上に建つ傾向がある(当社調べ)ので少し珍しい高専だと思います。また、敷地面積は国立高専の中で一番狭いみたいですね。受付を済ませるとかわいいシールと名札を渡されました。このシールはいずれどこかに貼ろうと思います。席についたところで前回の記事で書いた、通称オタクセットを広げ、やりきった顔をしていました。

始まるカンファレンス

結構キツキツスケジュールだったので、受付済ませて席ついてTwitter開いていたらすぐにオープニングが始まりました。まあ他の方々の発表については書いてたらキリが無いので書かないようにしようと思います。みなさん高専カンファレンスならではの個性的な発表をされていて、勉強になったり、ときにはくだらないものもあったりと、とても楽しく聞かせてもらいました。僕の発表は割と早めだったのですが、僕の前の人がまあいい感じに笑いを取る発表をするので、とても不安でした。いつものことですが、緊張すると腹に来るのがなかなかツライところでありますが、とにかく発表しました。

登壇

まあいつものように自己紹介をし、夏休みの思い出を愉快に(?)語りました。5分のLTで、前回の反省を踏まえて相当巻きで喋ったのですが、これが裏目に出て、時間が余ってしまいました。前までの人たちは足りないくらい喋っていたので、とてもつらかったのですが、適当に質疑応答を取ったら、心優しき友人が質問を投げてくれてまじで助かりました。ありがとう。

懇親会やら二次会やら

カンファも無事終わり、いろんな方々と懇親会でたくさん話すことができました。こんな機会も高専カンファレンスならではの、とても貴重な時間だったので噛みしめるようにいろんな人に名刺を渡し回っていました。意外と僕のことを知っていただけているようだったのでちょっと感動しちゃいました。もっと頑張らなくてはですね。

おわりに

今回とても勉強になったのはそうなのですが、とても和気あいあいとした良いカンファレンスでした。今度は僕の番だなと思いながら参加していたのですが、かなりいい会だったので正直ちょっと焦りが出てきてます。焦っても仕方ないのでマイペースでのんびり計画中の高専カンファレンス in 名古屋(仮)を進めていきたいと思います。ちょっとした宣伝もできたので、ここから本腰入れて頑張るぞ!!!!!プロコンの方ももちろんがんばりますのでプロコン参加する方々、会場でお会いしましょう!それではみなさんお疲れ様でした。

トラックボールマウスを買った話

はじめに

みなさんお久しぶりです。ヤマゲンです。今回はLogicoolのSW-M570を購入したのでそれについて所感を述べたいと思います。

感想

なぜ買ったか

トラックボールマウスの存在自体は結構前から知っていて、同級生でも使っている人はいるし、この前のインターンでも何人か使っている人は見かけました。そもそもあまりMacでマウスを使うことがなくなってきていたので(トラックパッドが優秀なため)あまり心がなびかなかったのですが、外付けキーボードを使うときにPC機体依存のトラックパッドを使うのがめんどくさくなったりしたので、マウスが欲しいなあと思っていので、なんとなくポチってみました。 上位互換のM570tもあったのですが、金欠でケチっちゃいました。あんまり性能に差はなさそう(?)だったのでまあいいかなと。

開封

f:id:ymgn_htn:20180915010904j:plain
着弾しました

まあいつものように、開け方のわからない箱をこじ開けて中身を出してみました。最初に思ったのは、「でかいな」でした。

使ってみた

これでオタクマウス(トラックボールマウス)とオタクキーボード(HHKB)が揃ったので、とりあえず並べて写真を撮ってみました。

f:id:ymgn_htn:20180915010916j:plain
オタクセット
とりあえず使ってみた感想は、「腕が疲れる」でした。今までとは全く異なる操作感の入力デバイスに戸惑いを隠せず、しばらく、「これは失敗だったか...」と思っていましたが、数時間使ったら慣れました。これが人類の進化とかいうやつですね。すごいです。

まとめ

初めてのトラックボールマウスでしたが、なかなか楽な気がします。今まで外付けのキーボードを使う時、なかなかつらかったので、今回はいい買い物をしました。細かい作業をたくさんするタイプではないですが、マウスが必要な場面は多々あるので、臨機応変に使っていきたいと思います。

ぼくとOS開発とセキュリティキャンプ

はじめに

みなさんこんにちわ。ヤマゲンです。今回はセキュリティキャンプに行ってきたのでそれについて感想をつらつら書いていこうと思います。最後に書くと忘れそうなので、先に書いておきますが、セキュリティキャンプについて聞きたいことがある人は是非聞いてください。答えられることは答えます。

セキュリティキャンプってなんぞや

セキュリティキャンプについてはいろんな方がブログで紹介していたので書くまでもないかもしれませんが一応書いておきます。

セキュリティ・キャンプとは

セキュリティ・キャンプとは、日本における将来の高度IT人材となり得る優れた人材の発掘と育成を目的とした独立行政法人情報処理推進機構(IPA)の事業の一つです。 現代においては、情報セキュリティの脅威は高まる一方です。 本事業では、セキュリティ分野に興味を持ち、将来同分野で活躍したいという意志をもった若者に対して、高度な情報セキュリティ技術の習得機会を提供しています。また、モラルや法律遵守の意識、セキュリティ意識、職業意識、自立的な学習意識についても向上のための機会を提供しています。 本事業は、2004年度のスタート以来、2017年度のセキュリティ・キャンプまでで計663名の将来が有望なIT人材を輩出しています。セキュリティ業界はもとより各方面から、高度なIT人材育成に有益なイベントとして高く評価されています。 https://www.ipa.go.jp/jinzai/camp/2018/zenkoku2018_about.html

ふむふむなるほど。よくわからないですが、なんかすごそうです。

まあ簡単に言えば国が支援してるハッカー養成キャンプってとこでしょうか。まあこれも応募とかいろいろしないといけないんですけど、選ばれたので行ってきました。

行く前にしたこと

ぼくのところでは、自分のやりたいことに向かって事前学習を各々進めていくという感じで、僕は30日でできる自作OS入門という本を読みました。それについては別記事で書いてるのでそれを参照してください。まあこんな感じで、いろんなことしながらやっていたので精神が悲鳴を上げました大変でした。そしてバタバタと5日分の着替えを買い揃えて東京に向かったわけです。

行ってからしたこと

どうやって書こうか迷いましたが、記憶が曖昧なので、何日目とか書くのはやめて、まとめて書こうと思います。

今回僕はYトラックのOS開発ゼミ:フルスクラッチOSを作ろう に参加しました。僕はOS開発はおろか、低レイヤのことすら全然やったことがなかったので、とりあえず、30日OS本で作ったはりぼてOSを拡張しようという目標を立てて実際に行いました。具体的には、ファイル操作系のコマンドを実装しました。ここで細かく書くべきなのかは迷うところなのですが、まあ何をやったのかくらいは簡単に書いていこうかと思います

全体講義

初日は専門講義はなく、全体で受ける講義やグループワークを行いました。全体講義ではセキュリティの人的影響的なことと、OSCに参加しよう!ということと、セキュリティに関する法律のお話などを聞きました。ここくらいは結構大衆向けというか、かなり一般化された講義に感じました。ここのお話は全然セキュリティの知識がない僕でも理解できたので、いつか内容を噛み砕いて部活とかでアウトプットしたいなと思います。

グループワーク

グループワークではセキュリティ・キャンプ終了後、何をしたいか。のようなことを全日通して班の人たちと喋ったり講師、チューターの方や企業の方から話を聞いたりして、考えていきました。これについては最後に書こうかと思います。

専門講義

ぼくは集中開発コースだったので、2〜4日目はずっとPCとにらめっこして開発していました。ここでは2日目から、自分のプログラミングスキルがいかに足らないか、ということを叩きつけられました。言い訳なんかしたくありませんが、プログラミングを興味を持ってはじめてからおそらく1年半くらいですが、それなりにたくさん経験を積んできていたと思っていたので、それなりにショックは大きかったです。そのときから、自分はクソ雑魚なのだからもうプライドとかそういうものは捨ててしまおう。と思いました。自分から質問することや話しかけることはとても苦手で、なかなか積極的にはできませんでしたが、聞けるタイミングにはできるだけたくさん教えてもらうようにしていました。本当に迷惑をかけたと思います。ごめんなさい。しかしとてもいい経験になりました。こんな変な経験をここで積むのもおかしな話ですが、僕はいつでもおかしな人間だった気がするので仕方がないと思います。反省してます。

さて、自分が何をしたかというと、まずははりぼてOSにrmの実装をしようと思いました。rmといえばファイルの削除ですよね。これははりぼてOSにはなかったコマンドだったので自分で実装しようと思いました。本当だったら事前にやっておきたかったのですが、いろいろと逃げ回った結果当日から実装していくことになりました。最初はファイルのところを全部0で埋めればいいじゃん。とか思ってたのですが、そんな簡単な話ではなかったので、とりあえず最初はFATの仕様から勉強しました。わかってしまえば意外と簡単で、ファイルネームの先頭を0xe5にするとかそんな感じで実装しました。これでコマンドの実装は完了です。今までは写経しかやっていなかったので、自分で考えて動いたコードというのはとても嬉しいものがありました。(まあ他のところでもこういったことはやっていたのですが、いつでもこの感動は大きなものです。)

続いてmvの実装です。mvといえばファイルのディレクトリ移動なのですが、ディレクトリはまだなかったので、とりあえず名前の変更だけおこないました。まあ言うのは簡単なのですが、ここで意外と結構つまづきました。引数(?)を2つ取るというのが結構めんどくさい作業で、いや、実は難しくもなんともない作業なのですが、知識が足りない僕はこれをfor分でぶん回して切り分けるという荒業で実装しました。これに関しては後ほど先生から便利ツールを教えてもらうのですが、これは一つ、自分の力と頭の足りなさを悔やむ結果となりました。まあ、いい勉強です。

2日目はこれくらいだったと思います。

次はmkdirの実装です。これはディレクトリを作るという操作なのですが、これは意外とすぐできた気がします。というのも、先生が持ってきてくださった本にいろいろ書いてあったので、理論はすぐ理解できました。あとはやるだけです。まあだいたいそうなのですが、やることはわかっていても実装できないという事案が多発して、まあこれは誰でも悩む壁ではあるのだろうと思いますが、今回は人生で最もそのことについて悩まされたと思います。どれだけ悩んだかはちょっと忘れちゃったんですけど、実際に自分の作ったディレクトリがdirコマンドででてきたときはかなり感動しました。消した時もそうだったんですけど、この辺の操作は感動が半端ないです。やっぱり目に見える成果というものはとてもいいですね。

その次はddirというコマンドを作りました。これ、実際はdirコマンドの機能の一つなのですが、引数で場合分けしないといけなかったので、面倒だなと思って別コマンドにしました。特に支障はなかったのでわけてよかったと思います。これはサブディレクトリ、つまりmkdirで作ったディレクトリの中身を見るコマンドです。これの実装もだいたいやることはわかっていました。確かこれもシュッとできた気がします(あんまり覚えてない)まあ作ったディレクトリには"."と".."しか入ってないのですが、出てきたときは結構嬉しかったです。mkdirもうまくいってるってことですしね。

あ、そうでした。touchコマンドも作りました。これはファイルを作るというコマンドなのですが、やったことは基本的にはmkdirと同じだったので、そんなに引っかかることもなくできました。先生には「全然報告してくれないよね」と言われてしまいました。すみません...(タイミングを伺っていたのです...)

これで確か3日目は終了です。4日目は成果報告もあったため、がっつりできる時間は午前中と飯食った後くらいまでだったのでだんだん着地地点が見えてきた感じがしました。

ということで次にやったことはmkdirの改良です。今のままではまだルートディレクトリ直下にしか作れなかったので、作ったディレクトリの中に作ってやろうという感じです。これは想像以上に難しい、というか、わかりづらいところでした。まずは"/"で名前をわけて、一つひとつディレクトリがあるかを探して、最後に来る名前のディレクトリを一つ前のディレクトリに作るという動作です。まあこれも言うのは簡単ですね。ところが、4日目はこれにほとんど時間を食われました。すべてに苦労したのですが、一番時間がかかったのはやはりディレクトリ名を分けるところだと思います。今、自分が何をしてるのかさえ全然見通せなくなってしまい、かなり助け船を出してもらいました。また、Linux開発者の半田先生にも助けていただき、つくづく、自分の理解の足らなさを痛感しました。結局動くコードを作れたのですが、このままでは作ったディレクトリの中身を見ることができません。

ということで最後にddirの改良を試みました。ここでも半田先生につきっきりで実装を手伝っていただき、足らない頭をぐるぐる回し、がんばっていたのですが、その時すでに相当混乱していたので、とても迷惑をかけました...結局、mkdirで作られていることは確認できたのですが、その中身までをみることができませんでした。また、時間があるときに実装していきたいと思います。

その後は成果発表をYトラック内で行いました。Yトラックではベアメタル、Cコンパイラ、そして、OS開発があったのですが、どこも全然違うことをしていてとても興味深かったです。他の人はすごいことを発表していて理解するのが難しかったですが、自分は勢いだけで発表していた気がします。ということで、これで専門講義は終了となりました。最後にお菓子をたくさん食べれたので嬉しかったですが、他の先生方とももっとお話しておけばよかったなどと思っています。

まとめみたいな

最後の方は、ほとんどグループワークで、セキュリティ・キャンプが終わったらどんなことをしたいかなどをアンケートに書き込みました。全文載せるのは恥ずかしいので要所をまとめると、いろいろコンテストに出て勉強会に参加する、もしくは開催するといったことを書きました。確かに今回はつらく苦しい場面も多くありました。しかし、これからもっと強くなれる!むしろアド!みたいな考え方になってきて、もっと精進しようという気分になりました。いろんな方が仰っていましたが、セキュリティキャンプはスタートだということを実感しました。まあ他の方がどうかは知りませんが、セキュリティキャンプをきっかけに低レイヤに興味を持ったと言っても過言ではありませんし、なにより、自分自身の技術の高まりを感じました。他の人から見たら些細な進歩かもしれませんが、意外とこの1歩2歩が大事だったりするのです。今まで高レイヤしか知らなかった人間が低レイヤに触れるというきっかけはそうはありません。その貴重な機会となったと考えると良さそうです。これを継続していくことに意味があるとたくさんの方は言われます。まさにその通りだと思います。しかし興味は移り変わるもので、やりたいことはたくさんあります。しかし、今回学んだことは、ただ単純にOSだけの知見ではなく、システム全体、プログラミング全体に関わる大きな知見になったと思います。これを多くの場所でアウトプットし、自分を高めながら、後に続く人たちを出していけたらなと思います。

長くなりましたが、こんな感じです。ただやったことを列挙しただけなので、こんなの読めねえよって方は直接聞いていただければオタク特有の早口で説明します。

最後になりましたが、今回お世話になった講師の内田先生、半田先生、チューターのひばりさんを始め、多くの方に感謝したいと思います。ありがとうございました。これからも精進していきますので今後もよろしくおねがいします。

30日でできるOS自作入門を読了しました

はじめに

みなさん、なんだかお久しぶりですね。ヤマゲンです。今回はだいぶ前に記事に書いた『30日でできるOS自作入門』を読了しましたので、まとめながら自分の理解度を測って、まああとは適当な所感といいますか、感想を述べられたらいいなと思います。寝起きなので拙い文になったら申し訳ないです。OSを作ってみたいと思う人の参考になったら一番ですが、なんとなくセキュリティ・キャンプ前の自分の状態を可視化できるようにしておきたいと思ったので書きます。ということで、割と自己満足な記事になりそうですが、夏休みでめちゃくちゃ時間があってなにかしないとだめになりそうって人は読んできただけると幸いです。

まとめ

正直この本の内容について理解してるとは言い難いです。まあそりゃCはそれなりに書いたり読んだりしてるんですけど、言うなればポインタ天国ですね。OSを作る上で大事になってくるのはメモリの操作だと思います。まあ実際そうなんだと思うんですけど、ポインタについての理解、または構造体についての知識に暗いと、割と辛い戦いになります。まあ30日なんて言ってますが、前記事を書いたときの日付見てもらうとわかると思うんですけど、かなり時間経ってますね。もう30日なんてかわいいもんじゃありません。まあここには僕の集中力(今これだけの記事を書いても切れるような貧弱なもの)も関係してくるのですが、Cやアセンブリに慣れていない僕にとっては長い30日となりました。まあだからと言ってCが嫌いになったとか、低レイヤが嫌いになったとか、そんなことはなくむしろ逆に、これからどうやって拡張していこうかという前向きな気持ちのほうが強いです。ただ、もう何回か30日を繰り返す必要がありそうですが(笑)

なんだか感想みたいになってきてしまったのでとりあえずまとめをつらつらと書いていきたいと思います。まずアセンブラですかね。これについては正直最後までよくわかってないんですよね。ここに関する理解が曖昧だったから結構キツかったってのが大きいと思います。これから始める人はじっくりアセンブラのところを読んでおくことをおすすめします。Makefileに関しては読む必要があったのでだいたい読めるんですけど、書けません。まあ正直ここはなんとかなるんじゃないかって思ってます。

あと、戸惑ったのはBIOSですかね。BIOSというと、自作PCを組んだときの、OSが立ち上がる前の状態だとかそういったことを指していたので、こんがらがりました。今もよくわかってません。

あとは割り込みとかですかね。割り込みの処理というか、概念自体はマイコン制御などで使っていたのでなんとかわかってました。まあ解説も丁寧だったのでここはわかりました。これでキーボードやらマウスやらが使えるようになるわけですね。

そうすると次はスタックですね。この本ではFIFOが使われていました。まあここは仮にも基本情報技術者ですので、わかりました。まあこれがたくさん出てきたりするとごちゃごちゃしてきて全くわからないわけですが。仕組みを理解してるだけでは使えないのかという、なんとも悲しい無力感がありますね。

あとはその後はメモリ管理ですかね。ここもだんだんわからなくなってくるところですね。僕は学校で割とみっちりイメージを植え付けられたので、ほとんどイメージだけでついていきました。ただここらへんになってくると複雑な構造体が絡んでくるので一気に見るとよくわからないです。僕は寝たら記憶が飛んでしまうので、構造体なんかが使われていても最後の方は全然なにがなんだか覚えてなかったです。

次にくるのがウィンドウですね。この章こそ構造体のオンパレードですね。shtとか、まあ概念はさほど難しくないんですけど、コードに起こすとまるでわけがわかりません。しかもこれはコンソールだとかアプリだとかで最後の最後まで絡んできます。ここはしっかり抑えておかないとなあと思います。主にやることはレイヤの順番だとか、ウィンドウを動かした時の処理だとかですかね。これだけでも結構たいへんです。途中のリフレッシュなんかも最後まで付き合うわけですが、ここも重要ですね。

タイマなんかは、それこそPICで触ったので慣れ親しんでるつもりです。ただその後の高速化だとかは難しかったですね。ここを見直せば早くなるからこことここを改良して...っていう感じで進んでいくんですけど、とてもペースが早いです(笑)それほど作者さんにとって楽しい部分だということはわかるんですが、ここあたりの処理の改善で考えることを諦めました。これはいろいろ意見あるとおもうんですけど、本を読んでていつも思うのは、これをいざ自分が実装しようと思ったらできるか、ってことなんですよね。この本でもいろいろ考えてましたが、ここはこんだけ知識と経験がないと絶対わからないなと思いました。まあその後からは吹っ切れたのですが、やっぱりこの辺りは読んでてつらかったなと思います。

さて、その後は山場のマルチタスクですね。ここは非常につらかった!(笑)頭が悪いので文字の説明でもコードの説明でも難解で、ずっとにらめっこしてた気がします。しかも具体的な機能はタイマくらいしかなかったので想像力も働きません。ここではもうコードと概念で理解するしかないというなかなか僕にはきついところでした。タスクの切り替えやら優先順位なんかは実際にアプリが動くまではよくわからない概念だったので読んでてもイメージがつかめずなかなか捉えられませんでした。

そしてようやくコンソールの実装になるわけですね。だんだん難しくなってくるわけですが、ここも処理がたくさんあって難しいです。またコンソールはここから最後までガッツリ使うので、最後の方はかなり忘れててつらかったです。一つ一つの処理は特に難しくはないのですが、文量でやられそうになりますね。

次からはコマンドの実装です。ここ辺りはやってて楽しかったです。低レイヤのつらいところは、目に見えない、ということじゃないでしょうか。高レイヤばかりやってた自分にとってはそうでした。ここでついにOSと対話できるようになるわけですね。今までは一方的に渡されていたのでちょっとうれしいですね。さて、いろいろコマンドを実装したわけですが、まあここは拡張性を感じられるところでした。今までは、確かに強い人から見れば、ここはもっとこうできる、みたいなものがあるかもしれませんが、本当の初心者であるぼくは正直言われるがままつくってました。ただコマンドでついに、自分でも頑張れば他のコマンドも実装できそうと思ったわけですね。

さて、この本も佳境を迎えてついにアプリの実装です。アプリが動く仕組みなんかがしれて結構面白いところでした。今までもそうでしたが、結構力技が多くてようやくちょっと親近感が湧きました。まあ結局最後までアプリを作ることになるんですけど、ようやく、ウィンドウやらタスクやらの恩恵が感じられてそこでようやく理解が追いつきました。まあここも開始何バイトみたいなものが必要で得意ではないところではないですが、割と慣れてきていたのでつらくはなかったです。

APIもありました。APIの実装はなかなか難しい概念で、説明でも「これでいいのです」みたい感じのことが多くて、うーんという感じです。ここはたくさん見直す必要がありそうです。ただOSを使う人間としては、APIの実装ってめちゃくちゃ大事な部分なので、いろいろ充実させてみたいという気分でもあります。やれることの幅が広がるので、もっと詰めたいなとおもいます。ここは途中でレジスタだとかが絡んでくるのですが、そこは例によってよくわかってません。

あとはセキュリティですね。ここは今回のセキュリティ・キャンプともつながるところで、OS開発を通して安全なソフトウェアを開発するという面で見ると大事な部分ですね。といってもやってることはCPUの設定に任せてるって感じもありますが、ここはアセンブラがたくさん出てきて大変でした。

まあざっくり言えばこれくらいですかね。あとはアプリ開発での作法だとか手法だとかだった気がするのでちょっとレイヤが違う気がします。というわけでまあ機会があれば別のときにでも。

と、まあ長々とまとめを書いてみたわけですが、見返すととんでもない量になってますね。あとは簡単に感想書いて締めたいと思います。

感想

まあ感想と言ってもほとんどは前に書いたのでちょっとだけ。

正直僕はこの本を買った時、読み切ることはなさそうだなと思ってました。そりゃそうです。一瞬で集中力が切れて、普通の本でも何週間もかかってようやく読み切るような人間がこんなに分厚い(最後見たら700ページ位ありました)本を読み切れると思いません。その点に関しては、セキュリティ・キャンプにいい機会を与えてもらったなと思います。まあまだ始まってもいませんが。テスト期間も挟んでしまって、なおさら読みきることが難しくなりましたが、講師の方にたくさんケツを叩かれ、なんとか始まる前に読み切ることができました。作ってみたあとでも、全然わからん部分が何箇所もあって、こりゃ何回も読み直すわけだ、と思いました。まあそれでも面白さみたいなのはとても伝わってきました。あとがきにもありましたが、これはほんとにはりぼてだけで、もっといろんな改良ができるわけです。まあそこまでやるかどうかってのは置いておいて、そういった機会に恵まれたのがちょっと嬉しかったりもします。OSってほんとにいろいろやることがあって、そのほんの一部だけしか作ってないってことを知るとやっぱりちょっと途方に暮れますが、とにかく少しずつ拡張できたらいいなと思います。

というわけで気づいたら4000字超えてました。この辺にしときますね。めんどくさいのでこのまま垂れ流しますが、勢いで書いたので、見苦しいところも多かったと思います。読んでいただけた方がいらっしゃいましたらうれしいですね。

18歳になった話

はじめに

みなさんお久しぶりです。ヤマゲンです。この度、みなさんに支えられて、生まれてから18年が経ちました。本当にありがとうございます。これからもよろしくお願いします。ということで、今回は18年間を振り返ろうかと思いましたが、めんどくさい飽きてしまうので、簡単に振り返りながら、18歳の目標的なものを述べようかと思います。

振り返ってみよう

僕は特にこれと言って劇的な生活を送ってきたわけではありませんし、高専1年くらいまではただのオタクでした。(今もオタクですが)中学校までは兄の後ろをついて歩くような何もできない人間で、生徒会長をやったりしていましたが、まあ普通のオタクでした。高専に入るということは今まででもっとも大きな選択だったと思います。なんだかんだありますが、この選択は最良とは言えずとも、良い選択だったと、3年ながらに思います。この当時は、通信に興味があって、通信環境をもっと良くしてえなと思いながら高専の推薦を受けた気がします。まあそれも付け焼き刃ですが(笑)
高専に入るまではプログラミングなんて知らない生き方をしてきて、今、中学生でプログラミングしてます!みたいな人を見ると少し羨ましいです。まあそれはそれとして、プログラミングにちゃんと向き合ったのは、実は高専2年くらいの話なんですよね。本当に運がよかったと思います。
高専2年では様々なことがありました。高専プロコンで様々な人と出会い、賞をもらって、次の起業家甲子園ではシリコンバレーに行かせてもらえるチャンスをいただけたり、高専カンファレンスに出てこれまたたくさんの人に出会ったり、どれも、普通高校に入っていたら絶対にできないことだったなとしみじみ思います。17歳はとても濃い1年でした。

18歳として

さて、18歳という、一つの節目の歳になりました。できることはたくさん増えましたが、多分やることは変わりません。

とにかく面白いことをする

これに限ります。僕は特に面白くないことはしたくないし、したいことだけして生きていきたいと思っています。きっと時代もそういう流れになっていくと思います。18歳で成人、というわけではありませんが、一つ大人になりました。自分で色々な選択をしていかなければなりません。今までとは少しだけ状況が違います。責任もたくさん出てきます。それでも、楽しいことを、面白いことをひたすらしていきたいと思っています。
少し話がそれましたが、今年はとにかくたくさん挑戦していきたいと思います!世の中の広さを知って、自分のできること、できないことを把握し、自分の本当にやりたいことを見つけたいと思います。人生まだまだ長いですが、高校生はみんな受験しているが、僕はしなくていいという「高専アドバンテージ」のようなものを活用して、たくさんの世界に触れていきたいと思います。

というわけで、これからもよろしくお願いします。

学生LTに参加してきた話

はじめに

学生LTとは・・・学生のつおいエンジニアの方々がつおい話をするゆるーい会です。今回地方民の僕はGWというよくわからない連休を使って日帰りで東京に行ってきました。夜行バスで行ってきて夜行バスで帰りました。謎ですね。なんかめっちゃお金かかりました。それでもとても勉強になったし、行ってよかったと思えたので雰囲気で書きます。

東京に行った

東京に行くのは全然久しぶりじゃなくて、多分一ヶ月ぶりくらいなんですけどやっぱり楽しいですね。なにより電車がめちゃくちゃ安くてすぐに来るのはとても魅力的です。東京内はどこでも行けます。めちゃくちゃいいですね。住みたいです。あとラーメンがめっちゃ多い上にめちゃくちゃ美味い。これは最高ですね。名古屋ですらここまで多くありません。素晴らしいです。しかしあいにく僕は人が多いのは好きではありません。やはり僕は都会民にはなれなさそうです。なかなか思うようにはいきませんね。

学生LTに初参加して

前置きはこれくらいにして本題に入りましょう。まずなぜ学生LTに行こうと思ったのか。まずここから僕も自分でよくわかっていません。もともと5月5日には予定が入っていいて、残念だけど行けないなーって思ってたらその予定が見事に潰れてしまったので、そのままの勢いで参加申し込みをしていました。(またもやノリでお金を使ってしまったが連休なのでご愛嬌)

まあそんなこんなで行ってきたわけなのですが、行ってきたのはなんとDMM.comさんのお部屋でした。何度か中を見る機会があったのですが、実際に行けるとは思っていなかったので、それだけでもとてもいい体験でした。さて、ここで学生LTが始めるわけですが...みんなめちゃくちゃ強そう、いや、強い(確信)。こんなノリで来てしまったような人間が来ても良かったのかと3分くらい悩みましたが、よく考えたらそんなの承知で知識吸収するために来たことを思い出したので、生き返りました。単純な人間です。まずはtipmonaの音楽投稿サービス版の発表でした。いきなり暗号通貨関連だったので、「やべえ、、わからん、、」って感じでしたが、その後にも結構サイト系があったので、そこまで気を張るものでもなかったです。なんとか僕でもわかるものが多かったです。特に興味深かったのは、リハビリによる脳信号のお話でした。これは筋電位と呼ばれるものによるらしいです。まあよくわかりませんが、僕もそんな感じのことを漠然とやりたいと思っていたのでたくさんお話が聞けてとても楽しかったです。また、同い年の参加者や、年下の参加者も多く、リアル女子中学生がめちゃくちゃ強い発表をしていてすげえなあと思いました。こういう人たちが将来の日本を引っ張るのだなと考えるととてもエキサイトしました。

まとめ

少し伸びてしまいましたが、今回の目的はとにかく刺激をもらうってことだったので、それは達成できたと思います。知らない技術も多かったですが、自分でももっと頑張ればなんとか届きそうな感じの技術も多かったのでたくさん勉強して僕も強いエンジニアになりたいなと思いました。

ちなみに僕はどうやら遠出に向いていないようで、日帰り東京旅行だったのに、ピンポイントでめちゃくちゃ体調が悪くなりました。みなさんは遠出をするときはくれぐれも体調管理を怠らないでくださいね!

OSの作り方を勉強し始めた話

はじめに

なぜ今回OSを作り始めようかと思ったかというと、セキュリティ・キャンプというものを見つけたからです。セキュリティ・キャンプについて深く言及はしません(というかできない)が、これにとても興味をそそられたわけです。それについて調べていたところ、何やらOSを作るセクションがある、というテイストの文言が。OSってなんか高尚なイメージがあったのでおもしれえなと思ってとりあえず課題フォームの直前まで進めてみたわけです。もちろん、この行き当たりばったりな適当男は、まるで田舎の散歩道を歩いていたらビル街に出てしまったかのようなギャップを受けてしまったわけです。つまりは、僕は普段使っているOSのことすら全然知らないということに結構なショックを受けてしまったのです。と、まあ前置きはここまでにして、とにかくいつものちょっとした好奇心で再び時間とお金をノリでふっ飛ばしたわけですね。私にとっては日常茶飯事です。(財布が寒い...)

色々調べた

さて、OSについて何も知らなかった僕はとりあえず調べました。まあ大概のことはGoogle先生に聞けばわかります。調べてる中でOSを作るということに関連した記事に必ず乗っている1冊がありました。「30日でできる-OS自作入門」です。

30日でできる! OS自作入門

さて、まあ良くも悪くも面白いことに首を突っ込むことに関しては躊躇がない私なので、とりあえず買いました。最初に来た感想としては、「意外とでかいな..」でした。

ちょっと読んだ

今日届いたばかりだったので、今日が1日目です。この本のセクションは○日目という感じで区切られていて、とても勉強し易いです。そういったところが根強く愛される名著としての秘訣の1つなのかとも思いました。実はこの本には0日目という題目でまえがきがあります。このまえがき、OSを作る上で大切なことももちろん述べているのですが、勉強をするという前提でのとても身になる話が書いてあり、とても興味深かったです。ぜひお手に取ってここだけでも読んでほしいくらいです。(本文も読んでほしいが) さて、とりあえず1日目を終えたわけですが、この本、いきなり16進数をバイナリエディタで打たせる所業。これは意外と堪えました。いきなりこころが折れたがっていたわけですが、頑張って書きました。なにせ、この本、とてつもなく古いので前提が揺らぐところがしばしば、、、(例えば外部ストレージはフロッピーディスクを使用してる)なんとか環境を整え、実践。アセンブラはちょっとだけ先輩と勉強したのでわかりました。やっぱりどんなものでもHello Worldが出ると気持ちがいいですね。満足してしまいそうです。というわけでこんな調子で読み進めて行こうと思います。10年以上愛されている名著なので、とにかく勉強あるのみといった感じですね。

最後に

最近、耳そうじをした時に湿っていると脇が臭うという話を聞いたのですが、僕は生まれてから耳の中が湿っているので少し危機感を感じました。気をつけたいです。