Pull to refresh
31
0
bkonst @bkonst

User

Send message

Борьба с DDOS и DOS на уровне nginx

Reading time1 min
Views8.4K
FreeBSD, сетевая Intel fxp, порт 100Мбит, polling, http accept-filter
в sysctl:

sysctl kern.maxfiles=90000
sysctl kern.maxfilesperproc=80000
sysctl net.inet.tcp.blackhole=2
sysctl net.inet.udp.blackhole=1
sysctl kern.polling.burst_max=1000
sysctl kern.polling.each_burst=50
sysctl kern.ipc.somaxconn=32768
sysctl net.inet.tcp.msl=3000
sysctl net.inet.tcp.maxtcptw=40960
sysctl net.inet.tcp.nolocaltimewait=1
sysctl net.inet.ip.portrange.first=1024
sysctl net.inet.ip.portrange.last=65535
sysctl net.inet.ip.portrange.randomized=0

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

Чёрточки: только ли тире, минус и дефис?

Reading time4 min
Views182K
Однажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.

На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.

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

Об интернационализации приложений

Reading time4 min
Views1.2K
Всегда хочется верить в то, что создаваемый Вами программный продукт выйдет за пределы своей страны. Это с одной стороны. С другой стороны, количество возникающих по этой причине сложностей будет очень велико. В этом посте я постараюсь раскрыть некоторые из них.

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

Рисуем графику через ж… жаваскрипт

Reading time2 min
Views3K
Информация в принципе общеизвестная, но новичкам (вроде меня) может быть будет полезно.

Возникла тут недавно потребность рисовать чарты яваскриптом. В итоге была найден элемент canvas от WHATWG и его спецификация. Вещь в высшей степени привлекательная. Позволяет рисовать вот такие штуки:
штуки
Делается примерно так:
Читать дальше →

15 тезисов о юзабилити тестировании веб-сайтов

Reading time3 min
Views7.1K
Эффективная разработка веб-сайтов (включая дизайн, эстетику, навигацию по сайту и его содержание) предполагает получение обратной связи от пользователей. Обратную связь можно организовать различными способами и на разных этапах жизни веб-сайта. Однако получение обратной связи нельзя рассматривать как универсальное средство для улучшения его эффективности. Только юзабилити тестирование с реальными пользователями может показать, отвечает ли сайт поставленным целям.
Читать дальше →

Анализируем загрузку веб-страницы

Reading time1 min
Views2.1K
Ниже перевод статьи «Optimizing Page Load Time», в которой автор математически рассчитывает оптимальный размер файлов для эффективной передачи при веб-запросах, рассматривает некоторые прикладные вопросы оптимизации загрузки страницы с учетом особенностей браузеров, а также дает несколько развернутых и ценных советов. Мои комментарии далее курсивом.

Существует распространенное мнение, что быстро загружающая страница положительно влияет на впечатление пользователя (improve the user experience). В последние годы многие сайты начали использовать для этой цели технологию AJAX, чтобы уменьшить время ожидания (при загрузке данных). Вместо того, что запрашивать с сервера новую страницу полностью при каждом клике, браузер часто можно либо поменять вид самой страницы (отобразив или скрыв какие-либо блоки), либо подгрузить небольшую порцию HTML-, XML- или JavaScript-кода и внести изменения на существующую страницу. В любом случае, это значительно уменьшает время, проходящее между кликом пользователя и окончанием визуализации браузером нового содержания.

Что влияет на загрузку страницы?



Однако, для большинства сайтов, загрузка страницы затрагивает десятки внешних объектов, основное время загрузки тратится на различные HTTP-запросы картинок, JavaScript-файлов и файлов стилей. AJAX, возможно, поможет в данной ситуации, но ускорение или удаление этих HTTP-запросов может принести гораздо больше пользы, хотя на данный момент нет единого мнения (a common body of knowledge), как именно это следует делать.

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

Стоп! Снято!

Reading time2 min
Views7.2K

О Screencast.


Для начала коротко о том, что такое скринкаст.
Screencast (скринкаст) — Цифровая запись с экрана монитора, со звуком или без.
Так как мы «правильные» пользователи, то будем использовать только Open Source программы.

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

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

CSS: все о сжатии

Reading time1 min
Views1.7K
После статей «Практический CSS/JS: архивируем все!» и «JavaScript: жать или не жать» стало ясно, что проблема уменьшения CSS-файлов в размере действительно актуальна, и общественности хотелось бы аналогичного исследования уже конкретно для такой оптимизации. Которое, собственно, и приведено ниже.

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

График сжатия CSS-файлов

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

Практический JS: разгоняем все, что движется

Reading time1 min
Views890
Примечание: ниже находится перевод статьи «Speed Up Your Javascript Load Time», в ней автор рассматривает некоторые наиболее эффективные техники и методы действия по уменьшению времени отработки JavaScript'а на клиенте. Большая часть из них общеизвестна, но в статье важно не просто их перечисление, а общий подход для решения задачи оптимизации времени загрузки. Далее мои комментарии курсивом.

JavaScript становится все популярнее и популярнее. Каждый уважающий себя вебсайт старается применить его хоть где-нибудь: будь то подгрузка динамических данных через AJAX, или же некоторые специальные (визуальные) эффекты. К несчастью, за все нужно платить: приходится использовать «тяжелые» JavaScript-библиотеки, которые добавляют к размеру вашей страницы десятки или даже сотни килобайтов кода.

Пользователи так ненавидят ждать: им подавай все и сразу. Давайте тогда рассмотрим несколько методов, которые помогут вам «причесать» ваш сайт. Здесь находятся все рабочие примеры, которые будут приведены далее.

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

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

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%");
};


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

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

Десять рекомендаций разработчику программного обеспечения

Reading time6 min
Views2.9K
Разработка комплексных программных систем сопряжена со значительными трудностями, обусловленными необходимостью:
a) быстрого создания прототипа системы,
b) обеспечения качества ее модели и исходных кодов,
с) внесения изменений в течение жизни системы.

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

JavaScript: жать или не жать?

Reading time1 min
Views1.8K
После публикации статьи на тему архивирования JS/CSS-файлов для последующей выдачи клиенту, я задумался на тему, какой же метод минимизации (minify) следует использовать. В докладе на конференции ClientSide'2007 не удалось установить четкого критерия, чем и как лучше всего сжимать JavaScript-файлы. Данная заметка посвящена рассмотрению как раз этой проблемы.

Задача



В качестве цели исследования был закреплен анализ всех известных средств статической минимизации JavaScript-кода, после чего нужно было ответить на три основных вопроса:

  • Имеет ли смысл пользоваться каким-либо минимизатором JS-кода?
  • Есть ли среди них универсальное средство, показывающее лучшие результаты в подавляющем большинстве случаев?
  • Если такого средства нет, то каковы критерии использования набора инструментов?


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

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

Идеальное комментирование

Reading time5 min
Views1.4K
Как можно понять из недвусмысленного заголовка выше — речь пойдет о том, чем мы пользуемся в глобальной сети всё больше и больше — комментированием уникальных (и не очень) материалов на разнообразных социальных (и опять же не очень) сервисах, сайтах, блогах, социальных сетях (социальные социальные сети — как звучит! Наверное есть где-то антисоциальные).
Идеальное комментирование
Почему так происходит? Потому, что каждый сайт считает своим долгом предоставить возможность пользователю оставлять свое мнение к какому-либо материалу (будь то статьи, программы или что-либо другое). Не могу сказать, что это плохо, или хорошо. Я считаю, что каждый функционал должен создаваться под аудиторию, а не подгонять аудиторию под определенный функционал. Хотя опять же обе ситуации сосуществуют вместе и довольно мирно — зависит от типа пользователя, и его инициативности.
По всей видимости меня явно не туда понесло, пожалуй закруглюсь с предисловием, скажу только, что дальше в статье пойдет речь о том, что же нужно людям от комментариев, и непосредственно от формы комментирования, с помощью которой мы и имеем возможность оставить свое мнение. Приступим.

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

Практический JS: оптимизируем CSS expressions

Reading time1 min
Views1.2K
Примечание: ниже находится перевод статьи «CSS Expression Optimization», в которой автор немного освещает использование и проблематику динамических свойств в CSS (aka CSS expressions). Также автор предлагает способ их оптимизации (исполнение один-единственный раз вместо постоянного выполнения). Далее приведены несколько тезисов с ClientSide'2007 по заявленной тематике. Мои комментарии даны курсивом.

CSS expressions были впервые представлены в Internet Explorer 5.0, который позволял назначать JavaScript-выражение в качестве CSS-свойства. Например, следующий код позволит разместить элемент в зависимости от того, какого размера окно браузера.

#myDiv {
   position:   absolute;
   width:      100px;
   height:     100px;
   left:       expression(document.body.offsetWidth  - 110 + "px");
   top:        expression(document.body.offsetHeight - 110 + "px");
   background: red;
}


Не самый лучший способ решения поставленной задачи, но в качестве примера его достаточно.

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

XSS-червь: кто меньше?

Reading time2 min
Views9.5K
Наткнулся на днях на новость о конкурсе, в котором предлагают создать минимальный JavaScript-код, который будет сам себя копировать дальше. Автор конкурса — Robert Hansen aka RSnake, достаточно крупный специалист по информационной безопасности.

Условия



По условиям конкурса от кода требовалось следующее:
Читать дальше →

Практический 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 →

Флажки

Reading time1 min
Views3.6K
По-моему иконки с флагами двухсот сорока семи государств мега-полезный комплект. И, даже, если вы будете регулярно использовать только одну-две, полезно будет знать где их взять, на всякий случай.
иконки-флаги
Все иконки проименованы в соответствии с международным стандартом ISO:3166-1, хранятся в двух форматах: png и gif, и могут использоваться в любых целях.
Спасибо Марку Джеймсу (Mark James, famfamfam.com).
Читать дальше →

Устранение мигания фоновых картинок в IE6

Reading time1 min
Views1.4K
Часто, на этапе тестирования сайта в разных браузерах, приходилось сталкиваться с неприятным эффектом «мигания» фоновых изображений в IE6, которое проявляется при наведении курсора на ссылку, являющуюся блочным элементом. Мигание происходит из-за того, что браузер производит перезагрузку всех фоновых картинок с сервера.

Для устранения мигания нужно подключить к веб-странице небольшой код на JavaScript:
var m = document.uniqueID
&& document.compatMode
&& !window.XMLHttpRequest
&& document.execCommand;

try{
     if(!!m)
      {
         m("BackgroundImageCache", false, true)
      }
   }
   catch(oh){};

PSPI — запуск фотошопных плагинов под Гимпом!

Reading time1 min
Views2K
Ну вот, наконец то мне немного подняли кармы, попробую написать здесь свой первый топик…
Итак, чего мне всегда не хватало при работе с GIMP-ом, так это фотошопных плагинов. Да, безусловно, там есть свои средства обработки изображений, но их, нередко, не хватает. Когда, в очередной раз, на «лепре» выложили отфотошопленный фильтром Fractalius снимок, меня заели завидки и я полез дотошно гуглить что-то подобное под гимп. И нашел PSPI — «переходник» между GIMP и «3rd-party Photoshop plug-ins (.8bf files)». Линуксовый вариант PSPI был выпущен еще в марте 2006 года, но, как выясняется, он нем знают далеко не все…
Читать дальше →

Краткий справочник по PostgreSQL 8.3

Reading time1 min
Views3.4K

Information

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