2012年8月17日金曜日

usr権限でmake

たとえば, fugaをコンパイルして, ルート権限なしにユーザ権限で使う場合は

./configure --prefix /home/hoge/local/fuga
make
make install prefix=/home/hoge/local/fuga


とする. prefixをセットすることがポイント. アンインストールは/home/hoge/local/fugaを削除すればよい. configureが通らないなどがあるということは, どこかでroot権限を使っているという事. そういうソフトをつかうのはrootになれない環境ではそもそも利用できないのが自然だろう.

2012年6月27日水曜日

gnuplotのソース

gnuplotは2次元, 3次元のグラフを書いてくれるソフト. いくつかの具体例で, 適当にいじって遊んでみる. 実際に入力するのは, gnuplot> の後の部分だけ. ソースが絡まっているのは, あまり気にしない方向で使っている. これくらいの計算なら, 殆どのPCで困ることではない(OSが動かないと致命的ではあるが)

方向微分はできるけど、実は連続ですらない例


gnuplot> set xrange [-1:1] 
gnuplot> set yrange [-1:1]
gnuplot> splot (x**2*y)/(x**4+y**2)
gnuplot> set xrange [-0.5:0.5]
gnuplot> replot
gnuplot> set xrange [-0.1:0.1]
gnuplot> replot
gnuplot> set isosample 40
gnuplot> replot
gnuplot> set pm3d
gnuplot> replot
gnuplot> set yrange [-0.1:0.1]
gnuplot> replot
gnuplot> set contour
gnuplot> replot


等高線を書いて, 制約条件付き最大、最小問題を考えてみる


gnuplot> splot x**2+2*x*y+3*y**2
gnuplot> set contour base
gnuplot> replot
gnuplot> set xrange [-2:2]
gnuplot> set yrange [-2:2]
gnuplot> replot
gnuplot> set cntrparam levels incremental 0, 2, 30
gnuplot> replot
gnuplot> unset surface
gnuplot> replot



コンピュータをむやみやたらに信じてはいけないよ


gnuplot> set xrange [0.01:0.1]
gnuplot> plot sin(pi/x)


各点収束と一様収束の違いはこんな感じ


gnuplot> set xrange [0:1]
gnuplot> set yrange [0:1]
gnuplot> plot x**1
gnuplot> plot x**2
gnuplot> plot x**3
gnuplot> plot x**4
gnuplot> plot x**5
gnuplot> plot x**6
gnuplot> plot x**10
gnuplot> plot x**15
gnuplot> plot x**20
gnuplot> plot x**40
gnuplot> plot x**50
gnuplot> plot x**100
gnuplot> plot x**150
gnuplot> plot x**300
gnuplot> plot x**500
gnuplot> plot x**1000
gnuplot> plot x**1, x**2, x**3, x**4, x**5
gnuplot> plot x**1, x**5, x**10, x**50, x**100
gnuplot> plot (x*(1-x))**1
gnuplot> set yrange [0:0.3]
gnuplot> plot (x*(1-x))**1
gnuplot> plot (x*(1-x))**2
gnuplot> plot (x*(1-x))**3
gnuplot> plot (x*(1-x))**4
gnuplot> plot (x*(1-x))**5
gnuplot> set yrange [0:0.001]
gnuplot> replot
gnuplot> plot (x*(1-x))**5
gnuplot> plot (x*(1-x))**6
gnuplot> plot (x*(1-x))**7
gnuplot> plot (x*(1-x))**8
gnuplot> plot (x*(1-x))**9
gnuplot> plot (x*(1-x))**10
gnuplot> set yrange [0:0.3]
gnuplot> plot (x*(1-x))**1, (x*(1-x))**2, (x*(1-x))**3, (x*(1-x))**4, (x*(1-x))**5


2012年5月7日月曜日

debianで動かなかったもののリスト

理由はわからないけど、とりあえず試してみてうまく行かなかったもののリスト


