自分で立てたSVNサーバがAuthorization failed

新しいシステムを作ることになったので、バージョン管理システムLink のサーバを立てようかと。個人だと最近はgitを使うことが多いのですが、会社ではSubversionが優勢。レポジトリをクラウドストレージと同期させればバックアップも取れるかなということで、WindowsサービスとしてSVNサーバを立てることに。

方法は検索すればごろごろ出てきますが、今回はここLink を参考に。svnのコマンド類はTortoiseSVNのbinディレクトリの物を使用。

サービスも無事立ち上がりTortoiseSVNから接続もできるのですが、なぜか書き込みをしようとするとAuthorization failedを連発。ログを見てもE170001: Authorization failedとしか書かれていない。

原因は非常に馬鹿らしいミス。svnserve.confには以下の3行を追加する必要があります。
anon-access = none
auth-access = write
password-db = passwd

一方svnadmin createで作成されるデフォルトのsvnserve.confは以下のようになってます。

# こめんと~

[general]
#
# たくさんのこめんと~
#
[sasl]
# またまたこめんと~
#

重要なのは[general]、[sasl]の順でブロックが記述されていること。何も考えず先ほどの3行をファイルの最後に書き足したので、これらは[sasl]ブロックに属すると解釈されます。ところがこれらは[general]ブロックに書かないといけない。つまり私の設定は無効。

3行を[general]ブロックに移すことでSVNサーバは期待通りの動作をするようになりました。2日潰してしまった…

[参考]

— posted by mu at 08:42 pm   commentComment [0]  pingTrackBack [0]

CEATEC Japan 2014

このブログを見る限りCEATECに行くのは2010年Link ぶりらしい。そんなに行ってなかったのだろうか?

ざっとみた印象。私の性格上、基本的に誉めないw

  • ディスプレイ。次世代ハイビジョン(4K/8K)が旬なのでしょうね。あちこちで目にしました。MEMS IGZOには興味あったので見てきましたが、普通にきれいでした。映り込みがどれくらいあるかも見たかったのですが、明るい映像ばっかり表示していたので分からず。
  • ヘッドアップディスプレイ(眼鏡型含む)。眼鏡型を試着しましたが、至近距離の情報表示と遠方の現実風景との焦点の往復ですごく目が疲れる。同じ理由で至近距離の情報を見ているときは現実風景に目が行ってないことが多かったです。自動車の計器やナビは自分が見たい時に意図的に視線を向ける一方、これは表示が常に視界にある分たちが悪い。これを解決してくれないと使いづらいなぁ。
  • ソフトウェアの占める割合が増えた。自動車は燃料電池以外は情報端末化を強化しますよくらい? 村田製作所のあれも電子部品よりソフトウェアの賜物のように思える。10台を組織行動させるのもそうだし、玉乗りっぽく見えるように人形をわざと揺らしているのもそう。直立不動にする方が簡単だと思う。
  • 燃料電池のエネルギー変換効率は立派だとしても、水素はCO2を出さないクリーンエネルギーですという表現にはどうも納得いかない私。その水素をどうやって作るのかと。

まとめ:ロボット相撲見るのも楽しいです。

— posted by mu at 10:57 pm   commentComment [0]  pingTrackBack [0]

recptx.plが動作するんだけどの件

FreeBSD portsのptx-kmodに付属しているrecptx.plをfbsdpt3で用いると、sysctlの部分でPermission deniedになるようです。開いているデバイスにsysctlをかけないように、id:f99aqLink 氏はsysctlの位置を変えて回避したようです。

ただこれではsysctl中はデバイスがフリーになっているので、その間に別のプロセスがデバイスを開いちゃう時間が増大し、スレッドセーフ的には気持ち悪さ++らしいです。

一応こんな感じにロックファイルを使うと完璧じゃないけど気持ち悪さの上昇が抑えられるみたいです。/tmp/.recptx.lockをあらかじめ用意しておくといいらしいです。ついでにマルチカード対応もおまけしとくよって。

--- /usr/ports/multimedia/ptx-kmod/work/ptx-20111212/tools/recptx.pl    2011-12-14 04:26:37.000000000 +0900
+++ /usr/local/bin/recptx.pl    2014-09-29 13:37:17.000000000 +0900
@@ -252,39 +252,46 @@
 #
 # select device
 #
