Search
Write a publication
Pull to refresh
203
0
Александр @jasiejames

Инженер (210406)

Send message

Микросервисы для чайников: как на них перейти с монолита с нуля

Reading time12 min
Views79K

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

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

Читать далее

Big data. Математика на службе биологии

Reading time15 min
Views8.7K
Автор сообщества Фанерозой, биотехнолог, Людмила Хигерович.

image
Так или иначе, каждый человек, использующий масс-медиа, краем уха слышал о “биг дата”. Однако что это такое на самом деле, за границами ИТ мало кто представляет. И еще меньше людей знают о том, насколько сильно наш сегодняшний мир, каким мы его знаем, зависит от этого малопонятного термина. При этом речь идет не только об обработке больших потоков данных новостей или запросов браузера, или социальных сетей. Сегодня мы расскажем вам о том, как технологии Big Data помогают расширять границы науки.
Читать дальше →

Как реализовать DDD в Go

Reading time25 min
Views38K

С помощью микросервисной архитектуры можно построить масштабируемое и гибкое приложение. Однако, если команда бессистемно использует этот подход в своей работе, то скоро столкнется с разочарованием и неконтролируемой сложностью. Избежать этого поможет DDD (Domain-Driven Design, предметно ориентированное проектирование). Не так давно я ничего не знал про этот подход, но сейчас я постоянно натыкаюсь на эту тему.

Представляю вам перевод статьи "How to Implement Domain-Driven Design (DDD) in Golang". Повествование буду вести от лица автора, иногда прерывая собственными мыслями в таком же формате, как и это отступление. Приятного чтения.

Читать далее

С днем рождения, Кевин Келли: еще 103 непрошенных совета

Reading time12 min
Views14K
image

Кевин Келли, создатель журнала WIRED, уже третий год подряд на свой день рождения дарит всем непрошенные советы (вот прошлый перевод на Хабре: 68 непрошеных советов (c ↑+78))

28 апреля ему исполнилось 70 лет и он выкатил еще 103 непрошенных совета (они просто взорвали HackerNews)

Хочется побыстрее поделиться этими премудростями от прикольного дядьки и поэтому выкладываю перевод «в реальном времени» (если хотите помочь с переводом — контрибьютьте тут)

  1. Примерно в 99% случаев подходящее время — прямо сейчас.
  2. Никто так не впечатлен вашим имуществом, как вы сами.
  3. Никогда не работайте на того, кем не хотите стать.
  4. Развивайте отношения с 12 людьми, которые вас любят, потому что они стоят более 12 миллионов человек, которым вы нравитесь.
  5. Не повторяйте одни и те же ошибки; попробуй сделать новые ошибки.

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

FreeCAD — новый метод рисования

Reading time5 min
Views102K

Disclamer: Я никогда в своей жизни не работал с CAD/CAM приложениями раньше, и, вдруг, пришлось. Принципы работы FreeCAD меня так восхитили, что это требует срочного поста на Хабр, чтобы рассказать другим.


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


Вступление


У меня возникла простая задача — сделать 3D модель своей квартиры. Не просто "стенки в размер", а все балки, выступы и загибы. Я попробовал одну, вторую, третью программу… Я отчаялся (началось с SweetHome3D, а закончилось blender и inkscape). Они все были чертовски неудобными. Среди программ, которые я попробовал, был и FreeCAD, который я пропустил по причине "нифига не сделать" и "не работает толком". После того, как я отчаялся, я пошёл по второму кругу. На этот раз, чуть больше читая документацию… И FreeCAD не только "взлетел", но и ещё и открыл для меня восхитительный новый мир точного векторного рисования, основывающегося на Constrains.

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

Когда питание недоступно: основные отличия современных PoE-коммутаторов

Reading time4 min
Views16K

Всем привет! Я – Олег Волков, presale-эксперт по сетевому оборудованию системного интегратора X-Com. Сегодня мне хотелось бы рассказать об основных критериях выбора, на которые делятся устройства с питанием через кабель локальной сети Ethernet. Мой первый пост на эту тему посвящен общим характеристикам и будет полезен тем, кто еще не работал с PoE, но имеет такую задачу на перспективу, а также для систематизации знаний о современных PoE-коммутаторах. Более подробный разбор доступных на рынке моделей я подготовлю в следующей публикации.

Читать далее

Ни один план не переживает встречи с противником: Как мы переезжали на новый платежный сервис

Reading time8 min
Views4.5K

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

Читать далее

Домашняя масляная майнинг-ферма

Reading time21 min
Views66K

Это история одного моего хобби-проекта - создания встроенной в интерьер майнинг-фермы с видеокартами в масле, которая своим теплом отапливает лоджию.

Читать далее

Яндекс выложил в опенсорс YDB

Reading time16 min
Views154K
Сегодня мы выложили в опенсорс систему управления базами данных YDB — плод многолетнего опыта Яндекса в разработке систем хранения и обработки данных. Исходный код, документация, SDK и все инструменты для работы с базой опубликованы на GitHub под лицензией Apache 2.0. Развернуть базу можно как на собственных, так и на сторонних серверах — в том числе в любых облачных сервисах.



YDB решает задачи в одной из самых критичных областей — позволяет создавать интерактивные приложения, которые можно быстро масштабировать по нагрузке и по объёму данных. Мы разрабатывали её, исходя из ключевых требований к сервисам Яндекса. Во-первых, это катастрофоустойчивость, то есть возможность продолжить работу без деградации при отключении одного из дата-центров. Во-вторых, это масштабируемость на десятки тысяч серверов на чтение и на запись. В-третьих, это строгая консистентность данных.

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

Что делать, если мощности нужно где-то брать, а у финансиста уже дёргается глаз

Reading time5 min
Views3.6K

Привет, Хабр! Сегодня снова речь пойдёт о наболевшем: об экономике компьютерных закупок. Компании, планирующие расширение ИТ-систем на начало 2022 года, нуждаются в новых мощностях. А чтобы их получить, нужно убедить руководство сделать закупку. О том, как объяснить финансистам облачные маневры и убедить в выборе облака как источника дополнительных ИТ-ресурсов даже для тех, кто привык работать на своем железе, я и расскажу в этом посте. Под катом: какие цены остаются фиксированными, как экономить с помощью облака и какие аргументы подготовить для переговоров с финдиром.

Читать далее

Исследователи выявили задачу, от которой зависит судьба современной криптографии

Reading time10 min
Views27K

В 1868 году математик Чарльз Доджсон (более известный как Льюис Кэрролл) заявил, что схема шифрования под названием «шифр Виженера» является «невзламываемой». У него не было доказательств, однако имелись убедительные подтверждения этой веры: математики безуспешно пытались его взломать более трёх сотен лет.

Была лишь одна небольшая проблема: на самом деле, пятью годами ранее её взломал немецкий пехотный офицер Фридрих Касиски, описав решение в книге, привлёкшей на тот момент мало внимания.

Криптографы играли в эти «кошки-мышки», создавая и взламывая шифры, ещё с тех пор, как люди впервые начали передавать секретную информацию. «Тысячи лет люди пытались найти ответ на вопрос: сможем ли мы разорвать этот круг?», — рассказывает криптограф Рафаэль Пасс из Cornell Tech и Корнеллского университета.

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

ПЛК — что это такое?

Reading time5 min
Views153K
Доброго времени суток, уважаемые жители Хабра!
Прочитав пост про программирование ПЛК Siemens серии S7, я залез в поиск по Хабру, и был весьма удивлен, что тема промышленной автоматики вообще, и программирования ПЛК в частности, освещена весьма и весьма скудно. Возьму на себя смелость поделиться своим опытом в данной области, описав базовые принципы программирования ПЛК, в частности, производства компании Beckhoff.
Читать дальше →

Рубрика «Читаем статьи за вас». Апрель 2020. Часть 2

Reading time17 min
Views5.7K


Привет, Хабр! Продолжаем публиковать рецензии на научные статьи от членов сообщества Open Data Science из канала #article_essense. Хотите получать их раньше всех — вступайте в сообщество!


Статьи на сегодня:


  1. Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (Georgia Institute of Technology, Atlanta, USA, 2016)
  2. X3D: Expanding Architectures for Efficient Video Recognition (Facebook AI Research, 2020)
  3. Adaptive Attention Span in Transformers (Facebook AI Research, 2019)
  4. ResNeSt: Split-Attention Networks (Amazon, 2020)
  5. Weight Standardization (Johns Hopkins University, 2019)
  6. Supervised Contrastive Learning (Google Research, MIT, 2020)
  7. Improved Training Speed, Accuracy, and Data Utilization Through Loss Function Optimization (USA, 2019)
  8. TTNet: Real-time temporal and spatial video analysis of table tennis (OSAI, 2020)
  9. Learning in the Frequency Domain (Alibaba, Arizona, 2020)
Читать дальше →

Логистика. Часть 1. Оптимизация авиасообщения по направлениям и формирование расписания

Reading time16 min
Views9.1K
Наверняка каждому доводилось летать в полупустом самолете или встречаться с переносом рейса, возможно вы задумывались об оптимальности затрат и эффективности такого рейса. Сколько потенциальной прибыли недополучает авиакомпания? Действительно, рейсы бывают малоприбыльными, а иногда даже убыточными. Могут ли быть такого рода решения объяснимы с точки зрения оптимального поведения авиаперевозчика? Например, в текущей ситуации с отменой рейсов из-за COVID-19: как распределяется парк самолетов по другим направлениям, что обеспечивает локальную норму прибыли? Давайте попробуем построить динамическую модель, которая будет реагировать на внешние изменения и стремиться прийти к состоянию равновесия. В данной статье возьмем лишь небольшой набор параметров, попробуем спрогнозировать спрос, отправлять самолеты меньшей вместимости, снижать частоту рейсов когда это невыгодно.


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

Задача о ранце в криптографии (Knapsack problem in cryptography)

Reading time7 min
Views18K
Задача о рюкзаке (или Задача о ранце) в криптографии (англ. Knapsack problem) — это задача, на основе которой американские криптографы Ральф Меркл и Мартин Хеллман разработали первый алгоритм шифрования с открытым ключом.

Далее в программе

  • Формулировка задачи о рюкзаке (+почему рюкзак?)
  • Легкая и трудная проблемы
  • Примеры
  • История
Читать дальше →

Про двумерную упаковку: offline алгоритмы

Reading time12 min
Views71K
Сегодня, дорогой Хабр, я расскажу тебе историю о комбинаторной оптимизации.
Издревле (как минимум, с начала прошлого века) математики задавались вопросом, как оптимально разместить некоторое количество пива нужных и полезных предметов в рюкзаке. Была сформулирована задача о ранце и ее подзадачи — тысячи их! — которые заинтересовали информатиков, криптографов и даже лингвистов.

От задачи о ранце отпочковалась задача об упаковке в контейнеры (Bin Packing Problem), одной из разновидностей которых является задача двумерной упаковки (2-Dimensional Bin Packing). Снова отбросив несколько вариаций, мы наконец придем к двумерной упаковке в полуограниченную полосу (2-Dimensional Strip Packing, 2DSP). Чувствуете, сколько интересного уже осталось за кадром? Но мы еще не закончили продираться сквозь классификацию. У 2DSP есть два варианта входных данных: когда набор упаковываемых объектов известен заранее (offline-проблема) и когда данные поступают порциями (online-проблема).

В этой статье рассматриваются алгоритмы решения offline-варианта 2DSP. Под катом немного матчасти и много картинок с цветными квадратиками.

В чем, собственно, проблема?


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

Обзор методов численной оптимизации. Безусловная оптимизация: метод линий

Reading time24 min
Views46K
image

Я работаю в американской компании, разрабатывающей софт для химической и нефтегазовой промышленности. Одной из наиболее востребованных тем в этой области является оптимизация чего-либо при заданных параметрах производства. Например, минимизация расходов на выработку какого-нибудь газа, максимизация прибыли при реализации топлива, максимизация давления в какой-нибудь трубе при вариабельных термодинамических параметрах на другой части проектируемого завода и заданных ограничениях и т.д. Я занимался реализацией методов оптимизации для подобных задач и, думаю, накопил ощутимый опыт в этой области. С этого поста хотел бы начать серию обзоров известных методов оптимизации.

Введение


Оптимизация — это процесс нахождения точки экстремального значения некоторой заданной целевой функции $f(\mathbf{x})$. Это один из крупнейших краеугольных камней прикладной математики, физики, инженерии, экономики, промышленности. Область её применений необъятна и может распространяться от минимизации физических величин на микро- и макроуровнях до максимизации прибыли или эффективности логистических цепочек. Машинное обучение также заострено на оптимизации: всевозможные регрессии и нейроные сети пытаются минимизировать ошибку между предсказанием и реальными данными.

Экстремум может быть как минимумом, так и максимумом, но обычно принято изучать любую оптимизацию исключительно как поиск минимума, поскольку любая максимизация эквивалентна минимизации из-за возможности поменять знак перед целевой функцией: $f(\mathbf{x})\to -f(\mathbf{x})$. Следовательно, в любом месте ниже под оптимизацией мы будем понимать именно минимизацию.
Читать дальше →

Откровения пьяного старшего инженера

Reading time8 min
Views144K
image

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

  • Лучший способ достичь карьерного роста — сменить компанию.
  • Стек технологий на самом деле не имеет значения, потому что в моей области есть примерно 15 базовых шаблонов разработки программного обеспечения. Я работаю с данными, поэтому они не будут такими же, как веб-разработка или embedded. Но все области имеют около 10-20 основных принципов, и технический стек просто пытается упростить эти вещи, так что не переживайте.
  • Есть причина, по которой люди рекомендуют искать работу. Если я недоволен работой, наверное, пора уходить.
  • У меня появилось несколько хороших друзей на всю жизнь в компаниях, с которыми я работал. Мне не нужно это от каждого места, где я работаю. Я был совершенно счастлив, работая в тех местах, где у меня не складывались дружеские отношения с моими коллегами, и я был несчастен в местах, где у меня было несколько хороших друзей.
Читать дальше →

EMV 3-D Secure, или кто украл SMS с одноразовым паролем. Часть 2

Reading time14 min
Views15K

В прошлой статье мы рассказали о том, как появился первый протокол надежной аутентификации для платежей по пластиковым картам 3-D Secure 1.0.2, какие задачи он решает и какими недостатками обладает. Теперь мы хотели бы рассказать о будущем технологии 3-D Secure, и почему не стоит переживать, если перестала приходить SMS с одноразовым паролем.

Читать далее

Лучшие плагины и сервисы для WordPress в 2020

Reading time8 min
Views39K

По версии ресурса W3Techs, под капотом более 62% всех сайтов, построенных на базе CMS, находится Wordpress той или иной версии. Официальный маркетплейс WP содержит огромное количество различных плагинов, модулей и расширений базового функционала и разобраться в этом разнообразии — не самая простая задача. Эта статья призвана ее упростить.

Автор статьи — веб-разработчик с 12-летним стажем работы с WordPress, он подготовил подборку своих любимых инструментов для решения повседневных задач. Большинство приведённых примеров широко известны в WP сообществе, однако, есть и парочка личных открытий.
Читать дальше →

Information

Rating
Does not participate
Location
Екатеринбург, Свердловская обл., Россия
Date of birth
Registered
Activity