2017年5月7日日曜日

飲んだ酒 2017年4月

  • ワイン
    • BOTTEGA PROSECCO
    • CHATEAU LA COURONNE 1998
    • pavillon de rouquette 2012
    • GAVIOLI VINO SPUMANTE EXTRA DRY (フラワープリントボトル)
    • chateau mathiot 2003
    • Saint Michel Sauternes 2012
    • CAVA PALAU GAZO BRUT
    • CAVA PERE VENTURA TRESOR RESERVA
    • Chateau HAUT-RIOT BLANC 2013
    • CAVA JAUME SERRA BRUT
    • Hecht & Bannier Languedoc 2014
    • CREMANT D'ALSACE BRUT CUVEE MANEKINEKO GOLD LABEL
    • alexandre loiseau cote de nuits villages 1999
    • ルイ・ロデレール・ブリュット・プルミエ NV
    • マルケーゼ・アンティノリ・キュヴェ・ロワイヤル・ブリュット NV
    • ムートン・カデ・レゼルヴ・ブラン 2013
    • プルノット ロエロ・アルネイス 2015
    • シレーニ エステート・セレクション・ザ・ストレイツ・ソーヴィニヨン・ブラン 2016
    • ラ・クレマ ソノマ・コースト・シャルドネ 2014
    • ムートン・カデ・レゼルヴ・メドック 2014
    • ヴィラ・アンティノリ・ロッソ 2014
    • セレステ・クリアンサ 2013
    • ラ・クレマ ソノマコースト・ピノノワール 2014
    • プロセッコ コネリアーノ・ ヴァルドッビアーデネ スペリオーレ
    • サドヤ モンシェルヴァン(白)
    • シャトーギロー 2003
    • コノスル ピノノワール レゼルバ エスペシャル
    • LOUIS LATOUR GIVRY ROUGE 2009
    • ラ ロスカ
    • ジャンテパンショ オートコートドニュイ ブラン シャルドネ 2014
    • ボデガ チャクラ Treinta y Dos 2014
    • シレーニ エクセプショナル ヴィンテージ ピノ・ノワール 2014
    • シャトーシトラン 2010
    • シャトーマレスカス 2010
    • シャトーカップドフォジェール 2010
    • シレーニ スパークリング
    • シレーニ セラーセレクション シャルドネ 2015
    • モンターニュ ノワール ヴィオニエ
  • 日本酒
    • 陸奥八仙 赤ラベル 特別純米生原酒
    • 純米吟醸 陸奥田心
    • 陸奥八仙 吟醸火入 ピンクラベル
    • 久保田 百寿
  • その他
    • キリン ハードシードル
    • ヱビス 華みやび
    • 極ZERO
    • オールドパー 12年
    • インドの青鬼
    • YOKOHAMA XPA

2017年4月9日日曜日

飲んだ酒メモ 2017年3月

  • ワイン
    • ウィンダムエステート BIN333 2014
    • les fiefs de lagrange 2013
    • サンテロ ピノ シャルドネ スプマンテ
    • BONACOSTA VALPOLICELLA CLASSICO 2014
    • 五一ワイン 酸化防止剤無添加 メルロ
    • ポッジオ アル ザーレ キャンティ
    • チェヴィコ ラルス スプマンテ
    • ルバイヤート 甲州
    • ギィ サジェ シノン 2014
    • マルキドシャス ブラン 2015
    • フランソワ ド ロザイー
    • ピッチーニ メモロビアンコ
    • フレデリックマニャン ジュヴレシャンベルタン シャン・シュニ 2014
    • アーサーメッツ クレマン ピノノワール
    • YOSEMITE ROAD カベルネソーヴィニヨン
    • piccini vito chardonnay 2015
    • CHEVALIER DE CAYLOS
    • 甲州 酵母の泡 BRUT
    • STONECAP ESTATE GROWN カベルネソーヴィニヨン 2015
    • シャトーボーモン 2014
  • 日本酒
    • 越乃景虎
    • 極上諸白 十四代 純米大吟醸
    • 青波 blue wave
    • 陸奥八仙 赤ラベル
  • その他
    • ロンサカパ
    • シメイ(白)
    • プリマスジン
    • ホッピー(白)

2015年6月25日木曜日

[Emacs] org-modeの inline evaluation of named code blocks のシンタックスを無効化する

