Page 1 of 24: 1 2 3 4 5 6 7 8 9 10 11 »





github を使うためのメモ。

Posted at Thu, 04 Mar 2010 in computer

流行に盛大に乗り遅れていますが github のアカウントを取得してみたので、その備忘録的なメモです。
git とは分散型バージョン管理システムで、要するに CVN とか SVN に似たプログラムのソースコードなどをバージョン管理してくれるものですが、これらが中央集権型なのに比べて git は分散、つまりローカルにリポジトリの履歴を持つために中央サーバが落ちていてもリビジョン間の履歴が調査可能。(以上 Wikipedia より。もとは Linux カーネルのソースコード管理のために、リーナス・トーパルズによって開発されたらしい)
で、github はその git を用いたプロジェクトのホスティングサービス。と、はてなキーワードには書いてありました。要するにみんなが使える git のサーバという感じなのでしょうか。
別に管理するほどのソースを書いているわけでもないのですが、先日 .emacs に書きためてきた設定が半分消え去って、バージョン管理も大事なのだと痛感したので使ってみようかということになった次第です。
無料で100M使えるアカウントをくれますが、お金を払わないと非公開にすることはできないので、.emacs とか .xyzzy とかいう設定ファイルなんかを堂々と公開バージョン管理していていいのかという問題はさておきます。

github へのアカウント作成と、ローカル環境のセットアップ、SSH 公開鍵の設定

github にアカウントがない場合はまずアカウントを適当に作成します。デフォルトアイコンが気になるとかいう場合は Gravatar でぐぐったりすると良いようです。別に支障は出ないのでこのまま行きます。

今回はローカル環境が Windows なので、msysGit を導入しました。

インストールするときに聞いてくるこの辺は好みで設定してください。自分の備忘録メモ。
「Select Additional Tasks」→「Create a Desktop icon」のみチェック(「Windows Explorer~ の下2つにもチェックを入れてインストールしましたが邪魔だったのでレジストリをいじって消しました)
「Adjusting your PATH environment」→「Use Git Bash only」
「Choosing the SSH executable」→「OpenSSH」
「Choosing CR/LF behavior」→「Commit line encoding as they are」(改行コードの設定を勝手に変更しない)

デフォルトで msysGit をインストールすると Git bush のショートカットがデスクトップにあるのでこれを起動します。
最初に SSH の公開鍵を設定します。

$ ssh-keygen -C "your@email.com" -t rsa

パスフレーズを聞かれるので、2回同じ文字列を入力すると SSH の公開鍵が生成されます。場所は「C:\Documents and Settings\[Windows のアカウント名]\.ssh\」(Win2000/XP の場合。Vista 以降は「C:\Users\[Windows のアカウント名]\.ssh\」)または、環境変数 HOME を設定したらそのフォルダ(らしい)です。ファイル名は「id_rsa.pub」。

できた id_rsas.pub の中身を Your Account - GitHub の 「SSH Public Keys」のところにコピペします。

ついでに、自分の名前やメールアドレスを設定。(省略可)
$ git config --global user.name "Your Name Here"
$ git config --global user.email your@email.com

ここまでが下準備です。1回やれば終了。

新しいリポジトリの作成、Git への登録、コミット、github への公開

準備ができたら github に新しいリポジトリを作成します。(「Create a Repository」)
ここで Type すべきコマンドの一覧が出るので、基本的にはこれを打てば OK。

まずはローカルにプロジェクト用のフォルダを作成しておきます。 ex. e:\data\project
作成したフォルダの中まで移動します。

$cd /e/data/project

Git で管理することを明示。gitからファイルを送受信することができるようになる。

$git init 

README というファイルをリポジトリに追加(フォルダも追加可能)

$git add README

リポジトリにコミット

$git commit -m 'コミットメッセージ ex. first commit'

リモートリポジトリの追加(これは新規にリポジトリを作成した最初の1回だけ)

$git remote add origin git@github.com:[githubのユーザ名]/[リポジトリ名].git

リモートのリポジトリに変更を適用

$git push origin master

これでおしまいです。

逆に github にあるファイルをとってくる場合には、

$git pull origin master

誰かが作って github で公開しているソースを持ってくる場合。(リポジトリの複製)

$mkdir temp
$cd temp
$git clone git://github.com/[アカウント]/[リポジトリ名].git

他のリポジトリの変更点をローカルリポジトリにマージする場合は、clone ではなく pull

$git pull git://github.com/[アカウント]/[リポジトリ名].git

