Home > Latest topics

Latest topics 近況報告

たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。

萌えるふぉくす子さんだば子本制作プロジェクトの動向はもえじら組ブログで。

宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能! シス管系女子って何!? - 「シス管系女子」特設サイト

Page 35/248: « 31 32 33 34 35 36 37 38 39 »

イスのキャスターが壊れた→キャスターだけ買って交換した - Jun 15, 2010

(2014年9月12日追記。「IKEA イス キャスター」あたりのキーワードで検索するとこのエントリが検索結果に出てくるようですが、最初に言っておくと、このエントリで紹介しているのは「IKEA船橋店の隣にあるホームセンターで買った、IKEA製でない別のメーカーのイスに使えたキャスター」です。IKEA製のイスに使えるキャスターの紹介記事ではありませんので、ご注意下さい。)

ずっと前にIKEAの隣で買った椅子を、運ぶ時に焦って転んで壊してしまった。5個あるキャスターのうち1個がベッキリ割れてしまって、接着剤で無理矢理くっつけてもみたけど、体重をかけたらあっさりはがれてしまった。

イスごと買い換えるしかないのかなーもったいないなーと思いながら代替品を探していたら、全く同型のイス(KOEKI メッシュバックチェア K-906L)が6000円で売られてて、これだったら買い換えてもイイかも……と思ったけどもうちょっと探してみたら今度はキャスター単品でも売られてる事が分かった。

Amazonで他の商品も見てみた感じでは、OAチェア用のキャスターだけ単品で売られてるケースではだいたい「ネジ」と「細いスチール棒」と「太いスチール棒」の3種類くらいがあるみたいで、型が合うものなら他社製品でも使える場合があるようだ。サンワサプライのOAチェア用キャスターのレビューにはまさにそういう事例が書かれてた。

で、買っても1500円程度だし駄目で元々だと思って注文してみたら、まさにピッタリだった。よかったよかった。椅子が壊れてた間別の物を代わりに使ってたんだけど、尻が痛くて開発意欲90%減くらいでシャレになってなかったんだよね。

しかしこのイス、他にもカラーバリエーションがあるとは知らなかった。店頭にあったのが青い奴だけだったから、そういう物かと思ってた。黒いのに買い換えてもよかったかもなー。


……2014年9月12日追記。このエントリを見て、IKEAのイスに取り付けようとしてサンワサプライのキャスターを買われた方が、「IKEAのイスに使えない物をIKEAのイスに使えると嘘をついて紹介している(大意)」と憤慨されて、騙されるなよという注意喚起のつもりと思われるコメントを付けておいでなのですが……本文をちゃんと読んで下さい、IKEAのイスじゃなくてIKEAの隣の別店舗で買ったイスですよ。っていうかイスそのものの商品ページ(Amazon)にもリンクしてます。

Amazon等で買える単品のOAチェア用キャスターがIKEAのイスにも使えるかどうかは、僕は把握していませんでしたが、そのコメントを見る限りでは使えないようですね。IKEAは北欧のメーカーだから、規格が違うとしても致し方なしかなあと思いますが(そもそも規格があるのかどうかすらも知りません……)。

タブバーの位置を変える方法(How to change the position of the tab bar easily?) - Jun 15, 2010

Q

It is nice if I can switch between tabs on the top and side. I know you can drag it but if the top gets filled up, then its hard to drag it. Then I have to open the prefs to move it. Be nice if it was easier to move the tab bar to different sides quickly.

タブバーの位置を上と左(または右)の間で簡単に切り替えられると便利だと思います。タブバーをドラッグすれば場所を移動できるのは知っていますが、タブバーが上にありタブが沢山開かれていて余白がない場合、タブバーをドラッグするのは難しいです。そういう時は仕方がないので設定ダイアログを使うほかありません。タブバーを異なる位置に簡単に移動できる方法があるといいのですが……

A

I have no plan about (re-)adding the feature to the Tree Style Tab. I think an answer for another question possibly help you: A new option to switch the position of the tab bar by the number of tabs.

By the way, you can start to drag the tab bar without blank spaces in the tab bar. Try to drag something in the tab bar not a tab. (ex. "New Tab" button, "<" button, ">" button, or "List All Tabs" button)

