Hatena::ブログ(Diary)

えびし日記

2011-11-18

Mac(Lion)にeclipse3.7(Indigo)をインストールして日本語化

お久しぶりです…!

最近MBAを購入したので、うきうきでいろいろ設定しています。

あとでその設定をまとめたいのですが…がが…

とりあえず今回はeclipseインストールと日本語化の手順を、備忘録の意味で書いておきます!

手順の流れ

1.eclipseダウンロード

http://www.eclipse.org/downloads/

↑こちらの本家からダウンロードします。

Eclipse IDE for Java EE Developers

の、32bit/64bitのうち自分の環境に合っているほうをダウンロード

ちなみに、Lionで自分の動作カーネルを確認するには、以下のコマンドを打ちます。

uname -a

表示された情報の最後に「x86_64」とあったら64bit、「i386」とあったら32bitで動作しているそうです。

参考:Lionでの動作カーネルの確認方法 @ アールケー開発

2./Applications以下に展開

私は~/Downloadsにダウンロードしたので、以下のコマンドで/Applicationsに展開します。

tar -xvf ~/Downloads/eclipse-jee-indigo-SR1-macosx-cocoa-x86_64.tar.gz -C /Applications
3.日本語化プラグインダウンロード

http://mergedoc.sourceforge.jp/

↑ここからpleiades.zipダウンロードします。

展開。

unzip Downloads/pleiades.zip
4.日本語化プラグインeclipseに追加

解凍したpleiades.zip以下のpluginsフォルダとfeaturesフォルダの中身を、eclipseのplugins,features以下に追加します。

