JavaでCSV形式のファイルを扱うためのライブラリ「OpenCSV」

JavaCSV形式のファイルを扱うためのライブラリをインストールしました.opencsv | Free Development software downloads at SourceForge.netに置いてあるファイルを落として利用します.

環境

  • OS Ubuntu 10.04(LTS) ※LinuxならなんでもOKです

インストール

# 入手(version は 2.2)と解凍
$ wget http://sourceforge.net/projects/opencsv/files/opencsv/2.2/opencsv-2.2-src-with-libs.tar.gz/download
$ tar zxvf opencsv-2.2-src-with-libs.tar.gz 

# .jarファイルを探す
$ find opencsv-2.2/ -name '*.jar'
opencsv-2.2/lib/junit-4.7.jar
opencsv-2.2/deploy/opencsv-2.2.jar

# 所望のjarファイルを/usr/share/java/にコピー(置きたい所に置いて下さい)
$ cp opencsv-2.2/deploy/opencsv-2.2.jar /usr/share/java/

# 後のファイルは不要なので消しちゃってもOKです
$ rm -rf opencsv-2.2/

サンプルプログラム

SamleOpenCSV.java

import au.com.bytecode.opencsv.*;
import java.io.*;
public class SampleOpenCSV {
  public static void main(String[] args) throws IOException {
    CSVReader reader = new CSVReader(new FileReader("sample.csv"));
    String[] nextLine;
    while ((nextLine = reader.readNext()) != null) {
      // nextLine[] is an array of values from the line
      System.out.println(nextLine[0] + " " + nextLine[1] + " " + nextLine[2]);
    }
  }
}

sample.csv

姓,名,年齢
とうきょう,たろう,33
東京,太郎,15

コンパイル&実行

$ javac -cp /usr/share/java/opencsv-2.2.jar SampleOpenCSV.java 
$ java -cp /usr/share/java/opencsv-2.2.jar:. SampleOpenCSV
姓 名 年齢
とうきょう たろう 33
東京 太郎 15

Lotka-Volterra モデル

みんなで Lotka-Vokterra モデルを用いた論文を調査したのでメモ。

  • 感染症の伝播(反応拡散モデル)

実装

「通信ネットワーク/競争モデル」に決定。「スマートフォンガラケーの競争」をやってみたい。

Ubuntuにphpmyadmin

以前,自宅のlaptopの方にphpmyadminをインストールしたのだが,http://localhost/phpmyadmin/にアクセスしても'404 Not Found'となっていた.単にシンボリックリンクを張っていなかったためだった.よってメモ.

# シンボリックリンクの生成
$ sudo ln -s /usr/share/phpmyadmin /var/www
# 確認
$ ll /var/www
合計 8
-rw-r--r-- 1 root root 177 2010-04-24 04:38 index.html
-rw-r--r-- 1 root root  20 2010-04-28 03:00 phpinfo.php
lrwxrwxrwx 1 root root  21 2010-05-27 00:20 phpmyadmin -> /usr/share/phpmyadmin

これで,http://localhost/phpmyadmin/にアクセスするとログイン画面が出た.なーんだ.

フィードの取得

$url = "取得したいURL";

危ない例

$xml = simplexml_load_file($url);
var_dump($xml);

安全な例

if( ($str = file_get_contents($url)) == true){
$xml = simplexml_load_string($str);
var_dump($xml);
}

インターンで

確かこんなんやったっけ?一回URLが存在するか確認してからXMLを取得しないといけないですよねってやつ.ふと思い出した.コードは適当.

そろそろ

インターンのTAの準備しないとなー最近PHP触ってない…orz 自分のときはPHPフレームワーク CodeIgniter 使ったけど,次は何を使うのかな?

Livedoorクリップの EDGE Datasets

やられた

"352","http://japan.cnet.com/news/media/story/0,2000056023,20147647,00.htm","2006-06-27 17:30:53","EC 気になる 仕事"
"869","http://japan.cnet.com/news/media/story/0,2000056023,20147647,00.htm","2006-06-22 23:29:30","yahoo アフィリエイト バリューコマース Yahoo! 後で読む"
"376","http://japan.cnet.com/news/media/story/0,2000056023,20147647,00.htm","2006-06-22 11:40:40",""

フィールドの区切りが「,(カンマ)」であるにも関わらず,URLにカンマが含まれている.もっと早く気づけよ>自分

対策

「"」でsplitするしかないか...どんどん分かり辛いコードになっていくなぁ

ぜみがあまり進まない

ゼミ

前回(http://d.hatena.ne.jp/kyohei_hamada/20100507)の続きをレジュメにまとめたので再びdisった.数式の説明に時間がかかったため,今回は1時間余りの時間で3.3節のみしかできなかった.以下,反省点.

反省点

  • 自身が理解している内容を他学生と共有できなかった→図を用いた説明のシミュレーションがまだまだ甘い
  • 緊張するな>自分

次回

他学生の理解がイマイチなので,もう一度全体のフレームワークを説明(別途レジュメを作成)し.3.4節を説明,4節の評価実験へと入っていく.

感想

早く実装段階に入りたいが,どんなideaを盛り込むべきかまだわからない.こんなにゆっくり論文を読んでいて大丈夫だろうか...

できるのかこれ

ssh,イントラネット

sshを利用して自宅のマシン(Windows)から研究室のマシン(Ubuntu)にアクセスしたい」が,学内のネットワークはイントラネットによって構成されているため,てこずりそうな予感.以下,「ssh イントラネット」でぐぐって得たキーワードの列挙.

  • sshポートフォワード
    • ローカルフォワード
  • PuTTY