python

PyQt5でさくっとGUIを作る

普段GUIを作成する場合はC++withQtで作成してます.実のところQtを使えば簡単にGUIが作成できるんですが,わざわざQtプロジェクトを作るのもあれだなーという時 にPython用のQtバインディングであるPyQt5を使うともっとお手軽にできるのではないかと思って試…

CPythonのgrennlet(グリーンスレッド)の実装について

OSが管理するスレッドと違って,ユーザのプログラムによって管理されるスレッドのことをグリーンスレッドといいます.他にもマイクロスレッドとか軽量スレッドとかいったりすることもあるようです.ネイティブスレッド(OSが管理するスレッド)と比較したとき…

グラフ(ネットワーク)を奇麗に描画するアルゴリズム

グラフはノードと辺の集合から構成されているだけなので,その描画方法は任意です.例として,以下の3つのグラフはどれも同じです. グラフをどうやって奇麗に描画するかという研究は昔からおこなわれていて,そのうちの一つに力学モデルがあります(Wikipedi…

NetworkXによるスモールワールドネットワークの生成

NetworkXはpython製の複雑ネットワークのためのライブラリです.NetworkXを使うと,お手軽にグラフ構造が作成できます.平均経路長(2点のノード間の平均距離)やクラスタリング係数(隣接ノード同士が接続している割合)といったネットワークの特徴量を求める関…

pythonのitertoolsのrecipeのメモ

公式にitertoolsのrecipe集があるのでそれのメモ. バージョン: python3.3 参考: itertools — Functions creating iterators for efficient looping — Python 3.7.3 documentation ・take(n,iterable) 最初のn個の要素をリストとして返します from itertools…

pythonのitertoolsメモ

バージョン: python3.3 参考: http://docs.python.org/3/library/itertools.html itertoolsのpythonによる実装が書いてあるので勉強になります. ・itertools.accumulate(iterable[, func]) In [2]: it = itertools.accumulate([1,2,3]) In [3]: for i in it…

Skypeで特定のチャット/人物のみGrowlする

僕は普段SkypeのGrowl通知は邪魔なのでオフにしていますが,たまには特定のチャットや人物に対してGrowl通知をして欲しい時もあります.Skypeの通知設定では細かいところまで設定できないのでSkype4Pyを使って作ってみました.Skype version 5になってからSk…

ターミナルからSkype その2 -- pepi

昔こんなの作ったんですが、あまりにも酷い出来だったので作りなおしました。最初はcurses使えば少しはましなの作れるんじゃないの?と思ってcurses使ってちまちま作ってましたが、その後urwidというコンソール用のユーザーインタフェースライブラリ(普通の人…

Pythonのデコレーターの使い方

数カ月前にPythonのデコレーターを勉強した時はよく分かんなかったんですが、今日勉強してみたらなんか分かった気がするのでめも。間違ってたらごめんなさい。 以下のサイトを参考にしてます。 ・Python decorator 日本語で分かりやすいです。 ・PEP 318 -- …

Pyevolveで学ぶ遺伝的アルゴリズム

Pyevolveとは、Pythonで書かれた遺伝的アルゴリズムのフレームワークです。公式サイトによれば、Pyevolveの方針は、・ pure python で書く ・ APIを簡単に使えるようにする ・ 進化過程をグラフ等で見れる ・ 拡張性をもたせる ・ パフォーマンスを第一にデ…

cho : CUIな簡単な支出記録

自分用にCUIな簡単な支出記録作りました。Python2.7で動作確認してます。 GitHub - mmisono/cho: Siimple text-based command line expenditure record 日付ごとに 名前:価格 のペアを登録していくだけです。 まぁ今月いくらぐらい使ったのかだけ分かればい…

Pythonでフラクタル

Python Imaging Library (PIL)を使うとPythonで画像処理がいろいろできるというのでこれを使ってドラゴン曲線を描いてみました。 あまり日本語の情報はないようですが、ドキュメントは豊富だと思います。 以下今回使っている関数のめも。 Image.new(mode,siz…

Skype4PyでAttach()せずにチャットメッセージを送信

できた。 % python -c "import Skype4Py;Skype4Py.chat.Chat(Skype4Py.Skype(),'#mfumi2/\$echo123;...').SendMessage('test')" いやまぁあらかじめチャット名が分かってないといけないんですが…。 (追記) いややっぱ内部でattach()してるみたい…

Skype4PyでRecentMessagesが取得できない

MacOSX 10.6 , Skype4Py 1.0.32.0, Python2.6.5 において、Skype4Pyを利用してチャットの最近のメッセージを取得しようとすると失敗します。 例えば、 import Skype4Py skype = Skype4Py.Skype() skype.Attach() print skype.RecentChats[0].RecentMessages[…

VimからSkype

(追記) 昔書いた記事ですけどいろいろ酷いので参考にしない方がいいです。。 自分は普段ターミナルからVimを使っているので、VimShellを利用することがなったんですが、今日使ってみたら普通にすごいですね。 VimShellを使うには(というかVimShellで非同期実…

PythonでSocket通信

Skype4Pyをいじってみて、なんとなくコマンドラインから現在のチャットにメッセージが表示できないのかなと思いました。とりあえず一番簡単な方法は、 import Skype4Py import sys skype = Skype4Py.Skype() skype.Attach() skype.RecentChats[0].SendMessag…

ターミナルからSkype -- Skysh

最近ターミナルからSkypeをしたいなーと思うことがよくありました。検索してみるといくつかターミナルからSkypeを実行するものが見つかりますが、いまいち自分に合うものがなかったので、Skype4PyというSkypeAPIのPythonラッパーを使って、ターミナルからSky…

Skype4Pyがsegmentation fault する

Skype4PyというSkype APIのpythonラッパーがありますが、これをMac OS X 10.6.2 , Python 2.6.1 , Skype 2.8.0.851 で実行するとSegmentation faultを引き起します。何が原因なのかなーと探していましたが、結局のところPythonが64bitアプリケーションで起動…

分割数の表示

数学ガールを読んだら分割数というものがのっていたのでそれを表示するためのプログラム。 まずはじめに作ったのがこれです。 #!/usr/bin/env perl use strict; use warnings; sub min{ my($x,$y) = (@_); if($x > $y){ return $y; }else{ return $x; } } my…

Pythonの循環インポート

『初めてのPython』第2版のp.348に載っている循環インポートについて。 解説1回読んだだけじゃよく分からなかったのでめも。 以下の2つのファイルがあったとします。 #recur1.py x = 1 import recur2 y = 2 #recur2.py from recur1 import x from recur2 imp…