SyntaxHighlighter

2011年6月19日日曜日

VARDIA S-303でリモコンが効かない




ブログ移転先の同記事へ 0 秒後にジャンプします。



自動的にジャンプしない場合は、こちらをクリック




2011年6月16日木曜日

iPod nano 6th で「ok to disconnect」が出た場合




ブログ移転先の同記事へ 0 秒後にジャンプします。



自動的にジャンプしない場合は、こちらをクリック




エネループ充電器TGR01

我が家では単4電池をよく使うため、TGR01という単4電池を4本同時充電できるモノを使っています

普段はこうやって2本充電していたのですが・・・


どうやら、これでは宝の持ち腐れだそうです

このTGR01という充電器は2倍速充電、3倍速充電に対応してるんですって!!

2倍速したいときー


端っこに2本指すと2倍速充電です


そして3倍速充電したいときは


端っこに1本だけ指すと。

通常120分くらいかかる充電が60~70分、3倍速なら40分程度で充電できちゃうそーです。

いやほんと、宝の持ち腐れだ(苦笑)

そういや、ついでにテスターで電圧を測ってみました
普通の乾電池・・・1.5vちょい
エネループ単4満充電・・・1.28v
エネループ単4ほぼ空・・・1.1vくらい
エネループ単3半年放置・・・1.22v

単4は使い切れてないかも?
単3の電圧の落ちてない度がスゲー!


--
from blogPress at iPhone

2011年6月15日水曜日

備忘録:Slim3でのデータストア暗号化IFについて

備忘録です。

Slim3のモデル暗号化についての内容です。

※ハマっちゃいました。filterの書き方大事。
    ☓ MyModel userData = Datastore.query(t)
          .filter("myname", FilterOperator.EQUAL, "hoge").asSingle();
    ◯ MyModel userData = Datastore.query(t)
          .filter( t.myname.equal("hoge")).asSingle();
なんでオレ、上の書き方してたんやろ・・・


以下、Slim3公式の説明より引用

元となったディスカッションはこちら
http://groups.google.com/group/slim3-user-japan/browse_thread/thread/4999dfd7553c5f38?pli=1

Cipher Text

https://sites.google.com/site/slim3appengine/slim3-datastore/defining-data-classes/cipher-text

個人情報や機密情報を安全に扱うために暗号化をする必要がある場合があります。Slim3は暗号化機能をサポートしています。暗号化アルゴリズムと対象のフィールド型は次の通りです:

  • アルゴリズム: AES (Advanced Encryption Standard)
  • 暗号利用モード(Block cipher mode): CBC (Cipher Block Chaining)
  • 暗号鍵: 128bit (192 bit と 256bit はサポートしていません)
  • フィールド型: java.lang.String, com.google.appengine.api.datastore.Text

Slim3でBigtableのデータを暗号化するのはとても簡単です:

  1. 対象のフィールドに @Attribute(cipher = true) アノテーションを使用します。
  2. 暗号鍵をSlim3 Datastoreに設定します。
  3. Slim3 Datastoreを使用した操作をします。

モデル定義の例です:

@Attribute(cipher=true) private String myString; @Attribute(cipher=true, lob=true) private String myLobString; @Attribute(cipher=true) private Text myText;

暗号鍵を設定する例です:

Datastore.setLimitedCipherKey("hogehogehogehoge"); Datastore.setGlobalCipherKey("hogehogehogehoge");

setLimitedCipherKeyは、スレッドローカルの暗号鍵を設定します。その鍵は現在のスレッド内の暗号化・復号化で使用されます。

FrontControllerは各コントローラを呼び出した後に暗号鍵をクリアします。このメソッド(setLimitedCipherKey)はコントローラー毎に異なる暗号鍵を使用する場合を想定しています。

setGlobalCipherKeyは暗号鍵をスタティック領域に設定します。その鍵は全てのスレッドで使用されます。FrontControllerはsetGlobalCipherKeyメソッドで設定された暗号鍵はクリアしません。このメソッドはシステム内で固定の暗号鍵を使用する場合を想定しています。

LimitedCipherKeyの方がGlobalCipherKeyよりも優先されます。さらに両方の値が未設定の場合、例外がスローされます。128bit(16文字)の暗号鍵を設定してください。

GlobalCipherKeyの値は appengine-web.xml で指定できます:

<system-properties>  <property name="slim3.cipherGlobalKey" value="hogehogehogehoge"/> </system-properties>

