Как стать автором
Обновить

Как быстро написать API на FastAPI с валидацией и базой данных

Время на прочтение11 мин
Количество просмотров20K

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

В этой статье мы разработаем простой API с помощью самого популярного стека и FastAPI. Рассмотрим важные концепции в работе с этим фреймворком, набросаем базовую структуру проекта и развернем приложение на облачном сервере. Подробности под катом!
Читать дальше →
Всего голосов 53: ↑48 и ↓5+43
Комментарии39

Как поиск жилья заставил менеджера вспомнить программирование и уйти из Яндекса

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

Привет, Хабр! Я разработал помощника по поиску жилья HomeBro, который помог десяткам тысяч людей найти новый дом. Расскажу, с чем я облажался, а с чем – нет.

В 2019ом году я работал продактом в Яндекс.Погоде и подумывал, что было бы здорово запилить что-то свое. Начал смотреть, какие есть большие рынки и в чем их боль. Перебирая варианты, вспомнил, каким изнуряющим был для меня поиск съемного жилья. 

Читать далее
Всего голосов 69: ↑66 и ↓3+63
Комментарии61

Новый взгляд на Maven-plugin для IDEA — GMaven

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

Привет, меня зовут Григорий Мясоедов, ранее я имел опыт работы в JetBrains в команде build tools, а конкретно занимался Maven-plugin.  В этой статье я хочу поговорить о том как устроен плагин под капотом, его сильных и слабых местах, и о том что я в итоге со всем этим сделал.

Одна из самых частых проблем, которыми я занимался в JetBrains, звучала так - “через командную строку Maven проект собирает, но в IDEA он не импортируется (импортируется с ошибками)”. Как будет показано ниже большинство этих проблем связаны с архитектурой JB Maven плагина.

Читать далее
Всего голосов 22: ↑21 и ↓1+20
Комментарии26

Как Apple на самом деле следит за вами

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров27K

По счастливой случайности я оказался резидентом Евросоюза, а значит, на меня также распространяется GDPR. Он позволяет мне запросить копию информации, которая хранится обо мне у всяких разных компаний. Я решил сделать это у Apple, и был неприятно удивлен.

Apple старается собирать как можно меньше данных.

Читать далее
Всего голосов 123: ↑123 и ↓0+123
Комментарии139

Как создать шаблон документации к микросервису

Время на прочтение6 мин
Количество просмотров20K

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

Моя команда развивает несколько виджетов на главном экране мобильного финтех-приложения. Когда мы «пилим» новую фичу, как правило, мы разрабатываем под нее новый микросервис. Я, как системный аналитик команды, проектирую наш будущий сервис и пишу документацию для разработки. Так как почти каждая новая фича требует создания своего микросервиса, мне часто нужно писать под это дело документацию. Поэтому хочу поделиться с хабровчанами тем, как это делается у нас в команде. 

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии24

Анализирую прошивки контроллеров Schneider Electric

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

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

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

Читать далее
Всего голосов 35: ↑35 и ↓0+35
Комментарии16

История о жрущем память API-сервере Kubernetes

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

Несколько месяцев назад коллеги, работающие с одним из кластеров Kubernetes в dev-окружении, обратились с проблемой недоступности API-сервера Kubernetes. Dev-среды обычно не подключены к дежурной смене, и решением проблем занимаются владельцы или, если проблемы нестандартные, обращаются к профильным специалистам. В ходе диагностики оказалось, что kube-api стал потреблять значительно больше памяти. Это приводило к возникновению ошибки с OOM.

Давайте будем честными — если бы это произошло в production-окружении, мы, скорее всего, закинули бы больше памяти и успешно бы забыли про проблему. Но dev-стенд не имеет жёстких SLA с финансовой ответственностью, и это дало нам возможность и время разобраться с прожорливым kube-api.

Всех, кому интересно, что из этого вышло, прошу под капот.

Читать далее
Всего голосов 27: ↑27 и ↓0+27
Комментарии9

Метеостанция на ионисторе

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

В этой статье я расскажу об одном из своих любительских проектов - автономной метеостанции на ESP8266 с использованием ионистора и солнечных батарей.

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

