Apacheに動画/音楽ファイルを置いた時、ダウンロードさせる

Apache2.2系列でのhttpd.confの設定。必要なモジュールはロード済みで有る事。

<IfModule mod_mime.c>
<IfModule mod_header.c>
    <Location /hogehoge/pospos>
        <FilesMatch "¥.(avi|mpg|wmv|mp3)$">
            AddType application/octet-stream .avi .mpg .wmv .mp3
            Header set content-disposition attachment
        </FilesMatch>
   </Location>
</IfModule>
</IfModule>

概要はこんな感じ。Locationタグは、apacheのルートからの任意のディレクトリに対して、設定を有効にする場合に付ける。無かった場合は全域に有効だし、VirtualHost内にIfModule設定しても良い。
拡張子は、必要に応じて増減させたり。

| | コメント (0)

久しぶりにAptanaを触ってみた

Aptanaでrubyを触ろうと思い立って、最新版を持ってきて起動。
jRubyを使っていたが、起動が遅い(VMなのでしょうがない)から、コンパイラを別途入れてたruby1.9.0に切り替えてみた。

  • gemsを落としてきてsetup.rbからgemsセットアップ→aptana再起動→gems関連自動インストール開始

(´・ω・)この便利さはなんなの。という事で割と自動でrailsとかrakeも準備してくれたので、しばらく使ってみようかな。
デバッグ(aptanaメニューから選択する奴)も、gemsからruby-debugとtest-unitを持ってきたらとりあえず動いたので、使う事は出来るみたい。無ければgems、で行く感じなのかしら。

| | コメント (0)

CentOS 5.3 アップデート

ちょっと詰まったので、メモ。

  1. /etc/yum.repos.d/CentOS-Base.repo の編集
  2. nssの依存性解決

1.で、解説サイトなんかを見ると、ファイル内の「contrib」の項目で、サイトのURLが云々とあったが、よくよく見てみると、公式のレポジトリに関して、「CentOS 5としてはcontribのyum用URLを用意して無いが、5.3用のURLは存在する」状態になっている。(contribはCentOSユーザが作成したパッケージのレポジトリなので、そういう扱いなのかもしれない。)

なので、contribを使う場合は、例えば以下の様に書くと通る。

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
baseurl=http://ftp.riken.jp/Linux/centos/5.3/contrib/$basearch/
gpgcheck=1
enabled=1

ただしバージョンを5.3として指定しているので、今後5.4とか6.0が出たら、忘れずに書き換えないといけない。また、ユーザ作成パッケージなので、他のと競合したり依存関係がずれたりすると問題が発生する恐れがある。その場合はenabled=0で一時的に居なくなってもらう必要がある。

2.について、update時に、nss-develが「3.12.2.0-2.el5.centos」を要求してくるんだけど、既に入っているのが「3.12.2.0-4.el5.centos」と新しい物なので、依存性を解決出来ずにエラー、という状態だった。注:ここから先、非推奨なので、良く読んだ上で自己責任で実行下さい。

めんどくさいので、

yum -y remove nss
yum -y update

と、除去後に全部updateし、yumに全部任せる方向で解決。まあそのうち依存関係は修正されると思う。

→nssに依存してたgnomeなんかがすっ飛んだので、後でgnome関連を入れ直すハメに。あと、ssh関連も設定ファイルが飛んでたので、configファイルをcpで移動させる必要が出てきたり。

この辺が怖い人は、まだ触らない方がいいかも。

| | コメント (0)

WindowsでRuby/Gems/Railsの環境を構築してみる

