Search
Write a publication
Pull to refresh
3
0
Обидин Михаил @mrsantak

User

Send message

Раздувание кода стало астрономическим

Reading time5 min
Views98K

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

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

… но по сути, речь идёт о том, что нужно зарегистрировать несколько файлов, считать их, загрузить, а затем закрыть соединение и записать в файл лога, всё ли прошло успешно, а если нет, то что именно случилось. В этом нет ничего сложного, и даже я писал с нуля подобный код при помощи Wininet API и PHP на сервере, общающемся с моей базой данных MySQL. Наверно, моя система была не такой надёжной, как системы уровня энтерпрайза, однако поддерживала сотни тысяч загруженных файлов, их верификацию, скачивание и логирование. Наверно, это работа для одного кодера на две-три недели?

Специальный инструмент загрузки на сервер, которым я пользуюсь сегодня, суммарно имеет 230 МБ клиентских файлов и задействует 2,7 тысяч файлов для управления этим процессом.
Читать дальше →

Docker Swarm для самых маленьких

Reading time13 min
Views183K

Данная статья посвящена настройке и работе с Docker Swarm.

Swarm это стандартный оркестратор для docker контейнеров, доступный из «коробки», если у вас установлен сам docker.

Что нам потребуется для освоения:

Читать далее

Docker Swarm VS Kubernetes — как бизнес выбирает оркестраторы

Reading time7 min
Views26K

Kubernetes (K8s) по праву считается отраслевым стандартом управления контейнерами, но это вовсе не значит, что решение подходит каждому типу бизнеса. Порог входа в K8s высок, а преимущества не всегда очевидны. Гораздо эффективнее может быть использование альтернативных оркестраторов. OpenShift, Nomad или Apache Mesos при помощи дополнительных утилит умеют многое из того, что предлагает K8s. Эти решения на порядок проще в освоении и настройке, пусть и не обладают таким активным сообществом. Тогда почему их нельзя использовать везде?
Читать дальше →

ОС с нуля: Глава 1, Часть 2 — 32 лучше 16-ти

Reading time3 min
Views9.7K

Хай Хабр! Это серия статей по написанию моей ОС с нуля. Я лютый фанат ретропрограммирования, поэтому я мгновенно забуду про существование EDК. Просьба не писать комменты по типу "BIOS давно устарела где UEFI?". Пишу это просто чтобы было, что почитать вечером и порелаксить. Спасибо.

Читать

Чем кончилась история с нашим обращением в ФАС против Яндекса

Reading time4 min
Views34K
Сегодня «Дело о колдунщиках» закрыто в ФАС.

Напомню, краткая предыстория была про то, что группа ИТ-компаний Рунета объединилась и обратилась в ФАС с вопросом, нормально ли, что поиск даёт больше преимуществ собственным юрлицам Яндекса. Мы хотели вернуть нейтральность поиска, чего, собственно, и удалось достичь в результате мирового соглашения.

Формальный результат — вот, политика интеграции с поиском, где партнёры Яндекса (то есть внешние компании) и Сервисы Яндекса имеют паритет. Ещё один интересный документ здесь.

Пара выдержек:
…обеспечение равного доступа всех Партнеров как в части объема предоставленной информации, так и в части визуального и функционального представления в поисковой выдаче, вне зависимости от того, являются ли они третьими лицами или Сервисами Яндекса, ко всем действующим и будущим форматам обогащения поисковой выдачи…
…осуществление ранжирования различных форм Партнерской интеграции на странице поисковой выдачи Поисковой системы на основании единых алгоритмов…
…недопустимость манипулирования результатами поисковой выдачи для преимущественного продвижения Сервисов Яндекса. При формировании результатов поиска собственные сервисы Яндекса отражаются на тех же условиях, в том же визуальном оформлении и по тем же правилам, что и сервисы третьих лиц;

Время покажет, как это будет работать на практике, но ниже я расскажу чуть больше деталей.
Читать дальше →

WoG уже 20 лет…

Reading time5 min
Views32K

Все это уже история... И я даже писал об этом (не на habr). Поэтому, возможно, кому-то это знакомо. Не думал, что тут стоит писать подобное, но, вижу, что фанаты Героев 3 (и вообще серии HoMM) тут очевидно присутствуют, поэтому рискну...

Время: 20 лет назад.

Место: Ээээ… всемирная паутина.

Действующие лица:

Gus Smedstad – программист Героев 3 и ведущий программист Героев 4.
Angelspit – хозяин крупнейшего сайта (в то время) http://www.celestialheavens.com
Denis "Kiar" Markov – хрен какой-то
Slava Salnikov (он же ZVS) – лидер команды WoG и ведущий программист WoG.

Предыстория (знающие могут пропустить).
WoG – любительский аддон к игре Герои Меча и Магии 3 (ставится поверх SoD). В детали его создания тут вдаваться не буду (Wiki скажет лучше: https://ru.wikipedia.org/wiki/Heroes_of_Might_and_Magic_III:_In_the_Wake_of_Gods ), но замечу, что только с официального сайта (свободно распространяемый ресурс) WoG в первые несколько месяцев был скачан пол миллиона раз (далее трудно оценить масштаб, но думаю несколько миллионов его хотя бы пробовали).

Основная же мысль, которую я хочу здесь озвучить: у меня НИКОГДА не было исходников Героев 3. WoG написан как отдельный EXE файл, который «прицепляется» моей утилиткой к готовому Heroes3.exe (купленная версия SoD английская), перехватывает управление и при старте «проникает» в тело SoD с целью установить множество call back’ов. Далее SoD работает, не зная о существовании «надстройки» в виде WoG, но, естественно им контролируется. Говоря простым языком, WoG это вирус на теле SoD.

Читать далее

4k @ 144Hz: DP, HDMI, USB-C Alt-Mode & cables…

Reading time11 min
Views70K

Я недавно сделал себе небольшой апгрейд и у меня появился монитор 4k@144Hz. Разумеется, на 144Hz он не заработал. Потому что нюансы. Мне пришлось в это нырнуть глубже, чем хотелось бы...

Спойлеры: DP, USB-C Alt-mode, Thunderbolt, USB4 3x2, 40Gbps, HDMI.
Оглавление: кабели, протоколы, режимы.

Лыдыбр: Моя старая видеокарта на компьютере сумела завести его на 4k @ 60Hz с помощью Display Port. (Либо 2k @ 144Hz). Это её техническое ограничение, больше она не может. Дальше я попытался воткнуть в монитор ноутбук (все 5 шт, какие нашлись у меня и знакомых) и обнаружил, что всё настолько сложно, что мне потребовалось несколько заходов чтения спецификации, пока я "это завёл". Выписываю свои наблюдения и эксперименты. Актуальность - первая половина 2022 года. Монитор under study - Gigabyte M32U, хотя, в принципе, это не существенно для обсуждаемого вопроса. У монитора разъёмы HDMI, DP, USB-C.

Разбирать проблему я буду слоями. Начём с физики.

Читать далее

«А поговорить?» или делаем звонок для подтверждения заказа в интернет магазине с помощью МТТ VoiceBox

Reading time17 min
Views2.8K

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

Но не переживайте, эта статья не о том, как я спустя 12 лет снова сел ковырять сайты на PHP. Всё это банально и писать об этом на Хабр я бы не стал.

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

Вы готовы загибать пальцы?

Итак, сегодня мы с вами:

Настроим сценарий голосового бота для подтверждения интернет заказа.

Одним глазом взглянем на API для управления ботом и отправим пару запросов через Postman.

Добавим пару кастомных действий в WooCommerce, чтобы робот вместо оператора разными голосами подтверждал заказ.

Читать далее

«Двойные» субтитры и автопауза — расширение для изучения языков с помощью Netflix и YouTube

Reading time1 min
Views32K

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

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

Основная особенность расширения — отображение двух субтитров сразу (например Английски + Русский), чтобы зрители могли сверять их и запоминать нужную им лексику. Однако он поддерживает и другие функции:

Читать далее

Листочек с паролями на мониторе

Reading time3 min
Views43K

Это крик души. Речь пойдет не о usability в классическом понимании этого, а в легкости работы со средами для самого ITшника. Здесь все плохо, и, по моему, становится все хуже.

Читать далее

8 правил, которые пригодятся при описании Git-коммитов

Reading time9 min
Views29K

Иногда системы контроля версий напоминают групповые чаты: вроде бы все тут собрались по какому-то поводу и пишут о чём-то одном, но что именно пишут ― разобраться порой просто невозможно. Как и в чате, где на одно грамотное и полное сообщение наберётся сотня «гыгы, лол» и «))))))», в Git-коммитах на несколько внятных описаний приходится втрое больше чего-то такого:

c63b59c ЛОГИКА РАБОТЫ File[] filesList; (ВНИМАНИЕ!)

3775079 Правки самые последние NEW

71acc53 Правка последняя

Особенно это становится заметно во времена крупных доработок. Когда у разработчика много задач и горящих дедлайнов, есть соблазн плюнуть на написание нормальных комментариев к коммитам (commit messages) и применить золотое антиправило экономии времени «Разберусь потом». Но когда наступает это «потом», комментарии типа «03.03 – 04.03» или «последняя правка» не дают ничего, кроме чувства досады на себя в прошлом.

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

Читать далее

Народный измеритель пульсации света

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



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

