CLOS関連まとめ

version date memo
0.1 2013/11/03 first

Information

GNU CLISP 2.49

やりたい事

  1. 各概念の自分なりのまとめとサンプルプログラム

簡単なまとめ

多重ディスパッチ
第一引数のデータ型による多重定義(オーバーロード)
カプセル化
スロット変数へのアクセスは、アクセサーだけでなく、slot-valueによるアクセスも許可。
尚、カプセル化はパッケージ単位で行うらしい。
継承
多重継承
動的クラス変更
要調査
MOP
要調査

Common Lisp

version date memo
0.1 2013/08/17 first

Information

GNU CLISP 2.49

実行方法

実行バイナリ作成
SBCLを用いると実行バイナリが作成できるらしい。
OSSはアルミニウムの翼で飛ぶ: SBCL 実行バイナリの作成方法メモ
スクリプトファイル
スクリプトファイルとして読み込ませる。

やり方

# ファイル名を指定して実行
clisp <実行ファイル名>
;; ファイルの中身
;; クラスとか関数とか定義する
・・・
;; 実行関数を作成
(defun main ()
  ・・・
)

;; スクリプト実行用
(main)
slime
SBCLとかslimeとか使うと良いらしい。(Common Lisp)

clispコマンド

ファイル読み込み
REPL起動&ファイル読み込み
$ clisp -i ファイル名
スクリプト実行
スクリプト実行(REPLは起動しない)
$ clisp ファイル名
ロード
(load "ファイル名")で再ロード可能

slime

インストール
slime使い方&Emacs設定方法
- モダンCommon Lisp第3回: SLIMEの使い方 基礎編 | ありえるえりあ
尚、apt-getからもインストール可能
quicklisp
quicklisp設定

DBについて

version date memo
1,0 2013/08/16 first

はじめに

DBに関しての参考リンクと覚書

DBの種類

  1. RDB(行指向)
  2. 列指向
  3. NoSQL
    1. KVS
    2. カラム指向
    3. ドキュメント指向
    4. グラフ指向

Wikipedia*1によると、列指向DBとNoSQLの列指向は別物扱いなるらしい。

RDB
メリット
データが矛盾しない(整合性)
複雑な処理に耐える
トランザクション
デメリット
データが増えると遅くなる
データ構造の変化に弱い(事前にデータ構造を決める必要がある)
NoSQL
メリット
スケーラビリティ or 速度に特化
巨大データの処理に対応
データ構造の変化に強い
デメリット
データが矛盾する可能性がある(整合性保証は100%でない)

NoSQL型DBの分類(KVS系NoSQLのまとめ(Hibari、Dynamo、Voldemort、Riak編) (1/4):知らないなんて言えないNoSQLまとめ(1) - @IT)

列指向DB

列指向RDBMSまとめ。 - sunsuk7tpのメモメモに比較結果が載っている

ドキュメント指向DB

CouchDBとMongoDBの使い分けの話(CouchDBとMongoDBの使い分け - モジログが詳しい)
基本的にJSONベースのDB。
TwitterFacebookなどからデータを取得した際に利用すると便利。(APIでデータを取得すると、JSON形式で返されるので)

Common Lispでゲーム作成

version date memo
0.1 2013/08/13 first

Information

SBCL 1.0.55.0.debian

はじめに

以下のPDFを参考にしたが、Linux上での環境構築方法が載っていなかったので、自分でやってみた。
下記リンクのCommon Lispの項の冊子(PDF)を参照。
***でSTGを作りますが何か?:いで庵

DL

# UbunutuのパッケージからDL
sudo apt-get install sbcl
sudo apt-get install cl-cffi
sudo apt-get install cl-alexandria
sudo apt-get install cl-babel
sudo apt-get install cl-trivial-features

Lispbuilder-SDL関連のDL
下記リンクからDL
GitHub - lispbuilder/lispbuilder: Lispbuilder provides a range of libraries for developing useful portable Common Lisp applications
win32系は要らない。
よって、以下の5つをDL

  1. lispbuilder-sdl-ttf-0.3.0.tgz
  2. lispbuilder-sdl-mixer-0.4.tgz
  3. lispbuilder-sdl-image-0.5.0.tgz
  4. lispbuilder-sdl-gfx-0.7.0.tgz
  5. lispbuilder-sdl-0.9.8.1.tgz

