Kamuycikap - SentenceDataBase

日々の勉強の記録を気分で書き綴るブログ

SLIMEで利用するCommonLispの処理系を切り替える

SBCLとCLISPを切り替え

CommonLispについては、利用者として趣味レベルで遊んでいたレベルなんですけれど、近年発売された「Land of Lisp」が思いの外面白く、試す頻度が格段にアップしてます。

EmacsLispでツール作ったりするのとはまた違った楽しみがあり、Rubyとかで作るツールとの置換えとかになれれば面白いなぁと。

EmacsLispも強力ですが、CommonLispももっともっとスキルアップすると色々と楽しくなりそう。

知り合いに「EmacsLispなんて勉強しても意味無いじゃん!!なんでそんなの使うの??」

って言われてたんですが、返す言葉は

「楽しいから!!テキスト処理って面白いなぁ〜ってw」

なんですよね。

秀丸マクロやEmEditorでのCom操作Rubyも楽しいっちゃ楽しいんですけれど、EmacsLispに魅力を感じてしまった僕がいます。^^;

;;; ------------------------------------------------
;;; Common Lisp 開発環境(SLIME)の設定
;;; ------------------------------------------------
;; 日本語利用のための設定(Lisp 環境側の対応も必要)
(setq slime-net-coding-system 'utf-8-unix)
(setq inferior-lisp-program "clisp")     ; CommonLisp用 <-- sbclがインストールされている時はそれが優先らしい
(setq load-path (cons (expand-file-name "/usr/share/emacs/site-lisp/slime") load-path))

;; 処理系選択
 (setq slime-lisp-implementations
       '((sbcl ("/usr/bin/sbcl"))
         (clisp ("/usr/bin/clisp"))))
