行数カウント

Cソースコードの行数を測りたい。

Wikipediaコロ助というソフトがあるので、このコードに試しに使ってみた。

#include <stdio.h>

int main(void){
	/* */
}

/* */
void func(void) {
}

結果、有効行6、コメント行1、空白行3で、合計行10だった。

えぇ・・・。そうなんだ・・・。

clocというのを使ってみた。

1 text file.
1 unique file.
0 files ignored.

http://cloc.sourceforge.net v 1.55 T=0.5 s (2.0 files/s, 18.0 lines/s)

                                                                                                                                                            • -

Language files blank comment code

                                                                                                                                                            • -

C 1 2 2 5

                                                                                                                                                            • -

こっちのほうが良さそうじゃない?

PandaBoardのデバッグ環境構築を目指したメモ

環境

OpenOCDのインストール

  1. libftdi1, libusb, libftdi-dev, libusb-dev をaptとかでインストール
  2. OpenOCD 0.5.0 をダウンロード&解凍
  3. ./configure --enable-ft2232_libftdi
  4. make
  5. sudo make install

OpenOCDを試してみる

  • openocd -f tcl/interface/olimex-arm-usb-ocd.cfg -f tcl/board/ti_pandaboard.cfg

Open On-Chip Debugger 0.5.0 (2011-09-21-10:13)
Licensed under GNU GPL v2
For bug reports, read
http://openocd.berlios.de/doc/doxygen/bugs.html
Info : only one transport option; autoselect 'jtag'
RCLK - adaptive
Using dbgbase = 0x80000000
force hard breakpoints
trst_only separate trst_push_pull
Error: unable to open ftdi device: device not found
in procedure 'init'

  • どうやらREADMEに書いてあったパーミッションやらudevが原因らしいが、よくわからないのでsudoする
  • sudo openocd -f tcl/interface/olimex-arm-usb-ocd.cfg -f tcl/board/ti_pandaboard.cfg
  • OpenOCDが接続待ちになるので、別のターミナルからtelnetで接続する
  • telnet localhost 4444
  • 適当にコマンドを試してみた

> cortex_a8 cache_info
cache not yet identified
> reset
JTAG tap: omap4430.jrc tap/device found: 0x3b95c02f (mfg: 0x017, part: 0xb95c, ver: 0x3)
JTAG tap: omap4430.dap enabled
JTAG tap: omap4430.m30_dap enabled
JTAG tap: omap4430.m31_dap enabled
Locking debug access failed on first, but succeeded on second try.
Invalid ACK 0x6 in JTAG-DP transaction
Polling target failed, GDB will be halted. Polling again in 100ms
Polling succeeded again
> exit
Connection closed by foreign host.


試行錯誤した結果

  • Ubuntu 11.04 のaptとかでインストールできる OpenOCD 0.4.0 ではうまくいかなかった
    • PandaBoard用の設定ファイルもなかった
  • /usr/local/bin にOpenOCD 0.5.0 が、/usr/bin にOpenOCD 0.4.0 がインストールされた

まだコマンドがわからなくて、デバッグはできない。

shutdown.bat

Windowsでシャットダウンするバッチファイルを作成してshutdown.batというファイル名にしていたら、なぜかシャットダウンせずに無限ループになる。普通に手動で入力すると動作するので、「?」と思っていた。ぐぐってみたら謎が分かった。Windowsだとカレントディレクトリにあるものが優先されるので、shutdown.batファイルの中でshutdownと書くと自分自身を呼び出してしまうということらしい。ふむ。

日付挿入

日付を自動挿入する方法についてメモ。

コンパイルした日を入れるには \today なんかが使える。フォーマットが嫌なので以下のようにカスタマイズ。どっかから拾ってきた気がするがどこからかは忘れてしまった。

\newcommand{\todayd}{%
\the\year/{\ifnum \month < 10 0\the\month \else \the\month \fi}/%
{\ifnum \day < 10 0\the\day \else \the\day \fi}}
\newcommand{\todaye}{\the\year--\the\month--\the\day}

\todayd や \todaye が使えるようになる。ただし、これだとその日にコンパイルしないといけないのがネックである。

私は、ファイル名を日付にしているので、\jobname を使う手もあり。
Linux memo texで作成時間, ファイル名を出力

自己啓発本

現状のままだとまずいと思っているので、なんとか変わりたいと思っていくつか読んでみたりしてる。こういうのは答えがないからいろいろ出てるわけで、十分わかっているつもりなんだけど読みたくなるんだ。

出るからには売れてるわけで、僕よりももっと読んでいる人は一杯いる*1。というわけで、一杯読んだ人の記事を読んでみた。

http://d.hatena.ne.jp/yamauchikazuya/20080906

どんな過去を経たとしても過去の決断はベストだと思い込むこと。

我々はえてして過去にした決断は間違っていたと思いたがる。

しかし、過去にもっとひどい決断をしてしまったとしたらということを

考えない。

これがずしりときた。

ところで、はてな記法がいまいちわからない…。特にはてな自動リンク

d:id:yamauchikazuya:20080906

こうすればいいのか。普通にURLをコピペすれば済む気がするなぁ。

*1:そもそも僕は数冊くらいしか読んでいない、と思う

xyzzy + KaTeX

いじってみたので、忘れないようにメモメモ。

目的

pdfを作る&開くコマンドを登録する。
pdfを開くのは関連づけされたプログラムで。

コマンド登録

site-lisp/katex/katex.lを編集

(and (boundp 'window-system) window-system "S)earch ")
 "V)iewerr L)pr dvipdF)m viewpD)f"))
 ;((= c #\s) (KaTeX-xdvi-remote-search arg))
 ((= c #\f) (KaTeX-dvipdfm))
 ((= c #\d) (KaTeX-viewpdf))
 )
 (defvar dvipdfm-command "dvipdfmx ")
 (defun KaTeX-dvipdfm ()
 (interactive)
 (KaTeX-save-buffers)
 (KaTeX-call-command-on-file dvipdfm-command KaTeX-typeset-buffer))

 (defun KaTeX-viewpdf ()
  (interactive)
  (shell-execute
   (concat (KaTeX-get-preview-file-name) ".pdf")
   ))

ツールバー

KaTeXツールバーに表示する。site-lisp/katex/katexbar.lをこんな感じに。

 (defun KaTeX-tool-bar ()
  (create-tool-bar
   'KaTeX-tool-bar
   *KaTeX-toolbar-bitmap*
   '(("LaTeX" 0 (lambda () (interactive) (KaTeX-typeset-menu-after-mode-check nil #\j)))
 	 ("Preview" 1 (lambda () (interactive) (KaTeX-typeset-menu-after-mode-check nil #\p)))
 	 ("dvipdFm" 5 (lambda () (interactive) (KaTeX-typeset-menu-after-mode-check nil #\f)))
    )))

"site-lisp/katex/KaTeX-toolbar.bmp"には5がないのでアイコン加えておく。