暗号化と復号化は自動的に行われます。

暗号化フィールドに対して、インメモリのフィルタとソートは全てサポートされています。

暗号化フィールドに対するデータストアクエリのフィルタには制限があります。以下のフィルタがサポートされています:

  • EqualCriterion
  • IsNotNullCriterion
  • NotEqualCriterion

データストアクエリのソートはサポートされていません。

2011年6月13日月曜日

備忘録:Scenic3でのJSON利用

備忘録です。

Scenic3では「ScenicPage.responseJson」を呼び出すことで、データをJSONとして返すことができます。

ただ、環境がそのままではエラーになってしまうので、「JSONIC」を入れてやります

  1. サイトからZipファイルをダウンロードします
  2. 解凍してあらわれた「jsonic-*.*.*.jar」を「war/lib/」「war/WEB-INF/lib」に配置します
  3. ビルドパスに「jsonic-*.*.*.jar」を追加します
※7/20修正

以上で「ScenicPage.responseJson」を使う環境が整います。
※ほんとSlim3+Scenic3はラクチン

今回動作確認した環境
  • Slim3:1.0.11
  • Scenic3:0.4.2
  • JSONIC:1.2.5

備忘録:GAEのローカルでの管理コンソール

備忘録。GAEはEclipseなどでローカルデバッグができます。
この際の、DataStoreなどをあれやこれやするための管理コンソールは
http://localhost:8888/_ah/admin/
にアクセスすればOK

あ。
Scenic3使ってたりする場合は、AppUrlsに
excludes("/_ah/*");
を書いておくのを忘れないように。

2011年6月12日日曜日

haiga式HPA(Ver1.0)最終形

先日、入力カップリングのところを東信UTSJ50v100μFにしました

・・・が。シャリつきが収まらず。。

推測ですが、カップリング部分の電圧を測ると非常に低い値(正確な値忘れた。。ミリVの単位だったハズ)だったため、耐圧高いコンデンサの修復、いわゆるエージングが進んでないのかなぁと。

あと、電源平滑のコンデンサの電圧を調べてみると、1.26v
1.42掛けた値で1.789、つまり耐圧2.3vくらいあれば大丈夫かな?ってことで、SEPCの2.5v2700μFをいれてみることにしました。

入力カップリングは、耐圧低い方がいいんだろうなぁ?と思ってKZの25v33μFとUTSJの16v100μFを用意してみました



結局、チョイスしたのはKZ。
同じニチコンのFG(FineGold)などはドンシャリ味つけがガッツリついてる感ありますが、KZの色付けはちょうどいいかも・・・?
この前までずーーっと聴いてたのは50v22μFのKZでしたし。

早速取り付け・・・なんですが、左のカップリング外すときにミスっちゃって表面の銀色のやつも剥がしちゃってました。ギャフン
おかげで、はんだがつかないつかない・・・
しょうがないので、音を流しながら&フラックスつけて、導通できるところを探りながら気合でくっつけました。
imAmpで悶えた経験がこんなところで生かされようとは。。。



音はまだ鳴らし始めたばかりですが、なぜかいい音(ウットリ)
SEPCとKZって・・・贅沢やわぁ(笑)

そうそう、おまけ話。
UTSJ版ではありますが、日本橋いったときにD12HJBoaと聞き比べしてみました

うーん、解像度は間違いなくhaiga式HPAの方が上じゃね?
あと、全体的な音のバランスが違うというか。。。
haiga式の前では低音用アンプ?って思ってしまうなぁ
正直、D12Hjに期待してただけにガックリしました。
※D12HjはDACで使うのが正解?

P1とかQubeとか、5万超えるようなやつも聴いてくればよかったなー
さすがにあの辺は違うとは思うんだけど。

あとHA10miniの基盤頒布申し込んでみました
パーツセットは売り切れてたから、集めんとあきませんなー


2011年6月10日金曜日

Slim3のモデルでメンバ名の接頭辞に「_」をつけると

Eclipseでの接頭辞に「_(アンダーバー)」がついた際のsetter・getterでメンバ名に接頭辞「_」がついた際のsetter・getter生成について記述しました。

しかし、Slim3のモデルでこれをやると怒られちゃいます。
[SLIM3GEN1011] The getter method[get_accountName] is not found.
こんな感じ。存在しているgetterは「getAccountName」なので、見つからないといわれるわけです。

