1

私が比較的よく訪れるサイトの一つにthe mouse vs. the pythonpython programming from the frontlinがある。Pythonプログラミングのヒントがいろいろ掲載されるので好きなサイト。今日は、Getting Your Screen Resolution with Pythonというのが載っていたのでやってみた。Using the Linux Command LineUsing PyGTKUsing wxPythonUsing TkinterUsing PySide / PyQtそれぞれの記述がある。いずれにせよ、下回りは、Windowsなら PyWin32 の win32api か ctypes 、Mac なら AppKit とか、プラットフォームに依存しているわけだが、上記のようなクロスプラットフォームな GUI のフレームを使うことによって吸収されるので、意識する必要はない。ちなみに、最初の Linux の例では、X Window 環境なら xrandr | grep '*' でコマンドの出力から '*' のある行を取り出して、最初の部分に解像度があるので、テキスト処理をしているというもの。コマンド出力をちょっと処理してというのを subprocess.Popen でパイプ処理してという類の参考になる。つまり、こんな感じ、あとでパイプ処理を他の用途に流用できるようにしてみた(1つコマンドを実行して、その結果を2つ目のコマンドで処理してのパターン)。import subprocessdef command2pipe(cmd1, cmd2): p = subprocess.Popen(cmd1, stdout=subprocess.PIPE) p2 = subprocess.Popen(cmd2, stdin=p.stdout, stdout=subprocess.PIPE) p.stdout.close() first_line, rest_lines = p2.communicate() return(first_line, rest_lines)if __name__ == '__main__': cmd1 = ['xrandr'] cmd2 = ['grep', '*'] resolution_string, junk = command2pipe(cmd1, cmd2) resolution = resolution_string.split()[0] width, height = resolution.split('x') mesg = "Resolution: %sx%s" % (width, height) print(mesg)というのはさておき、それぞれの例をやってみたが、Linux 上では問題なく動いた。 Windows 10 上でも Linux のは別として、すべて問題なく動いた。クロスプラットフォームではなく Windows 上だけで動くことを前提であれば、Win32api や ctypes で呼び出した方が、読み込み時間が少ないので速い。from win32api import GetSystemMetricsprint "Width =", GetSystemMetrics(0)print "Height =", GetSystemMetrics(1)か、もっと最低限の読み込みだと、import ctypesuser32 = ctypes.windll.user32screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)How do I get monitor resolution in Python? を見ると、もうちょっと、正確にやるにはどうしたらよいかというのも色々議論がある。例えば、Windows 上で DPI やデスクトップスケーリングを考慮した場合にはどうなるとか。(dpi_and_the_desktop_scaling_factor)。ところで複数のモニターとか接続してたらどうなるのか。あれこれ考慮し始めると面倒なことになる。なので、先人の成果をいただいて、pip install screeninfofrom screeninfo import get_monitorsfor m in get_monitors(): print(str(m))でよいかと。すばらしい。
2015.08.21
閲覧総数 12958
2

I2C 接続の LCD を ESP-WROOM-02 につないでみる (2)のあと、Arch Linux がアップデート中にフリーズしまって復旧するのに手間取っていた。boot 領域が壊れてしまったので、復旧するついでに、MBR から GPT に変換して、BIOS モードでの起動から UEFI モードでの起動に代えた。色々おかしな状態になってしまったのを調整して、順調に戻ったので、電子工作を再開する。ちなみに、Arch Linux は、それなりに馴染んできて、いい感じで使えている。LCD は AQM0802A をとりあえず使っているが、ON/OFF したいとかあるので、ちゃんとした使い方を調べているうちに、Arduino IDE の [Sketch] - [Include Library] - [Manage Libraries] で出てくる [Library Manager] で AQM0802A を検索して、Hideki Yamauchi さんの "FaBoLCDmini_AQM0802A" をインストール ボタンを押してインストールしてしまうのが一番楽な使い方かもしれないと思った。I2C で接続しているのでプリミティブに、AQM0802A スペックシート の "DISPLAY INSTRUCTION TABLE" とかを見ながらコードを書いていけば、ライブラリがなくても制御できるようになったが、スペックシートを確認しながらコードを書くのも面倒なので、ライブラリ化されたものを使うことにした。ライブラリを使わずに書こうとすると、#include <Wire.h>#define LCD_ADDR 0x3evoid setup(){ Wire.begin(4, 5); delay(40); // 初期化: ■初期設定例■ uint8_t cmd_init[] = {0x38, 0x39, 0x14, 0x70, 0x56, 0x6c, 0x38, 0x0d, 0x01}; size_t i; i = sizeof(cmd_init); for (i=0; i<len; i++) { Wire.beginTransmission(LCD_ADDR); Wire.write(0x00); Wire.write(cmd[i]); Wire.endTransmission(); delayMicroseconds(27); // 26.3us } 以下、省略}ディスプレイを OFF にするには、Display ON/OFF のところを見て、RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0 0 0 0 0 0 0 1 D C Bで、D: Display ON/OFF controlbit を 0、 C: Cursor ON/OFF control bit を 0、B: Cursor Blink ON/OFF control bit を 0 としたいので、000001000 で、16進数に直して、0x08 を Wire.write してやれば、ディスプレイをオフにできるのも確認できた。参考になるページは、ESP-WROOM-02 AQM0802A とかキーワードにして検索すればたくさん見つかる。ESP-WROOM-02 の Arduino 環境で I2C 制御ESP8266 (ESP-WROOM-02) で I2C LCD 8桁2行 を制御するI2C液晶のArduinoライブラリ – ST7032ESP-WROOM-02でLCD表示ライブラリを使えば、Example を参考にして、#include <Wire.h>#include <FaBoLCDmini_AQM0802A.h>// ライブラリの初期化FaBoLCDmini_AQM0802A lcd;void setup() { // LCD の初期化 lcd.begin();}void loop() { lcd.home(); // 0, 0 にカーソルを移動 // 0 から 9 を表示 for (int thisChar = 0; thisChar < 10; thisChar++) { lcd.print(thisChar); delay(500); } // ディスプレイをOFF lcd.noDisplay(); delay(500); // ディスプレイを ON lcd.display(); delay(500);}色々、公開されているライブラリもあるのだが、Arduino IDE から、簡単にインストールできてすぐ使えるので、これが一番楽かもしれない。スマホからの ON/OFF を考えていたが、電池の消耗を抑えるために、やっぱり、物理的にスイッチを追加して、ON/OFF するようにしようかな。とりあえず太陽電池付きのバッテリーを買ったので、どの程度、連続動作できるかも試してみようかと思っているところ。ちなみに、FaBoLCDmini_AQM0802A を使うと、"WARNING: library FaBo_213_LCD_mini_AQM0802A claims to run on [avr] architecture(s) and may be incompatible with your current board which runs on [esp8266] architecture(s)." のようなエラーが出るが、ESP-WROOM-02 を使っているときは、Arduino/libraries/FaBo_213_LCD_mini_AQM0802A/library.properties を編集して、architectures=avr を architectures=esp8266 に書き換えてしまえば、WARNING が出なくなる。
2016.11.16
閲覧総数 2092
3

