2009/12/17

Javaで全角半角変換に向けて

研究の関係で、全角半角の変換を行う必要が出てきた。
数が多いので、Javaを使ってプログラムを書くことにした。

Javaは使用する文字コードがUnicodeで一貫している様子。
そこで、Unicodeの全角半角の文字コードに比較を行った。

英数字に関しては、16進数で
全角 = 半角 + ( FF00 - 0020)
半角 = 全角 - ( FF00 - 0020)

で、いけそう。

TeXでの条件分岐のやり方

ファイルを分割して作業をする必要上、
相対パスの設定に変更が必要となった。
そこで、条件分岐を使うことによって実現しようと思った。
その備忘録。

プリアンブル部分
% if文の定義
\newif\ifNAME
% 状態の定義
\NAMEtrue % TRUEの設定
\NAMEfalse % FALSEの設定

ボディ部分
\ifNAME
% TRUEの動作
\else
% FALSEの動作
\fi


参考URL
http://p-www.iwate-pu.ac.jp/~takasima/a-news/column/linux/1177730387.html

2009/12/16

トロイの木馬が・・・キター!!

11日あたり、自宅のPCにUSBメモリを挿入したら、McAfeeが

「トロイの木馬が検出され、削除しました」

といきなりメッセージが!!

ログを見たら、こんな感じ。

検出名:Generic PWS.ak
ファイル名:H:\emmsc2tf.exe
プロセス:C:\Windows\Explorer.EXE
プロセスの説明:エクスプローラ

あと、autorun.infを見たら、こんな感じ。
[AutoRun]
open=emmsc2tf.exe
shell\open\Command=emmsec2tf.exe

つまり、ファイルを残しておいて、USBを差し込んだら起動するようになっているみたい。
自分のPCはウィルスチェックかけて大丈夫だったみたい。

他のところに感染してないか、チェックしてもらうように、
お願いだしたけど、大丈夫かな??

2009/12/09

BuffalonasのWebアクセスで複数のファイルをアップロード

普段、Webサーフィンをするときに、Firefoxを利用している。

Buffalo NAS の Webアクセスにも、Firefoxを使っている。
一つずつファイルをアップするときには、何の問題もなかった。
しかし、複数のファイルをアップロードしようとすると、

「アップロード中に入出力エラーが発生しました」

と、表示されてしまった。
OKのボタンをクリックし、再度挑戦しても、一向にすすまない。

そこで、Internet Explorerでやってみた。
すんなり行った。

恐らく、セキュリティレベルとかの問題だと想像はできるけど、確かではない。
わざわざ、Buffalo に聞くのも面倒なので、複数ファイルのアップにはIEを使うことにしよう。

Rのグラフ:ラベルのフォントサイズ変更

Rでグラフを作成する際に、軸ラベルのフォントサイズが結構小さい。
Paperではいいけど、PPTのスライドに載せるときに小さいことがある。

そこで、変更方法。

plotのオプションで次を追加したら、いけそう・・・(未確認)
cex.lab=2

恐らくデフォルトは1。
上のオプション指定の方法だとx軸のラベルサイズを2倍にしてくれるんだと思う。

<追記:2009/12/09 10:55>
動作確認しました。
cex.lab = 2
で、xy軸のフォントサイズが変更になりました。
2にすると、約4倍になる。。。??

2009/12/06

Javaと文字コード

今、Javaを用いてプログラミングを行っている。
作っているアプリは研究で使うだけの、比較的簡単なもの。

で、色々と調べていたら、こんなページを見つけた。

「Javaにおける文字/文字列の扱い方 - ITアーキテクト [IT Architect]」
www.itarchitect.jp/beginners/-/10422.html

このページによると、JavaはUnicodeで作らないといけないらしい。
けど、今はShift_JISで作っている。

このような場合、コンパイル時に
「javac -encodeing SJIS」
というようにオプションを追加すると、
Unicodeに変換してからコンパイルしてくれるらしい。

2009/11/29

