角待ちは対空

おもむろガウェイン

2017-03-12の日記

オーバーウォッチ楽しい

なんでこんなにおもしろいんだろうか考えてたけど特に答えなし。

日本酒買った

特に好みはなく味の違いがわからないくらいなのだけど、意識的に順位つけていって好きな日本酒というものができれば、何か人生がいい方向に向かうのではないかと思って買った。今のところコーラが一番うまい。

コカ・コーラ ペットボトル 2L×12本

コカ・コーラ ペットボトル 2L×12本

いつもこれ買ってる。ヤマトの人は僕のこときらいだと思う。

フィギュア

アルター 宝蔵院胤舜。原型師はあかつき+たなか☆せんう。

何のキャラか知らないし読めないしの二重苦だけど一番気に入ってる。

パンツ見え過ぎで言及しにくいのも辛い。

好きなポイントとしては

  • 身長より長い武器
  • 普段引きずってるよね?って感じのマフラー
  • 後膝部

まぁパンツが好きと言っているのとあんまり変わらない。

フィギュアはF値大きくして撮るもんじゃないのと言われたのでそのように撮った。なんかぼやけない写真は難しいということがわかった。

卓上で使える三脚と蛍光灯が欲しい。

システムコール勉強してる

特に作りたいものがないので陳腐化しない技術ということでシステムコール勉強してる。勉強してるうちに作りたいものができるか、そうでなければ将来困ったときに勉強したことでできたインデックスに引っかかり作ろうというモチベーションになることを期待してる。

システムコールの前にプロセスが曖昧だったのでなるほどUnixプロセスよんだ。

tatsu-zine.com

deamon とか prefork とか普段使ってるのでだいたいわかってるつもりだけど一応復習も兼ねて。どっちかって言うと nginx とかのイベント駆動の方が分かってない。イベントループがあってコールバックがあってくらいはわかる。AnyEventは使ったことない。まぁ今回の話とは関係ない。

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

ふつうのLinuxプログラミング Linuxの仕組みから学べるgccプログラミングの王道

次にふつうのLinuxプログラミング読んだ。ファイルシステムとかストリームとか基本から載っててよかった。

その後は

ascii.jp

読んだ。システムコールをある程度理解した上で読むと Go の Interface は良く出来てるなぁと感じた。

とりあえず、何書かないとすぐにわすれるんだろうなぁと思いhttp server書こうと思ったけどストリームをパースするところで飽きてやめた。これを機に RFC 読むのも良かったかもしれない。けど、とにかくモチベーションがなくなった。

package main

import (
    "fmt"
    "os"
    "syscall"
)

func main() {

    fmt.Println(os.Getpid())

    fd, _ := syscall.Socket(syscall.AF_INET, syscall.SOCK_STREAM, 0)
    sa := syscall.SockaddrInet4{Port: 8888}
    if err := syscall.Bind(fd, &sa); err != nil {
        fmt.Println(err)
    }
    if err := syscall.Listen(fd, 5); err != nil {
        fmt.Println(err)
    }

    for {

        nfd, _, err := syscall.Accept(fd)
        if err != nil {
            fmt.Println(err)
        }
        buffer := make([]byte, 1024)
        syscall.Read(nfd, buffer)
        fmt.Println(string(buffer))
        syscall.Close(nfd)
    }
}

github.com

たった 34 行しかないし、 curl http://localhost:8888 したら

GET / HTTP/1.1
Host: localhost:8888
User-Agent: curl/7.43.0
Accept: */*

が表示されるだけだけだし、レスポンスは返ってこないけど、学びはあったという印象。

次何勉強するか