Обновить
374.02

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

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

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

Анти-паттерны Test Driven Development

Время на прочтение4 мин
Охват и читатели20K
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:

Лжец (The Liar)

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

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

Мультидоменный сервер nginx -> apache

Время на прочтение3 мин
Охват и читатели9.8K
Приветствую! Размещаю по просьбе друга статью.
У него к сожалению пока нет регистрации на хабе, а у меня мало кармы что бы выслать приглашение.
Если есть возможность и понравились статья вышлите ему инвайт, или можно попробовать поднять мне карму что бы я мог выслать ему инвайт.

Итак задача:
Организовать удобное администрирование многодоменного web сервера.
Модель системы: linux -> nginx -> apache -> php -> mysql.

Раньше у меня для каждого домена были отдельные конфиги для nginx и apache,
и для добавления нового хоста требовалось добавить как минимум 2 конфига.

Работа была организована удобно. По сути, были 2 скрипта. 1 для добаления хоста к nginx, другой для apache. (ещё есть скрипт добавления хоста в bind но это другая история).

Но и это было не удобно в условия добавления удаления хостов… иногда забыл nginx прописать, иногда в апаче чтото не то…
Решено было следующим образом:

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

Председатель Правительства Российской Федерации ознакомился с работой нового сайта

Время на прочтение1 мин
Охват и читатели798
image
Разработчики официального сайта Председателя Правительства Российской Федерации представили Владимиру Путину новый ресурс, рассказав о его новшествах и особенностях, которые могут заинтересовать не только широкий круг интернет-пользователей, но и журналистов и аналитиков, освещающих деятельность Правительства и Премьер-министра.
Читать дальше →

Выкатываем в бой

Время на прочтение6 мин
Охват и читатели4.4K
К бою! Внедрение конечного веб-продукта является не самой приятной процедурой для создателя и часто сопровождается жутким стрессом. Нелюбовь разработчика к релизам связана не только с чувствами ответственности и страха перед эксплуатацией новой версии, но и с ощущениями неопределенности: а что будет после того, как внедримся?

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

Проектирование сетевых протоколов

Время на прочтение5 мин
Охват и читатели26K
Поискал по хабру статьи о проектировании протоколов и к своему удивлению ничего не нашел. Пожалуй, стоит тогда поделиться своими соображениями по сабжу. Сразу скажу, что деление на типы сугубо мое и может не совпадать с тем, что вы найдете в справочниках. Также заранее условимся, что используется язык С/C++.
Читать дальше →

Кластеризация memcached и выбор ключа кэширования

Время на прочтение4 мин
Охват и читатели25K
Серия постов под общим заглавием “Web, кэширование и memcached” продолжается. В первом мы поговорили о memcached, его архитектуре и возможном применении.

Сегодня речь пойдет о:
  • выборе ключа кэширования;
  • кластеризации memcached и алгоритмах распределения ключей.

Следующий пост будет посвящен атомарности операций и счетчикам в memcached.

Итак, поехали!

Кэширование и memcached

Время на прочтение7 мин
Охват и читатели93K

Этим постом хочу открыть небольшую серию постов по материалам доклада на HighLoad++-2008. Впоследствии весь текст будет опубликован в виде одной большой PDF-ки.



Введение


Для начала, о названии серии постов: посты будут и о кэшировании в Web’е (в высоконагруженных Web-проектах), и о применении memcached для кэширования, и о других применениях memcached в Web-проектах. То есть все три составляющие названия в различных комбинациях будут освещены в этой серии постов.
Читать дальше →

Делаем страницу 404-й ошибки разумной с помощью Google

Время на прочтение2 мин
Охват и читатели6.9K
Вот я прошёлся по блогам и сайтам, которые висят у меня в подписках, и понял, что всё печально. Если намеренно вызвать страницу 404-й ошибки, то можно напороться на все возможные отмазки, пустую страницу, либо на страницу, которую генерит сервер. Ну или на крайний случай — sitemap. Часто любят выкладывать туда смешную картинку.
Читать дальше →

Статистика Google Analytics на вашем сайте

Время на прочтение6 мин
Охват и читатели17K
Помню, как-то проскакивала пара записей (здесь и здесь) по поводу импортирования данных из Google Analytics для отображения сводных диаграмм на сайте, в общем, как на хабре. Прочитав вышеупомянутые топики и не обратив особого внимания тогда, я о них успешно «забыл» и пошел себе дальше. И вот сейчас, появилась необходимость реализовать нечто подобное на одном из своих проектов.

image

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

UPDATE:
Добавил еще одну версию, подробности и линк под катом.

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

CSS Font-Size: em vs. px vs. pt vs. percent

Время на прочтение3 мин
Охват и читатели282K
Одним из наиболее запутанных аспектов CSS является применение font-size атрибута для масштабирования текста. Используя CSS, вы можете изменить размер текста в браузере с помощью четырех разных единиц измерения. Какая из этих четырех единиц лучше всего подходит для веб? Это вопрос, который породил разнообразные дискуссии и критику. Поиск окончательного ответа затруднен, поскольку вопрос сам по себе сложный.
Читать дальше →

