Feed aggregator

Создаем свою ORM на python — гайд

Habr.com - 5 hours 57 min ago

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

ORM позволяет абстрагироваться от сырых SQL запросов путем абстракций.

В этой статье мы и рассмотрим создание своей ORM на Python с документацией и публикацией на PyPI. Данный проект очень интересен со стороны реализации: ведь требуется изучить большую часть ООП, принципов и паттернов.

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

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

Читать далее

Возможности поля HTML-документа, часть 2. Внедряем CSS и JS

Habr.com - 5 hours 57 min ago

В прошлой статье я рассказал, какие возможности скрывает в себе поле HTML-документа, выведенное на форму 1С. Сегодня подробнее остановлюсь на возможностях языков CSS (язык стилей и некоторых элементов поведения) и JavaScript (язык программирования, используемый в веб-разработке), которые могут пригодиться в работе с 1С-интерфейсом.

Читать далее

«ИИ-тестировщик»: от идеи к реализации

Habr.com - 6 hours 1 min ago

Привет, Хабр! На связи Денис Киров, руководитель отдела тестирования компании «ДОМ.РФ Технологии». В этой статье я расскажу, как проходило внедрение ИИ в процессы тестирования в нашей команде.

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

Применение ИИ в тестировании

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

·         Тестирование требований – тут может помочь NLP (Natural Language Processing)

·         Генерация тестовых кейсов

·         Генерация API тестов

·         Генерация отчётной документации

·         Генерация UI автотестов

Далее мы попробовали немного детализировать то, что мы хотим, а именно:

1)    Тестирование требований – анализ текста на отсутствие неоднозначности, логических ошибок аналитики.

2)    Генерация тестовых кейсов – нам нужно, чтобы ИИ генерировал тестовые кейсы аналогично тому, как это делают функциональные тестировщики (ФТ) – то есть по спецификации, которая может храниться на внутрикорпоративном Confluence, в Jira, а также в формате OpenAPI/Swagger.

Читать далее

От токарно-копировального станка до космоса: немного о русской инженерной школе

Habr.com - 6 hours 3 min ago
Русская инженерная школа 19-го века готовила почти что космонавтов. В смысле, в тогдашней России можно было забросить такого инженера куда-то работать, и он там воспроизведёт цивилизацию с нуля — от первых деталей до мостов, станков и вообще чего угодно. Наших инженеров ценили по всему миру, в частности за широкий кругозор и практические навыки.


Студенты Московского инженерного училища на рубеже 19-го и 20-го веков решают какую-то интересную задачку

Рулили три базовых принципа:

  • Практика от простых ремесленных задач до сложных инженерных проектов.
  • Глубокое изучение фундаментальной теории и дальше узкоспециализированных прикладных областей.
  • Постоянная работа с промышленностью.

Студенты учились понимать всё через прикладной опыт. Так формировалось инженерное мышление.

И ещё одно.

Над инженером не было начальника. Главные конструкторы крупных государственных проектов (от Транссиба до космической программы) подчинялись напрямую руководителю страны. Это имело как плюсы, так и минусы. Читать дальше →

Расширенная модель записи данных REM: почему это стандарт для разработки Low-code решений?

Habr.com - 6 hours 19 min ago

Управление данными в корпоративных информационных системах становится всё более сложной задачей. Вслед за ростом бизнеса увеличивается объём и разнообразие обрабатываемой информации, что увеличивает нагрузку на ИТ-отделы.

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

Расширенная модель записи (REM) является решением этой проблемы. Этот подход позволяет использовать одну таблицу для хранения типовых запросов. REM — это не теоретическая концепция, а проверенный на практике подход, который уже помогает оптимизировать работу информационных систем, ускорять разработку и снижать затраты на поддержку. Все бизнес-приложения SimpleOne используют REM подход: от систем управления ИТ-услугами до инструментов автоматизации корпоративных продаж.

Читать далее

Инженеры больших идей: кто был бы спикером на ИТ-конференции вашей мечты?

Habr.com - 6 hours 24 min ago

Вы пришли на конференцию и — вот же удачное совпадение! — встретили там Андрея Петровича Ершова, пионера советского ИТ. Разумеется, у вас к нему множество вопросов. Например, о том, справедлив ли тезис «программирование — вторая грамотность» в эпоху промпт-инжиниринга. Андрей Петрович улыбается и собирается ответить… К сожалению, на этом месте вы просыпаетесь.

