レンタルサーバを変えた件

@PagesからXdomainにサーバを変えようかと思って作業中。

<追記:03/01>
FFFTPでFTP接続しようとして、うまくいかなかったが、
 (1) PASVモードにしない
 (2) 暗号化ナシの接続許可にチェック
で、うまくいくようになった。

ここまで書いてくれてないマニュアルって何?
ってか暗号化ナシって・・・

Java覚書 サーバ名からMACアドレスを取得

Windows上で動いている場合にしか利用できない方法だけど、メモ。

JavaでサーバのMACアドレスを簡単に取得する方法を漁ってみたのだが、結局は「ARPコマンドを実行する」ぐらいしかないようである。
なので、ちょっとガックシきてしまった。

1) target に サーバ名を設定。
2) Windowsコマンド arp に、targetサーバのIPアドレスを設定して実行。
3) コマンドプロンプトの出力からtargetサーバのIPアドレスのMACアドレスを取得

    String target = "ここにサーバ名を設定";
    String adr= "";
    try {
      // 1)
      InetAddress ip = InetAddress.getByName(target);
      // 2)
      ProcessBuilder pb = new ProcessBuilder("arp", "-a", ip.getHostAddress());
      pb.redirectErrorStream(true);
      Process proc = pb.start();
      proc.waitFor();
      // 3)
      InputStream is = proc.getInputStream();
      BufferedReader br = new BufferedReader(new InputStreamReader(is));
      try {
        for (;;) {
          String line= br.readLine();
          if (line == null) break;
          if (line.indexOf(ip.getHostAddress()) >= 0) {
            adr = buf.substring(23,45).trim();
          }
        }
      } finally {
        br.close();
      }
      if (res.length() > 0) {
        System.out.println("Server ["+ target+ "] , IP [" + ip.getHostAddress() + "] , MAC [" + adr + "]");
      }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
    }

参考URL
きしだのはてな「JavaでMACアドレスを取得する」
ひしだま’s 技術メモページ「Java > 外部プロセス起動」

宅配サービスで嫌なもの

ここのところ、散財中。

Dr.AIRのマッサージ機を買ってみた。
9千円ぐらいだけど、百貨店で試しに使ってみたらメッチャ強力!だったので、思わず買ってしまった。
買ってすぐ家で使ってみたら、やっぱしメッチャ強力!
って、まだ弱レベルだった・・・
さらに強力にしてずーーっとブルブルさせてたら、突然電池切れ。
弱ーくなっていってプチっとかじゃなく、突然あっけなくなところが笑ってしまった。
で、早速充電。持ち歩けそうだし便利だな。(壊れなければ)

他にも色々買ってみたけど、それは別のお話。

で、宅配便のお世話になっているわけだが、迷惑な宅配業者(あるいは宅配担当者)を列挙してみん!

・人がいないときに来る
  まぁ、これはしょうがないじゃん、って思うんだけど、
  ヤマトだとあらかじめ宅配するけど大丈夫?メールがやってくるんだよね。
  これ、ホントありがたい。
  再配達してもらうのってやっぱしもうしわけないからね。
・時間どおりに来ない
  これもまぁしょうがないね。いっぱい運ばせてるのこっちだし。
・何度もやってくる
  1回できてね。その方が楽でしょ?って思う。

んで、こっからが本番!
・Web再配達受付の仕組みがない
  これはつらい。もういい加減電話なしで生活できるようにしてほしい。
・荷物がたばこ臭い
  論外。客のモノ(他人のモノ)って認識あるのか?
  下請け使ってるところは、もう本当にひどいときがあって、
  この間なんて、段ボールの外側だけじゃなくって内側にまでたばこ臭がついていた。

と、愚痴ってみたが、基本的に世話になっている身なので、一番下以外は文句は言わない。
一番下のやつは、もう、ホント勘弁してくれ。迷惑。部屋ん中まで臭なるわ・・・

謹賀新年2017

新しい年が幕を明けた。
だからといって、大して何も変わらないので12月に見た面白い芝居について。

「繻子の靴」

