Pull to refresh
134
0
Артём @piumosso

User

Send message

Реактивные веб-сайты. Электронные версии

Reading time 1 min
Views 738
Видимо, это становится хорошей традицией — раз в год выкладывать книги по клиентской оптимизацией в электронном виде. Будем надеяться, что традиция проживет в наше непростое время хотя бы еще несколько лет :)

К делу: выложена полноценная электронная версия книги «Реактивные веб-сайты» (клиентская оптимизация в алгоритмах и примерах). На данный момент она доступна в двух вариантах.
  1. PDF-версия, полностью аналогичная ушедшему в типографию макету книги. Идеально подходит для чтения на ПК или самиздата.
  2. FB2-версия (формат Fiction Book). Соответствует рукописи, по тексту незначительно отличается от PDF.
  3. FB2-версия (картинки шириной 200, меньше в 4 раза). Спасибо leonidas .
  4. FB2-версия (без картинок, меньше еще в 10 раз). Спасибо leonidas .

Все версии доступны для загрузки здесь. Прямых ссылок не будет, чтобы в десяти местах их не исправлять.
Читать дальше →
Total votes 99: ↑92 and ↓7 +85
Comments 43

Эмуляция Денди. Nestopia с поддержкой нового расширения ZNS (Zipped NES)

Reading time 2 min
Views 8.1K
Вам ничего не напоминает этот скриншот? Сомневаюсь. Китайские друзья постарались на славу — уверен, что большинство из вас сейчас вспоминает свой первый картридж для Денди. На картридже было несколько простых игр, которые приедались в первый же день. Но вы ведь помните это меню с красивыми видами на каждой странице, приятной музыкой и даже небольшим романтическим сюжетом? Да, черт возьми, вы помните! В Денди играл наверное каждый ребенок в этой стране. Мы часами просиживали за экранами телевизоров, меняли картриджи один за другим и нам было совсем не важно, что это какой-то пиратский клон японской NES, и тем более не интересно, почему в играх на наших картриджах затерты все копирайты. Кто-нибудь тогда вообще понимал что это такое? =)
Сегодня совершенно нет необходимости покупать эту приставку, чтобы вспомнить все и заново пройти Super Mario или Contra. Существует армия эмуляторов на любой вкус и цвет, дампы практически всех игр давно доступны в сети. Каждый уважающий себя эмулятор умеет открывать игры прямо из архивов. Это очень удобно, ведь чаще всего дампы игр распространяются именно в сжатом виде. Только вот есть одна неприятность — связывать напрямую с программой расширение .zip достаточно глупо, а хотелось бы запускать игры из архивов одним кликом. Поэтому я предлагаю для сжатых NES файлов использовать расширение ZNS (Zipped NES).
Читать дальше →
Total votes 63: ↑53 and ↓10 +43
Comments 72

Выключайте свои сотовые телефоны

Reading time 1 min
Views 4.3K
Меня всегда слегка расстраивали люди, что придя, например, в театр упорно не хотят выключить свой сотовый телефон. в итоге во время представления, или просмотра фильма, или совещания вдруг начинают раздаваться знакомые звуки вызовов трубок. Это как минимум отвлекает слушающих и как минимум раздражает выступающим.
В кинотеатрах или театрах мы часто можем услышать обращение администрации к зрителям, о том как же сильно они нас умоляют чтобы мы все таки выключили свои «балалйки», но увы, чаще всего эти обращения просто игнорируются.

И вот я натыкаюсь на замечательный ролик на youtube о том как можно в некоторых случаях бороться с таким феноменом. Музыканты готовятся к своему выступлению и настраивают инструменты. А тем временем в чьих то штанах раздается такой знакомый NOKIA tune. и Как вы думаете стоит реагировать? А вот смотрите как можно доходчиво и внятно попросить выключить звуки на время выступления так, чтобы никто не остался равнодушным!



Ну а если кому интересно, что же всё таки это за мелодия у компании Nokia, то вот вам полная версия
на youtube и формате mp3. Gran Vals — Francisco Tárrega
Читать дальше →
Total votes 198: ↑182 and ↓16 +166
Comments 99

Список телефонов и девайсов на OS Android, которые уже выпущены либо анонсированы (Update с линками)

