Windows で使ってて、Mac に代替のソフトもなくて困ってたら「そうだ、Wine があるじゃないか!」と思い出したので今インストールしてる。
— Tetsu (@ironsand) July 31, 2012
と思いたち Wine のインストールをしました。
Wine ってなに? Wine を知らない人に説明しておきますと、Unix 系の OS で Windows のソフトが動いちゃうという非常に便利なソフトです。
説明終わり。
インストール方法 “Mac Wine"で Google 検索するとどうやら亜種がいっぱいあるらしいので、日本語の情報は全て無視して英語圏で情報を探って見ることにしました。
Installing Wine on Mac OS X
http://www.davidbaumgold.com/tutorials/wine-mac/
ここがわかりやすそうだったのでこのサイトの説明通りインストールします。
最後まで設定を終えて
$ sudo port install wine
を意気揚々と打ったら案の定エラーでコケました。よくあることですね。
エラーメッセージを見ると
Warning: The Command Line Tools for Xcode don’t appear to be installed
と、出てます。XCode を入れててもコマンドラインツールは勝手にはいってくれないようですね。XCode を開いて Preference から Download を選択してインストールしましょう。
自分の環境の場合はこれで何かがたくさんダウンロードとインストールされて来ました。これできっとインストールは成功してると信じたいです。(これを書いてる時はまだターミナルが動いてます。)
まだダメだった時 なんかまたエラーが出てしましました…。うう。
port definition が古いと怒られる MacPorts がこんなエラー吐いてたのでそっちも対処してみました。
Macで動画の編集をしてるとm4vというファイルに出くわした。
まあこのファイル自体は昔からよく見たことがあったけど「大体mp4と一緒のもの」程度の認識しかして来なかったのでこれを機会に正確に調べて見ることにした。
多分よくある間違い まず日本語で検索して出てくる
mp4とm4vの違いって何ですか? - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113798691
m4v 対応拡張子 動画変換・動画ダウンロードの無料フリーソフト
http://www.woopiedesktop.com/extension/m4v
MacでM4V変換ソフトとMacでM4V動画変換方法
http://www.wondershare.jp/howtoconvert/m4v-converter-mac.html
この3つのサイトに書かれている説明
M4VとMP4の違いは、圧縮コーデックがH.264かMPEG4かという違いです。
は間違いです。
WikipediaのMP4のページにもありますように、MP4はMPEG4のPart14の略称でありそこに規定されたマルチメディアを格納するコンテナの規格です。
http://ja.wikipedia.org/wiki/MP4
そして上でH.264と比較して述べられてるMPEG4は動画の符号化方式のみをさしています。
ですが、MPEG4 Part14の規格ではH.264に対応しています。
つまりM4VとMP4の違いは圧縮コーデックの違いではありません。
というかMP4への変換を行ったことがある人なら映像部分に使用するコーデックにH.264が表示されているのでわかると思いますが…。
コピペして他人のサイトの内容を使うのに参照元を書かないから、このようにどんどん間違った理解が広まっていくわけですね。
もう一つよくある誤解 どうやら他にもよく広まってる誤解があるようで、
m4vは映像部分のみ、でm4aが音声部分のみ、mp4が映像+音声の動画
というやつです。
mp4とm4vの違いって何ですか? Wikipediaで調べた所、mp4が公式の拡張子であって、… - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1163953191
の方や、先程も書いた
mp4とm4vの違いって何ですか? - Yahoo!知恵袋
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113798691
の「その他の回答」の方も勘違いされているようですが、m4aは音声のみを格納していることを示していますが、m4vが映像部分のみを格納してるというわけではありません。
これは
1. m4vがAppleが独自に決めた拡張子であること。
2. Apple製品でm4vで出力したら映像+音声で出力されること。
の2点から明らかに間違いであるとわかります。
それじゃMP4とM4Vの違いは何か? MP4はISO(国際標準化機構)で定められているフォーマット。
M4VはMP4によく似たApple独自の規格。
もっと詳しく知りたい人はここらあたりをどうぞ。
Difference Between Mp4 and M4v | Difference Between | Mp4 vs M4v
http://www.differencebetween.net/technology/difference-between-mp4-and-m4v/
Confusion: M4V vs. MP4?? - MacRumors Forums
rubyやpythonで書いたCGIを動かすためにやっぱりローカルでもテスト環境がほしいのでMacで使えるhttpdを探したら、BSDが元になってるのではじめからApacheが入ってるらしい。
「システム環境設定」→「共有」→「Web共有」をONにするだけでホームフォルダのしたに「サイト」というフォルダが自動的に作成されて、そこに http://localhost/~user/ でアクセスできるようになる様子。こりゃ楽だ。ひゃほーい。
全体の公開フォルダは
/Library/WebServer/Documents
/Library/WebServer/CGI-Executables
の2つになるらしい。
とはいえこんなフォルダを使いたくないのでホームフォルダの下でCGIが実行できるように変更します。
sudo vi /private/etc/apache2/users/[ユーザ名].conf
で設定ファイルを開いて
<Directory "/Users/[ユーザ名]/Sites/"> Options All AllowOverride All Order allow,deny Allow from all AddHandler cgi-script .cgi .rb .py </Directory>
のように書き換えて、
「Web共有」の設定を一旦切ってまたONにしてApacheを再起動。
cd Sites
vi test.rb
で「サイト」フォルダの下に新しいファイルを作って、その中に
#!/usr/bin/ruby
print "Content-Type: text/plain\n\n"
print "hello"
と書いて
chmod 705 test.rb
でファイルを実行可能にしてブラウザで
http://localhost/~[ユーザ名]/test.rb
で test と表示されれば成功です。
何故か途中から敬語になってますが、
参考 Apacheを起動する - Mac OS X LeopardでAMP環境を構築しよう - Apache, MySQL, PHP, Perlで作る開発環境 - futomi’s CGI Cafe
http://www.futomi.com/lecture/macosx/apache.html
前回の記事の続きです。
NHK語学のラジオ講座をさくらのVPSで自動ダウンロード
http://programming.ironsand.net/2012/auto-download-nhk-language-mp3-by-vps/
今回はさくらVPSにダウンロードしたmp3をSugarsyncにアップロードするについて解説します。
さくらのVPS上にSugarSyncやDropboxを常駐させるのはできるのかどうかわかりませんでしたし、できてもメモリを食いそうなので今回はSugarSyncが提供するAPIを使用します。
自動的にSugarSyncにファイルをアップロードさせるための手順は以下の流れになります。
APIを使うためにSugarSyncのDeveloperに登録
upload_nhkradio.rb の設定
cronの設定
1. APIを使うためにSugarSyncのDeveloperに登録 まずSugarSyncのAPIを使うためにDeveloperとして登録を行います。
http://www.sugarsync.com/developer/signup
もしSugarsyncのアカウント自体を持ってない方がいたら、まず[こちら][1]からSugarSync自体のアカウントを作ってください。
Developer登録をすると Access Key ID と Private Access Key が手に入りますのでメモっていてください。あとで必要になります。
次に[Create App]から新しいアプリの登録を行いアプリケーションキーを取得してください。
新しいアプリの作成には以下の5つの情報を入力する必要があります。
Name:[アプリ名]”NHK Radio Uploader”とか適当に
Publisher:[製作者] #名前をいれておきましょう。
Description:[詳細] “Upload NHK radio mp3” とでも。
Support URL:[作者サイト] 自分はTwitterのアカウントいれてます。
Support Email:[連絡先] 普通に自分のメールアドレスを。
以上でAppが作れたら App ID が入手できますのでコレもメモっておいてください。
2. upload_nhkradio.rb の設定 必要な情報が揃いましたので upload_nhkradio.rb の設定を行います。
まず[upload_nhkradio.zip][2]をダウンロードして解凍し、sugarsync.rb, upload_nhkradio.rb, upload_nhkradio_ini.rbの3つのファイルを取り出してください。
そしてupload_nhkradio_ini.rbを開いて先ほど入手した情報とアップロードするフォルダ名を設定します。
#SugarSyncのユーザ名(メールアドレス),パスワード @username = "" @password = "" #App ID /sc/などから始まる英数字 @application = "" @access_key_id = "" @private_access_key = "" #refresh_tokenを設定しておけばusername, passwordはいりません。 #username,passwordで接続すると無駄に一つ多く接続するのでrefresh_tokenを設定して使いましょう。 @refresh_token = "" #SugarSyncのどのフォルダにアップロードするか。 e.
NHKラジオの語学講座を毎週ダウンロードしてるんですが、
外国語を勉強してるのは海外に行くためでして、海外だとダウンロードができないことがよくあります。
なのでせっかくさくらのVPSをお金払って借りてるんだから
勝手にダウンロードするように設定しましたので参考にどうぞ。
月曜日の12時頃には決めておいたフォルダにmp3ファイルができてます。
実際に先週から動かしてみてますが、こりゃ楽でいいです。
SugarSync にアップロードしてるので海外にいるときにiPhoneがあるだけで新しい音声を聞くことも出来ます。
記事が長くなるので今回の
さくらVPSを使って自動的にNHKラジオ講座をダウンロード
次回の
さくらVPSにダウンロードしたmp3をSugarsyncにアップロードする
の2つにわけて解説していきます。
自動的にNHKラジオ講座をダウンロードするには以下の4つの手順が必要です。
flvstreamerのダウンロード、コンパイル
Rubyのインストール
CaptureStream の設定
cronの設定
1. flvstreamerのダウンロード、コンパイル flvstreamer をインストールするんですが、
まずさくらのVPSが32ビットなのか64ビットなのか確認します。
$ cat /proc/cpuinfo | grep flags
して値に lm が含まれていれば64bitのCPUです。
次に
$ uname -a
X86_64とかamd64とかが表示されたら、64ビット版のカーネルです。
64bitだとわかったので、64bitのflvstreamerをインストールしたいんですが、
32bitしかバイナリがおいてないので自分でコンパイルします。
$ wget http://download.savannah.gnu.org/releases/flvstreamer/source/flvstreamer-2.1c1.tar.gz $ tar zxf flvstreamer-2.1c1.tar.gz $ cd flvstreamer $ make posix $ ./flvstreamer FLVStreamer v2.1c1 (c) 2010 Andrej Stepanchuk, Howard Chu, The Flvstreamer Team; license: GPL ERROR: You must specify a hostname (--host) or url (-r "rtmp://host[:port]/playpath") containing a hostname # yum install ruby
Windows7でハードディスクをヤフオクに出すためにチェックディスクをしようと思ったら
chkdsk d:
十分な特権がないので、アクセスは拒否されました。
管理者特権モードで実行しているこのユーティリティを呼び出す必要があります。
と文句を言われてしまいました。
管理者権限で実行するにはデスクトップにでもショートカットを作って、プロパティから「管理者として実行」あたりにチェックを入れれば解決ですが、それさえも面倒臭い。
コンピュータの修理を頼まれて他人のパソコンで使いたい時もあるので、もっとも簡単な方法を紹介します。
ここまで前置き スタートボタンの「プログラムとファイルの検索」に
“cmd” と打てば cmd.exe がフィルタリングされますので、そこで
Ctrl+Shift+Enterで実行します。
これで管理者権限で実行できます。ショートカットさえ覚えておけば初期状態のWindows7で使えるので便利ですね。
参考 Run a Command as Administrator from the Windows 7 / Vista Run box
http://www.howtogeek.com/howto/windows-vista/run-a-command-as-administrator-from-the-windows-vista-run-box/
さくらのVPSにputtyを使ってSSHでログインしてる時に間違えて /usr/bin/python を叩いてしまい(コピーしようとしたら貼りつけてしまった。)インタプリタを終了できなくてちょっと焦ったので終了方法のメモ。
‘Use Ctrl-D (i.e. EOF) to exit.’
とか言ってるくるけど Ctrl-D をおしてもサーバーまで届かない。
正しい終了方法は
import sys sys.exit() だそうです。 ああ、そうか sys をインポートしなきゃならんのか。プログラムを書いてる時だと気づくのにインタプリタ普段使わないから何かちがうものだと勝手に思い込んじゃってたよ…。
参考 pythonインタプリタを終了する
http://blog.justoneplanet.info/2010/08/07/python%E3%82%A4%E3%83%B3%E3%82%BF%E3%83%97%E3%83%AA%E3%82%BF%E3%82%92%E7%B5%82%E4%BA%86%E3%81%99%E3%82%8B/
見た目が素敵なURLに変えるための mod_rewrite を xampp で使う方法を解説します。
mod_rewriteでできること ここに検索でたどり着いた人は Apacheのモジュール mod_rewrite で何ができるかはしってると思いますが念のために例を上げておくと
http://localhost/index.php?user=foo&name=bar
と書く所を
http://localhost/foo/bar.html
と書ける機能です。
foo/bar.html にアクセスすると内部で
index.php?user=foo&name=bar が呼び出されるわけです。
Xamppの設定方法 xampp は既にインストールして使ってる前提で話を進めますのでインストールがまだの方はインストールしてからまた来てください。
まずApacheの設定ファイル http.conf を開きます。 自分の環境では[ X:\sugarsync\bin*xampp\apache\conf\httpd.conf* ] にありました。
モジュールがコメントアウトされてないか確認する #LoadModule rewrite_module modules/mod_rewrite.so のようになってたら “#” を取って
#LoadModule rewrite_module modules/mod_rewrite.so とします。
リライトの規則を書く。 http.conf にどう表示を転送(書き換え?)するか RewriteRule を記述します。
<IfModule rewrite_module> # bar.htmlを作りドキュメントルートに置いて # http://localhost/foo.html でアクセスできるか確認しましょう。 RewriteEngine On RewriteRule /foo.html /bar.html </IfModule> xampp を再起動 で完了 http://localhost/foo.html にアクセスして bar.html の内容が表示されればOK!
それでも動かない場合 …とここまではGoogleで [Xampp mod_rewrite] で検索すると解説されてるサイトいっぱい出てきたんですが上記の設定だけではうちの環境では動きませんでした。
xamppには標準でpythonが入っているけど残念ながらpythonが入ってないので使いたかったら自分で入れる必要があるらしい。なので入れてみた。
環境 Windows 7 32bit
Xampp 1.7.7
Python 2.6.1 (Portable)
必要なもの “Xampp python”で検索するとmod_pythonの情報が出てきてインストール方法も色々と出てくるんだけれどもmod_pythonのwindows版はpythonのバージョンが2.5までにしか対応してないようで非常にめんどくさそう。
色々探してたら簡単な方法を載せてるサイトが見つかったのでその方法を紹介します。
インストールが必要な物は何もなし。ヽ(´▽`)ノ
設定方法 まず
[xamppをインストールしたディレクトリ]\apache\conf\httpd.conf
を開いて
# # For Python # AddHandler cgi-script .py ScriptInterpreterSource Registry-Strict と追記します。
場所は多分どこでもいいけど、既に
“AddHandler cgi-script .cgi .pl .asp”って書いてる所があるのでその下にでも。
んで、動かしたいpythonスクリプトの行頭に
#!P:\Dropbox\bin\Python26\App\python.exe とpython.exeがある場所を書いておきます。
以上で終わり。
確認 #![python.exeの置いてる場所]\python.exe print "Content-Type: text/plain" print print "hello world." と書いて[xamppのフォルダ]\htdocs\pythontest.py に保存して
xampp_start.exe でサーバーを起動させて
http://localhost/pythontext.py
を開いて “hello world.”が表示されたらOK。
サーバーが起動してる状態で設定したらxamppを一回終了させて再起動させないと動きません。
やっとくと便利なこと http://localhost/index.html が
http://localhost/ でも開けるように
http://localhost/index.py が
http://localhost/ でも開けるように設定しときましょう。
# # DirectoryIndex: sets the file that Apache will serve if a directory # is requested.
Rubyで外部のプログラムを起動させて標準エラー出力を得るには open3 を使わないとできないが、 fork() を使ってるためWindowsでは代替の win32-open3 を使って実現する。
まず gem で win32-open3 をインストール
C:\Users\tetsuyagem install win32-open3 Successfully installed win32-open3-0.3.2-x86-mswin32-60 1 gem installed Installing ri documentation for win32-open3-0.3.2-x86-mswin32-60... Installing RDoc documentation for win32-open3-0.3.2-x86-mswin32-60... 次にわざとエラを出して標準エラー出力が受け取れるか確認する。
require 'rubygems' require 'win32/open3' stdin, stdout, stderr = *Open3.popen3('ruby -error') stderr.each{|line| print line } その結果
-e:1: undefined local variable or method `rror' for main:Object (NameError) 以上。
外部プログラムでエラーでしかほしい情報を返してくれないやつとかいるのでこれが使えると大変便利。