Все потоки
Поиск
Написать публикацию
Обновить
340.64

Веб-разработка *

Делаем веб лучше

Сначала показывать
Порог рейтинга
Уровень сложности

Лог комита: зачем он нужен на самом деле?

Время на прочтение4 мин
Количество просмотров5.3K
Разработчики уже давно привыкли пользоваться системами контроля версий. Для кого-то это является естественным переходом, кто-то воспринимает сначала систему контроля версий как некоторое дополнительное усложнение своей работы, но работа над проектом в команде невозможна без этого инструмента.

Очень часто переход от мышления «я сохранил файл — код зафиксирован» к мышлению «я сделал комит — код зафиксирован» натыкается на то, что процесс комита требует написания лога комита. Первое решение — оставить лог пустым или написать что-то из:

  • «фикс бага»;
  • «закомитил всё, что сделал»;
  • «тестовый комит»;
  • «исправил опечатку»;
  • и т.п.

Почему это плохо?

Google Suggest – взгляд изнутри…

Время на прочтение3 мин
Количество просмотров2.8K
Разные люди немного разбирались в принципе работы Google Suggest, но я переписал сжатый javascript код так, чтобы каждый обычный разработчик мог подробно узнать, как эта система работает. Моя финальная переписанная версия скрипта доступна здесь.
Я увидел самую крутую штуку, которую я видел с тех пор как обнаружил SOAP-клиент с поддержкой WSDL в браузере Mozilla. Технология предсказания запросов Google Suggest работает в реальном режиме времени. С вводом каждой новой буквы список вариантов обновляется. Скрипт технически восхитителен как минимум по двум причинам:
Читать дальше →

Одинокий инпут

Время на прочтение1 мин
Количество просмотров575
Одинокий инпут ищет сабмит своей души. О себе: бордерколор карий, бэкграундколор темный, бордестайл нордический, макссайз 22 пикселя.

Лучшие расширения для Firebug

Время на прочтение1 мин
Количество просмотров1.1K
Adam DuVander из команды сайта WebMonkey составил список пяти лучших надстроек над Firebug. Вне конкуренции, оказался YSlow, но остальные 4 тоже очень полезны:

* Firecookie для простоты работы с cookies
* FirePHP для интеграции серверного PHP дебагинга с интерфейсом Firebug
* Pixel Perfect для наложения макета на HTML шаблон для контроля соответствия вёрстки
* Rainbow для подсветки Javascript синтаксиса

Пользуйтесь.

Установка и настройка SVN (сервер+клиент)

Время на прочтение6 мин
Количество просмотров317K
По просьбам трудящихся, а так же учитывая, что есть статья по установке SVN (правда +Trac) под Linux, решил написать краткое описание установки и настройки SVN для Windows.
Ничего нового для людей, хорошо знающих и работающих с SVN, здесь не будет. Цель статьи — помочь некоторому проценту новичков, пребывающих на Хабре, таки осилить изучение этой системы контроля версий.
Читать дальше →

Вышел Sphinx 0.9.8

Время на прочтение1 мин
Количество просмотров1.3K
Sphinx search engineSphinx — созданный в России бесплатный поисковой движок с открытым кодом, который используется рядом популярных (Dailymotion, Mininova, ThePirateBay, NetLog, и т.д.) и рядом мифических (СуперХабр) сайтов — наконец добрался до очередной release-версии.

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

css fix для различных браузеров

Время на прочтение2 мин
Количество просмотров12K
Представьте себе абстрактный разговор абстрактного заказчика с абстрактным верстальщиком.

— У тебя бага в менюшке, все наверх съехало, — говорит заказчик.
— Посмотрел во всех браузерах, нету! Ты в каком смотришь? — говорит верстальщик.
— В фаерфоксе.
— Нормально все там, — говорит верстальщик, просмотрев сайт во всех версиях фаерфокса.
— Осталось бага. Если это важно, то я с мака.

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

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

Время на прочтение4 мин
Количество просмотров1.4K
Прочитав комментарии к заметке Firefox 3: * {display: block } bug, понял что заметная часть читателей Хабра, в том числе серьёзно занимающиеся веб-разработкой, не совсем верно представляют себе что-то же такое HTML, и почему теги отображаются так, а не иначе.

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

Подборка видео-проигрывателей на флэше

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


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

Надеюсь уважаемые комментаторы помогут дополнить список и выявить абсолютного лидера среди проигрывателей.
Уже помогли. Отдельные спасибы Elected, atri, rmb. Кармы всем за мой счет ^_^

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

Стимул к обновлению

Время на прочтение1 мин
Количество просмотров1.3K
Как и многие веб-разработчики, я желаю скорейшей смерти для IE6. Устаревшие версии других браузеров не настолько распространены, и поэтому доставляют меньше хлопот, но и им бы тоже неплохо исчезнуть. Эту задачу могло бы решить автоматическое обновление, но его нередко отключают «администраторы», и часто пользователи даже не подозревают о том, в каком прошлом они живут.

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

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

Я понимаю, что это может быть изобретением велосипеда, но пока что предшественников не нашёл. Буду рад ссылкам на них, чтобы не умножать сущности.

Если кто-то заинтересован в использовании такого скрипта, я наведу на него блеск: минимизирую, переведу на английский, и т.п. Поэтому интересно мнение сообщества об этой инициативе. Что скажете?

