Как стать автором
Обновить
0
0
xSeth @xSeth

Пользователь

Отправить сообщение

Чек-лист вёрстки. Что можно отдавать клиенту, а что надо переделывать

Время на прочтение20 мин
Количество просмотров315K
Идеальная вёрсткаВы PM. Как узнать – готова ли вёрстка к реальному использованию?
Вы заказчик. Как убедиться, что работа выполнена качественно?
Как оценить качество вёрстки?

Когда я стал тим-лидом, а позже PM, передо мной стала задача проверять вёрстку наших проектов. Нужно было выработать формальные, легкопроверяемые критерии, соответствие кода которым, должно было давать некую гарантию, что не будет факапов и ни клиент, ни программеры не сказажут потом “WTF?”.

Клиенту неважно насколько красив ваш код, но ему важен результат. Качественный код нужен фирме, т.к. он надёжней и в будущем его будет легче поддерживать.

Требования должны были быть такие, что соблюсти их легче, создавая качественную вёрстку, а не говнокод. Я составлял такой чек-лист в течении полутора лет. За последние полгода в него не добавилось ничего. Значит самое главное учтено.

Итак что же это за список?

Краткая версия теперь доступна на html5checklist.com (github), где можно вносить pull-request'ы.

История обновлений:
  • 2015/08/11: Актуализировал рекомендации по оптимизации скорости загрузки. Добавил требование поддержки Retina. Дополнил «19. Мелочи» требованием что изображения должны масштабироваться в зависимости от размера окна.
  • 2015/08/10: актуализирован список исключений для CSSLint
  • 2015/07/29: актуализирован пункт №13 «плохо»/«хорошо»
  • 2015/04/08: добавлено требование использования препроцессоров и рекомендация использования систем сборки
  • 2013/04/25: добавлены анализаторами качества кода: CSSLint и JSHint, указан сайт подбора css font stack (спасибо @fliptheweb), мелкие уточнения (работу интерактивных элементов страницы, что не пропадает фон на высоких разрешениях, не должно быть пустых презентационных блоков, при проверках контента — пробовать удалять заголовки, менять местами блоки)
  • 2013/04/24: добавил пункт об минимизации каскада (БЭМ-техники, MCSS, SMACSS), необходимости вписывания в экран моб. устройства, заменил ссылку на проверочный текст отображения стандартного html на код с normalize.css, поправил пример где в рекомендации встречался длинный каскад, упомянул про Opera на Presto и новый уровень семантики — в именах классов BEM.
  • 2012/04/12: отсортировал пункты проверки в порядке важности, выделил главные, дополнил статью подробностями
  • 2011/12/07: дополнил согласно доклада на WSD Минск'2011.
  • 2011/07/19: добавлено про повышение надёжности вёрстки благодаря html5-тэгам, про необходимость favicon/apple-touch-icon, отсутствие багов при ресайзе textarea
  • 2011/06/15: добавил пояснения какие ошибки валидации допустимы, рассказал про отсутствие официальной кнопки «HTML5 Valid» и про официальное лого HTML5 на сайте.


Далее с примерами - как проверить html, даже если вы ничего не понимаете в вёрстке.
Всего голосов 335: ↑318 и ↓17+301
Комментарии244

Чем порадовать любимую 14 февраля

Время на прочтение2 мин
Количество просмотров109K
Видимо немного поздно этот топик оказался здесь, но всё же лучше поздно, чем никогда. Завтра замечательный праздник — День всех влюбленных. Чтобы удивить свою любимую, была проделана (аж почти два раза) вся работа, описанная в этом топике.



(Осторожно, много изображений!)

Читать дальше →
Всего голосов 263: ↑247 и ↓16+231
Комментарии118

Лабораторный источник постоянного напряжения из блока питания

Время на прочтение4 мин
Количество просмотров434K
image