SAPEсфакция

Время на прочтение6 мин
Охват и читатели1.2K

Вы, наверно, уже знаете, что случилось у sape.ru. Если вы оптимизатор или вебмастер, то уж точно знаете. Для тех кто не в теме, напомню: sape.ru – крупнейшая в Рунете биржа по купле-продаже ссылок. С помощью этой биржи продают ссылки более 160 000 сайтов.
Неделю назад администрация ресурса изменила условия работы с биржей. Теперь все расчеты ведутся в рублях, все участники должны перерегистрироваться и заключить договор-оферту с двумя ЦОП (Центр Обслуживания Партнеров, каждый из которых отдельное юр. лицо) – через первый деньги вводят, через второй выводят. В связи с этим значительно снизилась прибыль вебмастеров.


Ситуация с Sape, думаю, будет интересна не только оптимизаторам и вебмастерам, потому что многие сервисы (фриланс-биржи, биржи копирайтеров, Блогун, баннерные сети и т.п.) осуществляют финансовые взаимоотношения с пользователями так же, как и sape до 1 октября. В данном случае не столь важно, что биржа продает именно ссылки. Интересны финансовые моменты.



Причины недовольства


При перерегистрации предлагается несколько вариантов регистрации:
1. Юридическое лицо.
2. Индивидуальный предприниматель.
3. Физ. лицо – резидент РФ.
4. Физ. лицо – нерезидент РФ.



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

Ваша жизнь за 15 минут

Время на прочтение4 мин
Охват и читатели831
Прочитал дружный стёб хабрасообщества над девушкой, которая делает сайты за 15 минут в «Метрограде», какое-то время держал себя в руках, а потом не удержал.

Давайте-ка рассмотрим не конкретную девушку за конкретной стойкой, а явление сайтов «за 15 минут», «за 1000 рублей» и т.п. в принципе, с точки зрения жизненного цикла систем и вашей – да, конкретно вашей — жизни.

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

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

Построение графики на javascript

Время на прочтение1 мин
Охват и читатели12K
dg
Raphaël — небольшая библиотека(20 килобайт) для построения векторной графики на веб-сайтах.

Она использует SVG и VML в качестве базы для создания графики. Учитывая то, что каждый созданный объект — DOM объект, то при помощи JavaScript обработчиков можно легко изменять их свойства и действия.
Читать дальше

JS-тень

Время на прочтение1 мин
Охват и читатели1.5K
Может быть я изобретаю велосипед, но от нечего делать решил попробовать сделать тень средствами яваскрипта, вот что из этого получилось

js-тень
Пользуйте на здоровье :)

UPD: Добавил смещение тени

Анимированный фон средствами jQuery или «Эй, а ведь круто! Как Flash!»

Время на прочтение3 мин
Охват и читатели13K
jQuery + CSS Sprite
Занимательные поделки от Джонатана Снука. Данная статья будет интересна скорее новичкам, нежели более умудренным разработчикам, хотя мистер Снук достаточно авторитетен и его методики могут быть полезны всем.
Любопытно... Что там у вас?!

О чем вы думаете во время работы?

Время на прочтение1 мин
Охват и читатели748
Решили немного пошалить и переделали старый добрый мультик на свой лад.



Ну как, совпадает? :)
Читать дальше →

Мой знакомый разработчик

Время на прочтение4 мин
Охват и читатели1.3K
Я работаю с удивительным человеком. Каждый раз, когда я смотрю в bugzill'у или проверяю почту, я им поражаюсь. Иногда мне кажется, что он мог бы стать неплохим писателем. Во всяком случае графоман из него отличный.

Этот разработчик принимает документирование очень близко к сердцу.
Что же тут такого удивительного?

Засаливание паролей

Время на прочтение2 мин
Охват и читатели34K
Итак, каким же образом обеспечивается безопасность на нынешних веб-ресурсах? Хешированием паролей алгоритмом md5. Вроде бы всё здорово и замечательно — md5 есть функция необратимая и пароли, хранимые в виде таких хэшей, взломать нельзя, даже если злоумышленник получил доступ к базе. Ан нет! Вспоминаем про Rainbow-таблицы и прощаемся с мыслью о полной безопасности хранения паролей в таком виде. Та как же их тогда шифровать? Алгоритмы востановимого шифрования с ключами тоже не панацея, да и системных ресурсов сии функции кушают немало...
Вопрос: Так как же, не в ущерб производительности, обезопасить md5 хэши от Rainbow-таблиц?
Ответ: соль.
Читать дальше →

Безопасность на хабре

Время на прочтение2 мин
Охват и читатели2.1K
А расскажу я вам сегодня про фичу, которую совсем недавно мне понадобилось сделать в одном проекте. А именно о функции «Запомнить меня на этом компьютере». Смешно не правда ли? Что же тут сложного? Сохраняй куки на две недели, месяц, потом вытаскивай и восстанавливай сессию. Ага, всё просто. А я встал в тупик. Меня часто ставят в тупик самые простые вещи.Так что же меня смутило…

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

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