twistedをバックグラウンドで起動させる

twistedのプロセスとして起動させてバックグランドで実行できるようにする。そうしないとターミナルをずっと立ち上げたままにしておかないといけないのでそうせざるをえないというか。それを可能にさせるのがtwistdまたはtwistd3。twistdで実行するためのpythonファイルの起動部分は下記のような感じ。

from twisted.application import service, internet

-略-

log.startLogging(sys.stdout)

factory = MyFactory()
factory.protocol = MyServerProtocol

server = internet.TCPServer(9000, factory)
application = service.Application("my_httpd")
server.setServiceParent(application)

普通の場合のtwistedの起動は下記のような感じ。多少違いがある。


-略-

if __name__ == '__main__':

	log.startLogging(sys.stdout)

	factory = MyFactory()
	factory.protocol = MyServerProtocol

	reactor.listenTCP(9000, factory)
	reactor.run()

起動するときのコマンドと引数は


# /usr/bin/twistd3 -l /var/log/server.log -y /home/nakahira/twisted/test-server-d.py

という感じで実行するとプロセスとしてバックグラウンドとして実行される。公式ドキュメントではアプリケーションとして実行するという風な解説があったが詳しくはよくわからない。実行したtwistedのプログラムを止めるときはpsコマンドで当該のプロセスを探して直接killするようにしている(私の場合)

パート16: Twisted をデーモン化する

build.gradleが2つある :android studio

最近android studio を使ってまったくの初心者状態からプロジェクト開発をしてみたら初歩の初歩でつまづく。ビルドを定義する重要ファイルであるbuild.gradleというファイルについて、参考サイトをググったりしてみたが情報が古くなってしまっているのか最近のandroid studioの環境と様変わりしていて話が合わなくなっている。ググったときにすぐ出てくる情報だとプロジェクト直下とappフォルダ直下にそれぞれあるらしいが、最近の環境ではgradle scripts というフォルダのようなものにひとまとまりにされていてそこにbuild.gradleファイルが存在している。問題はそこにbuild.gradleファイルが2つあるということ。

  • build.gradle(Project:project)
  • build.gradle(Module:project)

両方開いて確認してみた感じでは、Moduleとカッコ内に記載しているbuild.gradleファイルの方が開発して依存関係などを記述するのに関係がありそうなファイルということはわかった。最初の最初でこんなことでつまづくことになるとこの先うまくできるのかどうか不安になる。

windows10の内蔵の時計がずれる

自作して4~5年つかているPCの内蔵時計がずれるようになった。手作業で同期をすればその時だけは正しい時間になるがまたしばらくするとどんどん遅れていってまったく時計として機能しない。ぐぐってなぜ時計が遅れるのかという理由も調べてみて、内蔵のボタン電池がそろそろ寿命が来てそれで遅れだしたのかな?と思って新品の電池に交換してもやはり遅れる。どうやらソフトウェア的な不具合ではなくマザーボードのハードウェアの不具合ではなかろうかと思い始めて、大分使ったからそろそろ新しいPCを新調するかと思ってふとそのマシンを見たら、側面にマグネットフックがくっついているのに気づいた。

←こんなやつ

もしかして、これのせいか?これを筐体の側面にくっつけて電源タップを固定していたのだけれど、その裏にはマザーボードが近距離で接している。マザーボードなどの基盤は磁力に弱いとは言われるがそのせいで内蔵の時計が狂ったという話はあまりきいたことはないが・・・、とりあえずすぐに固定していたマグネットフックを外して様子をみてみることにした。

外した直後から1日ぐらいはやはり時計の遅れが見られて、これが原因ではなかったか・・・と思っていたが、1週間ぐらい経過して確認してみると時計の遅れはない。断定はできないがもしかしたら磁石がマザーボードに悪影響を与えていたという可能性もあるかもしれない。win10の内蔵時計が遅れて困っている人はマザーボードのすぐ近くに磁石のようなものがくっついていないか確認してみるのも解決手段になるかもしれないのでお試しあれ。

コロナ禍の読み

