Как стать автором
Обновить
50
0
Сергей @zar0ku1

Пользователь

Отправить сообщение

MySQL шпаргалки

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

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

Читать дальше →
Всего голосов 215: ↑193 и ↓22+171
Комментарии230

Защита от DDOS атаки случайными аргументами при помощи Nginx

Время на прочтение1 мин
Количество просмотров3.4K
Я встретился с новым типом ботнета. Если старый долбил только в главную, то новый действует иначе. Он посылает множество запросов вида
GET someurl/?t1555ss5326=5326, где someurl — найденный ботом php скрипт.
Но если атакуемый сайт поддерживает ЧПУ, то такие запросы к нему должны отсутствовать в принципе. ЧПУ сейчас является стандартом де-факто, по этому можно смело отрезать такие запросы, логируя IP ботов.
Для этого очень удобен nginx, и его переменная is_args, которая имеет значение "?", если в URI идут аргументы. Базовая конструкция выглядит так:

if ($is_args = "?") {
return 403 444;
}

Очень просто и красиво, правда?
Вот как выглядит LA после включения этой защиты:
load average: 1.50, 3.09, 6.96
Текущий ботнет из ~20000 зомби, делают 5-8k одновременных запросов.
Всего голосов 94: ↑79 и ↓15+64
Комментарии55

Инвентаризация компьютеров в сети не вставая со стула или OCS Inventory + GLPI

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

Всем доброго времени суток!


Как видно из заголовка, речь пойдет о двух программах:
1. Open Computers and Software Inventory
OCS-Inventory основан на распределяемых модулях, устанавливаемых на инвентаризируемые машины, которые отсылают подробную информацию о системе, подключенных устройствах и установленном ПО в выделенную базу данных.
Поддерживаются следующие OS: Microsoft Windows, Linux, *BSD, Sun Solaris, IBM AIX, HP-UX, MacOS X

2. GPLI — Guestion Libre de Parc Informatique
Проект предназначен для работы с базой данных IT и телекоммуникационного оборудования, установленного на предприятии. Также имеется возможность ведения учета расходных материалов и организации службы технической поддержки по расписанию и по заявкам пользователей.

На просторах сети интернет достаточно много информации о настройке данной связки, но мне не встретилось ни одного подробного how to, где были бы решены все вопросы с локализацией. Поэтому я изложу компиляцию найденых решений и собственных доработок.
Достали бухи? Прошу под кат!
Всего голосов 48: ↑44 и ↓4+40
Комментарии28

Несколько советов для PHP-разработчиков

Время на прочтение4 мин
Количество просмотров8K
image Хочу опубликовать небольшой сборник советов для современных PHP-разработчиков. Я умышленно не связываю их с теми или иными фреймворками, библиотеками и тп. Надеюсь, что мои советы помогут кому-то лучше понять PHP, научиться лучше его использовать. Некоторые из них могут быть не специфичны для PHP, но для программирования в общем.
Читать дальше →
Всего голосов 214: ↑156 и ↓58+98
Комментарии202

Краткий обзор бесплатных XML редакторов

Время на прочтение2 мин
Количество просмотров349K
Хороший XML редактор бережет нервы разработчика и делает процесс работы с XML легким и приятным. Вот так я подумал, когда начал пользоваться редактором Altova XMLSpy. Эта программа, безусловно, стоит своих денег.

Но руководство поставило задачу найти бесплатный аналог. Результатом поиска краткий обзор бесплатных XML редакторов.

Читать дальше →
Всего голосов 51: ↑39 и ↓12+27
Комментарии48

Иконки типов файлов

Время на прочтение1 мин
Количество просмотров6.3K
По просьбе гражданина dio нарисованы 25 иконок типов файлов в размерах 64х64, 48х48, 32х32 и 16х16. Иконки распространяются на условиях лицензии CC BY-ND.
Этот сет является дополнением к первому и второму бесплатным наборам.
Скачать иконки можно здесь

image
Всего голосов 125: ↑106 и ↓19+87
Комментарии134

Горячие клавиши в шелле

Время на прочтение3 мин
Количество просмотров113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Всего голосов 150: ↑145 и ↓5+140
Комментарии59

Нормальное скачивание файлов

Время на прочтение1 мин
Количество просмотров20K
Сперва, хотелось бы сказать огромное спасибо за корректное объяснение причин проблемы хабраюзеру xn__p2a и принести извинения другим хабраюзерам за некоторую некомпетенцию в вопросе, имевшую место.

Наверное, все пользователи этого браузера не раз сталкивались со следующей проблемой: при попытке скачивания файла получаем следующее:
image
в очередной раз я словил этот баг когда захотел скачать flash player через только_что_поставленную Opera 10.60 и меня это сильно огорчило…
Да что-ж такое-то?
Всего голосов 200: ↑167 и ↓33+134
Комментарии112

Правильная обработка ошибок в PHP

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

Что я понимаю под правильной обработкой:


  • Универсальное решение, которое можно вставить в любой существующий код;
  • Легко расширяемое решение;
  • В PHP аж три «механизма ошибок»: собственно ошибки (error), исключения (exception) и утверждения (assertion). Свести три механизма к одному — exception. В комментариях к предыдущей статье на эту тему выражалось мнение, что exception это плохой и/или сложный метод обработки ошибок. Я так не считаю и готов это обсудить в комментариях;
  • Опциональное логирование;
  • Общий обработчик exception, который будет поддерживать разные форматы вывода и debug/production режимы;
  • В debug режиме должен выводится trace. Требования к trace: компактный, понятный и по возможности ссылки на открытие файлов в IDE.

Теперь по порядку
Всего голосов 105: ↑84 и ↓21+63
Комментарии102

Высшее образование

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

Объявление: Требуется сотрудник технической поддержки. Обязанности: ответы на звонки клиентов, помощь в погрузо-разгрузочных работах. Требование: высшее образование, опыт работы от 5 лет на аналогичной должности.

Немного утрирую. Но что значит высшее образование в применении к IT? Безусловно, выпускник MIT или Berkley со специализацией в Computer Science — это реально круто.

… но мы же про Россию, да? Менеджер по продажам с дипломом по морской навигации, финансовый директор с диссертацией по органической химии, лингвист-сисадмин…

Впрочем, нет, не лингвист. Прикладная математика и физика. Кафедра гидрогазодинамики. Уравнение Навье-Стокса, эпюры перерезывающих сил… Это очень важная информация, когда мы начинаем обсуждать особенности работы ядра гостевой системы в паравиртулизированной среде. Ну или, хотя бы, ковыряться в питоновском коде, развлекаясь с фрагментами функционального программирования.

Зачем айтишнику высшее образование? Зачем айтишнику какое-нибудь высшее образование (т.е. зачем галочка «есть хоть какое-то в/о»)?

Я слышал несколько аргументов, и ни один из них меня не устроил.

Итак, аргументы от адвоката дьявола:
Читать дальше →
Всего голосов 327: ↑234 и ↓93+141
Комментарии518

Программисты «выше среднего»

Время на прочтение3 мин
Количество просмотров9.9K
Быстро! Ответьте на следующий вопрос:

Как вы оцениваете свой уровень как программиста (ниже среднего, средний, выше среднего)?

Согласно психологическим опросам среди разных групп, около 90% программистов отвечают «Выше среднего».

Очевидно, это не может быть правдой.
Читать дальше →
Всего голосов 227: ↑171 и ↓56+115
Комментарии144

Улучшаем админку

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

И тут на помощь приходит django-admin-tools. С этим приложением минут за 20 можно получить «приборную панель» с произвольной группировкой приложений/моделей, вкладками, любым числом колонок, различными блоками, которые каждый пользователь сможет расставить, как ему удобнее, скрывать и сворачивать по желанию, закладками, настраиваемым меню и удобным способом добавления во все это хозяйство всего, чего только можно придумать.

Вот так, например, сейчас выглядит админка к сайту НадоВместе:

image
(это только часть, вот скриншот целиком)

Разберемся поподробнее.
Читать дальше →
Всего голосов 105: ↑100 и ↓5+95
Комментарии45

Именование узлов в сети

Время на прочтение8 мин
Количество просмотров50K
Хочу поднять вопрос, который, как мне кажется, никто не рассматривал ранее системно. Вопрос звучит так:

как называть узлы и интерфейсы узлов в сети?


Для начала обрисую суть проблемы: когда у вас 2-3-5-10 серверов, то их названия, адреса и т.д. вы быстро запоминаете, и особой путаницы они не вызывают. Но если у вас несколько тысяч серверов (добавим к реальным ещё виртуальные), если у вашего маршрутизатора несколько сотен реальных или виртуальных (в виланах) интерфейсов, каждому из которых нужно дать имя (хотя бы для PTR/A записей в DNS), когда у вас есть интерфейсы для конфигурирования коммутаторов, принт-серверов, сетевых принтеров… В этих условиях нужно реально садиться и думать, как их называть. Лучше садиться думать до того, как начали называть, чем после.

Читать дальше →
Всего голосов 135: ↑121 и ↓14+107
Комментарии87

Обзор и установка почтового сервера iRedMail

Время на прочтение4 мин
Количество просмотров242K
Доброго времени суток!

Представляю вашему вниманию обзор, установку и настройку замечательного пакета iRedMail на базе Debian Lenny.

Читать дальше →
Всего голосов 84: ↑66 и ↓18+48
Комментарии92

Прекратите спрашивать с меня подтверждение

Время на прочтение3 мин
Количество просмотров9.9K
Подтверждение пароля

Задрало.
Настолько плотно прижилась кругом эта дрянь, что и не встретить уже человеческого отношения к себе, как к пользователю.
Читать дальше →
Всего голосов 472: ↑342 и ↓130+212
Комментарии274

3d движок на js + canvas

Время на прочтение2 мин
Количество просмотров14K
Как то раз наткнулся я на забугорную статью про светлое будущие Canvas и WebGL, и была в этой статье картинка с «3d чайничком» нарисованном c помощью canvas'a, поразила она меня ну прям ващеее, понял я что должен сделать нечто подобное, и сделал.

image

Читать дальше →
Всего голосов 115: ↑113 и ↓2+111
Комментарии74

Bespin — редактор от Mozilla основанный на web-технологиях

Время на прочтение1 мин
Количество просмотров2.8K
imageBespin — это эксперимент Mozilla Labs, который предлагает открытую, расширяемую, основанную на web рабочую среду для редактирования кода, которая нацелена на увеличение производительности разработчика, позволяя повышать его опыт и продвигать использование открытых стандартов.

Читать дальше →
Всего голосов 90: ↑83 и ↓7+76
Комментарии55

Google представил API для кроссбраузерного подключения шрифтов

Время на прочтение1 мин
Количество просмотров11K
Google Font API — API для подключеня нестандартных шрифтов.
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="_http://fonts.googleapis.com/css?family=Tangerine">
    <style>
      body {
        font-family: 'Tangerine', serif;
        font-size: 48px;
      }
    </style>
  </head>
  <body>
    <h1>Making the Web Beautiful!</h1>
  </body>
</html>
Читать дальше →
Всего голосов 151: ↑144 и ↓7+137
Комментарии100

Плагин авторизации через Вконтакте, Yandex, Google, OpenID и тп

Время на прочтение1 мин
Количество просмотров19K
В недавнем моем посте «Javascript виджет авторизации OpenID» на хабре, я описал свою разработку виджет-consumer авторизации OpenID.

Прошло время, я получил много положительных отзывов, получил замечания и пожеланию по улучшению виджета. Среди пожеланий развития была просьба создать WordPress плагин и добавить поддержку Вконтакте OpenAPI.
Читать дальше →
Всего голосов 105: ↑88 и ↓17+71
Комментарии101

Колибри: Обзор вашего интернет-трафика в реальном времени

Время на прочтение2 мин
Количество просмотров1.7K
logo
Михаил Натт и Бенни Вонг создали интересный продукт для интернет-аналитики в реальном времени, названный «Колибри» (Hummingbird). Он создан с использованием таких горячих технологий, как Node, Canvas, Web Sockets, MongoDB.
Читать дальше →
Всего голосов 45: ↑37 и ↓8+29
Комментарии11

Информация

В рейтинге
Не участвует
Откуда
Южно-Сахалинск, Сахалин, Россия
Дата рождения
Зарегистрирован
Активность