;; org-modeのバッファ中に call_XXX(...) という文字列があると
;; インラインのコードブロック実行命令として扱われるので、
;; 正規表現を置き換えることで call_XXXにマッチしないようにする。
;; http://orgmode.org/manual/Evaluating-code-blocks.html#Evaluating-code-blocks
(setq org-babel-inline-lob-one-liner-regexp "^^"
      org-babel-lob-one-liner-regexp
       (concat "\\(" org-babel-block-lob-one-liner-regexp "\\)")) 

正しい無効化の方法がわからなかったので、むりやり修正しました。

2015年6月10日水曜日

[CommonLisp]ABCLでクラスファイルを作る

jnew-runtime-classを参考にしました。
(in-package :jvm)

(defun make-empty-class-file (class-name &optional (super-name "java.lang.Object"))
  (make-class-file (make-jvm-class-name class-name)
                   (make-jvm-class-name super-name)
                   '(:public)))

(defun create-class-bytes (class-file)
  (let ((stream (sys::%make-byte-array-output-stream)))
    (write-class-file class-file stream)
    (finish-output stream)
    (sys::%get-output-stream-bytes stream)))

(defun write-class-bytes (fname bytes)
  (with-open-file (f fname :direction :output :element-type '(unsigned-byte 8))
    (let ((n (java:jarray-length bytes)))
      (dotimes (i n)
        (write-byte (mod (java:jarray-ref bytes i) 256) f)))))

(defun create-helloworld-class (class-name fname)
  (let ((class-file (make-empty-class-file class-name)))
    (let* ((string-array-class (class-array (make-jvm-class-name "java.lang.String")))
           (method (make-jvm-method "main" :void `(,string-array-class) :flags '(:public :static))))
      (class-add-method class-file method)
      (with-code-to-method (class-file method)
        (emit-getstatic "java.lang.System" "out" (make-jvm-class-name "java.io.PrintStream"))
        (emit 'ldc (pool-string "Hello,World"))
        (emit-invokevirtual "java.io.PrintStream"
                            "println"
                            `(,(make-jvm-class-name "java.lang.String"))
                            :void)
        (emit 'return))
      (finalize-class-file class-file)
      (write-class-bytes fname (create-class-bytes class-file)))))


(create-helloworld-class "AbclHelloWorld" "AbclHelloWorld.class")
> java AbclHelloWorld
Hello,World

2014年7月17日木曜日

[Common Lisp] 多次元配列に対するmap

多次元配列の各要素に対して関数を適用した結果を返すmap系関数を作成する場合、 make-arrayに:displaced-toキーワードを指定して作成したベクターに対してmap-intoを使うと簡潔に書けそうです。

(defun map-array! (fn array)
  (let ((v (make-array (array-total-size array) :displaced-to array)))
    (map-into v fn v))
  array)

(asdf:load-system :alexandria)
(map-array! #'1+ (alexandria:copy-array #2A((1 2) (3 4))))
;; => #2A((2 3) (4 5))

以下、初めて知った多次元配列関連の関数

  • row-major-aref
  • array-row-major-index

2013年12月21日土曜日

ABCLでApache POIを使う

ABCLはJVM上で動作するCommon Lisp処理系なので、Javaのライブラリが利用できます。

(require :abcl-contrib)
(require :abcl-asdf)

(asdf:defsystem apache-poi
  :components ((:mvn "org.apache.poi/poi/3.8")
               (:mvn "org.apache.poi/poi-ooxml/3.8")))

(asdf:load-system 'apache-poi)

(defpackage :test-poi
  (:use :cl :jss))

(in-package :test-poi)

(defun create-9x9 (path)
  (let* ((wb (new 'xssfworkbook))
         (sh (#"createSheet" wb)))
    (dotimes (i 9)
      (#"createRow" sh i))
    (dotimes (i 9)
      (dotimes (j 9)
        (#"setCellValue" (#"createCell" (#"getRow" sh j) i)
                         (format nil "~A" (* (1+ i) (1+ j))))))
    (#"write" wb (new 'fileoutputstream path))))

(create-9x9 "test.xlsx")

2013年12月20日金曜日

ABCLでClojureっぽい記法でJavaと連携


gistに書きました。

ABCLはJVM上で動作するCommon Lisp処理系ですが、Javaの機能を呼び出す方法が面倒くさいかんじなのでClojure風の記法でアクセスできるようにするリーダマクロを書いてみました。