Posts Tagged ‘設定’

Windowsでのコマンドライン環境はConsole2+nyaosで

この記事は主にConsole2の紹介とnyoasのLua拡張についての話です。

Windowsのコマンドプロンプトはとても使いづらいので、コマンドプロンプト代替ツールとしてckwと拡張性が優れたNYAOS(昔はnyacus)などのシェルを合わせて使ってる人もいると思います。
自分も少し前まではckw-mod+NYAOSを使っていました。

現在はタイトル通りConsole2+NYAOSにしています。
ckwやConsole2はターミナルに該当するソフトウェアで、nyaosやgitbashなどはシェルに該当するソフトウェアです。

Console2でnyaosを使うのは簡単で、Settings>ConsoleのShell(またはタブ毎の設定)にnyoas.exeのパスを入れるだけで完了です。

image

Console2の機能紹介

タブ

Console2の特徴してはタブを持っていることがあげられると思います。
image

また、タブ毎に設定を行う事ができ、色や背景画像の設定やシェル(nyaosなど)に使うソフトウェアの指定をタブ毎に決定することができます。

image

日本語表示

以前は日本語がダメだったようですが、現在ver2ではフォントを日本語のものにすれば、日本語の表示も問題なく行えます。(フォントによってはおかしくなるけど)

ウィンドウの透過

ckwでよく紹介されてる機能としてウィンドウの透過機能があると思います。
Console2でもウィンドウの透過機能があります。

image

この透過機能はアクティブ、インアクティブの時それぞれの透明度を設定できるので、フォーカス外れているときだけ透過するなどもできます。

image

マウスやホットキーの設定

Console2はホットキーだけではなくて、マウスの動作、左クリックや修飾キーとマウスの組み合わせなどの挙動も設定できるので、結構細かい動作を決められると思います。
WIndowsのデフォルトであるようなCtrl+Cでコピー、Ctrl+Vでペーストなどの設定もできるので便利です

imageimage

これで簡単なConsole2の機能紹介は終わりです。設定はかなり豊富なので自分好みにできると思います。
まあタブがあるだけでもかなり魅力的なターミナルです。

nyoasの設定

nyaosはUNIXライクな日本語拡張コマンドラインシェルで、とても軽くて、作者さんは日本人(@zetamatta)の方なので日本語の扱いも問題ありません。

キーバインドやコマンドのエイリアスなどを設定して、入力履歴を残せるを保持できるようにするだけでも十分使い勝手がよくなります。

それに加えて、nyaos 3.xの特徴としてLua言語でのカスタマイズ機能あります(シェルスクリプトが書ける)

Lua拡張は_nyaのconfigファイルにもLua_eを使って書くこともできますが、拡張と設定は別ファイルに分けた方がいいと思います。(エスケープの問題とか面倒だし)

自分の場合は_nya_git.luaという感じで拡張毎のluaファイルを作成して、_nyaコンフィグファイルからsourceコマンドで読み込んで使っています。(拡張のテストするときもsourceで再度読み込めば適応されるのでデバッグしやすい)

source D:\Software\nyaos\_nya_git.lua
_nya_git.luaの内容は名前のようにgit関係のコマンドやgitコマンドの補完を作ったものを入れています。
gitのサブモジュールの削除が一発でできるようにgit submodule rmというコマンドを勝手に足したり、NYAOS 3000でいろんなコマンドのサブコマンドを補完する – メモ@wantoraにgitコマンドを追加したものなどが入っています。

image

Lua自体はコンパクトな言語で、若干JavaScriptに似てる感じもあるので調べながらやればなんとか書けるものだと思います

nyaosのLua拡張の書き方は以下を参考にしました。

これでConsole2+NYAOSの紹介は終わりです。

Windowsのコマンドライン環境自体はこんな感じで比較的いい感じにできると思いますが、実行できるコマンドの方が貧弱なのでそっちでVMでLinuxを使うみたいな事もあるかもしれません…(まさに自分…WindowsからVM上のLinuxをSSH経由で利用する開発環境の構築 | Web scratch)

WindowsからVM上のLinuxをSSH経由で利用する開発環境の構築

VirtualBox orVMWare PlayerでLinux環境をWindows 7×64に構築するメモ
今回はVirtualBoxTurnkey Linux coreを使って構築した。

と見せかけて、最終的にはUbuntu Server使う事にしたので途中まで飛ばしていいです。

なんでVMを使ってまでやるかというと
WIndowsでのCUIはConsole+NYAOSでコンソールとしていいのですが、node.jsなど実行できないものが出てきたので、VM上に環境を作ることにしました。
Cygwin : 食わず嫌いでしたが、食ったら嫌いでした。
coLinux : 64 bitが非対応でした。

必要なもの

  • VirtualBox(仮想化ソフトウェア)
  • TurnKey Core(サーバー、そこら辺の便利なソフトが入ってる感じのディストリビューション)
  • RLogin(SSHクライアント)

Turnkey Linux coreはVM向けにovf形式でも配布してるので、OVFと書かれてるリンクからturnkey-core-バージョン-lucid-x86-ovf.zipをダウンロードして使う。

2011-04-20-ss11

VirtualBoxを起動してメニューの仮想アプライアンスのインポートから、先ほどのovfをインポートすると自動でTurnKey Coreが仮想マシン一覧に並ぶ。(設定するのは仮想マシンの名前ぐらい)

