人生が二度あれば

山岸による私的な、めも帖

私はプログラミングを行う。それは一重に私が作りたい物があってそれにプログラミングが必要だった為。

何かを作りたい。その何かは未だに確立出来ていない。ただひたすらに何かを作りたい。私の存在を他者に誇示したいという訣ではなく、単純に自己の一時の享楽として何かを作りたい。

そして何かを作る為にはプログラミングを行う事が私には向いていた。

その為、私はプログラミングを行う。私が作れる何かを作る為に私はプログラミングを行う。

プログラミングは飽くまで手段の一つでしかない。何かを作れるのであればプログラミングでなくとも良かったのかも知れない。だが私が出来るのはプログラミングを行う事だけ。

プログラミングを行うのが目的ではないのでプログラミングに関して力を入れて学習した事がない。私の行うプログラミングは基本的に誰か別の人間の猿真似。他人様の書いたコードを読む事を趣味として行い、その時に見たものを以後の自身のプログラミングに活かしているだけ。「コピペ (コピー & ペースト) プログラマー」という言葉を耳にする事がある。私はそれなのではないかと稀に思う事もある。

プログラミングは手段でしかない。どのような道筋を辿ろうとも結果さえ導ければ問題はない。ただ楽しく進められさえすれば気にかけるものは他にない。

私は私を幸せにする為だけにプログラミングを行う。ただただそれだけの事。

Octopressが初期設定にままに出力された物の表示は文書も読み易くなっており非常に羨しく思っていた。だがしかしOctopressは記事を書く毎にHTML文書の静的生成を行う必要があり記事執筆に際して煩わしさを感じてしまいそうで、自身が使うには及び腰になってしまっていた。なのでOctopressが生成するHTML文書やスタイルシートを参考にしつつ、TumblrでもOctopressと似た表示がなされるようにした。

ただ、途中で力尽きてしまい半端な箇所が幾つかある。時間の取れる内に完成させ、いづれGitHub等の場でどのようなカスタムテーマを書いたのか公開しようと考えている。

こひなたゆうま様よりパスタ麺とパスタソースを贈っていただきました。ありがとうございます!

こひなたゆうま様よりパスタ麺とパスタソースを贈っていただきました。ありがとうございます!

sudo_vi様よりサムゲタンを贈っていただきました。ありがとうございます!

sudo_vi様よりサムゲタンを贈っていただきました。ありがとうございます!

Pythonは3.0のベーター版がリリースされ、構文にたいする変化がおおきくPython 2系列との互換性がほとんどないものとなってしまったのを確認して以来、Python自体をつかう気がうすくなってしまい、ほとんどさわらなくなってしまっていました。そしてここ数年はJavaScriptばかりつかっており、ここ半年はRubyやCoffeeScriptばかりをあつかっていましたが、ここ数日はちょっとした事情によりPythonをふたたびつかっております。とはいえPython 3系列ではなくPython 2.7です。

動作させる環境としてはGoogle App Engineをもちいておりますが、ウェブアプリケーションフレームワークとしてはwebappではなくDjangoをつかっています。この理由は単純にwebappが好きではないというからではなく、わたしがPythonをもっとも活溌につかっていた時期にはwebappは存在しておらず、智識として比較すればだんちがいにDjangoのほうがあつかいにこまらないから、というだけのことであります。

ただGoogle App EngineでDjangoをあつかうにあたってこまったことがありました。Djangoはセッションの管理にデーターベースやmemcachedをつかうのですが、Google App EngineですとDjango標準ではどちらもそのままの状態ではあつかえません。なので

from google.appengine.api import memcache
from django.contrib.sessions.backends import cache
from django.contrib.sessions.backends.cache import KEY_PREFIX

class SessionStore(cache.SessionStore):
  def __init__(self, session_key = None):
    self._cache = memcache
    super(self.__class__, self).__init__(session_key)

  def exists(self, session_key):
    session_key = KEY_PREFIX + session_key
    cache = self._cache.get(session_key)
    return cache is not None

のようなコードを書き、google_appengine_memcache_session_store.pyのようなファイル名にしてプロジェクトのルート (sys.pathにふくまれる場所) に配置し、settings.py

SESSION_ENGINE = 'google_appengine_memcache_session_store'

という記載をくわえます。するとセッションの管理にGoogle App Engineのmemcacheをつかえるようになります。

簡易なスクリプトではなく、こうおおきくウェブアプリケーションをPythonで作成するのは、先にも記載しましたとおりに非常に随分ぶりなのですが、やはりPythonはよい言語です。ファイルひとつひとつがネームスペース (のようなもの) となり、またJavaScriptやRubyとはことなり既存のクラスをうわがきすることがPythonはできません。そしてPythonはかたい言語であり、すこしでも規定からはずれるようなコードをかけばすぐさま構文エラーが発生して動作がとめられます。そのことによりコードが煩雑となることがさけられ、どのような人物がPythonをもちいてコードをかいても一定以上の水準がたもてることとなります。

JavaScriptのようにコードをかいた人間によって、かきかたがまったくことなってしまうような言語をつかうことがたのしくないとはいいません。ですがPythonのようにかたい言語をもちいて規律ただしくコードをかくのは、あたまの中身をそのままだしているという感覚にいたれ、JavaScriptをかくときとはちがったたのしさをかんじられます。もうしばらくは、簡易な個人的につかうスクリプトにおいてもJavaScriptがかならずしも必要な場面をのぞき、Pythonをふたたびつかうようにしていこうかとかんがえております。