Notice: get_currentuserinfo の使用はバージョン 4.5.0 から非推奨になっています ! 代わりに wp_get_current_user() を使ってください。 in /var/www/html/blog/wp-includes/functions.php on line 3831 Call Stack: 0.0001 228616 1. {main}() /var/www/html/blog/index.php:0 0.0001 229056 2. require('/var/www/html/blog/wp-blog-header.php') /var/www/html/blog/index.php:17 0.1163 5983128 3. require_once('/var/www/html/blog/wp-includes/template-loader.php') /var/www/html/blog/wp-blog-header.php:19 0.1175 5992296 4. include('/var/www/html/blog/wp-content/themes/zbench/archive.php') /var/www/html/blog/wp-includes/template-loader.php:74 0.1175 5992328 5. get_header() /var/www/html/blog/wp-content/themes/zbench/archive.php:1 0.1175 5992912 6. locate_template() /var/www/html/blog/wp-includes/general-template.php:45 0.1176 5993152 7. load_template() /var/www/html/blog/wp-includes/template.php:647 0.1176 6007400 8. require_once('/var/www/html/blog/wp-content/themes/zbench/header.php') /var/www/html/blog/wp-includes/template.php:688 0.1190 6023656 9. wp_head() /var/www/html/blog/wp-content/themes/zbench/header.php:8 0.1190 6023704 10. do_action() /var/www/html/blog/wp-includes/general-template.php:2589 0.1190 6024376 11. WP_Hook->do_action() /var/www/html/blog/wp-includes/plugin.php:453 0.1190 6024472 12. WP_Hook->apply_filters() /var/www/html/blog/wp-includes/class-wp-hook.php:323 0.1285 6194432 13. call_user_func_array:{/var/www/html/blog/wp-includes/class-wp-hook.php:298}() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1285 6195040 14. add_google_analytics() /var/www/html/blog/wp-includes/class-wp-hook.php:298 0.1288 6195824 15. ga_current_user_is() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1116 0.1288 6195856 16. get_currentuserinfo() /var/www/html/blog/wp-content/plugins/google-analyticator/google-analyticator.php:1289 0.1288 6196080 17. _deprecated_function() /var/www/html/blog/wp-includes/pluggable-deprecated.php:49 0.1288 6196568 18. trigger_error() /var/www/html/blog/wp-includes/functions.php:3831

Tag Archives: scribes

Scribesの自動保存について

先日から使用しているScribesというエディタ。
未だ使いこなしているとは言い難いけど気に入っている。
早いところ強力な補完機能の恩恵に与りたい。

ただ、使っている中でどうしても気になる事柄がある。

自動保存

Scribesは次に引用する設計思想によって、わずらわしい手間からユーザーを解放している。

仕事の流れの阻害を最小限にすること、おもしろみのない作業を自動化すること、不要な設定変更をなくすこと、シンプルさに基づいた理性的な編集作業を達成することを目標にしている。この目標を達成するために必要のない慣習は守っていない。
Scribes – Wikipedia http://ja.wikipedia.org/wiki/Scribes

ファイル保存もしかり、ユーザは毎度Ctrl+Sを押下する必要がない(もちろん任意のタイミングでCtrl+Sによる保存は可能)。
最後の入力から一定時間が経過すると自動的に保存される。

これには少し困ってしまう。
例えば、何か一時的なメモを取りたいがためにScribesを開き、書き入れる、自動保存によりファイル化される。デスクトップに。
自分にとって少なくとも2つの点で問題がある。

1. ファイル化するつもりがないのにファイル化されてしまう(破棄して終了するつもりだったのに!)。
2. GNOME3ではデフォルトでデスクトップにファイルが表示されない(~/Desktop/の中身は表示されない)。

なので、いつぞやの覚書が~/Desktop/に入っていたりする。
デスクトップに表示されないので、気づいてすぐに捨てるという事もできない。

おそらくは、『自動保存』というチェックボックスがどこかにあるのだろうと探したが、ない。
Scribesの設定メニューは非常にシンプルで、設定できる事はそれほどない。