京都の大学内にある春秋座というところで8.5時間かけて行われた芝居。
いやぁ~、長いのなんのって!
観てるほうが疲れるんだから、やってるほうはどうなんだろうか。

8.5時間の芝居って、台詞を覚えるのはどうすんのかなぁ?と考えたのだが、実際みてみると、半分は朗読なので、覚えるところはそんなに多くはなかったようだ。
が、それでも、膨大な量だなぁ。
と、裏っ側のことを気にしながら観てしまった。

舞台は3段になっていて、それに似非プロジェクションマッピングを合わせて、面白い構造になっていた。これをうまく画面転換や人物の距離を表すように使っていて、うん、うまい使い方だなぁ、などと思った。

ただ、いつも思うんだが、蜷川氏といい、この演出家といい、日本人がやると、妙に日本エッセンスを出そうとするところが、ちょっと「?」。
いい効果もあると思うのだが、例えば台詞を言っている最中に笛吹かれても、うるさいだけなんですけど。いや、風が吹いていることを表現したいのはわかるんだが、五月蝿いのよ、これが。
音響ってこういうことじゃないし、どうして狂言師をここまで配置する必要があるのか、雅楽?をこういうところ使われてもねぇ、とか、まぁとにかく音楽はいまいちだったなぁ・・・
(日本エッセンスも使いようなんだよね。いい使いかただなぁ、と思うところもあったのだけれど、必要ないよなぁ、と思うところやら、どうせだったらここで使ったらどうかなぁ?と思うところやら、いろいろあった。)

ただ、総合的に見て今までみた芝居の中でも、上位に入るすばらしい舞台だったなぁ、と思う。よくここまで作り上げたなぁ・・・と感心した。
また、機会があったら観てみたいな。

4日目まで見続けた人も、役者さんもお疲れ様でした。
これぐらいの芝居が7千円弱で観られるってのが凄いな。
企画してくれた人ありがとう。

ということで、これが12月のお話。
さて、今年は何を観ようか。

SQLite覚書 副クエリを使ったUPDATE

世の中には、ありがた迷惑とか、小さな親切大きなお世話とか、そういうことがわからない人が一杯いるようだ。
そういう人は、「やるな!」「やらないでくれ!」っていっても、「やる」のだなぁ。
人のやること横取りするんじゃないよ!と、叫びたかった、今日の朝。

それはそうと、SQLiteでSELECT文を使ってUPDATEしたい!というのがあって、
そうすると、まぁ、

 UPDATE table1 SET
  col1 = (SELECT col1 FROM table2 WHERE .... )

みたいにすればできるぜ!みたいなことはいっぱい書いてあるんだけど・・・

 そうじゃないんです!
 JOINで連結させて、ホゲホゲホゲ・・・とやりたいんです!

という要求は満たされないわけ。

で、調べた。

SQLiteはWITH句が使えるらしい。
んで、WITH句をうまく活用して、UPDATEできるらしい。

他のDBのSQL文を

UPDATE table1 SET
    col1 = a.col1
  , col2 = a.col2
 FROM (SELECT .... FROM .... INNER JOIN ....) a
 WHERE table1.id = a.id

とすると、
WITH句を使ったSQL文は

WITH a AS (
  SELECT .... FROM .... INNER JOIN ....
)
UPDATE table1 SET
    col1 = (SELECT col1 FROM a WHERE table1.id = a.id)
  , col2 = (SELECT col2 FROM a WHERE table1.id = a.id)

みたいな感じ。

で、これを私が愛用する「A5:SQL Mk-2」(SQL開発ツール)で実行したのだが、うまくいかずに、「あれ?できないの?」とか思って悩んだのだが、ツール上ではうまくいかないだけで、SQLiteのコマンド実行では、ちゃんと動いた。

ホント、統一させてほしいんですけど。

2か月もほったらかしてしまったから観劇感想

ブログをほったらかして、そろそろ2か月。
ちょっとは更新しておこう。

何もなかったわけではないのだが、「貧乏暇無し!」これに尽きる。

この2か月の間に、宝塚星組「桜華に舞え!/ロマンス」と梅芸「スカーレットピンパーネル」は観劇した。

前者は、週末の、しかも、トップのさよなら公演であったので、けっこう混んでいたが、さほど悪くない席が取れた。

で、まぁ、最終的に北翔さんという人は私は好きだったけど、トップになってみたら、

 さしたるトップではなかったなぁ・・・

と、ファンには申し訳ないのだが、そんなことを思った。
どちらかというと、割と自由にやれる脇役ってのがピッタリくる。
バウとかのメリーウィドウ等々がよかったから、トップでも十二分にやってくれそうな感じはしたのだが、トップになるといろいろなところでボロが出るもんだな・・・と感じた。
(誰も何も言わないんだろうか?)

一方、紅さんは品性に欠ける点があまり好きではないのだが、とはいっても、なんとかトップとしてやれそう?やれるかな?的な雰囲気が出ていたのが印象的だった。
(でも、金払って行くかと言われれば行かないかな。)

続いて、「スカーレットピンパーネル

石丸さん好きですよ、私。
石井さんも好きですよ、私。
平方くん頑張ってますな、はい。

やっぱり男前が時代感たっぷりな衣装を着ていると、「目の保養」でありますな。
衣装が素晴らしく格好良くって、いや、衣装だけでも充分なのに、男前!という、ジュルジュル感たっぷりでございましたよ。

そこへ行くと、安蘭はイマイチ。なんというか品がないんだな。
立ち姿は悪くないし衣装が綺麗だし、静止画としてはいいのだが、動くと商店街のおばちゃんみたいな感じ。
前に観た「サンセット大通り」はよかったし、「スカーレットピンパーネル」の宝塚の初演は彼女が主役で、しかもとても面白い舞台だった。
私はこの宝塚初演版のDVDまで買ってしまったほどだったので、いつも以上に期待をしていたのだが、今回はガックシきてしまった。

内容は、といえば、宝塚版とは構成が違って、どちらかというと中身に重点を置いていて重厚感がある。
だけど、少々歯切れが悪く、どちらかと言えば、宝塚版のほうがライトで楽しめる感じ。
宝塚は人数が多いからそれだけで舞踏会の場面とかも迫力があるというのも、宝塚版のほうがいいと感じている理由の1つだ。
(小池修一郎の演出力を改めて見直してしまった。)

で、1つ愚痴っとこ。

私はスタンディングオベーションが大嫌い!なのだ。

ってかさ、そんなこと欧米のまねしなくてもよくない?
演者はスタンディングオベーションされて嬉しいんだろうけどさ、そもそも、

前の人が立った所為で舞台が見えなくなるから、仕方なく立ってるんです!

っていう人間がどれだけいると思ってる?
もうちょっと、他人に対する気配りしようよ、ホント。
(ってか拍手するだけじゃ、満足せんのか?)

私はレスリー・チャンが好きだったのだが、レスリーのファンというのが、
「映画を見終わったら、スタンディングオベーションしよう!」
みたいなことをやってて、実際にやってるひとがいたんだけど、あれもホント迷惑。
本人いないし。
もう、自己満足をひけらかしてる。
後ろからケリ入れたい気分だったが、良くも悪くも足が届かんかった。

あぁ~~~、悪魔の私が出てきてひっこまないぞぉ~~ということで、今日はこの辺に。

Processing覚書 SQLite接続

Processing開発。
BezierSQLibライブラリを使ってSQLiteのDBにつないでいるのだが、1つ問題が。

というのも、エラーになったときExceptionが発生しない。
ライブラリ内部で例外処理までしてるのは兎も角、結果がエラーになってもエラーを判別できるフラグがない。
DBにLockがかかってる時にUPDATEしても、コンソールにエラーメッセージは出るが、それだけ・・・
Rollbackするタイミングがつかめない。
このままではマズイ。困った。

こうなったら、直接jdbcライブラリを利用しよう!となった。

プログラムソースのpdeファイルが入っているフォルダの下に「data」フォルダを作って、その中にDBファイルの「test.db」を入れる。
「data」フォルダと同じ並びに「code」フォルダを作って、その中にライブラリ「sqlite-jdbc-***.jar」ファイルを入れておく。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

// ------------------- ( 略 ) -------------------

