読者です 読者をやめる 読者になる 読者になる

Programmer's Note

コード読み書きの備忘録。

Papilio Proボード上のLEDをちかちかさせる

手順は前記事と同じ。 VerilogでPapilio ProのLEDを光らせる - Programmer's Dialy ソースを以下に修正: `timescale 1ns / 1ps module led_control ( CLK, LED1); input CLK; //clk 40MHz output LED1; //led control 0:on 1:off reg LED1; reg [25:0] led_…

VerilogでPapilio ProのLEDを光らせる

PapilioはVHDLをベースに語られてるが、個人的にはVerilog文法の方が分かりやすい。 世の中に転がってるサンプルは、そんなにシンプルでもないので、 一番シンプルにボードについているLEDを光らせるまでをやった。 あまりまとまった情報がなかったため、な…

Papilio の環境導入 (Ubuntu/VirtualBox/Mac OS X)

ちょっと前に買ったPapilioをふたたび触ってみようと。 Ubuntu on VertualBox on Mac OS X の環境で、以前パッケージのインストールまで行った。 (1) Xilinx ISE Design Suite 14.7をUbuntu 14.04にインストールする http://cellspe.matrix.jp/parallella/in…

UNIX関連資料一覧

すでに読んだものも含めて、とりあえず興味あるものだけ整理。 year title 1974 Dennis M.Ritchie and Ken Thompson, 'The UNIX Time-sharing System', ACM, 1974. 1976 Brian W.Kernighan and P.J.Plauger, 'Software Tools',1976. (UNIX本ではないがKernig…

PDP-7時代のUNIXファイルシステム

D.M.Ritchieさんの1979年の講演をもとにした論文 "The Evolution of Unix Time-sharing System"を読了。 前に読んだACMの論文*1 はUNIXの主な機能と考え方の紹介だったが、 こちらの方は歴史的な経緯も含めて、UNIX OSがどう機能的に発展したかが分かる。非…

viの本質を語った良記事

vim

vimを使い始めて間もないが、いろいろ記事や本を読んでいる。 Learning Vim in 2014というサイトでは、vimの使い方を基本となる考え方から紹介していて、なおかつ1ステップが短くて読んでいてなかなか楽しい。(個人的にはフォントが好きだ、結構大事) 上…

inodeファイルシステムに感動!

「The Unix Programming Environment」 を読んで、感動しちまった。 ファイルシステムを語っている第2章で、 なんとディレクトリ自身に対して od して中身を確認して解説している! 環境はUNIX V7。(本の冒頭では、System V、4.1BSDの環境も試しているとあ…

PDP-11: RK11のデータアクセスのアドレスの計算メモ

前回はPDP11の磁気ディスクについての概要だったが。今回はアクセス方法について。 ディスクに対してデータを読み書きするためには、RK11の制御レジスタにアクセスして行う。 PDP-11はMemory-mapped I/O なので、ペリフェラルのレジスタは特定のメモリ番地の…

PDP-11の磁気ディスク装置RK11の勉強メモ

PDP-11の磁気ディスク装置RK11の勉強メモ。 構成物は3つで下記の通り: ディスクコントローラ: RK11 ディスクドライブ: RK05 ディスクカードリッジ: RK03-KA RK11ディスクコントローラには最大8台のドライブを接続できる。 また、RK11-DとRK11-Eと2種類ある…

UNIX V6 ファイルシステム周りの勉強メモ

UNIX V6はPDP-11という古いDECのミニコンピュータ上で動く。このPDP-11のディスク装置(いわゆる磁気ディスク)は、アクセスの単位がブロックで区切られている。1ブロックは512バイト。 UNIXのファイルは単にバイトの並びでしかなく、ファイル自体に管理用の…

UNIX V6コードリーディング・メモ

UNIX V6のコードをまじめに読み始めようかと。 去年から『はじめてのOSコードリーディング』をぽつぽつと読んで、UNIX V6のソースの理解をし始めてはいるが、やはり全体像を知るにはまだまだ道のりは遠い。 動かしながら読めるのが一番ベストなのだが、まあ…

Dennis Richie & Ken ThompsonのACM論文を読む

最近、UNIX関連の資料をあさっているが、読まねばと思っていた、Dennis Richie & Ken ThompsonのACM論文(The UNIX Time-Sharing System)を読んだ。これが世にUNIXの存在を知らしめた最初の論文で、内容はUNIXのコンセプトと機能の紹介がメインで、普通にUNIX…

読書:ソフトウェア作法(英語編)

ブログ記事:読書:ソフトウェア作法 - Programmer's Dialy で「ソフトウェア作法」について書いたが、原書を買った。 やっぱ直接Kernignhan & Plaugerの言葉を読みたい。Amazonでさくっと買えちゃうなんていい時代。(一方、読んでみると日本訳も実に丁寧だ…

Robe PikeのNote on Programming in Cを読む

Robe Pikeさんは、UNIX, Plan9などの開発に関わった伝説的なプログラマーとして知られるが、彼が書いた"Note on Programming in C"を読んでみたら、面白かった。Rob Pike: Notes on Programming in C似たような議論をどこかで読んだなと思ったら、Kernighan…

読書:ソフトウェア作法

ソフトウェア作法作者: Brian W.Kernighan,P.J.Plauger,木村泉出版社/メーカー: 共立出版発売日: 1981/05/01メディア: 単行本購入: 1人 クリック: 68回この商品を含むブログ (27件) を見るKernighan & Plaugerの「ソフトウェア作法」 は古典的名著と言われて…

Swiftで関数の配列をつくる

Cでも関数のポインターの配列というのをつくれるが、Swiftでどう書くか試してみる。もっとも単純なもの: func func1() { println("Hello 1") } func func2() { println("Hello 2") } let fa:[()->Void] = [func1, func2] fa[0]() fa[1]()これはうまく行った…

bashの <<< を使ってみる

bashのリダイレクトに (bash以外のシェルでも対応してるかどうかは調べてないので不明)これは、文字列を標準入力として、コマンドに渡したい場合に使えるっぽい。下記のサイトで知った: http://cfenollosa.com/misc/tricks.txtwcで試してみる。ファイルの…

Ritcy fontをOS Xに入れる

プログラマーにとってフォントは非常に大事。 ここ2日は、住み心地良い環境のために整備をしつつ、フォントも整える。結局、いま使っているUNIX系環境にはすべてRitcy fontを入れた。 (Linux, Mac OS X)Macの場合、入れてみたがアンチエイリアスしてあげな…

vim+GNU GLOBAL導入

vim

vim設定を色々試してるが、GNU GLOBALを使ってインデックス作成した上でソースコード読むようにする。のが強烈に便利! 設定は以下のサイト参照: 人間とウェブの未来 - GNU GLOBALとvimで巨大なコードでも快適にコードリーディング こいつあEclipseのインデ…

vim歩き出し

vim

最近vimを本格的に使い始めた。viはほんとに今までは基本のカーソル移動hjkl、削除x, 編集 i, やESC, :wqとか必要最小限のコマンドしか知らなかった。 どちらかというとUNIX環境ではずemacsをずっと使っていた。(emacsも基本編集以上のことは知らない) emacs…

SwiftのOptional型の動作を確かめてみる

SwiftのOptional型について。 いろんなサイトで解説されているが、自分でもやってみて理解する。 ここが分かりやすい: [Swift] Optional 型についてのまとめ Ver2 - Qiita (1) Optioanlでない通常の変数の宣言 var a:Int println(a) 値を代入しないと、コン…

Swiftの関数渡しのテスト

Swiftの関数渡しをテスト。以下、javascriptっぽく書いた場合。 func sequence( f:(Int,Int)->Void) { for var i = 0; i < 10; i++ { f(i,i+1) } } let x = 10; sequence({ a,b in println("a=\(a+x), b=\(b+x)") }) 渡す先の関数の最後の引数の場合は、無名…

javascriptでクロージャのテスト

JS

いろんな言語の動作テストが行える以下を使用: [Wandbox]三へ( へ՞ਊ ՞)へ ハッハッ コード: function CodeGenerator() { var a = 0; return function() { return a++; } } var f_add = CodeGenerator(); console.log(f_add()); console.log(f_add()); console.…

Swiftでクロージャのテスト

Swiftでクロージャのテスト。WebブラウザからSwiftの動きを確かめられる以下のサイトを利用; SwiftStub: Online Swift Compilerコード: func FuncGenerator() -> (Void -> Int) { var a = 0; func add() -> Int { return a++ } return add } var f_add = F…

とりあえずHello, World

はてなブログは、コードハイライトが使えるということで、さっそく試したくて。 #include <stdio.h> int main() { printf("Hello, World"); } ほんまや!これはすばらしい!一番すばらしい点は「はてな記法モード」で記述できる点だ。 So-netとかBloggerとか、みたま</stdio.h>…