Pull to refresh

Technotext

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

Level of difficultyEasy
Reading time6 min
Views5.1K

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views23K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time7 min
Views38K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time29 min
Views54K

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

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

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

Level of difficultyEasy
Reading time15 min
Views35K

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

Читать далее

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

Level of difficultyEasy
Reading time9 min
Views13K

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

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views35K

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time7 min
Views34K

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

Читать далее

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

Reading time9 min
Views19K

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

Читать далее

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

Level of difficultyMedium
Reading time11 min
Views11K

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

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time4 min
Views9.9K

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

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

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

Читать далее

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

Level of difficultyMedium
Reading time10 min
Views2.9K

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

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

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

Reading time13 min
Views14K

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

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

Читать далее

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

Reading time98 min
Views11K


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

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

Level of difficultyMedium
Reading time8 min
Views28K

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

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

Читать далее

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

Level of difficultyEasy
Reading time4 min
Views20K

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

Мой папа

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time8 min
Views18K
image

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

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

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

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

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

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

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

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

Reading time15 min
Views25K

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

Читать далее

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

Level of difficultyMedium
Reading time9 min
Views24K

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

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

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

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

Читать далее

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

Level of difficultyEasy
Reading time9 min
Views132K

Привет!

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

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

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

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

Читать далее