void getData() {
  Connection con = null;
  Statement stmt = null;
  try {
    Class.forName("org.sqlite.JDBC");
    con = DriverManager.getConnection("jdbc:sqlite:"+ dataPath("test.db"));
    println("Opened database successfully");
    
    stmt = con.createStatement();
    stmt.executeUpdate("INSERT INTO m_users (user_cd ,user_name) VALUES ('1010101', 'Lily');");
    stmt.close();
    con.close();
  } catch ( Exception e ) {
    println( e.getClass().getName() + ":" + e.getMessage());
  }
}

Macでいけたから、あとはWindowsでも確認しよう。

SQLite覚書 速度の向上

データが1万→2万になったところで、急激にUPDATEの速度が遅くなってしまった。
SQLiteって速いって聞くんだけど・・・
ということで、チューニングについて調べてみた。
INSERTが遅いってのがあったけど、Transactionは入れてるし。
UPDATEが遅いっていわれても、そこを変えるのは・・・と思ったので、以下のサイトを参考に、コマンドプロンプト上でDBの設定をかえた。
パフォーマンスを追求するためのSQLite設定 | ITハンドブック
SQLite「PRAGMA statement」

sqlite> PRAGMA main.journal_mode = PERSIST;
sqlite> PRAGMA main.synchronous=0;

mainはスキーマ名。
で、どうなったかというと、設定を変更後、一回VACUUMをしてから確認したら、劇的に速度向上?

<追記>
あぁ・・・勘違いしてた。
どうやら、DBを開いているときだけ設定した状態が保持される様子。

SQLite が認識できる SQL

閉じちゃったら元のDefault設定に戻るようだ。
たしかに、開き直したら設定が消えちゃってたよ。

開いた直後だな。設定するのは。

<追記2 2016/09/14>
さて、さて、いろいろ試した結果。

結果的に設定を変えて高速化したか?といえば、さほどな気はした。
やはり、他のSQLと同様、INDEXをはるってのが1番で、あとはなるべく実行しない方法を探すのがよいようで。
次に、TRANSACTION。これはかなり大きかった。1,2万行を順にINSERTしていく手前でBEGIN→終了時COMMITとするだけだが、これも速度がだいぶん速くなったように感じた。
DELETE&INSERTよりREPLACEを使うのがいいと書いている人もいるが、
目からウロコだったのは、INSERT文のVALUES部にUNION ALLしたSELECT文を用いるやり方。

SQLiteで最も速く複数行INSERTする方法 | transhumanist note
要は、複数行の実行をお纏めしちゃうわけで、これはなかなか面白いやり方だと思った。

まぁ、あとできることはVACUUMしてゴミを減らすことかな・・・

ExcelVBA覚書 コマンド実行

Dir関数でファイルがないってときに、
 ただファイルがないのか、ネットワークにつながってないのかわかんないの?
 Ping飛ばしてネットワークにつながってるのか調べたらいいじゃない?
みたいな要件があって、まぁ、正直、「そこまでやるか?」って思ったけど、そういう環境で動いている人は、そういう発想になるんだろうなぁ・・・と思って、教えてもらったPing送信術をアレンジしてExcelに埋め込んでみた。

Public Function CheckNetwork(ip As String) As Boolean
    
  Dim wsh As Object
  Dim buf As String
    
  On Error GoTo ErrCheck

  Set wsh = CreateObject("WScript.Shell")
  wsh.Run "%ComSpec% /c ping -n 1 " & ip & " | clip ", 0, True
  buf = GetObject("\" _
               , "htmlfile").ParentWindow.ClipboardData.GetData("text")
  If InStr(buf, "ラウンド トリップの概算時間") > 0 Then
      CheckNetwork = True
  End If
  Exit Function
ErrCheck:
  err.clear
End Function

ちなみに、「%ComSpec%」は、「%SystemRoot%\system32\cmd.exe」のことらしい。
「 | clip」でクリップボードに入れて、それをbufに読み込むようにした。
また、Shellは、Execで動かす方法とRunで動かす方法があるが、Runのほうが、コマンドの窓が表示されないようにできるので、こちらを採用。
面倒な要件は、解決できると嬉しい。
解決しないと、逆恨みしそうだけど。

