1
wxPython 入門 (1) 、wxPython 入門 (2) に引き続き、wPython.org の Getting Started をサカナに第三弾。"Building a simple text editor" のあたりを見ていく。シンプルなテキストエディタを作ってみましょうというところ。TextCtrl の style を指定すれば、スクロールやワードラップ、右寄せ、左寄せ、センタリング等々の設定ができるところまで wxPython 入門 (2) で確認したが、文字の色をつけたり、フォントを指定したりするにはどうしたらよいかということを見ていく。要するに、TextCtrl をもう少し見ていきましょうということ。TextCtrl の文字色と背景色を変えるテキストコントロールの SetForgroundColour メソッドで文字色、SetBackgroundColour メソッドで背景色を変更することができる。文字色は、英語名でも、16進形式でも、10進形式(RGB を 0-255で指定) でも可能だが、英語名の場合は、すべての名前が使えるわけではなく、red, blue, yellow, black, white, gray... といった基本色以外は使えない。名前は何が使えるか、未調査。たとえば、wheet みたいなものは使えない。wx.WHITE、wx.GREEN、wx.BLACK、wx.CYAN, wx.RED, wx.LIGHT_GREY のようなものも使える。無効な色が指定された場合は、デフォルトの色になる。10進形式の場合は、wxColour(R, G, B) で指定する(それぞれ 0~255)。ちなみに、"colour" であって、"color" でないので注意(英国式の綴り)、と思ったら、実は、wx.Color(R,G,B) でも大丈夫だった。どちらかに統一しておいたほうがよいだろう。wx.LIGHT_GREY はあるが、wx.LIGHT_GRAY はないなど、基本的には英国式綴りをベースにした方が問題ないように思える(最初は英国綴りだけしかなくて、みな間違えるので米国式綴りも定義されたんじゃなかろうか。それゆえ、すべてのクラスで両方あるわけではないと。歴史的経緯については調べていないけど)# -*- coding: utf-8 -*-import wxclass MyFrame(wx.Frame): """ 文字色と背景色を変える """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) # 文字色の指定 # 次の4つはどれでも同じ結果になる。 # self.control.SetForegroundColour("red") # self.control.SetForegroundColour(wx.RED) # self.control.SetForegroundColour(wx.Colour(255, 0, 0)) self.control.SetForegroundColour("#ff0000") # 背景色の指定 self.control.SetBackgroundColour("#e0ffff") # 表示 self.Show(True) app = wx.App(False)frame = MyFrame(None, '簡易エディタ')app.MainLoop()wx.色 で定義されているのは、次の色。wx.BLACKwx.WHITEwx.REDwx.BLUEwx.GREENwx.CYANwx.LIGHT_GREYTextCtrl のフォントを変える今度は、フォントの種類を変えたり、文字の大きさを変えたり、イタリックにしたり、太字にしたりしてみる。指定は、SetFont メソッドを使う。ただし、直接値を渡すのではなく、wx.Font() でフォント指定のオブジェクトを作ってから渡す。その際には、フォントのサイズ、ファミリー、スタイル、ウェイトを指定しなければならない。下線を文字の下につけたいときは、引数の最後に True を追加する (1でもよい)。False なら下線なし。フォントファミリーは、wx.FONTFAMILY_DEFAULT デフォルトwx.FONTFAMILY_DECORATIVE デコラティブwx.FONTFAMILY_ROMAN ローマン(serif) wx.FONTFAMILY_SCRIPT ハンドライティング(手書き風)wx.FONTFAMILY_SWISS スイス(sans-serif) フォントwx.FONTFAMILY_MODERN 固定ピッチフォントwx.FONTFAMILY_TELETYPE テレタイプフォントフォントスタイル (FONTSTYLE_) は、wx.FONTSTYLE_NORMAL ノーマルwx.FONTSTYLE_SLANT スラントwx.FONTWEIGHT_BOLD ボールドwx.FONTWEIGHT_LIGHT ライトフォントウェイトは、wx.FONTWEIGHT_NORMAL ノーマルwx.FONTWEIGHT_LIGHT ライトwx.FONTWEIGHT_BOLD ボールドただし、wx.DEFAULT, wx.NORMAL, wx.SWISS, wx.BOLD のように、前半の FONTFAMILY_ や FONTSTYLE_ をつけなくても、実際の定数の INT の数値が同じなので問題ないようだ。同じ定数が定義されている。検索してみると、両方見つかるが、デモなど見ても、wx.DEFAULT のように短縮した形式になっているので、短い形式で指定することにした。次の例では、24ポイントのノーマルフォントで太字でイタリックで表示している。# -*- coding: utf-8 -*-import wxclass MyFrame(wx.Frame): """ 文字色と背景色とフォントを変える """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) # 文字色の指定 self.control.SetForegroundColour("#ff0000") # 背景色の指定 self.control.SetBackgroundColour("#e0ffff") # フォントの指定 font = wx.Font(24, wx.NORMAL, # wx.FONTFAMILY_DEFAULT wx.ITALIC, # wx.FONTSTYLE_ITALIC wx.BOLD) # wx.FONTWEIGHT_BOLD self.control.SetFont(font) # 表示 self.Show(True) app = wx.App(False)frame = MyFrame(None, '簡易エディタ')app.MainLoop()TextCtrl のフォント名を指定する使用するフォントを名前で指定することもできる。その場合、wx.Font(ポイント, ファミリー, スタイル, ウェイト , アンダーライン(T|F), フォント名) のような指定になる。アンダーラインのところで True を指定すれば、文字に下線が引かれる。False なら通常の表示。次の例は、フォントにメイリオを使って、下線を表示している例。# -*- coding: utf-8 -*-import wxclass MyFrame(wx.Frame): """ 文字色と背景色、フォントなどを変える """ def __init__(self, parent, title): wx.Frame.__init__(self, parent, title=title, size=(400,300)) self.control = wx.TextCtrl(self, style=wx.TE_MULTILINE) # 文字色の指定 self.control.SetForegroundColour("#ff0000") # 背景色の指定 self.control.SetBackgroundColour("#e0ffff") # フォントの指定 font = wx.Font(32, wx.DEFAULT, wx.NORMAL, wx.NORMAL, False, "メイリオ") self.control.SetFont(font) # 表示 self.Show(True) app = wx.App(False)frame = MyFrame(None, '簡易エディタ')app.MainLoop()ちなみに、TexCtrl を駆使すれば、それなりのリッチテキストエディタが作れるはずだが、リッチテキストエディタがほんとうに作りたければ、むしろ、wx.RichTextCtrl を使った方がいいだろう。デモを見ると、こういうものがある。ただし、ちゃんとしたアプリケーションとしては仕上げられてはいないから、表示するところまでで、保存はテキスト形式になっちゃうけど。TextCtrl 自体、まだまだネタはあるのだが、おいおい取り込むことにして、とりあえず、先に進むことにする。
2010.10.01
閲覧総数 5935
2
proxmox でいろいろやっている今日この頃。仮想マシンをすばやく作れるように Cloud-init の設定をしてみた。同じことを説明するにしても、キャラクターが出るなぁといろいろ見てみた。Cloud-init についてcloud-init.io/Ubuntu Cloud ImagesDebian Official Cloud ImagesCloud-Init Support (proxmox)Cloud-init documentation (RedHat)お家で始める仮想化環境 Proxmox VE Cloud-init編cloud-initを使ったLinux OSの初期設定cloud-initをデバッグする Part 1いまさらで物凄く恐縮ですが、cloud-initについて勉強してみたcloud-init で実施する SSH サーバー設定まとめ
2024.01.05
閲覧総数 2853
3
Python Google Chart の作者が公開している Python Call Graph を使ってみる。呼び出し関係、呼び出し回数と実行時間がグラフで表示されるので、いいかもしれない。大きいグラフになったときにどのようなビューアで見るかというところがポイントかもしれない。何か見やすいツールはないかなぁ。インストールは easy_install pycallgraph で OK。使い方は、下の通り。pycallgraph-dot.py --image-format=png mypythonapp.py graph.pngまたはpycallgraph-dot.py mypythonapp.py graph.png上記を実行すると、mypythonapp.py を実行してコールグラフを graph.png に出力してくれる。グラフの生成は Graphviz を使っている。pydot などと同じように dot ファイルを書き出して、Graphviz の dot コマンドを呼び出してグラフを生成している。pycallgraph-dot.py を引数なしで実行するか、--help を付けて実行するとオプションが表示される。Python Call Graph 0.4.0 も参照。コマンドラインから実行する以外に、プログラム中でモジュールを読み込んでトレースを仕掛けて、結果の画像を出力することも可能。下のように do something のところにコードを入れておけば、test.png が生成される。if __name__ == '__main__': import pycallgraph pycallgraph.start_trace() # do something pycallgraph.make_dot_graph('test.png')start_trace には次のコードがある。邪魔な関数は filter_func を指定してやれば削除することができるし、time_filter_func で時間にカウントしない関数をフィルタすることができる。詳細については、ソースコード参照。デフォルトでは、['pycallgraph.*'] のみ対象外となる。 if filter_func: trace_filter = filter_func else: trace_filter = GlobbingFilter(exclude=['pycallgraph.*']) if time_filter_func: time_filter = time_filter_func else: time_filter = GlobbingFilter()ちなみに、トレースする分、実行速度は通常より遅くなる(当然といえば、当然)。細かくみるなら Python プロファイラ を使った方がいいが、Python Call Graph は視覚的に分かりやすい。けれどもノードがたくさんある大きい、グラフはよいビューアがないと見るのが大変。実例は、Python Call Graph のページを参照。
2008.01.01
閲覧総数 2486
4
昨年末から Beeling EQ12 を 3台購入して、 クラスター構成で proxmox で遊んでいるが、しばらく、これで遊んでいようかと思っている。昨日は、大晦日なので積み残しの作業をしてみた。先日、分散ストレージの Ceph の設定をするのに、とりあえず USB メモリで試してみた。あまっていた SSD 120GB が 3個あったので、それを PC を開けて入れてみた。そして、Ceph の設定はやり直し。その過程で、一部のマシンをクラスタから切り離したり、 Ceph の設定をやり直しをするときにどうしたらよいかなど覚えられた。Ceph のインストールと CephFS の設定までは簡単にできたが、仮想マシンを CephFS に移動しようとしてもできない。HA (High Availability) の設定をするためには、OSD (Ceph Object Storage Daemon) の設定のあと RBD(RADOS Block Device)の設定もしないといけないとあとでわかった(適当にやっていたので、よくわかっていなかった)。それが済むと、やっと仮想マシンを ceph に移動することができるようになり、HA の実験もできるようになった。きちんと全部調べてからやればよかった...。面白い。ほんの少し待っていると別のノードに移動して動き始めてくれる。HA グループを作って、振り分けの優先優先度を指定しておけば、ノードが落ちた時に別のノードで仮想マシンが動いてくれる。あれこれ読まずとも、この動画を見るといい。日本語の説明では、 Proxmox VE上でCeph/CephFS環境を作ってみる。、 Proxmox上のCephクラスタにRBDを作成し、ライブマイグレーションする が参考になる。cephCeph (Wiki)Red Hat Ceph StorageRed Hat Ceph Storage の操作タスクProxmox VE Storage Ceph RADOS Block Devices (RBD)分散ストレージ ソフトウェア Ceph(セフ)とはProxmoxでClusterからノードを削除する方法High AvailabilityHow to Completely remove/delete or reinstall ceph and its configuration from Proxmox VE (PVE)最近の記事ひさびさにPCを買ったProxmox で Ceph を設定してみたcasaos をインストールしてみたPi-hole をインストールしてみた。
2024.01.01
閲覧総数 3487
5
proxmox から FreeNAS の NFS を使えるように設定してみた。proxmox を 4台の PC にインストールして遊んでみているのだが、 ceph に使っているのが 120GB の SSD なので、ちょっと心もとない。ということで、 TrueNAS で運用している NAS の NFS を proxmox から使えるように設定してみた。次の動画を見ると TrueNAS の NFS の仕方から、丁寧に説明してくれている。Storage: NFS最近、Python の話題を投稿していないので、何か書いてみようかな。
2024.02.25
閲覧総数 2854
6
いろいろお勉強し直し。サーバーを立てて検証するために proxmox VE をインストールした。Proxmox VEで仮想化プラットフォームを簡単構築 あたり参照すると、だいたいの雰囲気が分かる。Proxmox を選択した理由は、下のような理由と同じかな。YouTube を見ているうちに、Proxmox 関連の動画がたくさん出てくるようになって洗脳されちゃったのかもしれない。XCP-ng もちょっと見たのだけれど、少しとっつきにくかったので、Proxmox VE にした。KVMとOpenVZをサポートしているハイパーバイザー型のOSです。Linuxには仮想マシンであるKVMとコンテナであるOpenVZはLinux系であればかんたんに構築できますが、GUI管理が簡単にできないという問題点がありました。それがProxmoxでは簡単にWebGUIで操作することができます。Proxmoxがかなり使いやすい件についてProxmoxは無料版でクラスター化も可能で、PCI拡張カード(グラフィックカードやSASカードなど)のパススルーが容易です。また、VMごとのコア数の制限もないし、仮想サーバに直接物理HDDを接続してzfsフォーマットや、RAIDZにも対応していることですね。そして、何より文献(英語)が多い!Proxmoxでプライベートクラウドを立てる大きな特徴として、VMWare ESXiと比較し、ライセンスフリーでほぼすべての機能を利用できる点が挙げられます。無償版でも、VMWare ESXiのようにVMあたりのコア数の制限はありません。また、複数のホストをクラスタリングしたり、HA環境、ライブマイグレーションといった機能も無償で利用することができます。さらに、VMWare ESXiと同様にWebインタフェースを持っていますので、Webブラウザ経由で簡単に管理することができます。Debianベースで開発されていますので、ホストOS上にRAIDコントローラのドライバなども簡単に導入することができるのも、利点といえるでしょう。さらに、VMWare ESXiでは早期にCPUサポートが打ち切られるケースがありますが、Proxmox VEでは基本的にLinux Kernelが動作可能なモノであれば動かすことができます。自宅などで古いハードウェアを利用する際には、有力な選択肢となるでしょう。お家で始める仮想化環境 Proxmox VE 環境構築編Proxmox とは関係ないが。
2022.11.23
閲覧総数 4416
7
ファイルサーバとして、古いマシンで TrueNAS core を動かしているが、proxmox のクラスタを作ったときにネットワークを 2.5Gbps 対応にし始めたので、このファイルサーバも 2.5Gbps 対応させることにした。適当に 2.5Gbps の NIC を探して購入してからファイルサーバにつけたものの認識しない。調べてみたら、ちょいと設定をしてやる必要があることが分かった。ちなみに、proxmox をインストールしているマシンでも使っているが、特殊な設定は必要なかった。1Gbps の NIC で最初設定していたので、カードを追加したあと、普通にネットワークの設定をしたら使えるようになった。TrueNASを2.5Gイーサーネット対応にできたTrueNAS CORE で RTL8125BG を使うTrueNAS core のメニューから次の手順で設定すると、使えるようになった。メニューから システム 調整 ADD ボタンをクリックTunable の入力画面で、 Variable: if_re_load Value: YES Type: loader Description: 2.5Gbps NIC 対応SUBMIT ボンタンをクリック購入したのは、これとは違うが。玄人志向 GBE2.5-PCIE Realtek RTL8125BG搭載 2.5GBase-T イーサネットボード (PCI Express接続)
2024.01.30
閲覧総数 3043
8
Scaling Python for High-Load Web Sites を読んでいたら、この中で Load Balancer として nginx があげられている。Perlbal を試してみようかなと思っていたところなのだが、とりあえず nginx について先に調べてみる。pound とも最終的に比べる必要ありか。 Online Security Blog によるとGoogle Web server software distribution across the Internet の 4% が nginxらしい。 Netcraft では 2007年6月時点で 0.19% と少な目。でも Zope の 0.03% より多いし、thttpd や Resin よりも多いといえば十分な数といえるだろう。絶対数では 229186 サイト。Perlbal が 25サイトなのね。で 7月を見ると、なんと 0.29% になっている(367291サイト)。Perlbal は 23サイトに減っている。それにしても、GFE の数がすごい増え方。すでに IIS の 13.25% にまでなっている。全サーバの 4.35%。Google 強しというのは、こういうところにも現れているな。eginx は 元々ロシアの人が作ったものなのかな。2007年3月時点のロシアのバーチャルホストのうち 20% が nginx を使っているらしい。ドキュメントもロシア語版がある。ソースは http://sysoev.ru/nginx/ だからロシア人の Igor Sysoev さんが作ったもののようだ。2002年の春から開発を始めて 2004年の秋に最初のリリースが公開されたもよう。ちなみにロシア語は分からない。。。。。でも、英語のドキュメントがあるから大丈夫。nginx は、基本的な HTTP サーバの機能と proxy サーバの機能を持っているようだ。おもしろいのは、Mail proxy の機能も持っていること。IMAP/POP3/SMTP をバックエンドとすることができる。外側からは認証つきの HTTP で受けたものを内部のメールサーバに渡すことができる。DeleGate みたいな感じか(DeleGate の方が対応しているプロトコルは圧倒的に多いが)。対応プラットフォームも FreeBSD, Linux, Solaris 9, 10, MacOS X と Windows 以外は主要なものには対応している。安定版の nginx-0.5.29、開発版の nginx-0.6.4 と2系統ある。とりあえず "./configure && make && make install" でインストールしてみる。 /usr/local/nginx にインストールされる。 /usr/local/conf/nginx.conf の中の server の port (デフォルト 80 を適当に)、charset (デフォルト koi-8 を utf-8)を変えて試してみる。オプション -t をつけると設定ファイルのチェックができる。[root@snake conf]# /usr/local/nginx/sbin/nginx -t2007/07/21 12:19:13 [info] 26358#0: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok2007/07/21 12:19:13 [info] 26358#0: the configuration file /usr/local/nginx/conf/nginx.conf was tested successfullysyntax is ok と tested successfully で大丈夫なのが確認できたので動かしてみる。[root@snake conf]# /usr/local/nginx/sbin/nginx[root@snake conf]# ps aux | egrep '(PID|nginx)'USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 26365 0.0 0.0 4460 876 ? Ss 12:22 0:00 nginx: master process /usr/local/nginx/sbin/nginxnobody 26366 0.0 0.0 4596 1084 ? S 12:22 0:00 nginx: worker process root 26368 0.0 0.0 5464 804 pts/1 S+ 12:22 0:00 egrep(PID|nginx)マスタープロセスは root で動き、ワーカープロセスは nobdy で動く。nginx.conf の中で次のように設定すれば、ワーカープロセスのユーザーやワーカー数が設定できるようだ。たとえばユーザを nginx にして、worker_process の数を 4 つにしたければ、次の行を入れるといった具合。user nginx;worker_processes 4;とりあえず、まだデフォルトのままで動かしている。ちなみに nginx.conf は指定しなければデフォルトの nginx/conf/nginx.conf が読み込まれるが、明示的に指定したい場合は、nginx -c ~/test/nginx.conf のように -c オプションを使う。動作中に # kill -HUP 26365 のように SIGHUP を送れば設定ファイルを再読み込みしてくれ、設定ファイルに問題がある場合は、そのまま古い設定で動き続けるようだ。よくできていると思うのは、nginx のバイナリのアップグレードが必要になったとき。古いバイナリを動かしたまま、USR2 シグナルを送ると 自動的にnginx.pid ファイルを nginx.pid.oldbin にリネームしてくれる。ここで新しいバイナリを動かすと、2つのバイナリのプロセスが動いている状態になる。さらに WINCH シグナルを古い方のプロセスに送れば、古いバイナリで動いているワーカープロセスは既存のリクエストを処理してからきれいに終了してくれる。マスタープロセスは、すべてのワーカースレッドがちゃんと終了してから終了する。ロードバランサーが single point of failure になっているから、サービスを継続しながらアップグレードするためには、こういう心憎い配慮が嬉しいところかもしれない。nginx を起動後、http://localhost:[nginx_portnumber]/ でブラウザから見てみると、「Welcome to nginx!」が表示された。次に、nginx.conf の http, server の location として、次のものを追加してみる。 location /test { proxy_pass http://127.0.0.1; }そうすると、http://localhost:81/test/ にブラウザからアクセスすると、port 80 で動いている Apache の /test が表示された。次のようにすれば、URL が .php で終わっているときだけ port 80 にリクエストが渡される。 location ~ \.php$ { proxy_pass http://127.0.0.1; }使いよさそうなので使い込んでみることにしよう。poud や perlbal よりも負荷にも強いようだ。けど、そんなに負荷の高いところで使うわけじゃないからいいんだけど。基本的には複数のサービスを動かしておいて割り振りに使いたいだけだから。まあ、軽くて強いに越したことはない。ちなみに Apacheを使ったときと nginx を使ったときの速さの違いを、静的HTMLを使って測ってみると下のようになった(ab -n 1000 -c 5)。1リクエストあたりの処理時間は、2.833 ms(Apache) 対 0.373 ms (nginx) で圧倒的に nginx が速かった。まあ nginx の方が機能が少ないだけに当たり前といえば当たり前なのだが。Apache を使った静的な HTML のテストTotal transferred: 7499000 bytesHTML transferred: 7227000 bytesRequests per second: 352.94 [#/sec] (mean)Time per request: 14.167 [ms] (mean)Time per request: 2.833 [ms] (mean, across all concurrent requests)Transfer rate: 2584.61 [Kbytes/sec] receivednginx を使った静的な HTML のテストTotal transferred: 7454000 bytesHTML transferred: 7227000 bytesRequests per second: 2679.47 [#/sec] (mean)Time per request: 1.866 [ms] (mean)Time per request: 0.373 [ms] (mean, across all concurrent requests)Transfer rate: 19503.87 [Kbytes/sec] received肝心の LoadBalancer の機能については、こんな感じで設定できる。nginx は CGI の機能は持っていないので、バックエンドのサーバーで処理するか、あるいは FASTCGI を使う。簡単なスクリプトを実行するときの例 のようにしなければプログラムが実行できない。ゆえに、悪さをするときの難易度は高くなる(簡単にのっとられにくい)。それはある意味設定が面倒だったりするということなのだが Proxying and Load-Balancing with TurboGears とか、ドキュメントページの下の方の Example Configurations and Recipes にあるので、これを見ながらやれば問題ないだろう。設定例のドキュメントは豊富。Pylons benchmark on various servers を見ると、cherokee との速度比較の例がある。Pylons を使った実験だが nginx をリバースプロキシーとして paster サーバを2つ動かしておくやり方の方が、nginx + FASTCGI よりパフォーマンスがよいので FASTCGI を使うよりリバースプロキシーとして使った方がいいかな。で、それと cherokee で SCGI を使ったときを比べると、同時アクセスが数十であれば nginx reverse proxy の方がいい反応。ただし、cherokee SCGI を使った方が CPU に対する負荷は低いようで、1秒間に 200 程度のアクセスだと cherokee を使った方がレスポンスもよくなるようだ。
2007.07.21
閲覧総数 946
9
東証銀行業株価指数連動型上場投資信託 【東証:1615】 の今日の予測値は、銀行売られすぎ で書いたシステムの予想は 312円から412円で売りスタンス。実際の値は始値 321、高値 321、安値 316、終値 319やはり、上値を下げるところがうまくいっていないので上は相変わらず高く出すぎ。これはもうちょっと実測値に近いものがでるように再検討中。下値は反応をよくしたら、今度は大きく反応し過ぎて下に出てしまった。なかなかうまくいかない。とりあえず来週の予測。システムの予測は 313~343円 売りスタンス人間予想としては底抜けするかもしれないというイメージ。とりあえず、米雇用統計、雇用者数減少~円相場は114円台に 、 米雇用、8月は4000人減――4年ぶりマイナス の状態になっているようだ。これで米国はFFレート引き下げの方向という観測記事が増えてくるかな。FRBは、なぜ利下げを出し惜むのか FFレート引き下げ判断、注視材料は米国債とドル売り?。来週は、売り仕掛け側はやたら強気で売り売り売り、総悲観の相場なんだろう。しかしまあ、信用収縮がどうのこうのいっても、日本株の脆弱さというのはなんともいえないものがある。今日は りそなホールディングス が崩れて、あともう一息で年初来安値更新だったが、今一歩届かず。月曜に再チャレンジか? みずほフィナンシャルグループ は次のターゲットか。みずほFG:1500億円の自社株買いを完了-取得枠の上限、全て償却へ ということで買いが薄くなるだろうとの観測を流しているところがある。三菱UFJフィナンシャル・グループ が最終ターゲット。なんて考えると各個撃破で年初来安値を付けさせていくようなイメージで見ていくと、やっぱり下に向かっていく印象。そんなときに 35万人分の顧客情報を紛失 三菱東京UFJ銀 なんておめでたい話。横浜銀行 も自社株買い終わったら弱くなったか。その他の銘柄三菱UFJニコス の方がリバウンドを拾うなら早いか。まあ、このあたりはかなりギャンブル性が高いかもしれない。常時チェックの一発勝負。一発いってしまった。前日比 +13 (+4.47%)か。セコムは今度は強すぎるのが不思議と書いておく。まあ、信用倍率の問題もあるので強いのは分かるのだが、他の銘柄の戻り状態と比べても強すぎるような気がする。-130 (-2.30%) とやっぱり下げた。セブン&アイはやっぱり日経平均が下がるとあからさまに下がる。というか、それに加えて、J.フロントリテイリングが日経平均銘柄に組み込みっていうのも関係あるのかな。もう一銘柄はSUMCOか。予測は大和総研を参照するのが一番よいのかもしれないと来年のためにメモっておく。JフロントとSUMCOを日経平均構成銘柄に新規採用=日経を見ると、日経300への追加は、三井造船、NTT都市開発、郵船航空サービスが追加か。
2007.09.07
閲覧総数 6
10
Python で GUI アプリを作りたいとき、お手軽に始められるのが Tkinter。でも、見栄え残念だったので、あまり使いたくなかった。wxPython の方が自然な見栄えにできるので、以前、しばらく使ってみていたのだが、2020-11-21 から 2022-08-07 にリリースがなかったから開発滞ってしまったのかなと使うのをあきらめた。今は、2023-06-07 wxPython 4.2.1 が最新で開発継続している。そんなわけで、pyQt か pySide でも覚えるかと思ったが、その気力もなかったので、 tkinter でいいかとなっていた。そんなとき、Tkinter でももう少しいい感じにできるということが分かったので、Tkinter で十分かなと思う今日この頃。バリバリのアプリを作るわけでもないので。本格的なアプリなら、pyQt か pySide を最初から覚えたほうがいいと思う。ソースは、codefirstio/tkinter-excel-appこれ以外にも、同じような仕組みのテーマが公開されている。Forest-ttk-themeAzure-ttk-themeSun-Valley-ttk-themeちなみに Azure-ttk-theme を使うと、こんな感じのものが作れる。他にも、omSchimansky/CustomTkinter や、ttkbootstrap のようなものもある。
2024.02.25
閲覧総数 2563