その機能を(再び)ツリー型タブに加える予定はありません。ただ、他の質問に対する回答があなたにとって何らかの助けになるかもしれません。タブバーの縦置き・横置きをタブの数に応じて自動で切り替えたいを参照して下さい。

それはさておき、タブバーのドラッグ&ドロップは、タブバーに余白が無くても行う事ができます。タブバーの中のタブ以外の任意の位置(例えば「新しいタブ」ボタン、スクロールボタン、「タブの一覧」ボタンなど)をドラッグしてみて下さい。

新しいタブを開く時にタブバーの下の端以外の位置に開きたい(How to open new tab not on the bottom of the tab bar?) - Jun 15, 2010

Q

If I open a new tab they always open on bottom. I have alway many tabs open and I need to scroll always down to see new tab. That's for me not very comfortable. Is possible that new tab open on top?

新しいタブを開く時、タブは常にタブバーの一番下に開かれます。私はいつも非常に多くのタブを開いているため、開いた新しいタブを見るためにはいつも一番下までタブバーをスクロールしないといけません。これは非常に面倒です。新しいタブをタブバーの上の端に開く方法はありませんか?

A

Now TST doesn't provide such a feature to control new tab position. I think TST should not implement features not related to "tree of tabs", but it should be done by another addon designed for the purpose, for example, Tab Control does it.

現在、ツリー型タブはそのための機能を提供していません。私は、「タブのツリー」とは関係ない機能はツリー型タブには含めず、そういう目的のために開発された他のアドオンで解決するべきと考えています。例えばTab Controlがそういう機能を持っています。

さくらのレンタルサーバでvimとbashとscreen - Jun 09, 2010

さくらのレンタルサーバ(スタンダードプラン)は初期状態ではこんな風になってた。

  • シェルはcsh
  • viは多分普通のvi(vimではなく)

Ubuntuのコンソールとの違いに戸惑う事が多くなりそうだったので、人に教えてもらって、以下のように設定してみる事にした。

  • ログインしたらシェルはbashになるように。
  • viと打ったらvimが起動するように。
  • gnomeターミナルみたいに複数のセッションを切り替えられるように。(GNU Screen)

シェルをbashに

トレンドはzshらしいけどよくわからんからbashで。

ここにある通りやったらできた。

  1. chsh -s /usr/local/bin/bash でパスワード入力を求められるのでパスワードを入れる。
  2. vi ~/.bash_profile でログイン後に実行される初期設定を編集する。内容はとりあえず以下。
    if [ -f ~/.bashrc ]; then
      source ~/.bashrc
    fi

これで、bash起動と同時に ~/.bashrc が読まれるようになる。~/.bashrc はこの段階ではまだ空。

vimのインストール

ここの指示通りにやったらできた。

  1. ソースをダウンロードする。
  2. 展開する。
    • tar jxvf vim-7.0.tar.bz2
    • tar zxvf vim-7.0-extra.tar.gz
    • tar zxvf vim-7.0-lang.tar.gz
  3. vim70というディレクトリの中にすべてのソースが展開されているので、その中に入って作業する。 cd vim70
  4. パッチを当てる。
    1. mkdir patches
    2. cd patches
    3. ftp://ftp.vim.org/pub/vim/patches/7.0/を見て一番新しいパッチの番号を調べる。僕がやった時は243だった。
    4. curl -O 'ftp://ftp.vim.org/pub/vim/patches/7.0/7.0.[001-さっき調べた最後のパッチの番号]' ですべてのパッチをダウンロードする。
    5. cd ..
    6. cat patches/7.0.* | patch -p0 ですべてのパッチを当てる。
  5. configureしてmakeしてinstallする。
    1. ./configure --enable-multibyte --enable-xim --enable-fontset --with-features=big --prefix=~/opt/vim インストール先としてhome以下を指定すること。僕は特に意味もなくopt以下にしてますが。
    2. make && make install
  6. 文字エンコーディングを自動認識するための設定を ~/.vimrc に書き加える。

これで、 ~/opt/vim/bin/vim でvimを起動できるようになった。

screenのインストール

UbuntuでGnome使ってるとGnomeのターミナルで新しいタブを開いて並行して作業するということができるけど、「sshで入った先」ではタブを開けない。タブを開くと、手元のマシンの方の新しいセッションになってしまう。