素直に「accountName」と接頭辞「_」を外して定義するのが正解ですね。
※まぁデータベースの項目名に「_」のような接頭辞につけることなんてそうそうありませんし。

EclipseTips:パッケージエクスプローラを階層で表示する

自分用備忘録。

Eclipseのパッケージエクスプローラはデフォルトで「フラット」に表示されています。
rootPackage.hoge
rootPackage.hoge.bar

これを階層で表示するには、パッケージエクスプローラの「ビュー・メニュー」(右上の▽)から、「パッケージ・プレゼンテーション」「階層」を選べばOK


階層を選ぶとこうなる


なるほどねー

Slim3でのURLマッピング〜その2

Twitterで @higayasuo さん @bluerabbit777jp さんとお話して、確認してみました。
KeyとPOSTデータについて「asString」「getAttribute」「getParameter」でそれぞれデータ取得

結果画面

やっぱり、AttributeにPOSTデータのみが入って、ParameterにKeyだけが入ってる。
setAttributeでコピーしてたんで、Attributeに全てのデータが入って・・・・あ!

パスつくり直す前・・・POSTデータのみ。ここでsetAttribute、AttributeにPOSTデータが全部コピーされる
パス直してForword・・・このときはsetAttributeしない?先ほどのPOSTデータがAttributeに残ってて、Parameterは今回のGET引数となるKeyが入っている

こう考えると納得だなぁ

確認に使ったソースはこんな感じです

check.jsp

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Checktitle>
head>
<body>
<p>Hello Check !!!p>
<div>
<form method="POST" enctype="multipart/form-data" action="/check/tweet">
<div><h2 class="tweet_do"><span>POSTテストspan>h2>div>
<div><textarea name="maindata" rows="2" cols="10" wrap="on" style="width:635px;height:60px;">textarea>div>
<div>
<input type="hidden" name="url" value="/check" />
<input type="submit" name="createArticle" value="POSTする" class="submit" />
div>
form>
div>
<hr />
key_getattlist_forward
<ol>
<c:forEach var="att" items="${key_getattlist_forward}">
<li>${att}li>
c:forEach>
ol>
<hr />
key_getattlist_include
<ol>
<c:forEach var="inc" items="${key_getattlist_include}">
<li>${inc}li>
c:forEach>
ol>
<hr />
key_getparamlist
<ol>
<c:forEach var="prm" items="${key_getparamlist}">
<li>${prm}li>
c:forEach>
ol>
<hr />
<div>as_key : ${as_key}div>
<div>as_maindata : ${as_maindata}div>
<div>as_url : ${as_url}div>
<hr />
<div>att_key : ${att_key}div>
<div>att_maindata : ${att_maindata}div>
<div>att_url : ${att_url}div>
<hr />
<div>param_key : ${param_key}div>
<div>param_maindata : ${param_maindata}div>
<div>param_url : ${param_url}div>
<hr />
body>
html>



slim3rootPackage.CheckController.java
package jp.tyato.verify.controller;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;

public class CheckController extends Controller {

    final String KEY_NAME = "key";

    @Override
    public Navigation run() throws Exception {

        try {
            requestScope("key_getattlist_forward",
                    request.getAttribute("javax.servlet.forward.query_string"));
            requestScope("key_getattlist_include",
                    request.getAttribute("javax.servlet.include.query_string"));
            requestScope("key_getparamlist",
                    request.getParameterValues(KEY_NAME));

            requestScope("as_key", asString(KEY_NAME));
            requestScope("as_maindata", asString("maindata"));
            requestScope("as_url", asString("url"));

            requestScope("att_key", request.getAttribute(KEY_NAME));
            requestScope("att_maindata", request.getAttribute("maindata"));
            requestScope("att_url", request.getAttribute("url"));

            requestScope("param_key", request.getParameter(KEY_NAME));
            requestScope("param_maindeta", request.getParameter("maindata"));
            requestScope("param_url", request.getParameter("url"));
        } catch (Throwable e) {
            e.printStackTrace();
        }

        return forward("Check.jsp");
    }

}

2011年6月9日木曜日

Eclipseでの接頭辞に「_(アンダーバー)」がついた際のsetter・getter

引用です。
http://andante0727.blog81.fc2.com/blog-entry-237.html

private String _name;
メニューの「ソース」→「getter および setter の生成」で上記のフィールドのゲッターセッターを生成すると以下のソースになる。
public String get_name() {
   return _name;
}

public void set_name(String _name) {
   this._name = _name;
}

これをgetNameやsetNameにしたい場合、
メニューの「ウィンドウ」→「設定」→「Java」→「コードスタイル」の「変数命令規則」の欄の「フィールド」を編集し「接頭語リスト」に「_」(アンダーバー)を入れて適用してからセッター、ゲッターを生成する。
public String getName() {
   return _name;
}

public void setName(String name) {
   _name = name;
}

いやほんと、Eclipseって便利ですねぇ

2011年6月8日水曜日

FrontControllerを使いたいときはデフォルトコンストラクタを

Slim3において、ふつーにマッピングしてる間は何も考えずにControllerクラスを生成すればOK。

ただし、URLマッピングしたりとかでControllerクラスに「引数つきコンストラクタ」なんか定義しちゃうと、そのままでは通常の名前からのController呼び出し( /aaa → slim3route.AaaController )が失敗しちゃいます。

他のコンストラクタを書いちゃったときは、暗黙の際に自動で定義されているデフォルトコンストラクタ(引数なしコンストラクタ)を定義してやりましょう。

つまり、
public class AaaController extends Controller
{
}
か、
public class AaaController extends Controller
{
	//これが必ず存在するようにする!
	public AaaController()
	{
	}

	public AaaController( type arg)
	{
	}
}
でないとダメと

2011年6月7日火曜日

Slim3でのURLマッピング

再度確認しました
 結論としては、@higayasuo さんがお話されていた通り「当たり前の挙動」を示しているだけなのかなーと。
 サーブレットに詳しくない自分としてはちょっとツラい感じです

※6/9修正しました。ソース部分をasXxxを使った形に書き換え&こちらを参考にrequestなどの取得について修正

確認しました。
POSTが噛んだときの、マッピングの判断条件の考え方が間違っていました。

RequestMapのgetは、内部でHttpRequestServletのgetAttribute()を呼び出します。
で。
  • Formのenctypeが「multipart/form-data」の場合
    POSTがない場合はこれでGETの引数としてのマッピング先(?key={key})が取得できるのですが、POSTデータがある場合はこの値がPOSTの内容になるようです。
    GETの値はどこかというと、「request.getParameter("key")」で取得できる模様

  • Formのenctypeが「text/plain」の場合
    RequestMapのgetは、GETの値、つまりURLマッピングの「?key={key}」が入っています。
    POSTの値は・・・getParameterでも取れませんでした。

とりあえずURLマッピングを絡めてPOSTを扱う場合は、「multipart/form-data」にしておくことをオススメします。
以下修正しました。
ひと通り動く版。POSTは「multipart/form-data」で。

参照リンク
http://sites.google.com/site/slim3documentja/documents/slim3-controller/url-mapping

Slim3は通常、
リクエストURLパス コントローラ
/ slim3.rootpackage.controller.IndexController
/xxx slim3.rootpackage.controller.XxxController
/xxx/ slim3.rootpackage.controller.xxx.IndexController
/xxx/yyy slim3.rootpackage.controller.xxx.YyyController
/xxx/yyy/zzz slim3.rootpackage.controller.xxx.yyy.ZzzController
※slim3.rootpackage は web.xml で定義されています。
というようにマッピングルールに基づいて、実行するコントローラが決まります。

リンク先に書いてあるのをちゃんと読んでいなかったのですが、このURLマッピングはある程度制御することができます

コントローラを取得する前にリクエストURLパスの書き換えをすることもできます。
URLリライティングを使うには slim3.rootpackage.controller.AppRouter クラスを先に定義する必要があります。

とのこと。実際にやってみましょう

slim3.rootpackageが「jp.tyato.test」だとすると、「jp.tyato.test.controller.AppRouter」クラスを生成します
  • 「jp.tyato.test.controller」のパッケージを用意する
  • 「jp.tyato.test.controller」配下に「AppRouter」クラスを生成。内容は次のような感じ

6/8修正
package jp.tyato.test.controller;

import org.slim3.controller.router.RouterImpl;

public class AppRouter extends RouterImpl
{
    Public AppRouter()
    {
        addRouting("/xxx/{key}", "/xxx?key={key}");
    }
}

次にIndexControllerクラスを生成します
  • 「build.xml」を開き、アウトラインから「gen-controller-without-view」を選択、実行から「1 Ant ビルド」を実行する
  • 名前の入力を求められるので、「/xxx/Index」と入力
  • 「jp.tyato.test.controller.xxx」配下に「IndexController.java」が作成される
  • メソッド「run」の中を書き換える

final String KEY_NAME = "key";

@Override
public Navigation run() throws Exception
{
    Navigation result = null;

    try
    {
        String keyword = asString(KEY_NAME);

        if(keyword == null)
        {
            //getParameterで再度試行
            keyword = request.getParameter(KEY_NAME);
        }

        if( keyword != null )
        {
            keyword = keyword.toLowerCase();
        }

        //Factoryパターン用コントローラ親クラスの定義
        Controller con = this.GetFromFactory(keyword);

        result = con.runBare();
    }
    catch (Throwable e)
    {
        e.printStackTrace();
    }

    return result;
}

public Controller GetFromFactory(String keyword)
{
    Controller con = null;

    try
    {
        if (keyword == null || keyword.isEmpty() || keyword.startsWith("index") )
        {
            //keywordがnull、空文字、indexで始まる文字のいずれかである場合、Index表示処理
            con = new ForDefaultController();
        }
        else if (keyword.equals("yyy"))
        {
            //keyが「yyy」である場合、yyy用の処理へ
            con = new YyyController();
        }
        else if (keyword.equals("zzz"))
        {
            //keyが「zzz」である場合、zzz用の処理へ
            con = new ZzzController();
        }
    }
    catch (Exception e)
    {
        e.printStackTrace();
    }

    return con;
}
後は実際に処理を行うControllerクラスを実装します。
この場合は「ForDefaultController」「YyyController」「ZzzController」について
  • 「build.xml」を開き、アウトラインから「gen-controller-without-view」を選択、実行から「1 Ant ビルド」を実行する
  • 名前の入力を求められるので、「/xxx/???」と入力
  • 「jp.tyato.test.controller.xxx」配下に「???Controller.java」が作成される
???の部分をそれぞれ「ForDefault」「Yyy」「Zzz」に置き換えて読んでください。

しかしこのままですと、各Controllerを呼び出してもそれぞれの変数である
「protected ServletContext servletContext」
「protected HttpServletRequest request」
「protected HttpServletResponse response」
がnullのままです。

ですので、利用する前に各Locaterのgetを使って、値を取得してやります。

YyyControllerであれば、こんな感じです
package jp.tyato.test.controller.xxx;

import org.slim3.controller.Controller;
import org.slim3.controller.Navigation;
import org.slim3.util.RequestLocator;
import org.slim3.util.ResponseLocator;
import org.slim3.util.ServletContextLocator;

public class YyyController extends Controller
{
    @Override
    public Navigation run() throws Exception
    {
        this.CheckParentMember();

        //以降、実処理
    }

    protected void CheckParentMember()
    {
        if( request == null )
        {
            request = RequestLocator.get();
        }

        if( response == null )
        {
            response = ResponseLocator.get();
        }

        if( servletContext == null )
        {
            servletContext = ServletContextLocator.get();
        }
    }
}
「ForDefaultController」「ZzzController」についても同様に定義してやります。
※まぁ実際に使うときに〜Locator.get()を呼び出してやればいいんですが。

こうすることで、
  • Indexに一旦集約
  • その都度の値により狙った処理を行うように制御
といったことが可能になります。

備忘録・Scenic3

いつも所在を忘れてしまうので備忘録として記録。

Scenic3
http://d.hatena.ne.jp/shuji_w6e/20110116/1295184829

もうちょい使い込まないと。。。

2011年6月5日日曜日

haiga式HPA(with UTSJ)

オーグラインつなげて音を聞いているうちに、実はこのややドンシャリよりの音はhaiga式HPAのカップリングをMUSE KZにしてるせいなのかなー?と思うようになりました。
(MUSE KZ は高級オーディオに使われるコンデンサだけど、どっちかっていうとドンシャリよりといわれます)

んー。手持ちのコンデンサ・・・UTSJの100μF・50Vがあるなー

問題は、元々の設計書には「10μF」って書かれてて、100μFになっちゃうとどう変わるのか・・・?



なになに
「容量が大きくなるほど、カットする周波数帯域?が下がる=低域が出る」
「一般論として、容量が大きくなると高域の特性が悪くなりやすい」
「一発目の充填に(余分に)時間がかかる分、ポップノイズにつながりやすい?」


むー。悩ましい。

