Как стать автором
Поиск
Написать публикацию
Обновить
-4
@v3y7read⁠-⁠only

Пользователь

Отправить сообщение

Олдскульные HTML-шаблоны снова в моде! htmx и другие средства борьбы с javascript fatigue

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

Отрисовка страничек на сервере, похоже, снова начинает приобретать популярность (нет, я не имею в виду React SSR).

Сторонники оппозиции растущему влиянию javascript, наконец, смогли направить усилия в нужное русло - и в результате родился фреймворк htmx! Поговорим о том, как он работает, а также, какие ещё фреймворки используют серверные шаблоны в 2022.

Также поговорим о divkit - аналоге html для мобилок, недавно выпущенный Яндексом в опен-сорс - Вы, наверно, догадались, какое отношение может иметь одно к другому.

Читать

Что такое Shared UI, как он нам помог и причём тут микросервисы

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

Всем привет! Меня зовут Дима, я frontend-разработчик в Альфа-Банке. Сегодня я расскажу про Shared UI, что это такое и как мы пришли к созданию такого сервиса в интернет-банке, что это такое, как мы вообще придумали такой сервис.

Читать далее

Пишем на С++ вектор, умеющий расширяться без копирования элементов

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

В языке С есть функции malloc, free и realloc. При использовании последней вы можете написать этакий расширяющийся массив из примитивных типов или структур (классов-то нет), который, можно надеяться, не будет копировать все данные при каждом расширении. В С++ есть встроенный класс vector, который представляет из себя расщиряющийся массив, но он так не умеет: при каждом расширении вектора выделяется новый участок памяти и все элементы перемещаются на него (по возможности, с использованием move-семантики). Но ведь, если можно каждый раз не копировать все старые элементы на новое место, вектор должен работать быстрее? В этой статье я попробую написать вектор, который умеет расширяться без копирования элементов.

Код приведён здесь.

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

Читать далее

Занимательная задачка по мотивам теоремы Гёделя о неполноте

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

Альберт Эйнштейн награждает Гёделя (второй справа) наградой, названной в честь него самого

В 1931 году австрийский логик, математик и философ математики Курт Гёдель опубликовал свою теорему о неполноте. Эта работа считается одним из величайших интеллектуальных достижений современности.

В теореме утверждается, что в любой разумной математической системе всегда будут существовать истинные утверждения, которые невозможно доказать. Это утверждение шокировало математическую общественность, в которой до того преобладал неистребимый оптимизм, касающийся мощи и всеобъемлющей природы математики. Предполагалось, что математика «полна» — то есть, любое утверждение можно доказать или опровергнуть. 25-летний Гёдель показал, что это не так, составив корректное утверждение, доказать которое невозможно. Таким образом он продемонстрировал ограничения математики.

Теорема о неполноте преобразовала исследования основ математики и стала важным фактором развития информатики, поскольку из неё следует, что у возможностей всех формализованных систем, в том числе и языков программирования, есть свои ограничения.
Читать дальше →

Yandex Object Storage — реализация SignedURL для загрузки данных в bucket на NodeJS

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

Доброго времени суток, Хабр!

Несколько лет назад, я участвовал в разработке одного проекта, и как задачу, мне (тогда еще зеленому джуну) поставили реализовать систему загрузки медиа файлов на AWS S3. Важным условием было реализовать конкретно SignedURL.

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

Ниже я немного расскажу что вообще такое подписанные ссылки, как перейти на Yandex Object Storage(YOS), и почему YOS и AWS S3 - это одно и то же!

Читать далее

Проецирование вершин графа в векторное пространство. Часть 1. Разложение матрицы смежности

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

Привет, Хабр! Меня зовут Илья Котов, я Data Scientist в Сбере, участник профессионального сообщества NTA. Эта статья — первая часть небольшого цикла, посвящённого алгоритмам вложения вершин графа в векторное пространство. Сегодня расскажу об алгоритмах, основанных на матричных факторизациях. В качестве примера в статье используется занимательная задача поиска сообществ в графе. Что же, приступим!

Читать далее

Тестируем ультра-производительные кроссоверы для встраиваемых систем

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

До потребительского рынка наконец добрались микроконтроллеры с частотой до 1 ГГц, с открытой документацией, набором разнообразного софта, примерами полезного применения и наличием в стоках. Это семейство i.MX RT. Их называют кроссоверы, потому что они претендуют на ниши, где до недавнего времени доминировали малинки и одновременно легко могут заместить старшие 8-битники не увеличивая цены и потребления. Мир кроссоверов - малые встраиваемые системы, устройства для интернета вещей (IoT), промышленная автоматика, преобразовательная техника, роботы и т.п.

Читать далее

[Pet] Двумерная симуляция взаимодействия небесных тел на C++

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

Здравствуй, мир!

Это моя принципиально новая симуляция планет с нескучными обоями, и просто маленькая победа над c++ и физикой тоже.

Больше

