2015年8月26日水曜日

Windows の SBCL で ASDF を使って ライブラリを読み込む

あるいは Windows でちょっと Lisp を使いたいんだけどライブラリを読み込む方法がわからないときに役立つ可能性のある記事。なお、すべてASDFの公式に書いてある手順である。

概要

Windows上のSBCLで、ASDFを使ってライブラリをREPLに読み込む方法を確かめた。

注意事項

2015現在、プロジェクトをREPLに読み込む標準的な方法は Quicklisp(https://www.quicklisp.org/beta/)です。
Quicklispに登録されているライブラリであれば、この方法を使うよりずっと楽です。

なぜ今回このようなことをするに至ったかというと、
QuickLispが認証あり HTTP Proxy を越えることが出来なかったためです。

それはそれとして、作りかけのおれおれライブラリを常用する場合などに備えて、知っておくとよい、、、かもしれません。

この記事ではやっていないこと

.sbclrc に書き込んで自動読み込み
SBCLを停止せずに再読み込み
ソースコードの置き場所を変更する

参考リンク

バージョン情報

  • 言語環境 : SBCL 1.2.13 (Windows, x64)
  • OS : Windows7, Windows8.1

重要な事柄

SBCLにはASDF が標準添付されています。
次の手順をREPLで実施することで、ASDFの機能を有効化できます。

(require 'asdf)
; あるいは
(require "asdf")

手順


  • ライブラリのソースコードをダウンロードします
  • 自分のドキュメントフォルダ (C:\Users\<ユーザー名>\Documents)を開きます
  • common-lisp フォルダを作成します
  • ソースコードを展開します。フォルダが出来ます
    • たとえば split-sequence-1.0 というフォルダ
  • フォルダの中に (ライブラリ名).asd というファイルがあることを確認します
    • これがASDFの認識するライブラリの情報ファイルです
    • ヘッダファイルのようななにか
  • common-lisp フォルダの中にソースをフォルダごと移動します
  • フォルダ名を (ライブラリ名) になるようにします
    • split-sequence のようにする
    • .asd ファイルのライブラリ名と同じである必要があります
  • SBCLを起動している場合は、一度とめる必要があります
    • とめない方法は未調査
  • REPLで ASDF を有効化(先述のとおり)
  • (asdf:load-system "(ライブラリ名)") を実行します
    • (asdf:load-system "split-sequence")
  • ライブラリの関数その他もろもろが読み込まれてライブラリが利用可能になります

感想

出来てみれば公式に書いてあったとおりであった。そうとは知らず右往左往した。

2015年8月15日土曜日

第05期のテーマはLispにしてみよう

Lisp(また)始めました

大学生のときに勢いでLispをして現実に流されたのだが、
今回は現実にさらされているので、もう流されても大丈夫

始める前から役に立たない記事ばっかり増えそうだ、、、
心構えは「恥をさらしてみよう」

問題は、ここに書かれている方法が「唯一で正しい方法だと思い込まれる」ことぐらい、、。

Lispは、今ちょっと試して調べて分かったこととしては、
ちょっとLispがわかってくるだけで3つぐらいの書き方が思いつき
そして違いは読みやすさとデータやスコープのまとめ方と速度。
速度が違いそうという気はするが、実際は?まだわからない。

なお、言語Common Lisp で、環境は SBCL (1.2.14) です。
Clojureに興味はある。だがまずは、古臭くてべたべたに書ける世界へ。初めての方には ClojureかSchemeを学ぶことを深くお勧めします。はい。

第05期の期間情報メモ

2015/08/15 開始を宣言。

その間にしていたこと
  • ドローンはあきらめた(お金)
  • ゲームをかなりしなくなった
    • とはいえFallout4 の発売まち
  • 投資は続けているが、新しいこともなし
  • vagrantとansibleと仮想化に少し詳しくなった
    • ネットに記事があふれているので書く予定なし

2015年4月13日月曜日

さようならPresto, こんにちはChronium.

Opera というブラウザがあります。

私はOpera に広告が乗っていた時代から使っている。Opera 8 だったと思う。IE6 がくそだくそだといわれつつも最大シェアを持っている時代を通り過ぎている。私のウェブ生活にはOpera が常に隣にあった。

バージョンアップを重ねるたびに「なんか前のと違う」と思いつつ、なんだかんだで手になじんでいったOpera。私が使っていた機能は
  • どのブラウザよりも手になじんで最小限で無駄のないマウスジェスチャ。
    • FirefoxでもChromeでもジェスチャプラグインを入れて使っている
    • 最も手になじんだ操作で無駄もないのはOperaだけ
  • 便利なブックマーク機能
    • ただし Opera 9 あたりが最強だった
    • ブックマークバーを出しやすい、ツリー方式で整頓しやすい,見渡しやすい
  • 上部ブックマークバー
    • といっても一般的な機能ではある、、、はず

Operaというブラウザは、一度終わっています。

OperaはかつてPrestoという独自のウェブブラウザエンジンを開発していた。そして、他のどんなブラウザよりずっと早く多くのページを表示することができた。W3Cの仕様に完全準拠していたためにIE6向けに最適化されたページのいくつかが壊れて表示される問題があった時代もありましたね、、、。そしてそれは v12.19 というバージョンで終わった。いつだったか。2年以上前だった気がする。そして、Webkit (Chromeと共通)エンジンに移行することを発表した。

OperaがWebkit(Chronium) エンジンに移行したとき、ひとまず試した。ところが、そのときのOperaは驚くほどChromeで、Chrome以外の何者でもなく、正直言って存在価値がなかった。詳細はWikipediaのOperaのページで。私はブックマーク機能を失うのがいやで移行しなかったし、その後の以降を検討しなかった。

一方で、どうしようもない問題も抱えていた
  • v12.19 (Presto最終版)は、WOW32モードで一定条件を満たすとOSごと落ちる
    • いまどき珍しいソフト起因のブルスク
    • 条件は:Operaでメモリを4GBまで使った状態で動画を再生する(Youtubeなど)こと
    • FlashPlayerにも一定原因はあるんだろうと思う
    • 動画を自動再生するページを開くだけでOSごと落ちるので大変気を使った
  • そもそもアップデートが止まっている。
  • いくつかのサイト(といっても主にYahoo)がサポート対象外とした
そして、さっきだ。決定的な出来事が発生した。調べ物のペースが乗ってきたときに、予期せず動画の含まれるページを踏んだ。プロバイダとかなんとかの宣伝動画だったんだと思う。そして、落ちた。ブルスクになった。賢者タイムでもここまで残念な気分にはなるまい。上司に今まで必死に作ったものの仕様をすべて否定されひっくり返されたときの悲惨な気分がよみがえってきた。、、、さすがにそこまでひどくはなかった。しかしだ。もうだめだ。これはさすがにもうだめだ。残念だが、お別れの時がきたのだ。

さようならPresto, こんにちは Chronium

かくして、Opera 28 をインストールした。案の定「貧弱なマウスジェスチャのついたChrome」に成り下がっていた。ちょっと操作をしてみて、失ったものに気づき、苛立ちを覚えた。それを捨てることに下Opera社を恨んだ。しかし、仕方ないのだ。お別れは済ませたのだ。振り返るわけにはいかないのだ。

幸い、我慢強き先人たちが拡張機能を切り開いてくださっていた。Chrome ベースなのでそうではないかと思ったが、実際あった。ありがたかった。

私にとって大体 v12.19 に近づけるためにしたことについて記す。
  • 失われたホイールジェスチャ,リンクジェスチャの復活 : MoreGestures
  • 殺意が芽生えるほど使いづらいブックマーク管理を多少マシに:Bookmarks
  • 幸いなことに、ブックマークとセッションは v12.19 のものを引き継ぐことが出来た
    • ただしセッションはブックマーク扱いである
残念ながらブックマーク管理機能は元には戻らなかったし、まだ不満が残っている。しかし、最低限度はクリアした。旧来の機能を捨てるという選択をしたOperaには許せない気持ちがいっぱいだが、それでもまだOperaというブランドとわずかに残る優位性を捨てずにがんばっていることについては、畏敬の念をもつ。だから私は結局Operaを使う。拡張開発者の裾野も広がっているのだろう。プラグインの作者様には無条件で感謝する。

悪いことばかりではない。Evernote Web Clipper がOpera でも使えるようになったのだ。Chrome に擦り寄ることもすべて悪いことではないのだ。(ちなみに Firefoxプラグインは使い物にならない。実体験済み)

そして私はまた悪くなった操作性に慣れ、失われた機能を忘れながら、Operaを使うのである


2015年3月18日水曜日

今使っている iPad のアプリ

前に iPad で入れたアプリのことを書いていた

そう。なんか微妙にアクセスがあるんだこれが。ひょっとして検索間違って吸っちゃってる?単に自分の好みを紹介しただけのつもりが、、、とも思うが、ただこのブログの趣旨が単に紹介するだけだったりとりあえず思ったら書いてみるだけのページだったりするのでその傾向は変わる予定がない

しかしまあ、せっかく時間がたったことだし、Before-After で今も生きているアプリとその理由についてメモをとっておきたいと。思ったわけだ

使わなくなったアプリ

  • ぷよぷよアプリ
    • Androidからアカウントを移動したが、やめることにした
    • ソシャゲ卒業、課金分はまだ若干残ってるけど、やめられて生活好転したのでよし
  • カルカソンヌ
    • とかいいつつ思い出したらプレイする。外出中の時間つぶしとか。いいゲームです。
  • その他ゲームアプリ全般
    • うん。やっぱり一過性だったね。実際新しいゲームもやってるしね。
    • 一番長生きしたのは音ゲー
      • Jubeat, GrooveCoaster, ぽっぷんリズミン
  • 体重コントロールアプリ
    • 体重に気を配らなくなったんやな、、、実際太った
  • クックパッド
    • 料理しなくなったなあ、、、orz、、、コンビニ万歳
    • 仕事が忙しくなると料理どころではなくなる法則
    • また料理気分が盛り上がってきたらお世話になるだろう。

新しく使っているアプリ

  • Keynote(プレゼン作成)
    • 割ときれいな図つきのメモが取れるという点に注目
    • プレゼン作成の練習にも
  • Forge (Adonit)
    • Adonit Jot Pro を実は買っていて、その流れで
    • ”前に書いた絵”からフォークできて、その流れを残せるという点が面白い
    • いくつかの案を残しておいて考慮。この発想が楽しい
    • プロジェクト1件のみであれば無料、わずか400円で無制限(?)にプロジェクト作成できる
  • iMindMap HD (ThinkBuzan Limited)
    • マインドマップ信者必見
    • 基本無料! マップ数も基本的に制限はない
    • ただし、無料だと「アプリケーションからまったく出せない」
    • 月額 300, 年額 2100 のサブスクリプション方式
  • Everclip
    • Evernote

なんだかんだでいまだに使っているアプリ

  • Wunderlist
    • ToDo管理はこれで十分。
    • あなたもお気に入りのToDoリストアプリを見つけると幸せになれる(布教)
    • 一時期リスト移動(Android版で重宝)がなくてなきそうだったが、今は入っている
  • Dropbox
    • 何がすごいって Windows, Android, iOS のすべてで使える
  • Kindle
    • 紙の書籍よりKindleのほうが入手性が高いものがいくつかありましてね、、、
    • 値段についてはいろいろ考え出すと悩ましいところ。安いとも高いとも。
    • なお、サービス停止が一番怖い
  • Evernote
    • iPad との連携の結果「これでいいじゃん」状態に。
    • 書いてない。読んでる。
  • Penultimate
    • Evernoteの「お絵かきメモ」アプリ
    • Evernoteのプレミアムアカウントを1ヶ月だけ購入することになった遠因
    • 画像でそのまま残せるという手軽さ
    • なお、文字がきれいにかけていれば検索も出来る模様
      • 自分はうまく動いたためしがない
    • なんで Forgeにしないのか自分。
  • BookRemark
    • 蔵書管理は”していない”むしろ”売ったり捨てた本の記録”になっている
  • SideBooks
    • Zip ! Zip ! Dropboxとのあわせ技で。
    • 何を見ているかについてはあえて言わないという方向で

最近遊んだゲーム

  • Alto's Adventure
    • スノボをテーマにしたアクションゲー?
    • 知っている人は「Route 60」というゲームに似ている?
    • タップしてジャンプする、長押しして空中回転
    • グラフィックがかっこいい、天候要素がある、ミニマムにそぎ落としたアート?
    • 岩をジャンプしてよける、、、レールジャンプ、、、谷を超える、、、
  • RETRY
    • 飛行機をタップすると前進
    • 前進の仕方が独特
    • タップゲーだがパズルゲー要素が強い
    • どっとまみれのアートワークがかわいらしいが、レベルはハード
    • うまくいかなくてなんかはまりだすタイプのゲーム
    • 課金要素については失敗している感
  • Help Me Fly
    • パズルゲー
    • 飛行機で飛ぶのかと思ったらそんなことはなかった
    • 電池と飛行機の間を、電気を通すピースでつないで電力をつなげる
なお、App Store のトップで紹介されていたゲームしか遊んでいない模様

ちなみに Windows 8 ストアに関して一言

Windows 8.1搭載 のパソコンかったんですよー、Hyper-V も使えるかと思いましてねー。Pro版ですよー。やー、デスクトップから始まるんですねー!実際求めているものはデスクトップアプリがうごくことですよねー!

あ、でも、あのころからもう時間もたったしアプストアもかなりましになったんじゃないかな!ゲームとか,アプリとかねー!

・・・・まるで成長していない・・・・

『トップ画面に出てくるアプリが、依然見たときから5割と変わっていない』そんな環境誰が使うかという話。完全に見放されてますわ、、、。

うん。こいつを私用のタブレット専用PCとして使うのは「全面的にあきらめたほうが良い」と思う。すぐ飽きる。業務用とかならともかくね。

Windows 10 には期待してますぜぇ(遠い目)
あ、でもゲームは買いやすくなったみたいだね(遠い目)

2015年3月14日土曜日

Vagrant, VirtualBox, Chef ってなんじゃの

で、何なの?

  • VirtualBox = 仮想化基盤 (Virtualization)
  • Chef = サーバーの環境を構築(Provisioning)
  • Vagrant = 仮想化基盤と環境構築を1コマンドで実行するまとめ役

仮想化基盤。

Vagrant は VirtualBox 向けが出身なんですよ。ええ。
他にはVMware, Hyper-V, Xen, Amazon EC2 (AWS ?) とか。他にもあったはずだ

とても雑な説明をすると
  • 1つのマシンにたくさんOSを入れられる
    • これを仮想OSと呼ぶ?たぶん。
  • 仮想化基盤が同じなら、仮想OSを移動させても普通に使えるように作ってある
    • うごいたままというのもあるらしい(Live Migration)
  • その代わり、仮想OSの動作は、若干性能が犠牲になる。HW本来の性能よりやや劣る
    • ハードを「劣化が気にならないぐらい良く」すればよい(雑)
    • そもそも「性能について問題ない」ようなシチュエーションに落としこんだので
      仮想化環境を使う

プロビジョナ。環境”自動”構築ツール

実はあんまり試してない。Chef。なので Chef を語ることは出来ないのだ、、。
昔は開発環境構築には「Chef-Solo」を使ったらしいが、今は「Chef-Zero」らしい?いや「Chef-ClientにChef-Zero機能が入っている?」うむむ、、、。

ああ、まあそれはおいといて。プロビジョナってじゃあ何かっていうと
  • スクリプトでどういうサーバーのアプリケーション構成にしたいかを書いておく
  • スクリプトの設定どおりにサーバーの環境を構築してくれる
  • 「完全に同じ」環境を作り出せる(冪等性?)という触れ込み
プロビジョナに相当するものは、シェルスクリプト(!)、Chef、Ansibleという名前が出てきた。yum, aptitude あたりで何とかなるなら、シェルスクリプトで構築してもよいかも、、、などと考える。うむ。スクリプトも試してないんだ、、、。

Vagrantはまとめ屋さん

VirtualBox のAPIをたたいて仮想OSの設定を作って仮想OSをインストール(VirtualBoxの場合はインポートであろう)して仮想OS内のいくつかの設定をしてプロビジョナを起動して、、。
そう。まとめるだけの仕事で、どういう感じにするかをスクリプトに書いておく。

そしてすべてを vagrant up にする

で、何がしたいんだっけ

なんか開発環境をスクリプトで簡単に組める(というか再現できる)って聞いて,,,。
それが出来たらなんか間違って環境壊してもすぐ戻せそうじゃないですかぁ。

手作業だと何をやるんだっけって考えてみたんだよ

  1. 仮想化基盤のインストール (VirtualBoxとかね。)
    • まあ、それぐらいはやったことあったよ
  2. 仮想OSを作る。というか仮想OS用の仮想HW設定をする
  3. 仮想OSをいざインストール。
    • そのためにインストールメディアをダウンロードしてさぁ、、、
  4. 仮想OS自体の設定をする
    • ネットワークとかね。面倒だよ、、、
  5. 仮想OSにアプリケーションを入れる
    • 開発環境だから git とか svn とか samba とか
    • あと開発環境自体、、、SDK ? IDE とか
  6. アプリケーションを適切に設定する
さて、やったことがある人はわかると思うが、大体一日費やすぐらいの労力がかかる。
Vagrant, VirtualBox, Chef でこれが、、、

環境構築が完了するとこうなる

> vagrant up

役割分担に関して

まあ、設定ですよ。何を設定したらいいんだろうという話

VirtualBox, Vagrant, ”プロビジョナ”の役割分担はこんな感じ
  • VirtualBox
    • ちゃんとインストールされていればOK (得にすることなし)
  • Vagrant
    • 仮想OS用イメージ(box) のダウンロード
      • Linux なら有志が作成した既製品がそろっていて楽!
      • インストールだけならBoxの時点で終わっているのが当たり前
    • 仮想OSの設定
      • ネットワーク設定が個人的には重要
      • 他はプロビジョナを起動することの指定とか
      • メモリ量の指定とか
      • コア数の指定とか
  • プロビジョナ
    • 仮想OSが立ち上がった後のアプリケーションのインストール
      • 基本的には BOX に「インストール済み」にしておくので必要ないのがよい
    • 仮想OS内のアプリケーションの設定
Linux系ならもうらくらく。いつもの手順でどうぞ。
WindowsOS でもやり方とライセンスの扱いさえ間違えなければ出来る。コツは必要
Mac ? 知らない子ですね、、、(出来る気がする)

仮想OSなら当然気にすべき事柄

マシン性能に比して仮想OSの性能は劣るということ。

これはベンチマークをとって確認するとよさげ。
劣化が著しく使い物にならない場合は、仮想OSの設定を間違っていないかを確認、それでも不十分なら、そもそも仮想化環境の実行環境であるマシンの性能を確認。

仮想OSに対するアクセス法。

Windowsで普段開発をしていると、コンソールでつなげて開発、という感覚が慣れなかったりする。という実体験。方法としては
  • 実画面をリモートで確認できたり(VMwareはそうだったなあ、、、)
  • GUIで確認できたり(VirtualBoxでGUIありならそうだよなあ、、、)
  • リモートデスクトップでつなげる(Windows)
  • コンソールでつなげる(Windows含めすべてのOS)
などなど。まあ、勉強がひつようと。

参考情報リンク

公式。

入門記事。
第一人者

終わりに

vagrant とその開発者、布教者、情報発信者のすべてに敬意を表する。
勉強してよかった。すばらしいソフトです(※私やあなたが使わなかったとしてもだ!)

2015年3月10日火曜日

ドローンFPVレースがしたい。したくてしかたない。

とりあえず意思表明だけしておこうと思って。

したい。したくてしかたない。ドローンで、FPVでレースがしたくて 仕方ない。

他にもFPVのムービーを見たが、かっこよすぎだろう。ありえないだろう、、、!!!やりたい!やりたい!

ああ、でも調べれば調べるほど今始めるのは周回遅れなんだなって思うのはある

いやそもそも訳知り顔で「FPV(First Person View)」とか書いてみても今まで知らなかったわけだし

アマゾンがドローン配達検討中とかいっていた記事を見てドローンの存在を知ったのだけれども、今でも現役の AR.Drone 2.0 (買った) は2012 年(前身の AR. Droneは2010年) 発売だったりして。

国内でもつい最近 室内レース競技会をやっていたらしい 、、、終わってますがな!(2015年1月開催) うむ。次はいつかな?

飽きる前にさ、FPVでかっ飛ばしたいわけですよ

FPVするだけなら普通の飛行機でもラジヘリでもいいじゃん!とか思ったりもしたが
  • 比較的安価(トライアンドエラーに向いている)
  • 操作がしやすいし、壊しづらい
  • 小回りがやたら利く(そりゃまあものによるが)
ということを考えてみたら、やっぱりドローン(マルチコプター)でやってみたい!

問題は山積みなんだけどね

  • 場所(ほんとこれ)
    • 安全に対する配慮の容易さ
    • 広さ
    • 無線混信に対する防衛
    • そこで遊んで楽しいか?繰り返し遊べるか?
      • そこは工夫次第か。
  • ラジコン電波到達距離
    • 遊び方しだいで気にしなくて良いかも?
  • 映像転送装置
    • 到達距離
    • 画質、、、は最低限とはいえロストは怖い
  • 機体制御の問題
    • 屋外だと風が!風が!
    • 慣れるまでの練習

誰かピンときたら一緒にしてみたい、、、な、、、なんて!

FPV自体情報が少ないですしなぁ、、、(※とても参考になるサイトは見つけている)

ドローン購入はしているので、いくらか試して慣れてきたらまたどこかのグループ、、、mixiとか?に参加してみたいですわ

という意思表明でした。そういう人が 2015年現在いるんだなってことでお願いします。

2015年1月27日火曜日

休止宣言

休止します。

第04期の最後の投稿が 2014年11月26日なので2ヶ月以上あいてしまった。

1ヶ月以内にやめると投稿するルールを結局守れていないという話

情報発信意欲というのは、一般的な会社員的には「自己満足」の世界でしかないわけでして、実利益を得るところまで到達するだけの労力をかけるのって大変。
会社の仕事が忙しくなったら、あるいは「あわただしくなったら」頻度が下がって休止してやがて飽きるしブログの情報も薄くなる

続けられる人は習慣化と自己満足継続の成果であろう。すばらしい。私はそこまでしない。へたれることにする。人生の重点のおき方は誰かに左右されたくないものである。

また情報発信意欲がわいてきたら再開する。もとい「仕事以外で調べて書きたくて仕方なくなったら発信する」

この間にしていたことノート

  • 仕事上の必要性から JavaScript, PHP を勉強したり調査したり
  • ぷよぷよ!クエスト で遊んでいたり(ホント ソシャゲは地獄だぜ! フゥハハハーハァー)
  • BorderLands2 が面白くて仕方なかったり
  • 開発チームの人が転職した。転職って大変なのかなと思って調べてみたりした。

休止期間開始メモ

第04期終了   : 2014/08/24
休止宣言(本日) : 2015/01/27
第04-休止期開始 の日数 : 156日

仮に再開するなら第05期である