スリムテンキーボード USB2.0ハブ(2ポート)/Tabキー付き BSTKH07シリーズ squeezeとwheezyのデフォルトカーネルで試してみたがどちらもダメだった。xevでキーコードを確認しようとしたが、認識できていないところをみると、カーネルのレベルで認識できていない様子。カーネルの再構築とかすればいいのかもしれないが、そこでかかる時間とか調べる時間が面倒なのでやる気がおきない。

2012年4月26日木曜日

X121eにdebianをインストール

Thinkpad x121eにdebianをインストールした。詳しいことはいずれ書くことにするが、注意しなければいけない点だけ挙げておくことにする。たぶん、書いている暇がなくなってきてしまったので、とりあえずやったことだけ公開することにする。
  • 素の状態では、debian squeezeをインストールするのは無理だと思っていたほうがよい。 というのも、debian squeezeのデフォルトのカーネル 2.6.32では有線のイーサネットを認識できないからである。 逃げ道は二通り。一つは、諦めて、debian wheezyをインストールする。wheezyなら有線のnicは問題なく認識する。 もう一つは、(試していないが)usbの有線LANを使ってsqueezeをインストールする方法。 そのあとで、backportから、カーネル3.2.0をインストールすれば、本体のイーサネットも認識できるようになる。 ちなみになぜ気がついたかというと、パーティションを切るためにknoppixを動かしたら、イーサネットが動いていたから、 おそらくカーネル周りだろうと予想したら、やっぱりその通りだったという感じ。
  • wheezyではkdebaseがなくなっているので、squeezeで使ったパッケージのリストを使うと、少しだけコケる。kde-standardをインストールすれば、大抵のことは大丈夫。
  • wheezyではfontのパッケージがttf-なんちゃらからfonts-なんちゃらに変更されたらしい。ダミーパッケージで回避できるとはいえ、fonts-なんちゃらをインストールしたほうが無難。
  • きちんと確認はしなかったが、無線LANはnon-freeのrealtekとのこと。 わからなければ、

    $ lspci |grep wifi

    として、無線LANのドライバを調べれば良い。私の場合はfirmware-realtekをインストールしてうまくいった。
  • wheezyではgnome-terminalとplasmaに相性の問題があるようで, どうやら, あちこちでエラーしているらしい. 理由はあまりよくわかっていなさそうな気がする. 逃げ道は, 別のterminalソフトを使うか, 特殊なgeometry設定をしておくこと.
  • Nepomukが動かないみたいで, desktop検索ができない. Virtuosoプラグインが必要だとごねるが, 何をinstallすればよいのかわからないのでNepomukごと止めてしまう.

    (9月13日 追記)Nepomukを動かすには、virtuoso-minimalをインストールすれば良いことがわかった。下記の方法を使えばdesktop検索のNepomukを止めることができるので、止め方についても一応残しておく。ただし、kdeのシステム設定からやった方が簡単かもしれない。ちなみに情報源はここ

    $HOME/.kde/share/config/nepomukserverrc の中身を下記のようにいじっておく.

    [Basic Settings]
    Start Nepomuk=false

    もうひとつ, $HOME/.kde/share/config/kdedrc をいじって, 次を加えておく.

    [Module-nepomuksearchmodule]
    autoload=false


    こうすると、Nepomukは何も言わなくなる。
  • set upについて

    Windows 250GB
    Debian root 28GB
    Debian home 170GB
    swap 8GB

    くらいでパーティションをきる. 実のところ, 一番危険なところ. knoppixでやった. 失敗すると, windowsが起動しなくなるので, windowsのバックアップDVDを作っておくこと(昔々, バックアップDVDを作らないで, パーティションを壊して, たいへんな目にあった).

    rootとhomeをわけておくのは, いざというときのための保険みたいなもの. この設定で作ると, 基本パーティションと拡張パーティションの両方の知識がいるので, 少し難しい. rootとhomeをわけずに作るのもアリ(ただし, デスクトップでSSD, HDD運用する場合は, rootとhomeをわけた方がよい. SSDは書き込まない方が寿命がのびるため)
  • タッチパッドの無効化

    /usr/share/X11/xorg.conf.d/50-synaptics.conf に下記を追加

    Section "InputClass"
    Identifier "no need for accelerometers in X"
    MatchProduct "SynPS/2 Synaptics TouchPad"
    Option "Ignore" "on"
    EndSection

    Xを再起動(ログオフ&ログイン)するとタッチパッドが無効化される.
  • センターボタンのスクロールを有効にする

    /usr/share/X11/xorg.conf.d/20-thinkpad.conf に下記を追加

    Section "InputClass"
    Identifier "Trackpoint Wheel Emulation"
    MatchProduct "TPPS/2 IBM TrackPoint|DualPoint Stick|Synaptics Inc. Composite TouchPad / TrackPoint|ThinkPad USB Keyboard with TrackPoint|USB Trackpoint pointing device|Composite TouchPad / TrackPoint"
    MatchDevicePath "/dev/input/event*"
    Option "EmulateWheel" "true"
    Option "EmulateWheelButton" "2"
    Option "Emulate3Buttons" "false"
    Option "XAxisMapping" "6 7"
    Option "YAxisMapping" "4 5"
    EndSection

