Желаю...

31.12.2006

Разное

А вот хочу сделать один шаг навстречу одной доброй традиции у себя на блоге — пожеланиям на Новый Год. В прошлый раз, вроде, неплохо получилось :-) Итак, желаю: Веб-разработчикам Провести таки свою первую российскую конференцию. Программистам Чтобы рост ваших зарплат не остановился вслед ценам московской недвижимости. Руководителям Подчиненных, которым было ...

highlight.js 2.0

Это, что называется, "вштырило" :-). Новая версия highlight.js меня так впечатлила (в особенности процесс ее производства), что заслужила в моих глазах сразу "мажорного" скачка после последних изменений: Стараниями Антона Ковалёва появилась поддержка Ruby. Я обычно радуюсь, как ребенок, когда мне присылают языки, в которых я ничего не понимаю, потому что ...

Фотолаб

12.12.2006

Разное

Практически полтора года назад я писал, что уволился с работы в Telephone.Ru. На этот раз решил не придумывать какого-то "прикольного" названия, а просто написать название компании. Итак, отныне я работаю в компании "Фотолаб" руководителем отдела интернет-проектов. Мое с Фотолабом сотрудничество началось как раз с уходом из Telephone.Ru и заключалось в ...

Яндекс, добро пожаловать на SM.Org!

09.12.2006

Тщеславие

Сегодня случилось историческое событие! Впервые ко мне на сайт кто-то попал из поиска Яндекса. Раньше он меня вообще не индексировал почему-то, в то время как Google исправно генерирует много релевантного трафика... Теперь осталось, чтобы по моему имени сайт владельца был все таки на первом месте, а не на десятом :-)

Код с тегами и highlight.js

Как известно, настоящее тестирование начинается только после версии 1.0, когда софт пробует использовать горазд больше людей :-). Первые реальные применения highlight.js выявили один интересный FAQ. Скрипт подсвечивает блоки кода, находящиеся в <pre><code>...</code></pre>, но только если там внутри нет других тегов. Изначально так было сделано просто потому что так проще с ...

Присваивание зависимых объектов в Django

07.12.2006

Django

Недавно в Django'вской рассылке увидел хороший удобный способ полностью переназначить зависимые объекты. Раньше всегда делал так: album.tags.clear() for tag in tag_list: album.tags.add(tag) Оказывается, можно сильно проще: album.tags = tag_list В виде tag_list сойдет любой iterable. Вот я теперь думаю, это один я такой тормозной, и все давно так и делают?

Знакомьтесь — 64 бита

01.12.2006

Разное

Сегодня первый раз на практике моему приложению не хватило 32-битного целого! В фотокиоске во время загрузки фотографий со всяких флеш-карточек показывается прогресс-бар. Он рисуется из двух значений: количество загруженных байт и общего количество байт во всех файлах. И вот сегодня появился человек с забитой до отказа 4-гигабайтной флешкой. Соответственно цифра ...

highlight.js 1.0

Только что выпустил версию 1.0 расцветчика синтаксиса highlight.js!!! Самое большое изменение со времени release candidate — теперь скрипт можно прикручивать к WordPress в виде плагина с отдельной панелькой в Options для настройки набора языков и CSS'а. Такое решение предназначается для тех, кто не любит (или не имеет возможности) ковыряться с ...

Хороший фреймворк плохого не посоветует

Одна из неочевидных, но очень сильных сторон Django в том, что он заставляет проектировать веб-приложение правильно. В основном путем отказа включения в фреймворк вещей, которые слишком легко использовать неправильно. Один из ярких примеров — отказ включать "поддержку ajax". Я взял это в кавычки, потому что это оксюморон: ajax не нуждается ...

Duck typing в действии

Практический пример использования особенности, известной как "duck typing", для не программирующих на Питоне. Впрочем, программирующим тоже может быть интересно :-) "Если это ходит, как утка, и крякает, как утка, то значит это утка" — это принцип, по которому в Питоне и некоторых других динамических языках считается, что то, что объект ...

Раскладка позиционированием

18.11.2006

Учебник

Много времени утекло с первого варианта дизайна "Мегакорпорации", настало время... ребрендинга! На примере которого я хочу показать еще один способ CSS-раскладки — позиционирование. В предыдущих статьях я пару раз упоминал, что хоть float'ы и самый распространенный инструмент CSS-верстки, тем не менее для нее никогда не задумывались, и поэтому эта верстка ...

Путь курсора над меню

16.11.2006

Юзабилити

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

Delphi, Java: времена меняются

14.11.2006

Разное

Немножко в новостном стиле. Просто подумалось, что в интересное время мы живем. От Borland таки отпочковалась фирма, которая будет дальше делать инструменты для разработчиков. Она называется CodeGear. Sun открыла Java. Хотя многие апологеты и возражали :-) Интересно, что дальше? Adobe портирует Фотошоп на Линукс? Microsoft использует KHTML для IE8?

highlight.js 0.5 - Java

Highlight.js продвинулся еще на шаг. Чтобы не выдумывать текст заново процитирую его прямо из новости: Спасибо Всеволоду Соловьёву за создание и вдумчивую работу на подсветкой Java. Программка все ближе к релизу :-) Также продолжается работа над настройкой автоопределения и уменьшением тормозов. В частности, введено понятие недопустимых символов в конструкциях языков, ...

Plat-Forms

12.10.2006

Web

Конкурс Plat-Forms обещает стать мегакрутой и мегаправильной штукой. Исследовательская группа из Берлинского Свободного Университета берется провести полное сравнение всех аспектов разработки веб-систем по всем основным платформам: Java EE .NET PHP Perl Python Ruby-on-Rails Вкратце, это будет выглядеть так. Кидается клич командам разработчиков по 3 человека, и из откликнувшихся выбираются максимум ...

highlight.js теперь с PHP

Интересующимся сообщаю, что в highlight.js добавлена поддержка PHP стараниями Виктора Карамзина (Виктор, куда ссылку ставить?). Спасибо ему большое! Также в любом случае спасибо всем остальным, кто присылал свои варианты описания, которые в итоге в скрипт не попали, ваша готовность помочь все равно очень ценна! Осталось доделать C++ и Java...

Скорость фреймворка

Меня периодически спрашивают, насколько быстр Django. Или как он быстр в сравнении с PHP, Java или Rails. И я не менее периодически затрудняюсь на такой вопрос сразу ответить. Ответ прямо С одной стороны, если отвечать на этот вопрос прямо, то Django "очень быстрый". Или, что точнее, "очень мало тормозит", потому ...

Питону не хватает `protected`

Мартин Фаулер говорит о двух подходах к проектированию наследования: четкая спецификация того, что можно наследовать из класса с запрещением остального, либо свободное разрешение делать с базовым классом все, что позволяет язык (в соответствии с "разрешающей позицией"). Свободный подход ругают за то, что наследник может сломать поведение самого базового класса, если ...

Поиск по документации Django для Firefox

05.10.2006

Django

Один человек сделал плагин для поиска по документации Django для Firefox. Удобство хоть и небольшое, но все равно приятно :-).

Дубликаты в списках в Питоне

03.10.2006

Python

У меня периодически всплывает вопрос: как в Питоне удалить в списке дублирующиеся элементы (из [1, 2, 2, 3] получить [1, 2, 3]). Я знаю один способ-хак: lst = dict([(item, None) for item in lst]).keys() Здесь создается словарь из элементов списка в качестве ключей. Поскольку ключи в словаре уникальные, добавление дублирующих ...