チャネルの配列(スライス)を生成する

Go言語でチャネルの配列(スライス)を生成するには、以下のように宣言する。 チャネルの固定長配列 var chans = []chan int { make(chan int), make(chan int), make(chan int), make(chan int), } もしくは var chans [4]chan int for i := range chans { ch…

Go言語のflagパッケージを使う

Go言語でコマンドラインオプションを扱う - そこはかとなく書くよん。 に触発されたので、flagパッケージについて自分で使ってみてハマったところを書いておく。 コマンドラインオプションの略称を登録する flag.IntVar()などのXxxVar()を使う。 これで -boo…

Go言語は定数配列宣言ができない

以下のコードはコンパイルが通らない。 package main func main() { const array = [...]int {1,2,3,4,5} } コンパイルエラー。 const initializer must be constan Goでは、配列やスライスは全てランタイム中に生成される。 それに対して、定数はコンパイル…

はじめてのOSコードリーディング #2 simhでV6を動かす

simhというエミュレータ上でUNIX V6を動かせるとのことで試してみた。 simhエミュレータのインストール http://simh.trailing-edge.com/がsimhの開発プロジェクト。 debian系なら apt-get で楽ちんインストール。 $ sudo apt-get install simh simh用のUNIX …

はじめてのOSコードリーディング #1 ことはじめ

UNIXカーネルなどの低レイヤなところに詳しくなりたい。 ずっとそんなことを思っていたので、「はじめてのOSコードリーディング」で勉強を始めた。 はじめてのOSコードリーディング ~UNIX V6で学ぶカーネルのしくみ (Software Design plus) 著者の@superhoge…

Vimビルド時のオプション

Vim

たぶん2度と思い出せなくなるのでメモ。 $ ./configure --prefix=$HOME/Garage/Toybox/ext --enable-FEATURE \ --enable-mzschemeinterp --enable-perlinterp=yes --enable-pythoninterp=yes \ --enable-python3interp=yes --enable-rubyinterp=yes --enable…

選択範囲に一括ペーストできる fitpaste-vim 書いた

Vim

Vimでは[ctrl-v]のブロック選択からI、またはAを入力することによって、選択列の先頭もしくは末尾にテキストを一括入力することができます。 [ctrl-v]でブロック選択して、 Iでテキスト入力。 [esc]で抜けると、一括挿入! これがとても便利で、よく活用して…

VimScript覚書

Vim

はじめての、びむすくりぷと。ってことで、ちょっとしたVimプラグインを開発中。 その過程でのVimScript覚書をメモ。 VimScript開発の取っ掛かりに参考にさせてもらったページ Vimスクリプト基礎文法最速マスター - 永遠に未完成 Big Sky :: モテる男のVim S…

はてなブログてすと。

はてなブログのテスト。てすてす。 はてなダイアリーからのデータ移行ってできるようになるのかな?