トップ «前の日記(2008-08-10) 最新 次の日記(2008-08-12)» 編集

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|

2008-08-11 :-)

_ 朝っ

1000起床

だる

_ 仕事

今日から夏季休暇

_ どうしてスパゲティなんですか

という質問を5年くらい前のオフ会で id:bliss から訊かれておいて返答してなかったことを思い出した。

以下答え

_ あーあー

本日は晴れなり

_ あーあー

本日はキテレツなり

_ あーあー

てすてす

_ もなーもなー

もなー

_ あーあー

てすてす

_ わたしはけっこねん

名前はまだない

_ もげー

ちちをもげー

_ んふ

もな

_ [PATH_MAX][NAME_MAX]ファイル名の長さ

tdiary 「タグ名が長すぎる」と怒られた[ 20080804#p08 ]を追跡します。

こんなエラーでした。

File name too long - /home/rin/diary//category/... (Errno::ENAMETOOLONG)

/usr/pkg/lib/ruby/1.8/pstore.rb:295:in `initialize'
  :

pstore.rb のここ

293       content = nil
294       unless read_only
295         file = File.open(@filename, RDWR_ACCESS)   ← ここ
296         file.flock(File::LOCK_EX)
297         commit_new(file) if FileTest.exist?(new_file)
298         content = file.read()

open(2) です。

open(2) のマニュアルを読みます。

open - NetBSD Manual Pages

    [ENAMETOOLONG]     A component of a pathname exceeded NAME_MAX charac-
                       ters, or an entire path name exceeded PATH_MAX charac-
                       ters.

和訳が欲しいときは FreeBSD マニュアルを読みます。

On-line Manual of "open"

    [ENAMETOOLONG]     パス名の構成要素が 255 文字を越えているか、またはパス
                       名全体が 1023 文字を越えています。

各々の値はいくつでしょうか。

#include <stdio.h>
#include <limits.h>

int main( int ac, char** av)
{
  printf("NAME_MAX: %d\n", NAME_MAX);
  printf("PATH_MAX: %d\n", PATH_MAX);
  return 0;
}

実行。

NAME_MAX: 255
PATH_MAX: 1024

エラーになった /home/rin/diary//category/... は full path ですが、このうちファイル名の部分の長さは 354 文字あります。

よって、今回は NAME_MAX の制限にひっかっかったようです。

_ [App::Ack][grep]App::Ack を入れる

ソースコード検索の ack がよさげな件: blog.bulknews.net

CPAN シェルから install App::Ack とするだけ。

するだけ。

  :
Installing /usr/pkg/lib/perl5/site_perl/5.8.0/App/Ack.pm
Installing /usr/pkg/lib/perl5/site_perl/man/man1/ack.1
Installing /usr/pkg/lib/perl5/site_perl/man/man3/Ack.3
Installing /usr/pkg/lib/perl5/site_perl/bin/ack
Writing /usr/pkg/lib/perl5/site_perl/5.8.0/i386-netbsd-thread-multi/auto/ack/.packlist
Appending installation info to /usr/pkg/lib/perl5/5.8.0/i386-netbsd-thread-multi/perllocal.pod
  /usr/bin/make install  -- OK

ということでここに入りました。

% ls /usr/pkg/lib/perl5/site_perl/bin/ack

_ [GNU global]GNU global を入れる

% cd /usr/pkgsrc/devel/global
% sudo make install clean-depends

試しに使ってみる。sudo しないといけないような場所にタグを生成するのがキモイんだが出力先は指定できないんだろか。

% cd /usr/src/usr.bin/top
% sudo gtags -v

_ Emacs から GNU global

.emacs にあれこれ設定します( ref. Emacs + GLOBALでソース読みを快適に - ひげぽん OSとか作っちゃうかMona- )

gtags.el がここにあります。

% ls /usr/pkg/share/gtags/gtags.el
/usr/pkg/share/gtags/gtags.el

load-path に追加。

(setq load-path
      (append
       '("~/usr/local/share/emacs/site-lisp")
       '("/usr/pkg/share/emacs/site-lisp/w3m")
       '("/usr/pkg/share/emacs/site-lisp/apel")
       '("/usr/pkg/share/emacs/21.4/site-lisp/emu")
       '("/usr/pkg/share/emacs/site-lisp/ruby-mode")
       '("/usr/pkg/share/gtags")
       load-path))

これも。

(autoload 'gtags-mode "gtags" "" t)
(setq gtags-mode-hook
      '(lambda ()
         (local-set-key "\M-t" 'gtags-find-tag)
         (local-set-key "\M-r" 'gtags-find-rtag)
         (local-set-key "\M-s" 'gtags-find-symbol)
         (local-set-key "\C-t" 'gtags-pop-stack)
         ))

vim は設定してないです( ref. 3.5 Vim using GLOBAL )

_ [tdiary][はてなホットエントリー][hotentry]tdiary にはてなホットエントリーを表示する

hsbt さんとこ の「最近注目の日記」や machu さんとこ の「人気の日記を読む」のアレを表示します。hsbt さんに訊いたら教えてくれました。

Twitter / SHIBATA Hiroshi: @miwarin 人気の日記プラグインですけど、最新はこっちです http://coderepos.org/sh...

ということでプラグインはこちら。contrib です。

CodeRepos::Share Trac

tdiary-trunk を追跡してるのですでに手元にありました。コピーします。

% cp contrib/plugin/my_hotentry.rb ~/public_html/tdiary-trunk/plugin

ヘッダまたはフッタに以下を書きます( フッタのほうがいい )( ref. void GraphicWizardsLair( void ); // script type="text/javascript"で.jsを呼び出すタグは、出来る限り本文の後に移動したほうが閲覧者に親切 )

<%= my_hotentry %>

あとは日記を更新すればホットエントリーを取得して、表示されます。

_ [GNU global][gtags]GNU global の gtags の出力先を変更する

あった。

GNU GLOBAL source code tag system - 2.3 Applied usage

このとおり作業する。

% cd /usr/src/usr.bin/top
% mkdir ~/work/netbsd.tags
% gtags -v ~/work/netbsd.tags
% export GTAGSROOT=`pwd`
% export GTAGSDBPATH=/home/rin/work/netbsd.tags

コマンドラインから使ってみる。

% global i_loadave
display.c

ok

Emacs からも使えました。

_ [GNU global]GNU global の環境変数を設定ファイルに書いておく

~/.globalrc に書いておけば global が起動時に読むかと期待したけど読まないようです。

% cp /usr/pkg/etc/gtags.conf ~/.globalrc
export GTAGSROOT=/usr/src/usr.bin/top
export GTAGSDBPATH=/home/rin/work/netbsd.tags
% cd
% global main
global: GTAGS not found.

.zshenv などに書くことにしました。

export GTAGSROOT=/usr/src/usr.bin/top
export GTAGSDBPATH=/home/rin/work/netbsd.tags
% cd
% global main
../../usr/src/usr.bin/top/top.c

_ [][コロッケ]飯

コロッケ( ref. きょうの料理 2005-01 p.82 )

本日のツッコミ(全4件) [ツッコミを入れる]
_ ぶんじ (2008-08-11 12:19)

仕事でスパゲッティ扱ってるからじゃないんすかー?

_ みわ (2008-08-11 12:29)

ぶんじさん:<br>残念ながらパスタ(笑)は扱っていてもスパゲティは扱っていません。

_ 堀内 (2008-08-12 11:57)

どういう経緯でそういった質問をしたか記憶にないですね・・・。

_ みわ (2008-08-12 12:55)

堀内さん:<br>前後の話題は私も覚えてないです。当時ほかにどのような会話をしたかさっぱり覚えてないのだけど、なぜかこの質問のところだけ覚えてました。<br><br>「墓場に入る前に返答しておかないといけない」というプレッシャーがあったんだろうか........