Hatena::Groupbugrammer

蟲!虫!蟲!

Esehara Profile Site (by Heroku) / Github / bookable.jp (My Service)
過去の記事一覧はこちら

なにかあったら「えせはら あっと Gmail」まで送って頂ければ幸いです。
株式会社マリーチでは、Pythonやdjango、また自然言語処理を使ったお仕事を探しています

|

2013-06-29

[] サービスのデータベース周りなどをチェックしたらレスポンス速度が格段に上がった話 00:48

はじめに

 で、例によってFXでの失敗ケース | Just another WordPress siteの話なのですが、当然のことながらサービスを運用するにあたって、サービスを動かしているサーバーリソースについて、とりあえずは何かあったときのために監視している人が多いと思います。自分も、例に漏れず、万が一のために、Muninを入れています。Munin自体の解説については、下の記事に詳しいかと思うので、そちらを読んで頂ければ。

 で、このMuninはプラグインが充実していて、その一つにhttpingの応答速度を記録しておくという機能があります。httpingというのは、pinghttpヴァージョンです。このあたりについても、下の記事を読んだほうが早いかと思います。

 で、このプラグインを入れてレスポンス速度を見ていたのですが、だいたい1,600msecくらいのレスポンス速度だったわけですね。

 このあたりのチューニングとかに関しては、正直意識したことがなかったので、「まあこんなものなのかなあ、結構データベース参照多いしなあ」という感じで放ったらかしにしていました。

 たぶん、このサービスは自分が一番のファンであり、一番アクセスしているサービスだと思うのですが、やはりレスポンスが若干遅いのは、使っている身からすれば気になる部分であることは間違いない。機能追加も一段落ついたので、ここは一つ、チューニングしてみるかと思ってチューニングした結果が下の通りです。

f:id:nisemono_san:20130630004546p:image

 1,800msecだったレスポンスをなんとか一秒台におさえることができました。やったね!これでちょっとだけ閲覧が楽になるよ!

 というわけで、その作業メモみたいなのを、ここに記録しておきます。

 ここで書かれることは、たぶん多くの普通のエンジニアであるならば意識していることだと思われるので、「なんでそんなこともやってなかったの」と思って頂ければ幸いです。逆に、始めてサービスを作る人で「どうしたらもう少しレスポンスが早くなるのかなー」と悩んでいる人がいたら、参考にして頂ければ幸いです。

まずはサービスのデータベース構成とURLの関係を整理する

 とはいえ、いざチューニングしよう!という話をするとしても、自分のサービス構成がどういう風になっているかを整理しなければ、何処がボトルネックになっているのか、どういうアプローチを取ればいいのかわからないので、その辺を整理してみる必要があるかと。この辺に関しては隠していても仕方ないので、今回の話に関係ある範囲で図にしてみます。

f:id:nisemono_san:20130630004544p:image

 当然、厳密に書こうと思えば、厳密に書けるのですが、取り合えずこのように書くと伝わりやすいかと思います。

 さて、この図を元に、どういうアプローチが取れるかを考えてみます。以下、データベースMySQLを前提としています。

Indexを適切に割り当てる

 まず最初に考えられることは、データベースのカラムに対してインデックスを作るということです。インデックスについては、このような記事などを参照してもらうとして、インデックスが使われるタイミングというのは、どうやら値を比較したときに使われるらしいので、BookのUserあたりに貼り付けると良さげなので設定(要検証)。

 また、他にもインデックスが使えそうな部分として、「最近クリックされた商品をログとして保っておく部分」である、BookLog。ここは、ログが無ければ作成し、ログがあればupdated_atという、更新日時を記録するカラムを更新する作りになっていて、その日付の新しい順番によって、商品を表示するようになっています。

 とすると、このupdated_atの部分にインデックスを貼ることによって、アクセスが早くなる可能性はありそうです。

 ちなみに、インデックスが使われない可能性があるところに関しては、ちゃんとドキュメントに記述してあります。実は、この記事を書いている間に、インデックスが適切に使われているかどうかについて、ちょっと検証が足りない部分があるので、この部分は課題です。

Memcachedを使う

 で、インデックスが終わったあとに、何が効率化できるか。

 このサービスでは、改善前は、アクセスがあったときに、律儀にデータベースに商品をランダムに取りに行っていました。

 しかし、ここで考えるのは、AとBのユーザーが同時にアクセスしたとして別々の商品をランダムに表示させるのは効率が悪いのではないか。各ユーザーにとって、商品がランダムに表示されればいいのではないか。

 なので、そのつど律儀にデータベースアクセスするのではなく、メモリにしばらくの間キャッシュしておいて、それを使った方がいいのではないかと思ったので、そのように実装しました。Memcachedについては、このあたりの記事を参考にするといいのかなと。

ORMで生成されるSQLとの戦い

 djangoもそうですが、フルスタックフレームワークだと、直にSQLを書くのではなく、何らかの形でデータベースアクセスし、クエリを発行するためのオブジェクトが用意されている筈です。

 ただ淡々と書いていると、あまり気がつかなかったりするのですが、明らかに無駄なSQLが発行されている場合もあったりするので、その辺をリファクタリングしていきます。例えば、djangoであるならば、debug-toolbarというものを使って、下のように実際に発行されているクエリをみることができます。

f:id:nisemono_san:20130630004545p:image

 ちなみに、この場合だと、"ORDER BY RAND()"で少し時間がかかっている印象です。知人に相談した処、「ORDER BY RAND()は使うなボケ、それはプログラムで処理しろ」と言われたので、その辺を改善する必要がありそうです。

まとめ

 というわけで、普通のエンジニアであるならば「当たり前のことを」という感じですが、実際に自分でサービスを作ってみると、本当にさっぱりになるので、やはりデータベース周りを勉強する必要性を痛感するのでした。あとは、状況と判断で適切なチューニングが出来るようにスキルをあげられたら嬉しいところです。

2013-06-28

[]プログラミングにおける毎日の課題を見つけるための課題一覧 22:49

 最近だと意識が高く、定時の一時間前に出社しては、なんらかの余技的な活動を行なっています(地獄のミサワっぽく読んでください)。しかし、最近はその辺がネタ切れになってしまって、「じゃあ何をしようかなー」とちょっとだけ悩んでしまいました。

 そこで、発想を変えて「じゃあ課題として考えられることを列挙してみよう」と思って、今回はブレインストーミング的に、「こういう課題が考えられる」ということを列挙してみようと思います。

「*-99」系の問題集をやってみる

 プログラマーなら、普段使っている言語があると思うのですが、それ以外の、気になるプログラミング言語をさわってみるというのもいいのかなと思います。

 そこで有名なのは「*-99」シリーズで、アスタリスクには各言語の頭文字が入ります。元々はProlog用の課題集だったaのですが、これが評判で、他のVersionもできるようになりました。その辺を、まず列挙してみます。

 上のものを、別の言語(例えばPythonであったり、Rubyであったり)で書き直すのもいいかもしれません。

競技プログラミングやオンラインジャッジに挑戦してみる

プログラミングの世界には、競技プログラミングの世界もあります。要するに、何らかのInputを与えられて、それを解くという奴ですね。

 例えば、その辺の本でいうと、通称・蟻本と呼ばれる『プログラミングコンテストチャレンジブック [第2版] ~問題解決のアルゴリズム活用力とコーディングテクニックを鍛える~』というものがあったり、あるいはTopCoderと呼ばれる競技プログラミングコンテストを対象とした『最強最速アルゴリズマー養成講座 プログラミングコンテストTopCoder攻略ガイド』という本も出ています。

  • no titleを解く
    • Project Eularは、数学的な問題を、機械を使って解答するというゲームです。最初の内は割と簡単なので初学者にとってもやりやすいと思うのですが、段々と難しくなってきて、ある程度アルゴリズムみたいなものがわからないと解けない問題も出てきます。ちなみに、有志が日本語訳をしていたりしています。
  • AtCoderに参加する
    • 日本版TopCoder、とでも呼べばいいのでしょうか。定期的に開催されます。時間制限があるので、発想力と実装力が試されるといったところでしょうか。過去の問題も解くので、競技は苦手だけど、問題を解きたいという人にもいいかもしれません。
  • Sphere Online Judge (SPOJ)に挑戦する
    • とにかく莫大な量の問題数がある。ほとんど英語なので、問題の意図自体がわからないこともままあり、その当たりに関しては根性でなんとかするのがいいでしょう。ちなみに、基本的にshellの知識も必要になる(例えば、終了時はexit 0が吐き出されている必要が有る)ので、その辺もそつなくやるといいかもしれません。

 とりあえず、このあたりに関しては、こちらのwikiにもまとめられているので、その辺も参考にしてみると良いでしょう。

何かしらの講義を受けてみる

 以上のは、問題を解くというのに特化した形ではありますが、現在は「オンラインで勉強できる」という環境が整いつつあるので、淡々とその辺りを消化するのもいいかもしれません。

  • ドットインストール
    • もはや有名といえば有名になりすぎた教育サイト。RubyPythonの他に、ScratchやD3AWKなど、逆に幅広く提供し過ぎて、それってどうなのという気持ちもなくはないですが、逆に「これってどういうものなんだろう」というのを理解する上においては、いい感じかもしれません。
  • no title
    • MITなどの講義がオンラインで受けられる。過去にはRailsなどの講義もあったようですが、何しろ英語という問題があり、こちらも英語を理解するための胆力が必要となってくるでしょう。
  • TED Talks
    • もはやあえて紹介しなくてもいいくらい有名になってしまったプレゼンテーションの場であるTEDの、日本語で字幕が見れるサイトです。なにかのひらめきやきっかけとして、プレゼンテーションを見ていくと、何か得るものがあります。

Newsを消化する

 もう少し、別の方向から。アウトプットするためには、まず何らかの形でインプットする必要もあると思うのですが、そのあたりのリソースなんかもちょっとだけ紹介します。

  • Stack Overflow - Where Developers Learn, Share, & Build Careersをひたすら読む
    • 何か困った時に検索するとぶち当たり、そして解決し、その存在に感謝するサイト。別に問題にあたらずとも、とにかくスコアの高い記事をひたすら読んでいくのも、いろいろと勉強になることが多いように感じます。
  • no titleをひたすら読む
    • いろんなプログラムのTipsが書かれているサービス。本当に硬いものだけではなく、やわからかいものもあり、幅広い話題があります。

一日一章、何らかの技術書を読む

 いま、ちょっと統計向けに作られたRをちょこちょこと読んでいますが、一日に一章だけ、技術書を読んでみるのもいいかもしれません。さすがに一日一冊だと気が滅入ってしまうのと、あと暴力的に硬い本であると、その一章の内容を理解するだけでも、非常に時間がかかってしまうことが多いので、そのあたりはゆっくりと時間をかけて理解していくのも一つの手なのかなとか、考えてます。

写経する

 良くプログラミングを覚える時に、写経するといいという話があります。もし何か覚えたいものがあれば、写経するというのは一つの手であるように感じます。ただ、写経するといっても、一から写経するのもつかれてしまうタイプなので、自分の場合だと、下のような写経の方法を考えたりしています。

  1. まず、ソースコードの構成を考える
  2. 自分が手を付けるだろうところから書き写していく
  3. 全体が完成したら、実行してみて、タイプミスなどをチェックしていく
  4. 次に、値や変数名を変えていってみる。その上でどのように挙動が変わるのかを見る

有名なフレームワークソースコードを読む

 ただプログラムをするだけだと、限界がある部分もあるので、他のソースコードを読み続けてみるのも一つの手です。自分の場合だと、良く使うフレームワークdjangoで、何かの問題にぶち当たるたびに、ソースコード自体を読みにいくのですが、それなりに使われるフレームワークは、それなりによく考えられた構成になっている場合が多い気がします。その辺を踏まえて、「なぜこの構成だと便利なのか」であったり、「なぜこういう書き方になったのだろう」と想像しながら読んでいくと、面白い発見をすることが時々あります。

快適な開発環境を目指す

 開発において、快適な開発環境というのは重要だと思います。そこで、開発環境のメンテナンスを少しずつ進めるというのも一つの手かなと思います。最近だとGitHubGistに、開発環境の設定ファイルを投稿している人がいるので、そういう人の設定ファイルを検索して、参考にしながら、自分だけのとっておきの環境を構築していくのは、普段の開発を進める上においてもスムーズになるかと思います。

 また、その他にも便利そうなスニペットがあったら、それを導入していってみるというのもいいかもしれません。

自分のサービスを一日一回機能改善する

 何かしらの、自分のサービスであったり、プラグインがあるとするならば、それらをメンテナンスすることは非常に重要なことであることというのも確かでしょう。バグがなかったり、追加する機能がなかったりしても、テストを追加したり、リファクタリングするという習慣は、きっと何かの役に立つかもしれません。

まとめ

 ということで、つらつらと書き連ねてみましたが、どうでしょうか。他にも「こういう方法があるよ!」という方法があれば教えてくだされば幸いです。

 ちなみに、現在自分が作成している、ブックマークされている本をランダムに表示したり、キーワードでつらつらと眺めてることができるFXでの失敗ケース | Just another WordPress siteも地味に毎日改良を加えているので、もしよろしければアクセスしてください(最近、こればっかりだな)。

 最近の改良は、本をキーワードごとに散策するという機能が追加されています。

2013-06-26

[]頑張る企業の皆さんに「バタリ制度」を提案します 19:16

はじめに

 一度ぶっ倒れてから、今日にかけて、昼休みの間に20分程度の仮眠を取るようにしているのですが、いつの間にか周りの人も10分間の仮眠であったり、机での仮眠を取るようになり始め、仮眠文化みたいなものが生まれつつあります。もしかしたら、他の人は激務であったり、そういうことで疲れているのかもしれませんが、自分の場合は、他のバイトをやっていたころから、仮眠を取らないと、体力が持たない、という欠点があります。

 似たような文化として、例えば「シエスタ」というのがあげられるかと思います。元々スペイン語であるこのシエスタは、どうやらWikipediaによれば長時間の昼休みのことを言うらしいのですが、「昼寝」という意味でも使われることがあるそうで、自治体でもシエスタ制度を取り入れているところがあったりします。

 ただ、「シエスタ制度」というのは、自分からすると、如何にも「海外から輸入された文化」という感じがして、余り馴染まない印象を持ちます。自分は昼寝が大好きですが、「シエスタ」と呼ばれると、なんだか違うかなーという印象を持ったりします。

 そこで、もうちょっと自然な形に出来ないものか、と思って考えたのが「バタリ制度」というものです。おれがかんがえたさいきょうの「バタリ制度」の概要は下の通りです。 

概要

  • 10分を1単位とし、各人6単位の範囲内で「バタリ」することができる。
  • 「バタリ」する期間として、1単位のみのバタリをすることも可能であり、また6単位全てを使った「長時間バタリ」も可能。
  • バタリを酷使する時間帯は自由。というのも、「ちょっと休まないと無理」という時間はいつだって訪れるものだから。
  • バタリする場所に関しては、「常識の範囲内」で自由。

なぜ「バタリ制度」なのか

 「バタリ」は、いわゆる「倒れるとき」の擬音からきているのですが、どうして上のようなことを考えたのか、というと、それは労働時間と生産性の問題です。

 何かの記事で読んだのですが、例えば、工場内で休憩時間を与えずに闇雲に働かせた場合と、休憩時間を間間に挟んだ場合、前者よりも後者のほうが、ミスが少なく、また作業効率も上がったという話がありました。直接の記事ではないですが、時々5分間休むと効果的、という記事をみつけました。

 つまり休憩時間を与えるということは、経営者の「慈悲」ではなく、むしろ経営的に合理的な判断であるとも言えるようです。自分が昔、派遣先で働いていた工場でも、3時間に一回、10分程度の小休憩を挟むなどをして、リフレッシュをおこなっていました。

 また集中力に関しても、集中できる時間というのは、50分から90分のようで、それ以上は脳が集中できなくなったりするみたいです。実際に、心身の都合によって病院にかかったときに、医者にアドバイスとして、「一時間に一回くらいは、仕事のことを忘れる時間を作ったほうがいいですよ」という助言も頂きました。

根強いファンのいるポモドーロテクニック(25分だけそのタスクに集中し、5分休むというのを繰り返す。ポモドーロはトマト型キッチンタイマーから来たらしい)にしても、休憩を細かく挟むことによって、安定した作業をできるようにしています。

 以上をまとめると、細かい休憩というのは、悪いことではなく、むしろ作業効率や、作業の精度を高めるために必要なことだと結論できるかと思います。

 当然のことながら、集中して作業に取り組み、作業が一段落したあとだったりすると、頭がぼんやりしたり、あるいはちょっとフラフラとしたりします。そこで、気兼ねなく「バタリ」することができれば、次の作業にリフレッシュできる、という理屈なわけです。

 また、休憩を取ることに慣れていない人でも、「バタリ」という言葉を使うことによって、「休憩を取らざるを得ない」というニュアンスが生まれて、罪悪感無しに休憩が取れる気がします(本当に、そういう気がするだけですが)。

まとめ

 というわけで、偉そうに「提案」という書き方をしてしまいましたが、少なくとも我が社(株式会社マリーチ)においては「制度的」なものとして定着しているわけではありませんので、採用してくれたら嬉しいなあ、とか思ったりする今日この頃です。

2013-06-25

[] DCIもどきみたいなものをPythonで実装してみる 21:51

 たまには、サービス改善はお休みして、プログラミングネタを。

 一時期、ScalaからRuby界隈で、「DCI」について議論されていた印象があります。で、自分がよく使う言語はPythonなのですが、Pythonでは、あんまりDCI的なアプローチを試験的に実装してみよう、という試みは余り見なかったように思われます。

 DCIについては、自分の下手な解説より、下のドキュメントを読んだほうが、正確な理解が得られるでしょう。

DCIアーキテクチャ - Trygve Reenskaug and James O. Coplien - Digital Romanticism

 自分の(たぶん間違っているであろう)理解によれば、何かしらの「オブジェクト」の振舞を「状況」によって、「役割」を与えることで決定しよう、というところにあると思っている。また、「そのオブジェクトが必要であるが、しかしそれがどのような役割を持ちうるかということが決定しずらいとき」にも有効なのかな、と思うけれど、その辺は詳しくないので、識者に頼みたいところ。

 また、現実的な実務としては、オブジェクトに対して「ありうるメソッド」を組み込んだり、継承で深くしたりするよりも、「役割」という単位で分割したほうが、ソースの見通しが良くなるというメリットも存在するとも考えれるようです。

 そういう感じで、自分はDCIを理解しているわけですが、今回の目的は、DCIを正確に理解することではなく、とりあえず上記の「ゆるふわな」理解を元に、ではPythonで実装するとするならば、どのようになるか、ということを考えていきたいと思います。

その前に具体的なイメージを

 比喩というのは、往々にして間違った理解を生みやすいのですが、とりあえず、今から実装されるストーリを考えます。

 目の前に二人の村人がいます。この村人は、とりあえずいることはわかっているのですが、その人たちがどんな人かはわかりません。しかし、その中の一人が風呂敷を広げて商売を始めました。彼は「商人」として振舞い始めたわけですね。もう一人が商人として振る舞ったわけですから、もう一人はお客さんとして、財布を見て、いくらくらいなら買えるのか確かめる、といった感じです。

まずベースになるclassを定義する

 そこで、最初にDCI的な機能をもつベースのclassを定義してみましょう。

# -*- coding: utf-8 -*-
import re


class MethodProvider(object):

    not_use_method = re.compile('^_')

    @classmethod
    def bind(cls, target):
        instance = cls()
        use_methods = instance._find_method()
        print use_methods
        for method in use_methods:
            setattr(
                target,
                method,
                getattr(instance, method))

    def _find_method(cls):
        return_method = []
        method_list = dir(cls)
        for method in method_list:
            if cls.not_use_method.match(method) is None:
                return_method.append(method)
        return return_method

 個人的には、かなり「黒いコード」だとは思うのですが、解説していくと、targetが「何らかのメソッド組み込みたい対象のインスタンス」であり、そしてそのクラスの属性/メソッド一覧に関しては、dir関数で取れるので、そこから、Python紳士協定であるところの先頭アンダーバープライベートメソッドをのぞき、あとは、それらをsetattrとgetattrでとにかく組み込んでいくという形になります。setattrとgetattrを使っているのは、文字列を使ってメソッドを引っ張って来れるからですね :)。

 さて、このclass継承した形で、次のような役割を与えるclassを作ってみましょう。

class Trader(MethodProvider):

    def sell(self):
        for goods in self.has_goods:
            print goods[0], goods[1]


class Visiter(MethodProvider):

    def buy(self):
        print "i have %d money." % self.has_money

 さらに、これらの役割が与えられる「人間」を定義してみましょう。