でも、UTSJはそのまま使うと高音番長みたいなコンデンサ(スペシャルキラキラしてる)なので、少し低域よりになるのはアリかも。

ダメだったらまた付け替えればいいさー(←ポジティブ)

そんなわけで、まずは分解。KZさんおひさしゅう。


KZさんも22μFでちょっと大きめなので無理やり斜めにツッコンでます。ワハハ。

サクっと外して、UTSJを・・・うおっと、サイズがギリ大きいのでこれもKZと同じく斜めに。


完成。



音は・・・つけかえたばっかりやからわかりません!!

コンデンサって熱で損傷受けるんですよね。
んで、通電している間に自己修復されて、本来の性能を発揮すると。
んー。性能っていうかこの場合は音質か。

一個悩ましいのは耐圧に近い電圧をかけたほうが修復はやいらしいんだけど・・・電池駆動のPHPAに50Vのやつ使ってるんだよね(笑)

サクっと聞いた限りでは、低域も違和感ないし、高域はサ行刺さらなくなってるけど、200時間くらい鳴らしこんでからじゃないとちゃんと評価できないかな。

ただ、UTSJはhaigaさん本人も使ってはるんで、このほうがオリジナルの音に近いハズ!

KZさんは在庫行きー







追記
やっぱ、UTSJの音が好きかなー
例えるなら、
MUSE KZ・・・色っぽい系。グラビアアイドル、ではないか。北新地とかの高級クラブのお姉さん、みたいな。
UTSJ・・・凛とした清楚な和服美人。
こんな感じ?

まぁ低音好きにはUTSJよりもKZをオススメするかな。
モニターよりな人にはUTSJかな

DOCKケーブル作成(4N純銀0.5mm、オーグ0.4mm)

オヤイデで頼んでいた4N純銀0.5mmテフロン絶縁単線とオーグPTFE被膜戦0.4mmが届いたので、さっそくDOCKケーブルを作ることに。

まず4N純銀。こちらは問題なくサクっと完成。
音の左右も間違っておらず。




次にオーグライン。こちらも問題なくサクっと・・・あれ?
なんか左からも右の音が聞こえる・・・?




状況はこんな感じ
右・・・右の音が聞こえる
左・・・左右の音が聞こえる

気持ち悪い・・・

テスターでチェックしたところ、RとGNDを逆につけてたらしい。
へー、間違えてつけるとこういうふうに聞こえるんやねぇ

DOCK側を開けてチェックしてたので、そのままDOCK側をつけかえ・・・あああ!GNDがピンの根元から折れた!!!

いやぁ。。。こういうことありますよね。悪いことは続くというか。

でも、大丈夫!Qablesからコネクタ4つ買ってあるから!!

配線外して抵抗外して、新しいコネクタにつなげて・・・完成。
今度は左右もバッチリ!


さて、音ですが・・・やっぱりわからん!(笑)

いや、ケーブル程度ではほとんど誤差っすよ、誤差。
でも気になり始めると気になるんだよねー
少なくとも騒音の多い外では違いがわからんレベル。

それでもあえて違いを書くとすると、

4N純銀・・・みょーに高音キレイ。ベールを一枚剥いだような感じ。
オーグ・・・中低音もしっかりしてる?でもサ行刺さる感じ。
BELDEN 8630・・・2つに比べると、悪く言えば曇ってる、よく言えば混ざってて楽しい音。
AUDIO TRAK・・・あれ?なんかもうこれでもいい気が・・・

いやー、聴き比べしまくってるとわからんくなりますw

そっすね。。。間違いないのは

4N純銀・・・全体的にキレイ。優等生って感じ。面白みは少なめ?
オーグ・・・全体的にキレイ+艶っぽい。明らかに情報量多い。コロナの裏であんなストリングのギター鳴ってたなんて初めて知った(前の下のほうで鳴ってる)ただ、サ行刺さる感覚が強い。情報量多いからかなー? 艶っぽい部分は柴咲コウの最愛を聴き比べて。

バイオリンの”艶”は純銀のほうがよかった感じ。


ちなみに環境は
iPod Classic(MB147J)
差動式HPA(haiga式PHPA Ver2)withKZ
ATH-ESW9
な感じ。
PHPAとヘッドホンがモニターっていうよりはライブより。(解像度は高い)
んでKZいれてるんで、ややドンシャリより。
UTSJとか使ってたらもっとシャリつくんかなー?

