at_yasu's blog

ロード的なことを

__str__ と __unicode__ と Python3

いちおう、Django1.5から(だっけ?忘れた)はPython3対応をうたってるけど、__str__ と __unicode__ があってそれの対応方法

デコレ

from django.utils.encoding import python_2_unicode_compatible 
@python_2_unicode_compatible 
class Room (models.Model): 
  def __str__ (self): return self
  # def __unicode__ (self): return self # これが有効になっているとエラーを出す

CakePHP の DebugToolbar みたいなのがほしい

django-debug-toolbar をいれればいい(Django1.6で動いた)

1. pip install django-debug-toolbar
2. インストールした先(virtualenv で py27 とかしている場合、「py27/lib/python2.7/site-packages/debug_toolbar」)にあるtemplates と static を適切なディレクトリにまるごとコピー
3. settings.py に色々追記

MIDDLEWARE_CLASSES = (
    …
    'debug_toolbar.middleware.DebugToolbarMiddleware', # 一番最後出ないとダメだけ、GZip 使ってる場合はそれより上に。
)
INTERNAL_IPS = ('127.0.0.1',)
DEBUG_TOOLBAR_PANELS = (
    'debug_toolbar.panels.version.VersionDebugPanel',
    'debug_toolbar.panels.timer.TimerDebugPanel',
    'debug_toolbar.panels.settings_vars.SettingsVarsDebugPanel',
    'debug_toolbar.panels.headers.HeaderDebugPanel',
    'debug_toolbar.panels.request_vars.RequestVarsDebugPanel',
    'debug_toolbar.panels.template.TemplateDebugPanel',
    'debug_toolbar.panels.sql.SQLDebugPanel',
    'debug_toolbar.panels.signals.SignalDebugPanel',
    'debug_toolbar.panels.logger.LoggingPanel',
)
DEBUG_TOOLBAR_CONFIG = {
    'INTERCEPT_REDIRECTS': True,
    'SHOW_TOOLBAR_CALLBACK': lambda (request): True,
    'EXTRA_SIGNALS': [],
    'HIDE_DJANGO_SQL': True,
    'TAG': 'div',
}

4. これでだいたい見れた

Cake の Session->flash みたいなのはないのか?

メモ書きを一気に。

view 側

{% if messages %}
<ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %}
</ul>
{% endif %}

view.py 側

from django.contrib import messages
MESSAGE_TAGS = {
    messages.INFO: '',
    50: 'critical',
}

def action(request):
    messages.error(request, u'ルーム名を入力してください')
    return render_to_response("hogs.html", {}, context_instance=RequestContext(request))

パスワードに使うと混乱するアルファベッドと数字

パスワードを「ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789」からランダムに生成すると、表示上とてもよく似てるアルファベッドがあります。フォントによっては区別するように出来ていますが、標準フォントなどでは区別つきにくい場合が多いです。それらの文字はタイプミスを起こして混乱しやすいので、とても似ている文字はどちらか片方だけを使うとか、どちらも使わないというのがあります。で、とても似ている文字一覧という名のメモ。たまに更新する。

- - - -
S(大文字「S」) 5(数字5) - S5S5SSSS5
O(大文字「O」) 0(数字0) - O0O0OOO0
I(大文字「I」) l (小文字「 l」) 1(数字「1」) I1lI1l1l1lllI1lIl
b(小文字「b」) 6 (数字6) - b6b6b6bb6bb6 案外ほとんどのフォントで見分けられる
D(大文字「D」) O(大文字「O」) - DODODOOODOD 案外(ry

PHP53/PHP55比較メモ

switch と 連想配列の取り出し、どっちが速いか気になったので比較してみた。


PHP5.5 での比較

$ /usr/local/Cellar/php55/5.5.4/bin/php switch_or_array.php
start arr ... Finish: 8.5129861831665
start sw ... Finish: 5.0694410800934


PHP5.3 での比較

$ /usr/local/Cellar/php53/5.3.27/bin/php switch_or_array.php
start arr ... Finish: 10.038110971451
start sw ... Finish: 6.0564711093903


まぁこんなことになりましたよっと。

GIST: https://gist.github.com/a-yasui/7019012