読者です 読者をやめる 読者になる 読者になる

Emacsに英辞郎導入

前回英辞郎を買ったのが5年以上前だったのに気づいたので,買い直した.


データしかいらないのでダウンロード版を購入
http://www.dlmarket.jp/products/detail/249143


まずはデータを解凍

mkdir ~/sdic
mv EDP-140.zip ~/sdic
unzip EDP-140.zip


sdicをインストール

sudo apt-get install sdic sdic-eijiro

途中,英辞郎の場所を聞かれるので /home/USERNAME/sdic/EIJIRO/ を指定
しかし,WAEI-140.TXTの変換で固まり,動かなくなったので手動で変換.

nkf -S -e EIJI-140.TXT | perl /usr/share/sdic/eijiro.pl > eijiro.sdic
sudo mv eijiro.sdic /usr/share/dict/eijiro.sdic
nkf -S -e WAEI-140.TXT | perl /usr/share/sdic/eijiro.pl --waei > waeijiro.sdic
sudo mv waeijiro.sdic /usr/share/dict/waeijiro.sdic
sudo dpkg --configure -a

これだと重いので,処理しやすいように変換してやるといいらしい

sudo apt-get install sary
nkf -w eijiro.sdic > eijiro-utf8.sdic
mksary -c UTF-8 eijiro-utf8.sdic
nkf -w waeijiro.sdic > waeijiro-utf8.sdic
mksary -c UTF-8 waeijiro-utf8.sdic


後は,.emacsを編集.
以下はEmacs + sdicから英辞郎v135を使えるようにするまでの顛末 - deruiの日記をほぼそのまま使っています.

