月曜日, 2月 10, 2020

etoro

数日前に、etoroにアカウントを作ったところ、先週末に電話あり。


どうもetoroクラブというのを押しているらしく、その説明してよいか、という。が、それについては子供といたので資料を送ってもらうようにして終了。
ETFへの投資については興味があったのだが、TransferwiseのUSD口座からうまく入金できない(注釈?というのか、送金時の追加情報に入れられる文字数が不足。サポートに問い合わせたらそもそも銀行として認定してないからACH無理、と言われる)でのどうしようかなぁと思っていた矢先。

だったので、EUで買えるETFしかないだろうなぁと思いつつ、Verifyを通した。パスポートとビザ、住所確認のために銀行ステートメントをUPLOAD。


昔は、たぶん今も仮想通貨で有名だったようだが、ETFやストックをやり取りする分には、十分オンライン証券になっている。し、売り?であるコピートレードは面白そう。

なのでまたTransferwiseからUSDのWIRE送金を試みるも、、今度はクリプト系の会社だから送金不可、と出てしまう。が!思いついて普通にTwのクレジットカードで支払い、としたところ問題なくデポジットできた。

自前でETFを4つ、コピートレードを2つ(この人と、この人)、あとコピーポートフォリオを1つ、に合計5000USを入れてみた。土日なのでオーダーはペンディングになっている。

火曜日, 3月 20, 2012

dotcloudperlが使えるということでやってみた。 サンプルままでは、まったくすんなり動いたのでモジュール(HTML::TableExtract)を追加してみたが、これもまた勝手にパースして取り込んでいる模様。すごい。
00962724@WK0706 ~/dotcloud
$ dotcloud push ramen ramen-on-dotcloud/
# upload ramen-on-dotcloud/ ssh://dotcloud@uploader.dotcloud.com:443/ramen
# rsync
Pseudo-terminal will not be allocated because stdin is not a terminal.
building file list ... done
helloperl/
helloperl/Makefile.PL

sent 1.13K bytes  received 40 bytes  180.31 bytes/sec
total size is 98.47K  speedup is 84.02
09:16:30 ---> Deploy of "ramen" scheduled for revision rsync-1332234989095 at 2012-03-20 09:16:30
09:16:30 ---> Building the application...
09:16:30 [www] Build started for revision rsync-1332234989095 (incremental build from revision rsync-1332234466305)
09:16:39 [www] --> Working on .
09:16:39 [www] Configuring /home/dotcloud/rsync-1332234989095/helloperl ... OK
09:16:39 [www] ==> Found dependencies: HTML::TableExtract
09:16:40 [www] --> Working on HTML::TableExtract
09:16:42 [www] Fetching http://search.cpan.org/CPAN/authors/id/M/MS/MSISK/HTML-TableExtract-2.11.tar.gz ... OK
09:16:42 [www] Configuring HTML-TableExtract-2.11 ... OK
09:16:43 [www] Building HTML-TableExtract-2.11 ... OK
09:16:43 [www] Successfully installed HTML-TableExtract-2.11
09:16:43 [www] <== Installed dependencies for .. Finishing.
09:16:43 [www] 1 distribution installed
09:16:45 [www] Build completed successfully. Compiled image size is 6MB
09:16:45 ---> Initializing new services... (This may take a few minutes)
09:16:45 ---> No new services found
09:16:45 ---> All services have been initialized. Deploying code...
09:16:45 [www.0] Deploying build revision rsync-1332234989095...
09:16:51 [www.0] Running postinstall script...
09:16:53 [www.0] Launching...
09:16:54 [www.0] Waiting for the service to become responsive...
09:16:55 [www.0] Re-routing traffic to the new build...
09:16:56 [www.0] Successfully deployed build revision rsync-1332234989095
09:16:56 ---> Deploy finished

Deployment finished. Your application is available at the following URLs
www: http://ramen-a6tyktfl.dotcloud.com/

00962724@WK0706 ~/dotcloud
$

日曜日, 9月 18, 2011

Cygwin+Hiveで必要になる修正(File.separatorも!)

Hive内部では、当然HDFSのPath操作を各種行っているのだけど、、そのセパレータ(HDFSなら"/"であるべき)を、File.separatorシステム変数から取得している。 Cygwinではこれが"¥"になってしまうので、修正として先にで紹介したものだけでなく、ql/io/HiveFileFormatUtils.javaのdoGetPartitionDescFromPath()も変更が必要だった。
  private static PartitionDesc doGetPartitionDescFromPath(

-snip-

    if (part == null) {
      String dirStr = dir.toString();
      //int dirPathIndex = dirPath.lastIndexOf(File.separator);
      //int dirStrIndex = dirStr.lastIndexOf(File.separator);
      int dirPathIndex = dirPath.lastIndexOf("/");
      int dirStrIndex = dirStr.lastIndexOf("/");
      while (dirPathIndex >= 0 && dirStrIndex >= 0) {
        dirStr = dirStr.substring(0, dirStrIndex);
        dirPath = dirPath.substring(0, dirPathIndex);
        //first try full match
        part = pathToPartitionInfo.get(dirStr);
        if (part == null) {
          // LOG.warn("exact match not found, try ripping input path's theme and authority");
          part = pathToPartitionInfo.get(dirPath);
        }
        if (part != null) {
          break;
        }
        //dirPathIndex = dirPath.lastIndexOf(File.separator);
        //dirStrIndex = dirStr.lastIndexOf(File.separator);
        dirPathIndex = dirPath.lastIndexOf("/");
        dirStrIndex = dirStr.lastIndexOf("/");
      }
    }
    return part;
  }
