SVN から mono を取り出して Linux-Windows Cross-platform アプリを作ってるんだけど、ソースコードのコンパイルではまったので、むかつきがてらメモ。
mono の C# のコンパイルは mcs だっていうのは知ってたんだけど、どうやっても 2.0 対象のクラスとかもろもろがうまくいかない。
で、小一時間悩んだ挙句、 2.0 向けのコンパイラはそもそも gmcs だということが判明。
$ gmcs EnjoiXXXX.cs Compilation succeeded - 0 warning(s)できた。。
Linux で svn コマンドをいちいち打つのが段々めんどくさくなってきたので、 Eclipse をいれて Subversion plugin の Subclipse をインストールしてみた。
subclipse.tigris.org
その時のメモ。
このブログを作成している際に、特定の記事だけ簡単な認証を行いたかったので、 PHP で BASIC 認証 っぽいことをやってみた。
実装は簡単で、ユーザが BASIC 認証を行った場合 PHP_AUTH_USER と PHP_AUTH_PW 環境変数にその際のユーザ名とパスワードが復号化されて格納される。
これを PHP で認証して、違ったら 401 エラーを返せばいいだけ。
$signin = false;
if (isset ($_SERVER['PHP_AUTH_USER']) &&
isset ($_SERVER['PHP_AUTH_PW']))
{
if ($_SERVER['PHP_AUTH_USER'] == 'masaki' &&
$_SERVER['PHP_AUTH_PW'] == 'password')
{
$signin = true;
}
}
if (! $signin)
{
header('WWW-Authenticate: Basic realm="Enjoi Blog"');
header('HTTP/1.0 401 Unauthorized');
print "Error 401";
exit;
}
Visual Studio + PuTTY + TortoiseSVN + AnkhSVN でフリーな GUI svn+ssh 環境を構築してみた。
前回で svn+ssh 環境を構築して Linux からは svn コマンドで簡単にアクセスできるようになったんだけど、
肝心の Windows からのアクセスがまだできてなかったのです。
Subversion の構築メモはCentOS に Subversion を導入するを、 svn+ssh 環境の構築メモはCentOS で svn+ssh 環境の構築を参考。
次回の CentOS に Subversion を導入する では単純に over http の SVN 環境を導入したけど、
実際にソースを公開して、一方でソースを更新するにはアクセス制限をしとく必要がある。
今回は svn+ssh を構築して、 ssh アクセスでの更新のみを許可する環境を作ってみた。
最近 Linux と Windows を交互に切り替えて使ってるので、共有レポジトリでバージョン管理したいなと思い、
SVN をセットアップしてみた。そのときのメモ。
ただなんか色々調べてると Mercurial というのが結構あついみたいだね。
Mercurial - Mercurial
Windows から使いづらそうだったのでパスしたけど。
DAG(rpmforge) は redhat 及び fedora 向けの追加パッケージ群です。
DAG
これのレポジトリを CentOS 5 の yum に追加しておけば、 CentOS でもほぼ完全に使用できます。
レポジトリに追加するには以下の URL から追加用の rpm を取得してインストールするだけです。
rpmforge
RPM は Redhat 5 用のやつなので、
rpmforge-release-x.x.x-x.el5.rf.yyy.rpm
になります。
もちろん CentOS 4 とかなら Redhat 4 用のやつになるので、 el4 というやつを使ってください。
これをインストールすると /etc/yum.repos.d/ 配下に rpmforge.repo が追加されて、 yum を実行した際の検索対象になります。
# rpm -ivh rpmforge-release-0.3.6-1.el5.rf.i386.rpm追加パッケージはかなり豊富。ちなみに livna との関連は知りません。
例えば www.enjoitech.jp と blog.enjoitech.jp でセッションを共有したい場合は、 php のコードの session_start () 関数の前に、 session_set_cookie_params() でクッキーの影響範囲を enjoitech.jp にしてやることができる。
session_set_cookie_params (0 , '/', 'enjoitech.jp');もしくは php.ini で
session.cookie_domain "enjoitech.jp"でも可能。
Windows の共有フォルダをマウントするには、
smbfs を OS がサポートしているなら、 mount コマンドで windows の共有フォルダをマウントできる。
$ mount -t smbfs -o username=hoge,password=hoge01 //192.168.0.100/pub /mnt/smbfstab に書く場合は以下のようにする。
//192.168.0.100/pub /mnt/smb smbfs noauto,username=hoge 0 0
ただ GUI から参照するなら最近の Linux は Network Servers メニューから Windows Network がのぞけるので、ほとんど Windows と同じ感覚で使えますね。
totem は gnome 標準の動画再生ソフトで、 CentOS 5 にも標準でインストールされてます。
これ実は backend で gstreamer か xine を使用して再生するようになってるんだけど、
標準の gstreamer のプラグインは WMV とか AVI, FLV とか全然再生できない。
これを xine 向けの totem でパッケージングしなおして、インストールして動画を再生できるようにしてみた。
リアルプレイヤーを CentOS5 にインストールするには、 compat-libstdc++33 を入れる必要があるらしい。 libstdc++ のバージョンが 6 でリアルプレイヤーは 5 を要求するから。
# yum install compat-libstdc++*
次に以下のサイトでインストール用のバイナリをダウンロードしてインストールする。
RealPlayer for Linux
# chmod 755 ./RealPlayer10GOLD.bin # ./RealPlayer10GOLD.bin
新たにレコード INSERT 時に、シーケンスキーの次の値を特定の項目にセットする場合は以下のように行う。
INSERT INTO TBL_NAME VALUES (nextval ('seq_name'), 1, 2);
また、その結果インクリメントされたシーケンスキーの値を参照するには
SELECT currval ('seq_name');
さらに、シーケンスキーの値を設定しなおしたい場合は、
SELECT setval ('seq_name', 10);SELECT setval ('seq_name', 10, false);
となり、前者は nextval の結果が 11 となり、後者は 10 となる。
たまに Access で作成したマクロやフォームから特定の文字列を検索したいときなどがあり困るんですが、
実は Access のマクロやフォームはテキストファイルに変換できます。
しかも簡単な VB スクリプトを書くだけ。
そのやり方のメモ。
Youtube を始めとする動画共有サイトで多く使用されている FLV 形式のムービーを Linux で作成してみた。
あまりこの分野詳しくないんだけど、 AVI ってやつと WMV ってやつ MPEG って拡張子のやつは変換できた。
環境は以下のとおり。
CentOS 5
Mouse Gesture は時に便利ですが、時にうざいです。特にホイールパッドを使ってると、用もないのにがんがん操作されてしまうこともあります。
で、 FireFox の設定を立ち上げて無効にしようとしたのですが、設定項目が見当たりません。ないのでしょうか?少なくても Linux 版の FireFox には見当たりません。
しかたがないので、 All-in-One Gestures というプラグインをインストールしてこれを無効化しました。
All-in-One Gestures
本当にこれしか方法がないかは分かりません。
# getenforce Disabled状態を変更するには /etc/selinux/config の SELINUX パラメータを変更します。
# vi /etc/selinux/config
SELINUX=disabledenforcing とかそういうのは次回ってことで。
CentOS 5 の Rhythmbox は標準で mp3 に対応してないし、追加パッケージも存在しないみたいです。
でも DAG にある gstreamer のプラグインを追加すれば再生できるようになります。
DAG を yum レポジトリに追加したら、 gstreamer-plugins-ugly をインストールします。
# yum install gstreamer-plugins-uglyDAG を追加する方法は CentOS 5 で DAG(rpmforge) の yum repository 追加 を参照。
CentOS 5 に限らず Linux では alsa を使ってサウンドを再生してるが、ほとんどの Linux で複数のアプリケーションからサウンドデバイスを共有して音を出すことがデフォルトでできない。
例えば rhthmebox で音楽を再生していると gaim のサウンドが再生されなかったりするわけ。
これを有効にするには alsa の dmix プラグインを有効にすればいい。
CentOS 5 + Let's note (Intel® PRO/Wireless 2200BG) で無線 LAN の設定をした。設定をしたと言っても別に大したことはしてないんだけど。
Linux の時間を合わせるには ntpdate コマンドを使って外部の ntp サーバと同期をとるのが簡単です。
ntp server の一覧は http://www.pool.ntp.org を参照。
# ntpdate jp.pool.ntp.org