2011-04-20-ss8

起動するとパスワードの設定などがあって、パスワード以外はEnter押してればいいと思う。
設定が終わると起動して下のようなメニュー画面が表示される。

2011-04-20-ss12
メニューを終了させると、CUIで操作できるけどキーやマウスの関係で扱いにくいのでSSHからアクセスして操作する。

RLoginを起動して、サーバの接続から新規追加して、プロトコロルにSSH、アドレスにはLinuxサーバーのIPアドレス、ユーザーはrootで、パスワードは最初の起動時に設定したものを入力して接続する

2011-04-20-ss13

2011-04-20-ss9

こっからはサーバー{ゲスト側(Ubuntu)}の設定

まずはrootだとあんまりよくないので、ユーザー(azuという例で)を追加、そのユーザーのパスワードを設定する。

root@core ~# useradd -m -s /bin/bash azu
# ユーザーazuを追加する。mオプションがないとHOMEディレクトリが追加されなかった
root@core ~# ls /home/     
azu/
# HOMEディレクトリがあるのを確認
root@core ~# passwd azu
# パスワードの設定
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
useraddの-sオプションでログインシェルを決めないとかなり不自由な感じになります。
後からログインシェルを決める場合はchsh -s /bin/bash などとする。
と、このままTurnkey Linuxを使おうと思っていたんだけど、ファイル共有でどうしても上手くGuest Additionsのインストールが上手くできないのと、なんかroot前提なような環境で他とは少し違った感じで躓く事がありそうだったので、Ubuntu Serverに切り替えました。
 

Ubuntu Serverを使って環境構築(改めて)

(ちょこちょログにTurnkeyが出てくるのはそのときの名残です。プロンプトの文字は無視してください)
(Turnkey Linuxの事は忘れてください)
必要なもの

ホストOS

ゲストOS

Windows 7 64bit

Ubuntu Server

で環境を作っていきます。
Ubuntu Serverのisoをダウンロードしてきて、新規仮想マシン作成から適当な配分で仮想マシンを作りますが、ネットワークをブリッジ接続に変更しないとUbuntu ServerのIPアドレスが10.0.2.25とかいう感じになってSSH接続できなかったので、ネットワークをブリッジ接続に変更して作成しました。
image
追記: ネットワークがNATでもポートフォワーディングすればSSH接続できました(こっちの方がいいかも)
ネットワークの設定をNATにしてから、高度の設定でポートフォワーディングにホストには任意のポート、ゲストにはUbuntu側に設定したSSHのポート番号(デフォルト22)を設定します。
2011-04-23-ss1
この状態で、RLoginに接続IPアドレスに127.0.0.1 or localhost で、ポート番号にはホストに設定したポート番号を入力すればSSH接続できます。
任意のポートだけを開く感じで使えるのでこっちの方がいい気がします。同様の方法でWebのポートである8080もポートフォワーディングに設定しました。

 

仮想マシンを起動したUbuntu Serverのインストール画面でユーザーアカウントの作成ができるので、下のガイドに従って入力していくだけで先ほどのTurnkey Linux でのユーザーアカウント追加までと同じ事ができます。

注意点としては18.サーバーソフトウェアの選択画面でOpenSSH SERVERを選択してSSHでつなげるようにしておくと楽でいいです(スペースキーで選択チェックが入る)

忘れた場合でも

sudo apt-get install openssh-server
とすればいいだけなので、そこまで問題ないです。
Ubuntu Serverはそのまま使うと文字化けして扱いにくいので、RLoginを使ってアクセスすれば文字化け対策をしなくてもいいので、最初からRLoginを使って作業します。
サーバのIPアドレスは
ifconfig

で、わかると思います。
初期設定なら、インストール時に入力したアカウントとパスワードでログインできると思います。


SSHで鍵を使って接続

セキュリティ的にパスワードではなく鍵でSSHをつなぐのが普通だと思うので、SSHの鍵設定をします。

root@core ~# cd /home/azu/
# ユーザのHOMEへ
root@core /home/azu# mkdir .ssh
root@core /home/azu# cd .ssh
# .sshディレクトリを作って移動
root@core azu/.ssh# ssh-keygen -t rsa
# 鍵を生成する
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): turnkey # ファイル名は適当に
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in turnkey.
Your public key has been saved in turnkey.pub.
root@core azu/.ssh# ls
turnkey  turnkey.pub
# .sshディレクトリに秘密鍵と暗号鍵が生成される
root@core azu/.ssh# mv turnkey.pub authorized_keys
# turnkey.pub を authorized_keysにリネームする
root@core azu/.ssh# ls
authorized_keys  turnkey
鍵は生成して公開鍵(authorized_keys)の登録ができたので、秘密鍵をホスト側のPCに転送します。
RLoginにファイル転機能がついてるので、.sshディレクトリにある秘密鍵(turnkey)をホスト側に移動させます。
ゲスト側(Ubuntu)に秘密鍵は置いておく必要はないので、秘密鍵(turnkey)は転送したら削除します。
2011-04-20-ss15
次にSSHの設定で、鍵以外でのログインはできないように/etc/ssh/sshd_configを書き換えます。
# それぞれをnoに書き換える 
PermitRootLogin no  
PasswordAuthentication no  
UsePAM no
# 面倒だったので一度rebootした

