2016-01-18から1日間の記事一覧

Pythonでプラットフォームごとに処理を切り替える

プラットフォームで処理を切り替えたいことがたまにある。 sysモジュールを使うと割と簡単にできる。 import sys # "darwin", "linux", "win32" or "cygwin" sys.platform # Pythonのパスを取得したい場合は sys.executable

PythonでスタンドアロンなGUIアプリを作る

Mac Yosemite 上に構築する。 下準備 Homebrewのインストール クロスプラットフォームなGUIアプリを作るためにQtというライブラリを利用する。 Qtをインストールするのにbrewコマンドが必要となる。 Homebrew このページの先頭にあるスクリプトをコピーして…

Read-onlyなclasspropertyデコレータの実装

class classproperty(property): def __init__(self, fget): super(classproperty, self).__init__(fget) self.__doc__ = fget.__doc__ def __get__(desc, self, cls): return desc.fget(cls) class A(object): @classproperty def __tablename__(cls): retu…

ターミナルから起動するプログラムについて

catプログラムを起動する 例えば、ファイルの中身を見るcatというプログラムを起動してみよう。 ファイル名を引数にとって、ファイルの内容を出力する。 $ cat hello.txt hello, world!! プログラムの場所 プログラムはどこかになくてはならない。 catはどこ…

OCaml getting started

Install On ubuntu Prerequisite on 15.04 sudo apt-get install curl build-essential m4 zlib1g-dev libssl-dev ocaml ocaml-native-compilers opam Prerequisite on 14.04 sudo add-apt-repository ppa:avsm/ppa sudo apt-get update sudo apt-get instal…

SQLAlchemyでリレーション

以下のサンプルでは、 各クラスについてidやテーブル名を定義するのが面倒なのでベースクラスを用意する。 from sqlalchemy.ext.declarative import declarative_base, declared_attr Base = declarative_base() class BaseModel(Base): # 継承してね __abst…

PySideでスクリーンサイズを取得する

QApplicationオブジェクトのdesktopメソッドで、 QDesktopWidgetオブジェクトが取得できる。 このオブジェクトからデスクトップの情報を取得することができる。 以下のサンプルコードでは、 例としてデスクトップの左半分にウィンドウを表示している。 impor…

SQLAlchemyでサブクエリ

問題 SQLAlchemyから集約関数sumを使ったとき、 同じ列を重複してカウントしてしまった。 以下のようなSQLを実現したい。 sqlite> select l.lemma, lf.total, t.token, tf.total from lemma l join ( select lemma_id, sum(count) as total from lemma_in_fi…

CentOS6.5にPython3.5をインストール

依存しているライブラリを事前にインストールしておく。 sudo yum install tcl-devel tk-devel gdbm-devel openssl-devel sqlite-devel wget cd /usr/local/src wget https://www.python.org/ftp/python/3.5.0/Python-3.5.0.tar.xz tar Jxf Python-3.5.0.tar…