Reading time 1 min
Views 10K
На данный момент вышло уже 5 телефонов на Андроиде — G1 (HTC Dream), HTC Magic, HTC Hero, Samsung Galaxy i7500, HighScreen PP5420
И уважаемый Micael Martin собрал информацию про все анонсированные телефоны девайсы на операционной системе Android.Источники информации: MobileCrunch, AndroidandMe, Boy Genius Report

  1. Acer A1
  2. Dell Ophone mini3i
  3. Geek Phone One
  4. Haier H7
  5. HighScreen PP5420
  6. HTC Click– Fiesta
  7. HTC Dream – G1
  8. HTC Hero – G2 Touch
  9. HTC Lancaster
  10. HTC Magic – Sapphire – myTouch 3G – Ion
  11. Huawei U8230
  12. Innocomm Skate
  13. Kogan Agora
  14. Lenovo O1 Ophone
  15. LG GW620 Eve
  16. Motorola Heron
  17. Motorola Morrison – Cliq
  18. Motorola Sholes – Calgary
  19. Philips V808
  20. Samsung Bigfoot
  21. Samsung Galaxy i7500
  22. Samsung m850 Q
  23. Sciphone N12
  24. Sony Ericsson XPERIA X3 Rachael
  25. Zii Egg
  26. ZTE Android


Сам гугл обещал до 20 телефонов до конца года.
Так что, господа програмисты, задумайтесь над написанием программ под эту ось- Android Market еще не так перегружен хорошими приложениями, как Apple Store
От себя откорректировал про выход HighScreen, хотя полноценным телефоном под Андроидом его не назовешь.
UPD: Добавил ссылки на обзоры-спецификации.
Total votes 76: ↑65 and ↓11 +54
Comments 63

Замыкания в Javascript [Часть 1]

Reading time 15 min
Views 59K
Перевод статьи Ричарда Корнфорда Javascript Closures.

  • Введение
  • Разрешение имен свойств объектов
    • Присваивание значений
    • Чтение значений

  • Разрешение имен идентификаторов, контексты исполнения и цепь областей видимости
    • Контекст исполнения
    • Цепь областей видимости и свойство [[scope]]
    • Разрешение имен идентификаторов

  • ...

Введение


Замыкание
Замыкание — это выражение (обычно функция), которое может иметь свободные переменные, вместе со средой, которая привязывает эти переменные (т.е. “замыкает” это выражение).

Замыкания относятся к наиболее мощным особенностям ECMAScript (javascript), но они не могут быть применены должным образом без понимания. Несмотря на то, что их легко создать, даже случайно, их создание может иметь пагубные последствия, в частности, в некоторых относительно распространенных окружениях браузеров. Чтобы избежать случайных столкновений с недостатками и использовать преимущества замыканий, необходимо понимать их механизм. Это сильно зависит от роли цепи областей видимости в разрешении имен идентификаторов (identifier resolution) и от разрешения имен свойств в объектах.

Самое простое объяснение замыкания в том, что ECMAScript допускает вложенные функции, определения функций и функции-выражения (function expressions) внутри тел других функций. И эти вложенные функции имеют доступ ко всем локальным переменным, параметрам и функциям, находящихся внутри их внешней функции (внешних функций). Замыкание образуется, когда одна из этих вложенных функций становится доступной вне той функции, в которую она была включена, таким образом, она может быть выполнена после завершения внешней функции. В этот момент она все еще имеет доступ к локальным переменным, параметрам и внутренним декларациям функций (function declarations) своей внешней функции. Эти локальные переменные, параметры и декларации функций (изначально) имеют те же значения, которые были во время завершения внешней функции и могут взаимодействовать с внутренней функцией.

К сожалению, правильное понимание замыканий требует понимания механизмов, которые стоят за ними, и немало технических подробностей. Хотя некоторые из алгоритмов, определенных в ECMA 262, затронуты в начале последующего объяснения, большинство не могут быть опущены или просто приведены к упрощенному виду. Если вы знакомы с разрешением имен свойств объектов, то можете пропустить этот раздел, но только люди, уже знакомые с замыканиями, могут позволить себе пропустить последующие разделы и прямо сейчас перестать читать и вернуться к их использованию.
Читать дальше →
Total votes 38: ↑26 and ↓12 +14
Comments 13

Ещё 10 батареек для джанго

Reading time 5 min
Views 27K

Продолжаем делиться своим опытом использования полезных батареек для Django.
Первая часть
Ещё рекомендуем «Сумбурные заметки про python и django» и «Django проект PR Hero: что внутри и полученный опыт».

Для Django написано огромное количество пакетов. Из них мы выбрали 10, которые использовали сами в своих последних проектах и которыми остались довольны. Все они есть на PyPI. Они продокументированы и покрыты тестами, где-то больше, где-то меньше. Исключение составляет django-sphinx, о котором отдельно.

Читать дальше →
Total votes 60: ↑56 and ↓4 +52
Comments 42

Представлен стандарт CSS Grid Alignment Level 3

Reading time 4 min
Views 4.1K
image

