October 17, 2015

サーバの引越

当ブログのサーバを引っ越しました。運用開始時期にはdockerが流行っておらずLXCを直接弄っていましたが、時代の流れに乗ってdockerに変えました。 また、さくらVPSを利用しているのですが大阪リージョンから石狩リージョンに変更したのでpingが遅くなっています。 今後ともよろしくお願いします。

October 30, 2014

bootstrapを3系にした

前々から気になっていたので、デザインを変えました。 bootstrapサイトのサンプルに載っているブログ用のテンプレートにしてみました。しばらくは、これでいこうと思う。

June 15, 2014

padding-leftで表示域を右にずらす

見出し部分のスタイルを今までは、 <h4 style="border-left:solid 3px blue;">ほげ</h4> ほげ のようにしていたが、 <h4 style="border-left:solid 3px blue; padding-left: 8px;">ほげ</h4> ほげ にした方が読みやすいとのアドバイスを頂いたので、早速変更した。 デザインは、難しいなあ。

November 7, 2013

似てる記事も表示させた

一ヶ月ぐらい前から、似てない記事を表示させていたのだけど、サイトの滞在時間が伸びていないので、似てる記事も表示させる事にしました。 アクセスログを見てみると、似てない記事リストを見て別の記事へ飛んだユーザが居たので、無意味という訳ではなさそうです。 サイトのデザインも満足していないので、改良したい。

October 16, 2013

Flaskの日本語特のバグ?

@app.route("/hoge/<fuga>", defaults={"page":1}) @app.route("/hoge/<fuga>/", defaults={"page":1}) @app.route("/hoge/<fuga>/<int:page>") などのようにルーティングを指定した時に、 OK /hoge/日本語 /hoge/日本語/ /hoge/日本語/2 NG /hoge/日本語/1 となっている。 ルーティングの部分で問題になっているような気がするのだが、もしかしたら他の部分かもしれない。調査が終了したら、報告したいな。

October 16, 2013

コードのハイライティングを出来るようにした

Pygmentsを pip install Pygments でインストールして、 markdown.markdown(html, ['fenced_code', 'codehilite']) とすれば良い。 あとは、 https://github.com/richleland/pygments-css からお気に入りのハイライティングを選んできて、適切な箇所に置く。 以下がサンプル print "Hello World" print "Hello World" #!/usr/bin/python # -*- coding:utf-8 -*- print "Hello World" 参考: http://pythonhosted.org/Markdown/extensions/code_hilite.html https://github.com/richleland/pygments-css 追記 markdownは2.1.1、Pygmentsは1.6で動作確認をしている。バージョンが異なると挙動が変わる模様。

October 16, 2013

タイトルの表示方法を変更した

タイトル表示にカテゴリも表示するようにした。今までは、タイトルにカテゴリが表示されていなかったので、twitterなどの共有する時に不便だった。これで改善できたはず。

October 14, 2013

似てない記事の推薦エンジンのバグを直した

先日より、各記事の下部に似てない記事を表示させていたが、記事によって表示されないものがあった。原因が分かったので、修正を行いました。 cos類似度を計算する時に、各記事の組み合わせを作成する箇所でバグがありました。 本来は、 itertools.permutations とするところを、 itertools.combinations としていました。 現段階では、A,Bの類似度とB,Aの類似度を二度計算しているので、記事の数が増えてくると修正を加える必要が出てきそうです。 参考: 10.1. itertools — 効率的なループ実行のためのイテレータ生成関数

August 8, 2013

memcachedを導入した

http://flask.pocoo.org/docs/patterns/caching/を参考にして、memcachedをgepulogに導入しました。 from werkzeug.contrib.cache import MemcachedCache cache = MemcachedCache(['127.0.0.1:11211']) としておいて、 cache.get("key") cache.set("key", "value", timeout=5*60) cache.delete("key") などのようにして使うことが出来る。 サーバのメモリはまだ余裕があるので、有効活用できるかな?

August 8, 2013

テンプレートを少し変更した

左下のadsenseが記事に被ることがあったので、テンプレートを少しだけ変更した。 これで、前よりは僅かながら見やすくなったはず。 なんだか左下が寂しくなりましたね。

April 15, 2013

このブログをもう少し使いやすくしたいな

