kenkovlog

Haskell, Python, Vim, ...

Perl入学式 #1

Perl入学式 #1 : ATND に参加しました。

前半

前半ではPerlbrew のインストールをしました。
インストールには Perlbrew を参考にインストールします。

  $ curl -kL http://install.perlbrew.pl | bash

インストールすると ~/perl5/perlbrew にインストールされます。
あとは.zshrc などに

  source ~/perl5/perlbrew/etc/bashrc

を追加します。

インストールされているperl を検索するには

  $ perlbrew list

現在インストールできるperl を表示するには

  $ perlbrew available

新しいversion のperl をインストールするには

  $ perlbrew install perl-5.14.2

perl のバージョンを切り変えるには

  $ perlbrew switch perl-5.14.2

を実行しましょう。


perlbrew をインストールした後には、簡単なhello, world スクリプトを書きました。

  # 推奨されるuse しておくもの
  use warnings;
  use strict;
  use utf8;

  # print する
  print "hello, world!";

余った時間

@papix さんによるYAPC::Asia の話
YAPC::Asia の特徴

  • 受付嬢がすごい
  • 懇親会がすごい
  • スポンサーがすごい
  • 参加者がすごい
  • LT がすごい
  • 言うまでもなくトークもすごい

そのあとはYAPC::Asia の動画を鑑賞。

次回は Perl入学式 #2 : ATND

Xmonadでデュアルディスプレイ

Xmonadデュアルディスプレイに関する設定をしたので、
その時のメモ

Xmonadデュアルディスプレイについて

XMonadデュアルディスプレイは、一つのディスプレイに
一つのワークスペースを分り振るものであって、
一つのワークスペースをディスプレイ二つ分に拡張するものではありません。
このあたりは、前に使っていたXFCEとは異なることだったため、勘違いしていました。

設定について

設定ですが
XMonadデュアルディスプレイを使うために次を設定しました。

-- ~/.xmonad/xmonad.hs

import XMonad
import XMonad.Hooks.DynamicLog
import XMonad.Hooks.ManageDocks
import XMonad.Util.Run(spawnPipe)
import XMonad.Util.EZConfig(additionalKeys, additionalKeysP)
import System.IO

-- 次を新しくインポートした
import qualified XMonad.StackSet as W

myManageHook = composeAll
             -- floatさせるアプリケーション
             [ className =? "Gimp" --> doFloat,
               -- 次はtildaでなくTildaにしないといけない
               className =? "Tilda" --> doFloat
             ]

main = do
    -- .xmobarrcの設定
    xmproc <- spawnPipe "/usr/bin/xmobar ~/.xmobarrc"
    xmonad $ defaultConfig {
          -- terminalにはxfceのterminalを使う
          terminal    = "terminal",
          manageHook = manageDocks <+> myManageHook
                       <+> manageHook defaultConfig,
          layoutHook = avoidStruts  $  layoutHook defaultConfig,
          logHook = dynamicLogWithPP xmobarPP {
                      ppOutput = hPutStrLn xmproc,
                      ppTitle = xmobarColor "green" "" . shorten 50
                    }
          -- , modMask = modmask
       } `additionalKeysP`
       myKeys

-- ここでデュアルディスプレイに関する設定をした
-- 具体的には、
-- M-S-rを押すことで
-- ディスプレイ0にワークスペース1を出力し
-- ディスプレイ1にワークスペース8を出力
-- するようにしました。
-- 作業していくなかで、どのディスプレイにどのワークスペース
-- が割り振られているか分からなくなるときがあるので、
-- そのときにこれを使うと便利です
myKeys =
  [("M-S-r", do
    screenWorkspace 0 >>= flip whenJust (windows.W.view)
    (windows . W.greedyView) "1"
    screenWorkspace 1 >>= flip whenJust (windows.W.view)
    (windows . W.greedyView) "8")]

skk.vim

skk.vimを入れました。

インストールするもの

インストール方法

SKKの辞書をインストールするには、各OSのパッケージマネージャを使う方法と、
http://openlab.jp/skk/wiki/wiki.cgi?page=SKK%BC%AD%BD%F1
からインストールする方法があります。
僕の場合は、AURからskk-jisyo
https://aur.archlinux.org/packages.php?ID=33713
を入れました。

skk.vimは、
http://www.vim.org/scripts/script.php?script_id=3118
から取ってきて、ドキュメントに従ってインストールします。

SKKの辞書について

skkには、個人用辞書と全体で共有して使用する共有辞書があります。
詳しくは http://www.bookshelf.jp/texi/skk/skk_5.html#SEC102 を見てください。
個人用辞書の設定は

skk_jisyo="path/to/personal/jisyo"

共有辞書の設定は

skk_large_jisyo="path/to/large/jisyo"

とすればよいです。

sticky keyの設定

sticky keyもデフォルトで設定できて

" sticky keyを「;」に設定する
let g:skk_sticky_key=';'

とすれば出来ます。

screenはじめました

screenを使い始めました。

設定ファイルは次のようになりました。

# screen setting file ~/.screenrc
 
# set encoding
defencoding utf-8
# set escape character
escape ^x^x
# use 256 colors
term screen-256color
# set start message off
startup_message off
# hardstatus setting
hardstatus alwayslastline "%{=b kG} %-Lw%40L>%{b bg} %n %t %{-}%+Lw%-030=%{b km} %{.b} %Y/%m/%d %C:%s %A "
caption setting
caption always "%{=b wk} screen (%n: %t)"

次が設定ファイルを参考にしたサイトです。
設定ファイルの書き方がとても詳しく書かれています。
http://blog.remora.cx/2010/02/gnu-screen-2.html
http://www.ayu.ics.keio.ac.jp/~mukai/tips/screen.html

操作方法については、次のサイトが入門にはとてもよかったです。
http://www.dekaino.net/screen/

ディレクトリパーミッション

今日はディレクトリパーミッションについて勉強しましたので、そのメモを。

Linuxを使っていると、パーミッションは基本的な概念です。
が、ディレクトリのパーミッションについてよく分かっていませんでした。

ディレクトリのパーミッションにもrwxがある訳ですが、

r ... ディレクトリのファイルを読める
w ... ディレクトリにファイルを作成できる。
      もしくは、ディレクトリのファイルを編集、削除できる。
x ... ディレクトリに入れる。(cdで)

ということを表しています。

例えば、ファイルをオーナー以外のユーザから削除出来ないようにしたいとしましょう。
状況としては

testdir
 |--test.txt rwxr-xr-x

で、test.txtをオーナー以外のユーザが削除出来ないようにしたいと思います。
このとき、testdirのパーミッションとして適切なものはどうなるでしょうか。

解答はたくさんありますが、仮に
testdir rwxrwxrwx
というパーミッションにしたとしましょう。
このとき、test.txtはファイルのパーミッションがrwxr-xr-x
となっていますが、オーナ以外のユーザも削除できます。
というのは、そのファイルをふくんでいるディレクトリのパーミッション
rwxrwxrwxになっているからです。

ファイルを削除禁止にしたい場合は、そのファイルのパーミッション
変更してもダメで、ファイルを含んでいるディレクトリのパーミッション
変更しなければなりません。

このあたりの事は次のページが詳しいです。
http://www26.atwiki.jp/funa_tk/pages/19.html