Search
Write a publication
Pull to refresh
1
0
Роман Смирнов @NikoB

User

Send message

Свежее сено от коровы, или 3000 иконок подано!

Reading time2 min
Views4.6K
После выпуска 2000 иконок FatCow прошло более года. Пошел четвертый год рисования. Страницу посетило 560,096 (288,511+235,221+36,364) посетителей. Чтобы дойти до 3500 иконок, работы хватит до февраля 2013 года. Если добавить размер 64x64, то до середины 2015-го года. Пока вложено $76778 и 2000 часов работы. Тут выложили 3000 иконок, за неделю до выпуска на официальном сайте, ибо владельцы коровы (Bluehost) заняты покупкой крокодила (HostGator).

image

Чтобы понять, какой набор иконок самый уникальный в мире, пришлось рассортировать 7422 иконок. Результат не подвел…

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

Солим пароли

Reading time2 min
Views93K
Данная заметка призвана пролить свет на использование соли при хешировании пароля. Если посмотреть в комментарии к этому топику habrahabr.ru/post/145642, то возникает подозрение, что некоторые люди неправильно понимают предназначение соли. На примерах постараюсь показать, для чего используется этот механизм. Всех заинтересовавшихся прошу под кат.
Читать дальше →

Простая настройка .htaccess для production

Reading time2 min
Views20K
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.

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

Защита для NGINX — NAXSI

Reading time3 min
Views39K

Что такое NAXSI ?


NAXSI = NGINX ANTI XSS & SQL INJECTION
Проще говоря, это файрвол веб-приложений (WAF) для NGINX, помогающий в защите от XSS, SQL-инъекций, CSRF, Local & Remote file inclusions.
Отличительными особенностями его являются быстрота работы и простота настройки. Это делает его хорошей альтернативой например mod_security и апачу.

Зачем нужен NAXSI ?

Очевидно, лучше всего защищаться от вышеперечисленных атак правильно написанным кодом. Но есть ситуации, когда WAF (и в частности naxsi), поможет:
  • Низкое качество кода сайта, при отсутствии возможности/ресурсов все выкинуть и переписать нормально.
  • “Закрытый” код, в котором невозможно исправить ошибки.
  • Неизвестное качество кода в важном для бизнеса участке.


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

Простой универсальный переключатель на JavaScript

Reading time8 min
Views53K
При разработке сайтов нередко возникает необходимость в каком-либо переключении их состояния, обычно для этого используются псевдоссылки: скрыть или показать подсказку, поле ввода, другую часть страницы.

Можно каждый раз писать JavaScript-код и стили к нему, но со временем это приводит к разрастанию кода, с чем в определенный момент мы и столкнулись.

Однако проблему можно решить гораздо элегантнее. Рассматриваемое ниже решение отличается простотой и не требует последующего участия JavaScript-программиста, так как верстальщик сможет самостоятельно вносить нужные изменения в стили.
Читать дальше →

Разработка простого расширения для google chrome

Reading time6 min
Views47K
imageРасширения для браузеров очень популярны в наше время. Повод написать какое-либо расширение всегда найдется, и их напашется еще много.

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

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

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

Несколько полезных сервисов. Продолжение

Reading time2 min
Views29K
Продолжая тему предыдущего поста Несколько полезных сервисов, хочу поделиться новыми ссылками.

Экспорт контента
  • rss-script.ru – сервис для вставки содержимого RSS-ленты на сайт. Для его работы необходимо лишь сгенерировать скрипт на сайте и вставить его себе. Есть несколько настроек, позволяющих изменить вид содержимого
  • twitterfeed.com позволяет постить содержимое RSS-ленты в Twitter, Facebook и LinkedIn. Достаточно простой сервис, нет дополнительных настроек, но есть счётчик кликов
  • ifttt.com – многофункциональный сервис, позволяющий связывать различные аккаунты (описание)

Песочницы
К уже названным ранее cssdesk.com и jsfiddle.net можно добавить dabblet.com, jsbin.com (добавил Jekyll). Также есть песочница для SQL – www.sqlfiddle.com (добавил volinrok).

Шаринг фрагментами текста/кода
Для того, чтобы поделиться фрагментом текста или кода, можно использовать всем известный pastebin.com, а можно воспользоваться его альтернативами:
Мне больше всех нравится Gist на GitHub. Во-первых, все текстовые фрагменты привязываются к вашему аккаунту; во-вторых, можно создавать несколько связанных Gist'ов; и в третьих, есть возможность комментирования.
Читать дальше →

Как правильно сортировать контент на основе оценок пользователей

Reading time5 min
Views93K


В оригинале название звучит как «How Not To Sort By Average Rating». Я подумал, что дословный перевод «Как не сортировать по усреднённому рейтингу» будет малопонятен и хуже отражает содержание статьи.

Постановка проблемы


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

Неправильное решение №1

Рейтинг= (Число положительных оценок) - (Число отрицательных оценок)

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

Dropquest 2012 начнется на следующей неделе

Reading time3 min
Views1.9K
Dropquest Logo
Многие из вас участвовали в квесте Dropquest в прошлом году, где вы попали на волшебное путешествие через Dropbox в интернете. Судоку были решены, музыкальные головоломки были расшифрованы, оригами были сложены, и драконы были побеждены. В общем почти полмиллиона участников Dropquest были вознаграждены за свою хитрость, мастерство и усилия. Это было более года назад, и мы до сих пор скрывали наши карты и придумывали новые пазлы чтобы сделать достойного приемника первому квесту Dropquest.