今更というか調べてなかったので確証がなかったので調べてみたが、「コロナ禍」の読み方はどうやら「ころなか」と読むのが正しいらしい。

コロナ禍 – Wikipedia

この「禍(わざわい)」という字はなんだか「鍋(なべ)」という時に見間違う可能性もありそうで誰かコロナ鍋とか読んでる人がいるんじゃないかとぐぐってみたら、いた。

コロナ鍋での社会福祉の学び – 長崎国際大学 (PDF注意)

「コロナ鍋での社会福祉」というタイトルでもしかしたらコロナ下でも元気になるような鍋料理の話でもしてるのかもとよんで見たら素で間違えてるんだが。

ヤフオクのキャンセルが多くなった件

【再掲】評価と取引中止時の落札システム利用料の仕様変更について

キャンセル操作がかんたんに!自動で「悪い評価」もつかなくなります!

3月22日以降は、「落札者削除」時に自動で「悪い評価」がつかなくなります!
これによって、キャンセルしなければならない状況になっても、当事者間で解決しやすくなると考えています。

ヤフオクの仕様がいつの間にか変更になっていて、気軽にキャンセルができるようになった模様。従来ではヤフオクの取引においてキャンセルをするということは最後の手段というか厳禁のようなイメージを持っていたのだが、現在の風潮ではそういうのはもうなくなってキャンセルすることが当たり前な感覚になってしまったのだろうか。取引をキャンセルすることで悪い評価が付くのは、取引が無事成立するためのせめてもの抑止力になっていたと思っていたが、それがなくなるということはキャンセルということに対して心理的な障壁も取り払われてしまう気がする。オークションでのキャンセルは落札者はいいかもしれないが出品者にとっては結構なダメージとなりうる。即決価格出品のフリマ形式でならキャンセルされたところで大したことはないかもしれないが、オークション形式はどうしても開催期間に数日を要するのでキャンセルされたらまた最初から出品し直して入札と競りからの落札を待たなければいけなくなる。つまり時間が激しく無駄なのだ。

メルカリやPaypayフリマなどのフリマ形式の取引が最近は主流になってきて、ヤフオクのような競り形式の取引はもう廃れていってしまうのかもしれない。ヤフオクの運営がどういうつもりでキャンセルをしやすくなった仕様変更にしたのかは謎だが出品者としてはあまり出品する気がなくなるのは避けられないのではないだろうか(私も出品してみたら何件か落札後に連絡が途絶えて仕方なくキャンセルせざるを得なくなった取引があった)

thinkpad R500のCPUをP8700へ換装

thinkpad R500のCPUをceleron dual core T3000からCore 2 duo P8700へ換装してみた。作業自体はやや難航したがなんとか無事交換できたので結果のベンチマークを比較してみる。

T3000 P8700
ベンチマーク(crystalmark)

CPU性能はスコアにして1.5倍ほどアップして、体感でも格段に速さが実感できるようになった。win10 64bit環境でもまだまだ現役で利用できるほどの性能だと思う。

thinkpad r500とsl510の比較

似たようなスペックのthinkpad r500とsl510を利用することができたのでいろいろと比較してみる。SL510はその当時の製品ラインナップで最も低価格の製品という位置づけだった模様。R500はSL510の一つ上のランクという位置づけとのこと。SL510の方が発売時期的には後発。

SL510 R500
CPU Celeron Dual Core T3000 Celeron Dual Core T3000
memory DDR3 4GB DDR3 4GB
ストレージ intel ssd 40gb wd ssd 120gb
チップセット GM40 GM45
FSB 800 1066
液晶 光沢 非光沢
ベンチマーク(crystalmark)
長所 背面からパネル1つ外すだけでメモリやストレージ、CPUなどにアクセスが簡単にできる CPUとストレージの配置が離れているためCPUの熱をもらってストレージの温度が上昇するということがない。加えて排熱が上手くいっているためか筐体全体の温度も低く抑えられてCPUファンが常時高回転で回らないので静か。数時間利用してみたが筐体の温度が上がることはなかった。
短所 CPUの排熱に難があり筐体温度が上昇しがち。CPUとストレージが近いためCPUの温度上昇にあわせてストレージ温度も上昇することになる。CPUファンがちょっとしたことで全開で回るため耳障り。 SL510に比べてメモリやCPU交換へのアクセスがやや面倒

