サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
CES 2025
python.matrix.jp
exxoで1ファイルバイナリを作ろう exxo というツールを使ってPythonアプリケーションを 1ファイルの実行バイナリにパックして簡単に配布できるようにしてみよう! 続きを読む...
「インデント強制」はプログラマの自由を奪う? 確かに不自由な事にはまれに遭遇します。 ぱっと貼り付けて仮に実行とかワンライナー記述ができなかったり。 これは、やってみるしかないでしょうね。 やってみれば、変則的な記述の時しか 不自由を感じないことがわかっていただけると思います。 ぱっと貼り付けたコードを整形し忘れたまま コミットしちゃったといったことありませんか? ちゃんと読みやすいコード書くように心がけている人は、 「読みやすく記述するには」と考えるたり整形する手間を必要とします。 しかしこの制約のおかげで深く考えなくてもよくなり 周囲への周知などの手間が省け省力化に つながることが実感できると思います。 多少の不自由から開放されるメリットよりも、 コードの可読性が自然と確保されるというのは 大きなメリットだと思います。 「self記述省略不可」はOOPでないから? OOPでなかったころ
mkdir wxpython cd wxpython hg init hg pull -u http://python.matrix.jp/repos/wxpython リソースファイル解説 リソースのツリー: XRCedの使い方のコツを解説します。 基本の学習には XRCedの使い方 を参照してください。 (最新版にてoptionはpropotionという名称に変わっていますので読み替えてください。) Fileメニューの「Generate Python」をクリック。 ここでの設定内容は以下のようにしています。 このようにすると、参照した画像リソースやIDを設定したコントロールへのアクセスを ジェネレートしたpythonコードのなかですべて準備してくれるようになります。 そして、XRCedでの編集内容を保存するたびにresource_xrc.pyを自動的に生成するようになります。 以下では
PythonMatrixJpのコンテンツ管理 「さくらのレンタルサーバ・ライト」で運営しております本サイト。 最近管理方法をブラッシュアップしたのでその方法をメモっときます。 特徴 レンタル共用サーバで運用可能。 サーバにPythonさえあればOK。 sshログインなしでもなんとかなる。 Mercurialを利用。 続きを読む...
Pythonista向けGo言語入門 Pythonista向けにGo言語入門を書いてみた。 Pythonならどう書くかわかってる人がgoで書く場合にどうすればいいのかをまとめました。 続きを読む...
Google独自言語使いとしてもう一つのGoogle言語であるGo言語を紹介します。 コンパイル型言語のめんどくささがツライと思って敬遠してたけど、 触ってみたらびっくりするほどシンプルでLLっぽく使えるし、 静的型言語の恩恵にも預かれちゃうなかなか楽しい処理系だと思いました。 サイト: http://golang.org ツアー: http://go-tour-jp.appspot.com/#1 ネイティブコードにコンパイルして動く go処理系はすでにかなりのプラットフォームをサポート x86/amd64/ARM、Win/OS-X/Linux/Android/BSDなどなど コンパイルがDelphiを連想させるほどばかっ早い どのプラットフォームでも「go run ソース」ってすればさっくり動く 使用感はスクリプトを実行しているのとあまり違わない ビルドすると不要なコードはすべて取り除か
kivyってなに? サイト: http://kivy.org/ ソース: https://github.com/kivy/kivy ここで公開されているマルチタッチアプリ開発キットの名称です。 Fresh/Fast/Flexible/Focused/Funded/Freeを信条に開発されているそうです。 Androidでのサンプル動画 http://vimeo.com/22725621 kivyの特徴 Pythonを主に使って開発。 ライセンスがLGPL。 レンダリングがGLESベースでGPUアクセラレートが効く。 ゲームアプリ開発向き。 多彩なWidgetsは無く、ボタン以外はカスタムWidgetsを作るのが基本。 極基本なWidgetsが揃ってた。ツリービューや結構リッチなファイルセレクタもある。 主要なプラットフォームをひと通りサポート(Windows/MacOSX/Linux/iO
PySideってなに? Qt ベースのGUIフレームワークのPythonバインディング。 PyQtというのもありますが、PySideはLGPLライセンスの元で再実装されたものです。 使い方はPyQtとほとんど同じ。 PySideおすすめの理由 PySideのみの理由: LGPLのため、ソース公開しにくい業務での利用が可能。 PySide、PyQt共通の理由: QtCreatorが良くできていて、連携させることでUIデザインやモック作りが捗る。 クラス群設計の一貫性が高く、見た目もバランスが良い。 イメージクラス実装がよくできていて、多様なフォーマットを一貫した操作で加工できちゃう。 WebKitやSVGなどもそこそこ実用性の高いレベルの機能を備えてる。 Python3版があること 多バイト文字圏ではu文字列だらけになるがPython3ならスッキリ。 子プロセス起動などで引数のエンコードで迷
目的 エラー(例外)が発生した時、自動的にデバッガ「pdb」を起動して、 その時点のスタックフレームや上流階層に逆上って状況の確認がしたい! でも止めたい箇所が分散していていちいちブレークポイント貼ったりステップ実行とかしてらんない! みたいな状況で役に立つデバッグ手法です。 準備 以下をdebug.pyとして保存しましょう。: 1 import sys 2 3 def hook(type, value, tb): 4 if hasattr(sys, 'ps1') or not sys.stderr.isatty(): 5 sys.__excepthook__(type, value, tb) 6 else: 7 import traceback, pdb 8 traceback.print_exception(type, value, tb) 9 print() 10 pdb.pm()
wheezy.webという新しいフルスタック軽量WebFrameworkがリリースされています。 モダンな作りでかつ役割分担を明確に分離してデザインされています。 コードがシンプルで、アプリの実装に対して 極力オーバーヘッドにならないよう注意深く実装されています。 「契約によるデザイン」やベンチマークテストも取り入れていて 多人数での開発でも耐えうる仕掛けを持っているようです。 サイト: https://bitbucket.org/akorn/wheezy.web ドキュメント: http://packages.python.org/wheezy.web/ フレームワークのポリシー 薄く広くサポート Model/View/Controller分離推奨 WSGIサーバ用意してない。好きなの使え。 DBエンジンは用意してない。好きなの使え。 テンプレートエンジンは推奨のを用意してるが必須じゃな
タグbeginner (1), blog (1), column (0), debug (1), deploy (1), framework (2), gui (1), hardware (0), module (0), setup (1), sync (0), web (2)
バイナリパッケージャの基礎 紹介したバイナリパッケージャの役割は、 以下のようなファイルセットをひとつのフォルダに詰め込んでくれるというものです。 起動用実行ファイル python-VMランタイム 依存ランタイム ライブラリまたはライブラリアーカイブ アプリが必要とするその他のファイル 必要なファイルがすべて揃えば動作させることは比較的容易なんですが、 必要なファイルがどれなのかを発見する事がパッケージャの重要な機能で、 以下の2つの機能が提供されています。 依存ランタイムの検索 利用しているライブラリの検索 また、アプリが必要とするファイルはパッケージャに教えてあげなければいけませんので、 複数の指定ファイルまたは指定フォルダを結果に含める機能があります。 紹介したパッケージャのどれをつかうにしても、依存検索をさせて 「検索に漏れたファイル」や「アプリが必要なファイル」を追加指定するとい
私は、このゲームが大好きなんです。 このゲームの特徴は、 挙動がリアル指向 リアルに車が壊れる CPUカーがズルをせず賢いAIで動く 最初の点は最近良く見られるようになりました。 後者2点がこのゲームならではの特徴かと思います。 この特徴のおかげでものすごい緊張感のあるレースが楽しめます。 テールトゥノーズ、サイドバイサイドという表現を実感できます。 サイドバイサイドでは寄せすぎると、CPUカーが少し間隔を開けたりします。 テールトゥノーズでは小突く以上の当たりは後ろが不利になるので CPUカーはぶつからないようにスピードを合わせて来ます。 ミラー見ながらブロックしたりという駆け引きが楽しめる数少ないレースゲームです。 残念なことに、これらの要素のために見た目は控えめに作られています。 そしてコースや車種収録数が少ないです。 車種はDodgeViperGTS1車種オンリーという徹底振り。
概要 2つのフォルダペアを指定すると、その2フォルダの中身が同じになるよう ファイルの転送などを行います。 コマンドラインユーティリティとして作ってありますので、 バッチファイルやシェルからの利用がしやすいでしょう。 良くある同期ツールと違って特徴的なのは「 削除 」機能を持っていることです。 2つのフォルダをレフト、ライトと呼びます。 流れとしては、 起動時にレフト、ライトそれぞれのフォルダ内容のリストを取得します。 最後のファイルリストにあってレフトにないものはライトから削除。 最後のファイルリストにあってライトにないものはレフトから削除。 レフトにあってライトにないものはライトにコピー。 ライトにあってレフトにないものはレフトにコピー。 共通してあるものは日付をみて古いほうを新しいほうで上書き。 レフトとライトは同じになったので(無視するものを除き)そのリストを保存。 という手順をと
概要 「ipython」はインタラクティブコンソール拡張モジュールで、 インタラクティブコンソールに非常に便利な機能を追加してくれます。 これまで、pyreadlineモジュールが日本語キーボードを認識してくれなかったので、 (英語キーボードアサインになってしまう) 泣く泣く利用を見送っていた「ipython」ですが、 pyreadlineがバージョンアップして、日本語の利用もOKになったのです!
概要 Python Developers Festa で、cocos2dについてハンズオンすることになりました。 で、セッティングやってみると意外とハマるハマる・・・。 当日スムーズにするためにまずはセットアップについてだけ書くよ! cocos2d ってなんなの? pyglet をバックエンドに2D−ゲームを構築できるフレームワークです。 pyglet はctypesベースでOpenGLへのアクセスをラップします。 pyglet だけでもかなりのことができます。 描画一式やメディア、入力デバイスを簡単に取り扱えるようにします。 今1.2devバージョンが懸命にアップデート中! cocos2d はそれに加えゲーム作りの抽象概念をいくつか取り扱えるようにします。 シーングラフ ビューポートコントロール(カメラ) レイヤ(描画面) スプライト(キャラクター) アクション(動作シナリオ定義) パー
from serial import Serial com = Serial( port=0, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=None, xonxoff=0, rtscts=0, writeTimeout=None, dsrdtr=None) print com.portstr com.write("hello") com.close()
pythonでスタンダードになりつつある配布形態 egg このパッケージを利用するツール easy_install の使い方の基礎 目次 特長 最近 Pythonパッケージインデックス で「ナントカ.egg」という配布物をよく見かけますね? このeggパッケージは依存情報なんかも含んだ賢いパッケージで、 専用のインストーラを使ってあるパッケージをインストールする時、 不足しているパッケージを自動的に Pythonパッケージインデックス からダウンロード&インストールしてくれます。 つまり、Linuxのyumパッケージやdebパッケージの様な仕組みを提供しているのです。 この仕組みを利用するためのツールが distribute モジュールに含まれる easy_install というツールです。 Windowsでのセットアップ まずPCのネットワーク環境を確認してください。 インターネット接続
SWIG連携による実行速度効率化(Python25対応) PythonはSWIGとの連携をサポートする機能が標準で付属されているのです! 目次 概要 「SWIG」というC/C++コードを各種言語から 利用できるようにするラッパージェネレータがあるのをご存知でしょうか? ホームサイト: http://www.swig.org/ Allegro CL C# Chicken Guile Java Modula-3 Mzscheme OCAML Perl PHP python Ruby Tcl といった多彩なジェネレート出力が得られます。 このページでは当然Pythonからの利用を解説しますが、 実はPython標準ディストリビューションには SWIGとの連携をサポートする機能が最初から組み込み済みです。 つまり、他の言語利用よりもPythonとSWIGの組み合わせが最も親和性が高いといえます。
WebSocketsってなにができるの? WebSocketsは双方向ストリーム通信ができる規格。 最もメジャーなHTTPは同期型といい、 クライアントからサーバーへつなぎに行く。 クライアントからサーバへデータを送信する。 サーバーからクライアントへデータを返信する。 接続を切断する。 以上をセットで繰り返し、データの交換を行ないます。 HTTPではこの手順が規定されているので、手順3.に進んでから手順2.をやりたかったら 手順4.まで進めて最初から手順を踏んでいかなければなりません。 手順3.だけを繰り返したい場合も基本のこの手順セットを繰り返す必要があります。 これが双方向ストリーム通信の場合、手順1.を予め実行し繋ぎっぱなしにします。 手順2.や手順3.は随時好きなタイミングで実施できます。 これは手順4.を実施するまで任意の回数手順2.や手順3.を実行できます。 データが欲しい側
PyScripterとは? Python言語をメインサポートする統合開発環境(IDE)です。 (Python以外にはHTML、XML、CSSのサポートがあります) スクリーンショット:
ExtJSという選択 ExtJS はJavaScript製のGUIフレームワーク。 これを使うと一つのページ内にウインドウをいくつも開いたりといった ページをデスクトップの様に扱うことが出きるようになります。 py2jsをつかったJavaScriptフリーな開発 py2jsというモジュールを こちら の記事から知りました。 これを使うと、pythonコードをJavaScriptに変換できるようになります。 ExtJSの初期化やイベントハンドリングをPythonで記述し、変換したJavaScriptを利用します。 このpy2jsをうまく使うことでJavaScriptに触れずにExtJSを使えるようになります。 JSON-RPCを使ったクライアント-サーバ通信 JSON-RPCクライアントJavaScriptモジュール (jabsorb より抜粋しました) PythonWSGI製のJSON-R
特徴 オープンソース GPL2ライセンスによる公開です。 クロスプラットフォーム wxWidgetsを使って開発されており、LinuxとWindowsで動作確認済み。 MacPPCへのサポートが始まっているようです。 GNUコンパイラによるビルド プロプライエタリなライブラリへの依存がありません。 コンパイラーをバンドル Windows版はMinGWをバンドルしたリリースパッケージを用意 リリース版はインストーラ一発で開発環境のセッティングが完了する。 サポートコンパイラが豊富 GCC (MingW / Linux GCC) MSVC++(2003 2005) Digital Mars C++ Borland C++ 5.5 Intel C/C++ Open Watcom SDCC(ワンチップマイコン向け!) Digital Mars D(D言語!) GNU ARM GCC マルチプルター
>>> def hoge(**keys): ... print keys ... >>> hoge(i=1, j=2) {'i': 1, 'j': 2} このように、名前つき引数はダブルアスタリスクをつけたプレースホルダに辞書として格納されます。 そして、dictオブジェクトコンストラクタもこの名前つき引数から辞書の作成が出来るようになっています。
概要 「 MyHDL 」は「 python 」によるハードウェアロジック記述に特化した 「 DSL 」の一種です。 MyHDLはPythonにいくつかの制約と拡張を行った記述になっています。 ほとんどの基本的なPythonの記述方法が使えます。 Verilogへのトランスレート Pythonレベルのシミュレーションテスト という2つの主要機能によって 「ハードウェアロジックの開発」を「Pythonベース」で行うことができます。
はじめに 以下3エントリの内容と「 InnoSetup 」あたりをマスターすれば、 ちゃんとしたアプリケーションを構築・提供出来ますよ! (個人的にはちまちまと実績をあげていっています。) C++とPythonのコラボレーション wxPython雛形集 py2exeモジュールについて また、Pythonは標準サポートで CSVファイルの読み書き INIファイルの読み書き XMLファイルの読み書き サウンドファイルの読み書きと再生 メジャーインターネットプロトコル などがあります。 さらに後述のモジュール群を活用すれば! 大抵のインターフェースにも事欠かないでしょう。 さあ、あとは肝心な中身に取り掛かろう! 外部ライブラリの利用 商用のインターフェースデバイスの利用などでは、 DLLによる開発キット&サンプルが付属するというパターンが多いと思います。 また商用ライブラリもActiveXやDL
インポートする時 hoge.pyというモジュールをインポートする時、 hoge.pycファイルがなければコンパイル後のキャッシュをhoge.pycとして保存するようです。 パッケージってなんなの? Pythonではフォルダに「__init__.py」があれば、そのフォルダを「パッケージ」として扱えるようになっています。 論理的なツリーを構築するためにもつかえますし、このフォルダ内に複数のモジュールを入れておき、あたかも巨大なひとつのモジュールのように振舞わせることが出来ます。
特徴 py2exeホーム : http://www.py2exe.org/ Python標準のdistutilsのプラグインです。 pythonで作成したスクリプトから、依存ライブラリを検索して、 収集したファイル群だけで実行可能なバイナリを作成する機能を持っています。 最近のバージョンになって、バンドルレベルが選択できるようになり、 単独のexeファイルに組み上げる Python25.dllとMSVC71.dllとexeの3つに組み上げる 依存ライブラリをアーカイブまたはフォルダに分離する といった混成度合いが指定できるようになりました。 単独のexeにしちゃうと、Pythonランタイムまで内臓してしまうのでシンプルなスクリプトも2メガバイトを超えてしまいます。
SCMとは? 「Software Configuration Management System」の略で、 邦訳は「ソフトウェア構成管理システム」がふつーなんですが、 一般には「バージョン管理ツール」とかの方が通りが良いでしょう。 主な機能として、 管理対象ソフトウェアのソースコード一群の変更を記録しておき、 時系列順に変更履歴をたどれるようにしたシステムなんです。 具体的な対象はソースコードファイルが基本です。 ソースコードの変更のあった行を抽出したり出来ます。 最近のバージョン管理ツールは あらゆるファイルの履歴を追えるようになっています。 ワードやエクセル、バイナリファイルなどもとりあえず バージョン別に記録されたものを取り出せます。 (部分的な変更を抽出まではできないことが多いです。) 仕組みとしては 「管理対象ファイル群」とは別に 「リポジトリ」と呼ぶ履歴情報を含んだ データベー
次のページ
このページを最初にブックマークしてみませんか?
『ホーム — PythonMatrixJp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く