Search
Write a publication
Pull to refresh
1
0
Виталий Ф. @FuN_ViT

программист, синьор-помидор :)

Send message

Централизованное журналирование в MongoDB

Reading time4 min
Views5K
От философий — к матчасти.
Мы занимаемся разработкой ERP системы, оптимизированной для высоких нагрузок. Как следствие — в системе присутствует кластеризация. И каждый из узлов кластера ведет свой лог. В логе пишутся сообщения об ошибках, различные сообщения о ходе выполнения программ от прикладных разработчиков и так далее.
Как мы реализовали журналирование — под катом.
Читать дальше →

Работа с базой данных MS SQL средствами Go для начинающих

Reading time3 min
Views31K
В данный момент язык Go становится все популярнее и популярнее с каждым днем. На Хабре все чаще появляются статьи на тему, которые интересно читать не только прожженным спецам-програмистам, но и системным администраторам.

Я работаю системным администратором и проявляю интерес к Go, так как нам часто приходится писать скрипты на bash (shell) для автоматизации своих действий и увеличения времени на поедание печенек и заливания кофе в наш щупленький организм.

Хотелось бы поделиться небольшим опытом о том, как не программист писал небольшую программу на Go.
Читать дальше →

Бюджетные FPV квадрокоптеры

Reading time6 min
Views35K
В этом году я успел уже рассказать о том, как выбирал мини-квадрокоптер за 20$ и о том, как нашёл для себя мини-квадрокоптер с камерой за 40$ и даже рассказал о том, как устроил мини-соревнования на коптерах в парке-музее «Коломенское». Но после каждой публикации ко мне поступало много вопросов именно о выборе бюджетного квадрокоптера, который умеет транслировать видео на пульт. Понятно, что многих людей интересует именно бюджетный вариант первого квадрокоптера, так как после моей статьи «Купить квадрокоптер и попрощаться с ним» многие стали свидетелями того, как за несколько минут я попрощался квадрокоптером за 500$, подвесом за 300$ и камерой за 600$, что в современной России очень не бюджетно.

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


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

Путешествовать по Эвересту теперь можно виртуально, в Google Street View

Reading time1 min
Views12K


Сервис Street View за последние несколько лет добавил много уникальных регионов, которые никак не относятся к населенным пунктам. Это и дождевые леса Амазонки, и Большой Каньон, а теперь — и некоторые районы Эвереста. Естественно, обойти всю гору с модулем панорамной камеры от Google вряд ли кто сможет, но относительно доступные места снять можно.

Что и было сделано и при помощи нового сотрудника корпорации Google, которым стал Apa Sherpa. Этот человек удерживает рекорд по максимальному числу восхождений на Эверест (Шерпа взбирался на гору 21 раз). Работа была проделана фондом Апа Шерпа (Apa Sherpa Foundation) вместе с непальской НКО Story Cycle. Экспедиция заняла 10 дней.
Читать дальше →

Пишем симулятор медленных соединений на Go

Reading time6 min
Views16K
В этой статье я хочу показать, как просто в Go можно делать достаточно сложные вещи, и какую мощь в себе несут интерфейсы. Речь пойдет о симуляции медленного соединения — но, в отличие от популярных решений в виде правил для iptables, мы реализуем это на стороне кода — так, чтобы можно было легко использовать, к примеру, в тестах.

Ничего сложного тут не будет, и ради большей наглядности я записал ascii-анимации (с помощью сервиса asciinema), но, надеюсь, будет познавательно.


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

Случайные и фантомные домены (random subdomain, phantom domain), DDoS атака на кэширующий DNS

Reading time5 min
Views10K
    Начиная с января месяца многие провайдеры в РФ подверглись/подвергаются атакам на DNS инфраструктуру, помимо Amplification/Reflection атаки активно использовалась/используется атака Random subdomain/Phantom Domain (атака случайными или фантомными доменами). Информация по атакам была получена мной от нескольких провайдеров в европейской части России и в западной Сибири (крупные региональные и московские провайдеры). При этом кто-то просто подтверждал наличие подобных проблем, а кто-то предоставлял записанный трафик к серверу DNS для анализа (ниже я расскажу о том, как проводился анализ). Про Amplification/Reflection атаки написано достаточно много, поэтому остановимся только на атаке случайными/фантомными доменами.
Читать дальше →

