先日のシュテルンブロコットツリーのプログラムのフローチャート。
若いころはフローチャートの必要性が良くわからなかったが、年のせいか、フローチャートが無いとスクリプトを書いている途中で何を書くべきだったかわからなくなってしまう。
数週間後にはスクリプト中のそれぞれの文の役割もあやふやになってきてしまうので、とても重要です。
2017年11月22日水曜日
2017年11月20日月曜日
Stern-Brocot木
Stern-Brocot木で任意の値に近い分数を探すスクリプトをPythonで書いた。比較しつつ降りて行ってその時の分数と入力値との差を表示。
例えば 0.283/1 を 入れると、15/53 とかが近いなというのがわかる。
連分数展開を解くのでも良いと思うが、簡単。
以下Pythonスクリプト(2.7を使用)
#coding: Shift_JIS
#numerator/denominator
cnum = 1
cdenom = 1
def SternBrocot(lnum, ldenom, cnum, cdenom, rnum, rdenom, inputnum):
ntemp = float(cnum) / float(cdenom) #Cを計算
if ntemp < inputnum: #入力の方がCよりも大きい
# C → L
lnum = cnum
ldenom = cdenom
# 分子分母それぞれにつき C + R → C
cnum = cnum + rnum
cdenom = cdenom + rdenom
else: #入力の方がCよりも小さい
# C → RL
rnum = cnum
rdenom = cdenom
# 分子分母それぞれにつき C + L → C
cnum = cnum + lnum
cdenom = cdenom + ldenom
#
#print "lnum =", lnum, "ldenom =", ldenom, "cnum =", cnum, "cdenom =", cdenom, "rnum =", rnum, "rdenom =", rdenom, "inputnm =", inputnum
#print "L =", lnum, "/", ldenom, ", C =", cnum, "/", cdenom, ", R =", rnum, "/", rdenom
ntemp = float(cnum) / float(cdenom) #新しいCの計算
diff = (inputnum - ntemp)*10**6
print "C =", cnum, "/", cdenom, "=", ntemp, ", ", diff, " ppm"
#
if inputnum == ntemp:
print "終了"
else:
SternBrocot(lnum, ldenom, cnum, cdenom, rnum, rdenom, inputnum)
# Main
x = float(input("Please Enter Numerator: "))
y = float(input("Please Enter Denominator: "))
inputnum = x / y
#まずCenter(1/1)と等しくないことを確認しておく
if inputnum == 1:
print "oshimai" #入力が1だったら終了
else:
SternBrocot(0, 1, 1, 1, 1, 0, inputnum)
例えば 0.283/1 を 入れると、15/53 とかが近いなというのがわかる。
連分数展開を解くのでも良いと思うが、簡単。
以下Pythonスクリプト(2.7を使用)
#coding: Shift_JIS
#numerator/denominator
cnum = 1
cdenom = 1
def SternBrocot(lnum, ldenom, cnum, cdenom, rnum, rdenom, inputnum):
ntemp = float(cnum) / float(cdenom) #Cを計算
if ntemp < inputnum: #入力の方がCよりも大きい
# C → L
lnum = cnum
ldenom = cdenom
# 分子分母それぞれにつき C + R → C
cnum = cnum + rnum
cdenom = cdenom + rdenom
else: #入力の方がCよりも小さい
# C → RL
rnum = cnum
rdenom = cdenom
# 分子分母それぞれにつき C + L → C
cnum = cnum + lnum
cdenom = cdenom + ldenom
#
#print "lnum =", lnum, "ldenom =", ldenom, "cnum =", cnum, "cdenom =", cdenom, "rnum =", rnum, "rdenom =", rdenom, "inputnm =", inputnum
#print "L =", lnum, "/", ldenom, ", C =", cnum, "/", cdenom, ", R =", rnum, "/", rdenom
ntemp = float(cnum) / float(cdenom) #新しいCの計算
diff = (inputnum - ntemp)*10**6
print "C =", cnum, "/", cdenom, "=", ntemp, ", ", diff, " ppm"
#
if inputnum == ntemp:
print "終了"
else:
SternBrocot(lnum, ldenom, cnum, cdenom, rnum, rdenom, inputnum)
# Main
x = float(input("Please Enter Numerator: "))
y = float(input("Please Enter Denominator: "))
inputnum = x / y
#まずCenter(1/1)と等しくないことを確認しておく
if inputnum == 1:
print "oshimai" #入力が1だったら終了
else:
SternBrocot(0, 1, 1, 1, 1, 0, inputnum)
2017年10月9日月曜日
Aone ラベル屋さん9
Aoneラベル屋さんというソフトに関して。
以前より新バージョン9がリリースされているが、これまでのファイルとの互換性がなく、使用していなかったが、使用感が良いならとダウンロード版をインストールしてみた。
写真を貼り付けて印刷する用途に使用しているので、外のフォルダからドラッグ&ドロップできなくなったのは痛い。
仕方なく右側のウィンドウからフォルダを探してフォルダを開いて写真を挿入する。
●外のフォルダからの写真データのドラッグ&ドロップに対応してほしい。以前のバージョンはできていた。
●右側のウィンドウに、絶対ファイルパスをコピーペーストして一気に当該フォルダに飛びたい。
●右側ウィンドウでフォルダを参照している状態で、そのフォルダに写真を追加しても、ラベル屋さんのウィンドウ上に反映されない。一旦上のフォルダに上がって、もう一度そのフォルダを選択すると当然ながら反映されるが。
●あるデザイン面に写真を置いて、違うデザイン面を選択したら右側ウィンドウがリセットされる。写真を置くためにはまた[画像]-[画像]と選択しなければ行けなくて、面倒。そのままの状態にしてくれている方が良い。
良くなった点は、
○全体のプレビューがリアルタイムに見られるようになったこと。
どこにどういう写真を置いたかがひと目で分かるのは良い。
しかしながら全体として旧バージョンの方が使いやすいので、まだ旧バージョンを使い続けることにする。いつか新バージョンに移行できるだろうか。
エプソンとかの方がソフトウェアは便利かもしれない。今のラベルが無くなったら検討してみるのも良いかもしれない。でもラベルのバリエーションはAoneには敵わないような気もするけど。
2017年10月3日火曜日
2017年9月30日土曜日
電子ピアノ CASIO PX-700 修理
CASIOのPX-700の、真ん中から2オクターブ上のドの音(1046.5 Hz)が、鍵盤を叩いてもならなくなったので、修理を試みる。
後ろや前のパネルを取り外し、スライドふたやPX-700と書いてある金属のバーなどを取り外すと、鍵盤を起こせるようになる。下部の、銀色のネジをすべて外すと鍵盤ユニットがフリーになるが、外す必要は無い。
鍵盤はエーイと力をかければ起きる。
緑の基板に櫛電極が互い違いになったパターンがあり、それを写真中央にあるネズミ色の豚バナみたいなゴム部品の先の導電性のパターンでショートして打鍵を検出している。
その部分を掃除するうちに音がなるようになってくれた。
鍵盤を戻すときは一旦鍵盤を支点から外して、手前からはめるようにしないと入らない。
2017年9月20日水曜日
白ロムXperia タッチ切れ 修理
2.5年前から使用している、ソニーのXperia Z3 SOL26(au)がタッチ切れを起こし、右下のタスク表示ボタンが効かなくなってしまった。
長年使用しているXperiaには良くある症状らしく、白ロムでも無償で修理してくれると書いている人もいたため、近くのauショップへ。
預かってもらえ、修理見積もりが出たら連絡をくれるとのこと。
子供たちにも缶ジュースを出してくれた。
ほぼ1週間後に連絡があり、修理金額1100円(税抜)とのこと。
USBポートやSDカードポートのふたが無くなってしまっていたため、 恐らくこの価格はそれらの修理費用であり、タッチ切れ修理は無償なのでは。
高額だったら京セラに乗り換えようと思っていたが、1188円(税込)だったので使い続けることに。
さらに1週間後にauショップに受け取りに行った。
スマホの角にあった傷が無くなっているような気が。
というかこれ新品に見えるが…、さすがに気のせいか。
Xperia Companionでごっそりバックアップ取れているのかと勘違いしていたけど、アプリとかは全部消えるのね。というか自分で初期化してそれでもタッチ切れの症状が出るのを確認してから修理に出したけど。
息子に残念がられてしまったが、これでゲームを忘れてくれればさらに良し。
長年使用しているXperiaには良くある症状らしく、白ロムでも無償で修理してくれると書いている人もいたため、近くのauショップへ。
預かってもらえ、修理見積もりが出たら連絡をくれるとのこと。
子供たちにも缶ジュースを出してくれた。
ほぼ1週間後に連絡があり、修理金額1100円(税抜)とのこと。
USBポートやSDカードポートのふたが無くなってしまっていたため、 恐らくこの価格はそれらの修理費用であり、タッチ切れ修理は無償なのでは。
高額だったら京セラに乗り換えようと思っていたが、1188円(税込)だったので使い続けることに。
さらに1週間後にauショップに受け取りに行った。
スマホの角にあった傷が無くなっているような気が。
というかこれ新品に見えるが…、さすがに気のせいか。
Xperia Companionでごっそりバックアップ取れているのかと勘違いしていたけど、アプリとかは全部消えるのね。というか自分で初期化してそれでもタッチ切れの症状が出るのを確認してから修理に出したけど。
息子に残念がられてしまったが、これでゲームを忘れてくれればさらに良し。
2017年9月4日月曜日
QNAP, TS-419P II, SYS Fan Failed
2012年8月より使用している QNAP の TS-419P II が、 SYS Fan Failed のエラーを表示しつつピー、ピー、ピー、とBeep音を鳴らすようになってしまった。
https://forum.qnap.com/viewtopic.php?t=16925
ここを見るとファームウェアの更新で治るようにあったので、2009年の記事だから関係ないとは思いつつ、ファームウェア更新。
最新版にしたが(4.3.3.0154 → 4.3.3.0262)、改善見られず。
電源を落として、筐体を開けて内部のホコリを掃除した。FANはY.S.Tech FD129225LBが使用されていた。FANも取り外して掃除、コネクタも何度か抜き差しして接触を回復させた。
その後問題なく動作。不具合が出ていたときにファンが動いていたかどうか確認していなかったが、コネクタの導通不良か、ホコリによるショートやファン動作の阻害などのどれかが原因だろうと思われる。
復調して良かった。
https://forum.qnap.com/viewtopic.php?t=16925
ここを見るとファームウェアの更新で治るようにあったので、2009年の記事だから関係ないとは思いつつ、ファームウェア更新。
最新版にしたが(4.3.3.0154 → 4.3.3.0262)、改善見られず。
電源を落として、筐体を開けて内部のホコリを掃除した。FANはY.S.Tech FD129225LBが使用されていた。FANも取り外して掃除、コネクタも何度か抜き差しして接触を回復させた。
その後問題なく動作。不具合が出ていたときにファンが動いていたかどうか確認していなかったが、コネクタの導通不良か、ホコリによるショートやファン動作の阻害などのどれかが原因だろうと思われる。
復調して良かった。
2017年7月31日月曜日
真空解除弁
日立の冷蔵庫 R-SF52AM の真空チルドが真空に引けなくなったので、原因を探したら、真空解除弁(R-B6700 240)が抜け落ちていた。どこに行ったのかわからない。
http://kaden119-shop.net/?pid=86087223
ここはもう品切れで買えなかったし、他には見つからなかったので、ケーズデンキに電話。
納期 1週間から10日で、648円税込みとのこと。
ものすごく対応が良かった。
8月1日追記
その後製氷皿に真空解除弁があるのに気づく。
はめ込んでみたらうまく動作するようになった。
こういうときに「注文したけどもう要りません」 と言えるようでありたいが、できない。
http://kaden119-shop.net/?pid=86087223
ここはもう品切れで買えなかったし、他には見つからなかったので、ケーズデンキに電話。
納期 1週間から10日で、648円税込みとのこと。
ものすごく対応が良かった。
8月1日追記
その後製氷皿に真空解除弁があるのに気づく。
はめ込んでみたらうまく動作するようになった。
こういうときに「注文したけどもう要りません」 と言えるようでありたいが、できない。
Walsh
かなり前になるが、WALSHのページから直接靴を買えるようになった。
http://www.normanwalshuk.com/index.php
しかしながら、同じサイズのを購入してもモデルによって履けるものと、小さすぎて全く履けないものとあったり、購入が難しい。
返品交換してもらったが、まだ小さく、もう面倒なので放置。
V-RIPPLEもしわしわの質感が良いのに、届いたのはツルツルで、おばあちゃんの靴みたいだった。それも文句を言って返品交換してもらったが、届いたのは送ったものとほぼ同じだった。とても残念。
高いけどバイヤーが調達してきて日本で売ってるやつを履いてみて買うのが良いのかもしれない。見つけるのがタイヘンだが。
WALSHは1勝2敗。
eBayは2勝2敗。
2017年1月30日月曜日
Raspberry Pi 起動時に ターミナルを開いて Python スクリプトを自動実行させる
Raspberry Pi 起動時に、自動的にターミナルをデスクトップに立ち上げてPythonスクリプトを実行させる方法。
ターミナルを立ち上げずにバックグラウンドで実行する場合は、
/etc/rc.local
を編集すれば良い。
やっていることは同じかもしれないが、以前とはやや手法が異なる。
http://mogen-hogen.blogspot.jp/2015/09/raspberry-pi-python.html
今回使用したRaspberry Piは
Raspberry Pi 2 Model B V1.1
OSは
Raspbian Jessie with PIXEL
Version: January 2017
Release date: 2017-01-11
Kernel version: 4.4
/home/pi/.config/autostart
フォルダに行く。すでにautostartフォルダは存在していた。
.configフォルダが見えないときは [Ctrl]+[H] とすると隠しフォルダが現れる。
autostartフォルダの中に、
hogehoge.desktop
という名前のファイルを作成し、中に
*******はじまり*******
[Desktop Entry]
Name=hogehoge
Exec=lxterminal –e “python /home/pi/hogehoge.py”
Type=Application
*******おわり*******
と記述。
再起動させると自動的にターミナルの画面が立上り、Pythonのプログラムが実行される。
参考URL
https://neverbenever.wordpress.com/2015/02/11/how-to-autostart-a-program-in-raspberry-pi-or-linux/
登録:
投稿 (Atom)