Читать далее
Всего голосов 42: ↑50 и ↓-8+58
Комментарии44

«Кто на ком стоял?» Про страдательный залог в технической документации

Время на прочтение5 мин
Количество просмотров16K

В технической документации часто встречаются фразы с использованием страдательного залога. Параметры там «задаются», файлы «сохраняются», а программа «запускается». Ох, опасная эта форма для строгих и однозначных описаний! Почему же страдательный залог заставляет читателей страдать? Будем разбираться...

Читать далее
Всего голосов 104: ↑98 и ↓6+92
Комментарии52

Использование Foreman и Puppet в подходе IaC

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

Использование Foreman и Puppet в подходе IaC.

Foreman предоставляет спектр инструментов для контроля за ИТ-средой, в статье описаны отдельные возможности, такие как: использование Puppet модулей, установка параметров для Puppet, процесс доставки модулей, написание скриптов сбора искомых фактов, использование шаблонов для выгрузки репортов.

Также затронуто использовании программного интерфейса и базы данных

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

МРЭМ – 200. Электронный микроскоп родом из СССР. Цифровизация захвата изображения

Время на прочтение5 мин
Количество просмотров6.7K

В 2020 году я опубликовал  здесь статью, в которой описал свой советский растровый микроскоп МРЭМ-200  1987 года выпуска. Мне было приятно, что статья вызвала большой интерес и помогла мне познакомиться с  людьми со схожими увлечениями.

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

За прошедшие годы микроскоп подвергся нескольким модернизациям, об одной из которых хочется рассказать. В 80-е годы  изображения с  мониторов микроскопа фиксировались для дальнейшего изучения и сохранения с помощью пленочного фотоаппарата. Для этого в комплекте с микроскопом шла специальная тубусная приставка, фиксирующаяся на мониторе. В третьем тысячелетии  мне хотелось, конечно, уже иметь компьютерный захват картинки, как в современных растровых микроскопах. В начале я пошел по самому простому пути: стал использовать цифровой фотоаппарат Canon вместо пленочного  фотоаппарата. Поскольку построение изображения в максимальном разрешении длится 41 секунду, мне пришлось перепрошить  фотоаппарат на такую длительную выдержку. Работа  с микроскопом  сразу стала комфортней, но  я понимал, что  есть еще  к чему стремиться.

В декабре 2022 года в Телеграмме я познакомился  с еще одним владельцем микроскопа МРЭМ-200. В  этой статье я буду, называть этого человека, по его просьбе, «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным».  Он  решил проблему прямого компьютерного захвата, использовав  видео с youtube (https://www.youtube.com/watch?v=ruuxn2u3yao) известного  американского популяризатора науки Бена Краснова (Ben Krasnow). «Владелец МРЭМ-200 из Москвы, пожелавший остаться анонимным» творчески переработал информацию Бена Краснова, адаптировал софт под технические особенности  своего микроскопа  и  любезно поделился со мной этим софтом. У меня появилась программа, которая замечательно строила и сохраняла изображение на экране компьютера синхронно с изображением на родных мониторах микроскопа. Между компьютером и микроскопом добавился отдельный модуль согласования, в котором помещался АЦП с выходом USB и операционные усилители с регулировкой коэффициента усиления:

Читать далее
Всего голосов 49: ↑59 и ↓-10+69
Комментарии18

Новый тренд на «Сообщества» или что это такое?

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.1K

Все популярные и крупные компании (X5 Group, Сбер и др.) начинаются интересоваться этим направлением, ведь теперь хочется удержать людей (новое поколение, о котором нужно писать отдельно), а также повышать результаты команды, отдела, компании.

Читать далее
Всего голосов 12: ↑5.5 и ↓6.5-1
Комментарии11

Обратный инжиниринг дешевой мини видеокамеры из семейства А9

Уровень сложностиПростой
Время на прочтение21 мин
Количество просмотров7.8K

В данной статье речь пойдет о Wi-Fi мини видеокамере из семейства А9 от китайских производителей. Цель исследования этих камер – расширить возможность их применения, которая ограничена использованием только стандартных приложений для мобильных устройств на базе Android или iOS.

По итогу представлен некоторый анализ дампа сетевого трафика между камерой и мобильным приложением, а на его основе предложен работающий код на Python.

Читать далее
Всего голосов 38: ↑47 и ↓-9+56
Комментарии33

Интерфейсы для производств — это не сайты штамповать

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров7.6K

Стоит только коснуться производственной специфики, как стандартные подходы разваливаются на куски — даже если у вас уже есть огромная дизайн-система на основе популярной методологии Material Design. Я — Аня Труфанова, делаю дизайн для MES (manufacturing execution system). Нам пришлось взять дизайн-систему и наполнить ее уникальными фичами и кастомными компонентами, адаптированными под нестандартные условия. Сейчас я поделюсь, что именно мы переосмыслили и какие фичи добавили.

Читать далее
Всего голосов 24: ↑25 и ↓-1+26
Комментарии14

SSD killer

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров46K

SSD killer — destroyer for your ssd

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

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

SSD killer
Всего голосов 58: ↑56.5 и ↓1.5+55
Комментарии280

4 часа недоступности: постмортем падения Dodo IS

Время на прочтение16 мин
Количество просмотров29K

Вечером пятницы 23 сентября, в самое «горячее» время для Додо Пиццы, развалилась платформа Dodo IS. Приём заказов превратился в тыкву, клиенты и пиццерии 4 часа испытывали проблемы. Это было наше самое крупное падение с 2018-го года как в техническом плане, так и по недополученной выручке.

Особенная боль — то, что мы упали в прайм-тайм. Наш бизнес устроен циклично и зависит от сезона: осенью заказов больше, чем летом, а по вечерам пятницы больше в несколько раз, чем в утром вторника. Обычно пик заказов приходится на вечер пятницы (с 16 до 20 по Москве). Это время — самое напряженное для системы и самое ценное для бизнеса.

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

Читать далее
Всего голосов 161: ↑159 и ↓2+157
Комментарии106

Запускаем PrivateGPT на GPU AMD Radeon в Docker

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров1.6K

PrivateGPT — это проект, который расширяет возможности работы LLM-моделей, позволяя добавлять неограниченное количество личных данных.

31 октября 2023 AMD Radeon предоставила поддержку PyTorch для любительских видеокарт. Полный список видеокарт и ОС можно посмотреть здесь. Описанная инструкция протестирована на AMD Radeon RX 7900 XTX.

Для запуска нам понадобится Ubuntu с установленными: git, make, docker и ROCm.

Читать далее
Всего голосов 5: ↑5.5 и ↓-0.5+6
Комментарии2

Как учиться учиться и для чего интровертам телеграм-канал

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров12K

«Лучший способ в чём-то разобраться до конца — это попробовать научить этому компьютер». Дональд Кнут (как минимум викицитатник говорит, что он так сказал).

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

Для тех, кто, как и я, испытывал похожие проблемы, я решил поделиться своим методом.

Читать далее
Всего голосов 25: ↑23 и ↓2+21
Комментарии7

Вдали от Webpack, или Как мы в Dodo микрофронтенды на Vite переводили

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

С первой частью рассказа о микрофронтендах в Dodo можно ознакомиться тут

Мы спокойно сидели и пилили новый проект на нашем устоявшемся стеке (React + TypeScript + Webpack + SingleSPA + SystemJS + Jest). Пока одним прекрасным утром не пришел наш техлид и такой: «Чуваки, а давайте затащим Vitest!».

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии9

Как впилить Allure TestOps в свой проект, если ты простой тестировщик

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

В прошлом году нашей QA-команде нужно было интегрировать Allure TestOps в проекты. До этого никто из нас этим не занимался, но вместе разобрались и сделали. Я осознал, что в одиночку потратил бы на это очень много времени или вообще бы не разобрался, потому что инструкции, как это сделать, не было. Поэтому написал свою, в надежде, что она будет полезна тем, кто окажется в такой же ситуации.

В общем, если вы тестируете бэкенд на .NET, а для сборки проектов используете GitHub Actions и хотите внедрить Allure TestOps — эта инструкция для вас.

Читать далее
Всего голосов 16: ↑16 и ↓0+16
Комментарии2
1
23 ...