先日、Sun Fire V40z (pdf)をオークションで落札したものが届いたのだが、実に重い。鉄の塊。腰が抜けそうな程重い。やっとのことでラックに載せたのだが、これほど重いと思わなかった。ここで、いったん力尽きる。なぜに一世代前のこんなものを買ったかと言えば、OS は Solaris 10 でも、Red Hat でも Windows でも使える Opteron のマシンだから。Blade 1000 を持っているけど SPARC だから x86 系のものが欲しかったのね。CPU は AMD Opteron 4 個でメモリ 16GB なので、仮想マシンの実験用にはピッタリかなと。その気になればメモリはもっと増やせるし。安いデスクトップパソコンだと、その気になってもメモリの増設には限度があるものね。このスペックで 54,800円 なら許せるでしょ。増設したHDD 含めて 67,800円。中古だからどの程度持つか分からないけど、とりあえず満足。それにしても、馬鹿でかくて重い (445mm/756mm/133mm/最大34kg)。筐体が鉄の塊なのに加えて、電源やファンが冗長化されているから余計重いのね。ディスクは追加で買ったので 5台積んでるし。普通、家庭には置かないよなぁ。ファンの音もうるさい。この手の物は仕方ないなぁ。でもうるさい。。。。家で使おうとする方がバカなのだな。まるで飛行機が飛び立つときのような音。気を取り直して、とりあえず電源を入れて動かしてみると、CPU が 2つしか認識されていない。んんっ。まさか、2つしか入っていないの?と、全面のパネルを空けて CPU のオプションボードを確認する。しっかりと差し込まれていない。ぐっと差し込み直して再起動。ん、今度は "LOSS of Extended Memory due to Memory Test Errors!" で止まる。何っ、今度はメモリー。もう一度、CPU のオプションボードを引き出してメモリをつけ直す。やっと、起動できるようになった。輸送中に衝撃が加わってゆるんじゃったのかなぁ。とりあえず、Sun Fire V20z and Sun Fire V40z Servers Documentation - Japanese からマニュアルをダウンロードしてざっと見る。ボディーの全面に LCD とボタンがあって、メニューからあれこれできるのだが、さすがにこういうものはマニュアルを見ないと分からない。SunFire V40z には管理用のサービスプロセッサ (SP) があって遠隔管理ができる。管理用の OS が動いていて、それ用にネットワークポートを別途持っているのね。このあたりが普通の x86 マシンと違っておもしろいところ。SP の IP アドレスなども、このメニューを使って設定する。通常使う OS と別にハードウェアの管理用の Linux が動いていて、あれこれできる。通常使う OS がハングしてどうしようもない状態になっていても、専用のネットワークで管理用の OS にアクセスすればハードの状態を把握できるし、電源のオンオフもリモートからできる。サーバルームにサーバがおいてある場合は重宝するだろう。まぁ、自宅に置いておく場合は、それほどでもないか。でも、ファンの音がうるさいので別の部屋で動かすので、リモートからリブートできるのは便利だったりするが。とりあえず、パネルから IP アドレスを設定した後、初期アカウントを作成しようと、# ssh ip_address -l setupで接続するがアクセスに失敗する(やっぱり中古なのでパスワードが設定されている状態だからだろう)。パネルのメニューから SP - Use defaults オプションを選択して、SP をリセットすると自動的に SP がリブートする。でもって再設定。初期化されると IP アドレスなどの設定も消えるので再設定。デフォルトでは DHCP で IP アドレスを取得するようになっている。初期アカウントを作ると ssh で SP にアクセスできるようになる。ログインしたあと uname -a してみると、Sun MicrosystemsIPMI v1.5 Service Processorlocalhost $ uname -aLinux localhost 2.4.18 #5 Wed Feb 25 13:30:32 CST 2004 ppc unknownと、Linux の kernel 2.4.18 が動いているのね。ここは Solaris じゃないのがお茶目。サーバ名の定義も操作パネルから、panel menu で行う。名前を定義すると LCD に IP アドレスではなく名前が表示されるようになる。1台だけしかないので、サーバ名の表示は設定せず、IP アドレスの表示にしておく。もう一つおもしろいところは、ネットワーク共有ボリューム (NSV) で、イベントログファイル、ソフトウェアの更新、診断や障害追跡用のダンプユーティリティをおくこと。ソフトウェアのアップデートをSun Fire V40z Server - Downloadsからダウンロードしておく。ソフトウェアやドライバのアップデートだけでなく、SNMP MIB なども含まれている。ダウンロードしたファイルを別のマシンで解凍して、NFS で export して、V40z のサーバからマウントして使うようだ。ソフトウェアのアップデートやツールの類は一カ所に持ってエクスポートしておいて、他の沢山のマシンは、そこをマウントして使うという感じ。たくさんマシンがあるところで管理が楽なように作られているのね。OS のインストールは、Sun Installation Assistant から行う。そうすれば、必要なドライバもちゃんとインストールされるようだ。これも上記のダウンロードから落とせる。対応している OS は、Solaris 9, 10、Red Hat Enterprise Linux 3, SUSE Linux 8, 9, 10、Windows Server 2003, 2000。V40z 自体は終わっている製品だから Windows Server 2008 とかはもうダメかな。まあ、Installation CD を使わないでインストールするしかない。どの程度 Windows Server 2008 がちゃんと動くかはそのうち試してみる。でも、基本は Solaris 10 で動かす予定なので VM 上で動かせばよしとする。ちなみに、通常の CD-ROM/DVD-ROM からのインストールだけでなく、Linux の場合、PXE サーバからのインストールもできてマニュアルに手順が書かれている。ネットワークインストールができること自体は、インストールする OS 側の問題なのだけど、手順が書かれているので楽かも。その他、SP のコマンドでソフトウェアのバージョンを確認するには、次のコマンドで BIOS のバージョンなどが確認できる。localhost $ inventory get softwareハードウェアは、localhost $ inventory get hardwareなかなかおもしろいなぁと思いつつ、CD-ROM 焼いたりする下準備が面倒なので、とりあえず、Installation Assistant は使わずに、Windows Server 2003 をインストールしてマシンが動くか確認。ちゃんと動いた。やっぱり Sun のマシンで Windows 動かすってとりあえずやってみたかったしw
2008.09.28
閲覧総数 357
4