所感

同じCPUが載ったマシンなのでベンチマークを比較する意味はないかと思ったが、r500の方がベンチマークで1割ほどスコアが良いという結果になった。チップセットの帯域が1066と一段上の仕様となっているのでその差でこの性能差が出ているのだろうかと思うが意外に大きな差ではあると思う。あとr500は実際にCPUのヒートシンク周りを見てみたところsl510に比べて複雑になっていてCPUの排熱する仕組みが工夫されていてよくできていると思った(その分CPUの交換の難易度は上がるのだが)。キーボードは6列と7列のモデル違いではあるが使用感はそれほど変わらないが、若干r500のキーボードの方がキーの打ち心地は良いような気がする。
いろいろ比較して気づいたことは、R500はなかなかの良マシンだと思う。SL510は悪くはないが排熱をもう少しなんとかならんかったのかなとは思うけれども、使えないことはない。R500とSL510では一線を画するぐらいR500の方が作りが良い。

thinkpad ls510のcpuの換装について

現在より約10年以上前に発売されたthinkpadの機種であるsl510というモデルのcpuを交換してみた。
現在装着されているcpuはceleron dual core t3000という型番のものがついていて、それをcore 2 duo t8100という型番のcpuに換装する。sl510のチップセットの仕様上はt8100への換装は理論上可能である模様。(TDPとかFSBとか)
実際にt3000からt8100へ換装してみたところ、PCは起動することができてbios上でも認識していて、OSも立ち上がることができた。ここまでは順調だったのだが、cpuの発熱という致命的な問題が発生した。t3000とt8100は同じTDPとはなっているが処理中の発熱具合ではt8100の方が激しくなっている。つまるところsl510の筐体の排熱性能ではt8100の熱を十分に逃がすことができないのだ。アイドル時に80度前後に張り付き、何か処理を複数しようものなら徐々に温度が上がっていき上限の105度まで達して強制シャットダウンという次第になる。t3000での運用でも常時60度前後で推移していて、熱対策を兼ねてCPUを交換してみるかと思ってやったらさらに温度が上がるという始末。

t8100に換装すれば処理速度が向上するのでその分負荷状態になる時間が減ってCPU温度も低くなるんではないだろうか、という目論見だったがそうはならずむしろ逆で負荷状態の時間はなぜか増えてCPU温度もさらに高くなるという現象となった。処理速度はt3000よりも速いのかもしれないがそこまで劇的に変わるというわけでもなく、t3000は速くはないがwin10環境でまずまず我慢できる程度の速度はあるので振り出しに戻ったがこれで我慢することにする。

というわけでCPUは元のceleronのt3000に戻した。t8100の方が体感で確かに速いような気はするがそれよりも発熱が問題ありすぎた。sl510のcpu換装はやや無理があった。他のブログサイトでは成功例も多数あるようだが私のsl510は排熱がうまくいかなくてアイドル時80度前後、これではマザーボードやメモリやSSDなどのパーツの寿命にも影響が出かねないため残念だけれどもあきらめることにした。

古いスキャナをwinows10で利用する

windows xp 32bit対応のcanon製スキャナを入手したのだけれど、windows 10 64bit環境では対応するドライバやアプリケーションがインストールできないため使うためには一工夫する必要がある。

私がやってみたのは

  1. Virtual boxをインストール
  2. xp 32bit仮想環境を構築してxpをインストールする
  3. xp 32bit環境を構築後にスキャナのドライバとアプリケーションをインストールして使う

という感じで、一応使えるようにはなった。これをやるにはwindows xpのインストールディスクを持っていないとだめなのですぐにだれにでもというわけにはいかない。仮想環境の構築という作業をはじめてやってみたのだけれど意外と面倒くさくてある程度のPCスキルが必要な気がする。素直にxpがインストールされているマシンを用意するか別のubuntuなどのosがインストールされているマシンなどで利用するなどが簡単かもしれない。