解凍後、/usr/lib/sbcl/site-systems/直下に移動

(require :asdf)
(require :babel)
(require :alexandria)
(require :trivial-features)
(require :cffi)
(dolist (dir (directory "/usr/lib/sbcl/site-sysmtems/"))
  (pushnew dir asdf:*central-registry* :test #'equal))

(asdf:operate 'asdf:load-op :lispbuilder-sdl)
(asdf:operate 'asdf:load-op :lispbuilder-sdl-binaries)

(〒) < やたらWarningが出るのは、どうにかならんのかなぁ?

これで、

(asdf:operate 'asdf:load-op :lispbuilder-sdl-examples)
(sdl-examples:mandelbrot)

気がついたこと

p30ぐらい

ここのソースにフォントの初期化コードが無い。
この初期化コードが無いと、「6.4 成仏させる」項目の箇所で痛い目を見る。
下記が起きる現象で、適用可能な「draw-string-solid-*」関数が無いとか言われる。

;;;;;; p34〜
;; ----------------------------------------------------------------------
debugger invoked on a SIMPLE-ERROR in thread
#<THREAD "initial thread" RUNNING {B3ECA31}>:
  There is no applicable method for the generic function
    #<STANDARD-GENERIC-FUNCTION LISPBUILDER-SDL::_DRAW-STRING-SOLID-*_ (1)>
  when called with arguments
    ("10" 500 400 :LEFT #<LISPBUILDER-SDL::DISPLAY {CDF2CB9}> NIL
    #<LISPBUILDER-SDL:COLOR {940A761}>).

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [RETRY] Retry calling the generic function.
  1: [ABORT] Exit debugger, returning to top level.

((SB-PCL::FAST-METHOD NO-APPLICABLE-METHOD (T))
 #<unused argument>
 #<unused argument>
 #<STANDARD-GENERIC-FUNCTION LISPBUILDER-SDL::_DRAW-STRING-SOLID-*_ (1)>
 "10"
 500
 400
 :LEFT
 #<LISPBUILDER-SDL::DISPLAY {CDF2CB9}>
 NIL
 #<LISPBUILDER-SDL:COLOR {940A761}>)
;; ----------------------------------------------------------------------		  

解決方法

(defun main ()
  (sdl:with-init ()
    (sdl:window 640 480 :title-caption "てすと")
    ;;; この一行を追加(下)
    (sdl:initialise-default-font sdl:*font-10x20*) ; フォント初期化
    (let* ((current-・・・

Xenを導入したい

version date memo
0.1 2013/08/12 first

はじめに

Xenを導入したいが、Xen自体がよくわからないので、いろいろ調べた結果をまとめる(予定)
本買うかな〜?

Xen徹底入門 第2版 (CD-ROM付)

Xen徹底入門 第2版 (CD-ROM付)

でも古いんだよね(2009年)

Emacs Lispオボエガキ

version date memo
0.1 2013/08/12 first

はじめに

本ページは、下記の書籍を読んだ際のまとめ的なものになります。
詳しくは、下記の書籍を参考にしてください。

Emacs Lispテクニックバイブル

Emacs Lispテクニックバイブル

コマンド系

実行内容 コマンド 備考
メモファイル開く M-x open-junk-file C-x C-zに割り当て。ファイル作成時は拡張子を"el"にすること。
評価マーク入力 M-; M-;
評価実行 C-c C-d C-M-jに変更

Tex on Web

version date memo
1.0 2013/08/10 first

Information

動作環境

OS Browser
Lxubuntu 12.04 Firefox

Tex on Web

Web上でTexを利用する場合に、便利なサイト群

iTex2Img (Oneline Latex Equation Editor)

Online Latex Equation Editor - Sciweavers
Texから画像を生成できるツール。
サポート画像は

  1. PNG
  2. GIF
  3. JPG
  4. TIF
  5. BMP
  6. PNM
  7. FIG
  8. PS

なお、生成できる画像は、ワンラインで表せる数式に限る。

JaxEdit

jaxedit.com
TexからPDFを生成できるツール。
SkyDriveと連携が取れる。
ツールがDL可能なので、ローカルでも実行できるようである。