cp -rf plugins/* /Applications/eclipse/plugins
cp -rf features/* /Applications/eclipse/features

なんだかコマンドの打ち方がまどろっこしいですが、UNIXに慣れていないためです…いい加減覚えねば><

5.eclipse.iniを編集

最後に、eclipse.iniを編集します。

eclipse.iniはどこにあるんだ!?とおもったら、

/Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini

ここにありました。

これを編集して、最後の行に以下を貼り付けます。

 -javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar
6.起動

ecliose.iniを編集したので、-cleanオプションeclipseを起動します。

/Applications/eclipse/eclipse -clean

以上です!!!!

7.おまけ:コンテンツ・アシストのキーバインドを「command+Space」にする

あと、コンテンツ・アシストのキーバインドspotlightの「^Space」と被っていたので変更しました。

「command+Space」にしたかったのですが*1macのシステムの「前の入力ソースを選択」のショートカットキーと被っていたので、まずはこちらを別のキーバインドに変更。

りんごマーク>システム環境設定>キーボードキーボードと文字入力
↓
「前の入力ソースを選択」のキーバインド設定部分をダブルクリック
↓
「control+command+space」に変更(被ってなさそうだったので)

次にeclipseキーバインドを変更。

Eclipse>環境設定>一般>エディター>キー
↓
コンテンツ・アシストのキーバインドに「command+Space」を打ち込む
↓
OK

これで無事「command+Space」で入力補完ができました!!

参考にさせて頂きました

La Thinking Motion. - [mac] Mac OS X LionにEclipseをインストールして日本語化までのメモ

OS X Lion に Eclipse 3.7 を入れる + 日本語化 - It’ll be

MacでAndroid開発環境構築(2/4) Eclipse導入編 | kitakatsuLab

*1:ちなみに、すでにcontrolとcommandを入れ替えているため、「command+Space」が打ちやすいのでした。

2011-07-04

WindowsでPostgreSQLを使う

こんにちは!約半年ぶりのえびしです。

(そんな半年前には何を書いたのかと思ったら、「MacBook Air11インチ欲しい!」のあれでした…)


最近、

PostgreSQLのダンプファイルを元にMySQLにデータを移行する

というお仕事があったのですが、いろいろとつまずいたところがあったため、日記に書いておきます。


Windowsユーザアカウント「postgres」が必要

上記のサイトを参考にさせていただきました。


WindowsPostgreSQLを使うときは、「postgres」という名のWindowsユーザーアカウントが必要です。

postgresアカウントは、制限ユーザとして作成して、パスワードを設定しておきます。


アカウントができたらインストールを開始します。

Windows用のインストーラはこちらを使いました。

Download PostgreSQL | EnterpriseDB


ウィザードにしたがっていくと、パスワードを入力するところがあります。

これはpostgresアカウントパスワードを要求しているので、先ほど設定したパスワードを入力します。


postresというアカウントを作っていなかった場合は、ここで好きなパスワードを入力すると、windowsアカウントが自動的に生成されます。

ところが、自動生成されたpostgresは、Windowsの「コントロールパネル>ユーザーアカウント」に表示されません。

よって、アカウントの管理はnet userコマンドを使って行うことになります。


ファイル操作時の注意

postgresは制限ユーザなので、アクセスに制限があります。

そのため、例えばcopyコマンドを使ってファイルを生成しようとするときは、postgresがアクセスできる階層を指定しなければなりません。


MySQL Mygration Toolkit

MySQL :: MySQL GUI Tools Bundle: Archived Downloads

MySQL Mygration ToolkitというMySQLへの変換ツールがあるのですが、

PostgreSQLから変換するときは、うまく変換されない部分多々ありました。

nextval()などのMySQLにはない関数がそのまま残ってしまっていたり…

バージョンの違いでうまくいかない部分もあったりするのでしょうか。ぐぬぬ

2010-11-16

【PHP】TwitterのOAuth認証を使ったログイン

TwitterOAuth認証をPHPで実装します。

ログアウト処理がうまくできてないのでご助言いただけるとありがたいです…!

ライブラリ

こちらのライブラリを使いました。

ほかのスクリプトと同じディレクトリに保存しました。

準備

ここでアプリケーションを登録します。

アプリケーションの種類はブラウザアプリケーション

callbackURLにはlocalhostが指定できないので適当に登録します。

登録すると、Consumer keyとConsumer secretが得られます。

これを使って認証します。

Access token取得の流れ

  1. Consumer keyとConsumer secretを使ってRequest tokenとRequest secretを取得
    1. このとき、callbackURLを指定する
  2. Request tokenとRequest secretを使ってAuthorizeURL(Twitterの認証URL)を取得
  3. ユーザが認証ボタンを押す
  4. callbackURLにパラメータ(oauth_verifier)が付いて返ってくる(GET送信される)
  5. Consumer key、Consumer secret、Request token、Request secret、そしてoauth_verifierを使ってAccess tokenを取得

ややこしや!!

ソース

  • testoauth.php
<?php
session_start();
require_once("twitteroauth.php");// ライブラリの読み込み

// セッションにアクセストークンがなかったらloginページに飛ぶ
if($_SESSION['oauth_token']===NULL && $_SESSION['oauth_token_secret']===NULL){
	header("Location: login.php");
}

$user_id = $_SESSION['user_id'];
$screen_name = $_SESSION['screen_name'];
echo "<html><head><title>top</title></head><body>";
echo "<p>ようこそ!".$screen_name."さん</p>";
echo "<p>".$user_id."</p>";
echo "<p><a href=\"./logout.php\">ログアウト</a></p>"
?>
  • login.php
    • 本当はここにワンクッション置いたほうがいいかもしれません…
<?php
session_start();
require_once("twitteroauth.php");

// Consumer keyの値
$consumer_key = "自分で取得したもの";
// Consumer secretの値
$consumer_secret = "自分で取得したもの";

// OAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret);
// callbackURLを指定してRequest tokenを取得
$tok = $to->getRequestToken("http://localhost/testtwitter/callback.php");
// セッションに保存
$_SESSION['request_token']=$token=$tok['oauth_token'];
$_SESSION['request_token_secret'] = $tok['oauth_token_secret'];
// AuthorizeURLを取得
$url = $to->getAuthorizeURL($token);
echo "<html><head><title>login</title></head><body><a href=\"".$url."\">ログイン</a></body></html>";
?>
<?php
session_start();
require_once("twitteroauth.php");
// Consumer keyの値
$consumer_key = "自分で取得したもの";
// Consumer secretの値
$consumer_secret = "自分で取得したもの";

// パラメータからoauth_verifierを取得
$verifier = $_GET['oauth_verifier'];

// Consumer key,Consumer secret, Request token, Request secretを使ってOAuthオブジェクト生成
$to = new TwitterOAuth($consumer_key,$consumer_secret,$_SESSION['request_token'],$_SESSION['request_token_secret']);
// oauth_verifierを使ってAccess tokenを取得
$access_token = $to->getAccessToken($verifier);

// token keyとtoken secret, user_id, screen_nameをセッションに保存
$_SESSION['oauth_token'] = $access_token['oauth_token'];
$_SESSION['oauth_token_secret'] = $access_token['oauth_token_secret'];
$_SESSION['user_id'] = $access_token['user_id'];
$_SESSION['screen_name'] = $access_token['screen_name'];

// TOPページへ
header("Location: testoauth.php");
?>

うまくいかなかったところ

ログアウトがうまくいきませんでした。

ログアウトして、再びログインを押すとTwitterの認証画面に飛んでほしいのですが、普通にTOPページへ飛んでしまいます。

  • logout.php
    • セッションを破棄するだけでは、再びTwitterの認証画面に行くことはできませんでした…。
<?php
session_start();
session_destroy();
header("Location: login.php");
?>

2010-10-02

【Python】正規表現でHTML解析

いろいろライブラリを教えていただいたのですが、なかなかうまくできなかったので、正規表現を使ってやってみました。

HTMLのテキストを読み込む
import re,urllib2

url = "http://~"#URL
html = urllib2.urlopen(url).read()


正規表現メモ

役に立った表現をメモしておきます。

  • タグとタグの間の空白を取り除く
html=re.sub('>\s*?<','><',html)
  • タグを取り除く
html=re.sub('<.+?>','',html)

タグを取り除く表現は下手をすると

<コンテンツ>

このようなテキストもはじいてしまうので注意が必要です…。