個人的にはオーグが結構お気に入り。シャリつきさえなければ好きな音ドストライク。
次はオーグの0.6くらいで作り直したいかな?

ちなみに今回かかった費用

・コネクタ
 Qablesのコネクタ。 1.5ユーロなので、180円くらい?
・ケーブル
 4N純銀がメートル700円、実際に使ったのは30cmくらいなので、210円
 オーグがメートル1200円、30cmくらいで、360円
・プラグ
 共立にあった300円くらいの金メッキのやつ
・工賃
 自作なので無料。プライスレス!

合計すると、
 4N純銀0.5mm ・・・ 690円
 オーグ0.4mm ・・・ 840円

たぶんヤフオクとかの価格の1/5くらいで済んでるんじゃないかな?



2011年6月3日金曜日

有料でホスティングサービスを使おうかな?

最近、「ホスティングサービス」を使い始めました。

今使っているのは「Assembla」
他には「Github」とか「LaunchPad」とかありますね。

個人的な仕事でも使いたいなーと考えていて、そうするとPrivateRepositoryが欲しくなるわけです。

無料だと現時点ではAssembla一択なんですが、有料だとまた違う。
gitで管理していることもあって、今回は「Github」「Assembla」で比較してみました。



・・・う。なんかいろいろおかしいですね。。。
Githubの容量が全部0.3になっちゃってるのと、Assemblaのリポジトリ数がSpaceの値になってるのとがアレな感じ。

詳細なデータを突っ込まんとなんともいえませんが、Githubの12ドルプランがよさげ?
まぁ、正しい使い方ではありませんが、ブランチごとに別プロジェクトを管理する、なーんてことをすればリポジトリ数は関係なくなりますけど。

そんなわけで追調査。
Assemblaの無料トライアルが20日後くらいに切れるので、それまでには決めたいな



〜追記その1〜
どうやらGithubの容量は「一応制限はあるが、実際には使える」っぽいです。

ただ、濫用を防ぐ目的で、soft limitなるものが設定されている。Soft limitを越えると、こんな感じで警告っぽい表示が出る。ただ、だからといって、特に何かが起こるわけではない。

2011年6月2日木曜日

Eclipseの「未処理のイベント・ループ例外」への対応

Eclipseの「未処理のイベント・ループ例外」が発生した場合、以下の処理を行うことで復旧。

  1. ワークスペース配下の「.metadata」フォルダを丸ごと削除(MACではファインダーからは見えないので、ターミナルから rm -rf を実施)
  2. ワークスペースに既存プロジェクトをインポート
  3. 「-clean」にて起動

Eclipse on MAC OS X 10.6.7

MAC OS X 環境でのEclipseインストールメモ