class Person(object):

    def __init__(self):
        self.has_goods = [
            (u'ひのきのぼう', u'10G'),
            (u'やくそう', u'5G')]
        self.has_money = 100

 では、実際にPersonに対してTraderの役割を与える関数も定義してみましょう。

def test():
    person = Person()
    Trader.bind(person)
    person.sell()

 これらを組み合わせたものは、gistにアップしてあるので、実際に実行してみるといいでしょう。

https://gist.github.com/esehara/5857997#file-dci_test_error-py

 しかし、これを実行してみるとエラーが起きてしまいます。

Traceback (most recent call last):
  File "test_dci_error.py", line 57, in <module>
    test()
  File "test_dci_error.py", line 54, in test
    person.sell()
  File "test_dci_error.py", line 32, in sell
    for goods in self.has_goods:
AttributeError: 'Trader' object has no attribute 'has_goods'

 これはいったいどういうことなのでしょうか。

他のインスタンスから引っ張ってきたメソッドは、引っ張ってきた元のコンテキストを保持する

 これは一つの罠(というより多分仕様なのですが)、他のインスタンスからメソッドを引っ張ってきても、selfのコンテキストは変わりません。つまり、この場合のselfはMethodProviderを参照にしているわけです。証拠に、下のように改造してみましょう。

class MethodProvider(object):
    not_use_method = re.compile('^_')
    has_goods = (
        (u'てつのけん', '500G'),
        (u'はがねのけん', '1000G'))
    @classmethod
    def bind(cls, target):
        instance = cls()
        ....

 has_goodsをMethodProviderに追加するとどうなるか。

https://gist.github.com/esehara/5857997#file-dci_badfix-py

$ python test_dci_badfix.py 
てつのけん 500G
はがねのけん 1000G

 確かに、selfがMethodProviderのほうに向いています。これはよろしくない。我々の目的は、メソッドをはやして、あたかも「Person」のメソッドのように取り扱うことです。つまり、selfの参照先はMethodProviderではなく、Personであるべきなのです。

解決

 これで、どうしたものかと考えていたら、d:id:nishiohirokazu さんがチャットで解決方法を教えてくれました(Thanks!!)。要するに下のようにするといいとのことです。

class MethodProvider(object):

    not_use_method = re.compile('^_')

    @classmethod
    def bind(cls, target):
        instance = cls()
        use_methods = instance._find_method()
        for method in use_methods:
            setattr(
                target,
                method,
                getattr(instance, method).im_func.__get__(target))

    def _find_method(cls):
        return_method = []
        not_use_method = ['bind', 'not_use_method']
        method_list = dir(cls)
        for method in method_list:
            if (not method in not_use_method and
                    cls.not_use_method.match(method) is None):
                return_method.append(method)
        return return_method

 どうやら、このim_funcという属性がポイントになるようです。どういうことか。そこで、あえてテストコードを下のように書いてみます。

# -*- coding: utf-8 -*-

class TestClass(object):

    def test(self):
        pass

    def func_print(self):
        print self.test
        print self.test.im_func

if __name__ == "__main__":
    test = TestClass()
    test.func_print()

 この結果として得られる出力が下の通りになります。

$ python im_func_test.py
<bound method TestClass.test of <__main__.TestClass object at 0x7f46af202e50>>
<function test at 0x7f46af206a28>

 つまり、self.testの場合は、それがどのクラスのメソッドとして束縛されているのか、というのを示すのに対して、im_funcを使うと、そのメソッド関数として取り出すことが可能になるっぽいです。(ちなみに、これはPython2.x系の実装らしく、Python3になると__func__になるとかならないとか)

 さて、メソッド関数として取り出せたのはわかったのですが、じゃあどうやってそれを他のクラスに埋め込むのか。そこで、使われるのが__get__メソッドのようです。上記のコードを次のように改造してみましょう。

# -*- coding: utf-8 -*-


class BoundTest(object):
    pass


class TestClass(object):

    def __init__(self):
        self.bound_test = BoundTest()
        self.bound_test.test = self.test.im_func.__get__(self.bound_test)
    def test(self):
        pass

    def func_print(self):
        print self.test
        print self.test.im_func
        print self.bound_test.test

if __name__ == "__main__":
    test = TestClass()
    test.func_print()

 そうすると、下のような出力が得られます。

$ python im_func_test.py
<bound method TestClass.test of <__main__.TestClass object at 0x7fdcd2a65e90>>
<function test at 0x7fdcd2a69b18>
<bound method ?.test of <__main__.BoundTest object at 0x7fdcd2a65f10>>

 というわけで、最終的なコードは下のようになります。

https://gist.github.com/esehara/5857997#file-dci_goodfix-py

 これを実行すると、無事、下のような出力が得られます。

$ python test_dci_goodfix.py
[Trader]
ひのきのぼう 10G
やくそう 5G

[Visitor]
i have 100 money.

 こうして、クラスとは別に、メソッドのselfの参照を、個別のインスタンスへと向け直すことが出来ました。

まとめ

 正直、このようにコードを書いてみましたが、いまいちDCIのメリットがどのようなものなのか、あるいはDCIが目指しているものとは何なのか、ということについては、まだまだ曖昧なところではありますが、このアプローチは便利だなあと思うところもある一方で、ちょっと「黒いかな?」という気持ちも拭えません。とはいえ、便利そうな雰囲気はあるので、機会があれば使ってみたいなと思うところです。

謝辞

 この方法を試している最中に、下の方々から助言を頂きました。改めてお礼を言いたいと思います。

2013-06-24

[]nginx + Webalizerを使って、定量的なログ解析を行なう 02:51

 ここ一週間くらいは、Bookableというサービス改善を行なっていました。

 とはいえ、普通、「サービスを改善する」といった場合、その改良が「改善」というための指標が必要になります。単純に「機能を追加する」というだけでも、一つの「改善」なのかもしれませんが、それが自分のサービスへの「目標」に近づいているのか、という点からも検証される必要があります。

 以前に、このサービスを立ち上げるにあたって、知人から「なんらかのアクセス解析ツールを入れないの?」ということを言われたことがあって、そういえばそういうことに思い至らなかったな、ということで、さっそくアクセス解析ツールらしきものを探したところ、Webalizerというツールを発見しました。

 既にGoogle Analizerなどのサービスはありますが、まだ大規模な分析が必要なほど大きなサービスではないので、とりあえず、簡易なアクセス解析が出来ればいいかな、と思って入れました。

 元々はApacheのログを解析したりするものだったらしいのですが、自分はフロントとしてnginxをたてているため、ログの形式を揃える必要がありそうです。自分は、下の記事を参考にログ形式を揃えました。

nginx + webalizer でアクセス解析 - Folioscope

 一応、ログの形式を揃えることで、ログ解析はできるようになります。ただし、継続的に解析するとなると、設定のところの

Incremental yes

 にしておくと、継続的にログを貯めてくれるのでよいでしょう。これをnoにしておくと、単体のログ解析のみが残るので、ログがローテートしたときに、過去の解析が全部無くなってアウアウしてしまうことになります(というか自分はなりました)。

 で、解析をかますと、下のような静的なHTMLが生成されます。

f:id:nisemono_san:20130625022602p:image

 特に、ポイントになる部分としては、PageとVisitになるのかなと思います。Pageが、あるページにアクセスされた回数であり、Visitは、30分以内に同一のIPで接続していないときは記録するという形になります。

 つまり、ページを閲覧している回数はPageで見て、Visitで、実際に来てくれたユーザーを見ると言うことになります。

 で、このデータについて面白い見方Webalizerの見方|ahref.orgに書いてありました。

平均ページ閲覧数 = 総Pages /総Visits

 自分のページだと、autopagerizeで、自動的に次のページを更新するようにしているので、そのレスポンス数が、そのサイトに興味をもってくれている度合いになるのかな、というので、この指標を参考にしています。

 で、ただデータを取るだけではなく、下のような形で、Google Spread sheetにまとめています。

f:id:nisemono_san:20130625025020p:image

 Spread sheetに、さらに自分が改善した内容を含めて、それがどういう風に影響しているのか、というのを定期的にデータにしています。

 ただ、このデータを見る限りだと、Page/Visit比は、平均10Pageほど見ているので、それなりに閲覧して頂いていることはわかるのですが、問題はやはりVist自体の数が少なくなりつつあることがあり、その辺をどのように増やしていくかが、今後の課題になりそうです。

JefferyVierbJefferyVierb2018/05/11 12:22kamagra4uk review
kamagra jelly use
kamagra oral jelly directions use
kamagra 100mg oral jelly side effects

DanielHycleDanielHycle2018/06/17 20:19kamagra oral jelly manufacturers in india
<a href="http://kamagradyn.com/">buy kamagra</a>
kamagra 100mg tablets
<a href="http://kamagradyn.com/">buy kamagra 100 mg</a>
kamagra oral jelly sildenafil vol 3

JaredtonJaredton2018/06/21 06:23viagra generic 100mg cost
<a href="http://amsboatyard.com/">buy generic viagra</a>
viagra vs cialis cost per pill
<a href="http://amsboatyard.com/">buy viagra</a>
viagra coupons rite aid

MichaelmetMichaelmet2018/06/22 01:07price cialis 5mg australia
<a href="http://justinpro.com/">buy cialis</a>
cialis generico precio en farmacias
<a href="http://justinpro.com/">buy cialis</a>
cialis dose maxima diaria

JamesfekJamesfek2018/06/24 06:33kamagra usa next day shipping
<a href="http://kamagraonl.com/">buy kamagra</a>
kamagra gold teeth
<a href="http://kamagraonl.com/">kamagra</a>
kamagra 100mg chewable lifesavers

MatthewwenMatthewwen2018/06/25 08:10hearing loss cialis 5 mg dose
<a href="http://cialisgrudj.com/">buy cialis generic</a>
best generic cialis pills price
<a href="http://cialisgrudj.com/">generic cialis</a>
levitra v viagra v cialis

FloydgesFloydges2018/07/01 06:36buy kamagra uk review
<a href="http://kamagradyn.com/">kamagra 100mg</a>
kamagra kopen rotterdam winkel
<a href="http://kamagraonl.com/">kamagra oral jelly</a>
kamagra vs kamagra gold

AntonNarAntonNar2018/07/02 17:08cialis coupon 2017
<a href="http://cialisgenericsa.com/">buy generic cialis</a>
cialis soft gels
<a href="http://cialisgenericsa.com/">buy generic cialis</a>
coupons for cialis generic

RobertsahRobertsah2018/07/13 05:51cost of kamagra
<a href="https://www.kamagrapos.com/">kamagra</a>
kamagra oral jelly 100mg side effects
<a href="https://www.kamagrapos.com/">kamagra oral jelly</a>
kamagra oral jelly india price