自分はportも22から適当なものに変更しました。

後はRLoginに秘密鍵を登録してSSHログインするだけです。
SSH Identity keyに転送した秘密鍵をセットして、ポートを変えた場合はポートも任意のものに設定してから接続します。
共有フォルダの設定
Ubuntu Server にはGUIがないので、Guest AdditionsのインストールもCUIで行わないといけません。
ここで結構はまりました

が大変参考になった。

まずは適当な共有フォルダを設定しておく。

image

そして、起動してるVMのメニューにある”Guest Additionsのインストール”を押しておく。
何にも起きてないように見えるが、CDドライブにCDが入った感じになる。

sudo apt-get install build-essential linux-headers-`uname -r`
sudo apt-get install xserver-xorg xserver-xorg-core
#必要なものを先にインストールしておく
###################
# ここまでにGuest Additionsのインストールを押してマウントの準備が必要
###################
mkdir /tmp/cdrom
sudo mount /dev/sr0 /tmp/cdrom
# Guest Additionsのディスクをマウントする
cd /tmp/cdrom
sudo bash VBoxLinuxAdditions.run  --nox11
sudo addgroup --system --quiet vboxsf
sudo usermod -a -G vboxsf azu # ユーザーをvboxsfグループに加える
sudo reboot
# リブート

azu@ubuntu:/media$ ls
cdrom  sf_azu
自動マウントするためにはユーザーをvboxsfグループというグループに加える必要があることに注意。
リブートすると/media以下にsf_フォルダ名が現れてアクセスできるようになる。
大体ここまで基礎的な環境ができあがるので、後は好きなソフトを入れていく感じになると思います。(一応スナップショットをとっておきました)
Ubuntu Server + VirtualBox GUIありでメモリ使用量は45MBぐらい、VBoxHeadless.exeで画面表示なしで起動させると30MBになって結構メモリ使用量は少ない。
VirtualBoxをタスクトレイに入れて管理するにはVBoxHeadlessTrayがおすすめ。ヘッドレスモードやシャットダウンとなどの操作もタスクトレイで行えるのでとてもいい。

ついでにNode.jsの環境も作ってみる
Node.jsは直接入れるよりもバージョン管理するツールから入れるのがいいらしいので、naveかnvmを使う事にした。
naveは何かインストールが面倒だったので、nvmを使う事にした。
nvmは自動でnpmもインストールしてくれるので便利。

azu@ubuntu:~$ sudo apt-get install build-essential libssl-dev git-core 
azu@ubuntu:~$ sudo apt-get install curl
# 必要なものを先にインストールしておく
azu@ubuntu:~$ git clone git://github.com/creationix/nvm.git ~/.nvm          
azu@ubuntu:~$ cd .nvm/
azu@ubuntu:~$ bash ./nvm.sh
azu@ubuntu:~$ nvm install latest
# 最新のnodeをインストールする
azu@ubuntu:~$ node -v           
v0.4.5

毎回 bash ./nvm.sh 実行するのは手間なので。
.bashrc を編集して、

. ~/.node/nvm.sh
nvm use latest

を書き加えておきます。

雑記

VMWareはスタートアップにいろんなもの生やすし、ダウンロードも登録必要で面倒なので、VMWareよりもVirtualBoxの方が好みでした。

目標としては、Cygwin HereみたくWindowsのエクスプローラー上のコンテキストメニューから、SSHクライアントを開いてそのときに同時に共有フォルダのsf_azu以下にある同じフォルダまで移動したいのだけど、お客様の中でよい方法をお知りな方がいらしゃったらお願いします。
e.g)
windows : C:\Users\azu\Downloads のコンテキストメニューからSSHクライアントを開く
Ubuntu   : 渡されたパスを元に /media/sf_azu/Downloads をカレントディレクトリにする

SSHクライアントのマクロみたいので実現するのかな。

Turnkey Linuxの

今使っているWebStormプラグイン

PHPStorm/WebStormプラグインはまだ余り数がないので拡張性はそこまで高くないのですが(JetBrains製IDEで互換性があれば良いのに)、幾つかプラグインを入れてるので紹介
プラグインはSetting->Pluginから検索すれば全部出ると思います

  • Markdown
    名前の通りMarkdown記法のシンタックスハイライトに対応するプラグイン。
    WebStorm内でプレビューも行えるため、Githubのreadme.mdを書くときにものすごく便利
    デフォルトだとFile Typeに*.mdがないため(今は入ってるかもしれない)、mdファイルを開いても有効にならないことあるので、File Typeで*.mdがを追加すると有効になる。
  • FavoriteFolders
    WebStormはJava製なためかファイルダイアログがOS標準とは違うため、目的のフォルダまで移動するのが面倒くさい。
    FavoriteFoldersはファイルダイアログに任意のフォルダまでのショートカットを付けてくれるプラグイン。
  • Scratch
    Alt+C, Alt+Cで一時的に何か書いておけるtxtファイルを開いてくれる。
    わざわざファイルを追加するのは面倒だし、そこにファイルが残ってしまうので地味に便利
  • CoffeeBrew
    CoffeeScriptに対応してくれるプラグイン
    シンタックスハイライトなどは対応してるけど、補完などはできないのでちょっといまいち
  • Pomodoro-tm
    Pomodoro Technique的なタイマープラグイン。
    25分タイマーで計って5分Breakタイムのような設定ができるぐらいで普通のタイマーと変わらないです。
    時間忘れていじってしまうのを防止

    設定画面