Несколько недель назад мне для некого опыта потребовался источник постоянного напряжения 7V и силой тока в 5A. Тут-же отправился на поиски нужного БП в подсобку, но такого там не нашлось. Спустя пару минут я вспомнил о том, что под руки в подсобке попадался блок питания компьютера, а ведь это идеальный вариант! Пораскинув мозгами собрал в кучу идеи и уже через 10 минут процесс начался.
Читать дальше →
Всего голосов 122: ↑116 и ↓6+110
Комментарии143

Машинка управляемая через Bluetooth

Время на прочтение3 мин
Количество просмотров14K
Давно хотел приобщить к программированию своего сына, но как это сделать?
Прошли те времена, когда учились на бейсиках и паскалях. Пытался показать ему TurboPascal — даже кое-что вроде бы начало получаться, но как-то дальше не пошло…

Решил сделать следующую попытку, когда познакомился с детским языком-конструктором Scratch. Это даже не язык — это средство создания скриптов путем перетаскивания на экране «блоков» и соединения их друг с другом. Теперь дело пошло получше. Ребенок смог сделать даже какую-то простую игру. Но ведь нужно двигаться дальше?



Что бы как-то разнообразить «программирование» я придумал сделать машинку, но что бы ее поведением можно было управлять с компьютера программой на Scratch. То есть что бы ребенок смог бы как-то программировать логику поведения машинки.
Читать дальше →
Всего голосов 169: ↑167 и ↓2+165
Комментарии88

Валидация форм в JavaScript ч.1

Время на прочтение5 мин
Количество просмотров89K

Вступление


Добрый день, уважаемый читатель. В этой статье я бы хотел обратиться к теме проверки содержимого форм на стороне клиента. На заре становления языков, работающих на клиенте, эта задача была основной. Со временем эти языки обросли новыми возможностями (манипуляция DOM, управление стилями и пр.), но задача проверки форм не исчезла. Правда с появлением HTML5 стало возможным указывать такой тип поля формы, как email, и браузер сам возьмет на себя его проверку. Такая возможность на данный момент реализована в Opera, так что расчитывать на нее пока особо не приходится. Поэтому я бы и хотел рассмотреть этот вопрос основательно. В большинстве случаев валидация проводится так: каждому полю раздаётся id, и затем при submit'е вытаскиваем их, попутно проверяя содержимое. И всем хорош данный подход, кроме отсутствия в нем системности. Поэтому хочу предложить вашему вниманию свое решение данной проблемы.
Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии34

Управление устройствами на 220в через LPT порт (полный цикл создания)

Время на прочтение7 мин
Количество просмотров102K

Предыстория


После прочтения статьи на Хабре об управлении лампой через интернет, появилась идея управлять освещением дома с компьютера, а так как у меня уже настроено управление компьютером с сотового телефона, то это значит, что и светом можно будет управлять с того же телефона. После демонстрации статьи одному из моих коллег по работе, он сказал, что ему это как раз и нужно. Так как он часто за фильмами, которые смотрит на компьютере, засыпает. Компьютер через некоторое время после окончания фильма тоже засыпает и отключает монитор, а вот свет в комнате остается включённым. Т.е. было решено, что вещь это полезная, и я начал собирать информацию и детали для этого чуда.
Остальная информация под habracut (осторожно много картинок — трафик).
Читать дальше →
Всего голосов 154: ↑148 и ↓6+142
Комментарии91

Как быстро проверить Linux сервер на предмет взлома

Время на прочтение4 мин
Количество просмотров127K
Примерно два года назад я арендовал у одного немецкого хостера не очень мощный сервер на базе Centos 5.2. На нём живут несколько вебпроектов, приносящих некоторую прибыль, и поэтому, я стараюсь присматривать за ним по мере возможности.
На Centos есть стандартный анализатор логов Logwatch, который запускается ежедневно по крону, анализирует содержимое /var/log, делает сводный отчет и присылает его по электропочте. В один прекрасный день я обнаружил в этом отчете запись:

--------------------- yum Begin ------------------------ 
 
 Packages Installed:
    lzo2 - 2.02-3.el5.rf.i386
    dnstracer - 1.8-1.2.el5.rf.i386
    openvpn - 2.0.9-1.el5.rf.i386

