PukiWikiに移行

PukiWikiに移行

もとから記事自体は少なかったですが、 wikiをFreeStyleWikiから PukiWiki に変更しました。

理由として一番大きかったのは ox-pukiwiki をインストールすることで Emacsのorg-modeで記事を書くことができるためです。

ソースコードは

  1. #+BEGIN_EXAMPLE#+END_EXAMPLE で囲む。
  2. #+INCLUDE: (ファイル名) SRC EXAMPLE でファイルをインクルードする。

のどちらかで表示することができました。

ただしソースコードの色付けはできません。

【追記】

公開していた内容を修正するなど現時点では古くなったものもあるため、

  • FreeStyleWiki
  • Nucleus, cafe

で作成したページの公開は終了しました。

必要と思われるページについては既に移行しています。

org-modeの設定 (HTML)

org-modeでHTMLファイルを書き出す時に使用したプリアンブル

トップページは見出しの番号および目次が必要ないため

#+OPTIONS: num:nil
#+OPTIONS: toc:nil

タイプスタンプ(ファイルの更新日時)を表示させない場合

(今回はこの行をコメントアウトしている)

#+OPTIONS: timestamp:nil

f.elに関するメモ

Emacsのモダンなライブラリ4+1選 で紹介されていたf.elパッケージについて、少し勉強したのでその内容をメモ的に残しておきます。

このページの存在は少し前に知っていましたが、 るびきち様 にパッケージと関数を教えて頂いたので自分でも調べてみました。

ファイルに関する関数

f-で始まる関数がf.elパッケージで提供されている関数です。

関数名が短かくて分かりやすくなるとともに ~を自動で展開 (expand-file-name)してくれるものが多いため プログラムが簡潔になりそうです。

また、ファイルの拡張子を変更するf-swap-ext関数は非常に便利かもしれません。