Вот что мы хотим сказать вам о грядущем Dropquest на следующей неделе


  • Квест возвращается.
  • Станет еще сложнее.
  • Будет еще эпичнее.

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

+1 расширение для Google Chrome

Reading time1 min
Views35K
А давайте это будет такой пост, где каждый из нас рекомендует одно полезное расширение для Chrome?
Вот и славно! Я начну.

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

image

upd: не забывайте давать ссылку на расширение и, при необходимости, вставляйте скриншот. Спасибо.

Кропотливая оптимизация PHP-приложений (рассматриваю PHP5, но большинство справедливо и для 4-й ветки)

Reading time9 min
Views8.9K

Когда во сне снится «ой а если сервера не хватит...»


Для начала, Доброй Ночи. Пишу что-то полезное вроде впервые (если не считать разного рода полу-тестов в моём блоге). Человек я допытливый до жути, неожиданно в голову пришло, что могу помочь сэкономить кому-то много времени ;).


танцуем с бубном

Серия 50+ советов по оптимизации PHP кода. «За» и «против» такой оптимизации. Первые 10 советов.

Reading time6 min
Views21K
Это перевод первых 10-ти советов статьи по оптимизации PHP кода. На хабре есть перевод более старой версии статьи — 40 советов по оптимизации вашего PHP-кода

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

Пишу по частям, иначе получится очень много материала сразу.

Это моя первая статья на хабре, надеюсь она получилась интересной.

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

Сборник советов и фактов по оптимизации PHP-скриптов

Reading time9 min
Views45K
image Эту статью давно стоило переписать (слишком много «экономии на спичках»), но руки не доходят. Пускай весит и напоминает о том, как мы глупы в молодости.
Одним из основных критериев успешности любого интернет-ресурса является скорость его работы и с каждым годом пользователи становятся всё более и более требовательными по этому критерию. Оптимизация работы php-скиптов — это один из методов обеспечения скорости работы системы.
В этой статье я бы хотел представить на суд общественности свой сборник советов и фактов по оптимизации скриптов. Сборник собирался мною достаточно долго, основан на нескольких источниках и личных экспериментах.
Читать дальше →

Эмуляция многопоточности в PHP

Reading time10 min
Views30K
Суть многопоточности (для приложения) состоит в том, что процесс может состоять из нескольких (однотипных) потоков, выполняющихся «параллельно», то есть без упорядочивания по времени — выполнился один, пошел следующий. Использование многопоточности позволяет ускорить выполнение задачи и/или снизить нагрузку, таким образом, улучшая быстродействие самого приложения.

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

Я рассмотрю простой пример, как можно достичь эмуляции многопоточности в PHP.
Читать дальше →

I'm Feeling Lucky в стандартном поиске браузера

Reading time2 min
Views5.9K
Когда-то давно, когда горы были выше, а деревья зеленее, в браузерах поиск в адресной строке работал так, как это было правильно: он использовал функцию Google I'm Feeling Lucky. Вы могли легко вводить «хабр» вместо «habrahabr.ru», вводя «Сан-Франциско», вы сразу же попадали на сайт этого города в Википедии (ведь туда вы и хотели, правда?), а фраза «php in_array» моментально перекидывала вас на документацию по этой функции, в синтаксисе которой вы в очередной раз забыли, needle или haystack идет первым.

Но потом Гугл понял, что $110 млн в год, которые они теряют из-за того, что вам никто не показал рекламу на эти запросы — это непозволительно много, и больше браузеры по умолчанию не хотят демонстрировать нам всю телепатическую магию поиска I'm Feeling Lucky, а вместо этого демонстрируют промежуточное звено поисковой страницы, на которой вы все равно как всегда сразу же нажимаете на первую ссылку (ведь где еще может быть Википедия?), но зато посмотрели рекламу и добросовестно уменьшили рекламодателю CTR.

Как вернуть все взад

Наносим удар по ddos ботнету своими силами

Reading time7 min
Views35K


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

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

Правильная настройка DDoS Deflate

Reading time1 min
Views17K
Оказывается такой удобный инструмент для борьбы с ДДОС атаками (или вернее со спамботами) как DDoS Deflate (который применяется тогда, когда в iptables отсутствует возможность использовать модуль connlimit), после инсталяции неправильно склонен себя конфигурировать. Это приводит к тому, что защита не работает.
Читать дальше →

Простой и эффективный метод отразить http DDoS от 50мбит с помощью nginx и iptables

Reading time7 min
Views67K
Здравствуй, Хабр!
Предлагаю твоему вниманию простой и в то же время эффективный метод борьбы с http DDoS. На основе сервера Xeon 2.5GHz / 4Gb RAM / SAS можно отражать атаку примерно до 300 Мбит/с (значение получено методом экстраполяции).

Способ реализация

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

Область применения

Борьба с Http DDoS на выделенном сервере или ВПС. Максимальная возможная мощность сдерживания DDoS атаки ограничивается физическими возможностями сервера и пропускной способностью канала.

SEO под DDoS-ом

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

Стоимость и эффективность

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

Mailcheck.js — проверка емейла на опечатки

Reading time1 min
Views3.8K

jQuery плагин Mailcheck (github) — клиентсайд проверка емейла на опечатки по заранее определённму списку (к примеру, наиболее популярных почтовых сервисов).

Демка | сорсы демки (jsfiddle)


По заявлению (en) авторов (Kicksend), сей плагин увеличил кол-во подтверждений емейла при регистрации на 50%.

Под катом инструкция для кириллических доменов и алгоритмическая задачка

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Registered
Activity