;; ---------------------------------------------------
;; sdic
;; ---------------------------------------------------
(autoload 'sdic-describe-word "sdic" "search word" t nil)
(global-set-key "\C-ce" 'sdic-describe-word)
(autoload 'sdic-describe-word-at-point "sdic" "カーソル位置の英単語の意味を調べる" t nil)
(global-set-key "\C-ce" 'sdic-describe-word-at-point)

(eval-after-load "sdic"
  '(progn
     (setq sdicf-array-command "/usr/bin/sary") ; コマンドパス
     (setq sdic-eiwa-dictionary-list
           '((sdicf-client "/usr/share/dict/eijiro-utf8.sdic" (strategy array)))
           sdic-waei-dictionary-list
           '((sdicf-client "/usr/share/dict/waeijiro-utf8.sdic" (strategy array))))

     ;; saryを直接使用できるように sdicf.el 内に定義されているarrayコマンド用関数を強制的に置換
     (fset 'sdicf-array-init 'sdicf-common-init)
     (fset 'sdicf-array-quit 'sdicf-common-quit)
     (fset 'sdicf-array-search
           (lambda (sdic pattern &optional case regexp)
             (sdicf-array-init sdic)
             (if regexp
                 (signal 'sdicf-invalid-method '(regexp))
               (save-excursion
                 (set-buffer (sdicf-get-buffer sdic))
                 (delete-region (point-min) (point-max))
                 (apply 'sdicf-call-process
                        sdicf-array-command
                        (sdicf-get-coding-system sdic)
                        nil t nil
                        (if case
                            (list "-i" pattern (sdicf-get-filename sdic))
                          (list pattern (sdicf-get-filename sdic))))
                 (goto-char (point-min))
                 (let (entries)
                   (while (not (eobp)) (sdicf-search-internal))
                   (nreverse entries))))))

     (defadvice sdic-forward-item (after sdic-forward-item-always-top activate)
       (recenter 0))
     (defadvice sdic-backward-item (after sdic-backward-item-always-top activate)
       (recenter 0))))
(setq sdic-default-coding-system 'utf-8-unix)


参考

ubuntu設定メモ

サクラのVPSで容量を100GBに変更するため,契約をやり直す.
とりあえずubuntu13.10を入れた,その設定メモ.

とりあえずアップグレード

sudo apt-get update
sudo apt-get upgrade


zshに変更

sudo apt-get install zsh
scp yambi.jp:~/.zshrc .
chsh

zshを指定


emacs派なのでインストール

sudo apt-get install emacs24


apache設定

sudo a2enmod cgi
sudo a2enmod include
sudo service apache2 restart

メール設定


LaTeX

sudo apt-get install texlive-lang-cjk texlive-science texlive-fonts-recommended latexmk

Java (c.f. http://d.hatena.ne.jp/Kazuhira/20120429/1335684623 )

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java7-installer


Dropbox導入

sudo apt-get install nautilus-dropbox
dropbox start


プログラムいろいろ

sudo apt-get install g++ gnuplot ghc
sudo apt-get install ispell

Javaでクリック連打

Linuxでクリック連打をしたかったが,いいのがみつからなかったので作った.

JavaのRobotを使うと簡単につくれる.

以下のClick.javaを実行して,1秒間マウスカーソルを動かさなければ,
次にマウスカーソルを動かすまでクリックを連打する.

import java.awt.MouseInfo;
import java.awt.PointerInfo;
import java.awt.Robot;
import java.awt.event.InputEvent;
public class Click {
    public static void main(String[] args) {
        try{
            Robot r = new Robot();
            r.setAutoDelay(10);
            int x=Integer.MAX_VALUE;
            int y=Integer.MAX_VALUE;
            while(true){
                PointerInfo pi = MouseInfo.getPointerInfo();
                int nx = pi.getLocation().x;
                int ny = pi.getLocation().y;
                if(x==nx&&y==ny)break;
                x=nx;
                y=ny;
                Thread.sleep(1000);
            }
            while(true){
                r.mousePress(InputEvent.BUTTON1_MASK);
                r.mouseRelease(InputEvent.BUTTON1_MASK);
                PointerInfo pi = MouseInfo.getPointerInfo();
                int nx = pi.getLocation().x;
                int ny = pi.getLocation().y;
                if(x!=nx||y!=ny)break;
                Thread.sleep(10);
            }
        }
        catch(Exception e){
            e.printStackTrace();
        }
    }
}

gnuplotの出力をマージンを調整してpdfに変換する

メモ

#!/usr/bin/zsh
for i in $*
do
eps2eps $i temp.eps
epstopdf temp.eps -outfile=$i:r.pdf
rm temp.eps
done

inkscapeのjessyinkでexportできない問題

Jessyinkのexportがうまくできなくなっている問題の解決法メモ.

環境は
Ubuntu 12.4, Inkscape 0.48.3.1
Jessyink 1.5.5
Firefox 21.0

/usr/share/inkscape/extensions/jessyInk.jsの1421行目付近.
Serialize the new documentからwindow.location...までをコメントアウトして,

var serializer = new XMLSerializer();
var xml = serializer.serializeToString(newDoc);
window.location = 'data:application/svg+xml;base64;charset=utf-8,' + window.btoa(unescape(encodeURIComponent(xml)));

と書き換え.

これで上手く動くようになった.


参考.
https://code.google.com/p/jessyink/wiki/Export

中国からインターネット接続

中国からのインターネット接続では,wikipedia:金盾による検閲のため,
開けないページがたくさんあったり(twitter, facebookなど),
画像だけ読み込めない(なぜかアフェリエイトの画像だけ読み込めることが多い)ので
その対処法メモ


socks proxyを利用したので,自前のサーバーが必要

サーバ側の設定

sshの22番ポートなど使えないポートがたくさんあるため,
httpsの443ポートをsshに使うように変更した.


まずは,apachehttpsを使わないように変更.
/etc/apache2/ports.confのmod_ssl.cとmod_gnutls.cをコメントアウト

sudo apache2ctl restart


次に,sshのポートを変更.
/etc/ssh/sshd_configのPortを443へ書き換え.

sudo service ssh restart

ローカルの設定

firefoxの場合

編集>設定>詳細>接続設定

に行き,

手動でプロキシを設定する
Socksホスト:localhost
ポート:1080

に設定.

さらに,
ロケーションバーにabout:configと打ち込んで
network.proxy.socks_remote_dnsの値をtrueに設定.


あとは,自分のサーバーに

ssh -p 443 -D 1080 user@hostname

で接続すれば自由の世界へ脱出できる.



数分で接続が切れるが根気よくつなぎ直せばとりあえずOK.

iPad設定メモ

第3世代iPadを買いました

wifiのみの16GB
VGAケーブルとケースをつけて49760円
ヨドバシで買ったらやたら保証をすすめてきて面倒だった.


自宅の無線ネットワークがmacアドレスでフィルタリングしていて,
起動するためにはwifi接続かiTunesがないとだめというのが面倒.
わざわざwindowsマシンを起動してiTunesを更新することが必要だった.


次に,appleアカウントを作成.
と思ったらすでに作っていたみたい.
パスワードが分からなかったのでリセットした.


メールアドレス記入欄でキーボードが自動で英語入力モードにならずにイライラ
設定->一般->キーボードからデフォルトを英語に変更

  • Googleのアカウントと提携
    • 設定からメール/連絡先/カレンダーでグーグルアカウントを追加.カレンダーとメモを同期する
      • なぜかMicrosoft Exchangeから登録しないとカレンダーを複数同期できなかった
      • サーバにはm.google.comを書く
    • Gmailアプリを導入
    • m.google.com/syncにアクセスし,カレンダーの同期を許可
  • 充電されない
    • 5V 2Aが必要らしい.なので通常の5V 1Aのものではできない…
  • アプリの切り替え
    • 指四本でスワイプ,またはホームボタンをダブルクリック