ExcelVBA覚書 シートロック、でもフィルターは使いたい

あるよねぇ~~~~
ってことで、

Sub ProtectSheet
    With ws
        If Not .ProtectContents Then         'ロックされていないときだけロック処理
            .Protect Password:="password"
                   , DrawingObjects:=True
                   , Contents:=True
                   , Scenarios:=True _
                   , AllowFiltering:=True     'ここでフィルターOKにする
        End If
    End With
End Sub

以下は試していないけれど、これでもOKらしい。

Sub ProtectSheet2
    With ws
        If Not .ProtectContents Then         'ロックされていないときだけロック処理
            .Protect Password:="password"
                   , DrawingObjects:=True
                   , Contents:=True
                   , Scenarios:=True _
                   , userInterfaceOnly:=True
        End If
        .EnableAutoFilter = True
    End With
End Sub

ExcelVBA覚書 Application.Goto

セル選択&移動させる方法はいろいろあるけど、一番手っ取り早いのはApplication.Gotoのようだ。

Sub ActivateRange(rng as Range)
    On Error Resume Next
    Application.Goto rng, True
    err.clear
End Sub

1つ目の引数は選択セル、2つ目の引数はスクロールして移動するかどうか、らしい。
選択だけだったら、rng.selectでもいいように思うけど。

これを使わずに選択させようとなると、

Sub ActivateRange(rng as Range)
    On Error Resume Next
    rng.parent.parent.Activate
    rng.parent.Activate
    rng.select
    err.clear
End Sub

みたいなかんじで、ブック→シート→セルをアクティブにしないといけないわけで、これは面倒。
(親がアクティブになっていないに、子をアクティブにはできないのだ)
楽にできる関数があるということで、メモ。

ExcelVBA覚書 このパスどこ?

このパスはローカルなのかネットワークサーバなのか・・・
とりあえず判定ロジックを作ってみた。

'ローカルならTrue、ネットワークならFalse
Public Function CheckLocal(filepath as String) As Boolean
    
    Dim cap As String
    Dim fso As Object
    Dim obj As Object
    
    '先頭が\なら確実にネットワーク
    cap = Left(filepath, 1)
    If cap = "\" Then
        Exit Function
    End If

    'ドライブ割当のローカル/サーバ確認
    Set fso = CreateObject("Scripting.FileSystemObject")
    For Each obj In fso.Drives
        If obj.DriveLetter = cap Then
            If obj.DriveType = 3 Then
            Else
                CheckLocal = True
            End If
            Exit Function
         End If
    Next
    'ここまで来たらどこかは不明
End Function

物欲主義! Tabletを買ってしまった件

iPod Touchを持っているのだが、最近、Amazonのプライムビデオで『弱虫ペダル』をiPodで観ていてふと思ったことが、

観ている間ゲームできないんですけど・・・

ってな話。
「いや、観ている間ゲームはしないっしょ」と突っ込まれそうだけど、例えば、ちょっとメールを確認したいとかね、わざわざ画面切替えないといけないわけ。
面倒ですな、と思って、早速Amazonでタブレットを漁ってみた。
Amazonの動画を観るだけだったら、とKindleタブレットも候補に挙げてみたが、さらにふと思ったのは、ポケモンGOのこと。
iPodだとブチブチ切れちゃう(最終的にGPSの感度でなく、メモリかなぁとも思い始めてきた。)ので、んじゃ、GPS付いてるタブレットにしてはどうかと調べてみた。

で、一目散。Sony Xperia Tシリーズ
サイズによって値段が違うものの、5万円かぁ・・・きついなぁ。
ASUSなんてどうかなぁ・・・どうかなぁ・・・。

購入。。。

5万円超のタブレットを買ってしまった。PCより高いやないか!とか気がついたのは購入後。
GPS付いている2万円台のタブレットがあるやろ!と、気がついたのは製品が届いた後。

いやぁ、Xperiaが欲しかったんです!!

そう、ただそれだけだった。
いや、それだけじゃない。
一応ハイレゾ対応してるから、音楽だってmicroSDにいれて聴ける!とか考えたし、
デザインもまるまるしてなくって自分好みだし、
し・・・・・・・