「sshで入った先」でもそういう事ができるようにしとくと便利だよと言われたので、GNU Screenという物を入れてみた。sshでログインする先のマシンにこれが入っていれば、ログイン先で「タブを開く」みたいな事ができるようになる。でもさくらのレンタルサーバのFreeBSDには入ってなかったので、これも自分で入れないといけない。

ここの指示通りにやったらできた(同じとこばっか参照してる)。

  1. ソースをダウンロードする。 wget ftp://ftp.uni-erlangen.de/pub/utilities/screen/screen-4.0.3.tar.gz
  2. 展開する。 tar xzf screen-4.0.3.tar.gz
  3. screen-4.0.3というディレクトリができるので、その中に入って作業する。 cd screen-4.0.3
  4. configureしてmakeしてinstallする。
    1. ./configure --prefix=~/opt/screen インストール先としてhome以下を指定すること。
    2. make && make install

これで、 ~/opt/screen/bin/screen でscreenを起動できるようになった。

設定まとめ

~/.bash_profile はこうなった。後半部分は、ログインしたら勝手にscreenを起動するようにするための物。

if [ -f ~/.bashrc ]; then
  source ~/.bashrc
fi

if [ $TERM != "screen" ]; then
 exec screen -S main -xRR
fi

~/.bashrc はこうなった。

export LANG=ja_JP.UTF-8 # 日本語で。

PATH=$PATH:~/opt/vim/bin # vimにパスを通す。
PATH=$PATH:~/opt/screen/bin # screenにパスを通す。
export PATH

alias vi='vim' # viと打ったらvimを起動する。

~/.screenrc はこうなった。教えてくれた人の言われるままにコピペしただけ。画面の一番下の行を使って、今どのプロセスを見てるのかを常時表示するようにしてある。(これがないと今自分で何をやってるのかさっぱり分からない)

defencoding utf8
hardstatus alwayslastline "[%02c] %`%-w%{=b bw}%n %t%{-}%+w"
  • Gnome端末で言う所の「新しいタブを開く」:Ctrl-A→c
  • Gnome端末で言う所の「タブを閉じる」:exit
  • Gnome端末で言う所の「右のタブへ移動」:Ctrl-A→n
  • Gnome端末で言う所の「左のタブへ移動」:Ctrl-A→p
  • screenから一時的に抜ける:Ctrl-A→d

使いこなせてるとはとても言いがたいけど、とりあえずここから始めようという感じです。

Cygwin……

CygwinのOpenSSHから接続してると、なんかscreenが変なことになった。PuTTYで接続した場合は何ともない。これ、Cygwinが悪いのか誰が悪いのか……とりあえずWindowsからやる時はPuTTYの方を使う事にしようと思います。

追記。GnomeのターミナルからやったらCygwinの時みたいに変な事にはなってない……みたい。やっぱりCygwinが悪いのかなー。

「xpcnativewrappers=no」の廃止 - Jun 09, 2010

レガシーな仕組みが1つ廃止されたようだ。

XPCNativeWrapperについては過去に行った拡張機能のセキュリティに関するプレゼンの中でも紹介した。現在も既に、chrome権限があるコードからWebページの内容に触る時は基本的には必ずXPCNativeWrapperを介してアクセスしないといけないようになってるんだけど、そういう仕組みがまだ入ってなかった頃の書き方でも拡張機能を書けるように、敢えてこの仕組みをOFFにするための機能があった。それがchrome.manifestでのxpcnativewrappers=no指定。今回上記のbugで投入されたパッチによって、この指定がそもそも機能しないようになった。

XPCNativeWrapper越しでなく生のJavaScriptのオブジェクトにアクセスする方法としては、xpcnativewrappers=no以外にもう1つ、任意のオブジェクトの.wrappedJSObjectというプロパティを見る方法がある。今回投入されたパッチではこの機能までは削除されていないように見えるので、今までxpcnativewrappers=noを使っていた人は、Webページ内のJavaScriptのオブジェクトにアクセスしてた箇所では.wrappedJSObjectを書き加えるようにすれば一応は動くようになるんじゃないかと思う。セキュリティ的には、そもそもラップされてない生のJSObjectに触らなきゃいけないという設計自体を変えた方がいいんだけど。だいたい、XPCNativeWrapperが入ったのってFirefox 1.5がリリースされるよりも前の話だよ。今なおXPCNativeWrapperの存在を前提にしてないコードって、どんだけ古いのさ?

コマンドラインでのリモート操作に慣れてきた - Jun 08, 2010