困ったので情報探したら Scribes のフォーラムにそのままの話題があった。

Feature request: the ability to turn on/off autosave
https://bugs.launchpad.net/scribes/+bug/368414

「稼働中のサーバースクリプトをScribesで編集するとコーディング途中で保存されて大変な事になってしまうから自動保存とか困る」

この人は自動保存以前に問題が色々あるのだけど、こちらも自動保存で困っているので味方する事にして読み進めた。
驚く事に2009-04-28から始まったこの自動保存に関するスレッドは、実に2年近くもやり取りが成されている。

このスレッドから読み取れた事がいくつかあった。

1. Scribes自体に自動保存を無効にする設定機能は備わっていない事
2. Scribes開発側は今後それを実装するつもりがない事(おそらく未来永劫ない事)
3. 自動保存を無効にする場合のソースコード修正個所
4. 自動保存の有効無効を操作するPluginの存在

解決方法は判明したが、Scribesの精神を受けて、しばらくこのまま使ってみようかと心変わりしたりなんかしてるのだけど頭に来たらすぐ直す。

Scribesがクラッシュする現象

 先日から使用しているエディタScribesで特定のファイルがクラッシュする現象に悩んでいる。
 原因がよくわかっていない。

$ scribes ivoryworks_201201.txt
$ /usr/lib/python2.7/site-packages/SCRIBES/GUI/MainGUI/Buffer/CursorPlacer.py:29: GtkWarning: gtktextiter.c:3818: Incorrect byte offset 42 falls in the middle of a UTF-8 character; this will crash the text buffer. Byte indexes must refer to the start of a character.
iterator.set_line_index(index)
**
Gtk:ERROR:gtktextsegment.c:196:_gtk_char_segment_new: assertion failed: (gtk_text_byte_begins_utf8_char (text))

 このファイルは、Dropboxで共有していて、Linux(Edit:Scribes)とAndroid(Edit:Jota Text Editor)で編集しているのだけど、お互いに更新を行い、特定の状況(ファイルの状態)に陥ると上記のようにクラッシュする。

 文字コードはUTF-8。
 vimやgeditでは特に問題なく開ける。
 BOMの有り無しが影響しているのかもしれないと思い、以下の検証をする(この手段で正しく検証できているかどうか自信がない)。

$ nkf -s ivoryworks_201201.txt > ivoryworks_201201.txt.shiftjis
$ nkf -w ivoryworks_201201.txt.shiftjis > ivoryworks_201201.txt.utf8
$ nkf -w8 ivoryworks_201201.txt.shiftjis > ivoryworks_201201.txt.utf8_BOM
$ scribes ivoryworks_201201.txt.utf8
$ scribes ivoryworks_201201.txt.utf8_BOM

BOMの有り無しに関わらず問題なく開ける。

$ diff ivoryworks_201201.txt ivoryworks_201201.txt.utf8
$ diff ivoryworks_201201.txt ivoryworks_201201.txt.utf8_BOM
1c1
< 2012/01/15 --- > 2012/01/15

 ちなみに、Android側で編集した後に発生するかと言えば、必ずしもそうではない。
 常用したいので何とか解決したいところ。

Installing Scribes on Fedora16

http://scribes.sourceforge.net/

 以前から興味のあったScribesというテキストエディタを使ってみようと思う。
 Scribesは補完機能に注力されたエディタという事で、これはScribes設計思想によるものと思う。

仕事の流れの阻害を最小限にすること、おもしろみのない作業を自動化すること、不要な設定変更をなくすこと、シンプルさに基づいた理性的な編集作業を達成することを目標にしている。この目標を達成するために必要のない慣習は守っていない。
http://ja.wikipedia.org/wiki/Scribes

 ダウンロードページにはFedoraのRPMパッケージへのリンクがあってダウンロードできるのだけど、そのパッケージではfedora16へのインストールがうまくいかない。
 情報を漁ってみると同じ問題で困っている人がいて、最終的に次のコンテンツにたどり着く。
 