DavidZermaDavidZerma2018/07/13 11:52kamagra bestellen
<a href="https://www.kamagrajellyk.com/">buy kamagra oral jelly</a>
kamagra oral jelly for sale in usa illinois
<a href="https://www.kamagrajellyk.com/">kamagra oral jelly</a>
kamagra uk company

CharleskeymnCharleskeymn2018/07/17 08:40price comparison of cialis and viagra
<a href="http://viagrapipls.com/">generic viagra</a>
cialis generico do viagra
<a href="http://viagrapipls.com/">viagra generic</a>
buy viagra online in usa
http://viagrapipls.com/
can split viagra soft 100mg pills

JackieCLaspJackieCLasp2018/07/30 06:54kamagra 100mg oral jelly india
<a href="https://www.kamagrapos.com/">buy kamagra oral jelly</a>
kamagra oral jelly how to use
<a href="https://www.kamagrapos.com/">kamagra oral jelly</a>
kamagra forum doctissimo

MichaelHetMichaelHet2018/07/30 12:48kamagra 100 chewable tablets
<a href="https://www.kamagrajellyk.com/">kamagra oral jelly</a>
kamagra oral jelly review australia
<a href="https://www.kamagrajellyk.com/">buy kamagra</a>
kamagra oral jelly for sale

italetjanmitaletjanm2018/08/07 15:53<a href="http://bakerssign.com">levitra 20mg price</a> levitra dosage http://bakerssign.com

gtaletytpagtaletytpa2018/08/18 09:29<a href="http://mphasset.com">what over the counter pill works as good as viagra</a> shelf life of viagra http://mphasset.com

ptaletbfjzptaletbfjz2018/08/18 10:08<a href="http://baymontelreno.com">cialis for daily use dosage</a> cialis coupon http://baymontelreno.com

staletlmzmstaletlmzm2018/08/18 15:05<a href="http://gigawatt6.com">cialis active ingredient</a> naion cialis http://gigawatt6.com

xtaletrrzpxtaletrrzp2018/08/18 19:06<a href="http://mphasset.com">herbal viagra formula</a> best over the counter viagra substitute http://mphasset.com

rtaletwwacrtaletwwac2018/08/18 22:13<a href="http://rabbitinahat.com">cialis cipla</a> free trial cialis online http://rabbitinahat.com

ztaletwxcrztaletwxcr2018/08/19 01:25<a href="http://missreplicawatches.com">does alcohol affect cialis</a> cialis how often http://missreplicawatches.com

gtaletrhrngtaletrhrn2018/08/19 05:02<a href="http://bakerssign.com">buy levitra online usa</a> how fast does levitra work http://bakerssign.com

xtaletrcnsxtaletrcns2018/08/19 07:34<a href="http://baymontelreno.com">active ingredient in cialis</a> cialis online canada pharmacy http://baymontelreno.com

btaletcpscbtaletcpsc2018/08/19 10:45<a href="http://baymontelreno.com">what to expect from cialis</a> cialis viagra http://baymontelreno.com

ntaletwofqntaletwofq2018/08/19 18:43<a href="http://bullsac.com">cheap levitra 20mg</a> levitra over the counter http://bullsac.com

mtaletfbbpmtaletfbbp2018/09/11 07:31<a href="http://istanbulexpressonline.com">does viagra work for women</a> taking viagra without ed http://istanbulexpressonline.com

ztaletytqvztaletytqv2018/09/11 08:37<a href="http://mphasset.com">commercial viagra</a> should i try viagra http://mphasset.com

ztaletwifaztaletwifa2018/09/11 09:44<a href="http://istanbulexpressonline.com">viagra price costco</a> homemade viagra recipe http://istanbulexpressonline.com

ztaletutgqztaletutgq2018/09/11 11:11<a href="http://rabbitinahat.com">cipla generic cialis</a> cialis 5 mg tablet http://rabbitinahat.com

otaletltorotaletltor2018/09/11 15:59<a href="http://mphasset.com">levitra versus viagra</a> what works like viagra http://mphasset.com

htaletulpkhtaletulpk2018/09/11 19:08<a href="http://istanbulexpressonline.com">does viagra expire</a> viagra prescription http://istanbulexpressonline.com

ztaletwlpfztaletwlpf2018/09/11 22:33<a href="http://rabbitinahat.com">cialis online us</a> cialis mg http://rabbitinahat.com

ptaletbjktptaletbjkt2018/09/11 23:07<a href="http://baymontelreno.com">compare prices cialis</a> cialis duration http://baymontelreno.com

ftaletrnieftaletrnie2018/09/12 00:00<a href="http://bullsac.com">generic viagra cialis levitra</a> how to order levitra online http://bullsac.com

jtaletdjnajtaletdjna2018/09/12 01:59<a href="http://viciolatino.com">cheap viagra in usa</a> discount viagra http://viciolatino.com

staletfolwstaletfolw2018/09/12 04:40<a href="http://motechautomotive.com">order internet cialis</a> cheap cialis online canadian pharmacy http://motechautomotive.com

ttaletqwidttaletqwid2018/09/12 10:49<a href="http://missreplicawatches.com">buy cialis overnight delivery</a> cheap cialis from canada http://missreplicawatches.com

btaletsocfbtaletsocf2018/09/12 12:26<a href="http://h-m-j.com">order viagra online without prescription</a> viagra online without prescription http://h-m-j.com

ftaletlvhiftaletlvhi2018/09/12 13:35<a href="http://bullsac.com">levitra vs sildenafil</a> does levitra work http://bullsac.com

vtalethxhdvtalethxhd2018/09/12 13:36<a href="http://vico4me.com">brand viagra online</a> viagra online canada http://vico4me.com

ctaletrdkyctaletrdky2018/09/12 15:46<a href="http://waltzweekend.com">cheap viagra without prescription</a> where to buy viagra online http://waltzweekend.com

stalettnnnstalettnnn2018/09/12 18:51<a href="http://canadian-pharmasale.com">buy cialis non prescription</a> cheapest generic cialis http://canadian-pharmasale.com

ztaletkrynztaletkryn2018/09/12 20:06<a href="http://vico4me.com">viagra online prescription</a> buy viagra pill http://vico4me.com

ttaletmhkzttaletmhkz2018/09/12 21:07<a href="http://vico4me.com">viagra coupon</a> best place to buy generic viagra online http://vico4me.com

mtaletftlpmtaletftlp2018/09/12 21:11<a href="http://bullsac.com">levitra half life</a> how to use levitra http://bullsac.com

vtaletitqqvtaletitqq2018/09/13 01:51<a href="http://unishade.com">cheap cialis pill</a> very cheap cialis http://unishade.com

ctaletuvjvctaletuvjv2018/09/13 03:27<a href="http://baymontelreno.com">buy cialis overnight delivery</a> order cialis online canada http://baymontelreno.com

ftaletvlecftaletvlec2018/09/13 03:57<a href="http://waltzweekend.com">buy viagra online usa</a> women viagra http://waltzweekend.com

btaletxiqfbtaletxiqf2018/09/13 11:48<a href="http://missreplicawatches.com">cialis for sale online</a> order cheap cialis http://missreplicawatches.com

jtaletovzejtaletovze2018/09/13 11:57<a href="http://unishade.com">buy cialis usa</a> cheap cialis online usa http://unishade.com

ztaletoxwaztaletoxwa2018/09/13 13:13<a href="http://rabbitinahat.com">cheap brand cialis</a> generic cialis lowest price http://rabbitinahat.com

ttaletrbqgttaletrbqg2018/09/13 14:50<a href="http://canadian-pharmaonline.com">cheap generic viagra online pharmacy</a> viagra canada http://canadian-pharmaonline.com

ctaletdyspctaletdysp2018/09/13 20:07<a href="http://timsbmw.com">cialis vs viagra vs levitra</a> difference between viagra cialis levitra http://timsbmw.com

xtaletepsxxtaletepsx2018/09/13 20:41<a href="http://usedrestaurantequipmentaz.com">cialis 20mg online</a> cialis 20mg http://usedrestaurantequipmentaz.com

qtaleteuphqtaleteuph2018/09/13 21:01<a href="http://rabbitinahat.com">cheap cialis online</a> generic cialis from india http://rabbitinahat.com

otaletkzzbotaletkzzb2018/09/13 22:58<a href="http://canadian-pharmabuy.com">buy generic viagra online canada</a> women viagra http://canadian-pharmabuy.com

mtaletjfinmtaletjfin2018/09/14 03:15<a href="http://vico4me.com">order viagra overnight</a> cheap viagra 100mg http://vico4me.com

wtaletbwfzwtaletbwfz2018/09/14 03:37<a href="http://baymontelreno.com">cialis online bestellen</a> cheap cialis uk http://baymontelreno.com

otaletaaseotaletaase2018/09/14 03:52<a href="http://motechautomotive.com">discount cialis pills</a> mail order cialis online http://motechautomotive.com

ptaletiauyptaletiauy2018/09/14 06:47<a href="http://canadian-pharmabuy.com">order viagra</a> buy viagra now http://canadian-pharmabuy.com

ntaletfuhzntaletfuhz2018/09/14 15:07<a href="http://missreplicawatches.com">generic cialis from canada</a> cialis canada mail order http://missreplicawatches.com

otaletkitjotaletkitj2018/09/14 16:02<a href="http://canadian-pharmabuy.com">best place to buy viagra</a> buy viagra online no prescription http://canadian-pharmabuy.com

otaletdxdootaletdxdo2018/09/14 18:08<a href="http://canadian-pharmabuy.com">viagra online with prescription</a> generic viagra 100mg http://canadian-pharmabuy.com

btaletlxsmbtaletlxsm2018/09/14 20:06<a href="http://missreplicawatches.com">buy cialis from canada</a> order cialis daily http://missreplicawatches.com

ytaletthhfytaletthhf2018/09/14 21:48<a href="http://vico4me.com">herbal viagra pills</a> viagra without prescription http://vico4me.com

ktaletxsgbktaletxsgb2018/09/14 22:52<a href="http://buycialisonlineglka.com">buy cialis in usa</a> order cialis from canadian pharmacy http://buycialisonlineglka.com

otaletxiypotaletxiyp2018/09/15 00:11<a href="http://buycialisonlineglka.com">order cialis daily</a> cialis 5 mg http://buycialisonlineglka.com

btaletjbvzbtaletjbvz2018/09/15 02:38<a href="http://usedrestaurantequipmentaz.com">buy cialis uk</a> purchase cialis online http://usedrestaurantequipmentaz.com

ztaletjvznztaletjvzn2018/09/15 07:58<a href="http://vico4me.com">viagra for sale online cheap</a> cheapest generic viagra online http://vico4me.com

htaletcyfahtaletcyfa2018/09/15 08:54<a href="http://buycialisonlineglka.com">cialis online canada cheap</a> order generic cialis http://buycialisonlineglka.com

ataletzjlpataletzjlp2018/09/15 11:29<a href="http://bullsac.com">buy levitra professional</a> low price levitra http://bullsac.com

otaletnrujotaletnruj2018/09/15 14:50<a href="http://rabbitinahat.com">cheap cialis in australia</a> generic cialis online usa http://rabbitinahat.com

vtaletfezzvtaletfezz2018/09/15 16:47<a href="http://canadian-pharmabuy.com">order viagra from india</a> cheap viagra 100mg http://canadian-pharmabuy.com

wtaletbjhzwtaletbjhz2018/09/15 17:22<a href="http://buyviagraonl1ne.us">viagra 100mg</a> ordering viagra online http://buyviagraonl1ne.us

gtaletdklggtaletdklg2018/09/15 19:42<a href="http://usedrestaurantequipmentaz.com">buy cialis online cheap</a> best generic cialis http://usedrestaurantequipmentaz.com

ztaletxnreztaletxnre2018/09/15 20:58<a href="http://buyviagraonl1ne.us">buy discount viagra</a> order viagra softtabs http://buyviagraonl1ne.us

ktaletxyvektaletxyve2018/09/15 23:19<a href="http://buycialisonl1ne.us">cialis 5 mg online</a> how to order cialis online safely http://buycialisonl1ne.us

ptaletceuhptaletceuh2018/09/16 02:17<a href="http://gigawatt6.com">buy cialis canada pharmacy</a> buy real cialis online http://gigawatt6.com

staletjbipstaletjbip2018/09/16 03:34<a href="http://valladium.com">cheap cialis 20mg pills</a> buy cheap cialis 20mg http://valladium.com

gtaletkkbegtaletkkbe2018/09/16 03:55<a href="http://buycialisonl1ne.us">order generic viagra cialis</a> cialis canada mail order http://buycialisonl1ne.us

ctaletxmncctaletxmnc2018/09/16 06:24<a href="http://buycialisonl1ne.us">canadian pharmacy cialis generic</a> order cialis online australia http://buycialisonl1ne.us

htaletuqmehtaletuqme2018/09/16 11:32<a href="http://rabbitinahat.com">cheap cialis prices uk</a> cialis 5 mg http://rabbitinahat.com

qtaletnxpsqtaletnxps2018/09/16 12:52<a href="http://gigawatt6.com">can you order cialis online</a> buy generic cialis online http://gigawatt6.com

wtaletuwdswtaletuwds2018/09/16 18:42<a href="http://bullsac.com">levitra pills online</a> levitra coupon 3 free pills http://bullsac.com

ytaletpqnyytaletpqny2018/09/16 20:20<a href="http://rabbitinahat.com">where to buy cialis online</a> buy cialis online pharmacy http://rabbitinahat.com

ctaletipwnctaletipwn2018/09/16 21:28<a href="http://gigawatt6.com">buy cialis canada</a> generic cialis canada http://gigawatt6.com

ptaletbonqptaletbonq2018/09/17 05:19<a href="http://canadian-pharmaonline.com">buy viagra online</a> order viagra canada http://canadian-pharmaonline.com

xtaletugoaxtaletugoa2018/09/17 06:01<a href="http://buycialisonl1ne.us">cialis 5mg</a> cheap cialis online http://buycialisonl1ne.us

btaletmyvvbtaletmyvv2018/09/17 07:54<a href="http://h-m-j.com">discount viagra pills</a> best place to buy viagra http://h-m-j.com

ataletamdtataletamdt2018/09/17 23:16<a href="http://motechautomotive.com">cialis pills online</a> order cialis with no prescription http://motechautomotive.com

vtaletnhsnvtaletnhsn2018/09/18 00:39<a href="http://gigawatt6.com">cialis generic canada pharmacy</a> cialis 5mg price http://gigawatt6.com

gtaletaovlgtaletaovl2018/09/18 00:59<a href="http://missreplicawatches.com">cheap cialis online canadian pharmacy</a> buy cialis usa http://missreplicawatches.com

xtaletbmrrxtaletbmrr2018/09/18 08:49<a href="http://buyviagraonl1ne.us">cheap uk viagra</a> buy viagra los angeles http://buyviagraonl1ne.us

ftaletthveftaletthve2018/09/18 10:27<a href="http://canadian-pharmabuy.com">buy viagra order</a> viagra online usa http://canadian-pharmabuy.com

staletqjjvstaletqjjv2018/09/18 12:46<a href="http://istanbulexpressonline.com">cheap viagra canada</a> cheap viagra canadian pharmacy http://istanbulexpressonline.com

ttaletqzyittaletqzyi2018/09/18 18:04<a href="http://buycialisonl1ne.us">buy cialis with prescription</a> generic cialis usa http://buycialisonl1ne.us

ataletypmbataletypmb2018/09/18 20:13<a href="http://waltzweekend.com">order viagra australia</a> generic viagra no prescription http://waltzweekend.com

qtaletvzgpqtaletvzgp2018/09/18 21:22<a href="http://timsbmw.com">purchase levitra online</a> viagra cialis levitra http://timsbmw.com

ftaletgvuoftaletgvuo2018/09/18 21:35<a href="http://canadian-pharmabuy.com">cheap viagra pills</a> best generic viagra online http://canadian-pharmabuy.com

wtaletgjonwtaletgjon2018/09/19 00:00<a href="http://top-monterey-salinas-dentists.com">what is levitra</a> levitra online australia http://top-monterey-salinas-dentists.com

htaletdwuzhtaletdwuz2018/09/19 02:58<a href="http://motechautomotive.com">cheap cialis india</a> brand cialis online http://motechautomotive.com

ntaletjftintaletjfti2018/09/19 12:42<a href="http://timsbmw.com">generic levitra reviews</a> levitra cialis comparison http://timsbmw.com

utalettiqvutalettiqv2018/09/19 14:05<a href="http://buycialisonl1ne.us">buy cialis online usa</a> generic cialis 5mg online http://buycialisonl1ne.us

ptaletwqfmptaletwqfm2018/09/19 19:04<a href="http://baymontelreno.com">best place to buy generic cialis</a> order cialis online safe http://baymontelreno.com

ttaletgomcttaletgomc2018/09/19 20:26<a href="http://motechautomotive.com">cheap cialis canadian</a> generic cialis canada online pharmacy http://motechautomotive.com

rtaletpetwrtaletpetw2018/09/19 23:12<a href="http://rabbitinahat.com">cialis online us pharmacy</a> order cialis with paypal http://rabbitinahat.com

utaletnqtmutaletnqtm2018/09/20 01:30<a href="http://viciolatino.com">generic viagra 50mg</a> get viagra prescription online http://viciolatino.com

ltaletgttyltaletgtty2018/09/20 03:00<a href="http://canadian-pharmaonline.com">cheap generic viagra 100mg</a> buy real viagra online cheap http://canadian-pharmaonline.com

qtaletqdbwqtaletqdbw2018/09/20 07:27<a href="http://baymontelreno.com">cialis india cheap order</a> cialis 20mg price http://baymontelreno.com

gtaleturlagtaleturla2018/09/20 08:48<a href="http://missreplicawatches.com">order cialis from india</a> buy cialis uk http://missreplicawatches.com

ktaletdjpbktaletdjpb2018/09/20 15:04<a href="http://istanbulexpressonline.com">order viagra without prescription</a> buy viagra uk http://istanbulexpressonline.com

ttaletwtutttaletwtut2018/09/20 15:36<a href="http://missreplicawatches.com">buy cialis 10mg</a> cheapest place to buy cialis http://missreplicawatches.com

ytaletegefytaletegef2018/09/20 18:36<a href="http://top-monterey-salinas-dentists.com">how long for levitra to take effect</a> what are levitra tablets used for http://top-monterey-salinas-dentists.com

ztaletjibxztaletjibx2018/09/20 18:54<a href="http://bullsac.com">how long does it take for levitra to work</a> compare cialis viagra levitra http://bullsac.com

mtaletowlbmtaletowlb2018/09/21 01:12<a href="http://canadian-pharmabuy.com">cheap viagra pills</a> real viagra online http://canadian-pharmabuy.com

ttaletoybtttaletoybt2018/09/21 01:12<a href="http://unishade.com">cheap cialis nz</a> generic cialis india pharmacy http://unishade.com

ztaletlsikztaletlsik2018/09/21 02:56<a href="http://timsbmw.com">best price on levitra</a> how long does levitra 20 mg last http://timsbmw.com

ftaletvvgsftaletvvgs2018/09/21 03:55<a href="http://istanbulexpressonline.com">buy viagra online</a> buy viagra http://istanbulexpressonline.com

mtaletzkwtmtaletzkwt2018/09/21 05:00<a href="http://viciolatino.com">order viagra online canada</a> order viagra overnight http://viciolatino.com

ftaletomggftaletomgg2018/09/21 09:39<a href="http://canadian-pharmasale.com">cheap cialis online uk</a> best generic cialis online http://canadian-pharmasale.com

jtaletzoiljtaletzoil2018/09/21 12:15<a href="http://canadian-pharmabuy.com">cheap viagra usa</a> buy viagra with paypal http://canadian-pharmabuy.com

qtaletlnylqtaletlnyl2018/09/24 02:25<a href="http://canadian-pharmabuy.com">cheap viagra sale</a> viagra online uk http://canadian-pharmabuy.com

utaletcdkwutaletcdkw2018/09/24 03:29<a href="http://unishade.com">buy cialis online overnight shipping</a> order generic cialis online http://unishade.com

ytaletnfqaytaletnfqa2018/09/24 04:10<a href="http://canadian-pharmacyionline.com">generic viagra soft</a> best mail order viagra http://canadian-pharmacyionline.com

etaletnfwoetaletnfwo2018/09/24 06:00<a href="http://vico4me.com">pfizer viagra online</a> generic viagra mail order http://vico4me.com

otaletzoqyotaletzoqy2018/09/24 11:51<a href="http://canadian-pharmapills.com">where can you buy viagra</a> viagra pill http://canadian-pharmapills.com

ctaletnswkctaletnswk2018/09/24 13:37<a href="http://usedrestaurantequipmentaz.com">buy discount cialis</a> mail order cialis from canada http://usedrestaurantequipmentaz.com

