Home> 産物アーカイブ

産物の最近のブログ記事

タイトルつきリンク生成プラグイン ver. 1.00

  • 2007年1月21日 20:31
  • 産物

今日一日はコレをせこせこ作ってた. センター試験 ? 何それキツいの ? え, 就活 ? ………

ダウンロード (zip, 4.62KB)

コレを作った最大の動機は, <A> のアンカー `XXXX` は NN行目で異なるリンク先を指しています。と言われたくないっつー欲求. 各記事の末尾に書いてた 「comments (0)」 のようなリンクがこれに引っかかってたんだけど, リンク毎に異なるタイトルを明示してやれば = title 属性の値を適切に書いとけば OK, ということで作った次第.

追記 (2007/03/23): 以降の記述は本プラグインとは無関係です.
title 属性を付加するプラグインを 2 つ作成し,1 つは上記プラグイン,もう 1 つは下記リンク先のプラグインを改造したもの (非公開),ということを書いたつもりでした.
誤解を与える書き方をしてしまい申し訳ないです.

このページへのアクセスが急に増えたと思ったら,こちらで紹介されたわけだったんすね.ありがとうございます.

ついでに, ページ左側の最新コメント/トラックバック最新コメントはともかく最新トラックバックは全く機能してねーなぁwについても同様の事態が起こり得ることに気付いたんで, こっちはプラグインの追加ではなく改造でとりあえず対処した. 元のプラグインはこちら.

DVI/PS/PDF 文書生成 Makefile

  • 2005年9月 6日 02:41
  • 産物

TeX 文書から DVI/PS/PDF 文書を生成するのに毎回コマンド打つのがめんどくせー と思って,以前研究室で Perl スクリプトを書いた記憶がある.bash ではなくて あえて Perl なのは単なる好み.でもこういうのは make でやるのが筋なんだろーな と思って,今 Makefile を書いてみた (参考:Make と Makefile の説明).


# Makefile for hoge.tex
# (C) 2005 Yoshinori IIHOSHI

LATEX = platex
DVIPS = dvips
PS2PDF = ps2pdf

TARGET = hoge

.SUFFIXES: .tex .dvi .ps .pdf

all: pdf

clean:
	rm -f *~ *.aux *.toc *.lot *.lof *.log

distclean: clean
	rm -f *.pdf *.ps *.dvi

pdf: $(TARGET).pdf

ps: $(TARGET).ps

dvi: $(TARGET).dvi

.tex.dvi:
	$(LATEX) $<
	$(LATEX) $<

.dvi.ps:
	$(DVIPS) $<

.ps.pdf:
	$(PS2PDF) $<

$(TARGET).dvi: $(TARGET).tex
$(TARGET).ps: $(TARGET).dvi
$(TARGET).pdf: $(TARGET).ps

なんだか一部冗長に思えるけどまぁいいや.

コメントプレビュー機能追加

  • 2005年3月 5日 10:46
  • 産物

前々から 「あると便利」 と思っていたものの 1 つ.
これも既にいろんな人によって作成されているんだけども,なーんか こう,(例えばソースコード上の) 些細な点が気に食わないってだけで,自分で書き直してしまうんだよなぁ.たぶん,その他人のソースを見なければ,そんな気を起こすことなく そのまま流用して幸せになれるんだろうけど,今回の場合は いかんせん "スクリプト言語" だもんなぁ.


/*
    previewComment.js
        コメントプレビュー スクリプト
        (C) 2005 Yoshinori IIHOSHI.
        Created :       2005/03/05 (Sat)
        Last Modified : 2005/03/05 (Sat)
 */