http://mystilleef.blogspot.com/2011/04/installing-scribes-on-fedora-and-rpm.html

 ここでは、Fedora15(beta)へインストールに成功したと言っているがFedora16でも同じ。
 以下の手順を踏むとインストール完了となる。この手順は上記コンテンツで示される内容と同じ。

$ sudo yum install gnome-common autoconf automake intltool glib2-devel rarian-compat bzr gnome-doc-utils gnome-python2-gtkspell pygtksourceview
$ bzr branch lp:scribes
$ cd scribes
$ ./autogen.sh
$ make
$ sudo make install


外観は非常にシンプルで、右上の赤いサークルにマウスカーソルをかざすとメニューバーが出現する。
ショートカットが豊富に用意されており、Ctrl+hでチートシートが表示される。

しばらく使ってみようと思う。

 さて、紹介されている手順では、最初に依存問題を解消するためにいくつかのパッケージをインストールするのだけど、今回あえてそれらをインストールせず、make install まで何度も失敗(依存性の問題により)を繰り返しながら、その都度必要となるパッケージをインストールする方法をとった(不要なパッケージをインストールしたくないために)。
 結論として、示されるパッケージ群に過不足はなく、つまりFedora16へのインストールでも上記手順が正しい事がわかった。
 この作業の記録を以下に記述する。上記でインストール完了した人には不要な情報だが、もしもこの解法を知らずにインストールを進め行き詰まっている場合には多少参考になるかもしれない。

 まず、ソースコードをBazaarのリポジトリから取得する必要があり、bzrのインストールから進めていく。

$ sudo yum install bzr
$ bzr branch lp:scribes
$ cd scribes
$ ./autogen.sh

You need to install gnome-common from the GNOME CVS

失敗
gnome-common をインストールする

$ sudo yum install gnome-common

再挑戦
$ ./autogen.sh

checking for glib-gettext >= 2.2.0...
testing glib-gettextize... not found.
***Error***: You must have glib-gettext >= 2.2.0 installed
to build scribes. Download the appropriate package for
from your distribution or get the source tarball at
ftp://ftp.gtk.org/pub/gtk/v2.2/glib-2.2.0.tar.gz

ここでは、glib-gettextやglibではなく、glib2-develをインストールするのが正解。
なお、この時点でautoconfとautomakeも必要なのだが、自分の環境ではインストール済みだったのでインストールしていない。未インストールであればglib2-develと合わせてインストールすること。

$ sudo yum install glib2-devel

再挑戦
$ ./autogen.sh

checking for intltool >= 0.25...
testing intltoolize... not found.
***Error***: You must have intltool >= 0.25 installed
to build scribes. Download the appropriate package for
from your distribution or get the source tarball at
http://ftp.gnome.org/pub/GNOME/sources/intltool/

intltoolをインストールする。
$ yum install intltool

再挑戦
$ ./autogen.sh

checking for gnome-doc-utils >= 0.4.2...
testing gnome-doc-prepare... not found.
***Error***: You must have gnome-doc-utils >= 0.4.2 installed
to build scribes. Download the appropriate package for
from your distribution or get the source tarball at
http://ftp.gnome.org/pub/GNOME/sources/gnome-doc-utils/

gnome-doc-utilsをインストールする。
$ sudo yum install gnome-doc-utils

再挑戦
$ autogen.sh

Error: pygtksourceview2 was not found.
configure: error: Error: Dependency check failed

エラーメッセージではpygtksourceview2と言っているが、pygtksourceviewをインストールするのが正解。
$ sodo yum install pygtksourceview

再挑戦
$ autogen.sh
:
Now type `make' to compile scribes

OK

$ make
$ sudo make install

/bin/sh: 行 1: scrollkeeper-config: コマンドが見つかりません
scrollkeeper-update -p -o /usr/share/omf/scribes
/bin/sh: 行 2: scrollkeeper-config: コマンドが見つかりません
/bin/sh: 行 2: scrollkeeper-update: コマンドが見つかりません

この問題はrarian-compatをインストールする事で解消される。
$ sudo yum install rarian-compat
$ sudo make install

OK