今のところこれぐらいです。 (あまり数がないのもあるけど)デフォルトでもかなり機能的に優秀なのでそこまで不便はしないですね。

おまけ

WebStormが今春のキャンペーン中で半額で購入できるようになってるみたいです。(今回は他のIDEはなってなかった)
是非この機会に触ってみるといいかもしれません。

WebStorm & PhpStorm Blog » Blog Archive » 50% OFF personal WebStorm licensesi
http://blogs.jetbrains.com/webide/2011/04/50-off-on-personal-webstorm-licenses/
JetBrains

GreasemonkeyからScriptishへ環境設定を移行する

GreasemonkeyからScriptishへの環境移行メモです。
ScriptishについてはScriptish wiki!Scriptish (Greasemonkey フォーク版) キタ━━━ヽ(゚∀゚)ノ━ – hogehoge @teramakoを見るとよいです。
簡単にまとめると、使えるAPIが増えた(開発者的にうれしい)、管理画面の設定項目がGreasemonkeyより豊富(Greasemonkey0.9で削られたinclude,excludeの設定もGUIからできます)、UIが日本語化されてる(ちょっと分かりづらい訳だけど…)
Greasemonkeyからフォークしてるので、Greasemonkey向けに書かれたスクリプト自体の互換性は問題ないです。
逆にScriptishの新APIを使ったものはGreasemonkeyでは動かない事があるぐらいだと思います。

環境の移行方法

How To: Manually transfer user scripts from Greasemonkey to Scriptish – GitHub
に手動での環境移行手順が書かれています。
簡単に書き出してみると

  1. スクリプトフォルダ名はgm_scriptsからscriptish_scriptsになった
    (フォルダの中のconfig.xmlや配置自体は同じなのでフォルダ名だけ変更すればOK)
  2. prefs.jsへスクリプトの設定の保存書式が変更された
    これが移行時にネックになってる大きな変更で、GM_setValueなどGreasemonkeyスクリプトから値を保存するとpref.jsに書き込まれますが、そのときの書式が変わっているためGreasemonkey時に保存した値が引き継がれません。
    一応手動での書き換え手順も書かれています。
    greasemonkey.scriptvals から extensions.scriptish.scriptvals へ置換する
    スクリプト名とネームスペースの間の/を@に置き換える

GreasemonkeyとScriptishのpref.jsの書式の違いを見てみると

user_pref("greasemonkey.scriptvals.http://efcl.info//Post Now browsing to Twitter.GM_config", "{"defaultTag":"見てる:","isSelection":true,"removeUtm":true,"avoidLinktoMeta":true,"PostWithCtrl":true,"ShortCutKey":"C-Delete","ShortURL":"bit.ly","bitlyUserName":"remiko","bitlyAPIKey":"R_fa2240c646c07b2091c6bc6d109089ef","googlAPIKey":"AIzaSyDYer57o2GyHX_xylyaa4iGIyyjd81kGxc"}");
// =>
user_pref("extensions.scriptish.scriptvals.PostNowbrowsingtoTwitter@httpefcl.info.GM_config",  "{"defaultTag":"Now  browsing:","isSelection":true,"removeUtm":true,"avoidLinktoMeta":true,"PostWithCtrl":true,"ShortCutKey":"C-Delete","ShortURL":"bit.ly","bitlyUserName":"remiko","bitlyAPIKey":"R_fa2240c646c07b2091c6bc6d109089ef","googlAPIKey":""}");

という風にpref.jsに保存される書式が変化しています。
ネームスペースとスクリプト名の位置も逆転してまたスペースなど除去されてたりします。
手動でやっても結構手間がかかるので、大事なものだけやって、後は普通に設定し直した方が楽だと思います。
一応、自動的にできるようにNILScriptでGreasemonkeyToScriptish.ngというものを作ってみました。

    pref.jsに保存された値をGreasemonkeyからScriptishの書式へ変更する
    pref.jsと同じディレクトリにこのngスクリプトを置いて実行するとnew_pref.jsが生成される。

実行する前にpref.jsのバックアップをとっておいてから、pref.jsと同じディレクトリにおいて実行すると、それぞれの値を書き換えたnew_pref.jsというのができるので、後はpref.jsのコピーし直すかpref.jsにリネームして使うなどしてください。
不完全かもしれないので、保証はできません。

Dropboxフォルダでスクリプト管理

これを期にGreasemonkeyスクリプトのファイル自体をDropboxで共有しようと思ったので、移行手順の1の時にDropboxにgm_scriptsフォルダを移して、プロファイルフォルダにscriptish_scriptsへのシンボリックリンクを作りました。
Windowsだとmklinkとかコマンドラインがややこしいので、Link Shell Extensionを使ってシンボリックリンクを張りました。

このソフトを使えば普通のショートカットみたいにシンボリックリンクが貼れるので簡単。
(シンボリックリンクのフォルダ名をちゃんとscriptish_scriptsにするのを忘れない)

追記:起動時に変更がたくさんある(Dropbox共有してると起きやすい)とnotificationが大量に通知されて使い物にならないので、
Manual: Preferences – GitHubを参考にabout:configのextensions.scriptish.enableScriptRefreshing を false にして変更の監視をオフにしました。副作用として、スクリプトのメタブロックを書き換えても反映されなくなると思います。
(Greasemonkey0.8あたりと同じ動作になると思う)

