Programmer's Note

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

Clojureを遊ぶ:リストとマクロ

「7つの言語7つの世界」 を読んでClojureを始めた。 まったく思考がLISPerになってなく、すらすらプログラムが組める状態ではない。が、実に面白い。 Clojureの強力な点は、コレクションに対する操作を、非常に簡潔に書けるところだ。 まずはリスト。 リス…

マコネル本の読書

遅ればせながら、最近やっとCode Completeを読んだ。まだ上巻を読了したばかりだが、この本がこんなに面白いとは思わなかった。ずいぶん前に買って積んでいたが、言わば食わず嫌いだったな。なぜかって一言で言えばMicrosoft Pressだから。 この本は名著とも…

sicpの導入部

MITのプログラミングの授業で使われていた伝説的な教科書、「Structure and Interpretation of Computer Programs」、略してsicpを読み始めた。 いわゆるプログラミングの古典的名著として数えられ、「ハッカーと画家」のポール・グレアムもAmazonレビューで…

vimrcメモ

vim

vimrcメモ。 プラグインも色々入れていたが、使用頻度が低いので思い切って削って、とりあえず必要最小限のものだけを残してみた。 運用していくうちにまた増えたりするかもしれんが。 だいたいがネットで検索した設定をコピペして、ミックスした感じだが。 …

yacc を遊ぶ:パーサーの動き確認

「THE UNIX PROGRAMMING ENVIRONMENT」のチャプター8のhocをサンプルに、yaccのパースの動きを確かめてみる。 この本では、hoc4でパーサーからインタプリタコードを生成するステップに移るが、 生成すべきコードとの結びつきがイマイチ想像できんかったから…

「The UNIX Programming Environment」読了

「The UNIX Programming Environment」読了。1月からコツコツ読んで足がけ4ヶ月。正確には第9章を残しているが、第9章はtroffの紹介で、これはまあ気が向いたら読めばよいかなと思っている。文章整形は1980年代からはもはや隔世の感がありすぎる。恐らく今後…

ハッカーと画家: 言語の力

ちょっと衝撃を受けた。 昨日読み始めたポール・グレアムの「ハッカーと画家」、これはすごい本だ。 結構前に、Matzさんの以下の記事で知ったのだが、 まつもとゆきひろのハッカーズライフ:第3回 ハッカーと仕事 (2/2) - ITmedia エンタープライズ ずっとブ…

Joel on Software読み始める

最近 Joel on Software を読み始めた。 以前、書店でぱらぱら見たときは面白そうに見えなかったが、Kindleで原書のお試し版を読んでみると、楽しいではないか。とても平易な英語で読みやすい。 ということで、原書のペーパーバック古本をAmazonで購入。すこ…

awk / yacc / lex

いかん、忙しさにかまけて更新が滞っている・・・。 さて、コンスタントに読んでいる「The UNIX Programming Environment」は、第6、7章が終わり。8章に入っている。 yaccで簡易計算言語の作成だぜ。さすがはKernighanさんとPikeさん、yaccがこんな風に楽…

The UNX Programming Environment 5章、6章

The UNIX Programming Environmentも、第5章を過ぎて、第6章の「PROGRAMMING WITH STANDARD IO」の終わりに差しかかってきた。 UNIX精神というはつまり、過去の資産を最大限に活用すること、多様性を賞賛すること、なのだなと改めて読んでいて思った。この…

簡単なcalculatorコマンドを作ってみる(Ruby)

たまーにさくっと計算機欲しいときがあるけど、UNIX標準のbcってクセがありすぎて辛い。 探してもシンプルなcalculatorコマンドってないもんだなと、、、。 やりたいことは、単純で $ calc 1024*24-54 24522 0x5fca 057712 結果を、10進、16進、8進て表…

エスケープシーケンスでカーソル移動を使ってみる(Ruby)

