にょきにょきのお勉強 -17ページ目

RSS配信内容の一部文字化け

RSSをFireFoxで購読してみると、一部が文字化けするといわれたので該当する rdf ファイルを見てみたら、<title>の中の改行が文字化けしているらしい。


仕様上「改行を入れてもOKです」としている入力データからシステマチックに <title> を生成しているため、改行入れるなとは言えないので改行は無視する方向で修正。


s/[\r\n]//g


で解決。

ちなみに IE7 では改行があってもとくに問題なさそう。

タイマー使って再起動

今日は会社で使っている共有マシンが壊れたので、その代替機の用意をしました。

Windows PC の基本的な環境のほかに、起動時に弊社自作のプログラムが動くようにして、さらに毎日夜中に1回再起動する、という設定が必要でした。


WindowsXP で Linux とか FreeBSD で言うところの cron を使ったことがなかったので、すでに稼動済みの別PCの設定を調べて、タスクを使ってタイマー処理を設定できるところまではわかりました。できました。


コントロールパネル - タスク - スケジュールされたタスクの追加

と選んでいくとタスクウィザードが立ち上がります。

このウィザードに従って自分のやりたいように条件を設定していきます。


再起動したい私は、実行プログラムを選択する箇所で[参照]ボタンを使い、C:\WINDOWS\system32\shutdown.exe を選びました。

タイミングや再起動などのオプションを設定して、こんな感じに。

C:\WINDOWS\system32\shutdown.exe -f -r -t 0

1日1回、5:00 a.m. となるようにスケジュールを設定し、実行するユーザとパスワードをそれぞれ設定。


おお、簡単だ…と思いつつ、5分後にセットして期待通りに動くかテスト。

シャットダウン、再起動は上手く動いたけど、ログイン画面でパスワードを入れてねといってとまっている。


ユーザのログインを自動でする必要があるな、ということで壊れる前のマシンを設定した人に尋ねたところ control userpasswords2 というものを使うと教えてもらいました。


スタート - ファイル名を指定して実行

で立ち上がるウィンドウに control userpasswords2 と入力すると、ユーザアカウントなる設定用のウィンドウが開きます。


ここで実行ユーザを選び、[ユーザがこのコンピュータを使うにはユーザ名とパスワードの入力が必要]のチェックボックスをはずします。

そこでパスワードを聞かれるのでパスワードを入力します。


これでログインまでは期待通りにできるはずなのでついでに再起動直後にプログラムが自動でスタートするようにしました。


スタートを右クリック - 一番上の開くを選択 - プログラム - スタートアップ

と選択して、そこへプログラムへのショートカットをおきます。


再度再起動のタスクスケジュールを5分後にして上手く再起動・プログラムの自動スタートができるようになったことを確認。をを、できたできた。


スタートアップは、各ユーザ専用の場所と全ユーザ共通の場所があるのでここは注意が必要でした。

ギリギリセーフ

just in time


on time は「時間通りに」という意味だけど、just in time は「ギリギリセーフ」という意味だそうで。

英語での説明は almost miss といってました。(英会話の先生が)


たとえば、I took the train just in time. とか使うらしい。


うーん本当は、「アクション映画でヒーローが爆発ギリギリにドアをすり抜けて助かるってシーンがよくあるじゃない?あの感じ、あのタイミング」と言う具合に、もっと深刻そうなシチュエーションを説明をしてましたが。。。私の理解でも間違ってはいないはず。


私は「まさにそのとき」と言いたくて ... just time. とつかったら、これは文法的に間違ってるとのこと。

英語でそういう言い方はないということでした。

FMSのプロトコル

仕事で flv player を作ってもらいました。

でも Safari + プロキシ経由の環境ではムービーが再生できないケースがありました。


プレイヤーの内部では


1. 一番よく使われているプロトコルとportである rtmp://:1935 を試してみます。

2.つながらなかったら rtmp://:80, rtmpt://:80, rtmpt://:443 を同時に試します。

3.サーバと通信が確立したものの中から一番効率のよいものを使うことにします。

4.使わないものはコネクションを閉じます。


というような try & error なロジックを試してみているとかなんとか。

待ち時間短縮をねらってポートを明示的に指定するとかなんとか。


それでもつながらなかったので、rtmps://:443 も試そうというはなしになりました。


残念ながらFMSサーバ側でこのポートでこのプロトコルは設定されていなかったので試せませんでしたが、over SSL なら再生できる可能性が高くなるのではないかと。


でもサーバの問題というよりは Safari の Flash Plugin がプロキシ経由のときに上手くいかないというのが本質のようです。

プロキシ経由でも問題ないことの方が多いみたいなんですが、セキュリティに固い会社などではデータ監視用(?)の仕組みがあるらしく、あいだのプロキシがなにやらごにょごにょやっている印象です。

そんな特殊な環境+Safari しか再現しなかったのでレアなケースかな。


プロトコルの詳しいことはぜんぜん理解できてないですが、とりあえず勉強になったこと。


  • FMSの標準プロトコルは rtmp でポートは 1935
  • そのほかにplayerは rtmpt(ポート80) と rtmps(ポート443) をサポートしている。
  • デフォルトで rtmp://:1935 を試して失敗したらこれらの通信方法を試すようになっている。
  • プロキシ経由の場合はサポートしていないブラウザがいるらしい。

ロジックを聞くのはできるけど、自分では作れませんからー。

作れるようになりたいな。なれるかな。

AIR の開発環境

今日はAIRの開発環境のこと。

ただいま入門という名の門の手前…。


私の周りにはけっこう Flash 開発者がいますが、私自身は素人です。

Flash は一度、タイムラインのアニメーションとは?みたいなチュートリアルをやってみた程度です。


Flash について知っていることは、オーサリングツールがあって、タイムライン上にアクションを連ねていくか、ActionScript というスクリプト言語でプログラミングするか大きく分けて2系統のスタイルがあるとか。

多分ASはイベントドリブン型のプログラミングだろう、とか。JavaScript と同じ ECMAScript ベースの言語だとか、その程度です。


それなのに、いきなり AIR の本で大丈夫だろうか…。


そこら辺、浅くていいので知りたいの、と会社の人にいったら最近発売されたAIRのムックとActionScript3.0の本を手渡されました。

どっちから読めばいいか聞いたら、こっちー、いややっぱりこっち、でもなやっぱりこっちのほうが…とずーと悩んでたのでどっちから読んでもいいのかと思います。


で、まだ読み始めて20ページくらいなのですが、すごく退屈です。

用語が分からないから、読んでもイメージが具体的になりません。

まだ、大まかな開発の流れとか、そんな感じなので分からなくてもとにかく進むべし、なのです。


で、今日知ったこと。


AIRの開発環境は次のようなものがある…らしい。

  • Flex Builder 3 … Adobe 純正の Flex 統合開発環境。いまのところの最新版。有料。  
  • Flex 3 SDK  …… コマンドライン型 Adobe 製の Flex フレームワーク。無料。
  • Adobe AIR SDK … コマンドライン型 で HTML や JS で開発している人のためのAIR アプリ専用の開発キッド。無料。  
  • AIR Extension for Dreamweaver … Dreamweaver のエクステンション。無料?(よくわかんない)

Flex Builder 3 は 30 日間のトライアル版があるらしい。


まず環境を構築してみるなら Flex Builder 3 か Flex 3 SDK かな。

Flex SDK の方は FreeBSD の上でも動くのかな。

# たしか会社の人がすでに入れていたような気がするのだが。。