Pull to refresh
16
0
Цырульников Илья @Tremor

User

Send message

А закрыл ли ты тег?

Reading time1 min
Views26K
Работаю в большом проекте, 16 человек, распределенная работа. Часто возникает ситуация, когда после очередного апдейта проекта обнаруживается, что какой-нибудь div находится совсем не там, где ему полагается быть. Напимер отваливается правая колонка и подло подстраивается под основной. Сразу же начинаются попытки выяснить причины столь некорректного поведения: просматривается CSS, возносятся молитвы к FireBug. Но в итоге все оказывается тщетно, т.к. скорее всего кто-то просто банально забыл закрыть тег.

Иногда это можно вычислить, просмотрев все измененные за какой-то промежуток времени шаблоны. Но какой промежуток просматривать? Вчера все работало, сегодня нет. За это время были залиты изменения в десятки, а то и сотни файлов. И начинается кропотливый поиск.

А вот если бы была утилитка, которая могла бы проверять наличие таких ситуаций.
Вооружаюсь гуглом и начинаю планомерный поиск. Час-два серфинга не приводят ни к каким результатам. Конечно-же есть всяческие онлайн валидаторы кода, начиная с самого de facto W3C'шного, но он, зараза, слишком умный и проверяет ВСЕ, выводит множество error'ов и warning'ов, которые часто влияют друг на друга, и чтобы с помощью него в коде найти подло закравшийся незакрытый тег, нужно потратить много нервов и времени.

И вот на этой грустной ноте нерешенной проблемы обращаюсь к вам, хабралюди. Какими средствами вы пользуетесь, когда нужно просто найти незакрытые теги, но не нужно (пока-что) отвлекаться на всяческие незаданные alt'ы для картинок и прочие менее критические ошибки?

Задачи на собеседовании — от простого к сложному.

Reading time2 min
Views27K
Да, это крик души. Потому что в среднем за неделю я собеседую несколько, которые претендуют на должность php-программиста.

Крик души, собственно в следующем:
из, предположим, 10 человек простейшие тесты сдают максимум двое (один — наполовину или на две трети). Вот такая простая статистика.

Может быть, я задаю слишком сложные вопросы ( несколько видоизмененные вопросы под катом )?

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

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

Читать дальше →

Часть 2.0 Сделаем это по-быстрому – Habrahabr за пару часов

Reading time5 min
Views1.2K
Лого хабрадвижка
Обе упомянутые в первой части тенденции лишь усугубились: индекс Доу-Джонса и NASDAQ ежедневно сдают свои позиции, а количество хабрастартапов на территории 1/6 части суши растет в геометрической прогрессии. Свидетельством прихода на этот рынок серьезных игроков служит хотя бы это предложение. Сначала я подумал, что это очередная попытка легализации средств уведенных из SG, но по имеющейся на сей час инсайдерской информации заказчик имеет отношение к медиахолдингу компании… нет, не буду называть имя компании, намекну лишь, что председателя совета директоров этого энергетического монстра часто можно встретить на аватарках хабрапользователей.

Но не будем о политике – вернемся к стартапам. В первой части вкратце описывались шаги, необходимые для создания напоминающего habrahabr сайта. В сегодняшнем топике основное внимание будет уделено социализации проекта.
Читать дальше →

10 принципов эффективного веб-дизайна

Reading time11 min
Views54K
Юзабилити и практичность, а не визуальный дизайн, определяют успех или провал любого веб-сайта. Так как именно пользователь — единственный, кто кликает мышкой и, таким образом, принимает все решения, то одним из стандартных подходов для создания успешных и прибыльных веб-дизайнов стал «дизайн, ориентированный на пользователя» (user-centric design). В конце концов, если пользователь не умеет пользоваться той или иной функцией, ею можно легко пренебречь.

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

Читать дальше →

Про резиновую верстку

Reading time1 min
Views29K
Навеяно этим.

Для тех, кто, возможно, не знает как сделать так, чтоб всё было хорошо.
Сайт должен тянуться только до определённой величины, и сужаться тоже только до некоторого значения. Я обычно беру 1500 и 980 пикселей соответственно.

Как сделать? min-width и min-height.

#site {
  margin: 0 auto; /*это чтоб центрировать контент при превышении max-width*/
  min-width: 980px;
  max-width: 1500px;
}


Но ведь IE их не поодерживает. А expression слишком нагружает браузер… Спокойно, други! Я выведу вас к свету из тьмы!
Пишем далее.



А в ie.js помещаем

window.attachEvent('onload', mkwidth);
window.attachEvent('onresize', mkwidth);

