Обновить

Технотекст

Тестируем Spring Boot приложения через Spock Framework

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели6.4K

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

В статье описан процесс интеграции Spring Boot и Spock Framework, а также приведены примеры тестирования в BDD подходе.

Читать далее

Подключаем умный поиск (GPT) к своей базе документов

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели26K

Есть отечественный файрвол (NGFW) и есть документация для пользователей powered by GitBook. В этой документации работает простой поиск — только по словам и словосочетаниям. И это плохо, потому что нет ответов на вопросы: "Какие алгоритмы шифрования ipsec поддерживаются у вас?", "Как заблокировать ютуб?", "Как настроить DMZ?".

Хочется, чтобы поиск был “умным” и чтобы пользователи могли обращаться с подобными вопросами именно к поиску, а не к инженерам тех. поддержки. AI или ML внутри — не важно, как это называть. Но на простые вопросы из списка выше поиск должен отвечать.

Я решил эту задачу (Retrieval Question Answering), используя OpenAI API. Казалось бы, уже опубликованы сотни похожих инструкций, как это сделать. Но под катом будет не инструкция, а рассказ про сложности, которые пришлось решить на пути от идеи до запуска поиска.

Читать далее

Super Heavy Starship. Первый пуск. Успешный старт и разрушение в полете. Первые мысли

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели39K

20 апреля 2023 года прошел пуск самой мощной ракеты и, наверное, самой мощной машины, созданной человеком. Почти 7600 тонн-сил тяги или 74 МегаНьютонов силы подняли 5000 тонного монстра в небо.

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

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

Читать далее

Учим три телевизора делать солнышко

Уровень сложностиПростой
Время на прочтение29 мин
Охват и читатели57K

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

Осторожно, трафик!

Делаем радиолампы дома

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели38K

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

Читать далее

Поправки в закон о государственном языке: ответы для предпринимателей и айтишников

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели13K

С 28 февраля 2023 г. вступила в силу новая редакция Федерального закона № 53-ФЗ «О государственном языке Российской Федерации». Как пишут в большинстве обзоров, закон направлен на ограничение использования иностранных слов государственными органами. Однако фактически установленные законом запретительные меры шире и определяют, в частности, обязательность использования русского языка в информации, предназначенной для потребителей товаров (работ, услуг).

При этом новая редакция Федерального закона № 53-ФЗ совершенно четко и недвусмысленно определяет, как именно будет определяться корректность использования русского языка. Именно, как гласит п. 6 ст. 1 закона, при использовании государственного языка Российской Федерации не допускается употребление:

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

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

То есть, если вы на этикетке совершенно по-русски написали краткую информацию о товаре — каждое слово в этом тексте должно соответствовать утвержденным нормативным словарям, справочникам и грамматикам. Но, возможно, все не так строго, и сложность исполнения закона смягчается теми или иными обстоятельствами? Попробуем разобраться более детально.

Читать далее

Лимонадные реки Советского Союза

Уровень сложностиПростой
Время на прочтение11 мин
Охват и читатели39K

В нашей стране газированные лимонады, да и чистая газировка появились позже, чем в Западной и Центральной Европе. Причин тому много, но главные из них — отсутствие частной инициативы и непривычность напитка для народа. Выражаясь современным бизнес-языком, в сегменте soft drinks российского рынка со времен царя Гороха доминировали питьевой мед, квас, ягодные морсы.

Наиболее ярким примером лимонада будет, пожалуй, лимонад-газес, который производился сразу на двух фабриках — купца Чистякова в Омске и торгового дома Иванова и наследников в Казани. Особенно масштабным было предприятие Степана Чистякова, который торговал своим лимонадом от Урала до Енисея. Всего же к концу 1880-х гг. в России работало 106 предприятий искусственных минеральных вод с годовым оборотом 2 млн руб. Импорт искусственных газированных вод прекратился, ввозились только натуральные минводы (около 2 млн бутылок в год).

