ページ

2012-11-12

Twitter NG Word Filter 0.2をリリースしました

リクエストにお応えして新Twitter対応版をリリースしました。
Twitter - NG Word Filter for Greasemonkey
どうぞご利用ください。
  • Firefox 16 (Greasemonkey 1.4)
  • Chrome 23 (NinjaKit 0.9)
で動作確認しています。

使い方

NGワードで非表示

ngwords変数にNGワードを正規表現で入力してください。
var ngwords = /#4ji|#followme|I'm at/i;
正規表現の書き方はこちらを参照 RegExp - JavaScript | MDN


NGユーザーで非表示

ユーザーごと非表示にしたい場合は以下の行のコメントアウトを外して、USER_NAMEの部分をユーザ名に書き換えてください。
GM_addStyle('.tweet[data-name="USER_NAME1"], .tweet[data-name="USER_NAME2"] {display:none !important;}');

NGされたものを表示

猿アイコンを(右?)クリックしてユーザスクリプトコマンドからvisibleを押すと、「NGワードで非表示」にしていたつぶやきを一時的に表示できます。



メモ

前回のバージョンではTwitterのJavaScriptが内部で利用するためにtriggerされているイベントを横から勝手につぶやきが追加されるタイミングのAPIとして活用していました(難読化されたJSを解読するのがダルかった)が、今回は MutationObserver API を使ってざっくり監視しています。addEventListener('DOMNodeInserted'などは非推奨となっているのでMutationObserverを使いましょう。

2012-11-09

SublimeText2でコード補完の候補選択をTabで行う方法


SublimeCodeIntelを入れているといちいちctrl+spaceをしなくてもコード補完(auto complete)の候補が出てくる。
コード補完の候補が表示されている時にTabを押して次の候補→次の候補と選択したい。(Google IMEと同じ動作)。下記の設定で実現した。winだけで確認。
Preferences > Key Bindings - Userに
[
 { "keys": ["tab"], "command": "auto_complete", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 },
 { "keys": ["shift+tab"], "command": "auto_complete_prev", "context":
  [
   { "key": "auto_complete_visible", "operator": "equal", "operand": true }
  ]
 }
]

調べ方

ctrl+spaceでコード補完を表示させた後、続けてctrl+spaceを押せばauto_completeコマンドによってコード補完の次の候補が選択され最後までいくとまた先頭に戻る動作を確認した。
次に Preferences > Key Bindings - Default を検索(正規表現を有効にしてctrl\+spaceをキーワードに検索)して、それっぽい{ "keys": ["ctrl+space"], "command": "auto_complete" }が見つかったので、tabに移植した。
キーバインド設定の空気はここで掴む。Key Bindings — Sublime Text Unofficial Documentation

メモ

Google IMEはTabで候補選択ができて、さらにTab+shiftで一つ前に戻ることができる。この動作もSublimeに取り入れるかはまだ決めてない。ちなみにsublimeでctrl+shift+spaceで同じ動作にならなかった。

追記

Sublime Text Japan Users Groupで教えていただいた。auto_complete_prevコマンドで解決。ありがとうございます!
Auto completeで一つ前の選択に戻すキーバインドを知りたい - Google グループ

2012-11-06

SublimeText2で拡張子ごとにインデントを設定する

設定したいファイルを開いて、以下のように設定すればソフトタブ2になるはず。
Preferences > Settings - More > Syntax Specifc - User
{
 "tab_size": 2,
 "translate_tabs_to_spaces": true
}

LubuntuにRictyフォントをインストール

Font Managerでインストール済みのフォントを確認。

あとで書く。

FontForgeインストール時のエラーメッセージ

うーん、気にしなくてよさそう。
$ sudo apt-get install fontforge
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libfontforge1 libgdraw4 libspiro0 libuninameslist0
提案パッケージ:
  fontforge-doc potrace autotrace python-fontforge fontforge-extras
以下のパッケージが新たにインストールされます:
  fontforge libfontforge1 libgdraw4 libspiro0 libuninameslist0
アップグレード: 0 個、新規インストール: 5 個、 削除: 0 個、保留: 0 個。
4,541 kB のアーカイブを取得する必要があります。
この操作後に追加で 13.3 MB のディスク容量が消費されます。
続行しますか [Y/n]? 
取得:1 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libspiro0 i386 20071029-2build2 [12.5 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libuninameslist0 i386 0.0.20091231-1.1build1 [530 kB]
取得:3 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libfontforge1 i386 0.0.20120101+git-2ubuntu1 [2,536 kB]
取得:4 http://jp.archive.ubuntu.com/ubuntu/ quantal/main libgdraw4 i386 0.0.20120101+git-2ubuntu1 [361 kB]
取得:5 http://jp.archive.ubuntu.com/ubuntu/ quantal/main fontforge i386 0.0.20120101+git-2ubuntu1 [1,101 kB]
4,541 kB を 4秒 で取得しました (1,034 kB/s)
以前に未選択のパッケージ libspiro0 を選択しています。
(データベースを読み込んでいます ... 現在 110941 個のファイルとディレクトリがインストールされています。)
(.../libspiro0_20071029-2build2_i386.deb から) libspiro0 を展開しています...
以前に未選択のパッケージ libuninameslist0 を選択しています。
(.../libuninameslist0_0.0.20091231-1.1build1_i386.deb から) libuninameslist0 を展開しています...
以前に未選択のパッケージ libfontforge1 を選択しています。
(.../libfontforge1_0.0.20120101+git-2ubuntu1_i386.deb から) libfontforge1 を展開しています...
以前に未選択のパッケージ libgdraw4 を選択しています。
(.../libgdraw4_0.0.20120101+git-2ubuntu1_i386.deb から) libgdraw4 を展開しています...
以前に未選択のパッケージ fontforge を選択しています。
(.../fontforge_0.0.20120101+git-2ubuntu1_i386.deb から) fontforge を展開しています...
desktop-file-utils のトリガを処理しています ...
shared-mime-info のトリガを処理しています ...
man-db のトリガを処理しています ...
libspiro0 (20071029-2build2) を設定しています ...
libuninameslist0 (0.0.20091231-1.1build1) を設定しています ...
libfontforge1 (0.0.20120101+git-2ubuntu1) を設定しています ...
libgdraw4 (0.0.20120101+git-2ubuntu1) を設定しています ...
fontforge (0.0.20120101+git-2ubuntu1) を設定しています ...
libc-bin のトリガを処理しています ...
ldconfig deferred processing now taking place
[3720:3720:10539640502:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
                                            /usr/share/themes/Lubuntu-default/gtk-2.0/images/null.png,
                      borders don't fit within the image
                                                        [3720:3720:10539641191:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
                    /usr/share/themes/Lubuntu-default/gtk-2.0/images/scrollbar_vertical.png,
            borders don't fit within the image
                                              [3720:3720:10540111226:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
        /usr/share/themes/Lubuntu-default/gtk-2.0/images/null.png,
borders don't fit within the image
[3720:3720:10540147385:ERROR:browser_main_loop.cc(155)] GTK theme error: Invalid borders specified for theme pixmap:
        /usr/share/themes/Lubuntu-default/gtk-2.0/images/scrollbar_horizontal.png,
borders don't fit within the image

SublimeText2のSettings(JSON)の値をコンソールから取得する方法

デフォルトのfont_faceを知りたい。
Preferences > Settings - Default を見ても空欄になっていてわからない。
ググってみると、コンソールに以下で取得できた。
view.settings().get('font_face')
WindowsはConsolas、LubuntuはMonospace とわかった。
getの中を他のキーを変えればいろいろ調べられるはず。

Lubuntuにrbenvでrubyとrailsを入れる


Ruby on Rails 3.2 を Ubuntu にインストールする手順をかなり丁寧に説明してみました - Rails 雑感 - Ruby on Rails with OIAX

を参考(検証)にしながら、lubuntu 12.10 のほぼまっさらな状態からやってみる。
ちなみにubuntu系ははじめからrubyは入ってない。



各種パッケージのインストール

$ sudo apt-get install build-essential git curl zlib1g-dev libssl-dev libreadline-dev libyaml-dev libxml2-dev libxslt-dev libsqlite3-dev nodejs
※build-essentialにmake, g++などが入っている。railsはJavaScript Runtimeが必要なのでnode.jsを選択した。

Apache、MySQL を使うなら、以下のものが必要。
$ sudo apt-get install apache2 libmysqlclient-dev mysql-server


rbenvセットアップ

apt-getのrbenv調査

Ubuntu 12.04からapt-getでrbenvのインストールが可能
apt-getのrbenvを確認してみる。
$ sudo apt-get install rbenv
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています              
状態情報を読み取っています... 完了
以下の特別パッケージがインストールされます:
  libreadline5 libruby1.8 libruby1.9.1 ruby ruby1.8 ruby1.9.1
提案パッケージ:
  ri ruby-dev ruby1.8-examples ri1.8 ruby-switch ruby1.9.1-examples ri1.9.1
  graphviz ruby1.9.1-dev

apt-getでrbenvを入れるとシステム用に1.8や1.9のrubyも入るようだったので止めとく。
rbenv は sstephenson/rbenv にしたがってgitでインストールすることにした。



rbenvをインストール

$ cd
$ git clone git://github.com/sstephenson/rbenv.git .rbenv
zshを使っているので.zshenvに。
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshenv
$ echo 'eval "$(rbenv init -)"' >> ~/.zshenv
何かのきっかけで、title:7: command not found: rbenv と表示されても、.zshenvに eval "$(rbenv init -)" が追記されていれば正常。


シェル再起動
$ exec $SHELL

ruby-buildインストール

$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
一回目に fatal: The remote end hung up unexpectedly が出たけどもう一回やったらうまくいった。


インストール可能なパッケージ一覧
$ rbenv install -l
略
1.9.3-p194
1.9.3-p286
1.9.3-preview1
1.9.3-rc1
previewの手前の安定版 1.9.3-p286 を入れることにした。

$ rbenv install 1.9.3-p286
※ここで make: コマンドが見つかりません が出る場合は $ sudo apt-get install build-essential



$ rbenv rehash



常に使うrubyとして設定

$ rbenv global 1.9.3-p286
$ ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [i686-linux]
で確認。

zshの訂正機能が効いてzsh: correct 'ruby' to '_ruby' [nyae]?のようになったら、訂正しないの意味の n を入力。


一応

$ rbenv version
$ which ruby
してrbenvのrubyになってるか確認。



.gemrcを用意。
$ echo 'install: --no-rdoc --no-ri\nupdate: --no-rdoc --no-ri' >> ~/.gemrc


$ gem install rbenv-rehash
入れとく。



railsインストール

$ gem install rails
$ rails -v
Rails 3.2.8
zsh: correct 'rails' to 'tail' [nyae]?と聞かれたら n。

手順にしたがってrailsのデモを作る

$ cd
$ mkdir work
$ cd work
$ rails new foo --skip-bundle
$ cd foo

Gemfile の以下のコメントアウトを外す。
# gem 'therubyracer', :platform => :ruby
現状この意図がわからなくて悔しい。
追記:わかった。therubyracerを入れずに rails generate scaffold~ すると Could not find a JavaScript runtime.と言われた。
ググってみると、railsはJavaScript Runtime(エンジン)が必要で、railsは ExecJS というgemが環境にインストールされているJavaScript Runtimeを探してくるが見つからなくて動かねえよってことらしい。ちなみにtherubyracerにはv8が入っている。再びググるとv8まわりでトラブルが起きている記事や、メモリ使用量が多いためHerokuでは非推奨という記述が見つかった。うちはnode.jsを入れることにする。(nodejsもv8だった)。




$ bundle install

$ rails g scaffold user name:string email:string
$ rake db:migrate

$ rails s

ブラウザで http://localhost:3000/users を開いて動作確認。
動いた。
OIAXさんありがとうございました。




2012-11-04

BloggerでjQuery・CSSを効率良く管理したい

  • JavaScriptとCSSを一箇所にまとめて効率良く編集したい。
    • SyntaxHighlighter用コードと小さなスクリプトを同じ場所に。
  • ファイルは一つにまとめたい。
    • jQueryを使ったスクリプトを書きたい。
    • AutoPagerize対応用コードも。

効率良く編集

設定画面からBloggerテンプレートデザイナーや直接テンプレートのHTMLを編集するのはめんどくさい。一箇所に埋め込んでおいて、自分のエディタから入力したいのでDropboxを使う作戦でいってみる。

埋め込み場所

BloggerでJavaScript・CSSを埋め込む方法は、テンプレートのHTML編集かレイアウトのガジェット(HTML/JavaScriptモジュール)のどちらか。
始めにサイドバーのガジェットに入れてみたが、cssの適用が遅いので却下。
「テンプレートデザイナー - アドバンス - Add CSS」はJSの埋め込み場所とバラけるので使わない方針で。
結局テンプレート側にまとめて書くようにした。head閉じタグの手前に挿入。
<!-- SyntaxHighlighter start -->
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'/>
<script language='javascript' type='text/javascript'>
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<style type='text/css'>
/* SyntaxHighlighter: adjustment for chrome */
.syntaxhighlighter .gutter .line {
  word-wrap: normal;
}
.syntaxhighlighter .code {
  word-wrap: normal;
}
.syntaxhighlighter .toolbar {
  display: none;
}
</style>
<!-- SyntaxHighlighter end -->

<!-- MyScripts start -->
<link href='https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css' rel='stylesheet' type='text/css'/>
<script src="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.js"></script>
<!-- MyScripts end -->


結果

Dropboxで共有しているファイルを書き換えて数秒後に反映されるのでわりと快適になった。


付録

Dropboxに置いたファイル内容も一応貼り付けておく。CSSのfont-sizeをどうするべきか揺れている。
che.js:小さなスクリプトはここに書く。
var jqscript = document.createElement('script');
jqscript.src = 'http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js';
jqscript.charset = 'UTF-8';
document.getElementsByTagName('head')[0].appendChild(jqscript);
var t = setInterval(function() {
  if (window.jQuery) {
    clearInterval(t);
    //ここにjQueryロード後実行したいコードを書く
    myFunc();
  }
}, 100);

function myFunc() {
  jQuery(function($) {
    // AutoPagerizeされたときに実行したいものはここに。
    var InsertNode = function(evt) {
      // SyntaxHighlighter
      SyntaxHighlighter.highlight();
    };
    $(document).bind('AutoPagerize_DOMNodeInserted AutoPagerAfterInsert', InsertNode);
    if (window.addEventListener) { 
      window.addEventListener('AutoPatchWork.DOMNodeInserted', InsertNode, false);
    }

    // 投稿画面にあるwysiwygエディタのフォントサイズ指定「小(x-small)」が
    // 小さすぎるので、動的にsmallに変更。「最小(xx-small)」も含む。
    $('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
      $(this).css('font-size', 'small');
    });
  });
}
 

che.css:テンプレートを修正したい場合に使う。
body {
  font-size: 85%;
  /*font-size: 15px;*/
}
pre {
  background-color: #F8F8F8;
  border: 1px solid #CCCCCC;
  border-radius: 3px;
  padding: 6px 10px;
  overflow: auto;
}
code {
  background-color: #F8F8F8;
  border: 1px solid #EAEAEA;
  border-radius: 3px;
  margin: 0 2px;
  padding: 0 5px;
  overflow: auto;
}
pre, code, tt {
  font-family: Consolas,"Liberation Mono",Courier,monospace;
}
blockquote {
  border-left: 5px solid #dddddd;
  color: #777777;
  padding: 0 15px;
}
::selection {
  background-color: pink;
}
::-moz-selection {
  background-color: pink;
}
h2 {
  /*font-size: 25px;*/
  font-size: 140%;
  text-transform: none;
  margin: 0;
}
h3 {
  /*font-size: 20px;*/
  font-size: 130%;
}
h3 {
  font-size: 120%;
}
h3.post-title,
h3.entry-title {
  font-size: 160%;
}
.sidebar h2 {
  font-size: 13px;
  margin-bottom: 10px;
}
.date-header span {
  font-size: 15px;
  font-weight: normal;
}

bloggerのwysiwygエディタのフォントサイズ指定に不満

投稿画面のwysiwygエディタ
フォントサイズ指定の
「最小」は style="font-size: xx-small;"
「小」は style="font-size: x-small;"
「標準」は何も付かない。
「大」は style="font-size: large;"
「最大」は style="font-size: x-large;"

小のx-smallは小さすぎるのでsmallにしてほしい。large側は普通なのでバグな気がする。

どうすればこの問題を解消できるだろうか。
  • HTML編集モードにx-smallをsmallに置換するボタンを付ける。
  • フォントサイズ指定の「小」を封印する。
  • JavaScriptでサイズ操作

追記

jQueryで動的にx-smallとxx-smallをsmallに変更するようにしてみた。多分これが一番楽。
$('.post-body [style*="x-small"], .entry-content [style*="x-small"]').each(function() {
  $(this).css('font-size', 'small');
});

埋め込み方法はこちらに書いた。
BloggerでjQuery・CSSを効率良く管理したい - cherenkov's暗中模索blog


2012-11-03

bloggerのCSSを効率良くカスタマイズする方法

デバッグ時はdropboxにcssファイルを置いて編集する。

テンプレートのHTML編集でheadの閉じタグの前にdropboxからcssを読み込むためのコードを貼る。
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>
あとで書く。

bloggerのCSSを確認・変更するために便利なページ

このページを使って選択したテンプレートのデザイン/CSSを確認する。便利なのはたぶん自分だけ。


見出し:

見出し(h2)

小見出し(h3)

準見出し(h4)

標準

---------------------

フォントシリーズ:
最小(xx-small) ABCDEFG
小(x-small) ABCDEFG
標準 ABCDEFG
大(large) ABCDEFG
最大(x-large) ABCDEFG
太字(ボールド)ABCDEFG
斜体(イタリック)ABCDEFG
下線(アンダーバー)
取り消し線

---------------------

リンクの表示確認


altテキスト
旅の思い出
動画に関するプロパティ・キャプションは無いみたい
----------------------



番号付きリスト:
  1. アンパンマン
    1. あんぱん
      1. ジャムおじさんが作る。
    2. 空を飛べる。
    3. 水に弱い。
  2. リストの入れ子はTabキー。Shift+Tab で上に戻る。
  3. リスト中の改行は Shift+Enter

箇条書き:
  • ももクロ
    • かなこぉ↑
      • 茶畑
    • ももか
      • あだ名
        • ケバブ

引用(blockquote):
梨くったら夏おわり(日村勇紀)

pre:
<link href="https://dl.dropbox.com/u/1058440/misc/makev.blogspot/che.css" rel="stylesheet" type="text/css"></link>


code:
ctrl + alt +del


長文でline-height、word-break、word-wrapなどを確認:

ブラウンによるオシロスコープをはじめとして、ビデオモニター、テレビ受像器、コンピューターなどのディスプレイなど、多く用いられてきた。
また、テレビの代名詞のように扱われることもあり、たとえばテレビの番組などを指して「ブラウン管の向こうに~」といったような使われ方をすることもある。YouTubeの "Tube"もこの真空管に由来する。「ブラウン管のスター」という言葉は映画スターを指す「銀幕のスター」と対置されよう。
ブラウンが発明したのは、冷陰極管で、クルックス管に、陰極線によって光る蛍光面を付けたものであった。今日一般的なブラウン管では、電子銃を利用している。
ブラウン管式のテレビでは、スイッチを入れたらすぐ表示できるようにするため、および加熱と冷却、通電と放電の繰返しによって寿命が短くなることを防ぐため、いくらかの回路を通電しっぱなしにするため待機電力を消費した。真空管時代にはこのことをうたった「ポンパ」という商品名もある。
スイッチを入れた時に聞こえる『ブーン』という音は残留磁場を消磁する音である。動作中には非常に高い周波数の『キーン』という音が、特に高域の聴覚が敏感な子供には聞こえるが、これは水平走査の音である。
ブラウン管 - Wikipedia





rmコマンドをごみ箱に移動する動作に置き換える

Lubuntu12.10

andreafrancia/trash-cli
この評判がよさそうなので入れてみる。

インストール

sudo apt-get install python-setuptools
sudo easy_install trash-cli
で終わり。

準備

今回の目的である rm のエイリアスを .zshrc などに書く。
alias rm='trash-put'
source ~/.zshrc

コマンド一覧

trash-put           trashes files and directories.
trash-empty         empty the trashcan(s).
trash-list          list trashed file.
restore-trash       restore a trashed file.
trash-rm            remove individual files from trash can.

動作確認

現在のごみ箱の中身を取得
trash-list

ゴミを投げ入れてみる

echo "frieza" > deathnote
rm deathnote

確認

trash-list
出来た。

ごみ箱を空にする

trash-empty




Linuxあるある

linuxあるある早く言いたい

ひよこユーザから見たノウハウ的なメモ。
  • ホーム以下のなんちゃらディレクトリやファイルを人に伝える場合は、
    ~/.hoge ファイルを~
    ~/.config ディレクトリを~
    とパスの後ろにファイルかディレクトリを明記しないとわからん。
    ~/.config/ のように最後にスラッシュつけるのもいいかな。
  • hoge.desktop ファイルなどを示す際、ただ .desktop ファイルとだけ書くとわからん。普通に ".desktop" ファイルを作成しちゃうので注意。

2012-11-02

Lubuntuのキーバインドを変更する方法

Lubuntu 12.10
  • 変換キー を 半角/全角キー
  • カタカナひらがなキー を Tabキー
にしたい。

現在のキーマップを調べるためにファイルに書き出してみる。
xmodmap -pke > xmodmap_default
エディタで開いて、適当に当たりをつけて対象のkeycodeを確認する。
今回は以下が対象だった。
keycode 100 = Henkan_Mode NoSymbol Henkan_Mode
keycode 101 = Hiragana_Katakana Romaji Hiragana_Katakana Romaji
このkeycodeに対して上書き設定をしてやる。

~/.Xmodmap ファイルに保存。Xは必ず大文字じゃないとダメ!!(3日位ハマった)
keycode 100 = Zenkaku_Hankaku Kanji Zenkaku_Hankaku Kanji
keycode 101 = Tab ISO_Left_Tab Tab ISO_Left_Tab


次に動作確認。
xmodmap ~/.Xmodmap
して反映させてから、キーを叩いて確認する。OK。


なお ~/.Xmodmap ファイルを作っておくだけでOS起動時にリマップが適用される。
ググると ~/.config/lxsession/Lubuntu/autostart ファイルに @xmodmap ~/.xmodmaprc を書いて保存とか書いてあるサイトが見つかるけど ~/.Xmodmap ファイルだけでよかった。

ちなみに ~/.config/lxsession/Lubuntu/autostart ファイルを設定して再起動すると、デスクトップが真っ暗の状態になった。
その際は落ち着いて、右クリックメニューから PCManFM だかを起動して autostart ファイルを除去してやればいい。右クリックメニューからsign outで再起動すれば直る。
自分はこれをやってLubuntuぶっ壊れた!と思って再セットアップしてしまった。

Lubuntu(Openbox)のショートカットキーを確認する方法

ググったほうが早いかも。

Lubuntu (12.10)はデスクトップ環境にLXDE、さらにそのウィンドウマネージャにOpenboxを採用している。(wikipediaに書いてあった)。
それを頼りにググると、~/.config/openbox/lubuntu-rc.xml にショートカットキーの割り当てが記述されていることがわかった。
あとは適当なエディタで開いて適当なキーワードで検索すれば目的は達成されるはず。
(GUIで確認・編集ができるユーティリティは存在するのかな?)

  • terminal(端末)をショートカットキーで起動
    • ctrl + alt + t

あとで書く。

2012-11-01

Sublime Text 2の便利なPackage・Snippetメモ

Packages

  • .css.scssファイルのシンタックスハイライトはPackage Managerで SCSS でいいみたい。

Snippets

あとで書く。

VirtualBoxのGuest AdditionsとVMware PlayerのVMware Toolsの話

最新バージョンは VMware Player (5.0.0 build-812388)。 

VMware PlayerやVirtualBoxを使う際、ホストOSとゲストOSを繋ぐ拡張が提供されている。
主に、マウスカーソルの共有、ファイルの共有、クリップボードの共有が行えるようになる。

 VMware Playerを試したことがなかった頃、なんとなくでずっとVirtualBoxでUbuntu9とかを入れてみたりして遊んでいた。(ほぼセットアップのみで全然活用してなかった)。
当時のVirtualBoxはGuest Additionsを入れてないと、ゲストOSにカーソルのフォーカスが移ると、右Ctrlキーだかを押さないとホストOSにカーソルが戻って来なかった。
最近のは知らない。 VMware PlayerはVMware Toolsを入れなくても、はじめからマウスカーソルはシームレスに切り替えることが出来て驚いた。(OS起動時はctrl+altが必要だけど)。

UbuntuでSublimeText2にSublime Package Controlがインストールできない場合

Lubuntu 12.10, Sublime Text 2 (2.0.1)。

Sublime Package Controlのインストール用コマンドはここから。
http://wbond.net/sublime_packages/package_control/installation
import urllib2,os; pf='Package Control.sublime-package'; ipp=sublime.installed_packages_path(); os.makedirs(ipp) if not os.path.exists(ipp) else None; urllib2.install_opener(urllib2.build_opener(urllib2.ProxyHandler())); open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read()); print 'Please restart Sublime Text to finish installation'

Ubuntu系LinuxでSublime Package Control をインストールするコマンドを打って、「許可がありません」と言われたら権限不足が原因で失敗している。
Traceback (most recent call last):
  File "<string>", line 1, in <module>
IOError: [Errno 13] 許可がありません: u'/home/cherenkov/.config/sublime-text-2/Installed Packages/Package Control.sublime-package'

対応策はSublimeのPackageなどが保存されるディレクトリのパーミッションを変更すればいい。
コマンドラインはわからないのでGUIな方法をメモ。

  1. HOMEを開き、メニュー - 表示 - 隠しファイルを表示する にチェック。
  2. .configをファイルマネージャで開く。
  3. .configを開いたら、メニュー - ツール - rootユーザとして現在のフォルダを開く。
  4. .config以下にsublime-text-2 フォルダがあるはずなので、このフォルダで右クリックメニューを開いて、プロパティ - パーミッション - 内容の変更:誰でも に変更する。 全ての下位フォルダにも適用するか聞かれたら「はい」を選択。
これでいけるはず。


追記
CUIな方法としては、
sudo chmod -R 777 ~/.config/sublime-text-2/
でよさげ。


--------------
起動時に以下のようなダイアログが出て実行できない場合。

Unable to run package setup:
Traceback (most recent call last):
  File "./PackageSetup.py", line 165, in upgrade
    upgradePackage(pkg, pristinedir, datadir, backupdir)
  File "./PackageSetup.py", line 158, in upgradePackage
    os.path.join(backupdir, base), inhibitOverwrite)
  File "./PackageSetup.py", line 90, in upgradeArchive
    writeFile(fname, newar.read(f))
  File "./PackageSetup.py", line 18, in writeFile
    with open(fname, 'wb') as fo:
IOError: [Errno 2] そのようなファイルやディレクトリはありません: u'/home/cherenkov/.config/sublime-text-2/Packages/Package Control/readme.creole'

rootユーザとして現在のフォルダを開く などして、.config/sublime-text-2/Installed Packages にある Package Control.sublime-package を削除すればいい。
その後、前述のパーミッションをちゃんと変更したかチェックして、SublimeのConsoleにPackage Controlインストール用のコマンドを入れる。

2012-10-31

ちょい読み「エスキモーに氷を売る」

「顧客一人ひとりに、もう少し買ってくれるように直接頼む」おもろかった。顧客名簿大事

2012-10-30

SublimeText2をLubuntuにインストールする

注意

Sublime Text 2, 2.0.1(最新安定バージョン)はibusに対応していないので、日本語入力は以下のようにするしかないっぽい。
Sublime Text2を使い始めてみた。(Linuxでの日本語入力できるようにした) - コロタエンヂニアリング
そりゃないよ…。

追記1
lubuntu12.04でInputHelperを試してみましたが、まともに入力ができませんでした。(確定Enterでダイアログが消えたり)。メモ帳からコピペするほうがマシです。

追記2
lubuntu12.10で試したらInputHelperのダイアログからちゃんと日本語を入力できた。メモ帳よりはマシになりました。


-----


http://www.sublimetext.com/2 からLinux 32/64bit版をダウンロードして適当な場所でtar.bz2を展開する。展開するとスペースを含む「Sublime Text 2」フォルダが作られるがそのままでいくことにする。Ubuntu(Linux)の作法に従い /opt にインストールして、シンボリックリンクを張ってsublimeコマンドを作る。
以下、展開した場所で実行。
sudo mv Sublime\ Text\ 2 /opt
sudo ln -s /opt/Sublime\ Text\ 2/sublime_text /usr/bin/sublime
sudo sublime /usr/share/applications/sublime.desktop
sublime.desktopに以下の内容を保存すると、メニュー - プログラミング にSublime Text 2が追加される。
[Desktop Entry]
Version=1.0
Name=Sublime Text 2
Exec=sublime
Terminal=false
Icon=/opt/Sublime Text 2/Icon/48x48/sublime_text.png
Type=Application
Categories=TextEditor;IDE;Development
X-Ayatana-Desktop-Shortcuts=NewWindow

[NewWindow Shortcut Group]
Name=New Window
Exec=sublime -n
TargetEnvironment=Unity


以下のサイトを参考にした。



Ubuntu系環境のGoogle日本語入力(Mozc)のインライン入力の不具合について

Ubuntu系(Ubuntu11,12, Linux Mint, Lubuntuなど)で普通にmozcを入れただけだと、日本語の変換候補がウィンドウの外側に表示される現象が起きる。
(入力中の文章のすぐそばに変換候補が表示されることをインライン入力というらしい)。
左:インライン入力じゃない状態。右:インライン入力。


インライン入力じゃない状態は不便なので、mozcをインストールする際は以下のようにする。(すでにインストール済みでもそのまま入れればいいはず)。

sudo apt-get install ibus-mozc ibus-gtk ibus-gtk3 ibus-qt4 python-appindicator
これは2chのLubuntuスレで拾った。書いてくれた人ありがとう!

ibus-mozcがmozc本体。ibus-gtkはGTK+2で作られたアプリケーションの入力に必要なもの。ibus-gtk3はGTK+3で作られた~略、といった感じでしょうか?(Synapticパッケージマネージャで検索してなんとなく)。



Lubuntu12.10セットアップメモ

VMware Player 5.0.0 build-812388。ホストOS:Windows Vistaで、ゲストOSとして Lubuntu12.10 を入れる。

Lubuntu公式からisoを拾ってきてインストールした後からの作業メモ。

まずVMware Toolsを入れる

VMware Toolsを入れると何が嬉しいのか

  • ホストOSとクリップボードを共有できる。
  • vmware playerのウィンドウサイズを変更すると、ゲストOSの画面サイズも変更される。等。

VMware Toolsインストール手順

(tar.gzの展開とかコマンドではなくマウスでやってもいいけど、いざというときのために書いておく)。
  1. VMware Toolsをビルドするために必要なパッケージをインストール。(VMware Tools自体はこれが無くてもインストール出来る(?)みたいだけど一応入れとこう。)
    sudo apt-get install build-essential
  2. VMware Playerのメニュー - 管理 などからVMware Toolsをインストールする項目をクリックしてマウントさせる。/media/cherenkov/VMware Tools とかにあるはず。
  3. HOMEにインストール作業用のフォルダを作成し、開く。
    cd
    mkdir vmware-tools
    cd vmware-tools
    
  4. 作成したフォルダにVMwareToolsのtar.gzを展開してvmware-install.plを実行。
    tar xzvf /media/cherenkov/VMware\ Tools/VMwareTools-9.2.0-799703.tar.gz
    cd vmware-tools-distrib
    ls
    sudo ./vmware-install.pl --default
    
  5. が、なぜかLubunt12.10(12.04も)には前のバージョンのVMware Toolsが入っているらしく、すんなりと新しいバージョンが入らない。(build-essentialと関係するのか、これが出ない時もあった。よくわからん)。
    VMware KB: Failure to install VMware Tools: Cannot find the answer BINDIR in the installer database
    /etc/vmware-tools/locationsを削除すればいいらしい。
    消すのはちょっとアレなんで、locationsをlocations-に名前変更して乗り切る作戦。(消しても問題なさそうだけど)。
    sudo mv /etc/vmware-tools/locations /etc/vmware-tools/locations-
    sudo ./vmware-install.pl --default
    
  6. 成功したら再起動する。

HOMEのドキュメントやデスクトップを英語表記に変更

  1. ドキュメントがDocuments、デスクトップがDesktopになる。
    sudo apt-get install xdg-user-dirs-gtk
    LANG=C xdg-user-dirs-gtk-update
    
  2. 再起動すると反映される。

余計なスタートアップを外す

  1. BootUp-Managerをインストール。
    sudo apt-get install bum
    
  2. システムツールにBoot-Up Managerが追加されているはず。
    起動したらAdvancedにチェックを入れてServicesを眺める。
    ntp,pppd-dns,dns-cleanだけにチェックが入っていた。よくわからんのでそのままにしておく。(LinuxMintだとbluetooth,Scannerなどが有効になっていた)。

zsh(oh-my-zsh)セットアップ

  1. zshとgit(oh-my-zshに必要)を入れる。
    sudo apt-get install zsh git
    wget --no-check-certificate https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | sh
    
  2. oh-my-zshインストール後に~/.zshrcを開くとPATHを上書きしている所があるので、削除かコメントアウトしておく。今後入れる他のソフトの邪魔になる。インストールした時点のPATHをわざわざ上書きしてくれるらしい。余計なお世話なのでは…。
  3. ターミナル(端末,Terminal,LXTerminal)のシェルをzshにするには、アクセサリー - システムツール - ユーザとグループ - 高度な設定 - 高度 > Shell:/usr/bin/zsh にする。(/bin/zshとどう違うのかわからん)。
    端末を立ち上げて、oh-my-zshが有効になっていることを確認。

Google日本語入力(Mozc)をインストール

  1. mozc本体とインライン入力に必要なパッケージを入れる。確かここで再起動。
    sudo apt-get install ibus-mozc ibus-gtk ibus-gtk3 ibus-qt4 python-appindicator
    
  2. 設定 - キーボード・インプットメソッド でiBusの設定を開く。インプットメソッドのタブを開き、適当にMozcが優先的になるように設定する。
こっちにも書いた。
Ubuntu系環境のGoogle日本語入力(Mozc)のインライン入力の不具合について

Sublime Text 2をインストール



ファイルマネージャのデフォルトビューをコンパクト表示に固定する

  1. 適当なフォルダを開く
  2. メニュー - 編集 - 設定 > デフォルトのビュー:ビューのモードをコンパクトにする。

隠しファイルを表示する

  • メニュー - 表示 - 隠しファイルを表示する

マウスカーソルを黒にする

  • 設定 - ルックアンドフィールを設定します - マウスカーソル

スクリーンセーバーをやめる

  • 設定 - Screensaver から Mode: Disable Screen Saver に。

タスクバー(タスクトレイ、パネル)の位置を上にする

タスクバー上で右クリックメニュー - パネルの設定。自分の設定を箇条書き。

  • パネルの位置は上。
  • パネルの設定 - 追加 - ディレクトリメニュー を適当に配置。このディレクトリメニューはアプリケーション・ランチャーにあるファイルマネージャPCManFMよりも便利。(ファイルマネージャPCManFMはクリックするとHOMEが開かれるだけ)。
    ディレクトリメニューとファイルマネージャPCManFMのアイコンを並べて、ディレクトリメニューを展開した状態。
ひとまずこんな感じにカスタム。

bloggerのユーザー名(表示名)を変更する方法

http://www.blogger.com/edit-profile.g
にアクセス。
通常、自分のプロフィールから編集できるが、プロフィールを非表示にしている場合は少し迷う。その場合は以下の画像にあるリンク先から編集を行える。

Lubuntu12.04から12.10へアップグレードする方法

アップデートマネージャーから出来る。
アップデートマネージャー - 設定 - Ubuntuの新バージョンの通知 > すべての新バージョン


注意

追記:以下の文は勘違いだった→ http://makev.blogspot.jp/2012/11/lubuntu.html

VMwareのゲストOSのLubuntu 12.04を12.10にアップグレードしてみたところ、デスクトップが真っ黒(真っ暗)、パネル(タスクバー)などがなにも表示されなくなった。
右クリックメニューからOpenboxのメニューが出せて、いつものPCManFMのファイルマネージャとかChromiumなどは起動できた。ひと通り操作はできるので必要なファイルは取り出せる状態。
しかし、真っ黒からの復旧方法がさっぱりわからなかったので、12.10で新規セットアップすることにした。
結果的にアップグレードは失敗。

2012-10-22

このブログのデザインメモ

追記


気まぐれにブログのデザインを変えた。テンプレート:シンプル(グリーンのやつ)。
基本的な流れは、以前の記事と同じ。
SyntaxHighlighterのメモ。使用するテーマによってcssを足してやる必要があった。
(chromeで表示がおかしかった)。
管理画面 - テンプレート - HTMLの編集 - 続行 で</head>前に以下のコードを挿入。
<link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
<script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
<script language="javascript" type="text/javascript">
SyntaxHighlighter.config.bloggerMode = true;
SyntaxHighlighter.all();
</script>
<style type="text/css">
/* SyntaxHighlighter: adjustment for chrome */
.syntaxhighlighter .gutter .line {
  word-wrap: normal;
}
.syntaxhighlighter .code {
  word-wrap: normal;
}
.syntaxhighlighter .toolbar {
  display: none;
}
</style>

テンプレートデザイナー - アドバンス - Add CSS
h2 {
  font-size: 13px;
}
.date-header span {
  font-size: 15px;
  font-weight: normal;
}
注意
SyntaxHighlighterでhtmlなどのタグを貼り付ける場合は、「<」を&lt;にすることが必須。
ソースコードのインデントがタブだと、1タブ = 1半角スペース に置き換えられる。
タブも半角スペースに置換しておくこと。

2012-05-27

ChromeのCSS::selectionが一部反映されない件

WinVista, Chrome 19.0.1084.52 m, Firefox 12.0。
文字列を選択した際の背景色を指定するCSSの::selectionをこのブログに適用してみたが、Chromeは文字列以外の部分の色がデフォルトのままだった。どうしたもんかいのぅ。
::selection {
    background: pink !important;
}
::-moz-selection {
    background: pink !important;
}


Skitch for WindowsはWindows8のみ

スクリーンショットや画像にきれいに字入れするソフトのSkitch。
Evernoteに買収されて無料化されました。Windows版はあるのかぐぐってみましたが、
今のところ、Windows8用しか見つかりませんでした。

Skitch app for Windows in the Windows Store Preview

勝手に移植

Chrome拡張機能「切込隊長補佐」をリリースしました | しらさかブログZ
見やすいです。
しかし拡張を入れるのもなんなんでStylishに移植しました。
インストールはこちら
やまもといちろうBLOG(切込隊長補佐) - Themes and Skins for Tea-nifty - userstyles.org



動作確認
しばらくぶりに東京に帰ってきてみたら、補佐が着任していた: やまもといちろうBLOG(ブログ)

2012-05-07

中国のケンタッキーで発見!かた焼きそばバーガー


youkuのCMで見つけた。かた焼きそばが具のハンバーガー。新感覚。
中国でケンタッキーは肯德基というらしい。
Welcome to KFC.com.cn

  • 中華な品目が目立ちますね。
  • 価格表示で円マークが使われているのが気になる。元も¥なの?

ちょい読みにっき「Coders at Work プログラミングの技をめぐる探求」


Douglas Crockford氏の章だけ。

  • テレビ放送科で勉強
  • E(プログラミング言語?)
  • 数多くあるJavaScript Frameworkはいずれ2,3個に収まるだろう。なかでもMicrosoftのAtlasは生き残ると予想。理由はこういった競争にMSはいつも残るらしい。
  • Yahooで氏が推進している取り組みのひとつがコードリーディング。
  • FORTRANからの癖でつい一文字変数名を使ってしまうことにもがいている。
  • コードリーディングする際には、 まずJSLintを通してから。
  • 波括弧を前につけるな。
  • 睡眠時無呼吸症候群で集中力と記憶力が落ちた時期があったらしい。今は回復。
  • クヌース
  • クヌース著作の The Art of Computer Programming を学生の頃に家賃を二ヶ月滞納して手に入れたらしい。
  • 自分は、「時に英語の文章を書き、時にJavaScriptのコードを書く作家」だと思ってる。
  • ブログなどで技術をわかりやすく紹介する文章が書ける人は重宝する。
  • エンジニアを採用する時に気をつけていることは、コードリーディングをさせる。自らが書いた自信があるコードを説明させる。プレゼンテーション力を重視。

2012-05-05

このブログのデザインメモ

あまりカスタマイズせず、気に入ったデザインを適用する方針。
なお、以下の設定はテンプレートを変更するとリセットされてしまうので注意。

  1. Bloggerテンプレートデザイナーでぽちぽち調整していく。 
    • "テンプレートデザイナー"への行き方は、設定 - テンプレート - "カスタマイズ"
    • テンプレート:エスィリアルの水色ベースを選択。
    • 背景:"お祝い"カテゴリから緑のクローバーを選択。
    • レイアウト:サイドバーの位置が右で一列のものを選択。
    • 幅を調整:レイアウトを変更してから、"幅を調整"に移動して"デフォルトにリセット"をクリックして、ブログ全体:960px。サイドバー:310px。
    • アドバンス:
      • Background:メインの背景を#ffffffに変更。
      • 投稿タイトル:"B"ボタンをクリックしてBoldを有効化。
    • カスタムCSS: 画像の影、角丸
      .post-body img {
        box-shadow: 1px 1px 5px rgba(0, 0, 0, 0.5) !important;
        padding: 10px !important;
        border-radius: 8px;
      }
  2. ソースコードをシンタックスハイライトさせる Syntax Highlighter を組み込む準備。
    • Syntax Highlighter Scripts Generator を使うと便利。ホスティングされているファイルを読み込むコードを生成してくれる。
    • テーマと言語を気軽に選ぶ。必要になったら後から足す。
    • Generateボタンを押すと以下の様なコードが表示されるのでコピー。
      <link href='http://alexgorbatchev.com/pub/sh/current/styles/shCore.css' rel='stylesheet' type='text/css'/>
      <link href='http://alexgorbatchev.com/pub/sh/current/styles/shThemeDefault.css' rel='stylesheet' type='text/css'/>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shCore.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushBash.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCSharp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCpp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushCss.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushDiff.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushJScript.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPerl.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPhp.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPlain.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushPython.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushRuby.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushSql.js' type='text/javascript'></script>
      <script src='http://alexgorbatchev.com/pub/sh/current/scripts/shBrushXml.js' type='text/javascript'></script>
      <script language="javascript" type="text/javascript">
       SyntaxHighlighter.config.bloggerMode = true;
       SyntaxHighlighter.all();
      </script>
    • テンプレートを編集する。
      • 設定 - テンプレート  -  "HTMLの編集"  - "続行"  と進むとテンプレートのソースコードが表示される。
      • </head> の前にコードを貼り付けて保存。
    • 以上でシンタックスハイライト導入完了。使い方は、HTML編集モードで、
      <pre class="brush: css;">
      コード
      なお、シンタックスハイライト部分のHTMLタグなどの<は&lt;に書き換える必要がある。
      </pre>
      
    • 参考: @minorut blog: Blogger にシンタックスハイライト JavaScript ライブラリSyntaxHighlighter を導入するには
  3. AutoPagerizeされてもシンタックスハイライトが効くようにする。ついでにjQueryを使えるようにしておく。
    • Syntax Highlighterを導入した要領で以下のコードをテンプレートの </head> 前に追加する。
      <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
      <script type="text/javascript">
      //<![CDATA[
      jQuery.noConflict();
      var InsertNode = function(evt) {
         SyntaxHighlighter.highlight();
      };
      jQuery(document).ready(function($){
      (function() {
        $(document).bind('AutoPagerize_DOMNodeInserted AutoPagerAfterInsert', InsertNode);
        if (window.addEventListener) { 
          window.addEventListener('AutoPatchWork.DOMNodeInserted', InsertNode, false);
        }
      })();
      });
      //]]>
      </script>
      
    • テンプレートにJavaScriptを書く場合は正しく解釈させるために //<![CDATA[ が必須。(保存後シングルクォーテーションが文字実体参照に変換されたりした。)
    • jQuery読み込み後、すぐにjQuery.noConflict() してjQueryが持つ$関数を封印して、すでに定義されている$関数との衝突を避ける(合ってるよね?)。jQuery(document).ready(function($){ のようにすれば中で $が使える。それ以外はjQuery.find( のように$ではなくjQueryを使う。
    • 無名関数(function(){で括ったのは、機能ごとのブロックにしておいたほうが後から見やすいと思ったから。
    • 参考:
  4. ページタイトルをブログ名が後ろにくるようにテンプレートを修正。「ブログ名: エントリータイトル」→「エントリータイトル - ブログ名」
        <b:if cond='data:blog.pageType == "index"'>
        <title><data:blog.title/></title>
        <b:else/>
        <title><data:blog.pageName/> - <data:blog.title/></title>
        </b:if>
        <!--<title><data:blog.pageTitle/></title>-->
    

2012-05-03

facebookの「いいね!」する前に確認するグリモンを作った


インストールはこちらから
facebook like button daemon for Greasemonkey
(firefox/greasemonkey, chromeで動作確認)

このグリモンを適用すると



こんな感じで一般のサイトに設置された公式の「いいね!」ボタンの上にカバーをかぶせます。











カバーをクリックすると確認がでて、OKを押すとカバーが消えて「いいね!」できるようになります。
ワンクッションはさむことで誤いいね!を予防します。



ちょうどいい記事がありました。
エロサイトに「いいね」した人がエロサイトを見ていたとは限らない | コーヒーサーバは香炉である



これなら偽ボタンがあってもへっちゃらですね!



グリモンだと読み込みが完了されてから実行されるのでカバーが付くまでにラグがある。
これを補うためにグリモンよりも早い段階で実行されるStylishで目立つようにしておいたほうがいいかもしれない。
@-moz-document url-prefix("http://www.facebook.com/plugins/like.php"),
url-prefix("https://www.facebook.com/plugins/like.php") {
body {
  background-color: tomato !important;
}
}