(require 'f)
(setq file "~/.emacs.d/init.el")

;;; ファイル
;; 絶対パス(フルパス)
(expand-file-name file)          ; => "/home/ara/.emacs.d/init.el"
(f-expand file)                  ; => "/home/ara/.emacs.d/init.el"
;; ファイル名(ディレクトリ以外)
(file-name-nondirectory file)    ; => "init.el"
(file-name-nondirectory
 (directory-file-name file))     ; => "init.el"
(f-filename file)                ; => "init.el"
;; ファイルのベースネーム
(f-base file)                    ; => "init"
;; 拡張子
(file-name-extension file)       ; => "el"
(f-ext file)                     ; => "el"
;; 拡張子なしのパス
(file-name-sans-extension file)  ; => "~/.emacs.d/init"
(f-no-ext file)                  ; => "~/.emacs.d/init"

;;; ファイル => ディレクトリ(末尾の/なし)
(directory-file-name
 (file-name-directory file))     ; => "~/.emacs.d"
(f-dirname file)                 ; => "/home/ara/.emacs.d"
;;; ファイル => ディレクトリ(末尾の/あり)
(file-name-directory file)       ; => "~/.emacs.d/"
(f-slash (f-dirname file))       ; => "/home/ara/.emacs.d/"

;; パスの結合(/の有無は自動で処理される)
(f-join "~/.emacs.d" "init.el")  ; => "/home/ara/.emacs.d/init.el"
(f-join "~/.emacs.d/" "init.el") ; => "/home/ara/.emacs.d/init.el"

;; 拡張子の変更
(f-swap-ext file "elc")          ; => "~/.emacs.d/init.elc"

ディレクトリに関する関数

  • 末尾の/を外すのがf-long
    • 内部でf-expandを呼び出しているだけ(f-expandで十分かも)
  • 末尾の/をつけるのがf-full
    • f-longの後にf-slashを適用している
(require 'f)
(setq dir1 "~/.emacs.d")
(setq dir2 "~/.emacs.d/")

;;; 絶対パス(フルパス)
(expand-file-name dir1)          ; => "/home/ara/.emacs.d"
(expand-file-name dir2)          ; => "/home/ara/.emacs.d/"
(f-expand dir1)                  ; => "/home/ara/.emacs.d"
(f-expand dir2)                  ; => "/home/ara/.emacs.d"

;;; ディレクトリ
;; ディレクトリ(末尾の/なし)
(directory-file-name dir1)       ; => "~/.emacs.d"
(directory-file-name dir2)       ; => "~/.emacs.d"
(f-long dir1)                    ; => "/home/ara/.emacs.d"
(f-long dir2)                    ; => "/home/ara/.emacs.d"
;; ディレクトリ(末尾の/あり)
(file-name-as-directory dir1)    ; => "~/.emacs.d/"
(file-name-as-directory dir2)    ; => "~/.emacs.d/"
(f-slash dir1)                   ; => "~/.emacs.d/"
(f-slash dir2)                   ; => "~/.emacs.d/"
(f-full dir1)                    ; => "/home/ara/.emacs.d/"
(f-full dir2)                    ; => "/home/ara/.emacs.d/"

その他の関数

f-readあるいはf-read-textは非常に便利そうです。

with-temp-buffer => insert-file-contents のような作業を内部で行ってくれます。結果がバッファへの挿入ではなく文字列として返ってくるのだけが異なりますが、それでもプログラムが非常に簡潔になりそうです。

;; ファイルを文字列として読み込む(codingは省略可能:デフォルトは'utf-8)
(f-read path coding)
(f-read-text path coding)

;; 文字列をファイルに保存(codingは省略可能:デフォルトは'utf-8)
(f-write text coding path)
(f-write-text text coding path)

;; このファイルのフルパスを得る
(f-this-file)

Let’s Note CF-4WにSSDを導入

先日PanasonicのLet’s Note CF-4WのHDDをSSDに交換したのでその際の記録です。今回SSDとしてIDE接続のものではなく、mSATAのSSDをIDEに変換したものを使用しました。交換の手順はこのページ の記事を参考にしました。交換ですが実質1時間程度で終了しました。ただし写真は撮影していませんので文章だけの記事になります。

CF-4Wに内蔵されていたHDDは東芝製のMK4025GASLという特殊なものでした。この種のHDDが内蔵されている機種に新たにHDDあるいはSSDを交換する場合には、 41番ピン折りという作業が必要です(参考ページ)。むしろ41番ピン折りを行なわないと故障します(参考ページ)。

購入したものは以下の2点です。

  • mSATAのSDD:A-DATA mSATA SSD (64GB SATA6G) ASP310S3-64GM-C (Amazonページ
  • 玄人志向セレクトシリーズ mSATA SSD IDE変換アダプター KRHK-MSATA/I9 (Amazonページ

始めに調べたところ、このKRHK-MSATA/I9の41番ピンと42番ピンは(SSDを装着しなくても)もともと導通しているため、 41番ピンを折りました(44番ピンは折らなくても大丈夫でした)。また、始めから20番ピンがないので装着時に逆向きに取り付ける心配はありませんでした。

これでBIOSで認識され、OSのインストールも完了しました。 Vine Linux6.2でデスクトップ環境をfluxboxにしたところ、電源オンから30秒ちょっとで起動しました。 IDE接続なので爆速というわけではありませんが、それでも起動が速くなりました。

統計手法について

独立した2群間の平均値の比較をする場合

  • Studentの t-検定
  • Welchの検定

がありますが、どちらを使用していますか?

「独立した」というのは「A群とB群に同一人物がいない」と考えて下さい。

  • Studentの t-検定は母集団の分散が同じ事を前提としている
  • Welchの検定は母集団の分散が同じ事を前提としていない

という違いがあります。

結果から言うと、Welchの検定の方が優れています。

t-検定は母集団が等分散でない場合に、「本当は2群間の平均値に差がない場合に間違えて差があると結論を出してしまう(第1種の過誤)」可能性が大きくなってしまいます。

【参考】

青木先生のサイト

このサイトについて

【このサイトを立ち上げた理由】

現在2か所で非常勤講師をしていますが、非常勤のため学生が質問したくてもその機会があまりありませんでした。

それで趣味と実益を兼ねてこのようなサイトを立ち上げてみました。ただしホームページに関しては初心者なので、見栄えは本当にシンプルなものにしています。

質問がある場合には

のどちらかからすることができます。

どの程度需要があるのかは予想がつきませんが有効に使用して下さい。

メール送信スクリプト

Linuxのコマンドラインからメールを送信するスクリプトを作成(正しくはwebの内容を改変)した。

  • 添付ファイル可能(0でも複数でも)

使用する機会は今の所ほとんどないと思う……

詳しくはwikiで。

#!/bin/bash

############################
## メール添付ファイルスクリプト
## コマンドラインから添付付きメールを送信するスクリプトです.
##
## send_mail.sh {toアドレス} {タイトル} {本文ファイル} [{添付ファイル名}...]
##
############################

## Init section
from_addr='ara_t@po.mdu.ac.jp'
to_addr=$1
subject=`echo $2 | nkf -w -Lu`
mail=`cat $3 | nkf -w -Lu`
shift; shift; shift
boundary=`date +%Y%m%d%H%M%N`

## generate MIME encoded mail
echo "From: $from_addr" > .MIME_MAIL.tmp
echo "To: $to_addr" >> .MIME_MAIL.tmp
echo "Subject: $subject" >> .MIME_MAIL.tmp
echo "MIME-Version: 1.0" >> .MIME_MAIL.tmp
echo "Content-type: multipart/mixed; boundary=\"----$boundary\"" >> .MIME_MAIL.tmp
echo "Content-Transfer-Encoding: 7bit" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp
echo "This is a multi-part message in MIME format." >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp

## Insert MAIL_BODY (if you need)
echo "------$boundary" >> .MIME_MAIL.tmp
echo "Content-type: text/plain; charset=utf-8" >> .MIME_MAIL.tmp
echo "Content-Transfer-Encoding: 7bit" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp
echo "$mail" >> .MIME_MAIL.tmp
echo "" >> .MIME_MAIL.tmp

## Attach file to E-Mail
while [ $# -ge 1 ] ; do
  attach_file=$1
  filename=`echo $attach_file | sed -e "s/.*\/\(.*$\)/\1/"`
  content_type=`file --mime $attach_file | cut -d' ' -f2`
  echo "------$boundary" >> .MIME_MAIL.tmp
  echo "Content-type: $content_type" >> .MIME_MAIL.tmp
  echo " name=$filename" >> .MIME_MAIL.tmp
  echo "Content-Transfer-Encoding: base64" >> .MIME_MAIL.tmp
  echo "Content-Disposition : attachment;" >> .MIME_MAIL.tmp
  echo " filename=$filename" >> .MIME_MAIL.tmp
  echo "" >> .MIME_MAIL.tmp
  cat $filename | base64 >> .MIME_MAIL.tmp
  echo "" >> .MIME_MAIL.tmp
  shift
done
echo "------$boundary--" >> .MIME_MAIL.tmp

## Send E-Mail
/usr/sbin/sendmail -i $to_addr < .MIME_MAIL.tmp

## Delete TEMP file
rm -f .MIME_MAIL.tmp

exit 0