В реальности мы не всегда можем спросить того, чей ответ нас особенно интересует, но совместно с конференцией «Импульс Т1» мы попытаемся сделать невозможное возможным. Прямо сейчас вы можете задать вопрос тому самому инженеру, чей вклад в ИТ вы цените больше всего.

А отвечать на ваши вопросы будут спикеры «Импульса Т1» — те из них, кто разделяет ваш интерес к указанной личности и кто достаточно подкован в теме, чтобы предположить, каким мог бы быть ответ того самого %инженернейма%. По результатам опроса у нас будут не только видеоролики с ответами, но ещё и аналитическая статья, где мы расскажем, кого хабровчане больше всего уважают и почему.

Пройти опрос

История C и C++. Часть первая: появление и стандартизация C, C with Classes становится C++

Habr.com - 6 hours 30 min ago

C и C++ — культовые языки, на которых написано огромное количество кода. Но какой путь они прошли, чтобы стать таковыми? В этой статье расскажем о появлении C, начале его официальной стандартизации, а также о C with Classes и его окончательном превращении в C++.

Читать далее

Functional options in Go

Habr.com - 6 hours 37 min ago

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

Читать далее

Готовимся к Micromouse: как роботу построить карту лабиринта

Habr.com - 6 hours 47 min ago

Привет, Хабр! Меня зовут Денис Логашов, я инженер-исследователь отдела автоматической обработки результатов моделирования и визуализации YADRO. В этом году мне предложили поучаствовать в соревновании по робототехнике в дисциплине Micromouse, где роботизированной мыши нужно как можно быстрее найти путь в центр лабиринта и понять, что цель достигнута. Такие соревнования проводятся в разных странах уже почти 50 лет, и в этом году Micromouse вошел в программу фестиваля РобоФинист 2024 в Санкт-Петербурге, где мы заняли второе место.

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

Читать далее

Портал, манулы и мячи: опыт разработки для Apple Vision Pro. Часть 1

Habr.com - 6 hours 52 min ago

В статье описан мой опыт разработки мини-игр для Apple Vision Pro в условиях жёсткого ограничения во времени.

Расскажу, с какими сложностями я столкнулся в ходе работы с 3D-моделями, и поделюсь способами их преодоления. Лайфхаки для упрощения работы с RealityViewContent и Reality Composer Pro прилагаются.

Читать далее

Как пересылать сообщения из Telegram в SMS с помощью бота

Habr.com - 6 hours 53 min ago

Всем привет! У платформы МТС Exolve есть сообщество, которое часто делится полезными гайдами от прокачки своих серверов до открытия ворот по SMS. Наиболее интересные и подробные решили размещать в нашем хабе.

В этом гайде пользователь объясняет, как можно написать простого Telegram чат-бота на NodeJS, который будет пересылать все входящие сообщения в SMS, используя Exolve SMS API.

Читать далее

SDR радиоприёмник в FPGA плате Марсоход3GW2 (Gowin)

Habr.com - 6 hours 55 min ago

Когда-то давно, аж 2013-й год, на Хабре была статья "Простой SDR приёмник на ПЛИС" автора @iliasam. Я попытаюсь повторить этот проект на другой элементной базе: FPGA плата Марсоход3GW2, микросхема Gowin GW1NR-LV9QN88PC6/I5.

Законы Цифровой Обработки Сигналов кажется остаются всё те же, что и раньше. Посмотрим, что у меня получится.

Читать далее

Какие айтишники будут востребованы в 2035г, а какие – нет?

Habr.com - 7 hours 5 min ago

Часто слышу отголоски дискуссии, что через 10-15 лет за разработчиков будет писать код искусственный интеллект, он же будет находить и фиксить баги, автоматически создавать интерфейсы, анализировать пользовательский опыт и так далее. Так ли это?

Поскольку в Гринатоме сегодня мы уже не только выполняем функцию ИТ-интегратора для Росатома, но и создаем свои ИТ-продукты и выводим их на рынок, у нас очень высокая потребность в кадрах: в Гринатоме более 7 тысяч ИТ специалистов, а к 2035г. их должно стать более 12 тыс.

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

Читать далее

Стой и сражайся! Как мебельный интернет-магазин удвоил продажи в неравной битве с маркетплейсами

Habr.com - 7 hours 6 min ago

Маркетплейсы неумолимы, и все интернет-магазины рано или поздно сыграют в ящик… Так стоит ли продвигать интернет-магазин мебели или уже сейчас надо переходить только на маркетплейсы? Как масштабировать продажи в контекстной рекламе? Какие доработки сайта увеличивают конверсию?  Как не слить бюджет на медийную рекламу и получать заказы с холодного трафика? Методика масштабирования продаж интернет-магазина мебели по 4 точкам роста.