先日ruby1.9.1がリリースされたが、ワンクリック詐欺インストーラーがまだ出てないので、調べつつWindowsに入れてみた。webで検索すると、ワンクリック前提の解説ばっかりなのでちょっと手間取ったりなど。

  1. ruby公式から、ruby1.9.1のmswin32版を落とす
  2. 適当なディレクトリ(c:\rubyとか)に解凍後、環境変数のpathに「c:\ruby\bin」的な物を追加する
  3. コマンドプロンプトから「ruby -v」でバージョンが見れたりする(rubyの動作)のを確認
  4. RubyForgeから、gemsの最新「rubygems-1.3.1.zip」を拾ってくる
  5. ここのページを参考に、gemsに必要なライブラリをダウンロードしてくる
  6. OpenSSLは、最新を拾わないと、gemsコマンド実行時に失敗する。ここからOpenSSLの最新をダウンロードすること
  7. 5.で拾ったライブラリは、「c:\windows\system32」などの、パスの通った所に置く
  8. 4で拾ったgemsのライブラリを解凍し、「c:\ruby\gems」などの適当な所に設置。
  9. 以下の手順はここのページを参考に。
  10. コマンドプロンプトから以下を入力:「ruby setup.rb config
  11. コマンドプロンプトから以下を入力:「ruby setup.rb setup
  12. コマンドプロンプトから以下を入力:「ruby setup.rb install
  13. 上記まででgemがインストールされる。コマンドプロンプトから「gem -v」と入力し、gemsのバージョンが1.3.1になっている事を確認
  14. コマンドプロンプトから「gem install rails」と入力する事で、"Ruby on Rails 2.2.2"がインストールされる。バージョン1の方が欲しい場合などは、このページを参照しつつ、例えば「gem install rails -v 1.1.4 --include-dependencies」の様に入力し、バージョンを指定してインストールする(ついでに依存関係も自動で解決してもらう)。
  15. ついでにmongrel-railsもインストールする。コマンドプロンプトより「gem install mongrel」を実行する。
  16. 本手順では実行しないが、もしgemのアップデートでエラーが発生するようになったら、もしかしたらこのページを参照するといいかも
  17. 実行環境が整ったら、次は開発環境を整える。このページからリンクを辿り、「jre」(現時点の最新は1.6.0_12-b4)及び「aptana studio」をインストールする。
  18. このページを参照しつつ、aptana studioのRuby用プラグインをインストールする
  19. もしeclipseを既に持っている人で、プラグインを扱える腕のある人は、aptana studioのruby on rails用のダウンロードページで、ダウンロードの選択肢からプラグインを選ぶと、そこだけダウンロード出来る。16、17の代わりに、そちらを用いてもいい。
  20. aptana studio(又はeclipseにプラグインを追加したもの)を起動し、上部メニューの「ウィンドウ」→「設定」より、rails、mongrel-railsのディレクトリを確認する。
  21. gemsでインストールしたコマンドは、たとえば「c:\ruby\bin」に起動用バッチファイルが作られる。そして、aptana起動時には、\ruby\binフォルダ内が自動検出されるので、上記までの手順を辿った場合は、自動的にrails、mongrelが検出される。

一通り辿ってみたが、Javaの時以上に面倒だなー。これなら確かに、OneClickInstallerが流行るかも。

