Новое в Django 1.4
Достаточно развёрнуто про новый функционал Django 1.4: http://blog.futurecolors.ru/search/label/Django%20Days
Боремся с Clickjacking
«Clickjacking — относительно новый и не очень широко известный тип атак на веб-сайты. Его суть в том, что пользователь, совершая клик на специально сформированной странице злоумышленника, на самом деле кликает по ссылке на совершенно другом сайте. Это может быть использовано как для относительно безобидных накруток голосований (например, ретвитов или лайков), так и более разрушительных вещей, …
PHP Fatal error: Exception thrown without a stack frame in Unknown on line 0
Отличная ошибка, на которую обычно просто «забивают», т. к. не понятно, где и что искать. А ошибка вызвана тем, что в кастомном обработчике исключений происходит исключение, после чего php прерывает процесс с таким замечательным и информативным сообщением об ошибке. В моём случае это было своё расширение для класса DateTime
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
public function __construct( $Time = 'now', DateTimeZone $Timezone = null ) { // PHP 5.3.3 имеет этот баг: // @link https://bugs.php.net/bug.php?id=52063 // поэтому пишем странное: if ( ! empty( $Timezone ) ) { parent::__construct( $Time, $Timezone ); } else { parent::__construct( $Time ); } // ещё раз вызываем явно setTimezone, чтобы обойти багу с timestamp - @link http://www.php.net/manual/en/datetime.construct.php#97724 if ( empty( $Timezone ) ) { $this->setTimezone( new DateTimeZone( 'Europe/Moscow' ) ); } } |
Если не написать тот странный …
IoC в php
Читал-читал про инверсию управления (Inversion of Control), всякие Pico и Phemto.
Twitter bootstrap
Удобный css-фреймворк. Позиционирует себя как «Simple and flexible HTML, CSS, and Javascript for popular user interface components and interactions.» http://twitter.github.com/bootstrap/components.html
Расширение базового функционала jquery-ui-виджетов
Захотелось сделать более правильную работу с триггерением/навешиванием обработчиков на события, чем это реализовано в jquery-ui. При этом сам функционал надоело копировать из виджета в виджет. В общем, вот простой добавить методы к своим виджетам:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
(function( $ ) { "use strict"; /** * расширение базового функционала jquery-ui */ $.widget( "my.my_extension", { _triggerSmart: function( EventName, Data ) { var me = this; var $me = $( me.element ); $me.trigger( EventName + '.' + me.widgetName, Data ); return me; }, _bindSmart: function( EventName, Handler ) { var me = this; var $me = $( me.element ); // боремся с повторным навешиванием обработчика var events = $.data( $me.get( 0 ), 'events' ); var filteredEvents = []; if ( EventName in events ) { filteredEvents = $.grep( events[EventName], function( Event ) { return Event.type == EventName && Event.namespace == me.widgetName; } ); } if ( ! filteredEvents.length ) { $me.bind( EventName + '.' + me.widgetName, Handler ); } return me; } } ); }( jQuery )); |
Потом для каждого виджета нужно будет указать опциональный второй параметр
1 2 3 4 5 |
$.widget( "my.fast_search", $.my.my_extension, { options: { ... |
Внимание нужно обратить на второй параметр $.my.my_extension, который в …
Несколько firefox на одной машине
Если нужно поставить старый firefox, для этого нужно: проинсталлировать старую версию в другую папку выполнить в командной строке «C:\Program Files (x86)\Mozilla Firefox 3.6\firefox.exe» -Profilemanager (путь к старой версии) в менеджере создать новый профиль (firefox-3.6) и выбрать его для использования в ярлыке прописать «C:\Program Files (x86)\Mozilla Firefox 3.6\firefox.exe» -P “Firefox-3.6″ -no-remote http://www.htmlcenter.com/blog/multiple-firefox-installs/
Бесплатный хостинг с Django
https://www.alwaysdata.com/plans/shared/ Языки: PHP, Python, Ruby, Perl, Java, Lua, OCaml, Erlang; фреймворки: Джанго, Рельсы и symfony (PHP). Сам не пробовал, но слышал. Минусы — под код дают целых 10 Мб дискового пространства и гигабайт трафика в месяц.
localStorage — использовать или нет?
Почему использовать localStorage вредно: http://hacks.mozilla.org/2012/03/there-is-no-simple-solution-for-local-storage/. Ответ, почему можно его использовать:
Символическая ссылка в Windows
В Windows 7 в командной строке
1 |
mklink /J "D:\Games\steamapps" "C:\Program Files (x86)\Steam\steamapps" |
Кстати так можно играть в игры через steam, если мало места на диске C:\ ;).