ちなみに Windows の標準文字コード Shift_JIS のファイルを push するしたものを Web 上で見ると日本語が思い切り文字化けしますが、これは github の標準文字コードが UTF-8 であるためのようです。pull してくるには問題がないのと、今扱っているコード(xyzzy lisp)は Shift_JIS でないと問題が生じる場合があるようなので、特に気にせず Shift_JIS でいこうと思います。

参考



Tiarra + opentig.net(TwitterIrcGateway)

Posted at Wed, 03 Mar 2010 in computer

Tiarra という IRC プロキシサーバを利用するのに、設定で躓いたのでメモっておきます。

Network の設定のところに入力するパスワードは、./tiarra --make-password で作成するパスワードではなくて、Twitter に接続するパスワードをそのまま平文で入力する模様。じゃあ ./tiarra --make-password で crypt されたパスワードはなにに使われるのかというと、tiarra-password: として設定して、Tiarra に接続するときに使います。

tig {
  host: opentig.net
  port: 16668
  nick: TwitterのID
  user: TwitterのID
  name: TwitterのIDまたはメールアドレス
  password: Twitterのパスワード(※平文でそのまま)
  out-encoding: utf8
  in-encoding: utf8
}

参考



Sony のノックスライド式USBフラッシュメモリ購入

Posted at Sun, 28 Feb 2010 in computer

SONY ノックスライド式 USBメモリー ポケットビット ピンク 4GB キャップレス USM4GL-P SONY ノックスライド式 USBメモリー ポケットビット ピンク 4GB キャップレス USM4GL-P

ソニー / ¥ 1,406 (2009-02-10)
 
発送可能時間:在庫あり。

USBメモリを購入したのは6年ぶりぐらいになりますが、容量が大きく安くなっていてびっくりしました。
前回もそうでしたが今回もキャップレスのものを購入。あんな小さなフタはぜったになくす自信があります。

カチカチっとボールペンのようにUSB端子部分の出し入れが可能。



Carbon Emacs で M+フォントを使う

Posted at Sat, 27 Feb 2010 in computer::emacs

M+ Fonts(エムプラスフォント、mplus font)テストフライト版を Carbon Emacs で使ってみたかったので、設定をあれこれいじりました。 いろいろ検索した結果、結局配布元から設定へのリンクがはられていたのですが、見ることはできず。Web Archive から辿ることはできるのですがリンクをはっていいのかちょっとわからないので直接リンクは控えておきます。

これでいいのか実はだいぶ心許ないのですが、記録しておかないと .emacs ファイルが消えたときにまたやりなおしになるので、フォント関係の設定を全部書いておきます。重複記述や記述ミスが多分ありますが、だって動いてるんだもの。

