サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
mteramoto.hatenablog.com
FreeBSD 9.0-RELEASEで始めた自宅サーバだけど、ほどなくFreeBSD 9.1-RELEASEがリリースされたのでアップグレードした。FreeBSD.orgのサーバが侵入されちゃった事件の影響か、少しリリースが遅れたけど、無事にリリースされてよかったよ。 アップグレードは、いつもどおりfreebsd-updateを使ってバイナリアップデート。しばらく前から、ソースツリーは展開してなかったりする。うーん、軟弱になったもんだ。 手順はいつも通りで特に変わったところは無し。 まずは元リリースの最新に更新する。これは、FreeBSD-EN-12:01.freebsd-updateを修正しておかないと、freebsd-updateがうまく動かないから。 # freebsd-update fetch # freebsd-update install次に9.1-RELEASEへの更新差分
今回のサーバ更新では、3TBのHDDを2台ミラー構成してZFS poolを作成した。今はこれで十分な容量だけど、将来的に容量が不足した場合はどうにかして容量を増やす必要がある。この場合、だいたい以下2つの方法がある。 別にミラーのZFS poolを作成して、既存のpoolにzpool addする ミラーを構成するHDDを3TBから、より大容量のHDDに交換する 前者は、ディスク増設の物理的なスペースが必要になる、一度addしたら解除できない、などいろいろと考えることが多いので、後者でいきたいところ。 将来に備えて、手順をメモしておく。 1台目のHDDを交換する zpool replace "プール名" "ディスク名"で交換したHDDを認識させる resilver完了まで待つ 2台目のHDDを交換する zpool replace "プール名" "ディスク名"で交換したHDDを認識させる re
自宅サーバを新しくしたので、これを機会にnetatalkを2.2系から3.0系に新しくした。 インストールはportsのnet/netatalk3から、ZEROCONFオプションを有効にしてインストールする。自動的に依存関係が設定されて、net/avahi-appがインストールされる。 設定は、/usr/local/etc/afp.confのみ設定する必要がある。Time Machineとして使うディレクトリを指定する。うちのafp.confはこんな感じ。 ; ; Netatalk 3.x configuration file ; [Global] ; [Homes] ; basedir regex = /xxxx [Time Machine] path = /backup/tm time machine = yesファイルシステムの空き領域を全部Time Machineに使われたくない場
今回のサーバ更新では、ZFSからZFSへデータ移行をする必要があった。一般的にはrsyncやtarを使うんだろうけど、せっかくなのでZFSの機能を使って移行してみたら、かなり高速で快適だったのでメモ。 ZFSには、複製を作成するためのsend/recvという機能が用意されている。標準入出力を使ってデータをやりとりできるので、netcatを使ってネットワーク越しにつなぐことで、データを移行する。 まずは新サーバでの操作。netcatでネットワークからの入力を待ち受けて、標準出力へリダイレクトし、zfs recvで受信する。ポート番号は適当に選択する。受信するpoolはあらかじめ作成しておくこと。 # nc -l -p ポート番号 -w 120 | zfs recv -v pool/export@snapshot次は、旧サーバでの操作。zfs sendはスナップショットしか送信できないので、ス
とある目的でperlからEvernoteのAPIを使う必要にかられて挑戦してみたところ、'Missing version identifier'でUserStore->checkVersionが異常終了して困ってた。環境を変えて調べてみると、Mac OS X上にperlbrewで作ったperl 5.14.2環境ではうまくいかなくて、FreeBSD環境だとうまくいく。 例外の内容はこんなかんじ。 $VAR1 = bless( { 'code' => 0, 'message' => 'Missing version identifier' }, 'Thrift::TException' ); よくよく考えると、Evernote APIはThrift::HttpClient経由でlibwwwを使うんだけど、アクセス先がhttpsだった。Mac OS X上では、libwwwをhttps対応させてな
Amazon.comからKindle Personal Documentに3つの新機能が追加されたよ、というメールが送られてきたので、久々のエントリ。ちなみに、タイトルは何かを狙ってみた。 Personal Documentというのは、Kindleごとに設定したメールアドレスに添付ファイル付きのメールを送ると、Kindleに自動的にダウンロードされる機能で、さらには必要に応じてKindleフォーマットに自動変換してくれるステキな機能のことだ。いちいちUSBケーブルを接続しなくても、手持ちのKindleにデータを転送できる上、Wi-Fi経由なら無料という太っ腹(3Gだとデータ量に応じて料金が必要)。 今回、そのKindle Personal Documentに便利すぎる新機能が3つも追加された。 Personal DocumentはKindle Libraryとして自動的にアーカイブされる
おうちのサーバでは、ずいぶん昔からSambaを使ってWindows向けのファイルサーバを運用してた。昔からの設定を引き継いで使っていたので、Samba 3系列で言うところのunix charsetは昔からEUC-JP系列の設定で運用してた。 最近、とある理由でSambaで共有しているディレクトリをApache経由で見せる時に、DirectoryIndexをUTF-8で出力する必要に迫られた。mod_autoindexで作られるIndexは、ファイルシステムのファイル名がそのまま使われるので、Sambaがファイルを作るときにUTF-8なファイル名を付与してくれないと困ってしまう。というわけで、EUC-JPからUTF-8への変更を敢行した。 まずはいつでも戻せるようにsnapshotを作成した。 # zfs snapshot zroot/hoge@beforeutf8ZFSすばらしい!! 次は
ZFSのスナップショットは、2^64個作成可能な上、作成・削除は高速で大変使いやすい。さらに、スナップショットはZFSのファイルシステムごとに作成可能だから、同じzpoolから切り出したファイルシステムの一部だけスナップショットを作成することが可能である。これはUFSでいうと、ディレクトリごとにスナップショットを作成する・しないが決められることに相当し、大変使いやすい。 # zfs list NAME USED AVAIL REFER MOUNTPOINT users 270K 16.5G 22K /users users/home 76K 16.5G 22K /users/home users/home/markm 18K 16.5G 18K /users/home/markm users/home/markm@yesterday 0 - 18K - users/home/marks 1
たださんが日経電子版をスクレイピングしてKindle向けmobiファイルを作る - ただのにっき(2011-01-04)でおもしろそうなことをやってたので、自分でもやってみた。 Feedの取得やWebのScraping、加工はPlaggerにお任せすることにして、Publish::Kindleを書いた。XHTMLとtocの生成はPublish::CHTMLから、メール送信部分はほぼPublish::Gmailからのコピーで済ませた。mobiファイルの生成にkindlegenを使ってるので、あらかじめ取得しておく必要がある。Kindle.pm以外にテンプレートも必要なので、asset以下にコピーしてほしい。 こんなyamlを書いてplaggerを実行すると、workで指定したディレクトリにmobiファイルが生成される。Kindle 3に転送して表示したのが冒頭の写真。 global: tim
Mac OS XにはTime Machineというバックアップ機能があって、ローカル接続したHDDかネットワーク接続したファイルサーバに自動的にバックアップを作成してくれる。デスクトップ型ならローカル接続したHDDを使うのが、高速かつ確実だけど、ノート型の場合はいちいちHDDを接続するのが面倒で、そのうちバックアップを取らなくなる恐れがある。 Time Machineに使えるネットワーク接続したファイルサーバは、Apple純正のTime Capsuleがあるけど、内蔵のHDDが故障したらせっかく取得したバックアップがパーになるから、冗長化されたHDDを使いたい。 そこで、手元のFreeBSDマシンをTime Capsuleっぽく仕立てることにした。 Time Capsuleは、ディスク共有をAFP over TCP、サービス広告をBonjourで実現してるので、それらを適切に設定すればTi
あけましておめでとうございます<いまさら。 今年はactivityをあげていきたい。というわけで、書き初めとしてInstapaperにpostするPlaggerのプラグインPublish::Instapaperを書いた。 lib/Plagger/Plugin/Publish/Instapaper.pm at master from mteramoto's plagger - GitHub 使うには、WWW-Instapaper-Clientが必要。FreeBSDはwww/p5-WWW-Instapaper-Clientを作っておいた。 config.yamlへの記述はこんなかんじ。post_summaryを1にすると、entry->summaryをpostする。 - module: Publish::Instapaper config: username: your-username pa
3TBのHDDが店頭で売られるようになってきたので、おうちファイルサーバの構成を見直した。方針は以下の通り。 HDDはGPTでパーティションを確保する ファイルシステムはZFSを使う RootはZFS上に確保して、そこからbootする SwapはGPTで確保したパーティションを使う ZFS poolはRAIDZで確保する サーバはHP ML115 G1でHDDを4台内蔵可能だから、3台でRAIDZを構成して、残りの1台は空きにする予定。swapをZVolじゃなくてGPTに確保するのは、dumpを意識したから。実際にはあまり使わないんだろうけど。 実際の作業 FreeBSDのインストーラは、GPTやZFSに対応してないから、作業はすべてFixitモードを使う。USB memstickまたはDVDを用意すること。ハードウェアがUSBからの起動に対応してるなら、USB memstickがおすすめ
YKさんからのコメントで、MBRだとgpart addするときに-b 64を指定しても63の倍数で丸められるから性能が出ないと教えてもらった。さっそく再作業。 # dd if=/dev/zero of=/dev/ad8 bs=4096 count=8 # gpart create -s mbr /dev/ad8 # gpart add -b 504 -s 1953524664 -t freebsd ad8 # newfs -S 4096 -U /dev/ad8s1gpart listで構成を確認。startが504になってるな。 Geom name: ad8 fwheads: 16 fwsectors: 63 last: 1953525167 first: 63 entries: 4 scheme: MBR Providers: 1. Name: ad8s1 Mediasize: 1000
最近Evernoteハンドブックや仕事するのにオフィスはいらない (光文社新書)を読んでEvernoteを本格的に使ってみようと決意したので、Publish::Evernoteを作った。これでいろんなところからPlaggerで情報を集めて、Evernoteにもりもり突っ込むことができるよ。 メール経由ということで、Publish::Gmailをほぼコピーして、subjectで@を使ってNotebookを指定するところだけ追加した。もっと簡単な方法があるような気もするけど、とりあえずうごいてるからいいや。#でTagを指定する機能も気が向いたら実装予定。 lib/Plagger/Plugin/Publish/Evernote.pm at master from mteramoto's plagger - GitHub assets/plugins/Publish-Evernote/everno
おうちサーバをFreeBSD 8.0-RELEASEに更新するついでに、バックアップ用のHDDを容量1TBのWD10EARSに交換した。ヨドバシカメラで7400円、ありきたりな感想だけど、すごく安くなったものだ。 さて、このHDDはAdvanced Format Technologyを適用と書いてある。具体的には、内部的に4096 Byte sectorになっていて、HDD側でエミュレーションすることで、PCからは512 Byte sectorに見えるというもの。通常MBRだと開始セクタは63、GPTだと34になるので、ギャップが発生して性能的によろしくないことが予想される。Windows向けにはWDから専用ツールがリリースされてるけど、FreeBSDなら自力で開始セクタを調整すればいいはず。 そこで、MBR/GPTで開始セクタを8の倍数にしなかった場合/した場合でそれぞれddでシーケンシ
自宅にOpenVPNサーバを用意したので、Mac OS Xでも使えるようにしようと思いついた。 せっかくなのでGUIなクライアントを捜したところ、Tunnelblickというクライアントを発見した。早速使ってみたところ、いいかんじで使えたので、以後はこれを使うことにした。 以下は簡単な設定メモ。OpenVPNの設定ファイルさえ用意してあれば、全くやることナシ。もっとも、設定ファイルの準備が一番大変だという噂。 インストール インストールは、Mac OS Xの作法通り、dmgファイルをダウンロードして、Tunnelblickをアプリケーションフォルダにコピーするだけ。 初回起動すると、以下のダイアログが出てくる。 Continueをクリックすると、~/Library/openvpnが作成され、その中にopenvpn.confが生成される。Tunnelblickは、~/Library/open
2009/12/3に3つのSAが公開された。そのうちの一つが、ローカルユーザがroot権限を奪取可能なFreeBSD-SA-09:16.rtldだった。Security Advisory公開の前にexploit codeが公開されたり、exploit codeがきわめて簡単なコードで確実に動作することから、結構な話題になった。久々の大型案件だったので、K*BUG総会で発表したから、こっちにも記録を残しておく。 exploit codeの公開 はじまりは、Full Disclosureに投稿された一通のメール(Full Disclosure: ** FreeBSD local r00t zeroday)だった。メールには、最近のバージョンのFreeBSDに含まれるRun Time Link Editorに不具合があり、ローカルユーザがroot権限を奪取できることと、動作可能なexploit
某所のサーバリプレースのために、最近流行のIntel Atomを利用したベアボーンキットXC Cube LE211 Premiumを購入した。本体+メモリ2GBで20,000円とかなりお買い得。HDDは手持ちのHDDを流用した。 光学ドライブは付けなかったので、USBメモリを使ってインストールしてみた。 USBメモリの準備 まずはUSBメモリに書き込むイメージファイルをダウンロードする。FreeBSD 8.0からは、USBメモリを使ったインストール用のイメージファイルが準備されているので、ダウンロードしよう。 ftp://ftp.jp.freebsd.org/pub/FreeBSD/ISO-IMAGES-i386/8.0/8.0-RELEASE-i386-memstick.img ダウンロードできたら、USBメモリに書き込む。USBメモリがda0として認識されている場合は以下の通り。 #
引っ越し予定のサーバでは、fmlを使ってメーリングリストを管理していた。メーリングリストのメールアドレスは、普通のメールアドレスと同じドメインで運用していたので、このままだとGoogle Appsに移行するのが面倒だ。そこで、メーリングリスト用に専用ドメインを用意して、バーチャルドメインでメーリングリストを管理することにした。 MTAはPostfixを使うので、Postfixのバーチャルドメインに対応しているメーリングリストドライバとしてGNU Mailmanを使うことにする。FreeBSDのメーリングリストにも使われてるので、実績も十分だし安心そう。 インストール portsで一発。mail/mailman。 バーチャルドメイン PostfixとMailmanでバーチャルドメインを実現する方法は、6.1.2 Virtual domainsに書いてある。ただ、この方法だとmlname@ml
自前で運用していたメールサーバを、Google Appsに移行しようと検討中。移行後は、リスク分散のためメールデータをGoogleのみに置くのではなく、手元にダウンロードしておくことにする。リモートのPOP/IMAPアカウントからメールをダウンロードするには、fetchmailを使うことにした。 fetchmailのインストール FreeBSDならportsになっている。ports/mail/fetchmailを使えば簡単にインストール可能。 fetchmailの設定 ~/.fetchmailrcという名前で設定ファイルを用意する。このファイルにはパスワードを記述するため、permissionは600にしておくこと。 > touch ~/.fetchmailrc > chmod 600 ~/.fetchmailrc設定ファイルの内容は、Gmail向けだと以下の通り。直接MDAであるproc
タイトルが全て。 MacBookをスリープ解除したら、バックライトが点灯しなくなった。もう一度スリープさせても、電源offから再起動しても復活せず。起動の際に、一瞬だけバックライトが点灯するので、ハードウェアが壊れたわけではなさそう。 こういうときは、慌てず騒がずSMC (System Management Controller) のリセットを試してみる。結果は、見事復活。修理が必要となると、データのバックアップやら発送やらで面倒なので、復活してよかったよ。 参考 Apple Portables:SMC (System Management Controller) のリセット
これまでずっとPlagger+GmailでRSSを読んできたけど、最近Gmailが耐えられないくらい遅い。具体的には、"k"を押してから次のメール(Feed)が表示されるまで10秒以上かかることがあるくらい遅い。おまけに、Crawlを任せてるBloglinesも最近止まってたり、過去のFeedを更新分としてよこしたり、同じ記事を2回よこしたりと動作が怪しいので、まとめて別のWebベースRSSリーダーへ移行することを検討することにした。 比較検討 まずは、すぐに思いつくlivedoor ReaderとGoogle Readerで比較してみた。ブラウザはFirefox+Greasemonkeyを想定、一部Google Chromeも試してみたい。比較項目が偏っているのは気にしない。 livedoor Reader Google Reader FirefoxからRSSを登録 Yes Yes En
livedoor Readerに移行すると決めたので、早速移行作業を実施した。 Bloglinesから購読リストをエクスポート まずは、購読しているFeed一覧をOPMLでエクスポートする。Bloglinesだと、ログインしている状態でhttp://www.bloglines.com/exportにアクセスすればexport.opmlがダウンロードできるので、適当な場所に保存しておく。 livedoor Readerに購読リストをインポート 「設定変更」から「データのインポート」を選んで、さっきダウンロードしたexport.opmlを指定する。しばらくしたら、購読リストがインポートされる。時間がかかるので気長に待つべし。 後で気づいたけど、Readerの使い方:Bloglinesからのデータ移行 - livedoor ヘルプに丁寧なマニュアルがある。 livedoor Readerの設定変
sshでログインしたホストAから、さらに別のホストBにsshで接続する際に、ssh agent forwardingという便利な仕組みがある。ssh agent forwardingを使えば、ホストAのログインに使用したprivate key/public keyのペアを、ホストBへのssh接続に利用できる上に、パスフレーズはホストAへのログインの際に1回だけ入力すればOK。 仕組みとしては、ホストAからホストBへのssh接続の際に、ホストBからの鍵要求をホストAがログイン元へ転送することで、ホストAのログインに使用した鍵ペアの利用を可能にしている。OpenSSHの場合、ssh agent forwardingにおける情報のやりとりはUNIX domain socketを使って行っている。UNIX domain socketは、/tmp/ssh-"ランダムな文字列"/agent."sshd
「いい大企業だと、人材がごろごろしていて、90点以上は当たり前で、92点か93点か、というところで勝負している」 「だから、92点を出して93点の人に負けてしまうと、35歳とかすぎて、ずっとくすぶってしまうことになる」 「90点以上を出せるような人たち」をいかに大企業からベンチャーに移すか|戦略コンサル辞めて起業している日記 どっかで似たような話を聞いたと思ったら、ONE OUTS -ワンナウツ-だった。作中で、渡久地率いるリカオンズを潰すために、マリナーズは各球団で最強レベルの選手をトレードで集めてくる。それを評して渡久地が言った台詞がこれ。 渡久地: これがエリートの脆さ…さ 今のマリナーズは「プロ野球」という野球エリート集団でそのまたエリートを引き抜いて集めたいわば「超エリート」の集合体だ 人生の中で劣等感など感じたことのないエリートにとってそのギャップを受け入れるのは並大抵のことじ
その一方で shell script としての使われ方も健在で、Perlを必要とする言語も少なくない。戯れにどれくらいあるのかをFreeBSDのPortsで調べてみたら、こうなった。<<中略>> PHPやghcはおろか、rubyやgccまで入っていたのには私でもびっくりした(pythonが入っていないのにはさすが:)。が、これらのインストーラーの作者にとっての perl は、私にとっての shell script のようなものではないだろうか。 404 Blog Not Found:悪「言語」身に付かず - 「書ける」と「身に付く」の間に autoconf/automakeがperlに依存しているから、間接的にperlに依存してるportsが出力されて多めに見えるだけじゃ?というわけで、autoconfを除いてみたのがこれ。RubyとPHPは直接perlに依存してるわけじゃないよね。 %
最近どこのISPでもOP25Bしてるから、自宅サーバからメールを出すのにSMTP Authが必須になってきた。というわけで、FreeBSD boxにPostfixをインストールして、SMTP Authしながらrelayhostでメールを転送する設定を紹介。 Postfixのインストール まずは、portsからpostfixをインストールする。configは、SASL2とTLSを有効にする。 │ │[X] PCRE Perl Compatible Regular Expressions │ │ │ │[X] SASL2 Cyrus SASLv2 (Simple Auth. and Sec. Layer) │ │ │ │[ ] DOVECOT Dovecot SASL authentication method │ │ │ │[ ] SASLKRB If your SASL req. Kerb
TwitterのFollowをWebでやるのが面倒になってきたので、スクリプトで自動化したいと思ったらちょうどRubyKaigiやってる、そうだRubyでやろう←いまここ というわけで、Twitter4Rを使って久々にRubyでスクリプト書いた。 #!/usr/local/bin/ruby require 'rubygems' gem 'twitter4r', '>=0.3.0' require 'twitter' require 'twitter/console' twitter = Twitter::Client.from_config('conf.yaml', 'test') twitter.friend(:add, 'screen_nameをここに書く') conf.yamlはログイン情報を記述した設定ファイル。 test: login: ログイン名 password: パスワード
OCNバリュープランを申し込んだ - mteramotoの日記で申し込んでいたバリュープランでONC IPv6が申し込めるようになってたから、早速申し込んだ。OCNでの処理が完了すると、接続に必要な情報がメールで送られてくる。ユーザ名とパスワードは、OCNで共通だから、追加で必要なのは接続先サーバのFQDNだけだけど。 OCN IPv6とは OCN IPv6はOCNが提供しているIPv6接続サービス。OCN以外のISPを使っていても、バリュープランを契約することで利用可能。プロトコルはPPP over L2TPの上でDHCPv6 PDを動かしてPrefixをもらうというもの。Prefixは固定と動的を1つずつ利用可能で、Windows VistaとWindows XP向けには専用クライアントソフトウェアが配布されてる。 OCN|OCN IPv6 OCN IPv6ユーザ網インタフェース仕様書
次のページ
このページを最初にブックマークしてみませんか?
『mteramoto's blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く