個人的な自転車的なメモ書き
クリーナーの話
いいクリーナー無いかなーと言うわけで色々探してたらコレがよさそう
で、中の人が少しばかり解説してる動画
チェーンの隙間?に砂利が入ってるから出さないとね、という話があって、少しやってみたら感触的にジャリジャリ鳴るわで…うん…
タイヤの話
確かにパナのはツルッとしてるよねー、グラベルキングがいい感じっぽい。ほぉ
「Laravel エキスパート 養成読本」が届きました!
こんにちは
最近はもっぱら Laravel4 やら Laravel5 を行ったり来たりしてる日々です。
そんなある日に、関西のPHP勉強会などでお世話になっている Shin x blog の新原さんから献本どうでしょう、と来たので即答でお願いしますと返しまして今に至ります。
献本ありがとうございます :-)
ただ、まとまって読む時間があまり取れてなくて、まださらっと読んだ感じで、がっつり読んだわけではないです、ごめんなさい。
Laravelは4が出た頃から触り始めていますが、最近は Laravel5 がメインになっています。
個人的な昔の話ですが、Pythonを少しさわってた頃やJavaを少しさわってました。その頃はクラスは Namespace = ディレクトリ構成になっており、それに比べてのPHPは、クラスがあるのにnamespaceの扱いがものすごく扱いにくい物と感じてました。しかし、最近は PSR-4のおかげで割りと開発しやすくなり、そしてそのPSR-4に強制的に?対応しているLaravel5は、個人的にすごく使いやすいです。
本は、その Laravel の入門から、IoCコンテナ、EloquentなどのMVC、Laravel5の新機能、アプリケーション作成の実践、といった具合にLaravel4だけではなく、Laravel5の事も書かれています。
Laravelは一部わからん所あるけどそれなりに使いこなしてるかなぁ、という少しあやふやな感じで使っていましたが、この本でそのわからない、わかっていないところを補正できたので、ありがたく感じてます。特に Fasadeとか内部の込み入った所とか。ソースコードを追っかける気があまりないダメな理由なんですが。
そんなLaravelなのですが、Web開発者はこの本を買って Laravel とたわむれるのもいいと思いますよ :-)
後でまた書くかも :-p
相手を招待する
今の今まで知らなかった、Gmail+Calenderの機能。
相手がGmailを使ってる場合、招待状を送ることでカレンダーに予定を追加させることができるっぽい。
もちろん許可、不許可や中止など、最終的な操作は向こうができるから、強制的にカレンダーへ追加することはできないけどね。
ただ、Gmailからだと新規作成で予定の作成ができたが2014/07以降は使えなくなるっぽいので、Calenderで予定を作ってから招待という手順になる。
これ: https://support.google.com/calendar/answer/37161?hl=ja
Gmail から送った招待メールはただのText/HTMLだけなんだけど、スパムメール業者がOutlookで送ってきて、それ見たらどうもcalenderのフォーマットであればうまくいくっぽい。
そのスパム業者のメールを見たら、こんな感じだった。
Content-Type: text/calendar; method=REQUEST; name=meeting.ics Content-Transfer-Encoding: 7bit BEGIN:VCALENDAR PRODID:-//Microsoft Corporation//Outlook 12.0 MIMEDIR//EN VERSION:2.0 METHOD:REQUEST X-MS-OLK-FORCEINSPECTOROPEN:TRUE BEGIN:VEVENT ATTENDEE;CN=A.YASUI+TEST@GMAIL.COM;RSVP=TRUE:mailto:A.YASUI+TEST@GMAIL.COM CLASS:PUBLIC CREATED:20140514T140009Z DTEND:20140514T200009Z DTSTAMP:20140514T202209Z DTSTART:20140514T203009Z LAST-MODIFIED:20140514T143050Z LOCATION:Test Nanodesu ORGANIZER;CN="Tesutonano":mailto:a.yasui@gmail.com PRIORITY:5 SEQUENCE:0 SUMMARY;LANGUAGE=ja-jp:Tesuto nano TRANSP:OPAQUE UID:{1e991223-9e1c-4aa9-b8c6-92d9b6e13dce} X-MICROSOFT-CDO-BUSYSTATUS:TENTATIVE X-MICROSOFT-CDO-IMPORTANCE:1 X-MICROSOFT-CDO-INTENDEDSTATUS:BUSY X-MICROSOFT-DISALLOW-COUNTER:FALSE X-MS-OLK-ALLOWEXTERNCHECK:TRUE X-MS-OLK-AUTOSTARTCHECK:FALSE X-MS-OLK-CONFTYPE:0 X-MS-OLK-SENDER;CN="Tesuto Nano":mailto:a.yasui@gmail.com BEGIN:VALARM TRIGGER:-PT15M ACTION:DISPLAY DESCRIPTION:Reminder END:VALARM END:VEVENT END:VCALENDAR
とりあえず。
テンプレートでモデルのクエリーを出す
テンプレートタグ内で、よく関連する情報を引っ張ってきたい時がある。その時は、Modelにメソッドを付けて {{ hoge.method }} としてやればいい
__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. これでだいたい見れた