BuffaloNASのWebアクセスについて

共同研究先でBuffalo製のLinkStationというHDDを導入した。

LinkStationにした理由は以下の二つ。

  • Raidを組める

  • ユーザ認証を行いWebアクセスが可能



この理由で、導入を行った。
導入当初は、Webアクセスも可能だった。
しかし、突然Webアクセスができなくなった。

その原因として、Flets光を導入したことによる、ルータの問題かと思われた。

確かにこれも一つの原因ではあった。
参考にしたのは、こちらのサイト。
「www.akakagemaru.info/port/nttroter.html」
設定の流れは以下の通り。


  1. LinkStationのLANケーブルをFlets光のルータに接続

  2. ポート開放の設定(LinkStationのポート番号:9000)

  3. LinkStationのWeb設定画面へアクセス

  4. BuffakiNAS.comを使用して接続するよう設定

  5. UPnPを使用できなかったので、手動でポート設定(ポート番号:9000)



ここまでの作業で、ローカルPCからの接続は可能になるはず。
うまくできないときもあります。。。

外部のPCから接続する際には、ブラウザのセキュリティレベルに注意が必要。
以下のように設定すると見れる・・・はず。

Internet Explorer 8
ツール → インターネットオプション → セキュリティ → 
「このゾーンのセキュリティのレベル」を「中」に設定

Firefox 3.5.5
Buffalonas.comに接続 → ユーザ名とパスワードを入力 →
URLが表示されている部分の左側をクリック → 詳細を表示をクリック →
サイト別設定 → ポップアップウィンドウを開く → 許可

2009/11/24

LaTeX - 表のセルの結合

横方向(行)のセルの結合
\multicolumn{X}{Style}{Text}

X:結合するセルの数
Style:結合後のセルの書式
Text:結合したセルに表示する文字列


縦方向(列)のセルの結合(その1)
\cline{X-Y}

X-Y:X列からY列まで下線を引く

縦方向(列)のセルの結合(その2)
\usepackage{multirow}
\multirow{X}{*}{Text}

X:結合するセルの数
*:書式設定(自動的に中央添えになる)
Text:セルに表示する文字列

2009/11/18

enumerateへ相互参照方法

LaTeXのenumrateに相互参照方法

[設定方法]
\begin{enumerate}
\item \label{enum:○○}
\item \label{enum:××}
\end{enumerate}

[参照方法]
\ref{enum:○○}、\ref{enum:××}

2009/11/01

パソコンからビープ音が・・・













先日、アルバイトから帰宅後、デスクトップPCの電源を入れたところ・・・

ビープ音、再来!!

以前に同様の症状がありました。
ちなみに、パソコンのスペックはこんな感じ。
PC: DELL Inspiron530
OS: Windows Vista SP2 32ビット
Memory: 2.0GB
CPU: Intel(R) Core(TM) 2 Duo CPU @ 2.3GHz ×2

前回と違うところは、強制終了後に起動しても、すぐにビープ音とともにフリーズを繰り返し。
あと、起動できたら、Googleデスクトップのガジェットの一つがエラーが出て削除。

それでも、キーボード・マウスが使えなくなり、画面もフリーズ。
さらに、BIOSすら起動しない。。。

にっちもさっちも行かないから、PCの蓋を開けてみた。

そしたら、大量のホコリがファンのところについていた・・・
エアがないから、麺棒でホコリを除去。

グラボボードのファンにも凄いホコリがついてた。
だから、外して麺棒でホコリと戦闘。

ホコリとの死闘が終了して、背面にケーブル類を差し込み、起動。

・・・

一瞬ブルー画面が!!
でも、すぐに消滅。。。モニタ真っ暗・・・

仕方なく、強制終了。

再度起動すると、ログインまでできたけど、しばらくしてモニタだけがフリーズ。

強制終了&起動。

再びビープ音。
けど、今までと違うビープ音。
ピッ・・・ピッ・・・ピッ・・・

強制終了し、背面にモニタとキーボード、マウスだけを挿入し、起動。
このとき、試しにLANケーブルを抜いて起動してみた。

そうすると、ログインが完了し、使える状態に。
大丈夫かと思って、LANケーブルを入れた瞬間に、ピーピーピーピー・・・

LANケーブルを抜いて再度起動。
すんなりログインし、操作ができるように。

どうやらLANの問題だった様子。
とりあえず、お風呂に入るため、放置。

風呂から出てきて、試しにLANケーブルを挿入。
そしたら、意外と大丈夫・・・

一体なんだったんだろうか。。。

2009/10/30

TeXでダブルクォーテーション

短い引用を行う際に、
日本語では鍵括弧「 」
英語では“ ”
を使う。

Wordだと「Shift」+「2」と入力すると、自動的に“”と、開始と終了を判断してくれる。
しかし、TeXで半角英数字の状態で「Shift」+「2」と入力すると

""

のように、どちらも終了の形になってしまう。
そこで、TeXでは、
開始:「Shift」+「@」で `` と入力



終了:「Shift」+「2」で " と入力



これで、うまくいく。

2009/10/21

TeX-emathを用いたソースファイルの分割

LaTeXを用いて論文を書いている。
論文のページ数が増えてくると、章や節ごとに分けてコンパイルしたくなる。

通常では、\include{ファイル名}や\input{ファイル名}を使って分割を行う。
ファイル名には、相対パスや絶対パスを用いることが可能である。
参照元のファイルには、本文のみを入力する。

しかし、これらの場合、参照元のファイルを単体でコンパイルできない。

