読者です 読者をやめる 読者になる 読者になる

SQLAlchemyで"case"

SQLAlchemyでcase文がつかえる。 case文とかこれのこと。 CASE WHEN 条件 THEN 値1 ELSE 値2 END 第一引数は必須で、条件と、それが真だった場合に返す値のタプルのリスト。 キーワード引数 else_ は偽だった場合に返す値。 条件にはand、or演算が使えること…

SQLAlchemy のサブクエリ

サブクエリのフィールドが見つからないといわれてちょっとハマった。 複数のカゴの中にりんごが複数入っているとする。 すべてのカゴに入っているりんごの総数を集計するサブクエリは以下のように書ける。 りんごのID (apple_id) と総数 (total) をフィール…

Djangoでリクエストがajaxかどうか判定する

これだけ def index(request): request.is_ajax() return HttpResponse()

wordpressを既存のものからコピーで立ち上げる

いつも忘れるのでそろそろ記録を残しておく。 環境 CentOS6.5 php5.6 mysql 5.6 nginx 1.8 wordpress 4.4 すでにこの環境で動いているWordpressサイトが1つあるとする。 やりたいこと すでに動いているWordpressをうまくコピーして、新しいサイトを立ち上げ…

wordpress上で画像の編集ができない

環境 CentOS 6.5 php5.6 Wordpress 4.4 nginx 現象 Wordpressのライブラリから画像が編集・保存できない。 原因 gdという画像処理用のライブラリがphpから利用できないことが原因だった。 対策 必要なライブラリをインストールするだけ。 $ sudo yum --enabl…

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…