Что делать, если разработка ТЗ не самого сложного проекта занимает пару месяцев? Какие шаги при разработке ТЗ могут уберечь от рисков и ошибок? В данной статье мы рассмотрим проблему не содержания документа, а методологию его разработки.
Игорь Штельмах @WebPhd
User
Tinyicon — счетчик в favicon на js
1 min
4.2KTinyicon это небольшая библиотека для манипуляции с favicon сайта для передачи информации о новых событиях. Для браузеров не поддерживающих canvas счетчик отображается в title страницы.


+107
Виртуальный хостинг Django, модель N
5 min
5.8KСуществует множество способов разворачивания Django-приложений в *nix-среде. Не буду претендовать на оригинальность, просто поделюсь самым-самым-самым-самым своим.
Предпосылки:
Вводные условия
Предпосылки:
- Один клиент (заказчик) — один юзер в системе на сервере.
- Все проекты клиента — в одной файловой иерархии.
- Virtualenv — это хорошо и must use.
- Ftp — зло, используем современные средства (sftp).
- Количество файлов для управления проектами должно быть сведено к минимуму.
- nginx
- uwsgi
- cron
- virtualenv
- openssh
+26
Аддон для Firefox: наглядно увидеть, какие сайты «тихо» устанавливают cookie
1 min
3.9KИнтересный плагин Collusion за авторством Mozilla (выпущенный, видимо, для ненавязчивой популяризации инструмента Do Not Track) позволяет в реальном времени посмотреть историю своего серфинга в интернете и увидеть, какие сайты успевают мимоходом установить свои cookie, даже без, собственно, их посещения и связь между ними.
История посещений выглядит на интерактивный граф, строящийся в реальном времени (причём добавлены некие motion-эффекты, поддерживается перетаскивание) — для наглядности обозначения сайта используется его favicon. Аддон оставляет свой значок в правом нижнем углу браузера, клик по которому и вызывает страницу с ним. Вот так у меня выглядит граф после посещения Хабра:

Также есть любопытная особенность — граф можно экспортировать в JSON-формате.
Скачать аддон и посмотреть как он выглядит (даже без установки — сделан как SVG-графика) можно тут.
История посещений выглядит на интерактивный граф, строящийся в реальном времени (причём добавлены некие motion-эффекты, поддерживается перетаскивание) — для наглядности обозначения сайта используется его favicon. Аддон оставляет свой значок в правом нижнем углу браузера, клик по которому и вызывает страницу с ним. Вот так у меня выглядит граф после посещения Хабра:

Также есть любопытная особенность — граф можно экспортировать в JSON-формате.
{"jid1-f9uj2thwoam5gq-at-jetpack":{"referrers":{},"visited":true},"habrahabr.ru":{"referrers":{},"visited":true},"adriver.ru":{"referrers":{"habrahabr.ru":[22449,"text/html"]},"visited":false},"imageshack.us":{"referrers":{"habrahabr.ru":[39478,"image/jpeg"]},"visited":false},"tns-counter.ru":{"referrers":{"adriver.ru":[39583,"image/gif"]},"visited":false},"yandex.ru":{"referrers":{"habrahabr.ru":[49528,"image/png"]},"visited":false}}
Скачать аддон и посмотреть как он выглядит (даже без установки — сделан как SVG-графика) можно тут.
+44
Паттерны Визуализации Информации
7 min
20KПару лет назад я сильно заинтересовался UX и всем, что с ним связано. Постепенно пришло понимание, насколько важна визуализация информации, особенно сейчас. Прочитав Тафти, Кливеленда и Бертена, просто невозможно не думать в этом направлении. Постоянно приходят в голову идеи, как сделать вещи (в частности, в нашем продукте) более визуальными, более понятными.
Ниже я попытался показать, почему визуализация информации важна, рассказать о ее базовых принципах и показать несколько классных примеров. Заранее прошу прощения за парочку скучных определений и отсутствие шуток в статье. Это сделано намеренно. Статья дэдли сериоус.
И, как обычно, прощу прощения за объем статьи. Но, надеюсь, вам будет интересно дочитать до конца.

Ниже я попытался показать, почему визуализация информации важна, рассказать о ее базовых принципах и показать несколько классных примеров. Заранее прошу прощения за парочку скучных определений и отсутствие шуток в статье. Это сделано намеренно. Статья дэдли сериоус.
И, как обычно, прощу прощения за объем статьи. Но, надеюсь, вам будет интересно дочитать до конца.

+88
Python-интерфейс между компьютером и физическим миром
3 min
6K
Американский инженер Ричард Уардлоу (Richard Wardlow) разработал интересный микроконтроллер pyMCU, который он позиционирует как «простой интерфейс на Python между компьютером и физическим миром».
В отличие от существующих Python-микроконтроллеров, эта плата предназначена не столько для автономной работы, сколько как постоянно подключенные к компьютеру «органы чувств» для Python-программы. Контроллер оснащён цифровыми и аналоговыми коннекторами, так что к нему можно подключить разнообразные устройства и сенсоры. Проще всего показать возможности контроллера на примерах.
+40
Превью Parallels Plesk 11: шаг в «облако»
4 min
4.9KВсем привет. На прошедшем не так давно Parallels Summit 2012 была представлена 11-я версия панели управления хостингом Parallels Plesk Panel. Мне удалось своими глазами посмотреть на preview продукта, о чем я хочу рассказать в этом посте. Вкратце – ряд функций панели были созданы или улучшены под влиянием пользователей. Даже модные нынче «фишки», такие как новый интерфейс и подчеркнутая дружественность к «облачному» использованию продукта, делались не просто «чтобы было», а с оглядкой на потребности профессиональных пользователей и на то, на чем именно хостеры будут зарабатывать в ближайшее время.

Сегодня ночью Parallels выложила превью 11-й версии. Для специалистов внутри поста есть ссылка на Windows- и Linux-дистрибутивы новой панели. Всех, кому не всё равно, приглашаю под кат.

Сегодня ночью Parallels выложила превью 11-й версии. Для специалистов внутри поста есть ссылка на Windows- и Linux-дистрибутивы новой панели. Всех, кому не всё равно, приглашаю под кат.
+15
iPad как среда разработки
2 min
20KКак только у меня появился iPad, у меня сразу же появилась мысль кодить на нем, но первое время было не до этого. Затем, когда появилось время, я решил вернуться к этому вопросу. Идея, конечно, немного бредовая, но иногда все же появляется желание написать пару-тройку строчек во время поездки в метро или в самолете. Итак, под катом инструкция к действия, если вы хотите использовать свой айпад в тех же целях.
+16
Методы мониторинга веб-сайтов и сервисов
4 min
34K
Регулярная проверка
Один из наиболее распространенных методов — регулярная проверка работоспособности сайта. Можно делать самому — открыть с утра сайт любимой компании или интернет-магазин (имея его в стартовой странице браузера), радоваться, что работает. И закрывать. Не очень удобно и совсем не эффективно. Проблемы с доступностью обычно начинаются непредсказуемо. Обнаруживать их лучше сразу же, как только они возникли. Также часто помогают сами пользователи — начинают звонить и писать, что сайт не работает (если телефон и почта указаны где-то за пределами сайта). Самый же частый сигнал нерабочего сайта — прекращают приходить клиенты. Тут уже бьют тревогу и начинают выяснять, что же там случилось. рвут волосы, отрывают колокольчики, посыпают пеплом и солью. Хотя всего этого можно было избежать.
+9
Начала отладки и профилирования веб-приложений
8 min
19KTutorial
Вступление
Много существует статей на Хабре, описывающих интересные и сложные аспекты веб-разработки, но много существует читателей, которые, находясь в начале своей карьеры веб-разработчика, хотели бы видеть материал, который позволил бы сделать первый шаг от «PHP за 24 часа» до разработки на серьезном уровне, и я хотел бы поделиться своим опытом в этом деле.
Особенности веб-приложения делают его разделенным на две части: клиентскую и серверную. На стороне клиента работает код на JavaScript (может быть, где-то можно найти и VBScript, но мы, пожалуй, не будем рассматривать этот случай), на серверной же — много что, в принципе, но мы рассмотрим PHP, наиболее популярный язык для серверной части веб-приложений. Так же интересно было бы поговорить об отладке и профилировании Flash-приложений на клиентской стороне, но затронутая тема и так обширна, так что пока оставим это.
Так же можно отнести к задачам отладки клиентского кода анализ и валидацию HTML кода. Это, вроде бы, задача не совсем из области программирования, но также немаловажная.
Некоторые части рассмотренных задач уже рассматривались в других статьях, и я предоставил на них ссылки.
+22
Техническое задание на сайт
11 min
699KUPD: Продолжение статьи с примером техзадания
Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.
То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.
Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.
А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.
Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:

