Pull to refresh

Technotext

Микросервисы глазами аналитика

Reading time14 min
Views39K

Расскажу про системы с микросервисной архитектурой (MSA). Как они устроены, как я их анализировала, какие увидела проблемы и преимущества.

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

Читать далее

Как открывали глаза компьютерам

Reading time9 min
Views6.7K

В 1998 году выпускник ННГУ им. Лобачевского Вадим Писаревский устроился на работу в небольшую IT-компанию и получил задание начать работать над технологией, о которой ничего не знал. В то время он и не предполагал, что эта работа затянется на десятилетия, а на основе созданных с его участием разработок в мире будет изготовлено несколько миллиардов гаджетов, и жизнь людей на планете Земля существенно изменится.

Как малая компания начала работу планетарного масштаба

Все началось с того, что математики и IT-специалисты – выходцы из Сарова создали Нижегородскую Программную Технологическую Лабораторию (NSTL – Nizhny Software Technology Lab[1]). Ранее они работали над исполнением контракта между Intel и Саровским ВНИИЭФ. Но сотрудничество с международными компаниями в закрытом городе атомщиков, с его режимом секретности, было очень неудобным. Поэтому несколько саровских специалистов и переехали в областной центр, сохранив при этом связи с Intel. «Мы выполняли несколько контрактов с Intel, когда мне предложили взяться за работу над библиотекой[2] компьютерного зрения, – вспоминает Валерий Федорович Курякин (в те годы один из руководителей NSTL). – У меня уже был опыт работы с компьютерным зрением, и я понимал перспективность этой технологии. И хотя тогда был вынужден разрываться между перспективными и менее перспективными, но приносящими деньги проектами (сил у компании не хватало), решил согласиться».