PS: пожалуйста, не думайте, что на странице скрипта он работает неправильно — проверка версий там отключена специально, чтобы все могли увидеть скрипт в действии.

Внедрение Flash с помощью SWFObject 2

Время на прочтение16 мин
Количество просмотров48K
Вопрос о внедрении Flash с помощью разметки соответствующей стандартам возникает достаточно часто, между тем у этой проблемы есть достаточно известное решение — SWFObject. SWFObject 2 не только позволяет внедрять Flash динамически, с помощью JavaScript, но и статически, когда для внедрения используется стандартная разметка, а JavaScript только исправляет неразрешимые с помощью разметки проблемы, при этом даже если JavaScript отключен пользователи все равно увидят Flash.
Читать дальше →

Каптча: спрайты, минные поля и лицензирование

Время на прочтение2 мин
Количество просмотров1.2K
Хочу представить три авторских способа организации анти-спам защиты. Первый основан на технологии CSS спрайтов, второй на узкой специализации ботов, а третии на почтовых уведомлениях.

CSS sprites1


CSS sprites каптча
Суть проста изображение с каптчей содержит 20–30 символов, только 4–5 из них идущие подряд являются кодом, начинаются они то с 1го символа то с 20го в общем с произвольного, остальное — мусор, с помощью позиционирования бекграунда в слое видны только нужные символы. Человек введёт их, бот распознает и введёт все 30. Вуаля! ;)

Остальные два

Ближайшие события

Form Spam Bot Blocker: Защищаем Web-формы без CAPTCHA!

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


  • Вы так защитили свою форму что сами не всегда можете разобрать что нарисовала CAPTCHA?
  • Вы установили хорошую CAPTCHA и все равно время от времени у себя в feedback-е читаете новости
    о удлинителях некоторых органов, дешёвой виагре и т.п.?


Ну тогда предлагаю под другим углом взглянуть на проблему защиты Web-форм.

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

И снова egeinfo.ru — феерическая вёрстка

Время на прочтение1 мин
Количество просмотров1.2K
Собственно, пора выпускных экзаменов уже прошла, и результаты их уже известны. Тем не менее, хочу поделится примером феерического оформления HTML-кода на сайте.

Вступление
Так уж случилось, что когда я ждал результатов последнего экзамена (это математика, но не суть), то средств подключения к Интернету кроме GPRS-а у моего ноутбука не было. Ну, хоть что-то.

Пользуюсь Оперой, а потому сразу заметил, что страница входа в систему по паспортным данным (http://fed.egeinfo.ru/ege) весит около 200 килобайт, не считая картинок и скриптов, причём основная часть страницы не отображалась до полной загрузки (что для моего соединения занимало довольно много времени).

Страница сайта egeinfo.ru
egeinfo screen

Решил взглянуть на исходный код данной страницы.
И что же я увидел?

Вредные советы: как нужно заказывать сайты

Время на прочтение1 мин
Количество просмотров2.5K
Вдохновившись топиком про вредные советы, предлагаю свой вариант вредных советов о том, как клиентам нужно заказывать сайты.

Если ваш директор (глупый!)
Поручил вам сайт создать,
Ты не бойся обратиться
К другу детства своего.

С другом лучшим в детсаду
Вы водили хоровод,
А теперь твой лучший друг
Возглавляет Web-Завод.

Вместе весело живется
В дружном детском хороводе,
Друг твой быстро наживется
Сделав сайт вам на Народе.

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

Google добавил интерфейс для AJAX-библиотек

Время на прочтение2 мин
Количество просмотров4K
Сегодня Google объявила об открытии интерфейса Google AJAX Libraries API. Что это и для чего нужно я в кратце поясню.
Читать дальше →

Map/Reduce своими руками — Apache CouchDb

Время на прочтение5 мин
Количество просмотров6.3K
Логотип CouchDb Предупреждаю — мой взгляд совершенно не претендует на какую бы то ни было объективность. Но реляционные базы данных меня никогда, мягко говоря, не вдохновляли.

Нет, я вполне понимаю когда у вас действительно приложение ориентировано на обработку и хранение больших массивов данных. Ну, ERP-системы, всякие хранилища, статистика там, «в прошлом месяце продали сто тыщ карандашей, в этом двести».

С другой стороны, в большинстве случаев, когда речь идет о десктопных (или веб-) приложениях, где не нужно ворочать миллионами примитивных записей,  а приложение работает с относительно высокоуровневыми, сложными объектами, суть «дизайна и проектирования баз данных» заключается в повторении двух действий:

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

Переменные сессии на яваскрипте без кук

Время на прочтение3 мин
Количество просмотров30K
Мне никогда не нравилась реализация кук в Яваскрипте. Объем ограничен (4х20 Кб на домен), хранить возможно только в строковом типе, синтаксис для установки и получения кук избыточно сложен.

И более того, браузер добавляет куки в заголовок запроса — а так как многие корпоративные файрволы пропускают только заголовки до некоторого размера, то ваши страницы могут вообще не загрузиться (я видел — это ужасно).

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

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

Отговорки исполнителей на требования заказчиков сдать работу

Время на прочтение4 мин
Количество просмотров11K
Бывает так: закажет человек работу, денег даст. Может быть даже договор и задание в письменном виде будет. Однако время идет, а работы нет.

Что говорят и что надо говорить?
Читать дальше →

Вклад авторов