Глубокие последствия: краткий экскурс в высокотехнологичную спелеологию

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

В преуведомлении к этой статье позволю себе отрекламировать одного из самых харизматичных и разносторонних интеллектуалов в России, с кем мне доводилось играть в «Что? Где? Когда?» и доверительно общаться – Дмитрия Славина из Долгопрудного. В настоящее время Дмитрий преподаёт географию, о чём не так давно дал большое интервью сайту «Правмир», а также ведёт в Москве интереснейшие авторские квизы «Ёквиз», в онлайн-тестировании которых я стараюсь участвовать. Дмитрия я по-прежнему с нетерпением жду на Хабре как потенциально топового автора, именно от него знаю слова «джипни», «Аннапурна» и «нойон», а также почерпнул множество вкуснейших идей и фактов. В одном из недавних тестовых прогонов узнал от Дмитрия о выдающемся географическом открытии конца XX века – пещерной реке Пуэрто-Принсеса на филиппинском острове Палаван. Река описана в 1999 году, её длина составляет более 8 км. Сейчас часть гротов с Пуэрто-Принсесой окультурена, туда водят экскурсии.

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

Читать далее

Локальный сервер для разработки (dns, nginx & git)

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

В итоге мы получим домашний сервер с фейковым доменом, на поддомене которого мы развернём GitLab и настроим работу gitlab-runner'а для деплоя наших веб-проектов.

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

Читать далее

Пишем try-catch в C не привлекая внимания санитаров

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

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

Читать далее

Трюк, которого не было

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

Привет, Хабр! У офисных центров есть такой вид услуг - проектирование и подготовка офиса, специально под требования арендатора. Мне пришлось как-то участвовать в подобной деятельности. B однажды в голове сложился некий сценарий рекламы офисных помещений. Я понял, что просто так от этой навязчивой идеи мне не избавится. Для быстрого прототипирования моих 3D-фантазий я использую OpenSCAD. Остальные инструменты не дотягивают до требуемого градуса безумства...

Читать далее

Пишем собственный CustomStepper в Swift

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

Тут можно найти реализацию готового проекта

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

Читать далее

Что такое Black Box Testing?

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

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

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

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

Тестирование по стратегии чёрного и белого ящика — два вида тестирования, часто выполняемых разработчиками на этом этапе.

В статье мы расскажем о тестировании по стратегии чёрного ящика (black box testing), а также о фундаментальных сходствах и отличиях чёрного и белого ящика.
Читать дальше →

Как найти утекшие объекты в дампах памяти Chrome DevTools

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

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

Читать далее

Effector — стейтменеджер js приложений (reflect, typescript, forms). Работа с основными инструментами. Часть 2

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

Effector - менеджер состояния web-приложений.

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

Читать далее

Миграция на Hibernate 6

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

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

Для большинства приложений, использующих Hibernate 5, миграция будет относительно быстрой и простой. Но вам придется исправить и обновить некоторые вещи, если вы все еще используете более старую версию Hibernate или некоторые функции, устаревшие в Hibernate 5.

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

Читать далее

JUnit: тестирование методов, вызывающих System.exit()

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

В определенных ситуациях нам может потребоваться, чтобы метод вызывал System.exit() и завершал работу приложения. Например, в случае если приложение должно быть запущено только один раз, а затем завершено, или в случае фатальных ошибок, таких как потеря соединений с базой данных.

Если метод вызывает System.exit(), вызвать его из юнит-тестов и делать ассерты становится трудно, потому что это приведет к завершению юнит-теста.

В этом посте мы рассмотрим, как тестировать методы, вызывающие System.exit() с использованием фреймворка JUnit.

Читать далее

Python на сервере и в браузере. Путь к Web Assembly

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

Python как технология разработки приложений преимущественно используется для создания сценариев автоматизации, создания бэкэнда и веб-приложений, а также для анализа данных и использования методов статистики и машинного обучения. Также есть некоторые подходы к созданию мобильных приложений на Python (например, движок Kivy над OpenGL для Android). Но остается незаполненной ниша использования Python-приложений в веб-браузере, что могло бы позволить перенести часть обработки данных непосредственно на клиентское устройство и создавать полноценные fullstack-приложения на одной технологии. Решением этой задачи может стать кросскомпиляция Python в код WebAssembly, который может выполняться как в браузере, так и на сервере с использованием nodejs или движка V8, либо SSVM (Second State Virtual Machine). В статье мы рассмотрим несколько подходов к запуску Python-приложений внутри браузера и сервера с использованием WebAssembly.

Читать далее

Руководство по программированию сокетов на Python. Устранение проблем и справочный раздел

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


К старту курса по Fullstack-разработке на Python делимся заключительной частью руководства по программированию сокетов, эта часть посвящена устранению неполадок и справочным сведениям.


К концу руководства вы освоите основные функции и методы модуля Python socket, научитесь применять пользовательский класс для отправки сообщений и данных между конечными точками и работать со всем этим в собственных клиент-серверных приложениях.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность