2016年05月11日

Werckerのboxの作り方(変更に巻き込まれた話)

Werckerというのは、非常に荒っぽくいうと、githubやbitbucketのリポジトリにpushした際に、ある特定の環境でビルドできるか確かめたりテストしたり、ということができるサービスの一つである。
他にも似たようなものはあるが、Werckerの良いところは、無料、bitbucketに対応、プライベートリポジトリにも対応、自分でboxが作れる、という点だろうか。

で、一昨日からboxを作ったりしたのだが(OCamlが入ってる環境が見つからなかったので作っただけ。実際はOCaml入れてCoqをビルドしたりするboxもあるので入ってはいるはずなのだが。)、そのときは検索をかけて見つかる情報通りに作って正しく作れた。
しかし、昨日Prologのboxがないことに気づいて作り始めたところ、何度やっても失敗してしまうようになった。

そもそも、一昨日作ったapplicationと昨日作ったapplicationで、表示されるオプションが全然違う。
ビルドに成功しないから展開(deploy)もできない。
ひたすら環境構築の部分でNo wercker.yml exists!とエラーを出し、ビルドに失敗した旨のメールを自分に送り続ける時間。
一体なんなんだこれは!と家で叫んだりした。

そして今日、一昨日付のこんな記事を見つけた。なんか新しい機能の紹介らしい。
多分、これが昨日自分のアカウントでも有効になったのだろう。
で、この記事の中に、ちょっとだけ「(stepの)deployとかするのはcreate stepでやってね」と出てきた。

みんな(werckerの公開してる有志の?資料でも)「Applicationを作ってビルドしたら成功するよね。じゃあ・・・」と書いてるのに。
記事にちょっとだけ「Step作ってね。」である。
ちゃんと書け。

それに気づいてcreateで選ぶものをApplicationからStepにしたところ、問題もなくbuild、deployできた。
とりあえず、という程度ではあるが、SWI-Prolog用のboxができた形である。
気が向いたら使ってみてほしい。(まだテストもしていない)
posted by chiguri at 13:52| Comment(0) | PC

2016年03月25日

LinuxホストのVirtualBoxのフォルダ共有でこけた

タイトルが長いのは気にしない。
その内容の通り、LinuxをホストにしたVirtualBoxでWindows 7をゲストにしたら困ったという話。

実のところ、別にLinuxがホストだろうとインストールはスムーズにいき、(環境が32bitのせいで)メモリに苦労するものの動いてはいた。
しかし、いざ共有フォルダをつくったらまずいことが起こった。
explorerからファイルをコピーしようとするとエラーが起こるのだ。
具体的には「エラー0x80070057: パラメーターが間違っています。」だ。
ちなみにメモ帳で開こうとしてもほぼ同じエラーが出る。なんだこれは。
しかもコマンドプロンプトで適当にリダイレクトするとファイルが作れるのだ。
さらに、copyコマンドも正常に働く。
移動、削除はexplorerからも可能。
一体何が起こっているのだ。

検索しても検索しても「バックアップで失敗する」話ばかりで何も分からなかったのだが、一つ気になるものがあった。
"Code 0x80070057 The parameter is incorrect" error when you try to display a user's "effective access" to a file
これだ。
effective accessと言われてもさっぱり分からないが、しかしエラーとユーザーのアクセスという点で一致する。
中を読むと大まかにはこういうことが書いてある。

SMBを使った共有フォルダについて、\\host\dirみたいな書き方をしたやつでアクセスする場合を考える。ここで相手のSMB提供プログラムがMSのじゃない場合、ファイルのオーナーをパラメータとして要求してくる。しかし、explorerはオーナーを書こうとしないからエラーが返ってくる。これがそのままユーザーに渡される。実は、SMBの仕様上はオーナーの部分は必須ではないのだが、これを必須とするシステムもある。

今回のにぴったりな状況だ。SMBを提供しているのはVirtualBox、アクセス先は\\vboxsrv\hoge、「パラメーターが間違っている」というエラーメッセージ。
さて、この文書は解決策としてパッチの存在が書いてある。
ただし、Windows8.1以降。

8.1以降。

今入れたの、7なんだが。
え、パッチないの?
まじで?え??

・・・Linuxの方にSamba入れてホストオンリーアダプタで対処することにしよう・・・
posted by chiguri at 00:36| Comment(0) | PC

2016年02月20日

ZenPad 7を買った

Nexus7(2013)の画面を割ってしまった(2年振り?3回目)
修理に12k円もかかるのを三回もやったらさすがにちょっとやっていられないので、新しいのを購入することにした。
ZenPad 7といっても、2015年12月に出たARMのLTE使える方のやつである。
(7と言うと大分前にIntel入ってるのが出ているが、そっちはLTE不可)

