2011年 09月 07日

自分が言う「成功体験」というのは、自分で考えて自分で作ったもの (行動) が正しく社会に認められることなんだと思う。このような承認欲求というのが、自分はそれなりに強いみたいだけれど、なんでそんなことになっているのか考えてみると、殆どよく解らない。実際は「成功体験」自体が全くないわけではないはずではあるものの、主観的には「失敗体験」による自信の喪失ばかりで「成功体験」は全然に少ないと感じている。

モチベーションを損う原因となるのは、行動の結果失敗することがありありと想像されることが大きくて、普段から何かにつけて、評価された結果「ダメだ」と言われることばかりが頭に浮かび、そのせいで、一度失敗した経験はすごく強い行動の抑止力になっている。それでもなお「全く何もしない」選択をせずにすんでいるときの要素は「自分で満足できればよい」ぐらい他人を信用しない心持ちと、「(仕事のように) やらないと恐怖が待っている」という危機感と、「解ってないのはあいつらののほうだ」という逆ギレのおかげかもしれない。

「承認済み」の人間が心の底から苦手でどうしようもなくて、全く関わりたくもないと思い続けている。とは言っても、どんなコミュニティでも一定数そういう人はいるものでそこはどうしようもないし、あるいな成功している (ように見える) 人には承認済みの人が多いので、これがまたうんざりさせられる事実のように感じられて、いつもすごくめげそうな気持ちになる。

「承認済み」の立場から発せられる言葉とか (特徴的な言葉遣いを)、声とか (特徴的な発声でする) というのは、あからさまに「自分は承認されています」という含みがあり「そんな言い方がアリなのか」とびっくりする。

ACE の使いかたのメモ

ACE という JS でできたブラウザ上で動くエディタがあり、すごく良くできてるし拡張性もあって使いやすいのですが、ところどころ気に入らないのをなんとかする必要があるのでメモしておきます。

デフォルトのキーバインドが糞

Cmd-L を奪って gotoline とかいう機能が動いてアホかと思うので (ロケーションバーにフォーカスできない)、以下のようにして機能を殺している… あと TAB を奪うのも場合によっては非常にうざいので機能ごと殺している。キーバインドだけ殺したいけどよくわからなかった。

editor.commands.removeCommand('gotoline'); // fucking default keybinding of ace
editor.commands.removeCommand('indent');
editor.commands.removeCommand('outdent');

JS モードなどで括弧を勝手に挿入する

基本的にはうざくない ( 連続して入力した場合は余計に入力しないので賢い) のだけれど、{ RET } と入力したりすると括弧が余計についてしまってストレスフルなので、この機能を以下のようにして殺した。

        var mode = new JavaScriptMode();
        mode.$behaviour.remove('braces');
        mode.$behaviour.remove('parens');
        mode.$behaviour.remove('string_dquotes');

HtmlMode でも script の内部は JavaScriptMode になるので、この場合以下のようにしたら殺せるっぽい。

        var mode = new HtmlMode();
        mode.$modes['js-'].$behaviour.remove('braces');
        mode.$modes['js-'].$behaviour.remove('parens');
        mode.$modes['js-'].$behaviour.remove('string_dquotes');

ついで

典型的に

        var editor = ace.edit(container);

        editor.renderer.setShowGutter(false);
        editor.renderer.setHScrollBarAlwaysVisible(false);
        editor.renderer.setPadding(5);
        editor.renderer.setShowPrintMargin(false);

        editor.setHighlightActiveLine(false);
        editor.setKeyboardHandler(MyKeyBinding);

        var session = editor.getSession();
        session.setMode(new MyMode());
        session.setUseWrapMode(true);
        session.on('change', function () {
             textarea.value = session.getValue();
        });
        session.setValue(textarea.value);

みたいのをコピペしてる


あと、StateHandler や HashHandler を使いたいとき、どうやって使っていいかわからなくて (lib/ace/keyboard/state_handler.js をそのまま読みこもうとしても define() でエラーがでる)、build/demo/kitchen-sink-uncompressed.js からコピペしてファイルを作るという、すごく頭が悪いことをやっていて困っている… lib/ace/keyboard/keybinding/emacs.js とかが state_handler に依存してるのに、build 以下には state_handler のファイルがないので、よくわからない……