これでGreasemonkeyからScriptishへの移行手順は終わりです。
Firefox4への移行と同時にGreasemonkeyもScriptishへ移行を行えば、無駄なスクリプトを削除できたり汚れたpref.jsも掃除できるので同時期にやると良いかと思います。(使ってないGreasemonkeyスクリプトを削除するngスクリプトも以前書きました)
まだどっちのアドオンが優れてるのかはよく分かってないので、使ってるうちに何らかの違いが分かるんではないかと。
(Scriptish向けのスクリプトってなんて呼べば良いんだろ?)

Thinkpad Edge 14″を購入して最初にやった事などの設定まとめ

ThinkPad EdgeとLoox UとiPhone3G

 

ThinkPad Edge 14″


プロセッサー
インテル Core i3-380M プロセッサー (2.53GHz, 3MB L3, 1066MHz)


初期導入OS
Windows 7 Home Premium 64
正規版


初期導入OS及び言語
Windows 7 Home Premium 64 正規版 – 日本語


ディスプレイ
14.0型HD液晶 (1366 x 768 16:9 LEDバックライト)光沢なし – ミッドナイト・ブラック(光沢なし) (WWANアンテナなし)


グラフィックス
インテルHDグラフィックス


メモリー
2GB PC3-8500 DDR3 (1スロット使用)


キーボード
日本語キーボード


ポインティング・デバイス
ウルトラナビ(TrackPoint + タッチパッド) + 指紋センサーなし


ハード・ディスク・ドライブ
320GB ハード・ディスク・ドライブ, 5400rpm


オプティカル・ドライブ
DVDスーパーマルチ, 固定


バッテリー
6セル Li-Ion バッテリー


電源アダプター
65W ACアダプター


Bluetooth
内蔵Bluetooth


ワイヤレスLAN アダプター
ThinkPad IEEE 802.11b/g/n ワイヤレスLAN (WiFi準拠)


言語内容
日本語

を¥45,276 ほどで購入したのでそれの設定メモ

Read the rest of this entry »

twicliの設定とプラグインのメモ

ずっとメインで使っているTwitterブラウザクライアントのtwicliの設定メモ

twicliはブラウザで動くのでUnified Sidebarを使ってサイドバーに縦置きタブバーと一緒に表示しています。
サイドバーへの表示はブックマークは面倒なのでCustom Buttonsのボタンとしておいています。

twiclitwicli

次はCSSの設定、CSSは基本的に最小限で無駄なものを消したりするぐらいです。

.uname{
    display:none;
}
#counter{
    font-size: 9pt!important;
}
/* Removeボタン */
#user_info > input{
    display:none;

}
/* shortcut.js */
.selected {
    background-color: #DDD !important
}

Removeボタンを消してるのはプラグインの関係で誤爆を防ぐためです。(通常は確認ダイアログがでるので誤爆しないかな)
次にプラグインの設定

ssl.js
regexp.js
lists.js
shortcutkey.js
search.js
search2.js
followers.js
shorten_url.js
resolve_url.js
translate.js
scroll.js
thumbnail.js
geomap.js
tweet_url_reply.js

https://gist.github.com/510112.txt#multi-users.js


https://gist.github.com/567983.txt#twicli_post_canceler.js


https://gist.github.com/655300.txt#switchViewedSearches.js

data:text/javascript,var fst=$('fst');fst.focus=fst.select=confirm=Array;

URLじゃないの部分はデフォルトのプラグインなので説明を省きますが、最後の4つが使ってるプラグインです。

一度タイムラインを表示したことのあるユーザーのタイムラインを簡単に再表示するプラグイン

ポストをした際に5秒以内なら中止できるボタンを出す

ハッシュタグや検索結果のタブを一つのタブにまとめる。
サイドバーで使うと狭いので、まとめるために使ってる。

最後のデータスキームURIとなってる部分はわざわざjsファイルとして読み込ませるほど長くはないので直接書いています。

data:text/javascript,var fst=$('fst');fst.focus=fst.select=confirm=Array;

これは、twicliはデフォルトだとポスト後に入力フォーム(fst)へのフォーカスしてしまって、サイドバーで使っているとフォーカスが奪われるのでかなり邪魔になります。なので、focusやselectを潰して、またRTなどで確認ダイアログが面倒になっているので同じように潰しています。(Removeボタンも確認ダイアログがなくなるので、RemoveボタンはCSSで非表示にしています)

他のTwicliプラグインはtwicli plugins – GitHubにまとめられているそうです。

Pickup Patternはそこまで使ってないでの省略。

twicliはJavaScriptで拡張できて、ブラウザで動くのでどこでも使える感じで便利。
みんなもっと設定公開するといいよ

twicli – A Web Browser-Based Lightweight Twitter Client
http://www.geocities.jp/twicli/

スニペット管理もできるクリップボード履歴拡張ソフトウェア「clipex」

クリップボード履歴拡張ソフトのclipexの紹介です。
しばらくペースターを使っていたのですが、最近になってclipexに移行しました。