えっと、
それぐらいかな。

まぁ、でもめっちゃ気に入ってて、常時私とともにある感じ。
いやぁ、いい買い物したよ。
5万円分使いまくってやる!(潰れない程度に)

Java覚書 ExcelのSLOPE関数をJava化してみる

回帰直線の傾きを求めるExcelのSLOPE関数をJavaで作成してみる。

public class Main {
    public static void main(String[] args) throws Exception {
        // y値のみで、かつ、int型
        int y[] = new int[]{70,80,30,40,50,20};
        slope(y);
        // x,y値で、かつ、float型
        float[][] xy = { {2.5F,10.3F}
                        , {3.0F,24.3F}
                        , {3.2F,30.5F}
                        , {5.0F,42.5F}
                        , {6.1F,53.4F}
                        , {8.9F,48.8F}
                       };
        slope(xy);
    }
    
    // 回帰直線の傾きを算出(int型 y値のみ渡す)
    static float slope(int val[]) {
        float[][] f = new float[val.length][2];
        int i = 0;
        for(int v : val) {
            f[i][0] = (float)i;
            f[i][1] = (float)v;
            i++;
        }
        return slope(f);
    }
    
    // 回帰直線の傾きを算出(float型 x, y値を渡す)
    static float slope(float[][] val) {
    float sumX = 0;
    float sumY = 0;
    float sumXX = 0;
    float sumXY = 0;
    float n = val.length;
    for(int i = 0; i < val.length; i++){
       float x = (float)val[i][0];
       float y = (float)val[i][1];
       sumX += x;
       sumY += y;
       sumXX += x*x;
       sumXY += x*y;
     }
     System.out.println("a : " + (float) (n*sumXY-sumX*sumY)  / (float) (n*sumXX-sumX*sumX));
     System.out.println("b : " + (float) (sumXX*sumY - sumXY*sumX) / (float) (n*sumXX - sumX*sumX));
     return (float) (n*sumXY-sumX*sumY)  / (float) (n*sumXX-sumX*sumX);
    }
}

ポケモンGOをやってみた

というかやってます。
自分の周りの自分より年上の人がやってるって聞いて、「いや、そんなおっさんまでやってたら、そりゃアクセスできませんわ・・・」とか思ってたんだけど、えぇ、齢40過ぎたおばはんもやってます。

自分はiPod Touch(第5世代)で、Y’MobileのポケットWifiでインターネット接続してやってるんだが、もうプチプチ切れて、私の血管も切れそうな勢い。
はじめはGPSを探してます・・・って表示されてプチっと切れるから、GPS関係かな?とか思っていたんだが、京都の山奥(ってほど奥でもないけど)で使ったら、結構落ちないで動いてくれていたので、結局は、

周りに人が多いとプチプチ切れる!

って結論に達した。
なので、例えば早朝とか深夜とかなら、そんなに切れずに使えるんかなぁ・・・と思ったけど、朝起きれません。夜中徘徊する気もありません。

ということで、使い勝手の悪い状態で当分は遊ぶことになりそう。

下手をしてしまったこの1週間

いやぁ、参った。
自分が基本的なことを怠った所為なのだけど。

DBとかのバックアップはとってたのに、WordPress関連ファイルのバックアップをしないまま、WordPressのバージョンアップをしてしまった。
というのも、ここ最近は、エラーもなくバージョンアップできていたからなのだけど。

で、バージョンアップに失敗し、メンテナンスモードから戻らず、挙げ句の果て、FFFTPでバージョンアップしたファイルをアップロードしようとして、サーバに容量が足りないんだぜ!エラー「552 STOR denied: quota exceeded」が発生し、どうにもならん状態で1週間がすぎた。

で、もうダメかなぁ・・・などとブルーになっていたら、wp-content/upgradeのなかに、古いバージョンのファイルがすべてバックアップされているのを発見。
で、そこからファイルを戻して復旧させることに成功した。

おそらくだけど、バックアップとって、バージョンアップさせたら容量が足りなくなったんだろうな。

ということで、アクセスできなかった方々、申し訳ございませんでした。

