秋田の地酒 新政(あらまさ)

最近よく呑む秋田県の地酒,新政。
"あらまさ"と読みます。

この新政というお酒は歴史の古い蔵が作っているとても有名なお酒です。
そして蔵は協会酵母6号の提供元としても有名。

協会酵母6号というのは『協会酵母』(酒造りというか,アルコールを作るのに用いられる酵母菌の事を言います)の一種で,現在入手できる協会酵母の中ではもっとも古いもの。
(協会酵母は日本醸造会から買うことができます)

この新政の蔵では,現在若い杜氏が酒造りをがんばっているそうで,『亜麻猫』や『ナンバー・シックス』といった名称のものが有名。
これらは地酒専門店やこだわりの居酒屋とかで目にする事もあるでしょう。
(個人的に亜麻猫はちょっと甘すぎる感じなんですが…)

さて,そんな新政の中で僕がよく買うのは

[rakuten:ichiishop:10009306:detail]

値段は1000円ちょっとなので懐にやさしいお酒ですね!

ちなみに,写真からはわかりづらいですが,このお酒は日本名門酒会専用に販売されているお酒です。
僕がブログで紹介しているお酒は地酒を専門的に扱うような店に行かないと買えないけど,
このお酒は日本名門酒会に加盟しているお店なら買えます。

日本名門酒会のホームページ
加盟店のリンクは申請制なので,リンクが無くても加盟しているお店はあります。
(例えばホームページをもってないお店)

ナンバー・シックスとかと比べると見劣りするかもしれないですが,コスパを考えれば充分美味しいお酒ですね。

三連星

最近立て続けに飲みました,滋賀のお酒『三連星』。
美味しいですね〜。

珍しいぐらい酸がたっていて口当たりは甘酸っぱく,しかし余韻はキレがよい辛口のお酒です。
冷やで飲むと最高ですね!っていうか冷でしか飲んだことないんだけど。

ちなみに酸があるというのは昔の日本酒ではNGだったそうです。
ですが,ここ最近の食の欧米化の影響で酸がある酒が好まれるらしく,ワザと酸を出す蔵も出てきているそうです。

食べ物はなんでも似合うと思うな〜。
洋風,和風,中華なんでもOKの食中酒って感じです。

個人的には大吟醸等のランク上なお酒より自分にとってヒットだったのは,
上記の写真の黒いラベルの純米生でしたね。
(値段的に優しい物)


ところで三連星という名前はまるでガンダムに出てくるキャラクターみたいですが,
しかも黒いラベルの物だとそのままあの有名な黒い三連星
実は日本酒にはザクという名前の銘柄もあるんです。(漢字では作と書きます)


日本酒の名前って面白いのが多いですよね!

連成問題に取り組む

最近は二つのシミュレーションプログラムの連成をやっています。
片方のプログラムを先に作ったのであとからもう一つのシミュレーションを追加しているところです。

連成というのは,物理学上では複数のシステムがそれぞれ相互作用している状態を指します。まぁおおざっぱに例えるなら電磁場解析の結果得られた場からの影響を考慮して力学問題を解くとかって事ですね。時間の扱い方に関しては性質上,多くの場合に過渡的な物を考えます。

連成の問題を解くにはいくつかのやり方があって,大まかには

  1. 複数のシステムをまとめて一つの方程式を立てて解く一体型
  2. システム毎に別々の方程式を立てて解く分離型

の二種類にわかれます。

分離型の場合はシステム同士の相互作用をどのように表現するのかが問題になります。
(一体型は大抵の場合,相互作用を方程式に取り込んでいるので気にしない)
なので,分離型は相互作用の整合性をしっかり考える強連成とゆるやかに考える弱連成とに分かれます。
相互作用は各々の方程式の境界条件として取り込んでいくのがオーソドックスな手法です。


さて,僕が今つくっているプログラムでは二つのシステムの連成問題,解析の手法は弱連成をチョイス。

つまり二つの現象がもつ未知数をすべて網羅するような統一的な方程式をたてずに(分離型にして),二つのシミュレーションを別々に解き相互作用を逐次お互いの境界条件として取り入れる形です。

連成問題を取り組むのは初めてなので,システム間でのデータの共有化(メッシュとか)などを考えたり境界条件をやり取りする方法をいろいろ試したりと目下悪戦苦闘中ですが年末までには完成させたいものです。

Go on Google App Engineの速度差

Google App Engineのテスト用ローカルサーバを立ち上げてGo言語で作ったサーバを試してみたんだけど…WindowsMacとでは速度にえらい違いが出てビックリした。

どういう事かというと,Windows版がやたら遅い。
どちらも同じコードで単純な処理しかしていないのに,Windows版だけは処理が本当に重いい。あまりに重すぎてビックリしている。

ビックリしすぎて単純にGETメソッドで文字列を返すだけのプログラム書いたけど,それでもWindows版は遅い。

設定が原因なのか?と疑ってネットでいろいろ検索してみると
urlをlocalhostではなく127.0.0.1にすると速くなるよ!という記事を発見。

なんだそれ?なんていう疑問をもちつつ試してみるが速度はまったく向上しない…。

もう少し粘って解決策を考えてもよかったもしれないが,僕個人はWindows上でGo on Google App Engineを使うのはもう止めた…。

まぁなんでここまで速度に差がでるのか気になりはするけど,原因解明の時間より開発の時間を増やした方がいいかなぁと。

山口の雁木

僕が山口県の日本酒で一番のお気に入りの物は,雁木です。

雁木は力強い味わいで口に含むと甘みを含む濃厚な旨みとほどよい酸味が暴れるって感じです。
香りはやや控えめですが,フルーティーないい香りですね。
濃い目の味が好きな自分はお気に入りのお酒で,個人的に和製白ワインと思っています。

そういえば「日本酒初めて!」という人で,かつ「ワインなら白かな〜」という人にオススメした事があったけど,え?これが日本酒?すごく美味しいね!と喜んでいました。
その人の「チーズに合うんだよ!」という笑顔はなかなか印象的でした。


ちなみに,この雁木を作っている蔵元は八百新酒造といい,山口県の岩国にあります。
山口の岩国というと広島との県境であり,最近勢いのある日本酒の獺祭を作っている蔵元もあります。
人気の獺祭ですが,雁木と比べると味があっさりしているので,個人的には雁木の方が好きだな〜。

GoのBuild Constraints

最近はGo言語を使ってウェブアプリケーションのサーバサイドプログラムをやっています。
そしてゆくゆくは公開する事を考えているのでGoogle App Engineで動くようにしたい。

ところが,スタンドアロンでもGoogleAppEngineでもどちらでも動くように作るやり方がなかなか分からない。
Google App Engineのライブラリの使用方法はGo言語の標準ライブラリを使うコードとほぼおなじなのでなんとかハイブリッドなコードで作りたい…

と,ココらへんまでを前回のブログに書きました。


そしてやっと動くようになったので今日はその備忘録を。

Build Constraints

GoにはC言語C++でいうプリプロセッサの機能はありません。つまりifdefでマクロとかは使えません。

しかしその代わりに,Build Constraintsがあります。
これは簡単に言えばファイル先頭にコメント文で+buildというタグを書く事でファイルをビルドするかどうかを指定できる機能です。

この機能を使えばターゲットのOSやアーキテクチャによってビルドするソースを切り替えできます。

Build Constraintsの機能の詳細はbuild - The Go Programming Languageに書かれています。
(2013年10月の時点では日本語の翻訳記事が見当たりませんでした…)

Build Constraintsを使ってみる

使い方は簡単で,goのファイル先頭に

// +build オプション

と書きます。オプションの所はruntimeパッケージのGOOSやGOARCHにある単語を指定できます。

これで,例えばオプションで指定したOSとは異なるOSだった場合はビルドの対象になりません。

Build Constraintsの使用上の注意点その1

記述する場所はpackageコマンドの前でないといけません。

そしてpakcageと+buildタグの間には空行を忘れてはいけません

// +build 
pacakge main

これでは通らないよ!

Build Constraintsの使用上の注意点その2

go buildコマンドの引数にファイル名を指定した場合は+buildの記述があっても無視されました。

ちなみにgoはgo build -o ***で必要ならサブフォルダまで見に行くのでファイルの指定はいらないです。

GOでGoogleAppEngineとコンソールのどちらでも動くようなプログラムを作りたいんだけど

GoogleAppEngineとコンソールのどちらでも動くようなコードでプログラムを作りたいんだけど,困った問題が。

GoogleAppEngineで動かしている時にコンソール出力をやろうと思うと,appengineパッケージが提供するライブラリを使わないといけない。
(fmt.Printlnとかでは出力されない)

つまり

func Output(w http.ResponseWriter, r *http.Request) {
    appengine.NewContext(r).Infof("Hello!")
}

こんな感じにしないとコンソールに出力できない…

GoogleAppEngineが提供するライブラリを使うので,このコードをそのままにコンソールアプリを作ろうとするとビルドエラーになる。
エラーの理由は当然GOROOTにもGOPATHにもappengineなんて無いよ,だ。

GOPATHの方にGoogleAppEngineのライブラリのリンクを作ろうかと思ったんだけど,そういうの公式には認められないので…辞める。
(GOPATHはgo getとかでソースからしっかりインストールしていくものらしい…)



そんなこんなでラッパーでも書くかな〜的な感じになりそうです。

追記

公式ブログの方にHybrid stand-alone/App Engine appsという記事がありました。

読んでみると,スタンドアロンでサーバー用コードとGoogleAppEngine用コードの共存はBuild Constraintsを使えばできると書いてあります。