clipexの特徴

  • 履歴アイテムの振り分け
  • アプリ別に表示アイテム(定型文とか)を変更できる
  • FIFO/FILO (連続貼り付けみたいな機能)
  • PAP対応
    PAP(Pop up in Application Process)という造語
    アプリケーションプロセス内ポップアップ機能(エクスプローラのファイル名変更等でフォーカスが失われたりしない)
  • スクリプト機能(IronPython、IronRuby、C#) JScript対応しないかなー
  • マクロ記録
  • インクリメンタルサーチ機能 ( 重要! ) + migemo対応

という感じで一通りのクリップボード拡張+検索機能が付いてる感じのソフトウェアです。

オプション

オプションも充実しているので、設定にはそこまで困らない感じがします。(ポップアップとインクリメンタルサーチは別々のショートカットで起動できるようになるともっと良いのだけど)

インクリメンタルサーチ



ポップアップメニュー

インクリメンタルサーチ機能は貼り付けのポップアップとは別々に存在しているので、貼り付けのUIはよく見るコンテキストタイプの形になっているので安心できます。

面白い機能としてフィルター機能があります。これは正規表現や実行アプリ名を元に履歴やアイテムに振り分けることができる機能です。逆に正規表現でマッチしたものは履歴に追加しないなどの設定も行えます。
例えば次のような正規表現にマッチしたものを入れるアイテムフォルダを作っておけば、JavaScriptの関数っぽいものだけを格納できます。

[\s\t]*function +[a-zA-Z0-9_]+ *\([^\)]*\)
[\$a-zA-Z0-9_]+.*?function *\([^\)]*\)

スニペット管理としてのclipex

メインウィンドウでのアイテム設定

メインウィンドウの登録アイテムには任意のフォルダを設定できるので、それをスニペット管理として扱うこともできます。
要はフォルダで分別できる定型文機能なので、自由にフォルダ分けしてその中に好きな定型文を書いていくだけです。
ここで登録したアイテムはポップアップメニューに表示させられるので、そこから選んでペーストするのも良いですがclipexはインクリメンタルサーチが使えます。

インクリメンタルサーチには登録アイテムも検索候補に存在するので、登録しまくった後に検索してペーストできるスニペット管理ソフトとして最適だと思います。クリップボード履歴拡張 と インクリメンタルサーチ という機能を持ったソフトウェアはeclipなど過去にも存在していましたが、イマイチ使い勝手が良くなかったりしていたので、clipexは両方を備えていてとても使い勝手が良いソフトとなっていて素晴らしい。

まだちょっと不安定な所もあって、ポップアップやインクリメンタルサーチの結果から選択してからペーストするまでに無駄に時間がかかったり(ここは何とかして欲しい)、フィルター機能を設定して大きな文字列をコピーするととても重くなったり、設定画面の表示などが重くなったり、クリップボード拡張の鬼門であるOfficeソフトとの相性が余り良くなかったりします。
ただこれはアップデートにより解決される可能性はあり、また現在頻繁にアップデートされているため、clipexにはこれからも期待しています。

eclipからclipexに乗り換えた – 教えてお星様
http://d.hatena.ne.jp/kkk6/20110114/1294978827
Vector: clipex – 新着ソフトレビュー
http://www.vector.co.jp/magazine/softnews/101204/n1012041.html
clipexの詳細情報 : Vector ソフトを探す!
http://www.vector.co.jp/soft/winnt/util/se486732.html

Post Now browsing to Twitterで設定画面が開かないバグ修正

Post Now browsing to Twitterで設定画面がうまく開かない現象が起きていたみたいで、以前はGM_configというGUI用のライブラリを使っていたのですが、今回usconfigに移行しました。
なので、今まで設定画面が開かないなどの現象が起きていた人はインストールしなおしてください。
(おかしいときは ツール→Greasemonkey(もしくはステータスバーの猿アイコン)→ユーザースクリプトの管理→Post Now browsing to Twitterを選択→✓関連付けられた設定も削除にチェック→アンインストール → インストール)

こっからはGM_configからUSConfigへ移行方法について。

GM_configは前から少し不安定な感じがあったので、同種のライブラリであるUSConfigに変えました。
GM_configとUSConfigの違いを簡単に挙げてみると(移行するに当たっての変更点)

まずはGUIの書き方が別物なので、そこはすべて書き直す必要があります。

GM_configの場合

GM_config.init('Configuration for Post Now browsing to Twitter', {
    'defaultTag': {
        'label': 'Prefix:',
        'type': 'text',
        'default':'Now browsing: '
    },
    'isSelection': {
        'label': 'Use selectionQuote',
        'type': 'checkbox',
        'default':true
    },
    'ShortURL': {
        'label': 'Short URL',
        'type': 'select',
        'options': {
            'bit.ly': 'bit.ly',
            'j.mp': 'j.mp',
            'goo.gl': 'goo.gl',
            'is.gd': 'is.gd',
            'tinyurl.com': 'tinyurl.com'
        },
        'default':'bit.ly'
    },
    'ShortCutKey': {
        'label': 'ShortcutKey:',
        'type': 'text',
        'default':'CS-Enter'
    },
    'PostWithCtrl': {
        'label': 'Post with Ctrl+Enter:',
        'type': 'checkbox',
        'default': false
    },
    'bitlyUserName': {
        'section': ['bit.ly'],
        'label': 'bit.ly Username:',
        'type': 'text',
    'default':
        'remiko'
    },
    'bitlyAPIKey': {
        'label': 'bit.ly APIKey :',
        'type': 'text',
        'default': 'R_fa2240c646c07b2091x'
    }
}, configStyle , {
    open: function () {
        // ショートカットの入力補助
        var iframe = document.getElementById("GM_config");
        var iframeDoc = iframe.contentDocument;
        iframeDoc.getElementById("field_ShortCutKey").addEventListener('keydown', function (evt) {
            evt.preventDefault();
            this.value = shortcut.get(evt);
        }, false);
        // OAuth Setting
        if (TWOauth.isAuthorize()) {
            TWOauth.injectToConfig();
        } else {
            XHRloading.createText(iframeDoc);
            TWOauth.getRequestToken(TWOauth.injectToConfig);
        }
    },
    save: function () {

    } // reload the page when configuration was changed
});

