yuyunko's blog

ぼうびろく

MacVimとVimShellとQuickSilverで快適コマンドライン生活

最近VimShellが便利すぎる.

MacVimで全画面で使うのが最高にいい.

そこで便利な設定を.


QuickSilverを使うとホットキーでアプリケーションを呼び出すことができる.

それに加えて,QuickSilverの環境設定のActionから新しいActionのToggle Applicationに
チェックを入れると,ホットキー1つでMacVimをトグルすることが出来る.

私はF10にそれを割り当てた.
F10を押す度にMacVimが出たり消えたりする.

また,出てきた時は全画面で出てきて欲しいので,以下の設定を.gvimrcに書く

"起動時に最大化
if has("gui_running")
  set fuoptions=maxvert,maxhorz
  au GUIEnter * set fullscreen
endif

これでF10を押して起動した瞬間に全画面になってくれる.
しかし,最近のLionのフルスクリーン仕様にMacVimがなってしまったせいか,トグルできなくなった.

従来のフルスクリーンに戻すためにターミナルで以下のコマンドを実行.(もちろんVimShellからでもおk)

defaults write org.vim.MacVim MMNativeFullScreen 0

これでF10でトグル出来るようになる.


いめーじ図
f:id:yuyunko:20110802223011p:image:w640

exiftoolでファイル名変更とディレクトリ作成&移動

exiftoolが非常に便利だ.

ふいに写真のファイル名を全部変更したくなった.

こういうのはコマンドラインシェルスクリプトとかでやるのが簡単でいいんだろうと思って調べたら
exiftoolというコマンドがあることを発見.

本来はperlのモジュール?的なものらしいが,コマンドも用意されている.

ファイル名変更の方法は以下の通り

exiftool '-FileName < CreateDate' -d %Y-%m-%d_%H-%M-%S%%-c.%%e *

これで
2011-06-21_21-18-08.jpg
とかいうファイル名になる.
ちなみに同じファイル名が存在した場合は%-cで指定してあるように'-'のあとに
数字がついて別ファイル名として変更される.

ディレクトリ作成とともにファイルを移動する場合は以下

exiftool '-Directory < CreateDate' -d %Y/%m *

これで
2011/06
とか
2011/05
とかいうディレクトリに割り振られて移動できる.
ディレクトリは存在してない場合は自動で作られる.

参考:Blogger: Sign in

Javaでsqlite3にJDBCで接続

最近Javaの勉強をしている.

そしてMySQLのめんどくささから,またRailsで正式採用されていることから
sqlite3を使ってみている.

そんなことでJavaからJDBCを用いてsqlite3に接続する方法を調べた.



まず,sqlite3に接続するコード.
パッケージはsqliteとした.

package sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DBManager {

	String file;

	public DBManager(String file) {
		this.file = file;
	}

	public Connection createConnection() throws ClassNotFoundException {

		try {
			Class.forName("org.sqlite.JDBC");
			Connection con = DriverManager.getConnection("jdbc:sqlite:" + file);
			return con;

		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return null;
		}
	}
}

それから実際に利用してみる.

package sqlite;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class SqliteTest {

	public static void main(String[] args) throws ClassNotFoundException {

		Connection con = null;
		Statement smt = null;
		ResultSet rs = null;

		try {
			con = new DBManager("sampletest.sqlite3").createConnection();
			smt = con.createStatement();

			smt.executeUpdate("DROP TABLE IF EXISTS DRAGONTB");
			smt.executeUpdate("CREATE TABLE DRAGONTB(NAME TEXT, SENTOURYOKU INTEGER);");
			PreparedStatement prep = con
					.prepareStatement("INSERT INTO DRAGONTB VALUES (?, ?);");

			prep.setString(1, "GOKU");
			prep.setInt(2, 5000000);
			prep.addBatch();
			prep.setString(1, "BEJITA");
			prep.setInt(2, 4000000);
			prep.addBatch();
			prep.setString(1, "KURIRIN");
			prep.setInt(2, 100000);
			prep.addBatch();

			con.setAutoCommit(false);
			prep.executeBatch();

			con.commit();

			rs = smt.executeQuery("SELECT * FROM DRAGONTB;");
			while (rs.next()) {
				System.out.println("NAME = " + rs.getString("NAME"));
				System.out.println("SENTOURYOKU = " + rs.getInt("SENTOURYOKU"));
			}

		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			try {
				con.close();
				smt.close();
				rs.close();
			} catch (SQLException e) {
				// TODO: handle exception
				e.printStackTrace();
			}
		}
	}
}

結果がこう出れば成功

NAME = GOKU
SENTOURYOKU = 5000000
NAME = BEJITA
SENTOURYOKU = 4000000
NAME = KURIRIN
SENTOURYOKU = 100000

参考
SQLite3でお手軽DBプログラミング - miyohideの日記

mocp

mocが音楽を聞くのにかなり便利.
Ubuntuでは簡単に使えたにの,Macではなかなかうまく出来なかったけど出来た.

まずMacPortsでインスコ

sudo port install moc +vorbis

vorbisをvariantsで指定するのを忘れずに.

それからjackdでサーバーを起動

jackd -d coreaudio &

そのあとmocを起動

mocp

hを押したらヘルプが出る.

参考:API Only - Stack Exchange


iTerm2

Macではターミナル + Visorがとても便利だったので使っていたのだが,最近iTerm2の存在を知った.

これはデフォでVisorと同じようにホットキーで呼び出せて,ProfilesのDisplayのStyleの
ところをTop of ScreenにするとVisorとほぼ同じになる.(Visor特有のあのニュルってのがないのが残念だけど)

アルファ版をインストールした.

アップデートも自動でできるようで便利.