とりあえず使った感想なのだが、まずNexus7のときに比べて、白飛びする。
解像度が低いのはわかっているし、さして気にもしないのでいいのだが、どうにも明るめの画像を見ると白になってる部分が。
Nexus7のときは気にならなかったし、他の画面と見比べてもZenPadのときだけ思うので、多分白飛びだと思うんだけどなあ・・・
次に、Androidデフォルトのアプリとほぼ同じような別のASUS製アプリが大漁に入っている。
いらぬ。無効にしかできないのが歯痒い。
UIはNexus7のときと似ているようで違う。ちょこちょこ引っかかるなあ。
カメラ、試してない。オートフォーカスがあるらしいのだが・・・(カメラアプリどこいったかな・・・)
後は現状さほど気にしていない。まあこんなものだろう。

ただ、久々に新しめのSDカードが入るAndroid端末を使って思うのだが、内蔵ドライブを特別扱い「しすぎて」いて、内蔵が小さいとやっていられない。
アプリ(のデータの一部)をSDに移す機能が使えることもあるが、やたら領域を食うのは大体が「後でダウンロードしたデータ」であって、「最初に入っているデータ」ではない。
SDに移せるのは「最初に入っているデータ(の一部)」なので、何の役にも立たず。
Kindleとかそこそこ買っているので、5GBを越えて内部を圧迫。つらい。
専用にフォーマットとかでもいいから、SDカードをもう少しまともに扱わせてくれないだろうか。
(Rootを取ればなんとかする方法もあるようだが、もしかしてRoot取りっぱなしじゃないとダメじゃないのこれ?と首を傾げているので今のところ試す気なし。symbolic linkを作るのかな?ならシェルからいける気がするけど)

うーむむむ・・・

追記:Rootはまだ取れなさそうだ。
ext3にフォーマットするとSDカード挿入ではマウントしてくれないし、仕方なくext3のパーティションを15GBほど作ったが、マウントできないのでやっぱり無用・・・
Root取れるようになったら試したいところではあるが・・・
posted by chiguri at 16:12| Comment(0) | 雑多

2015年10月03日

たまにはどうでもいいこと

最近は一人のんびりと作業をする日々である。
これでお金がもらえるならなによりだが、まあお金はほとんど(当たり前だが家にいる間は全く)もらってない。
研究やったり、なんとなく遊んで夜中になったら唐突にCoqをいじり始めたり。
そんな生活なので、生活リズムという語が消えてしまった。

健康って何だっけなあ。

最近Coqでいじってるのはとある定性空間表現というものなのだが、記号表現なのでCoqで扱いやすい反面、図形的なものを見いだすのに記号をこねくり回す必要がある。
そのせいでコードが長くなること長くなること。
3月までいた学生が主にやっていた定式化なのだけれど、1月くらいから手伝って、今およそ17000行か18000行くらい。当てにならないけれどwcだと19000行を越えている。年度始まって書き加えたのは10000行いかないくらい?
あと数千行くらいは増えそうだなあ。いろいろ減らせそうな部分もあるけど。

とりあえず、ある程度以上の規模になって思うのは、誤りを見つけたときの編集がやはり難しいということだ。
特に証明はまずい。
さっぱりどこがどこの対応かわからない。
ある程度bulletを使って証明を木っぽく表現できるけれど、もっと気合い入れて全部木構造に出来ないものだろうか。
ただしProof Termを直接扱うのはパスで。
でかすぎて遅くなるし。
posted by chiguri at 00:52| Comment(0) | 日記

2015年09月27日

EmacsでPrologの設定

今いるところ、時々研究でSWI-Prologを使う。
良いと思う、推論などが関わるとやはり論理型言語のフィット感は素晴らしい。
ただ、エディタがTeraPadなのは許せない。
許せない。
大事なことなのでもう一回。
許せない。

という話は、ここにあるのだけれども、今回はEmacsを導入しよう、となった話。
SWIの公式ページには、FAQの中にEmacsの設定の話がある。
――のだが、これがいくら何でも古くて何が何だか分からない。

Emacs22まではおそらく説明通りで良いのだが、23以降だとこのような手順になる。
  1. Emacsを導入する。

  2. SWI Prologをインストールする。

  3. Emacsを起動し、M-x customize-groupを実行し、prologを選ぶ。

  4. Prolog systemがswiになっていることを確かめる。(デフォルトでそうなっているはずだが、なっていなければ変更してSave for future sessionsで保存する。Emacs22以前だとこの時点で項目がないはずなので公式ページを参考にprolog.elを導入すること。)

  5. 下部のリンクでProlog Inferiorに飛び、Prolog Program Nameにプログラムのパスを入れる。ここで入れるのはswipl.exeのパスであり、plcon.exeなんて現存しないので注意。また、パスのフォルダをバックスラッシュ一つで区切るとおかしなことになるので、バックスラッシュ二つかスラッシュに変更すること。

ページでおかしいのは、prolog.elが23以降まともなものが同梱されたこと、Prolog Program Nameに入れるプログラム名が変わっていること。そのくらいは変更してほしいところだ。
posted by chiguri at 02:04| Comment(0) | PC