そこで、大熊一弘さんが公開しているemathを利用。
(http://emath.s40.xrea.com/)

このなかの「emathR」を使う。
この「emathR」の特徴は、
1.\begin{document}と\end{document}の間のみを参照
2.参照元ファイルのプリアンブルは参照しない
3.参照元ファイルの出来上がりを個別にチェックできる

もちろん、参照には相対パスが使える。


ファイル構造
main.tex
 |
 |-- /body
    |
    |-- sec1.tex
    |-- sec2.tex


----- main.texの内容 -----
\documentclass[12pt, a4paper]{jarticle}
\usepackage{emathR} % これが参照用マクロファイル
\begin{document}

\ReadTeXFile{body/sec1.tex}
\ReadTeXFile{body/sec2.tex}

\end{document}

----- sec1.texの内容 -----
\documentclass[12pt, a4paper]{jarticle}
\begin{document}

\section{sec1}
\subsection{test1}

参照元ファイル1

\end{document}

----- sec2.texの内容 -----
\documentclass[12pt, a4paper]{jarticle}
\begin{document}

\section{sec2}
\subsection{test2}

参照元ファイル2

\end{document}

Googleデスクトップの更新

自宅で使用しているPCがVistaで購入時に自動的にGoogleデスクトップがインストールされていた。
そのため、サイドバーを利用していた。
これまで利用していたガジェットは

・アナログ時計
・天気予報
・Googleカレンダー
・CPUとメモリー使用状況

持ち運び用に購入したXPにも、ガジェットを入れたいと思って検索。
どうやらGoogleのサイトで「Googleデスクトップ」をダウンロード&インストールすると使えるらしい。

早速ダウンロード。
あと、新しいガジェットもダウンロードした。

結局ノートPCにはGoogleデスクトップは入れないことにした。
けど、自宅のVistaに、ダウンロードしたガジェットを追加しようと思ってやってみた。

しかし、
「このガジェットには、Googleデスクトップのバージョン5以上が必要です。
Please install the latest version from http://desktop.google.com」
というアラーとが出てきた。

検索してみると、こんなブログを書いていた人がいた。
http://ameblo.jp/waka21/entry-10295883251.html

同じ状況・・・
どうやら、自動アップグレードしてくれないらしい。
手動アップグレードをしてくれって。。。
http://desktop.google.com/support/bin/answer.py?answer=58591&ctx=sibling


ちなみに・・・
俺のバージョン:Google デスクトップ 5.7.0806.10245-ja-pb

最新のバージョンは、、、サイトには表示されてないし。
英語サイト(English(US))だと、ブログを公開していて、それによると

5.8が最新らしい。日付は、「Wednesday, July 08, 2009 4:48 PM」(2009/10/21現在)

インストール後にバージョン確認:5.7.0806.10245-ja-pb

ん!?変わってない!??
ダウンロードしたファイルのプロパティを見ると、
「ファイルバージョン:5.9.909.30391」

インストールを再度試みた。
今度は大丈夫。。。Google デスクトップ 5.9.0909.30391-ja-pb
どうやら、EXEをUSBから起動したからうまくいかなかった様子。

先にダウンロードしていたガジェットも無事、インストール完了。

でも、追加しようとしたガジェットはGoogleデスクトップのバージョンが5以上なのに、インストールできなかったのか??

ま、皆様も手動でアップグレードした方がいいみたいですよ。

2009/10/20

footnote(脚注)

TeX command - \footnote
TeXで脚注を入れるコマンド - \footnote

*source
ためしにこんな脚注\footnote{コマンド例}を作る。

*DVI file
ためしにこんな脚注1を作る。

----------------------------------
1コマンド例

2009/10/14

タイがあるため・・・

Rを用いて正規性の検定を行った。
すると、こんなエラーメッセージが・・・

「タイがあるため、正しいp値を計算することができません」

タイ?
調べてみると、
タイ=同順位

つまり、
「同順位があるから、ちゃんとp値は計算できないよ~」
という悲鳴らしい。

同順位のデータを削除したくないので、どうしようもない・・・

参考URL:
http://www.okada.jp.org/RWiki/?R%A4%CE%B8%C5%C5%B5%C5%AA%B8%A1%C4%EA%B4%D8%BF%F4%B0%EC%CD%F7

Rとプロキシ設定

大学でRからパッケージをインストールしようとしたら

アクセスできない、というエラーが出てきた。

そこで、調べてみるとこんなページを発見!!
http://www7b.biglobe.ne.jp/~homunculus/r/rproxy.html

ショートカットの最後に「 --internet2」とすると、

IEのプロキシ設定を呼んできてくれるらしい。

ためしにやってみると・・・実行できた♪

2009/10/13

Rで単回帰分析

# 回帰分析
test.lm <- lm(y ~ x, data = data.frame(testdata))

# 結果の表示
# 回帰式:y = Ax + B のAとBを表示したり、AとBのF統計量のP値を表示したり
summary(test.lm)

# AとBの取り出し
A = test.lm$coefficients[2]
B = test.lm$coefficients[1]

# F統計量のP値の取り出し
summary(test.lm)$coefficient[, "Pr(>|t|)"]

# AのP値
summary(test.lm)$coefficient[2, "Pr(>|t|)"]
# BのP値
summary(test.lm)$coefficient[1, "Pr(>|t|)"]

# 散布図上に回帰直線を描画
abline(test.lm)

2009/10/11

Rスクリプトのコメント

Rという統計解析ソフトのスクリプトでのコメント行

----------------------------------------------
[test.R]

# filename.csvから読み込む <- この行がコメント行となる
TableName <- read.csv("filename", header = TRUE, separator = ",")

----------------------------------------------

つまり、#の後がコメント行となる。

2009/10/08

sqlite3 文字列を数値に型変換(Text -> Real)

sqlite3は、テーブル作成時に指定した型以外のデータをインポート可能。

しかし、sqlで比較演算を行うときには注意が必要。

文字列としてデータがインポートされた場合、数値で比較をすると「0」となる。

C言語などでは、明示的な型変換が可能だが、SQLITEではそのような関数がない。

そこで、こんなやり方でやってみた。


インポートしたデータ:<86(Text)
記号を削除:substr("<86",2) -> "86"(Text)
数値に変換:round(substr("<86",2)) -> 86(数値、Real)

2009/08/25

SQLite3 削除コマンド

テーブルやビューを削除コマンド

drop table TableName;
drop view ViewName;

データの削除コマンド
delete
from TableName
where 条件文

SQLite3でテーブルを作成するsqlファイル

create table TableName(
F1 integer not null autoincrement,
F2 real,
F3 varchar(x),
F5 text,
F6 datetime(Y-m-d H-i-s),
primary key(F1)
);

-- comment

2009/08/04

Mac X USBメモリへ移動

ターミナルで

cd /Volumes

と入力して移動する。
そうすると、記憶装置の一覧が表示される。
この中からUSBメモリの名前を見つければ、移動が可能。

Mac X のゴミ箱のパス

ターミナルで移動

cd ~/.Trash/


と入力して、エンターを押すとゴミ箱に移動ができる。

そして、


rm filename


とすると、特定のファイル・ディレクトリを削除することが可能。

2009/06/29

Seeting of LaTeX header & footer

\usepackage{fancyhdr}
\pagestyle{fancy}
\rhead{\scriptsize title}
\lhead{\scriptsize \leftmark}

2009/06/27

USBメモリにLinux-Knoppixをインストール

使用したもの

  1. Knoppix_v6.01をブートするCD
  2. USBメモリ:Sony pocketbit 1GB(WindowsによるFAT32フォーマット済み)

作り方

  1. Knoppix_v6.01.CDをブート起動
  2. USBメモリを挿入
  3. USBメモリが認識されたらマウントを解除(右クリックしてアンマウント)
  4. デスクトップ左下のメニュー → システムツール → Install KNOPPIX to flash disk
  5. インストールするUSBメモリを選択 → OK
  6. 自働的に開始。5~10分程度で終了
  7. 終了したらUSBメモリを抜いて、もう一度挿入
  8. USBメモリを開く
  9. syslinux.cfgをテキストエディタで開く
  10. 9行目の「F3」の下に「F4 syslinux.cfg」を追加
  11. 完成(USBメモリでブートして確認)

参考URL

「USBメモリからKnoppixをブートする―無聊写記」

www.hyodo-arch.com/buryoshaki/2009/02/usbknoppix.html

2009/06/23

Documentclass of LaTeX

\documentclass[a4j, landscape, twocolumn]{jreport}

\setlength{\columnseprule}{4pt}


\documentclass[b4paper,landscape,twocolumn,12pt]{jarticle}

\setlength{\columnseprule}{0.5pt}

\setlength{\columnsep}{4zw}

2009/06/20

SQL command

1) Read SQL file
.read FILENAME

2) Create DataBase with cmd.exe
sqlite3 DataBaseName.db

sqlite> create table TableName (i int, t text);
sqlite> insert into TableName(i,t) values(0, 'hoge');

3) Look at Table Values
sqlite> select * from TableName;

4) List up DataBase
.database

5) List up Table
.table

6) Exit sqlite3
.exit

2009/06/18

Cygwin - make header files

source file name : test.c
header file name : test.h

make o-file:
gcc -mno-cygwin -c test.c


---------- test.c ----------

#include <stdio.h>

int test-function( int age, int height, int weight){

printf("input your age : "); scanf("%d",&age);
printf("input your height : "); scanf("%d",&height);
printf("input your wight : "); scanf("%d",&wight);

printf("your data\n");
printf("age : %d\n",age);
printf("height : %d\n",height);
printf("wight : %d\n",wight);

return 0;

}

---------- test.h ----------

int test-function( int age, int height, int weight);

Cygwin - makefile of C

Command of ompile:make

exefile.exe: file1.o file2.o
gcc -mno-cygwin file1.o file2.o -o exefile.exe

file1.o: file1.c
gcc -mno-cygwin -c file1.c

file2.o: file2.c
gcc -mno-cygwin -c file2.c

2009/06/17

初カキコ

後輩に紹介してもらい作ってモタ。

研究などで調べたものを忘れないようにメモするようにしよう!!

以上。