function previewComment()
{
    var strInit = "ここにコメントのプレビューが表示されます。"
    var eDescription = document.getElementById("description");
    var ePreview     = document.getElementById("preview");
    if (!eDescription || !ePreview) {
        return false;
    }

    var strComment = eDescription.value;
    strComment = strComment.replace(/&/g,  "&amp;");
    strComment = strComment.replace(/</g,  "&lt;");
    strComment = strComment.replace(/>/g,  "&gt;");
    strComment = strComment.replace(/\"/g, "&quot;");
    strComment = strComment.replace(/\n/g, "<br />");
    ePreview.innerHTML = (strComment != "") ? strComment : strInit;

    return true;
}

実際に使うには,プレビュー機能を付加したい HTML ドキュメント (当然 投稿フォームが存在するはず) を次のように編集する必要がある.

  • この JavaScript ファイルを指定する script 要素を追加する
  • (body 要素などの) onload 属性にこの関数を指定する
  • プレビューの対象に対応する要素 (ほとんどの場合 textarea 要素だろう) の id 属性の値を "description" とする
    また,この要素の onblur 属性にこの関数を指定する
  • プレビューを表示するための要素 (div 要素でも何でも) を追加し,その id 属性の値を "preview" とする
    また,この要素のスタイル (style 属性とか 外部 CSS + class 属性とか) を 投稿後に適用されるスタイルに合わせる

こーすると,コメントなどを投稿する前に 該当フォームからフォーカスを外せば,プレビューが表示されるというわけ.もちろん,「入力してはフォーカスを外し…」 を繰り返せば 何度も確認できる.

あー疲れた.ここまで詳細に書かなくても良かったよーな.「この Weblog のソース見ろ」+「実際にコメント投稿欄で試してみろ」 で済む話だし.

M3U Selector .NET v0.1

  • 2005年3月 5日 06:51
  • 産物

以前の投稿のままじゃマズいだろ,てことで記事編集・ファイル差し替え.ついでに名称も変更.でも未完成品であることに変わりなし.

selector01.zip (34.5KB)

動作確認は WinXP Home SP2 でしか行なっていないが,.NET Framework 1.1 がインストールされている環境なら正常に動くと思う.直接 Win32 API を使うようなことは多分していない.
製作期間は約 5 日..NET Framework + C# 万歳.
ReadMe.txt を追加したものの,肝心の 「使用方法」 について言及していない.ヘルプファイル完成・次期バージョン公開まで待たれよ.

以下,記事編集前の内容.

M3U Selector v0.1
Selector01.zip (32.2KB)
仮に置いてみる.要 .NET Framework v1.1.製作期間 約 5 日.マニュアル等なし.物好きな方は自己責任の下でどーぞ.

別に 未完成品を急いで up する必要は全くないけども.

リンク文字列相対パス表記 プラグイン

  • 2005年2月22日 16:35
  • 産物

sb 管理者のみをターゲットとした記事 第 2 弾.

管理用ページのアクセス解析表示に関するプラグインを作成した.下記リンク先のスクリーンショットを参照のこと.
プラグイン適用前プラグイン適用後
適用前の表示のされ方が気に食わなかったため,さくっと修正したわけだ.

show_relurl000.zip (v0.00, 1.31KB)
アクセス解析ページの ページ別集計・リンク元集計 において,指定された URL の下位階層に存在するページへのリンク文字列を 相対パス表記するプラグイン.

カレンダー CSS 適用プラグイン

  • 2005年2月 9日 06:46
  • 産物

もう少しマシなネーミングはないものか…>タイトル & プラグイン名

このサイトにも表示されているカレンダー.土日祝日をはっきりさせようと思っても,sb のデフォルトでは テンプレートの修正だけで済ませることができない.だからプラグインを作った.

calendar_css000.zip (v0.00, 2.37KB)
sb で表示されるカレンダーの 土日祝日に CSS を適用できるようにするプラグイン.つっても sb が吐き出す XHTML を修正しただけ.

同様の機能を持つ "他者製" プラグインはある.ただ,「些細な点が個人的に気に入らなかった」 & 「sb プラグインを作ってみたかった」 ということだ.

自動署名マクロ for EmEditor

  • 2005年2月 9日 00:24
  • 産物

職業柄 (!?),日々 多くのテキストファイルを書いている.TeX とか C とか JavaScript とか Perl とかその他諸々.こーいうファイルには常に,ファイルの概要・著作権表示・作成日・最終更新日 などといった情報を記しておきたい.「最終更新日 - 作成日」 が大きいと少し嬉しくなるのは俺だけ ?これまで手書きでやってきたわけだが,面倒だし,書き忘れてしまう場合が割とあった.

ということで,マクロを使って自動的に挿入・修正することにした.以下のコードをコピペして 拡張子 .jsee で保存して使う.WinXP + EmEditor v4.09 で正常動作を確認.


//
//  signature.jsee
//      自動署名マクロ
//      (C) 2005 Yoshinori IIHOSHI.
//      Created :       2005/02/08 (Tue)
//      Last Modified : 2005/02/08 (Tue)
//

// デフォルトのファイル作成者名
var g_strWriterName = "Yoshinori IIHOSHI";

/*
    getDateString()
        機能:  現在の日付を取得する
        引数:  なし
        戻り値:現在の日付を示す文字列 (書式:yyyy/mm/dd (Www) )
 */
function getDateString()
{
    var date = new Date();
    var year  = date.getFullYear();
    var month = date.getMonth() + 1;
    var day   = date.getDate();
    if (month < 10) {  month = "0" + month;  }
    if (day   < 10) {  day   = "0" + day;    }
    var wday = date.getDay();
    var aWeekday = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");

    return year + "/" + month + "/" + day + " (" + aWeekday[wday] + ")";
}

/*
    insertSignature()
        機能:  署名をファイルの先頭に挿入する
                 (ファイル名・概要・著作権表示・作成日・最終更新日)
        引数:  strDate - 現在の日付を示す文字列
        戻り値:なし
 */
function insertSignature(strDate)
{
    var sel     = document.selection;

    sel.StartOfDocument();
    sel.NewLine(3);
    sel.LineUp(false, 2);

    // ファイル名
    sel.StartOfLine();
    sel.Text = "\t" + document.Name;
    sel.NewLine();

    // 概要
    var strDescription = prompt("このファイルの概要を入力してください。", "");
    if (strDescription != "") {
        sel.StartOfLine();
        sel.Text = "\t\t" + strDescription;
        sel.NewLine();
    }

    // 著作権表示
    var date          = new Date();
    var strYear       = date.getFullYear();
    var strWriterName = prompt("このファイルの作成者名を入力してください。",
                               g_strWriterName);
    sel.StartOfLine();
    sel.Text = "\t\t(C) " + strYear + " " + strWriterName + ".";
    sel.NewLine();

    // 作成日時
    sel.StartOfLine();
    sel.Text = "\t\tCreated :       " + strDate;
    sel.NewLine();

    // 最終更新日時
    sel.StartOfLine();
    sel.Text = "\t\tLast Modified : " + strDate;
    sel.NewLine();

    // 改行時のゴミ (インデント) を削除
    sel.StartOfLine();
    sel.NewLine();
    sel.SelectLine();
    sel.Delete();

    sel.StartOfDocument();
    sel.LineDown(true, 7);
    editor.ExecuteCommandByID(4371);    // コメントを挿入
    editor.ExecuteCommandByID(4253);    // タブを空白に変換
    sel.Collapse();

    document.HighlightFind = false;
}

{
    var strDate = getDateString();
    var sel     = document.selection;
    sel.StartOfDocument();
    if (sel.Find("Last Modified : ", eeFindNext | eeFindReplaceCase)) {
        // 最終更新日を現在の日付で置き換える
        sel.Replace("\\d{4}/\\d{2}/\\d{2} \\(\\u\\l{2}\\)", strDate,
                    eeFindReplaceCase | eeFindReplaceRegExp);
        sel.Collapse();
        document.HighlightFind = false;
    }
    else {
        // 署名を新規に挿入する
        insertSignature(strDate);
    }
}

EmEditor のマクロ,と言うよりテキストエディタのマクロを書いたのは恐らく今回が初.今後は積極的に使おうかな.

線形代数学課題

  • 2004年11月19日 15:21
  • 産物

線形代数学 課題
LinearMath.zip (10.2KB, Shift-JIS, CR+LF)

課題内容の概要を以下に.

  1. 3 次正方行列の行列式の算出
  2. 連立 3 元 1 次方程式の解の算出
  3. 3 次正方行列の固有値・固有ベクトルの算出
  4. 上記中の "3" を "n" とした場合の処理

えーと,全て実装することはできなかった.
その他にも,様々な点において改良する余地が大いにある.

以下,キーワード.
ガウス (Gauss) の消去法,前方消去,後退代入,ヘッセンベルグ (Hessenberg) 行列,対角三重行列,ハウスホルダー (Householder) 変換,鏡像変換 (elementary Hermitian transformation),QR 法,ユニタリ行列,右上三角行列 etc...

機能情報工学コース課題

  • 2004年11月13日 21:13
  • 産物

知識情報工学実験 (機能情報工学コース) 課題 1~4
IMS-ETM.zip (13.7KB, EUC, LF)

「機能情報工学」って,英語でどう表現するんだろうか・・・.
我が知識情報工学系の Web サイト (English 版) によると Intelligent Media Science / Education Technology with Multimedia としているが.

P3 課題

  • 2004年10月14日 09:25
  • 産物

知識情報工学実験 (分子情報工学コース) P3 課題:最終報告書

昨日提出した課題.P1 課題と P2 課題の改良が主.といっても,P2 のプログラムで未実装だった機能のごく一部を実装しただけで,ほとんど改良していない(汗

P3.tar.gz (11.4KB, Shift-JIS, LF)

Next archives

Home> 産物アーカイブ

カテゴリ
アーカイブ
購読
Powerd By

Return to page top