Raspberry Pi をいじるとき、通常、無線LAN経由で ssh 接続してあれこれしているのだが、時折、接続を受け付けなくなるときがある。Raspberry Pi にはリセットスイッチも電源スイッチもない。USBケーブルをつなげば、即ONになる。USBの電源を抜けば落とせるが、ちゃんとシャットダウンしたいから、あまりやりたくはない。ということで、ボタンを押せばシャットダウンするようにしてみた。Google で 「RaspberryPi シャットダウン ボタン」で検索すると、Raspberry Pi にシャットダウンボタンをつけるGPIOを使ったシャットダウンスイッチ (2014/05/03)Raspberry Piにshutdownスイッチ追加Raspberry piに特定のUSB機器を差し込むと電源を落とすデーモンをPythonで作る肝になるところは、割り込みを使った、GPIO.wait_for_edge(23, GPIO.FALLING) 引用元の記事も読んでおくと役立つ。How to use interrupts with Python on the Raspberry Pi and RPi.GPIOHow to use interrupts with Python on the Raspberry Pi and RPi.GPIO – part 2How to use interrupts with Python on the Raspberry Pi and RPi.GPIO – part 3あと、raspberry-gpio-python も。2,3番目のは、5秒間ボタンを押したときだけシャットダウンするもので、LEDも点滅させる。2番目のはLuaJIT を使ってプログラムが書かれているのに興味をひかれた。4番目のは、人が出入りする場所においてあるときに間違ってボタン押されてシャットダウンされないのがいいかもしれないと思った。でも、USBさせるようにしておくのもあれだから、パソリつないで Raspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取るで、特定のカードをかざしたらシャットダウンもありだなとか思った。でも、シンプルにボタンでいいや。何はともあれ、残念なところは、シャットダウンしても電源OFFにはならないのだよね。電源オフまでするとなると、もうちょっとコストがかかるパーツを買う必要がある(自作できないこともないだろうけど)。この手のものPi Supply Switch – On/Off Power Switch for Raspberry Pi。どうせ、ここまできたらリモコンでオフしたいよねってなったら、RemotePi Board 2015みたいなものもある。用途によっては、やっぱり、こういう電源ON/OFFまでできるようにしておいた方がいいだろうけど、微妙だな。やめとこ。
2014.12.22
閲覧総数 7797
5

ヤフーが決算は悪くなかったものの、毎日下げ続けている。だいたい前日比 -1% ぐらいより上で売って、-3% ぐらいで買い戻せば、儲かるような状態が続いている(これからも、そのペースかどうかは別として)。ちょっとヤフーの売買状況を見て、なんじゃこの出玉操作バリバリのパチンコ的な動きはと思った。三井住友と大和証券が連合 日興コーデ買収検討 で、三井住友、個人向けテコ入れ 証券業務で巻き返し図る とかいう話があるようだが、有限責任中間法人スレンダー にあるようにヤフーを貸株使って、売り売りしてないかい。何百万株も使ったら、株価は自由自在。と思ったのだが、Bloomberg によるとソフトバンクが2003年から、保有するヤフー現物株を三井住友銀行に寄託して融資を同行から受けていたが、株券電子化による現物株廃止に合わせ、契約を株券消費貸借取引に変更。三井住友銀行系の株保有機関スレンダーが間に立つ形になった。名義は今後もソフトバンク。 以前からヤフーの株価操作していたのは、クレディ・スイスだけじゃなくて、三井住友もだったのか。株価操作って合法でしょ。貸株使って株価を崩して買い戻しってのは。他人名義をたくさん使ってやると違法だろうけど。仕手が他人名義を使うのは、証券会社に手口を捕まれてよけいなことされないようにっていうのがけっこうあると思うけど。まあ、貸株売って買い戻してというのだけでは株価を崩すという証明はできないし、買いを入れて売りに出して上値を抑えるというのも売りに対する買いのヘッジだといえば否定はできないし、売り崩しを証明することっていうのは難しいだろうけど。だから、仮に意図的な売り崩しをやったとしても捕まることはない。逆に、空売りと買い戻しをうまくやって株価のつり上げをやっても捕まることはない。証券会社は買った価格で売っても、売った価格で買っても売買手数料がかからないから、それも利用できる。株価操作と言えるかどうかは、売買高に対してのパーセンテージを使うとかしないと証明は難しいか。なんにしても、仕手行為を封じるためには、証券会社の売買規制も連動させる必要があるだろうな。というか、ヤフー株は証券会社みんなみんな素人嵌め込みで、売りまくってきたんだろうけど。空売りの残高に関する情報 とかも見てみると、やっぱりというかなんというか、日本の証券会社もけっこうあちこち大量に空売り入れてるわけね。日証金の貸借倍率って、直接貸株をどこから借りてきたものについては反映されないから、実態を反映していないことが多々あると思う。Yahoo! ファイナンスとか、こうした貸株情報も表示すればいいのにね。もちろん、空売りと言っても、持ち株に対するリスクヘッジのために空売りしている場合もあるだろうし、高すぎると判断して売り崩すために空売りする場合もあるだろうし、一概に空売りがいけないというわけではない。個人の空売りに対しては 50単元とかいう変な規制を外して、空売りしやすくしないと、持ち株を増やしたときに、いっきにヘッジ売りを入れることができないので、非常に不利。大きく下げそうなときに、貸株を使った売りをがんがんと入れられると、ヘッジの売りを入れ損ねている間にどんどん株価が落ちて損失を抱えてしまう。一銘柄につき、せめて 500単元ぐらいにするとか、空売りの制限をかけないか(とはいえ個人でも億単位で動かす人もたくさんいるから、無制限はまずい。暴力団系とかもあるし)、あるいは、持ち株に対して一定の割合までは空売りの制限をかけない等の対処をしないと、機関投資家と個人投資家の有利さの度合いが違いすぎる。日本の機関投資家なんて個人をカモにするのが生き甲斐なんだし。セブン・アンド・アイに対する売り攻撃もすごいじゃん。内需買え買えとやっておいて、売り崩すとか、その手のことは日常茶飯事。ちなみに、空売りでがんがんさげなくても、いったん貸株を淡々と売って、下げてきたところでいったん買いに入って、空売りの買い戻しをして上に引っ張り上げて、今度は買い玉を下に叩きつけていくという手法はよく使われているんじゃなかろうか。日経平均が続落、「45日ルール」意識の売り優勢 とか見るとある国内投信のファンドマネジャーは、下値で邦銀系の買いがみられるものの、ファンド系の売りに押されていると指摘。とか、よく外資系の売りのせいにされるけど(実際にはそういうのも多いだろうけど)、国内系だってけっこう売り入れて崩したりしてんじゃないの。そういう意味では、よく株価が下げると年金買いがどうのこうのと報道されるが、年金売りは報道されないのだよね。2007年に郵貯・かんぽの一大売りがあったと思うけど、なかなか報道されなかったものね。買い続けることなんかできないから、どこかで売っているわけだろうに。底値で買う代わりに、天井を下げているわけでしょ。悪かないけど、その実態は報道されない。今日は年金の売りで頭が重い展開になりましたなんて報道されない。株式こうみる:具体性欠ける米金融安定化策、換金売り継続か=SMBCフレンド 中西氏、為替こうみる:オバマ政権期待はく落でドルは再び軟調、80円台に=三井住友銀 山下氏 とか、三井住友系ってけっこう売り推奨だよねぇw 三井住友系って、どの程度、ゴールドマンサックスとつるんで売買しているのかっていうのも興味津々。外資と国内系の資本提携がさらに深まった今日この頃、手口も微妙に変わってくるのかなぁ。野村はリーマン突撃隊を雇い入れたわけだし。その他の証券会社もそうだし。外資系社員の方が比較的強引な手口が多いだろうから、国内系の証券会社の手口も一段と強引になるのかな。勝つときは凄いけど、負け始めると世界を不況に陥れる系は怖い罠。結局、証券会社が個人に買って欲しいと思っているのは投資信託の類。個人で直接株を売買する人はカモという位置づけなんだろう。あるいはひたすら下げているところでも耐えるおしん的個人凍死かとか。個人の長期投資の基盤をしっかりするためには、安値の現物買いと、空売りのペアにして売買するように教育しないと、いけないんじゃないの。空売りしないから、一時的な下げでも現物放出になるわけで、下落の速度を速める。もっとも、それこそ望んでいるところなんだろうけど。でも、個人の空売りが増えれば踏み上げもしやすいだろうし。自動車株が意外にこの数ヶ月比較的強かったなんて、まさにそういうことでしょ(笑)ところで、ヤフー株って、機関投資家系の売りなのか、暴力団系の売りなのかどっちなんだろう。手口が同じだからわかんない。だって、暴力団は証券会社の元社員とか雇ってるから、同じなわけでしょ。ちなみにヤフーの業績自体は、成長が鈍化してきているとはいえ、短期間に何十パーセントも株価が下げるほど悪化していないと思う。つまり、上は買われすぎ、下は売られすぎととらえられる一方で、このご時世だから PER 20 より上だというのを言い訳にすればいくらでも売れるとも言えないことはない。それじゃぁ、そもそも、ヤフー株って証券会社の嵌め込みでヤクザ株だよね。以前は何を根拠に買い煽ったか。PER 50 以上のときもあったわけでしょ。いかに証券会社がいいかげんなことを言うかってことだな。そうそう、巣ごもり型の消費とかいうことで、煽っていたところもあったか。このタイミングとかうまいよねwそれにしてもヤフーは、現状、空売りの買い戻しと新規の売りだけで成り立っているのかもしれないな。あとは、リバウンド取り。このリバウンド取りのデイトレが、上値をジリ下げさせる原因だけど、空売りしている人はリバウンドを買いでとっているとすると、売りの人しかいないって感じなのかな。空売りしている人が、一時的に利益確定で買いを入れて、上げてきたらたたき落とすように売るってのはよくあることだな。新興市場12日、3指数が下落 ジャスダック9日続落、安値接近 で、ジャスダック指数を使った売買も絡んでいるのかな。どっちにしろ、個人がもっと空売りをかけるようになると、意外と上がるんじゃなかろうかと。もっとも、やりたい放題だから、純空売りじゃやられる銘柄だし、かといって、現物買って長期保有で空売りというのも、底値圏でやらないとダメだから、もっと安くなってからとか思って買えなくなる。やっぱり暴力団的売買をされる株って近寄りがたいところがあるなぁ。同じ下げるにしても、自動車株なら為替との連動性が強いから、円安で買って、円高に向かいそうなら一時的に空売り入れてしのいでとかできるだろうけど、ヤクザ株は売買の根拠が分からない。ヤクザ株といっても、ヤフー自体がヤクザなわけじゃなくて、売買のされかたがヤクザってことね。まあ、徹底的に売られて、徹底的に買われてって、単にそれだけなんだろうけど、大口さん次第色が強すぎるのね。これ系の株は、それ用のアルゴリズムが必要ね(笑)転換ポイントまで引っ張って、損切りルールを明確にというパターンがあっているんだろうけど。デイトレーディングのシステム売買はリアルタイム系じゃないと無理っぽい。下手なもの作ると、十連勝して一発負けで全部勝ちを吹き飛ばすとかいう動きをするし。値動きによる株の分類ってそのうちやってみるかな。
2009.02.13
閲覧総数 392
6
![]()
「失敗から学ぶ設計・実装・運用・管理」という副題が付いているこの本は、セキュリティの考え方を学ぶのによい本。いわゆるハウツーものではなく、考え方を学ぶようなタイプ。セキュリティを考えたプログラミングを実践のコードから学ぶことも大切だが、基本の考え方を学ぶことも重要だと思う。セキュアプログラミングベースになる考え方がしっかりしていなければ、安全なシステムは作れない。安全性、製作コスト、運用コスト、利便性等のバランスを適度に保ちながらどの程度にするかを判断するのは難しい。けれども、基本はシンプル。テストやチェックは自動化という方向性はあるだろう。コストを、製作コストだけで判断するのではなく、運用コストまで含めてきちんと判断しなければならない。目先の製作コストだけでプログラムが製作されると、結局、高くつくものになってしまう可能性が高い。中古車が安いから中古車を買ったが、メンテナンスコストが高くついて2,3年後には新車を買った方が得だったというような感じで。企業がプログラムにコストをかける場合、キャッシュフローの話もあるので、ある程度のスパンで見ると高くついても、目先の支出を抑えたいという場合もあるだろう。現金でものを買う方が安くても、リースにする場合があるのと同じように(固定資産がどうのこうのとか細かい会計の話は抜きにしておく)。しかし、その場合でも、何かことが起きたときのリスクをどうとらえるかを明確にしておかないといけないだろう。個人情報が流出したときの対処コストを考えなければ、それこそ事が起きたときに膨大なキャッシュがなくなって困ることになる。あたりまえだけれどできないこと。それを何とかするのが大切。理屈ではそうかもしれないけれどと言っていたのでは、何も変わらない。要するに意志の問題なのかもしれない。
2006.09.11
閲覧総数 2
7
![]()
特集1:Vistaの新文字セットが引き起こすトラブル 関連のページを読む。現時点でこうした話題を特集として組める日経BP の底力を感じる。分かっている人からすると、この手の問題がやがてクローズアップされざるを得ないことは当然の話なのだけれど、発売より前にあえて特集を組んだところが偉い。当然、企業は Vista の早急な導入を躊躇することにつながるだろうが、それは新しい Windows のバージョンが出る度に起きることで、いつものこと。だから、できるだけ早めにこうした問題を特集として出して盛り上げて対処・健闘ができるような期間を前倒しにするというのは、マイクロソフトだけでなく、産業全体にとっても好ましい話。文字セットや文字コードの話はけっこうやっかいなので、対処や検討に時間がかかったりする(積極的にそれをやったからといって、短期的に目に見えるメリットを得ることが難しいから予算をとるのも難しいとかもあるし、アプリケーションやデータの全体的な見直しも必要になるとかもあるし)。だから、今の時点でこうした問題を出すのは良い感じのタイミングかなと。ここで出せば、企業によっては来年度の予算にそうした対策費用を組み込むこともできるだろう。あるいはクライアントとして Windows はやめて GNU/Linux にしてしまおうとかいう選択肢だってあり得るわけだし。もっとも GNU/Linux を使っている場合にも、外部からこうしたデータが流れてきた場合にどういう影響を受けるかの検討はしなければならないわけだけれど。Web アプリケーションなどもそう。OCR だって影響を受けることがあるだろうし。この問題、複数の問題が複雑に絡んでくるので、これからもいろんな人のインタビュー記事のようなものを載せたり(古川亨氏等読んで歴史を含めて語ってもらうとか、XKP(拡張漢字処理)関連の人とか、あるはオープンソースの鬼車(正規表現ライブラリ)、Samba あるいは、Miracle Linux の人に語ってもらうとか、各スクリプト言語の人とか)、古いネタを整理し直すとか、この手の話題を整理し直して特集記事サイトを継続的に充実させて欲しいなと思う。特集1:Vistaの新文字セットが引き起こすトラブルニュース:日本語文字セットがVista最大の問題として急浮上ニュース:Vistaで追加された文字の利用には注意基礎講座1:文字コード規格の基礎基礎講座2:文字コードの発展経緯から役割と仕組みを学ぶマスメディアとしての底力を見せて欲しいなという期待を込めて。最近、日経BP のサイトは、徐々に充実度増していると思う。もっとウェブのメディアとして充実して欲しいこともあり、期待を込めて褒めておく。出版社の人って、最近特に人の声を積極的にきく姿勢が強いから、こういうブログであっても書いておくと、勝手に検索エンジン経由で見に来て読む確率が高い。褒めるのとけなすのを両方どんどんブログに書いておくと、それがある程度、つもっていくと具現化される可能性がある。ちなみに、こういう問題はテキストマイニングにも影響あるんだよなぁ。
2006.11.24
閲覧総数 15
8

