2008年7月アーカイブ

えらい苦労したけど、丸一日かかってインストールに成功しました。
Googleでいろいろ調べてもなかなかドンピシャな答えが出てこない。

以下、インストール&設定メモ

昨日から、coLinuxのインストールに挑戦しています。
Viを立ち上げたら、「E20: Mark not set」と表示されコマンドが使えない現象が起きました。

キーボードの設定が正しくされていないのが原因のようです。
(日本語キーボードとして認識されていない)

対処法

とりあえず、Shiftキー と";"を同時に押すと、":"として認識され、コマンド入力ができました。

とりえあずこれで保存・終了。
別途、キーボードの設定を変更しましょう。


MovableTypeの記事作成画面で、確認ボタンを押すとプレビュー画面が出ますよね。

私の場合、これがメチャクチャ遅い。重い。イライラ。

この待ち時間さえなければ、もっとサクサク投稿できるのに。。。
そこで、原因と解決策を考えてみました。

プレビューが遅い原因

外部ファイル、特にJSファイル(mt.jsとかHatenaStar.jsとか)の読み込みに時間がかかっています。
特に、はてなスターとかはてぶユーザ数とかを表示させていると、プレビューが遅くなります。 はてなスターを外すと、プレビューが少し速くなります。

とは言っても、プレビューでmt.jsなどを読みこまないように改造するのは大変です。
そこで、私がお勧めするのはHTMLをデスクトップ上で編集する方法です。

対策: ローカルでHTMLを書いちゃえ

  1. 自分のブログの、任意の記事の個別ページを開く
  2. ソースを表示 → HTMLをデスクトップに保存
  3. ソースの中ほどの、<div class="asset-body">と</div>に挟まれた部分を削除して、ここに好きな文章をHTMLで書く。
  4. そのHTMLファイルをブラウザで開く (=プレビュー)
  5. 内容がOKなら、、<div class="asset-body">~</div>に囲まれた部分を、MTのブログ記事投稿フォームに貼り付けて投稿。

これで劇的にプレビューが速くなります!!
何で今までこの方法に気づかなかったんだろ。。。

HTMLで書かないといけないとか、いったん書いた文章を記事投稿画面に貼り付けるとか、そのへんが若干めんどくさいです。
しかし、プレビューで待たされるイライラからは解放されます。
ストレス激減です。
騙されたと思って、ぜひ一度お試しあれ!

注意事項

・投稿画面にHTMLを貼り付けるとき、フォーマットは「なし」に指定してください。(「リッチテキスト」や「改行を変換」モードだと表示が崩れます)
・デフォルトのテンプレートをいじってる場合は、<div class="asset-body">~</div>ではなく別のタグになっている可能性があります。要は、記事本体の部分を直接書き換えればOKです。

Perlでは、サブルーチンへのリファレンスを作って変数に格納することができます。

use strict;

sub greets {
print "hello\n";
}
my $ref = \&greets;

この例では、greetsサブルーチンへのリファレンスを、$refに格納しています。


デリファレンス

$refをデリファレンスして元のサブルーチンを呼び出す方法

まずおさらい。

普通のサブルーチン呼出はこう書きます。
 &greets();  # → hello 

ここで、
サブルーチン名 → {$ref}
と置き換えると、
$refをデリファレンスして元のサブルーチンを得ることができます。

&{ $ref }();  # → hello 

デリファレンスの省略記法

下記のコードはすべて同じ動作をします。

&{$ref}();
&$ref();
$ref->();

無名配列コンストラクタ [ ] を使って、ネストされたリファレンスを作ることができます。

例1
my $ref = [ [ 1, 2, 3 ] , [ 2, 4, 6 ] ] ;

これは、次のコードと同じような働きをします。
例2
my @array1 = ( 1, 2, 3 );
my @array2 = ( 2, 4, 6 );
my @array_all = ( \@array1, \@array2 );
my $ref = \@array_all;


デリファレンス
値を取り出すときはデリファレンスします。
print $ref->[1]->[1];   #  出力 4
または
print $ref->[1][1]; # 出力 4


2次元配列

上の例を見ると、2次元配列によく似ていることがわかると思います。
Perlではこのようにして2次元配列を実現します。

もちろん、ネストを重ねれば多次元配列を作れます。

例1
my $ref = [ 2, 4, 6 ]; 
これは、下記と同じような働きをします。

例2
my @array = ( 2, 4, 6 );

my $ref = \@array;


例2での@arrayに相当する中間変数が、例1にはありません。

このとき例1の$refには、「名前の無い配列」へのリファレンスが格納されています。

[ 2, 4, 6 ]における [ ]のことを
無名配列コンストラクタ
といいます。


参考: Perl再入門 | アルパカ本に学ぶリファレンス入門4 - 無名配列

人気記事

このアーカイブについて

このページには、2008年7月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年6月です。

次のアーカイブは2008年8月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

最近の人気記事