Сил у NSTL действительно не хватало. В то время в ней работали менее 40 человек, в основном, молодых специалистов. Да и не все сотрудники горели желанием работать неизвестно над чем. Безуспешно перепробовав нескольких программистов, руководитель NSTL дал задание начать работать над библиотекой двум вчерашним выпускникам ННГУ им. Лобачевского: Вадиму Писаревскому (сегодня – сотрудник Института искусственного интеллекта и робототехники для общества (г. Шэньчжень, Китай) и Виктору Ерухимову (сейчас – CEO & Founder в itSeez3D). О компьютерном зрении они не знали ничего, но за работу взялись с энтузиазмом. «Ощущения чего-то большого у меня не было, зато были интересные задачи и какой-то бесконечный драйв, когда все бегали с вытаращенными глазами», – вспоминает Виктор Ерухимов. В те годы нижегородские разработчики работали в парах со специалистами Intel в США, а курировали весь проект его инициаторы в Intel – Гари Брадски и Шинн Ли. Позже, когда нижегородцы показали хорошие результаты, им предоставили большую автономию.

Читать далее

Банковские кредиты: как обманывают с процентами

Reading time5 min
Views25K

В статье расскажу про наш опыт поиска кредитов. В 2021 году у нас случился наплыв клиентов в дата-центр Тушино. В первую очередь это было связано с бурным ростом криптовалют. Но не только. Росли и за счёт размещения обычных стоек и юнитов, так как у нас сейчас одна из самых самых низких цен по Москве при uptime 100% с 2019 года. Плюс ещё аномальная жара. Нам одного холода пришлось доставить более, чем на 250 кВт.

Сейчас нужно купить ещё один ИБП и ДГУ для запуска новой очереди телекоммуникационных стоек в дата-центре. А это затраты порядка 10 миллионов рублей. Отдать сможем за год. Ну лучше за два. Фонды мы уже выбрали на закупках и установках Штульцов, поэтому решили поискать кредит.

Читать далее

Что такое VCS (система контроля версий)

Reading time18 min
Views140K

Система контроля версий (от англ. Version Control System, VCS) — это место хранения кода. Как dropbox, только для разработчиков!

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

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

Итого содержание:

Читать далее

Понять кубик Рубика

Reading time7 min
Views42K

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

То же самое со сборкой этой головоломки: миллионы людей умеют делать это по формулам, но сколько из них понимают, что они делают? А ведь начать чувствовать кубик Рубика не так сложно!

Но сперва давайте договоримся, зачем нам такая головоломка нужна и чем полезна. Вы же уже слышали шутки про то, что кубик Эрно Рубика – штука многогранная? А видите параллели между кубиком Рубика, шахматами и, например, пианино или гитарой?

Читать далее

О чем спорят строители Умных Домов, Бань, Дач и Гаражей

Reading time16 min
Views24K

Я Community Manager и у меня есть зависимость. Ну хорошо, не зависимость, но хобби: я увлекаюсь автоматизации собственной квартиры с помощью того, что модно теперь называть Умным Домом. Начинал пару-тройку лет назад с чистого Apple HomeKit, затем расширил его возможности с Homebridge и далее, вот уже года два, полностью погружен в дебри HomeAssistant.

Но поскольку я Community Mananger, мне интересна та часть моего хобби, которая касается коммуникаций сообщества людей, имеющих такое же увлечение, как и моё.

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

Читать далее

Dependency Injection в мире Software Engineering

Reading time22 min
Views30K

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

Читать далее

Запрограммировано ли старение? Разбираем доказательства

Reading time9 min
Views15K

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

Читать далее

Анатомия GNU/Linux

Reading time13 min
Views124K

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

Читать далее

Насколько быстры компьютеры

Reading time3 min
Views43K

Время для компьютеров течет не так, как для людей. То, что человеческим мозгом воспринимается как мгновение, для компьютеров растягивается на долгие эпохи. Данная статья — это метафора, в попытке осознать это простой и в общем-то очевидный факт.

Читать далее

Разобучите это: что такое machine unlearning и почему это важно

Reading time4 min
Views6K
Источник

Судя по всему, искусственный интеллект узнал о человечестве достаточно. Пора ему уже кое-что забыть, а именно персональные данные людей. Решение этой задачи человечество ищет с помощью новой области знаний под названием machine unlearning. Разбираемся, что это, как поможет победить восстание машин в зародыше и успеет ли человечество разработать эффективный machine unlearning быстрее, чем станет слишком поздно.
Читать дальше →

0x7E5 Рассуждения о главном

Reading time15 min
Views12K

За 11 лет работы, заметил как недооценивают либо переоценивают те или иные принципы разработки, такие как SOLID и KISS. Как непонимание архитектуры приводит к "аду" вместо "кода". Как любовь к DI приводит к инжекту констант и как ненависть к архитектурам приводит к хаосу. Хотелось бы чуть глубже нырнуть в смысл этих понятий, попытаться раскрыть их для начинающих и, возможно, заставить переосмыслить для опытных программистов.

Нырнуть глубже

Почему донат — это будущее, если всё сделать правильно

Reading time5 min
Views43K

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

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

Читать далее

Увеличиваются ли молекулы при нагревании?

Reading time8 min
Views24K
Все мы знаем, что если надуть пластиковую бутылку горячим воздухом, крепко-накрепко закрыть крышкой, а потом охладить, то бутылка сожмётся. Причина этого лежит в физике 8-го класса, или, если точнее, в законе Гей-Люссака, утверждающем, что отношение объёмов при разных температурах равно отношению абсолютных температур. То есть ещё со школьных времён (а может и раньше) нам всем известно, что при нагревании некоторого количества газа его объём увеличивается, а при охлаждении — уменьшается.

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


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

Анализ трафика приложений на Android Emulator. Причем здесь Root?

Reading time7 min
Views22K

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

И как их решить?

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

Reading time4 min
Views5.5K

Всем привет! На связи Digital агентство “Клиент Просто”, мы хотим поделиться своим опытом, как увеличить посещаемость сайта из поисковых систем в 13 раз только благодаря правильному структурированию каталога товаров.

Сначала хотелось бы начать с предыстории! В мае 2019 года к нам обратилась компания “Суворовский редут” цель обращения звучала так: “У нас есть ограниченный бюджет и мы хотим что нибудь сделать с сайтом konditermarket.ru, чтобы он продвигался в Яндексе и Гугле”. Компания занимается продажей товаров для кондитеров в Краснодарском крае.

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

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

На техническую оптимизацию у нас ушло около месяца и вот что мы получили.

Читать далее

Telegram-бот на Java для самых маленьких — от старта до бесплатного размещения на heroku

Reading time15 min
Views169K


В следующих сериях


Это первая статья в моей серии «для самых маленьких» — следующая посвящена Telegram-боту на вебхуках на Spring с блекджеком и Redis и клавиатурами. Будут ещё:)