ちょい前にエスケープシーケンスで文字装飾を試した。(エスケープシーケンスの文字装飾を試す - Programmer's Dialy) さて、今回はカーソル移動を試してみたい。 (ちょっと文字列処理が入るのでRubyで) Kernighan先生の「Software Tools」の中で、フィル…

Rubyのevalと正規表現で簡単にデータを取り込んでみる

Rubyのeval()を使ってみる。これを使えば、 ファイルから読み込んだ文字列データを、そのままRuby処理系に渡して解釈できる。 今回は、例えば適当に定義したデータ形式のファイルから、 hashテーブルとして読み込むところをやってみたい。 データは例えば下…

vimで単語の置換を一発でやる関数を作ってみる

vim

vimを使い始めて2ヶ月ちょっとか。感覚的には半年くらい使ってる気がするな。 もはや日々の仕事に欠かせないツールになっている。 プラグインの方もも欲しいと思ってたものをいくつか入れて、IDE相当なリッチな環境になってきた。 プラグインも各々使いこな…

shプログラミング覚え書き

shって使いこなせばかなり便利だな。プログラミング言語としても面白い。(※注:Bourne Shell系のshell) 「The UNIX Programming Environment」の第5章の"SHELL PROGRAMMING"を読んでいる途中だが、 いろいろおさらいしときたいTIPSがある。 とありえず手元…

Software Constructとベナー看護論

The Pragmatic Bookshelfのサイトを歩いてたら… 「達人プログラマー」のAndy HuntとDave Tomasが、IEEEに連載してたコラムの一覧が出てきた。IEEEにコラムを書いていたのか、知らんかった。 参照:The Pragmatic Bookshelf | IEEE Articles IEEEて名前だけ知…

とりあえず、目に付いた読みたい記事、本のリスト。

なんとなく面白そうなサイト: Bob Morris 書評とか載ってるっぽい Web記事: http://thinkfaster.co/2015/02/so-you-want-to-be-a-developer-rockstar The Programmer’s Price - The New Yorker 本: The Pragmatic Bookshelf | The Healthy Programmer The…

Dwarf Fortressちょっとやってみる&フォントを変えてみる

ちと電子回路系の英語本が読みたいと思って、ネットで推薦されてたGetting Start in Electronicsを探してたら、 (参照:Getting Start in Electronics) たまたまドット絵の表紙が目についた。→ Getting Started With Dwarf Fortress ぐぐると、なんだこれ…

Zork Iをプレイしてみる

なんとなく英語のテキストアドベンチャーをプレイしたくなった。 文字だけのゲームは読書の延長線上で、なんとなく面白そうだ。 テキストアドベンチャーって、いままでまったくプレイしたことはない。 コンソール機とかにも出ているが、なんか単にいくか示さ…

エスケープシーケンスの文字装飾を試す

エスケープシーケンスを試してみる。 カーソル移動も可能だが、とりあえず文字表示の装飾機能を試す。 文字装飾エスケープシーケンスは、C言語だとprintfで\x1b[制御コードmを出力すればいい。 制御コードは1〜107まであるらしい。0はリセット。 (参照:ANS…

bundleプログラム改

'The Unix Programming Environment'の第3章の「USING THE SHELL」で bundle というツールが紹介されている。 これは以下のような小さなshellスクリプトのプログラムだ。 (作ったのはAlan Hewett, James Gosling.) #bundle: group files into distributio…

Rubyでバッファリングなしのキー入力を試す

Rubyでバッファリングなしのキー入力読み込みを試す。 普通の標準入力の getc を使った場合は、 入力された文字はターミナルに出力されつつ、バッファリングされて、 Enterが押されて初めて文字列がプログラムに送られる。 例: ソース: t_getc.rb while c =…

Rubyでクロージャのテスト

以前、Swiftでもjavascriptでも試したクロージャを、Rubyでもやってみた。 つい今日覚えたlambdaを使って。 以下コード: def func_generator() a = 0; return lambda { a += 1 } end f_add = func_generator puts f_add.call puts f_add.call 出力: 1 2 参…

Rubyのlambda使用メモ:ハッシュテーブルに関数を入れて別の関数に渡す

Rubyでjavascriptっぽく、ハッシュテーブルに関数の定義を入れて、 別の関数に渡すてのをやってみた話。 javascripは便利で、関数=オブジェクトというところが分かってしまえば、 かなり何でもできてしまう(記述の自由度が高い)。 なにかしら構造体的なも…

echoについて

KernighanさんとRob Pikeさんの著書、 'The Unix Programming Environment'の第3章の「USING THE SHELL」にechoコマンドの話が出てくる。 echoコマンドはおそらくコマンドの中で一番シンプルな部類に入る。 このコマンドの仕事は「引数を標準出力に出力する…

読書メモ:Software Tools

"Software Tools"(邦題:ソフトウェア作法)はやはり素晴らしくて、以前に記事で書いたが、英語の原書を改めて読むと、もっとぜんぜんメモっておかねばと思う。 Kernighan先生とPlaugerさんの本書はUNIXについて語った本ではないが、UNIX精神が宿った名著で…

BeagleBoneBlackのブートシーケンス

ひさびさBBBをまた触ろうかと。以前別のブログに書いていたメモを復習がてらにはてなに移す。 BBBに採用されているSoCはTIのAM3359 以下に技術マニュアルがある。 AM335x Sitara™ Processors Technical Reference Manual BBBのブートシーケンス リセット時に…

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…