Macのインターネット共有 + VBox でちょっとハマる

ハマったネットワーク構成

DHCP + Macのインターネット共有 + Linux on VirtualBox on Win

の環境で

Linux上でDNSサーバの見つからない現象

に遭遇して困ってた。最終的には /etc/resolv.conf で DNS サーバを教えてやって解決した。

しかし改めて図を描くと意外に複雑。環境が複雑になってくるとどこでハマるか想像つかないので、ちゃんと一つずつ丁寧に確認していかないとダメだなぁ。

Yapra で吐いた feed を実際に購読する前に

前回からまたずいぶんと空いてしまったけど、気になっていたことをひとつ。それは

吐いた feed のタイムスタンプは必ず更新されてしまう

というごく当たり前の事実。

これの何が問題かっていうと、できた feed をそのまま Web に公開すると、必ず Etag が変化してキャッシュが効かず、結果、feed を生成するたびに更新扱いになってしまうという点である。

要するに feed reader 上で更新されたものしか表示しないようになっていても、内容に変化がないのに必ず更新されましたよ、と顔を出してくるということである。

これが邪魔だ。

解決方法を考えたけど、アプローチは二つほどありそうな感じ。

  1. feed を吐く際に既存の feed をキャッシュとして活用して内容に変化がなければ生成し直さないようにする
  2. 吐いた feed を直接公開しないで、公開用の場所にダイジェストで確認しながらコピーを行う

1 は要するに Yapra を直すという話で、これが可能ならスマートだなぁと思ってはいる。特にキャッシュとして使う辺りは生成した feed のタイムスタンプが変わるか変わらないかよりも大きな話で、これが実現可能なら例えば EFT でも無駄に同じエントリを再取得しなくてよくなるかもしれないと思っている。

2 はそのままの話で、例えば rsync なら –checksum だし、sitecopy なら state checksum というパラメータを追加してやればよい。

当面は 2 かなーと思っている。思いついたのは数日前で、ここの FreeNAS の feed の転送の設定を変えたのは今日のことなので、明日の昼に更新通知がこなければオッケー。

というかこの辺、Plagger の人たちはどう対処してるの? feed 生成って実はあんまり需要がなくて、feed を食わせて mail なり irc に転送する方が主流なの?

Perlベストプラクティスを買っちゃいそうな自分がいる

8月にやたら Amazon さんから荷物が届いたおかげで金銭感覚がマヒしつつある。勢いあまって 『Perl ベストプラクティス』もほしいなぁとか思い始めているから怖い。まぁ特に Perl は普段使わないようにしている分、自分の中の知識というかクセがかなり古くなっている自覚はあって、『救命病棟』も持ってるけど、これよりもっと細かいレベルでかつ具体的にこうすべしというノウハウに溢れるベストプラクティスに惹かれつつある。

ぶっちゃけ金銭的にキツイわけでもないし、持ってて損はしないとは思うんだけども、場所の確保がねぇ。(Perl メインのお仕事なら絶対買うけど。)あと Perl 関係の本て他にも『システム管理』とか魅力的な本がたくさんあるので歯止めが効かなくなりそうってのがいちばん恐ろしいポイントなのかも。

ということで、ここのところ毎日 Web 上の情報収集だけに留めようと必死に抵抗している。HACKS と違って自分用のメモがどうにか構築し終わればこの熱は冷めると信じている1

  1. HACKS シリーズを全部自分のメモで代用するのは無理。 

ViewCVS を複数インストール

普段 FreeBSD や Debian などパッケージ管理のいきとどいた OS を使っており、ViewCVS はしっかりそのパッケージツリーの中にある。だからサーバ用に ViewCVS を起こすときは野良から入れることはまずない。

でも自分の作業環境用にも ViewCVS がほしいとなったら話は別。システム共通のものではないので、ホームディレクトリ以下だけで完結したい。

ViewCVS はアーカイブを紐解いただけでまずそのまま使える。しかし一応 installer がついている。これを使うと特定のディレクトリの下に ViewCVS をガラガラとコピーしてくれる。

このとき、インストール先はインタラクティブに指定できるのでインストール先さえ決めておけば、何も考えず(ごそごそと設定ファイルをいじったりせずに)にインストールスクリプトを動かしてしまってよい。

インストールが完了したら設定ファイルに CVS リポジトリの場所を教えてやる。

db のパスワードがらみで ViewCVS は http でアクセスできるところに置かずに ScriptAlias を使う設置方法が推奨されているが、個人利用の場合はそんなものはお構いなし。逆に、suexec 環境で使おうと思うと Alias 周りはややこしい。直接 cgi スクリプトを http でアクセスできるところにコピーしておこう。

まとめ

  • インストーラがインストール先を尋ねてくれるので安心
  • suexec 環境では viewcvs.cgi は直接 www に晒してしまおう

OS X と Classic 環境のネットワークの設定

