Pull to refresh
0
0
Михаил @slakey

User

Send message

Онлайн шоппинг, или одеваемся в Европе дёшево. Часть 1 — Начало.

Reading time7 min
Views5.1K
Первая статья для нытиков (это те, которые постоянно ноют на хабре: «Ну по-че-мууу, по-че-мууу техника Apple в России в два раза дороже чем в Европе, а-а-а?») и просто здравомыслящих людей, который предпочтут купить качественные джинсы Levi's производства Мексики, сделанные для внутреннего рынка САСШ, за 40$ с доставкой, а не платить русским барыгам 4000р. за польское говно с лэйблом Levi's.

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

Начнём?
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments318

Обучаем HID устройство (читай BT-клавиатуру) работать правильно

Reading time6 min
Views80K
Приветствую, хабралюди!
На ДР, мне друзья подарили BT-клавиатуру. Маленькая, беленькая, симпатичная, Удобная!
Подключил ее к своему Android 2.3.5 (SGSII), стал с ее помощью лазить по меню, запускать программы, дошел до Вконтакте и решил написать сообщение… а вот переключить на русский язык не смог, но как оказалось позже, это еще были только цветочки! Но кое-что мне удалось. Интересно как?
Вперед по кат...
Total votes 100: ↑93 and ↓7+86
Comments82

Наш велосипед или скрипты, облегчающие жизнь админа

Reading time2 min
Views39K
image
В комметариях к одной из предыдущих статей была просьба выложить на всеобщее обозрение все наши наработки, используемые в повседневной жизни. Общими усилиями все было собрано, описано и выложено на github.
Под катом ссылка на репозиторий и краткое описание скриптов.
Читать дальше →
Total votes 42: ↑38 and ↓4+34
Comments21

Мониторинг PostgreSQL + php-fpm + nginx + диска с помощью Zabbix

Reading time11 min
Views35K
Много информации в сети по Zabbix, много и шаблонов самописных, хочу представить на суд аудитории свои модификации.
Zabbix — очень удобный и гибкий инструмент мониторинга. Хочешь — сотню мониторь, хочешь — тысячу станций, а не хочешь — следи за одним сервером, снимай сливки во всех разрезах. Буду не против отдать на github, если кто коллекционирует схожие.

image

Так случилось, что решили мы выложить на хостинг базу данных с оберткой из php-fpm+nginx. В качестве БД — postgres. Мысли собирать данные о работе машины были еще до покупки хостинга — это нужно, это полезно! Волшебным пенделем к внедрению системы послужили тормоза жесткого диска на нашей VDS станции — в начале скриптом каждую минуту кладем время и замерянную скорость в файл, а потом в экселе строим графики, сравниваем как было/стало, снимаем количественную статистику. И это всего один параметр! А вдруг виноват не VDS, а наши приложения, которые на нем работают. Вобщем, мониторить надо много, мониторить надо удобно!
Читать дальше →
Total votes 23: ↑22 and ↓1+21
Comments34

Обзор CentOS 7. Часть 4: Смягчение DDoS атак TCP SYN Flood. Тест в облаке бесплатно

Reading time5 min
Views23K
В первой части обзора CentOS 7 было рассказано о поддержке контейнеров Linux в Cent OS 7. Во второй части мы поговорили об управлении идентификацией. В третья части обзора мы коснулись сетевой файловой системы NFS и ее окружению. В этой статье поговорим о смягчении DDoS атак TCP SYN Flood. В конце поста ссылка на бесплатное тестирование CentOS 7 в облачной VPS от Infobox.



DDoS (Distributed Denial of Service) атаки становятся все более частым явлением, из-за того, что бизнес становится все более зависимым от сети Интернет. Одна из самых распространенных видов DDoS – SYN Flood. Эта основная атака конечных хостов, ставящая ваш сервер на колени. В результате ваш сервер не может правильно обрабатывать входящие запросы.

Важно заметить, что описанные механизмы защиты доступны в CentOS 7, но не включены по умолчанию.
Читать дальше →
Total votes 20: ↑15 and ↓5+10
Comments1