---------------------- yum End -------------------------


В тот момент меня она очень смутила, так как в предыдущий день на сервер я не логинился и тем более ничего не устанавливал. Первое, что пришло в голову — сервер был скомпроментирован. Себя я считал уверенным пользователем Linux, однако я растерялся. Благо в тот момент в icq был мой бывший коллега, лучший системный администратор, которого я знаю, и просто очень хороший человек.
Он помог быстро проверить систему. В результате у меня сформировалось краткое HowTo о том, как быстро проверить свой сервер на предмет взлома. Уверен, что многим Храброчитателям оно будет полезно. Предполагается, что пользователь знаком с консолью Linux/Unix.

Читать дальше →
Всего голосов 212: ↑183 и ↓29+154
Комментарии105

Новые уязвимости доступа к файлам в PHP

Время на прочтение8 мин
Количество просмотров30K
Какой-нибудь год назад все просто с ума сходили от Error-based MySQL, а unserialize казался чем-то сложным и не встречающимся в реальной жизни. Теперь это уже классические техники. Что уж говорить о таких динозаврах как нуль-байт в инклудах, на смену которому пришел file name truncated. Исследователи постоянно что-то раскапывают, придумывают, а тем временем уже выходят новые версии интерпретаторов, движков, а с ними – новые баги разработчиков.
По сути, есть три метода найти уязвимость: смекалка (когда исследователь придумывает какой-нибудь трюк и проверяет, работает ли он на практике), анализ исходного кода и фаззинг. Об одном интересном китайском фаззинге и его развитии с моей стороны я и хочу рассказать.

Список функций и результаты проверки
Читать дальше →
Всего голосов 138: ↑122 и ↓16+106
Комментарии52

Средство оценки качества кода в MS Visual Studio

Время на прочтение3 мин
Количество просмотров33K

Введение


Достаточно часто программистам приходится поддерживать чужой код, очень часто этот код выглядит не самым лучшим образом, и сопровождать его очень сложно. Если это приложение не придется выбросить в скором времени, то естественно его стоит привести в человеческий вид, т.е. отрефакторить. Было бы хорошо иметь какую-нибудь метрику, которая позволила бы оценить качество кода и определить места, которые стоит улучшить. Такая метрика позволила бы оценить, например, то, как программист пишет исходный код или то, насколько качественен код в том приложении, которое Вы собираетесь поддерживать.

Microsoft предоставляет встроенное в Visual Studio средство, которое позволяет оценить код вашего проекта.



Получить оценку вашего кода можно нажав правой кнопкой на проекте и выбрав пункт “Calculate Code Metrics” (Эта функциональность доступна в Visual Studio 2008 Team System и Visual Studio 2010 начиная с Premium версии).
Читать дальше
Всего голосов 63: ↑56 и ↓7+49
Комментарии20

Цифровые подписи в исполняемых файлах и обход этой защиты во вредоносных программах

Время на прочтение8 мин
Количество просмотров81K
image
Хабрапривет!

Ну вроде как удалось решить вопросы с кармой, но они ником образом не касаются сегодняшней темы, а лишь объясняют некоторое опоздание её выхода на свет (исходные планы были на ноябрь прошлого года).

Сегодня я предлагаю Вашему вниманию небольшой обзор по системе электронных подписей исполняемых файлов и способам обхода и фальсификации этой системы. Также будет рассмотрен в деталях один из весьма действенных способов обхода. Несмотря на то, что описываемой инфе уже несколько месяцев, знают о ней не все. Производители описываемых ниже продуктов были уведомлены об описываемом материале, так что решение этой проблемы, если они вообще считают это проблемой, на их ответственности. Потому как времени было предостаточно.
Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии46

Как увеличить точность внутренних часов и начать лучше понимать время

Время на прочтение4 мин
Количество просмотров5.1K


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

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

Психологи Джейн Бурка и Ленора Юэн предлагают в своей книге Procrastination: Why You Do It, What to Do About It NOW ряд конкретных упражнений по совершенствованию управления собственным временем.
Читать дальше →
Всего голосов 102: ↑87 и ↓15+72
Комментарии32

qrTip: плагин для отображения QR кодов для ссылок

Время на прочтение1 мин
Количество просмотров2.1K
Надеюсь, что все знают что такое QR коды и как ими пользоваться? Кто не в теме — вам сюда. В общем этот небольшой плагин для jQuery умеет отображать QR коды для ссылок на странице. Это может быть полезно там, где нужно передать ссылку на мобильное устройство, например ссылка на мобильную версию сайта — незачем больше перебивать ссылки из браузера в ваш телефон, сфоткали и побежали ;)

Плагин достаточно простой, основан на плагине ColorTip для всплывающих подсказок, js-uri для относительных ссылок и Google Chart API для QR кодов ;)

Демонстрация, официальный сайт, а так же qrTip на Github.

qr Tip
Всего голосов 63: ↑60 и ↓3+57
Комментарии22

Векторные иконки на HTML5 + JS

Время на прочтение1 мин
Количество просмотров10K


На первый взгляд это обычные одноцветные иконки, но если призумить — их качество не ухудшится. Очевидный профит таких иконок: с ними можно свободно экспериментировать и не переживать за высоту и ширину, компактный вид, а не куча файлов в папке icons, ну и наверное маленький размер, хотя с этим поспорить можно. Есть некоторые ограничители в цвете, возможен один цвет либо градиент (но думаю с конвертером нарисованного вектора в js код, возможно и больше цветов)

Смотреть иконки

Если вы хотите использовать эти иконки или создавать свои на подобной основе, кликайте по иконке — внизу появится код выбранной иконки, он вставляется в:

paper.path(<код иконки>).attr({fill: "#000", stroke: "none"});

Поддержку иконок на себя берет Raphaël JS Lib

Источник
Всего голосов 88: ↑85 и ↓3+82
Комментарии45

Обновлён ModularGrid — удобный инструмент для HTML-верстальщиков

Время на прочтение1 мин
Количество просмотров2.7K
Демо-страница
Спешу сообщить, что наконец-то обновил ModularGrid — небольшой javascript, который рисует гайды и модульную сетку поверх вёрстки:
  • появилась панель с контролами для тех, кто не любит хоткеи;
  • состояние сетки теперь сохраняется в cookie;
  • было исправлено несколько досадных ошибок.

Демо-страница | проект на GitHub | предыдущая статья
Всего голосов 72: ↑66 и ↓6+60
Комментарии44

Борьба за производительность или кто отнимал процессорное время

Время на прочтение5 мин
Количество просмотров29K
Началось все с «Неваляшки». О том, что это такое и для чего это было надо описано тут: http://habrahabr.ru/company/oktell/blog/108726/. То есть, мы имели четыре работающих сервера call-центра, одинаково настроенных и с примерно одинаковой конфигурацией внешних и внутренних линий, пользователей и настройкой внутренней БД. На каждый из серверов со стороны оператора связи поступала равномерная звонковая нагрузка, но сервера реагировали на это по разному!

N Конфигурация сервера и операционная система
1 T1300 @ 1.66 1 Гб ОЗУ, Windows 2003 Standard Ed. R2 SP1 32 bit
2 Intel Core Duo E8400 @ 3000 4 Гб ОЗУ, Windows 2003 Standard Ed.SP1 32 bit
3 Intel Pentium 4 3GHz 2 Гб ОЗУ, Windows 2003 Standard Ed. SP2 32 bit
4 E3400 @ 2.60 2 Гб ОЗУ, Windows 2003 Standard Ed. R2 SP2 32 bit

Столкнулись с жалобами на качество связи. Причем, жаловались не на каждый звонок, а на «некоторые». Жаловались на «кваки», очень характерные для VoIP телефонии.
Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии18

Как облегчить работу в терминале для новичков? Ответ — CLI Companion!

Время на прочтение1 мин
Количество просмотров4.3K
image

CLI Companion — это своеобразная шпаргалка для новичков линукса, по работе в терминале, выполненная само собой в графическом интерфейсе.
Читать дальше →
Всего голосов 137: ↑126 и ↓11+115
Комментарии61

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

Время на прочтение5 мин
Количество просмотров5.7K
Тема блочного кеширования и ssi не раз проскакивала на Хабре. Ниже я представлю еще одну реализацию, использующего блочное кеширование, а также исходники фреймворка, использующего эти принципы, которые можно найти тут. А как это работает — прочитать ниже.
схема кеширования блоками
Читать дальше →
Всего голосов 56: ↑49 и ↓7+42
Комментарии60

Как уместить полный рабочий день в 3 часа

Время на прочтение3 мин
Количество просмотров9.6K

Вступление


C системой Аллена меня познакомили около двух лет назад. Начинал пользоваться вариантом Васи Кислого с помощью HTC Touch Pro, но глючность девайса сильно мешала освоить систему, а сам «Успеватель» не давал необходимого уровня понимания. С GTD пришлось на время расстаться.

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

Попытки вести мобильную версию системы в Nokia E63 с помощью «Активных заметок» привели к покупке книги Дэвида Аллена, переработке статьи В. Кислого, приобретению стабильно работающего, хоть и старенького HTC P3400 (а потом и более современного продукта от HTC) и введению бумажной, физически ощутимой части этой системы.

Итогом переработки стала строгая вариация за моим авторством на тему Дэвида Аллена в обработке Васи Кислого. Благодаря ей, работа стала занимать не больше 3-х часов в день. Но за это время я успеваю сделать действительно много.

Следуя этим принципам, я прихожу на работу к 11-12 часам, работаю плотно и не отвлекаясь до 15 часов. В 15 часов ухожу в зал потаскать железки, прихожу в офис к 17-30, прорабатываю за полчаса все накопившееся с 15 часов. И еду домой.

Пока я не разобрался и не адаптировал под себя систему Аллена, мой рабочий день не ограничивался 8 часами в офисе. Приходилось работать еще вечером дома.

Кому интересно, прошу под кат.
Читать дальше →
Всего голосов 204: ↑150 и ↓54+96
Комментарии155

Подслушиваем в AD

Время на прочтение3 мин
Количество просмотров48K

Введение
Я только недавно столкнулся с виндовыми доменами (Active Directory) и познаю много нового и удивительного. Так уж получилось, что значительное количество пользователей в домене организации имеют права локальных админов (технические специалисты, программисты и другие) (ведь не редко так бывает?). Но последствия от этого колоссальны. В данной статье мы рассмотрим как можно подслушивать звуки (разговоры, переговоры) на удаленных машинах.
Читать дальше →
Всего голосов 99: ↑80 и ↓19+61
Комментарии82

Обзор программ для командного голосового общения

Время на прочтение4 мин
Количество просмотров97K
image Проблема голосового общения в сетевых играх, будь то грандиозная MMORPG или простенький сетевой шутер, стоит очень остро. При активных действиях зачастую не хватает времени использовать встроенный в игру чат, а в большинстве случаев использование чата сильно усугубит вашу с напарником ситуацию перед другими игроками из-за расходования времени в пустую, если конечно ваши враги используют голосовое общение.

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

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

В этой статье я рассмотрю четыре самые популярные программы для голосового общения. Встречайте кандидатов — Ventrilo, TeamSpeak 2, TeamSpeak 3, Mumble. Некоторые из них платные, некоторые абсолютно бесплатны, а так же open source, что же, попробуем выявить лучшего кандидата. Изучению поддадутся такие качества «подопытных» как: поддерживаемые кодеки, поддерживаемые операционные системы, количество и доступность серверов, масштабирование, возможность поставить серверную часть у себя на dedicated server, алгоритмы улучшения звука и многое другое.
Читать дальше →
Всего голосов 33: ↑26 и ↓7+19
Комментарии74

Информация

В рейтинге
Не участвует
Откуда
Украина
Дата рождения
Зарегистрирован
Активность