Читать далее

Топология Dragonfly для дата-центровых сетей

Habr.com - 7 hours 7 min ago

Итак, вы гиперскейлер, давайте отталкиваться от этого. Потому что если нет — собирайте хоть 3-tier на OSPF. А гиперскейлер вы в том случае, если у вас большая сеть на тысячи хостов, а лучше стоек. Вы уже попробовали топологию Клоза. Сначала вам очень нравилось. Она вся такая плотная, регулярная и масштабируемая — просто прелесть.

Как только кластер начал грозить вырасти за 2000 хостов, вы стали надстраивать ещё один уровень коммутации и докидывать в него всё новые и новые группы стоек. И продолжаете расти на десятки тысяч узлов. У вас отработанный дизайн, автоматизация ввода нового оборудования. Всё на потоке.

Но отчего‑то вы несчастливы. Вам плохо спится. Гложут сомнения и дурные мысли.
А всё дело в эпохе 400G! Вы долгие годы строили свою сеточку на 25+100, и всего всегда хватало. Раньше. А теперь надо на хосты соточку спустить. А значит и аплинки надо расширять, да вы и сами уже понимаете, что пора: ещё несколько лет — и эта сеть станет устаревшей. 200G, 400G, SerDes по 100 Гб/с на PSM4. Тут думать надо.

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

Читать далее

Стили, темы и адаптивная верстка в React Native

Habr.com - 7 hours 8 min ago

Из этой статьи вы узнаете, как эффективно организовать очень важную часть разработки на React Native - работу со стилями и ресурсами для создания адаптивных и доступных интерфейсов под три платформы: iOS, Android и Web. Также в целом обсудим особенности верстки и проблемы производительности в рамках данного фреймворка.

Читать далее

Готовим Gitea со вкусом werf CI/CD и Dex-авторизации в кластере Deckhouse Kubernetes Platform. Часть 2

Habr.com - 7 hours 31 min ago

Продолжаем готовить возможную замену GitLab или GitHub с удобным CI/CD и on-premise размещением. Во второй части подробной статьи-инструкции для новичков поговорим о Gitea Actions: настроим инфраструктуру и Gitea Actions CI/CD. 

Читать далее

[Перевод] Внезапная старость и продление жизни. Как клетки печени взывают каскад старения

Habr.com - 7 hours 40 min ago

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

Читать далее

[Перевод] Реализация алгоритма двумерной упаковки Skyline

Habr.com - 7 hours 50 min ago

Упаковка 2D-прямоугольников в прямоугольники большего фиксированного размера необходима в большинстве мультимедийных проектов. В программировании GPU изменение текстур (binding) — затратный процесс. Поэтому при рендеринге текста не стоит использовать по одной текстуре на глиф, вместо этого желательно упаковать глифы в единую текстуру, называемую атласом. В 2D-играх содержащие спрайты атласы называются листами спрайтов (spritesheet). Листы спрайтов также используются для веб-сайтов, потому что скачивать один большой файл удобнее, чем по одному файлу на каждый значок/логотип.

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

Самым ценным ресурсом из найденных мной стал превосходный обзор Юкки Йулянки. В нём описано четыре типа алгоритмов и их практическая оценка. Выделяются из них два:

MAXRECTS если вы знаете заранее, какие прямоугольники будете упаковывать («офлайн-упаковка»)

SKYLINE если не знаете («онлайн-упаковка»)

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

Именно поэтому я остановился на алгоритме skyline. Он применяется в stb_rect_pack.hfontstash, а значит, и в nanovg.

В этой статье объяснён алгоритм skyline и представлена его реализация. Реализация доступна онлайн и в общественном достоянии (UNLICENSE).

Читать далее

Переводчик текста для терминала

Habr.com - 8 hours 37 min ago

Большое количество специалистов в области IT используют переводчики текста в своей работе, и я тому не исключение. Достаточно часто в вакансиях Системного администратора можно встретить требуемый навык - "чтение технической документации на английском языке", но, не всегда такая документация может быть очевидной в полной мере, даже имея базовый уровень английского языка, и как мне кажется, тут нечему стесняется. Для перевода текста чаще всего используется браузер, а также десктопные приложения, я же расскажу про альтернативу таким решениям, для перевода текста прямо в консоли Linux или Windows.

Читать далее

Who's online

There are currently 1 user and 2 guests online.
Syndicate content