utalethijfutalethijf2018/09/24 15:06<a href="http://canadian-pharmacheap.com">cialis online usa</a> cialis online canada cheap http://canadian-pharmacheap.com

ztaletlzjaztaletlzja2018/09/24 15:13<a href="http://unishade.com">cheap cialis tablets</a> cheap cialis online uk http://unishade.com

htaletqhwyhtaletqhwy2018/09/24 20:21<a href="http://canadian-pharmaorder.com">cheap cialis 60 mg</a> can you order cialis online http://canadian-pharmaorder.com

staletmmuustaletmmuu2018/09/24 23:20<a href="http://vico4me.com">cheap viagra tablets</a> pfizer viagra online pharmacy http://vico4me.com

mtaletpujumtaletpuju2018/09/25 00:16<a href="http://canadian-pharmacyibuy.com">order cialis now</a> buy cialis online canada http://canadian-pharmacyibuy.com

ataletrkmrataletrkmr2018/09/25 00:30<a href="http://canadian-pharmaorder.com">generic cialis online pharmacy</a> buy generic cialis 20 mg http://canadian-pharmaorder.com

ttaletjpqvttaletjpqv2018/09/25 01:39<a href="http://buycialisonlineglka.com">buy generic cialis online safely</a> cialis 5 mg online http://buycialisonlineglka.com

italetidegitaletideg2018/09/25 02:25<a href="http://canadian-pharmabuy.com">cheap viagra in usa</a> buy generic viagra http://canadian-pharmabuy.com

ktaletfqmdktaletfqmd2018/09/25 09:08<a href="http://timsbmw.com">levitra dosage 40 mg</a> free levitra http://timsbmw.com

btaleteshrbtaleteshr2018/09/25 10:14<a href="http://canadian-pharmabuy.com">buy viagra no prescription</a> buy female viagra http://canadian-pharmabuy.com

italethoxtitalethoxt2018/09/25 11:41<a href="http://canadian-pharmaonline.com">cheap viagra pills online</a> viagra for sale online cheap http://canadian-pharmaonline.com

ttaletsdowttaletsdow2018/09/25 12:16<a href="http://canadian-pharmausa.com">order brand viagra</a> mail order viagra canada http://canadian-pharmausa.com

htaletgixlhtaletgixl2018/09/25 14:01<a href="http://viciolatino.com">real viagra online</a> cheap generic viagra 100mg http://viciolatino.com

utaletlzzgutaletlzzg2018/09/25 21:52<a href="http://canadian-pharmacyibuy.com">order cialis online from canada</a> order generic cialis online canada http://canadian-pharmacyibuy.com

ktaletehgtktaletehgt2018/09/25 22:38<a href="http://unishade.com">order generic viagra cialis</a> order cialis europe http://unishade.com

jtaletyqlpjtaletyqlp2018/09/25 22:50<a href="http://top-monterey-salinas-dentists.com">buy generic levitra online</a> buy levitra online cheap http://top-monterey-salinas-dentists.com

ktaletgubektaletgube2018/09/25 23:18<a href="http://canadian-pharmasale.com">order generic viagra cialis</a> buy cheap cialis australia http://canadian-pharmasale.com

btaletutgfbtaletutgf2018/09/26 03:36<a href="http://canadian-pharmacheap.com">order discount cialis online</a> canadian online pharmacy generic cialis http://canadian-pharmacheap.com

otalettqqpotalettqqp2018/09/26 04:31<a href="http://canadian-pharmabuy.com">cheap generic viagra online pharmacy</a> viagra online prescription http://canadian-pharmabuy.com

xtaletfnoqxtaletfnoq2018/09/26 06:24<a href="http://canadian-pharmamrdi.com">buy cialis online</a> cheap cialis online usa http://canadian-pharmamrdi.com

vtaletajqkvtaletajqk2018/09/26 08:31<a href="http://canadian-pharmacyibuy.com">buy generic cialis online canada</a> cheap cialis generic canada http://canadian-pharmacyibuy.com

rtaletrhpartaletrhpa2018/09/26 13:40<a href="http://canadian-pharmacheap.com">buy cheap cialis uk</a> order cialis online no prescription canada http://canadian-pharmacheap.com

ataletfwclataletfwcl2018/09/26 14:18<a href="http://canadian-pharmabuy.com">order prescription viagra</a> generic viagra without prescription http://canadian-pharmabuy.com

mtaletkkmvmtaletkkmv2018/09/26 16:11<a href="http://viciolatino.com">best place to buy generic viagra online</a> best online pharmacy for viagra http://viciolatino.com

ataletobznataletobzn2018/09/26 17:17<a href="http://canadian-pharmabuy.com">viagra for men</a> cheap viagra tablet http://canadian-pharmabuy.com

utaletojbkutaletojbk2018/09/26 17:25<a href="http://canadian-pharmacyiorder.com">order generic cialis online canada</a> cheap cialis online canadian pharmacy http://canadian-pharmacyiorder.com

ataletnqbwataletnqbw2018/09/26 23:08<a href="http://unishade.com">buy cialis canadian pharmacy</a> order cialis online canadian pharmacy http://unishade.com

jtaletbjcnjtaletbjcn2018/09/27 00:26<a href="http://canadian-pharmakfxy.com">generic cialis 60 mg</a> generic cialis cheapest price http://canadian-pharmakfxy.com

italetrmwiitaletrmwi2018/09/27 00:42<a href="http://canadian-pharmausa.com">order generic viagra online</a> cheap viagra online canadian pharmacy http://canadian-pharmausa.com

ttalettkduttalettkdu2018/09/27 01:26<a href="http://unishade.com">order cialis online from canada</a> buy cialis with paypal http://unishade.com

xtaletelttxtaleteltt2018/09/27 01:43<a href="http://canadian-pharmakfxy.com">order cialis with no prescription</a> generic cialis usa http://canadian-pharmakfxy.com

gtaletnnongtaletnnon2018/09/27 04:25<a href="http://timsbmw.com">levitra 20 mg price</a> buy levitra online cheap http://timsbmw.com

mtaletnntvmtaletnntv2018/09/27 11:30<a href="http://valladium.com">buy cialis from india</a> cheap cialis online uk http://valladium.com

gtaletrqdkgtaletrqdk2018/09/27 21:32<a href="http://canadian-pharmacyisale.com">best online pharmacy for viagra</a> buy viagra online no prescription http://canadian-pharmacyisale.com

ytaletguqoytaletguqo2018/09/27 22:23<a href="http://canadian-pharmapills.com">buy viagra usa</a> buy generic viagra cheap http://canadian-pharmapills.com

mtalethyjpmtalethyjp2018/09/27 22:44<a href="http://canadian-pharmaonline.com">cheap viagra without prescription</a> generic viagra from canada http://canadian-pharmaonline.com

htaletkmdthtaletkmdt2018/09/28 04:23<a href="http://rabbitinahat.com">order prescription viagra</a> cheap viagra pills for sale http://rabbitinahat.com

dtaletduljdtaletdulj2018/09/28 04:50<a href="http://timsbmw.com">does levitra lower blood pressure</a> cost levitra http://timsbmw.com

ytaletvtvcytaletvtvc2018/09/28 09:35<a href="http://valladium.com">buy cheap cialis generic</a> order cialis online australia http://valladium.com

atalettykyatalettyky2018/09/28 10:20<a href="http://canadian-pharmakoani.com">cheap generic viagra online</a> best online pharmacy for viagra http://canadian-pharmakoani.com

mtaletplummtaletplum2018/09/28 12:27<a href="http://top-monterey-salinas-dentists.com">levitra com</a> levitra online http://top-monterey-salinas-dentists.com

vtaletqjkqvtaletqjkq2018/09/29 00:22<a href="http://buycialisonlineglka.com">generic cialis 60 mg</a> buy cialis without prescription http://buycialisonlineglka.com

ktaletmaxrktaletmaxr2018/09/29 03:04<a href="http://canadian-pharmausa.com">order viagra online</a> order viagra online india http://canadian-pharmausa.com

mtaletylsvmtaletylsv2018/09/29 08:14<a href="http://canadian-pharmapills.com">buy real viagra online cheap</a> viagra online no prescription http://canadian-pharmapills.com

mtaletpaybmtaletpayb2018/09/29 18:46<a href="http://usedrestaurantequipmentaz.com">generic cialis lowest price</a> discount cialis pills http://usedrestaurantequipmentaz.com

ntaletanflntaletanfl2018/09/29 22:45<a href="http://vico4me.com">order viagra online without prescription</a> cheap viagra without prescription http://vico4me.com

ztaletmnksztaletmnks2018/09/30 03:17<a href="http://canadian-pharmabuy.com">cheap generic viagra online pharmacy</a> buy viagra uk http://canadian-pharmabuy.com

ytaletnnteytaletnnte2018/09/30 04:53<a href="http://unishade.com">discount cialis online</a> generic cialis canada online pharmacy http://unishade.com

vtaletajmwvtaletajmw2018/09/30 05:59<a href="http://canadian-pharmakfxy.com">buy cialis canada</a> buy generic cialis http://canadian-pharmakfxy.com

utaletplvuutaletplvu2018/09/30 09:16<a href="http://canadian-pharmacyiorder.com">order cialis from canada</a> cheap generic cialis canadian pharmacy http://canadian-pharmacyiorder.com

rtaletnicmrtaletnicm2018/09/30 17:02<a href="http://canadian-pharmausa.com">order prescription viagra</a> buy viagra online discount http://canadian-pharmausa.com

jtaletubpfjtaletubpf2018/09/30 18:26<a href="http://canadian-pharmacheap.com">cheap cialis online usa</a> buy cheapest cialis online http://canadian-pharmacheap.com

gtaletefksgtaletefks2018/09/30 19:54<a href="http://vico4me.com">viagra online bestellen</a> viagra for sale online http://vico4me.com

jtaletfalxjtaletfalx2018/09/30 21:40<a href="http://canadian-pharmapills.com">viagra 100mg</a> viagra online sales http://canadian-pharmapills.com

ptaletcgqjptaletcgqj2018/09/30 21:40<a href="http://canadian-pharmacheap.com">can you order cialis online for canada</a> cheap cialis 5mg uk http://canadian-pharmacheap.com

vtaletfauhvtaletfauh2018/10/01 01:23<a href="http://buyviagraonl1ne.us">cheap 25mg viagra</a> viagra online without prescription http://buyviagraonl1ne.us

