携帯電話用キーボードのススメ〜Reudo RBK-110CII〜(+雑記)
この間の日曜日に、情報処理試験を受けて来ました。
去年に引き続きネットワークスペシャリストを受験。軽く採点してみた感じだと、午後2で落ちたかなぁという印象。問2を選択したんだけど、今までと毛色の違う運用メインの問題だった。
採点があまあまだったら受かるかもだけど、落ちたらまた来年頑張ろうと思います。
ところでこの日記、携帯用キーボードから書いてます。携帯用と言ってもPC用のものではなくて、携帯電話にさして使う用のキーボードなんです。Reudoという会社が出しているRBK-110CIIという製品で、auの携帯の一部機種で使えます。
この日記も昼間の打ち合わせまでのあいた時間を使って文章起こしました。
ちょっと打ちにくいキーとか文字とかあるけど、携帯のボタンでちまちま打つより大分楽ですね。
UMPCを持っているので、それを持ち歩いても良いんですが、意外と荷物になりますし、企業の建物の中にはPCを持ち込めない事が多いのも何かと不便です。
主にブログや日記のネタを書き貯めるために使っていますが、社内打ち合わせの議事録取りなどにも役立ちます。
「出先で文章を書く機会が多いけど重いPCなどは持ちたくない」って人にはおすすめできるかもです。ポメラがちょっと打ちにくくなった代わりに携帯メール等でも使える、位のイメージですね。「PCメールを携帯に転送してるけど、携帯からの返信は面倒。でも会社戻るタイミングがない」なんて時に長文メールを打つのがとても楽になります。
スマートフォン等であれば他にもっといっぱい選択肢があると思うので、携帯電話+外付けキーボードの構成も検討の価値アリかもです。
LPIC301受かった
先週土曜日にLPIC301受けて、何とか合格できた。
内容は難しかったけど、「LDAP」と「キャパシティプランニング」の二分野に絞られているおかげで、広く浅く覚える必要があまりなかったのは救いだった。
まるっと全部覚えようとせず、LPIの方で公開している各出題分野ごとの重みみたいなのを見ながら覚える深さを調整して勉強するのが吉かと思います。
Plone3.0でユーザ情報をActive Directoryと連携させてみた
なんでPloneを選んだか
先日の日記でも書いたが、社内での情報共有システムを作りたいと思っている今日この頃。
会社とかだとクライアントPCのユーザアカウントがADで管理されていることが多いと思うが、自分の勤めてるとこもその辺はADで管理されてる。
そこで、すでにADで管理されている
・ログイン名
・パスワード
あたりの情報を情報共有システムからも利用したいと思う。
あわよくば
・所属
・Eメールアドレス
・表示名
・グループ
あたりの情報も持ってきたいところ。
「ADとのLDAP連携で実現できそうだ」というのは察しがついていたので、LDAP連携機能をそなえたWikiやCMSを色々調べたところ、Ploneならできそうだということがわかった。
Pythonが好きなのもあるので、とりあえずはPloneで試してみることにした。
調べていく際、日本語の情報があまりWebでみつけられなかったので、この日記にも情報をあげていこうかなと。
検証環境構成
先に検証環境の構成を提示しておく
事前検証
Ploneでの検証を始める前に、Ploneサーバ-ADサーバ間でldapの通信ができるかどうかをldasearchで検証してみた。
- ADサーバのIPが192.168.1.250
- ドメイン名がad.local
- 検索には一般ユーザを使用
- Domain Admins等のグループには属していない一般のユーザを想定
- ユーザ名"testuser1",パスワードが"password"
- Usersの下にぶら下がっている"testuser2"の情報を調べたい
とすると、こんな感じ。
$ ldapsearch -x -D testuser1@ad.local -w password -h 192.168.1.250 -b "cn=users,dc=ad,dc=local" "sAMAccountName=testuser2"
こんな感じで結果が返ってくればOK
# extended LDIF # # LDAPv3 # basewith scope subtree # filter: sAMAccountName=testuser2 # requesting: ALL (以下略)
私事だが、ちょうどLPIC301の勉強をしている身なので、この段階で調べた事は勉強になった。
新しいバージョンのPloneを試すがうまくいかず…
一番最初はPlone 3.2.3で検証を始めた(その時の最新だったので)。
が、うまくいかず。プロダクト等のインストールはうまくんだけど、ログインしようとするとログにエラーが出力される。ログでググっても有益な情報がみつからず。
tcpdumpで見る限り、ldapの通信は発生してるようだがなんでかうまくいかない。
色々調べてるうちにめんどくさくなって、「とりあえず他のバージョンを試してみよう」という方向に転換した。
次に試したのが、2.5.5。「枯れてるバージョンの方がうまくいくんじゃないか?」みたいな安易な発想でチョイス。
3.2とはファイルの構成とかだいぶ異なっててとまどった。zopeで使用するPythonでldapモジュールを扱えるとこまではうまくいくんだが、プロダクトのインストールがうまくいかなかった(プロダクトのバージョン選定でミスってたのかも)。
Plone3.0.6でうまくいったのでその記録
Plone3.0.6で試したらすんなりうまくいったので、記録しとく。
面倒なの細かい情報はあとで追記するかもだけど、とりあえずやったことがわかるようにしておく。
事前準備-他のアプリのインストール
過不足あるかもだけど、以下のような感じでアプリをインストールしておく
$ yum install gcc gcc-c++ openldap openldap-devel openssl-devel
Plone本体のインストール
$ cd /tmp $ wget https://launchpad.net/plone/3.0/3.0.6/+download/Plone-3.0.6-UnifiedInstaller.tar.gz $ tar xzvf Plone-3.0.6-UnifiedInstaller.tar.gz $ cd Plone-3.0.6-UnifiedInstaller $ ./install.sh standalone
↓こんな感じのが出力されるはずなのでメモっとく(後からでも調べられるけど)
Username: admin Password: xxxxxxx
initスクリプトの作成
必須じゃないだろうけどどうせなので作っとく。出来上がりに自信なしだけど。
/etc/init.d/ploneに以下を貼り付ける
#!/bin/sh # zope Init script for starting up the Zope server # # chkconfig: - 87 12 # description: Zope Application Server # # config: /home/zope/etc/zope.conf # pidfile: /var/run/zope/zope.pid case "$1" in start|stop|status|restart|reload|debug|test) su -c "/opt/Plone-3.0.6/zinstance/bin/zopectl $@" ;; *) echo $"Usage: $0 {start|stop|status|restart|reload|debug|test}" exit 1 esac exit 0
自動で起動するように設定しとく
$ chmod +x /etc/init.d/plone $ chkconfig plone on
python-ldapのインストール
以下の手順でインストール
$ cd /tmp $ wget http://pypi.python.org/packages/source/p/python-ldap/python-ldap-2.3.9.tar.gz#md5=a9f9f16338288d118a1ae6266c993247 $ tar zxvf python-ldap-2.3.9.tar.gz $ cd python-ldap-2.3.9 $ /opt/Plone-3.0.6/Python-2.4.4/bin/python setup.py build $ /opt/Plone-3.0.6/Python-2.4.4/bin/python setup.py install
インタラクティブシェルでテストしてみる
$ /opt/Plone-3.0.6/Python-2.4.4/bin/python >> import _ldap
⇒エラーがでなければOK
PloneLDAPのインストール
必要なプロダクトがバンドルされてるものがあるのでそれを利用する。AD上のユーザが持っている属性に日本語が含まれている場合に問題が起きないようにencodingの設定もいじっておく。
$ cd /tmp $ wget http://plone.org/products/ploneldap/releases/1.0/PloneLDAP-bundle-1.0rc3.tar.gz $ tar xzvf PloneLDAP-bundle-1.0rc3.tar.gz $ cp -rp LDAPMultiPlugins/ /opt/Plone-3.0.6/zinstance/Products/ $ cp -rp LDAPUserFolder/ /opt/Plone-3.0.6/zinstance/Products/ $ cp -rp PloneLDAP/ /opt/Plone-3.0.6/zinstance/Products/ $ sed -i '/opt/Plone-3.0.6/zinstance/Products/LDAPUserFolder/utils.py' -e 's/latin1/utf-8/' $ /etc/init.d/plone start
ZMI/Ploneでの設定/テスト
ZMIを開いて、ploneサイト配下にあるacl_userの下に「ActiveDirectory Multi Plugin」プロダクトを追加する。
必要事項を埋めて。Add。Manager DNのところは"ユーザ名@ドメイン名"でいけた。普通にDNを指定しても良いと思う。
無事追加できたらプロダクトを有効にする
赤枠の項目でクリックして
追加したプロダクトを右側にもってくる
おわったらチェックを入れてUpdateボタンをクリック
Usersタブでユーザ検索をしてみて、うまく連携がとれてるか確認
グループのとこにも、ADのグループがついかされてると思う
最後にPloneサイトにて、AD上のアカウントでログインをしてみて、うまくいくか確認しよう
参考サイト
Plone - The Open Source CMS — Plone Documentation v5.1
Software-Defined IT Operations for Hybrid IT Environments | Zenoss
Integrating Active Directory into Plone 3… with working group roles. | Tips 4 developers by me :)
など
現状わかってる問題点・課題
実際に社内でサイトを構築するとなると、ADの側の設定は触れない。となるとPloneの設定に自分のアカウントとパスワードを入力する必要がある。
多くの場合、定期的にパスワードを更新するような設定がされいると思う。自分の会社もそう。
となると、パスワード更新の度にPloneの設定を変更する必要が出てきそう。
若干面倒だけど、そんなに頻繁にあるものじゃないから良しとするか。でも、セキュリティ的に問題がある気もするなぁ…
ユーザーがログインする際に入力したユーザ名/パスワードを、ADのユーザ情報参照時のバインドユーザとして使えるようにならんもんだろうか。
今後
- AD上で管理されてるの他の情報(所属とかメルアドとか)を利用するところとかをまだ全然触れていないので調べて行きたい。
- その後は便利なプロダクトを探そうと思っている。
- Q&Aサイトをつくるのに便利なプロダクとはないだろうか。
- アクセスコントロールやサイト構成についても決めなくては
- レスポンス向上策も施したい(Vanish,CacheFuなど)。
- 2.5.5ではCacheFuが簡単に入れられたのに
- バックアップ・リストア等の運用面も考えないと
雑記
すっかり放置していたので、箇条書き風に雑記でも。
- きがついたら25歳になってた
25になりました
- LPICレベル2受かった
201は持っていたので、202を8月あたまくらいに受験。
今年度頭あたりで出題範囲の改定があったんみたいなんだけど、改定後の範囲に対応した書籍をもってなかtったからちょっとしんどかった。
とりあえずistudyはまったくあてにならなかった。
LPIのサイトに出題範囲がのってるから、そこに記載されている主要ファイルとかで逐一ググると勉強になると思う。新しく追加された項目なんかもあるみたいだから、そのあたりは特に。覚えたつもりで覚えられてなかった部分の復習の意味でも効果あり。
netnewsが出なくなったのは助かった。ユーザーとしても管理者としても使った事なかったので、実感がわかなくて正直勉強がつらかったので。
今はLevel3取得に向けて勉強中。秋にはネットワークスペシャリストを受ける予定なので、9月中ごろまでには301だけでも取得したい。
課内サイト的な使い方ができないかなぁと考えてる。
社内での横のつながりというか、情報共有みたいなところがあまりできてないなぁというのが実感としてあって、それが社員のやる気の問題なのか道具不足が原因なのか、そのあたりを切り分けるためにも導入して見たいと思ってる。
ポイントは以下
-
- 社内セキュリティとの絡み
⇒いくら社内サイトとはいえ、最低限のアクセスコントロールは必要。ISMSとの絡みを意識しながら作らないといけないと思ってる。
Ploneならその辺をうまくワークフローを使って実現できそうかなと。
-
- Active Directoryとの連携
⇒社内のクライアントPCのアカウントはADで管理されているので、そこに格納されいる情報をぜひ参照したい。
幸いPloneにはAD内のアカウントをLDAP参照できるようなプロダクトがあるようなので、それを使いたいと思って検証しているんだけど、うまくいかない。ldapsearchを使って検索では情報取れているので、通信自体は問題なさそうなんだけど、Plone側の設定が何か間違っているんだろうか。ここが解決すると一気に実現が近くなるんだけどなぁ。
-
- コンテンツの充実と、使いたくなるような仕掛け
道具だけあっても、使われなかったら意味がないので、「便利だから使う」みたいな好循環ができるといいんだけど。
「なんちゃら相談室」みたいな感じで最近良く見かけるQ&A的な機能はぜひほしい。コンテンツの器だけできても、そこにノウハウみたいなものをアップしていくような人ばかりじゃないと思うけど、きっと自分の疑問は楽に解決できたらと思っているはず。Q&Aのおかげでシステム自体がある程度認知されれば、「ローカルにメモ書きとして残しておくくらいなら、Webに上げようかな」と思う人も少なからず出てくるはず。
投稿者がどんな人なのか、軽くでいいからわかるような仕掛けもほしい。
TODO管理やスケジュール管理、資産のブッキング管理みたいなものもあったらいいな。
なにより「どんな機能がほしいか」をユーザーに問う機能は必要だろう。
-
- 使いやすさ
コンテンツをアップする場所ができても、HTMLの文法やブログで使われるような記法で書きたいと思う人は少ないだろう。その点、PloneにはWYSIWYGエディタがデフォルトで付属しているので、少し敷居を下げれれるかなと。
ワークフローについてもわかりやすいものにしたい。意味のあるコンテンツだったとしても、それが適切にアクセスコントロールされていなければ今回の目標は達成できない。
「コミュニケーションのコストを下げて、情報がどこかにたまるようにしたい」ってのが根本的に思っているところ。そういう意味ではJabberとかMS Comunication Severなんかにも興味がある。
- 資産管理のためのコストを安価に下げたい
資産管理、特にクライアントPCの管理の現状のやりかたに課題があると感じている。
「どんなパソコンで、誰が使ってて、管理番号は何で、ネットワークの設定はどうなってて、どんなアプリが入ってて、オフィスソフトライセンスはどうなってる」みたいなところ手作業で管理--更新--運用していくとなるとものすごく骨が折れるわけだが、現状全部手作業で管理している。
ちゃんとやっているところは、資産管理エージェントやADのグループポリシーなんかでガチガチに制御してるんだろうけど、自分のとこの会社はそれはやっていない(SEという仕事の都合上、やりにくいだろうという配慮かもしれないが)
「コンピュータが処理できるところは処理してしまった方がいいだろう」とはみんな気がついているようなんだけど、今日の今日まで誰も手をつけていないので、そこにメスをいれていこうかなと。「人手が介入する必要があるのはどこか」ってのをきちんと洗い出したい。
構想としては以下の通り
-
- 情報収集のところはVBScriptとかで処理する。PC Viewというソフトが使えるとだいぶ楽になるんだけど、その辺は社内ルールやソフト自体の規約とご相談かなと。
手入力が必要な部分だけポップアップかなんかで入力画面を提示する。結果はCSV形式のテキストにしてメールで管理者宛に送れば楽かなと思ってる。
ユーザー情報等はADからADSIを利用して引っ張ってこれそうかなと思ってるんだけど、ADに参加していないクライアントがいる可能性、権限が低いせいでADの情報をひっぱってこれないユーザがいる可能性は考慮しないといけない。
-
- データ自体はAccess等のdbに格納するべきか、エクセルに直接おとすべきか、資産管理ソフトみたいなものに突っ込むべきか、考え中。
-
- 課単位くらいで担当者がいて棚卸の進捗を管理することになると思うけど、「今どこまでおわってますか」みたいな部分を見れるビューは必要なのでつくる
なんだかまとまりのない文章になったけど、以上雑記でした。
個性的なPCケースで差をつけろ!!
以前ヤフオクでMini-ITXのマザーボードを3000円くらいで購入して、適当なダンボール箱に入れて使ってたんだけど、やはりダンボールなだけあってすぐ壊れてしまいました。
「直さなきゃなぁ」と思いつつも、安物の非力なPCだったので愛着も無く、ずっと放置していました。
最近になってやっとあたらしいケースを入手したので入れ替えました。
写真がコレ
なかなか個性的なガラで気に入ってます。呼び出しベルみたいなスイッチもかわいいでしょ。
横から見た図
普通のPCケースって、電源が後ろに来てるものが多いけど、コイツは横。後ろとかきょうびはやらない。
後ろから見た図
PCケースに説明書がついているという親切設計!こういう気配りがうれしいね!
どうみてもダンボールです。本当にありがとうございました。
古いノートPCを再活用
こないだ部屋を掃除してたら、古いノートPCが一台発掘された。
半ば存在を忘れていたけど、たしかにハードオフにて3000円くらいで購入した記憶がある。
以前は寝床用PCとして活躍したりしてたんだけど、Eee PC 901を購入して以来出番がなくなって引き出しの中にしまったんだっけ。
ToshibaのDynaBook SS3300 ていう10年くらい前の機種でスペックは以下の通り
- CPU
- モデル: Mobile Pentium II
- 速度: 266MHz
- メモリ
- 容量: 128MB
- ハードディスク
- 規格: Ultra DMA33
- 容量: 6GB
「キツいスペックのPCで頑張ってる人」達から見ればハイスペックな代物だが、自分が所有してるPCの中では一番ヘボい。
ちょうど自分がPCを触りだしたころ最初に触ったPCがMMX Pentium 233のノートPCだった。おかんが年賀状のために買ったPCだったので使い出した当時でもすでにショボいスペックで、そのせいで苦労したかわりに色々勉強になったと今になれば思う。あのPCがヘボかったおかげで「Linuxが軽いらしい」という噂を聞いてPlamo Linux試したのがLinux使った最初だったりする。
そんなわけでこの手のノートPCには愛着があるので、捨てずに復活させようと思う。
OSの入れ替え
久しぶりに起動してみたらWindows 2000が起動した。DebianのTestingを入れてたつもりだったんだけど、身内に貸すときにWindows入れたんだっけかな。
Win2kは嫌いじゃないし、必要十分な気もするのでそのまま使うことも考えたが、いかんせんウイルス対策ソフトのせいで重たい。
ので、OSを入れなおすことにした。
OSの選定
自分の中での候補は
・Debian Lenny ⇒ Debianラブ♪使い慣れてるので
・Puppy Linux 日本語版 ⇒ 軽そうなので
・Ubunutu (Crunch Bang) ⇒ Eee Pcで使ってるので
の3つ。Crunch BangはこのPCにはちょっと重たいかなと思って除外。Puppyはパッケージ管理に後々不満がでそうなのでLennyを入れることにした。正直aptに慣れなれきってしまっているのでdeb系列以外を覚えるのが面倒だというのもある。仕事でRHELとかを使うとファイルパスや名前の違いで調子狂う。
FDブートを利用 ⇒ ドライブ故障により失敗
このPCにはCDドライブなどという高尚なデバイスは付属していないので、FDブートでDebian Etchを入れてからUpgradeするのを考えた。
夜だったのでコンビニにフロッピーを買いに行った。が、置いていない。カセットテープは売ってるのに!1年半くらい前はたしか置いてあったんだけどな。
仕方ないので後日別の店でフロッピーを購入。さっそく使おうとしたところ
「Aドライブにディスクを挿入してください」
とかふざけた主張をコンピュータがし始めた。どうやらフロッピードライブが壊れてるらしい。
こわれたら分解するしかないよね。
分解して色々いじったところ、無事フロッピーを認識した。クイックフォーマットもできる!
ということで、フロッピーにデータを書き込もうとしたところ、今度は別のエラーが発生。
再度いろいろいじってみるも、今度は症状が改善されず。
Unetbootinを使用 ⇒ ちょっとしたトラブルの後成功
仕方ないのでUnetbootinを使ってインストールすることにした。
「最初からその方法でよかったじゃん」という意見もあるかと思う。自分も一番最初にこの方法を試したんだけど、ちょっとしたことが原因で、うまくいかなかったので一回あきらめたのであった。
最終的には解決できたので、事の経緯とうまくいかない原因、解決策などを残しておこうと思う
- 原因1: 変なドライブ構成
2000をインストールする際に、
1.インストールに必要なファイルをHD上におく
2.DOSをインストールしたFDから起動してインストーラーを叩く
っていうやり方で入れたんだけど、その際に何かみすったのか
・NTLDRやNtdetect.com、boot.iniなどはCドライブに
・システムディレクトリはDドライブに
という変な構成になってしまっていた。
- 原因2: Unetbootinが上記のような構成を考慮していない
この状態でUnetbootinを使うと
・システムドライブがDにあるので、unetbootinはDドライブに必要なファイルを作成する。
・Dドライブにboot.iniを作成して、そこにエントリを書き込む
という挙動をしてしまう。システムが読み込みにいってるboot.iniはCドライブにあるほうなので、これだと何回やってもうまくインストールできるわけがないのである。
- 解決策
うまく動作させるには
・Unetbootinが作成したファイルのうちboot.ini以外をntldr等があるドライブに移動。
・Unetbootinが作成したboot.iniの内容をシステムが使用しているboot.iniにコピペしてドライブレターを修正
とする必要がある。
ちなみに、Unetbootinが作成したファイルを移動せずにboot.iniの内容だけを修正してもうまく起動できないので注意。
インストール成功
無事debianのインストーラが起動した。Unetbootin便利だね!メディアを焼かずにすむので、今度からこれを使おう。PXEブートとかより難易度低いのもいいね。
そしてDebianのインストーラがなんだかグラフィカルになってる。anacondaかな?
ベースシステムだけ入れて必要なものだけ足していこうかと思ったが、めんどくさかったので、基本パッケージみたいなやつとノートPC用なんちゃらってやつを入れた。のちのち別のOSを入れる可能性を考慮して3GB分未使用のパーティションを残しといた。
インストールが完了したらまずはsysv-rc-confを入れて、不要なサービスを殺した。その後はXサーバ入れたり日本語環境ととのえたり。日本語周りはhttp://debian.fam.cx/index.php?Japaneseを見ながら適宜ググればだいたい何とかなると思う。scim周りでちょっと苦労した気がするけど。
wmはOpenBoxを使うことにした。xfce,icewm,blackbox,fluxbox等今までいろいろ試したがOpenBoxが使い勝手や動作感において一番好みに合ったので。
icewmはWindowsのキーバインド体系を再現する場合なんかに便利で、自分もWindowsのキーボードショートカットが体に染み付いてるので(マウス運が無くて、しょっちゅうマウスが調子悪くなるのでいつの間にか身についた)以前はicewmを使ってたんだけど、みてくれがいまいちなので使わなくなってしまった。
動作感など
インストール前はメモリ不足が心配だったが、それは意外と大丈夫だった。
起動後何もしてない状態でのスクリーンショット(一部抜粋)が以下の通り
メモリ使用量は25MB程度と予想以上に少なかった。sshdを切ればもっと減らせると思う。conkyも殺せばもうちょい減るけど便利なので残しておこう。スクリーンショット用にimagemagickのimportをつかってるので、その分のメモリも誤差程度上乗せされている分を差し引くと、idele時に使用するメモリは思いの他すくないことがわかる。
「じゃぁサクサク軽快に動くのか」といわれると、そんなわけでもない。どうやらCPUパワーがネックになっている気がする。ターミナル上で作業してる分にはあまり不満はないけど。aptitude searchとかで返ってくるのに時間掛かるのはちょっとイライラする。GUIのアプリを起動するとやっぱりちょっと重い。ブラウザは風博士をインストールしたんだけど、ちょっともっさり感がある。ある程度は仕方ないので軽い用事はw3m-imgで済ませることになるだろう。
カーネルまわりとかいじくってないので、もうちょっと改善の余地はあるだろう。Gentooとかインストールしてゴリゴリ最適化した状態も見てみたいところだが、「なんでもかんでも自前でビルドして」みたいなのは性に合わないのでGentooは選択肢から除外した。Linux自体を勉強する意味ではかなり役立ちそうな経験ができそうだけど。
さて、このPCの最大の問題点は、上述のものとは別のところに、2点ほどある。
1・使い道があまりない
⇒Eee PCあるから、結局こっちを使うだろう。実家に置いてなにか使い道つくるか、Debian勉強したい知人が現れたときに譲るか位しか思いつかない。
2・キーボードのHキーが取れてる
⇒3000円でかったPCなので仕方がない。がvimを使う上でhキーが無いのは致命的!
今は「カタカナひらがなキー」の下に入ってたゴムを流用して(このキーの下には適当なスプリングを入れといた)、セロハンテープで固定して使っている。見た目は最悪だが、押し心地は以外にも悪くない(笑)