生産性は高いが、そこに行くまでにたくさんの設定が必要なあたり、CoCを体現していますね(ぇー

----

2009/03/26追記

どうやら現状でruby1.9.1付属のgemsが腐ってるのと、IDE(aptanaとかNetbeans)がまだ1.9系列に対応してないのとで、gems/railsは扱いづらいみたい。まだおとなしく1.8系を使っておいた方がよさそう。

| | コメント (12)

VB6からSQL Server 2008 Expressへ接続する

仕事で必要になったのでメモ。

移植がらみで、アプリ本体はVB6なんだけど、接続先がSQL Server 2008という組み合わせが必要になった。アプローチとしていくつかあるんだろうけど、取りあえずADO2.8で何とかなったので覚え書き。

環境:

  • SQL Server 2008 Express(サーバ機にインストール)
  • VB6.0 SP6
  • Microsoft ActiveX Data Objects 2.8 Library(ADO2.8)

コード(主要部分):

Dim con As ADODB.connection

Set con = New ADODB.connection

con.ConnectionString = _

  "Provider=SQLNCLI;DataTypeCompatibility=80;Server=192.168.xxx.xxx;" & _
        "uid=" & user & ";pwd=" & password & ";" & "Database=hogehoge;"

con.Open

以下略。

注意書き:

  • サーバIPやらDB名は伏せてるので適当に読み替えて下さい
  • "Provider"の"SQLNCLI"はSQL Native Client。
  • "DataTypeCompatibility"の"80"はおそらくSQL Server 2000のバージョン(SQL Serverシリーズ通してのバージョンが8.0)
  • user,passwordは事前にStringで文字列を定義しています
  • Connectionの使用後はきちんとCloseなどしましょう
  • SQL Serverの複数バージョンが混在している場合は、「Server=192.168.xxx.xxx\SQLEXPRESS;」のようになる事もあります。
  • SQL Server 2008上で、前もってTCP/IPの接続許可、ユーザーの作成、DBへのアクセス権の付与などをやっておきましょう
  • TCP/IPでの接続許可は、Windowsメニューの「プログラム」→「Microsoft SQL Server 2008」→「構成ツール」→「SQL Server 構成マネージャ」を起動し、画面左側の項目から「SQL Server ネットワークの構成」→「SQLEXPRESSのプロトコル」(デフォルトインストールの場合の名称)を選択。画面右側の「TCP/IP」を右クリックし、「プロパティ」を選択→「プロトコル」タブの「有効」を"はい"にする。また、その隣の「IPアドレス」タブで、SQL Serverの待ち受けIPを変更/固定できる。
  • 上記のTCP/IPの接続設定を変更したら、SQLサーバを再起動後に反映される
  • アプリを作成して別のマシンで使う場合は、おそらくdllが必要になるので、ADOのdllとSQL Native Clientのdllを同梱してやる必要があります。

調べるのに一日掛かったけど、とりあえずこれでいけそう。個人ならODBC使うけど、客先の全PCにODBC設定して貰うのもコスト掛かるので、可能ならこれで。

参考文献:SQL Native Client と ADO の併用

| | コメント (0) | トラックバック (0)

ustreamの発言をsoftalkにしゃべらせる設定

webカメラで生放送出来るustream(以下ust)、テキストを読み上げるsoftalk、これを組み合わせると、例えば作業中に画面を見ないで反応出来たり、車載ustしながら反応できたりとニッチな使い方が出来ます。

(もっとも、喋りながらの運転は危険を伴いますし、県によっては条例に抵触する可能性もあるので、十分気をつけた上で自己責任でどうぞ。)

ustreamのチャット部分は、IRCで稼動してます、なので、IRCクライアントで接続し、そこから発言をsoftalkに丸投げする事で、読み上げを行わせる事が出来ます。

ここでは例として、マクロが便利なLimechatをIRCクライアントとして使ってみる事に。なお、IRCクライアントの詳細な使い方や、ustreamの放送方法などは割愛します。

  1. Limechatをダウンロードして、起動出来る状態にします(インストールなりzip展開なり)。ついでにsoftalkもダウンロードして起動出来るようにしておきます。
  2. ustreamのアカウントを取得して、放送用のアドレスなど設定を調べておきます
  3. ここのページを参照して、IRCに繋ぐ設定を行います。
  4. Limechatを起動して、画面上のメニューから「設定」→「マクロ」を選択して、マクロの設定ウィンドウを開く。「新規」のボタンを押すとマクロファイル名を聞いてくるので、適当に「softalk」とか入力すると、マクロファイルの編集画面に。(画像1枚目参照)
  5. 1ファイルあたりマクロを複数設定する事が出来ます(今回は1個設定)。新規ボタンをクリックすると、1個のマクロを登録する画面に移動。(画像2枚目参照)
  6. 「マクロ項目の編集」ウィンドウが開くので、マクロの設定をします。「ユーザー」欄は、"*"が自分以外を表します。「%me|*」で、自分を含む全ユーザーが対象に。コマンドのPrivmsgは通常の発言で稼動します。チャンネル、メッセージの欄には「*」。動作は「Execute」を選び、外部プログラムを起動します。(画像3枚目参照)(7.に続く)
  7. 動作の情報の欄は、まず下の「参照」ボタンを押し、さっきダウンして解凍したsoftalkのフォルダ内にある「SofTalk.exe」を選択。これで、動作の情報欄が「"C:\hogehoge\SofTalk.exe"」のように入力されています。(exeの実行パス)
  8. softalkの引数に、発言メッセージを渡す為、動作の実行欄を以下のようにします:「"C:\hogehoge\SofTalk.exe" "%m"」さっきのに半角スペースをあけたあと、"%m"を追加します。
  9. %mはLimechatのマクロ記号で、発言内容を丸投げしてます。
  10. OKボタンで決定します。「マクロファイルの編集」画面で、今設定した項目にチェックが付いている(マクロがオンになっている)事を確認して、OKボタン決定します。(もしチェックが付いてなかったら、クリックしてオンにします)
  11. マクロ登録時は、最初反応しない設定になってます(マクロファイルがオフ)。なので、「マクロの設定画面」で、マクロをオンにします。ここでは、マクロファイルのうち、ustreamのサーバ設定のところで右クリックをして、設定に○を付ければマクロがオンになります(画像4枚目)

もうちょっとマクロをいじりたい人は、ヘルプファイルを見ながら設定すれば、httpの読み上げを抑制したり、特定ワードを避けたり、色々出来るかと思います。とりあえずは導入だけ。

01

02

03

04

| | コメント (0) | トラックバック (0)

新年あけましておめでとうございます

旧年はお世話になりました。今年もよろしくお願い致します。

----

さて、新年にあたりミラーサイトの改修なんぞしている訳ですが、strutsの使い勝手が微妙に悪いというか、マニュアルに一通り目を通さないと分からない部分が多すぎて、やっぱり取っつきにくい感がぬぐえない。

パラメータを使うのに、いちいちLinkedHashMapを使う、みたいなのを、調べるだけでかなりめんどくさい。もうちょっとまとまった文献無いもんかなー

| | コメント (0) | トラックバック (0)

誤った議論の手法

どのような種類の議論であろうとも、たとえ結果がどれだけ正しかろうとも。

相手の顔をぶん殴ってから話を開始するような話術は、受け入れられない。

書いている側は格好いいとか、周りの意見を引き出せたとか思い込むだろうけれど、そもそも失礼なので文字通り話になっていない。

| | コメント (0) | トラックバック (0)

同人と商業

みんなのイメージしてる同人と商業って、金とか関係無く、流通を介在させるかどうかが一つの大きな違いじゃないのかしら? 流通に限らず、商業的縛りが緩い(締め切りとか)と言えるかもしれない。

金云々言って凄く騒ぐ人は、おおむね「自分の同人感を押しつけているが、他人の意見を全く無視しているか、内容が誤っているかのどちらか」な事が多いと思う。

だから、私は上のようなイメージで同人を捉えているが、別に執拗に拘りもしないし押しつけもしない。

よねやんは「コミケはカオスだ」と表現していたが、同人も多分カオスなので、私見であれこれ決めつけるのは、多分了見が狭い結果しか生まないと思うのだ。

| | コメント (0) | トラックバック (0)

Tomcat6.0.18での変更点

via Das Tagebuch von Judith über Technologie

Tomcat6.0.18から、JSPの振る舞いが一部変わるらしい。以下引用。

つまり、従来は

<t:tag value="<%= request.getAttribute("name")%>" />

とか書けたのに、

<t:tag value="<%= request.getAttribute(\"name\")%>" />

と書かなくてはならない状況になってしまったのです。

[Das Tagebuch von Judith über Technologie: Tomcat 6.0.18 重大な変更]

多分Strutsなんかのフレームワークのタグには影響しないだろうけど、JSPに不慣れな人が書いた生コードなんかでは、こういうのありそうだ(昔は自分も書いてた)。仕事だと、習熟してない人を現場に投入せざるを得ない訳で、そういう場合に影響しそうだな-。

今まで認めていた記法を(理由は有るにせよ)マイナーバージョンでコロっと変える姿勢がちょっと理解しづらい。向こうのフォーラムとか追っていればいい事なのかもしれないけれど。

| | コメント (0) | トラックバック (0)

«Linuxコマンドメモ