OS X

  • ネットワークに繋がっていない状態でアダプタに「システム環境設定」の「ネットワーク」で固定 IP アドレスを割り当てても反映されない。(システム環境設定上ではその IP アドレスになっている。)
  • コマンドラインで以下のように叩けば設定できる。
sudo ifconfig ADAPTER ADDR

Classic 環境

  • コントロールパネルに TCP/IP の設定がない
  • OS X から勝手に情報を引き継いで OS X 自体が持っている IP アドレスとは別なアドレス体系を自分で持ってるみたい
    • OS X の Apache に localhost や 127.0.0.1 で接続できないので

どっかのサーバで classic からのアクセスがどういう風に見えるのか確認した方がいいかもしれないが、要するに Adapter が inactive の場合、Classic 環境から OS X のネットワークサービスに接続する方法はない。

したがってネットワークから切り離されたところで Netscape 4.x の挙動の確認作業は行えません。

eclipse テスト

9月になったことだし(特に意味なし)、以前ちょっと動かしただけでやめていた eclipse をもう一度試してみることに。いちばんのキモは xyzzy でアウトライン表示をさせる方法を調べるのが面倒だから。

  • eclipse-platform 2.1.1 + LanguagePackage + Patch(java しないので)
  • webstudio 0.3.4(PHP 周り)
    • core
    • phpdocumentor
    • manual
  • solareclipse(HTML, CSS エディタ周り)

を入れる。プロジェクトを workspace とは別な場所で管理したり、プロジェクトと CVS の同期方法もまぁ分かったのでこれはなかなか使えそうな雰囲気。FTP と WebDAV を使ったサイトの更新も楽チン。phpdocumentor がその場でサクっと動かせるのはかなり便利だし。とは言え、コマンドラインな CVS とか xyzzy とかともちろん併用になるとは思いますが(^^;(WinCVS はステ成功っぽい。)

phpdocumentor は 1.1.0 とちょと古め。あと、php 4.2.4-dev ではうまくドキュメントを生成できなかったので 4.3.3 にした。いい具合。あとは Another HTML-lint と HTML と CSS の適当なリファレンスがあれば stand-alone なノートでもけっこう使いものになるかな。

わざわざ namazu に突っ込んであるマニュアルを見るためだけに ssh するばからしさから解放される日も遠くはないか?

About

例によって個人のなんちゃらです

Recent Posts

Categories

Tool 日々 Web Biz Net Apple MS ことば News Unix howto Food PHP Movie Edu Community Book Security Text TV Perl Ruby Music Pdoc 生き方 RDoc ViewCVS CVS Rsync Disk Mail FreeBSD Cygwin PDF Photo Zebedee Debian OSX Comic Cron Sysadmin Font Analog iCal Sunbird DNS Linux Wiki Emacs Thunderbird Sitecopy Terminal Drawing tDiary AppleScript Life Money Omni PukiWiki Xen XREA Zsh Screen CASL Firefox Fink zsh haXe Ecmascript PATH_INFO SQLite PEAR Lighttpd FastCGI Subversion au prototype.js jsUnit Apache Trac Template Java Rhino Mochikit Feed Bloglines CSS del.icio.us SBS qwikWeb gettext Ajax JSDoc Rails HTML CHM EPWING NDTP EB IE CLI ck ThinkPad Toy WSH RFC readline rlwrap ImageMagick epeg Frenzy sysprep Ubuntu MeCab DTP ERD DBMS eclipse Eclipse Awk RD Diigo XAMPP RubyGems PHPDoc iCab DOM YAML Camino Geekmonkey w3m Scheme Gauche Lisp JSAN Google VMware DSL SLAX Safari Markdown Textile IRC Jabber Fastladder MacPorts LLSpirit CPAN Mozilla Twitter OpenFL Rswatch ITS NTP GUI Pragger Yapra XML Mobile Git Study JSON VirtualBox Samba Pear Growl Mercurial Rack Capistrano Rake Win RSS Mechanize Sitemaps Android JavaScript Python RTM OOo iPod Yahoo Unicode Github iTunes God SBM friendfeed Friendfeed HokuUn Sinatra TDD Test Project Evernote iPad Geohash Location Map Search Simplenote Image WebKit RSpec Phone CSV WiMAX USB Chrome RubyKaigi RubyKaigi2011 Space CoffeeScript Nokogiri Hpricot Rubygems jQuery Node GTD CI UX Design VCS Kanazawa.rb Kindle Amazon Agile Vagrant Chef Windows Composer Dotenv PaaS Itamae SaaS Docker Swagger Grape WebAPI Microservices OmniAuth HTTP 分析基盤 CDN Terraform IaaS HCL Webpack Vue.js BigQuery Middleman CMS AWS PNG Laravel Selenium OAuth OpenAPI GitHub UML GCP TypeScript SQL Hanami Document SVG AsciiDoc Pandoc DocBook Develop Jekyll macOS Node.js Vite Heroku Transformer AI Data Cloud Wasm