Еще один сайт о любимой собачке

вторник, 3 января 2012 г.

Актуальная информация о погоде с gismeteo.ru

На сайте gismeteo.ru можно найти плагин погоды для google chrome. Исходник вполне читаемый, оттуда можно вытащить ссылку на сервис погоды. Похоже, за раз возвращается погода до 5 городов, возвращается актуальная погода и прогноз.

Прикрутил на сайте, но скорее всего способ нелегальный.

четверг, 2 декабря 2010 г.

drush_make и патчи

Просматривал проект buildkit, увидел интересную фишку drush_make, о которой не знал раньше:


projects[drupal][patch][881530] = http://drupal.org/files/issues/881530_vocabulary_field_machine_names.6.patch

Позволяет в свежую установку drupal-а применить на лету какой-нибудь патч. Вообще это все описано в README-файле, надо лишь почаще заглядывать в документацию.

воскресенье, 29 августа 2010 г.

select all для checkbox-а в заголовке таблицы


Из функции theme_node_admin_nodes:

$select_header $has_posts ? theme('table_select_header_cell') : '';
...

/**
 * Returns a header cell for tables that have a select all functionality.
 */
function theme_table_select_header_cell() {
  drupal_add_js('misc/tableselect.js');

  return array('class' =>'select-all');
}

Раньше сам городил javascript для этой задачи. Оказывается, в друпале для этого уже все есть.

среда, 11 августа 2010 г.

Мониторинг друзей vkontakte

Если кто-то удаляется из друзей вконтакте, не всегда удается вспомнить, кто же это был. Конечно может это и к лучшему, но хотя бы из любопытсва хочется узнать, кто это. На коленке тут накотал скрипт, который сохраняет в localStorage браузера список друзей и позволяет вычислить, кто тот самый "удаленец".

Вот сам скрипт, кому интересно. Кому еще интереснее, здесь первая версия, работающая через database storage (у меня работало только в Safary).



Для простой установки перетащите эту сслыку эту ссылку в закладки и можете пряма оттуда запускать. Вне вконтакта работать не будет, надо запускать со страниц vkontake. При первом запуске сохранится список текущий друзей, при дальнейших запусках будут отмечаться изменения в списке. Соответственно, если у вас уже пропали друзья, но вы не запускали этот скрипт ранее, вам он не поможет.

PS.  Я знаю, что во вконтакте есть приложения, которые могут вычислить удалившихся друзей. Советую вам пользоваться такими приложениями, через них сложнее угнать ваш аккаунт. И вообще советую с подозрением относиться к ссылкам, начинающимся на "javascript:"...

UPD (13.03.2010). Букмарклет теперь только подгружает скрипт с github-а.
vkontakte не стоит на месте, некоторые старые скрипты уже недоступны. В связи с этим немного подправил скрипт. Работает он теперь только на странице "Мои друзья".



пятница, 4 июня 2010 г.

Разумные причины создания классов

Моделирование объектов реального мира Создайте класс для каждого объекта реального мира, моделируемого вашей программой.

Моделирование абстрактных объектов Прекрасный пример - классический обьект Shape (фигура). Нахождение адекватных абстрактных объектов – одна из главных проблем ООП.


Снижение сложности – самая важная причина создания класса (сокрытие деталей, минимизация объема кода, облегчение сопровождения программы). 

Изоляция сложности При возникновении ошибки ее будет проще найти, если она будет локализована в классе, а не распределена по всему коду. Если вы найдете более эффективный алгоритм, им бдет легче заменить старый алгоритм, изолированный в классе... 


Облегчение повторного использования кода


Планирование создания семейства программ Если вы ожидаете, что программу придется изменять, разумно изолировать области предполагаемых изменений в отдельных классах. После этого вы можете изменять классы, не влияя на остальную часть программы, или вообще заменить их на абсолютно новые классы.

О наследовании

Избегайте многоуровневых иерархий наследования. Создание многоуровневых иерархий наследования значительно повышает число ошибок.  Многоуровневые иерархии повышают сложность, что диаметрально противоположно цели наследования. Убедитесь, что используете наследование, чтобы избежать дублирования кода и минимизировать сложность.

Принцип достановки Лисков (LSP)

«Клиенты должны иметь возможность использования подклассов через интерфейс базового класса, не замечая никаких раздичий» (Hunt and Thomas, 2000)

Вроде очевидные вещи, но, думаю, многих людей название смутило бы...