2006年12月31日
cvsadmin以外の権限制御
cvsadmin以外のユーザのadminコマンドの権限制御についてのエントリです。
----
cvsでは「cvs admin」コマンドでリビジョンの削除を含むかなり危険な操作が多数できてしまいます。
ただ、このコマンドはその危険性もあり、簡単に使用禁止にできます。
手順は
cvs の構築時に決定されるグループ名 (既定では cvsadmin) が存在する場合、そのグループの一員だけが cvs admin を利用できます。その名前で無人のグループを作成すれば、 cvs admin の使用を全面的に禁止できます。
ただ、そうするとコミットログを変更する「cvs admin -m」や擬似ロック制御で用いる「-l」や「-u」、ディレクトリごとのキーワード置換モードを設定する「-k」まで使用できなくなります。
特にコミットログの付け直しは「動作版」と銘打ってコミットしたのに、動かなかったけど、バージョンとしては重要な場合などに良く付け直すのでツブしたくないコマンドだと思います。
そう言う要望が全世界的にも多かったのかどうか知りませんが、最近のCVSではCVSROOT/configに記載する「UserAdminOptions」というオプションが増えています。
このオプションはcvsadminグループが存在しているときに、cvsadminに所属していないユーザが「cvs admin」コマンドのどのオプションを実行できるかと言うことを指定するためのオプションで
UserAdminOptions=klumなどと指定することによって上記の問題を回避できます。
詳細は
2006年11月06日
MySQL+utf8+ひらがなでソート
タイトルの条件であいうえお順でソートさせるにはどうやるのが一番良いんでしょうかねぇ・・・
そもそもそんな単純なことで悩まないといけない最大の原因は、MySQLのutf8のバイナリ照合指定で「utf8_japanese_ci」が存在しないため。
デフォルトではおそらくutf8_general_ciになっていますが、これが指定されている列にひらがなを格納してOrder byしても予定の結果は帰りません。
また、そもそもバイナリで普通にソートしてくれれば並ぶという話しも有るので、試しにutf8_binなどを指定して見ましたが、これも変な順序でしか並びません。
無論、utf8_unicode_ciなんかも試してみましたが、これもダメ。
で、いろいろと試行錯誤して結局次のようなOrder by指定で落ち着きました。
SELECT hoge FROM foo ORDER BY CAST(ひらがなを格納した列 AS CHAR)毎回CASTされるというのはどうにも気持ち悪いですが、そう言う挙動を期待して他がいろいろとできあがっていたので、それを直すのに比べればと言うことで、仕方が無くガマンすることにしました。 続きを読む...
2005年07月23日
Perl!?なSleep2.0
Javaにはどうにも縁がないんですが
まず公式サイトは
(むろんJava自体はインストールされていないといけませんが(笑))
で、リファレンスを眺めながら簡単なコードをかいてみる
$a=3;で、aaa.slという名前でとりあえず、保存して実行っと
$b=4;
println($a + $b);
C:\> java -jar sleep.jar aaa.sl_| ̄|○Error: Syntax error at line 1
$a=3
なんでやねん(;´д`)ノ
もしやと思って
$a = 3;っていうぐあいに「「=」の前後にスペースを入れてみると
$b = 4;
println($a + $b);
C:\> java -jar sleep.jar aaa.slうわ〜演算子の前後に半角スペース無いと動きませんか?(苦笑)
7
てか、シェルスクリプトかよ(爆)
こんなの使えたモノじゃないので当分無かったことにしようと思います(笑)
(せめて上記の問題が解決するまではさわってみる気も起こりません(;´д`)ノ)
2005年05月07日
MySQLで全文検索
MySQLにて運用中のDBで、数万件入って居るテーブルにて全文検索をするために
TextMsg like '%$search%'なんていう風にして検索していたんですが、どうも最近1回の検索に数秒かかるようになってしまったため、なんとか高速化できないものかと調べてみました。
まず、出てきた答えの一つが
MATCH (列名) AGAINST ('検索文字');を使う方法。
これにはFULLTEXTインデックスという大きめのインデックスが必要になりますがその分高速化できるようです。
しかし
便利そうな全文検索ですが、日本語のデータですぐに利用できるかというと、簡単ではありません。
ちなみに、↑の'a5aea5b6a5aea5b6'というのは、「ギザギザ」を16進数で表記したもの。こうやらないとMySQLが検索してくれないため。当然、事前に対象となるフィールドのデータを16進数にしたものを格納している。
正直、今更数万件のDBの16進をいちいち求めて別テーブルに入れたり、データ登録ツールの自作なんてしたくないですよ(;´д`)ノ
と言うか、そもそも現状のホストマシン自体更新予定で、しかもDBエンジン自体の変更も視野に入れて検討中なんでもう少し現状で様子を見てみようと思います。
続きを読む...2004年06月11日
RPGツクールXP
その理由は
- プラグインを入れればいろいろな言語の開発が行える
- cvsサーバとの親和性が高い<これ重要
- JAVAなのでWindowsじゃなくても動く
- フリー
■新機能『RGSS』『RPGツクールXP』で使用する、キャラクターのパラメータや戦闘システムなど、様々な機能はすべて『スクリプト』と呼ばれるプログラムで構成されています。
『RPGツクールXP』では、『Ruby』というプログラミング言語を『RPGツクール』専用にカスタマイズ
した言語『Ruby Game Scripting System(以下、『RGSS』)』が採用されており、その中のスクリプトを編集することで、ツクールの機能を自由に変更・追加することができるのです。/div>Rubyでゲーム作れちゃうですか( ̄○ ̄;)!これまでのシリーズでは、やっぱりある程度決まった型の中でゲームを構築していたようですが、Rubyでイベント処理書けるのなら自分が思い描くとおりのゲームが作れるんじゃ無いかと思います。
というか遊びながらゲームの勉強が出来るとは、理想のプログラムの勉強手段なのでは無いのでしょうか?
時間がないので私自身は買わないと思いますが、学生時代に出ていれば買っていろいろがんばっていただろうなぁと思います(^^;
続きを読む...
2004年03月01日
IEのJavaScriptのエラー表示
管理しているWEBサイトにJavaScriptでちょっと機能追加しようとしたら次のようなエラーがでました。
ランタイムエラーが発生しました。30行ね、と思ってソース見直して格闘を始めるも、いくら修正してもエラーで通らない。
デバッグしますか?行:30
エラー: オブジェクトがありません。
そこで思い切って30行目をコメントアウトしてみたら、まだ同じエラーがでる_| ̄|○あり得ないのでちょっとぐぐって見たところ
うぉい(;´д`)ノ
その行番号+1行目が怪しいポイントです。
なぜ+1なのかは、IEのバグです。あわてて次の行を見てみると、まだその段階では定義されてないオブジェクトを使用しておりました(笑)
にしても、エラーの行ぐらいちゃんと出して欲しいモノです。
2004年02月22日
SecurityError
Rubyってほとんど触ったこと無いんですが、今回ちょっといろいろいじらないといけないことになって作業してたら次のようなエラーに遭遇
protocol.rb:83:in `initialize': Insecure operation - initialize (SecurityError)なんだこれ?調べてみると外部から渡される引数の汚染除去が終わってないときに出るエラーらしいですが、自分的に引数には結構縛り掛けてあっただけにちょっとショック(笑)
本当はちゃんと汚染除去を考えてプログラムを書き直さないといけないんですが、そんなにたいした用途に使う訳じゃないものなんで裏技で逃れることにしました。
方法はuntaintを使うだけ。
使い方は以下のような感じです。aaa = 外部からのデータまぁ、汚染されてないと思いこませるだけの裏技なんで、公開するようなサービスなんかではこういう解決方法はやめましょう(^^;
*func(aa.untaint) #←SecurityErrorを出す関数2003年11月05日
JSで操作できないオブジェクト
JavaScriptを使っていて
<input type=text name=123>といった数字で始まるオブジェクト名を持つ要素をいじろうと思ったんですが、いざ使ってみるとエラーになります。まぁ、アルファベットで始めるように変更すればちゃんと動くんで良いんですが、実際どの文字を使って良いのかと調べてみたところ
・・・びみょ〜
IDやNAMEトークン字句は、文字([A-Za-z])とそれに続くdigits ([0-9])・hyphens ("-")・underscores ("_")・colons (":")・periods (".")で始まらなければなりません。
それは数字を使って良いの悪いの?(;´д`)ノなんで、原文の方を見てみる
どうも使っちゃダメのようです。
ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods (".").まぁ、それじゃ仕方ありませんね・・・
というか、結構これまで違反していた予感(^^;;;
(特にページ内にアンカー作るときに<a name="20031101">とか平気でやってたからなぁ・・・)2003年09月03日
Eclipse(1)
フリーのIDEらしい「Eclipse」を入れてみました。
とりあえず上記サイトを参考にインストールさせて頂いたのでこちらに書いてあること以外はわからなかったりしますが、よさげだなと思った点は次の通り
っていうことでしょうか。
で、これまでCVSでソース管理していた都合でCVSネイティブ対応は大変ありがたいのですが、試してみるとCVSサーバにどうもうまくつながらない・・・
って、いろいろ試してみたらリポジトリって/cvsがルートの/cvs/prog1がほしかったら/cvsを指定しないとだめだったんですね。そりゃつながらないわけだよ・・・
これだと/cvsの下にあるリポジトリはリポジトリエクスプローラーで全部見えてちょっと気持ち悪いですがまぁ、そこら辺はユーザ管理でしっかりすればいいと言うことで、まぁ、いいや。
あと、EUC_JPを使うと〜とかが化けるらしいのでそこら辺に気をつければいろいろ役に立ちそうな感じです。
その他のエントリ