nginx で vhost の設定 / uwsgi と fpm-php

完全に備忘録です。

実用サーバではなくテスト動作用のローカル環境の設定メモとして残します。 セキュリティ的なことにはまったく触れていないので注意。 あくまで、手元でwordpressやwsgiをいじってみただけの設定です。

コンパイルジャンキー入門 「ねっ!今夜は徹夜でナイトリービルドしよっ!!」

さて、今回はコンパイルについてです。

Gentoo Linuxを使用していると、毎日のコンパイルのおかずには事欠くことはありません。

もちろん、紳士淑女の嗜みですから"emerge --sync"を打つのは1shot/1dayLANは守ってますよね。 一つのLAN内からのemergeは一台のGentooから一日一回。 他のGentooは、shotした一台のportageをrsyncで参照しましょう。

C/C++ / Python風のデコレータを書いてみたい ── Buffered Loop

前回からの続きです。

デコレータを「テンプレートを使って関数ポインタと関数オブジェクトを受け取り、値を返す関数」として定義しました。 また、新しい名前を付けるために移譲する関数や関数オブジェクトを作りました。

これを使って次のような要求を実装してみようと思います。

要求

  • streamから読みとった値を加工してstreamに流したい。
  • この時、全てを読み込んでから加工するとバッファから溢れてしまうので、 一定サイズ毎にステップで処理したい。
  • 加工方法は複数あるが、バッファの取り回しを共通化したい。

C/C++ / Python風のデコレータを書いてみたい ── テンプレート

前回からの続きです。

テンプレートを使います。みんなが大好きな奴です。

関数ポインタと関数オブジェクトを処理できるデコレータを書きます。

C/C++ / Python風のデコレータ(decorator)を書いてみたい ── 関数オブジェクト

前回からの続きです。

今回は、関数オブジェクトについてです。 関数オブジェクトは、operator ()を定義したオブジェクトのことです。 C++のオブジェクトはstructかclassで定義します。

C/C++ / Python風のデコレータを書いてみたい ── 関数ポインタ

前回までは、 Pythonのデコレータについて、説明させていただきました。

公式や他サイト様の劣化焼き直しになっているようで、申し訳なく思います。

今回は、「C++ でデコレータをやってみた」というネタです。 前回までの投稿は、この説明のためでもありました。

Python / IndentデコレータとChoiceデコレータ

前回の投稿からの続きです。

デコレータによって、 いろいろと技巧的なことができるようになります。

Python / デコレータのカスタム

前回の投稿からの続きです。

関数内関数定義を使う

前回までは、デコレータの記述に無名関数を使用していました。 Pythonは関数内で関数を定義することができるので、無理に無名関数を使わずに、 定義した関数を返したほうが、可読性が良くなる場合があります。

Python / デコレータと引数

前の投稿からの続きです。 前回、最終的に作成したデコレータとその使い方は次のようになりました。


>> def decorator(a_func):
...     return (lambda : ('KOOL', a_func()))
...
>>> @decorator
... def hoge():
...     return 'hoge'
...
>>> hoge()
('KOOL', 'hoge')

これにはまだ、不満点があります。 別の関数fugaが引数を取る場合はどうしましょう。

Python / デコレータは愉快

前の投稿からの続きです。 前回見た第一級関数と無名関数の知識を元に話を進めます。

デコレータ「関数を引数に受け取って、関数を返す関数」です。

言葉遊び的です。──とりあえず言われたとおりに書いてみます。

Python / 第一級関数と無名関数

前の投稿からの続きです。

Pythonは全ての関数を第一級関数 (first-class function)として扱えます。

第一級関数は、

  • 「変数に入れること」ができ
  • 「他の関数への引数として渡すこと」ができ
  • 「戻り値として返すこと」ができ

ます。

Python / 内省的(introspective)とはどういうことか

前の投稿からの続きです。

内省的とは、「内部を省みることに長けている」ということです。

ところで。 プログラミング言語を選択する場合、何を重視すべきかいつも悩みます。 結論として、『言語を選択することは環境を選択することだ』というのに辿り着きました。

Python / 不便が便利

Pyhontが好きです。

Lightweight Languageというと、Perl, Rubyなど、いろいろと選択肢があります。 Javaでもできる分野もありますし、Schemeなんかも手早く試せます。

ただ、自分はPythonが性に合います。

Gentoo Linux / gentooのアップデート

前の投稿からの続きです。

無事にインストールが済んだとしても、 gentooはローリングアップデートですので頻繁に更新作業が発生します。

最近のディストリではsynaptic等で更新が降りて来ますので 感覚的にはそう差もなくなっていると思うのですが、 gentooはカーネルの更新も含めて全ての更新が日常茶飯事です。 作業的に逼迫している時にカーネルや大型のソフトウェアのアップデートがくると 優先順位に頭を抱えることもしばしばあります。

これがストレスになり、gentooを見限るケースもあるようです。 コストの配分はそれぞれなので、それも正しい判断だと思います。

さてさて。やっと書きたかったことに辿り着きました。 アップデート作業の手順を記録しておきたかったのです。

Gentoo Linux / インストールは茨道

前の投稿からの続きです。

gentooに移行する前はFreeBSDを使用していました。

gentooの開発のスタートは「FreeBSDのportsのような環境で nvidiaのグラフィックスカードドライバを使用したい」 という欲求が発端だったと見聞きしたことがあります。 自分も、その情報を元にgentooに乗り換え、それ以来どっぷりなわけです。

Gentoo Linux / 今さらgentooを語る

記事を記述する度に、 「gentoo, gentoo!!」と喚いている気がします。

それほど心酔しているgentoo Linuxは、自分の性に合ってます。 gentoo Linuxがどういうものかとざっくり言えば

「基盤部分から、全てのソフトウェアを自分でコンパイルすることができるOS」

であります。 それってなにが嬉しいの?とも思いがちです。

C/C++ / 固定幅整数型

現在、この記事をgentoo Linux x86 (default/linux/x86/13.0/desktop)環境下で記述しています。今のご時世ながら32bit機という様です。

というのも、所持している64bit機はデスクトップであり、現在使用中のこいつはノートパソコン。可搬性に軍配があがり、マシンパワーを必要としない作業を担当してもらっています。あっと、64bit機の方もgentooです。amd64ですね。はい、gentoo心酔してます。

プログラミングをしていると、32bitと64bitの環境の両方で動かさなければならない状況に出くわします。

C/C++ / const結合性

C/C++で変数宣言するときに「変更されることがない」という宣言として、const修飾子を使用します。


const int MAX_COUNTER = 100;

文字列リテラルを宣言する場合もよく使います。


const char* MY_MESSAGE = "Hello, World!\n";

Python / PDFを右綴じに設定するスクリプトを書きました

2014/10/8頃のことです。

gentoo Linux環境下のlibreoffice writerで日本語縦書きPDFを出力したときのこと。

文書を右綴じに設定していたのですが、出力結果をacroreadで表示してみると、右綴じが効いていません。

ブログの方向性

はじめまして。はじめました。Blog。

主にgentoo LinuxといったOSやら、C/C++,Pythonといったプログラミングやら、興味を持ったことの備忘録を綴るつもりです。

概ね、自分用のメモみたいなものになると思います。ご了承ください。

それでも、「得た知識を公開し情報共有したいな」という結論を得ましたので、ゆるく見守っていただけると幸いです。