[ カテゴリー » PC関連 ]

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]

Lumia 521購入

blog20140723-Lumia521

私がスマートフォンに求めるのは

  • SIMフリー
  • Dual SIM (3G+2Gでもいいので同時待ち受け)
  • 海外出張先(アメリカ・フィリピン・中国・タイ)で最低3G/4Gの電波を拾える
  • おサイフケータイ
  • テザリング
  • 解像度(日本語が潰れない程度に)

でしょうか。まぁこれ全部を満たすものはないでしょうから、妥協して複数の機種で要望を満たすことになります。おサイフケータイなんて日本の独自規格ですから、これを満たそうとしただけで、あと満たせるのは解像度とテザリングくらい。自ずと日本専用機に。

これと同じくらい厄介な条件に思えるのが、アメリカで電波を拾えること。多くのスマホに北米版なんてのがあるくらい、その他の国とは異なる周波数帯を使用します。上りと下りで周波数が違うなんてのがあるのはこの国くらいじゃないでしょうか。

Nexus7は手持ちでは数少ない北米で使える機種だったのですが、通話機能ないし、出張直前に壊れるしLink

なんか北米で使える安いスマホ無いかなと探していたら、マイクロソフトがNokia Lumia 520/521を$60~70Link で売っているのを発見。Windows Phoneにも興味あったので、購入することにしました。

以前アメリカで通販で購入した時Link 痛い目にあったことがあります。送料を安く抑えようとして陸送(列車かトラック)にしたのですが、「到着に3~7日」と表記されていたのを7日なんて離島かアラスカだろうと舐めていたら、ニューヨークから延々と列車で運ばれてカリフォルニアに着くのに本当に7日かかり、荷物が届く前に帰国する羽目にw

という訳で今回は、日本で注文して宿泊先のホテルに送ってもらうことにしました。日本のクレジットカードで、アメリカのホテルに配達なんて注文通るのかと思ってましたが、あっさり通りました。配達も注文後5日位で届いたみたいです。UPS、ぐっじょぶ。

さて1週間使った感想ですが、

  • 画面の演出は好み。動作もスリープ解除後のパスワード入力までに引っかかりを感じるくらい。
  • 解像度(800x480)が低くて、Webブラウジングが厳しい。
  • Windows 8だった。8.1でしか動かないアプリが一部あり、ただでさえストアアプリが少ないのにさらに減る。
  • 4Gと表示されるのでLTE通信でしょうけど、それほど速くは感じない。
  • For T-mobile with No contract (T-mobileとの契約不要)の表記をT-Mobileの特殊周波数に対応したSIMフリー機だと勘違いした。2年縛りとか言った契約は一切不要ですが、SIMロックはしっかり入ってた。
  • だからさ、なんでストラップホールがないのよ?Link

普段スマホの使い道はメール・Web・スケジュール管理・2ちゃんねる位なので使えることは使えますが、もうちょっと解像度の高い機種が欲しくなってきました。イカンイカン…

— posted by mu at 02:23 pm   commentComment [0]  pingTrackBack [0]

Nexus7故障

blog20140713-Nexus7Broken

_| ̄|○

先日OSを4.4.3にアップデート。このアップデート自体はバグフィックスみたいなものらしく、大きな機能変更はないとのこと。

しばらくは問題なかったのですが、数日後触ってもいないSIMが抜き取られたとのエラーが。このエラーになると問答無用で再起動。そういうことや再起動してもLTEキャリアを見つけられないなどが数回。接触が悪いのかなと思い、電源を切った状態でSIMを1回だけ抜き挿し。これで安定したかと思ったのですが…

7/9の夜に見てみると本体がほんのり温かい上に、勝手に再起動した模様。が、その再起動の初期、写真のようなGoogleのロゴが出ている段階から先に進まない Σ(゚Д゚) 何回再起動しても同じところで止まる。

ネットで調べるとどうやらファクトリイメージを焼かないといけないらしい。幸いにもブートローダーは起動するので、CPUなどは生きている。下準備としてブートローダーをアンロックLink しようといたところ…いつまで経ってもユーザーデータ削除が終わらない。あ~、こりゃフラッシュメモリが逝ったか?

明日からアメリカ出張なので、帰国後まで放置するよりさっさと修理してもらうことにしました。もちろん上のようなことを確認したなど言わず、単に「起動しなくなった」とだけ伝えたのはお約束(^_^;) 言っても理解してもらえそうだったけど>修理窓口担当

Nexus7がやられたか。だが奴は我がモバイル端末の中でも最弱。まだ第2第3の端末が。…最弱だけは嘘です、唯一アメリカでLTE通信ができる最強でした。

[2014/07/27 追記] 修理が完了した模様。ちょうど2週間。

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

T: Y: ALL: Online:
ThemeSwitch
  • Basic
Created in 0.0255 sec.
prev
2024.5
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