Agenda
  1. Eclipse をインストールする
  2. Pleiades による日本語化
  3. Android プラグインの導入
  4. Google プラグインの導入

  1. Eclipse をインストールする

    • Eclipseをダウンロードする http://www.eclipse.org/downloads/
      ※IDE for Developers でOK
      ※Mac OS X 64 Bitを選ぶこと!
    • ダウンロード済みパッケージ(.tar.gz)を解凍する
    • eclipseフォルダが作成されるので、フォルダごと「/Application」(アプリケーション)へ移動する

    インストールはこれで完了

  2. Pleiades による日本語化


    • Pleiades All in one package をダウンロードする http://mergedoc.sourceforge.jp/
      ※今回はHelios(3.6)用の1.3.3を使う
      ※「Standard All in One (JRE なし)」の「Java」を選ぶ
    • ダウンロード済みパッケージ(.zip)を解凍する
    • 「pleiades-e3.6-java_20110326」フォルダの中にある「eclipse/dropins」を先ほどインストールした「Eclipse/dropins」に上書きする
      ※丸々上書きする
      ※MAC OS XではWindowsと異なり、フォルダ内はマージされないがそれでOK
    • eclipse.iniの編集を行う。
      GUIからなら「アプリケーション」フォルダにある「Eclipse.app」(紫の球状アイコン・拡張子は省略表示されている場合がある)を右クリック(2つ指クリック)し、「パッケージの内容を表示」を選択する
      CUIからは「/Applications/Eclipse/Eclipse.app/contents/MacOS/eclipse.ini」
    • 「./contents/MacOS/eclipse.ini」をテキストエディタなどで開く
    • 以下の一行を追加
      -javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

      環境によってはメモリを384から512にあげたほうが安定するかも
      -Xmx512m

      参考までに私のeclipse.iniを掲載。
      上部の「-startup」や「--launcher.library」は利用するパッケージに依存するので、基本的にそのまま使うように。
      -startup
      ../../../plugins/org.eclipse.equinox.launcher_1.1.1.R36x_v20101122_1400.jar
      --launcher.library
      ../../../plugins/org.eclipse.equinox.launcher.cocoa.macosx.x86_64_1.1.2.R36x_v20101019_1345
      -product
      org.eclipse.epp.package.java.product
      --launcher.defaultAction
      openFile
      -showsplash
      org.eclipse.platform
      --launcher.XXMaxPermSize
      256m
      --launcher.defaultAction
      openFile
      -vmargs
      -Dosgi.requiredJavaVersion=1.5
      -XstartOnFirstThread
      -Dorg.eclipse.swt.internal.carbon.smallFonts
      -XX:MaxPermSize=256m
      -Xms40m
      -Xmx512m
      -Xdock:icon=../Resources/Eclipse.icns
      -XstartOnFirstThread
      -Dorg.eclipse.swt.internal.carbon.smallFonts
      -javaagent:../../../dropins/MergeDoc/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar

      あと、うまくいかない場合は追加した「-javaagent」をフルパスで記述するとうまくいったという報告あり。
      ※相対パスの切り方を間違えてるだけな気がしなくもないけど。
    • ターミナルを起動し、「/Applications/eclipse/Eclipse -clean」にて起動する
      スプラッシュに「Pleiades」の文字が見えていれば成功

    • 初回起動ではワークスペースの場所を聞かれるので、プロジェクト管理を行うパスを設定すること

    • メニューの「Eclipse」「環境設定」を起動し、「一般」「ワークスペース」から「テキスト・ファイルのエンコード」でUTF-8にしておくと幸せになれる

    • 同じ場所にある「新規テキスト・ファイル行区切り文字」もLFにしておくとよい(各プロジェクトに合わせること)


  3. Android プラグインの導入


    Android プラグインは「SDK」と「ADT」の2つの手順を行う。
    まずはSDKから
    • Android SDKのサイト(http://developer.android.com/sdk/index.html)にアクセスし、MAC OS X用のモジュールをダウンロードする
      ※今回は「android-sdk_r11-mac_x86.zip」
    • ダウンロードしたzipファイルを解凍し、適当なところにフォルダを配置
    • 「tools」フォルダの中にある「android」をダブルクリックで起動
    • すると「Android SDK and AVD Manager」というウィンドウが現れる

      左側の「Available packages」を選択
    • とりあえず全部チェックをいれる。情報更新でしばらく待機。コーヒー飲めるぐらい待つ。
    • 「Install Selected」を押下し、ひたすら待つ。(大量のダウンロード&インストール)
    • Eclipseの環境設定に利用するので、「android-sdk_r11-mac_x86」のパスを控えておくこと
    • とりあえず以上でSDKそのものの設定はおしまい。


    次にADTの手順
    • Eclipseを起動し、「ヘルプ」から「新規ソフトウェアのインストール」を選択する
    • 以下のアドレスを「作業対象」に入力し、「追加」ボタンを押す
      https://dl-ssl.google.com/android/eclipse/


    • すると「リポジトリ〜の追加」画面が現れるので適当にわかりやすい名前を入力し、OKを押す


    • 全てチェックを入れ、「次へ」を押下する

    • インストール詳細画面で、インストール対象を確認する。「次へ」押下

    • 右下の「使用条件の条項に同意します」を選択し、「完了」を押下するとインストールが始まる

    • こういったセキュリティ警告が出る場合があるが、気にせず「OK」を押す

    • インストールが終わると再起動を促される。再起動しない場合は、自分で「-clean」で起動する必要アリ

    • 再起動後、環境設定に「Android」が増えているので、「SDK ロケーション」に先ほど控えておいたパスを入力し、適用を押す。
      すると下にあるリストに一覧が表示される


    以上でAndroid SDK関連のインストールは完了


  4. Google プラグインの導入


    • 先程のAndroid ADTと同様の手順で「」を追加、インストールを行う。アドレスは以下を設定
      http://dl.google.com/eclipse/plugin/beta/3.6

      ※GWT2.4リリース済みなら、
      http://dl.google.com/eclipse/plugin/3.6

      を設定すること






以上でひと通りの環境が構築できるハズ。