Pull to refresh
5
0
Агафонов Алексей @Supme

Системный администратор

Send message

СХД за 100 тысяч или как сэкономить на дорогих проектах

Reading time5 min
Views32K
Привет, Хаброжители! Судя по большому числу откликов, тема б/у серверов приобретает все большую популярность. В этой статье мы хотим поделиться с нашими читателями конкретными кейсами, которые нам удалось успешно решить, используя бывшее в использовании серверное оборудование. Все примеры подкреплены цифрами, дабы избежать голословности.
image
За все время нашей работы мы помогли более чем 300 компаниям решить задачи, связанные с ИТ-инфраструктурой, максимально экономя их средства. Названия компаний и имена людей вынесены за скобки, если вас заинтересовал какой-то из нижеперечисленных проектов, наши клиенты могут поделиться своим опытом сотрудничества с нашей компанией и ответить на интересующие вопросы. Также могут написать комментарии внизу многочисленные участники Хабра, кто уже приобретал у нас оборудование.
Читать дальше →

Multi-source репликация в MySQL5.7

Reading time7 min
Views22K
Сегодня мой рассказ будет о такой захватывающей штуке, как репликация баз данных в MySQL из нескольких источников. Отмечу, что данная статья не претендует на звание «истины в последней инстанции» и призвана осветить особенности данной технологии в разрезе возникшей у меня проблемы. Итак, приступим. Однажды в далёкой-далёкой галактике...

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

Kill switch для OpenVPN на основе iptables

Reading time5 min
Views33K
Известно, что при подключении к открытым Wi-Fi сетям ваш трафик может быть легко прослушан. Конечно, сейчас всё больше и больше сайтов используют HTTPS. Тем не менее, это ещё далеко не 100%. Возникает естественное желание обезопасить свой трафик при подключении к таким открытым Wi-Fi сетям.

Популярное решение этой проблемы — подключение через VPN. В таком случае ваш трафик передается в зашифрованном виде до VPN-сервера, и уже оттуда идет в интернет.

У такого решения есть небольшой недостаток: пока VPN-подключение ещё не установлено, все приложения на вашем компьютере (включая открытые вкладки браузера) получают доступ в интернет в обход VPN-подключения.

В этой статье я расскажу, как можно этого избежать.

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

Security Week 52-53: бэкдор у Juniper с толстым слоем криптографии, винтажная Java, гопо-bug bounty

Reading time7 min
Views7.4K
В тот момент, когда елка уже стоит, но салаты еще не нарезаны, самое время в последний раз в этом году поговорить о новостях безопасности. На прошлой неделе я отчитался о «нестандартных» лучших новостях года, и в общем-то за оставшееся время ничего особенного не произошло. Хотя нет, есть одна новость, которая достойна отдельного повествования. Обнаруженные 17 декабря два бэкдора в ПО для сетевых устройств Juniper могли бы пополнить длинный, но невыдающийся список багов, эксплойтов и некорректных конфигураций в маршрутизаторах и домашних роутерах. Но позднее выяснилось, что в этой истории есть масса нюансов, она затрагивает не только тему безопасного кодинга, но и шифрование, и даже появились намеки на участие спецслужб.

В общем, интересное получилось окончание года. Помимо Juniper, еще две популярные новости больше уходят в тему околобезопасной политики. Традиционные правила: каждую неделю редакция новостного сайта Threatpost выбирает три наиболее значимых новости, к которым я добавляю расширенный и беспощадный комментарий. Все эпизоды сериала можно найти по тегу. Первый эпизод нового года выйдет на экраны страны 8 января!
Читать дальше →

Создание веб-сайта. Курс молодого бойца

Reading time24 min
Views871K
Как-то меня попросили провести небольшой семинар в лицее, где я когда-то учился, по созданию веб-сайта. В процессе написания речи я подумал, что она может вылиться в материал, который, возможно, будет полезен многим начинающим в области веб-дизайна, вёрстки веб-страниц и пр. Я не претендую на истину в первой инстанции и всё изложенное носит чисто личностный взгляд на работу с дизайном и кодом. Статья даёт поверхностный взгляд на понятия и средства, которые, на мой взгляд, могут стать неплохим стартом для того, кто готов идти дальше.
Читать дальше →

Совмещаем изучение английского языка с досугом

Reading time7 min
Views48K
Многие люди предлагают различные методики, описывают мобильные приложения, рекомендуют курсы и многое другое, я же хочу рассказать свой личный опыт изучения английского языка на протяжении последних 4 лет.

Как введение могу сказать что более 4 лет назад на самом рассвете моей карьеры в IT я собеседовался в одну всем известную и очень большую иностранную фирму. Как полагается в таком случае собеседование было на английском языке.

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

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

Подробности

Про программистов

Reading time2 min
Views51K
Не смог удержаться — очередной шедевр от 420 к «Часу кода».
Создатели (мультфильма) поддерживают идею увеличения популяции программистов и призывают зрителей по мере сил этому способствовать. Компания Edison всеми руками за такую движуху, ибо чем больше программистов на свете, тем круче.



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

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

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

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

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

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

А другой мальчик был такой умный,
Читать дальше →

Использование хардлинков (hardlink) для инкрементального бекапа Synology DSM

Reading time6 min
Views15K


Система DSM достаточно удобна и по умолчению в системе установлены модули, которые закрывают 95% потребностей рядового (и не очень) пользователя, что называется «из коробки».

Есть и встроенная система резервного копирования: Backup & Replication. Простая, понятная и надежная. В качестве сетевого места назначения в может использовать либо похожую Synology, либо rsync сервер.

К сожалению эта система не умеет делать инкрементальный бекап. Самый примитивный способ обойти это — настроить отдельный бекап на каждый день недели. Таким образом у нас будет 7 папок с резервными копиями, но очевидный минус — хранение полной копии в каждой папке — объем может получиться таким, что не каждый позволит себе такое хранилище.

Итак — настроим полноценный инкрементальный бекап.
Читать дальше →

AMI. Разносторонний Originate. Применение в CTI приложении

Reading time5 min
Views32K
Originate можно перевести с английского как «давать начало». Возможности команды весьма широки и не все очевидны. Originate, среди разработчиков CTI приложений — это одна из наиболее популярных команд AMI. Чаще ее используют для инициации исходящих вызовов и организации обратных звонков. В рамках данной статьи мы рассмотрим расширенные возможности.
Читать дальше →

Прокачка TinyMCE 4

Reading time11 min
Views60K
Здравствуйте, меня зовут Константин, я работаю front-end-разработчиком на информационно-развлекательном портале, основную долю контента которого составляют новости и статьи. И, конечно же, нам было крайне важно организовать удобную работу с порталом для наших редакторов. О том, каких успехов мы добились на данном поприще, и будет эта статья.
Читать дальше →

Недорогая 10GbE инфраструктура для кластеров

Reading time5 min
Views44K
Мы в HOSTKEY регулярно сталкиваемся с необходимостью организации VLAN на скорости 10Гбит для кластеров виртуализации – своих и клиентских. Эта технология необходима для взаимодействия с СХД, для резервного копирования, для доступа у БД и для обеспечения живой миграции виртуальных машин. Всегда возникает вопрос — как сделать это надежно и с минимальными затратами?

До последнего времени минимальные затраты для такого решения были существенными. Самый маленький коммутатор 10GbE был на 24 порта, а самая простая карта – Intel X520 за 500 долларов. Бюджет на порт составлял около 700-1000 долларов, а входной билет был очень высокий.

Прогресс не стоит на месте, в начале 2015 года появился новый класс устройств 10GbE за приемлемые деньги со склада в Москве и под гарантией.
Так как мы в HOSTKEY регулярно строим на их базе выделенные сервера и частные облака, то хотим поделиться опытом.

Итак, у нашего Клиента 5 машин в кластере и ему нужен 10GbE VLAN – там 2 файлера, одна машина для резервного копирования и несколько нод. На гигабите все медленно и не хочется ставить в машины гигабитные четырехпортовки в тиминге. Надо 10GbE и бюджет ограничен. Звучит знакомо, не правда ли?
Читать дальше →

Идеальная презентация для стартапа: 3 минуты 44 секунды на убеждение инвесторов

Reading time7 min
Views123K
Создание компании — это крайне нелегкий процесс. Привлечение капитала является важным шагом для многих ИТ-стартапов, который, однако, связан с трудностями для тех, кто делает это в первый раз. Учитывая это, мы хотели бы пролить свет на то, что из себя представляет процесс успешного привлечения посевного финансирования.

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

Библиотека, облегчающая разработку форм на сайтах

Reading time7 min
Views30K
Привет, Хабр!

Хочу поделиться с общественностью своей небольшой (всего 6 Кбайт) js-библиотекой, которая сильно облегчает мне работу с формами при разработке сайтов, и позволяет сократить написание кода.
Читать дальше →

NGINX изнутри: рожден для производительности и масштабирования

Reading time8 min
Views149K
NGINX вполне заслуженно является одним из лучших по производительности серверов, и всё это благодаря его внутреннему устройству. В то время, как многие веб-серверы и серверы приложений используют простую многопоточную модель, NGINX выделяется из общей массы своей нетривиальной событийной архитектурой, которая позволяет ему с легкостью масштабироваться до сотен тысяч параллельных соединений.

Инфографика Inside NGINX сверху вниз проведет вас по азам устройства процессов к иллюстрации того, как NGINX обрабатывает множество соединений в одном процессе. Данная статья рассмотрит всё это чуть более детально.
Поехали!

«Шепот» соседа через chanspy [FreePBX]

Reading time1 min
Views19K
«Шепот» — это когда «Опытный сотрудник» подключается к диалогу «Клиент» — «Молодой сотрудник» и помогает молодому вести диалог. «Опытного», естественно, слышит только молодой — клиенту незачем знать об этом.

На удивление, гугломашина выдала направление «подумать» далеко не на первой ссылке. В сборке с вебмордой FreePBX данный механизм делается внедрением в файл extensions_override_freepbx.conf следующих строк:

[app-chanspy]
exten => 555,1,Macro(user-callerid)
exten => 555,2,Authenticate(1234)
exten => 555,3,Read(SPYNUM,agent-newlocation)
exten => 555,4,ChanSpy(SIP/${SPYNUM},wqv(-1))
;--== end of [app-chanspy] ==--;

Механизм подменяет собой штатный ChanSpy. Пользоваться просто: опытный набирает 555, вводит пароль (1234), вводит внутренний номер «молодого» и включается в разговор.

Результаты рейтинга мобильных разработчиков 2015

Reading time2 min
Views13K
Привет, хабр! В прошлом году мы запустили и опубликовали (пост на хабре был воспринят сообществом вполне положительно) первый рейтинг мобильных разработчиков.

Прошел год, и мы опубликуем результаты второго единого рейтинга разработчиков мобильных приложений 2015. У нас довольно хитрая (зато абсолютно прозрачная) методика, которая учитывает позиции компаний во всех других отраслевых рейтингах, которые были опубликованы в в течение 2014 года. Нужно сказать, что рынок растет очень быстро, как и появляются новые рейтинги. В прошлом году мы анализировали пять локальных топов, в этом — уже девять (а два из тех пяти успели по дороге закрыться). Как и в прошлом году, мы учитывали в топе только компании, которые занимаются разработкой на заказ, а не делают свои собственные продукты.

image


Рейтинг в 2015 году возглавили Безумные Роботы из Redmadrobot, на втором месте расположился питерский e-Legion, на третьем — изумительно бесстрашные разработчики из Unreal Mojo, на четвертом — Articul Media, а замкнули пятерку «умные тыквы» из CleverPumpkin (опять же, питерские ребята).
Читать дальше →

PubSub в браузере с помощью вебсокетов и протокола WAMP

Reading time6 min
Views17K
Изучая методы реализации real-time обновления данных в браузере, я обнаружил "WAMP" — протокол прикладного уровня для обмена сообщениями, основанный на вебсокетах.
Протокол реализует два распространенных высокоуровневых шаблона для обмена данными: PubSub и RPC (Remote Procedure Call).

Эти шаблоны многим известны и широко применяются в различных областях программирования и межпроцессного взаимодействия:

  • RPC — удаленный вызов процедур. В процессе принимают участие клиент и сервер. Первый отправляет запросы на вызов процедуры на сервере, а второй их выполняет и отправляет результат клиенту. В типичном веб-приложении это может быть, например, запрос на создание комментария или на добавление поста в избранное
  • Publish/Subscribe (PubSub) — метод обмена сообщениями, в котором клиенты «подписываются» на интересующие их события и могут сами генерировать подобные события. Рассылкой информации подписчикам занимается третья сторона — «брокер». В WAMP шаблон PubSub реализован на основе «топиков», или каналов. Например, на сайте такими каналами могут быть «комментарии», «новости», «личные сообщения».

В контексте веб-разработки наиболее интересным вариантом применения протокола WAMP является использование шаблона PubSub. С его помощью можно легко решить задачу обновления информации на открытой у пользователя странице сайта: например, чтобы отобразить только что добавленный комментарий или показать уведомление о получении нового сообщения.
Реализация WAMP существует в виде библиотек под множество языков и платформ, включая, конечно, javascript в виде проекта autobahn.
Читать дальше →

Механизм атомарного коммита в SQLite

Reading time23 min
Views29K
Эта статья — частичный перевод одной интересной статьи с sqlite.org, в которой подробно рассматривается реализация транзакций в SQLite. На самом деле я очень редко работаю с SQLite, но тем не менее мне очень понравилось это чтиво. Поэтому если хотите просто развить кругозор — будет интересно почитать. Первые две секции не включены в перевод, так как там нет ничего интересного, да и мне лень их набивать (пост и так огромный).

3.0 Однофайловый коммит

Мы начнём с обзора шагов, которые SQLite предпринимает, чтобы совершить атомарный коммит транзакции, которая затрагивает только один файл базы данных. Детали формата файлов, которые используются для защиты от повреждения БД и техники, которые применяются для коммита в несколько БД будут показаны ниже.

3.1 Начальное состояние


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

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

Защита игр и мобильных приложений от взлома для чайников (Unity, C#, Mono)

Reading time8 min
Views73K
Всем снова здравствуйте! Дошли руки написать крутую статью на весьма важную тему для разработчиков игр. Итак, поговорим о защите ваших драгоценных игр и приложений, которые вы пилите на Unity в надежде заработать на буханку хлеба, от взлома злобными школьниками. Почему школьниками? Потому что надежной на 100% защиты априори быть не может. И кто захочет, все равно взломает. Вопрос лишь в том, сколько времени и сил он на это потратит. И как любят шутить безопасники — терморектальный криптоанализ никто не отменял.

Итак, в статье я постараюсь максимально доступно рассказать о 3 аспектах (и конечно, предложу реализацию):
  • защита данных приложения (сейвов)
  • защита памяти приложения
  • защита внутриигровых покупок (Google Play)

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

Information

Rating
Does not participate
Location
Рязань, Рязанская обл., Россия
Date of birth
Registered
Activity