このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

2012-03-01から1ヶ月間の記事一覧

リスコフ順序とORel

ORelやV-ORelには、当面少なくとも1つは実務的な応用がある。Catyのモジュールやクラス(OOPのクラスとは若干違う)のあいだには、リスコフ置換可能性からリスコフ順序と呼ぶべき順序が入る。そのもとになるのは、コマンド=射のプロファイルあいだのリスコ…

ORelは追求する価値がある

http://d.hatena.ne.jp/m-hiyama/20111212/1323649258 で書いたORelだが、あれは有望な気がする。面白い気がする。きっと役立つに違いない。順序集合が V=真偽値 と置いたV豊饒圏なので、Vを別な順序集合(例えばダイヤモンド4値とか)に変えると別な構造が…

借りてるサーバー

いちおう仮想4コアだったのか。uWSGIの効果は出るはずだな。

issueの終り方

resolvedで終わるとは限らない。 もう情報が古くてもう意味がなくなっている。 なんかの告知/周知のためだったが、十分に役割を果たした。 より新しいもので置き換えられたが、リンクを残す。 とか。

TO-THINK

[課題]ってカテゴリータグがある。 http://d.hatena.ne.jp/m-hiyama-memo/searchdiary?word=%2A%5B%B2%DD%C2%EA%5D これをもう少しキチンと管理したほうがいいな。課題は折に触れて考えなおすべきこと。いくつかの課題はすぐに思い出せるようにしておこう。…

なんかいろいろインストールした

SLOCCountを苦労してインストールしたが(http://d.hatena.ne.jp/m-hiyama/20120326/1332722359)、他にもいくつか。Pythonのコーディングルールをチェックするpep8。 $ pip install pep8 Downloading/unpacking pep8 Downloading pep8-0.6.1.tar.gz Running…

undef-safeが難しい

undef-safeなブロックというのを考えていた。Undef例外とundef値を統合して透過的かつ安全に使える構文。だが難しかった。考えてみたら、クライスリ圏のあいだの関手を構成する問題。実際に問題の関手を構成すると、適当なdomain(領域理論のdomain)のstric…

Catyの型システムとサイト自動生成 (2)

いよいよサイト自動生成の話。サイトを構成するページの作成をデザイナに依頼することを想定する。静的ページはコンテキストがvoidのテンプレートと考えられるので、すべてのページをテンプレートと考えてよい。デザイナは、作成するテンプレート(静的ペー…

Catyの型システムとサイト自動生成 (1)

サイトの自動生成とは何であるかを説明する前に、それを表す記号をaと決めておく。autoからa。aは写像(関数)であり、 a: サイトの仕様 → 実際のサイト となる。サイトの仕様はスキーマ(Catyのcasmとcara、いずれcambも)で与えられ、実際のサイトはアクシ…

そのときに書け!

「あっ、わかった」と思うことがある。「なーんだ簡単じゃん、こんな事も分からなかった俺ってバカ」と感じるわけだ。「簡単なことだったのだから、一度分かってしまえば、もう自明だな」と思い込む。これが大間違いなんだな。分かった直後は、長らく考えた…

nginxのtry-filesとif, rewrite

静的ファイルをnginxに配信させるには、try-files, if, rewrite あたりが鍵だ。

openssl-0.9.8* のインストールとpypy

$ wget http://www.openssl.org/source/openssl-0.9.8t.tar.gz $ cd ~/Work $ tar xvzf ../DOWNLOAD/openssl-0.9.8t.tar.gzあとは基本的に、./config shared; make; make install 。ただし、sudo make; make install ってやって失敗した。sudo make; sudo ma…

pipのインストール

Pythonのインストーラーとかパッケージマネージャとか、なんだか歴史的経緯なんだろうか? 複雑。easy_installというインストーラーをインストールしないと使えないし、pipはeasy_installでインストールしないと使えない。基本的なツールなんだから言語処理…

実験的な環境 続

iptables の設定で、tcpポートで外から使えるのは 80, 8888 だけ。実験用途は8888を使おう。今、実験用のnginxが7999をlistenしているが、外からはアクセスできない。ので、もう少しポートを開けたほうがよさそうだが、iptablesの使い方が毎度忘れる、あれは…

配布パッケージに関する概念 5

プロジェクトとパッケージを区別しないほうがいいと言ったが、メタデータを持つプロジェクト=パッケージ ということだろう。そして、再帰的な構成も可能としないといけない。 依存性と包含性(containment)という2つの関係を考えて、これをパッケージ間の…

実験的な環境

キマイラサイトは、/usr/local/nginx/ と /home/chimaira/web_pub/ でサポートすることにして、ユーザーcatyのホーム /home/caty/ の下に別なnginxとcatyサーバーを立てて、実験に使うことにする。caty.caty-sites.net の 80, 8000, 8080 は、Catyが使うこと…

現在のサーバー環境とか

ドメイン → http://www.dotster.com/login/ 契約関係 → 会員のID/Passwordで https://secure.sakura.ad.jp/menu/ VPSの管理 → コントロールパネルのID/Passwordで https://secure.sakura.ad.jp/vpscontrol/ ドメインは: CATY-SITES.NET 11/14/2009 - 11/15/…

Nginxの入れ替えスクリプト

本編 http://d.hatena.ne.jp/m-hiyama/20120309/1331263930 で参照した http://webdevrefinery.com/forums/topic/8348-nginx-update-script/ にるシェルスクリプトを写しておく。 #!/bin/sh VERSION=0.0.1 echo "" echo "##################################…

100万倍

http://hozumi.github.com/2012/03/datomic-ja.html を読んで、まー「ヘーッ」って程度の感想だけど: RAMへのアクセスが250サイクル、ネットワークを介したアクセスが2億4千万サイクル と書いてあった。こういう値は時代と環境で変わるけど、「100万倍のコ…

nose と unittest-xml-reporting

インストールした。 $ easy_install -ZU nose Searching for nose Reading http://pypi.python.org/simple/nose/ Reading http://somethingaboutorange.com/mrl/projects/nose/ Reading http://readthedocs.org/docs/nose/ Best match: nose 1.1.2 Downloadi…

配布パッケージに関する概念 4

やっぱりある程度は抽象化しないとダメだ。 実ディレクトリツリーはファイルシステムのツリー 仮想ディレクトリフォーレストは名前付きフォーレストで、成分のツリーに名前が付いている。 仮想ディレクトリフォーレストのツリーを識別する名前がプレース。 …

DoIt

インストール記録。 http://python-doit.sourceforge.net/index.html $ pip install doit でよかったみたいだが、doit-0.15.0.tar.gz をダウンロードしてしまったから、これを展開して、setup.pyを実行した。 $ python setup.py install c:\Installed\Python…

配布パッケージに関する概念 3

パッケージ管理系に管理されたファイルの情報ってこんなもんか。 type FileInfo = { /** そのファイルが存在するプレース */ "place" : string, /** プレース内のパス */ "path" : path, /** ファイルサイズ */ "size" : integer(minimum=0), /** ダイジェス…

配布パッケージに関する概念 2

/META-INF/index.json を基点にして各種ファイルを配置すればいいだろう。インストール先は抽象化して、プレースとして指定する。プレースの構造は: type Place = { "container" : string(minlength=1), "role" : string(minlength=1), @[default("tree")] …

配布パッケージに関する概念

OSファイルシステム、プログラミング言語のモジュールシステムを含めて、名前空間の管理が問題だな、結局。 リポジトリとパッケージが1:1対応すると簡単だし望ましい。が、たぶん将来的には1リポジトリで複数パッケージのサポートが必要かもしれない。(しば…