Бюджетное SAN-хранилище на LSI Syncro, часть 1

Reading time38 min
Views25K

Вторая часть

Итак, продолжу свои редкие статьи на тему «как не платить HP/EMC/IBM многие кило-(или даже мега-) доллары и собрать своё хранилище не хуже». Прошлый цикл я до победного конца не довёл, но 90% мыслей всё же оформил в текст.

Нашей сегодняшней целью будет отказоустойчивое «All-Flash» (то есть — только из SSD, без жестких дисков, хотя это и не принципиально) хранилище для нужд кластера vSphere, в несколько раз дешевле брендовых аналогов и с очень неплохой производительностью. Подключаться к нему мы будем по Fibre Channel, но никто не мешает сделать iSCSI, FCoE или даже, о ужас, Infiniband.

Syncro


Как ясно из названия, основой всей этой богодельни станет достаточно уникальный на рынке продукт под названием Syncro CS от компании LSI (ныне Avago).

Что же оно такое есть и чем примечательно?

По сути, это комплект из двух обычных контроллеров LSI 9286-8e (либо 9271-8i, если нужны внутренние порты) и двух суперконденсаторов для сохранения кеш-памяти на флешку контроллера в случае потери питания. Стоимость комплекта при этом в несколько раз выше цены аналогичного комплекта без HA-функционала. Но, если сравнивать с решениями на базе DRBD, то эта разница с лихвой компенсируется отсутствием необходимости иметь двойной набор накопителей.

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

Для нас это интересно вот чем:
  • Возможность создавать RAID-массивы, доступные сразу на двух серверах
  • Отказоустойчивость на уровне контроллеров: при смерти одного из них (или целиком сервера) второй продолжит работать и обслуживать I/O

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

QIWI терминалы. Тёмная сторона Луны

Reading time15 min
Views212K
Шёл 2013-й год. Я тихо занимался ремонтом компьютеров в сельской местности. Гоняя чаи и закусывая сезоном очередного сериала. Как-то раз мой начальник предложил заняться платёжными терминалами. Ему их практически даром отдавал знакомый предприниматель, плюс предлагал устанавливать в его же магазинах на безвозмездной основе. Они, кстати, там же и стояли, просто их хозяину надоело с ними возиться.

Вначале я был против них, нужно будет мотаться, попу отрывать от теплого кресла. Да и вообще, я считал возни будет много, а прибыли ноль. Так как они выгодны только владельцам магазинов для привлечения клиентов. А шеф грезил о миллионах, он уже несколько раз видел, как из них достают толстенные пачки денег. Сказал, что внутри там то же железо, что и на обычных компах, и тот же Windows.
— Ты же можешь это делать.
— Ну да.
— Ну и всё тогда, зарплату отдельно будешь получать.

Возразить было нечего, к тому же у меня уже был опыт поддержки подобной системы Windows XP, VPN, файло-помойка, плюс один удаленный клиент на wi-fi, где было важно, чтобы компьютер всегда был включен и доступен.
Читать дальше →

Машинное обучение — 2. Нелинейная регрессия и численная оптимизация

Reading time4 min
Views24K
Прошел месяц с появления моей первой статьи на Хабре и 20 дней с момента появления второй статьи про линейную регрессию. Статистика по просмотрам и целевым действиям аудитории копится, и именно она послужила отправной точкой для данной статьи. В ней мы коротко рассмотрим пример нелинейной регрессии (а именно, экспоненциальной) и с ее помощью построим модель конверсии, выделив среди пользователей две группы.

Когда известно, что случайная величина y зависит от чего-то (например, от времени или от другой случайной величины x) линейно, т.е. по закону y(x)= Ax+b, то применяется линейная регрессия (так в прошлой статье мы строили зависимость числа регистраций от числа просмотров). Для линейной регрессии коэффициенты A и b вычисляются по известным формулам. В случае регрессии другого вида, например, экспоненциальной, для того чтобы определить неизвестные параметры, необходимо решить соответствующую оптимизационную задачу: а именно, в рамках метода наименьших квадратов (МНК) задачу нахождения минимума суммы квадратов (y(xi) — yi)2.

Итак, вот данные, которые будем использовать в качестве примера. Пики посещаемости (ряд Views, красный пунктир) приходятся на моменты выхода статей. Второй ряд данных (Regs, с множителем 100) показывает число читателей, выполнивших после прочтения определенное действие (регистрацию и скачивание Mathcad Express – с его помощью, к слову, вы сможете повторить все расчеты этой и предыдущих статей). Все картинки — это скриншоты Mathcad Express, а файл с расчетами вы можете взять здесь.


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

Высокая доступность веб-сайта: георепликация файлов сайта с lsyncd

Reading time6 min
Views14K
Высокая доступность веб-сайта — совместная работа хостинг-провайдера и разработчика сайта. Основная цель обеспечения высокой доступности — минимизация запланированных и незапланированных простоев.

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



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

Сегодня мы рассмотрим синхронизацию статического сайта между регионами облака: изменения в файлах на одном из серверов должны появляться и на другом. Также мы рассмотрим простейший способ перенаправить пользователей вашего сайта на альтернативный сервер с помощью нескольких А-записей DNS, применимый для этого случая.
Читать дальше →

CDN в рюкзаке. Как мы сделали переносной CDN

Reading time4 min
Views7.9K
На телевизионной выставке CSTB нам нужно было рассказать про CDN и показать суть нашего бизнеса наглядно. Для этого мы собрали действующую модель трансляции видео через интернет. Конечно, мы не учли в этой модели алгоритм, который составляет ноу-хау нашего сервиса, но базовые элементы работы CDN показали. Началось, как водится, с проекта:


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

Как завести инстансы в Google Cloud, настроить доступы и подцепить к нему Bucket Google. Howto

Reading time7 min
Views35K
Добра всем читающим!
Этот хау-ту размещаю по горячим следам с целью, во-первых, не забыть как делать, а во-вторых, с целью помочь кому-либо создавать инстансы в облаке Google.

Решаемые задачи:
  • три инстанса в разных регионах зоны Европа
  • общий диск для двух инстансов
  • балансировщик нагрузки по http
  • облачная база MySQL
  • из третьего инстанса выкладывать файлы в Bucket Google


Теперь обо всем по порядку

GPS контроль на бесплатном сервисе ViaLatM 2.0

Reading time2 min
Views10K
Эта статья подготовлена после кардинальной доработки сервиса VaiLatM (клиентской и серверной части). Кроме того, существенно доработано приложение для Android. Доработки проведены на основе пожеланий и запросов пользователей сервиса и приложения. Я благодарен всем, кто прислал идеи и пожелания по улучшению сервиса. Познакомиться с новым интерфейсом и возможностями можно по ссылке демо доступ к сервису на сайте www.euler2012.com. В этой статье я кратко опишу основные нововведения.

Новый интерфейс приложения


Новый интерфейс реализован в оконном стиле.

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

Отслеживание устройств через пассивное прослушивание WiFi

Reading time7 min
Views115K
За последний год мне попадалось много историй использования пассивного отслеживания WiFi. В основном все сосредотачиваются на вопросах безопасности и приватности, но мало кто рассказывает, как это работает. Я сделал целый проект Casual Encounters и могу поделиться информацией о работе системы, о том, как избежать слежки, и как её построить (в исследовательских целях, разумеется). Не пробуйте повторить это дома.
Читать дальше →

FREAK — TLS Downgrade атака на Android и iOS

Reading time2 min
Views12K
UPD: уязвимы также Internet Explorer, Chrome на Mac OS и Android, Safari на Mac OS и iOS, Blackberry Browser и Opera на Mac OS и Linux

В реализации TLS в OpenSSL и Apple TLS/SSL, исследователями из INRIA, IMDEA и Microsoft была обнаружена уязвимость, которой они дали название FREAK (Factoring attack on RSA-EXPORT Keys). Уязвимость заключается в недостаточной проверке при выполнении TLS Handshake на стороне клиента, что приводит к возможности понизить шифрование во время выполнения атаки «человек посередине» до использования 512-битных ключей RSA, которые могут быть подобраны злоумышленником в течение нескольких часов.

EXPORT Ciphersuites

Примерно в середине 20 века, в США ввели закон об ограничении экспорта стойких шифров за пределы страны. Разрешалось экспортировать только специально ослабленные версии шифров, например, с ключами 40 или 56 бит для симметричного и 512 бит для асимметричного шифрования. Серьезные ограничения действовали до конца 1992 года, а к началу 2000 большинство ограничений были сняты, хотя некоторые сохраняются и по сей день.
Современные стандарты TLS все еще позволяют использовать такие нестойкие типы шифрования, и некоторые веб-серверы (26.3% всего интернета по статистике zmap) до сих пор позволяют их использовать для установки TLS-соединения.
Читать дальше →

Антикризисное резервное копирование

Reading time3 min
Views26K
В 2015 году большинство компаний будут пересматривать свои ИТ бюджеты из-за изменения экономической ситуации в стране. Если предприятие смогло сохранить бюджет на ИТ в рублях, то это означает сокращение приобретаемого в долларах оборудования и программного обеспечения в два раза. Более того, часть компаний из-за санкций не может закупить оборудование даже при наличии бюджета. При этом на одну находящуюся под санкциями компанию приходится десятки, которые могут попасть в санкционный список в любой момент и лишиться поддержки на приобретенное оборудование и программное обеспечение от производителя.

Что делать в таком случае, отложить ИТ проекты до лучших времен? Есть ли альтернатива именитым коммерческим решениям по резервному копированию на свободном и открытом программном обеспечении? Возможно ли получить на нем аналогичный коммерческим продуктам функционал? В данной статье разбираются плюсы и минусы организации резервного копирования на свободном ПО и подробно сравнивается получаемый функционал с коммерческими продуктами.
Читать дальше →

Сага о геолокации и как сделать гео-вебсервис на NGINX без движка базы данных и без программирования

Reading time6 min
Views18K
Сегодня мы поднимем довольно старую тему про геолокацию по IP-адресу и новую про быстрые веб-сервисы без «языков программирования» . Также мы опубликуем готовый образ контейнера, чтобы вы за 5 минут могли развернуть такой веб-сервис у себя.

Наша компания занимается созданием Интернет-магазинов запчастей на собственной SaaS-платформе (ABCP.RU), а также у нас есть несколько связанных проектов, например, сервис поиска запчастей 4MyCar.ru.
Как и многие другие веб-проекты, мы в своё время пришли к пониманию необходимости геолокации по IP-адресу. Например, сейчас она используется на 4MyCar.ru для определения региона (при первом входе на сайт регион автоматически устанавливается именно так).



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

какие этапы мы прошли, как сделали свой веб-сервис и что в итоге получилось

Развёртывание ОС Windows Server 2012 R2 на серверы Dell в режиме BARE-METAL. Часть 1

Reading time3 min
Views20K
imageВ этой статье мы создадим установочный образ ОС Windows Server 2012 R2, установленной на сервере Dell PowerEdge R620 с 4-х портовым сетевым адаптером Intel Ethernet 10G 2P X520 Adapter (2 порт 1Гбит\сек + 2 порта 10Гбит\сек, поддержка VLANs, Teaming, Jumbo Packet и загрузку по iSCSI\PXE). Образ будет содержать в себе все драйверы и предустановленное программное обеспечение. Для создания образа и последующего развертывания воспользуемся компонентом Windows Server: «Службы развертывания Windows (WDS)»
Читать дальше →

Удаленная отладка в Linux при помощи связки GDB-gdbserver

Reading time9 min
Views61K
Как всем нам известно, процесс отладки это такая вещь, важность которой трудно переоценить. Причем, понимая важность таких методов как дебажное моргание светодиодами и вывод дебажных сообщений в порт, я остаюсь при мнении, что эффективнее пошаговой отладки пока ничего не придумано. Однако, задача пошаговой отладки становится не такой тривиальной в случае программирования под Linux на встраиваемых системах (таких как rasbery pi, virt2real или промышленные процессорные модули).

Данную задачу в Linux призвана решать стандартная связка программ GDB и gdbserver. Идея в том, что пишешь на компе программу (host в терминологии GDB), компилируешь её и заливаешь на целевое устройство (target). Далее запускаешь на целевом устройстве (target) отлаживаемый файл и gdbserver, а на хосте GDB и вперед.
Читать дальше →

Selenium для Python. Глава 2. Первые Шаги

Reading time6 min
Views339K
Продолжение перевода неофициальной документации Selenium для Python.
Перевод сделан с разрешения автора Baiju Muthukadan.
Оригинал можно найти здесь.

Содержание:


1. Установка
2. Первые Шаги
3. Навигация
4. Поиск Элементов
5. Ожидания
6. Объекты Страницы
7. WebDriver API
8. Приложение: Часто Задаваемые Вопросы
Читать дальше →

Information

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