staletvhljstaletvhlj2018/10/01 02:52<a href="http://usedrestaurantequipmentaz.com">cialis online prescription</a> cheap cialis pills online http://usedrestaurantequipmentaz.com

ytaletldtsytaletldts2018/10/01 14:32<a href="http://canadian-pharmabuy.com">mail order viagra canada</a> viagra pills http://canadian-pharmabuy.com

utalettkuautalettkua2018/10/01 14:45<a href="http://canadian-pharmapills.com">online order for viagra</a> order herbal viagra http://canadian-pharmapills.com

xtaletxdccxtaletxdcc2018/10/01 17:19<a href="http://vico4me.com">viagra coupons online</a> generic viagra online canadian pharmacy http://vico4me.com

ttaletyidittaletyidi2018/10/01 18:52<a href="http://canadian-pharmabuy.com">viagra prices</a> buy real viagra online http://canadian-pharmabuy.com

otaletovnzotaletovnz2018/10/01 19:06<a href="http://canadian-pharmacyiorder.com">order cialis paypal</a> cialis online without prescription http://canadian-pharmacyiorder.com

xtaletzjrmxtaletzjrm2018/10/01 22:30<a href="http://canadian-pharmacyionline.com">buy viagra with paypal</a> buy viagra internet http://canadian-pharmacyionline.com

ztaletodssztaletodss2018/10/02 03:14<a href="http://unishade.com">buy cialis cheap canada</a> cialis order online india http://unishade.com

htaletdeeihtaletdeei2018/10/02 05:29<a href="http://canadian-pharmabuy.com">generic viagra canada pharmacy</a> best pill viagra http://canadian-pharmabuy.com

ttaletahzsttaletahzs2018/10/02 07:04<a href="http://canadian-pharmacyionline.com">order viagra</a> buy viagra online europe http://canadian-pharmacyionline.com

ztaletxlteztaletxlte2018/10/02 08:03<a href="http://buyviagraonl1ne.us">viagra online canada paypal</a> viagra online prescription http://buyviagraonl1ne.us

qtaletlqyrqtaletlqyr2018/10/02 16:06<a href="http://canadian-pharmacyisale.com">cheap viagra online 100mg viagra</a> pfizer viagra online http://canadian-pharmacyisale.com

ntaletqsfdntaletqsfd2018/10/02 18:34<a href="http://canadian-pharmacyibuy.com">cialis pills side effects</a> order 5mg cialis online http://canadian-pharmacyibuy.com

rtaletlnkirtaletlnki2018/10/02 22:22<a href="http://canadian-pharmacyisale.com">viagra online without script</a> viagra online without prescription http://canadian-pharmacyisale.com

gtaletwjnxgtaletwjnx2018/10/02 23:21<a href="http://buycialisonlineglka.com">discount cialis online</a> cialis online no prescription http://buycialisonlineglka.com

ltaletiqkzltaletiqkz2018/10/03 01:05<a href="http://canadian-pharmausa.com">buy generic viagra online europe</a> buy viagra online overnight shipping http://canadian-pharmausa.com

gtaletiuuugtaletiuuu2018/10/03 03:35<a href="http://unishade.com">cheap cialis united states pharmacy</a> buy brand cialis online canada http://unishade.com

wtaletaqufwtaletaquf2018/10/03 08:11<a href="http://unishade.com">order generic viagra cialis</a> buy name brand cialis online http://unishade.com

ktaletfmjrktaletfmjr2018/10/03 09:27<a href="http://canadian-pharmacyibuy.com">best place to buy cialis cheap</a> tadalafil generic cialis 20mg http://canadian-pharmacyibuy.com

ytaletdohiytaletdohi2018/10/03 11:56<a href="http://canadian-pharmakgae.com">buy viagra in los angeles</a> best price viagra canada http://canadian-pharmakgae.com

ntaletpkhgntaletpkhg2018/10/03 12:52<a href="http://canadian-pharmakgae.com">buy real viagra online</a> buy pfizer viagra online http://canadian-pharmakgae.com

ktalethrabktalethrab2018/10/03 13:18<a href="http://unishade.com">cheap brand cialis online</a> cheapest place to buy cialis with a prescription http://unishade.com

ptaletezoiptaletezoi2018/10/03 18:23<a href="http://canadian-pharmakgae.com">cheap viagra usa online</a> canadian viagra online pharmacy http://canadian-pharmakgae.com

ftaletttynftaletttyn2018/10/03 19:16<a href="http://buycialisonl1ne.us">cialis canada cheap</a> cialis online with prescription http://buycialisonl1ne.us

ytaleterckytaleterck2018/10/03 20:32<a href="http://rabbitinahat.com">cheap cialis canadian</a> cialis 5 mg side effects http://rabbitinahat.com

ltaletvvghltaletvvgh2018/10/04 04:18<a href="http://buyviagraonl1ne.us">generic viagra sildenafil</a> best price viagra 100mg sildenafil http://buyviagraonl1ne.us

otaletmrdvotaletmrdv2018/10/04 05:25<a href="http://canadian-pharmakoani.com">order viagra</a> order viagra in canada http://canadian-pharmakoani.com

jtaletitbyjtaletitby2018/10/04 06:09<a href="http://canadian-pharmapills.com">viagra online canada overnight</a> buy viagra from canada legal http://canadian-pharmapills.com

rtaletptbartaletptba2018/10/04 06:58<a href="http://valladium.com">order cialis in canada</a> brand cialis online cheap http://valladium.com

utalettdydutalettdyd2018/10/04 10:22<a href="http://buyviagraonl1ne.us">discount viagra in usa</a> buy viagra in vegas http://buyviagraonl1ne.us

ftaletvbgfftaletvbgf2018/10/04 13:58<a href="http://missreplicawatches.com">cialis pills side effects</a> order cialis online in canada http://missreplicawatches.com

utaletyxuoutaletyxuo2018/10/04 16:16<a href="http://canadian-pharmacyisale.com">viagra online purchase</a> buy generic viagra http://canadian-pharmacyisale.com

ltaletpzhhltaletpzhh2018/10/04 17:00<a href="http://buycialisonl1ne.us">best place to buy cialis in united states</a> cheap cialis online usa http://buycialisonl1ne.us

ytaletlxvqytaletlxvq2018/10/04 17:35<a href="http://usedrestaurantequipmentaz.com">cheap cialis generic india</a> order cialis australia online http://usedrestaurantequipmentaz.com

italetbgkjitaletbgkj2018/10/04 17:39<a href="http://canadian-pharmacheap.com">tadalafil 5mg best price</a> generic cialis 20 mg canada http://canadian-pharmacheap.com

jtaletbkorjtaletbkor2018/10/04 20:10<a href="http://canadian-pharmakfxy.com">cialis price</a> cialis online without prescription http://canadian-pharmakfxy.com

staletztbistaletztbi2018/10/04 23:32<a href="http://canadian-pharmakgae.com">buy viagra in canada</a> order viagra online without script http://canadian-pharmakgae.com

ytaletharoytaletharo2018/10/05 01:51<a href="http://missreplicawatches.com">cheap generic cialis from canada</a> buy cialis online cheap prices http://missreplicawatches.com

jtaletkilujtaletkilu2018/10/05 01:53<a href="http://canadian-pharmaonline.com">buy viagra no prior prescription</a> generic viagra canada prescription http://canadian-pharmaonline.com

ttaletisdpttaletisdp2018/10/05 02:09<a href="http://canadian-pharmacyiorder.com">cheap cialis united states pharmacy</a> viagra cheap prices canada http://canadian-pharmacyiorder.com

mtaletluzxmtaletluzx2018/10/05 03:01<a href="http://usedrestaurantequipmentaz.com">order generic cialis online canada</a> buy cialis from the uk http://usedrestaurantequipmentaz.com

etalethcajetalethcaj2018/10/05 04:02<a href="http://rabbitinahat.com">cialis online paypal</a> cheap cialis 40 mg online http://rabbitinahat.com

xtaletmjdgxtaletmjdg2018/10/06 03:41<a href="http://waltzweekend.com">buy viagra online canadian pharmacy</a> discount generic viagra soft tabs http://waltzweekend.com

etaletxnbgetaletxnbg2018/10/06 17:40<a href="http://buycialisonlineglka.com">cialis low price</a> cheap brand name cialis http://buycialisonlineglka.com

ztaletliyoztaletliyo2018/10/06 19:59<a href="http://buyviagraonl1ne.us">viagra 100mg 30 tablets</a> buy order viagra http://buyviagraonl1ne.us

utaletkbmwutaletkbmw2018/10/06 21:43<a href="http://unishade.com">buy cialis online worldwide shipping</a> buy cialis online with out a prescription http://unishade.com

ntaletfpnnntaletfpnn2018/10/06 22:27<a href="http://waltzweekend.com">viagra canada price</a> viagra usa pharmacies online http://waltzweekend.com

rtaletixuvrtaletixuv2018/10/07 06:59<a href="http://buycialisonlineglka.com">order 5mg cialis price</a> cheap cialis http://buycialisonlineglka.com

mtaletfdnumtaletfdnu2018/10/07 07:39<a href="http://usedrestaurantequipmentaz.com">buy cheap cialis 20mg</a> canada pharmacy online cialis http://usedrestaurantequipmentaz.com

vtaletqshqvtaletqshq2018/10/07 11:09<a href="http://canadian-pharmamrdi.com">order cialis in canada</a> cialis online paypal payment http://canadian-pharmamrdi.com

qtaletqsjyqtaletqsjy2018/10/07 14:36<a href="http://buyviagraonl1ne.us">buy cheap viagra from canada</a> generic viagra from canada http://buyviagraonl1ne.us

italetdcmsitaletdcms2018/10/09 06:07<a href="http://canadian-pharmacyibuy.com">cialis samples usa</a> how to take cialis http://canadian-pharmacyibuy.com

ktaletcjclktaletcjcl2018/10/09 07:25<a href="http://unishade.com">buy cialis with paypal</a> how to buy cialis without a prescription http://unishade.com

mtaletoxqmmtaletoxqm2018/10/09 08:04<a href="http://canadian-pharmamrdi.com">cialis online us pharmacy</a> real cialis online http://canadian-pharmamrdi.com

italetojrlitaletojrl2018/10/09 16:39<a href="http://canadian-pharmacyiorder.com">cheap cialis usa</a> cheap cialis prices uk http://canadian-pharmacyiorder.com

htaletnmruhtaletnmru2018/10/09 18:06<a href="http://canadian-pharmamrdi.com">cialis 90 pills</a> buy cialis online pharmacy http://canadian-pharmamrdi.com

ftaletijqcftaletijqc2018/10/09 19:26<a href="http://canadian-pharmacyiorder.com">best place to buy cialis online forum</a> generic cialis usa buy http://canadian-pharmacyiorder.com

dtaletwqwcdtaletwqwc2018/10/09 19:50<a href="http://canadian-pharmasale.com">cialis sale in usa</a> cialis samples online http://canadian-pharmasale.com

wtaletrigfwtaletrigf2018/10/10 02:17<a href="http://canadian-pharmabuy.com">cheap viagra usa</a> buying viagra online http://canadian-pharmabuy.com

ztaletisadztaletisad2018/10/10 02:45<a href="http://canadian-pharmacheap.com">cheap cialis in canada</a> can you buy cialis over the counter http://canadian-pharmacheap.com

otaletccdqotaletccdq2018/10/10 03:47<a href="http://canadian-pharmapills.com">order extra super viagra usa</a> cheap viagra for sale http://canadian-pharmapills.com

italetnxeditaletnxed2018/10/10 04:43<a href="http://canadian-pharmacyiorder.com">order cialis online canadian pharmacy</a> cialis cost per pillonline pharmacy cialis http://canadian-pharmacyiorder.com

ataletucdyataletucdy2018/10/10 09:32<a href="http://timsbmw.com">what does levitra do</a> levitra side effects http://timsbmw.com

wtaletzlclwtaletzlcl2018/10/10 09:38<a href="http://canadian-pharmamrdi.com">buy cheap cialis uk</a> cialis 60 pills http://canadian-pharmamrdi.com

ttaletutogttaletutog2018/10/10 10:26<a href="http://valladium.com">buy cialis no prescription</a> buy cialis 120 pills http://valladium.com

ltaletcgwrltaletcgwr2018/10/10 11:43<a href="http://buycialisonlineglka.com">viagra usa generic cialis</a> cheap viagra cialis uk http://buycialisonlineglka.com

ptaletgvljptaletgvlj2018/10/10 19:13<a href="http://rabbitinahat.com">buy generic cialis online</a> how to get cialis online http://rabbitinahat.com

ttaletgxguttaletgxgu2018/10/10 20:08<a href="http://gigawatt6.com">buy cialis from india</a> cheap cialis online india http://gigawatt6.com

ktaletkagfktaletkagf2018/10/10 20:54<a href="http://baymontelreno.com">cialis 270 pills</a> order cialis 2 5mg http://baymontelreno.com

mtaletgqwymtaletgqwy2018/10/10 23:38<a href="http://canadian-pharmacyibuy.com">generic cialis 20mg</a> generic cialis online canada http://canadian-pharmacyibuy.com

ltaletopkultaletopku2018/10/11 20:44<a href="http://bullsac.com">when does levitra go generic</a> levitra patent expiration http://bullsac.com

ntaletemjhntaletemjh2018/10/11 21:32[url=http://missreplicawatches.com]cialis to buy[/url] does cialis work http://missreplicawatches.com

ktaletcoqhktaletcoqh2018/10/12 02:02<a href="http://top-monterey-salinas-dentists.com">levitra side effects</a> canada levitra online http://top-monterey-salinas-dentists.com

ltaletsrbultaletsrbu2018/10/12 05:56<a href="http://canadian-pharmamrdi.com">cialis 10 mg</a> buy cialis without http://canadian-pharmamrdi.com

utaletwwzoutaletwwzo2018/10/12 06:09<a href="http://usedrestaurantequipmentaz.com">cialis 90 pills</a> cialis dose http://usedrestaurantequipmentaz.com

ctaletmwlwctaletmwlw2018/10/12 07:40<a href="http://buycialisonlineglka.com">cialis 20mg</a> viagra or cialis http://buycialisonlineglka.com

gtaletaekdgtaletaekd2018/10/12 08:25<a href="http://valladium.com">cheapest place to buy cialis</a> cialis side effects http://valladium.com

staletnewsstaletnews2018/10/12 14:33<a href="http://valladium.com">cialis 5mg</a> cheap cialis generic online http://valladium.com

ptaletilltptaletillt2018/10/12 19:23<a href="http://canadian-pharmacyiorder.com">usa medical card cialis</a> buy cialis new york http://canadian-pharmacyiorder.com

xtalettdwzxtalettdwz2018/10/13 00:01<a href="http://viciolatino.com">viagra coupon</a> viagra pills sale http://viciolatino.com

wtalettdwuwtalettdwu2018/10/13 00:41<a href="http://canadian-pharmausa.com">buy viagra in mexico</a> viagra professional 120 pills http://canadian-pharmausa.com

qtaletkvwnqtaletkvwn2018/10/13 04:15<a href="http://valladium.com">cialis generic best price</a> cialis price http://valladium.com

gtaletrlgsgtaletrlgs2018/10/13 11:17<a href="http://canadian-pharmacyiorder.com">order discount cialis online</a> cialis price comparison usa http://canadian-pharmacyiorder.com

ztaletlsjwztaletlsjw2018/10/13 12:58<a href="http://canadian-pharmamrdi.com">cialis on line</a> how can i buy cialis http://canadian-pharmamrdi.com

jtaletgthkjtaletgthk2018/10/13 14:28<a href="http://missreplicawatches.com">cialis for sale in usa</a> cialis for men http://missreplicawatches.com

ftaletlyvmftaletlyvm2018/10/13 14:29<a href="http://gigawatt6.com">generic cialis 10mg</a> generic cialis pills http://gigawatt6.com

staletxdfpstaletxdfp2018/10/13 19:29<a href="http://viciolatino.com">generic viagra online</a> viagra online prescription http://viciolatino.com

gtaletpkolgtaletpkol2018/10/13 20:39<a href="http://missreplicawatches.com">viagra cialis online</a> buy real cialis online http://missreplicawatches.com

btaletnjcmbtaletnjcm2018/10/14 02:01<a href="http://vico4me.com">how to order viagra online</a> order extra super viagra online http://vico4me.com

htaletvubkhtaletvubk2018/10/14 10:20<a href="http://rabbitinahat.com">buy cialis 40 mg online</a> buy cialis 20mg http://rabbitinahat.com

qtaletrmssqtaletrmss2018/10/14 14:02<a href="http://canadian-pharmacyiorder.com">buy cialis canada</a> buy cialis online without rx http://canadian-pharmacyiorder.com

ataletsnhhataletsnhh2018/10/14 15:41<a href="http://canadian-pharmacyiorder.com">cialis online us pharmacy</a> difference between viagra and cialis http://canadian-pharmacyiorder.com

btaletxoqnbtaletxoqn2018/10/15 00:42<a href="http://canadian-pharmamrdi.com">cialis pills sale</a> remedio cialis generico usa http://canadian-pharmamrdi.com

ntaletdarzntaletdarz2018/10/15 08:42<a href="http://canadian-pharmausa.com">buy viagra online usa</a> buy brand viagra 4 pills http://canadian-pharmausa.com

etaletdqcietaletdqci2018/10/16 01:26[url=http://buycialisonlineglka.com]buy cheap cialis usa visa[/url] generic cialis from canada http://buycialisonlineglka.com

utaletzmjjutaletzmjj2018/10/16 03:17<a href="http://canadian-pharmacheap.com">ordering cialis online</a> cialis from usa pharmacy http://canadian-pharmacheap.com

Online Loan Online Loan 2018/10/18 02:39online loans no phone calls <a href="https://loansguaranteedapproval.com/">loans guaranteed approval</a> faxless payday loan <a href=https://loansguaranteedapproval.com/>bad credit personal loans guaranteed approval</a>

GlennfugGlennfug2018/10/19 04:53compare viagra cialis levitra side effects
cipla generic cialis review
onhoxte@mail.ru
buy cialis and viagra online

neenEphenueneenEphenue2018/10/22 18:32W jednej ze bud tańca wykreowano oraz specjalistyczny przebieg tańca dla dzieci (Kraków, ul. Z tej przyczyny by w czasie tańca rozkazywałaby współbrzmienie, najakuratniej <a href=https://bit.ly/2CzD5q2>wprawki blues lodz</a> żeby było, jeśliby dwie akuratnie się umiała.Pląsy wykonywa ubaw, popiera walczyć spośród krępacją, inklinacjami, wyrażać emocje. Tańczą niecałkowici – hobbyści, gwiazdorzy, celebryci. Tany ma owo aż do siebie, że na przestrzeni jego osiągania mniej inicjatywie się o utrudzeniu, niż gdy czyni się zwyczajnego szkolenie.Tutaj zalegają rozliczne postawie, lokalizacje, przemiany toku, co nie dopuszcza na stagnację tudzież rutynę.

WalthonuriffWalthonuriff2018/10/24 04:19Prom Electric <a href="https://prom-electric.ru/articles/9/163165/">Fluke PM8907/801 - зарядное устройство / Сетевой адаптер EURo (для 120 Series), Диагностика Fluke PM8907/801 | Ремонт Fluke PM8907/801 в Санкт-Петербурге</a> ID:T3v91ZAVTYjDvDTGMR8cr7sn68bP3MwhByaXwdw4NOqs6GUyO2bY5L1QTVhxfaab2

PeterTopPeterTop2018/10/25 14:43viagra without a doctor prescription canada <a href=http://viagrawithoutdoctorprescr.today/>viagra without a doctor prescription canada</a> viagra without a doctor's prescription

WalthonduriffWalthonduriff2018/10/26 03:22Prom Electric <a href="https://prom-electric.ru/articles/10/198939/">Ремонт Power Control Repair | Browsable Repair Catalog</a> ID:p7W0MjUzwdaDDuTNxXn1m54IkeTIvEUXyfEvzu2f2xe8PPsBo3vebeL0l30iBJABS

WalthonnuriffWalthonnuriff2018/10/26 13:41Prom Electric <a href="https://prom-electric.ru/articles/8/21696/">Ремонт COMPUMOTOR SERVO CONTROL 120VAC 50/60HZ, AT6250-120V</a> ID:KS7Xs4AyVLW8tVAkxbVGOAoiOMc8uiU3mVhNaagHJXU9UGk2oPgvyA3Wg865quqm1

WalthornsuriffWalthornsuriff2018/10/30 04:15Prom Electric <a href="https://prom-electric.ru/articles/8/101827/">Ремонт YASKAWA ELECTRIC SERVO DRIVE 200W, CACR-02-SU23GC</a> ID:Nq0YozoTjJ9sP2UijUcD1rgDhcEeNKZ24Cx2NZflPa0DofvHdZFXR8uWZnFc6Xgwh

|