Производство в этот кризис: а знаете, всё оказалось лучше, чем в Венесуэле

Reading time7 min
Views87K
image

После прошлого поста на Хабр про то, что нам обрубили почти все поставки сырья для биохимии и вообще непонятно, как жить, случилось многое. Во-первых, оказалось, что пост увидело большое количество людей. Нас завалили письмами про то, как можно вместе что-то сделать, про «мы будем вашей грузинской креветкой для перевалки веществ» и даже от контрабандистов, готовых за скромную комиссию перевозить пробирки с пептидами в укромных местах организма. Спасибо, дорогое сообщество. Это очень трогательно.

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

В-третьих, мы показали удивительное свойство объединяться в кризис. Сейчас у нас появился отраслевой чат производителей косметики(!), где конкуренты обсуждают совместные меры! Да год назад мы бы глотки друг другу повскрывали на второй минуте чаепития, а сейчас принимаем рациональные решения.

В-четвёртых, у нас наконец-то появилось понимание, что делать в дивном новом мире. Мы не очень ему рады, но если сейчас выжить — это будет очень хорошо и для нашей уютной лаборатории, и для отечественной науки, и для российской экономики. Не в ближайшие 3 года, а системно, в перспективе 10 лет. И да, я оптимистка.

Почему? Потому что в 2011 году я жила в Венесуэле при Чавесе год. И видела всё то же самое, только хуже. Так что сейчас я как будто возвращаюсь в ту прекрасную юность.
Читать дальше →

Пишем свой плагин для IDEA для поддержки нового языка (часть 2)

Reading time12 min
Views4.1K

Продолжение статьи о создании языкового плагина для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin. Начало

Читать далее

Пишем свой плагин для IDEA для поддержки нового языка (часть 1)

Reading time13 min
Views8.4K

В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.

Читать далее

История про кримперы и то, как скупой платит дважды

Reading time5 min
Views31K

Обжимные клеммы позволяют легко подключать/отключать электронные компоненты без использования паяльника и оплетки для выпайки. И за просмотром одной из дешевых торговых платформ, вы можете решить, что для использования этого удобного метода достаточно приобрести кримпер вместе с набором клемм JST и DuPont (клон Mini-PV). В конце концов, это ведь просто кусок металла, который обжимается вокруг оголенного провода. Какие тут могут возникнуть проблемы?
Читать дальше →

Что считать счастьем покупателя?

Reading time7 min
Views9.8K

По запросу [форма] мы должны угадать, что именно нужно покупателю: выпечка, наращивание ногтей, косплеить медсестру или калибратор кубов бетона. Задача — быстро понять, кто перед нами и что сделает человека счастливым.

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

Человек может:

  • Формулировать требования к покупке по мере сравнения вариантов.

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

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

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

Поиск Google умирает

Reading time7 min
Views137K
Сегодня самый популярный поисковый движок — это Reddit. Единственные, кто этого не знает — команда Reddit, которая не может отвлечься на создание приличного интерфейса поиска. Поэтому вместо этого нам приходится прибегать к Google и добавлять в строку запроса слово «reddit».

Пол Грэм считает, что такая ситуация означает, что Reddit как сайт социальной сети «всё ещё не достиг своего пика». На самом деле это означает, что количество людей, использующих Reddit как поисковый движок, растёт.

reddit google graph

Пол Грэм: «Reddit — уникальная соцсеть. Спустя 15 лет после запуска она всё ещё не достигла своего пика».

Почему люди ищут именно на Reddit? Короткий ответ: очевидно, что поисковые результаты Google умирают. Длинный ответ: бОльшая часть веба стала слишком недостоверной, чтобы ей доверять.
Читать дальше →

Детройт: как мировая моторная столица дошла до банкротства

Reading time19 min
Views72K
Слева район Highland Park, территория штата Мичиган, справа – территория Детройта. Источник: Johnny Miller

Мировая моторная столица (Motown), родина американского среднего класса, арсенал демократии — как только не называли Детройт на пике могущества в 1950-е гг., когда его население достигло 1,85 млн человек. Сегодня же оно едва дотягивает до 640 тыс. и продолжает сокращаться. Что произошло? Однозначного ответа нет, но причин одновременно несколько. Здесь и расовое противостояние, ошибки городского планирования, большая политика, ослабление конкурентоспособности американских автоконцернов, их бегство из-за роста социальной нагрузки после победы профсоюзов. Да и много ещё чего, что в комплексе привело в 2013 г. к крупнейшему в истории США муниципальному банкротству.

Но обо всём по порядку.
Читать дальше →

Information

Rating
10,365-th
Location
München, Bayern, Германия
Date of birth
Registered
Activity

Specialization

Backend Developer
Java