右も左も分からないままああだこうだやってるうちに、ちょっとずつだけど、コマンドラインからリモートであれこれ操作する事に慣れてきた気がする。

  • 操作が効かなくなったらとりあえず Ctrl+C で強制終了する。Ctrl+Z も試してみる。
    • それでも駄目なら(別セッションで) ps aux | grep 反応しなくなったプロセスの名前 でプロセスのIDを調べて kill 調べたプロセスID でプロセスを強制終了させる。
  • ファイルの中身をとりあえず見たい時は less ファイルのパス で見れて、q で終了できる。
  • ファイルの中身を編集したい時は vi ファイルのパス でエディタ起動して、i を1回押してから必要な所を書き換えて ESC:wqEnter で上書き保存&終了できる。
  • 向こうで何かサーバを立ち上げててその動作を確認したいという時は、 ssh -L こっちの入り口のポート番号:向こう側のホスト名またはIPアドレス:向こう側の出口のポート番号 ユーザ名@sshで接続するホスト名またはIPアドレス でこっちと向こうを繋げられる(sshポートフォワード、あるいはトンネル)。リモートでApacheを立ち上げてて、手元で動いてるFirefoxで表示確認をしたい時は、ssh -L 8080:localhost:80 piro@host という風にすれば、手元のFirefoxで http://localhost:8080/ とやればリモートのApacheにアクセスできる。

とかそういうのが分かって、いざというときもとりあえずどうにかできるという気がしてきたから。

でもbashとかirbとかtelnetとか、終了する時のコマンドがquitだったりexitだったりと統一されてないのはまだ戸惑う。

こうやって書き出してみるとスゲー陳腐だ。10年以上前に月刊ASCIIの付録CD-ROMでTurbo Linuxを起動してみようという記事に添えられてた、自分にとってはまるでチンプンカンプンだった「基本コマンド集」みたいな。あの頃は「こんなん見てもわかんねーよ」と思ってたのに、いざ自分が「こっち側」に来てしまうとその時の「駄目なお手本」をそのまま繰り返す事しかできていないという事が、どうしようもなく悲しい。

CygwinのホームディレクトリをWindowsのホームディレクトリにする - Jun 08, 2010

Windows Vista以降では C:\Users\ユーザ名 が、Windows XPでは C:\Documents and Settings\ユーザ名 がホームなんだけど、Cygwinをインストールした時に作られるショートカットから起動したbashでは、ホームが別の位置になってる。Cygwinインストール先のCygwin.batを編集すると、この問題を解消できるようだ。

@echo off

C:
chdir C:\cygwin\bin
set HOME=C:\Users\%USERNAME%
bash --login -i

うちの環境だとこんなん(C:\cygwin以下にCygwinが入ってる)。%USERNAME%と書いておけば現在のユーザのホームディレクトリが勝手に選ばれる。

さくらのレンタルサーバで定期的なバックアップの作成 - Jun 08, 2010

以前やった事の復習で。以下のようなスクリプトを ~/backup.sh として作成した。

#!/bin/sh

BACKUP_DAYS=14
destparentdir=~/backup

# BACKUP_DAYSより古いバックアップは自動消去
find $destparentdir/ -ctime +$BACKUP_DAYS -type d -maxdepth 1 -print0 | xargs -0 rm -r -f

