start

SSHトンネリングでAFP

うちのiTunes Libraryはネットワーク上のMac miniサーバに構築してある。サーバ上のホームディレクトリを、AFPでローカルマシンの/Volumes/xxxxxにマウントし、~/Music/iTunesを/Volumes/xxxxx/Music/iTunesへのシンボリックリンクとすれば、サーバ上のiTunes LibraryがあたかもローカルなHDD上にあるような、普通のiTunes Libraryとして扱う事が出来る。

こうしておくことで、曲ファイルがあちこちのマシンに分散する事も無く、レートや再生回数といったiTunesの特徴であるメタ情報も、全マシンで共有可能になる。ローカルマシンを変えた時でも、シンボリックリンクを作るだけでライブラリを復元(というのも何か変だが)できる。

一方、この方法の欠点は、ネットワーク──正確には自分とこのLANに繋がってなければ、一切曲が聞けないという点だ。ローカルHDD上には全く曲を持ってないので、当然だ。

この欠点は、ノートPCなどを使っていて、宅外に持ち運ぶような場合に顕著となる。というか、今の俺がまさにコレ。MacBook Proを持って、家と研究室を行き来する毎日なので、Macが手元にあるのにiTunesが使えないという、非常に哀しい状況だった。毎日、朝から晩まで研究室にいれば、曲の1つや2つくらい聞きたくなるのが、人間というものだ。

そこで俺は考えた。

SSHトンネリングでAFPを透過してやればいいじゃん♪

トンネリングの仕方は至って簡単。サーバでsshdが動いていて、クライアントでsshが使える状況で以下のコマンドを実行する。Mac OS Xならば、最初からsshが入ってるし、sshdもチェックボックスでチェックするだけで動き出す。

ssh -2 -N -C -L 60000:localhost:548 サーバのユーザー名@サーバのアドレス

サーバのユーザー名のパスワードを求められるので、入力。これでローカルホストのポート60000と、サーバのポート548(AFP用のポート)が繋がった状態になる。

ここでFinderの「サーバへ接続」で、アドレスに「afp://localhost:60000/」を指定して接続すれば、サーバのAFP共有をマウントする事ができる。後はiTunesを起動するだけ。(゚Д゚ )ウマー

宅内LANに直に繋がっている時に比べればレスポンスは劣るものの、実用上全く問題なし。速度も90kB/sec程度出ているようで、オーバーヘッドも殆どない模様(うちの回線はADSLで上り1Mbps)。

これで卒業研究も捗るってもんだ。

リニューアルしたい

そんな気分。

でも、テンプレートを1から書かなきゃいけない&今は時間が無いので、悶々としてます。

とりあえず、Movable Type 4に更新して様子を見よう…。

PocketTopとSeeThru for MacBook Pro

MacBook Proの持ち運びケースで、何かナウイ(死語)のないかなーと探してたらBelkinの「PocketTop」という製品がよさげな感じで、目出度く購入。

Mac専用という訳ではないけど、Macで使って下さいと言わんばかりのデザイン。その辺の普通のノートPCで、このケースと釣り合いが取れる物は、なかなか無いんじゃないかと。DELL? Are you kidding?

特徴は上面(背面)についてるポケット。ここにACアダプタやマウスなどの小物を入れる事が出来るようになっている。

でもって、ケーブルを通す為の穴が空いてるので、ACアダプタなら本体側は接続しっぱなしで、コンセントに突っ込むだけでOKという運用が可能。 ケースに入れたまま開いて、膝の上に載せて使うという状況も想定されてるようだけど、それにはちょっと不安定という感じがした。

でも、見た目のポップさ以上に外殻は固く、重さも結構ある。 落下の衝撃とかには耐えられないだろうが、通常範囲の持ち運びでの衝撃程度には十分の強度がありそうだ。

MacBook Proと言えば、麗しき酸化アルミニウムの本体。ケースを買ったとはいえ、むき出しで使ってれば傷が付くのは避けられないので「SeeThru for MacBook Pro」という製品を購入。

これはポリカーボネートで出来た保護板?を本体の外側に装着して、本体が傷付くのを防ぐもの。 MacBook Pro専用ってだけあって、装着感も、装着後の本体端子なども全部利用可能。素晴らしい。

ただ、成型に所々雑な箇所が見られるのが残念。

