タグ

ブックマーク / boxnos.hatenablog.com (8)

  • GNU catを読む - 全体的な流れ - ボクノス

    GNU catのソース読んでます。長くなってきたので分割しました。 ソースコードのありか オンラインで見るときはCVSを sources Index of /coreutils/coreutils/src ソースはftpからゲットせよ。 Coreutils - GNU core utilities グローバル グローバル変数static int input_descが入力ファイルディスクリプタ。超重要。 小さな関数 usageの処理はGNU定番の超絶テク。必見。 行番号の処理が凄い。写経しよう。 解析結果 -> ボクノス - GNU catを読む - next_line_num()編 main() getopt_longは定番の処理。 fstat (STDOUT_FILENO, &stat_buf)の意味がイマイチわからん。STDOUTのfstat??何が出てくる?? 調べた。cat >

    GNU catを読む - 全体的な流れ - ボクノス
  • 標準入力からgnuplot - ボクノス

    忘れそうなのでメモ。 % cat plot.txt plot '-' w l 1 1 2 4 3 9 4 16 e % gnuplot -persist < plot.txt -persistでグラフウィンドウ表示 plot '-'でファイルの代わり。eまたはendで終了。 プログラムから利用するときに便利です。 Rubyでgnuplot 2乗のグラフ。 #!/usr/bin/ruby puts "plot '-' w l" 100.times do |i| printf "%d %d\n", i, i * i end puts "end" 実行する。 % ./plot.rb | gnuplot -persist Schemeでgnuplot フィボナッチのグラフが見たい!! (define (plot d) (display "plot '-' w l\n") (force d) (di

    標準入力からgnuplot - ボクノス
    yuiseki
    yuiseki 2012/12/21
  • ボクノス - VimのヤバすぎコメントプラグインNERD Commenter

    昨日見つけたコメントプラグインNERD Commenterですが、かなりの高機能っぷりに驚いてます。ヤバイ。 これだけは覚えておけ c コメントのトグル printf("Hello, NERD"); ここで、c /* printf("Hello, NERD"); */ もう一回c printf("Hello, NERD"); いえぃ! セクシーにコメントアウト cs /* * printf("Hello, NERD"); */ やっほぉい。 C言語系でしか使えませんが、ネストしててもコメントアウト出来ちゃう高機能っぷり。凄いっす。 末尾にコメント cA printf("Hello, NERD"); /* */ おぉぉぉぉ。Iもあります。 コメントの削除 cu 無いと困ります。驚いたことにセクシーも消えます。 他にも色々出来るみたい。 設定例 let NERDSpaceDelims = 1

    ボクノス - VimのヤバすぎコメントプラグインNERD Commenter
    yuiseki
    yuiseki 2008/11/19
  • たのしいRuby 第19章 演算子 - ボクノス

    ちと,Vimで遊びすぎてしまった・・・反省。 最近、はてなの情報量に驚きます。googleで情報が無い!!と思ったら、はてな以下のページを探るとゴリゴリ出てきます。はてなは、プログラマの巣窟っすね。移転してきて良かったぁ。 さて、今日は演算子に入ります。プログラミング言語の教科書でこんなに最後の方に演算子の説明があるのも珍しい。Rubyの演算子は案外複雑なので、混乱を招きそうです。 論理演算子 練習問題の解答で、 dir = ARGV[0] || "." というテクニックが多用されてました。引数が指定されていなければ、初期値を代入する。 if文で書くと、 if ARGV[0] != nil dir = ARGV[0] else dir = "." end 条件演算子で書くと、 dir = ARGV[0] ? ARGV[0] : "." 論理演算子を使った方がスッキリしますね。 配列が定義さ

    たのしいRuby 第19章 演算子 - ボクノス
    yuiseki
    yuiseki 2008/08/08
  • VimScriptをその場で実行 - ボクノス

    .vimrcがやたら汚くなってきたので書き直し中。いちいちsource %とかするのが面倒なので、その場で反映させたい。いつも忘れるのでメモ。 ヘルプをみると、 @{0-9a-z".=*} Execute the contents of register @レジスタでレジスタ内のコマンドが実行できるので、それを利用してっと ~/.vim/after/ftplugin/vim.vimに追加する。 nmap <silent><buffer> <SPACE>e "zyy:@z<CR> vmap <silent><buffer> <SPACE>e "zy:@z<CR> スペース + eで、 ノーマルの場合行実行。 ビジュアルの場合選択範囲実行。 こんなに大きなキーがあるのに活用してなかったとは!! 色々スペースに割り当てていこうかと思う。 ついでに 保存して全体実行 map <silent><bu

    VimScriptをその場で実行 - ボクノス
    yuiseki
    yuiseki 2008/04/03
  • 東大の演習問題に挑戦 - ボクノス

    東大のアルゴリズムとデータ構造演習(リンク切れ)が面白そうなので演習問題を解いてみる。 課題1-A:シェルを実装せよ。 ガンバリマス。 方針 パイプもリダイレクトも無し。一番簡単そうな実装を目指します。 1行取得は面倒なのでGNU getline使います。 fork,exec,waitを使って実装します。 execはexecvpを使うことにしました。 引数の処理は、単語の先頭ポインタをargvに追加して、スペースか改行があったら\0で踏み潰していきます。 コーディング #define _GNU_SOURCE #include <stdio.h> #include <stdlib.h> #include <unistd.h> void prompt(void) { printf("* "); } int main(void) { /* 行の取得用 */ char *line = NULL;

    東大の演習問題に挑戦 - ボクノス
    yuiseki
    yuiseki 2008/01/30
  • DNSのお勉強 - ボクノス

    DNSのお勉強です。 ルートサーバー インターネットのドメインは、最後のドットが省略されてる。 d.hatena.ne.jp.ファイルみたいに表すと。 /jp/ne/hatena/dとなる。 最後の「.」って奴がルートのドメイン。ルートのドメインを管理してるのがルートサーバー。 ルートサーバ - Wikipedia インターネットの世界を支えてる凄いサーバー達。コレが無ければみんなIPアドレスで通信しなければならない。大変だぁ。 dig digでルートサーバー情報を探ってみる % dig . NS ; <<>> DiG 9.3.4-P1 <<>> . NS ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22833 ;; flags: qr rd r

    DNSのお勉強 - ボクノス
    yuiseki
    yuiseki 2008/01/15
  • tcpdumpがおもろい - ボクノス

    wiresharkが使いにくいので、tcpdumpずっとみてます。いろんな所からパケットが飛んでくるもんですね。 隣のWindowsからarpとかDHCP要求があったりとか、意味わかんないポートからの要求がいっぱい飛んでくる。 僕の知らない所でこんなにパケットが流れていたとは・・・ で、ackってなんだ? ackってのがよくわからん。 ACKとは 【ACKnowledgement】 - 意味・解説 : IT用語辞典 コンピュータ間の通信において、送信先のコンピュータから送信元のコンピュータへ送られる肯定的な返事。データ転送が正常に終了したときなどに送信される。「一部のデータだけ正しく受け取った」という意味を持つ「Selective ACK(s)」という信号もあり、通信に失敗したデータだけの再送信を要求する際に使用される。 ほうほう。だから一番最後にackってなるのか。 http以外を監視

    tcpdumpがおもろい - ボクノス
    yuiseki
    yuiseki 2008/01/15
  • 1