USConfigの場合

Config.define('usc_basic', function() {
	with (this.builder) {
		var shortURL_opt = [
			'bit.ly',
			'j.mp',
			'goo.gl',
			'is.gd',
			'tinyurl.com'
		]
		dialog(
			"Post Now browsing to Twitter Settings",
			{ width: 600, height: 700 },

				section(
						"User options",
						"Behavior/keyboard Preference",
						grid(
								text("Prefix:", 'defaultTag', "Now browsing: ", { size: 20 }), '\n',
								checkbox("Use selection quote", 'isSelection', true), '\n',
								checkbox("Post with Ctrl+Enter", 'PostWithCtrl', false), '\n',
								text("ShortcutKey:", 'ShortCutKey', "CS-Enter", { size: 16 })
								)
						),
				section(
						"Short URL options",
						"select used Short URL service",

						grid(
								select("Short URL Services", 'ShortURL', shortURL_opt, "bit.ly"), '\n',
								text("bit.ly Username:", 'bitlyUserName', "remiko"), '\n',
								text("bit.ly APIKey :", 'bitlyAPIKey', 'R_fa2240c646c07b2091c6bc6d109089ef', { size: 30 })
								)
						),
				section(
						"OAuth Authorization",
						"Sign in with Twitter"
						)
				);
	}
}, {
	saveKey: 'GM_config',
	aftersave: function() {

	},
	afteropen : function() {
		// ショートカットの入力補助
		var iframeDoc = this.frame.contentDocument;
		iframeDoc.getElementById("control_ShortCutKey").addEventListener('keydown', function (evt) {
			evt.preventDefault();
			this.value = shortcut.get(evt);
		}, false);
		// OAuth Setting
		if (TWOauth.isAuthorize()) {
			TWOauth.injectToConfig();
		} else {
			XHRloading.createText(iframeDoc);
			TWOauth.getRequestToken(TWOauth.injectToConfig);
		}
	}
});

二つを見比べると、GM_configはオブジェクトを定義する感じだけど、USConfigはその都度関数を呼び出す感じになってる。レイアウトの自由度はUSConfigの方が上ですが、ちょっとインデント管理が大変で書きにくい。
またUSConfigではselectに連想配列っぽいオブジェクトを使えないので、配列に直す必要があります。
後、Text() のデフォルトサイズが少し小さいので第4引数で属性にsizeを追加してます。
最後の空sectionはafteropen時に書き換えるようにしてるので、本質とはあんまり関係ないです。
USConfigの方がConfig.define()でのコールバック(afteropenなど)が豊富なので、細かい制御がしやすいと思います。
そのコードバックで設定画面のiframeをとるにはthis.frameとすればよいみたいです。

次に設定情報の取り出し方
GM_configがそのつど、keyを指定してvalueを取り出す感じだったのが(GreasemonkeyのGM_getvalueに近い)

GM_config.get(key);// value

USConfigでは設定全部をまとめたオブジェクトを最初にロードする感じになっています

var settings = Config.load();
settings.key;// value

また、設定を保存するキーの初期値はGM_configと違うのでそのまま移行させるためにはsaveKeyを’GM_config’にします。

Config.define('dialog_name', function() { with (this.builder) {
  dialog(...);
}}, {
  saveKey: 'GM_config',
  aftersave: function() {...},
});

後はGM_config.*()がConfig.*()など細かい違いあるので、それを手直しすれば移行できました。
(GM_config.close()がConfig.remove()だったのが少しはまった)

USConfig

Googleのマルチアカウント機能を有効化する方法

GmailやGoogle CalendarなどGoogleのサービスを、複数のアカウントで同時に使えるようになるMultiple Sign-In機能がリリースされたようなので使って見ました。
現在は以下のサービスでマルチアカウントがつかえるようです。

  • Calendar
  • Code
  • Gmail
  • Reader
  • Sites

有効化する方法はEnabling multiple sign-in : Getting started – Accounts Helpに書いてあります。
簡単に有効化する手順を書くと

  1. アカウント情報を英語のインターフェースにする。
    英語にしないと有効化できてないような気がします。
    自分はiGoogle の設定から言語をEnglishにすることで変更できました。
  2. multiple sign-in settings page へprimary(主)となるアカウントでアクセスする
  3. 有効化を選んでチェックボックスに全部✓をいれてSaveする(この状態だと英語の説明文がでますが)
    既に日本語訳もあったりしました。
  4. Saveしたら一度Googleからログアウトします。
  5. Google Readerなどのマルチアカウントが使えるサービスにログインし直すと、右上のアドレス部分に▼がついてので、そこから”別のアカウントでログイン”をクリックすると別のアカウントでもログインでき、一度ログインすれば切り替えも同じ所からできます。

Multiple Sign-Inは複数のアカウントの切り替えが簡単というだけじゃなくて、同時に複数のアカウントでログインできるので2つのタブで2つのアカウントを同時に使うなどが行えます。

人によってはまだ使えないかも知れません。Gmailが上手くできなかった…
でもGoogle Account Multi-Login for Greasemonkey みたいなGreasemonkey使わなくてもいいのでとても便利。

JailbreakしたiPhone3Gに入れていたCydiaアプリ

iPhone4を買ったためiPhone3Gはメインではなくなったので、iPhone3G+OS3.1.2JBに入れていたCydiaアプリの記録。
以前書いた脱獄時のメモの今版(ちょっと古いけど)みたいなもの。

[脱獄]iPhoneに入れているJailbreak向けアプリ | Web scratch
http://efcl.info/2008/1018/res355/

入れて直ぐ外したのも混ざっているので、見ている頃と機能が違うものも含まれます。

  • Action Menu
    Favoriteのためにいれてた。Action Menu Plus Packは競合しやすいので外してた。
  • AppLinks
    アプリのシンボリックリンクを作ってくれる。iFunboxなどから見るのに便利
  • Activator
    まあ使ってれば勝手に入ってる事がほとんど。設定用
  • Backgrounder
    マルチタスク
  • Kirikae
    Backgrounderとセットで。アプリの切り替え
  • Battery Control
    電池を数値で表示する
  • SBSetting
    JBで快適に生活するために必要なシステムランチャーみたいなもの。
  • Browser Changer
    デフォルトだとsafariで開くがそれの代わりに起動するブラウザアプリを決められる。
  • iPod widget
    SBSettingからiPodの再生/停止ができる
  • CyDelete
    通常のappのようにCydiaアプリもspringboardからアンインストールできる。
  • Cydget
    ロック画面をカスタマイズするためのスクリプト実行環境。Lock calendar用
  • Lock calendar
    ロック画面にカレンダーの予定を表示。
    Google Calendarとカレンダーをプッシュで同期させれば、domo todo+などで追加した予定がロック画面に自動で表示されるのでかなり便利。(Google CalendarをTodoとして使う理由)
  • iFile
    エクスプローラ的なアプリ。多分必須なぐらい使えるアプリ
  • infinidock
    ドックを横にもスライドでき、ドックにおけるアプリの個数も変えられるのでかなり重宝する。
  • MultilconMover
    springboard上で複数のアプリを同時に選択して移動させられる。整理用アプリ
  • Panorama
    springboardの背景画像(壁紙)を設定できる。名前の通り、一枚の横長な画像を設定して少しづつスライドさせて表示する。
    一部アプリではロード画面中にもなぜか設定した背景が出てくるので意外と面白い。
    Simple Background でも似たようなパノラマなホーム壁紙ができるみたいです。(ちょっと調整がしにくそうだけど)
  • Shrink
    springboardのアイコンのサイズを変えられる。
  • PasteboardStacker
    moyashiさんのクリップボード履歴アプリ。(もう配布されていない)
    Action Menuのやつは使えない事があったのでこっちを使用してた。
    クリップボード関係はOS2.xの時の方が圧倒的にできがよい。
  • PrivaCy
    アプリ内でトラッキングなどを防止する
  • QuickScrool2
    スクロールバーを付けてくれるアプリ。一気に下に行くときなどにかなり便利
  • Safari Tab Closer
    safariのタブをまとめて閉じる
  • Shutter Sound Toggle
    シャッター音をなくす。これが無いとスクリーンショットとかカメラ使うアプリが恥ずかしくて使えない。
    トグルする必要もない気がしてきたので/System/Library/Audio/UISounds/photoShutter.caf あたりを直接いじっても同じ効果。
  • Snappy
    カメラの起動、保存がとても遅いiPhone3Gでは必須といえるぐらい素晴らしいアプリ。
    Activatorで設定した方法でカメラを起動して直ぐにとれる。アプリ上にあるカメラを使うと落ちることがよくあったので、Snappyで取ったものをカメラロールから選んだ方が安全だった。
  • SysinfoPlus
    システム情報がかなり詳細に見られるアプリ。
  • SprintBoard
    springboardで効くQuickScrool2みたいなもの。
    springboardの●部分をスライドさせるだけで高速移動できる。
  • TimeServerClient
    iPhoneの時計を一定時間ごとに合わせてくれる
  • Tweetie2RTPatcher
    TweetieとTwitter for iPhoneのRT挙動を日本式に変える
  • UC Browser
    Web kitではないブラウザアプリ。
    「UC Browser」高速iPhoneブラウザ英語版で登場 | iPhone’z
  • wigglefree
    springboardでアプリを長押ししたときのぷるぷるをさせない。

 

プロフィール: azu(アズ)
Firefoxの事やソフトウェアの紹介や使い道、Greasemonkeyの作成
  • OS:Windows Vista, 7
  • ブラウザ:Firefox
  • Twitterのアカウントはこちら
  • azu_re
  • メールアドレス(Twitterの方が確実)
  • info@ドメイン名
リンク

WebMoney ぷちカンパ