暴落につきギャンブルしてみる (2008.09.17) で、昨日、キヤノン、三井物産、東京海上HD を買ったと書いたが、やっぱり嫌な感じなので、寄り付きに成り行き注文出して売ってしまった。とりあえずプラスなのでよしとする。どうも AIG の救済方向の報道よりも、リーマンショックの方が日本市場を大きく動かしているような印象があったから、まだ、長目のホールドはできないなと。現物ホールド、こまめに空売り買い戻しでもいいんだけど、乱高下がひどくて面倒だから売ってしまった。今日の日本の市場を見ると、全般に外資系の売買が6割以上を占めると言われる東証で、リーマンが経営破綻・業務停止中で売買しなくなったら、けっこう影響が大きいかなというのを感じる。リーマンが抜けた状態での均衡状態を証券会社が再構築するまで、不安定な動きになるんじゃなかろうか。これまではこういう売買をしていたのに、リーマンが抜けたら同じ事ができなくなったとかあるかもしれないし。加えてリーマン破綻は、日本人の売買を萎縮させる心理的効果も高いかもしれないとか思う。AIG が破綻を免れそうだということ以上に、リーマンの破綻は日本人に心理的ショックを与えている。融資を行っているところやリーマン債を買っているところとか、そうした実際のお金の動きも大きいだろうけど、漠然たる心理的不安がとても大きくなっている印象。UPDATE3: 米FRBがAIGに最大850億ドル融資へ、政府が株式79.9%取得 のニュースはあまり好意的にとらえられてないな。AIG の株価はさらに下げている。おまけに 金融危機の最悪期、これから訪れる可能性=IMF専務理事 のニュースも流れている。訂正:米FRB、AIG救済を発表:識者はこうみる とか見ると、市場の疑心暗鬼晴れず、当面ボラタイル、三菱UFJ証券 投資情報部長 藤戸 則弘氏で、ネガティブなときに一番ネガティブな表現が出てくるのが三菱UFJ証券だな。まあ、印象的には一番的確な感じだけど。ワシントンミューチュアルもあるしなぁ。WaMu may seek merger as pressure mounts: Merrill。結局、ダウはいつ 10,000ドル切るのでしょうという雰囲気になっているな。ダウが 10,000ドル割れするなら、日経平均も年内に 1万円割れすることがあるのかなぁ。英ロイズTSBとHBOS、18日にも合併で合意の可能性=BBC なんてニュースも出ている。世界の金融業界地図がどんどん変わっていく。何にせよ、日本のバブル崩壊のときと比べて、スピードが全然違うなぁ。1年でここまで来ているわけだし。naked short の規制がまた入るのか。SEC issues rules against abusive short sales 。こういう機動的な対応も米国は早い。というか、ある意味、都合のよりようにルールをどんどん買えていくという合理主義だからな。時として、自分勝手なルール改正やることは多々あるにしても。でもって、なんかそういう影響のないところでどうかと、リバウンド狙いでインターネットイニシアティブ買ったら、あぁーあ、含み損になっちゃった。決算がよろしく見えなかったところはやっぱりダメねぇ。ここは今のところ空売り派御用達って感じの値動きだからダメだったのね。空売り入れて買い戻してとやるべき銘柄だったのね。えぐいわ、ここの売買は。気分転換に目先の変わったものと思ったが、やぱり値動きがよく分かった銘柄じゃないとやられちゃうなぁ。よく見たら、空売りの練習にピッタリの値動きだったじゃん。なんでそんなもの買ってしまったかといえば、ギャンブルがあたったから、ちょっとまたギャンブルをと。ダメだね、こういうのはw【連載】ブロードバンド“闘争”東京めたりっく通信物語 読んで(この連載はとってもおもしろい)、東京めたりっくはもうないし、そういや IIJ の株価はと見たら随分下げているから買ってもいいかなとか安易に買っちゃった。私はアホですな。でも、IIJ って、そんなに業績が落ち込むわけじゃなかろうに、何でこういう売られかたになっているんだろう。表面上悪く見えると、やっぱり、こういうときは売られまくるな。ちっ。会社自体はいい会社なんだけど弱い材料出しちゃっているからきついな。もっとも、値動きだけのギャンブルで買ったんだけど(爆)。ちっ。まさにノイズトレーダーだな。でも、こういうこともやって損してみると分かることもある。カブロボだと、ここで買っちゃうようなアルゴリズムになりがちだろうけど、これだとちょっと頭悪かったかな。底値狙いって、けっこう外すから、カブロボだったら上がるのを確認してから買いを入れる方が、やっぱり勝率は上がるかなとか。痛みのないシミュレーションだと長期でどうだってことになるけど、短期的にもそれを使う人間の納得感と満足度が高くないと嫌なのだな。ゆえに、勝ち負けと額だけでなく、気持ちのよい勝ち方というのも、どこかしら必要な感じがする。でないと、今日はカブロボのアルゴリズム、今日は人間でとなって、長期的にはシミュレーション通りの勝率にならない。そういえば、[WSJ] UAL株価暴落はなぜ起きた――アルゴリズム検索も一因に を見ると、ニュースの見出しや業績データを基に株式を売買するアルゴリズム売買メカニズムによる取引は、8月最終週にはニューヨーク証券取引所の取引の約4分の1を占めていた。とはびっくり。死ぬまでにいつかはやりたいと思っているが、やっぱり本職の方々は、すごごいな。やっぱり、ロイターやブルームバーグ等々のヘッドライン一つで株価に影響があるんだ。日本ではまだそこまで行っていないだろうけど、ニュースのヘッドラインを作る人、あるいは配信者は、たとえば ××銀行 100億円の損失とかすべきところを 1000億円とかしたら、どういうことになるか、これまで以上に注意しなきゃ怖いってことね。人間の場合、文脈上、おかしければ気づくが、機械的にやっていると、まだ、正しいかどうかまで判断するのは辛いだろうし。過去に スポーツ報知が「三菱UFJの損失が5100億円規」と報じる (2008.01.16) とかヘッドラインのつけ間違いってけっこうあるしね。そうだ、ロイターのセマンティックタグサービスAPI Calaris なんかも、実需があるからこそできているのね。Jumpstarting Calais Powered Applications を見ると、「"a" buying company "b" 」のようなブログの記事に対して、"Acquisition", "Company A", "Company B" のようなタグを提示するとか、ブログの記事からセマンティックタグクラウドを生成するとか、ユニークな識別子(GUID)をつけて RSS に組み込むだとかいった機能を持つ WordPress のプラグインが最初のコンテストでは求められているようだ。そろそろ、ロイターのセマンティックサービス試してみるかなぁ、と何回書いたかwそれにしても、またダウはすごい下げっぷり。
2008.09.17
閲覧総数 18
9
![]()
国内BI市場は10%増 ブログ分析でテキスト・マイニングが急成長、ITR調査で判明。2006年度のテキスト・マイニング市場は前年比約24%増の11億5000万円。表に現れる金額は、意外に小さい。金額ベースのシェアは、次のようになっているらしい。上位4社で 81%。60% が野村総研ということで、まあ、大企業向けのコンサルに強いところから高額なところでできるという優位性もあるだろうな。カタログベースで見ても、よくできている感じに見えるけど、できがいいだけじゃないだろう。製品買ってはいおしまいの世界じゃないから。野村総合研究所 60%数理システム7.8%クオリカ 7.8%エス・ピー・エス・エス 5.4%だけれど、BI市場としてみたときにそうなるということで、テキストマイニング全般で見ると、もっと市場規模は大きいだろう。検索とか、コンテンツ依存の広告とかに使われているものとか広義のテキストマイニングを考えたら、どの程度の規模になるだろう。ちなみに True Teller (野村総研のテキストマイニング製品) を Google で検索すると、ジャストシステムのスポンサードリンクが出てくる(笑)。
2007.08.22
閲覧総数 44
10
![]()
Raspberry Pi で、少しずつ遊んでいるところだが、パソリで IDm をとることに成功したので、カードを読み込ませたら、IDm をリモートのサーバーに登録するのをやってみることにした。まあ、いろいろとやりようはあるだろうが、RPC を使ってやってみることにした。最初は、標準の XMLRPC を使ってみたが、もっとパフォーマンスのよいモジュールがないかちょっと調べてみる。Index of Packages Matching 'rpc'を見てみると、けっこういろいろある。Django や Flask、Zope、CherryPy、あるいは、Twisted や Tornado などの Web フレームワークの延長線上で作られたようなものや、ØMQ(ZeroMQ)、AMQP、RabbitMQ のようなメッセージキュー系のものなどもふくめてたくさんあり、どれを使えばよいものかという感じ。やりとりの方法も、XML-RPC も、JSON-RPC もいろいろある。速くて軽くて安定してりゃいいでしょって基準で探してみる?MessagePackを使ったものがあった。MessagePack は JSON ぽいところがあるけれど、もっと高速でコンパクトにシリアライズして送受信できるものらしい。Protocol Buffers よりも速いらしい。例えば、[1,2,3] ならば、>>>import msgpack>>> msgpack.packb([1, 2, 3])'\x93\x01\x02\x03'>>> msgpack.unpackb(_)[1, 2, 3]MessagePack for PythonPython で実装した Official な MessagePack for Python - msgpack-python (Masahiro Nakagawa)もあるけれど、mprpc - A fast MessagePack RPC library (Studio Ousia) を使ってみた。mprc は geventとMesssagePack をベースにしていて、Official なものの 1.8倍程度の速度が出るようだ。まぁ、それほど高速とかこだわってないんだけど何にも考えずに速くなるならいいやw。mprpc を見てみると Cython使ってんじゃん。なるほどそういうことか。まあ、とにかく軽くて速けりゃ、Raspberry Pi で使うにはよいかなと(まだ Raspberry Pi では動かしてない)。ちょこっとだけソース見ると、msgpack-python の方は、下の方で tornado 使ってる。mprpc は gevent 使ってる。でもって、gsocketpool を使った実装ではさらに早くなるみたい。ちなみに、msgpack-python も、mprpc も日本の方が書かれているようだ。MessagePack も日本人の方々のようだ。ちょっと調べてみる。バイナリシリアライズ形式「MessagePack」(Sadayuki Furuhashi) のあたりも見る。そうかそうか。fluentd の人か。流行に疎い私も fluentd は名前だけは目にしていた。なんかソフトウェアの世界でも特にこの10年で日本発で世界に認められるというパターンが増えてきている印象。若くてピチピチしていた才能溢れる人たちがちゃんと育っているのね。いいことだ。ついでなのでいろいろ見ておく。MessagePack Wikiバイナリシリアライズ形式「MessagePack」Introducing the MessagePackMessagePack-RPCのプロトコル仕様(ドラフト)と実装例高速メッセージングシステムMessagePack - 楽天テクノロジーカンファレンス2010筑波大学大学院博士課程 システム情報工学研究科修士論文 分散システムのためのメッセージ表現手法に関する研究グリー技術者が聞いた、fluentdの新機能とTreasure Data古橋氏の野心 (1/3)#22 古橋貞之氏 世の中を幸せにするシステムを開発したい前置きはさておき、コード的にはこういうものになる。いずれも、Package Index: mprpc 0.1.2よりからの引用。インストール$ pip install Cython$ pip install mprpcサーバー側from gevent.server import StreamServerfrom mprpc import RPCServerclass SumServer(RPCServer): def sum(self, x, y): return x + yserver = StreamServer(('127.0.0.1', 6000), SumServer)server.serve_forever()クライアント側from mprpc import RPCClientclient = RPCClient('127.0.0.1', 6000)print client.call('sum', 1, 2)gsocketpool を使うと、import gsocketpool.poolfrom mprpc import RPCPoolClientclient_pool = gsocketpool.pool.Pool(RPCPoolClient, dict(host='127.0.0.1', port=6000))with client_pool.connection() as client: print client.call('sum', 1, 2)理屈は抜きに、簡単に使えるから嬉しいじゃないの。過去の関連記事Raspberry Pi 買ってみたRaspberry Pi で LED チカチカしてみたRaspberry Pi と Sony RC-S380/P、nfcpy で NFC カードの IDm を読み取る★確実正規★返金保証★サポート抜群【最安挑戦】【即納】ラズベリーパイ Raspberry Pi Type B 512MB【確実正規】
2014.03.09
閲覧総数 1207
11

docker 環境を簡単に管理するのに dockge をインストールした。 簡単にできることを簡単にできればよいかなということで dockge を使うことにした。Uptime Kuma をネットワーク監視ツールとして使っているが、開発者は同じ Louis Lam さん。portainer.io でもよいのだが、個人の実験環境では、このぐらいシンプルなもので十分かなと。便利なのは、docker run のコマンドをペーストすると、compose.yaml を書き出してくれるところ。Docker のイメージをボタンひとつで更新できること。起動したときの docker log の表示をウェブ ベースで表示してくれるところ。必要最低限の機能を満たしてくれている。エージェントの設定をすれば、複数マシンの Docker 環境を一つの画面で扱うこともできる。ちょっと面倒なのは、すでに動かしているものがあるときは、改めて Dockge で設定しなおさないとならないこと。まぁ、大した手間ではないが、いくつもあると面倒に感じはする。とはいえ、移してしまえば、やってよかったなとなる。インストールから一連の操作は、この動画を見ると分かる。その他、紹介動画は、このあたり。文書で読みたい人は、How to Install and Use Dockge on Linux: A Step-By-Step Guide
2024.03.19
閲覧総数 3997
![]()
![]()
![]()