(require 'slime-autoloads)
(slime-setup)

この設定をすればおっけー。

いつもどおりに

M-x slime

とすると、sbclが起動する。
(setq inferior-lisp-program "clisp")って設定していても、sbclが優先されるみたい。

M-- M-x slime

このコマンドで処理系を選択できる。

Emacs24でキーボードマクロを使いこなす

キーボードマクロのメモ

キーボード操作を覚えさせて再生する。
エディタの標準機能とも呼べるくらい一般的になっている機能が、Emacsにすでに実装されていた事に驚いた記憶があるんですが、しょっちゅう忘れてしまうのでメモ。

現在の多くのエディタが、Emacsの機能を網羅している事を考えれば、いかに先進的だったのかってのを通関します。

マクロの記録

マクロの記録は

C-x (

マクロの記録停止

マクロの記録停止は

C-x )

記録したマクロを実行

実行は

C-x e

リージョン範囲の行に対して一撃でマクロ実行!

C-x C-k r

これでOK!!
このコマンドはapply-macro-to-region-linesと言うコマンドを呼び出している。

詳しいことは「ココ」に書いて有ります。

LubuntuにCommonLispのIDEをEmacs24で

LubuntuにインストールしているEmacs24に、CommonLispのIDEとして人気の高いと言われているSLIMEを設定してみる。
Land of Lispをテストするための環境としてインストールしてみた。
これで、快適なCommonLispの開発環境になるかな?

CLISPのインストール

synapticでclispをインストール
コマンドプロンプトclispを実行すれば、インタプリタな感じのlisp環境が起動する。

SLIMEのインストール

これは簡単。
synapticでslimeを検索すると見つかった。
いくつかの関連プログラムと共にインストールした。

init.elに設定

以下の設定を追記

;;; Common Lisp 開発環境(SLIME)の設定
(setq load-path (cons (expand-file-name "/usr/share/emacs/site-lisp/slime") load-path))
(setq inferior-lisp-program "clisp")     ; CommonLisp用

(require 'slime)
(slime-setup)

SLIME起動

M-x slime

LubuntuにArduinoの環境を入れてみる。

結論から言うと、普通にインストールしただけではシリアルポートの指定ができない。
シリアルポートを指定するためにはdialoutグループへの参加が必須の様子。
以下、その手順。

Lubuntuソフトウェアセンター

Lubuntuソフトウェアセンターを探してみると、Arduinoがあるので、入れてみる。
バージョンはちょっと古い1.3。
まぁ、あとから新しいのは入れられるのでとりあえずこのバージョンを入れてみる。

シリアルポートが認識されない。

ソフトウェアセンターでインストールするだけだから、特に問題なく終了。
メニューの中にArduinoが追加されている。
で、起動してシリアルモニターを利用しようとすると・・・・・

COM1になってるけれど、そんなシリアルポートなんて無いよ!!

って怒られる。

シリアルポートは認識されている。

dmesgを見てみると、ちゃんとシリアルポートは認識されている様子。

[   12.621685] cdc_acm 2-1:1.0: ttyACM0: USB ACM device

って出てくる。
なぜだ?

シリアルポートの権限

シリアルポートの権限として、rootかdialoutグループに属しているユーザーでなければシリアルポートを選択できないらしい。
そこで、下記のコマンドを実施

ls -al /dev/ttyACM*    <- 一応確認する
sudo usermod -G adm,cdrom,sudo,dip,plugdev,lpadmin,sambashare,dialout k <- これでdialoutグループに、ユーザー「k」が参加した

Ubuntuの場合は注意が必要!!-Gオプションをつけていても、追加ではなく更新になってしまうんです!!!
Ubuntuでusermodコマンドを実行するときは、現在自分が参加しているグループ含みで指定しなければならない。

追記(2013/06/18)
ls -al /dev/ttyACM*    <- 一応確認する
sudo usermod -a -G dialout k <- これでdialoutグループに、ユーザー「k」が参加した
  • aオプションで更新されず追加になるみたい。

PC再起動してArduinoを起動してみる。

PCを再起動してArduinoを起動してみると・・・・見事、シリアルポートを指定することに成功した!!

Arduino本家から、最新の開発ツールを取得する

本家から最新の開発ツールを取得する。

http://arduino.cc/en/Main/Software

ファイルを解凍し、中にある「arduino」を実行すると、無事に最新版のArduinoが起動する。

※ソフトウェアセンターからインストールしたArduino開発環境の実行コマンドもArduinoになっているので・・・・最新版はシンボリックリンクを作成して、「arduino105」とした。

Lubuntu12にRedmineをインストールし

Redmineをインストールしたときのメモ。
Ubuntu12にも同じ手順でインストールできるかも。

MySQLのインストール

$ sudo apt-get install mysql-server
途中でrootのパスワードを聞いてくるので、普段利用しているパスワードを入力した

MySQLの設定を追加

$ sudo vi /etc/mysql/my.cnf

下記の2行を、該当するセクションに追記した

セクション ⇒ [mysqld]
character-set-server = utf8 ← 追加

セクション ⇒ [mysql]
default-character-set = utf8 ← 追加

MySQLの設定反映と確認

$ sudo /etc/init.d/mysql restart

$ mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 37
Server version: 5.5.29-0ubuntu0.12.10.1 (Ubuntu)

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show variables like "char%";

                                                                                                                • +
Variable_name Value
                                                                                                                • +
character_set_client utf8
character_set_connection utf8
character_set_database utf8
character_set_filesystem binary
character_set_results utf8
character_set_server utf8
character_set_system utf8
character_sets_dir /usr/share/mysql/charsets/
                                                                                                                • +

8 rows in set (0.00 sec)

mysql> quit
Bye

Apache2のインストール

$ sudo apt-get install apache2

passengerのインストール

$ sudo apt-get install libapache2-mod-passenger

Redmineのインストール

$ sudo apt-get install redmine-mysql
$ sudo apt-get install redmine

途中で、データベースの選択を促される。
今回はMySQLをインストールしたのでそれを選択。

ブラウザのドキュメントルートに設定してしまおう

$ sudo vi /etc/apache2/sites-enabled/000-default

もともとの行をコメントアウトし、新たにDocumentRootを設定

#DocumentRoot /var/www
DocumentRoot /usr/share/redmine/public

apache2を再起動する。

$ sudo /etc/init.d/apache2 restart

起動してみる

自分のipアドレスを確認して、ブラウザにipアドレスを入力!

IPアドレスを確認

$ ifconfig

webブラウザで表示されたIPアドレスへアクセスする。

http://[IPアドレス]/