Два дня назад я представил на Хабре задачу по компоновке силами CSS. Задача привлекла небольшое внимание разработчиков и было представлено несколько разных решений, в том числе такие, которые практически точно решают задачу.

Пообещав представить оригинальное решение я немного слукавил, потому что это решение представляет собой использование нового стандарта W3C CSS Grid Alignment Level 3, который был представлен в начале ноября на мероприятии TPAC 2010.

Публикуя задачу на Хабре я хотел посмотреть на варианты решений от разработчиков и попытаться понять, чем новый стандарт может облегчить нам всем жизнь.
Читать дальше →
Total votes 150: ↑127 and ↓23 +104
Comments 111

Грабли при верстке HTML писем

Reading time 3 min
Views 103K
Довольно часто наши клиенты устраивают регулярные рассылки с новостями. Почти всегда их не устраивают текстовые рассылки или простое оформление HTML рассылок. Наши дизайнеры вовсю креативят, а мы потом набиваем шишки при верстке их макетов с корректным отображением во множестве почтовых клиентов.

Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
Читать дальше →
Total votes 282: ↑273 and ↓9 +264
Comments 77

Разметка независимыми элементами

Reading time 3 min
Views 3.4K
Развивая идею вёрстки независимыми блоками мы постепенно придём к вёрстке независимыми модулями, а пока остановимся подробней на сабже…

Но сперва небольшое терминологическое отступление.

Вёрстка страницы — процесс расположения элементов на странице в соответствии с дизайном.

Вёрстка бывает:
  • Табличная. Страница представляет из себя одну большую таблицу с мелкими ячейками. Каждый элемент занимает несколько смежных ячеек образующих прямоугольную, не пересекающуюся с остальными, область.
  • Блочная. Страница делится на крупные блоки, те на более мелкие, и так далее до нужной степени детализации.
  • Слоёная. Элементы позиционируются абсолютно, независимо от расположения остальных элементов.
Разметка текста — обогащение текста специальными машиночитаемыми условными обозначениями.
Читать дальше →
Total votes 42: ↑19 and ↓23 -4
Comments 34

2000 часов в одиночестве, или как был сделан RSS reader / Я робокоп

Reading time 14 min
Views 6.6K
I. Am. Robocop.Всем привет,

Собираюсь поделиться с вами технической стороной того, как я за 16 недель сделал новый вебовый rss ридер, и чуть не сошел с ума.
Отходя от долгой предыстории, будем считать, что все началось в феврале этого года, когда мы с Дэвидом (dmiloshev, UI-дизайнер) решили сделать прототип нашего детища вдвоем.
«В одиночестве» — потому, что не было никаких скрамов, совещаний, «коллективного разума», а всю техническую часть, довелось делать самому.

Если бы меня попросили описать всю статью в одном предложении, то получилось бы:
No-SQL, mongodb, node.js, фак мой мозг, Evented I/O, очереди, выводы, git, nginx, memcached, Google Reader, Atom, TTL, PHP, ZF, jQuery, выводы.
Читать дальше →
Total votes 258: ↑231 and ↓27 +204
Comments 173

Multiple database support

Reading time 4 min
Views 8.7K
Изначально Django предполагал работу только с одной базой данных (системное ограничение включающее такие вещи как группа настроек DATABASE_*). В течение всего этого времени явно ощущалась необходимость поддержки возможности работы с несколькими БД. В рамках работы над версией 1.2 в течение Google Summer of Code поддержка нескольких БД была включена в trunk. С этими новшествами связаны как целый ряд внутренних изменений, так и несколько удачных расширений для существующих интерфейсов работы с БД.
Читать дальше →
Total votes 55: ↑47 and ↓8 +39
Comments 6

Автоматическая отсылка анонсов в твиттер

Reading time 3 min
Views 766
Недавно, при работе над проектом на Джанго, понадобилось автоматически отправлять в твиттер заголовок и укороченную ссылку для публикуемых статей от имени пользователя.

Как оказалось, делается это совсем несложно.

Читать дальше →
Total votes 41: ↑30 and ↓11 +19
Comments 32

Вышел релиз Django 1.2

Reading time 1 min
Views 720
Свершилось, товарищи! Несмотря на почти двухмесячную задержку и постоянные переносы даты релиза, сегодня, 17 мая 2010 года, финальная версия 1.2 великолепного фреймворка увидела свет.

Кратко напомню, какие же произошли самые заметные изменения и дам ссылку на более подробную информацию.

Читать дальше →
Total votes 90: ↑72 and ↓18 +54
Comments 68

Code Like a Pythonista: Idiomatic Python (part2)

Reading time 11 min
Views 18K
Kaa, the Python