クーラーをつけた日 2016

今年も、とうとうこの季節がやってきた。

もう、ムンムンしすぎて、気持ち悪くって、寝られない!

ってなことで、クーラーを掃除。
全力で冷やしてもらったが、30分ぐらいしないと、ムンムンが消えなかった。

30分経って、空気はまぁ良くなったが、なんだかやっぱり寝られない・・・

って、あれ?、単なる食べ過ぎだったかも。
(懲りないね・・・)

観劇の日々

さてさて、春~初夏にかけて、いろいろ観たのでメモっておこう。

宝塚星組「こうもり・The Entertainer」

ぴあの先行予約でチケットが取れず諦めていたのだが、そのぴあから空席のメールがやってきたので、ぷしゃっと空席をみてみたら、悪くない位置だったのでゲット。
桜もほぼ散った時期だったが、芝居もショーも華やかで見応えがあってよかった。
芝居はトップ以下コメディエンヌが揃っている組ならではで非常に楽しめたし、ショーもなかなかのモノだったと思う。
最近の宝塚の問題といえば若手がいまいち育っていないというところだが、とりあえず星組は礼真琴がいるので大丈夫感たっぷり。その下が・・・というところか。
あとはもう少し娘役が注目されるといいなぁと思う。
買っても観ないけどDVDかっとこうかなぁ・・・と密かに思う今日この頃。
(ホント、観ないんだよなぁ)

映画「ズートピア」

1日の映画1000円デーに3Dで観た。
3Dだと1500円ぐらい取られるのでお得感がないし、そもそも3Dで観る必要あるのか?とか、めがねのせいで画面が暗いとか、とにかくいいことNothingな3D鑑賞だったが、観られる時間帯にやっていたのが3Dしかなかったので、諦めて3Dにしたのだ。とほほ。
マジ、二度と「3Dでみない!!」と固く誓った2時間だった。
ストーリーは良くって、なんてったってカワイイ。上戸彩はまぁ声優としてはどうかと思うが、カワイイからもういいのだ!と思ってしまった。それぐらい、みんなカワイイし、面白かった。
動物の世界も大変なのね。

ミュージカル「エドウィン・ドルードの謎」

客席参加型ミュージカルで、結末がなんか複数通りあるんだよねぇ・・・へぇ~・・・ってな感じで行ってみた。
面白かった。芝居観てて、声に出して突っ込んだの初めてだよ。
ほんと、面白かった。
いやぁ、レビューを観てると、あぁきっと台本通りなんだねぇ・・・と思うのだが、アドリブなのかお稽古通りなのか、もうブヨンブヨンのところにいるような感じがよかった。
主演が山口祐一郎と壮一帆とあるが、完全山口支配人と今拓哉が主役。この2人でストーリーの60%は費やしている。サラサラ山口さんとヌメヌメ今さん、いいコンビだ。
山口支配人は、こういう役のほうが合うだろうね。もう、かるーく流す感じの役。
エリザベート観たときは、演歌歌手か!とか思っちゃったもの。
暑苦しいというか、ねちっこい今さんも良かったけど、平井綾もかわいかったけど、保坂千寿さんもすてきだったけど、ヘンにはまったのはコングだった。
いやぁ、あれは笑えるな。声も好き。ちょっと、これから追っかけてみようかな。
ということで、投票した犯人にはならなかったが、楽しめた。よかった。

ということで、この春の観劇日和は、なかなか晴天に恵まれてよかったということで、ハッピーだ。

Excel VBA覚書 CSVファイル読込

久方ぶりの投稿。いろいろあったけど、それはまた別に書くとして、CSVファイルを読み込むときの高速なやり方を探してたらQueryTablesを使った方法というのがあったので、やってみた。

    Dim wb As Workbook
    Dim ws As Worksheet
    Set wb = Workbooks.Add
    Set ws = wb.Worksheets(1)
    With ws.QueryTables.Add(Connection:="text;mega.csv", Destination:=ws.Range("A1"))
        .Name = "megacsv"
        .TextFileCommaDelimiter = True
        .Refresh
    End With

すごかった。30万行一瞬。