Не так давно на хабре были две статьи (Согласно техническому заданию и А зачем мне ТЗ? Я и так знаю!) посвященные техническим заданиям. У меня обе статьи вызвали, мягко говоря, недоумение, в особенности статья «Согласно техническому заданию». На мой взгляд, это вообще вредная статья, которая приводит к неверному понимаю сути ТЗ. В связи с этим хочу выразить свой взгляд на этот вопрос. Не буду говорить обо всех тех. заданиях, слишком широка тема, но думаю смогу рассказать о ТЗ на сайт.
То описание технического задания, о котором речь пойдет ниже, не является пересказом ГОСТа, но скорее является его творческой переработкой, хорошо сдобренной горьким опытом. Описанный ниже подход к ТЗ не охватывает все аспекты сайтостроения, но задает общее направление.
Большинство сайтов можно отнести к маленьким и очень маленьким проектам, масштаба единиц человеко-месяцев. В силу малости размеров такие проекты спокойно поддаются хорошему продумыванию и легко реализуются с помощью водопадной модели, достаточно просто не лениться на каждом этапе разработки (от написания ТЗ до сдачи проекта). Применять к этим проектам гибкие методологии разработки нет смысла, а как раз есть смысл применять хорошее ТЗ. К тем сайтам, которые не попадают под водопадную модель не стоит применять описанный ниже подход.
1. Обоснование необходимости ТЗ
А зачем вообще нужно ТЗ на сайт? Заказчик говорит: «Нужен следующий сайт: каталог товаров, корзина, форма заказа, доставка, мы на карте, о нас, обратная связь». Что не ясно? Ничего необычного, всё обыденно и рутинно.
Разработчик отчетливо представляет, что нужно сделать, а сделать, в его понимании нужно вот так:

+206
MVC Application: Mail
1 min
3.2KВ продолжение к прошлому топику: Файловый менеджер.
1) Интерфейс создавался для работы на планшетном компьютере.
2) Не gmail, потому что нужно хранить сообщения на своих серверах, необходимо работать с любыми доменами, в том числе своими.
3) Одно из преимуществ клиента, созданного на PHP, – его доступность с любого места, где есть интернет.
4) Не roundcube, так как данный почтовый клиент использует библиотеку PHPMailer, поэтому может работать с POP3, IMAP ящиками и отправлять почту по SMTP протоколу.
5) Почтовый клиент, так же как и Файловый менеджер изъят из другого проекта.

1) Интерфейс создавался для работы на планшетном компьютере.
2) Не gmail, потому что нужно хранить сообщения на своих серверах, необходимо работать с любыми доменами, в том числе своими.
3) Одно из преимуществ клиента, созданного на PHP, – его доступность с любого места, где есть интернет.
4) Не roundcube, так как данный почтовый клиент использует библиотеку PHPMailer, поэтому может работать с POP3, IMAP ящиками и отправлять почту по SMTP протоколу.
5) Почтовый клиент, так же как и Файловый менеджер изъят из другого проекта.

+27
Сенсоры от Yoctopuce — погода дома
5 min
8.9KНекоторое время назад я занимался поисками датчика давления для одного сайта. Требования были простыми — подключение по USB и минимум паяльника, т.к. опыт использования данного инструмента у меня только в криптоанализе. Оказывается, что в отличие от температуры и влажности, китайцы ещё не освоили этот рынок, и наиболее простой и дешёвый вариант: купить любой барометр, направить на него веб-камеру и анализировать показания.
Несмотря на бредовость данной затеи, она серьёзно рассматривалась, но в конце-концов была отметена по банальной причине — ночью нужна подсветка. Т.е. работать система ночью не будет, а если будет, то потребует дополнительных усилий по настройке.
Из других вариантов, наиболее подходящим была USB Meteo Board от Sparkfun на основе Arduino, или самодельная система на основе того же Arduino или Netduino.
Но совершенно случайно я наткнулся на Yoctopuce, и понял, что это оно. Их сенсоры и датчики настолько меня поразили в мелочах, что я не могу молчать и хочу поделиться с хабра-сообществом про эти замечательные датчики.