После небольшого перерыва представляю заключительную часть перевода статьи Дэвида Гуджера «Пиши код, как настоящий Питонист: идиоматика Python»


Ссылки на первую и вторую части.


Еще раз подчеркну, автор в этой статье не открывает Америку, большинство Питонистов не найдут в ней какой-то «особой магии». Но довольно подробно перечисляются методологии использования и выбора различных конструкций в Python с точки зрения удобочитаемости и близости к идеологии PEP8.
В некоторых местах в авторской статье отсутствуют примеры исходных кодов. Разумеется, оставил как есть, придумывать свои не стал, в принципе должно быть понятно, что имел в виду автор.

Читать дальше →
Total votes 55: ↑48 and ↓7 +41
Comments 13

Всё, что Вы хотели знать о слайсах

Reading time 3 min
Views 87K
Маленькое вступление. Уверен, что каждый, кто использовал питон некоторое время, полюбил выражения в прямоугольных скобочках. В этой статье я хочу от «а» до «я» рассказать о срезах. Для начала немного о терминологии: в английском языке их называют «slice». Я буду называть их то «слайсами», то «срезами», как в моем понимании этого слова. Будем все учиться на примерах. Для меня, такой метод был бы самым удобным, быстрым и простым.
Разве есть, что-то, чего я не знаю про эти скобочки?
Total votes 93: ↑85 and ↓8 +77
Comments 34

Python Tips, Tricks, and Hacks (часть 3)

Reading time 6 min
Views 49K
В этой части статьи рассматриваются уловки для выбора одного из двух значений на основе логического условия, передача и получение произвольного числа аргументов функций, а также распространенный источник ошибок — тот факт, что дефолтные значения аргументов функции вычисляются только один раз.
Читать дальше →
Total votes 67: ↑63 and ↓4 +59
Comments 48

Когда картинка красноречивее 1024 слов – прототипирование с MockingBird

Reading time 2 min
Views 7.2K
image Для написания ТЗ я задался вопросом поиска простого и удобного средства создания прототипов веб-страниц. Хотелось чего-то бесплатного и в онлайне, некой альтернативы Axure. Такой сервис удалось найти, его я и предлагаю вашему вниманию. Итак, встречайте www.gomockingbird.com – сервис, позволяющий создавать очень красивые прототипы легко и удобно.
Помимо представления самого сервиса, этим постом хотелось также привлечь внимание общественности к полезной практике прототипирования.
Читать дальше →
Total votes 137: ↑129 and ↓8 +121
Comments 54

CSSDoc — формат комментариев для CSS

Reading time 3 min
Views 12K
Уже неоднократно видел утверждение, что CSS необходимо комментировать, чтобы потом было проще сориентироваться себе или тому, кто также поддерживает или будет в дальнейшем поддерживать ваш код. Но почему-то никто не предлагает использовать какой-то универсальный формат комментариев, который был бы понятен всем, хотя в программировании такое используется повсеместно: JavaDoc, JSDoc, PHPDoc и т.п.

Несложно догадаться, что рано или поздно кто-нибудь бы захотел использовать подобный формат комментариев в CSS и такой формат появился: CSSDoc. Спецификация пока что имеет статус черновика, но ничто не мешает начать пользоваться основными правилами уже сейчас.

Если интересно, то нужно нажать на эту ссылку.
Total votes 59: ↑51 and ↓8 +43
Comments 75

Деревья в админке django

Reading time 2 min
Views 12K
Редактировать модели, представляющие собой деревья в админке django очень неудобно и ненаглядно. Сразу возникло желание выводить вместо списка объектов дерево, для этого можно использовать замечательную библиотеку jstree.
Чтобы эффективно работать с деревьями в django существует mptt, которая добавляет в модель поля для эффективной выборки и методы для этого, а также шаблонные теги для вывода деревьев и т.п.
Если вы не используете mptt, у вас есть просто ссылка на parent — jstree можно подключить к с помощью одного javascript, про это — отдельная статья.
Далее про модели, использующие mptt.
Читать дальше →
Total votes 36: ↑29 and ↓7 +22
Comments 16

Python Tips, Tricks, and Hacks (часть 2)

Reading time 6 min
Views 133K
Содержание

Списки. Свёртка списка (reduce). Прохождение по списку (range, xrange и enumerate). Проверка всех элементов списка на выполнение условия (all и any). Группировка элементов нескольких списков (zip). Еще несколько операторов для работы со списками. Продвинутые логические операции с типом set.
Словари. Создание словаря с помощью именованных аргументов. Преобразование словаря в список и обратно. «Dictionary Comprehensions».
Читать дальше →
Total votes 69: ↑66 and ↓3 +63
Comments 30

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity