go install の使い方

go install はパッケージのビルドコマンド。 使い方 $GOPATH/src/以下にビルドしたいパッケージのソースコードを配置する。 go install 実行 test_pkgというディレクトリ下のコードをパッケージとしてビルドしたい場合。 $ mv -rf test_pkg $GOPATH/src $ go…

Apacheのエラーを確認する

PHPとかでサーバサイドのプログラミングをしている時に、Apacheのエラーを確認する方法。 $ sudo tail -f /var/log/apache2/error.log tail -f で開いているファイルに追記があったら自動的に出力してくれる。 知らなかった。目から鱗。

Go言語のスコープについて

Go言語の情報の可視性についてのルールは単純です。名前(トップレベルの型名、関数名、メソッド名、定数名、変数名、構造体のフィールドおよびメソッド名)の先頭一文字が大文字になっていれば、パッケージの利用者側から参照可能となります。すなわち大文字…

tmuxに入門した

ターミナルマルチプレクサ Advent Calendar 2011 : ATND 見てたら、tmux使いたい欲がむくむくと。 screen使ってないけど、いい機会なのでtmux入門してみた。 インストール Macならbrewで一発。 $ brew install tmux 設定 tmuxの設定は ~/.tmux.conf に書けば…

VimプラグインをNeoBundleとPathogenで管理する

Vim

VimプラグインをVundleで管理しているのだけれども、VundleはVundleInstallでインストールしたプラグイン以外は自動で読み込んでくれないみたい。例えばGo言語をインストールすると、vim設定ファイルが $GOROOT/misc/vim 以下に置かれている。 これを ln -s …

カレント行にアンダーラインを引く

vim

Vimでカレント行にアンダーラインを引く。 カレント行全体に色が着くのが嫌なので、下線だけ引くように設定。 " カレント行ハイライトON set cursorline " アンダーラインを引く(color terminal) highlight CursorLine cterm=underline ctermfg=NONE ctermbg…

カンマ・オペレータ

C

これは使えそう。 Comma operator - Wikipedia x = (a, b); y = (a, b, c); っていう処理があった場合、xにはaの処理をした後にbがxに代入される。 同じくyには、aとbの処理がされた後にcがyに代入される。 int x; int a=0, b=1, c=2; x = (printf("a=%d \n"…

マクロをdo-while(0)で囲むワケ

C

こんな感じで書かれたマクロを見ることがある。 #define SWAP(x, y) do { int temp = x; x = y; y = temp; } while(0) do-while(0)で囲んでいるのは、ブロックで囲まれていないif文での意図しない動作を防ぐため。 例えば、以下の場合に有効。 /* do-while(0…

Processingで画像の色情報を取得するアプリを作ってみた

Processing触ってみたら、思いのほか楽しかったので簡単なGUIアプリを作成してみた。 画像を読み込んで、Ctrl+マウスで選択した矩形範囲のRGB平均値を表示するだけのアプリ。 こんなん。 hキーを押すと、ヘルプが表示される。

rootユーザのPATHを設定する

sudoすると、root用のPATHに切り替わってしまう。 これはmake installなどの時にいろいろ不便。 で、root用のPATH設定は/etc/environmentで行える。

Ubuntuでsuを有効化

Ubuntuで、suコマンドを有効化する方法。 Electronic Genome - Ubuntuでsuを使えるようにする Ubuntuはrootのパスワードが設定されていないから、suが使えないとのこと。 $ sudo passwd root で、rootのパスワードを設定してやればsuを有効にできる。

12ステップで作る組込みOS自作入門(1)

仕事で組み込み開発をしていても、組み込みOSの深いところまではなかなか入っていけてないので、以下の本で組み込みOS「kozos」の学習を開始した。 独自OSを作ってみよう! 12ステップで作る組込みOS自作入門坂井 弘亮カットシステム発売日:2010-05ブクログ…

grep結果のquickfixからEnterキーで飛べるようにする

vim

vimgrep後のquickfixリストは編集不可になっていて、いちいち編集許可を与えないとEnterキーでカーソル下の箇所へ移動できない。それが不便でしょうがなかったので、以下を.vimrcに追記。 " quickfix: 編集許可と折り返し表示無効 function! OpenModifiableQ…

関数ポインタで型情報の異なる関数を実行する -引数省略-

C

これ、知らなかった。‚b‚ł͈ø”È—ª‚̊֐”’è‹`fnc( )‚Ífnc(void)‚Å‚È‚­fnc(...) C言語において int fnc( ) という引数を省略した表現は、 int fnc(...) という、引数がいくつあってもよい、という意味になる ... が省略されている状態であって int fnc(voi…

クロス開発環境の構築

IT基礎技術勉強会でクロス開発環境の構築方法を知ったので、さっそく実行。以下のリンク先の方法でクロス開発環境の構築を行ったところ、gccのインストールに手こずったので、メモ。 IT初心者勉強会:クロス開発環境のインストール 開発環境 Ubuntu 11.04 x64…

構造体の不完全型宣言でメンバを隠蔽する

C

C言語で、あるモジュールを制御するような構造体があるとする。 どの制御を行うかの選択は上位モジュールに行わせたいが、制御で使用する構造体のメンバは見せたくない、といった場合、構造体の不完全型宣言で解決できる。 以下に等比数列・等差数列を計算す…

MacBookのトリプルブートでUbuntuが起動しない

PC

Mac/Windows/Linuxのトリプルブートを可能にする方法(しかもBoot Camp不使用!) | ライフハッカー[日本版] を読んでMacBookで Mac, Windows7, Ubuntu11.04 のトリプルブートに挑戦したら、すごくハマったのでメモ。 rEFItの画面からUbuntu11.04を選んで…

関数ポインタで型情報の異なる関数を実行する -キャスト-

C

C言語の関数ポインタは振る舞いを動的に変えるのに便利。 だけど、関数の型情報に縛られるのは何とかできないかと調べていたら、関数ポインタをキャストしてしまえば、どんな型の関数でも実行できることを知った。 ポインタ虎の巻〜関数ポインタの使い方 #in…

Re:Start

どこが1番気楽に日記書けるかを考えてたら、ここに舞い戻っていました。 主にメモ用で。