destdir=$destparentdir/`date +%Y-%m-%d_%H-%M-%S`
mkdir $destdir
# vオプションは、試しに実行する時用。
tar cjvf $destdir/www.tar.bz2 ~/www
tar cjvf $destdir/scripts.tar.bz2 ~/*.sh
crontab -l > $destdir/crontab

で、crontabによって定期的に実行するように設定するわけなんだけど、さくらのレンタルサーバの場合サーバコントロールパネルにcron管理用のインターフェースがあって、5個までならここから管理できるみたい。というわけで時々実行するように設定しておいた。

同じ所に置いとくんじゃバックアップとして意味が薄いので、できればそのうちローカルにscpでダウンロードするとかそういう風にしてみたい。

レンタルサーバ借りて何年目かにしてやっとここまで辿り着いたよ!(今までなんもやってなかったという事があり得ないですねハイ)

さくらのレンタルサーバ スタンダードプランでrep2 - Jun 08, 2010

いくつか前例はあるようだ。

僕の契約はスタンダードプランなんだけど、複数ユーザでFreeBSD 7のサーバを共用してる状態で、管理者権限は無い。クライアントはUbuntu 10.04。という前提で。

sshの準備

何はともあれ、まずはリモート操作のための準備を整える。

ssh ユーザ名@ドメイン名

これでsshでログインできるんだけど、いちいちパスワードを訊かれてしまう。なのでsshの公開鍵を置いておくことにした。

  1. 1回、上記の要領でSSHでログインする。
  2. mkdir .ssh
  3. chmod 700 .ssh
  4. vi .ssh/authorized_keys
  5. ローカルにある公開鍵(~/.ssh/id_rsa.pubなど)の内容を貼り付けて、ファイルを保存する。
  6. chmod 600 .ssh/authorized_keys
  7. exit

再度上記の要領でsshでログインを試みると、今度はパスワードを訊かれなくなる。scpも。

rep2設置

  1. p2拡張機能パックの「依存ライブラリ込み」のファイル一式をダウンロードする。今回は rep2ex-100227-0215.7z を使った。
  2. ファイルを展開する。
  3. cd rep2ex-100227-0215-with-deps
  4. tar zcvf rep2.tar.gz rep2 で再圧縮する。
  5. scp ~/rep2.tar.gz ユーザ名@ドメイン名:~/ でサーバに送る。
  6. ssh ユーザ名@ドメイン名:~/ でサーバに入る。
  7. mkdir ~/p2data でWebから見えない位置にデータディレクトリを用意する。
  8. tar zxvf rep2.tar.gz で展開する。
  9. mv rep2 www/ でWebから見える位置に移動。
  10. パーミッションを設定する。
    1. chmod 705 www/rep2
    2. cd www/rep2
    3. find . -name "*.php" -type f -print | xargs chmod 705
  11. vi conf/conf_admin.inc.php で初期設定を変更する。
    • $_conf['data_dir']などで指定しているデータディレクトリの位置を、先程作ったデータディレクトリへのパスに書き換える。 ~/p2data/ にデータディレクトリがあってrep2のindex.phpが ~/www/rep2/index.php にあるという位置関係なら、値は "../../p2data/" になる。
    • どこからでもアクセスを受け付けるようにするなら、 $_conf['secure']['auth_host'] の値を 0 にする。
  12. http://ドメイン名/rep2/index.php にアクセスしてみる。

上記の参考エントリではこれだけでいけるという風に書いてあるんだけど、僕の場合はPHPのエラーで動かなかった。magic_quotes_gpcをOffにしろとかなんとか。

さくらのレンタルサーバのサーバコントロールパネルを見てみると「PHP設定の編集」というのがあったので、ここを見てみたところ、デフォルトの設定に対して必要な設定項目だけ上書き指定できるようだったので、magic_quotes_gpc = Off と記入して保存した。その後再度rep2のページにアクセスしてみた所、今度はちゃんとユーザ登録用のフォームが表示された。

ローカルのrep2のログを引き継ぐ

実はローカルで今までrep2を動かしてたので、そのログや「お気にスレ」などのデータを引き継ぎたかった。ローカルのデータは ~/public_html/rep2/data/ に置いてた、という前提で。

  1. exit (sshでサーバに入ったままなのであれば)
  2. cd ~/public_html/rep2
  3. tar zcvf data.tar.gz data で圧縮する。
  4. scp ~/data.tar.gz ユーザ名@ドメイン名:~/ でサーバに送る。
  5. ssh ユーザ名@ドメイン名:~/ でサーバに入る。
  6. tar zxvf data.tar.gz で展開する。
  7. rm -r p2data
  8. mv data p2data
  9. rm p2data/p2_auth_user.php で古い認証ユーザの設定を削除する。
  10. http://ドメイン名/rep2/index.php にアクセスしてみる。

今まで見てたスレの過去ログが見えるようになっていれば成功。

余談

今回の事で、さくらのレンタルサーバにsshで入る方法を習得した。もう少し色々試したら、定期的にサーバにある内容をまとめて圧縮してバックアップということもできるようになれるかな。なれるといいな。

Page 35/248: « 31 32 33 34 35 36 37 38 39 »

Powered by blosxom 2.0 + starter kit
Home

カテゴリ一覧

過去の記事

1999.2~2005.8

最近のコメント

最近のつぶやき