В нашей новой статье рассказываем про историю появления газировки в СССР.

Читать далее

Почему внедрение ветрогенераторов в советское время не увенчалось успехом?

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели36K

В нашей стране вопрос о ветроэнергетике стал на повестку дня позже, чем на Западе. Многие отечественные историки пишут, что впервые об этом побеспокоился Ленин еще в 1918 году в «Наброске плана научно-технических работ». Правда, сказал он о них как-то неопределенно и вскользь, лишь упомянул «водные силы и ветряные двигатели вообще». Ленин почти 20 лет прожил в эмиграции в Европе, читал тамошнюю прессу и поневоле был в курсе европейских и американских достижений в этой области. Однако в плане ГОЭЛРО, утвержденном им в 1920 году, про ветроэлектрогенераторы нет ни слова. О том, как внедряли ветрогенераторы в советское время и что с ними стало, читайте в нашей статье.

Читать далее

Машина свободы: как чилийские социалисты придумали компьютер для управления экономикой

Время на прочтение9 мин
Охват и читатели22K

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

Читать далее

Архитектурные нюансы OpenStack. Принципы работы компонентов Nova

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели18K

OpenStack — широко распространенная облачная платформа. На ее базе построены десятки, а то и сотни проектов: приватных и публичных. Ее многочисленные модули позволяют достаточно просто наращивать функциональность конечного решения: от понятных DBaaS (Database as a Service) до специфичных AXaaS (Acceleration as a Service).

По мере развития CLO возникла необходимость доработки платформы под собственные нужды. В процессе написания патчей мне сильно не хватало понимания архитектурных принципов OpenStack. Часть информации я смог найти в документации, часть мне приходилось вытаскивать из исходников, поэтому я решил систематизировать знания и поделиться с сообществом.

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

А так как Nova (он же Compute) является едва ли не основным сервисом, который эксплуатируют все остальные, с него и начнем.

Читать далее

Размещение телеграмм бота (Aiogram3) на VPS/VDS

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели13K

Расскажу как просто задеплоить телеграмм бота на Aiogram 3 с webhook на VPS/VDS. Посмотреть видео версию, которую я выложил, можно на YouTube

Также покажу установку двух типов сертификатов SSL: ...

C Nginx и без него ...

Читать далее

Зачем и как в Альфе была написана библиотека для скриншот тестов под Android

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели3.4K

В статье расскажу о проблемах и неочевидных моментах скриншот тестов в контексте Android, и постараюсь погрузить вас в то, как это может работать (и как мы это сделали в Альфе)

Что же там дальше

Наши 5 лет с инфраструктурой «ВсеИнструменты.ру»: от нескольких ВМ до отказоустойчивого решения в трёх дата-центрах

Время на прочтение13 мин
Охват и читатели16K

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

«ВсеИнструменты.ру» — изначально онлайн-ритейлер товаров для дома и дачи, строительства и ремонта. С 2006 года активно развивает сеть фирменных торговых точек, а в настоящее время насчитывает более 600 собственных магазинов в 264 городах России и маркетплейс. Численность сотрудников превышает 7000 человек. 93% продаж приходится на онлайн, а это порядка 1000 RPS и ~1 млн уникальных посетителей в день.

Читать далее

Сканер установленных перехватчиков в памяти процесса

Время на прочтение98 мин
Охват и читатели12K


В статье будет рассмотрен один из методов поиска изменений в памяти процесса, на основе построения полной карты уязвимых к перехвату адресов. Рассмотрена работа со списками загрузчика, ручным разбором таблиц импорта/отложенного импорта/экспорта/TLS загруженных файлов, c обработкой форварда функций и ApiSet редиректов.
Будет показана методика доступа в 64 битное адресное пространство чужого процесса из 32 битного кода через статически сформированный ассемблерный шлюз, так и подход с применением автоматически генерируемого гейта.
Будет дано много комментариев «почему» применяется тот или иной подход, а также описание различных проблемных ситуаций, основанных в том числе как на собственном опыте, так и на разборе кода системного загрузчика, поэтому будет интересна и подготовленным специалистам.
Читать дальше →

