三度の飯よりビールと言っても過言ではない生活を送っていたわたくしも、さすがに今はアルコールを欲することもなく粛々と生活をしています。よく「お酒飲めないのつらくない?!」って聞かれるんですけど、妊婦生活にはわたしにとって酒を我慢するよりもつらいことがいろいろあるもんでわりとどうでもよかったりする。

まあそんなわけで外食した時ももちろんソフトドリンクを頼むんですが、運ばれてきた飲み物が実はアルコールだったということが一度ならず二度!いやわかってるよ酒が出てくるような店に行かなきゃいいって!でもほら付き合いとかいろいろあるじゃん?!ていうか会社員してるとたとえ妊婦だろうとそういうところ行って発散しないとやってられないじゃん?!

ここでなにが問題って「ビールビール焼酎日本酒」みたいな飲み方ばっかりしてたせいで「○○ソーダ」的なかわいらしいモンにアルコール成分が含まれてるかどうか判別できないんすよ。これ死活問題。なんならそういうところに一緒に行く人たちも同じ人種だし…。いやだからわかってるよ酒が出てくるような店に(ry

 今まで2回そういった事態に遭遇しているんですがそのどちらも「これ本当にソフトドリンクですか?」って聞くと1回は「そうです」って答えるんだよね。それでももう一度食い下がると「あっすいませんアルコールですすいません」ってなるんだけど、これなんとかならんもんかね?いやだから(ry

 別にカフェインも過剰にならないくらいには摂取してるし、アルコールも1口や2口くらいならまあどうってことないだろって感じでそこまで神経質にはなっていないので、まあ大事に至らなくてよかったよかった程度で特に店に対して怒り狂うような気持ちは一切ないんですが、この前行った某チェーン店で妊婦だからアルコールじゃなくてソフトドリンク頼んだのにって言ったら店長が名刺持ってお詫びにきてびびった…近所の焼肉屋では「あーすんませんー」って軽い感じで終わったのに…やっぱり接客に力入れてます的居酒屋は違うわ…うちのだんなさんですら「ふーんそうなの」的なリアクションだったのに…なんかこちらこそ酒が出てくるような店に来てごめんな…でもまた行くからそんときはくれぐれも頼むよ。(だんなさんが自分のポイントカードもわたしに預けてきた)

くにおくん熱血コンプリートは

ファミコンで

登場した「くにおくん」タイトルが

11作品収録された

コンプリート版です

名作としての実力はもちろん

やり込み要素も追加され

なんとすべての作品が

ダウンロードプレイに対応!

3DSをもっているみんなで

楽しめる作品になっている




[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

くにおくん 熱血コンプリート ファミコン編
価格:4406円(税込、送料無料) (2016/10/29時点)





誰でも知ってる無料でおこずかい稼ぎならココから


アンケートに答えるだけで報酬ゲット

f:id:meteo:20140101164025j:plain

左端の人、なんか誰かに似てるような・・・・・・・・・

気のせいかな?

ハピプリ 声優さん

f:id:meteo:20140104170529j:plain

フォーチュンの声、キャンデリラ!?

ハニー、どうしたw

END

麺場くうが?

2018/04/09

11/28、山形県寒河江市、麺場 くうが?に行ってきました。
5回目。(→1,2,3,4)


f:id:kazu_ma634:20161230213929j:image:w400
f:id:kazu_ma634:20161230213930j:image:w400
f:id:kazu_ma634:20161230213931j:image:w400
エソ煮干し中華(醤油味)
甘みがある煮干し醤油スープ。
太縮れ麺との相性が良い。


https://tabelog.com/yamagata/A0605/A060504/6007625/tabelog.com

f:id:rakbaimai2:20170812190400j:plain

プーケット生まれのプーケット育ち。

僕の娘はプーケット人です。

憧れの雪、雪だるまです⛄

EF70-200mm F2.8L IS II USM

f:id:rakbaimai2:20170812190420j:plain

寒かった⛄

でも綺麗でした。

2012年の九州旅行以来の雪でした。

EF70-200mm F2.8L IS II USM

f:id:rakbaimai2:20170812190507j:plain

黒部ダム。

きっと夏に訪れると美しいのでしょうね。

でも8月、9月は暑いのかな?

EF70-200mm F2.8L IS II USM

f:id:rakbaimai2:20170812190523j:plain

とても思い出に残る1日でした。

娘も大喜びでした。

また来よう

 

こんばんわ!

 

最近寝るとき、寒すぎるので靴下を履いて寝る事にしたpabroです。

体に良いか悪いかは別にして、寒くて途中で起きるってことはなくなりました。

これからもこのスタイルでいこ!

体に良くないとかあったらどなたか言ってくださると助かります。

 

今日の朝、ブログを開こうとしたら、このウェブページにアクセスできません。

と跳ね返されてしまいました。

ネット関連に詳しくない僕は、「利用停止になっちゃった・・・?」

と不安になり、絶望しました。

f:id:Knikki:20161101150241p:plain

まだブログを始めて、1ヶ月ちょっとしか経過してませんがそれでも

すごい悲しくなりました。

これが10年くらい続けてる人だったら・・・とか考えるとゾッとしましたね。

何か原因があると思い、思い浮かんだのは、この2つ。

①禁止されていることをしてしまった。

②メールでの通知スルー。

ということです。

素人の僕にとって、それが良い事なのか悪い事なのかネット上で

分からない事があります。

まずそこで今までの行動を振り返りました。

 

①は、まず禁止事項っていうところも、あやふやなのでネットで調べました。

まあなんとなくは分かりましたね。なんとなく。

でも結果、思い当たる節がない。

 

②については、重要なメールが来ているにも関わらず見ていない。

その影響で、利用停止になっているかもということで過去のメールを調べてみました。

そうすると、なんとなくこれかなというメールを発見しました。

 

【重要】お名前.com ドメイン利用制限

 

これです。重要って書いてある・・・。

いつもメールはあんまり見ないので、完全にスルーしてたようです。

なんか登録者のアドレスが確認できていなかったみたい。

下にスクロールしていくと、

 

「制限解除をご希望の場合は、以下URLへアクセスし有効性確認をお願い
いたします。」

 

このような記載があり、指示通りに行う。

すると、5分後くらいに

 

【重要】[お名前.com] ドメイン利用制限解除 完了通知

 

というメールがきまして

 

ドメイン登録者(Registrant)情報のメールアドレス有効性認証をご対応
いただけなかったため、該当ドメインに対して利用を制限させていただいて
おりましたが、有効性の確認がとれましたので制限を解除いたしました。

 

この後、ブログを開いてみると通常通り開けました!!

よかったーー!

 

まとめ

もうメールはスルーしない!!これにつきますね。

今日ほんとにブログにアクセスできなかった時は、ほんとに

「終わった・・・」と思いました。

もうあんな思いはしたくないので、定期的にメールは確認するようにします。

あと、ブログをやる上で禁止事項を確認しておいた方がよさそうです。

分かっているようで分かっていないところもありそうなので。

今回は良い勉強になりました。

 

END

 

 川崎重工業は石炭火力発電所向けの灰処理設備2基を神戸製鋼所から受注したと11日に発表した。発電のために石炭を燃やした後に残る灰を冷やして運び出し、貯蔵する一連の設備。神戸製鋼が神戸製鉄所(神戸市灘区)の跡地に建設する石炭火力発電所に納入し、2021年度に1基目、22年度に2基目の稼働を予定する。

  川重は灰処理設備の設計、施工、据え付けを一貫して請け負う。電気集じん機で集める排ガス中に含まれる灰(フライアッシュ)と、ボイラーの底から排出される灰(クリンカアッシュ)の両方を回収し、貯蔵施設まで運搬する。集めた灰を水で冷やさない乾式処理方式を採用(図=川重の発表資料より)。川重は国内で唯一、乾式処理方式の灰処理設備を製造するという。

 今回の受注額は発表していない。川重は同様の灰処理設備を神戸製鋼が2002年に建設した神戸発電所(神戸市灘区)にも納入。乾式の受注実績は今回で12基になった。 

 

f:id:gaku-tokyo:20160412204332j:plain

 

動機

私は元々Vimを使っていたが、OCamlはEmacsで書くのが安牌だとされている。(現在ではSpacemacsが最も簡単に入門できる環境だろう) そこでEmacsに乗り換えてみると、此方は此方で快適であるものの、同様にエディタを軽々と乗り換えられる人はそう多くないだろうとも思った。 丁度「OCamlに入門したんだから今の内に振り返りの記事を書こう」と考えていたので、その布石としてOS X上でVimを使う際の環境構築について書くことにした。 Emacs側についてはもっと詳細な説明を書かかれている方がいらっしゃるのでそちらを参照してもらいたい。

前提

みんな HomebrewとNeoBundleの入ったVimは持ったな!! 行くぞォ!!

シェル上での設定

言語専属パッケージマネージャがOCamlにも有るので入れる。各種操作でコケる事の殆ど無い良い子。

brew install opam
opam init --comp 4.03.0

ここまででopamが何か言っているようならそちらに従って下さい。 インストールが完了したようなら~/.ocamlinit#topfindが有ること、~/.zshenvないし~/.zshrc(お好みのシェルの設定に置き換えてください)に. ~/.opam/opam-init/init.zsh > /dev/null 2> /dev/null || true があることを確認して下さい。

次に後に紹介するmerlinのための設定を行います。シェルの設定に以下の環境変数を追加してexec $SHELL -lしてください。

export OCAMLPARAM="_,bin-annot=1"
export OPAMKEEPBUILDDIR=1

1つ目の変数はOCamlのコンパイラに渡すデフォルトのオプションです。ここでbin-annotを1にしておきます。これにより生成されるcmtファイルにはコンパイルしたソースの型付き構文木情報が含まれており、merlinはこれを利用することで:MerlinLocate(IDEにお馴染みのGoto Definition機能)を実現しています。

2つ目の変数はopamでインストールしたパッケージのソースを残すオプションで、buildディレクトリ下にビルド済みのソースがプロジェクト丸ごと保存されるようになります。1つ目のオプションと組み合わせることでcmtが生成されている筈なので、そのプロジェクトのディレクトリに移動してソースを開けばすぐにソースブラウジングができるようになります。

OCamlは基本的にmlファイル(実装のファイル)に対応したmliファイル(mlの実装のうち、露出する関数のシグネチャを記すファイル、大体ocamlbuild ソース名.inferred.mliで自動生成してから弄る)にその関数のドキュメント付けを行う文化があります。特に後述するライブラリのcore等はweb上のドキュメントよりもmliのドキュメントの方が圧倒的なので、ソースを読む癖を徹底付ける必要があります。そのためこの2つのオプションは結構重要です。詳細は以下を参照して下さい。

Letting merlin locate go to stuff in .opam · the-lambda-church/merlin Wiki · GitHub

続いて色々インストールしていきます。

opam install ocamlfind ocamlbuild utop merlin ocp-indent core -y

順番に、ライブラリの依存関係やパスを解決するツール、ビルドツール、REPL、補完プラグイン、インデントプラグイン、JaneStreet製の標準ライブラリ強化版です。ちょっと語弊が有るかもしれませんが許してください。

なお、今回はRealWorldOCamlを読むための設定を兼ねているのでcoreを導入していますが、如何せんビッグなライブラリなので、バイナリが大きくなることが気になるなら扱いやすいサイズのライブラリが良いと思われます。次点で有名なGitHub - ocaml-batteries-team/batteries-included: Batteries Included projectはOCaml 4.02.3と共に最近AtCoderに入りました。OCamlは実行コンパイル共に関数型プログラミング言語では高速とされる部類なので競プロにも良い筈です。 (最近はBatteriesの方がいいなと思っています)

Vimの設定

ここから先程入れたプラグインを呼び出す設定をしていきます。 お使いのVimのパッケージマネージャでsyntasticとocp-indent-vimを入れて下さい。 (まだ試してないんですけどwatchdogs.vimでも設定すればOCaml用のチェック走らせられそうですね、保存時以外の非同期チェックが良い方はそちらを試して僕に是非教えて下さい)

NeoBundle Shougo/neocomplete.vim
NeoBundle scrooloose/syntastic
NeoBundle def-lkb/ocp-indent-vim

Neocompleteの設定に関してはVim界隈で沢山の言及があるので説明は不要かと思われます。githubの設定例のコピペで全く問題なく動作するでしょう。ただし後述するmerlinのようなvim側のパッケージマネージャで管理しないvimscriptの読み込みをNeoBundleLazyなどで遅延読み込みするのはお勧めしません。私の経験談でしかありませんが、結構簡単に動かなくなります。

私のsyntasticの設定です。特に重要なのは上2パラグラフで、symbolや色の設定はお好みでどうぞ。

set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*

let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 0
let g:syntastic_check_on_open = 0
let g:syntastic_check_on_wq = 0

hi SyntasticErrorSign ctermfg=160
hi SyntasticWarningSign ctermfg=220

そして一番この記事で重要そうなのがここ。

let g:opamshare = substitute(system(opam config var share),
$,,)

execute "set rtp+=" . g:opamshare . "/merlin/vim"
let g:syntastic_ocaml_checkers = [merlin]

if !exists(g:neocomplete#force_omni_input_patterns)
    let g:neocomplete#force_omni_input_patterns = {}
endif
let g:neocomplete#force_omni_input_patterns.ocaml = [^. *	].w*|hw*|#

opamはコンパイラのバージョン毎にディレクトリを分けており、それに付随するパッケージ達もディレクトリ毎に分かれています。ユーザーが意図的にディレクトリを分けることも可能であるため、

  • 実験的なコンパイラも手軽に試せる
  • バージョン由来の問題を各ディレクトリに閉じ込められる
  • 特定プロジェクト用の環境を作れる

などなど利点が多いのですが、エディタ側の設定では工夫が必要になります。 opamは現在フォーカスしているコンパイラ(これはopam switch <コンパイラのバージョン>で切り替えます)の情報を提供するコマンドがあるので、それを使って各パッケージに同梱されたVimのプラグインファイルへのパスをVim本体が読み込むランタイムパスに追加する必要が有るという訳です。merlin自体のパスを通したらsyntasticにmerlinを設定しておいて下さい。ocp-indentについては先程入れたVim側のプラグインがよしなにしてくれるので特に何も記述する必要はありませんが、細かなインデントの変更を行いたい場合だけ公式ドキュメントを見ながら.ocp/ocp-indent.confを設定して下さい。ocp-indent.confの記入例はこちら

ちなみにこのスクリプトのsystem関数はopamが無いとエラーを吐くので、ポータブルなvimrcを望む方はopamの所在を確認しておきましょう。(if executable(opam)などなど

最後に自動補完の設定となります。補完自体はmerlinにお任せしたいので、Neocompleteのg:neocomplete#force_omni_input_patternsに補完を呼び出す際の正規表現を渡します。 良い方法ないかなーと思って探していた所、merlinのVimプラグインのhelpファイルの最も奥底にneocomplcache時代の設定が眠っていたので正規表現だけ拝借しました。本当に神様仏様暗黒美夢王様です。

(2015 11/15追記) そういえば忘れてましたけどデフォルトのままだとインデント周りでocp-indent-vimが支配的に成れていないようなので、~/.vim/ftplugin/ocaml.vimに、

set shiftwidth=2
set tabstop=2
set softtabstop=2

のように追記しておいて下さい(あくまで貴方のocp-indent.confに合わせてお願いします、これは私の例です)、この場合であればfiletypeがocamlの時だけインデントがスペース2個分になります、expandtabするか否かはお好みでどうぞ。 ftplugin/ocaml.vimはmerlinでも使用しているようで、ここにプラグインの遅延読み込み設定などを入れるとエラーになりやすいので気をつけて下さい。(経験談

merlinのための設定

.merlinファイルを貴方が作業するディレクトリ下に配置することでどのソースやパッケージを補完するのかを設定することが出来ます。 coreだけ入れてくれれば良いよという場合はPKG coreをカレントディレクトリの.merlin内に書いて下さい。 詳しくはこの辺を参考にすると良いと思われます。

no-maddojp.hatenablog.com

vim使用時のmerlinの諸機能(式の型評価やコードサーフィン機能)や、補完の詳細なコンフィグは以下のmerlin自体のwikiを見て下さい(実質必読

github.com

すると…

(ここから2文字も打てば殆ど絞られるので作業に支障は無いです)

(追記:) 実際に沢山のパスを記述するのは面倒なものです。こちらもお勧めしておきます。

nnwww.hatenablog.com

学ぶ

Real World OCamlが無料で公開されており、難しくない英語ですし、他の和書と比べ新しめで踏み込んだ内容だと思います。(まだ2章のパース関連までしか読めてないのですが…)

日本語なら…

gihyo.jp

OCamlについて踏み込む訳では有りませんが、関数型言語を用いたプログラミングの基礎としては、

http://www.saiensu.co.jp/?page=book_details&ISBN=ISBN978-4-7819-1160-1&YEAR=2007

を読むのが良いと思われます(少なくともweb上の小難しい表現で得意になっている記事よりは余程平易で為に成ります)

言語化を兼ねて関数型プログラミング & OCaml雰囲気ざっくり入門を書いてみました、専門書と比べあまりにも貧相ですが御参考までにどうぞ。

nnwww.hatenablog.com

ocp-index, OCamlSpot, merlin, 或いは gtags

これらはmliとmlの間を移動したり、呼び出しから実装へ跳んだりする機能を持つプラグインです。規模が大きくなったり本腰を入れたコードリーディングには欠かせない存在だと思います。 私の場合試しにocp-indexを入れてみたんですが思った挙動をしないのでそれ以外を入れることを検討中です… unite-gtagsのようなgtagsとの連携はまだ導入していませんが、最近merlinを使っています。機能の詳細は先程挙げたmerlinのwikiを見て欲しいのですが

  • top levelのモジュール名を指定してml, mliへジャンプする機能
  • 式の型を表示する機能(更にその式の外側or内側の式を評価する機能)
  • カーソルを置いた関数の定義へジャンプする機能

があるので非常に便利です。またOCamlのシンタックスに併せた移動機能MerlinJumpが追加されたようですね。

Jump command · the-lambda-church/merlin Wiki · GitHub

これにアウトラインを走査する機能があれば最高なのでgtagsとかも試してみたいですね!