(if (eq window-system 'mac) (require 'carbon-font))
(setq mac-allow-anti-aliasing t) ;; アンチエイリアスの設定
(if (eq window-system 'mac)
  (progn
(create-fontset-from-mac-roman-font
   "-apple-m+ 2m-medium-r-normal--0-0-0-0-m-0-iso10646-1" nil "mplus2m")
(set-fontset-font "fontset-mplus2m" 'japanese-jisx0208
                  '("M+ 2m light" . "iso10646"))
(set-fontset-font "fontset-mplus2m" 'katakana-jisx0201
                  '("M+ 2m light" . "iso10646"))
(add-to-list 'face-font-rescale-alist '(".*M+ 2m light.*" . 1.2))
(create-fontset-from-mac-roman-font
   "-apple-m+ 1m-medium-r-normal--0-0-0-0-m-0-iso10646-1" nil "mplus1m")
(set-fontset-font "fontset-mplus1m" 'japanese-jisx0208
                  '("M+ 1m light" . "iso10646"))
(set-fontset-font "fontset-mplus1m" 'katakana-jisx0201
                  '("M+ 1m light" . "iso10646"))
(add-to-list 'face-font-rescale-alist '(".*M+ 1m light.*" . 1.2))
(create-fontset-from-mac-roman-font
 "-apple-m+ 1mn-medium-r-normal--0-0-0-0-m-0-iso10646-1" nil "mplus1mn")
(set-fontset-font "fontset-mplus1mn" 'japanese-jisx0208
                  '("M+ 1mn light" . "iso10646"))
(set-fontset-font "fontset-mplus1m" 'katakana-jisx0201
                  '("M+ 1mn light" . "iso10646"))
(add-to-list 'face-font-rescale-alist '(".*M+ 1mn light.*" . 1.2))
(create-fontset-from-mac-roman-font
   "-apple-m+ 1m-medium-r-normal--0-0-0-0-m-0-iso10646-1" nil "mplus1mreg")
(set-fontset-font "fontset-mplus1mreg" 'japanese-jisx0208
                  '("M+ 1m regular" . "iso10646"))
(set-fontset-font "fontset-mplus1mreg" 'katakana-jisx0201
                  '("M+ 1m regular" . "iso10646"))
(cond
 ((string-match "apple-darwin" system-configuration)
  (create-fontset-from-mac-roman-font
   "-apple-m+ 1m-medium-r-normal--0-0-0-0-m-*" nil "asciimplus")
  (set-fontset-font "fontset-asciimplus" 'japanese-jisx0208
                    '("ヒラギノ角ゴ pro w3" . "jisx0208.1983"))
  (set-fontset-font "fontset-asciimplus" 'katakana-jisx0201
                    '("ヒラギノ角ゴ pro w3" . "jisx0201.1976"))
  (add-to-list 'default-frame-alist '(font . "fontset-asciimplus"))))
(add-to-list 'face-font-rescale-alist '(".*M+ 1m .*" . 1.2))
(add-to-list 'face-font-rescale-alist '(".*M+ 2m light.*" . 1.2))
))
(add-to-list 'default-frame-alist
             '(font . "-*-*-medium-r-normal--0-0-0-0-m-0-fontset-mplus2m"))

M+ Font を使用したスクリーンショット



FreeStyle Wiki を使って普通の Web サイトを作る

Posted at Sat, 20 Feb 2010 in computer

Web サイトを作るのにこつこつメモ帳でタグを手打ちするのも好きなのですが、ページ数が多くなるとそれはそれで面倒だし、今後サイトデザインを変更するときなんかもなるべく楽をしたい。
でも編集するのは一人だし当たり前のコンテンツしかおかないから、表面上は徹底的に普通のホームページですよ CMS なにそれ? ブログって食べられるの? みたいなサイトを構築したいと思ったことはありませんか。

そんなわけで、実は Wiki だけど Wiki らしくない Web サイトを作るに至ったのでその作業記録です。

用意したもの

FreeStyle Wiki

FreeStyle Wiki(FSWiki)は徹底的にモジュール化され、プラグインによる自由な拡張が可能な Perl による Wiki エンジンです。
「コアはシンプルにしておいてプラグインやアドオンでがんがんカスタマイズしていく」というのがどうやら私はとても好きらしく、このサイトのブログエンジンである Blosxom や Firefox(これはまぁ、本体もそれなりに重量級ですが)などの使用理由にもなっています。そんなわけで今回もベースは FreeStyle Wiki を採用しました。単純に以前にも稼働実績があるというのと、YukiWiki の文法が使えるからというのも理由の一部です。
個人的にとても使い勝手の良い Wiki エンジンです。

Wiki らしくなくすために

主なポイントは3つ

  1. URL を静的かつシンプルなものにする
  2. 編集機能を隠す
  3. FrontPage からの脱却とデザイン

導入したプラグインとあわせてひとつずつ説明していきます。

URL を静的かつシンプルに

URI が http://www.example.com/wiki.cgi?page=FrontPage という感じにパラメータ付きだったり、Wikipedia のようにエンコードされて http://ja.wikipedia.org/wiki/%E3%81%93%E3%82%93%E3%81%AB%E3%81%A1%E3%81%AF となったりしているのははあんまりシンプルではない、と思うわけなので、ここを修正するために、ページへのリンクを静的URLにするプラグイン(改変版) を導入します。このプラグインを使うために .htaccess への記述が必要。さくらのレンタルサーバでは RewriteBase を使った記述では上手くいきませんでした。

DirectoryIndex wiki.cgi

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/([^/]+)\.html#[^?]+\?(.+)$ http://www.example.net/wiki.cgi/$1?page=$2$3 [NE,QSA,L]
RewriteRule ^(.+)/([^/]+)\.html$ http://www.example.net/wiki.cgi/$1?page=$2 [NE,QSA,L]
RewriteRule ^([^/]+)\.html$ http://www.example.net/wiki.cgi?page=$1 [NE,QSA,L]
RewriteRule ^(.+)/$ http://www.example.net/wiki.cgi/$1 [NE,QSA,L]

これで、http://www.example.net/index.html という URI で index というページ名のページにアクセスが可能になります。

ページ名≠ページタイトルに(FrontPage からの脱却)

通常の Wiki だと トップページのタイトルが FrontPage、また WikiName のような一定のルールの文字列が文章中にあると自動でリンクがはられたりしてページ名になったりしますが、まずページ名≠ページタイトルとするために、アクセシビリティ配慮のタグを出力するプラグイン を導入します。これで、index.html のページタイトルを index 以外に設定することが可能です。
ですが、このままだとトップページに支障が出る場合があります。トップページの<title>は「トップページ名称 - サイト名」という表記になり、サイト名だけの記述にするということができません。<title> タグを指定するようなプラグインを探しても良かったのですが、トップページだけレイアウトを変えるというのも良くあることなので、トップページ専用のテンプレートを作成後、テンプレート/スタイル変更プラグイン を利用してテンプレートごと変えてしまい、<title> タグの中身は直書きでテンプレートに <title>サイト名称 </title> として対処しました。

テンプレートと同時並行でスタイルの設定です。FSWiki ではデフォルトで tDiary のテーマが使用可能≒はてなダイアリーのテーマ(全部かどうかは不明)が使用可能なので、tDiary のテーマギャラリーあたりから好みのテーマをダウンロードして導入するのが一番簡単です。好みで好きなテーマをインストールします。

編集機能を隠す

最後に一番 Wiki っぽい部分、編集機能を見えなくします。
FsWiki だと デフォルトで右上に「トップ 新規 編集 差分 一覧 ソース 検索 ヘルプ RSS ログイン」というのが表示されますが、これを全部消してしまいます。

ただ全部さっくりと消してしまうとのちのち大変なので、新規にページを作成して「トップ 新規 一覧 検索 ヘルプ RSS ログイン」あたりのリンクを新規作成したページへコピーしておき、そのページをブックマークしておくと簡単です。「編集」についてはページからのリンクでないと意味がないので、現在表示しているページを編集するためのブックマークレットを用意しておきます。

javascript:(function(){location.href=location.href+'?action=EDIT';})();

これをブックマークします→ 編集

実際の表示を消すのはスタイルシートで消すのが一番簡単です。これは先ほど設定したテーマのスタイルシートに記述します。

div.adminmenu {
  display: none;
}

この方法のメリットはスタイルシートをオフにすると編集メニューが見えること。(たとえば Firefox なら「表示」−「スタイル」−「スタイルシートを使用しない」)ただしこれはデメリットでもあるので、完全に消したい場合はテンプレートをいじります。検索エンジンのクローラが来た場合にはスタイルシートでの非表示はほとんど意味がないので「一覧」などから意図しないリンクを辿られる可能性があります。

その他細々と

テンプレートをいじる際に、画面右下の「Powered by FreeStyleWiki〜」の記述もカスタマイズしています。デザイン上の都合から「Copyright〜」表記も左に同じ。
そのほかのプラグインは「自由な HTML での編集をできるだけ可能にすること」や「メール送信フォームが作成できること」などを目的としているので、Wiki の標準の編集機能で十分であれば導入の必要は特にありません。
それよりも、デフォルトユーザのパスワードの変更(ユーザ admin/ パスワード admin)や、ページの編集権限をログインユーザだけに絞ることなどのほうが重要です。
FreeStyle Wiki についての基本的なインストール方法やプラグインの追加方法は公式サイトや添付のドキュメントを参照してください。



Safari、Opera でも Tab キー(または代替するショートカットキー)を使ってリンクを辿りブラウジングする方法

Posted at Tue, 16 Feb 2010 in computer

IE や Firefox を使っていると、Tab キーを押すことでリンクやテキスト入力フィールド、ラジオボタン、チェックボックスなどに遷移できてマウスを触らずに Web サイトをうろうろすることができるのですが(リンクがたくさんあると移動だけで面倒とか言うのは置いておいても)、Opera や Safari だとこれができないのです。
なにか技があるはず! と思って探したところ、回答が見つかりました。

Opera

Ctrl + 上下の矢印キー(↓、↑)を使用する。

Safari

option(alt)+Tabキーを使用する。


両ブラウザとも現在カーソルがあたっている部分がとてもわかりやすくハイライトされるのでいい感じです。Safari は環境設定から通常の Tab のみでの移動に切り替えることも可能になる模様。ちなみに確認環境は Opera が 9.6(Windows)、Safari は 4(Mac OS X)です。

参考



irc-mode から clickable-uri を使って適当に URI を開く on xyzzy

Posted at Wed, 10 Feb 2010 in computer::xyzzy

例のごとく現在行で GShiftg)を押すと、URI があった場合に clickable-uri の設定にしたがって URI を開いたりします。
irc-mode に加えて clickable-uri がインストールされている必要があります。

;;;;;;;;;;;;;;;;;;;
;; ■ clickable-uri を利用して適当にURIにジャンプ
(defun irc-goto-uri ()
  (interactive)
  (save-excursion
    (let ((ed (progn (goto-eol) (point))))
      (goto-bol)
      (when (scan-buffer ed::*clickable-uri-regexp* :limit ed)
        (ed::clickable-uri-open)))))
(add-hook '*irc-dialog-mode-hook*
          #'(lambda () (local-set-key #\G 'irc-goto-uri)))