というか、File.separatorでgrepすると多数あるので、、、他にも危ないところはありそう。。。

月曜日, 6月 20, 2011

GW-SC150Nの動き

この無線→有線コンバータは、とても便利なんだけど、どうも説明書などが詳細まで書かれていないので判然としないので調べてみた。

①自分自身は上位の(無線LANの)クラスCの".249"となる
②この249は上位から払い出されたものではなく勝手に使う
③自分の有線LAN配下には自身がDHCPサーバとなりIPを払い出す(※)
④但し払い出すIPのクラスC部分は上位の(無線LANの)ものを使う
⑤故に有線と上位(=無線LAN)で同じ第四オクテットを払い出しうる

ということか。

上位で見ていても有線上のMACが見えて来ないので、(※)ではNATしている=全て自分(GW-SC150N)が通信していることにすることは確認できた気がする。

日曜日, 1月 09, 2011

Googleの検索機能をAPI的に使える!?

Googleドキュメントにuploadした文書は、"Google Documents List Data API"経由で全文検索ができるらしい。これをJavascriptからやってみました(Rhino)。
/*
 * FullTextSearch
 * http://bit.ly/i4QaUO
 */

importPackage(com.google.gdata.client.docs);
importPackage(com.google.gdata.client);
importPackage(com.google.gdata.data.docs);
importPackage(java.util);
importPackage(java.util.logging);

function getDocsService(applicationName, username, password){
    var service = new DocsService(applicationName)
    service.setUserCredentials(username, password)
    return service;
}

var username = 'xxxx@gmail.com';
var password = 'xxxx';
var client   = getDocsService('fts-test-1', username, password);

var feedUri  = new java.net.URL('https://docs.google.com/feeds/default/private/full/');
var query    = new DocumentQuery(feedUri);

var qStr     = "first"; // 検索文字列
query.setFullTextQuery(qStr);

var feed = client.getFeed(
    query,
    java.lang.Class.forName("com.google.gdata.data.docs.DocumentListFeed")
);

print( feed );

if(feed){
    var entries = feed.getEntries();

    for (var i = 0; i < entries.size();i++){
        print("- " + entries.get(i).getTitle().getPlainText());
    }

    print(entries.size());
}

もちろん元ネタは、ぶいてくさんの「すごいのはGDriveより全文検索でしょ!?」です。カスタム検索という機能は提供されていましたが、検索結果としてHTMLが返されたりと、プログラムから使える感じではなかったのですが、これは便利そうです。

日曜日, 1月 02, 2011

JavaからJavascriptを使うとき

以下では、組込み変数のenvironmentなどがない環境での実行になってしまう。
Context cx = Context.enter();
Scriptable scope = new ImporterTopLevel(cx);
Object obj = cx.evaluateReader(scope, reader, "JsScript", 1, null);

これは以下のように、GlobalオブジェクトでContectを初期化することで(それら変数が入った)シェルと同様の環境で実行させることができる。
Global global = new Global();
Context cx = ContextFactory.getGlobal().enterContext();
global.init(cx);
Scriptable scope = cx.initStandardObjects(global);
Object obj = cx.evaluateReader(scope, reader, "JsScript", 1, null);

EnvJSの過去MLで知りました。
なお、ここのGlobalはorg.mozilla.javascript.tools.shell.Globalです。

火曜日, 12月 21, 2010

mahoutでkmeans!

以下HADOOP_CLASSPATHを設定して、

$ export HADOOP_CLASSPATH=dependency/mahout-math-0.4.jar:dependency/mahout-core-0.4.jar:dependency/mahout-utils-0.4.jar:dependency/google-collections-1.0-rc2.jar:dependency/gson-1.3.jar:dependency/mahout-collections-1.0.jar:dependency/commons-cli-2.0-mahout.jar

以下を実行。なぜかKMeansはhadoopがローカルで待ち受けていないと動かない様子。

$ ~/hadoop-0.20.2/bin/hadoop jar mahout-examples-0.4.jar org.apache.mahout.clustering.display.DisplayKMeans

以下は、Hadoopが待ち受けていなくても動きますが、クラスがpublic宣言されていないのでソースを書きかえる必要がありました。

$ ~/hadoop-0.20.2/bin/hadoop jar mahout-examples-0.4.jar org.apache.mahout.clustering.display.DisplayCanopy

mahoutにGUIが付いていることは、意外にしられていないのでは、と思います。