var minwidth = document.getElementById("site").currentStyle['min-width'].replace('px', '');
var maxwidth = document.getElementById("site").currentStyle['max-width'].replace('px', '');
function mkwidth(){
    document.getElementById("site").style.width = document.documentElement.clientWidth < minwidth ? minwidth+"px" : (document.documentElement.clientWidth > maxwidth ? maxwidth+"px" : "100%");
};


В чём особенная вкусность приведённого метода? А в том, что минимальное и максимальное значение нужно задавать только в одном месте, ну и вообще.

Пользуйтесь, короче, на здоровье!

Определение города по IP-адресу

Reading time2 min
Views35K
Такая потребность может возникнуть при геотаргетинге информации, работе картографических сервисов, анализе статистики посещений сайта.

Задача решается следующим образом.

1. Выкачиваем и правильно складываем базы whois.
2. Для каждой подсети определяем город.
3. Пакуем базу в бинарный файл.

Но зачем это все делать самим, когда уже есть готовые решения. Одно из них (полную версию) я выкладываю сюда для теста и получения фидбэка.
Читать дальше →

Вперед в будущее! Переход с ICQ на Jabber

Reading time6 min
Views38K
*Преамбула*
В связи с глобальной тенденцией перехода умных людей на Jabber, и инертного сопротивления этому переходу людьми, привыкшими к ICQ, было принято решение написать качественную аргументированную статью, о том, почему же все таки стоит сменить средство общения.
Итак, статья:


Для многих из нас ICQ является синонимом слов «общение в интернете», мы используем его по делу и для развлечения, находим с его помощью новых друзей и поддерживаем связь со старыми. За годы использования этой программы накопились сотни контактов в списке и длиннющая история переписки. В общем, все вроде бы устраивает, и идея перейти на что-то новое сразу наталкивается на логичный вопрос: «А зачем? Мне и так неплохо».

Итак, Jabber — это не очередной ICQ-клиент. Это система онлайн-общения нового поколения.
Она пришла на смену устаревшим месенджерам, место которых уже давно на интернет-свалке.

jabber
Почему же общаться в Jabber лучше, чем в ICQ?

Сделаем это по-быстрому – habrahabr за пару часов

Reading time4 min
Views4.4K
habradrupal
В последнее время на drupal.ru и habrahabr.ru частенько проскакивают темы вроде: «Делаю социальную сеть – бюджет пара сотен! Помогите сделать хабрастартап!» Отечественные аналитики связывают эту тенденцию с тем, что кризис на ипотечном рынке США тянет вниз за собой рынок в целом, что заставляет игроков на бирже вкладывать в высоколиквидные и надежные активы. Традиционно прибежищем инвесторов в смутные времена является золото, медь да стартапы на просторах бывшего СССР.

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

Динамический Favicon

Reading time1 min
Views5.9K
Небольшое эссе о том, как менять Favicon без перезагрузки страницы.

Недавно перед нами стояла задача как динамически менять Favicon без перезагрузки страницы. Решение «в лоб», т.е. замена значения href у favicon link ничего не дала, пришлось крепко задуматься и начать пробовать все возможные альтернативные варианты. Сработал способ пересоздания ноды link в документе. Это удалось заставить работать везде, кроме Internet Explorer. Есть подозрение, что ему не нравится имя файла с иконкой или его формат (PNG).

собственно, код

Практический CSS/JS: архивируем все!

Reading time1 min
Views2.8K
Примечание: ниже частичный перевод статьи «Compress JavaScript and CSS without touching your application code», в которой описывается статичное сжатие CSS- и JS-файлов на сервере и корректная выдача их затем клиенту. Далее даны мои комментарии с более комплексным решением. Приношу извинения, если для кого-то тема будет слишком знакома или неинтересна: в Рунете нормальной статьи на данную конкретную тематику обнаружить не удалось.

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

  • Проверить, умеет ли клиент принимать файлы в формате gzip-encoded.
  • Обеспечить соответствующий вывод на стороне сервера через gzip-функции, либо уповать на то, что всем этим займется непосредственно Apache.
  • Поиграться с .htaccess, чтобы обеспечить корректный content type.


читать дальше на webo.in →

jQuery для верстальщика (часть 1): стрелочки для ссылочек

Reading time2 min
Views2.9K
Эта мини-статья посвящена очень простой вещи, которая будет интересна, прежде всего, начинающим пользователям библиотеки <a href=«jquery.com>jQuery. Я покажу, как прикреплять к каждой ссылке небольшое изображение, чтобы выделить ее.

Читать дальше →

Качественный хостинг — миф или реальность?

Reading time1 min
Views2K
Случайно наткнулся на ноябрьский пост «Будет ли в России нормальный хостинг?» и задумался… В самом деле, будет ли?

У меня не мегапортал — в среднем, меньше двухсот человек в день, и мне особенно много не надо. Стандартный набор из PHP, MySQL, почты и нескольких ГБ места на диске — соответственно, заводить/арендовать отдельный сервер вроде как не нужно.

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

Я выбрал один из самых популярных хостингов — Мастерхост. Заработало. Но глючит постоянно. Иногда работает быстро, а иногда база тормозит неприлично (странички средней сложности генерируются по 6—7 секунд!). То сайт доступен — то недоступен или тормозит страшно. Последняя капля этот DDoS…

И встаёт закономерный вопрос: что делать? Кто виноват? Использовать другой хостинг? Какой? Заграничный? Ещё что-то? Убить кого-нибудь?

Я могу понять, когда какой-нибудь nm.ru недоступен — он хоть бесплатный. А это…

Кто сталкивался с подобными трудностями, поделитесь опытом.

UPD: У меня нет претензий к службе техподдержки Мастерхоста — они обычно отвечают быстро и квалифицированно. Но, судя по всему, многие вещи от них не зависят.

Syntax Highlighter — подсветка синтаксиса кода на вашей вебстранице

Reading time1 min
Views18K
Syntax Highlighter позволяет легко и красиво подсвечивать синтаксис кода на вашей странице. Написан на Javascript, соответственно работает на клиенте.

Поддерживает много языков, в сжатом виде занимает 11 килобайтов. Из минусов — не позволяет клиенту редактировать код на странице, readonly.

Вот как оно выглядет в действии

Демо: http://code.google.com/p/syntaxhighlighter/
Лицензия: LGPL

Разберемся раз и навсегда: AJAX, «кириллические символы», кодировки, prototype.js, jQuery, JsHttpRequest

Reading time5 min
Views169K
AJAX, — это технология. Одной из часто используемых техник этой технологии является
посылка запросов при помощи объекта класса XMLHttpRequest.


Как же посылать и принимать AJAX запросы в нужной нам кодировке, нужно ли использовать однобайтовые кодировки или не обойтись без UTF-8. На все эти вопросы раз и навсегда ответит эта статья.

Читать дальше →

Первая встреча с Заказчиком, выжимаем максимум.

Reading time3 min
Views9.4K
Я уже несколько лет занимаюсь управлением проектов по заказной разработке ПО и часто в начале моей работы, меня беспокоил вопрос о том, как именно я могу извлечь максимальное количество полезной и структурированной информации о будущей системе. Ведь чаще всего, даже для коммерческого предложения необходимо представлять и технологии и примерные способы реализации, а это все может сильно менять цену. Да и про сроки неплохо бы рассказать.

Я сумел найти для себя оптимальный вариант.
Читать дальше →

Состояние hover: как должна вести себя ссылка при наведении

Reading time4 min
Views10K
Данное рассуждение явилось разросшимся комментом на публикацию dezmasterdezmaster, опубликовавшему сегодня статью под заголовком "Ссылки при наведении курсора: нужна ли реакция?". Честно говоря, меня давно мучают схожие вопросы (= И вот, наконец, удалось немного понаводить порядок в своей голове.

Основной смысл всего мною сказанного: сила реакции ссылки на курсор мыши уменьшает время прицеливания (точно также как и размер ссылки, и ее расстояние от курсора), а значит уменьшает время между нашим желанием и его реализацией. Однако, вместе с тем, слишком сильная реакция может угнетает наши органы чувств и вызывать раздражение.

В итоге, контекст, в который помещена ссылка, определяет ту степень контрастности состояний ссылки, которую нам следует применять. Выделяются следующие контексты: ссылка среди картинок, в тексте, среди ссылок, в меню, в повторе, в публиковании.
Читать дальше →

Приведение ссылок к абсолютному URI

Reading time1 min
Views5.7K
Забавная функция. Выполняет преобразование относительных uri-адресов в абсолютные.
Может помочь новичкам при организации поиска по сайту.
Хороший пример с location().

Источник и примеры использования здесь

Код ниже

Множественные числа

Reading time1 min
Views2.9K
Довольно часто на сайтах встречаются нелепые словесные конструкции, которыми программист обезличено хотел показать какой либо количественный параметр, например:

на сайте 22 человек ( а должно быть 22 человека )
1 комментариев ( понятно, что расчёт шёл на 10+ комментариев, но это не выход )

Читать дальше →
12 ...
7

Information

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