Покупка гаража как инвестиция

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели32K

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

Я решил проанализировать рынок продажи и аренды гаражей и парковочных мест своего города. Квартиры – слишком дорогие объекты для инвестиций, а что касается гаражей и паркингов – тут «вход» гораздо меньше, и на аренду вроде бы всегда есть спрос.

Читать далее

Ты помнишь, как всё начиналось?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели20K

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

Мой папа

 В качестве эпилога

Как-то ночью я проснулся и понял: «Хочу написать статью для Хабра». Но о чем? А ведь я родился в прошлом веке, и, как говорят современные дети, «видел еще динозавров». Вернее застал время, когда не то что сотовых, проводных телефонов в квартирах не было. По телевизору транслировалось два канала, которые так и назывались: первый и второй. А игры были либо на улице – подвижные, либо тихие типа шахмат и морского боя. При этом, вся моя жизнь так или иначе связана с информационными технологиями. Еще в детстве я изучал программирование по книгам, потом делал джойстики из мыльниц, а первый сайт нарисовал то ли в 1995, то ли в 1996 году. И не смотря на это я не стал ни миллионером, ни фаундером стартапа, ни даже профессиональным программистом. Живу я не в Калифорнии и даже не в Москве. Как и большинство моих друзей и знакомых. 

Данная статья или цикл статей, как получится, как раз возможно и является попыткой отрефлексировать сложившуюся ситуацию, а заодно повспоминать как все начиналось. 

Читать далее

Медичи: семья, которая изобрела современные банки

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели21K
image

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

Семья Медичи, прародители современных банков, ещё в конце XIV века сделали следующее:

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

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

Надо сказать, что аналог SWIFT'а тех лет — так называемые таволи, банки, работающие на городских площадях, где при свидетелях вносились записи в книги. Поскольку они не обладали крупной филиальной сетью, их бизнес был не очень устойчивым.

А ещё Медичи — это те самые люди, благодаря которым мы знаем черепашек-ниндзя: они всячески поддерживали художников и скульпторов. Это был самый эффективный метод пиара тех лет. Так, Козимо де Медичи взял под своё покровительство Донателло, а Лоренцо ди Пьеро де Медичи заметил молодого Микеланджело и привлёк его к архитектуре Флоренции.

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

Интегрируем Яндекс Музыку в Visual Studio Code

Время на прочтение15 мин
Охват и читатели31K

Представьте, что вы можете слушать свои любимые песни на Яндекс.Музыке, прямо из своего любимого редактора кода, не переключаясь между приложениями. Это уже не мечта, а реальность! В этой статье мы рассмотрим, как интегрировать Яндекс.Музыку в Visual Studio Code и наслаждаться любимой музыкой прямо во время работы.

Читать далее

Основы полнотекстового поиска в ElasticSearch. Часть вторая

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели34K

Это вторая статья из цикла. В первой части я рассказывал про самые базовые понятия Elasticsearch. В этом же посте разберем устройство анализа текста и немного пощупаем полнотекстовый поиск.

Несколько слов про анализ текста

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

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

Читать далее

Капитан ФСБ, шпионы и подставной гендиректор: разбираем атаку на нашего топ-менеджера

Уровень сложностиПростой
Время на прочтение9 мин
Охват и читатели154K

Привет!

Пока мы разрабатывали продукты по кибербезопасности, на нас самих напали мошенники. 

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

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

В начале рассказываем, откуда пришла новая схема телефонного мошенничества. Если хотите сразу услышать разговор Леши, листайте до раздела «Мошенник звонит из "правоохранительных органов" и напоминает об уголовной ответственности».

Читать далее