Пишем простую систему рекомендаций на примере Хабра

Reading time4 min
Views40K

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

  1. Что такое рекомендательная система
  2. Интуиция
  3. Теория
  4. Реализация: код и данные
  5. Сервис Хабра-рекомендаций
  6. Хабра-аналитика

Читать дальше →
Total votes 28: ↑24 and ↓4+20
Comments16

Continuous Integration в 10 строках кода или зачем нужны BuildBot, Jenkins, TeamCity и подобные

Reading time5 min
Views60K
Заметка рассчитана на тех, кто уже знает, что такое Continuous Integration, но еще не выбрал, какую именно систему внедрить у себя.

Почитать, что такое CI и зачем его использовать, можно в Википедии и здесь же на Хабре: статья 1, статья 2, тег CI.

А я расскажу, на что стоит обратить внимание при выборе CI для своего проекта, почему стоит использовать готовую стороннюю систему и не стоит ввязываться в написание собственного «велосипеда».


Началось с того, что в одной IT-компании случился такой разговор между коллегами из соседних отделов:

K1: У вас continuous integration есть?
K2: Есть, запускаются тесты на каждый коммит в транке.
К1: На чем работают?
К2: Собственный скрипт. Сейчас переходим на Buildbot.
К1: Может я чего-то не понимаю, но что там сложного? Апнуться, запустить тесты, отправить результат, зачем какой-то Buildbot, проще же самим написать?

Подобные рассуждения — «да зачем какое-то сторонее continuous integration, что там сложного, сейчас сами скриптик наваяем» — мне встречались достаточно часто, так что хочу на примере показать, чего скорее всего будет не хватать в простом «наколеночном» варианте.

Итак, пишем «свой маленький скриптик». У меня получилось уложиться в 10 строк, включая shebang, задание в кронтабе и настройку отправки писем.
Читать дальше →
Total votes 34: ↑26 and ↓8+18
Comments11

Современный бэк-офис IT-компании

Reading time11 min
Views53K
В одной из дискуссий недавно, я перечислил основные системы, делающие работу ИТ-компании цивилизованной. Список получился весьма обширный, и я решил оформить его как самостоятельную статью.

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

Всё ниженаписанное касается компаний/отделов, в которых работает работает квалифицированный персонал, то есть курсы «офис для начинающих» им не нужны. Так же как не нужны групповые политики на рабочих станций и специальный админ для перекладывания ярлычков на рабочем столе и установки любимой программы. Другими словами, это бэк-офис айтишников, значительно отличающийся от бэк-офиса остальных отделов.

Краткий спойлер содержимого: VCS, репозиторий исходного кода, code-review, build-сервера, CI, таск-трекер, вики, корпоративный блог, функциональное тестирование, репозиторий для пакетов, система управления конфигурацией, бэкапы, почта/jabber.

Картинка с фрагментом обсуждаемой инфраструктуры:


Читать дальше →
Total votes 56: ↑50 and ↓6+44
Comments29

Делаем dDNS-клиент для DNS Яндекса на MikrotikOS

Reading time4 min
Views26K
Зашёл недавно с другом разговор про DynDNS и подобные сервисы, и я вспомнил что давно хотел реализовать аналог на базе API которое предоставляет Yandex для управления DNS-хостингом. Уже несколько лет я владею чудесной железкой Mikrotik RB750GL и очень хотелось чтобы обновляла запись именно она.
Но до недавнего времени это было не возможно, так как MikroTik умеет скачивать файлы только по HTTP, а API Yandex работает только по HTTPS. И вот зайдя на Wiki Mikrotik увидел заветную запись:
Fetch now supports HTTPS protocol. By default no certificate checks are made, but setting check-certificate to yes enables trust chain validation from local certificate store. CRL checking is never done.

Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments17

Hyperlapse: сервис для обзора Google Street View

Reading time1 min
Views26K


По своей сути это time-lapse, с использованием в качестве изображения Google Street View.

Ребята из Tehan+Lax Labs реализовали Hyperlapse.js на основе Google Street View. Так же сделана демка, с использованием собственно Hyperlapse.js, Three.js (r57), модифицированная версия GSVPano.js, и Google Maps API v3.

Исходники доступны на github.

Можете посмотреть сразу работу этой штуки, в Киеве, например.
Читать дальше →
Total votes 83: ↑77 and ↓6+71
Comments21

Оперативная реакция на DDoS-атаки

Reading time4 min
Views51K
Один из ресурсов, за которым я присматриваю, вдруг стал неожиданно популярным как у хороших пользователей, так и у плохих. Мощное, в общем-то, железо перестало справляться с нагрузкой. Софт на сервере самый обычный — Linux,Nginx,PHP-FPM(+APC),MySQL, версии — самые последние. На сайтах крутится Drupal и phpBB. Оптимизация на уровне софта (memcached, индексы в базе, где их не хватало) чуть помогла, но кардинально проблему не решила. А проблема — большое количество запросов, к статике, динамике и особенно базе. Поставил следующие лимиты в Nginx:

на соединения
limit_conn_zone $binary_remote_addr zone=perip:10m;
limit_conn perip 100;

и скорость запросов на динамику (fastcgi_pass на php-fpm)
limit_req_zone $binary_remote_addr zone=dynamic:10m rate=2r/s;
limit_req zone=dynamic burst=10 nodelay;

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

Но плохиши продолжали долбить, и захотелось их отбрасывать раньше — на уровне фаервола, и надолго.

Сначала сам парсил логи, и особо настырных добавлял через iptables в баню. Потом парсил уже по крону каждые 5 минут. Пробовал fail2ban. Когда понял, что плохишей стало очень много, перенёс их в ipset ip hash.

Почти всё хорошо стало, но есть неприятные моменты:
— парсинг/сортировка логов тоже приличное (процессорное) время отнимает
— сервер тупит, если началась новая волна между соседними разборками (логов)

Нужно было придумать как быстро добавлять нарушителей в черный список. Сначала была идея написать/дописать модуль к Nginx + демон, который будет ipset-ы обновлять. Можно и без демона, но тогда придётся запускать Nginx от рута, что не есть красиво. Написать это реально, но понял, что нет столько времени. Ничего похожего не нашёл (может плохо искал?), и придумал вот такой алгоритм.

При привышении лимита, Nginx выбрасывает 503-юю ошибку Service Temporarily Unavailable. Вот я решил на неё и прицепиться!

Для каждого location создаём свою страничку с ошибкой
error_page 503 =429 @blacklist;

И соответствующий именованный location
location @blacklist {
    fastcgi_pass    localhost:1234;
    fastcgi_param   SCRIPT_FILENAME    /data/web/cgi/blacklist.sh;
    include         fastcgi_params;
}

Дальше интересней.
Нам нужна поддержка CGI-скриптов. Ставим, настраиваем, запускаем spawn-fcgi и fcgiwrap. У меня уже было готовое для collectd.

Сам CGI-скрипт
Читать дальше →
Total votes 57: ↑50 and ↓7+43
Comments50

Бесплатные VM с Windows для тестирования сайтов на старых версиях IE

Reading time1 min
Views149K
Microsoft уже несколько лет раздаёт бесплатные виртуальные машины с Windows XP, Vista и 7 для тестирования веб-сайтов на старых версиях браузера Internet Explorer.

Все образы укомплектованы соответствующей версией IE и апдейтами безопасности. Для XP установлены апдейты до октября 2012 года, для остальных — до марта 2011 года. В остальном — это чистая свежая инсталляция Windows без особенных модификаций. Образы в формате VHD можно загрузить в Microsoft Virtual PC или другой пакет виртуализации. Самораспаковывающиеся архивы RAR для удобства скачивания разбиты на части по 700 МБ.
Читать дальше →
Total votes 66: ↑53 and ↓13+40
Comments44

Принт-сервер на FreeBSD

Reading time3 min
Views13K
Итак у нерадивого техсуппорта за плохое поведение был изъят принтер Xerox Phaser 3117. Так как десктопом (да и не только) на работе я (и не только я) использую FreeBSD, то возникла необходимость прикрутить данный принтер к данной ОС. А так как принтером пользуюсь не только я, то нужно его расшарить еще по сети как то.
Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments10

Лайтпак 6 доступен для предзаказа

Reading time1 min
Views27K
Уже сегодня стала доступной для предзаказа 6я версия Лайтпака.
В новой ревизии устройства улучшена цветопередача в диапазоне цветов с низкой яркостью. Новая плата получила акриловую защиту, которой прикрыты все разъемы на плате. По словам разработчиков это самое удобное и лучшее решение для такого типа устройств. Лайтпак 6 получил квадратный корпус с удобными разъемами, теперь не придется зачищать проводки и прикручивать их отверткой. Скоро появится видео.

image
Читать дальше →
Total votes 105: ↑100 and ↓5+95
Comments109

Как из домашнего компьютера сделать «два в одном» – домашний кинотеатр + персональный компьютер

Reading time12 min
Views392K


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

Читать дальше
Total votes 154: ↑133 and ↓21+112
Comments125

Скрипт для Notepad++ на Python

Reading time4 min
Views65K

Введение


Думаю, многим известен Notepad++ — удобная бесплатная утилита, выступающая в качестве «продвинутой» замены стандартному Блокноту Windows. Как и при работе в любом текстовом редакторе, в Notepad++ время от времени возникает необходимость автоматизировать какие-либо повторяющиеся действия, которые в силу сложности логики невозможно записать как макрос. К счастью, для решения этой задачи нет необходимости переключаться из Notepad++ в, например, Word, дабы воспользоваться встроенным в него VB.

Среди плагинов для Notepad++ существуют расширения, реализующие возможность написания скриптов для Notepad++ на разных языках, таких как JavaScript, Lua, PHP или Python. Именно на последнем я и решил остановиться для решения своей задачи.
Читать дальше →
Total votes 82: ↑78 and ↓4+74
Comments22

Бесплатный облачный PHP-MySQL хостинг для небольшого сайта на основе Amazon AWS

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

Боевая задача.


Предположим нам хочется захостить небольшой проектик где-нибудь в надежном и не особо тормозящем месте. А поскольку сайт небольшой, то не будем заморачиваться и захотим от хостинга что-нибудь самое простое. Для наших целей вполне хватит PHP, MySQL и доступа по FTP.
Для решения этой задачи идеально подходит Веб сервис от Амазона в котором удивительным образом сочетается способность выдерживать большие нагрузки с бесплатным пакетом ресурсов на первый год после регистрации. В бесплатный пакет входит много чего, но в данный момент нас будут интересовать:
  • Виртуальный сервер в формате micro на основе Linux с доступом по SSH.
  • 30Гб места в Elastic Block Storage плюс 1Гб под бэкапы.
  • 15 Гб трафика в месяц.
  • Выделенный внешний IP адрес.

Причем все это при желании можно зарегистрировать и подготовить к работе за полчаса, но понадобится кредитная карта, которую примет Amazon (и снимет 2 доллара) и сотовый телефон под рукой (домашний не подойдет).

Читать дальше →
Total votes 155: ↑140 and ↓15+125
Comments88

SSH для частого использования

Reading time2 min
Views69K
Наверное, многие из читающих «Linux для всех» пользуются SSH. Я, например, администрирую большое количество UNIX-систем, и, чтобы быстро получить доступ к нужной машине, приходится использовать возможности протокола на уровне, отличном от примитивного.
Читать дальше →
Total votes 159: ↑145 and ↓14+131
Comments120

MySQL Performance real life Tips and Tricks

Reading time9 min
Views37K
Пообещал вчера написать статью о реальных случаях оптимизации БД MySQL.
Пришлось сегодня вставать утром пораньше чтобы воплотить обещанное в жизнь.
Централизованное управление мыслями поддерживать еще сложно, поэтому не судите строго за казусы и ляпсусы в моей статье.

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

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

Читать дальше →
Total votes 147: ↑141 and ↓6+135
Comments93

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity