がべーじこれくしょん

技術系とかいろいろ

【1日目】30日OS自作入門

とりあえず1日目です。

本をざっと読んでみたのですが、やはりWindows向けに書かれていました。

自分が持っているのはMacなので、早くも詰みました。困りましたね。

そんなところで検索すると環境構築をしている方がいらっしゃいました。感謝…感謝…

github.com

CD-ROMから該当するファイルを引っ張ってきて、上記サイトにかかれていたシェルスクリプトを実行し、環境構築完了。

地獄のバイナリ手打ち大会(helloos0)

毎度おなじみ「世界へこんにちは」から入りました。

しかし、これがかなりきつい。

CDにはすでに完成されてたhelloos.imgが用意されていましたが、試しに自分で作成してみました。

バイナリを読むのはCTF等で機会が山ほどあったのでなんともないのですが、まさか書くことになるとは…

正直かなりきつかったです。

でもこうやって昔の人はOSを手組してたと考えると今の時代はかなり楽しちゃってるなあ…とも思います。

アセンブラに書き換える大会(helloos1)

先程のコードをアセンブラのコードに書き換えるセクションでした。

筆者お手製のnaskというアセンブラを使って先程のコードを書き換えます。

本に書いてあるとおり、まだ手で打てるレベルだったので多少は楽になりました。

アセンブラの恩恵を初めて直に受けられた気がしました(?)

アセンブラのコードを最適化する大会(helloos2)

先程のアセンブラのコードをもう少し文法的にわかりやすく書き換えるセクションでした。

FAT12フォーマットに関する説明がアセンブラのコードと一緒に説明されていました。

FATっていう名前久々にきいたな…(林檎並感)

ここまできて、今まで作ってきたプログラムはブートセクタに入ってて、本来はここにbootstrapのプログラムが入ってるということがわかりました。

1日目…意外と濃い…

【0日目】30日OS自作入門

高校のころから図書館で借りて読んでいた本をついに買いました。

それが、川合秀実さんの著書である「30日でできる!OS自作入門」です。

低レイヤ界隈にはとても有名な本ですね。「名著」と某先輩も推しています。

今回は、数週間後に控えたもくもく会に向け、一冊30日かけてやる本を二週間ほどで終わらせるという無謀なチャレンジを行います。

目標は、本書で紹介されているOSをとりあえず完成させることです。内容理解の漏れに関しては、再読ともくもく会を通してカバーしていくつもりです。

内容に触れすぎない程度に1日分ごとに進捗をまとめていきたいと思います。

頑張ります!

Jetbrains Product Pack for Studentsに申し込んでみた

IntelliJ IDEAやPhpStorm、Rubymineなどは、プログラマ界隈ではおなじみの高機能IDEですよね。

ただし難点なのが、これらは有料だということです。

しかもかなり高額。

そこで、Jetbrains製品にもStudent Licenseがないか調べたところ、「Jetbrains Product Pack for Students」というものがあったので、申し込んでみました。

手順

まず、「JetBrains Product Pack for Students」のページに移動します。

www.jetbrains.com

f:id:musaprg:20170403153023p:plain

Apply Nowをクリックします。

f:id:musaprg:20170403153115p:plain

必要事項を記入します。

Email Addressは、必ず学校から付与されたメールアドレスを入力してください。

APPLY FOR FREE PRODUCTSを押すと、先程入力したメールアドレス宛に承認リンクの載ったメールが届くと思うので、リンクをクリックしてください。

規約に同意すると、アカウント登録ページへのリンクが載ったメールが再度送られてくると思うので、クリックしてください。

Jetbrainsのアカウント作成画面に移るので、必要事項を記入すれば完了です。

(どうでもいいけどPhpstorm重い…)

Jupyter Notebookでmatplotlibのグラフが表示されない

サークルで統計が流行っているのですが、みんなRを使うのでひねくれものの私はPythonでデータサイエンスを勉強しています。(Rもそのうち触りたい)

そんな中、matplotlibがインライン展開されないという問題にぶちあたったのでメモ。

解決策

ノートのはじめで以下のコードを走らせないとインライン展開されないみたいですね。

%matplotlib inline

Before

In  [48] : tz_counts[:10].plot(kind='barh', rot=0)
Out [48] : <matplotlib.axes._subplots.AxesSubplot at 0x18dd7d8c358>

After

In  [49] : %matplotlib inline
In  [50] : tz_counts[:10].plot(kind='barh', rot=0)
Out [50] : <matplotlib.axes._subplots.AxesSubplot at 0x18dd7d8c358>

f:id:musaprg:20170402160818p:plain

表示されるよ!やったねたえちゃん!

読んでる本

今読んでる本です。実際のデータ使えるので楽しいです。

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理

FiddlerをMac OSXにインストールする方法

この記事はほとんど以下サイト様の記事と内容は一緒です。以下サイト様にもぜひ足を運んでいただければ幸いです。

sachips.byeto.jp

API解析って面倒だよね

某大学のシラバスを解析して活用しようという動きがあります。

僕もそれに乗っかっていろいろやってましたが、何ぶんパケット解析をしてcURLで叩く、みたいなのはまどろっこしいとなっていました。

そこで、WebAPIの開発ツールとしてWAASと呼ばれるゴミモノを作ってました。

github.com

そのことをとある方に話したところ、「Fiddlerで全く同じことができるよ?」と言われたので早速入れてみることにしました。

環境

OS: Mac OS X 10.12.2

手順

1. Homebrewをインストールする。

マカーでインストールしてない人はいないと思われる定番ツール。

もしインストールしてない、という方は、ターミナル上で以下のコマンドを叩いてください。

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2. Fiddlerをインストールする

brew cask install fiddler

以上です。めっちゃ簡単ですね。 途中でパスワードを求められるはずなので、入力しましょう。

使い方は現時点ではあまり理解してないので、適当にいじった後に気が向いたらまた記事を書きます。

参考サイト

sachips.byeto.jp