-#  TODO: multicard (/dev/ptx1, /dev/ptx2, ...)
-#
-open($t, "<", "/dev/ptx0.${tuner}0");
-if ($t) {
-    $dev = "/dev/ptx0.${tuner}0";
-    $mib = "dev.ptx.0.${tuner}0";
-} else {
-    open($t, "<", "/dev/ptx0.${tuner}1");
-    if ($t) {
-       $dev = "/dev/ptx0.${tuner}1";
-       $mib = "dev.ptx.0.${tuner}1";
-    } else {
-       die("device busy");
+$tunerlock = '/tmp/.recptx.lock';
+open(TUNERSCAN, "< $tunerlock") or die "Can not open lock file ${tunerlock}";
+flock(TUNERSCAN, 1);
+
+$deviceFound = false;
+foreach $card ('0') # Change here for multi-tuner.  Ex ('0', '1')
+{
+    foreach $port ('0', '1')
+    {
+       if(open($t, "<", "/dev/ptx${card}.${tuner}${port}"))
+       {
+           $dev = "/dev/ptx${card}.${tuner}${port}";
+           $mib = "dev.ptx.${card}.${tuner}${port}";
+           $deviceFound = true;
+           last;
+       }
     }
+
+    last if($deviceFound);
 }
 
+die("device busy") if(!$deviceFound);
+
+
 #
 # recording
 #
+close $t;
 system("/sbin/sysctl $mib.freq=$freq >/dev/null 2>&1");
-
 eval {
     local $SIG{ALRM} = sub { die "alarm¥n" };
     alarm $duration;
 
     $pid = fork();
     if ($pid) {
-        close $t;
        wait;
     } else {
        $cmd = sprintf($cmdfmt, $dev, $filename);
-        close $t;
-       exec("$cmd");
+       close(TUNERSCAN);
+       exec($cmd);
     }
 
     alarm 0;

っていうことを通りすがりのおばさんが言ってました。正直私にはなんのことやらさっぱりです。

[参照]

— posted by mu at 10:42 pm   commentComment [0]  pingTrackBack [0]

チケットぴあがサクラドメインをはじく

ここに書いてあることと全く同じ。Link チケットぴあLink でメインIDをサクラドメインLink にしてあると、予約やチケット購入時に「お客様の会員情報ではサービスをご利用いただくことはできません」と表示される。メインメールアドレスをGMailに変更して購入可能となった。

ほんと、そうならそう表示しろとか、そもそもそんなメールアドレスで入会認めるな(今回のために会員登録した)とか思ってしまう。お客様対応部署にがんがん問い合わせて、負荷をかけた方が良いのかもしれない。

たぶんさくらのサーバが不正行為によく使われるんだろうな。さくらから携帯にメールを送ると拒否されることも増えてきた気がするし…

— posted by mu at 11:32 am   commentComment [0]  pingTrackBack [0]

自宅サーバのHDD残量監視

7月の出張から帰ってみると、自宅サーバのHDD残量が0になって数日分の記録データが消失した模様。出張前にそれなりの容量を空けておいたはずなのですが、予定外に不要なものが記録されていたようで。

毎年このようなことが起きるので残量を監視してメールで報告してくれるプログラムでも探そうかなと思ったのですが、内容が簡単なので作ることに。ついでに仕事でPythonを覚えることになったので、IronPythonLink で作ってみようかと。

  • 残量以外にHDDの健全性チェック機能も付けたので、実行には要管理者権限。
  • 調べたいのはデータドライブだけなので、100GB以上のドライブ限定(STORAGE_MIN_TOTAL_SIZE)。
  • ドライブの使用量が90%を超えた場合にメール (STORAGE_MAX_FREE_RATIO)
  • スクリプト内にメールサーバのパスワードが平文であるのがセキュリティ的に難ありですが、それはおいおい修正ということで(と言って、やらないんだろうな>自分)
MAIL_FROM = "from@example.net"
MAIL_TO = "to@example.net"
SMTP_SERVER = "mail.example.net"
SMTP_PORT = 587
SMTP_USER = "smtpuser"
SMTP_PASSWORD = "smtppassword"
STORAGE_MIN_TOTAL_SIZE = 100e+9
STORAGE_MAX_FREE_RATIO = 0.9

import clr
clr.AddReferenceByPartialName("System.Management")
clr.AddReferenceByPartialName("System.Net")
from System.Management import ManagementScope,ObjectQuery,ManagementObjectSearcher,ManagementObjectCollection
from System.IO import DriveInfo,DriveType
from System import String
from System.Net import NetworkCredential
from System.Net.Mail import SmtpClient,MailMessage

message = ""

# Check HDD health
scope = ManagementScope("¥¥¥¥.¥¥ROOT¥¥WMI")
query = ObjectQuery("SELECT * FROM MSStorageDriver_FailurePredictStatus WHERE PredictFailure=True")
searcher = ManagementObjectSearcher(scope, query)
mgrCollection = searcher.Get()

for aMgr in mgrCollection:
    message = message + aMgr["InstanceName"] + " is predicted to be failure.¥n"


# Check drive free space
drives = DriveInfo.GetDrives()
for aDrive in drives:
    if aDrive.DriveType == DriveType.Fixed and ¥
       aDrive.TotalSize > STORAGE_MIN_TOTAL_SIZE and ¥
       float(aDrive.TotalFreeSpace)/aDrive.TotalSize>STORAGE_MAX_FREE_RATIO:
        message = message + String.Format("{0} has {1:0.0}GB free.¥n", aDrive.Name, aDrive.TotalFreeSpace/1e+9)

try:
    if message <> "":
        mailMsg = MailMessage(MAIL_FROM, MAIL_TO)
        mailMsg.Subject = "Storage alert"
        mailMsg.Body = message
        
        smtpClient = SmtpClient(SMTP_SERVER, SMTP_PORT)
        smtpClient.Credentials = NetworkCredential(SMTP_USER, SMTP_PASSWORD)
        
        smtpClient.Send(mailMsg)

except Exception as ex:
    print ex.clsException
[参照]

— posted by mu at 09:31 pm   commentComment [0]  pingTrackBack [0]

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0337 sec.
prev
2017.7
next
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31