Несмотря на бредовость данной затеи, она серьёзно рассматривалась, но в конце-концов была отметена по банальной причине — ночью нужна подсветка. Т.е. работать система ночью не будет, а если будет, то потребует дополнительных усилий по настройке.
Из других вариантов, наиболее подходящим была USB Meteo Board от Sparkfun на основе Arduino, или самодельная система на основе того же Arduino или Netduino.
Но совершенно случайно я наткнулся на Yoctopuce, и понял, что это оно. Их сенсоры и датчики настолько меня поразили в мелочах, что я не могу молчать и хочу поделиться с хабра-сообществом про эти замечательные датчики.

+95
JoDo.im — симбиоз jabber-сервера и системы управления фрилансерами
5 min
1.2K
Через какое-то время у меня появились постоянные сотрудники и фрилансеры. Первое время обсуждение проектов и и работа над ними велась голосом, телефоном и емейлом.
+5
Отличия == и === в JavaScript
2 min
214KRecovery Mode
Сразу предупрежу, да, статья немного некорректная, добро пожаловать в комментарии, там неплохие уточнения ).
В JavaScript есть два похожих оператора: == и ===. Если не знать их отличия, это может обернуться кучей ошибок. Так что решил раскрыть эту тему. Чем именно отличаются == и ===, как они работают, почему так происходит, и как избежать ошибок.
Оператор == сравнивает на равенство, а вот === — на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.
Доброго времени суток.
В JavaScript есть два похожих оператора: == и ===. Если не знать их отличия, это может обернуться кучей ошибок. Так что решил раскрыть эту тему. Чем именно отличаются == и ===, как они работают, почему так происходит, и как избежать ошибок.
Оператор == сравнивает на равенство, а вот === — на идентичность. Плюс оператора === состоит в том, что он не приводит два значения к одному типу. Именно из-за этого он обычно и используется.
+15
Мысли о скриншотах через JavaScript
1 min
39KПри разработке одного сервиса я столкнулся с необходимостью дать возможность пользователям сообщать об ошибках. Проблема заключалась в том, чтобы пользователь мог сделать скриншот без использования стороннего софта или сервиса.
Сначала эта задача показалась мне невыполнимой, но я нашел html2canvas.
Сначала эта задача показалась мне невыполнимой, но я нашел html2canvas.
+59
Unit-тестирование от начинающего начинающим
5 min
79KЗдравствуйте.
На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.
Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
На написание статьи меня сподвигнул этот пост. В нём приведено описание инструментов и некоторая теоретическая информация.
Сам я только начинаю разбираться в unit-тестировании и тестировании вообще, поэтому решил поделиться некоторой информацией касательно этого дела. А также систематизировать свои знания и навыки. Далее постараюсь объяснить процесс тестирования по шагам простым обывательским языком, так как нигде в интернете не нашёл разжёванного описания, по шагам так сказать. Кому интересно и кто хочет попробовать всё-таки разобраться, добро пожаловать.
+33
Фриланс против бизнеса
5 min
1.8K
Я отправился в свое одиночное плавание в океане мировой экономики около 5 лет назад, но безопасный промысел в прибрежной зоне быстро наскучил, меня всегда манил открытый океан, где вдали проплывали огромные лайнеры мировых корпораций и быстрые яхты стартапов.
Для тех, кого, как и меня не удовлетворяет простая продажа своего времени на свободном рынке, опишу мой путь, который кажется мне самым прямым и очевидным курсом для эволюции фрилансера.
+56
Корпоративное рабство, беглые рабы и виртуальная корпорация
4 min
6.1K
Три года назад я уволился со своего последнего места работы и за это время, работая самостоятельно, я успел сильно отвыкнуть от корпоративной среды, и теперь, сталкиваясь по работе с традиционными компаниями, я не устаю удивляться, как люди соглашаются на такое зависимое положение подписывая трудовой договор?
+95
Легкий способ начать тестировать
4 min
50KЕсли вы PHP-разработчик, и по разным обстоятельствам тесты для своих приложений не пишете, то эта статья для вас. В ней я постараюсь вкратце показать с чего начать и что делать, чтобы написание тестов приносило вам радость, а вашему приложению стабильность.
Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
Итак, первый совет. Забудьте всё что вы знаете о юнит-тестах. Швырните табуреткой в человека, который сказал вам, что без них не обойтись. Попробуем разобраться, в каких случаях нужно их использовать, а в каких — нецелесообразно.
+39
Information
- Rating
- Does not participate
- Location
- Винница, Винницкая обл., Украина
- Date of birth
- Registered
- Activity