Для кого написано


Если вы ни разу не писали Telegram-ботов на Java и только начинаете разбираться — эта статья для вас. В ней подробно и с пояснениями описано создание реального бота, автоматизирующего одну конкретную функцию. Можно использовать статью как мануал для создания скелета своего бота, а потом подключить его к своей бизнес-логике.

Предыстория


Когда моя дочь начала изучать арифметику, я между делом накидал алгоритм генерации простых примеров на сложение и вычитание вида «5 + 7 =», чтобы не придумывать и не гуглить для неё задания.

И тут на глаза попалась новость, что Telegram выпустил новую версию Bot API 5.0. Ботов я раньше не писал, и потому решил попробовать поднять бота как интерфейс для своей поделки. Все примеры, которые мне удалось найти, показались либо совсем простыми (нужные мне функции не были представлены), либо очень сложными для новичка. Также мне не хватало объяснений, почему выбран тот или иной путь. В общем, написано было сразу для умных, а не для меня. Потому я решил описать свой опыт создания простого бота — надеюсь, кому-нибудь это поможет быстрее въехать в тему.
Читать дальше →

Квантование эмбеддингов: что это, зачем оно нужно и как его правильно готовить

Reading time8 min
Views13K
Привет, меня зовут Женя. Сегодня я расскажу, что такое квантование эмбеддингов, какие бывают способы квантования и как с их помощью мы в Яндекс.Дзене смогли сократить использование памяти, рейта записи и сетевого трафика в четыре раза. Будет совсем немного математики, умеренно размышлений о machine learning, highload и big data и много разноцветных картинок.

Что такое эмбеддинги?


Эмбеддинг — числовой вектор, который каким-то (в общем случае непонятным на глаз) образом характеризует интересы пользователя или контент. Например, эмбеддинги могут быть такими.



У каждого пользователя и карточки может быть несколько эмбеддингов разных типов. В основном используются два вида эмбеддингов.
Читать дальше →

Асинхронное взаимодействие. Брокеры сообщений. Apache Kafka

Reading time17 min
Views58K
Данная публикация предназначена для тех, кто интересуется устройством распределенных систем, брокерами сообщений и Apache Kafka. Здесь вы не найдете эксклюзивного материала или лайфхаков, задача этой статьи – заложить фундамент и рассказать о внутреннем устройстве упомянутого брокера. Таким образом, в следующих публикациях мы сможем делать ссылки на данную статью, рассказывая о более узкоспециализированных темах.

Привет! Меня зовут Дмитрий Шеламов и я работаю в Vivid.Money на должности backend-разработчика в отделе Customer Care. Наша компания – европейский стартап, который создает и развивает сервис интернет-банкинга для стран Европы. Это амбициозная задача, а значит и ее техническая реализация требует продуманной инфраструктуры, способной выдерживать высокие нагрузки и масштабироваться согласно требованиям бизнеса.

В основе проекта лежит микросервисная архитектура, которая включает в себя десятки сервисов на разных языках. В их числе Scala, Java, Kotlin, Python и Go. На последнем я пишу код, поэтому практические примеры, приведенные в этой серии статей, будут задействовать по большей части Go (и немного docker-compose).
Читать дальше →

Отнимаем и делим — исследуем целостность Рунета

Reading time7 min
Views3.3K

В России постановлением Правительства определены виды угроз устойчивости, безопасности и целостности Рунета. О процессе принятия этого документа ранее писали на Хабре. "Но одно дело – определить виды угроз и совсем другое – выявлять сами угрозы и реагировать на них!" – скажете Вы и ... будете абсолютно правы. Кому это под силу, учитывая скорость изменения сети, ее масштабы и уровень ответственности?

Ответ на этот вопрос дает пункт 7 упомянутого выше постановления Правительства. Это три богатыря – Минцифры, Роскомнадзор и ФСБ. Как они будут выявлять угрозы? Есть три взаимодополняющих способа: по результатам учений, по результатам мониторинга сетей и по результатам исследований.

И если учениями и мониторингом (на уровне всея Рунета) я, как обычный интернет-пользователь, заниматься не могу, то небольшое исследование провести в состоянии.

Отнять и поделить