英語ではあるが、次のサイトがとても参考になった。
InstallingDebianOnThinkpadX121e(AMD)wheezy
Installing Debian GNU/Linux on a Thinkpad X121e

2012年4月5日木曜日

dot.emacsについて

.emacsにいれた設定のリスト

  • 特定のモードにあまり関係のない設定

    • 画面上下の端の外にスクロールしたときの移動量を1にする設定

      (setq scroll-step 1)

    • 選択されたリージョンを色付きにしてわかりやすくする設定

      (transient-mark-mode t)

    • ~付ファイルは一カ所にまとめる方法. 例えば、~/emacs_Backup/にfilename~で保存されるようにするには

      (defun make-backup-file-name (filename)
      (expand-file-name
      (concat "~/emacs_Backup/" (file-name-nondirectory filename) "~")
      (file-name-directory filename)))

    • 対応する括弧の強調

      (show-paren-mode t)

    • shift + カーソル で行きたいウィンドウに行ける

      (windmove-default-keybindings)

    • bufferのきりかえをラクにしたい

      (iswitchb-mode 1)

    • iswitchb で選択中の内容を表示

      (defadvice iswitchb-exhibit 
      (after
      iswitchb-exhibit-with-display-buffer
      activate)
      "選択している buffer を window に表示してみる。"
      (when (and
      (eq iswitchb-method iswitchb-default-method)
      iswitchb-matches)
      (select-window
      (get-buffer-window (cadr (buffer-list))))
      (let ((iswitchb-method 'samewindow))
      (iswitchb-visit-buffer
      (get-buffer (car iswitchb-matches))))
      (select-window (minibuffer-window))))

    • 最初のスタート画面のメッセージを消す

      (setq inhibit-startup-message t)

    • battery メータを表示

      (display-battery-mode t)

    • 桁番号を表示

      (column-number-mode t)

    • タイトルにはファイル名

      (setq frame-title-format (format "%%f" (system-name)))

    • いちいち消すのも面倒なので、内容が空っぽならファイルごと削除する

      (if (not (memq 'delete-file-if-no-contents after-save-hook))
      (setq after-save-hook
      (cons 'delete-file-if-no-contents after-save-hook)))
      (defun delete-file-if-no-contents ()
      (when (and
      (buffer-file-name (current-buffer))
      (string-match "\\.howm" (buffer-file-name (current-buffer)))
      (= (point-min) (point-max)))
      (delete-file
      (buffer-file-name (current-buffer)))))

    • モードラインに時間を表示する

      (setq display-time-string-forms
      '(month "/" day " " dayname " "
      24-hours ":" minutes " "
      (if mail " Mail" "") ))
      (display-time)

  • YaTeX mode
    • 「usepackageが必要かい?」なんて提案はしないでおくれ

      (defun YaTeX-package-auto-usepackage (macro type) nil)

    • yatexでAMS-LaTeXのコマンドを使い、AMS数式環境下でもmath-modeになる

      (setq YaTeX-use-LaTeX2e t)
      (setq YaTeX-use-AMS-LaTeX t)

    • Ubuntu/Debian で野鳥のキーバインドを変更したのは誰?(仕方がないという事情は知ってるけど)

      (setq YaTeX-inhibit-prefix-letter nil)

    • Ubuntu/Debian で野鳥のキーバインドを変更したのは誰?(仕方がないという事情は知ってるけど)

      (setq YaTeX-inhibit-prefix-letter nil)

  • skk mode

    • 句読点を変更する

      (setq skk-kutouten-type 'jp2)
      (setq skk-kuten-touten-alist
      '((jp . ("。" . "、"))
      (jp2 . (". " . ", "))
      (en . (". " . ", "))))


2012年2月24日金曜日

ffmpegのあれこれ

aacファイルをmp3に変換するには

ffmpeg -i hoge.aac -vn -ab 128 -f mp3 hoge.mp3

ここで, オプションは次のとおり
  • -i: 入力ファイル名
  • -vn: 音声のみ取り出す
  • -ab: オーディオビットレート(kb)
  • -ar: オーディオサンプリング周波数
  • -f: 変換先のフォーマット
jpgファイルからaviの動画ファイルを作るには

ffmpeg -r 1 -i test_%03d.jpg -vcodec mjpeg -sameq out.avi

%03dは連番ファイルの番号(03はファイルの連番の桁数). ファイルを連番にするには

declare -i num=1 for file in *.jpg do mv ${file} test_`printf %03d $num`.jpg num=${num}+1 done

とすればよい.

deborphan

deborphanで使っていないファイルとかが確認できるようす. ただし, 転んでも泣かない.

$ deborphan --guess-all

で孤立してしまっているソフトが探せる. 削除すると, 別の孤立したソフトが出てくる場合もあるので, 何度か調べる必要がある.

$ deborphan --find-config

で設定ファイルの残骸が見つかる.

$ sudo dpkg -P `deborphan --find-config`

でいらない設定ファイルが削除される.

2012年1月22日日曜日

rsyncを使ったバックアップ

HDDにユーザ領域をバックアップする方法として, rsyncを使う方法がある. HDDをext3でフォーマットして, ディレクトリの所有者を変更したのち,

rsync -auvz --delete /home/USER /media/disk/HOSTNAME/

とすればよい. これで, USERディレクトリとHOSTNAMEディレクトリが同期される. このときに, --deleteオプションをつけているため, 削除したファイルは同期によって削除される.

2012年1月21日土曜日

USBマスストレージメモリをext3でフォーマットする

USBメモリはfat32やntfsでフォーマットされていることが多いが, gitなどでロングネームファイルや大文字小文字を区別するファイルを管理したいときは, ext3でフォーマットしたい. 以下, USBメモリが/dev/sdbに接続されていると仮定する.

まず, メモリのパーティションを作成する.

sudo cfdisk /dev/sdb

を使えばよい. windowsと共用するときは,
fat32(LBA)とext3の二つのパーティションを作ればよいだろう.
なお, fat32のパーティションを作成するときは, 最初のパーティションに作ること. これは, windowsではusbメモリの最初のパーティションしか認識しないため. 以下, /dev/sdb2にext3のパーティションを作ったとする.


次に, ext3フォーマットする.

sudo mkfs.ext3 /dev/sdb2

とすればよい. -L label を加えれば, ボリュームラベルを付加できる.

このままだと, マウントしてもrootしか読み書きができない. /media/disk/にマウントしたとして

sudo mkdir /media/disk/hogehoge
sudo chown USERNAME.USERGROUP /media/disk/hogehoge

として, hogehogeディレクトリを作成し, 所有者をUSERNAME, グループをUSERGROUPにする. USERNAMEやUSERGROUPを一般ユーザの名前とグループにすれば, 一般ユーザでも読み書きできる.

2012年1月8日日曜日

ntfs HDD のマウント

ntfsのHDDをマウントするときは、ntfs-3gをインストールして

$ sudo ntfs-3g /dev/sdc1 /media/USB_HDD/


みたいにすればおけ.