この2アイテムさえあれば、MacBook Proを気兼ねなく持ち運べる。 問題なのは重量だけ。 ACアダプタとかも含めると、4〜5kg近い重さになってるんじゃなかろうか……。

UNIX系OSでのソフトのインストール

俺が初めてUNIXに触ったのは、中1の丁度今ごろだったと思う。教育実習に来てた大学生に大学へ連れてってもらい、そこで実物のUNIXと遭遇した。何分、当時の俺にとって、UNIXは「そういうOSがある」という程度の知識を持つに留まるのみの、得体の知れない何だか崇高な存在だった。それ故、UNIXが動いていたマシンが何でどのUNIXなのか理解できようもなかったが、3ボタンの光学マウス(現在巷に溢れているような物ではない。光を反射する専用のマウスパッド上でしか使えない代物)と、5インチMOだけは鮮明に記憶に残っている。

第2の遭遇は、古本屋で見かけたFreeBSDの黄色い解説書だった。時期的には上と同じ年か、その翌年位だったかな。そして何を思ったのか、俺はその本を買った。WindowsはおろかPCすら持ってなかったというのに。

全ての物をファイルとして扱う、という概念はかなり奇っ怪に見えた。パーティションとスライスの区別が付かなかった。だが、portsとpackagesの仕組みには感激したのを覚えている。これが俺のFreeBSDマンセーの起源だ(w

第3の遭遇は高校生の時だ。PCを買ってもらい、BMSに明け暮れていた。

ひょんな事から「UNIX USER」と、4つくらいのディストリビューションが収録されていたLinux雑誌を買ってしまい、PCにインストールしてみた。当時最新鋭だったGeForce 256 with DDRを積んだうちのマシンでは、丁度リリースされたばかりのXFree86 4.0でなければXが動かなかった。この時収録されていたOSで、XFree86が4.0だったのはFreeBSDだけだった。この件で俺の“FreeBSD命”が確固たるものになる(ww

それから、PS2Linuxを買ったり、突発的にPCにLinuxを入れたりすることはあったが、所詮一過性のお遊びに過ぎなかった。途中BeOSに浮気したりもした。

大学に入り、Windows XPにSP2を入れたら起動しなくなり、それにブチ切れた俺はMac OS Xに走った。余ったマシンにFreeBSDを入れ、サーバにしたりした。そして、今に至る……と。

ここからが本題。上の長ったらしい前置きは、殆ど関係ない(ぉ

UNIX系OSで何かソフトをインストールするとき、基本はソースからmakeする事である。

この方法は如何にもパソコン操作してます、って感じで「俺は出来るヤツ」という優越感に浸れる素晴らしい特徴があるのだが、問題が発生すると生半可な知識じゃ手も足も出ないという、重大な欠点(?)がある。

問題が発生した場合、似非UNIX使いの俺みたいな人は必死でGoogle先生に問い合わせ、どんな些細な情報でも藁をも掴む思いで参考にし、問題解決を試みる。そして、大概は撃沈するのだが、時には「なんだよ、こんな単純な事だったのかよ…」という具合に解決することもある。

こういう時、「これくらいの情報、書いててくれたっていいじゃないか。不親切だなぁ」と思い、自分がインストール過程を残すときは事細かに残そう、と思っていたのだが、最近になってそれが不可能な事に気がついた。

最初はきっちりとログを取るのだが、問題が発生し、何だかごちゃごちゃやってるうちに動いてしまう。こういうパターンが多分にあるのだ。インストール手順を公開しようにも出来ない、ってのが真実だった。

締めは………すまない、何もないんだ。

GLEW.framework

Mac(Xcode)でGLEWの静的/動的ライブラリを使おうと随分と前から格闘してただんだけど、どうしても上手くいかず、ついカッとなってフレームワークを作った。

一応、ちゃんと動いてる模様。

動作報告やバグ報告(技術が無いので対処できるかは不明ですが)などなど、お待ちしております。

折角なので、このフレームワークを使うようにしたvisualinfoのログを曝してみる。MacBook Pro 2.4GHz (MA896J/A)での結果なのでありますよ。

OpenGL vendor string: NVIDIA Corporation
OpenGL renderer string: NVIDIA GeForce 8600M GT OpenGL Engine
OpenGL version string: 2.0 NVIDIA-1.5.2
OpenGL extensions (GL_): 
    GL_ARB_transpose_matrix, GL_ARB_vertex_program, GL_ARB_vertex_blend,
    GL_ARB_window_pos, GL_ARB_shader_objects, GL_ARB_vertex_shader,
    GL_EXT_multi_draw_arrays, GL_EXT_clip_volume_hint, GL_EXT_rescale_normal,
    GL_EXT_draw_range_elements, GL_EXT_fog_coord, GL_EXT_gpu_program_parameters,
    GL_APPLE_client_storage, GL_APPLE_specular_vector, GL_APPLE_transform_hint,
    GL_APPLE_packed_pixels, GL_APPLE_fence, GL_APPLE_vertex_array_object,
    GL_APPLE_vertex_program_evaluators, GL_APPLE_element_array,
    GL_APPLE_flush_render, GL_APPLE_aux_depth_stencil, GL_NV_texgen_reflection,
    GL_NV_light_max_exponent, GL_IBM_rasterpos_clip, GL_SGIS_generate_mipmap,
    GL_ARB_shading_language_100, GL_ARB_imaging, GL_ARB_point_parameters,
    GL_ARB_texture_env_crossbar, GL_ARB_texture_border_clamp,
    GL_ARB_multitexture, GL_ARB_texture_env_add, GL_ARB_texture_cube_map,
    GL_ARB_texture_env_dot3, GL_ARB_multisample, GL_ARB_texture_env_combine,
    GL_ARB_texture_compression, GL_ARB_texture_mirrored_repeat, GL_ARB_shadow,
    GL_ARB_depth_texture, GL_ARB_fragment_program,
    GL_ARB_fragment_program_shadow, GL_ARB_fragment_shader,
    GL_ARB_occlusion_query, GL_ARB_point_sprite,
    GL_ARB_texture_non_power_of_two, GL_ARB_vertex_buffer_object,
    GL_ARB_pixel_buffer_object, GL_ARB_draw_buffers, GL_ARB_shader_texture_lod,
    GL_EXT_compiled_vertex_array, GL_EXT_framebuffer_object,
    GL_EXT_texture_rectangle, GL_ARB_texture_rectangle, GL_EXT_texture_env_add,
    GL_EXT_blend_color, GL_EXT_blend_minmax, GL_EXT_blend_subtract,
    GL_EXT_texture_lod_bias, GL_EXT_abgr, GL_EXT_bgra, GL_EXT_stencil_wrap,
    GL_EXT_texture_filter_anisotropic, GL_EXT_secondary_color,
    GL_EXT_blend_func_separate, GL_EXT_shadow_funcs, GL_EXT_stencil_two_side,
    GL_EXT_depth_bounds_test, GL_EXT_texture_compression_s3tc,
    GL_EXT_texture_compression_dxt1, GL_EXT_texture_sRGB,
    GL_EXT_blend_equation_separate, GL_EXT_texture_mirror_clamp,
    GL_EXT_packed_depth_stencil, GL_EXT_geometry_shader4,
    GL_EXT_transform_feedback, GL_EXT_gpu_shader4, GL_APPLE_flush_buffer_range,
    GL_APPLE_ycbcr_422, GL_APPLE_vertex_array_range, GL_APPLE_texture_range,
    GL_APPLE_float_pixels, GL_ATI_texture_float, GL_ARB_texture_float,
    GL_ARB_half_float_pixel, GL_APPLE_pixel_buffer, GL_APPLE_object_purgeable,
    GL_NV_point_sprite, GL_NV_register_combiners, GL_NV_register_combiners2,
    GL_NV_blend_square, GL_NV_texture_shader, GL_NV_texture_shader2,
    GL_NV_texture_shader3, GL_NV_fog_distance, GL_NV_depth_clamp,
    GL_NV_multisample_filter_hint, GL_NV_fragment_program_option,
    GL_NV_fragment_program2, GL_NV_vertex_program2_option,
    GL_NV_vertex_program3, GL_ATI_texture_mirror_once,
    GL_ATI_texture_env_combine3, GL_ATI_separate_stencil,
    GL_SGIS_texture_edge_clamp, GL_SGIS_texture_lod.
GLU version string: 1.3 MacOSX
GLU extensions (GLU_): 
    .
  • start.txt
  • 最終更新: 2022-07-27 15:26
  • by Decomo