修正を加えたいことを箇条書きでメモしておく 記事の区切りを分かりやすく 左下の広告が本文と重ならないようにする。(ブラウザのサイズによって重なってしまう事がある) 下書き,非公開記事を作成出来るようにする。 memcachedを使って、高速化したい。 プログラムをシンタックスハイライト表示したい

February 28, 2013

gepulog systemのバグを直した

gepulog systemのバグを見つけた で分かっていたバグを直しました。 使っていくうちに、他のバグも出てきそう。

February 26, 2013

gepulog systemのバグを見つけた

カテゴリ表示が複数ページに渡る時に、2ページ目以降に移動しようとすると、カテゴリ表示が解除されてしまって、全表示の時と同じ状況になってしまうようです。 早いうちに直さないと。

February 26, 2013

Djangoを始める

画像ベースのサイトを作ってみたいかもしれない に向けて、Django&PostgreSQLでサイトを構築して行きたいと思う。 まずは、Djangoの利用の準備を始める。 データベースには、PostgreSQLの利用を想定する。 LinuxMintでのインストール方法 $ sudo apt-get install python-django PostgreSQLのインストール $ sudo apt-get install postgresql $ sudo apt-get install postgresql-client PostgreSQLのPython用のモジュール $ sudo apt-get install python-psycopg2 プロジェクトを開始する $ django-admin startproject gepupic でプロジェクトを開始できる。 すると、gepupicというフォルダが作成され、 gepupic/ manage.py gepupic/ \_\_init\_\_.py settings.py urls.py qsgi.py という構成でファイルが作成される。 開発用サーバーを起動する時は、 $ python manage.py runserver Validating models... 0 errors found Django version 1.4.1, using settings 'gepupic. Read more

February 20, 2013

gepulog systemのソースコードを公開しました

githubにて、このブログシステムを公開しました。 https://github.com/gepuro/gepulog-system ひとまず、作成したい機能が出来たので、開発を一休みするかもしれない。 新たに必要な機能が出てきたら、コードを書いていくかと。

February 16, 2013

設定ファイルを書く時はConfigParser

何かプログラムを書いているときに、設定ファイルをどうするか悩むときがある。プログラムの初めの方に定数として宣言しておいて、そこを編集させるか、別のファイルに書かせるかの二通りが考えられそう。 設定項目が短い場合は、JSONで記述するのも便利そうだが、長くなってくると見難くなりそうと感じる。 今回紹介するライブラリは、ConfigParserです。Pythonで利用出来ます。 import ConfigParser CONFIG_FILE = 'settings.ini' conf = ConfigParser.SafeConfigParser() conf.read(CONFIG_FILE) USERNAME = conf.get('credential', 'username') PASSWORD = conf.get('credential', 'password') host = conf.get('options','host') port = conf.get('options','port') Pythonコードは、上のように書くだけで良いです。 設定ファイル``settings.ini”は、 [credential] username=ユーザー名 password=パスワード [options] host=127.0.0.1 port=5000 とこんな感じです。 割と簡単に書けるので、今後も使っていきたいですね。

February 12, 2013

cPickleでPythonオブジェクトを保存する

Pythonでは、cPickle(またはpickle)、shelveというように変数を永続化することが出来るモジュールがあります。 用途としては、データベースを使用するほどの規模ではないが、データを保存しておきたい時に便利です。 shelveを使えば、辞書型を保存しておくことができます。 今回、紹介するcPickleは、Pythonオブジェクトをシリアライズして保存することができます。例えば、辞書型、配列型、文字列といった様々なデータを保存しておくことが出来ます。 cPickleとPickleの大きな違いは、実行速度です。cPickleの方が最大で1000倍早いそう。(自身では未確認) このgepulogでは、cPickleを利用しています。使っている場所は、サイドバーにあるカテゴリと最近の更新の部分です。こちらのデータは、変化が少なく、同じデータを何度も表示するので、データベースへ毎回アクセスするよりも早くなるはず。(サイトのレスポンスを表示してくれるサイトでは早くなっているように見える) 編集者用の画面をもう少し直したいなあ。

February 5, 2013

google カスタム検索の導入

サイドメニューの下側にgoogle カスタム検索を追加しました。 本ブログ内での検索に対応しています。 気が向いたら、自分で実装するかもしれない。

© gepuro 2013